diff --git a/CHANGELOG.md b/CHANGELOG.md index 8f8634b..2c89c53 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # @vladmandic/face-api - Version: **1.7.11** + Version: **1.7.12** 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,12 +9,15 @@ ## Changelog +### **1.7.12** 2023/06/12 mandic00@live.com + + +### **origin/master** 2023/05/08 mandic00@live.com + + ### **1.7.11** 2023/05/08 mandic00@live.com -### **origin/master** 2023/03/21 mandic00@live.com - - ### **1.7.10** 2023/03/21 mandic00@live.com - change typedefs diff --git a/demo/index.js b/demo/index.js index 6b24c05..64f5cd8 100644 --- a/demo/index.js +++ b/demo/index.js @@ -35,7 +35,7 @@ function faces(name, title, id, data) { canvas.style.top = `${img.offsetTop}px`; canvas.width = img.width; canvas.height = img.height; - const ctx = canvas.getContext('2d'); + const ctx = canvas.getContext('2d', { willReadFrequently: true }); if (!ctx) return; // draw title ctx.font = '1rem sans-serif'; @@ -94,7 +94,7 @@ async function image(url) { const canvas = document.createElement('canvas'); canvas.height = img.height; canvas.width = img.width; - const ctx = canvas.getContext('2d'); + const ctx = canvas.getContext('2d', { willReadFrequently: true }); if (ctx) ctx.drawImage(img, 0, 0, img.width, img.height); // return generated canvas to be used by tfjs during detection resolve(canvas); diff --git a/demo/webcam.js b/demo/webcam.js index 47efc14..28f84bd 100644 --- a/demo/webcam.js +++ b/demo/webcam.js @@ -30,7 +30,7 @@ function log(...txt) { // helper function to draw detected faces function drawFaces(canvas, data, fps) { - const ctx = canvas.getContext('2d'); + const ctx = canvas.getContext('2d', { willReadFrequently: true }); if (!ctx) return; ctx.clearRect(0, 0, canvas.width, canvas.height); // draw title diff --git a/dist/face-api.esm-nobundle.js b/dist/face-api.esm-nobundle.js index 2c5af16..48a2cda 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.5.0",yo="4.5.0",_o="4.5.0",To="4.5.0",wo="4.5.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.11";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.7.0",yo="4.7.0",_o="4.7.0",To="4.7.0",wo="4.7.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",{willReadFrequently:!0});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.12";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 fe84c51..dee42d5 100644 --- a/dist/face-api.esm.js +++ b/dist/face-api.esm.js @@ -4,69 +4,69 @@ author: ' */ -var AD=Object.defineProperty;var FD=(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 jy=(e,t)=>{for(var n in t)AD(e,n,{get:t[n],enumerable:!0})};var ze={};jy(ze,{Abs:()=>ql,Acos:()=>Ii,Acosh:()=>Si,AdadeltaOptimizer:()=>_w,AdagradOptimizer:()=>Ew,AdamOptimizer:()=>Aw,AdamaxOptimizer:()=>Fw,Add:()=>bs,AddN:()=>Ni,All:()=>jl,Any:()=>Kl,ArgMax:()=>Xl,ArgMin:()=>Yl,Asin:()=>Ti,Asinh:()=>Ci,Atan:()=>_i,Atan2:()=>Ai,Atanh:()=>Ei,AvgPool:()=>Fi,AvgPool3D:()=>Zl,AvgPool3DGrad:()=>_c,AvgPoolGrad:()=>bm,BackendWasm:()=>XF,BatchMatMul:()=>$i,BatchToSpaceND:()=>Jl,Bincount:()=>Ql,BitwiseAnd:()=>ym,BroadcastArgs:()=>Ec,BroadcastTo:()=>CS,Callback:()=>nC,CallbackList:()=>r2,Cast:()=>Di,Ceil:()=>Ri,ClipByValue:()=>ys,Complex:()=>xm,ComplexAbs:()=>Ac,Concat:()=>eu,Conv2D:()=>Mi,Conv2DBackpropFilter:()=>vm,Conv2DBackpropInput:()=>Pi,Conv3D:()=>Oi,Conv3DBackpropFilterV2:()=>tu,Conv3DBackpropInputV2:()=>nu,Cos:()=>Li,Cosh:()=>zi,CropAndResize:()=>ru,Cumprod:()=>au,Cumsum:()=>Wi,CustomCallback:()=>i2,DataStorage:()=>mm,DenseBincount:()=>Fc,DepthToSpace:()=>su,DepthwiseConv2dNative:()=>Bi,DepthwiseConv2dNativeBackpropFilter:()=>wm,DepthwiseConv2dNativeBackpropInput:()=>km,Diag:()=>$c,Dilation2D:()=>Vi,Dilation2DBackpropFilter:()=>Tl,Dilation2DBackpropInput:()=>Nl,ENV:()=>dv,EarlyStopping:()=>aC,Einsum:()=>Im,Elu:()=>Gi,EluGrad:()=>iu,Environment:()=>NS,Equal:()=>lu,Erf:()=>ou,Exp:()=>Hi,ExpandDims:()=>uu,Expm1:()=>qi,FFT:()=>Sm,Fill:()=>Dc,FlipLeftRight:()=>pu,Floor:()=>ji,FloorDiv:()=>Ki,FromPixels:()=>Wh,FusedBatchNorm:()=>Xi,FusedConv2D:()=>ii,FusedDepthwiseConv2D:()=>oi,GPGPUContext:()=>Mh,GatherNd:()=>du,GatherV2:()=>cu,GraphModel:()=>g1,Greater:()=>hu,GreaterEqual:()=>Yi,History:()=>s2,IFFT:()=>Nm,Identity:()=>Zi,Imag:()=>Tm,InputSpec:()=>Bt,IsFinite:()=>Ji,IsInf:()=>Qi,IsNan:()=>eo,KernelBackend:()=>Tc,LRN:()=>ro,LRNGrad:()=>vu,LayerVariable:()=>ZT,LayersModel:()=>Er,LeakyRelu:()=>to,Less:()=>mu,LessEqual:()=>fu,LinSpace:()=>gu,Log:()=>no,Log1p:()=>ao,LogSoftmax:()=>ES,LogicalAnd:()=>bu,LogicalNot:()=>yu,LogicalOr:()=>xu,LogicalXor:()=>_S,LowerBound:()=>kR,MathBackendCPU:()=>Rf,MathBackendWebGL:()=>Of,MatrixBandPart:()=>IR,Max:()=>so,MaxPool:()=>oo,MaxPool3D:()=>wu,MaxPool3DGrad:()=>Rc,MaxPoolGrad:()=>Cm,MaxPoolWithArgmax:()=>_m,Maximum:()=>io,Mean:()=>lo,Min:()=>uo,Minimum:()=>po,MirrorPad:()=>co,Mod:()=>ku,MomentumOptimizer:()=>$w,Multinomial:()=>Iu,Multiply:()=>ho,Neg:()=>Su,NonMaxSuppressionV3:()=>Tu,NonMaxSuppressionV4:()=>Cu,NonMaxSuppressionV5:()=>_u,NotEqual:()=>Nu,OP_SCOPE_SUFFIX:()=>gv,OneHot:()=>mo,OnesLike:()=>Eu,Optimizer:()=>Mr,OptimizerConstructors:()=>RT,Pack:()=>Au,PadV2:()=>fo,Pool:()=>SR,Pow:()=>go,Prelu:()=>bo,Prod:()=>yo,RMSPropOptimizer:()=>Dw,RNN:()=>mr,RaggedGather:()=>Em,RaggedRange:()=>Am,RaggedTensorToTensor:()=>Fm,Range:()=>Mc,Rank:()=>dx,Real:()=>$m,RealDiv:()=>Ui,Reciprocal:()=>xo,Reduction:()=>kn,Relu:()=>vo,Relu6:()=>Io,Reshape:()=>Fu,ResizeBilinear:()=>ko,ResizeBilinearGrad:()=>Du,ResizeNearestNeighbor:()=>wo,ResizeNearestNeighborGrad:()=>$u,Reverse:()=>So,RotateWithOffset:()=>Xu,Round:()=>No,Rsqrt:()=>To,SGDOptimizer:()=>mf,ScatterNd:()=>Ru,SearchSorted:()=>Pu,Select:()=>Ou,Selu:()=>Co,Sequential:()=>Ll,Sigmoid:()=>Ao,Sign:()=>Eo,Sin:()=>_o,Sinh:()=>zu,Slice:()=>Lu,Softmax:()=>Ro,Softplus:()=>Fo,SpaceToBatchND:()=>Wu,SparseFillEmptyRows:()=>Pc,SparseReshape:()=>Vu,SparseSegmentMean:()=>Oc,SparseSegmentSum:()=>Lc,SparseToDense:()=>Uu,SplitV:()=>Bu,Sqrt:()=>$o,Square:()=>zc,SquaredDifference:()=>Mo,StaticRegexReplace:()=>Wc,Step:()=>vs,StridedSlice:()=>Gu,StringNGrams:()=>Bc,StringSplit:()=>Vc,StringToHashBucketFast:()=>Uc,Sub:()=>Po,Sum:()=>Do,SymbolicTensor:()=>Va,Tan:()=>Oo,Tanh:()=>Lo,Tensor:()=>Ce,TensorBuffer:()=>Vt,TensorScatterUpdate:()=>Mu,Tile:()=>xs,TopK:()=>Hu,Transform:()=>qu,Transpose:()=>_r,Unique:()=>Gc,Unpack:()=>ju,UnsortedSegmentSum:()=>Hc,UpperBound:()=>NR,Variable:()=>os,ZerosLike:()=>Ku,_FusedMatMul:()=>si,abs:()=>Wt,acos:()=>kv,acosh:()=>Iv,add:()=>X,addN:()=>eN,all:()=>Om,any:()=>hc,argMax:()=>pi,argMin:()=>Sv,asin:()=>Nv,asinh:()=>Tv,atan:()=>Cv,atan2:()=>_v,atanh:()=>Ev,avgPool:()=>ya,avgPool3d:()=>Fv,backend:()=>QS,backend_util:()=>N,basicLSTMCell:()=>rN,batchNorm:()=>ks,batchNorm2d:()=>$v,batchNorm3d:()=>Dv,batchNorm4d:()=>Rv,batchToSpaceND:()=>Jc,bincount:()=>Mv,bitwiseAnd:()=>sN,booleanMaskAsync:()=>XN,broadcastArgs:()=>iN,broadcastTo:()=>ni,broadcast_util:()=>Yu,browser:()=>Vo,buffer:()=>Le,callbacks:()=>oq,cast:()=>ie,ceil:()=>Pv,clipByValue:()=>rn,clone:()=>sr,complex:()=>Ar,concat:()=>Qe,concat1d:()=>Ov,concat2d:()=>Lv,concat3d:()=>zv,concat4d:()=>Wv,constraints:()=>e2,conv1d:()=>Lm,conv2d:()=>Rt,conv2dTranspose:()=>zm,conv3d:()=>Vv,conv3dTranspose:()=>Uv,copyRegisteredKernels:()=>ER,cos:()=>Qc,cosh:()=>Wm,cosineWindow:()=>uf,cumprod:()=>gc,cumsum:()=>Bm,customGrad:()=>ur,data:()=>TC,denseBincount:()=>qh,deprecationWarn:()=>wv,depthToSpace:()=>Gv,depthwiseConv2d:()=>Is,deregisterOp:()=>pq,device_util:()=>Xc,diag:()=>lN,dilation2d:()=>Hv,disableDeprecationWarnings:()=>zM,dispose:()=>_e,disposeVariables:()=>WM,div:()=>he,divNoNan:()=>qv,dot:()=>jv,dropout:()=>Iw,einsum:()=>pN,elu:()=>Zu,enableDebugMode:()=>LM,enableProdMode:()=>OM,enclosingPowerOfTwo:()=>Sw,engine:()=>_a,ensureShape:()=>cN,env:()=>G,equal:()=>ea,erf:()=>Kv,euclideanNorm:()=>Zv,exp:()=>yn,expandDims:()=>tn,expm1:()=>Jv,eye:()=>Vm,fft:()=>ld,fill:()=>xn,findBackend:()=>jM,findBackendFactory:()=>KM,floor:()=>Qu,floorDiv:()=>Pm,forceHalfFloat:()=>qE,fused:()=>Rl,gather:()=>ep,gatherND:()=>QN,gather_util:()=>Pw,getBackend:()=>HM,getGradient:()=>px,getKernel:()=>Bh,getKernelsForBackend:()=>Vh,getThreadsCount:()=>eme,gpgpu_util:()=>SE,grad:()=>GO,grads:()=>HO,greater:()=>Cn,greaterEqual:()=>Dr,ifft:()=>Dl,imag:()=>ed,image:()=>Qn,inTopKAsync:()=>eT,initializers:()=>t2,input:()=>v2,io:()=>qt,irfft:()=>nf,isFinite:()=>Qv,isInf:()=>ew,isNaN:()=>tw,keep:()=>Ht,kernel_impls:()=>hr,layers:()=>n2,leakyRelu:()=>td,less:()=>El,lessEqual:()=>Ss,linalg:()=>Cw,linspace:()=>gN,loadGraphModel:()=>gj,loadGraphModelSync:()=>bj,loadLayersModel:()=>aH,localResponseNormalization:()=>nw,log:()=>ta,log1p:()=>nd,logSigmoid:()=>aw,logSoftmax:()=>Gm,logSumExp:()=>Hm,logicalAnd:()=>Fa,logicalNot:()=>ad,logicalOr:()=>qm,logicalXor:()=>rw,losses:()=>dT,lowerBound:()=>yN,matMul:()=>$e,math:()=>kT,max:()=>fa,maxPool:()=>Mt,maxPool3d:()=>sw,maxPoolWithArgmax:()=>xN,maximum:()=>dr,mean:()=>Et,memory:()=>Hh,meshgrid:()=>vN,metrics:()=>Q2,min:()=>_l,minimum:()=>us,mirrorPad:()=>iw,mod:()=>ow,model:()=>iH,models:()=>eC,moments:()=>rd,movingAverage:()=>YN,mul:()=>z,multiRNNCell:()=>wN,multinomial:()=>kN,neg:()=>yt,nextFrame:()=>Ow,norm:()=>Ju,notEqual:()=>mi,oneHot:()=>Al,ones:()=>Jn,onesLike:()=>na,op:()=>L,outerProduct:()=>IN,pad:()=>xa,pad1d:()=>SN,pad2d:()=>NN,pad3d:()=>TN,pad4d:()=>CN,pool:()=>lw,pow:()=>Fr,prelu:()=>id,print:()=>vv,prod:()=>uw,profile:()=>BM,raggedGather:()=>_N,raggedRange:()=>EN,raggedTensorToTensor:()=>AN,rand:()=>FN,randomGamma:()=>MN,randomNormal:()=>Km,randomStandardNormal:()=>PN,randomUniform:()=>Ns,randomUniformInt:()=>ON,range:()=>fi,ready:()=>GM,real:()=>Fl,reciprocal:()=>mw,registerBackend:()=>Mm,registerCallbackConstructor:()=>lH,registerGradient:()=>AS,registerKernel:()=>qc,registerOp:()=>uq,regularizers:()=>tC,relu:()=>Ke,relu6:()=>Xm,removeBackend:()=>qM,reshape:()=>W,reverse:()=>ba,reverse1d:()=>LN,reverse2d:()=>zN,reverse3d:()=>WN,reverse4d:()=>BN,rfft:()=>ud,round:()=>Ym,rsqrt:()=>Zm,scalar:()=>ve,scatterND:()=>ZN,scatter_util:()=>rf,searchSorted:()=>jm,selu:()=>Jm,separableConv2d:()=>Ts,sequential:()=>oH,serialization:()=>ne,setBackend:()=>UM,setPlatform:()=>XM,setThreadsCount:()=>Qhe,setWasmPath:()=>Zhe,setWasmPaths:()=>Jhe,setWebGLContext:()=>K_,setdiff1dAsync:()=>VN,shared:()=>v1,sigmoid:()=>ma,sign:()=>fw,signal:()=>cT,sin:()=>Qm,sinh:()=>ef,slice:()=>Ue,slice1d:()=>od,slice2d:()=>tf,slice3d:()=>Wo,slice4d:()=>$l,slice_util:()=>Kt,softmax:()=>Xa,softplus:()=>zo,spaceToBatchND:()=>sd,sparse:()=>hT,sparseToDense:()=>JN,spectral:()=>pT,split:()=>zn,sqrt:()=>hn,square:()=>lt,squaredDifference:()=>af,squeeze:()=>Cs,stack:()=>Dt,step:()=>Bo,stridedSlice:()=>gw,string:()=>mT,sub:()=>pe,sum:()=>fe,sumOutType:()=>Rm,tan:()=>bw,tanh:()=>di,tensor:()=>bn,tensor1d:()=>je,tensor2d:()=>Aa,tensor3d:()=>pd,tensor4d:()=>Da,tensor5d:()=>UN,tensor6d:()=>GN,tensorScatterUpdate:()=>qN,tensor_util:()=>Ua,test_util:()=>$N,tidy:()=>P,tile:()=>Ln,time:()=>VM,topk:()=>xw,train:()=>js,transpose:()=>De,truncatedNormal:()=>of,unique:()=>vw,unregisterGradient:()=>_R,unregisterKernel:()=>CR,unsortedSegmentSum:()=>lf,unstack:()=>pt,upcastType:()=>ga,upperBound:()=>jN,util:()=>v,valueAndGrad:()=>qO,valueAndGrads:()=>jO,variable:()=>ww,variableGrads:()=>bN,version:()=>ome,version_converter:()=>xj,version_core:()=>dB,version_cpu:()=>bK,version_layers:()=>s0,version_wasm:()=>tme,version_webgl:()=>aQ,webgl:()=>rQ,webgl_util:()=>j_,where:()=>an,whereAsync:()=>kw,zeros:()=>Nt,zerosLike:()=>qe});var $D=Object.create,lv=Object.defineProperty,DD=Object.getOwnPropertyDescriptor,RD=Object.getOwnPropertyNames,MD=Object.getPrototypeOf,PD=Object.prototype.hasOwnProperty,Gt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Ee=(e,t)=>{for(var n in t)lv(e,n,{get:t[n],enumerable:!0})},OD=(e,t,n,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of RD(t))!PD.call(e,r)&&r!==n&&lv(e,r,{get:()=>t[r],enumerable:!(a=DD(t,r))||a.enumerable});return e},gs=(e,t,n)=>(n=e!=null?$D(MD(e)):{},OD(t||!e||!e.__esModule?lv(n,"default",{value:e,enumerable:!0}):n,e)),LD=Gt((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,H;return M?(S>>>=0,(H=0<=S&&S<256)&&(U=i[S],U)?U:(B=u(S,(S|0)<0?-1:0,!0),H&&(i[S]=B),B)):(S|=0,(H=-128<=S&&S<128)&&(U=s[S],U)?U:(B=u(S,S<0?-1:0,!1),H&&(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 F}else{if(S<=-b)return D;if(S+1>=b)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 H=l(p(B,8)),j=x,K=0;K>>0:this.low},$.toNumber=function(){return this.unsigned?(this.high>>>0)*f+(this.low>>>0):this.high*f+(this.low>>>0)},$.toString=function(S){if(S=S||10,S<2||36>>0,ee=J.toString(S);if(j=Z,j.isZero())return ee+K;for(;ee.length<6;)ee="0"+ee;K=""+ee+K}},$.getHighBits=function(){return this.high},$.getHighBitsUnsigned=function(){return this.high>>>0},$.getLowBits=function(){return this.low},$.getLowBitsUnsigned=function(){return this.low>>>0},$.getNumBitsAbs=function(){if(this.isNegative())return this.eq(D)?64:this.neg().getNumBitsAbs();for(var S=this.high!=0?this.high:this.low,M=31;M>0&&!(S&1<=0},$.isOdd=function(){return(this.low&1)===1},$.isEven=function(){return(this.low&1)===0},$.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},$.eq=$.equals,$.notEquals=function(S){return!this.eq(S)},$.neq=$.notEquals,$.ne=$.notEquals,$.lessThan=function(S){return this.comp(S)<0},$.lt=$.lessThan,$.lessThanOrEqual=function(S){return this.comp(S)<=0},$.lte=$.lessThanOrEqual,$.le=$.lessThanOrEqual,$.greaterThan=function(S){return this.comp(S)>0},$.gt=$.greaterThan,$.greaterThanOrEqual=function(S){return this.comp(S)>=0},$.gte=$.greaterThanOrEqual,$.ge=$.greaterThanOrEqual,$.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},$.comp=$.compare,$.negate=function(){return!this.unsigned&&this.eq(D)?D:this.not().add(I)},$.neg=$.negate,$.add=function(S){r(S)||(S=c(S));var M=this.high>>>16,B=this.high&65535,U=this.low>>>16,H=this.low&65535,j=S.high>>>16,K=S.high&65535,Z=S.low>>>16,J=S.low&65535,ee=0,ae=0,te=0,re=0;return re+=H+J,te+=re>>>16,re&=65535,te+=U+Z,ae+=te>>>16,te&=65535,ae+=B+K,ee+=ae>>>16,ae&=65535,ee+=M+j,ee&=65535,u(te<<16|re,ee<<16|ae,this.unsigned)},$.subtract=function(S){return r(S)||(S=c(S)),this.add(S.neg())},$.sub=$.subtract,$.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(D))return S.isOdd()?D:x;if(S.eq(D))return this.isOdd()?D: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(y)&&S.lt(y))return l(this.toNumber()*S.toNumber(),this.unsigned);var B=this.high>>>16,U=this.high&65535,H=this.low>>>16,j=this.low&65535,K=S.high>>>16,Z=S.high&65535,J=S.low>>>16,ee=S.low&65535,ae=0,te=0,re=0,se=0;return se+=j*ee,re+=se>>>16,se&=65535,re+=H*ee,te+=re>>>16,re&=65535,re+=j*J,te+=re>>>16,re&=65535,te+=U*ee,ae+=te>>>16,te&=65535,te+=H*J,ae+=te>>>16,te&=65535,te+=j*Z,ae+=te>>>16,te&=65535,ae+=B*ee+U*J+H*Z+j*K,ae&=65535,u(re<<16|se,ae<<16|te,this.unsigned)},$.mul=$.multiply,$.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,H;if(this.unsigned){if(S.unsigned||(S=S.toUnsigned()),S.gt(this))return w;if(S.gt(this.shru(1)))return T;H=w}else{if(this.eq(D)){if(S.eq(I)||S.eq(C))return D;if(S.eq(D))return I;var j=this.shr(1);return B=j.div(S).shl(1),B.eq(x)?S.isNegative()?I:C:(U=this.sub(S.mul(B)),H=B.add(U.div(S)),H)}else if(S.eq(D))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();H=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),H=H.add(J),U=U.sub(ee)}return H},$.div=$.divide,$.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))},$.mod=$.modulo,$.rem=$.modulo,$.not=function(){return u(~this.low,~this.high,this.unsigned)},$.and=function(S){return r(S)||(S=c(S)),u(this.low&S.low,this.high&S.high,this.unsigned)},$.or=function(S){return r(S)||(S=c(S)),u(this.low|S.low,this.high|S.high,this.unsigned)},$.xor=function(S){return r(S)||(S=c(S)),u(this.low^S.low,this.high^S.high,this.unsigned)},$.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)},$.shr=$.shiftRight,$.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)},$.shru=$.shiftRightUnsigned,$.shr_u=$.shiftRightUnsigned,$.toSigned=function(){return this.unsigned?u(this.low,this.high,!1):this},$.toUnsigned=function(){return this.unsigned?this:u(this.low,this.high,!0)},$.toBytes=function(S){return S?this.toBytesLE():this.toBytesBE()},$.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]},$.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)}}),zD=Gt(()=>{}),WD=Gt(()=>{}),BD=Gt((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)}),VD=Gt((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)}),UD=Gt((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)}),GD=Gt((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)}),HD=Gt((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,b,y=[],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&&(b=b+1640531527|0,h=y[g&127]^=m+b,f=h==0?f+1:0);for(f>=128&&(y[(c&&c.length||0)&127]=-1),f=127,g=4*128;g>0;--g)m=y[f+34&127],h=y[f=f+1&127],m^=m<<13,h^=h<<17,m^=m>>>15,h^=h>>>12,y[f]=m^h;d.w=b,d.X=y,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)}),qD=Gt((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)}),jD=Gt(()=>{}),KD=Gt((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 F=y(b(T.entropy?[I,w(a)]:I==null?x():I,3),E),D=new f(E),$=function(){for(var S=D.g(i),M=u,B=0;S=d;)S/=2,M/=2,B>>>=1;return(S+B)/M};return $.int32=function(){return D.g(4)|0},$.quick=function(){return D.g(4)/4294967296},$.double=$,y(w(D.S),a),(T.pass||C||function(S,M,B,U){return U&&(U.S&&g(U,D),S.state=function(){return g(D,{})}),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,F=0,D=E.i=E.j=0,$=E.S=[];for(C||(I=[C++]);F{var n=BD(),a=VD(),r=UD(),s=GD(),i=HD(),o=qD(),l=KD();l.alea=n,l.xor128=a,l.xorwow=r,l.xorshift7=s,l.xor4096=i,l.tychei=o,t.exports=l}),hS=Gt(()=>{}),uv=Gt(()=>{}),mS=Gt(()=>{}),XD=Gt(()=>{}),YD=Gt(()=>{}),ZD=Gt(()=>{}),JD=Gt((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!=Re&&ot(ue.buffer),ft}function i(){return ue.buffer!=Re&&ot(ue.buffer),qn}function o(){return ue.buffer!=Re&&ot(ue.buffer),Lt}function l(){return ue.buffer!=Re&&ot(ue.buffer),pn}function u(){return ue.buffer!=Re&&ot(ue.buffer),$n}function p(){return ue.buffer!=Re&&ot(ue.buffer),la}function d(){return ue.buffer!=Re&&ot(ue.buffer),Dn}var c=typeof r!="undefined"?r:{},h,m;c.ready=new Promise(function(R,q){h=R,m=q});var f;typeof process!="undefined"&&process.listeners&&(f={uncaughtException:process.listeners("uncaughtException"),unhandledRejection:process.listeners("unhandledRejection")});var g=Object.assign({},c),b=[],y="./this.program",x=(R,q)=>{throw q},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 F(R){return c.locateFile?c.locateFile(R,E):E+R}var D,$,S,M;function B(R){R instanceof Vs||J("exiting due to exception: "+R)}if(T){var U=uv(),H=mS();I?E=H.dirname(E)+"/":E=__dirname+"/",D=(q,le)=>(q=pl(q)?new URL(q):H.normalize(q),U.readFileSync(q,le?void 0:"utf8")),S=q=>{var le=D(q,!0);return le.buffer||(le=new Uint8Array(le)),le},$=(q,le,Ne)=>{q=pl(q)?new URL(q):H.normalize(q),U.readFile(q,function(Me,Fe){Me?Ne(Me):le(Fe.buffer)})},process.argv.length>1&&(y=process.argv[1].replace(/\\/g,"/")),b=process.argv.slice(2),process.on("uncaughtException",function(q){if(!(q instanceof Vs))throw q}),process.on("unhandledRejection",function(q){throw q}),x=(q,le)=>{if(Ia())throw process.exitCode=q,le;B(le),process.exit(q)},c.inspect=function(){return"[Emscripten Module object]"};let R;try{R=XD()}catch(q){throw console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?'),q}global.Worker=R.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||(D=R=>{var q=new XMLHttpRequest;return q.open("GET",R,!1),q.send(null),q.responseText},I&&(S=R=>{var q=new XMLHttpRequest;return q.open("GET",R,!1),q.responseType="arraybuffer",q.send(null),new Uint8Array(q.response)}),$=(R,q,le)=>{var Ne=new XMLHttpRequest;Ne.open("GET",R,!0),Ne.responseType="arraybuffer",Ne.onload=()=>{if(Ne.status==200||Ne.status==0&&Ne.response){q(Ne.response);return}le()},Ne.onerror=le,Ne.send(null)}),M=R=>document.title=R);T&&typeof performance=="undefined"&&(global.performance=YD().performance);var j=console.log.bind(console),K=console.warn.bind(console);T&&(j=R=>U.writeSync(1,R+` +var UD=Object.defineProperty;var GD=(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 tx=(e,t)=>{for(var n in t)UD(e,n,{get:t[n],enumerable:!0})};var ze={};tx(ze,{Abs:()=>Yl,Acos:()=>Ni,Acosh:()=>Ti,AdadeltaOptimizer:()=>Pw,AdagradOptimizer:()=>Ow,AdamOptimizer:()=>Lw,AdamaxOptimizer:()=>zw,Add:()=>ys,AddN:()=>Ci,All:()=>Zl,Any:()=>Jl,ArgMax:()=>Ql,ArgMin:()=>eu,Asin:()=>_i,Asinh:()=>Ei,Atan:()=>Ai,Atan2:()=>$i,Atanh:()=>Fi,AvgPool:()=>Di,AvgPool3D:()=>tu,AvgPool3DGrad:()=>$c,AvgPoolGrad:()=>Fc,BackendWasm:()=>l$,BatchMatMul:()=>Ri,BatchToSpaceND:()=>nu,Bincount:()=>au,BitwiseAnd:()=>ru,BroadcastArgs:()=>Dc,BroadcastTo:()=>PS,Callback:()=>dC,CallbackList:()=>m2,Cast:()=>Mi,Ceil:()=>Pi,ClipByValue:()=>xs,Complex:()=>km,ComplexAbs:()=>Rc,Concat:()=>su,Conv2D:()=>Oi,Conv2DBackpropFilter:()=>Im,Conv2DBackpropInput:()=>Li,Conv3D:()=>zi,Conv3DBackpropFilterV2:()=>iu,Conv3DBackpropInputV2:()=>ou,Cos:()=>Wi,Cosh:()=>Bi,CropAndResize:()=>uu,Cumprod:()=>lu,Cumsum:()=>Vi,CustomCallback:()=>g2,DataStorage:()=>xm,DenseBincount:()=>Mc,DepthToSpace:()=>pu,DepthwiseConv2dNative:()=>Ui,DepthwiseConv2dNativeBackpropFilter:()=>Sm,DepthwiseConv2dNativeBackpropInput:()=>Nm,Diag:()=>Pc,Dilation2D:()=>Gi,Dilation2DBackpropFilter:()=>Fl,Dilation2DBackpropInput:()=>Al,Draw:()=>kv,ENV:()=>vv,EarlyStopping:()=>hC,Einsum:()=>Tm,Elu:()=>qi,EluGrad:()=>cu,Environment:()=>RS,Equal:()=>du,Erf:()=>ji,Exp:()=>Ki,ExpandDims:()=>hu,Expm1:()=>Xi,FFT:()=>Cm,Fill:()=>Oc,FlipLeftRight:()=>mu,Floor:()=>Yi,FloorDiv:()=>Zi,FromPixels:()=>Hh,FusedBatchNorm:()=>Ji,FusedConv2D:()=>oi,FusedDepthwiseConv2D:()=>li,GPGPUContext:()=>Wh,GatherNd:()=>gu,GatherV2:()=>fu,GraphModel:()=>S1,Greater:()=>bu,GreaterEqual:()=>Qi,History:()=>f2,IFFT:()=>_m,Identity:()=>eo,Imag:()=>Em,InputSpec:()=>Bt,IsFinite:()=>to,IsInf:()=>no,IsNan:()=>ao,KernelBackend:()=>Ec,LRN:()=>oo,LRNGrad:()=>Su,LayerVariable:()=>o2,LayersModel:()=>Ar,LeakyRelu:()=>ro,Less:()=>yu,LessEqual:()=>xu,LinSpace:()=>vu,Log:()=>so,Log1p:()=>io,LogSoftmax:()=>LS,LogicalAnd:()=>wu,LogicalNot:()=>ku,LogicalOr:()=>Iu,LogicalXor:()=>OS,LowerBound:()=>MR,MathBackendCPU:()=>Mf,MathBackendWebGL:()=>Lf,MatrixBandPart:()=>PR,Max:()=>lo,MaxPool:()=>po,MaxPool3D:()=>Nu,MaxPool3DGrad:()=>zc,MaxPoolGrad:()=>Lc,MaxPoolWithArgmax:()=>Wc,Maximum:()=>uo,Mean:()=>co,Min:()=>ho,Minimum:()=>mo,MirrorPad:()=>fo,Mod:()=>go,MomentumOptimizer:()=>Ww,Multinomial:()=>Tu,Multiply:()=>bo,Neg:()=>Cu,NonMaxSuppressionV3:()=>Eu,NonMaxSuppressionV4:()=>Au,NonMaxSuppressionV5:()=>Fu,NotEqual:()=>_u,OP_SCOPE_SUFFIX:()=>Nv,OneHot:()=>yo,OnesLike:()=>$u,Optimizer:()=>Pr,OptimizerConstructors:()=>GT,Pack:()=>Du,PadV2:()=>xo,Pool:()=>OR,Pow:()=>vo,Prelu:()=>wo,Prod:()=>ko,RMSPropOptimizer:()=>Bw,RNN:()=>fr,RaggedGather:()=>Am,RaggedRange:()=>Fm,RaggedTensorToTensor:()=>$m,Range:()=>Bc,Rank:()=>vx,Real:()=>Dm,RealDiv:()=>Hi,Reciprocal:()=>Io,Reduction:()=>kn,Relu:()=>So,Relu6:()=>Co,Reshape:()=>Ru,ResizeBilinear:()=>To,ResizeBilinearGrad:()=>Pu,ResizeNearestNeighbor:()=>No,ResizeNearestNeighborGrad:()=>Mu,Reverse:()=>_o,RotateWithOffset:()=>Zu,Round:()=>Eo,Rsqrt:()=>Ao,SGDOptimizer:()=>ff,ScatterNd:()=>Ou,SearchSorted:()=>zu,Select:()=>Wu,Selu:()=>Fo,Sequential:()=>Ul,Sigmoid:()=>Mo,Sign:()=>Ro,Sin:()=>$o,Sinh:()=>Do,Slice:()=>Bu,Softmax:()=>zo,Softplus:()=>Po,SpaceToBatchND:()=>Vu,SparseFillEmptyRows:()=>Vc,SparseReshape:()=>Gu,SparseSegmentMean:()=>Uc,SparseSegmentSum:()=>Gc,SparseToDense:()=>Hu,SplitV:()=>Uu,Sqrt:()=>Oo,Square:()=>Hc,SquaredDifference:()=>Wo,StaticRegexReplace:()=>qc,Step:()=>ws,StridedSlice:()=>qu,StringNGrams:()=>jc,StringSplit:()=>Kc,StringToHashBucketFast:()=>Xc,Sub:()=>Bo,Sum:()=>Lo,SymbolicTensor:()=>Va,Tan:()=>Vo,Tanh:()=>Uo,Tensor:()=>Te,TensorBuffer:()=>Vt,TensorScatterUpdate:()=>Lu,Tile:()=>vs,TopK:()=>ju,Transform:()=>Ku,Transpose:()=>Er,Unique:()=>Yc,Unpack:()=>Xu,UnsortedSegmentSum:()=>Zc,UpperBound:()=>LR,Variable:()=>ls,ZerosLike:()=>Yu,_FusedMatMul:()=>ii,abs:()=>Wt,acos:()=>Av,acosh:()=>Fv,add:()=>X,addN:()=>uN,all:()=>Lm,any:()=>gc,argMax:()=>ci,argMin:()=>$v,asin:()=>Dv,asinh:()=>Rv,atan:()=>Mv,atan2:()=>Pv,atanh:()=>Ov,avgPool:()=>ya,avgPool3d:()=>zv,backend:()=>lN,backend_util:()=>N,basicLSTMCell:()=>hN,batchNorm:()=>Is,batchNorm2d:()=>Wv,batchNorm3d:()=>Bv,batchNorm4d:()=>Vv,batchToSpaceND:()=>rd,bincount:()=>Uv,bitwiseAnd:()=>mN,booleanMaskAsync:()=>rT,broadcastArgs:()=>fN,broadcastTo:()=>ai,broadcast_util:()=>Ju,browser:()=>jo,buffer:()=>Le,callbacks:()=>kq,cast:()=>se,ceil:()=>Gv,clipByValue:()=>sn,clone:()=>sr,complex:()=>Fr,concat:()=>et,concat1d:()=>Hv,concat2d:()=>qv,concat3d:()=>jv,concat4d:()=>Kv,constraints:()=>p2,conv1d:()=>zm,conv2d:()=>Rt,conv2dTranspose:()=>Wm,conv3d:()=>Yv,conv3dTranspose:()=>Zv,copyRegisteredKernels:()=>VR,cos:()=>sd,cosh:()=>Bm,cosineWindow:()=>pf,cumprod:()=>xc,cumsum:()=>Vm,customGrad:()=>ur,data:()=>PC,denseBincount:()=>Zh,deprecationWarn:()=>Ev,depthToSpace:()=>Jv,depthwiseConv2d:()=>Ss,deregisterOp:()=>Nq,device_util:()=>td,diag:()=>bN,dilation2d:()=>Qv,disableDeprecationWarnings:()=>eP,dispose:()=>_e,disposeVariables:()=>tP,div:()=>he,divNoNan:()=>ew,dot:()=>tw,dropout:()=>Fw,einsum:()=>xN,elu:()=>Qu,enableDebugMode:()=>QM,enableProdMode:()=>JM,enclosingPowerOfTwo:()=>$w,engine:()=>_a,ensureShape:()=>vN,env:()=>G,equal:()=>ea,erf:()=>nw,euclideanNorm:()=>sw,exp:()=>yn,expandDims:()=>nn,expm1:()=>iw,eye:()=>Um,fft:()=>md,fill:()=>xn,findBackend:()=>lP,findBackendFactory:()=>uP,floor:()=>tp,floorDiv:()=>Om,forceHalfFloat:()=>nA,fused:()=>zl,gather:()=>np,gatherND:()=>lT,gather_util:()=>Gw,getBackend:()=>iP,getGradient:()=>yx,getKernel:()=>qh,getKernelsForBackend:()=>jh,getThreadsCount:()=>Pme,gpgpu_util:()=>RE,grad:()=>s3,grads:()=>i3,greater:()=>Cn,greaterEqual:()=>Rr,ifft:()=>Ll,imag:()=>id,image:()=>Qn,inTopKAsync:()=>uT,initializers:()=>c2,input:()=>A2,io:()=>jt,irfft:()=>af,isFinite:()=>ow,isInf:()=>lw,isNaN:()=>uw,keep:()=>qt,kernel_impls:()=>mr,layers:()=>d2,leakyRelu:()=>od,less:()=>Rl,lessEqual:()=>Ns,linalg:()=>Mw,linspace:()=>NN,loadGraphModel:()=>Fj,loadGraphModelSync:()=>$j,loadLayersModel:()=>yH,localResponseNormalization:()=>pw,log:()=>ta,log1p:()=>ld,logSigmoid:()=>cw,logSoftmax:()=>Hm,logSumExp:()=>qm,logicalAnd:()=>Fa,logicalNot:()=>ud,logicalOr:()=>jm,logicalXor:()=>dw,losses:()=>wT,lowerBound:()=>CN,matMul:()=>$e,math:()=>FT,max:()=>fa,maxPool:()=>Mt,maxPool3d:()=>hw,maxPoolWithArgmax:()=>_N,maximum:()=>hr,mean:()=>Et,memory:()=>Yh,meshgrid:()=>EN,metrics:()=>uC,min:()=>Dl,minimum:()=>ps,mirrorPad:()=>mw,mod:()=>fw,model:()=>wH,models:()=>pC,moments:()=>pd,movingAverage:()=>sT,mul:()=>z,multiRNNCell:()=>AN,multinomial:()=>FN,neg:()=>yt,nextFrame:()=>Hw,norm:()=>ep,notEqual:()=>fi,oneHot:()=>Ml,ones:()=>Jn,onesLike:()=>na,op:()=>L,outerProduct:()=>$N,pad:()=>xa,pad1d:()=>DN,pad2d:()=>RN,pad3d:()=>MN,pad4d:()=>PN,pool:()=>gw,pow:()=>$r,prelu:()=>dd,print:()=>_v,prod:()=>bw,profile:()=>nP,raggedGather:()=>ON,raggedRange:()=>LN,raggedTensorToTensor:()=>zN,rand:()=>WN,randomGamma:()=>GN,randomNormal:()=>Xm,randomStandardNormal:()=>HN,randomUniform:()=>Ts,randomUniformInt:()=>qN,range:()=>gi,ready:()=>sP,real:()=>Pl,reciprocal:()=>kw,registerBackend:()=>Pm,registerCallbackConstructor:()=>IH,registerGradient:()=>zS,registerKernel:()=>Jc,registerOp:()=>Sq,regularizers:()=>cC,relu:()=>Ke,relu6:()=>Ym,removeBackend:()=>oP,reshape:()=>W,reverse:()=>ba,reverse1d:()=>jN,reverse2d:()=>KN,reverse3d:()=>XN,reverse4d:()=>YN,rfft:()=>fd,round:()=>Zm,rsqrt:()=>Jm,scalar:()=>ve,scatterND:()=>iT,scatter_util:()=>sf,searchSorted:()=>Km,selu:()=>Qm,separableConv2d:()=>Cs,sequential:()=>kH,serialization:()=>ne,setBackend:()=>rP,setPlatform:()=>pP,setThreadsCount:()=>Mme,setWasmPath:()=>Dme,setWasmPaths:()=>Rme,setWebGLContext:()=>rE,setdiff1dAsync:()=>ZN,shared:()=>_1,sigmoid:()=>ma,sign:()=>Iw,signal:()=>vT,sin:()=>ef,sinh:()=>tf,slice:()=>Ue,slice1d:()=>hd,slice2d:()=>nf,slice3d:()=>Ho,slice4d:()=>Ol,slice_util:()=>Xt,softmax:()=>Xa,softplus:()=>Go,spaceToBatchND:()=>cd,sparse:()=>kT,sparseToDense:()=>oT,spectral:()=>xT,split:()=>zn,sqrt:()=>hn,square:()=>lt,squaredDifference:()=>rf,squeeze:()=>_s,stack:()=>Dt,step:()=>qo,stridedSlice:()=>Sw,string:()=>IT,sub:()=>pe,sum:()=>fe,sumOutType:()=>Mm,tan:()=>Nw,tanh:()=>hi,tensor:()=>bn,tensor1d:()=>je,tensor2d:()=>Aa,tensor3d:()=>gd,tensor4d:()=>Da,tensor5d:()=>JN,tensor6d:()=>QN,tensorScatterUpdate:()=>tT,tensor_util:()=>Ua,test_util:()=>BN,tidy:()=>P,tile:()=>Ln,time:()=>aP,topk:()=>Cw,train:()=>Ks,transpose:()=>De,truncatedNormal:()=>lf,unique:()=>_w,unregisterGradient:()=>BR,unregisterKernel:()=>WR,unsortedSegmentSum:()=>uf,unstack:()=>pt,upcastType:()=>ga,upperBound:()=>nT,util:()=>w,valueAndGrad:()=>o3,valueAndGrads:()=>l3,variable:()=>Ew,variableGrads:()=>TN,version:()=>Ume,version_converter:()=>Rj,version_core:()=>CB,version_cpu:()=>$K,version_layers:()=>h0,version_wasm:()=>Ome,version_webgl:()=>wQ,webgl:()=>kQ,webgl_util:()=>aE,where:()=>rn,whereAsync:()=>Aw,zeros:()=>Nt,zerosLike:()=>qe});var HD=Object.create,gv=Object.defineProperty,qD=Object.getOwnPropertyDescriptor,jD=Object.getOwnPropertyNames,KD=Object.getPrototypeOf,XD=Object.prototype.hasOwnProperty,Gt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Ee=(e,t)=>{for(var n in t)gv(e,n,{get:t[n],enumerable:!0})},YD=(e,t,n,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of jD(t))!XD.call(e,r)&&r!==n&&gv(e,r,{get:()=>t[r],enumerable:!(a=qD(t,r))||a.enumerable});return e},bs=(e,t,n)=>(n=e!=null?HD(KD(e)):{},YD(t||!e||!e.__esModule?gv(n,"default",{value:e,enumerable:!0}):n,e)),ZD=Gt((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,H;return M?(S>>>=0,(H=0<=S&&S<256)&&(U=i[S],U)?U:(B=u(S,(S|0)<0?-1:0,!0),H&&(i[S]=B),B)):(S|=0,(H=-128<=S&&S<128)&&(U=s[S],U)?U:(B=u(S,S<0?-1:0,!1),H&&(s[S]=B),B))}a.fromInt=o;function l(S,M){if(isNaN(S))return M?v:x;if(M){if(S<0)return v;if(S>=g)return F}else{if(S<=-b)return D;if(S+1>=b)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 H=l(p(B,8)),j=x,K=0;K>>0:this.low},$.toNumber=function(){return this.unsigned?(this.high>>>0)*f+(this.low>>>0):this.high*f+(this.low>>>0)},$.toString=function(S){if(S=S||10,S<2||36>>0,ee=J.toString(S);if(j=Z,j.isZero())return ee+K;for(;ee.length<6;)ee="0"+ee;K=""+ee+K}},$.getHighBits=function(){return this.high},$.getHighBitsUnsigned=function(){return this.high>>>0},$.getLowBits=function(){return this.low},$.getLowBitsUnsigned=function(){return this.low>>>0},$.getNumBitsAbs=function(){if(this.isNegative())return this.eq(D)?64:this.neg().getNumBitsAbs();for(var S=this.high!=0?this.high:this.low,M=31;M>0&&!(S&1<=0},$.isOdd=function(){return(this.low&1)===1},$.isEven=function(){return(this.low&1)===0},$.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},$.eq=$.equals,$.notEquals=function(S){return!this.eq(S)},$.neq=$.notEquals,$.ne=$.notEquals,$.lessThan=function(S){return this.comp(S)<0},$.lt=$.lessThan,$.lessThanOrEqual=function(S){return this.comp(S)<=0},$.lte=$.lessThanOrEqual,$.le=$.lessThanOrEqual,$.greaterThan=function(S){return this.comp(S)>0},$.gt=$.greaterThan,$.greaterThanOrEqual=function(S){return this.comp(S)>=0},$.gte=$.greaterThanOrEqual,$.ge=$.greaterThanOrEqual,$.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},$.comp=$.compare,$.negate=function(){return!this.unsigned&&this.eq(D)?D:this.not().add(I)},$.neg=$.negate,$.add=function(S){r(S)||(S=c(S));var M=this.high>>>16,B=this.high&65535,U=this.low>>>16,H=this.low&65535,j=S.high>>>16,K=S.high&65535,Z=S.low>>>16,J=S.low&65535,ee=0,ae=0,te=0,re=0;return re+=H+J,te+=re>>>16,re&=65535,te+=U+Z,ae+=te>>>16,te&=65535,ae+=B+K,ee+=ae>>>16,ae&=65535,ee+=M+j,ee&=65535,u(te<<16|re,ee<<16|ae,this.unsigned)},$.subtract=function(S){return r(S)||(S=c(S)),this.add(S.neg())},$.sub=$.subtract,$.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(D))return S.isOdd()?D:x;if(S.eq(D))return this.isOdd()?D: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(y)&&S.lt(y))return l(this.toNumber()*S.toNumber(),this.unsigned);var B=this.high>>>16,U=this.high&65535,H=this.low>>>16,j=this.low&65535,K=S.high>>>16,Z=S.high&65535,J=S.low>>>16,ee=S.low&65535,ae=0,te=0,re=0,ie=0;return ie+=j*ee,re+=ie>>>16,ie&=65535,re+=H*ee,te+=re>>>16,re&=65535,re+=j*J,te+=re>>>16,re&=65535,te+=U*ee,ae+=te>>>16,te&=65535,te+=H*J,ae+=te>>>16,te&=65535,te+=j*Z,ae+=te>>>16,te&=65535,ae+=B*ee+U*J+H*Z+j*K,ae&=65535,u(re<<16|ie,ae<<16|te,this.unsigned)},$.mul=$.multiply,$.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?v:x;var B,U,H;if(this.unsigned){if(S.unsigned||(S=S.toUnsigned()),S.gt(this))return v;if(S.gt(this.shru(1)))return T;H=v}else{if(this.eq(D)){if(S.eq(I)||S.eq(C))return D;if(S.eq(D))return I;var j=this.shr(1);return B=j.div(S).shl(1),B.eq(x)?S.isNegative()?I:C:(U=this.sub(S.mul(B)),H=B.add(U.div(S)),H)}else if(S.eq(D))return this.unsigned?v: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();H=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),H=H.add(J),U=U.sub(ee)}return H},$.div=$.divide,$.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))},$.mod=$.modulo,$.rem=$.modulo,$.not=function(){return u(~this.low,~this.high,this.unsigned)},$.and=function(S){return r(S)||(S=c(S)),u(this.low&S.low,this.high&S.high,this.unsigned)},$.or=function(S){return r(S)||(S=c(S)),u(this.low|S.low,this.high|S.high,this.unsigned)},$.xor=function(S){return r(S)||(S=c(S)),u(this.low^S.low,this.high^S.high,this.unsigned)},$.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)},$.shr=$.shiftRight,$.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)},$.shru=$.shiftRightUnsigned,$.shr_u=$.shiftRightUnsigned,$.toSigned=function(){return this.unsigned?u(this.low,this.high,!1):this},$.toUnsigned=function(){return this.unsigned?this:u(this.low,this.high,!0)},$.toBytes=function(S){return S?this.toBytesLE():this.toBytesBE()},$.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]},$.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)}}),JD=Gt(()=>{}),QD=Gt(()=>{}),eR=Gt((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)}),tR=Gt((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)}),nR=Gt((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)}),aR=Gt((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)}),rR=Gt((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,b,y=[],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&&(b=b+1640531527|0,h=y[g&127]^=m+b,f=h==0?f+1:0);for(f>=128&&(y[(c&&c.length||0)&127]=-1),f=127,g=4*128;g>0;--g)m=y[f+34&127],h=y[f=f+1&127],m^=m<<13,h^=h<<17,m^=m>>>15,h^=h>>>12,y[f]=m^h;d.w=b,d.X=y,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)}),sR=Gt((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)}),iR=Gt(()=>{}),oR=Gt((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 F=y(b(T.entropy?[I,v(a)]:I==null?x():I,3),E),D=new f(E),$=function(){for(var S=D.g(i),M=u,B=0;S=d;)S/=2,M/=2,B>>>=1;return(S+B)/M};return $.int32=function(){return D.g(4)|0},$.quick=function(){return D.g(4)/4294967296},$.double=$,y(v(D.S),a),(T.pass||C||function(S,M,B,U){return U&&(U.S&&g(U,D),S.state=function(){return g(D,{})}),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,F=0,D=E.i=E.j=0,$=E.S=[];for(C||(I=[C++]);F{var n=eR(),a=tR(),r=nR(),s=aR(),i=rR(),o=sR(),l=oR();l.alea=n,l.xor128=a,l.xorwow=r,l.xorshift7=s,l.xor4096=i,l.tychei=o,t.exports=l}),kS=Gt(()=>{}),bv=Gt(()=>{}),IS=Gt(()=>{}),lR=Gt(()=>{}),uR=Gt(()=>{}),pR=Gt(()=>{}),cR=Gt((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!=Re&&ot(ue.buffer),ft}function i(){return ue.buffer!=Re&&ot(ue.buffer),qn}function o(){return ue.buffer!=Re&&ot(ue.buffer),Lt}function l(){return ue.buffer!=Re&&ot(ue.buffer),pn}function u(){return ue.buffer!=Re&&ot(ue.buffer),$n}function p(){return ue.buffer!=Re&&ot(ue.buffer),la}function d(){return ue.buffer!=Re&&ot(ue.buffer),Dn}var c=typeof r!="undefined"?r:{},h,m;c.ready=new Promise(function(R,q){h=R,m=q});var f;typeof process!="undefined"&&process.listeners&&(f={uncaughtException:process.listeners("uncaughtException"),unhandledRejection:process.listeners("unhandledRejection")});var g=Object.assign({},c),b=[],y="./this.program",x=(R,q)=>{throw q},v=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 F(R){return c.locateFile?c.locateFile(R,E):E+R}var D,$,S,M;function B(R){R instanceof Us||J("exiting due to exception: "+R)}if(T){var U=bv(),H=IS();I?E=H.dirname(E)+"/":E=__dirname+"/",D=(q,le)=>(q=fl(q)?new URL(q):H.normalize(q),U.readFileSync(q,le?void 0:"utf8")),S=q=>{var le=D(q,!0);return le.buffer||(le=new Uint8Array(le)),le},$=(q,le,Ne)=>{q=fl(q)?new URL(q):H.normalize(q),U.readFile(q,function(Me,Fe){Me?Ne(Me):le(Fe.buffer)})},process.argv.length>1&&(y=process.argv[1].replace(/\\/g,"/")),b=process.argv.slice(2),process.on("uncaughtException",function(q){if(!(q instanceof Us))throw q}),process.on("unhandledRejection",function(q){throw q}),x=(q,le)=>{if(Ia())throw process.exitCode=q,le;B(le),process.exit(q)},c.inspect=function(){return"[Emscripten Module object]"};let R;try{R=lR()}catch(q){throw console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?'),q}global.Worker=R.Worker}else(v||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||(D=R=>{var q=new XMLHttpRequest;return q.open("GET",R,!1),q.send(null),q.responseText},I&&(S=R=>{var q=new XMLHttpRequest;return q.open("GET",R,!1),q.responseType="arraybuffer",q.send(null),new Uint8Array(q.response)}),$=(R,q,le)=>{var Ne=new XMLHttpRequest;Ne.open("GET",R,!0),Ne.responseType="arraybuffer",Ne.onload=()=>{if(Ne.status==200||Ne.status==0&&Ne.response){q(Ne.response);return}le()},Ne.onerror=le,Ne.send(null)}),M=R=>document.title=R);T&&typeof performance=="undefined"&&(global.performance=uR().performance);var j=console.log.bind(console),K=console.warn.bind(console);T&&(j=R=>U.writeSync(1,R+` `),K=R=>U.writeSync(2,R+` -`));var Z=c.print||j,J=c.printErr||K;Object.assign(c,g),g=null,c.arguments&&(b=c.arguments),c.thisProgram&&(y=c.thisProgram),c.quit&&(x=c.quit);var ee=4,ae=Atomics.load,te=Atomics.store,re=Atomics.compareExchange,se;c.wasmBinary&&(se=c.wasmBinary);var ye=c.noExitRuntime||!0;typeof WebAssembly!="object"&&Bs("no native wasm support detected");var ue,be,ke=!1,Se;function We(R,q){R||Bs(q)}var Ge=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function ht(R,q,le){q>>>=0;for(var Ne=q+le,Me=q;R[Me]&&!(Me>=Ne);)++Me;if(Me-q>16&&R.buffer&&Ge)return Ge.decode(R.buffer instanceof SharedArrayBuffer?R.slice(q,Me):R.subarray(q,Me));for(var Fe="";q>10,56320|pa&1023)}}return Fe}function st(R,q){return R>>>=0,R?ht(i(),R,q):""}function tt(R,q,le,Ne){if(le>>>=0,!(Ne>0))return 0;for(var Me=le,Fe=le+Ne-1,me=0;me=55296&&we<=57343){var _t=R.charCodeAt(++me);we=65536+((we&1023)<<10)|_t&1023}if(we<=127){if(le>=Fe)break;q[le++>>>0]=we}else if(we<=2047){if(le+1>=Fe)break;q[le++>>>0]=192|we>>6,q[le++>>>0]=128|we&63}else if(we<=65535){if(le+2>=Fe)break;q[le++>>>0]=224|we>>12,q[le++>>>0]=128|we>>6&63,q[le++>>>0]=128|we&63}else{if(le+3>=Fe)break;q[le++>>>0]=240|we>>18,q[le++>>>0]=128|we>>12&63,q[le++>>>0]=128|we>>6&63,q[le++>>>0]=128|we&63}}return q[le>>>0]=0,le-Me}function nt(R,q,le){return tt(R,i(),q,le)}var Re,ft,qn,Lt,oa,pn,$n,la,Dn;C&&(Re=c.buffer);function ot(R){Re=R,c.HEAP8=ft=new Int8Array(R),c.HEAP16=Lt=new Int16Array(R),c.HEAP32=pn=new Int32Array(R),c.HEAPU8=qn=new Uint8Array(R),c.HEAPU16=oa=new Uint16Array(R),c.HEAPU32=$n=new Uint32Array(R),c.HEAPF32=la=new Float32Array(R),c.HEAPF64=Dn=new Float64Array(R)}var Rn=c.INITIAL_MEMORY||16777216;if(C)ue=c.wasmMemory,Re=c.buffer;else if(c.wasmMemory)ue=c.wasmMemory;else if(ue=new WebAssembly.Memory({initial:Rn/65536,maximum:65536,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&&J("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and/or recent version)"),Error("bad memory");ue&&(Re=ue.buffer),Rn=Re.byteLength,ot(Re);var jn,xr=[],ll=[],Qa=[],Mp=!1;function Ia(){return ye}function Hr(){if(c.preRun)for(typeof c.preRun=="function"&&(c.preRun=[c.preRun]);c.preRun.length;)wg(c.preRun.shift());Op(xr)}function Jt(){Mp=!0,!C&&Op(ll)}function Wd(){if(!C){if(c.postRun)for(typeof c.postRun=="function"&&(c.postRun=[c.postRun]);c.postRun.length;)xk(c.postRun.shift());Op(Qa)}}function wg(R){xr.unshift(R)}function kg(R){ll.unshift(R)}function xk(R){Qa.unshift(R)}var qr=0,ul=null,vr=null;function Ig(R){qr++,c.monitorRunDependencies&&c.monitorRunDependencies(qr)}function Bd(R){if(qr--,c.monitorRunDependencies&&c.monitorRunDependencies(qr),qr==0&&(ul!==null&&(clearInterval(ul),ul=null),vr)){var q=vr;vr=null,q()}}function Bs(R){c.onAbort&&c.onAbort(R),R="Aborted("+R+")",J(R),ke=!0,Se=1,R+=". Build with -sASSERTIONS for more info.";var q=new WebAssembly.RuntimeError(R);throw m(q),q}var Sg="data:application/octet-stream;base64,";function Vd(R){return R.startsWith(Sg)}function pl(R){return R.startsWith("file://")}var gn;gn="tfjs-backend-wasm-threaded-simd.wasm",Vd(gn)||(gn=F(gn));function Ud(R){try{if(R==gn&&se)return new Uint8Array(se);if(S)return S(R);throw"both async and sync fetching of the wasm failed"}catch(q){Bs(q)}}function Ng(){if(!se&&(w||I)){if(typeof fetch=="function"&&!pl(gn))return fetch(gn,{credentials:"same-origin"}).then(function(R){if(!R.ok)throw"failed to load wasm binary file at '"+gn+"'";return R.arrayBuffer()}).catch(function(){return Ud(gn)});if($)return new Promise(function(R,q){$(gn,function(le){R(new Uint8Array(le))},q)})}return Promise.resolve().then(function(){return Ud(gn)})}function Tg(){var R={env:nh,wasi_snapshot_preview1:nh};function q(me,we){var _t=me.exports;if(c.asm=_t,Mg(c.asm._emscripten_tls_init),jn=c.asm.__indirect_function_table,kg(c.asm.__wasm_call_ctors),be=we,!C){var pa=Ae.unusedWorkers.length;Ae.unusedWorkers.forEach(function(kr){Ae.loadWasmModuleToWorker(kr,function(){--pa||Bd("wasm-instantiate")})})}}C||Ig("wasm-instantiate");function le(me){q(me.instance,me.module)}function Ne(me){return Ng().then(function(we){return WebAssembly.instantiate(we,R)}).then(function(we){return we}).then(me,function(we){J("failed to asynchronously prepare wasm: "+we),Bs(we)})}function Me(){return!se&&typeof WebAssembly.instantiateStreaming=="function"&&!Vd(gn)&&!pl(gn)&&!T&&typeof fetch=="function"?fetch(gn,{credentials:"same-origin"}).then(function(me){var we=WebAssembly.instantiateStreaming(me,R);return we.then(le,function(_t){return J("wasm streaming compile failed: "+_t),J("falling back to ArrayBuffer instantiation"),Ne(le)})}):Ne(le)}if(c.instantiateWasm)try{var Fe=c.instantiateWasm(R,q);return Fe}catch(me){J("Module.instantiateWasm callback failed with error: "+me),m(me)}return Me().catch(m),{}}var vk,wk,Gd={};function Vs(R){this.name="ExitStatus",this.message="Program terminated with exit("+R+")",this.status=R}function Cg(R){var q=Ae.pthreads[R];delete Ae.pthreads[R],q.terminate(),Gy(R),Ae.runningWorkers.splice(Ae.runningWorkers.indexOf(q),1),q.pthread_ptr=0}function _g(R){var q=Ae.pthreads[R];q.postMessage({cmd:"cancel"})}function Pp(R){var q=Ae.pthreads[R];We(q),Ae.returnWorkerToPool(q)}function Eg(R){var q=Ae.getNewWorker();if(!q)return 6;Ae.runningWorkers.push(q),Ae.pthreads[R.pthread_ptr]=q,q.pthread_ptr=R.pthread_ptr;var le={cmd:"run",start_routine:R.startRoutine,arg:R.arg,pthread_ptr:R.pthread_ptr};return q.runPthread=()=>{T&&q.ref(),q.postMessage(le,R.transferList),delete q.runPthread},q.loaded&&q.runPthread(),0}var Hd={varargs:void 0,get:function(){Hd.varargs+=4;var R=l()[Hd.varargs-4>>>2];return R},getStr:function(R){var q=st(R);return q}};function qd(R){if(C)return jr(1,1,R);Se=R,Ia()||(Ae.terminateAllThreads(),c.onExit&&c.onExit(R),ke=!0),x(R,new Vs(R))}function Ag(R,q){if(Se=R,!q&&C)throw Kd(R),"unwind";qd(R)}var jd=Ag;function Fg(R){if(R instanceof Vs||R=="unwind")return Se;x(1,R)}var Ae={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init:function(){C?Ae.initWorker():Ae.initMainThread()},initMainThread:function(){for(var R=8;R--;)Ae.allocateUnusedWorker()},initWorker:function(){ye=!1},setExitStatus:function(R){Se=R},terminateAllThreads:function(){for(var R of Object.values(Ae.pthreads))Ae.returnWorkerToPool(R);for(var R of Ae.unusedWorkers)R.terminate();Ae.unusedWorkers=[]},returnWorkerToPool:function(R){var q=R.pthread_ptr;delete Ae.pthreads[q],Ae.unusedWorkers.push(R),Ae.runningWorkers.splice(Ae.runningWorkers.indexOf(R),1),R.pthread_ptr=0,T&&R.unref(),Gy(q)},receiveObjectTransfer:function(R){},threadInitTLS:function(){Ae.tlsInitFunctions.forEach(R=>R())},loadWasmModuleToWorker:function(R,q){R.onmessage=Fe=>{var me=Fe.data,we=me.cmd;if(R.pthread_ptr&&(Ae.currentProxiedOperationCallerThread=R.pthread_ptr),me.targetThread&&me.targetThread!=lh()){var _t=Ae.pthreads[me.targetThread];_t?_t.postMessage(me,me.transferList):J('Internal error! Worker sent a message "'+we+'" to target pthread '+me.targetThread+", but that thread no longer exists!"),Ae.currentProxiedOperationCallerThread=void 0;return}we==="processProxyingQueue"?Lp(me.queue):we==="spawnThread"?Eg(me):we==="cleanupThread"?Pp(me.thread):we==="killThread"?Cg(me.thread):we==="cancelThread"?_g(me.thread):we==="loaded"?(R.loaded=!0,T&&R.unref(),q&&q(R),R.runPthread&&R.runPthread()):we==="print"?Z("Thread "+me.threadId+": "+me.text):we==="printErr"?J("Thread "+me.threadId+": "+me.text):we==="alert"?alert("Thread "+me.threadId+": "+me.text):me.target==="setimmediate"?R.postMessage(me):we==="callHandler"?c[me.handler](...me.args):we&&J("worker sent an unknown command "+we),Ae.currentProxiedOperationCallerThread=void 0},R.onerror=Fe=>{var me="worker sent an error!";throw J(me+" "+Fe.filename+":"+Fe.lineno+": "+Fe.message),Fe},T&&(R.on("message",function(Fe){R.onmessage({data:Fe})}),R.on("error",function(Fe){R.onerror(Fe)}),R.on("detachedExit",function(){}));var le=[],Ne=["onExit","onAbort","print","printErr"];for(var Me of Ne)c.hasOwnProperty(Me)&&le.push(Me);R.postMessage({cmd:"load",handlers:le,urlOrBlob:c.mainScriptUrlOrBlob||a,wasmMemory:ue,wasmModule:be})},allocateUnusedWorker:function(){var R,q=F("tfjs-backend-wasm-threaded-simd.worker.js");R=new Worker(q),Ae.unusedWorkers.push(R)},getNewWorker:function(){return Ae.unusedWorkers.length==0&&(Ae.allocateUnusedWorker(),Ae.loadWasmModuleToWorker(Ae.unusedWorkers[0])),Ae.unusedWorkers.pop()}};c.PThread=Ae;function Op(R){for(;R.length>0;)R.shift()(c)}function $g(){var R=lh(),q=l()[R+52>>>2],le=l()[R+56>>>2],Ne=q-le;Ck(q,Ne),uh(q)}c.establishStackSpace=$g;function Kd(R){if(C)return jr(2,0,R);try{jd(R)}catch(q){Fg(q)}}var cl=[];function Dg(R){var q=cl[R];return q||(R>=cl.length&&(cl.length=R+1),cl[R]=q=jn.get(R)),q}function Rg(R,q){var le=Dg(R)(q);Ia()?Ae.setExitStatus(le):Tk(le)}c.invokeEntryPoint=Rg;function Mg(R){Ae.tlsInitFunctions.push(R)}function Pg(R){Ik(R,!I,1,!w),Ae.threadInitTLS()}function Og(R){C?postMessage({cmd:"cleanupThread",thread:R}):Pp(R)}function Xd(R,q,le,Ne){return C?jr(3,1,R,q,le,Ne):Yd(R,q,le,Ne)}function Yd(R,q,le,Ne){if(typeof SharedArrayBuffer=="undefined")return J("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;var Me=[],Fe=0;if(C&&(Me.length===0||Fe))return Xd(R,q,le,Ne);if(Fe)return Fe;var me={startRoutine:le,pthread_ptr:R,arg:Ne,transferList:Me};return C?(me.cmd="spawnThread",postMessage(me,Me),0):Eg(me)}function Lg(){return 65536}var zg=!0;function Wg(){return zg}function Lp(R){Atomics.store(l(),R>>2,1),lh()&&Nk(R),Atomics.compareExchange(l(),R>>2,1,0)}c.executeNotifiedProxyingQueue=Lp;function Bg(R,q,le,Ne){if(R==q)setTimeout(()=>Lp(Ne));else if(C)postMessage({targetThread:R,cmd:"processProxyingQueue",queue:Ne});else{var Me=Ae.pthreads[R];if(!Me)return;Me.postMessage({cmd:"processProxyingQueue",queue:Ne})}return 1}function Vg(R,q,le){return-1}function Ug(){Bs("")}function Us(R){Us.shown||(Us.shown={}),Us.shown[R]||(Us.shown[R]=1,T&&(R="warning: "+R),J(R))}function Gg(){T||I||Us("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function Hg(){return Date.now()}function Zd(){return 4294901760}function qg(){return Zd()}var zp;T?zp=()=>{var R=process.hrtime();return R[0]*1e3+R[1]/1e6}:zp=()=>performance.timeOrigin+performance.now();function jg(R,q,le){i().copyWithin(R>>>0,q>>>0,q+le>>>0)}function Kg(){return T?ZD().cpus().length:navigator.hardwareConcurrency}function Xg(R){var q=Hy(),le=R();return uh(q),le}function jr(R,q){var le=arguments.length-2,Ne=arguments;return Xg(()=>{for(var Me=le,Fe=ph(Me*8),me=Fe>>3,we=0;we>>0]=_t}return Sk(R,Me,Fe,q)})}var Wp=[];function Yg(R,q,le){Wp.length=q;for(var Ne=le>>3,Me=0;Me>>0];var Fe=R<0,me=Fe?Gd[-R-1]:sb[R];return me.apply(null,Wp)}function Zg(R){try{return ue.grow(R-Re.byteLength+65535>>>16),ot(ue.buffer),1}catch(q){}}function Jg(R){var q=i().length;if(R=R>>>0,R<=q)return!1;var le=Zd();if(R>le)return!1;let Ne=(_t,pa)=>_t+(pa-_t%pa)%pa;for(var Me=1;Me<=4;Me*=2){var Fe=q*(1+.2/Me);Fe=Math.min(Fe,R+100663296);var me=Math.min(le,Ne(Math.max(R,Fe),65536)),we=Zg(me);if(we)return!0}return!1}function Qg(){throw"unwind"}function Jd(R){return C?jr(4,1,R):52}function Qd(R,q,le,Ne,Me){return C?jr(5,1,R,q,le,Ne,Me):70}var eb=[null,[],[]];function tb(R,q){var le=eb[R];q===0||q===10?((R===1?Z:J)(ht(le,0)),le.length=0):le.push(q)}function eh(R,q,le,Ne){if(C)return jr(6,1,R,q,le,Ne);for(var Me=0,Fe=0;Fe>>2],we=u()[q+4>>>2];q+=8;for(var _t=0;_t>>0]);Me+=we}return u()[Ne>>>2]=Me,0}function th(R){var q=c["_"+R];return q}function nb(R,q){s().set(R,q>>>0)}function ab(R,q,le,Ne,Me){var Fe={string:ca=>{var fl=0;if(ca!=null&&ca!==0){var Ak=(ca.length<<2)+1;fl=ph(Ak),nt(ca,fl,Ak)}return fl},array:ca=>{var fl=ph(ca.length);return nb(ca,fl),fl}};function me(ca){return q==="string"?st(ca):q==="boolean"?!!ca:ca}var we=th(R),_t=[],pa=0;if(Ne)for(var kr=0;krme==="number"||me==="boolean"),Fe=q!=="string";return Fe&&Me&&!Ne?th(R):function(){return ab(R,q,le,arguments,Ne)}}Ae.init();var sb=[null,qd,Kd,Xd,Jd,Qd,eh],nh={__emscripten_init_main_thread_js:Pg,__emscripten_thread_cleanup:Og,__pthread_create_js:Yd,_emscripten_default_pthread_stack_size:Lg,_emscripten_get_now_is_monotonic:Wg,_emscripten_notify_task_queue:Bg,_emscripten_set_offscreencanvas_size:Vg,abort:Ug,emscripten_check_blocking_allowed:Gg,emscripten_date_now:Hg,emscripten_get_heap_max:qg,emscripten_get_now:zp,emscripten_memcpy_big:jg,emscripten_num_logical_cores:Kg,emscripten_receive_on_main_thread_js:Yg,emscripten_resize_heap:Jg,emscripten_unwind_to_js_event_loop:Qg,exit:jd,fd_close:Jd,fd_seek:Qd,fd_write:eh,memory:ue||c.wasmMemory},kk=Tg(),ib=c.___wasm_call_ctors=function(){return(ib=c.___wasm_call_ctors=c.asm.__wasm_call_ctors).apply(null,arguments)},ob=c._init=function(){return(ob=c._init=c.asm.init).apply(null,arguments)},lb=c._init_with_threads_count=function(){return(lb=c._init_with_threads_count=c.asm.init_with_threads_count).apply(null,arguments)},ub=c._get_threads_count=function(){return(ub=c._get_threads_count=c.asm.get_threads_count).apply(null,arguments)},pb=c._register_tensor=function(){return(pb=c._register_tensor=c.asm.register_tensor).apply(null,arguments)},cb=c._dispose_data=function(){return(cb=c._dispose_data=c.asm.dispose_data).apply(null,arguments)},db=c._dispose=function(){return(db=c._dispose=c.asm.dispose).apply(null,arguments)},hb=c._Abs=function(){return(hb=c._Abs=c.asm.Abs).apply(null,arguments)},mb=c._Acos=function(){return(mb=c._Acos=c.asm.Acos).apply(null,arguments)},fb=c._Acosh=function(){return(fb=c._Acosh=c.asm.Acosh).apply(null,arguments)},gb=c._Add=function(){return(gb=c._Add=c.asm.Add).apply(null,arguments)},bb=c._AddN=function(){return(bb=c._AddN=c.asm.AddN).apply(null,arguments)},yb=c._All=function(){return(yb=c._All=c.asm.All).apply(null,arguments)},xb=c._Any=function(){return(xb=c._Any=c.asm.Any).apply(null,arguments)},vb=c._ArgMax=function(){return(vb=c._ArgMax=c.asm.ArgMax).apply(null,arguments)},wb=c._ArgMin=function(){return(wb=c._ArgMin=c.asm.ArgMin).apply(null,arguments)},kb=c._Asin=function(){return(kb=c._Asin=c.asm.Asin).apply(null,arguments)},Ib=c._Asinh=function(){return(Ib=c._Asinh=c.asm.Asinh).apply(null,arguments)},Sb=c._Atan=function(){return(Sb=c._Atan=c.asm.Atan).apply(null,arguments)},Nb=c._Atan2=function(){return(Nb=c._Atan2=c.asm.Atan2).apply(null,arguments)},Tb=c._Atanh=function(){return(Tb=c._Atanh=c.asm.Atanh).apply(null,arguments)},Cb=c._AvgPool=function(){return(Cb=c._AvgPool=c.asm.AvgPool).apply(null,arguments)},_b=c._AvgPool3D=function(){return(_b=c._AvgPool3D=c.asm.AvgPool3D).apply(null,arguments)},Eb=c._AvgPool3DGrad=function(){return(Eb=c._AvgPool3DGrad=c.asm.AvgPool3DGrad).apply(null,arguments)},Ab=c._BatchMatMul=function(){return(Ab=c._BatchMatMul=c.asm.BatchMatMul).apply(null,arguments)},Fb=c._Bincount=function(){return(Fb=c._Bincount=c.asm.Bincount).apply(null,arguments)},$b=c._Ceil=function(){return($b=c._Ceil=c.asm.Ceil).apply(null,arguments)},Db=c._ClipByValue=function(){return(Db=c._ClipByValue=c.asm.ClipByValue).apply(null,arguments)},Rb=c._Conv2D=function(){return(Rb=c._Conv2D=c.asm.Conv2D).apply(null,arguments)},Mb=c._Conv2DBackpropInput=function(){return(Mb=c._Conv2DBackpropInput=c.asm.Conv2DBackpropInput).apply(null,arguments)},Pb=c._Conv3D=function(){return(Pb=c._Conv3D=c.asm.Conv3D).apply(null,arguments)},Ob=c._Conv3DBackpropFilterV2=function(){return(Ob=c._Conv3DBackpropFilterV2=c.asm.Conv3DBackpropFilterV2).apply(null,arguments)},Lb=c._Conv3DBackpropInputV2=function(){return(Lb=c._Conv3DBackpropInputV2=c.asm.Conv3DBackpropInputV2).apply(null,arguments)},zb=c._Cos=function(){return(zb=c._Cos=c.asm.Cos).apply(null,arguments)},Wb=c._Cosh=function(){return(Wb=c._Cosh=c.asm.Cosh).apply(null,arguments)},Bb=c._CropAndResize=function(){return(Bb=c._CropAndResize=c.asm.CropAndResize).apply(null,arguments)},Vb=c._Cumprod=function(){return(Vb=c._Cumprod=c.asm.Cumprod).apply(null,arguments)},Ub=c._Cumsum=function(){return(Ub=c._Cumsum=c.asm.Cumsum).apply(null,arguments)},Gb=c._DenseBincount=function(){return(Gb=c._DenseBincount=c.asm.DenseBincount).apply(null,arguments)},Hb=c._DepthToSpace=function(){return(Hb=c._DepthToSpace=c.asm.DepthToSpace).apply(null,arguments)},qb=c._DepthwiseConv2dNative=function(){return(qb=c._DepthwiseConv2dNative=c.asm.DepthwiseConv2dNative).apply(null,arguments)},jb=c._Diag=function(){return(jb=c._Diag=c.asm.Diag).apply(null,arguments)},Kb=c._Dilation2D=function(){return(Kb=c._Dilation2D=c.asm.Dilation2D).apply(null,arguments)},Xb=c._Dilation2DBackpropFilter=function(){return(Xb=c._Dilation2DBackpropFilter=c.asm.Dilation2DBackpropFilter).apply(null,arguments)},Yb=c._Dilation2DBackpropInput=function(){return(Yb=c._Dilation2DBackpropInput=c.asm.Dilation2DBackpropInput).apply(null,arguments)},Zb=c._Elu=function(){return(Zb=c._Elu=c.asm.Elu).apply(null,arguments)},Jb=c._EluGrad=function(){return(Jb=c._EluGrad=c.asm.EluGrad).apply(null,arguments)},Qb=c._Equal=function(){return(Qb=c._Equal=c.asm.Equal).apply(null,arguments)},ey=c._Exp=function(){return(ey=c._Exp=c.asm.Exp).apply(null,arguments)},ty=c._Expm1=function(){return(ty=c._Expm1=c.asm.Expm1).apply(null,arguments)},ny=c._FlipLeftRight=function(){return(ny=c._FlipLeftRight=c.asm.FlipLeftRight).apply(null,arguments)},ay=c._Floor=function(){return(ay=c._Floor=c.asm.Floor).apply(null,arguments)},ry=c._FloorDiv=function(){return(ry=c._FloorDiv=c.asm.FloorDiv).apply(null,arguments)},sy=c._FusedBatchNorm=function(){return(sy=c._FusedBatchNorm=c.asm.FusedBatchNorm).apply(null,arguments)},iy=c._FusedConv2D=function(){return(iy=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)},uy=c._GatherNd=function(){return(uy=c._GatherNd=c.asm.GatherNd).apply(null,arguments)},py=c._Greater=function(){return(py=c._Greater=c.asm.Greater).apply(null,arguments)},cy=c._GreaterEqual=function(){return(cy=c._GreaterEqual=c.asm.GreaterEqual).apply(null,arguments)},dy=c._IsFinite=function(){return(dy=c._IsFinite=c.asm.IsFinite).apply(null,arguments)},hy=c._IsInf=function(){return(hy=c._IsInf=c.asm.IsInf).apply(null,arguments)},my=c._IsNan=function(){return(my=c._IsNan=c.asm.IsNan).apply(null,arguments)},fy=c._LRN=function(){return(fy=c._LRN=c.asm.LRN).apply(null,arguments)},gy=c._LRNGrad=function(){return(gy=c._LRNGrad=c.asm.LRNGrad).apply(null,arguments)},by=c._LeakyRelu=function(){return(by=c._LeakyRelu=c.asm.LeakyRelu).apply(null,arguments)},yy=c._Less=function(){return(yy=c._Less=c.asm.Less).apply(null,arguments)},xy=c._LessEqual=function(){return(xy=c._LessEqual=c.asm.LessEqual).apply(null,arguments)},vy=c._LinSpace=function(){return(vy=c._LinSpace=c.asm.LinSpace).apply(null,arguments)},wy=c._Log=function(){return(wy=c._Log=c.asm.Log).apply(null,arguments)},ky=c._Log1p=function(){return(ky=c._Log1p=c.asm.Log1p).apply(null,arguments)},Iy=c._LogicalAnd=function(){return(Iy=c._LogicalAnd=c.asm.LogicalAnd).apply(null,arguments)},Sy=c._LogicalNot=function(){return(Sy=c._LogicalNot=c.asm.LogicalNot).apply(null,arguments)},Ny=c._LogicalOr=function(){return(Ny=c._LogicalOr=c.asm.LogicalOr).apply(null,arguments)},Ty=c._LogicalXor=function(){return(Ty=c._LogicalXor=c.asm.LogicalXor).apply(null,arguments)},Cy=c._Max=function(){return(Cy=c._Max=c.asm.Max).apply(null,arguments)},_y=c._MaxPool=function(){return(_y=c._MaxPool=c.asm.MaxPool).apply(null,arguments)},Ey=c._MaxPool3D=function(){return(Ey=c._MaxPool3D=c.asm.MaxPool3D).apply(null,arguments)},Ay=c._MaxPool3DGrad=function(){return(Ay=c._MaxPool3DGrad=c.asm.MaxPool3DGrad).apply(null,arguments)},Fy=c._Maximum=function(){return(Fy=c._Maximum=c.asm.Maximum).apply(null,arguments)},$y=c._Mean=function(){return($y=c._Mean=c.asm.Mean).apply(null,arguments)},Dy=c._Min=function(){return(Dy=c._Min=c.asm.Min).apply(null,arguments)},Ry=c._Minimum=function(){return(Ry=c._Minimum=c.asm.Minimum).apply(null,arguments)},My=c._MirrorPad=function(){return(My=c._MirrorPad=c.asm.MirrorPad).apply(null,arguments)},Py=c._Multinomial=function(){return(Py=c._Multinomial=c.asm.Multinomial).apply(null,arguments)},Oy=c._Multiply=function(){return(Oy=c._Multiply=c.asm.Multiply).apply(null,arguments)},Ly=c._Neg=function(){return(Ly=c._Neg=c.asm.Neg).apply(null,arguments)},zy=c._NonMaxSuppressionV3=function(){return(zy=c._NonMaxSuppressionV3=c.asm.NonMaxSuppressionV3).apply(null,arguments)},ah=c._NonMaxSuppressionV4=function(){return(ah=c._NonMaxSuppressionV4=c.asm.NonMaxSuppressionV4).apply(null,arguments)},rh=c._NonMaxSuppressionV5=function(){return(rh=c._NonMaxSuppressionV5=c.asm.NonMaxSuppressionV5).apply(null,arguments)},Bp=c._NotEqual=function(){return(Bp=c._NotEqual=c.asm.NotEqual).apply(null,arguments)},Wy=c._OneHot=function(){return(Wy=c._OneHot=c.asm.OneHot).apply(null,arguments)},By=c._PadV2=function(){return(By=c._PadV2=c.asm.PadV2).apply(null,arguments)},dl=c._Pow=function(){return(dl=c._Pow=c.asm.Pow).apply(null,arguments)},sh=c._Prelu=function(){return(sh=c._Prelu=c.asm.Prelu).apply(null,arguments)},hl=c._Prod=function(){return(hl=c._Prod=c.asm.Prod).apply(null,arguments)},ml=c._RealDiv=function(){return(ml=c._RealDiv=c.asm.RealDiv).apply(null,arguments)},Vy=c._Reciprocal=function(){return(Vy=c._Reciprocal=c.asm.Reciprocal).apply(null,arguments)},Y=c._Relu=function(){return(Y=c._Relu=c.asm.Relu).apply(null,arguments)},oe=c._Relu6=function(){return(oe=c._Relu6=c.asm.Relu6).apply(null,arguments)},Ie=c._ResizeBilinear=function(){return(Ie=c._ResizeBilinear=c.asm.ResizeBilinear).apply(null,arguments)},Xe=c._ResizeBilinearGrad=function(){return(Xe=c._ResizeBilinearGrad=c.asm.ResizeBilinearGrad).apply(null,arguments)},It=c._ResizeNearestNeighbor=function(){return(It=c._ResizeNearestNeighbor=c.asm.ResizeNearestNeighbor).apply(null,arguments)},St=c._ResizeNearestNeighborGrad=function(){return(St=c._ResizeNearestNeighborGrad=c.asm.ResizeNearestNeighborGrad).apply(null,arguments)},He=c._Reverse=function(){return(He=c._Reverse=c.asm.Reverse).apply(null,arguments)},Ve=c._RotateWithOffset=function(){return(Ve=c._RotateWithOffset=c.asm.RotateWithOffset).apply(null,arguments)},zt=c._Round=function(){return(zt=c._Round=c.asm.Round).apply(null,arguments)},ua=c._Rsqrt=function(){return(ua=c._Rsqrt=c.asm.Rsqrt).apply(null,arguments)},wr=c._ScatterNd=function(){return(wr=c._ScatterNd=c.asm.ScatterNd).apply(null,arguments)},ih=c._SearchSorted=function(){return(ih=c._SearchSorted=c.asm.SearchSorted).apply(null,arguments)},Vp=c._SelectV2=function(){return(Vp=c._SelectV2=c.asm.SelectV2).apply(null,arguments)},Uy=c._Selu=function(){return(Uy=c._Selu=c.asm.Selu).apply(null,arguments)},Mn=c._Sigmoid=function(){return(Mn=c._Sigmoid=c.asm.Sigmoid).apply(null,arguments)},Kr=c._Sign=function(){return(Kr=c._Sign=c.asm.Sign).apply(null,arguments)},oh=c._Sin=function(){return(oh=c._Sin=c.asm.Sin).apply(null,arguments)},Z$=c._Softmax=function(){return(Z$=c._Softmax=c.asm.Softmax).apply(null,arguments)},J$=c._Softplus=function(){return(J$=c._Softplus=c.asm.Softplus).apply(null,arguments)},Q$=c._SparseFillEmptyRows=function(){return(Q$=c._SparseFillEmptyRows=c.asm.SparseFillEmptyRows).apply(null,arguments)},eD=c._SparseReshape=function(){return(eD=c._SparseReshape=c.asm.SparseReshape).apply(null,arguments)},tD=c._SparseSegmentReduction=function(){return(tD=c._SparseSegmentReduction=c.asm.SparseSegmentReduction).apply(null,arguments)},nD=c._SparseToDense=function(){return(nD=c._SparseToDense=c.asm.SparseToDense).apply(null,arguments)},aD=c._Sqrt=function(){return(aD=c._Sqrt=c.asm.Sqrt).apply(null,arguments)},rD=c._Square=function(){return(rD=c._Square=c.asm.Square).apply(null,arguments)},sD=c._SquaredDifference=function(){return(sD=c._SquaredDifference=c.asm.SquaredDifference).apply(null,arguments)},iD=c._Step=function(){return(iD=c._Step=c.asm.Step).apply(null,arguments)},oD=c._StridedSlice=function(){return(oD=c._StridedSlice=c.asm.StridedSlice).apply(null,arguments)},lD=c._Sub=function(){return(lD=c._Sub=c.asm.Sub).apply(null,arguments)},uD=c._Sum=function(){return(uD=c._Sum=c.asm.Sum).apply(null,arguments)},pD=c._Tan=function(){return(pD=c._Tan=c.asm.Tan).apply(null,arguments)},cD=c._Tanh=function(){return(cD=c._Tanh=c.asm.Tanh).apply(null,arguments)},dD=c._TensorScatterUpdate=function(){return(dD=c._TensorScatterUpdate=c.asm.TensorScatterUpdate).apply(null,arguments)},hD=c._Tile=function(){return(hD=c._Tile=c.asm.Tile).apply(null,arguments)},mD=c._TopK=function(){return(mD=c._TopK=c.asm.TopK).apply(null,arguments)},fD=c._Transform=function(){return(fD=c._Transform=c.asm.Transform).apply(null,arguments)},gD=c._Transpose=function(){return(gD=c._Transpose=c.asm.Transpose).apply(null,arguments)},bD=c.__FusedMatMul=function(){return(bD=c.__FusedMatMul=c.asm._FusedMatMul).apply(null,arguments)},yD=c._malloc=function(){return(yD=c._malloc=c.asm.malloc).apply(null,arguments)},xD=c._free=function(){return(xD=c._free=c.asm.free).apply(null,arguments)},vD=c.__emscripten_tls_init=function(){return(vD=c.__emscripten_tls_init=c.asm._emscripten_tls_init).apply(null,arguments)},lh=c._pthread_self=function(){return(lh=c._pthread_self=c.asm.pthread_self).apply(null,arguments)},wD=c.___errno_location=function(){return(wD=c.___errno_location=c.asm.__errno_location).apply(null,arguments)},Ik=c.__emscripten_thread_init=function(){return(Ik=c.__emscripten_thread_init=c.asm._emscripten_thread_init).apply(null,arguments)},kD=c.__emscripten_thread_crashed=function(){return(kD=c.__emscripten_thread_crashed=c.asm._emscripten_thread_crashed).apply(null,arguments)},ID=c._emscripten_main_thread_process_queued_calls=function(){return(ID=c._emscripten_main_thread_process_queued_calls=c.asm.emscripten_main_thread_process_queued_calls).apply(null,arguments)},SD=c._emscripten_main_browser_thread_id=function(){return(SD=c._emscripten_main_browser_thread_id=c.asm.emscripten_main_browser_thread_id).apply(null,arguments)},Sk=c._emscripten_run_in_main_runtime_thread_js=function(){return(Sk=c._emscripten_run_in_main_runtime_thread_js=c.asm.emscripten_run_in_main_runtime_thread_js).apply(null,arguments)},ND=c._emscripten_dispatch_to_thread_=function(){return(ND=c._emscripten_dispatch_to_thread_=c.asm.emscripten_dispatch_to_thread_).apply(null,arguments)},Nk=c.__emscripten_proxy_execute_task_queue=function(){return(Nk=c.__emscripten_proxy_execute_task_queue=c.asm._emscripten_proxy_execute_task_queue).apply(null,arguments)},Gy=c.__emscripten_thread_free_data=function(){return(Gy=c.__emscripten_thread_free_data=c.asm._emscripten_thread_free_data).apply(null,arguments)},Tk=c.__emscripten_thread_exit=function(){return(Tk=c.__emscripten_thread_exit=c.asm._emscripten_thread_exit).apply(null,arguments)},Ck=c._emscripten_stack_set_limits=function(){return(Ck=c._emscripten_stack_set_limits=c.asm.emscripten_stack_set_limits).apply(null,arguments)},Hy=c.stackSave=function(){return(Hy=c.stackSave=c.asm.stackSave).apply(null,arguments)},uh=c.stackRestore=function(){return(uh=c.stackRestore=c.asm.stackRestore).apply(null,arguments)},ph=c.stackAlloc=function(){return(ph=c.stackAlloc=c.asm.stackAlloc).apply(null,arguments)},TD=c.dynCall_iijjiiii=function(){return(TD=c.dynCall_iijjiiii=c.asm.dynCall_iijjiiii).apply(null,arguments)},CD=c.dynCall_jiji=function(){return(CD=c.dynCall_jiji=c.asm.dynCall_jiji).apply(null,arguments)};c.keepRuntimeAlive=Ia,c.wasmMemory=ue,c.cwrap=rb,c.ExitStatus=Vs,c.PThread=Ae;var ch;vr=function R(){ch||_k(),ch||(vr=R)};function _k(R){if(R=R||b,qr>0)return;if(C){h(c),Jt(),startWorker(c);return}if(Hr(),qr>0)return;function q(){ch||(ch=!0,c.calledRun=!0,!ke&&(Jt(),h(c),c.onRuntimeInitialized&&c.onRuntimeInitialized(),Wd()))}c.setStatus?(c.setStatus("Running..."),setTimeout(function(){setTimeout(function(){c.setStatus("")},1),q()},1)):q()}if(c.preInit)for(typeof c.preInit=="function"&&(c.preInit=[c.preInit]);c.preInit.length>0;)c.preInit.pop()();_k();var dh;f&&(dh={uncaughtException:process.listeners("uncaughtException").filter(function(R){return!f.uncaughtException.indexOf(R)>-1}),unhandledRejection:process.listeners("unhandledRejection").filter(function(R){return!f.unhandledRejection.indexOf(R)>-1})});var hh;if(typeof WasmBackendModule!="undefined")hh=WasmBackendModule;else if(typeof r!="undefined")hh=r;else throw new Error("Could not find wasm module in post.js");if(dh){var _D=hh._dispose;hh._dispose=function(){_D(),dh.uncaughtException.forEach(function(R){process.removeListener("uncaughtException",R)}),dh.unhandledRejection.forEach(function(R){process.removeListener("unhandledRejection",R)})}}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)}),QD=Gt((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")+"//# sourceURL="+f)},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.startWorker=instance=>{Module=instance;postMessage({"cmd":"loaded"})};self.onmessage=e=>{try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;for(const handler of e.data.handlers){Module[handler]=function(){postMessage({cmd:"callHandler",handler:handler,args:[...arguments]})}}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)}else if(e.data.cmd==="run"){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}};`}),eR=Gt((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(Y,oe){i=Y,o=oe});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=(Y,oe)=>{throw oe},h=typeof window=="object",m=typeof importScripts=="function",f=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",g="";function b(Y){return s.locateFile?s.locateFile(Y,g):g+Y}var y,x,w,I;function T(Y){Y instanceof ul||D("exiting due to exception: "+Y)}if(f){var C=uv(),E=mS();m?g=E.dirname(g)+"/":g=__dirname+"/",y=(Y,oe)=>(Y=Hr(Y)?new URL(Y):E.normalize(Y),C.readFileSync(Y,oe?void 0:"utf8")),w=Y=>{var oe=y(Y,!0);return oe.buffer||(oe=new Uint8Array(oe)),oe},x=(Y,oe,Ie)=>{Y=Hr(Y)?new URL(Y):E.normalize(Y),C.readFile(Y,function(Xe,It){Xe?Ie(Xe):oe(It.buffer)})},process.argv.length>1&&(d=process.argv[1].replace(/\\/g,"/")),p=process.argv.slice(2),process.on("uncaughtException",function(Y){if(!(Y instanceof ul))throw Y}),process.on("unhandledRejection",function(Y){throw Y}),c=(Y,oe)=>{if(qn())throw process.exitCode=Y,oe;T(oe),process.exit(Y)},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="",y=Y=>{var oe=new XMLHttpRequest;return oe.open("GET",Y,!1),oe.send(null),oe.responseText},m&&(w=Y=>{var oe=new XMLHttpRequest;return oe.open("GET",Y,!1),oe.responseType="arraybuffer",oe.send(null),new Uint8Array(oe.response)}),x=(Y,oe,Ie)=>{var Xe=new XMLHttpRequest;Xe.open("GET",Y,!0),Xe.responseType="arraybuffer",Xe.onload=()=>{if(Xe.status==200||Xe.status==0&&Xe.response){oe(Xe.response);return}Ie()},Xe.onerror=Ie,Xe.send(null)},I=Y=>document.title=Y);var F=s.print||console.log.bind(console),D=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 $=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,H;function j(Y,oe){Y||Qa(oe)}var K=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function Z(Y,oe,Ie){oe>>>=0;for(var Xe=oe+Ie,It=oe;Y[It]&&!(It>=Xe);)++It;if(It-oe>16&&Y.buffer&&K)return K.decode(Y.subarray(oe,It));for(var St="";oe>10,56320|ua&1023)}}return St}function J(Y,oe){return Y>>>=0,Y?Z(se,Y,oe):""}function ee(Y,oe,Ie,Xe){if(Ie>>>=0,!(Xe>0))return 0;for(var It=Ie,St=Ie+Xe-1,He=0;He=55296&&Ve<=57343){var zt=Y.charCodeAt(++He);Ve=65536+((Ve&1023)<<10)|zt&1023}if(Ve<=127){if(Ie>=St)break;oe[Ie++>>>0]=Ve}else if(Ve<=2047){if(Ie+1>=St)break;oe[Ie++>>>0]=192|Ve>>6,oe[Ie++>>>0]=128|Ve&63}else if(Ve<=65535){if(Ie+2>=St)break;oe[Ie++>>>0]=224|Ve>>12,oe[Ie++>>>0]=128|Ve>>6&63,oe[Ie++>>>0]=128|Ve&63}else{if(Ie+3>=St)break;oe[Ie++>>>0]=240|Ve>>18,oe[Ie++>>>0]=128|Ve>>12&63,oe[Ie++>>>0]=128|Ve>>6&63,oe[Ie++>>>0]=128|Ve&63}}return oe[Ie>>>0]=0,Ie-It}function ae(Y,oe,Ie){return ee(Y,se,oe,Ie)}var te,re,se,ye,ue,be,ke,Se,We;function Ge(Y){te=Y,s.HEAP8=re=new Int8Array(Y),s.HEAP16=ye=new Int16Array(Y),s.HEAP32=be=new Int32Array(Y),s.HEAPU8=se=new Uint8Array(Y),s.HEAPU16=ue=new Uint16Array(Y),s.HEAPU32=ke=new Uint32Array(Y),s.HEAPF32=Se=new Float32Array(Y),s.HEAPF64=We=new Float64Array(Y)}var ht=s.INITIAL_MEMORY||16777216,st,tt=[],nt=[],Re=[],ft=!1;function qn(){return M}function Lt(){if(s.preRun)for(typeof s.preRun=="function"&&(s.preRun=[s.preRun]);s.preRun.length;)$n(s.preRun.shift());vr(tt)}function oa(){ft=!0,vr(nt)}function pn(){if(s.postRun)for(typeof s.postRun=="function"&&(s.postRun=[s.postRun]);s.postRun.length;)Dn(s.postRun.shift());vr(Re)}function $n(Y){tt.unshift(Y)}function la(Y){nt.unshift(Y)}function Dn(Y){Re.unshift(Y)}var ot=0,Rn=null,jn=null;function xr(Y){ot++,s.monitorRunDependencies&&s.monitorRunDependencies(ot)}function ll(Y){if(ot--,s.monitorRunDependencies&&s.monitorRunDependencies(ot),ot==0&&(Rn!==null&&(clearInterval(Rn),Rn=null),jn)){var oe=jn;jn=null,oe()}}function Qa(Y){s.onAbort&&s.onAbort(Y),Y="Aborted("+Y+")",D(Y),U=!0,H=1,Y+=". Build with -sASSERTIONS for more info.";var oe=new WebAssembly.RuntimeError(Y);throw o(oe),oe}var Mp="data:application/octet-stream;base64,";function Ia(Y){return Y.startsWith(Mp)}function Hr(Y){return Y.startsWith("file://")}var Jt;Jt="tfjs-backend-wasm.wasm",Ia(Jt)||(Jt=b(Jt));function Wd(Y){try{if(Y==Jt&&S)return new Uint8Array(S);if(w)return w(Y);throw"both async and sync fetching of the wasm failed"}catch(oe){Qa(oe)}}function wg(){if(!S&&(h||m)){if(typeof fetch=="function"&&!Hr(Jt))return fetch(Jt,{credentials:"same-origin"}).then(function(Y){if(!Y.ok)throw"failed to load wasm binary file at '"+Jt+"'";return Y.arrayBuffer()}).catch(function(){return Wd(Jt)});if(x)return new Promise(function(Y,oe){x(Jt,function(Ie){Y(new Uint8Array(Ie))},oe)})}return Promise.resolve().then(function(){return Wd(Jt)})}function kg(){var Y={env:Pp,wasi_snapshot_preview1:Pp};function oe(He,Ve){var zt=He.exports;s.asm=zt,B=s.asm.memory,Ge(B.buffer),st=s.asm.__indirect_function_table,la(s.asm.__wasm_call_ctors),ll("wasm-instantiate")}xr("wasm-instantiate");function Ie(He){oe(He.instance)}function Xe(He){return wg().then(function(Ve){return WebAssembly.instantiate(Ve,Y)}).then(function(Ve){return Ve}).then(He,function(Ve){D("failed to asynchronously prepare wasm: "+Ve),Qa(Ve)})}function It(){return!S&&typeof WebAssembly.instantiateStreaming=="function"&&!Ia(Jt)&&!Hr(Jt)&&!f&&typeof fetch=="function"?fetch(Jt,{credentials:"same-origin"}).then(function(He){var Ve=WebAssembly.instantiateStreaming(He,Y);return Ve.then(Ie,function(zt){return D("wasm streaming compile failed: "+zt),D("falling back to ArrayBuffer instantiation"),Xe(Ie)})}):Xe(Ie)}if(s.instantiateWasm)try{var St=s.instantiateWasm(Y,oe);return St}catch(He){D("Module.instantiateWasm callback failed with error: "+He),o(He)}return It().catch(o),{}}var xk,qr;function ul(Y){this.name="ExitStatus",this.message="Program terminated with exit("+Y+")",this.status=Y}function vr(Y){for(;Y.length>0;)Y.shift()(s)}function Ig(){Qa("")}function Bd(){return 4294901760}function Bs(){return Bd()}function Sg(Y,oe,Ie){se.copyWithin(Y>>>0,oe>>>0,oe+Ie>>>0)}function Vd(Y){try{return B.grow(Y-te.byteLength+65535>>>16),Ge(B.buffer),1}catch(oe){}}function pl(Y){var oe=se.length;Y=Y>>>0;var Ie=Bd();if(Y>Ie)return!1;let Xe=(zt,ua)=>zt+(ua-zt%ua)%ua;for(var It=1;It<=4;It*=2){var St=oe*(1+.2/It);St=Math.min(St,Y+100663296);var He=Math.min(Ie,Xe(Math.max(Y,St),65536)),Ve=Vd(He);if(Ve)return!0}return!1}var gn={varargs:void 0,get:function(){gn.varargs+=4;var Y=be[gn.varargs-4>>>2];return Y},getStr:function(Y){var oe=J(Y);return oe}};function Ud(Y){return 52}function Ng(Y,oe,Ie,Xe,It){return 70}var Tg=[null,[],[]];function vk(Y,oe){var Ie=Tg[Y];oe===0||oe===10?((Y===1?F:D)(Z(Ie,0)),Ie.length=0):Ie.push(oe)}function wk(Y,oe,Ie,Xe){for(var It=0,St=0;St>>2],Ve=ke[oe+4>>>2];oe+=8;for(var zt=0;zt>>0]);It+=Ve}return ke[Xe>>>2]=It,0}function Gd(Y){var oe=s["_"+Y];return oe}function Vs(Y,oe){re.set(Y,oe>>>0)}function Cg(Y,oe,Ie,Xe,It){var St={string:Mn=>{var Kr=0;if(Mn!=null&&Mn!==0){var oh=(Mn.length<<2)+1;Kr=Bp(oh),ae(Mn,Kr,oh)}return Kr},array:Mn=>{var Kr=Bp(Mn.length);return Vs(Mn,Kr),Kr}};function He(Mn){return oe==="string"?J(Mn):oe==="boolean"?!!Mn:Mn}var Ve=Gd(Y),zt=[],ua=0;if(Xe)for(var wr=0;wrHe==="number"||He==="boolean"),St=oe!=="string";return St&&It&&!Xe?Gd(Y):function(){return Cg(Y,oe,Ie,arguments,Xe)}}var Pp={abort:Ig,emscripten_get_heap_max:Bs,emscripten_memcpy_big:Sg,emscripten_resize_heap:pl,fd_close:Ud,fd_seek:Ng,fd_write:wk},Eg=kg(),Hd=s.___wasm_call_ctors=function(){return(Hd=s.___wasm_call_ctors=s.asm.__wasm_call_ctors).apply(null,arguments)},qd=s._init=function(){return(qd=s._init=s.asm.init).apply(null,arguments)},Ag=s._init_with_threads_count=function(){return(Ag=s._init_with_threads_count=s.asm.init_with_threads_count).apply(null,arguments)},jd=s._get_threads_count=function(){return(jd=s._get_threads_count=s.asm.get_threads_count).apply(null,arguments)},Fg=s._register_tensor=function(){return(Fg=s._register_tensor=s.asm.register_tensor).apply(null,arguments)},Ae=s._dispose_data=function(){return(Ae=s._dispose_data=s.asm.dispose_data).apply(null,arguments)},Op=s._dispose=function(){return(Op=s._dispose=s.asm.dispose).apply(null,arguments)},$g=s._Abs=function(){return($g=s._Abs=s.asm.Abs).apply(null,arguments)},Kd=s._Acos=function(){return(Kd=s._Acos=s.asm.Acos).apply(null,arguments)},cl=s._Acosh=function(){return(cl=s._Acosh=s.asm.Acosh).apply(null,arguments)},Dg=s._Add=function(){return(Dg=s._Add=s.asm.Add).apply(null,arguments)},Rg=s._AddN=function(){return(Rg=s._AddN=s.asm.AddN).apply(null,arguments)},Mg=s._All=function(){return(Mg=s._All=s.asm.All).apply(null,arguments)},Pg=s._Any=function(){return(Pg=s._Any=s.asm.Any).apply(null,arguments)},Og=s._ArgMax=function(){return(Og=s._ArgMax=s.asm.ArgMax).apply(null,arguments)},Xd=s._ArgMin=function(){return(Xd=s._ArgMin=s.asm.ArgMin).apply(null,arguments)},Yd=s._Asin=function(){return(Yd=s._Asin=s.asm.Asin).apply(null,arguments)},Lg=s._Asinh=function(){return(Lg=s._Asinh=s.asm.Asinh).apply(null,arguments)},zg=s._Atan=function(){return(zg=s._Atan=s.asm.Atan).apply(null,arguments)},Wg=s._Atan2=function(){return(Wg=s._Atan2=s.asm.Atan2).apply(null,arguments)},Lp=s._Atanh=function(){return(Lp=s._Atanh=s.asm.Atanh).apply(null,arguments)},Bg=s._AvgPool=function(){return(Bg=s._AvgPool=s.asm.AvgPool).apply(null,arguments)},Vg=s._AvgPool3D=function(){return(Vg=s._AvgPool3D=s.asm.AvgPool3D).apply(null,arguments)},Ug=s._AvgPool3DGrad=function(){return(Ug=s._AvgPool3DGrad=s.asm.AvgPool3DGrad).apply(null,arguments)},Us=s._BatchMatMul=function(){return(Us=s._BatchMatMul=s.asm.BatchMatMul).apply(null,arguments)},Gg=s._Bincount=function(){return(Gg=s._Bincount=s.asm.Bincount).apply(null,arguments)},Hg=s._Ceil=function(){return(Hg=s._Ceil=s.asm.Ceil).apply(null,arguments)},Zd=s._ClipByValue=function(){return(Zd=s._ClipByValue=s.asm.ClipByValue).apply(null,arguments)},qg=s._Conv2D=function(){return(qg=s._Conv2D=s.asm.Conv2D).apply(null,arguments)},zp=s._Conv2DBackpropInput=function(){return(zp=s._Conv2DBackpropInput=s.asm.Conv2DBackpropInput).apply(null,arguments)},jg=s._Conv3D=function(){return(jg=s._Conv3D=s.asm.Conv3D).apply(null,arguments)},Kg=s._Conv3DBackpropFilterV2=function(){return(Kg=s._Conv3DBackpropFilterV2=s.asm.Conv3DBackpropFilterV2).apply(null,arguments)},Xg=s._Conv3DBackpropInputV2=function(){return(Xg=s._Conv3DBackpropInputV2=s.asm.Conv3DBackpropInputV2).apply(null,arguments)},jr=s._Cos=function(){return(jr=s._Cos=s.asm.Cos).apply(null,arguments)},Wp=s._Cosh=function(){return(Wp=s._Cosh=s.asm.Cosh).apply(null,arguments)},Yg=s._CropAndResize=function(){return(Yg=s._CropAndResize=s.asm.CropAndResize).apply(null,arguments)},Zg=s._Cumprod=function(){return(Zg=s._Cumprod=s.asm.Cumprod).apply(null,arguments)},Jg=s._Cumsum=function(){return(Jg=s._Cumsum=s.asm.Cumsum).apply(null,arguments)},Qg=s._DenseBincount=function(){return(Qg=s._DenseBincount=s.asm.DenseBincount).apply(null,arguments)},Jd=s._DepthToSpace=function(){return(Jd=s._DepthToSpace=s.asm.DepthToSpace).apply(null,arguments)},Qd=s._DepthwiseConv2dNative=function(){return(Qd=s._DepthwiseConv2dNative=s.asm.DepthwiseConv2dNative).apply(null,arguments)},eb=s._Diag=function(){return(eb=s._Diag=s.asm.Diag).apply(null,arguments)},tb=s._Dilation2D=function(){return(tb=s._Dilation2D=s.asm.Dilation2D).apply(null,arguments)},eh=s._Dilation2DBackpropFilter=function(){return(eh=s._Dilation2DBackpropFilter=s.asm.Dilation2DBackpropFilter).apply(null,arguments)},th=s._Dilation2DBackpropInput=function(){return(th=s._Dilation2DBackpropInput=s.asm.Dilation2DBackpropInput).apply(null,arguments)},nb=s._Elu=function(){return(nb=s._Elu=s.asm.Elu).apply(null,arguments)},ab=s._EluGrad=function(){return(ab=s._EluGrad=s.asm.EluGrad).apply(null,arguments)},rb=s._Equal=function(){return(rb=s._Equal=s.asm.Equal).apply(null,arguments)},sb=s._Exp=function(){return(sb=s._Exp=s.asm.Exp).apply(null,arguments)},nh=s._Expm1=function(){return(nh=s._Expm1=s.asm.Expm1).apply(null,arguments)},kk=s._FlipLeftRight=function(){return(kk=s._FlipLeftRight=s.asm.FlipLeftRight).apply(null,arguments)},ib=s._Floor=function(){return(ib=s._Floor=s.asm.Floor).apply(null,arguments)},ob=s._FloorDiv=function(){return(ob=s._FloorDiv=s.asm.FloorDiv).apply(null,arguments)},lb=s._FusedBatchNorm=function(){return(lb=s._FusedBatchNorm=s.asm.FusedBatchNorm).apply(null,arguments)},ub=s._FusedConv2D=function(){return(ub=s._FusedConv2D=s.asm.FusedConv2D).apply(null,arguments)},pb=s._FusedDepthwiseConv2D=function(){return(pb=s._FusedDepthwiseConv2D=s.asm.FusedDepthwiseConv2D).apply(null,arguments)},cb=s._Gather=function(){return(cb=s._Gather=s.asm.Gather).apply(null,arguments)},db=s._GatherNd=function(){return(db=s._GatherNd=s.asm.GatherNd).apply(null,arguments)},hb=s._Greater=function(){return(hb=s._Greater=s.asm.Greater).apply(null,arguments)},mb=s._GreaterEqual=function(){return(mb=s._GreaterEqual=s.asm.GreaterEqual).apply(null,arguments)},fb=s._IsFinite=function(){return(fb=s._IsFinite=s.asm.IsFinite).apply(null,arguments)},gb=s._IsInf=function(){return(gb=s._IsInf=s.asm.IsInf).apply(null,arguments)},bb=s._IsNan=function(){return(bb=s._IsNan=s.asm.IsNan).apply(null,arguments)},yb=s._LRN=function(){return(yb=s._LRN=s.asm.LRN).apply(null,arguments)},xb=s._LRNGrad=function(){return(xb=s._LRNGrad=s.asm.LRNGrad).apply(null,arguments)},vb=s._LeakyRelu=function(){return(vb=s._LeakyRelu=s.asm.LeakyRelu).apply(null,arguments)},wb=s._Less=function(){return(wb=s._Less=s.asm.Less).apply(null,arguments)},kb=s._LessEqual=function(){return(kb=s._LessEqual=s.asm.LessEqual).apply(null,arguments)},Ib=s._LinSpace=function(){return(Ib=s._LinSpace=s.asm.LinSpace).apply(null,arguments)},Sb=s._Log=function(){return(Sb=s._Log=s.asm.Log).apply(null,arguments)},Nb=s._Log1p=function(){return(Nb=s._Log1p=s.asm.Log1p).apply(null,arguments)},Tb=s._LogicalAnd=function(){return(Tb=s._LogicalAnd=s.asm.LogicalAnd).apply(null,arguments)},Cb=s._LogicalNot=function(){return(Cb=s._LogicalNot=s.asm.LogicalNot).apply(null,arguments)},_b=s._LogicalOr=function(){return(_b=s._LogicalOr=s.asm.LogicalOr).apply(null,arguments)},Eb=s._LogicalXor=function(){return(Eb=s._LogicalXor=s.asm.LogicalXor).apply(null,arguments)},Ab=s._Max=function(){return(Ab=s._Max=s.asm.Max).apply(null,arguments)},Fb=s._MaxPool=function(){return(Fb=s._MaxPool=s.asm.MaxPool).apply(null,arguments)},$b=s._MaxPool3D=function(){return($b=s._MaxPool3D=s.asm.MaxPool3D).apply(null,arguments)},Db=s._MaxPool3DGrad=function(){return(Db=s._MaxPool3DGrad=s.asm.MaxPool3DGrad).apply(null,arguments)},Rb=s._Maximum=function(){return(Rb=s._Maximum=s.asm.Maximum).apply(null,arguments)},Mb=s._Mean=function(){return(Mb=s._Mean=s.asm.Mean).apply(null,arguments)},Pb=s._Min=function(){return(Pb=s._Min=s.asm.Min).apply(null,arguments)},Ob=s._Minimum=function(){return(Ob=s._Minimum=s.asm.Minimum).apply(null,arguments)},Lb=s._MirrorPad=function(){return(Lb=s._MirrorPad=s.asm.MirrorPad).apply(null,arguments)},zb=s._Multinomial=function(){return(zb=s._Multinomial=s.asm.Multinomial).apply(null,arguments)},Wb=s._Multiply=function(){return(Wb=s._Multiply=s.asm.Multiply).apply(null,arguments)},Bb=s._Neg=function(){return(Bb=s._Neg=s.asm.Neg).apply(null,arguments)},Vb=s._NonMaxSuppressionV3=function(){return(Vb=s._NonMaxSuppressionV3=s.asm.NonMaxSuppressionV3).apply(null,arguments)},Ub=s._NonMaxSuppressionV4=function(){return(Ub=s._NonMaxSuppressionV4=s.asm.NonMaxSuppressionV4).apply(null,arguments)},Gb=s._NonMaxSuppressionV5=function(){return(Gb=s._NonMaxSuppressionV5=s.asm.NonMaxSuppressionV5).apply(null,arguments)},Hb=s._NotEqual=function(){return(Hb=s._NotEqual=s.asm.NotEqual).apply(null,arguments)},qb=s._OneHot=function(){return(qb=s._OneHot=s.asm.OneHot).apply(null,arguments)},jb=s._PadV2=function(){return(jb=s._PadV2=s.asm.PadV2).apply(null,arguments)},Kb=s._Pow=function(){return(Kb=s._Pow=s.asm.Pow).apply(null,arguments)},Xb=s._Prelu=function(){return(Xb=s._Prelu=s.asm.Prelu).apply(null,arguments)},Yb=s._Prod=function(){return(Yb=s._Prod=s.asm.Prod).apply(null,arguments)},Zb=s._RealDiv=function(){return(Zb=s._RealDiv=s.asm.RealDiv).apply(null,arguments)},Jb=s._Reciprocal=function(){return(Jb=s._Reciprocal=s.asm.Reciprocal).apply(null,arguments)},Qb=s._Relu=function(){return(Qb=s._Relu=s.asm.Relu).apply(null,arguments)},ey=s._Relu6=function(){return(ey=s._Relu6=s.asm.Relu6).apply(null,arguments)},ty=s._ResizeBilinear=function(){return(ty=s._ResizeBilinear=s.asm.ResizeBilinear).apply(null,arguments)},ny=s._ResizeBilinearGrad=function(){return(ny=s._ResizeBilinearGrad=s.asm.ResizeBilinearGrad).apply(null,arguments)},ay=s._ResizeNearestNeighbor=function(){return(ay=s._ResizeNearestNeighbor=s.asm.ResizeNearestNeighbor).apply(null,arguments)},ry=s._ResizeNearestNeighborGrad=function(){return(ry=s._ResizeNearestNeighborGrad=s.asm.ResizeNearestNeighborGrad).apply(null,arguments)},sy=s._Reverse=function(){return(sy=s._Reverse=s.asm.Reverse).apply(null,arguments)},iy=s._RotateWithOffset=function(){return(iy=s._RotateWithOffset=s.asm.RotateWithOffset).apply(null,arguments)},oy=s._Round=function(){return(oy=s._Round=s.asm.Round).apply(null,arguments)},ly=s._Rsqrt=function(){return(ly=s._Rsqrt=s.asm.Rsqrt).apply(null,arguments)},uy=s._ScatterNd=function(){return(uy=s._ScatterNd=s.asm.ScatterNd).apply(null,arguments)},py=s._SearchSorted=function(){return(py=s._SearchSorted=s.asm.SearchSorted).apply(null,arguments)},cy=s._SelectV2=function(){return(cy=s._SelectV2=s.asm.SelectV2).apply(null,arguments)},dy=s._Selu=function(){return(dy=s._Selu=s.asm.Selu).apply(null,arguments)},hy=s._Sigmoid=function(){return(hy=s._Sigmoid=s.asm.Sigmoid).apply(null,arguments)},my=s._Sign=function(){return(my=s._Sign=s.asm.Sign).apply(null,arguments)},fy=s._Sin=function(){return(fy=s._Sin=s.asm.Sin).apply(null,arguments)},gy=s._Softmax=function(){return(gy=s._Softmax=s.asm.Softmax).apply(null,arguments)},by=s._Softplus=function(){return(by=s._Softplus=s.asm.Softplus).apply(null,arguments)},yy=s._SparseFillEmptyRows=function(){return(yy=s._SparseFillEmptyRows=s.asm.SparseFillEmptyRows).apply(null,arguments)},xy=s._SparseReshape=function(){return(xy=s._SparseReshape=s.asm.SparseReshape).apply(null,arguments)},vy=s._SparseSegmentReduction=function(){return(vy=s._SparseSegmentReduction=s.asm.SparseSegmentReduction).apply(null,arguments)},wy=s._SparseToDense=function(){return(wy=s._SparseToDense=s.asm.SparseToDense).apply(null,arguments)},ky=s._Sqrt=function(){return(ky=s._Sqrt=s.asm.Sqrt).apply(null,arguments)},Iy=s._Square=function(){return(Iy=s._Square=s.asm.Square).apply(null,arguments)},Sy=s._SquaredDifference=function(){return(Sy=s._SquaredDifference=s.asm.SquaredDifference).apply(null,arguments)},Ny=s._Step=function(){return(Ny=s._Step=s.asm.Step).apply(null,arguments)},Ty=s._StridedSlice=function(){return(Ty=s._StridedSlice=s.asm.StridedSlice).apply(null,arguments)},Cy=s._Sub=function(){return(Cy=s._Sub=s.asm.Sub).apply(null,arguments)},_y=s._Sum=function(){return(_y=s._Sum=s.asm.Sum).apply(null,arguments)},Ey=s._Tan=function(){return(Ey=s._Tan=s.asm.Tan).apply(null,arguments)},Ay=s._Tanh=function(){return(Ay=s._Tanh=s.asm.Tanh).apply(null,arguments)},Fy=s._TensorScatterUpdate=function(){return(Fy=s._TensorScatterUpdate=s.asm.TensorScatterUpdate).apply(null,arguments)},$y=s._Tile=function(){return($y=s._Tile=s.asm.Tile).apply(null,arguments)},Dy=s._TopK=function(){return(Dy=s._TopK=s.asm.TopK).apply(null,arguments)},Ry=s._Transform=function(){return(Ry=s._Transform=s.asm.Transform).apply(null,arguments)},My=s._Transpose=function(){return(My=s._Transpose=s.asm.Transpose).apply(null,arguments)},Py=s.__FusedMatMul=function(){return(Py=s.__FusedMatMul=s.asm._FusedMatMul).apply(null,arguments)},Oy=s._malloc=function(){return(Oy=s._malloc=s.asm.malloc).apply(null,arguments)},Ly=s._free=function(){return(Ly=s._free=s.asm.free).apply(null,arguments)},zy=s.___errno_location=function(){return(zy=s.___errno_location=s.asm.__errno_location).apply(null,arguments)},ah=s.stackSave=function(){return(ah=s.stackSave=s.asm.stackSave).apply(null,arguments)},rh=s.stackRestore=function(){return(rh=s.stackRestore=s.asm.stackRestore).apply(null,arguments)},Bp=s.stackAlloc=function(){return(Bp=s.stackAlloc=s.asm.stackAlloc).apply(null,arguments)},Wy=s.dynCall_iijjiiii=function(){return(Wy=s.dynCall_iijjiiii=s.asm.dynCall_iijjiiii).apply(null,arguments)},By=s.dynCall_jiji=function(){return(By=s.dynCall_jiji=s.asm.dynCall_jiji).apply(null,arguments)};s.cwrap=_g;var dl;jn=function Y(){dl||sh(),dl||(jn=Y)};function sh(Y){if(Y=Y||p,ot>0||(Lt(),ot>0))return;function oe(){dl||(dl=!0,s.calledRun=!0,!U&&(oa(),i(s),s.onRuntimeInitialized&&s.onRuntimeInitialized(),pn()))}s.setStatus?(s.setStatus("Running..."),setTimeout(function(){setTimeout(function(){s.setStatus("")},1),oe()},1)):oe()}if(s.preInit)for(typeof s.preInit=="function"&&(s.preInit=[s.preInit]);s.preInit.length>0;)s.preInit.pop()();sh();var hl;l&&(hl={uncaughtException:process.listeners("uncaughtException").filter(function(Y){return!l.uncaughtException.indexOf(Y)>-1}),unhandledRejection:process.listeners("unhandledRejection").filter(function(Y){return!l.unhandledRejection.indexOf(Y)>-1})});var ml;if(typeof r!="undefined")ml=r;else if(typeof WasmBackendModuleThreadedSimd!="undefined")ml=WasmBackendModuleThreadedSimd;else throw new Error("Could not find wasm module in post.js");if(hl){var Vy=ml._dispose;ml._dispose=function(){Vy(),hl.uncaughtException.forEach(function(Y){process.removeListener("uncaughtException",Y)}),hl.unhandledRejection.forEach(function(Y){process.removeListener("unhandledRejection",Y)})}}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)}),mm=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}},Tc=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")}createTensorFromGPUData(e,t,n){return Kn("createTensorFromGPUData")}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 fS(e){let t=e.length,n=0;for(;t>0;)n=Math.random()*t|0,t--,Oh(e,t,n)}function tR(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--,Oh(e,n,a),Oh(t,n,a)}function lc(e,t,n){return Math.max(e,Math.min(t,n))}function nR(e){return e%2===0?e:e+1}function Oh(e,t,n){let a=e[t];e[t]=e[n],e[n]=a}function aR(e){let t=0;for(let n=0;nn+` Shapes ${e} and ${t} must match`)}function ki(e){A(e!=null,()=>"The input to the tensor constructor must be a non-null value.")}function bt(e){if(e.length===0)return 1;let t=e[0];for(let n=1;n0,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 cR(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=>Sl(a)),()=>`All values in axis param must be integers but got axis ${e}`),e.map(a=>a<0?n+a:a)}function bS(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 yS(e,t){return pv(e,t)}function pv(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 xS(e,t){for(let n=0;nt+=n.length),t}function Jr(e){return typeof e=="string"||e instanceof String}function kS(e){return typeof e=="boolean"}function IS(e){return typeof e=="number"}function Cc(e){return Array.isArray(e)?Cc(e[0]):e instanceof Float32Array?"float32":e instanceof Int32Array||e instanceof Uint8Array||e instanceof Uint8ClampedArray?"int32":IS(e)?"float32":Jr(e)?"string":kS(e)?"bool":"float32"}function ss(e){return!!(e&&e.constructor&&e.call&&e.apply)}function zh(e,t){for(let n=t;n=0;--a)n[a]=n[a+1]*e[a+1];return n}function SS(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 SS(0,e,t,n)}function hR(e,t){if(Array.isArray(e))return e;if(t==="float32")return e instanceof Float32Array?e:new Float32Array(e);if(t==="int32")return e instanceof Int32Array?e:new Int32Array(e);if(t==="bool"||t==="string")return Uint8Array.from(new Int32Array(e));throw new Error(`Unknown dtype ${t}`)}function cv(e,t){let n=fm(e,t);for(let a=0;aa*r,1);if(t==null||t==="float32")return vl(e,new Float32Array(n));if(t==="int32")return vl(e,new Int32Array(n));if(t==="bool")return vl(e,new Uint8Array(n));throw new Error(`Unknown data type ${t}`)}function ra(e){e.forEach(t=>{A(Number.isInteger(t)&&t>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${e}].`)})}function fR(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]=xR(n,a)})}};function bR(e){let t={};return e.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(n,...a)=>(yR(t,a[0],a[1]),a.join("="))),t}function yR(e,t,n){e[decodeURIComponent(t)]=decodeURIComponent(n||"")}function xR(e,t){let n=t.toLowerCase();return n==="true"||n==="false"?n==="true":`${+n}`===n?+n:t}function G(){return dv}var dv=null;function vR(e){dv=e}var Ky;function TS(){if(Ky==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");Ky=e}return Ky}function wR(){let e=TS();return e._tfGlobals==null&&(e._tfGlobals=new Map),e._tfGlobals}function hv(e,t){let n=wR();if(n.has(e))return n.get(e);{let a=t();return n.set(e,a),n.get(e)}}var ql="Abs",Ii="Acos",Si="Acosh",bs="Add",Ni="AddN",jl="All",Kl="Any",Xl="ArgMax",Yl="ArgMin",Ti="Asin",Ci="Asinh",_i="Atan",Ei="Atanh",Ai="Atan2",Fi="AvgPool",bm="AvgPoolGrad",Zl="AvgPool3D",_c="AvgPool3DGrad",$i="BatchMatMul",Jl="BatchToSpaceND",Ql="Bincount",ym="BitwiseAnd",CS="BroadcastTo",Ec="BroadcastArgs",Di="Cast",Ri="Ceil",ys="ClipByValue",xm="Complex",Ac="ComplexAbs",eu="Concat",Mi="Conv2D",vm="Conv2DBackpropFilter",Pi="Conv2DBackpropInput",Oi="Conv3D",tu="Conv3DBackpropFilterV2",nu="Conv3DBackpropInputV2",Li="Cos",zi="Cosh",au="Cumprod",Wi="Cumsum",ru="CropAndResize",Fc="DenseBincount",su="DepthToSpace",Bi="DepthwiseConv2dNative",wm="DepthwiseConv2dNativeBackpropFilter",km="DepthwiseConv2dNativeBackpropInput",$c="Diag",Vi="Dilation2D",Nl="Dilation2DBackpropInput",Tl="Dilation2DBackpropFilter",Ui="RealDiv",Im="Einsum",Gi="Elu",iu="EluGrad",ou="Erf",lu="Equal",Hi="Exp",uu="ExpandDims",qi="Expm1",Sm="FFT",Dc="Fill",pu="FlipLeftRight",ji="Floor",Ki="FloorDiv",Xi="FusedBatchNorm",cu="GatherV2",du="GatherNd",hu="Greater",Yi="GreaterEqual",Zi="Identity",Nm="IFFT",Tm="Imag",Ji="IsFinite",Qi="IsInf",eo="IsNan",to="LeakyRelu",mu="Less",fu="LessEqual",gu="LinSpace",no="Log",ao="Log1p",bu="LogicalAnd",yu="LogicalNot",xu="LogicalOr",_S="LogicalXor",ES="LogSoftmax",kR="LowerBound",ro="LRN",vu="LRNGrad",IR="MatrixBandPart",so="Max",io="Maximum",oo="MaxPool",Cm="MaxPoolGrad",wu="MaxPool3D",Rc="MaxPool3DGrad",_m="MaxPoolWithArgmax",lo="Mean",uo="Min",po="Minimum",co="MirrorPad",ku="Mod",Iu="Multinomial",ho="Multiply",Su="Neg",Nu="NotEqual",Tu="NonMaxSuppressionV3",Cu="NonMaxSuppressionV4",_u="NonMaxSuppressionV5",Eu="OnesLike",mo="OneHot",Au="Pack",fo="PadV2",SR="Pool",go="Pow",bo="Prelu",yo="Prod",Em="RaggedGather",Am="RaggedRange",Fm="RaggedTensorToTensor",Mc="Range",$m="Real",xo="Reciprocal",vo="Relu",Fu="Reshape",wo="ResizeNearestNeighbor",$u="ResizeNearestNeighborGrad",ko="ResizeBilinear",Du="ResizeBilinearGrad",Io="Relu6",So="Reverse",No="Round",To="Rsqrt",Ru="ScatterNd",Mu="TensorScatterUpdate",Pu="SearchSorted",Ou="Select",Co="Selu",Lu="Slice",_o="Sin",zu="Sinh",Eo="Sign",Ao="Sigmoid",Fo="Softplus",$o="Sqrt",Do="Sum",Wu="SpaceToBatchND",Bu="SplitV",Ro="Softmax",Pc="SparseFillEmptyRows",Vu="SparseReshape",Oc="SparseSegmentMean",Lc="SparseSegmentSum",Uu="SparseToDense",Mo="SquaredDifference",zc="Square",Wc="StaticRegexReplace",Gu="StridedSlice",Bc="StringNGrams",Vc="StringSplit",Uc="StringToHashBucketFast",Po="Sub",Oo="Tan",Lo="Tanh",xs="Tile",Hu="TopK",qu="Transform",_r="Transpose",Gc="Unique",ju="Unpack",Hc="UnsortedSegmentSum",NR="UpperBound",Ku="ZerosLike",vs="Step",Wh="FromPixels",Xu="RotateWithOffset",si="_FusedMatMul",ii="FusedConv2D",oi="FusedDepthwiseConv2D";function Zr(...e){G().getBool("IS_TEST")||G().getBool("PROD")||console.warn(...e)}function TR(...e){G().getBool("IS_TEST")||G().getBool("PROD")||console.log(...e)}var Cl=hv("kernelRegistry",()=>new Map),uc=hv("gradRegistry",()=>new Map);function Bh(e,t){let n=mv(e,t);return Cl.get(n)}function px(e){return uc.get(e)}function Vh(e){let t=Cl.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 qc(e){let{kernelName:t,backendName:n}=e,a=mv(t,n);Cl.has(a)&&Zr(`The kernel '${t}' for backend '${n}' is already registered`),Cl.set(a,e)}function AS(e){let{kernelName:t}=e;uc.has(t)&&G().getBool("DEBUG")&&Zr(`Overriding the gradient for '${t}'`),uc.set(t,e)}function CR(e,t){let n=mv(e,t);if(!Cl.has(n))throw new Error(`The kernel '${e}' for backend '${t}' is not registered`);Cl.delete(n)}function _R(e){if(!uc.has(e))throw new Error(`The gradient '${e}' for backend is not registered`);uc.delete(e)}function ER(e,t){Vh(e).forEach(n=>{let a=Object.assign({},n,{backendName:t});qc(a)})}function mv(e,t){return`${t}_${e}`}var v={};Ee(v,{arraysEqual:()=>$r,arraysEqualWithNull:()=>gS,assert:()=>A,assertNonNegativeIntegerDimensions:()=>ra,assertNonNull:()=>ki,assertShapesMatch:()=>Nn,bytesFromStringArray:()=>wS,bytesPerElement:()=>Lh,checkConversionForErrors:()=>xS,clamp:()=>lc,computeStrides:()=>Hl,convertBackendValuesAndArrayBuffer:()=>hR,createScalarValue:()=>MR,createShuffledIndices:()=>uR,decodeString:()=>Uh,distSquared:()=>sR,encodeString:()=>Kc,fetch:()=>OR,fingerPrint64:()=>RR,flatten:()=>is,getArrayFromDType:()=>pv,getTypedArrayFromDType:()=>yS,hasEncodingLoss:()=>dR,hexToLong:()=>jc,indexToLoc:()=>gR,inferDtype:()=>Cc,inferFromImplicitShape:()=>cR,isBoolean:()=>kS,isFunction:()=>ss,isInt:()=>Sl,isNumber:()=>IS,isPromise:()=>gm,isScalarShape:()=>iR,isString:()=>Jr,isTypedArray:()=>en,isValidDtype:()=>vS,locToIndex:()=>fR,makeOnesTypedArray:()=>cv,makeZerosNestedTypedArray:()=>mR,makeZerosTypedArray:()=>fm,nearestDivisor:()=>zh,nearestLargerEven:()=>nR,now:()=>pc,parseAxisParam:()=>$a,randUniform:()=>rR,repeatedTry:()=>pR,rightPad:()=>rc,shuffle:()=>fS,shuffleCombo:()=>tR,sizeFromShape:()=>bt,sizeToSquarishShape:()=>lR,squeezeShape:()=>bS,sum:()=>aR,swap:()=>Oh,tanh:()=>oR,toNestedArray:()=>vl,toTypedArray:()=>Dm});function FS(e){return e instanceof Float32Array||e instanceof Int32Array||e instanceof Uint8Array||e instanceof Uint8ClampedArray}var $k=gs(LD()),Ks=$k.default||$k;function jc(e){return Ks.fromString(e,!0,16)}var $S=jc("c3a5c85c97cb3127"),qs=jc("b492b66fbe98f273"),wn=jc("9ae16a3b2f90404f");function cx(e){return e.xor(e.shru(47))}function DS(e,t,n){let a=e.slice(t,t+n);return Ks.fromBytes(Array.from(a),!0,!0)}function gt(e,t){return DS(e,t,8)}function Dk(e,t){return DS(e,t,4)}function Qt(e,t){return t===0?e:e.shru(t).or(e.shl(64-t))}function ns(e,t,n=jc("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 AR(e,t,n,a,r,s){r=r.add(e),s=Qt(s.add(r).add(a),21);let i=r;return r=r.add(t),r=r.add(n),s=s.add(Qt(r,44)),[r.add(a),s.add(i)]}function mh(e,t,n,a){return AR(gt(e,t),gt(e,t+8),gt(e,t+16),gt(e,t+24),n,a)}function FR(e,t=e.length){if(t>=8){let n=wn.add(t*2),a=gt(e,0).add(wn),r=gt(e,t-8),s=Qt(r,37).mul(n).add(a),i=Qt(a,25).add(r).mul(n);return ns(s,i,n)}if(t>=4){let n=wn.add(t*2),a=Dk(e,0);return ns(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 cx(wn.mul(s).xor($S.mul(i))).mul(wn)}return wn}function $R(e,t=e.length){let n=wn.add(t*2),a=gt(e,0).mul(qs),r=gt(e,8),s=gt(e,t-8).mul(n),i=gt(e,t-16).mul(wn);return ns(Qt(a.add(r),43).add(Qt(s,30)).add(i),a.add(Qt(r.add(wn),18)).add(s),n)}function DR(e,t=e.length){let n=wn.add(t*2),a=gt(e,0).mul(wn),r=gt(e,8),s=gt(e,t-8).mul(n),i=gt(e,t-16).mul(wn),o=Qt(a.add(r),43).add(Qt(s,30)).add(i),l=ns(o,a.add(Qt(r.add(wn),18)).add(s),n),u=gt(e,16).mul(n),p=gt(e,24),d=o.add(gt(e,t-32)).mul(n),c=l.add(gt(e,t-24)).mul(n);return ns(Qt(u.add(p),43).add(Qt(d,30)).add(c),u.add(Qt(p.add(a),18)).add(d),n)}function RR(e,t=e.length){let n=Ks.fromNumber(81,!0);if(t<=32)return t<=16?FR(e,t):$R(e,t);if(t<=64)return DR(e,t);let a=n,r=n.mul(qs).add(113),s=cx(r.mul(wn).add(113)).mul(wn),i=[Ks.UZERO,Ks.UZERO],o=[Ks.UZERO,Ks.UZERO];a=a.mul(wn).add(gt(e,0));let l=0,u=(t-1>>6)*64,p=u+(t-1&63)-63;do a=Qt(a.add(r).add(i[0]).add(gt(e,l+8)),37).mul(qs),r=Qt(r.add(i[1]).add(gt(e,l+48)),42).mul(qs),a=a.xor(o[1]),r=r.add(i[0]).add(gt(e,l+40)),s=Qt(s.add(o[0]),33).mul(qs),i=mh(e,l,i[1].mul(qs),a.add(o[0])),o=mh(e,l+32,s.add(o[1]),r.add(gt(e,l+16))),[s,a]=[a,s],l+=64;while(l!==u);let d=qs.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=Qt(a.add(r).add(i[0]).add(gt(e,l+8)),37).mul(d),r=Qt(r.add(i[1]).add(gt(e,l+48)),42).mul(d),a=a.xor(o[1].mul(9)),r=r.add(i[0].mul(9).add(gt(e,l+40))),s=Qt(s.add(o[0]),33).mul(d),i=mh(e,l,i[1].mul(d),a.add(o[0])),o=mh(e,l+32,s.add(o[1]),r.add(gt(e,l+16))),[s,a]=[a,s],ns(ns(i[0],o[0],d).add(cx(r).mul($S)).add(s),ns(i[1],o[1],d).add(a),d)}function MR(e,t){return t==="string"?Kc(e):Dm([e],t)}function PR(e,t){return e instanceof Float32Array&&t==="float32"||e instanceof Int32Array&&t==="int32"||e instanceof Uint8Array&&t==="bool"}function Dm(e,t){if(t==="string")throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(e)&&(e=is(e)),G().getBool("DEBUG")&&xS(e,t),PR(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=pc();if(this.backendTimer.timerAvailable())s=this.backendTimer.time(r);else{r();for(let o of a)o.dataSync();s=Promise.resolve({kernelMs:pc()-i})}if(G().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let o=0;o{zR(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 zR(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 BR(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(!$r(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 Rk=20,Up=3,Xy=7;function UR(e,t,n,a){let r=Hl(t),s=GR(e,t,n,r),i=t.length,o=_h(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||j,J=c.printErr||K;Object.assign(c,g),g=null,c.arguments&&(b=c.arguments),c.thisProgram&&(y=c.thisProgram),c.quit&&(x=c.quit);var ee=4,ae=Atomics.load,te=Atomics.store,re=Atomics.compareExchange,ie;c.wasmBinary&&(ie=c.wasmBinary);var ye=c.noExitRuntime||!0;typeof WebAssembly!="object"&&Vs("no native wasm support detected");var ue,be,ke=!1,Se;function We(R,q){R||Vs(q)}var Ge=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function ht(R,q,le){q>>>=0;for(var Ne=q+le,Me=q;R[Me]&&!(Me>=Ne);)++Me;if(Me-q>16&&R.buffer&&Ge)return Ge.decode(R.buffer instanceof SharedArrayBuffer?R.slice(q,Me):R.subarray(q,Me));for(var Fe="";q>10,56320|pa&1023)}}return Fe}function st(R,q){return R>>>=0,R?ht(i(),R,q):""}function tt(R,q,le,Ne){if(le>>>=0,!(Ne>0))return 0;for(var Me=le,Fe=le+Ne-1,me=0;me=55296&&we<=57343){var _t=R.charCodeAt(++me);we=65536+((we&1023)<<10)|_t&1023}if(we<=127){if(le>=Fe)break;q[le++>>>0]=we}else if(we<=2047){if(le+1>=Fe)break;q[le++>>>0]=192|we>>6,q[le++>>>0]=128|we&63}else if(we<=65535){if(le+2>=Fe)break;q[le++>>>0]=224|we>>12,q[le++>>>0]=128|we>>6&63,q[le++>>>0]=128|we&63}else{if(le+3>=Fe)break;q[le++>>>0]=240|we>>18,q[le++>>>0]=128|we>>12&63,q[le++>>>0]=128|we>>6&63,q[le++>>>0]=128|we&63}}return q[le>>>0]=0,le-Me}function nt(R,q,le){return tt(R,i(),q,le)}var Re,ft,qn,Lt,oa,pn,$n,la,Dn;C&&(Re=c.buffer);function ot(R){Re=R,c.HEAP8=ft=new Int8Array(R),c.HEAP16=Lt=new Int16Array(R),c.HEAP32=pn=new Int32Array(R),c.HEAPU8=qn=new Uint8Array(R),c.HEAPU16=oa=new Uint16Array(R),c.HEAPU32=$n=new Uint32Array(R),c.HEAPF32=la=new Float32Array(R),c.HEAPF64=Dn=new Float64Array(R)}var Rn=c.INITIAL_MEMORY||16777216;if(C)ue=c.wasmMemory,Re=c.buffer;else if(c.wasmMemory)ue=c.wasmMemory;else if(ue=new WebAssembly.Memory({initial:Rn/65536,maximum:65536,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&&J("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and/or recent version)"),Error("bad memory");ue&&(Re=ue.buffer),Rn=Re.byteLength,ot(Re);var jn,vr=[],hl=[],Qa=[],Lp=!1;function Ia(){return ye}function qr(){if(c.preRun)for(typeof c.preRun=="function"&&(c.preRun=[c.preRun]);c.preRun.length;)kg(c.preRun.shift());Wp(vr)}function Qt(){Lp=!0,!C&&Wp(hl)}function Hd(){if(!C){if(c.postRun)for(typeof c.postRun=="function"&&(c.postRun=[c.postRun]);c.postRun.length;)Ck(c.postRun.shift());Wp(Qa)}}function kg(R){vr.unshift(R)}function Ig(R){hl.unshift(R)}function Ck(R){Qa.unshift(R)}var jr=0,ml=null,wr=null;function Sg(R){jr++,c.monitorRunDependencies&&c.monitorRunDependencies(jr)}function qd(R){if(jr--,c.monitorRunDependencies&&c.monitorRunDependencies(jr),jr==0&&(ml!==null&&(clearInterval(ml),ml=null),wr)){var q=wr;wr=null,q()}}function Vs(R){c.onAbort&&c.onAbort(R),R="Aborted("+R+")",J(R),ke=!0,Se=1,R+=". Build with -sASSERTIONS for more info.";var q=new WebAssembly.RuntimeError(R);throw m(q),q}var Ng="data:application/octet-stream;base64,";function jd(R){return R.startsWith(Ng)}function fl(R){return R.startsWith("file://")}var gn;gn="tfjs-backend-wasm-threaded-simd.wasm",jd(gn)||(gn=F(gn));function Kd(R){try{if(R==gn&&ie)return new Uint8Array(ie);if(S)return S(R);throw"both async and sync fetching of the wasm failed"}catch(q){Vs(q)}}function Tg(){if(!ie&&(v||I)){if(typeof fetch=="function"&&!fl(gn))return fetch(gn,{credentials:"same-origin"}).then(function(R){if(!R.ok)throw"failed to load wasm binary file at '"+gn+"'";return R.arrayBuffer()}).catch(function(){return Kd(gn)});if($)return new Promise(function(R,q){$(gn,function(le){R(new Uint8Array(le))},q)})}return Promise.resolve().then(function(){return Kd(gn)})}function Cg(){var R={env:oh,wasi_snapshot_preview1:oh};function q(me,we){var _t=me.exports;if(c.asm=_t,Pg(c.asm._emscripten_tls_init),jn=c.asm.__indirect_function_table,Ig(c.asm.__wasm_call_ctors),be=we,!C){var pa=Ae.unusedWorkers.length;Ae.unusedWorkers.forEach(function(Ir){Ae.loadWasmModuleToWorker(Ir,function(){--pa||qd("wasm-instantiate")})})}}C||Sg("wasm-instantiate");function le(me){q(me.instance,me.module)}function Ne(me){return Tg().then(function(we){return WebAssembly.instantiate(we,R)}).then(function(we){return we}).then(me,function(we){J("failed to asynchronously prepare wasm: "+we),Vs(we)})}function Me(){return!ie&&typeof WebAssembly.instantiateStreaming=="function"&&!jd(gn)&&!fl(gn)&&!T&&typeof fetch=="function"?fetch(gn,{credentials:"same-origin"}).then(function(me){var we=WebAssembly.instantiateStreaming(me,R);return we.then(le,function(_t){return J("wasm streaming compile failed: "+_t),J("falling back to ArrayBuffer instantiation"),Ne(le)})}):Ne(le)}if(c.instantiateWasm)try{var Fe=c.instantiateWasm(R,q);return Fe}catch(me){J("Module.instantiateWasm callback failed with error: "+me),m(me)}return Me().catch(m),{}}var _k,Ek,Xd={};function Us(R){this.name="ExitStatus",this.message="Program terminated with exit("+R+")",this.status=R}function _g(R){var q=Ae.pthreads[R];delete Ae.pthreads[R],q.terminate(),Jy(R),Ae.runningWorkers.splice(Ae.runningWorkers.indexOf(q),1),q.pthread_ptr=0}function Eg(R){var q=Ae.pthreads[R];q.postMessage({cmd:"cancel"})}function zp(R){var q=Ae.pthreads[R];We(q),Ae.returnWorkerToPool(q)}function Ag(R){var q=Ae.getNewWorker();if(!q)return 6;Ae.runningWorkers.push(q),Ae.pthreads[R.pthread_ptr]=q,q.pthread_ptr=R.pthread_ptr;var le={cmd:"run",start_routine:R.startRoutine,arg:R.arg,pthread_ptr:R.pthread_ptr};return q.runPthread=()=>{T&&q.ref(),q.postMessage(le,R.transferList),delete q.runPthread},q.loaded&&q.runPthread(),0}var Yd={varargs:void 0,get:function(){Yd.varargs+=4;var R=l()[Yd.varargs-4>>>2];return R},getStr:function(R){var q=st(R);return q}};function Zd(R){if(C)return Kr(1,1,R);Se=R,Ia()||(Ae.terminateAllThreads(),c.onExit&&c.onExit(R),ke=!0),x(R,new Us(R))}function Fg(R,q){if(Se=R,!q&&C)throw Qd(R),"unwind";Zd(R)}var Jd=Fg;function $g(R){if(R instanceof Us||R=="unwind")return Se;x(1,R)}var Ae={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init:function(){C?Ae.initWorker():Ae.initMainThread()},initMainThread:function(){for(var R=8;R--;)Ae.allocateUnusedWorker()},initWorker:function(){ye=!1},setExitStatus:function(R){Se=R},terminateAllThreads:function(){for(var R of Object.values(Ae.pthreads))Ae.returnWorkerToPool(R);for(var R of Ae.unusedWorkers)R.terminate();Ae.unusedWorkers=[]},returnWorkerToPool:function(R){var q=R.pthread_ptr;delete Ae.pthreads[q],Ae.unusedWorkers.push(R),Ae.runningWorkers.splice(Ae.runningWorkers.indexOf(R),1),R.pthread_ptr=0,T&&R.unref(),Jy(q)},receiveObjectTransfer:function(R){},threadInitTLS:function(){Ae.tlsInitFunctions.forEach(R=>R())},loadWasmModuleToWorker:function(R,q){R.onmessage=Fe=>{var me=Fe.data,we=me.cmd;if(R.pthread_ptr&&(Ae.currentProxiedOperationCallerThread=R.pthread_ptr),me.targetThread&&me.targetThread!=hh()){var _t=Ae.pthreads[me.targetThread];_t?_t.postMessage(me,me.transferList):J('Internal error! Worker sent a message "'+we+'" to target pthread '+me.targetThread+", but that thread no longer exists!"),Ae.currentProxiedOperationCallerThread=void 0;return}we==="processProxyingQueue"?Bp(me.queue):we==="spawnThread"?Ag(me):we==="cleanupThread"?zp(me.thread):we==="killThread"?_g(me.thread):we==="cancelThread"?Eg(me.thread):we==="loaded"?(R.loaded=!0,T&&R.unref(),q&&q(R),R.runPthread&&R.runPthread()):we==="print"?Z("Thread "+me.threadId+": "+me.text):we==="printErr"?J("Thread "+me.threadId+": "+me.text):we==="alert"?alert("Thread "+me.threadId+": "+me.text):me.target==="setimmediate"?R.postMessage(me):we==="callHandler"?c[me.handler](...me.args):we&&J("worker sent an unknown command "+we),Ae.currentProxiedOperationCallerThread=void 0},R.onerror=Fe=>{var me="worker sent an error!";throw J(me+" "+Fe.filename+":"+Fe.lineno+": "+Fe.message),Fe},T&&(R.on("message",function(Fe){R.onmessage({data:Fe})}),R.on("error",function(Fe){R.onerror(Fe)}),R.on("detachedExit",function(){}));var le=[],Ne=["onExit","onAbort","print","printErr"];for(var Me of Ne)c.hasOwnProperty(Me)&&le.push(Me);R.postMessage({cmd:"load",handlers:le,urlOrBlob:c.mainScriptUrlOrBlob||a,wasmMemory:ue,wasmModule:be})},allocateUnusedWorker:function(){var R,q=F("tfjs-backend-wasm-threaded-simd.worker.js");R=new Worker(q),Ae.unusedWorkers.push(R)},getNewWorker:function(){return Ae.unusedWorkers.length==0&&(Ae.allocateUnusedWorker(),Ae.loadWasmModuleToWorker(Ae.unusedWorkers[0])),Ae.unusedWorkers.pop()}};c.PThread=Ae;function Wp(R){for(;R.length>0;)R.shift()(c)}function Dg(){var R=hh(),q=l()[R+52>>>2],le=l()[R+56>>>2],Ne=q-le;Mk(q,Ne),mh(q)}c.establishStackSpace=Dg;function Qd(R){if(C)return Kr(2,0,R);try{Jd(R)}catch(q){$g(q)}}var gl=[];function Rg(R){var q=gl[R];return q||(R>=gl.length&&(gl.length=R+1),gl[R]=q=jn.get(R)),q}function Mg(R,q){var le=Rg(R)(q);Ia()?Ae.setExitStatus(le):Rk(le)}c.invokeEntryPoint=Mg;function Pg(R){Ae.tlsInitFunctions.push(R)}function Og(R){Fk(R,!I,1,!v),Ae.threadInitTLS()}function Lg(R){C?postMessage({cmd:"cleanupThread",thread:R}):zp(R)}function eh(R,q,le,Ne){return C?Kr(3,1,R,q,le,Ne):th(R,q,le,Ne)}function th(R,q,le,Ne){if(typeof SharedArrayBuffer=="undefined")return J("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;var Me=[],Fe=0;if(C&&(Me.length===0||Fe))return eh(R,q,le,Ne);if(Fe)return Fe;var me={startRoutine:le,pthread_ptr:R,arg:Ne,transferList:Me};return C?(me.cmd="spawnThread",postMessage(me,Me),0):Ag(me)}function zg(){return 65536}var Wg=!0;function Bg(){return Wg}function Bp(R){Atomics.store(l(),R>>2,1),hh()&&Dk(R),Atomics.compareExchange(l(),R>>2,1,0)}c.executeNotifiedProxyingQueue=Bp;function Vg(R,q,le,Ne){if(R==q)setTimeout(()=>Bp(Ne));else if(C)postMessage({targetThread:R,cmd:"processProxyingQueue",queue:Ne});else{var Me=Ae.pthreads[R];if(!Me)return;Me.postMessage({cmd:"processProxyingQueue",queue:Ne})}return 1}function Ug(R,q,le){return-1}function Gg(){Vs("")}function Gs(R){Gs.shown||(Gs.shown={}),Gs.shown[R]||(Gs.shown[R]=1,T&&(R="warning: "+R),J(R))}function Hg(){T||I||Gs("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function qg(){return Date.now()}function nh(){return 4294901760}function jg(){return nh()}var Vp;T?Vp=()=>{var R=process.hrtime();return R[0]*1e3+R[1]/1e6}:Vp=()=>performance.timeOrigin+performance.now();function Kg(R,q,le){i().copyWithin(R>>>0,q>>>0,q+le>>>0)}function Xg(){return T?pR().cpus().length:navigator.hardwareConcurrency}function Yg(R){var q=Qy(),le=R();return mh(q),le}function Kr(R,q){var le=arguments.length-2,Ne=arguments;return Yg(()=>{for(var Me=le,Fe=fh(Me*8),me=Fe>>3,we=0;we>>0]=_t}return $k(R,Me,Fe,q)})}var Up=[];function Zg(R,q,le){Up.length=q;for(var Ne=le>>3,Me=0;Me>>0];var Fe=R<0,me=Fe?Xd[-R-1]:ib[R];return me.apply(null,Up)}function Jg(R){try{return ue.grow(R-Re.byteLength+65535>>>16),ot(ue.buffer),1}catch(q){}}function Qg(R){var q=i().length;if(R=R>>>0,R<=q)return!1;var le=nh();if(R>le)return!1;let Ne=(_t,pa)=>_t+(pa-_t%pa)%pa;for(var Me=1;Me<=4;Me*=2){var Fe=q*(1+.2/Me);Fe=Math.min(Fe,R+100663296);var me=Math.min(le,Ne(Math.max(R,Fe),65536)),we=Jg(me);if(we)return!0}return!1}function eb(){throw"unwind"}function ah(R){return C?Kr(4,1,R):52}function rh(R,q,le,Ne,Me){return C?Kr(5,1,R,q,le,Ne,Me):70}var tb=[null,[],[]];function nb(R,q){var le=tb[R];q===0||q===10?((R===1?Z:J)(ht(le,0)),le.length=0):le.push(q)}function sh(R,q,le,Ne){if(C)return Kr(6,1,R,q,le,Ne);for(var Me=0,Fe=0;Fe>>2],we=u()[q+4>>>2];q+=8;for(var _t=0;_t>>0]);Me+=we}return u()[Ne>>>2]=Me,0}function ih(R){var q=c["_"+R];return q}function ab(R,q){s().set(R,q>>>0)}function rb(R,q,le,Ne,Me){var Fe={string:ca=>{var vl=0;if(ca!=null&&ca!==0){var Lk=(ca.length<<2)+1;vl=fh(Lk),nt(ca,vl,Lk)}return vl},array:ca=>{var vl=fh(ca.length);return ab(ca,vl),vl}};function me(ca){return q==="string"?st(ca):q==="boolean"?!!ca:ca}var we=ih(R),_t=[],pa=0;if(Ne)for(var Ir=0;Irme==="number"||me==="boolean"),Fe=q!=="string";return Fe&&Me&&!Ne?ih(R):function(){return rb(R,q,le,arguments,Ne)}}Ae.init();var ib=[null,Zd,Qd,eh,ah,rh,sh],oh={__emscripten_init_main_thread_js:Og,__emscripten_thread_cleanup:Lg,__pthread_create_js:th,_emscripten_default_pthread_stack_size:zg,_emscripten_get_now_is_monotonic:Bg,_emscripten_notify_task_queue:Vg,_emscripten_set_offscreencanvas_size:Ug,abort:Gg,emscripten_check_blocking_allowed:Hg,emscripten_date_now:qg,emscripten_get_heap_max:jg,emscripten_get_now:Vp,emscripten_memcpy_big:Kg,emscripten_num_logical_cores:Xg,emscripten_receive_on_main_thread_js:Zg,emscripten_resize_heap:Qg,emscripten_unwind_to_js_event_loop:eb,exit:Jd,fd_close:ah,fd_seek:rh,fd_write:sh,memory:ue||c.wasmMemory},Ak=Cg(),ob=c.___wasm_call_ctors=function(){return(ob=c.___wasm_call_ctors=c.asm.__wasm_call_ctors).apply(null,arguments)},lb=c._init=function(){return(lb=c._init=c.asm.init).apply(null,arguments)},ub=c._init_with_threads_count=function(){return(ub=c._init_with_threads_count=c.asm.init_with_threads_count).apply(null,arguments)},pb=c._get_threads_count=function(){return(pb=c._get_threads_count=c.asm.get_threads_count).apply(null,arguments)},cb=c._register_tensor=function(){return(cb=c._register_tensor=c.asm.register_tensor).apply(null,arguments)},db=c._dispose_data=function(){return(db=c._dispose_data=c.asm.dispose_data).apply(null,arguments)},hb=c._dispose=function(){return(hb=c._dispose=c.asm.dispose).apply(null,arguments)},mb=c._Abs=function(){return(mb=c._Abs=c.asm.Abs).apply(null,arguments)},fb=c._Acos=function(){return(fb=c._Acos=c.asm.Acos).apply(null,arguments)},gb=c._Acosh=function(){return(gb=c._Acosh=c.asm.Acosh).apply(null,arguments)},bb=c._Add=function(){return(bb=c._Add=c.asm.Add).apply(null,arguments)},yb=c._AddN=function(){return(yb=c._AddN=c.asm.AddN).apply(null,arguments)},xb=c._All=function(){return(xb=c._All=c.asm.All).apply(null,arguments)},vb=c._Any=function(){return(vb=c._Any=c.asm.Any).apply(null,arguments)},wb=c._ArgMax=function(){return(wb=c._ArgMax=c.asm.ArgMax).apply(null,arguments)},kb=c._ArgMin=function(){return(kb=c._ArgMin=c.asm.ArgMin).apply(null,arguments)},Ib=c._Asin=function(){return(Ib=c._Asin=c.asm.Asin).apply(null,arguments)},Sb=c._Asinh=function(){return(Sb=c._Asinh=c.asm.Asinh).apply(null,arguments)},Nb=c._Atan=function(){return(Nb=c._Atan=c.asm.Atan).apply(null,arguments)},Tb=c._Atan2=function(){return(Tb=c._Atan2=c.asm.Atan2).apply(null,arguments)},Cb=c._Atanh=function(){return(Cb=c._Atanh=c.asm.Atanh).apply(null,arguments)},_b=c._AvgPool=function(){return(_b=c._AvgPool=c.asm.AvgPool).apply(null,arguments)},Eb=c._AvgPool3D=function(){return(Eb=c._AvgPool3D=c.asm.AvgPool3D).apply(null,arguments)},Ab=c._AvgPool3DGrad=function(){return(Ab=c._AvgPool3DGrad=c.asm.AvgPool3DGrad).apply(null,arguments)},Fb=c._AvgPoolGrad=function(){return(Fb=c._AvgPoolGrad=c.asm.AvgPoolGrad).apply(null,arguments)},$b=c._BatchMatMul=function(){return($b=c._BatchMatMul=c.asm.BatchMatMul).apply(null,arguments)},Db=c._Bincount=function(){return(Db=c._Bincount=c.asm.Bincount).apply(null,arguments)},Rb=c._BitwiseAnd=function(){return(Rb=c._BitwiseAnd=c.asm.BitwiseAnd).apply(null,arguments)},Mb=c._Ceil=function(){return(Mb=c._Ceil=c.asm.Ceil).apply(null,arguments)},Pb=c._ClipByValue=function(){return(Pb=c._ClipByValue=c.asm.ClipByValue).apply(null,arguments)},Ob=c._Conv2D=function(){return(Ob=c._Conv2D=c.asm.Conv2D).apply(null,arguments)},Lb=c._Conv2DBackpropInput=function(){return(Lb=c._Conv2DBackpropInput=c.asm.Conv2DBackpropInput).apply(null,arguments)},zb=c._Conv3D=function(){return(zb=c._Conv3D=c.asm.Conv3D).apply(null,arguments)},Wb=c._Conv3DBackpropFilterV2=function(){return(Wb=c._Conv3DBackpropFilterV2=c.asm.Conv3DBackpropFilterV2).apply(null,arguments)},Bb=c._Conv3DBackpropInputV2=function(){return(Bb=c._Conv3DBackpropInputV2=c.asm.Conv3DBackpropInputV2).apply(null,arguments)},Vb=c._Cos=function(){return(Vb=c._Cos=c.asm.Cos).apply(null,arguments)},Ub=c._Cosh=function(){return(Ub=c._Cosh=c.asm.Cosh).apply(null,arguments)},Gb=c._CropAndResize=function(){return(Gb=c._CropAndResize=c.asm.CropAndResize).apply(null,arguments)},Hb=c._Cumprod=function(){return(Hb=c._Cumprod=c.asm.Cumprod).apply(null,arguments)},qb=c._Cumsum=function(){return(qb=c._Cumsum=c.asm.Cumsum).apply(null,arguments)},jb=c._DenseBincount=function(){return(jb=c._DenseBincount=c.asm.DenseBincount).apply(null,arguments)},Kb=c._DepthToSpace=function(){return(Kb=c._DepthToSpace=c.asm.DepthToSpace).apply(null,arguments)},Xb=c._DepthwiseConv2dNative=function(){return(Xb=c._DepthwiseConv2dNative=c.asm.DepthwiseConv2dNative).apply(null,arguments)},Yb=c._Diag=function(){return(Yb=c._Diag=c.asm.Diag).apply(null,arguments)},Zb=c._Dilation2D=function(){return(Zb=c._Dilation2D=c.asm.Dilation2D).apply(null,arguments)},Jb=c._Dilation2DBackpropFilter=function(){return(Jb=c._Dilation2DBackpropFilter=c.asm.Dilation2DBackpropFilter).apply(null,arguments)},Qb=c._Dilation2DBackpropInput=function(){return(Qb=c._Dilation2DBackpropInput=c.asm.Dilation2DBackpropInput).apply(null,arguments)},ey=c._Elu=function(){return(ey=c._Elu=c.asm.Elu).apply(null,arguments)},ty=c._EluGrad=function(){return(ty=c._EluGrad=c.asm.EluGrad).apply(null,arguments)},ny=c._Equal=function(){return(ny=c._Equal=c.asm.Equal).apply(null,arguments)},ay=c._Erf=function(){return(ay=c._Erf=c.asm.Erf).apply(null,arguments)},ry=c._Exp=function(){return(ry=c._Exp=c.asm.Exp).apply(null,arguments)},sy=c._Expm1=function(){return(sy=c._Expm1=c.asm.Expm1).apply(null,arguments)},iy=c._FlipLeftRight=function(){return(iy=c._FlipLeftRight=c.asm.FlipLeftRight).apply(null,arguments)},oy=c._Floor=function(){return(oy=c._Floor=c.asm.Floor).apply(null,arguments)},ly=c._FloorDiv=function(){return(ly=c._FloorDiv=c.asm.FloorDiv).apply(null,arguments)},uy=c._FusedBatchNorm=function(){return(uy=c._FusedBatchNorm=c.asm.FusedBatchNorm).apply(null,arguments)},py=c._FusedConv2D=function(){return(py=c._FusedConv2D=c.asm.FusedConv2D).apply(null,arguments)},cy=c._FusedDepthwiseConv2D=function(){return(cy=c._FusedDepthwiseConv2D=c.asm.FusedDepthwiseConv2D).apply(null,arguments)},dy=c._Gather=function(){return(dy=c._Gather=c.asm.Gather).apply(null,arguments)},hy=c._GatherNd=function(){return(hy=c._GatherNd=c.asm.GatherNd).apply(null,arguments)},my=c._Greater=function(){return(my=c._Greater=c.asm.Greater).apply(null,arguments)},fy=c._GreaterEqual=function(){return(fy=c._GreaterEqual=c.asm.GreaterEqual).apply(null,arguments)},gy=c._IsFinite=function(){return(gy=c._IsFinite=c.asm.IsFinite).apply(null,arguments)},by=c._IsInf=function(){return(by=c._IsInf=c.asm.IsInf).apply(null,arguments)},yy=c._IsNan=function(){return(yy=c._IsNan=c.asm.IsNan).apply(null,arguments)},xy=c._LRN=function(){return(xy=c._LRN=c.asm.LRN).apply(null,arguments)},vy=c._LRNGrad=function(){return(vy=c._LRNGrad=c.asm.LRNGrad).apply(null,arguments)},wy=c._LeakyRelu=function(){return(wy=c._LeakyRelu=c.asm.LeakyRelu).apply(null,arguments)},ky=c._Less=function(){return(ky=c._Less=c.asm.Less).apply(null,arguments)},Iy=c._LessEqual=function(){return(Iy=c._LessEqual=c.asm.LessEqual).apply(null,arguments)},Sy=c._LinSpace=function(){return(Sy=c._LinSpace=c.asm.LinSpace).apply(null,arguments)},Ny=c._Log=function(){return(Ny=c._Log=c.asm.Log).apply(null,arguments)},Ty=c._Log1p=function(){return(Ty=c._Log1p=c.asm.Log1p).apply(null,arguments)},Cy=c._LogicalAnd=function(){return(Cy=c._LogicalAnd=c.asm.LogicalAnd).apply(null,arguments)},_y=c._LogicalNot=function(){return(_y=c._LogicalNot=c.asm.LogicalNot).apply(null,arguments)},Ey=c._LogicalOr=function(){return(Ey=c._LogicalOr=c.asm.LogicalOr).apply(null,arguments)},Ay=c._LogicalXor=function(){return(Ay=c._LogicalXor=c.asm.LogicalXor).apply(null,arguments)},Fy=c._Max=function(){return(Fy=c._Max=c.asm.Max).apply(null,arguments)},$y=c._MaxPool=function(){return($y=c._MaxPool=c.asm.MaxPool).apply(null,arguments)},Dy=c._MaxPool3D=function(){return(Dy=c._MaxPool3D=c.asm.MaxPool3D).apply(null,arguments)},Ry=c._MaxPool3DGrad=function(){return(Ry=c._MaxPool3DGrad=c.asm.MaxPool3DGrad).apply(null,arguments)},My=c._MaxPoolGrad=function(){return(My=c._MaxPoolGrad=c.asm.MaxPoolGrad).apply(null,arguments)},Py=c._MaxPoolWithArgmax=function(){return(Py=c._MaxPoolWithArgmax=c.asm.MaxPoolWithArgmax).apply(null,arguments)},Oy=c._Maximum=function(){return(Oy=c._Maximum=c.asm.Maximum).apply(null,arguments)},Ly=c._Mean=function(){return(Ly=c._Mean=c.asm.Mean).apply(null,arguments)},zy=c._Min=function(){return(zy=c._Min=c.asm.Min).apply(null,arguments)},Wy=c._Minimum=function(){return(Wy=c._Minimum=c.asm.Minimum).apply(null,arguments)},By=c._MirrorPad=function(){return(By=c._MirrorPad=c.asm.MirrorPad).apply(null,arguments)},Vy=c._Mod=function(){return(Vy=c._Mod=c.asm.Mod).apply(null,arguments)},Uy=c._Multinomial=function(){return(Uy=c._Multinomial=c.asm.Multinomial).apply(null,arguments)},Gy=c._Multiply=function(){return(Gy=c._Multiply=c.asm.Multiply).apply(null,arguments)},Hy=c._Neg=function(){return(Hy=c._Neg=c.asm.Neg).apply(null,arguments)},qy=c._NonMaxSuppressionV3=function(){return(qy=c._NonMaxSuppressionV3=c.asm.NonMaxSuppressionV3).apply(null,arguments)},jy=c._NonMaxSuppressionV4=function(){return(jy=c._NonMaxSuppressionV4=c.asm.NonMaxSuppressionV4).apply(null,arguments)},lh=c._NonMaxSuppressionV5=function(){return(lh=c._NonMaxSuppressionV5=c.asm.NonMaxSuppressionV5).apply(null,arguments)},uh=c._NotEqual=function(){return(uh=c._NotEqual=c.asm.NotEqual).apply(null,arguments)},Gp=c._OneHot=function(){return(Gp=c._OneHot=c.asm.OneHot).apply(null,arguments)},Ky=c._PadV2=function(){return(Ky=c._PadV2=c.asm.PadV2).apply(null,arguments)},Xy=c._Pow=function(){return(Xy=c._Pow=c.asm.Pow).apply(null,arguments)},bl=c._Prelu=function(){return(bl=c._Prelu=c.asm.Prelu).apply(null,arguments)},ph=c._Prod=function(){return(ph=c._Prod=c.asm.Prod).apply(null,arguments)},yl=c._RealDiv=function(){return(yl=c._RealDiv=c.asm.RealDiv).apply(null,arguments)},xl=c._Reciprocal=function(){return(xl=c._Reciprocal=c.asm.Reciprocal).apply(null,arguments)},Yy=c._Relu=function(){return(Yy=c._Relu=c.asm.Relu).apply(null,arguments)},Y=c._Relu6=function(){return(Y=c._Relu6=c.asm.Relu6).apply(null,arguments)},oe=c._ResizeBilinear=function(){return(oe=c._ResizeBilinear=c.asm.ResizeBilinear).apply(null,arguments)},Ie=c._ResizeBilinearGrad=function(){return(Ie=c._ResizeBilinearGrad=c.asm.ResizeBilinearGrad).apply(null,arguments)},Ye=c._ResizeNearestNeighbor=function(){return(Ye=c._ResizeNearestNeighbor=c.asm.ResizeNearestNeighbor).apply(null,arguments)},It=c._ResizeNearestNeighborGrad=function(){return(It=c._ResizeNearestNeighborGrad=c.asm.ResizeNearestNeighborGrad).apply(null,arguments)},St=c._Reverse=function(){return(St=c._Reverse=c.asm.Reverse).apply(null,arguments)},He=c._RotateWithOffset=function(){return(He=c._RotateWithOffset=c.asm.RotateWithOffset).apply(null,arguments)},Ve=c._Round=function(){return(Ve=c._Round=c.asm.Round).apply(null,arguments)},zt=c._Rsqrt=function(){return(zt=c._Rsqrt=c.asm.Rsqrt).apply(null,arguments)},ua=c._ScatterNd=function(){return(ua=c._ScatterNd=c.asm.ScatterNd).apply(null,arguments)},kr=c._SearchSorted=function(){return(kr=c._SearchSorted=c.asm.SearchSorted).apply(null,arguments)},ch=c._SelectV2=function(){return(ch=c._SelectV2=c.asm.SelectV2).apply(null,arguments)},Hp=c._Selu=function(){return(Hp=c._Selu=c.asm.Selu).apply(null,arguments)},Zy=c._Sigmoid=function(){return(Zy=c._Sigmoid=c.asm.Sigmoid).apply(null,arguments)},Mn=c._Sign=function(){return(Mn=c._Sign=c.asm.Sign).apply(null,arguments)},Xr=c._Sin=function(){return(Xr=c._Sin=c.asm.Sin).apply(null,arguments)},dh=c._Sinh=function(){return(dh=c._Sinh=c.asm.Sinh).apply(null,arguments)},pD=c._Softmax=function(){return(pD=c._Softmax=c.asm.Softmax).apply(null,arguments)},cD=c._Softplus=function(){return(cD=c._Softplus=c.asm.Softplus).apply(null,arguments)},dD=c._SparseFillEmptyRows=function(){return(dD=c._SparseFillEmptyRows=c.asm.SparseFillEmptyRows).apply(null,arguments)},hD=c._SparseReshape=function(){return(hD=c._SparseReshape=c.asm.SparseReshape).apply(null,arguments)},mD=c._SparseSegmentReduction=function(){return(mD=c._SparseSegmentReduction=c.asm.SparseSegmentReduction).apply(null,arguments)},fD=c._SparseToDense=function(){return(fD=c._SparseToDense=c.asm.SparseToDense).apply(null,arguments)},gD=c._Sqrt=function(){return(gD=c._Sqrt=c.asm.Sqrt).apply(null,arguments)},bD=c._Square=function(){return(bD=c._Square=c.asm.Square).apply(null,arguments)},yD=c._SquaredDifference=function(){return(yD=c._SquaredDifference=c.asm.SquaredDifference).apply(null,arguments)},xD=c._Step=function(){return(xD=c._Step=c.asm.Step).apply(null,arguments)},vD=c._StridedSlice=function(){return(vD=c._StridedSlice=c.asm.StridedSlice).apply(null,arguments)},wD=c._Sub=function(){return(wD=c._Sub=c.asm.Sub).apply(null,arguments)},kD=c._Sum=function(){return(kD=c._Sum=c.asm.Sum).apply(null,arguments)},ID=c._Tan=function(){return(ID=c._Tan=c.asm.Tan).apply(null,arguments)},SD=c._Tanh=function(){return(SD=c._Tanh=c.asm.Tanh).apply(null,arguments)},ND=c._TensorScatterUpdate=function(){return(ND=c._TensorScatterUpdate=c.asm.TensorScatterUpdate).apply(null,arguments)},TD=c._Tile=function(){return(TD=c._Tile=c.asm.Tile).apply(null,arguments)},CD=c._TopK=function(){return(CD=c._TopK=c.asm.TopK).apply(null,arguments)},_D=c._Transform=function(){return(_D=c._Transform=c.asm.Transform).apply(null,arguments)},ED=c._Transpose=function(){return(ED=c._Transpose=c.asm.Transpose).apply(null,arguments)},AD=c.__FusedMatMul=function(){return(AD=c.__FusedMatMul=c.asm._FusedMatMul).apply(null,arguments)},FD=c._malloc=function(){return(FD=c._malloc=c.asm.malloc).apply(null,arguments)},$D=c._free=function(){return($D=c._free=c.asm.free).apply(null,arguments)},DD=c.__emscripten_tls_init=function(){return(DD=c.__emscripten_tls_init=c.asm._emscripten_tls_init).apply(null,arguments)},hh=c._pthread_self=function(){return(hh=c._pthread_self=c.asm.pthread_self).apply(null,arguments)},RD=c.___errno_location=function(){return(RD=c.___errno_location=c.asm.__errno_location).apply(null,arguments)},Fk=c.__emscripten_thread_init=function(){return(Fk=c.__emscripten_thread_init=c.asm._emscripten_thread_init).apply(null,arguments)},MD=c.__emscripten_thread_crashed=function(){return(MD=c.__emscripten_thread_crashed=c.asm._emscripten_thread_crashed).apply(null,arguments)},PD=c._emscripten_main_thread_process_queued_calls=function(){return(PD=c._emscripten_main_thread_process_queued_calls=c.asm.emscripten_main_thread_process_queued_calls).apply(null,arguments)},OD=c._emscripten_main_browser_thread_id=function(){return(OD=c._emscripten_main_browser_thread_id=c.asm.emscripten_main_browser_thread_id).apply(null,arguments)},$k=c._emscripten_run_in_main_runtime_thread_js=function(){return($k=c._emscripten_run_in_main_runtime_thread_js=c.asm.emscripten_run_in_main_runtime_thread_js).apply(null,arguments)},LD=c._emscripten_dispatch_to_thread_=function(){return(LD=c._emscripten_dispatch_to_thread_=c.asm.emscripten_dispatch_to_thread_).apply(null,arguments)},Dk=c.__emscripten_proxy_execute_task_queue=function(){return(Dk=c.__emscripten_proxy_execute_task_queue=c.asm._emscripten_proxy_execute_task_queue).apply(null,arguments)},Jy=c.__emscripten_thread_free_data=function(){return(Jy=c.__emscripten_thread_free_data=c.asm._emscripten_thread_free_data).apply(null,arguments)},Rk=c.__emscripten_thread_exit=function(){return(Rk=c.__emscripten_thread_exit=c.asm._emscripten_thread_exit).apply(null,arguments)},Mk=c._emscripten_stack_set_limits=function(){return(Mk=c._emscripten_stack_set_limits=c.asm.emscripten_stack_set_limits).apply(null,arguments)},Qy=c.stackSave=function(){return(Qy=c.stackSave=c.asm.stackSave).apply(null,arguments)},mh=c.stackRestore=function(){return(mh=c.stackRestore=c.asm.stackRestore).apply(null,arguments)},fh=c.stackAlloc=function(){return(fh=c.stackAlloc=c.asm.stackAlloc).apply(null,arguments)},zD=c.dynCall_iijjiiii=function(){return(zD=c.dynCall_iijjiiii=c.asm.dynCall_iijjiiii).apply(null,arguments)},WD=c.dynCall_jiji=function(){return(WD=c.dynCall_jiji=c.asm.dynCall_jiji).apply(null,arguments)};c.keepRuntimeAlive=Ia,c.wasmMemory=ue,c.cwrap=sb,c.ExitStatus=Us,c.PThread=Ae;var gh;wr=function R(){gh||Pk(),gh||(wr=R)};function Pk(R){if(R=R||b,jr>0)return;if(C){h(c),Qt(),startWorker(c);return}if(qr(),jr>0)return;function q(){gh||(gh=!0,c.calledRun=!0,!ke&&(Qt(),h(c),c.onRuntimeInitialized&&c.onRuntimeInitialized(),Hd()))}c.setStatus?(c.setStatus("Running..."),setTimeout(function(){setTimeout(function(){c.setStatus("")},1),q()},1)):q()}if(c.preInit)for(typeof c.preInit=="function"&&(c.preInit=[c.preInit]);c.preInit.length>0;)c.preInit.pop()();Pk();var bh;f&&(bh={uncaughtException:process.listeners("uncaughtException").filter(function(R){return!f.uncaughtException.indexOf(R)>-1}),unhandledRejection:process.listeners("unhandledRejection").filter(function(R){return!f.unhandledRejection.indexOf(R)>-1})});var yh;if(typeof WasmBackendModule!="undefined")yh=WasmBackendModule;else if(typeof r!="undefined")yh=r;else throw new Error("Could not find wasm module in post.js");if(bh){var BD=yh._dispose;yh._dispose=function(){BD(),bh.uncaughtException.forEach(function(R){process.removeListener("uncaughtException",R)}),bh.unhandledRejection.forEach(function(R){process.removeListener("unhandledRejection",R)})}}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)}),dR=Gt((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")+"//# sourceURL="+f)},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.startWorker=instance=>{Module=instance;postMessage({"cmd":"loaded"})};self.onmessage=e=>{try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;for(const handler of e.data.handlers){Module[handler]=function(){postMessage({cmd:"callHandler",handler:handler,args:[...arguments]})}}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)}else if(e.data.cmd==="run"){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}};`}),hR=Gt((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(Y,oe){i=Y,o=oe});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=(Y,oe)=>{throw oe},h=typeof window=="object",m=typeof importScripts=="function",f=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",g="";function b(Y){return s.locateFile?s.locateFile(Y,g):g+Y}var y,x,v,I;function T(Y){Y instanceof ml||D("exiting due to exception: "+Y)}if(f){var C=bv(),E=IS();m?g=E.dirname(g)+"/":g=__dirname+"/",y=(Y,oe)=>(Y=qr(Y)?new URL(Y):E.normalize(Y),C.readFileSync(Y,oe?void 0:"utf8")),v=Y=>{var oe=y(Y,!0);return oe.buffer||(oe=new Uint8Array(oe)),oe},x=(Y,oe,Ie)=>{Y=qr(Y)?new URL(Y):E.normalize(Y),C.readFile(Y,function(Ye,It){Ye?Ie(Ye):oe(It.buffer)})},process.argv.length>1&&(d=process.argv[1].replace(/\\/g,"/")),p=process.argv.slice(2),process.on("uncaughtException",function(Y){if(!(Y instanceof ml))throw Y}),process.on("unhandledRejection",function(Y){throw Y}),c=(Y,oe)=>{if(qn())throw process.exitCode=Y,oe;T(oe),process.exit(Y)},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="",y=Y=>{var oe=new XMLHttpRequest;return oe.open("GET",Y,!1),oe.send(null),oe.responseText},m&&(v=Y=>{var oe=new XMLHttpRequest;return oe.open("GET",Y,!1),oe.responseType="arraybuffer",oe.send(null),new Uint8Array(oe.response)}),x=(Y,oe,Ie)=>{var Ye=new XMLHttpRequest;Ye.open("GET",Y,!0),Ye.responseType="arraybuffer",Ye.onload=()=>{if(Ye.status==200||Ye.status==0&&Ye.response){oe(Ye.response);return}Ie()},Ye.onerror=Ie,Ye.send(null)},I=Y=>document.title=Y);var F=s.print||console.log.bind(console),D=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 $=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,H;function j(Y,oe){Y||Qa(oe)}var K=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function Z(Y,oe,Ie){oe>>>=0;for(var Ye=oe+Ie,It=oe;Y[It]&&!(It>=Ye);)++It;if(It-oe>16&&Y.buffer&&K)return K.decode(Y.subarray(oe,It));for(var St="";oe>10,56320|ua&1023)}}return St}function J(Y,oe){return Y>>>=0,Y?Z(ie,Y,oe):""}function ee(Y,oe,Ie,Ye){if(Ie>>>=0,!(Ye>0))return 0;for(var It=Ie,St=Ie+Ye-1,He=0;He=55296&&Ve<=57343){var zt=Y.charCodeAt(++He);Ve=65536+((Ve&1023)<<10)|zt&1023}if(Ve<=127){if(Ie>=St)break;oe[Ie++>>>0]=Ve}else if(Ve<=2047){if(Ie+1>=St)break;oe[Ie++>>>0]=192|Ve>>6,oe[Ie++>>>0]=128|Ve&63}else if(Ve<=65535){if(Ie+2>=St)break;oe[Ie++>>>0]=224|Ve>>12,oe[Ie++>>>0]=128|Ve>>6&63,oe[Ie++>>>0]=128|Ve&63}else{if(Ie+3>=St)break;oe[Ie++>>>0]=240|Ve>>18,oe[Ie++>>>0]=128|Ve>>12&63,oe[Ie++>>>0]=128|Ve>>6&63,oe[Ie++>>>0]=128|Ve&63}}return oe[Ie>>>0]=0,Ie-It}function ae(Y,oe,Ie){return ee(Y,ie,oe,Ie)}var te,re,ie,ye,ue,be,ke,Se,We;function Ge(Y){te=Y,s.HEAP8=re=new Int8Array(Y),s.HEAP16=ye=new Int16Array(Y),s.HEAP32=be=new Int32Array(Y),s.HEAPU8=ie=new Uint8Array(Y),s.HEAPU16=ue=new Uint16Array(Y),s.HEAPU32=ke=new Uint32Array(Y),s.HEAPF32=Se=new Float32Array(Y),s.HEAPF64=We=new Float64Array(Y)}var ht=s.INITIAL_MEMORY||16777216,st,tt=[],nt=[],Re=[],ft=!1;function qn(){return M}function Lt(){if(s.preRun)for(typeof s.preRun=="function"&&(s.preRun=[s.preRun]);s.preRun.length;)$n(s.preRun.shift());wr(tt)}function oa(){ft=!0,wr(nt)}function pn(){if(s.postRun)for(typeof s.postRun=="function"&&(s.postRun=[s.postRun]);s.postRun.length;)Dn(s.postRun.shift());wr(Re)}function $n(Y){tt.unshift(Y)}function la(Y){nt.unshift(Y)}function Dn(Y){Re.unshift(Y)}var ot=0,Rn=null,jn=null;function vr(Y){ot++,s.monitorRunDependencies&&s.monitorRunDependencies(ot)}function hl(Y){if(ot--,s.monitorRunDependencies&&s.monitorRunDependencies(ot),ot==0&&(Rn!==null&&(clearInterval(Rn),Rn=null),jn)){var oe=jn;jn=null,oe()}}function Qa(Y){s.onAbort&&s.onAbort(Y),Y="Aborted("+Y+")",D(Y),U=!0,H=1,Y+=". Build with -sASSERTIONS for more info.";var oe=new WebAssembly.RuntimeError(Y);throw o(oe),oe}var Lp="data:application/octet-stream;base64,";function Ia(Y){return Y.startsWith(Lp)}function qr(Y){return Y.startsWith("file://")}var Qt;Qt="tfjs-backend-wasm.wasm",Ia(Qt)||(Qt=b(Qt));function Hd(Y){try{if(Y==Qt&&S)return new Uint8Array(S);if(v)return v(Y);throw"both async and sync fetching of the wasm failed"}catch(oe){Qa(oe)}}function kg(){if(!S&&(h||m)){if(typeof fetch=="function"&&!qr(Qt))return fetch(Qt,{credentials:"same-origin"}).then(function(Y){if(!Y.ok)throw"failed to load wasm binary file at '"+Qt+"'";return Y.arrayBuffer()}).catch(function(){return Hd(Qt)});if(x)return new Promise(function(Y,oe){x(Qt,function(Ie){Y(new Uint8Array(Ie))},oe)})}return Promise.resolve().then(function(){return Hd(Qt)})}function Ig(){var Y={env:zp,wasi_snapshot_preview1:zp};function oe(He,Ve){var zt=He.exports;s.asm=zt,B=s.asm.memory,Ge(B.buffer),st=s.asm.__indirect_function_table,la(s.asm.__wasm_call_ctors),hl("wasm-instantiate")}vr("wasm-instantiate");function Ie(He){oe(He.instance)}function Ye(He){return kg().then(function(Ve){return WebAssembly.instantiate(Ve,Y)}).then(function(Ve){return Ve}).then(He,function(Ve){D("failed to asynchronously prepare wasm: "+Ve),Qa(Ve)})}function It(){return!S&&typeof WebAssembly.instantiateStreaming=="function"&&!Ia(Qt)&&!qr(Qt)&&!f&&typeof fetch=="function"?fetch(Qt,{credentials:"same-origin"}).then(function(He){var Ve=WebAssembly.instantiateStreaming(He,Y);return Ve.then(Ie,function(zt){return D("wasm streaming compile failed: "+zt),D("falling back to ArrayBuffer instantiation"),Ye(Ie)})}):Ye(Ie)}if(s.instantiateWasm)try{var St=s.instantiateWasm(Y,oe);return St}catch(He){D("Module.instantiateWasm callback failed with error: "+He),o(He)}return It().catch(o),{}}var Ck,jr;function ml(Y){this.name="ExitStatus",this.message="Program terminated with exit("+Y+")",this.status=Y}function wr(Y){for(;Y.length>0;)Y.shift()(s)}function Sg(){Qa("")}function qd(){return 4294901760}function Vs(){return qd()}function Ng(Y,oe,Ie){ie.copyWithin(Y>>>0,oe>>>0,oe+Ie>>>0)}function jd(Y){try{return B.grow(Y-te.byteLength+65535>>>16),Ge(B.buffer),1}catch(oe){}}function fl(Y){var oe=ie.length;Y=Y>>>0;var Ie=qd();if(Y>Ie)return!1;let Ye=(zt,ua)=>zt+(ua-zt%ua)%ua;for(var It=1;It<=4;It*=2){var St=oe*(1+.2/It);St=Math.min(St,Y+100663296);var He=Math.min(Ie,Ye(Math.max(Y,St),65536)),Ve=jd(He);if(Ve)return!0}return!1}var gn={varargs:void 0,get:function(){gn.varargs+=4;var Y=be[gn.varargs-4>>>2];return Y},getStr:function(Y){var oe=J(Y);return oe}};function Kd(Y){return 52}function Tg(Y,oe,Ie,Ye,It){return 70}var Cg=[null,[],[]];function _k(Y,oe){var Ie=Cg[Y];oe===0||oe===10?((Y===1?F:D)(Z(Ie,0)),Ie.length=0):Ie.push(oe)}function Ek(Y,oe,Ie,Ye){for(var It=0,St=0;St>>2],Ve=ke[oe+4>>>2];oe+=8;for(var zt=0;zt>>0]);It+=Ve}return ke[Ye>>>2]=It,0}function Xd(Y){var oe=s["_"+Y];return oe}function Us(Y,oe){re.set(Y,oe>>>0)}function _g(Y,oe,Ie,Ye,It){var St={string:Mn=>{var Xr=0;if(Mn!=null&&Mn!==0){var dh=(Mn.length<<2)+1;Xr=Gp(dh),ae(Mn,Xr,dh)}return Xr},array:Mn=>{var Xr=Gp(Mn.length);return Us(Mn,Xr),Xr}};function He(Mn){return oe==="string"?J(Mn):oe==="boolean"?!!Mn:Mn}var Ve=Xd(Y),zt=[],ua=0;if(Ye)for(var kr=0;krHe==="number"||He==="boolean"),St=oe!=="string";return St&&It&&!Ye?Xd(Y):function(){return _g(Y,oe,Ie,arguments,Ye)}}var zp={abort:Sg,emscripten_get_heap_max:Vs,emscripten_memcpy_big:Ng,emscripten_resize_heap:fl,fd_close:Kd,fd_seek:Tg,fd_write:Ek},Ag=Ig(),Yd=s.___wasm_call_ctors=function(){return(Yd=s.___wasm_call_ctors=s.asm.__wasm_call_ctors).apply(null,arguments)},Zd=s._init=function(){return(Zd=s._init=s.asm.init).apply(null,arguments)},Fg=s._init_with_threads_count=function(){return(Fg=s._init_with_threads_count=s.asm.init_with_threads_count).apply(null,arguments)},Jd=s._get_threads_count=function(){return(Jd=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)},Ae=s._dispose_data=function(){return(Ae=s._dispose_data=s.asm.dispose_data).apply(null,arguments)},Wp=s._dispose=function(){return(Wp=s._dispose=s.asm.dispose).apply(null,arguments)},Dg=s._Abs=function(){return(Dg=s._Abs=s.asm.Abs).apply(null,arguments)},Qd=s._Acos=function(){return(Qd=s._Acos=s.asm.Acos).apply(null,arguments)},gl=s._Acosh=function(){return(gl=s._Acosh=s.asm.Acosh).apply(null,arguments)},Rg=s._Add=function(){return(Rg=s._Add=s.asm.Add).apply(null,arguments)},Mg=s._AddN=function(){return(Mg=s._AddN=s.asm.AddN).apply(null,arguments)},Pg=s._All=function(){return(Pg=s._All=s.asm.All).apply(null,arguments)},Og=s._Any=function(){return(Og=s._Any=s.asm.Any).apply(null,arguments)},Lg=s._ArgMax=function(){return(Lg=s._ArgMax=s.asm.ArgMax).apply(null,arguments)},eh=s._ArgMin=function(){return(eh=s._ArgMin=s.asm.ArgMin).apply(null,arguments)},th=s._Asin=function(){return(th=s._Asin=s.asm.Asin).apply(null,arguments)},zg=s._Asinh=function(){return(zg=s._Asinh=s.asm.Asinh).apply(null,arguments)},Wg=s._Atan=function(){return(Wg=s._Atan=s.asm.Atan).apply(null,arguments)},Bg=s._Atan2=function(){return(Bg=s._Atan2=s.asm.Atan2).apply(null,arguments)},Bp=s._Atanh=function(){return(Bp=s._Atanh=s.asm.Atanh).apply(null,arguments)},Vg=s._AvgPool=function(){return(Vg=s._AvgPool=s.asm.AvgPool).apply(null,arguments)},Ug=s._AvgPool3D=function(){return(Ug=s._AvgPool3D=s.asm.AvgPool3D).apply(null,arguments)},Gg=s._AvgPool3DGrad=function(){return(Gg=s._AvgPool3DGrad=s.asm.AvgPool3DGrad).apply(null,arguments)},Gs=s._AvgPoolGrad=function(){return(Gs=s._AvgPoolGrad=s.asm.AvgPoolGrad).apply(null,arguments)},Hg=s._BatchMatMul=function(){return(Hg=s._BatchMatMul=s.asm.BatchMatMul).apply(null,arguments)},qg=s._Bincount=function(){return(qg=s._Bincount=s.asm.Bincount).apply(null,arguments)},nh=s._BitwiseAnd=function(){return(nh=s._BitwiseAnd=s.asm.BitwiseAnd).apply(null,arguments)},jg=s._Ceil=function(){return(jg=s._Ceil=s.asm.Ceil).apply(null,arguments)},Vp=s._ClipByValue=function(){return(Vp=s._ClipByValue=s.asm.ClipByValue).apply(null,arguments)},Kg=s._Conv2D=function(){return(Kg=s._Conv2D=s.asm.Conv2D).apply(null,arguments)},Xg=s._Conv2DBackpropInput=function(){return(Xg=s._Conv2DBackpropInput=s.asm.Conv2DBackpropInput).apply(null,arguments)},Yg=s._Conv3D=function(){return(Yg=s._Conv3D=s.asm.Conv3D).apply(null,arguments)},Kr=s._Conv3DBackpropFilterV2=function(){return(Kr=s._Conv3DBackpropFilterV2=s.asm.Conv3DBackpropFilterV2).apply(null,arguments)},Up=s._Conv3DBackpropInputV2=function(){return(Up=s._Conv3DBackpropInputV2=s.asm.Conv3DBackpropInputV2).apply(null,arguments)},Zg=s._Cos=function(){return(Zg=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)},eb=s._Cumprod=function(){return(eb=s._Cumprod=s.asm.Cumprod).apply(null,arguments)},ah=s._Cumsum=function(){return(ah=s._Cumsum=s.asm.Cumsum).apply(null,arguments)},rh=s._DenseBincount=function(){return(rh=s._DenseBincount=s.asm.DenseBincount).apply(null,arguments)},tb=s._DepthToSpace=function(){return(tb=s._DepthToSpace=s.asm.DepthToSpace).apply(null,arguments)},nb=s._DepthwiseConv2dNative=function(){return(nb=s._DepthwiseConv2dNative=s.asm.DepthwiseConv2dNative).apply(null,arguments)},sh=s._Diag=function(){return(sh=s._Diag=s.asm.Diag).apply(null,arguments)},ih=s._Dilation2D=function(){return(ih=s._Dilation2D=s.asm.Dilation2D).apply(null,arguments)},ab=s._Dilation2DBackpropFilter=function(){return(ab=s._Dilation2DBackpropFilter=s.asm.Dilation2DBackpropFilter).apply(null,arguments)},rb=s._Dilation2DBackpropInput=function(){return(rb=s._Dilation2DBackpropInput=s.asm.Dilation2DBackpropInput).apply(null,arguments)},sb=s._Elu=function(){return(sb=s._Elu=s.asm.Elu).apply(null,arguments)},ib=s._EluGrad=function(){return(ib=s._EluGrad=s.asm.EluGrad).apply(null,arguments)},oh=s._Equal=function(){return(oh=s._Equal=s.asm.Equal).apply(null,arguments)},Ak=s._Erf=function(){return(Ak=s._Erf=s.asm.Erf).apply(null,arguments)},ob=s._Exp=function(){return(ob=s._Exp=s.asm.Exp).apply(null,arguments)},lb=s._Expm1=function(){return(lb=s._Expm1=s.asm.Expm1).apply(null,arguments)},ub=s._FlipLeftRight=function(){return(ub=s._FlipLeftRight=s.asm.FlipLeftRight).apply(null,arguments)},pb=s._Floor=function(){return(pb=s._Floor=s.asm.Floor).apply(null,arguments)},cb=s._FloorDiv=function(){return(cb=s._FloorDiv=s.asm.FloorDiv).apply(null,arguments)},db=s._FusedBatchNorm=function(){return(db=s._FusedBatchNorm=s.asm.FusedBatchNorm).apply(null,arguments)},hb=s._FusedConv2D=function(){return(hb=s._FusedConv2D=s.asm.FusedConv2D).apply(null,arguments)},mb=s._FusedDepthwiseConv2D=function(){return(mb=s._FusedDepthwiseConv2D=s.asm.FusedDepthwiseConv2D).apply(null,arguments)},fb=s._Gather=function(){return(fb=s._Gather=s.asm.Gather).apply(null,arguments)},gb=s._GatherNd=function(){return(gb=s._GatherNd=s.asm.GatherNd).apply(null,arguments)},bb=s._Greater=function(){return(bb=s._Greater=s.asm.Greater).apply(null,arguments)},yb=s._GreaterEqual=function(){return(yb=s._GreaterEqual=s.asm.GreaterEqual).apply(null,arguments)},xb=s._IsFinite=function(){return(xb=s._IsFinite=s.asm.IsFinite).apply(null,arguments)},vb=s._IsInf=function(){return(vb=s._IsInf=s.asm.IsInf).apply(null,arguments)},wb=s._IsNan=function(){return(wb=s._IsNan=s.asm.IsNan).apply(null,arguments)},kb=s._LRN=function(){return(kb=s._LRN=s.asm.LRN).apply(null,arguments)},Ib=s._LRNGrad=function(){return(Ib=s._LRNGrad=s.asm.LRNGrad).apply(null,arguments)},Sb=s._LeakyRelu=function(){return(Sb=s._LeakyRelu=s.asm.LeakyRelu).apply(null,arguments)},Nb=s._Less=function(){return(Nb=s._Less=s.asm.Less).apply(null,arguments)},Tb=s._LessEqual=function(){return(Tb=s._LessEqual=s.asm.LessEqual).apply(null,arguments)},Cb=s._LinSpace=function(){return(Cb=s._LinSpace=s.asm.LinSpace).apply(null,arguments)},_b=s._Log=function(){return(_b=s._Log=s.asm.Log).apply(null,arguments)},Eb=s._Log1p=function(){return(Eb=s._Log1p=s.asm.Log1p).apply(null,arguments)},Ab=s._LogicalAnd=function(){return(Ab=s._LogicalAnd=s.asm.LogicalAnd).apply(null,arguments)},Fb=s._LogicalNot=function(){return(Fb=s._LogicalNot=s.asm.LogicalNot).apply(null,arguments)},$b=s._LogicalOr=function(){return($b=s._LogicalOr=s.asm.LogicalOr).apply(null,arguments)},Db=s._LogicalXor=function(){return(Db=s._LogicalXor=s.asm.LogicalXor).apply(null,arguments)},Rb=s._Max=function(){return(Rb=s._Max=s.asm.Max).apply(null,arguments)},Mb=s._MaxPool=function(){return(Mb=s._MaxPool=s.asm.MaxPool).apply(null,arguments)},Pb=s._MaxPool3D=function(){return(Pb=s._MaxPool3D=s.asm.MaxPool3D).apply(null,arguments)},Ob=s._MaxPool3DGrad=function(){return(Ob=s._MaxPool3DGrad=s.asm.MaxPool3DGrad).apply(null,arguments)},Lb=s._MaxPoolGrad=function(){return(Lb=s._MaxPoolGrad=s.asm.MaxPoolGrad).apply(null,arguments)},zb=s._MaxPoolWithArgmax=function(){return(zb=s._MaxPoolWithArgmax=s.asm.MaxPoolWithArgmax).apply(null,arguments)},Wb=s._Maximum=function(){return(Wb=s._Maximum=s.asm.Maximum).apply(null,arguments)},Bb=s._Mean=function(){return(Bb=s._Mean=s.asm.Mean).apply(null,arguments)},Vb=s._Min=function(){return(Vb=s._Min=s.asm.Min).apply(null,arguments)},Ub=s._Minimum=function(){return(Ub=s._Minimum=s.asm.Minimum).apply(null,arguments)},Gb=s._MirrorPad=function(){return(Gb=s._MirrorPad=s.asm.MirrorPad).apply(null,arguments)},Hb=s._Mod=function(){return(Hb=s._Mod=s.asm.Mod).apply(null,arguments)},qb=s._Multinomial=function(){return(qb=s._Multinomial=s.asm.Multinomial).apply(null,arguments)},jb=s._Multiply=function(){return(jb=s._Multiply=s.asm.Multiply).apply(null,arguments)},Kb=s._Neg=function(){return(Kb=s._Neg=s.asm.Neg).apply(null,arguments)},Xb=s._NonMaxSuppressionV3=function(){return(Xb=s._NonMaxSuppressionV3=s.asm.NonMaxSuppressionV3).apply(null,arguments)},Yb=s._NonMaxSuppressionV4=function(){return(Yb=s._NonMaxSuppressionV4=s.asm.NonMaxSuppressionV4).apply(null,arguments)},Zb=s._NonMaxSuppressionV5=function(){return(Zb=s._NonMaxSuppressionV5=s.asm.NonMaxSuppressionV5).apply(null,arguments)},Jb=s._NotEqual=function(){return(Jb=s._NotEqual=s.asm.NotEqual).apply(null,arguments)},Qb=s._OneHot=function(){return(Qb=s._OneHot=s.asm.OneHot).apply(null,arguments)},ey=s._PadV2=function(){return(ey=s._PadV2=s.asm.PadV2).apply(null,arguments)},ty=s._Pow=function(){return(ty=s._Pow=s.asm.Pow).apply(null,arguments)},ny=s._Prelu=function(){return(ny=s._Prelu=s.asm.Prelu).apply(null,arguments)},ay=s._Prod=function(){return(ay=s._Prod=s.asm.Prod).apply(null,arguments)},ry=s._RealDiv=function(){return(ry=s._RealDiv=s.asm.RealDiv).apply(null,arguments)},sy=s._Reciprocal=function(){return(sy=s._Reciprocal=s.asm.Reciprocal).apply(null,arguments)},iy=s._Relu=function(){return(iy=s._Relu=s.asm.Relu).apply(null,arguments)},oy=s._Relu6=function(){return(oy=s._Relu6=s.asm.Relu6).apply(null,arguments)},ly=s._ResizeBilinear=function(){return(ly=s._ResizeBilinear=s.asm.ResizeBilinear).apply(null,arguments)},uy=s._ResizeBilinearGrad=function(){return(uy=s._ResizeBilinearGrad=s.asm.ResizeBilinearGrad).apply(null,arguments)},py=s._ResizeNearestNeighbor=function(){return(py=s._ResizeNearestNeighbor=s.asm.ResizeNearestNeighbor).apply(null,arguments)},cy=s._ResizeNearestNeighborGrad=function(){return(cy=s._ResizeNearestNeighborGrad=s.asm.ResizeNearestNeighborGrad).apply(null,arguments)},dy=s._Reverse=function(){return(dy=s._Reverse=s.asm.Reverse).apply(null,arguments)},hy=s._RotateWithOffset=function(){return(hy=s._RotateWithOffset=s.asm.RotateWithOffset).apply(null,arguments)},my=s._Round=function(){return(my=s._Round=s.asm.Round).apply(null,arguments)},fy=s._Rsqrt=function(){return(fy=s._Rsqrt=s.asm.Rsqrt).apply(null,arguments)},gy=s._ScatterNd=function(){return(gy=s._ScatterNd=s.asm.ScatterNd).apply(null,arguments)},by=s._SearchSorted=function(){return(by=s._SearchSorted=s.asm.SearchSorted).apply(null,arguments)},yy=s._SelectV2=function(){return(yy=s._SelectV2=s.asm.SelectV2).apply(null,arguments)},xy=s._Selu=function(){return(xy=s._Selu=s.asm.Selu).apply(null,arguments)},vy=s._Sigmoid=function(){return(vy=s._Sigmoid=s.asm.Sigmoid).apply(null,arguments)},wy=s._Sign=function(){return(wy=s._Sign=s.asm.Sign).apply(null,arguments)},ky=s._Sin=function(){return(ky=s._Sin=s.asm.Sin).apply(null,arguments)},Iy=s._Sinh=function(){return(Iy=s._Sinh=s.asm.Sinh).apply(null,arguments)},Sy=s._Softmax=function(){return(Sy=s._Softmax=s.asm.Softmax).apply(null,arguments)},Ny=s._Softplus=function(){return(Ny=s._Softplus=s.asm.Softplus).apply(null,arguments)},Ty=s._SparseFillEmptyRows=function(){return(Ty=s._SparseFillEmptyRows=s.asm.SparseFillEmptyRows).apply(null,arguments)},Cy=s._SparseReshape=function(){return(Cy=s._SparseReshape=s.asm.SparseReshape).apply(null,arguments)},_y=s._SparseSegmentReduction=function(){return(_y=s._SparseSegmentReduction=s.asm.SparseSegmentReduction).apply(null,arguments)},Ey=s._SparseToDense=function(){return(Ey=s._SparseToDense=s.asm.SparseToDense).apply(null,arguments)},Ay=s._Sqrt=function(){return(Ay=s._Sqrt=s.asm.Sqrt).apply(null,arguments)},Fy=s._Square=function(){return(Fy=s._Square=s.asm.Square).apply(null,arguments)},$y=s._SquaredDifference=function(){return($y=s._SquaredDifference=s.asm.SquaredDifference).apply(null,arguments)},Dy=s._Step=function(){return(Dy=s._Step=s.asm.Step).apply(null,arguments)},Ry=s._StridedSlice=function(){return(Ry=s._StridedSlice=s.asm.StridedSlice).apply(null,arguments)},My=s._Sub=function(){return(My=s._Sub=s.asm.Sub).apply(null,arguments)},Py=s._Sum=function(){return(Py=s._Sum=s.asm.Sum).apply(null,arguments)},Oy=s._Tan=function(){return(Oy=s._Tan=s.asm.Tan).apply(null,arguments)},Ly=s._Tanh=function(){return(Ly=s._Tanh=s.asm.Tanh).apply(null,arguments)},zy=s._TensorScatterUpdate=function(){return(zy=s._TensorScatterUpdate=s.asm.TensorScatterUpdate).apply(null,arguments)},Wy=s._Tile=function(){return(Wy=s._Tile=s.asm.Tile).apply(null,arguments)},By=s._TopK=function(){return(By=s._TopK=s.asm.TopK).apply(null,arguments)},Vy=s._Transform=function(){return(Vy=s._Transform=s.asm.Transform).apply(null,arguments)},Uy=s._Transpose=function(){return(Uy=s._Transpose=s.asm.Transpose).apply(null,arguments)},Gy=s.__FusedMatMul=function(){return(Gy=s.__FusedMatMul=s.asm._FusedMatMul).apply(null,arguments)},Hy=s._malloc=function(){return(Hy=s._malloc=s.asm.malloc).apply(null,arguments)},qy=s._free=function(){return(qy=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)},lh=s.stackSave=function(){return(lh=s.stackSave=s.asm.stackSave).apply(null,arguments)},uh=s.stackRestore=function(){return(uh=s.stackRestore=s.asm.stackRestore).apply(null,arguments)},Gp=s.stackAlloc=function(){return(Gp=s.stackAlloc=s.asm.stackAlloc).apply(null,arguments)},Ky=s.dynCall_iijjiiii=function(){return(Ky=s.dynCall_iijjiiii=s.asm.dynCall_iijjiiii).apply(null,arguments)},Xy=s.dynCall_jiji=function(){return(Xy=s.dynCall_jiji=s.asm.dynCall_jiji).apply(null,arguments)};s.cwrap=Eg;var bl;jn=function Y(){bl||ph(),bl||(jn=Y)};function ph(Y){if(Y=Y||p,ot>0||(Lt(),ot>0))return;function oe(){bl||(bl=!0,s.calledRun=!0,!U&&(oa(),i(s),s.onRuntimeInitialized&&s.onRuntimeInitialized(),pn()))}s.setStatus?(s.setStatus("Running..."),setTimeout(function(){setTimeout(function(){s.setStatus("")},1),oe()},1)):oe()}if(s.preInit)for(typeof s.preInit=="function"&&(s.preInit=[s.preInit]);s.preInit.length>0;)s.preInit.pop()();ph();var yl;l&&(yl={uncaughtException:process.listeners("uncaughtException").filter(function(Y){return!l.uncaughtException.indexOf(Y)>-1}),unhandledRejection:process.listeners("unhandledRejection").filter(function(Y){return!l.unhandledRejection.indexOf(Y)>-1})});var xl;if(typeof r!="undefined")xl=r;else if(typeof WasmBackendModuleThreadedSimd!="undefined")xl=WasmBackendModuleThreadedSimd;else throw new Error("Could not find wasm module in post.js");if(yl){var Yy=xl._dispose;xl._dispose=function(){Yy(),yl.uncaughtException.forEach(function(Y){process.removeListener("uncaughtException",Y)}),yl.unhandledRejection.forEach(function(Y){process.removeListener("unhandledRejection",Y)})}}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)}),xm=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}},Ec=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")}createTensorFromGPUData(e,t,n){return Kn("createTensorFromGPUData")}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 SS(e){let t=e.length,n=0;for(;t>0;)n=Math.random()*t|0,t--,Vh(e,t,n)}function mR(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--,Vh(e,n,a),Vh(t,n,a)}function cc(e,t,n){return Math.max(e,Math.min(t,n))}function fR(e){return e%2===0?e:e+1}function Vh(e,t,n){let a=e[t];e[t]=e[n],e[n]=a}function gR(e){let t=0;for(let n=0;nn+` Shapes ${e} and ${t} must match`)}function Si(e){A(e!=null,()=>"The input to the tensor constructor must be a non-null value.")}function bt(e){if(e.length===0)return 1;let t=e[0];for(let n=1;n0,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 SR(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=>El(a)),()=>`All values in axis param must be integers but got axis ${e}`),e.map(a=>a<0?n+a:a)}function TS(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 CS(e,t){return yv(e,t)}function yv(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 _S(e,t){for(let n=0;nt+=n.length),t}function Qr(e){return typeof e=="string"||e instanceof String}function FS(e){return typeof e=="boolean"}function $S(e){return typeof e=="number"}function Ac(e){return Array.isArray(e)?Ac(e[0]):e instanceof Float32Array?"float32":e instanceof Int32Array||e instanceof Uint8Array||e instanceof Uint8ClampedArray?"int32":$S(e)?"float32":Qr(e)?"string":FS(e)?"bool":"float32"}function is(e){return!!(e&&e.constructor&&e.call&&e.apply)}function Gh(e,t){for(let n=t;n=0;--a)n[a]=n[a+1]*e[a+1];return n}function DS(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 DS(0,e,t,n)}function TR(e,t){if(Array.isArray(e))return e;if(t==="float32")return e instanceof Float32Array?e:new Float32Array(e);if(t==="int32")return e instanceof Int32Array?e:new Int32Array(e);if(t==="bool"||t==="string")return Uint8Array.from(new Int32Array(e));throw new Error(`Unknown dtype ${t}`)}function xv(e,t){let n=vm(e,t);for(let a=0;aa*r,1);if(t==null||t==="float32")return Nl(e,new Float32Array(n));if(t==="int32")return Nl(e,new Int32Array(n));if(t==="bool")return Nl(e,new Uint8Array(n));throw new Error(`Unknown data type ${t}`)}function ra(e){e.forEach(t=>{A(Number.isInteger(t)&&t>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${e}].`)})}function _R(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]=$R(n,a)})}};function AR(e){let t={};return e.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(n,...a)=>(FR(t,a[0],a[1]),a.join("="))),t}function FR(e,t,n){e[decodeURIComponent(t)]=decodeURIComponent(n||"")}function $R(e,t){let n=t.toLowerCase();return n==="true"||n==="false"?n==="true":`${+n}`===n?+n:t}function G(){return vv}var vv=null;function DR(e){vv=e}var nx;function MS(){if(nx==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");nx=e}return nx}function RR(){let e=MS();return e._tfGlobals==null&&(e._tfGlobals=new Map),e._tfGlobals}function wv(e,t){let n=RR();if(n.has(e))return n.get(e);{let a=t();return n.set(e,a),n.get(e)}}var Yl="Abs",Ni="Acos",Ti="Acosh",ys="Add",Ci="AddN",Zl="All",Jl="Any",Ql="ArgMax",eu="ArgMin",_i="Asin",Ei="Asinh",Ai="Atan",Fi="Atanh",$i="Atan2",Di="AvgPool",Fc="AvgPoolGrad",tu="AvgPool3D",$c="AvgPool3DGrad",Ri="BatchMatMul",nu="BatchToSpaceND",au="Bincount",ru="BitwiseAnd",PS="BroadcastTo",Dc="BroadcastArgs",Mi="Cast",Pi="Ceil",xs="ClipByValue",km="Complex",Rc="ComplexAbs",su="Concat",Oi="Conv2D",Im="Conv2DBackpropFilter",Li="Conv2DBackpropInput",zi="Conv3D",iu="Conv3DBackpropFilterV2",ou="Conv3DBackpropInputV2",Wi="Cos",Bi="Cosh",lu="Cumprod",Vi="Cumsum",uu="CropAndResize",Mc="DenseBincount",pu="DepthToSpace",Ui="DepthwiseConv2dNative",Sm="DepthwiseConv2dNativeBackpropFilter",Nm="DepthwiseConv2dNativeBackpropInput",Pc="Diag",Gi="Dilation2D",Al="Dilation2DBackpropInput",Fl="Dilation2DBackpropFilter",kv="Draw",Hi="RealDiv",Tm="Einsum",qi="Elu",cu="EluGrad",ji="Erf",du="Equal",Ki="Exp",hu="ExpandDims",Xi="Expm1",Cm="FFT",Oc="Fill",mu="FlipLeftRight",Yi="Floor",Zi="FloorDiv",Ji="FusedBatchNorm",fu="GatherV2",gu="GatherNd",bu="Greater",Qi="GreaterEqual",eo="Identity",_m="IFFT",Em="Imag",to="IsFinite",no="IsInf",ao="IsNan",ro="LeakyRelu",yu="Less",xu="LessEqual",vu="LinSpace",so="Log",io="Log1p",wu="LogicalAnd",ku="LogicalNot",Iu="LogicalOr",OS="LogicalXor",LS="LogSoftmax",MR="LowerBound",oo="LRN",Su="LRNGrad",PR="MatrixBandPart",lo="Max",uo="Maximum",po="MaxPool",Lc="MaxPoolGrad",Nu="MaxPool3D",zc="MaxPool3DGrad",Wc="MaxPoolWithArgmax",co="Mean",ho="Min",mo="Minimum",fo="MirrorPad",go="Mod",Tu="Multinomial",bo="Multiply",Cu="Neg",_u="NotEqual",Eu="NonMaxSuppressionV3",Au="NonMaxSuppressionV4",Fu="NonMaxSuppressionV5",$u="OnesLike",yo="OneHot",Du="Pack",xo="PadV2",OR="Pool",vo="Pow",wo="Prelu",ko="Prod",Am="RaggedGather",Fm="RaggedRange",$m="RaggedTensorToTensor",Bc="Range",Dm="Real",Io="Reciprocal",So="Relu",Ru="Reshape",No="ResizeNearestNeighbor",Mu="ResizeNearestNeighborGrad",To="ResizeBilinear",Pu="ResizeBilinearGrad",Co="Relu6",_o="Reverse",Eo="Round",Ao="Rsqrt",Ou="ScatterNd",Lu="TensorScatterUpdate",zu="SearchSorted",Wu="Select",Fo="Selu",Bu="Slice",$o="Sin",Do="Sinh",Ro="Sign",Mo="Sigmoid",Po="Softplus",Oo="Sqrt",Lo="Sum",Vu="SpaceToBatchND",Uu="SplitV",zo="Softmax",Vc="SparseFillEmptyRows",Gu="SparseReshape",Uc="SparseSegmentMean",Gc="SparseSegmentSum",Hu="SparseToDense",Wo="SquaredDifference",Hc="Square",qc="StaticRegexReplace",qu="StridedSlice",jc="StringNGrams",Kc="StringSplit",Xc="StringToHashBucketFast",Bo="Sub",Vo="Tan",Uo="Tanh",vs="Tile",ju="TopK",Ku="Transform",Er="Transpose",Yc="Unique",Xu="Unpack",Zc="UnsortedSegmentSum",LR="UpperBound",Yu="ZerosLike",ws="Step",Hh="FromPixels",Zu="RotateWithOffset",ii="_FusedMatMul",oi="FusedConv2D",li="FusedDepthwiseConv2D";function Jr(...e){G().getBool("IS_TEST")||G().getBool("PROD")||console.warn(...e)}function zR(...e){G().getBool("IS_TEST")||G().getBool("PROD")||console.log(...e)}var $l=wv("kernelRegistry",()=>new Map),dc=wv("gradRegistry",()=>new Map);function qh(e,t){let n=Iv(e,t);return $l.get(n)}function yx(e){return dc.get(e)}function jh(e){let t=$l.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 Jc(e){let{kernelName:t,backendName:n}=e,a=Iv(t,n);$l.has(a)&&Jr(`The kernel '${t}' for backend '${n}' is already registered`),$l.set(a,e)}function zS(e){let{kernelName:t}=e;dc.has(t)&&G().getBool("DEBUG")&&Jr(`Overriding the gradient for '${t}'`),dc.set(t,e)}function WR(e,t){let n=Iv(e,t);if(!$l.has(n))throw new Error(`The kernel '${e}' for backend '${t}' is not registered`);$l.delete(n)}function BR(e){if(!dc.has(e))throw new Error(`The gradient '${e}' for backend is not registered`);dc.delete(e)}function VR(e,t){jh(e).forEach(n=>{let a=Object.assign({},n,{backendName:t});Jc(a)})}function Iv(e,t){return`${t}_${e}`}var w={};Ee(w,{arraysEqual:()=>Dr,arraysEqualWithNull:()=>NS,assert:()=>A,assertNonNegativeIntegerDimensions:()=>ra,assertNonNull:()=>Si,assertShapesMatch:()=>Nn,bytesFromStringArray:()=>AS,bytesPerElement:()=>Uh,checkConversionForErrors:()=>_S,clamp:()=>cc,computeStrides:()=>Xl,convertBackendValuesAndArrayBuffer:()=>TR,createScalarValue:()=>KR,createShuffledIndices:()=>kR,decodeString:()=>Kh,distSquared:()=>yR,encodeString:()=>ed,fetch:()=>YR,fingerPrint64:()=>jR,flatten:()=>os,getArrayFromDType:()=>yv,getTypedArrayFromDType:()=>CS,hasEncodingLoss:()=>NR,hexToLong:()=>Qc,indexToLoc:()=>ER,inferDtype:()=>Ac,inferFromImplicitShape:()=>SR,isBoolean:()=>FS,isFunction:()=>is,isInt:()=>El,isNumber:()=>$S,isPromise:()=>wm,isScalarShape:()=>xR,isString:()=>Qr,isTypedArray:()=>tn,isValidDtype:()=>ES,locToIndex:()=>_R,makeOnesTypedArray:()=>xv,makeZerosNestedTypedArray:()=>CR,makeZerosTypedArray:()=>vm,nearestDivisor:()=>Gh,nearestLargerEven:()=>fR,now:()=>hc,parseAxisParam:()=>$a,randUniform:()=>bR,repeatedTry:()=>IR,rightPad:()=>oc,shuffle:()=>SS,shuffleCombo:()=>mR,sizeFromShape:()=>bt,sizeToSquarishShape:()=>wR,squeezeShape:()=>TS,sum:()=>gR,swap:()=>Vh,tanh:()=>vR,toNestedArray:()=>Nl,toTypedArray:()=>Rm});function WS(e){return e instanceof Float32Array||e instanceof Int32Array||e instanceof Uint8Array||e instanceof Uint8ClampedArray}var Wk=bs(ZD()),Xs=Wk.default||Wk;function Qc(e){return Xs.fromString(e,!0,16)}var BS=Qc("c3a5c85c97cb3127"),js=Qc("b492b66fbe98f273"),wn=Qc("9ae16a3b2f90404f");function xx(e){return e.xor(e.shru(47))}function VS(e,t,n){let a=e.slice(t,t+n);return Xs.fromBytes(Array.from(a),!0,!0)}function gt(e,t){return VS(e,t,8)}function Bk(e,t){return VS(e,t,4)}function en(e,t){return t===0?e:e.shru(t).or(e.shl(64-t))}function as(e,t,n=Qc("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 UR(e,t,n,a,r,s){r=r.add(e),s=en(s.add(r).add(a),21);let i=r;return r=r.add(t),r=r.add(n),s=s.add(en(r,44)),[r.add(a),s.add(i)]}function xh(e,t,n,a){return UR(gt(e,t),gt(e,t+8),gt(e,t+16),gt(e,t+24),n,a)}function GR(e,t=e.length){if(t>=8){let n=wn.add(t*2),a=gt(e,0).add(wn),r=gt(e,t-8),s=en(r,37).mul(n).add(a),i=en(a,25).add(r).mul(n);return as(s,i,n)}if(t>=4){let n=wn.add(t*2),a=Bk(e,0);return as(a.shl(3).add(t),Bk(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 xx(wn.mul(s).xor(BS.mul(i))).mul(wn)}return wn}function HR(e,t=e.length){let n=wn.add(t*2),a=gt(e,0).mul(js),r=gt(e,8),s=gt(e,t-8).mul(n),i=gt(e,t-16).mul(wn);return as(en(a.add(r),43).add(en(s,30)).add(i),a.add(en(r.add(wn),18)).add(s),n)}function qR(e,t=e.length){let n=wn.add(t*2),a=gt(e,0).mul(wn),r=gt(e,8),s=gt(e,t-8).mul(n),i=gt(e,t-16).mul(wn),o=en(a.add(r),43).add(en(s,30)).add(i),l=as(o,a.add(en(r.add(wn),18)).add(s),n),u=gt(e,16).mul(n),p=gt(e,24),d=o.add(gt(e,t-32)).mul(n),c=l.add(gt(e,t-24)).mul(n);return as(en(u.add(p),43).add(en(d,30)).add(c),u.add(en(p.add(a),18)).add(d),n)}function jR(e,t=e.length){let n=Xs.fromNumber(81,!0);if(t<=32)return t<=16?GR(e,t):HR(e,t);if(t<=64)return qR(e,t);let a=n,r=n.mul(js).add(113),s=xx(r.mul(wn).add(113)).mul(wn),i=[Xs.UZERO,Xs.UZERO],o=[Xs.UZERO,Xs.UZERO];a=a.mul(wn).add(gt(e,0));let l=0,u=(t-1>>6)*64,p=u+(t-1&63)-63;do a=en(a.add(r).add(i[0]).add(gt(e,l+8)),37).mul(js),r=en(r.add(i[1]).add(gt(e,l+48)),42).mul(js),a=a.xor(o[1]),r=r.add(i[0]).add(gt(e,l+40)),s=en(s.add(o[0]),33).mul(js),i=xh(e,l,i[1].mul(js),a.add(o[0])),o=xh(e,l+32,s.add(o[1]),r.add(gt(e,l+16))),[s,a]=[a,s],l+=64;while(l!==u);let d=js.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=en(a.add(r).add(i[0]).add(gt(e,l+8)),37).mul(d),r=en(r.add(i[1]).add(gt(e,l+48)),42).mul(d),a=a.xor(o[1].mul(9)),r=r.add(i[0].mul(9).add(gt(e,l+40))),s=en(s.add(o[0]),33).mul(d),i=xh(e,l,i[1].mul(d),a.add(o[0])),o=xh(e,l+32,s.add(o[1]),r.add(gt(e,l+16))),[s,a]=[a,s],as(as(i[0],o[0],d).add(xx(r).mul(BS)).add(s),as(i[1],o[1],d).add(a),d)}function KR(e,t){return t==="string"?ed(e):Rm([e],t)}function XR(e,t){return e instanceof Float32Array&&t==="float32"||e instanceof Int32Array&&t==="int32"||e instanceof Uint8Array&&t==="bool"}function Rm(e,t){if(t==="string")throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(e)&&(e=os(e)),G().getBool("DEBUG")&&_S(e,t),XR(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=hc();if(this.backendTimer.timerAvailable())s=this.backendTimer.time(r);else{r();for(let o of a)o.dataSync();s=Promise.resolve({kernelMs:hc()-i})}if(G().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let o=0;o{JR(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 JR(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 eM(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(!Dr(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 Vk=20,qp=3,ax=7;function nM(e,t,n,a){let r=Xl(t),s=aM(e,t,n,r),i=t.length,o=Dh(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 GR(e,t,n,a){let r=bt(t),s=a[a.length-1],i=new Array(s).fill(0),o=t.length,l=n==="complex64"?Xp(e):e;if(o>1)for(let u=0;uRk){let f=Up*i,g=Array.from(e.slice(0,f)),b=Array.from(e.slice((o-Up)*i,o*i));return n==="complex64"&&(g=Xp(g),b=Xp(b)),["["+g.map((y,x)=>Kp(y,r[x],n)).join(", ")+", ..., "+b.map((y,x)=>Kp(y,r[o-Up+x],n)).join(", ")+"]"]}return["["+(n==="complex64"?Xp(e):Array.from(e)).map((f,g)=>Kp(f,r[g],n)).join(", ")+"]"]}let u=t.slice(1),p=a.slice(1),d=a[0]*i,c=[];if(o>Rk){for(let f=0;f0?c[0]+h:"");for(let f=1;f1)for(let u=0;uVk){let f=qp*i,g=Array.from(e.slice(0,f)),b=Array.from(e.slice((o-qp)*i,o*i));return n==="complex64"&&(g=Jp(g),b=Jp(b)),["["+g.map((y,x)=>Zp(y,r[x],n)).join(", ")+", ..., "+b.map((y,x)=>Zp(y,r[o-qp+x],n)).join(", ")+"]"]}return["["+(n==="complex64"?Jp(e):Array.from(e)).map((f,g)=>Zp(f,r[g],n)).join(", ")+"]"]}let u=t.slice(1),p=a.slice(1),d=a[0]*i,c=[];if(o>Vk){for(let f=0;f0?c[0]+h:"");for(let f=1;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||pv(t,this.size),this.strides=Hl(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;aUh(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=>Uh(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 yl.print(this,e)}clone(){return this.throwIfDisposed(),yl.clone(this)}toString(e=!1){let t=this.dataSync();return UR(t,this.shape,this.dtype,e)}cast(e){return this.throwIfDisposed(),yl.cast(this,e)}variable(e=!0,t,n){return this.throwIfDisposed(),Wa().makeVariable(this,e,t,n)}};Object.defineProperty(Ce,Symbol.hasInstance,{value:e=>!!e&&e.data!=null&&e.dataSync!=null&&e.throwIfDisposed!=null});function Q(){return hv("Tensor",()=>Ce)}Q();var os=class extends Ce{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(!$r(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(os,Symbol.hasInstance,{value:e=>e instanceof Ce&&e.assign!=null&&e.assign instanceof Function});var Ua={};Ee(Ua,{assertTypesMatch:()=>OS,getTensorsInContainer:()=>fv,isTensorInList:()=>YR,makeTypesMatch:()=>Ft});var dx;(function(e){e.R0="R0",e.R1="R1",e.R2="R2",e.R3="R3",e.R4="R4",e.R5="R5",e.R6="R6"})(dx||(dx={}));var hx;(function(e){e.float32="float32",e.int32="int32",e.bool="int32",e.complex64="complex64"})(hx||(hx={}));var mx;(function(e){e.float32="float32",e.int32="int32",e.bool="bool",e.complex64="complex64"})(mx||(mx={}));var fx;(function(e){e.float32="float32",e.int32="float32",e.bool="float32",e.complex64="complex64"})(fx||(fx={}));var gx;(function(e){e.float32="complex64",e.int32="complex64",e.bool="complex64",e.complex64="complex64"})(gx||(gx={}));var XR={float32:fx,int32:hx,bool:mx,complex64:gx};function ga(e,t){if(e==="string"||t==="string"){if(e==="string"&&t==="string")return"string";throw new Error(`Can not upcast ${e} with ${t}`)}return XR[e][t]}function Rm(e){return ga(e,"int32")}function MS(e){return e!=null&&typeof e=="object"&&"texture"in e&&e.texture instanceof WebGLTexture}function PS(e){return typeof GPUBuffer!="undefined"&&e!=null&&typeof e=="object"&&"buffer"in e&&e.buffer instanceof GPUBuffer}function Ft(e,t){if(e.dtype===t.dtype)return[e,t];let n=ga(e.dtype,t.dtype);return[e.cast(n),t.cast(n)]}function OS(e,t){A(e.dtype===t.dtype,()=>`The dtypes of the first(${e.dtype}) and second(${t.dtype}) input must match`)}function YR(e,t){return t.some(n=>n.id===e.id)}function fv(e){let t=[];return LS(e,t,new Set),t}function LS(e,t,n){if(e==null)return;if(e instanceof Ce){t.push(e);return}if(!ZR(e))return;let a=e;for(let r in a){let s=a[r];n.has(s)||(n.add(s),LS(s,t,n))}}function ZR(e){return Array.isArray(e)||typeof e=="object"}function Yy(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()}},cc=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){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 Tc)&&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 cc.nextTensorId++}nextVariableId(){return cc.nextVariableId++}clone(e){let t=O.runKernel(Zi,{x:e}),n={x:e},a=s=>({x:()=>{let i="float32",o={x:s},l={dtype:i};return O.runKernel(Di,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=Yy(e)?e.kernelName:this.state.activeScope!=null?this.state.activeScope.name:"";if(Yy(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 b=this.backend.numDataIds();o=g.kernelFunc({inputs:m,attrs:f,backend:this.backend});let y=Array.isArray(o)?o:[o];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(h,b,y);let x=y.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=Yy(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=px(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"&&Jr(e[0])&&(r=e.map(o=>Kc(o)));let s=a.write(r,t,n),i=new Ce(t,n,s,this.nextTensorId());if(this.trackTensor(i,a),n==="string"){let o=this.state.tensorInfo.get(s),l=wS(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 Ce(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 os(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*Lh(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 os||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*Lh(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=px(e);o!=null&&(a=o.gradFunc),a!=null&&(i.gradient=l=>(l=l.map((u,p)=>{if(u==null){let d=n[p],c=fm(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=fv(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 Ce,()=>"The result y returned by f() must be a tensor.");let s=BR(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?JR(r.shape):n,VR(i,s,l=>this.tidy(l),QR);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 Ce),()=>"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 Ce,()=>"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 Ce),()=>"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=pc(),n=await this.backend.time(e);return n.wallMs=pc()-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}};cc.nextTensorId=0;cc.nextVariableId=0;function JR(e){let t=cv(bt(e),"float32");return O.makeTensor(t,e,"float32")}function zS(){let e=TS();if(e._tfengine==null){let t=new NS(e);e._tfengine=new cc(t)}return vR(e._tfengine.ENV),qR(()=>e._tfengine),e._tfengine}var O=zS();function QR(e,t){let n={a:e,b:t};return O.runKernel(bs,n)}var Xc={};Ee(Xc,{isBrowser:()=>WS,isMobile:()=>nM,mockIsMobile:()=>tM});function eM(){return typeof navigator!="undefined"&&navigator!=null}var bx;function tM(e){bx=e}function nM(e){if(bx!==void 0)return bx;if(e||eM()){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 WS(){return typeof window!="undefined"&&window.document!=null||typeof WorkerGlobalScope!="undefined"}var Bn=G();Bn.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.")});Bn.registerFlag("IS_BROWSER",()=>WS());Bn.registerFlag("IS_NODE",()=>typeof process!="undefined"&&typeof process.versions!="undefined"&&typeof process.versions.node!="undefined");Bn.registerFlag("IS_CHROME",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));Bn.registerFlag("IS_SAFARI",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Safari/.test(navigator.userAgent)&&/Apple/.test(navigator.vendor));Bn.registerFlag("PROD",()=>!1);Bn.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",()=>Bn.getBool("DEBUG"));Bn.registerFlag("DEPRECATION_WARNINGS_ENABLED",()=>!0);Bn.registerFlag("IS_TEST",()=>!1);Bn.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",()=>Bn.getBool("DEBUG"));Bn.registerFlag("WRAP_TO_IMAGEBITMAP",()=>!1);Bn.registerFlag("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU",()=>!1);Bn.registerFlag("USE_SETTIMEOUTCUSTOM",()=>!1);function lr(e,t){let n=e;if(en(e))return t==="string"?[]:[e.length];if(MS(e)){let r=e.channels||"RGBA";return[e.height,e.width*r.length]}else if(PS(e))return[e.buffer.size/(t==null?4:Lh(t))];if(!Array.isArray(e))return[];let a=[];for(;Array.isArray(n)||en(n)&&t!=="string";)a.push(n.length),n=n[0];return Array.isArray(e)&&G().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&BS(e,a,[]),a}function BS(e,t,n){if(n=n||[],!Array.isArray(e)&&!en(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),Pk(a,r,t,n),e==null||!en(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);!en(e)&&!Array.isArray(e)&&(e=[e]);let i=r!=="string"?Dm(e,r):is(e,[],!0);return O.makeTensor(i,s,r)}function dc(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 gv="__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+gv;let r=(...s)=>{O.startScope(n);try{let i=a(...s);return gm(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 aM(e,t){let n=_(e,"real","complex"),a=_(t,"imag","complex");Nn(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(xm,r)}var Ar=L({complex_:aM});function ws(e,t,n,a){if(a==null)a=Cc(e);else if(a==="complex64")throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(PS(e)||MS(e)){if(a!=="float32"&&a!=="int32")throw new Error(`Creating tensor from GPU data only supports 'float32'|'int32' dtype, while the dtype is ${a}.`);return O.backend.createTensorFromGPUData(e,t||n,a)}if(!en(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){ra(t);let r=bt(t),s=bt(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!en(e)&&!Array.isArray(e)&&(e=[e]),t=t||n,e=a!=="string"?Dm(e,a):is(e,[],!0),O.makeTensor(e,t,a)}function bn(e,t,n){let a=lr(e,n);return ws(e,t,a,n)}var yx={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8},Gh=4;async function rM(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,b)=>g+b.length,0)+Gh*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 bv=typeof Buffer!="undefined"&&(typeof Blob=="undefined"||typeof atob=="undefined"||typeof btoa=="undefined");function Ok(e){return bv?Buffer.byteLength(e):new Blob([e]).size}function iM(e){if(bv)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 Lk(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 US(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 GS(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 xv(e,t){let n,a;return e.weightsManifest!=null&&([n,a]=await t(e.weightsManifest)),GS(e,n,a)}function Yc(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:Ok(JSON.stringify(e.modelTopology)),weightSpecsBytes:e.weightSpecs==null?0:Ok(JSON.stringify(e.weightSpecs)),weightDataBytes:e.weightData==null?0:e.weightData.byteLength}}function HS(e){let t=[];for(let n of e)t.push(...n.weights);return t}function lM(){let e=n=>{let a=n<<13,r=0;for(;!(a&8388608);)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 uM(){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 pM(){let e=new Uint32Array(64);for(let t=0;t<64;t++)e[t]=1024;return e[0]=e[32]=0,e}function cM(){let e=lM(),t=uM(),n=pM();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}},dM=e=>$t.registerSaveRouter(e),hM=e=>$t.registerLoadRouter(e),mM=e=>$t.getSaveHandlers(e),fM=(e,t)=>$t.getLoadHandlers(e,t),xx="tensorflowjs",vx=1,Qs="models_store",Qr="model_info_store";function qS(){if(!G().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 wx(e){let t=e.result;t.createObjectStore(Qs,{keyPath:"modelPath"}),t.createObjectStore(Qr,{keyPath:"modelPath"})}var li=class{constructor(e){if(this.indexedDB=qS(),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(xx,vx);r.onupgradeneeded=()=>wx(r),r.onsuccess=()=>{let s=r.result;if(t==null){let i=s.transaction(Qs,"readonly"),o=i.objectStore(Qs).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=Yc(t),o=s.transaction(Qr,"readwrite"),l=o.objectStore(Qr),u;try{u=l.put({modelPath:this.modelPath,modelArtifactsInfo:i})}catch(d){return a(d)}let p;u.onsuccess=()=>{p=s.transaction(Qs,"readwrite");let d=p.objectStore(Qs),c;try{c=d.put({modelPath:this.modelPath,modelArtifacts:t,modelArtifactsInfo:i})}catch(h){return a(h)}c.onsuccess=()=>n({modelArtifactsInfo:i}),c.onerror=h=>{l=o.objectStore(Qr);let m=l.delete(this.modelPath);m.onsuccess=()=>(s.close(),a(c.error)),m.onerror=f=>(s.close(),a(c.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)})}};li.URL_SCHEME="indexeddb://";var jS=e=>G().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(li.URL_SCHEME)?gM(e.slice(li.URL_SCHEME.length)):null;$t.registerSaveRouter(jS);$t.registerLoadRouter(jS);function gM(e){return new li(e)}function bM(e){return e.startsWith(li.URL_SCHEME)?e.slice(li.URL_SCHEME.length):e}var yM=class{constructor(){this.indexedDB=qS()}async listModels(){return new Promise((e,t)=>{let n=this.indexedDB.open(xx,vx);n.onupgradeneeded=()=>wx(n),n.onsuccess=()=>{let a=n.result,r=a.transaction(Qr,"readonly"),s=r.objectStore(Qr).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=bM(e),new Promise((t,n)=>{let a=this.indexedDB.open(xx,vx);a.onupgradeneeded=()=>wx(a),a.onsuccess=()=>{let r=a.result,s=r.transaction(Qr,"readwrite"),i=s.objectStore(Qr),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(Qs,"readwrite");let d=l.objectStore(Qs).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)})}},Cr="/",xl="tensorflowjs_models",KS="info",xM="model_topology",vM="weight_specs",wM="weight_data",kM="model_metadata";function XS(e){return{info:[xl,e,KS].join(Cr),topology:[xl,e,xM].join(Cr),weightSpecs:[xl,e,vM].join(Cr),weightData:[xl,e,wM].join(Cr),modelMetadata:[xl,e,kM].join(Cr)}}function YS(e){for(let t of Object.values(e))window.localStorage.removeItem(t)}function IM(e){let t=e.split(Cr);if(t.length<3)throw new Error(`Invalid key format: ${e}`);return t.slice(1,t.length-1).join(Cr)}function SM(e){return e.startsWith(ui.URL_SCHEME)?e.slice(ui.URL_SCHEME.length):e}var ui=class{constructor(e){if(!G().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=XS(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=Yc(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,iM(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 YS(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=oM(s),t}};ui.URL_SCHEME="localstorage://";var ZS=e=>G().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(ui.URL_SCHEME)?NM(e.slice(ui.URL_SCHEME.length)):null;$t.registerSaveRouter(ZS);$t.registerLoadRouter(ZS);function NM(e){return new ui(e)}var TM=class{constructor(){A(G().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=xl+Cr,n=Cr+KS;for(let a=0;a"scheme must not be undefined or null."),e.endsWith(wl)&&(e=e.slice(0,e.indexOf(wl))),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 Eh(e){if(e.indexOf(wl)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${Pn.getSchemes().join(",")}`);return{scheme:e.split(wl)[0],path:e.split(wl)[1]}}async function JS(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=Eh(e).scheme,l=Eh(e).path,u=o===Eh(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 CM(){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+wl+r;t[s]=a[r]}}return t}async function _M(e){let t=Eh(e);return Pn.getManager(t.scheme).removeModel(t.path)}async function EM(e,t){return JS(e,t,!1)}async function AM(e,t){return JS(e,t,!0)}var FM=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"||!G().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))}isTypedArray(e){return FS(e)}};if(G().get("IS_BROWSER")){G().setPlatform("browser",new FM);try{Pn.registerManager(ui.URL_SCHEME,new TM)}catch(e){}try{Pn.registerManager(li.URL_SCHEME,new yM)}catch(e){}}var $M={importFetch:()=>zD()},Zy,DM=class{constructor(){this.util=WD(),this.textEncoder=new this.util.TextEncoder}fetch(e,t){return G().global.fetch!=null?G().global.fetch(e,t):(Zy==null&&(Zy=$M.importFetch()),Zy(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)}isTypedArray(e){return this.util.types.isFloat32Array(e)||this.util.types.isInt32Array(e)||this.util.types.isUint8Array(e)||this.util.types.isUint8ClampedArray(e)}};G().get("IS_NODE")&&!G().get("IS_BROWSER")&&G().setPlatform("node",new DM);function Le(e,t="float32",n){return t=t||"float32",ra(e),new Vt(e,t,n)}function RM(e,t){let n=_(e,"x","cast");if(!vS(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(Di,a,r)}var ie=L({cast_:RM});function MM(e){let t={x:_(e,"x","clone","string_or_numeric")};return O.runKernel(Zi,t)}var sr=L({clone_:MM});function vv(e,t=!1){console.log(e.toString(t))}zS();var PM={buffer:Le,cast:ie,clone:sr,print:vv};jR(PM);function OM(){G().set("PROD",!0)}function LM(){G().set("DEBUG",!0)}function zM(){G().set("DEPRECATION_WARNINGS_ENABLED",!1),console.warn("TensorFlow.js deprecation warnings have been disabled.")}function wv(e){G().getBool("DEPRECATION_WARNINGS_ENABLED")&&console.warn(e+" You can disable deprecation warnings with tf.disableDeprecationWarnings().")}KR(wv);function WM(){O.disposeVariables()}function _a(){return O}function Hh(){return O.memory()}function BM(e){return O.profile(e)}function P(e,t){return O.tidy(e,t)}function _e(e){fv(e).forEach(t=>t.dispose())}function Ht(e){return O.keep(e)}function VM(e){return O.time(e)}function UM(e){return O.setBackend(e)}function GM(){return O.ready()}function HM(){return O.backendName}function qM(e){O.removeBackend(e)}function jM(e){return O.findBackend(e)}function KM(e){return O.findBackendFactory(e)}function Mm(e,t,n=1){return O.registerBackend(e,t,n)}function QS(){return O.backend}function XM(e,t){G().setPlatform(e,t)}function YM(e,t){let n=_(e,"a","add"),a=_(t,"b","add");[n,a]=Ft(n,a);let r={a:n,b:a};return O.runKernel(bs,r)}var X=L({add_:YM});function ZM(e,t){let n=_(e,"a","floorDiv"),a=_(t,"b","floorDiv");[n,a]=Ft(n,a);let r={a:n,b:a};return O.runKernel(Ki,r)}var Pm=L({floorDiv_:ZM});function JM(e,t){let n=_(e,"a","div"),a=_(t,"b","div");if([n,a]=Ft(n,a),n.dtype==="int32"&&a.dtype==="int32")return Pm(n,a);let r={a:n,b:a},s={};return O.runKernel(Ui,r,s)}var he=L({div_:JM});function QM(e,t){let n=_(e,"a","mul"),a=_(t,"b","mul");[n,a]=Ft(n,a);let r={a:n,b:a};return O.runKernel(ho,r)}var z=L({mul_:QM});function eP(e){let t=_(e,"x","abs");if(t.dtype==="complex64"){let n={x:t};return O.runKernel(Ac,n)}else{let n={x:t};return O.runKernel(ql,n)}}var Wt=L({abs_:eP});function tP(e){let t={x:_(e,"x","acos")};return O.runKernel(Ii,t)}var kv=L({acos_:tP});function nP(e){let t={x:_(e,"x","acosh")};return O.runKernel(Si,t)}var Iv=L({acosh_:nP});function aP(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(!$r(r.shape,n.shape))throw new Error("All tensors passed to tf.addN() must have the same shape")});let a=t;return O.runKernel(Ni,a)}var eN=L({addN_:aP});function rP(e,t=null,n=!1){let a={x:_(e,"x","all","bool")},r={axis:t,keepDims:n};return O.runKernel(jl,a,r)}var Om=L({all_:rP});function sP(e,t=null,n=!1){let a={x:_(e,"x","any","bool")},r={axis:t,keepDims:n};return O.runKernel(Kl,a,r)}var hc=L({any_:sP});function iP(e,t=0){let n={x:_(e,"x","argMax")},a={axis:t};return O.runKernel(Xl,n,a)}var pi=L({argMax_:iP});function oP(e,t=0){let n={x:_(e,"x","argMin")},a={axis:t};return O.runKernel(Yl,n,a)}var Sv=L({argMin_:oP});function lP(e){let t={x:_(e,"x","asin")};return O.runKernel(Ti,t)}var Nv=L({asin_:lP});function uP(e){let t={x:_(e,"x","asinh")};return O.runKernel(Ci,t)}var Tv=L({asinh_:uP});function pP(e){let t={x:_(e,"x","atan")};return O.runKernel(_i,t)}var Cv=L({atan_:pP});function cP(e,t){let n=_(e,"a","atan2"),a=_(t,"b","atan2");[n,a]=Ft(n,a);let r={a:n,b:a};return O.runKernel(Ai,r)}var _v=L({atan2_:cP});function dP(e){let t={x:_(e,"x","atanh")};return O.runKernel(Ei,t)}var Ev=L({atanh_:dP});function hP(e,t,n,a,r="NHWC",s){let i=e[3],o=[...t,i],l=aN(r);return Zc(e,o,n,s,a,null,null,l)}function tN(e,t,n,a,r,s,i="channelsLast"){let[o,l]=mc(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 Zc(e,u,n,a,r,s,!1,i)}function mP(e,t,n,a,r,s,i="NDHWC"){let[o,l,u]=kx(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 nN(e,p,n,a,r,!1,d,s)}function Zc(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]=mc(n),[b,y]=mc(a),x=kl(c,b),w=kl(h,y),{padInfo:I,outHeight:T,outWidth:C}=bP(r,u,p,f,g,x,w,s,o),E=i?m*d:m,F;return o==="channelsFirst"?F=[l,E,T,C]:o==="channelsLast"&&(F=[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:b,dilationWidth:y,inShape:e,outShape:F,filterShape:t}}function nN(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,[b,y,x]=kx(n),[w,I,T]=kx(a),C=kl(h,w),E=kl(m,I),F=kl(f,T),{padInfo:D,outDepth:$,outHeight:S,outWidth:M}=yP(r,u,p,d,b,y,x,C,E,F,o),B=s?g*c:g,U;return i==="channelsFirst"?U=[l,B,$,S,M]:i==="channelsLast"&&(U=[l,$,S,M,B]),{batchSize:l,dataFormat:i,inDepth:u,inHeight:p,inWidth:d,inChannels:c,outDepth:$,outHeight:S,outWidth:M,outChannels:B,padInfo:D,strideDepth:b,strideHeight:y,strideWidth:x,filterDepth:h,filterHeight:m,filterWidth:f,effectiveFilterDepth:C,effectiveFilterHeight:E,effectiveFilterWidth:F,dilationDepth:w,dilationHeight:I,dilationWidth:T,inShape:e,outShape:U,filterShape:t}}function fP(e,t,n,a,r){a==null&&(a=Av(e,t,n));let s=e[0],i=e[1],o=fc((s-t+2*a)/n+1,r),l=fc((i-t+2*a)/n+1,r);return[o,l]}function gP(e,t,n,a,r,s){r==null&&(r=Av(e,t[0],a[0]));let i=[0,0,0,n];for(let o=0;o<3;o++)e[o]+2*r>=t[o]&&(i[o]=fc((e[o]-t[o]+2*r)/a[o]+1,s));return i}function Av(e,t,n,a=1){let r=kl(t,a);return Math.floor((e[0]*(n-1)-n+r)/2)}function mc(e){return typeof e=="number"?[e,e,e]:e.length===2?[e[0],e[1],1]:e}function kx(e){return typeof e=="number"?[e,e,e]:e}function kl(e,t){return t<=1?e:e+(e-1)*(t-1)}function bP(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=fP([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),b=h-g;u={top:m,bottom:f,left:g,right:b,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=fc((t-s+c+h)/a+1,o),d=fc((n-i+m+f)/r+1,o)}else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:u,outHeight:p,outWidth:d}}function yP(e,t,n,a,r,s,i,o,l,u,p){let d,c,h,m;if(e==="valid"&&(e=0),typeof e=="number"){d={top:e,bottom:e,left:e,right:e,front:e,back:e,type:e===0?"VALID":"NUMBER"};let f=gP([t,n,a,1],[o,l,u],1,[r,s,i],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,b=(m-1)*i+u-a,y=Math.floor(f/2),x=f-y,w=Math.floor(g/2),I=g-w,T=Math.floor(b/2),C=b-T;d={top:w,bottom:I,left:T,right:C,front:y,back:x,type:"SAME"}}else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:d,outDepth:c,outHeight:h,outWidth:m}}function fc(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 ls(e){let[t,n,a]=mc(e);return t===1&&n===1&&a===1}function cr(e,t){return ls(e)||ls(t)}function ci(e){return mc(e).every(t=>t>0)}function aN(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 xP(e,t){let n={x:_(e,"x","reshape","string_or_numeric")},a={shape:t};return O.runKernel(Fu,n,a)}var W=L({reshape_:xP});function vP(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}.`),Tn("avgPool",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r},d=O.runKernel(Fi,u,p);return d=ie(d,s.dtype),l?W(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var ya=L({avgPool_:vP});function wP(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}`),A(typeof n=="number"&&n>0||Array.isArray(n)&&n[0]>0&&n[1]>0&&n[2]>0,()=>`Error in avgPool3d: Stride must be > 0, but got '${n}'`),Tn("avgPool3d",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r,dataFormat:s},d=O.runKernel(Zl,u,p);return d=ie(d,o.dtype),l?W(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}var Fv=L({avgPool3d_:wP});function kP(e,t=0){A(e.length>=1,()=>"Pass at least one tensor to concat");let n=dc(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(eu,a,r)}var Qe=L({concat_:kP});function IP(e,t,n=!1,a=!1){let r=_(e,"a","matMul"),s=_(t,"b","matMul");[r,s]=Ft(r,s);let i={a:r,b:s},o={transposeA:n,transposeB:a};return O.runKernel($i,i,o)}var $e=L({matMul_:IP});function SP(e){let t={x:_(e,"x","sigmoid","float32")};return O.runKernel(Ao,t)}var ma=L({sigmoid_:SP});function NP(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(Lu,r,s)}var Ue=L({slice_:NP});function TP(e){let t={x:_(e,"x","tanh","float32")};return O.runKernel(Lo,t)}var di=L({tanh_:TP});function CP(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=Qe([u,d],1),h=$e(c,o),m=X(h,l),f=m.shape[0],g=m.shape[1]/4,b=[f,g],y=Ue(m,[0,0],b),x=Ue(m,[0,g],b),w=Ue(m,[0,g*2],b),I=Ue(m,[0,g*3],b),T=X(z(ma(y),di(x)),z(p,ma(X(i,w)))),C=z(di(T),ma(I));return[T,C]}var rN=L({basicLSTMCell_:CP});function _P(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(Jl,s,i)}var Jc=L({batchToSpaceND_:_P});function EP(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 AP(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:EP(i),scale:u,offset:p,mean:o,variance:l},c={varianceEpsilon:s},h=O.runKernel(Xi,d,c);return W(h,i.shape)}var ks=L({batchNorm_:AP});function FP(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 $v=L({batchNorm2d_:FP});function $P(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 Dv=L({batchNorm3d_:$P});function DP(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 Rv=L({batchNorm4d_:DP});function RP(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(Ql,s,i)}var Mv=L({bincount_:RP});function MP(e,t){let n=_(e,"x","bitwiseAnd"),a=_(t,"y","bitwiseAnd");if(!$r(n.shape,a.shape))throw new Error(`BitwiseAnd: Tensors must have the same shape. x: ${n.shape}, y: ${a.shape}`);if(n.dtype!=="int32"||a.dtype!=="int32")throw new Error(`BitwiseAnd: Only supports 'int32' values in tensor, found type of x: ${n.dtype} and type of y: ${a.dtype}`);let r={a:n,b:a};return O.runKernel(ym,r)}var sN=L({bitwiseAnd_:MP});function PP(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(Ec,r)}var iN=L({broadcastArgs_:PP});function OP(e,t){let n=_(e,"broadcastTo","x"),a=n.shape;if(ra(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(xs,i,o)}var ni=L({broadcastTo_:OP});function LP(e){let t={x:_(e,"x","ceil","float32")};return O.runKernel(Ri,t)}var Pv=L({ceil_:LP});function xn(e,t,n){ra(e),n=n||Cc(t);let a={shape:e,value:t,dtype:n};return O.runKernel(Dc,{},a)}function zP(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 xn(a.shape,t,a.dtype);let r={x:a},s={clipValueMin:t,clipValueMax:n};return O.runKernel(ys,r,s)}var rn=L({clipByValue_:zP});function WP(e){return Qe(e,0)}var Ov=L({concat1d_:WP});function BP(e,t){return Qe(e,t)}var Lv=L({concat2d_:BP});function VP(e,t){return Qe(e,t)}var zv=L({concat3d_:VP});function UP(e,t){return Qe(e,t)}var Wv=L({concat4d_:UP});function GP(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(cr(n,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),A(ci(s),()=>"Error in conv2D: Dilated rates should be larger than 0."),A(ci(n),()=>"Error in conv2D: Strides should be larger than 0.");let c={x:u,filter:l},h={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i},m=O.runKernel(Mi,c,h);return p?W(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var Rt=L({conv2d_:GP});function HP(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(cr(n,s),()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${n} and dilation '${s}'`),A(ci(s),()=>"Error in conv1D: Dilated rates should be larger than 0."),A(ci(n),()=>"Error in conv1D: Stride should be larger than 0."),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=Rt(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 Lm=L({conv1d_:HP});function qP(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(Pi,c,h);return u?W(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var Bv=L({conv2DBackpropInput_:qP});function jP(e,t,n,a,r,s){let i=_(e,"x","conv2dTranspose"),o=_(t,"filter","conv2dTranspose");return Bv(n,i,o,a,r,"NHWC",s)}var zm=L({conv2dTranspose_:jP});function KP(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.`),A(ci(s),()=>"Error in conv3D: Dilated rates should be larger than 0."),A(ci(n),()=>"Error in conv3D: Strides should be larger than 0.");let p={x:l,filter:o},d={strides:n,pad:a,dataFormat:r,dilations:s},c=O.runKernel(Oi,p,d);return u?W(c,[c.shape[1],c.shape[2],c.shape[3],c.shape[4]]):c}var Vv=L({conv3d_:KP});function XP(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(nu,p,d);return o?W(c,[c.shape[1],c.shape[2],c.shape[3],c.shape[4]]):c}var oN=L({conv3DBackpropInput_:XP});function YP(e,t,n,a,r){let s=_(e,"x","conv3dTranspose"),i=_(t,"filter","conv3dTranspose");return oN(n,s,i,a,r)}var Uv=L({conv3dTranspose_:YP});function ZP(e){let t={x:_(e,"x","cos","float32")};return O.runKernel(Li,t)}var Qc=L({cos_:ZP});function JP(e){let t={x:_(e,"x","cosh","float32")};return O.runKernel(zi,t)}var Wm=L({cosh_:JP});function QP(e,t=0,n=!1,a=!1){let r={x:_(e,"x","cumprod")},s={axis:t,exclusive:n,reverse:a};return O.runKernel(au,r,s)}var gc=L({cumprod_:QP});function eO(e,t=0,n=!1,a=!1){let r={x:_(e,"x","cumsum")},s={axis:t,exclusive:n,reverse:a};return O.runKernel(Wi,r,s)}var Bm=L({cumsum_:eO});function tO(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(Fc,i,o)}var qh=L({denseBincount_:tO});function nO(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 +`;return c[c.length-1]=" "+c[c.length-1]+"]"+(s?"":m),c}function Jp(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||yv(t,this.size),this.strides=Xl(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;aKh(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=>Kh(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 Il.print(this,e)}clone(){return this.throwIfDisposed(),Il.clone(this)}toString(e=!1){let t=this.dataSync();return nM(t,this.shape,this.dtype,e)}cast(e){return this.throwIfDisposed(),Il.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 wv("Tensor",()=>Te)}Q();var ls=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(!Dr(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(ls,Symbol.hasInstance,{value:e=>e instanceof Te&&e.assign!=null&&e.assign instanceof Function});var Ua={};Ee(Ua,{assertTypesMatch:()=>qS,getTensorsInContainer:()=>Sv,isTensorInList:()=>uM,makeTypesMatch:()=>Ft});var vx;(function(e){e.R0="R0",e.R1="R1",e.R2="R2",e.R3="R3",e.R4="R4",e.R5="R5",e.R6="R6"})(vx||(vx={}));var wx;(function(e){e.float32="float32",e.int32="int32",e.bool="int32",e.complex64="complex64"})(wx||(wx={}));var kx;(function(e){e.float32="float32",e.int32="int32",e.bool="bool",e.complex64="complex64"})(kx||(kx={}));var Ix;(function(e){e.float32="float32",e.int32="float32",e.bool="float32",e.complex64="complex64"})(Ix||(Ix={}));var Sx;(function(e){e.float32="complex64",e.int32="complex64",e.bool="complex64",e.complex64="complex64"})(Sx||(Sx={}));var lM={float32:Ix,int32:wx,bool:kx,complex64:Sx};function ga(e,t){if(e==="string"||t==="string"){if(e==="string"&&t==="string")return"string";throw new Error(`Can not upcast ${e} with ${t}`)}return lM[e][t]}function Mm(e){return ga(e,"int32")}function GS(e){return e!=null&&typeof e=="object"&&"texture"in e&&e.texture instanceof WebGLTexture}function HS(e){return typeof GPUBuffer!="undefined"&&e!=null&&typeof e=="object"&&"buffer"in e&&e.buffer instanceof GPUBuffer}function Ft(e,t){if(e.dtype===t.dtype)return[e,t];let n=ga(e.dtype,t.dtype);return[e.cast(n),t.cast(n)]}function qS(e,t){A(e.dtype===t.dtype,()=>`The dtypes of the first(${e.dtype}) and second(${t.dtype}) input must match`)}function uM(e,t){return t.some(n=>n.id===e.id)}function Sv(e){let t=[];return jS(e,t,new Set),t}function jS(e,t,n){if(e==null)return;if(e instanceof Te){t.push(e);return}if(!pM(e))return;let a=e;for(let r in a){let s=a[r];n.has(s)||(n.add(s),jS(s,t,n))}}function pM(e){return Array.isArray(e)||typeof e=="object"}function rx(e){return e.kernelName!=null}var Uk=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()}},mc=class{constructor(e){this.ENV=e,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new Uk}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){jh(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 Ec)&&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 mc.nextTensorId++}nextVariableId(){return mc.nextVariableId++}clone(e){let t=O.runKernel(eo,{x:e}),n={x:e},a=s=>({x:()=>{let i="float32",o={x:s},l={dtype:i};return O.runKernel(Mi,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,qh(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=rx(e)?e.kernelName:this.state.activeScope!=null?this.state.activeScope.name:"";if(rx(e)){let{kernelName:h,inputs:m,attrs:f}=e;this.backendName==null&&this.backend;let g=qh(h,this.backendName);A(g!=null,()=>`Cannot find registered kernel '${h}' for backend '${this.backendName}'`),i=()=>{let b=this.backend.numDataIds();o=g.kernelFunc({inputs:m,attrs:f,backend:this.backend});let y=Array.isArray(o)?o:[o];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(h,b,y);let x=y.map(v=>v.rank!=null?v:this.makeTensorFromTensorInfo(v));if(a){let v=this.getTensorsForGradient(h,m,x);n=this.saveTensorsForBackwardMode(v)}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=rx(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=yx(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=>ed(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=AS(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 ls(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*Uh(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 ls||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*Uh(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=yx(e);o!=null&&(a=o.gradFunc),a!=null&&(i.gradient=l=>(l=l.map((u,p)=>{if(u==null){let d=n[p],c=vm(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=Sv(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=eM(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?cM(r.shape):n,tM(i,s,l=>this.tidy(l),dM);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(is(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(is(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=hc(),n=await this.backend.time(e);return n.wallMs=hc()-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 Uk;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}};mc.nextTensorId=0;mc.nextVariableId=0;function cM(e){let t=xv(bt(e),"float32");return O.makeTensor(t,e,"float32")}function KS(){let e=MS();if(e._tfengine==null){let t=new RS(e);e._tfengine=new mc(t)}return DR(e._tfengine.ENV),sM(()=>e._tfengine),e._tfengine}var O=KS();function dM(e,t){let n={a:e,b:t};return O.runKernel(ys,n)}var td={};Ee(td,{isBrowser:()=>XS,isMobile:()=>fM,mockIsMobile:()=>mM});function hM(){return typeof navigator!="undefined"&&navigator!=null}var Nx;function mM(e){Nx=e}function fM(e){if(Nx!==void 0)return Nx;if(e||hM()){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 XS(){return typeof window!="undefined"&&window.document!=null||typeof WorkerGlobalScope!="undefined"}var Bn=G();Bn.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.")});Bn.registerFlag("IS_BROWSER",()=>XS());Bn.registerFlag("IS_NODE",()=>typeof process!="undefined"&&typeof process.versions!="undefined"&&typeof process.versions.node!="undefined");Bn.registerFlag("IS_CHROME",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));Bn.registerFlag("IS_SAFARI",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Safari/.test(navigator.userAgent)&&/Apple/.test(navigator.vendor));Bn.registerFlag("PROD",()=>!1);Bn.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",()=>Bn.getBool("DEBUG"));Bn.registerFlag("DEPRECATION_WARNINGS_ENABLED",()=>!0);Bn.registerFlag("IS_TEST",()=>!1);Bn.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",()=>Bn.getBool("DEBUG"));Bn.registerFlag("WRAP_TO_IMAGEBITMAP",()=>!1);Bn.registerFlag("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU",()=>!1);Bn.registerFlag("USE_SETTIMEOUTCUSTOM",()=>!1);function lr(e,t){let n=e;if(tn(e))return t==="string"?[]:[e.length];if(GS(e)){let r=e.channels||"RGBA";return[e.height,e.width*r.length]}else if(HS(e))return[e.buffer.size/(t==null?4:Uh(t))];if(!Array.isArray(e))return[];let a=[];for(;Array.isArray(n)||tn(n)&&t!=="string";)a.push(n.length),n=n[0];return Array.isArray(e)&&G().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&YS(e,a,[]),a}function YS(e,t,n){if(n=n||[],!Array.isArray(e)&&!tn(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),Gk(a,r,t,n),e==null||!tn(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);!tn(e)&&!Array.isArray(e)&&(e=[e]);let i=r!=="string"?Rm(e,r):os(e,[],!0);return O.makeTensor(i,s,r)}function fc(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 Nv="__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+Nv;let r=(...s)=>{O.startScope(n);try{let i=a(...s);return wm(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 gM(e,t){let n=_(e,"real","complex"),a=_(t,"imag","complex");Nn(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(km,r)}var Fr=L({complex_:gM});function ks(e,t,n,a){if(a==null)a=Ac(e);else if(a==="complex64")throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(HS(e)||GS(e)){if(a!=="float32"&&a!=="int32")throw new Error(`Creating tensor from GPU data only supports 'float32'|'int32' dtype, while the dtype is ${a}.`);return O.backend.createTensorFromGPUData(e,t||n,a)}if(!tn(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){ra(t);let r=bt(t),s=bt(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!tn(e)&&!Array.isArray(e)&&(e=[e]),t=t||n,e=a!=="string"?Rm(e,a):os(e,[],!0),O.makeTensor(e,t,a)}function bn(e,t,n){let a=lr(e,n);return ks(e,t,a,n)}var Tx={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8},cr=class{static join(e){return new cr(e).slice()}constructor(e){if(this.shards=[],this.previousShardIndex=0,e==null||(e instanceof Array||(e=[e]),e=e.map(n=>tn(n)?n.buffer:n),e.length===0))return;this.bufferUniformSize=e[0].byteLength;let t=0;for(let n=0;n=this.byteLength)return-1;if(this.bufferUniformSize!=null)return this.previousShardIndex=Math.floor(e/this.bufferUniformSize),this.previousShardIndex;function t(a){return e=a.end?1:0}if(t(this.shards[this.previousShardIndex])===0)return this.previousShardIndex;let n=bM(this.shards,t);return n===-1?-1:(this.previousShardIndex=n,this.previousShardIndex)}};function bM(e,t){let n=0,a=e.length;for(;n<=a;){let r=Math.floor((a-n)/2)+n,s=t(e[r]);if(s===0)return r;s<0?a=r:n=r+1}return-1}var Xh=4;async function yM(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,b)=>g+b.length,0)+Xh*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 Tv=typeof Buffer!="undefined"&&(typeof Blob=="undefined"||typeof atob=="undefined"||typeof btoa=="undefined");function Hk(e){return Tv?Buffer.byteLength(e,"utf8"):new Blob([e]).size}function vM(e){if(Tv)return Buffer.from(e).toString("base64");let t=new Uint8Array(e),n="";for(let a=0,r=t.length;a{let a=n<<13,r=0;for(;!(a&8388608);)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 SM(){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 NM(){let e=new Uint32Array(64);for(let t=0;t<64;t++)e[t]=1024;return e[0]=e[32]=0,e}function TM(){let e=IM(),t=SM(),n=NM();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}},CM=e=>$t.registerSaveRouter(e),_M=e=>$t.registerLoadRouter(e),EM=e=>$t.getSaveHandlers(e),AM=(e,t)=>$t.getLoadHandlers(e,t),Cx="tensorflowjs",_x=1,ei="models_store",es="model_info_store";function tN(){if(!G().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 Ex(e){let t=e.result;t.createObjectStore(ei,{keyPath:"modelPath"}),t.createObjectStore(es,{keyPath:"modelPath"})}var ui=class{constructor(e){if(this.indexedDB=tN(),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(Cx,_x);r.onupgradeneeded=()=>Ex(r),r.onsuccess=()=>{let s=r.result;if(t==null){let i=s.transaction(ei,"readonly"),o=i.objectStore(ei).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{t.weightData=cr.join(t.weightData);let i=nd(t),o=s.transaction(es,"readwrite"),l=o.objectStore(es),u;try{u=l.put({modelPath:this.modelPath,modelArtifactsInfo:i})}catch(d){return a(d)}let p;u.onsuccess=()=>{p=s.transaction(ei,"readwrite");let d=p.objectStore(ei),c;try{c=d.put({modelPath:this.modelPath,modelArtifacts:t,modelArtifactsInfo:i})}catch(h){return a(h)}c.onsuccess=()=>n({modelArtifactsInfo:i}),c.onerror=h=>{l=o.objectStore(es);let m=l.delete(this.modelPath);m.onsuccess=()=>(s.close(),a(c.error)),m.onerror=f=>(s.close(),a(c.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)})}};ui.URL_SCHEME="indexeddb://";var nN=e=>G().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(ui.URL_SCHEME)?FM(e.slice(ui.URL_SCHEME.length)):null;$t.registerSaveRouter(nN);$t.registerLoadRouter(nN);function FM(e){return new ui(e)}function $M(e){return e.startsWith(ui.URL_SCHEME)?e.slice(ui.URL_SCHEME.length):e}var DM=class{constructor(){this.indexedDB=tN()}async listModels(){return new Promise((e,t)=>{let n=this.indexedDB.open(Cx,_x);n.onupgradeneeded=()=>Ex(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=$M(e),new Promise((t,n)=>{let a=this.indexedDB.open(Cx,_x);a.onupgradeneeded=()=>Ex(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(ei,"readwrite");let d=l.objectStore(ei).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="/",Sl="tensorflowjs_models",aN="info",RM="model_topology",MM="weight_specs",PM="weight_data",OM="model_metadata";function rN(e){return{info:[Sl,e,aN].join(_r),topology:[Sl,e,RM].join(_r),weightSpecs:[Sl,e,MM].join(_r),weightData:[Sl,e,PM].join(_r),modelMetadata:[Sl,e,OM].join(_r)}}function sN(e){for(let t of Object.values(e))window.localStorage.removeItem(t)}function LM(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 zM(e){return e.startsWith(pi.URL_SCHEME)?e.slice(pi.URL_SCHEME.length):e}var pi=class{constructor(e){if(!G().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=rN(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=nd(e),r=cr.join(e.weightData);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,vM(r));let s={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(s)),{modelArtifactsInfo:a}}catch(s){throw sN(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=wM(s),t}};pi.URL_SCHEME="localstorage://";var iN=e=>G().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(pi.URL_SCHEME)?WM(e.slice(pi.URL_SCHEME.length)):null;$t.registerSaveRouter(iN);$t.registerLoadRouter(iN);function WM(e){return new pi(e)}var BM=class{constructor(){A(G().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=Sl+_r,n=_r+aN;for(let a=0;a"scheme must not be undefined or null."),e.endsWith(Tl)&&(e=e.slice(0,e.indexOf(Tl))),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(Tl)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${Pn.getSchemes().join(",")}`);return{scheme:e.split(Tl)[0],path:e.split(Tl)[1]}}async function oN(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 VM(){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+Tl+r;t[s]=a[r]}}return t}async function UM(e){let t=Rh(e);return Pn.getManager(t.scheme).removeModel(t.path)}async function GM(e,t){return oN(e,t,!1)}async function HM(e,t){return oN(e,t,!0)}var qM=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"||!G().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))}isTypedArray(e){return WS(e)}};if(G().get("IS_BROWSER")){G().setPlatform("browser",new qM);try{Pn.registerManager(pi.URL_SCHEME,new BM)}catch(e){}try{Pn.registerManager(ui.URL_SCHEME,new DM)}catch(e){}}var jM={importFetch:()=>JD()},sx,KM=class{constructor(){this.util=QD(),this.textEncoder=new this.util.TextEncoder}fetch(e,t){return G().global.fetch!=null?G().global.fetch(e,t):(sx==null&&(sx=jM.importFetch()),sx(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)}isTypedArray(e){return this.util.types.isFloat32Array(e)||this.util.types.isInt32Array(e)||this.util.types.isUint8Array(e)||this.util.types.isUint8ClampedArray(e)}};G().get("IS_NODE")&&!G().get("IS_BROWSER")&&G().setPlatform("node",new KM);function Le(e,t="float32",n){return t=t||"float32",ra(e),new Vt(e,t,n)}function XM(e,t){let n=_(e,"x","cast");if(!ES(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(Mi,a,r)}var se=L({cast_:XM});function YM(e){let t={x:_(e,"x","clone","string_or_numeric")};return O.runKernel(eo,t)}var sr=L({clone_:YM});function _v(e,t=!1){console.log(e.toString(t))}KS();var ZM={buffer:Le,cast:se,clone:sr,print:_v};iM(ZM);function JM(){G().set("PROD",!0)}function QM(){G().set("DEBUG",!0)}function eP(){G().set("DEPRECATION_WARNINGS_ENABLED",!1),console.warn("TensorFlow.js deprecation warnings have been disabled.")}function Ev(e){G().getBool("DEPRECATION_WARNINGS_ENABLED")&&console.warn(e+" You can disable deprecation warnings with tf.disableDeprecationWarnings().")}oM(Ev);function tP(){O.disposeVariables()}function _a(){return O}function Yh(){return O.memory()}function nP(e){return O.profile(e)}function P(e,t){return O.tidy(e,t)}function _e(e){Sv(e).forEach(t=>t.dispose())}function qt(e){return O.keep(e)}function aP(e){return O.time(e)}function rP(e){return O.setBackend(e)}function sP(){return O.ready()}function iP(){return O.backendName}function oP(e){O.removeBackend(e)}function lP(e){return O.findBackend(e)}function uP(e){return O.findBackendFactory(e)}function Pm(e,t,n=1){return O.registerBackend(e,t,n)}function lN(){return O.backend}function pP(e,t){G().setPlatform(e,t)}function cP(e,t){let n=_(e,"a","add"),a=_(t,"b","add");[n,a]=Ft(n,a);let r={a:n,b:a};return O.runKernel(ys,r)}var X=L({add_:cP});function dP(e,t){let n=_(e,"a","floorDiv"),a=_(t,"b","floorDiv");[n,a]=Ft(n,a);let r={a:n,b:a};return O.runKernel(Zi,r)}var Om=L({floorDiv_:dP});function hP(e,t){let n=_(e,"a","div"),a=_(t,"b","div");if([n,a]=Ft(n,a),n.dtype==="int32"&&a.dtype==="int32")return Om(n,a);let r={a:n,b:a},s={};return O.runKernel(Hi,r,s)}var he=L({div_:hP});function mP(e,t){let n=_(e,"a","mul"),a=_(t,"b","mul");[n,a]=Ft(n,a);let r={a:n,b:a};return O.runKernel(bo,r)}var z=L({mul_:mP});function fP(e){let t=_(e,"x","abs");if(t.dtype==="complex64"){let n={x:t};return O.runKernel(Rc,n)}else{let n={x:t};return O.runKernel(Yl,n)}}var Wt=L({abs_:fP});function gP(e){let t={x:_(e,"x","acos")};return O.runKernel(Ni,t)}var Av=L({acos_:gP});function bP(e){let t={x:_(e,"x","acosh")};return O.runKernel(Ti,t)}var Fv=L({acosh_:bP});function yP(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(!Dr(r.shape,n.shape))throw new Error("All tensors passed to tf.addN() must have the same shape")});let a=t;return O.runKernel(Ci,a)}var uN=L({addN_:yP});function xP(e,t=null,n=!1){let a={x:_(e,"x","all","bool")},r={axis:t,keepDims:n};return O.runKernel(Zl,a,r)}var Lm=L({all_:xP});function vP(e,t=null,n=!1){let a={x:_(e,"x","any","bool")},r={axis:t,keepDims:n};return O.runKernel(Jl,a,r)}var gc=L({any_:vP});function wP(e,t=0){let n={x:_(e,"x","argMax")},a={axis:t};return O.runKernel(Ql,n,a)}var ci=L({argMax_:wP});function kP(e,t=0){let n={x:_(e,"x","argMin")},a={axis:t};return O.runKernel(eu,n,a)}var $v=L({argMin_:kP});function IP(e){let t={x:_(e,"x","asin")};return O.runKernel(_i,t)}var Dv=L({asin_:IP});function SP(e){let t={x:_(e,"x","asinh")};return O.runKernel(Ei,t)}var Rv=L({asinh_:SP});function NP(e){let t={x:_(e,"x","atan")};return O.runKernel(Ai,t)}var Mv=L({atan_:NP});function TP(e,t){let n=_(e,"a","atan2"),a=_(t,"b","atan2");[n,a]=Ft(n,a);let r={a:n,b:a};return O.runKernel($i,r)}var Pv=L({atan2_:TP});function CP(e){let t={x:_(e,"x","atanh")};return O.runKernel(Fi,t)}var Ov=L({atanh_:CP});function _P(e,t,n,a,r="NHWC",s){let i=e[3],o=[...t,i],l=dN(r);return ad(e,o,n,s,a,null,null,l)}function pN(e,t,n,a,r,s,i="channelsLast"){let[o,l]=bc(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 ad(e,u,n,a,r,s,!1,i)}function EP(e,t,n,a,r,s,i="NDHWC"){let[o,l,u]=Ax(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 cN(e,p,n,a,r,!1,d,s)}function ad(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]=bc(n),[b,y]=bc(a),x=Cl(c,b),v=Cl(h,y),{padInfo:I,outHeight:T,outWidth:C}=$P(r,u,p,f,g,x,v,s,o),E=i?m*d:m,F;return o==="channelsFirst"?F=[l,E,T,C]:o==="channelsLast"&&(F=[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:v,dilationHeight:b,dilationWidth:y,inShape:e,outShape:F,filterShape:t}}function cN(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,[b,y,x]=Ax(n),[v,I,T]=Ax(a),C=Cl(h,v),E=Cl(m,I),F=Cl(f,T),{padInfo:D,outDepth:$,outHeight:S,outWidth:M}=DP(r,u,p,d,b,y,x,C,E,F,o),B=s?g*c:g,U;return i==="channelsFirst"?U=[l,B,$,S,M]:i==="channelsLast"&&(U=[l,$,S,M,B]),{batchSize:l,dataFormat:i,inDepth:u,inHeight:p,inWidth:d,inChannels:c,outDepth:$,outHeight:S,outWidth:M,outChannels:B,padInfo:D,strideDepth:b,strideHeight:y,strideWidth:x,filterDepth:h,filterHeight:m,filterWidth:f,effectiveFilterDepth:C,effectiveFilterHeight:E,effectiveFilterWidth:F,dilationDepth:v,dilationHeight:I,dilationWidth:T,inShape:e,outShape:U,filterShape:t}}function AP(e,t,n,a,r){a==null&&(a=Lv(e,t,n));let s=e[0],i=e[1],o=yc((s-t+2*a)/n+1,r),l=yc((i-t+2*a)/n+1,r);return[o,l]}function FP(e,t,n,a,r,s){r==null&&(r=Lv(e,t[0],a[0]));let i=[0,0,0,n];for(let o=0;o<3;o++)e[o]+2*r>=t[o]&&(i[o]=yc((e[o]-t[o]+2*r)/a[o]+1,s));return i}function Lv(e,t,n,a=1){let r=Cl(t,a);return Math.floor((e[0]*(n-1)-n+r)/2)}function bc(e){return typeof e=="number"?[e,e,e]:e.length===2?[e[0],e[1],1]:e}function Ax(e){return typeof e=="number"?[e,e,e]:e}function Cl(e,t){return t<=1?e:e+(e-1)*(t-1)}function $P(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=AP([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),b=h-g;u={top:m,bottom:f,left:g,right:b,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=yc((t-s+c+h)/a+1,o),d=yc((n-i+m+f)/r+1,o)}else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:u,outHeight:p,outWidth:d}}function DP(e,t,n,a,r,s,i,o,l,u,p){let d,c,h,m;if(e==="valid"&&(e=0),typeof e=="number"){d={top:e,bottom:e,left:e,right:e,front:e,back:e,type:e===0?"VALID":"NUMBER"};let f=FP([t,n,a,1],[o,l,u],1,[r,s,i],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,b=(m-1)*i+u-a,y=Math.floor(f/2),x=f-y,v=Math.floor(g/2),I=g-v,T=Math.floor(b/2),C=b-T;d={top:v,bottom:I,left:T,right:C,front:y,back:x,type:"SAME"}}else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:d,outDepth:c,outHeight:h,outWidth:m}}function yc(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 us(e){let[t,n,a]=bc(e);return t===1&&n===1&&a===1}function dr(e,t){return us(e)||us(t)}function di(e){return bc(e).every(t=>t>0)}function dN(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(El(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(El(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 RP(e,t){let n={x:_(e,"x","reshape","string_or_numeric")},a={shape:t};return O.runKernel(Ru,n,a)}var W=L({reshape_:RP});function MP(e,t,n,a,r){let s=_(e,"x","avgPool","float32"),i=1;A(dr(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(Di,u,p);return d=se(d,s.dtype),l?W(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var ya=L({avgPool_:MP});function PP(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}`),A(typeof n=="number"&&n>0||Array.isArray(n)&&n[0]>0&&n[1]>0&&n[2]>0,()=>`Error in avgPool3d: Stride must be > 0, but got '${n}'`),Tn("avgPool3d",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r,dataFormat:s},d=O.runKernel(tu,u,p);return d=se(d,o.dtype),l?W(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}var zv=L({avgPool3d_:PP});function OP(e,t=0){A(e.length>=1,()=>"Pass at least one tensor to concat");let n=fc(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(su,a,r)}var et=L({concat_:OP});function LP(e,t,n=!1,a=!1){let r=_(e,"a","matMul"),s=_(t,"b","matMul");[r,s]=Ft(r,s);let i={a:r,b:s},o={transposeA:n,transposeB:a};return O.runKernel(Ri,i,o)}var $e=L({matMul_:LP});function zP(e){let t={x:_(e,"x","sigmoid","float32")};return O.runKernel(Mo,t)}var ma=L({sigmoid_:zP});function WP(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(Bu,r,s)}var Ue=L({slice_:WP});function BP(e){let t={x:_(e,"x","tanh","float32")};return O.runKernel(Uo,t)}var hi=L({tanh_:BP});function VP(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=et([u,d],1),h=$e(c,o),m=X(h,l),f=m.shape[0],g=m.shape[1]/4,b=[f,g],y=Ue(m,[0,0],b),x=Ue(m,[0,g],b),v=Ue(m,[0,g*2],b),I=Ue(m,[0,g*3],b),T=X(z(ma(y),hi(x)),z(p,ma(X(i,v)))),C=z(hi(T),ma(I));return[T,C]}var hN=L({basicLSTMCell_:VP});function UP(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(nu,s,i)}var rd=L({batchToSpaceND_:UP});function GP(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 HP(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:GP(i),scale:u,offset:p,mean:o,variance:l},c={varianceEpsilon:s},h=O.runKernel(Ji,d,c);return W(h,i.shape)}var Is=L({batchNorm_:HP});function qP(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}.`),Is(i,o,l,p,u,s)}var Wv=L({batchNorm2d_:qP});function jP(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}.`),Is(i,o,l,p,u,s)}var Bv=L({batchNorm3d_:jP});function KP(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}.`),Is(i,o,l,p,u,s)}var Vv=L({batchNorm4d_:KP});function XP(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(au,s,i)}var Uv=L({bincount_:XP});function YP(e,t){let n=_(e,"x","bitwiseAnd"),a=_(t,"y","bitwiseAnd");if(!Dr(n.shape,a.shape))throw new Error(`BitwiseAnd: Tensors must have the same shape. x: ${n.shape}, y: ${a.shape}`);if(n.dtype!=="int32"||a.dtype!=="int32")throw new Error(`BitwiseAnd: Only supports 'int32' values in tensor, found type of x: ${n.dtype} and type of y: ${a.dtype}`);let r={a:n,b:a};return O.runKernel(ru,r)}var mN=L({bitwiseAnd_:YP});function ZP(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(Dc,r)}var fN=L({broadcastArgs_:ZP});function JP(e,t){let n=_(e,"broadcastTo","x"),a=n.shape;if(ra(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(vs,i,o)}var ai=L({broadcastTo_:JP});function QP(e){let t={x:_(e,"x","ceil","float32")};return O.runKernel(Pi,t)}var Gv=L({ceil_:QP});function xn(e,t,n){ra(e),n=n||Ac(t);let a={shape:e,value:t,dtype:n};return O.runKernel(Oc,{},a)}function eO(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 xn(a.shape,t,a.dtype);let r={x:a},s={clipValueMin:t,clipValueMax:n};return O.runKernel(xs,r,s)}var sn=L({clipByValue_:eO});function tO(e){return et(e,0)}var Hv=L({concat1d_:tO});function nO(e,t){return et(e,t)}var qv=L({concat2d_:nO});function aO(e,t){return et(e,t)}var jv=L({concat3d_:aO});function rO(e,t){return et(e,t)}var Kv=L({concat4d_:rO});function sO(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(dr(n,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),A(di(s),()=>"Error in conv2D: Dilated rates should be larger than 0."),A(di(n),()=>"Error in conv2D: Strides should be larger than 0.");let c={x:u,filter:l},h={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i},m=O.runKernel(Oi,c,h);return p?W(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var Rt=L({conv2d_:sO});function iO(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(dr(n,s),()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${n} and dilation '${s}'`),A(di(s),()=>"Error in conv1D: Dilated rates should be larger than 0."),A(di(n),()=>"Error in conv1D: Stride should be larger than 0."),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=Rt(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 zm=L({conv1d_:iO});function oO(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(Li,c,h);return u?W(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var Xv=L({conv2DBackpropInput_:oO});function lO(e,t,n,a,r,s){let i=_(e,"x","conv2dTranspose"),o=_(t,"filter","conv2dTranspose");return Xv(n,i,o,a,r,"NHWC",s)}var Wm=L({conv2dTranspose_:lO});function uO(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(dr(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.`),A(di(s),()=>"Error in conv3D: Dilated rates should be larger than 0."),A(di(n),()=>"Error in conv3D: Strides should be larger than 0.");let p={x:l,filter:o},d={strides:n,pad:a,dataFormat:r,dilations:s},c=O.runKernel(zi,p,d);return u?W(c,[c.shape[1],c.shape[2],c.shape[3],c.shape[4]]):c}var Yv=L({conv3d_:uO});function pO(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(ou,p,d);return o?W(c,[c.shape[1],c.shape[2],c.shape[3],c.shape[4]]):c}var gN=L({conv3DBackpropInput_:pO});function cO(e,t,n,a,r){let s=_(e,"x","conv3dTranspose"),i=_(t,"filter","conv3dTranspose");return gN(n,s,i,a,r)}var Zv=L({conv3dTranspose_:cO});function dO(e){let t={x:_(e,"x","cos","float32")};return O.runKernel(Wi,t)}var sd=L({cos_:dO});function hO(e){let t={x:_(e,"x","cosh","float32")};return O.runKernel(Bi,t)}var Bm=L({cosh_:hO});function mO(e,t=0,n=!1,a=!1){let r={x:_(e,"x","cumprod")},s={axis:t,exclusive:n,reverse:a};return O.runKernel(lu,r,s)}var xc=L({cumprod_:mO});function fO(e,t=0,n=!1,a=!1){let r={x:_(e,"x","cumsum")},s={axis:t,exclusive:n,reverse:a};return O.runKernel(Vi,r,s)}var Vm=L({cumsum_:fO});function gO(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(Mc,i,o)}var Zh=L({denseBincount_:gO});function bO(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 ${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(su,o,l)}var Gv=L({depthToSpace_:nO});function aO(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(Bi,c,h);return p?W(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var Is=L({depthwiseConv2d_:aO});function rO(e){let t={x:_(e,"x","diag")};return O.runKernel($c,t)}var lN=L({diag_:rO});function sO(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),A(l.shape[3]===o.shape[2],()=>`Error in dilation2d: input and filter must have the same depth: ${l.shape[3]} vs ${o.shape[2]}`);let p={x:l,filter:o},d={strides:n,pad:a,dilations:r},c=O.runKernel(Vi,p,d);return u?W(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var Hv=L({dilation2d_:sO}),Yu={};Ee(Yu,{assertAndGetBroadcastShape:()=>ut,getBroadcastDims:()=>uN,getReductionAxes:()=>Ut});function uN(e,t){let n=e.length,a=[];for(let r=0;r1&&i===1&&a.unshift(s)}return a}function Ut(e,t){let n=[];for(let a=0;a1)&&n.unshift(s)}return n}function ut(e,t){let n=Math.max(e.length,t.length),a=new Array(n);for(let r=0;r`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=$e(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=$e(i,o);return W(l,[l.size])}else if(n.rank===2&&a.rank===1){let i=W(a,[-1,1]),o=$e(n,i);return W(o,[o.size])}else{let i=W(a,[a.shape[0],a.shape[1]]);return $e(n,i)}}var jv=L({dot_:pO});function cO(e,...t){let n=t.map((r,s)=>_(r,`tensors${s}`,"einsum")),a={equation:e};return O.runKernel(Im,n,a)}var pN=L({einsum_:cO});function dO(e){let t={x:_(e,"x","elu","float32")};return O.runKernel(Gi,t)}var Zu=L({elu_:dO});function hO(e,t){let n=_(e,"x","ensureShape","string_or_numeric");if(!gS(n.shape,t))throw new Error(`EnsureShape: Shape of tensor ${n.shape} is not compatible with expected shape ${t}`);return e}var cN=L({ensureShape_:hO});function mO(e){let t=_(e,"x","erf");A(t.dtype==="int32"||t.dtype==="float32",()=>"Input dtype must be `int32` or `float32`."),t.dtype==="int32"&&(t=ie(t,"float32"));let n={x:t};return O.runKernel(ou,n)}var Kv=L({erf_:mO});function Xv(e,t){for(let n=0;ne[s]);return[n,r]}function hi(e,t){let n=t.map(a=>1);return dN(e,n,t)}function fO(e,t,n){A(Xv(t,n),()=>`${e} supports only inner-most axes for now. Got axes ${t} and rank-${n} input.`)}function mN(e,t){if(Xv(e,t))return null;let n=[];for(let a=0;an.push(a)),n}function Yv(e){return e.map((t,n)=>[n,t]).sort((t,n)=>t[1]-n[1]).map(t=>t[0])}function gO(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(uu,a,r)}var tn=L({expandDims_:TO});function CO(e){let t={x:_(e,"x","expm1")};return O.runKernel(qi,t)}var Jv=L({expm1_:CO});function _O(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(xs,a,r)}var Ln=L({tile_:_O});function EO(e,t,n,a="float32"){t==null&&(t=e);let r=Le([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(ro,l,u);return o?W(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var nw=L({localResponseNormalization_:BO});function VO(e){let t={x:_(e,"x","log","float32")};return O.runKernel(no,t)}var ta=L({log_:VO});function UO(e){let t={x:_(e,"x","log1p")};return O.runKernel(ao,t)}var nd=L({log1p_:UO});function GO(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&&Nn(s.shape,r.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),Um(i),i[0]})}}function HO(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=dc(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&&Nn(s.shape,r.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Um(i),i})}}function qO(e){return A(ss(e),()=>"The f passed in valueAndGrad(f) must be a function"),(t,n)=>{A(t instanceof Ce,()=>"The x passed in valueAndGrad(f)(x) must be a tensor"),A(n==null||n instanceof Ce,()=>"The dy passed in valueAndGrad(f)(x, dy) must be a tensor");let{grads:a,value:r}=O.gradients(()=>e(t),[t],n);return Um(a),{grad:a[0],value:r}}}function jO(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 Ce),()=>"The args passed in valueAndGrads(f)(args) must be array of tensors"),A(n==null||n instanceof Ce,()=>"The dy passed in valueAndGrads(f)(args, dy) must be a tensor");let a=O.gradients(()=>e(...t),t,n);return n!=null&&Nn(a.value.shape,n.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Um(a.grads),a}}function bN(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 os),()=>"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 Um(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 KO(e){let t={x:_(e,"x","neg")};return O.runKernel(Su,t)}var yt=L({neg_:KO});function XO(e){let t={x:_(e,"x","softplus")};return O.runKernel(Fo,t)}var zo=L({softplus_:XO});function YO(e){let t=_(e,"x","logSigmoid");return ur(n=>({value:yt(zo(yt(n))),gradFunc:a=>z(a,ma(yt(n)))}))(t)}var aw=L({logSigmoid_:YO});function ZO(e,t){let n=_(e,"a","sub"),a=_(t,"b","sub");[n,a]=Ft(n,a);let r={a:n,b:a};return O.runKernel(Po,r)}var pe=L({sub_:ZO});function JO(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=fa(a,t,!0),i=pe(a,s),o=pe(ie(i,"float32"),ta(fe(yn(i),t,!0)));return r([o]),{value:o,gradFunc:(l,u)=>{let[p]=u,d=!0,c=yn(p);return pe(l,z(fe(l,t,d),c))}}})(n)}var Gm=L({logSoftmax_:JO});function QO(e,t=null,n=!1){let a=_(e,"x","logSumExp"),r=$a(t,a.shape),s=fa(a,r,!0),i=pe(a,s),o=yn(i),l=fe(o,r),u=ta(l),p=X(W(s,u.shape),u);if(n){let d=hi(p.shape,r);return W(p,d)}return p}var Hm=L({logSumExp_:QO});function e3(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(bu,r)}var Fa=L({logicalAnd_:e3});function t3(e){let t={x:_(e,"x","logicalNot","bool")};return O.runKernel(yu,t)}var ad=L({logicalNot_:t3});function n3(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(xu,r)}var qm=L({logicalOr_:n3});function a3(e,t){let n=_(e,"a","logicalXor","bool"),a=_(t,"b","logicalXor","bool");return ut(n.shape,a.shape),Fa(qm(e,t),ad(Fa(e,t)))}var rw=L({logicalXor_:a3}),fh=2147483648;function r3(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(bt(l.shape)>=fh)throw new Error(`values tensor size must less than ${fh}`);if(o.shape[1]>=fh)throw new Error(`trailing dim_size must less than ${fh} for int32 output type, was ${o.shape[1]}`);let u={sortedSequence:o,values:l},p={side:n};return O.runKernel(Pu,u,p)}var jm=L({searchSorted_:r3});function yN(e,t){return jm(e,t,"left")}function s3(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}'`),Tn("maxPool",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r},d=O.runKernel(oo,u,p);return l?W(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var Mt=L({maxPool_:s3});function i3(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(wu,u,p);return l?W(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}var sw=L({maxPool3d_:i3});function o3(e,t,n,a,r=!1){let s={x:_(e,"x","maxPoolWithArgmax")},i={filterSize:t,strides:n,pad:a,includeBatchInIndex:r},o=O.runKernel(_m,s,i);return{result:o[0],indexes:o[1]}}var xN=L({maxPoolWithArgmax_:o3});function l3(e,t){let n=_(e,"a","maximum"),a=_(t,"b","maximum");[n,a]=Ft(n,a),n.dtype==="bool"&&(n=ie(n,"int32"),a=ie(a,"int32")),ut(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(io,r)}var dr=L({maximum_:l3});function u3(e,t=null,n=!1){let a={x:_(e,"x","mean")},r={axis:t,keepDims:n};return O.runKernel(lo,a,r)}var Et=L({mean_:u3});function Nt(e,t="float32"){if(ra(e),t==="complex64"){let a=Nt(e,"float32"),r=Nt(e,"float32");return Ar(a,r)}let n=fm(bt(e),t);return O.makeTensor(n,e,t)}function Jn(e,t="float32"){if(ra(e),t==="complex64"){let a=Jn(e,"float32"),r=Nt(e,"float32");return Ar(a,r)}let n=cv(bt(e),t);return O.makeTensor(n,e,t)}function vN(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 Ce?e.dtype:"float32");if(t===void 0)return[a];let r=_(t,"y","meshgrid",t instanceof Ce?t.dtype:"float32"),s=bt(a.shape),i=bt(r.shape);return n==="xy"?(a=W(a,[1,-1]),r=W(r,[-1,1]),[$e(Jn([i,1],a.dtype),a),$e(r,Jn([1,s],r.dtype))]):(a=W(a,[-1,1]),r=W(r,[1,-1]),[$e(a,Jn([1,i],a.dtype)),$e(Jn([s,1],r.dtype),r)])}function p3(e,t){let n=_(e,"a","minimum"),a=_(t,"b","minimum");[n,a]=Ft(n,a),n.dtype==="bool"&&(n=ie(n,"int32"),a=ie(a,"int32")),ut(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(po,r)}var us=L({minimum_:p3});function c3(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(co,i,s)}var iw=L({mirrorPad_:c3});function d3(e,t){let n=_(e,"a","mod"),a=_(t,"b","mod");[n,a]=Ft(n,a);let r={a:n,b:a};return O.runKernel(ku,r)}var ow=L({mod_:d3});function h3(e,t=null,n=!1){e=_(e,"x","moments");let a=$a(t,e.shape),r=Et(e,a,n),s=r.shape;n||(s=hi(r.shape,a));let i=lt(pe(ie(e,"float32"),W(r,s))),o=Et(i,a,n);return{mean:r,variance:o}}var rd=L({moments_:h3});function m3(e,t,n,a){let r=_(t,"data","multiRNNCell"),s=dc(n,"c","multiRNNCell"),i=dc(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(Iu,o,l);return i===1?W(u,[u.size]):u}var kN=L({multinomial_:f3});function g3(e,t){let n=_(e,"a","notEqual","string_or_numeric"),a=_(t,"b","notEqual","string_or_numeric");[n,a]=Ft(n,a),ut(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(Nu,r)}var mi=L({notEqual_:g3});function b3(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(mo,s,i)}var Al=L({oneHot_:b3});function y3(e){let t={x:_(e,"x","onesLike")};return O.runKernel(Eu,t)}var na=L({onesLike_:y3});function x3(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 $e(r,s)}var IN=L({outerProduct_:x3});function v3(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(fo,s,r)}var xa=L({pad_:v3});function w3(e,t,n=0){return A(t.length===2,()=>"Invalid number of paddings. Must be length of 2."),xa(e,[t],n)}var SN=L({pad1d_:w3});function k3(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 NN=L({pad2d_:k3});function I3(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 TN=L({pad3d_:I3});function S3(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 CN=L({pad4d_:S3});function N3(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(Wu,r,s)}var sd=L({spaceToBatchND_:N3});function T3(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=tN(l.shape,t,s,r,a),d=[p.dilationHeight,p.dilationWidth],c;a==="same"?c=_3([p.filterHeight,p.filterWidth],d):c=[[0,0],[0,0]];let h=d[0]===1&&d[1]===1,[m,f]=C3([p.inHeight,p.inWidth],d,c),g=h?a:"valid",b=h?l:sd(l,d,m),y=(n==="avg"?()=>ya(b,t,s,g,i):()=>Mt(b,t,s,g,i))(),x=h?y:Jc(y,d,f);return u?W(x,[x.shape[1],x.shape[2],x.shape[3]]):x}function C3(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 _3(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 lw=L({pool_:T3});function E3(e,t){let n=_(e,"x","prelu"),a=_(t,"alpha","prelu"),r={x:n,alpha:a};return O.runKernel(bo,r)}var id=L({prelu_:E3});function A3(e,t=null,n=!1){let a=_(e,"x","prod");a.dtype==="bool"&&(a=ie(a,"int32"));let r={x:a},s={axis:t,keepDims:n};return O.runKernel(yo,r,s)}var uw=L({prod_:A3});function F3(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(Em,o,l);return{outputNestedSplits:u.slice(0,u.length-1),outputDenseValues:u[u.length-1]}}var _N=L({raggedGather_:F3});function $3(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(Am,i);return{rtNestedSplits:o[0],rtDenseValues:o[1]}}var EN=L({raggedRange_:$3});function D3(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(Fm,u,p)}var AN=L({raggedTensorToTensor_:D3});function R3(e,t,n){ra(e);let a=bt(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;sDN,createVideoElement:()=>V3,encodeStrings:()=>RN,expectArrayBuffersEqual:()=>B3,expectArraysClose:()=>P3,expectArraysEqual:()=>L3,expectNumbersClose:()=>z3,expectPromiseToFail:()=>O3,expectValuesInRange:()=>W3,play:()=>U3,testEpsilon:()=>cw});var M3=.001,DN=.1;function P3(e,t,n){return n==null&&(n=cw()),Ix(e,t,(a,r)=>dw(a,r,n))}function cw(){return O.backend.floatPrecision()===32?M3:DN}function Ix(e,t,n){let a=!0;if((en(e)||en(t))&&(a=!1),en(e)&&en(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(!$r(i,o))throw new Error(`Arrays have different shapes. Actual: [${i}]. Expected: [${o}]`)}let r=en(e)?e:is(e),s=en(t)?t:is(t);if(r.length!==s.length)throw new Error(`Arrays have different lengths actual: ${r.length} vs expected: ${s.length}. + ${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(pu,o,l)}var Jv=L({depthToSpace_:bO});function yO(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(Ui,c,h);return p?W(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var Ss=L({depthwiseConv2d_:yO});function xO(e){let t={x:_(e,"x","diag")};return O.runKernel(Pc,t)}var bN=L({diag_:xO});function vO(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),A(l.shape[3]===o.shape[2],()=>`Error in dilation2d: input and filter must have the same depth: ${l.shape[3]} vs ${o.shape[2]}`);let p={x:l,filter:o},d={strides:n,pad:a,dilations:r},c=O.runKernel(Gi,p,d);return u?W(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var Qv=L({dilation2d_:vO}),Ju={};Ee(Ju,{assertAndGetBroadcastShape:()=>ut,getBroadcastDims:()=>yN,getReductionAxes:()=>Ut});function yN(e,t){let n=e.length,a=[];for(let r=0;r1&&i===1&&a.unshift(s)}return a}function Ut(e,t){let n=[];for(let a=0;a1)&&n.unshift(s)}return n}function ut(e,t){let n=Math.max(e.length,t.length),a=new Array(n);for(let r=0;r`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=$e(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=$e(i,o);return W(l,[l.size])}else if(n.rank===2&&a.rank===1){let i=W(a,[-1,1]),o=$e(n,i);return W(o,[o.size])}else{let i=W(a,[a.shape[0],a.shape[1]]);return $e(n,i)}}var tw=L({dot_:NO});function TO(e,...t){let n=t.map((r,s)=>_(r,`tensors${s}`,"einsum")),a={equation:e};return O.runKernel(Tm,n,a)}var xN=L({einsum_:TO});function CO(e){let t={x:_(e,"x","elu","float32")};return O.runKernel(qi,t)}var Qu=L({elu_:CO});function _O(e,t){let n=_(e,"x","ensureShape","string_or_numeric");if(!NS(n.shape,t))throw new Error(`EnsureShape: Shape of tensor ${n.shape} is not compatible with expected shape ${t}`);return e}var vN=L({ensureShape_:_O});function EO(e){let t=_(e,"x","erf");A(t.dtype==="int32"||t.dtype==="float32",()=>"Input dtype must be `int32` or `float32`."),t.dtype==="int32"&&(t=se(t,"float32"));let n={x:t};return O.runKernel(ji,n)}var nw=L({erf_:EO});function aw(e,t){for(let n=0;ne[s]);return[n,r]}function mi(e,t){let n=t.map(a=>1);return wN(e,n,t)}function AO(e,t,n){A(aw(t,n),()=>`${e} supports only inner-most axes for now. Got axes ${t} and rank-${n} input.`)}function IN(e,t){if(aw(e,t))return null;let n=[];for(let a=0;an.push(a)),n}function rw(e){return e.map((t,n)=>[n,t]).sort((t,n)=>t[1]-n[1]).map(t=>t[0])}function FO(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(hu,a,r)}var nn=L({expandDims_:BO});function VO(e){let t={x:_(e,"x","expm1")};return O.runKernel(Xi,t)}var iw=L({expm1_:VO});function UO(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(vs,a,r)}var Ln=L({tile_:UO});function GO(e,t,n,a="float32"){t==null&&(t=e);let r=Le([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(El(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(oo,l,u);return o?W(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var pw=L({localResponseNormalization_:n3});function a3(e){let t={x:_(e,"x","log","float32")};return O.runKernel(so,t)}var ta=L({log_:a3});function r3(e){let t={x:_(e,"x","log1p")};return O.runKernel(io,t)}var ld=L({log1p_:r3});function s3(e){return A(is(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&&Nn(s.shape,r.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),Gm(i),i[0]})}}function i3(e){return A(is(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=fc(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&&Nn(s.shape,r.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Gm(i),i})}}function o3(e){return A(is(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 Gm(a),{grad:a[0],value:r}}}function l3(e){return A(is(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&&Nn(a.value.shape,n.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Gm(a.grads),a}}function TN(e,t){A(is(e),()=>"The f passed in variableGrads(f) must be a function"),A(t==null||Array.isArray(t)&&t.every(u=>u instanceof ls),()=>"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 Gm(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 u3(e){let t={x:_(e,"x","neg")};return O.runKernel(Cu,t)}var yt=L({neg_:u3});function p3(e){let t={x:_(e,"x","softplus")};return O.runKernel(Po,t)}var Go=L({softplus_:p3});function c3(e){let t=_(e,"x","logSigmoid");return ur(n=>({value:yt(Go(yt(n))),gradFunc:a=>z(a,ma(yt(n)))}))(t)}var cw=L({logSigmoid_:c3});function d3(e,t){let n=_(e,"a","sub"),a=_(t,"b","sub");[n,a]=Ft(n,a);let r={a:n,b:a};return O.runKernel(Bo,r)}var pe=L({sub_:d3});function h3(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=fa(a,t,!0),i=pe(a,s),o=pe(se(i,"float32"),ta(fe(yn(i),t,!0)));return r([o]),{value:o,gradFunc:(l,u)=>{let[p]=u,d=!0,c=yn(p);return pe(l,z(fe(l,t,d),c))}}})(n)}var Hm=L({logSoftmax_:h3});function m3(e,t=null,n=!1){let a=_(e,"x","logSumExp"),r=$a(t,a.shape),s=fa(a,r,!0),i=pe(a,s),o=yn(i),l=fe(o,r),u=ta(l),p=X(W(s,u.shape),u);if(n){let d=mi(p.shape,r);return W(p,d)}return p}var qm=L({logSumExp_:m3});function f3(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(wu,r)}var Fa=L({logicalAnd_:f3});function g3(e){let t={x:_(e,"x","logicalNot","bool")};return O.runKernel(ku,t)}var ud=L({logicalNot_:g3});function b3(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(Iu,r)}var jm=L({logicalOr_:b3});function y3(e,t){let n=_(e,"a","logicalXor","bool"),a=_(t,"b","logicalXor","bool");return ut(n.shape,a.shape),Fa(jm(e,t),ud(Fa(e,t)))}var dw=L({logicalXor_:y3}),vh=2147483648;function x3(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(bt(l.shape)>=vh)throw new Error(`values tensor size must less than ${vh}`);if(o.shape[1]>=vh)throw new Error(`trailing dim_size must less than ${vh} for int32 output type, was ${o.shape[1]}`);let u={sortedSequence:o,values:l},p={side:n};return O.runKernel(zu,u,p)}var Km=L({searchSorted_:x3});function CN(e,t){return Km(e,t,"left")}function v3(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(dr(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(po,u,p);return l?W(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var Mt=L({maxPool_:v3});function w3(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(Nu,u,p);return l?W(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}var hw=L({maxPool3d_:w3});function k3(e,t,n,a,r=!1){let s={x:_(e,"x","maxPoolWithArgmax")},i={filterSize:t,strides:n,pad:a,includeBatchInIndex:r},o=O.runKernel(Wc,s,i);return{result:o[0],indexes:o[1]}}var _N=L({maxPoolWithArgmax_:k3});function I3(e,t){let n=_(e,"a","maximum"),a=_(t,"b","maximum");[n,a]=Ft(n,a),n.dtype==="bool"&&(n=se(n,"int32"),a=se(a,"int32")),ut(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(uo,r)}var hr=L({maximum_:I3});function S3(e,t=null,n=!1){let a={x:_(e,"x","mean")},r={axis:t,keepDims:n};return O.runKernel(co,a,r)}var Et=L({mean_:S3});function Nt(e,t="float32"){if(ra(e),t==="complex64"){let a=Nt(e,"float32"),r=Nt(e,"float32");return Fr(a,r)}let n=vm(bt(e),t);return O.makeTensor(n,e,t)}function Jn(e,t="float32"){if(ra(e),t==="complex64"){let a=Jn(e,"float32"),r=Nt(e,"float32");return Fr(a,r)}let n=xv(bt(e),t);return O.makeTensor(n,e,t)}function EN(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=bt(a.shape),i=bt(r.shape);return n==="xy"?(a=W(a,[1,-1]),r=W(r,[-1,1]),[$e(Jn([i,1],a.dtype),a),$e(r,Jn([1,s],r.dtype))]):(a=W(a,[-1,1]),r=W(r,[1,-1]),[$e(a,Jn([1,i],a.dtype)),$e(Jn([s,1],r.dtype),r)])}function N3(e,t){let n=_(e,"a","minimum"),a=_(t,"b","minimum");[n,a]=Ft(n,a),n.dtype==="bool"&&(n=se(n,"int32"),a=se(a,"int32")),ut(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(mo,r)}var ps=L({minimum_:N3});function T3(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(fo,i,s)}var mw=L({mirrorPad_:T3});function C3(e,t){let n=_(e,"a","mod"),a=_(t,"b","mod");[n,a]=Ft(n,a);let r={a:n,b:a};return O.runKernel(go,r)}var fw=L({mod_:C3});function _3(e,t=null,n=!1){e=_(e,"x","moments");let a=$a(t,e.shape),r=Et(e,a,n),s=r.shape;n||(s=mi(r.shape,a));let i=lt(pe(se(e,"float32"),W(r,s))),o=Et(i,a,n);return{mean:r,variance:o}}var pd=L({moments_:_3});function E3(e,t,n,a){let r=_(t,"data","multiRNNCell"),s=fc(n,"c","multiRNNCell"),i=fc(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(Tu,o,l);return i===1?W(u,[u.size]):u}var FN=L({multinomial_:A3});function F3(e,t){let n=_(e,"a","notEqual","string_or_numeric"),a=_(t,"b","notEqual","string_or_numeric");[n,a]=Ft(n,a),ut(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(_u,r)}var fi=L({notEqual_:F3});function $3(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(yo,s,i)}var Ml=L({oneHot_:$3});function D3(e){let t={x:_(e,"x","onesLike")};return O.runKernel($u,t)}var na=L({onesLike_:D3});function R3(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 $e(r,s)}var $N=L({outerProduct_:R3});function M3(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(xo,s,r)}var xa=L({pad_:M3});function P3(e,t,n=0){return A(t.length===2,()=>"Invalid number of paddings. Must be length of 2."),xa(e,[t],n)}var DN=L({pad1d_:P3});function O3(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 RN=L({pad2d_:O3});function L3(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 MN=L({pad3d_:L3});function z3(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 PN=L({pad4d_:z3});function W3(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(Vu,r,s)}var cd=L({spaceToBatchND_:W3});function B3(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(dr(s,r),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${r}'`);let p=pN(l.shape,t,s,r,a),d=[p.dilationHeight,p.dilationWidth],c;a==="same"?c=U3([p.filterHeight,p.filterWidth],d):c=[[0,0],[0,0]];let h=d[0]===1&&d[1]===1,[m,f]=V3([p.inHeight,p.inWidth],d,c),g=h?a:"valid",b=h?l:cd(l,d,m),y=(n==="avg"?()=>ya(b,t,s,g,i):()=>Mt(b,t,s,g,i))(),x=h?y:rd(y,d,f);return u?W(x,[x.shape[1],x.shape[2],x.shape[3]]):x}function V3(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 U3(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 gw=L({pool_:B3});function G3(e,t){let n=_(e,"x","prelu"),a=_(t,"alpha","prelu"),r={x:n,alpha:a};return O.runKernel(wo,r)}var dd=L({prelu_:G3});function H3(e,t=null,n=!1){let a=_(e,"x","prod");a.dtype==="bool"&&(a=se(a,"int32"));let r={x:a},s={axis:t,keepDims:n};return O.runKernel(ko,r,s)}var bw=L({prod_:H3});function q3(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(Am,o,l);return{outputNestedSplits:u.slice(0,u.length-1),outputDenseValues:u[u.length-1]}}var ON=L({raggedGather_:q3});function j3(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(Fm,i);return{rtNestedSplits:o[0],rtDenseValues:o[1]}}var LN=L({raggedRange_:j3});function K3(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($m,u,p)}var zN=L({raggedTensorToTensor_:K3});function X3(e,t,n){ra(e);let a=bt(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;sVN,createVideoElement:()=>aL,encodeStrings:()=>UN,expectArrayBuffersEqual:()=>nL,expectArraysClose:()=>Z3,expectArraysEqual:()=>Q3,expectNumbersClose:()=>eL,expectPromiseToFail:()=>J3,expectValuesInRange:()=>tL,play:()=>rL,testEpsilon:()=>xw});var Y3=.001,VN=.1;function Z3(e,t,n){return n==null&&(n=xw()),Fx(e,t,(a,r)=>vw(a,r,n))}function xw(){return O.backend.floatPrecision()===32?Y3:VN}function Fx(e,t,n){let a=!0;if((tn(e)||tn(t))&&(a=!1),tn(e)&&tn(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(!Dr(i,o))throw new Error(`Arrays have different shapes. Actual: [${i}]. Expected: [${o}]`)}let r=tn(e)?e:os(e),s=tn(t)?t:os(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 L3(e,t){let n=typeof t=="string"||typeof t=="number"||typeof t=="boolean"?[t]:t;return Jr(e)||Jr(e[0])||Jr(t)||Jr(t[0])?Ix(e,n,(a,r)=>a==r):Ix(e,t,(a,r)=>dw(a,r,0))}function z3(e,t,n){if(n==null&&(n=cw()),!dw(e,t,n))throw new Error(`Numbers differ: actual === ${e}, expected === ${t}`);typeof expect!="undefined"&&expect().nothing()}function dw(e,t,n){return!isFinite(e)&&!isFinite(t)?!0:!(isNaN(e)||isNaN(t)||Math.abs(e-t)>n)}function W3(e,t,n){for(let a=0;an)throw new Error(`Value out of range:${e[a]} low: ${t}, high: ${n}`)}function B3(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 U3(e){await e.play(),"requestVideoFrameCallback"in e&&await new Promise(t=>{e.requestVideoFrameCallback(t)})}var hw=class{constructor(e,t,n,a,r){this.mean=e,this.stdDev=t,this.dtype=n,this.nextVal=NaN,this.truncated=a,this.truncated&&(this.upper=this.mean+this.stdDev*2,this.lower=this.mean-this.stdDev*2);let s=r||Math.random();this.random=pw.alea(s.toString())}nextValue(){if(!isNaN(this.nextVal)){let a=this.nextVal;return this.nextVal=NaN,a}let e,t,n=!1;for(;!n;){let a,r,s;do a=2*this.random()-1,r=2*this.random()-1,s=a*a+r*r;while(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}},G3=class{constructor(e,t,n,a){this.alpha=e,this.beta=1/t,this.dtype=n;let r=a||Math.random();this.randu=pw.alea(r.toString()),this.randn=new hw(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=pw.alea(a)}convertValue(e){return this.canReturnFloat()?e:Math.round(e)}nextValue(){return this.convertValue(this.min+this.range*this.random())}};function q3(e,t,n=1,a="float32",r){if(ra(e),n==null&&(n=1),a==null&&(a="float32"),a!=="float32"&&a!=="int32")throw new Error(`Unsupported data type ${a}`);let s=new G3(t,n,a,r),i=Le(e,a);for(let o=0;o`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`),ba(t,0)}var LN=L({reverse1d_:nL});function aL(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}.`),ba(n,t)}var zN=L({reverse2d_:aL});function rL(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}.`),ba(n,t)}var WN=L({reverse3d_:rL});function sL(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}.`),ba(n,t)}var BN=L({reverse4d_:sL});function iL(e){let t={x:_(e,"x","round")};return O.runKernel(No,t)}var Ym=L({round_:iL});function oL(e){let t={x:_(e,"x","rsqrt","float32")};return O.runKernel(To,t)}var Zm=L({rsqrt_:oL});function lL(e){let t={x:_(e,"x","selu")};return O.runKernel(Co,t)}var Jm=L({selu_:lL});function uL(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=Rt(m,u,1,"valid",i);return d?W(f,[f.shape[1],f.shape[2],f.shape[3]]):f}var Ts=L({separableConv2d_:uL});async function pL(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`),Ue(a,[t],[n])}var od=L({slice1d_:mL});function fL(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`),Ue(a,t,n)}var tf=L({slice2d_:fL});function gL(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`),Ue(a,t,n)}var Wo=L({slice3d_:gL});function bL(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`),Ue(a,t,n)}var $l=L({slice4d_:bL});function yL(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(Ro,a,r)}var Xa=L({softmax_:yL});function xL(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 ld=L({fft_:xL});function vL(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 Dl=L({ifft_:vL});function wL(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(Fl(e),[n,t]),i=W(ed(e),[n,t]),o=ba(Ue(s,[0,1],[n,t-2]),1),l=z(ba(Ue(i,[0,1],[n,t-2]),1),ve(-1)),u=Qe([s,o],1),p=Qe([i,l],1),d=W(Ar(u,p),[r[0],r[1]]);a=Dl(d)}if(a=Fl(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 nf=L({irfft_:wL});function kL(e,t,n=0){let a={x:_(e,"x","split")},r={numOrSizeSplits:t,axis:n};return O.runKernel(Bu,a,r)}var zn=L({split_:kL});function IL(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=Ue(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=Qe([e,Nt(m)],e.shape.length-1),n=t}else r=e;let s=qe(r),i=W(Ar(r,s),[a,n]),o=ld(i),l=Math.floor(n/2)+1,u=Fl(o),p=ed(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(Ar(d[0],c[0]),h)}var ud=L({rfft_:IL});function SL(e,t){let n=_(e,"a","squaredDifference"),a=_(t,"b","squaredDifference");[n,a]=Ft(n,a),ut(n.shape,a.shape);let r={a:n,b:a},s={};return O.runKernel(Mo,r,s)}var af=L({squaredDifference_:SL});function NL(e,t){let n=_(e,"x","squeeze","string_or_numeric");return W(n,bS(n.shape,t).newShape)}var Cs=L({squeeze_:NL});function TL(e,t=0){let n=dc(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(Au,a,r)}var Dt=L({stack_:TL});function CL(e,t=0){let n={x:_(e,"x","step")},a={alpha:t};return O.runKernel(vs,n,a)}var Bo=L({step_:CL});function _L(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(Gu,u,p)}var gw=L({stridedSlice_:_L});function EL(e){let t={x:_(e,"x","tan","float32")};return O.runKernel(Oo,t)}var bw=L({tan_:EL});function je(e,t){ki(e);let n=lr(e,t);if(n.length!==1)throw new Error("tensor1d() requires values to be a flat/TypedArray");return ws(e,null,n,t)}function Aa(e,t,n){if(ki(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 ws(e,t,a,n)}function pd(e,t,n){if(ki(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 ws(e,t,a,n)}function Da(e,t,n){if(ki(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 ws(e,t,a,n)}function UN(e,t,n){if(ki(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 ws(e,t,a,n)}function GN(e,t,n){if(ki(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,ws(e,t,a,n)}var rf={};Ee(rf,{calculateShapes:()=>HN,validateInput:()=>sf,validateUpdateShape:()=>yw});function yw(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;d= 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(Hu,s,i);return{values:o,indices:l}}var xw=L({topk_:FL});function $L(e,t=0,n=1,a,r){if(ra(e),a!=null&&a==="bool")throw new Error("Unsupported data type $ { dtype }");let s=new hw(t,n,a,!0,r),i=Le(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(Gc,a,r);return{values:s,indices:i}}var vw=L({unique_:DL});function RL(e,t,n){let a=_(e,"x","unsortedSegmentSum"),r=_(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(Hc,s,i)}var lf=L({unsortedSegmentSum_:RL});function ML(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(ju,a,r)}var pt=L({unstack_:ML});function jN(e,t){return jm(e,t,"right")}function ww(e,t=!0,n,a){return O.makeVariable(e,t,n,a)}function KN(e,t){let n=[];for(let s=0;s0,()=>"mask cannot be scalar"),Nn(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;fo).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=Fl(a),o=ed(a);return i=O.runKernel(_r,{x:i},s),o=O.runKernel(_r,{x:o},s),n&&(o=yt(o)),Ar(i,o)}):O.runKernel(_r,r,s)}var De=L({transpose_:LL});function zL(e,t,n,a,r=!0){let s=_(e,"v","movingAverage"),i=_(t,"x","movingAverage"),o=_(n,"decay","movingAverage");OS(s,i),A($r(s.shape,i.shape),()=>"Shape mismatch in v and x");let l=ve(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,Fr(o,d)))}return X(s,p)}var YN=L({movingAverage_:zL});function WL(e,t,n){ra(n);let a=_(e,"indices","scatterND","int32"),r=_(t,"updates","scatterND");sf(r,a,n);let s={indices:a,updates:r},i={shape:n};return O.runKernel(Ru,s,i)}var ZN=L({scatterND_:WL});function BL(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 VL(e,t,n,a=0){ra(n);let r=_(e,"sparseIndices","sparseToDense","int32"),s=_(t,"sparseValues","sparseToDense","string_or_numeric"),i=_(a,"defaultValue","sparseToDense",s.dtype);BL(r,s,n,i);let o={sparseIndices:r,sparseValues:s,defaultValue:i},l={outputShape:n};return O.runKernel(Uu,o,l)}var JN=L({sparseToDense_:VL});function UL(e,t){let n=_(t,"indices","gatherND","int32"),a={params:_(e,"x","gatherND","string_or_numeric"),indices:n};return O.runKernel(du,a)}var QN=L({gatherND_:UL});function GL(e,t){if(t==null)return e.shape.slice();if($r(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 Ce?r.clone():r;let s=GL(r,n),i=1-t,o=he(Qu(X(Ns(s,0,1,"float32",a),i)),i);return z(r,o)}var Iw=L({dropout_:HL});function Sw(e){return Math.floor(Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))))}function uf(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}`),Nn(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=yS("bool",l);for(let d=0;dg.value-f.value),p[d]=0;for(let f=0;fXL,depthwiseConv2d:()=>QL,matMul:()=>tz});function jL(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(vm,d,c)}var Nw=L({conv2DBackpropFilter_:jL});function pf(e,t,n){if(n==null||n==="linear")return e;if(n==="relu")return z(e,Bo(t));throw new Error(`Cannot compute gradient for fused activation ${n}.`)}function cf(e,t){let n=t,a=Ut(e.shape,t.shape);return a.length>0&&(n=fe(n,a)),W(n,e.shape)}function df(e,t,n,a){if(t==="linear")return e;if(t==="relu")return Ke(e);if(t==="elu")return Zu(e);if(t==="relu6")return Xm(e);if(t==="prelu")return id(e,n);if(t==="leakyrelu")return td(e,a);if(t==="sigmoid")return ma(e);throw new Error(`Unknown fused activation ${t}.`)}var hf=(e,t)=>!(e>0)||t==="linear";function KL({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",hf(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=Rt(e,t,n,a,r,s,i);return o!=null&&(T=X(T,o)),df(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(cr(n,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`);let g=Zc(h.shape,c.shape,n,s,a,i),b;o!=null&&(b=_(o,"bias","fused conv2d"),[b]=Ft(b,d),r==="NHWC"?ut(g.outShape,b.shape):(A(b.shape.length<=1,()=>`Error in fused conv2d: only supports scalar or 1-D Tensor bias for NCHW format but got the bias of rank-${b.shape.length}.`),A(b.shape.length===0||b.shape[0]===g.outChannels||b.shape[0]===1,()=>`Error in fused conv2d: bias shape (${b.shape}) is not compatible with the number of output channels (${g.outChannels})`)));let y;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)}y=_(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,F,D,$]=C,S=pf(T,D,l);A(ls(s),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`);let M=Bv(F.shape,S,E,n,a),B=Nw(F,S,E.shape,n,a),U=[M,B];if($!=null){let H=cf($,S);U.push(H)}return U},w={x:h,filter:c,bias:b,preluActivationWeights:y},I={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:p};return o==null?ur((T,C,E)=>{let F=O.runKernel(ii,w,I);return E([C,T,F]),m&&(F=W(F,[F.shape[1],F.shape[2],F.shape[3]])),{value:F,gradFunc:x}})(h,c):ur((T,C,E,F)=>{let D=O.runKernel(ii,w,I);return F([C,T,D,E]),m&&(D=W(D,[D.shape[1],D.shape[2],D.shape[3]])),{value:D,gradFunc:x}})(h,c,b)}var XL=L({fusedConv2d_:KL});function YL(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(wm,u,p)}var tT=L({depthwiseConv2dNativeBackpropFilter_:YL});function ZL(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(km,u,p);return l?W(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var nT=L({depthwiseConv2dNativeBackpropInput_:ZL});function JL({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(hf(O.state.gradientDepth,l)===!1){let I=Is(e,t,n,a,r,s,i);return o!=null&&(I=X(I,o)),df(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}'`),Tn("fused depthwiseConv2d",a,i);let f=Zc(h.shape,c.shape,n,s,a,i,!0),g;o!=null&&(g=_(o,"bias","fused conv2d"),[g]=Ft(g,d),ut(f.outShape,g.shape));let b;u!=null&&(b=_(u,"prelu weights","fused depthwiseConv2d"));let y=(I,T)=>{A(ls(s),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${s}'`);let[C,E,F,D]=T,$=pf(I,F,l),S=nT(E.shape,$,C,n,a,s,i),M=tT(E,$,C.shape,n,a,s,i);if(D!=null){let B=cf(g,$);return[S,M,B]}return[S,M]},x={x:h,filter:c,bias:g,preluActivationWeights:b},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(oi,x,w);return C([T,I,E]),m&&(E=W(E,[E.shape[1],E.shape[2],E.shape[3]])),{value:E,gradFunc:y}})(h,c):ur((I,T,C,E)=>{let F=O.runKernel(oi,x,w);return E([T,I,F,C]),m&&(F=W(F,[F.shape[1],F.shape[2],F.shape[3]])),{value:F,gradFunc:y}})(h,c,g)}var QL=L({fusedDepthwiseConv2d_:JL});function ez({a:e,b:t,transposeA:n=!1,transposeB:a=!1,bias:r,activation:s="linear",preluActivationWeights:i,leakyreluAlpha:o=.2}){if(hf(O.state.gradientDepth,s)===!1){let D=$e(e,t,n,a);return r!=null&&(D=X(D,r)),df(D,s,i,o)}let l=_(e,"a","fused matMul"),u=_(t,"b","fused matMul");[l,u]=Ft(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=bt(m),b=bt(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 y=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,[b,h,d]):W(u,[b,d,h]),I;r!=null&&(I=_(r,"bias","fused matMul"),[I]=Ft(I,l),ut(y,I.shape));let T;i!=null&&(T=_(i,"prelu weights","fused matMul"));let C=(D,$)=>{let[S,M,B,U]=$,H=pf(W(D,B.shape),B,s),j,K;if(!n&&!a?(j=$e(H,M,!1,!0),K=$e(S,H,!0,!1)):!n&&a?(j=$e(H,M,!1,!1),K=$e(H,S,!0,!1)):n&&!a?(j=$e(M,H,!1,!0),K=$e(S,H,!1,!1)):(j=$e(M,H,!0,!0),K=$e(H,S,!0,!0)),r!=null){let Z=cf(U,H);return[j,K,Z]}else return[j,K]},E={a:x,b:w,bias:I,preluActivationWeights:T},F={transposeA:n,transposeB:a,activation:s,leakyreluAlpha:o};return r==null?ur((D,$,S)=>{let M=O.runKernel(si,E,F);return S([D,$,M]),{value:W(M,y),gradFunc:C}})(x,w):ur((D,$,S,M)=>{let B=O.runKernel(si,E,F);return M([D,$,B,S]),{value:W(B,y),gradFunc:C}})(x,w,I)}var tz=L({fusedMatMul_:ez});function nz(e){return uf(e,.54,.46)}var az=L({hammingWindow_:nz});function rz(e){return uf(e,.5,.5)}var aT=L({hannWindow_:rz});function sz(e,t,n,a=!1,r=0){let s=0,i=[];for(;s+t<=e.size;)i.push(Ue(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(ru,p,d)}var uz=L({cropAndResize_:lz});function pz(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(pu,n,{})}var cz=L({flipLeftRight_:pz});function dz(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 hz=L({grayscaleToRGB_:dz});function mz(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(Xu,s,i)}var fz=L({rotateWithOffset_:mz});function tp(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 gz(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY){let s=_(e,"boxes","nonMaxSuppression","float32"),i=_(t,"scores","nonMaxSuppression","float32"),o=tp(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(Tu,{boxes:s,scores:i},l)}var bz=L({nonMaxSuppression_:gz});function yz(e,t,n){let a=xz(e,t,n),r=a<0?-(a+1):a;e.splice(r,0,t)}function xz(e,t,n){return wz(e,t,n||vz)}function vz(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 sT(e,t,n,a,r){return Tw(e,t,n,a,r,0)}function iT(e,t,n,a,r,s){return Tw(e,t,n,a,r,0,!1,s,!0)}function oT(e,t,n,a,r,s){return Tw(e,t,n,a,r,s,!0)}function Tw(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(zk);let p=s>0?-.5/s:0,d=[],c=[];for(;d.length0;){let g=u.pop(),{score:b,boxIndex:y,suppressBeginIndex:x}=g;if(b=x;--I){let T=kz(e,y,d[I]);if(T>=a){w=!0;break}if(g.score=g.score*Iz(a,p,T),g.score<=r)break}g.suppressBeginIndex=d.length,w||(g.score===b?(d.push(y),c.push(g.score)):g.score>r&&yz(u,g,zk))}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 kz(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),b=Math.min(o,d),y=Math.min(l,c),x=Math.max(b-f,0)*Math.max(y-g,0);return x/(h+m-x)}function Iz(e,t,n){let a=Math.exp(t*n*n);return n<=e?a:0}function zk(e,t){return e.score-t.score||e.score===t.score&&t.boxIndex-e.boxIndex}async function Sz(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY){let s=_(e,"boxes","nonMaxSuppressionAsync"),i=_(t,"scores","nonMaxSuppressionAsync"),o=tp(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}=sT(u,p,n,a,r);return s!==e&&s.dispose(),i!==t&&i.dispose(),je(d,"int32")}var Nz=Sz;function Tz(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=0){let i=_(e,"boxes","nonMaxSuppression"),o=_(t,"scores","nonMaxSuppression"),l=tp(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(_u,u,p);return{selectedIndices:d[0],selectedScores:d[1]}}var Cz=L({nonMaxSuppressionWithScore_:Tz});async function _z(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=0){let i=_(e,"boxes","nonMaxSuppressionAsync"),o=_(t,"scores","nonMaxSuppressionAsync"),l=tp(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}=oT(p,d,n,a,r,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:je(c,"int32"),selectedScores:je(h)}}var Ez=_z;function Az(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=!1){let i=_(e,"boxes","nonMaxSuppression"),o=_(t,"scores","nonMaxSuppression"),l=tp(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(Cu,c,h);return{selectedIndices:m[0],validOutputs:m[1]}}var Fz=L({nonMaxSuppressionPadded_:Az});async function $z(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=!1){let i=_(e,"boxes","nonMaxSuppressionAsync"),o=_(t,"scores","nonMaxSuppressionAsync"),l=tp(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}=iT(c,h,u,p,d,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:je(m,"int32"),validOutputs:ve(f,"int32")}}var Dz=$z;function Rz(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(ko,o,l);return i?W(u,[u.shape[1],u.shape[2],u.shape[3]]):u}var lT=L({resizeBilinear_:Rz});function Mz(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(wo,o,l);return i?W(u,[u.shape[1],u.shape[2],u.shape[3]]):u}var uT=L({resizeNearestNeighbor_:Mz});function Pz(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(je([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),b=z(c,o);h=X(X(f,g),b)}else h=e;if(t==="otsu"){let f=Mv(ie(Ym(h),"int32"),bn([]),256);u=Oz(f,l)}let m=n?Ss(h,u):Cn(h,u);return ie(z(m,255),"int32")}function Oz(e,t){let n=je([-1]),a=je([0]),r=je([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(qu,l,u)}var Wz=L({transform_:zz});function Bz(e,t,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),o,l;typeof t=="number"?(A(t%1===0,()=>`bandPart(): numLower must be an integer, got ${t}.`),A(t<=s,()=>`bandPart(): numLower (${t}) must not be greater than the number of rows (${s}).`),o=_(t<0?s:t,"numLower","bandPart")):(A(t.dtype==="int32",()=>"bandPart(): numLower's dtype must be an int32."),o=an(El(t,0),s,us(t,s))),typeof n=="number"?(A(n%1===0,()=>`bandPart(): numUpper must be an integer, got ${n}.`),A(n<=i,()=>`bandPart(): numUpper (${n}) must not be greater than the number of columns (${i}).`),l=_(n<0?i:n,"numUpper","bandPart")):(A(n.dtype==="int32",()=>"bandPart(): numUpper's dtype must be an int32."),l=an(El(n,0),i,us(n,i)));let u=W(fi(0,s,1,"int32"),[-1,1]),p=fi(0,i,1,"int32"),d=pe(u,p),c=Fa(Ss(d,o),Dr(d,yt(l))),h=Nt([s,i],a.dtype);return W(Dt(pt(W(a,[-1,s,i])).map(m=>an(c,m,h))),r)}var Vz=L({bandPart_:Bz});function Uz(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=>Cs(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 Wk(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]=Wk(l,t);r.push(u),s.push(p)});let i=W(Dt(r,0),e.shape),o=W(Dt(s,0),e.shape);return[i,o]}}function Wk(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=Vm(n),s=sr(e),i=Aa([[1]],[1,1]),o=sr(i),l=n>=a?a:n;for(let u=0;u{let h=Ue(s,[u,u],[n-u,1]),m=Ju(h),f=Ue(s,[u,u],[1,1]),g=an(Cn(f,0),Aa([[-1]]),Aa([[1]])),b=pe(f,z(g,m)),y=he(h,b);y.shape[0]===1?o=sr(i):o=Qe([i,Ue(y,[1,0],[y.shape[0]-1,y.shape[1]])],0);let x=yt(he($e(g,b),m)),w=Ue(s,[u,0],[n-u,a]),I=z(x,o),T=De(o);if(u===0)s=pe(w,$e(I,$e(T,w)));else{let F=pe(w,$e(I,$e(T,w)));s=Qe([Ue(s,[0,0],[u,a]),F],0)}let C=De(I),E=Ue(r,[0,u],[n,r.shape[1]-u]);if(u===0)r=pe(E,$e($e(E,o),C));else{let F=pe(E,$e($e(E,o),C));r=Qe([Ue(r,[0,0],[n,u]),F],1)}return[o,s,r]}),_e([p,d,c])}return!t&&n>a&&(r=Ue(r,[0,0],[n,a]),s=Ue(s,[0,0],[a,a])),[r,s]})}var qz=L({qr_:Hz}),kn;(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"})(kn||(kn={}));function jz(e,t,n=kn.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===kn.NONE)return s;if(n===kn.SUM)return fe(s);if(n===kn.MEAN){if(r==null)return Et(s);{let i=a.size/r.size,o=he(fe(s),fe(r));return i>1?he(o,ve(i)):o}}if(n===kn.SUM_BY_NONZERO_WEIGHTS){if(r==null)return he(fe(s),ve(a.size));{let i=z(r,Jn(a.shape)),o=ie(fe(mi(i,ve(0))),"float32");return he(fe(s),o)}}throw Error(`Unknown reduction: ${n}`)}var Rr=L({computeWeightedLoss_:jz});function Kz(e,t,n,a=kn.SUM_BY_NONZERO_WEIGHTS){let r=_(e,"labels","absoluteDifference"),s=_(t,"predictions","absoluteDifference"),i=null;n!=null&&(i=_(n,"weights","absoluteDifference")),Nn(r.shape,s.shape,"Error in absoluteDifference: ");let o=Wt(pe(r,s));return Rr(o,i,a)}var Xz=L({absoluteDifference_:Kz});function Yz(e,t,n,a,r=kn.SUM_BY_NONZERO_WEIGHTS){let s=_(e,"labels","cosineDistance"),i=_(t,"predictions","cosineDistance"),o=null;a!=null&&(o=_(a,"weights","cosineDistance")),Nn(s.shape,i.shape,"Error in cosineDistance: ");let l=ve(1),u=pe(l,fe(z(s,i),n,!0));return Rr(u,o,r)}var Zz=L({cosineDistance_:Yz});function Jz(e,t,n,a=kn.SUM_BY_NONZERO_WEIGHTS){let r=_(e,"labels","hingeLoss"),s=_(t,"predictions","hingeLoss"),i=null;n!=null&&(i=_(n,"weights","hingeLoss")),Nn(r.shape,s.shape,"Error in hingeLoss: ");let o=ve(1);r=pe(z(ve(2),r),o);let l=Ke(pe(o,z(r,s)));return Rr(l,i,a)}var Qz=L({hingeLoss_:Jz});function eW(e,t,n,a=1,r=kn.SUM_BY_NONZERO_WEIGHTS){let s=_(e,"labels","huberLoss"),i=_(t,"predictions","huberLoss"),o=null;n!=null&&(o=_(n,"weights","huberLoss")),Nn(s.shape,i.shape,"Error in huberLoss: ");let l=ve(a),u=Wt(pe(i,s)),p=us(u,l),d=pe(u,p),c=X(z(ve(.5),lt(p)),z(l,d));return Rr(c,o,r)}var tW=L({huberLoss_:eW});function nW(e,t,n,a=1e-7,r=kn.SUM_BY_NONZERO_WEIGHTS){let s=_(e,"labels","logLoss"),i=_(t,"predictions","logLoss"),o=null;n!=null&&(o=_(n,"weights","logLoss")),Nn(s.shape,i.shape,"Error in logLoss: ");let l=ve(1),u=ve(a),p=yt(z(s,ta(X(i,u)))),d=z(pe(l,s),ta(X(pe(l,i),u))),c=pe(p,d);return Rr(c,o,r)}var aW=L({logLoss_:nW});function rW(e,t,n,a=kn.SUM_BY_NONZERO_WEIGHTS){let r=_(e,"labels","meanSquaredError"),s=_(t,"predictions","meanSquaredError"),i=null;n!=null&&(i=_(n,"weights","meanSquaredError")),Nn(r.shape,s.shape,"Error in meanSquaredError: ");let o=af(r,s);return Rr(o,i,a)}var sW=L({meanSquaredError_:rW});function iW(e,t){let n=_(e,"labels","sigmoidCrossEntropyWithLogits"),a=_(t,"logits","sigmoidCrossEntropyWithLogits");Nn(n.shape,a.shape,"Error in sigmoidCrossEntropyWithLogits: ");let r=Ke(a),s=z(a,n),i=nd(yn(yt(Wt(a))));return X(pe(r,s),i)}function oW(e,t,n,a=0,r=kn.SUM_BY_NONZERO_WEIGHTS){let s=_(e,"multiClassLabels","sigmoidCrossEntropy"),i=_(t,"logits","sigmoidCrossEntropy"),o=null;if(n!=null&&(o=_(n,"weights","sigmoidCrossEntropy")),Nn(s.shape,i.shape,"Error in sigmoidCrossEntropy: "),a>0){let u=ve(a),p=ve(1),d=ve(.5);s=X(z(s,pe(p,u)),z(d,u))}let l=iW(s,i);return Rr(l,o,r)}var lW=L({sigmoidCrossEntropy_:oW});function uW(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=Hm(r,[n],!0),o=pe(ie(r,"float32"),i);s([a,o]);let l=yt(z(o,a));return{value:fe(l,[n]),gradFunc:(u,p)=>{let[d,c]=p,h=hi(u.shape,[n]);return[z(W(u,h),pe(ie(d,"float32"),yn(c))),z(W(u,h),pe(yn(c),ie(d,"float32")))]}}})(e,t)}function pW(e,t,n,a=0,r=kn.SUM_BY_NONZERO_WEIGHTS){let s=_(e,"onehotLabels","softmaxCrossEntropy"),i=_(t,"logits","softmaxCrossEntropy"),o=null;if(n!=null&&(o=_(n,"weights","softmaxCrossEntropy")),Nn(s.shape,i.shape,"Error in softmaxCrossEntropy: "),a>0){let u=ve(a),p=ve(1),d=ve(s.shape[1]);s=X(z(s,pe(p,u)),he(u,d))}let l=uW(s,i);return Rr(l,o,r)}var cW=L({softmaxCrossEntropy_:pW});function dW(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(Pc,l);return{outputIndices:u[0],outputValues:u[1],emptyRowIndicator:u[2],reverseIndexMap:u[3]}}var hW=L({sparseFillEmptyRows_:dW});function mW(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(Vu,i);return{outputIndices:o[0],outputShape:o[1]}}var fW=L({sparseReshape_:mW});function gW(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 +Expected: ${s}.`)}typeof expect!="undefined"&&expect().nothing()}function J3(e,t){e().then(()=>t.fail(),()=>t()),typeof expect!="undefined"&&expect().nothing()}function Q3(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])?Fx(e,n,(a,r)=>a==r):Fx(e,t,(a,r)=>vw(a,r,0))}function eL(e,t,n){if(n==null&&(n=xw()),!vw(e,t,n))throw new Error(`Numbers differ: actual === ${e}, expected === ${t}`);typeof expect!="undefined"&&expect().nothing()}function vw(e,t,n){return!isFinite(e)&&!isFinite(t)?!0:!(isNaN(e)||isNaN(t)||Math.abs(e-t)>n)}function tL(e,t,n){for(let a=0;an)throw new Error(`Value out of range:${e[a]} low: ${t}, high: ${n}`)}function nL(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 rL(e){await e.play(),"requestVideoFrameCallback"in e&&await new Promise(t=>{e.requestVideoFrameCallback(t)})}var ww=class{constructor(e,t,n,a,r){this.mean=e,this.stdDev=t,this.dtype=n,this.nextVal=NaN,this.truncated=a,this.truncated&&(this.upper=this.mean+this.stdDev*2,this.lower=this.mean-this.stdDev*2);let s=r||Math.random();this.random=yw.alea(s.toString())}nextValue(){if(!isNaN(this.nextVal)){let a=this.nextVal;return this.nextVal=NaN,a}let e,t,n=!1;for(;!n;){let a,r,s;do a=2*this.random()-1,r=2*this.random()-1,s=a*a+r*r;while(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}},sL=class{constructor(e,t,n,a){this.alpha=e,this.beta=1/t,this.dtype=n;let r=a||Math.random();this.randu=yw.alea(r.toString()),this.randn=new ww(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=yw.alea(a)}convertValue(e){return this.canReturnFloat()?e:Math.round(e)}nextValue(){return this.convertValue(this.min+this.range*this.random())}};function oL(e,t,n=1,a="float32",r){if(ra(e),n==null&&(n=1),a==null&&(a="float32"),a!=="float32"&&a!=="int32")throw new Error(`Unsupported data type ${a}`);let s=new sL(t,n,a,r),i=Le(e,a);for(let o=0;o`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`),ba(t,0)}var jN=L({reverse1d_:bL});function yL(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}.`),ba(n,t)}var KN=L({reverse2d_:yL});function xL(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}.`),ba(n,t)}var XN=L({reverse3d_:xL});function vL(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}.`),ba(n,t)}var YN=L({reverse4d_:vL});function wL(e){let t={x:_(e,"x","round")};return O.runKernel(Eo,t)}var Zm=L({round_:wL});function kL(e){let t={x:_(e,"x","rsqrt","float32")};return O.runKernel(Ao,t)}var Jm=L({rsqrt_:kL});function IL(e){let t={x:_(e,"x","selu")};return O.runKernel(Fo,t)}var Qm=L({selu_:IL});function SL(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=Ss(p,l,a,r,i,s),f=Rt(m,u,1,"valid",i);return d?W(f,[f.shape[1],f.shape[2],f.shape[3]]):f}var Cs=L({separableConv2d_:SL});async function NL(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`),Ue(a,[t],[n])}var hd=L({slice1d_:EL});function AL(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`),Ue(a,t,n)}var nf=L({slice2d_:AL});function FL(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`),Ue(a,t,n)}var Ho=L({slice3d_:FL});function $L(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`),Ue(a,t,n)}var Ol=L({slice4d_:$L});function DL(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(zo,a,r)}var Xa=L({softmax_:DL});function RL(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(Cm,t)}var md=L({fft_:RL});function ML(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(_m,t)}var Ll=L({ifft_:ML});function PL(e){let t=e.shape[e.shape.length-1],n=e.size/t,a;if(t<=2){let r=W(e,[n,t]);a=Ll(r)}else{let r=[n,2*(t-1)],s=W(Pl(e),[n,t]),i=W(id(e),[n,t]),o=ba(Ue(s,[0,1],[n,t-2]),1),l=z(ba(Ue(i,[0,1],[n,t-2]),1),ve(-1)),u=et([s,o],1),p=et([i,l],1),d=W(Fr(u,p),[r[0],r[1]]);a=Ll(d)}if(a=Pl(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 af=L({irfft_:PL});function OL(e,t,n=0){let a={x:_(e,"x","split")},r={numOrSizeSplits:t,axis:n};return O.runKernel(Uu,a,r)}var zn=L({split_:OL});function LL(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=Ue(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=et([e,Nt(m)],e.shape.length-1),n=t}else r=e;let s=qe(r),i=W(Fr(r,s),[a,n]),o=md(i),l=Math.floor(n/2)+1,u=Pl(o),p=id(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 fd=L({rfft_:LL});function zL(e,t){let n=_(e,"a","squaredDifference"),a=_(t,"b","squaredDifference");[n,a]=Ft(n,a),ut(n.shape,a.shape);let r={a:n,b:a},s={};return O.runKernel(Wo,r,s)}var rf=L({squaredDifference_:zL});function WL(e,t){let n=_(e,"x","squeeze","string_or_numeric");return W(n,TS(n.shape,t).newShape)}var _s=L({squeeze_:WL});function BL(e,t=0){let n=fc(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(Du,a,r)}var Dt=L({stack_:BL});function VL(e,t=0){let n={x:_(e,"x","step")},a={alpha:t};return O.runKernel(ws,n,a)}var qo=L({step_:VL});function UL(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(qu,u,p)}var Sw=L({stridedSlice_:UL});function GL(e){let t={x:_(e,"x","tan","float32")};return O.runKernel(Vo,t)}var Nw=L({tan_:GL});function je(e,t){Si(e);let n=lr(e,t);if(n.length!==1)throw new Error("tensor1d() requires values to be a flat/TypedArray");return ks(e,null,n,t)}function Aa(e,t,n){if(Si(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 ks(e,t,a,n)}function gd(e,t,n){if(Si(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 ks(e,t,a,n)}function Da(e,t,n){if(Si(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 ks(e,t,a,n)}function JN(e,t,n){if(Si(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 ks(e,t,a,n)}function QN(e,t,n){if(Si(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,ks(e,t,a,n)}var sf={};Ee(sf,{calculateShapes:()=>eT,validateInput:()=>of,validateUpdateShape:()=>Tw});function Tw(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;d= 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(ju,s,i);return{values:o,indices:l}}var Cw=L({topk_:qL});function jL(e,t=0,n=1,a,r){if(ra(e),a!=null&&a==="bool")throw new Error("Unsupported data type $ { dtype }");let s=new ww(t,n,a,!0,r),i=Le(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(Yc,a,r);return{values:s,indices:i}}var _w=L({unique_:KL});function XL(e,t,n){let a=_(e,"x","unsortedSegmentSum"),r=_(t,"segmentIds","unsortedSegmentSum","int32");A(El(n),()=>"numSegments must be of dtype int");let s={x:a,segmentIds:r},i={numSegments:n};return O.runKernel(Zc,s,i)}var uf=L({unsortedSegmentSum_:XL});function YL(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(Xu,a,r)}var pt=L({unstack_:YL});function nT(e,t){return Km(e,t,"right")}function Ew(e,t=!0,n,a){return O.makeVariable(e,t,n,a)}function aT(e,t){let n=[];for(let s=0;s0,()=>"mask cannot be scalar"),Nn(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;fo).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=Pl(a),o=id(a);return i=O.runKernel(Er,{x:i},s),o=O.runKernel(Er,{x:o},s),n&&(o=yt(o)),Fr(i,o)}):O.runKernel(Er,r,s)}var De=L({transpose_:QL});function ez(e,t,n,a,r=!0){let s=_(e,"v","movingAverage"),i=_(t,"x","movingAverage"),o=_(n,"decay","movingAverage");qS(s,i),A(Dr(s.shape,i.shape),()=>"Shape mismatch in v and x");let l=ve(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 X(s,p)}var sT=L({movingAverage_:ez});function tz(e,t,n){ra(n);let a=_(e,"indices","scatterND","int32"),r=_(t,"updates","scatterND");of(r,a,n);let s={indices:a,updates:r},i={shape:n};return O.runKernel(Ou,s,i)}var iT=L({scatterND_:tz});function nz(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 az(e,t,n,a=0){ra(n);let r=_(e,"sparseIndices","sparseToDense","int32"),s=_(t,"sparseValues","sparseToDense","string_or_numeric"),i=_(a,"defaultValue","sparseToDense",s.dtype);nz(r,s,n,i);let o={sparseIndices:r,sparseValues:s,defaultValue:i},l={outputShape:n};return O.runKernel(Hu,o,l)}var oT=L({sparseToDense_:az});function rz(e,t){let n=_(t,"indices","gatherND","int32"),a={params:_(e,"x","gatherND","string_or_numeric"),indices:n};return O.runKernel(gu,a)}var lT=L({gatherND_:rz});function sz(e,t){if(t==null)return e.shape.slice();if(Dr(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=sz(r,n),i=1-t,o=he(tp(X(Ts(s,0,1,"float32",a),i)),i);return z(r,o)}var Fw=L({dropout_:iz});function $w(e){return Math.floor(Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))))}function pf(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}`),Nn(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=CS("bool",l);for(let d=0;dg.value-f.value),p[d]=0;for(let f=0;fpz,depthwiseConv2d:()=>mz,matMul:()=>gz});function lz(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(Im,d,c)}var Dw=L({conv2DBackpropFilter_:lz});function cf(e,t,n){if(n==null||n==="linear")return e;if(n==="relu")return z(e,qo(t));throw new Error(`Cannot compute gradient for fused activation ${n}.`)}function df(e,t){let n=t,a=Ut(e.shape,t.shape);return a.length>0&&(n=fe(n,a)),W(n,e.shape)}function hf(e,t,n,a){if(t==="linear")return e;if(t==="relu")return Ke(e);if(t==="elu")return Qu(e);if(t==="relu6")return Ym(e);if(t==="prelu")return dd(e,n);if(t==="leakyrelu")return od(e,a);if(t==="sigmoid")return ma(e);throw new Error(`Unknown fused activation ${t}.`)}var mf=(e,t)=>!(e>0)||t==="linear";function uz({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",mf(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=Rt(e,t,n,a,r,s,i);return o!=null&&(T=X(T,o)),hf(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(dr(n,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`);let g=ad(h.shape,c.shape,n,s,a,i),b;o!=null&&(b=_(o,"bias","fused conv2d"),[b]=Ft(b,d),r==="NHWC"?ut(g.outShape,b.shape):(A(b.shape.length<=1,()=>`Error in fused conv2d: only supports scalar or 1-D Tensor bias for NCHW format but got the bias of rank-${b.shape.length}.`),A(b.shape.length===0||b.shape[0]===g.outChannels||b.shape[0]===1,()=>`Error in fused conv2d: bias shape (${b.shape}) is not compatible with the number of output channels (${g.outChannels})`)));let y;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)}y=_(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,F,D,$]=C,S=cf(T,D,l);A(us(s),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`);let M=Xv(F.shape,S,E,n,a),B=Dw(F,S,E.shape,n,a),U=[M,B];if($!=null){let H=df($,S);U.push(H)}return U},v={x:h,filter:c,bias:b,preluActivationWeights:y},I={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:p};return o==null?ur((T,C,E)=>{let F=O.runKernel(oi,v,I);return E([C,T,F]),m&&(F=W(F,[F.shape[1],F.shape[2],F.shape[3]])),{value:F,gradFunc:x}})(h,c):ur((T,C,E,F)=>{let D=O.runKernel(oi,v,I);return F([C,T,D,E]),m&&(D=W(D,[D.shape[1],D.shape[2],D.shape[3]])),{value:D,gradFunc:x}})(h,c,b)}var pz=L({fusedConv2d_:uz});function cz(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 pT=L({depthwiseConv2dNativeBackpropFilter_:cz});function dz(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(Nm,u,p);return l?W(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var cT=L({depthwiseConv2dNativeBackpropInput_:dz});function hz({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(mf(O.state.gradientDepth,l)===!1){let I=Ss(e,t,n,a,r,s,i);return o!=null&&(I=X(I,o)),hf(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(dr(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=ad(h.shape,c.shape,n,s,a,i,!0),g;o!=null&&(g=_(o,"bias","fused conv2d"),[g]=Ft(g,d),ut(f.outShape,g.shape));let b;u!=null&&(b=_(u,"prelu weights","fused depthwiseConv2d"));let y=(I,T)=>{A(us(s),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${s}'`);let[C,E,F,D]=T,$=cf(I,F,l),S=cT(E.shape,$,C,n,a,s,i),M=pT(E,$,C.shape,n,a,s,i);if(D!=null){let B=df(g,$);return[S,M,B]}return[S,M]},x={x:h,filter:c,bias:g,preluActivationWeights:b},v={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(li,x,v);return C([T,I,E]),m&&(E=W(E,[E.shape[1],E.shape[2],E.shape[3]])),{value:E,gradFunc:y}})(h,c):ur((I,T,C,E)=>{let F=O.runKernel(li,x,v);return E([T,I,F,C]),m&&(F=W(F,[F.shape[1],F.shape[2],F.shape[3]])),{value:F,gradFunc:y}})(h,c,g)}var mz=L({fusedDepthwiseConv2d_:hz});function fz({a:e,b:t,transposeA:n=!1,transposeB:a=!1,bias:r,activation:s="linear",preluActivationWeights:i,leakyreluAlpha:o=.2}){if(mf(O.state.gradientDepth,s)===!1){let D=$e(e,t,n,a);return r!=null&&(D=X(D,r)),hf(D,s,i,o)}let l=_(e,"a","fused matMul"),u=_(t,"b","fused matMul");[l,u]=Ft(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=bt(m),b=bt(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 y=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]),v=a?W(u,[b,h,d]):W(u,[b,d,h]),I;r!=null&&(I=_(r,"bias","fused matMul"),[I]=Ft(I,l),ut(y,I.shape));let T;i!=null&&(T=_(i,"prelu weights","fused matMul"));let C=(D,$)=>{let[S,M,B,U]=$,H=cf(W(D,B.shape),B,s),j,K;if(!n&&!a?(j=$e(H,M,!1,!0),K=$e(S,H,!0,!1)):!n&&a?(j=$e(H,M,!1,!1),K=$e(H,S,!0,!1)):n&&!a?(j=$e(M,H,!1,!0),K=$e(S,H,!1,!1)):(j=$e(M,H,!0,!0),K=$e(H,S,!0,!0)),r!=null){let Z=df(U,H);return[j,K,Z]}else return[j,K]},E={a:x,b:v,bias:I,preluActivationWeights:T},F={transposeA:n,transposeB:a,activation:s,leakyreluAlpha:o};return r==null?ur((D,$,S)=>{let M=O.runKernel(ii,E,F);return S([D,$,M]),{value:W(M,y),gradFunc:C}})(x,v):ur((D,$,S,M)=>{let B=O.runKernel(ii,E,F);return M([D,$,B,S]),{value:W(B,y),gradFunc:C}})(x,v,I)}var gz=L({fusedMatMul_:fz});function bz(e){return pf(e,.54,.46)}var yz=L({hammingWindow_:bz});function xz(e){return pf(e,.5,.5)}var dT=L({hannWindow_:xz});function vz(e,t,n,a=!1,r=0){let s=0,i=[];for(;s+t<=e.size;)i.push(Ue(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(uu,p,d)}var Sz=L({cropAndResize_:Iz});function Nz(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(mu,n,{})}var Tz=L({flipLeftRight_:Nz});function Cz(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 _z=L({grayscaleToRGB_:Cz});function Ez(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(Zu,s,i)}var Az=L({rotateWithOffset_:Ez});function ap(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 Fz(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY){let s=_(e,"boxes","nonMaxSuppression","float32"),i=_(t,"scores","nonMaxSuppression","float32"),o=ap(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(Eu,{boxes:s,scores:i},l)}var $z=L({nonMaxSuppression_:Fz});function Dz(e,t,n){let a=Rz(e,t,n),r=a<0?-(a+1):a;e.splice(r,0,t)}function Rz(e,t,n){return Pz(e,t,n||Mz)}function Mz(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 mT(e,t,n,a,r){return Rw(e,t,n,a,r,0)}function fT(e,t,n,a,r,s){return Rw(e,t,n,a,r,0,!1,s,!0)}function gT(e,t,n,a,r,s){return Rw(e,t,n,a,r,s,!0)}function Rw(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(jk);let p=s>0?-.5/s:0,d=[],c=[];for(;d.length0;){let g=u.pop(),{score:b,boxIndex:y,suppressBeginIndex:x}=g;if(b=x;--I){let T=Oz(e,y,d[I]);if(T>=a){v=!0;break}if(g.score=g.score*Lz(a,p,T),g.score<=r)break}g.suppressBeginIndex=d.length,v||(g.score===b?(d.push(y),c.push(g.score)):g.score>r&&Dz(u,g,jk))}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 Oz(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),b=Math.min(o,d),y=Math.min(l,c),x=Math.max(b-f,0)*Math.max(y-g,0);return x/(h+m-x)}function Lz(e,t,n){let a=Math.exp(t*n*n);return n<=e?a:0}function jk(e,t){return e.score-t.score||e.score===t.score&&t.boxIndex-e.boxIndex}async function zz(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY){let s=_(e,"boxes","nonMaxSuppressionAsync"),i=_(t,"scores","nonMaxSuppressionAsync"),o=ap(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}=mT(u,p,n,a,r);return s!==e&&s.dispose(),i!==t&&i.dispose(),je(d,"int32")}var Wz=zz;function Bz(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=0){let i=_(e,"boxes","nonMaxSuppression"),o=_(t,"scores","nonMaxSuppression"),l=ap(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(Fu,u,p);return{selectedIndices:d[0],selectedScores:d[1]}}var Vz=L({nonMaxSuppressionWithScore_:Bz});async function Uz(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=0){let i=_(e,"boxes","nonMaxSuppressionAsync"),o=_(t,"scores","nonMaxSuppressionAsync"),l=ap(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}=gT(p,d,n,a,r,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:je(c,"int32"),selectedScores:je(h)}}var Gz=Uz;function Hz(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=!1){let i=_(e,"boxes","nonMaxSuppression"),o=_(t,"scores","nonMaxSuppression"),l=ap(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 qz=L({nonMaxSuppressionPadded_:Hz});async function jz(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=!1){let i=_(e,"boxes","nonMaxSuppressionAsync"),o=_(t,"scores","nonMaxSuppressionAsync"),l=ap(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}=fT(c,h,u,p,d,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:je(m,"int32"),validOutputs:ve(f,"int32")}}var Kz=jz;function Xz(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(To,o,l);return i?W(u,[u.shape[1],u.shape[2],u.shape[3]]):u}var bT=L({resizeBilinear_:Xz});function Yz(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(No,o,l);return i?W(u,[u.shape[1],u.shape[2],u.shape[3]]):u}var yT=L({resizeNearestNeighbor_:Yz});function Zz(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(je([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),b=z(c,o);h=X(X(f,g),b)}else h=e;if(t==="otsu"){let f=Uv(se(Zm(h),"int32"),bn([]),256);u=Jz(f,l)}let m=n?Ns(h,u):Cn(h,u);return se(z(m,255),"int32")}function Jz(e,t){let n=je([-1]),a=je([0]),r=je([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 tW=L({transform_:eW});function nW(e,t,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),o,l;typeof t=="number"?(A(t%1===0,()=>`bandPart(): numLower must be an integer, got ${t}.`),A(t<=s,()=>`bandPart(): numLower (${t}) must not be greater than the number of rows (${s}).`),o=_(t<0?s:t,"numLower","bandPart")):(A(t.dtype==="int32",()=>"bandPart(): numLower's dtype must be an int32."),o=rn(Rl(t,0),s,ps(t,s))),typeof n=="number"?(A(n%1===0,()=>`bandPart(): numUpper must be an integer, got ${n}.`),A(n<=i,()=>`bandPart(): numUpper (${n}) must not be greater than the number of columns (${i}).`),l=_(n<0?i:n,"numUpper","bandPart")):(A(n.dtype==="int32",()=>"bandPart(): numUpper's dtype must be an int32."),l=rn(Rl(n,0),i,ps(n,i)));let u=W(gi(0,s,1,"int32"),[-1,1]),p=gi(0,i,1,"int32"),d=pe(u,p),c=Fa(Ns(d,o),Rr(d,yt(l))),h=Nt([s,i],a.dtype);return W(Dt(pt(W(a,[-1,s,i])).map(m=>rn(c,m,h))),r)}var aW=L({bandPart_:nW});function rW(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=>_s(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(Dt(r,0),e.shape),o=W(Dt(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=Um(n),s=sr(e),i=Aa([[1]],[1,1]),o=sr(i),l=n>=a?a:n;for(let u=0;u{let h=Ue(s,[u,u],[n-u,1]),m=ep(h),f=Ue(s,[u,u],[1,1]),g=rn(Cn(f,0),Aa([[-1]]),Aa([[1]])),b=pe(f,z(g,m)),y=he(h,b);y.shape[0]===1?o=sr(i):o=et([i,Ue(y,[1,0],[y.shape[0]-1,y.shape[1]])],0);let x=yt(he($e(g,b),m)),v=Ue(s,[u,0],[n-u,a]),I=z(x,o),T=De(o);if(u===0)s=pe(v,$e(I,$e(T,v)));else{let F=pe(v,$e(I,$e(T,v)));s=et([Ue(s,[0,0],[u,a]),F],0)}let C=De(I),E=Ue(r,[0,u],[n,r.shape[1]-u]);if(u===0)r=pe(E,$e($e(E,o),C));else{let F=pe(E,$e($e(E,o),C));r=et([Ue(r,[0,0],[n,u]),F],1)}return[o,s,r]}),_e([p,d,c])}return!t&&n>a&&(r=Ue(r,[0,0],[n,a]),s=Ue(s,[0,0],[a,a])),[r,s]})}var oW=L({qr_:iW}),kn;(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"})(kn||(kn={}));function lW(e,t,n=kn.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===kn.NONE)return s;if(n===kn.SUM)return fe(s);if(n===kn.MEAN){if(r==null)return Et(s);{let i=a.size/r.size,o=he(fe(s),fe(r));return i>1?he(o,ve(i)):o}}if(n===kn.SUM_BY_NONZERO_WEIGHTS){if(r==null)return he(fe(s),ve(a.size));{let i=z(r,Jn(a.shape)),o=se(fe(fi(i,ve(0))),"float32");return he(fe(s),o)}}throw Error(`Unknown reduction: ${n}`)}var Mr=L({computeWeightedLoss_:lW});function uW(e,t,n,a=kn.SUM_BY_NONZERO_WEIGHTS){let r=_(e,"labels","absoluteDifference"),s=_(t,"predictions","absoluteDifference"),i=null;n!=null&&(i=_(n,"weights","absoluteDifference")),Nn(r.shape,s.shape,"Error in absoluteDifference: ");let o=Wt(pe(r,s));return Mr(o,i,a)}var pW=L({absoluteDifference_:uW});function cW(e,t,n,a,r=kn.SUM_BY_NONZERO_WEIGHTS){let s=_(e,"labels","cosineDistance"),i=_(t,"predictions","cosineDistance"),o=null;a!=null&&(o=_(a,"weights","cosineDistance")),Nn(s.shape,i.shape,"Error in cosineDistance: ");let l=ve(1),u=pe(l,fe(z(s,i),n,!0));return Mr(u,o,r)}var dW=L({cosineDistance_:cW});function hW(e,t,n,a=kn.SUM_BY_NONZERO_WEIGHTS){let r=_(e,"labels","hingeLoss"),s=_(t,"predictions","hingeLoss"),i=null;n!=null&&(i=_(n,"weights","hingeLoss")),Nn(r.shape,s.shape,"Error in hingeLoss: ");let o=ve(1);r=pe(z(ve(2),r),o);let l=Ke(pe(o,z(r,s)));return Mr(l,i,a)}var mW=L({hingeLoss_:hW});function fW(e,t,n,a=1,r=kn.SUM_BY_NONZERO_WEIGHTS){let s=_(e,"labels","huberLoss"),i=_(t,"predictions","huberLoss"),o=null;n!=null&&(o=_(n,"weights","huberLoss")),Nn(s.shape,i.shape,"Error in huberLoss: ");let l=ve(a),u=Wt(pe(i,s)),p=ps(u,l),d=pe(u,p),c=X(z(ve(.5),lt(p)),z(l,d));return Mr(c,o,r)}var gW=L({huberLoss_:fW});function bW(e,t,n,a=1e-7,r=kn.SUM_BY_NONZERO_WEIGHTS){let s=_(e,"labels","logLoss"),i=_(t,"predictions","logLoss"),o=null;n!=null&&(o=_(n,"weights","logLoss")),Nn(s.shape,i.shape,"Error in logLoss: ");let l=ve(1),u=ve(a),p=yt(z(s,ta(X(i,u)))),d=z(pe(l,s),ta(X(pe(l,i),u))),c=pe(p,d);return Mr(c,o,r)}var yW=L({logLoss_:bW});function xW(e,t,n,a=kn.SUM_BY_NONZERO_WEIGHTS){let r=_(e,"labels","meanSquaredError"),s=_(t,"predictions","meanSquaredError"),i=null;n!=null&&(i=_(n,"weights","meanSquaredError")),Nn(r.shape,s.shape,"Error in meanSquaredError: ");let o=rf(r,s);return Mr(o,i,a)}var vW=L({meanSquaredError_:xW});function wW(e,t){let n=_(e,"labels","sigmoidCrossEntropyWithLogits"),a=_(t,"logits","sigmoidCrossEntropyWithLogits");Nn(n.shape,a.shape,"Error in sigmoidCrossEntropyWithLogits: ");let r=Ke(a),s=z(a,n),i=ld(yn(yt(Wt(a))));return X(pe(r,s),i)}function kW(e,t,n,a=0,r=kn.SUM_BY_NONZERO_WEIGHTS){let s=_(e,"multiClassLabels","sigmoidCrossEntropy"),i=_(t,"logits","sigmoidCrossEntropy"),o=null;if(n!=null&&(o=_(n,"weights","sigmoidCrossEntropy")),Nn(s.shape,i.shape,"Error in sigmoidCrossEntropy: "),a>0){let u=ve(a),p=ve(1),d=ve(.5);s=X(z(s,pe(p,u)),z(d,u))}let l=wW(s,i);return Mr(l,o,r)}var IW=L({sigmoidCrossEntropy_:kW});function SW(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=qm(r,[n],!0),o=pe(se(r,"float32"),i);s([a,o]);let l=yt(z(o,a));return{value:fe(l,[n]),gradFunc:(u,p)=>{let[d,c]=p,h=mi(u.shape,[n]);return[z(W(u,h),pe(se(d,"float32"),yn(c))),z(W(u,h),pe(yn(c),se(d,"float32")))]}}})(e,t)}function NW(e,t,n,a=0,r=kn.SUM_BY_NONZERO_WEIGHTS){let s=_(e,"onehotLabels","softmaxCrossEntropy"),i=_(t,"logits","softmaxCrossEntropy"),o=null;if(n!=null&&(o=_(n,"weights","softmaxCrossEntropy")),Nn(s.shape,i.shape,"Error in softmaxCrossEntropy: "),a>0){let u=ve(a),p=ve(1),d=ve(s.shape[1]);s=X(z(s,pe(p,u)),he(u,d))}let l=SW(s,i);return Mr(l,o,r)}var TW=L({softmaxCrossEntropy_:NW});function CW(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 _W=L({sparseFillEmptyRows_:CW});function EW(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(Gu,i);return{outputIndices:o[0],outputShape:o[1]}}var AW=L({sparseReshape_:EW});function FW(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 ${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(Oc,i)}var bW=L({sparseSegmentMean_:gW});function yW(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(Uc,i)}var $W=L({sparseSegmentMean_:FW});function DW(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 ${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(Lc,i)}var xW=L({sparseSegmentSum_:yW});function vW(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 wW=L({stringNGrams_:vW});function kW(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(Vc,i,s);return{indices:o[0],values:o[1],shape:o[2]}}var IW=L({stringSplit_:kW});function SW(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(Uc,r,a)}var NW=L({stringToHashBucketFast_:SW});function TW(e,t,n,a=!0){let r=_(e,"input","staticRegexReplace","string"),s={pattern:t,rewrite:n,replaceGlobal:a};return O.runKernel(Wc,{x:r},s)}var CW=L({staticRegexReplace_:TW}),pT={fft:ld,ifft:Dl,rfft:ud,irfft:nf},cT={hammingWindow:az,hannWindow:aT,frame:rT,stft:oz},Qn={flipLeftRight:cz,grayscaleToRGB:hz,resizeNearestNeighbor:uT,resizeBilinear:lT,rotateWithOffset:fz,cropAndResize:uz,nonMaxSuppression:bz,nonMaxSuppressionAsync:Nz,nonMaxSuppressionWithScore:Cz,nonMaxSuppressionWithScoreAsync:Ez,nonMaxSuppressionPadded:Fz,nonMaxSuppressionPaddedAsync:Dz,threshold:Lz,transform:Wz},Cw={bandPart:Vz,gramSchmidt:Gz,qr:qz},dT={absoluteDifference:Xz,computeWeightedLoss:Rr,cosineDistance:Zz,hingeLoss:Qz,huberLoss:tW,logLoss:aW,meanSquaredError:sW,sigmoidCrossEntropy:lW,softmaxCrossEntropy:cW},hT={sparseFillEmptyRows:hW,sparseReshape:fW,sparseSegmentMean:bW,sparseSegmentSum:xW},mT={stringNGrams:wW,stringSplit:IW,stringToHashBucketFast:NW,staticRegexReplace:CW},ne={};Ee(ne,{Serializable:()=>fT,SerializationMap:()=>Xs,registerClass:()=>gT});var fT=class{getClassName(){return this.constructor.className}static fromConfig(e,t){return new e(t)}},Xs=class{constructor(){this.classNameMap={}}static getMap(){return Xs.instance==null&&(Xs.instance=new Xs),Xs.instance}static register(e){Xs.getMap().classNameMap[e.className]=[e,e.fromConfig]}};function gT(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."),Xs.register(e)}var Mr=class extends fT{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 bN(e,t)}dispose(){this.iterations_!=null&&_e(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:"iter",tensor:ve(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(Mr,Symbol.hasInstance,{value:e=>e.minimize!=null&&e.computeGradients!=null&&e.applyGradients!=null});var _w=class extends Mr{static get className(){return"Adadelta"}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=X(z(i,this.rho),z(lt(s),1-this.rho)),u=z(he(hn(X(o,this.epsilon)),hn(X(i,this.epsilon))),s),p=X(z(o,this.rho),z(lt(u),1-this.rho));i.assign(l),o.assign(p);let d=X(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)}},Ew=class extends Mr{static get className(){return"Adagrad"}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(()=>xn(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=X(s,lt(r));s.assign(i);let o=X(z(he(r,hn(X(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)}},Aw=class extends Mr{static get className(){return"Adam"}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=ve(t).variable(),this.accBeta2=ve(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=X(z(u,this.beta1),z(l,1-this.beta1)),c=X(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=X(z(he(h,X(hn(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(Fr(this.beta1,this.iterations_+1)),this.accBeta2.assign(Fr(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)}},Fw=class extends Mr{static get className(){return"Adamax"}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=ve(0).variable(),this.accBeta1=ve(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,X(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=X(z(u,this.beta1),z(l,1-this.beta1)),c=z(p,this.beta2),h=Wt(l),m=dr(c,h);u.assign(d),p.assign(m);let f=X(z(he(a,n),he(d,X(m,this.epsilon))),i);i.assign(f)}),this.iteration.assign(X(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)}},mf=class extends Mr{static get className(){return"SGD"}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=X(z(this.c,a),r);r.assign(s)})}),this.incrementIterations()}setLearningRate(e){this.learningRate=e,this.c!=null&&this.c.dispose(),this.c=Ht(ve(-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)}},$w=class extends mf{static get className(){return"Momentum"}constructor(e,t,n=!1){super(e),this.learningRate=e,this.momentum=t,this.useNesterov=n,this.accumulations=[],this.m=ve(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=X(z(this.m,r),s);this.useNesterov?i=X(z(this.c,X(s,z(o,this.m))),a):i=X(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)}},Dw=class extends Mr{static get className(){return"RMSProp"}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=X(z(i,this.decay),z(lt(s),1-this.decay));if(this.centered){let u=this.accumulatedMeanGrads[n].variable,p=X(z(u,this.decay),z(s,1-this.decay)),d=he(z(s,this.learningRate),hn(pe(l,X(lt(p),this.epsilon)))),c=X(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=X(z(i,this.decay),z(lt(s),1-this.decay)),p=X(z(o,this.momentum),he(z(s,this.learningRate),hn(X(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)}},_W=[_w,Ew,Aw,Fw,$w,Dw,mf];function EW(){for(let e of _W)gT(e)}var qt={};Ee(qt,{browserFiles:()=>PW,browserHTTPRequest:()=>UW,concatenateArrayBuffers:()=>yv,copyModel:()=>EM,decodeWeights:()=>VS,encodeWeights:()=>rM,fromMemory:()=>HW,fromMemorySync:()=>wT,getLoadHandlers:()=>fM,getModelArtifactsForJSON:()=>xv,getModelArtifactsForJSONSync:()=>GS,getModelArtifactsInfoForJSON:()=>Yc,getSaveHandlers:()=>mM,getWeightSpecs:()=>HS,http:()=>Mw,isHTTPScheme:()=>Sx,listModels:()=>CM,loadWeights:()=>zW,moveModel:()=>AM,registerLoadRouter:()=>hM,registerSaveRouter:()=>dM,removeModel:()=>_M,weightsLoaderFactory:()=>yT,withSaveHandler:()=>qW,withSaveHandlerSync:()=>jW});var AW="model",FW=".json",$W=".weights.bin";function Bk(e){return new Promise(t=>setTimeout(t)).then(e)}var Ml=class{constructor(e){if(!G().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");e.startsWith(Ml.URL_SCHEME)&&(e=e.slice(Ml.URL_SCHEME.length)),(e==null||e.length===0)&&(e=AW),this.modelJsonFileName=e+FW,this.weightDataFileName=e+$W}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=US(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:Yc(e)}}}};Ml.URL_SCHEME="downloads://";var DW=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=xv(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,yv(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=>Lk(r.name)),a={};for(let r of e)r.paths.forEach(s=>{let i=Lk(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}},RW=e=>G().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(Ml.URL_SCHEME)?MW(e.slice(Ml.URL_SCHEME.length)):null;$t.registerSaveRouter(RW);function MW(e="model"){return new Ml(e)}function PW(e){return new DW(e)}var OW=class{constructor(e){if(this.shards=[],this.previousShardIndex=0,e instanceof Array||(e=[e]),e=e.map(n=>en(n)?n.buffer:n),e.length===0)return;this.bufferUniformSize=e[0].byteLength;let t=0;for(let n=0;n=this.byteLength)return-1;if(this.bufferUniformSize!=null)return this.previousShardIndex=Math.floor(e/this.bufferUniformSize),this.previousShardIndex;function t(a){return e=a.end?1:0}if(t(this.shards[this.previousShardIndex])===0)return this.previousShardIndex;let n=LW(this.shards,t);return n===-1?-1:(this.previousShardIndex=n,this.previousShardIndex)}};function LW(e,t){let n=0,a=e.length;for(;n<=a;){let r=Math.floor((a-n)/2)+n,s=t(e[r]);if(s===0)return r;s<0?a=r:n=r+1}return-1}function Vk(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 bT(e,t){t==null&&(t={});let n=t.fetchFunc==null?G().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 Vk(a,t.onProgress,r,s)).map(u=>u.arrayBuffer()),o=.5,l=1;return t.onProgress==null?await Promise.all(i):await Vk(i,t.onProgress,o,l)}async function zW(e,t="",n,a){return yT(r=>bT(r,{requestInit:a}))(e,t,n)}function yT(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 b="quantization"in g?g.quantization.dtype:g.dtype,y=yx[b]*bt(g.shape),x=()=>{r[m]=!0,s[m]==null&&(s[m]=[]),s[m].push({manifestEntry:g,groupOffset:f,sizeBytes:y})};a!=null?a.forEach((w,I)=>{w===g.name&&(x(),i[I]=!0)}):x(),o.push(g.name),f+=y})}),!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=new OW(p.slice(c,c+m));s[h].forEach(g=>{let b=f.slice(g.groupOffset,g.groupOffset+g.sizeBytes),y=VS(b,[g.manifestEntry]);for(let x in y)d[x]=y[x]}),c+=m}),d}}var WW="application/octet-stream",BW="application/json",Rw=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=G().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=US(e,n);t.body.append("model.json",new Blob([JSON.stringify(a)],{type:BW}),"model.json"),e.weightData!=null&&t.body.append("model.weights.bin",new Blob([e.weightData],{type:WW}),"model.weights.bin");let r=await this.fetch(this.path,t);if(r.ok)return{modelArtifactsInfo:Yc(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 xv(t,r=>this.loadWeights(r))}async loadWeights(e){let t=Array.isArray(this.path)?this.path[1]:this.path,[n,a]=VW(t),r=this.weightPathPrefix||n,s=HS(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 bT(i,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress});return[s,yv(l)]}};Rw.URL_SCHEME_REGEX=/^https?:\/\//;function VW(e){let t=e.lastIndexOf("/"),n=e.lastIndexOf("?"),a=e.substring(0,t),r=n>t?e.substring(n):"";return[a+"/",r]}function Sx(e){return e.match(Rw.URL_SCHEME_REGEX)!=null}var xT=(e,t)=>{if(typeof fetch=="undefined"&&(t==null||t.fetchFunc==null))return null;{let n=!0;if(Array.isArray(e)?n=e.every(a=>Sx(a)):n=Sx(e),n)return Mw(e,t)}return null};$t.registerSaveRouter(xT);$t.registerLoadRouter(xT);function Mw(e,t){return new Rw(e,t)}function UW(e,t){return Mw(e,t)}var Jy=class{constructor(e){this.modelArtifacts=e}load(){return this.modelArtifacts}},vT=class{constructor(e){this.saveHandler=e}save(e){return this.saveHandler(e)}},GW=class{constructor(e){e.load&&(this.load=()=>Promise.resolve(e.load())),e.save&&(this.save=t=>Promise.resolve(e.save(t)))}};function HW(e,t,n,a){let r=arguments;return new GW(wT(...r))}function wT(e,t,n,a){return arguments.length===1?e.modelTopology!=null||e.weightSpecs!=null?new Jy(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 Jy({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 Jy({modelTopology:e,weightSpecs:t,weightData:n,trainingConfig:a}))}function qW(e){return new vT(e)}function jW(e){return new vT(e)}var kT={};Ee(kT,{confusionMatrix:()=>XW});function KW(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=Al(ie(a,"int32"),n),i=Al(ie(r,"int32"),n),o=De(s),l=$e(o,i);return ie(l,"int32")}var XW=L({confusionMatrix_:KW}),Vo={};Ee(Vo,{fromPixels:()=>nB,fromPixelsAsync:()=>eB,toPixels:()=>tB});var Gs;function IT(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(Wh,O.backendName)!=null){let c={pixels:e},h={numChannels:t};return O.runKernel(Wh,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(Gs==null)if(typeof document=="undefined")if(typeof OffscreenCanvas!="undefined"&&typeof OffscreenCanvasRenderingContext2D!="undefined")Gs=new OffscreenCanvas(1,1).getContext("2d");else throw new Error("Cannot parse input in current context. Reason: OffscreenCanvas Context2D rendering is not supported.");else Gs=document.createElement("canvas").getContext("2d",{willReadFrequently:!0});Gs.canvas.width=l,Gs.canvas.height=u,Gs.drawImage(e,0,0,l,u),p=Gs.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 nB=L({fromPixels_:IT}),Pw={};Ee(Pw,{prepareAndValidate:()=>ST});function ST(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(bt(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 Kt={};Ee(Kt,{assertParamsValid:()=>rB,computeFlatOffset:()=>uB,computeOutShape:()=>iB,getNormalizedAxes:()=>oB,isSliceContinous:()=>lB,maskToAxes:()=>sB,parseSliceParams:()=>DT,sliceInfo:()=>pB,startForAxis:()=>FT,startIndicesWithElidedDims:()=>_T,stopForAxis:()=>$T,stopIndicesWithElidedDims:()=>ET,stridesForAxis:()=>AT,stridesWithElidedDims:()=>NT});var Nx=-2,aB=-1;function rB(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 sB(e){let t=[],n=0;for(;e>0;)e&1&&t.push(n),e/=2,n++;return t}function iB(e,t,n){let a=[];for(let r=0;r0){let h=t[0],m=n+1;p=_T(i,h,m,a,e),d=ET(o,h,m,r,e),c=NT(s,h,m,e)}else for(let h=0;h-1)s[o]=0;else{let l=TT(t,n,o),u=a[l];e&1<-1)s[o]=Number.MAX_SAFE_INTEGER;else{let l=TT(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=lc(0,i,l-1),i}function $T(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=lc(0,i,l):i=lc(-1,i,l-1),i}function lB(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 uB(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 pB(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)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 y=0;y0?0:-1,c.strides[y]>0?w:w-1];if(x&&c.strides[y]<=0)throw Error("only stride 1 allowed on non-range indexing.");f=f&&c.strides[y]===1;let C=!!(c.beginMask&1<=w)throw Error(`slice index ${c.begin[y]} of dimension ${y} out of bounds.`)}else c.begin[y]=Uk(c.begin[y],0,c.strides[y],w,I,T),c.end[y]=Uk(c.end[y],1,c.strides[y],w,I,T);let D=c.strides[y]===1&&c.begin[y]===0&&c.end[y]===w;h=h&&D,m=m&&(y===0&&c.strides[y]===1||D)}else h=h&&c.strides[y]===1&&C,m=m&&(y===0&&c.strides[y]===1||C);let E,F=!1;if(c.beginValid&&c.endValid?(E=c.end[y]-c.begin[y],F=!0):x?(E=1,F=!0):C&&w>=0&&(c.strides[y]<0?E=-w:E=w,F=!0),F){let D;E===0||E<0!=c.strides[y]<0?D=0:D=Math.trunc(E/c.strides[y])+(E%c.strides[y]!==0?1:0),g.push(D)}else g.push(-1)}for(let y=0;y=0?b.push(g[x]):x===Nx&&b.push(1)}return{finalShapeSparse:b.filter((y,x)=>c.finalShapeGatherIndices[x]!==Nx),finalShape:b,isIdentity:h,sliceDim0:m,isSimpleSlice:f,begin:c.begin,end:c.end,strides:c.strides}}function cB(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 dB="4.5.0",RT=class{static sgd(e){return new mf(e)}static momentum(e,t,n=!1){return new $w(e,t,n)}static rmsprop(e,t=.9,n=0,a=null,r=!1){return new Dw(e,t,n,a,r)}static adam(e=.001,t=.9,n=.999,a=null){return new Aw(e,t,n,a)}static adadelta(e=.001,t=.95,n=null){return new _w(e,t,n)}static adamax(e=.002,t=.9,n=.999,a=null,r=0){return new Fw(e,t,n,a,r)}static adagrad(e,t=.1){return new Ew(e,t)}},js=RT,hB=(()=>typeof requestAnimationFrame!="undefined"?requestAnimationFrame:typeof setImmediate!="undefined"?setImmediate:e=>e())();function Ow(){return new Promise(e=>hB(()=>e()))}var N={};Ee(N,{ERF_A1:()=>_B,ERF_A2:()=>EB,ERF_A3:()=>AB,ERF_A4:()=>FB,ERF_A5:()=>$B,ERF_P:()=>CB,PARALLELIZE_THRESHOLD:()=>Lw,RowPartitionType:()=>tr,SELU_SCALE:()=>PT,SELU_SCALEALPHA:()=>MT,applyActivation:()=>df,assertAndGetBroadcastShape:()=>ut,assertAxesAreInnerMostDims:()=>fO,assertParamsConsistent:()=>mB,assignToTypedArray:()=>LB,axesAreInnerMostDims:()=>Xv,calculateShapes:()=>HN,checkEinsumDimSizes:()=>GB,checkPadOnDimRoundingMode:()=>Tn,combineLocations:()=>dN,combineRaggedTensorToTensorShapes:()=>gB,complexWithEvenIndex:()=>MB,complexWithOddIndex:()=>PB,computeConv2DInfo:()=>Zc,computeConv3DInfo:()=>nN,computeDefaultPad:()=>Av,computeDilation2DInfo:()=>hP,computeOptimalWindowSize:()=>vB,computeOutAndReduceShapes:()=>hN,computeOutShape:()=>fB,computePool2DInfo:()=>tN,computePool3DInfo:()=>mP,convertConv2DDataFormat:()=>aN,decodeEinsumEquation:()=>VB,eitherStridesOrDilationsAreOne:()=>cr,expandShapeToKeepDim:()=>hi,exponent:()=>WB,exponents:()=>zB,fromStringArrayToUint8:()=>c4,fromUint8ToStringArray:()=>p4,getAxesPermutation:()=>mN,getBroadcastDims:()=>uN,getComplexWithIndex:()=>OB,getEinsumComputePath:()=>HB,getEinsumPermutation:()=>UB,getFusedBiasGradient:()=>cf,getFusedDyActivation:()=>pf,getImageCenter:()=>wB,getInnerMostAxes:()=>gO,getPermuted:()=>IB,getRaggedRank:()=>yB,getReductionAxes:()=>Ut,getReshaped:()=>kB,getReshapedPermuted:()=>SB,getRowPartitionTypesHelper:()=>bB,getSliceBeginCoords:()=>NB,getSliceSize:()=>TB,getSparseFillEmptyRowsIndicesDenseShapeMismatch:()=>XB,getSparseFillEmptyRowsNegativeIndexErrorMessage:()=>YB,getSparseFillEmptyRowsOutOfRangeIndexErrorMessage:()=>ZB,getSparseReshapeEmptyTensorZeroOutputDimErrorMessage:()=>e4,getSparseReshapeInputOutputMismatchErrorMessage:()=>n4,getSparseReshapeInputOutputMultipleErrorMessage:()=>t4,getSparseReshapeMultipleNegativeOneOutputDimErrorMessage:()=>JB,getSparseReshapeNegativeOutputDimErrorMessage:()=>QB,getSparseSegmentReductionIndicesOutOfRangeErrorMessage:()=>i4,getSparseSegmentReductionNegativeSegmentIdsErrorMessage:()=>a4,getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage:()=>r4,getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage:()=>s4,getUndoAxesPermutation:()=>Yv,isIdentityPermutation:()=>qB,log:()=>TR,mergeRealAndImagArrays:()=>DB,prepareAndValidate:()=>ST,prepareSplitSize:()=>KB,segment_util:()=>OT,shouldFuse:()=>hf,slice_util:()=>Kt,splitRealAndImagArrays:()=>RB,stridesOrDilationsArePositive:()=>ci,tupleValuesAreOne:()=>ls,upcastType:()=>ga,validateDefaultValueShape:()=>xB,validateInput:()=>sf,validateUpdateShape:()=>yw,warn:()=>Zr});function mB(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 fB(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 bB(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 yB(e){return e.length===0?0:e[0]===tr.FIRST_DIM_SIZE?e.length-1:e.length}function xB(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 Lw=30;function vB(e){return e<=Lw?e:zh(e,Math.floor(Math.sqrt(e)))}function wB(e,t,n){let a=n*(typeof e=="number"?e:e[0]),r=t*(typeof e=="number"?e:e[1]);return[a,r]}function kB(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 SB(e,t,n,a=!0){let r=[];a?r.push(e[0]/n):r.push(e[0]*n);for(let s=1;s/g,Gk=",",Hk="...";function VB(e,t){e=e.replace(/\s/g,"");let n=(e.length-e.replace(BB,"").length)/Qy.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 ("${Qy}").`);let[a,r]=e.split(Qy);A(a.indexOf(Hk)===-1,()=>`The ellipsis notation ("${Hk}") is not supported yet.`);let s=a.split(Gk),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 GB(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 HB(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 jB(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 XB(e){return`Received SparseTensor with denseShape[0] = 0 but - indices.shape[0] = ${e}`}function YB(e,t){return`indices(${e}, 0) is invalid: ${t} < 0`}function ZB(e,t,n){return`indices(${e}, 0) is invalid: ${t} >= ${n}`}function JB(e,t){return`only one output dimension may be -1, not both ${e} and ${t}`}function QB(e,t){return`size ${e} must be non-negative, not ${t}`}function e4(){return"reshape cannot infer the missing input size for an empty tensor unless all specified input sizes are non-zero"}function t4(e,t){let n=bt(e),a=bt(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 n4(e,t){let n=bt(e),a=bt(t);return`Input to reshape is a tensor with ${n} dense values, but the requested shape has ${a}. inputShape=${e} outputShape=${t}`}function a4(){return"segment ids must be >= 0"}function r4(){return"segment ids are not increasing"}function s4(e,t){return`Segment id ${e} out of range [0, ${t}), possibly because segmentIds input is not sorted.`}function i4(e,t,n){return`Bad: indices[${e}] == ${t} out of range [0, ${n})`}var OT={};Ee(OT,{collectGatherOpShapeInfo:()=>u4,computeOutShape:()=>l4,segOpComputeOptimalWindowSize:()=>o4});function o4(e,t){let n=!1,a;for(e<=Lw?(a=e,n=!0):a=zh(e,Math.floor(Math.sqrt(e)));!n;)a>t||a===e?n=!0:a=zh(e,a+1);return a}function l4(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(nUh(t))}catch(t){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${t}`)}}function c4(e){return e.map(t=>Kc(t))}var hr={};Ee(hr,{nonMaxSuppressionV3Impl:()=>sT,nonMaxSuppressionV4Impl:()=>iT,nonMaxSuppressionV5Impl:()=>oT,whereImpl:()=>KN});EW();var LT={kernelName:ql,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,Bo(ie(n,"float32"),-1))}}},d4={kernelName:Ii,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=lt(ie(n,"float32")),r=hn(pe(ve(1),a));return yt(he(e,r))}}}},h4={kernelName:Si,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=hn(pe(lt(ie(n,"float32")),1));return he(e,a)}}}},m4={kernelName:bs,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ut(n.shape,a.shape);return{a:()=>{let s=e,i=Ut(n.shape,r);return i.length>0&&(s=fe(s,i)),W(s,n.shape)},b:()=>{let s=e,i=Ut(a.shape,r);return i.length>0&&(s=fe(s,i)),W(s,a.shape)}}}},f4={kernelName:Ni,saveAllInputs:!0,gradFunc:(e,t)=>{let n={};return t.forEach((a,r)=>{n[r]=()=>e.clone()}),n}},g4={kernelName:Xl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>qe(n)}}},b4={kernelName:Yl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>qe(n)}}},y4={kernelName:Ti,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,hn(pe(ve(1),lt(ie(n,"float32")))))}}},x4={kernelName:Ci,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=hn(X(ve(1),lt(ie(n,"float32"))));return he(e,a)}}}},v4={kernelName:Ai,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ut(n.shape,a.shape);return{a:()=>{let s=X(lt(n),lt(a)),i=z(e,he(a,s)),o=Ut(n.shape,r);return o.length>0&&(i=fe(i,o)),W(i,n.shape)},b:()=>{let s=X(lt(n),lt(a)),i=yt(z(e,he(n,s))),o=Ut(a.shape,r);return o.length>0&&(i=fe(i,o)),W(i,a.shape)}}}},w4={kernelName:_i,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,X(lt(ie(n,"float32")),1))}}},k4={kernelName:Ei,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,pe(ve(1),lt(ie(n,"float32"))))}}};function I4(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(_c,d,c);return p?W(h,[h.shape[1],h.shape[2],h.shape[3],h.shape[4]]):h}var S4=L({avgPool3dGrad_:I4}),N4={kernelName:Zl,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{filterSize:r,strides:s,pad:i,dimRoundingMode:o}=n;return{x:()=>S4(e,a,r,s,i,o)}}};function T4(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(bm,p,d);return u?W(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var C4=L({avgPoolGrad_:T4}),_4={kernelName:Fi,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{filterSize:r,strides:s,pad:i}=n;return{x:()=>C4(e,a,r,s,i)}}},E4={kernelName:$i,inputsToSave:["a","b"],gradFunc:(e,t,n)=>{let[a,r]=t,{transposeA:s,transposeB:i}=n;return!s&&!i?{a:()=>$e(e,r,!1,!0),b:()=>$e(a,e,!0,!1)}:!s&&i?{a:()=>$e(e,r,!1,!1),b:()=>$e(e,a,!0,!1)}:s&&!i?{a:()=>$e(r,e,!1,!0),b:()=>$e(a,e,!1,!1)}:{a:()=>$e(r,e,!0,!0),b:()=>$e(e,a,!0,!0)}}},A4={kernelName:Jl,gradFunc:(e,t,n)=>{let{blockShape:a,crops:r}=n;return{x:()=>sd(e,a,r)}}},F4={kernelName:CS,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)}}},$4={kernelName:Di,gradFunc:e=>({x:()=>e.clone()})},D4={kernelName:Ri,gradFunc:e=>({x:()=>qe(e)})},R4={kernelName:ys,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{clipValueMin:r,clipValueMax:s}=n;return{x:()=>an(Fa(Dr(a,r),Ss(a,s)),e,qe(e))}}},M4={kernelName:Ac,inputsToSave:["x"],gradFunc:LT.gradFunc},P4={kernelName:eu,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)}},O4={kernelName:Mi,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,{dilations:s,strides:i,pad:o,dataFormat:l}=n;return A(ls(s),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`),{x:()=>Bv(a.shape,e,r,i,o,l),filter:()=>Nw(a,e,r.shape,i,o,l)}}},L4={kernelName:Pi,inputsToSave:["dy","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,{strides:s,pad:i,dataFormat:o,dimRoundingMode:l}=n;return{dy:()=>Rt(e,r,s,i,o,1,l),filter:()=>Nw(e,a,r.shape,s,i,o,l)}}};function z4(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(tu,o,l)}var W4=L({conv3DBackpropFilter_:z4}),B4={kernelName:Oi,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let{dilations:a,strides:r,pad:s}=n;A(ls(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:()=>oN(i.shape,e,o,r,s),filter:()=>W4(i,e,o.shape,r,s)}}},V4={kernelName:Li,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(yt(Qm(ie(n,"float32"))),e)}}},U4={kernelName:zi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(ef(ie(n,"float32")),e)}}},G4={kernelName:Wi,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r,exclusive:s,reverse:i}=n;return{x:()=>{let o=mN([r],a.rank),l=Bm(e,r,s,!i);return o!=null&&(l=De(l,o)),l}}}},H4={kernelName:Bi,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let{dilations:a,strides:r,pad:s,dimRoundingMode:i}=n,o=a==null?[1,1]:a;A(ls(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:()=>nT(l.shape,e,u,r,s,o,i),filter:()=>tT(l,e,u.shape,r,s,o,i)}}},q4={kernelName:Vi,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(Nl,s,n),filter:()=>O.runKernel(Tl,i,n)}}},j4={kernelName:Gi,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t,a={dy:e,y:n};return{x:()=>O.runKernel(iu,a)}}},K4={kernelName:ou,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t,a=z(yn(yt(lt(n))),2/Math.sqrt(Math.PI));return{x:()=>z(e,a)}}},X4={kernelName:Hi,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,n)}}},Y4={kernelName:uu,inputsToSave:["input"],gradFunc:(e,t)=>{let[n]=t;return{input:()=>W(e,n.shape)}}},Z4={kernelName:qi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,yn(n))}}},J4={kernelName:ji,gradFunc:e=>({x:()=>qe(e)})},Q4={kernelName:Ki,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ut(n.shape,a.shape);return{a:()=>{let s=he(e,ie(a,"float32")),i=Ut(n.shape,r);return i.length>0?W(fe(s,i),n.shape):s},b:()=>{let s=z(e,ie(n,"float32")),i=Ut(a.shape,r);i.length>0&&(s=W(fe(s,i),a.shape));let o=lt(a);return yt(he(s,ie(o,"float32")))}}}},eV={kernelName:Xi,inputsToSave:["x","mean","variance","scale"],gradFunc:(e,t,n)=>{let{varianceEpsilon:a}=n,[r,s,i,o]=t,l=o==null?ve(1):o,u=Ut(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,ve(-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)}}}},tV={kernelName:cu,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=qk(0,p),m=qk(p+1,p+1+c),f=jk([u,[l],d]),g=W(e,f),b=W(r,[l]),y=jk([[p],h,m]),x=De(g,y),w=lf(x,b,a.shape[i]),I=Yv(y);return w=De(w,I),w},indices:()=>r}}};function qk(e,t){let n=[];for(let a=e;a{let[n,a]=t;return{a:()=>qe(n),b:()=>qe(a)}}},aV={kernelName:Zi,gradFunc:e=>({x:()=>ie(e,"float32")})},rV={kernelName:Ji,gradFunc:e=>({x:()=>qe(e)})},sV={kernelName:Qi,gradFunc:e=>({x:()=>qe(e)})},iV={kernelName:eo,gradFunc:e=>({x:()=>qe(e)})},oV={kernelName:to,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{alpha:r}=n,s=Cn(a,0);return{x:()=>an(s,e,z(e,r))}}},lV={kernelName:ao,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,X(n,1))}}},uV={kernelName:no,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,ie(n,"float32"))}}},pV={kernelName:ES,inputsToSave:[],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n;return{logits:()=>{let s=yn(a);return pe(e,z(fe(e,r,!0),s))}}}};function cV(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(vu,o,l)}var dV=L({localResponseNormalizationBackprop_:cV}),hV={kernelName:ro,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{depthRadius:s,bias:i,alpha:o,beta:l}=n;return{x:()=>dV(a,r,e,s,i,o,l)}}};function zT(e,t,n,a){return t.rankz(e,ie(ea(n,t),e.dtype))}}var Kk={kernelName:so,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=zT(e,i,s,o);return{x:()=>l.x()}}},mV={kernelName:io,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t;return{a:()=>z(e,ie(Dr(n,a),"float32")),b:()=>z(e,ie(El(n,a),"float32"))}}};function fV(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(Rc,m,f);return h?W(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}var gV=L({maxPool3dGrad_:fV}),bV={kernelName:wu,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=n;return{x:()=>gV(e,a,r,s,i,o,l)}}};function yV(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(Cm,p,d)}var xV=L({maxPoolGrad_:yV}),vV={kernelName:oo,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{filterSize:s,strides:i,pad:o}=n;return{x:()=>xV(e,a,r,s,i,o)}}},wV={kernelName:lo,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n,s=$a(r,a.shape),i=hN(a.shape,s)[1],o=bt(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)}}}},kV={kernelName:uo,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let a=n,{axis:r}=a,[s,i]=t,o=$a(r,s.shape),l=zT(e,i,s,o);return{x:()=>l.x()}}},IV={kernelName:po,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t;return{a:()=>z(e,ie(Ss(n,a),"float32")),b:()=>z(e,ie(Cn(n,a),"float32"))}}},SV={kernelName:co,inputsToSave:["x"],gradFunc:(e,t,n)=>{let a=t[0],{paddings:r}=n,s=r.map(i=>i[0]);return{x:()=>Ue(e,s,a.shape)}}},NV={kernelName:ku,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ut(n.shape,a.shape);return{a:()=>{let s=Ut(n.shape,r);return s.length>0?W(fe(e,s),n.shape):e},b:()=>{let s=z(e,yt(Qu(he(n,a)))),i=Ut(a.shape,r);return i.length>0?W(fe(s,i),a.shape):s}}}},TV={kernelName:ho,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ut(n.shape,a.shape);return{a:()=>{let s=z(e,ie(a,"float32")),i=Ut(n.shape,r);return i.length>0?W(fe(s,i),n.shape):s},b:()=>{let s=z(e,ie(n,"float32")),i=Ut(a.shape,r);return i.length>0?W(fe(s,i),a.shape):s}}}},CV={kernelName:Su,gradFunc:e=>({x:()=>yt(e)})},_V={kernelName:mo,inputsToSave:["indices"],gradFunc:(e,t)=>{let n=t[0];return{indices:()=>Nt(n.shape,"float32")}}},EV={kernelName:Eu,gradFunc:e=>({x:()=>qe(e)})},AV={kernelName:Au,saveAllInputs:!0,gradFunc:(e,t,n)=>{let{axis:a}=n;return pt(e,a).map(r=>()=>r)}},Xk={kernelName:fo,inputsToSave:["x"],gradFunc:(e,t,n)=>{let a=t[0],{paddings:r}=n,s=r.map(i=>i[0]);return{x:()=>Ue(e,s,a.shape)}}},FV={kernelName:go,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=ie(i,"float32"),u=z(e,z(l,Fr(s,pe(l,ve(1))))),p=Ut(s.shape,o);return p.length>0&&(u=fe(u,p)),W(u,s.shape)},b:()=>{let l=Cn(s,0),u=an(l,ta(s),qe(s)),p=z(e,z(r,u)),d=Ut(i.shape,o);return d.length>0&&(p=fe(p,d)),W(p,i.shape)}}}},$V={kernelName:bo,inputsToSave:["x","alpha"],gradFunc:(e,t)=>{let[n,a]=t,r=Cn(n,0);return{x:()=>an(r,e,z(e,a)),alpha:()=>{let s=an(r,qe(e),z(e,n)),i=Ut(a.shape,e.shape);return i.length>0&&(s=fe(s,i)),W(s,a.shape)}}}};function DV(e,t,n){let a=e.shape.slice();a[n]=1;let r=W(t,a),s=gc(e,n,!0,!1),i=gc(e,n,!0,!0),o=z(s,i);return z(r,o)}function RV(e,t,n){let a=e.shape.length,r=a-n.length,s=N.getAxesPermutation(n,a),i=e;s!=null&&(i=De(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=DV(u,t,r);if(p=p.reshape(i.shape),s!=null){let d=N.getUndoAxesPermutation(s);p=De(p,d)}return p}var MV={kernelName:yo,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:()=>RV(a,e,s)}}},PV={kernelName:Ui,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ut(n.shape,a.shape);return{a:()=>{let s=he(e,ie(a,"float32")),i=Ut(n.shape,r);return i.length>0?W(fe(s,i),n.shape):s},b:()=>{let s=z(e,ie(n,"float32")),i=Ut(a.shape,r);i.length>0&&(s=W(fe(s,i),a.shape));let o=lt(a);return yt(he(s,ie(o,"float32")))}}}},OV={kernelName:xo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,yt(lt(n)))}}},LV={kernelName:Io,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t,a=z(Ss(n,6),Bo(n));return{x:()=>z(e,ie(a,"float32"))}}},zV={kernelName:vo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,ie(Bo(n),"float32"))}}},WV={kernelName:Fu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>W(e,n.shape)}}},BV={kernelName:ko,inputsToSave:["images"],gradFunc:(e,t,n)=>{let[a]=t,r={dy:e,images:a};return{images:()=>O.runKernel(Du,r,n)}}},VV={kernelName:wo,inputsToSave:["images"],gradFunc:(e,t,n)=>{let[a]=t,r={dy:e,images:a};return{images:()=>O.runKernel($u,r,n)}}},UV={kernelName:So,gradFunc:(e,t,n)=>{let{dims:a}=n,r=$a(a,e.shape);return{x:()=>ba(e,r)}}},GV={kernelName:No,gradFunc:e=>({x:()=>qe(e)})},HV={kernelName:To,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>yt(he(e,z(Fr(n,1.5),2)))}}},qV={kernelName:Ou,inputsToSave:["condition"],gradFunc:(e,t)=>{let[n]=t;return{condition:()=>ie(qe(n),"float32"),t:()=>z(e,ie(n,e.dtype)),e:()=>z(e,ie(ad(n),e.dtype))}}},jV={kernelName:Co,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=Cn(n,ve(0)),r=ve(MT),s=ve(PT),i=z(e,s),o=z(z(e,r),yn(ie(n,"float32")));return an(a,i,o)}}}},KV={kernelName:Ao,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,z(n,pe(ve(1),n)))}}},XV={kernelName:Eo,gradFunc:e=>({x:()=>qe(e)})},YV={kernelName:_o,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(Qc(ie(n,"float32")),e)}}},ZV={kernelName:zu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(Wm(ie(n,"float32")),e)}}},JV={kernelName:Lu,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{begin:r,size:s}=n,i=a.shape,[o,l]=DT(a,r,s),u=[];for(let p=0;pxa(e,u)}}},QV={kernelName:Ro,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))}}},eU={kernelName:Fo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,ma(n))}}},Yk={kernelName:Wu,gradFunc:(e,t,n)=>{let{blockShape:a,paddings:r}=n;return{x:()=>Jc(e,a,r)}}},Zk={kernelName:Bu,gradFunc:(e,t,n)=>{let{axis:a}=n;return{x:()=>Qe(e,a)}}},tU={kernelName:$o,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,z(hn(ie(n,"float32")),2))}}},nU={kernelName:zc,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,z(ie(n,"float32"),2))}}},aU={kernelName:Mo,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ve(2);return{a:()=>z(e,z(r,pe(n,a))),b:()=>z(e,z(r,pe(a,n)))}}},rU={kernelName:vs,gradFunc:e=>({x:()=>qe(e)})},sU={kernelName:Po,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ut(n.shape,a.shape);return{a:()=>{let s=e,i=Ut(n.shape,r);return i.length>0&&(s=fe(s,i)),W(s,n.shape)},b:()=>{let s=e,i=Ut(a.shape,r);return i.length>0&&(s=fe(s,i)),W(yt(s),a.shape)}}}},iU={kernelName:Do,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,Jn(a.shape,"float32"));return{x:()=>o}}},oU={kernelName:Oo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,lt(Qc(n)))}}},lU={kernelName:Lo,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(pe(ve(1),lt(n)),e)}}},uU={kernelName:xs,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=Yv(r);return{x:()=>De(e,s)}}},cU={kernelName:ju,gradFunc:(e,t,n)=>{let a=n,{axis:r}=a;return{value:()=>Dt(e,r)}}},dU={kernelName:Hc,inputsToSave:["segmentIds"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>hU(e,n)}}};function hU(e,t){let n=dr(t,qe(t)),a=ep(e,n),r=Dr(t,ve(0,"int32")),s=a.rank-r.rank;for(let o=0;o({x:()=>qe(e)})},fU=[LT,d4,h4,m4,f4,g4,b4,y4,x4,v4,w4,k4,N4,_4,E4,A4,F4,$4,D4,R4,M4,P4,L4,O4,B4,V4,U4,G4,H4,q4,PV,j4,K4,X4,Y4,Z4,Q4,J4,eV,tV,nV,aV,rV,sV,iV,oV,lV,uV,pV,hV,Kk,Kk,mV,bV,vV,wV,kV,IV,SV,NV,TV,CV,_V,EV,AV,Xk,Xk,FV,$V,MV,OV,LV,zV,WV,BV,VV,UV,GV,HV,qV,jV,KV,XV,YV,ZV,JV,QV,eU,Yk,Yk,Zk,Zk,tU,aU,nU,rU,sU,iU,oU,lU,uU,pU,cU,dU,mU];for(let e of fU)AS(e);Q().prototype.abs=function(){return this.throwIfDisposed(),Wt(this)};Q().prototype.acos=function(){return this.throwIfDisposed(),kv(this)};Q().prototype.acosh=function(){return this.throwIfDisposed(),Iv(this)};Q().prototype.add=function(e){return this.throwIfDisposed(),X(this,e)};Q().prototype.all=function(e,t){return this.throwIfDisposed(),Om(this,e,t)};Q().prototype.any=function(e,t){return this.throwIfDisposed(),hc(this,e,t)};Q().prototype.argMax=function(e){return this.throwIfDisposed(),pi(this,e)};Q().prototype.argMin=function(e){return this.throwIfDisposed(),Sv(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(),ie(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(),Nv(this)};Q().prototype.asinh=function(){return this.throwIfDisposed(),Tv(this)};Q().prototype.atan=function(){return this.throwIfDisposed(),Cv(this)};Q().prototype.atan2=function(e){return this.throwIfDisposed(),_v(this,e)};Q().prototype.atanh=function(){return this.throwIfDisposed(),Ev(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(),Jc(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(),ni(this,e)};Q().prototype.cast=function(e){return this.throwIfDisposed(),ie(this,e)};Q().prototype.ceil=function(){return this.throwIfDisposed(),Pv(this)};Q().prototype.clipByValue=function(e,t){return this.throwIfDisposed(),rn(this,e,t)};Q().prototype.concat=function(e,t){return this.throwIfDisposed(),e instanceof Ce&&(e=[e]),Qe([this,...e],t)};Q().prototype.conv1d=function(e,t,n,a,r,s){return this.throwIfDisposed(),Lm(this,e,t,n,a,r,s)};Q().prototype.conv2dTranspose=function(e,t,n,a,r){return this.throwIfDisposed(),zm(this,e,t,n,a,r)};Q().prototype.conv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),Rt(this,e,t,n,a,r,s)};Q().prototype.cos=function(){return this.throwIfDisposed(),Qc(this)};Q().prototype.cosh=function(){return this.throwIfDisposed(),Wm(this)};Q().prototype.cumprod=function(e,t,n){return this.throwIfDisposed(),gc(this,e,t,n)};Q().prototype.cumsum=function(e,t,n){return this.throwIfDisposed(),Bm(this,e,t,n)};Q().prototype.depthToSpace=function(e,t){return this.throwIfDisposed(),Gv(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(),Hv(this,e,t,n,a,r)};Q().prototype.divNoNan=function(e){return this.throwIfDisposed(),qv(this,e)};Q().prototype.div=function(e){return this.throwIfDisposed(),he(this,e)};Q().prototype.dot=function(e){return this.throwIfDisposed(),jv(this,e)};Q().prototype.elu=function(){return this.throwIfDisposed(),Zu(this)};Q().prototype.equal=function(e){return this.throwIfDisposed(),ea(this,e)};Q().prototype.erf=function(){return this.throwIfDisposed(),Kv(this)};Q().prototype.euclideanNorm=function(e,t){return this.throwIfDisposed(),Zv(this,e,t)};Q().prototype.exp=function(){return this.throwIfDisposed(),yn(this)};Q().prototype.expandDims=function(e){return this.throwIfDisposed(),tn(this,e)};Q().prototype.expm1=function(){return this.throwIfDisposed(),Jv(this)};Q().prototype.fft=function(){return this.throwIfDisposed(),ld(this)};Q().prototype.flatten=function(){return this.throwIfDisposed(),W(this,[this.size])};Q().prototype.floor=function(){return this.throwIfDisposed(),Qu(this)};Q().prototype.floorDiv=function(e){return this.throwIfDisposed(),Pm(this,e)};Q().prototype.gather=function(e,t,n){return this.throwIfDisposed(),ep(this,e,t,n)};Q().prototype.greaterEqual=function(e){return this.throwIfDisposed(),Dr(this,e)};Q().prototype.greater=function(e){return this.throwIfDisposed(),Cn(this,e)};Q().prototype.ifft=function(){return this.throwIfDisposed(),Dl(this)};Q().prototype.irfft=function(){return this.throwIfDisposed(),nf(this)};Q().prototype.isFinite=function(){return this.throwIfDisposed(),Qv(this)};Q().prototype.isInf=function(){return this.throwIfDisposed(),ew(this)};Q().prototype.isNaN=function(){return this.throwIfDisposed(),tw(this)};Q().prototype.leakyRelu=function(e){return this.throwIfDisposed(),td(this,e)};Q().prototype.lessEqual=function(e){return this.throwIfDisposed(),Ss(this,e)};Q().prototype.less=function(e){return this.throwIfDisposed(),El(this,e)};Q().prototype.localResponseNormalization=function(e,t,n,a){return this.throwIfDisposed(),nw(this,e,t,n,a)};Q().prototype.logSigmoid=function(){return this.throwIfDisposed(),aw(this)};Q().prototype.logSoftmax=function(e){return this.throwIfDisposed(),Gm(this,e)};Q().prototype.logSumExp=function(e,t){return this.throwIfDisposed(),Hm(this,e,t)};Q().prototype.log=function(){return this.throwIfDisposed(),ta(this)};Q().prototype.log1p=function(){return this.throwIfDisposed(),nd(this)};Q().prototype.logicalAnd=function(e){return this.throwIfDisposed(),Fa(this,e)};Q().prototype.logicalNot=function(){return this.throwIfDisposed(),ad(this)};Q().prototype.logicalOr=function(e){return this.throwIfDisposed(),qm(this,e)};Q().prototype.logicalXor=function(e){return this.throwIfDisposed(),rw(this,e)};Q().prototype.matMul=function(e,t,n){return this.throwIfDisposed(),$e(this,e,t,n)};Q().prototype.maxPool=function(e,t,n,a){return this.throwIfDisposed(),Mt(this,e,t,n,a)};Q().prototype.max=function(e,t){return this.throwIfDisposed(),fa(this,e,t)};Q().prototype.maximum=function(e){return this.throwIfDisposed(),dr(this,e)};Q().prototype.mean=function(e,t){return this.throwIfDisposed(),Et(this,e,t)};Q().prototype.min=function(e,t){return this.throwIfDisposed(),_l(this,e,t)};Q().prototype.minimum=function(e){return this.throwIfDisposed(),us(this,e)};Q().prototype.mirrorPad=function(e,t){return this.throwIfDisposed(),iw(this,e,t)};Q().prototype.mod=function(e){return this.throwIfDisposed(),ow(this,e)};Q().prototype.mul=function(e){return this.throwIfDisposed(),z(this,e)};Q().prototype.neg=function(){return this.throwIfDisposed(),yt(this)};Q().prototype.norm=function(e,t,n){return this.throwIfDisposed(),Ju(this,e,t,n)};Q().prototype.notEqual=function(e){return this.throwIfDisposed(),mi(this,e)};Q().prototype.oneHot=function(e,t=1,n=0){return this.throwIfDisposed(),Al(this,e,t,n)};Q().prototype.onesLike=function(){return this.throwIfDisposed(),na(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(),lw(this,e,t,n,a,r,s)};Q().prototype.pow=function(e){return this.throwIfDisposed(),Fr(this,e)};Q().prototype.prelu=function(e){return this.throwIfDisposed(),id(this,e)};Q().prototype.prod=function(e,t){return this.throwIfDisposed(),uw(this,e,t)};Q().prototype.reciprocal=function(){return this.throwIfDisposed(),mw(this)};Q().prototype.relu=function(){return this.throwIfDisposed(),Ke(this)};Q().prototype.relu6=function(){return this.throwIfDisposed(),Xm(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(),lT(this,e,t,n)};Q().prototype.resizeNearestNeighbor=function(e,t,n){return this.throwIfDisposed(),uT(this,e,t,n)};Q().prototype.reverse=function(e){return this.throwIfDisposed(),ba(this,e)};Q().prototype.rfft=function(){return this.throwIfDisposed(),ud(this)};Q().prototype.round=function(){return this.throwIfDisposed(),Ym(this)};Q().prototype.rsqrt=function(){return this.throwIfDisposed(),Zm(this)};Q().prototype.selu=function(){return this.throwIfDisposed(),Jm(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(),ma(this)};Q().prototype.sign=function(){return this.throwIfDisposed(),fw(this)};Q().prototype.sin=function(){return this.throwIfDisposed(),Qm(this)};Q().prototype.sinh=function(){return this.throwIfDisposed(),ef(this)};Q().prototype.slice=function(e,t){return this.throwIfDisposed(),Ue(this,e,t)};Q().prototype.softmax=function(e){return this.throwIfDisposed(),Xa(this,e)};Q().prototype.softplus=function(){return this.throwIfDisposed(),zo(this)};Q().prototype.spaceToBatchND=function(e,t){return this.throwIfDisposed(),sd(this,e,t)};Q().prototype.split=function(e,t){return this.throwIfDisposed(),zn(this,e,t)};Q().prototype.sqrt=function(){return this.throwIfDisposed(),hn(this)};Q().prototype.square=function(){return this.throwIfDisposed(),lt(this)};Q().prototype.squaredDifference=function(e){return this.throwIfDisposed(),af(this,e)};Q().prototype.squeeze=function(e){return this.throwIfDisposed(),Cs(this,e)};Q().prototype.stack=function(e,t){this.throwIfDisposed();let n=e instanceof Ce?[this,e]:[this,...e];return Dt(n,t)};Q().prototype.step=function(e){return this.throwIfDisposed(),Bo(this,e)};Q().prototype.stridedSlice=function(e,t,n,a,r,s,i,o){return this.throwIfDisposed(),gw(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(),bw(this)};Q().prototype.tanh=function(){return this.throwIfDisposed(),di(this)};Q().prototype.tile=function(e){return this.throwIfDisposed(),Ln(this,e)};Q().prototype.toBool=function(){return this.throwIfDisposed(),ie(this,"bool")};Q().prototype.toFloat=function(){return this.throwIfDisposed(),ie(this,"float32")};Q().prototype.toInt=function(){return this.throwIfDisposed(),ie(this,"int32")};Q().prototype.topk=function(e,t){return this.throwIfDisposed(),xw(this,e,t)};Q().prototype.transpose=function(e){return this.throwIfDisposed(),De(this,e)};Q().prototype.unique=function(e){return this.throwIfDisposed(),vw(this,e)};Q().prototype.unsortedSegmentSum=function(e,t){return this.throwIfDisposed(),lf(this,e,t)};Q().prototype.unstack=function(e){return this.throwIfDisposed(),pt(this,e)};Q().prototype.where=function(e,t){return this.throwIfDisposed(),an(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)}},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)}},Oe=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Oe.prototype)}},WT=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,WT.prototype)}},BT=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 zw(e){if(e==null)return null;let t={};return t.className=e.getClassName(),t.config=e.getConfig(),t}function Tx(e){if(!(e==null||typeof e!="object"))if(Array.isArray(e))e.forEach(t=>Tx(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:Tx(a))}}}function cd(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(Gc,i)}var RW=L({sparseSegmentSum_:DW});function MW(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(jc,d,p);return{nGrams:c[0],nGramsSplits:c[1]}}var PW=L({stringNGrams_:MW});function OW(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(Kc,i,s);return{indices:o[0],values:o[1],shape:o[2]}}var LW=L({stringSplit_:OW});function zW(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(Xc,r,a)}var WW=L({stringToHashBucketFast_:zW});function BW(e,t,n,a=!0){let r=_(e,"input","staticRegexReplace","string"),s={pattern:t,rewrite:n,replaceGlobal:a};return O.runKernel(qc,{x:r},s)}var VW=L({staticRegexReplace_:BW}),xT={fft:md,ifft:Ll,rfft:fd,irfft:af},vT={hammingWindow:yz,hannWindow:dT,frame:hT,stft:kz},Qn={flipLeftRight:Tz,grayscaleToRGB:_z,resizeNearestNeighbor:yT,resizeBilinear:bT,rotateWithOffset:Az,cropAndResize:Sz,nonMaxSuppression:$z,nonMaxSuppressionAsync:Wz,nonMaxSuppressionWithScore:Vz,nonMaxSuppressionWithScoreAsync:Gz,nonMaxSuppressionPadded:qz,nonMaxSuppressionPaddedAsync:Kz,threshold:Qz,transform:tW},Mw={bandPart:aW,gramSchmidt:sW,qr:oW},wT={absoluteDifference:pW,computeWeightedLoss:Mr,cosineDistance:dW,hingeLoss:mW,huberLoss:gW,logLoss:yW,meanSquaredError:vW,sigmoidCrossEntropy:IW,softmaxCrossEntropy:TW},kT={sparseFillEmptyRows:_W,sparseReshape:AW,sparseSegmentMean:$W,sparseSegmentSum:RW},IT={stringNGrams:PW,stringSplit:LW,stringToHashBucketFast:WW,staticRegexReplace:VW},ne={};Ee(ne,{Serializable:()=>ST,SerializationMap:()=>Ys,registerClass:()=>NT});var ST=class{getClassName(){return this.constructor.className}static fromConfig(e,t){return new e(t)}},Ys=class{constructor(){this.classNameMap={}}static getMap(){return Ys.instance==null&&(Ys.instance=new Ys),Ys.instance}static register(e){Ys.getMap().classNameMap[e.className]=[e,e.fromConfig]}};function NT(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."),Ys.register(e)}var Pr=class extends ST{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 TN(e,t)}dispose(){this.iterations_!=null&&_e(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:"iter",tensor:ve(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 Pw=class extends Pr{static get className(){return"Adadelta"}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=X(z(i,this.rho),z(lt(s),1-this.rho)),u=z(he(hn(X(o,this.epsilon)),hn(X(i,this.epsilon))),s),p=X(z(o,this.rho),z(lt(u),1-this.rho));i.assign(l),o.assign(p);let d=X(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)}},Ow=class extends Pr{static get className(){return"Adagrad"}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(()=>xn(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=X(s,lt(r));s.assign(i);let o=X(z(he(r,hn(X(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)}},Lw=class extends Pr{static get className(){return"Adam"}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=ve(t).variable(),this.accBeta2=ve(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=X(z(u,this.beta1),z(l,1-this.beta1)),c=X(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=X(z(he(h,X(hn(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)}},zw=class extends Pr{static get className(){return"Adamax"}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=ve(0).variable(),this.accBeta1=ve(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,X(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=X(z(u,this.beta1),z(l,1-this.beta1)),c=z(p,this.beta2),h=Wt(l),m=hr(c,h);u.assign(d),p.assign(m);let f=X(z(he(a,n),he(d,X(m,this.epsilon))),i);i.assign(f)}),this.iteration.assign(X(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)}},ff=class extends Pr{static get className(){return"SGD"}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=X(z(this.c,a),r);r.assign(s)})}),this.incrementIterations()}setLearningRate(e){this.learningRate=e,this.c!=null&&this.c.dispose(),this.c=qt(ve(-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)}},Ww=class extends ff{static get className(){return"Momentum"}constructor(e,t,n=!1){super(e),this.learningRate=e,this.momentum=t,this.useNesterov=n,this.accumulations=[],this.m=ve(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=X(z(this.m,r),s);this.useNesterov?i=X(z(this.c,X(s,z(o,this.m))),a):i=X(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)}},Bw=class extends Pr{static get className(){return"RMSProp"}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=X(z(i,this.decay),z(lt(s),1-this.decay));if(this.centered){let u=this.accumulatedMeanGrads[n].variable,p=X(z(u,this.decay),z(s,1-this.decay)),d=he(z(s,this.learningRate),hn(pe(l,X(lt(p),this.epsilon)))),c=X(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=X(z(i,this.decay),z(lt(s),1-this.decay)),p=X(z(o,this.momentum),he(z(s,this.learningRate),hn(X(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)}},UW=[Pw,Ow,Lw,zw,Ww,Bw,ff];function GW(){for(let e of UW)NT(e)}var jt={};Ee(jt,{CompositeArrayBuffer:()=>cr,browserFiles:()=>ZW,browserHTTPRequest:()=>nB,concatenateArrayBuffers:()=>kM,copyModel:()=>GM,decodeWeights:()=>ZS,encodeWeights:()=>yM,fromMemory:()=>rB,fromMemorySync:()=>AT,getLoadHandlers:()=>AM,getModelArtifactsForJSON:()=>Cv,getModelArtifactsForJSONSync:()=>QS,getModelArtifactsInfoForJSON:()=>nd,getSaveHandlers:()=>EM,getWeightSpecs:()=>eN,http:()=>Uw,isHTTPScheme:()=>$x,listModels:()=>VM,loadWeights:()=>JW,moveModel:()=>HM,registerLoadRouter:()=>_M,registerSaveRouter:()=>CM,removeModel:()=>UM,weightsLoaderFactory:()=>CT,withSaveHandler:()=>sB,withSaveHandlerSync:()=>iB});var HW="model",qW=".json",jW=".weights.bin";function Xk(e){return new Promise(t=>setTimeout(t)).then(e)}var Wl=class{constructor(e){if(!G().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");e.startsWith(Wl.URL_SCHEME)&&(e=e.slice(Wl.URL_SCHEME.length)),(e==null||e.length===0)&&(e=HW),this.modelJsonFileName=e+qW,this.weightDataFileName=e+jW}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=cr.join(e.weightData),n=window.URL.createObjectURL(new Blob([t],{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 a=[{paths:["./"+this.weightDataFileName],weights:e.weightSpecs}],r=JS(e,a),s=window.URL.createObjectURL(new Blob([JSON.stringify(r)],{type:"application/json"})),i=this.modelJsonAnchor==null?document.createElement("a"):this.modelJsonAnchor;if(i.download=this.modelJsonFileName,i.href=s,await Xk(()=>i.dispatchEvent(new MouseEvent("click"))),e.weightData!=null){let o=this.weightDataAnchor==null?document.createElement("a"):this.weightDataAnchor;o.download=this.weightDataFileName,o.href=n,await Xk(()=>o.dispatchEvent(new MouseEvent("click")))}return{modelArtifactsInfo:nd(e)}}}};Wl.URL_SCHEME="downloads://";var KW=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=Cv(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,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=>qk(r.name)),a={};for(let r of e)r.paths.forEach(s=>{let i=qk(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}},XW=e=>G().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(Wl.URL_SCHEME)?YW(e.slice(Wl.URL_SCHEME.length)):null;$t.registerSaveRouter(XW);function YW(e="model"){return new Wl(e)}function ZW(e){return new KW(e)}function Yk(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 TT(e,t){t==null&&(t={});let n=t.fetchFunc==null?G().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 Yk(a,t.onProgress,r,s)).map(u=>u.arrayBuffer()),o=.5,l=1;return t.onProgress==null?await Promise.all(i):await Yk(i,t.onProgress,o,l)}async function JW(e,t="",n,a){return CT(r=>TT(r,{requestInit:a}))(e,t,n)}function CT(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 b="quantization"in g?g.quantization.dtype:g.dtype,y=Tx[b]*bt(g.shape),x=()=>{r[m]=!0,s[m]==null&&(s[m]=[]),s[m].push({manifestEntry:g,groupOffset:f,sizeBytes:y})};a!=null?a.forEach((v,I)=>{v===g.name&&(x(),i[I]=!0)}):x(),o.push(g.name),f+=y})}),!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=new cr(p.slice(c,c+m));s[h].forEach(g=>{let b=f.slice(g.groupOffset,g.groupOffset+g.sizeBytes),y=ZS(b,[g.manifestEntry]);for(let x in y)d[x]=y[x]}),c+=m}),d}}var QW="application/octet-stream",eB="application/json",Vw=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=G().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=JS(e,n);if(t.body.append("model.json",new Blob([JSON.stringify(a)],{type:eB}),"model.json"),e.weightData!=null){let s=cr.join(e.weightData);t.body.append("model.weights.bin",new Blob([s],{type:QW}),"model.weights.bin")}let r=await this.fetch(this.path,t);if(r.ok)return{modelArtifactsInfo:nd(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 Cv(t,r=>this.loadWeights(r))}async loadWeights(e){let t=Array.isArray(this.path)?this.path[1]:this.path,[n,a]=tB(t),r=this.weightPathPrefix||n,s=eN(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 TT(i,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress});return[s,l]}};Vw.URL_SCHEME_REGEX=/^https?:\/\//;function tB(e){let t=e.lastIndexOf("/"),n=e.lastIndexOf("?"),a=e.substring(0,t),r=n>t?e.substring(n):"";return[a+"/",r]}function $x(e){return e.match(Vw.URL_SCHEME_REGEX)!=null}var _T=(e,t)=>{if(typeof fetch=="undefined"&&(t==null||t.fetchFunc==null))return null;{let n=!0;if(Array.isArray(e)?n=e.every(a=>$x(a)):n=$x(e),n)return Uw(e,t)}return null};$t.registerSaveRouter(_T);$t.registerLoadRouter(_T);function Uw(e,t){return new Vw(e,t)}function nB(e,t){return Uw(e,t)}var ix=class{constructor(e){this.modelArtifacts=e}load(){return this.modelArtifacts}},ET=class{constructor(e){this.saveHandler=e}save(e){return this.saveHandler(e)}},aB=class{constructor(e){e.load&&(this.load=()=>Promise.resolve(e.load())),e.save&&(this.save=t=>Promise.resolve(e.save(t)))}};function rB(e,t,n,a){let r=arguments;return new aB(AT(...r))}function AT(e,t,n,a){return arguments.length===1?e.modelTopology!=null||e.weightSpecs!=null?new ix(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 ix({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 ix({modelTopology:e,weightSpecs:t,weightData:n,trainingConfig:a}))}function sB(e){return new ET(e)}function iB(e){return new ET(e)}var FT={};Ee(FT,{confusionMatrix:()=>lB});function oB(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=Ml(se(a,"int32"),n),i=Ml(se(r,"int32"),n),o=De(s),l=$e(o,i);return se(l,"int32")}var lB=L({confusionMatrix_:oB}),jo={};Ee(jo,{draw:()=>gB,fromPixels:()=>bB,fromPixelsAsync:()=>hB,toPixels:()=>fB});var Hs,Zk=!1;function $T(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(qh(Hh,O.backendName)!=null){let c={pixels:e},h={numChannels:t};return O.runKernel(Hh,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(Hs==null)if(typeof document=="undefined")if(typeof OffscreenCanvas!="undefined"&&typeof OffscreenCanvasRenderingContext2D!="undefined")Hs=new OffscreenCanvas(1,1).getContext("2d");else throw new Error("Cannot parse input in current context. Reason: OffscreenCanvas Context2D rendering is not supported.");else Hs=document.createElement("canvas").getContext("2d",{willReadFrequently:!0});Hs.canvas.width=l,Hs.canvas.height=u,Hs.drawImage(e,0,0,l,u),p=Hs.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||t===2)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${t}`);if(e.dtype!=="float32"&&e.dtype!=="int32")throw new Error(`Unsupported type for toPixels: ${e.dtype}. Please use float32 or int32 tensors.`)}function mB(e){let t=(e==null?void 0:e.alpha)||1;if(t>1||t<0)throw new Error(`Alpha value ${t} is suppoed to be in range [0 - 1].`)}async function fB(e,t){let n=_(e,"img","toPixels");if(!(e instanceof Te)){let u=n;n=se(u,"int32"),u.dispose()}DT(n);let[a,r]=n.shape.slice(0,2),s=n.rank===2?1:n.shape[2],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){Zk||(console.warn("tf.browser.toPixels is not efficient to draw tensor on canvas. Please try tf.browser.draw instead."),Zk=!0),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}function gB(e,t,n){let a=_(e,"img","draw");if(!(e instanceof Te)){let i=a;a=se(i,"int32"),i.dispose()}DT(a),mB(n==null?void 0:n.imageOptions);let r={image:a},s={canvas:t,options:n};O.runKernel(kv,r,s)}var bB=L({fromPixels_:$T}),Gw={};Ee(Gw,{prepareAndValidate:()=>RT});function RT(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(bt(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 Xt={};Ee(Xt,{assertParamsValid:()=>xB,computeFlatOffset:()=>SB,computeOutShape:()=>wB,getNormalizedAxes:()=>kB,isSliceContinous:()=>IB,maskToAxes:()=>vB,parseSliceParams:()=>UT,sliceInfo:()=>NB,startForAxis:()=>BT,startIndicesWithElidedDims:()=>LT,stopForAxis:()=>VT,stopIndicesWithElidedDims:()=>zT,stridesForAxis:()=>WT,stridesWithElidedDims:()=>MT});var Dx=-2,yB=-1;function xB(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 vB(e){let t=[],n=0;for(;e>0;)e&1&&t.push(n),e/=2,n++;return t}function wB(e,t,n){let a=[];for(let r=0;r0){let h=t[0],m=n+1;p=LT(i,h,m,a,e),d=zT(o,h,m,r,e),c=MT(s,h,m,e)}else for(let h=0;h-1)s[o]=0;else{let l=PT(t,n,o),u=a[l];e&1<-1)s[o]=Number.MAX_SAFE_INTEGER;else{let l=PT(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=cc(0,i,l-1),i}function VT(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=cc(0,i,l):i=cc(-1,i,l-1),i}function IB(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 SB(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 NB(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)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 y=0;y0?0:-1,c.strides[y]>0?v:v-1];if(x&&c.strides[y]<=0)throw Error("only stride 1 allowed on non-range indexing.");f=f&&c.strides[y]===1;let C=!!(c.beginMask&1<=v)throw Error(`slice index ${c.begin[y]} of dimension ${y} out of bounds.`)}else c.begin[y]=Jk(c.begin[y],0,c.strides[y],v,I,T),c.end[y]=Jk(c.end[y],1,c.strides[y],v,I,T);let D=c.strides[y]===1&&c.begin[y]===0&&c.end[y]===v;h=h&&D,m=m&&(y===0&&c.strides[y]===1||D)}else h=h&&c.strides[y]===1&&C,m=m&&(y===0&&c.strides[y]===1||C);let E,F=!1;if(c.beginValid&&c.endValid?(E=c.end[y]-c.begin[y],F=!0):x?(E=1,F=!0):C&&v>=0&&(c.strides[y]<0?E=-v:E=v,F=!0),F){let D;E===0||E<0!=c.strides[y]<0?D=0:D=Math.trunc(E/c.strides[y])+(E%c.strides[y]!==0?1:0),g.push(D)}else g.push(-1)}for(let y=0;y=0?b.push(g[x]):x===Dx&&b.push(1)}return{finalShapeSparse:b.filter((y,x)=>c.finalShapeGatherIndices[x]!==Dx),finalShape:b,isIdentity:h,sliceDim0:m,isSimpleSlice:f,begin:c.begin,end:c.end,strides:c.strides}}function TB(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 CB="4.7.0",GT=class{static sgd(e){return new ff(e)}static momentum(e,t,n=!1){return new Ww(e,t,n)}static rmsprop(e,t=.9,n=0,a=null,r=!1){return new Bw(e,t,n,a,r)}static adam(e=.001,t=.9,n=.999,a=null){return new Lw(e,t,n,a)}static adadelta(e=.001,t=.95,n=null){return new Pw(e,t,n)}static adamax(e=.002,t=.9,n=.999,a=null,r=0){return new zw(e,t,n,a,r)}static adagrad(e,t=.1){return new Ow(e,t)}},Ks=GT,_B=(()=>typeof requestAnimationFrame!="undefined"?requestAnimationFrame:typeof setImmediate!="undefined"?setImmediate:e=>e())();function Hw(){return new Promise(e=>_B(()=>e()))}var N={};Ee(N,{ERF_A1:()=>UB,ERF_A2:()=>GB,ERF_A3:()=>HB,ERF_A4:()=>qB,ERF_A5:()=>jB,ERF_P:()=>VB,PARALLELIZE_THRESHOLD:()=>qw,RowPartitionType:()=>tr,SELU_SCALE:()=>qT,SELU_SCALEALPHA:()=>HT,applyActivation:()=>hf,assertAndGetBroadcastShape:()=>ut,assertAxesAreInnerMostDims:()=>AO,assertParamsConsistent:()=>EB,assignToTypedArray:()=>QB,axesAreInnerMostDims:()=>aw,calculateShapes:()=>eT,checkEinsumDimSizes:()=>s4,checkPadOnDimRoundingMode:()=>Tn,combineLocations:()=>wN,combineRaggedTensorToTensorShapes:()=>FB,complexWithEvenIndex:()=>YB,complexWithOddIndex:()=>ZB,computeConv2DInfo:()=>ad,computeConv3DInfo:()=>cN,computeDefaultPad:()=>Lv,computeDilation2DInfo:()=>_P,computeOptimalWindowSize:()=>MB,computeOutAndReduceShapes:()=>kN,computeOutShape:()=>AB,computePool2DInfo:()=>pN,computePool3DInfo:()=>EP,convertConv2DDataFormat:()=>dN,decodeEinsumEquation:()=>a4,eitherStridesOrDilationsAreOne:()=>dr,expandShapeToKeepDim:()=>mi,exponent:()=>t4,exponents:()=>e4,fromStringArrayToUint8:()=>T4,fromUint8ToStringArray:()=>N4,getAxesPermutation:()=>IN,getBroadcastDims:()=>yN,getComplexWithIndex:()=>JB,getEinsumComputePath:()=>i4,getEinsumPermutation:()=>r4,getFusedBiasGradient:()=>df,getFusedDyActivation:()=>cf,getImageCenter:()=>PB,getInnerMostAxes:()=>FO,getPermuted:()=>LB,getRaggedRank:()=>DB,getReductionAxes:()=>Ut,getReshaped:()=>OB,getReshapedPermuted:()=>zB,getRowPartitionTypesHelper:()=>$B,getSliceBeginCoords:()=>WB,getSliceSize:()=>BB,getSparseFillEmptyRowsIndicesDenseShapeMismatch:()=>p4,getSparseFillEmptyRowsNegativeIndexErrorMessage:()=>c4,getSparseFillEmptyRowsOutOfRangeIndexErrorMessage:()=>d4,getSparseReshapeEmptyTensorZeroOutputDimErrorMessage:()=>f4,getSparseReshapeInputOutputMismatchErrorMessage:()=>b4,getSparseReshapeInputOutputMultipleErrorMessage:()=>g4,getSparseReshapeMultipleNegativeOneOutputDimErrorMessage:()=>h4,getSparseReshapeNegativeOutputDimErrorMessage:()=>m4,getSparseSegmentReductionIndicesOutOfRangeErrorMessage:()=>w4,getSparseSegmentReductionNegativeSegmentIdsErrorMessage:()=>y4,getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage:()=>x4,getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage:()=>v4,getUndoAxesPermutation:()=>rw,isIdentityPermutation:()=>o4,log:()=>zR,mergeRealAndImagArrays:()=>KB,prepareAndValidate:()=>RT,prepareSplitSize:()=>u4,segment_util:()=>jT,shouldFuse:()=>mf,slice_util:()=>Xt,splitRealAndImagArrays:()=>XB,stridesOrDilationsArePositive:()=>di,tupleValuesAreOne:()=>us,upcastType:()=>ga,validateDefaultValueShape:()=>RB,validateInput:()=>of,validateUpdateShape:()=>Tw,warn:()=>Jr});function EB(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 AB(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 $B(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 DB(e){return e.length===0?0:e[0]===tr.FIRST_DIM_SIZE?e.length-1:e.length}function RB(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 qw=30;function MB(e){return e<=qw?e:Gh(e,Math.floor(Math.sqrt(e)))}function PB(e,t,n){let a=n*(typeof e=="number"?e:e[0]),r=t*(typeof e=="number"?e:e[1]);return[a,r]}function OB(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 zB(e,t,n,a=!0){let r=[];a?r.push(e[0]/n):r.push(e[0]*n);for(let s=1;s/g,Qk=",",eI="...";function a4(e,t){e=e.replace(/\s/g,"");let n=(e.length-e.replace(n4,"").length)/ox.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 ("${ox}").`);let[a,r]=e.split(ox);A(a.indexOf(eI)===-1,()=>`The ellipsis notation ("${eI}") is not supported yet.`);let s=a.split(Qk),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 s4(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 i4(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 l4(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 p4(e){return`Received SparseTensor with denseShape[0] = 0 but + indices.shape[0] = ${e}`}function c4(e,t){return`indices(${e}, 0) is invalid: ${t} < 0`}function d4(e,t,n){return`indices(${e}, 0) is invalid: ${t} >= ${n}`}function h4(e,t){return`only one output dimension may be -1, not both ${e} and ${t}`}function m4(e,t){return`size ${e} must be non-negative, not ${t}`}function f4(){return"reshape cannot infer the missing input size for an empty tensor unless all specified input sizes are non-zero"}function g4(e,t){let n=bt(e),a=bt(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 b4(e,t){let n=bt(e),a=bt(t);return`Input to reshape is a tensor with ${n} dense values, but the requested shape has ${a}. inputShape=${e} outputShape=${t}`}function y4(){return"segment ids must be >= 0"}function x4(){return"segment ids are not increasing"}function v4(e,t){return`Segment id ${e} out of range [0, ${t}), possibly because segmentIds input is not sorted.`}function w4(e,t,n){return`Bad: indices[${e}] == ${t} out of range [0, ${n})`}var jT={};Ee(jT,{collectGatherOpShapeInfo:()=>S4,computeOutShape:()=>I4,segOpComputeOptimalWindowSize:()=>k4});function k4(e,t){let n=!1,a;for(e<=qw?(a=e,n=!0):a=Gh(e,Math.floor(Math.sqrt(e)));!n;)a>t||a===e?n=!0:a=Gh(e,a+1);return a}function I4(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(nKh(t))}catch(t){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${t}`)}}function T4(e){return e.map(t=>ed(t))}var mr={};Ee(mr,{nonMaxSuppressionV3Impl:()=>mT,nonMaxSuppressionV4Impl:()=>fT,nonMaxSuppressionV5Impl:()=>gT,whereImpl:()=>aT});GW();var KT={kernelName:Yl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,qo(se(n,"float32"),-1))}}},C4={kernelName:Ni,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=lt(se(n,"float32")),r=hn(pe(ve(1),a));return yt(he(e,r))}}}},_4={kernelName:Ti,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=hn(pe(lt(se(n,"float32")),1));return he(e,a)}}}},E4={kernelName:ys,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ut(n.shape,a.shape);return{a:()=>{let s=e,i=Ut(n.shape,r);return i.length>0&&(s=fe(s,i)),W(s,n.shape)},b:()=>{let s=e,i=Ut(a.shape,r);return i.length>0&&(s=fe(s,i)),W(s,a.shape)}}}},A4={kernelName:Ci,saveAllInputs:!0,gradFunc:(e,t)=>{let n={};return t.forEach((a,r)=>{n[r]=()=>e.clone()}),n}},F4={kernelName:Ql,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>qe(n)}}},$4={kernelName:eu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>qe(n)}}},D4={kernelName:_i,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,hn(pe(ve(1),lt(se(n,"float32")))))}}},R4={kernelName:Ei,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=hn(X(ve(1),lt(se(n,"float32"))));return he(e,a)}}}},M4={kernelName:$i,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ut(n.shape,a.shape);return{a:()=>{let s=X(lt(n),lt(a)),i=z(e,he(a,s)),o=Ut(n.shape,r);return o.length>0&&(i=fe(i,o)),W(i,n.shape)},b:()=>{let s=X(lt(n),lt(a)),i=yt(z(e,he(n,s))),o=Ut(a.shape,r);return o.length>0&&(i=fe(i,o)),W(i,a.shape)}}}},P4={kernelName:Ai,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,X(lt(se(n,"float32")),1))}}},O4={kernelName:Fi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,pe(ve(1),lt(se(n,"float32"))))}}};function L4(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($c,d,c);return p?W(h,[h.shape[1],h.shape[2],h.shape[3],h.shape[4]]):h}var z4=L({avgPool3dGrad_:L4}),W4={kernelName:tu,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{filterSize:r,strides:s,pad:i,dimRoundingMode:o}=n;return{x:()=>z4(e,a,r,s,i,o)}}};function B4(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(Fc,p,d);return u?W(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var V4=L({avgPoolGrad_:B4}),U4={kernelName:Di,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{filterSize:r,strides:s,pad:i}=n;return{x:()=>V4(e,a,r,s,i)}}},G4={kernelName:Ri,inputsToSave:["a","b"],gradFunc:(e,t,n)=>{let[a,r]=t,{transposeA:s,transposeB:i}=n;return!s&&!i?{a:()=>$e(e,r,!1,!0),b:()=>$e(a,e,!0,!1)}:!s&&i?{a:()=>$e(e,r,!1,!1),b:()=>$e(e,a,!0,!1)}:s&&!i?{a:()=>$e(r,e,!1,!0),b:()=>$e(a,e,!1,!1)}:{a:()=>$e(r,e,!0,!0),b:()=>$e(e,a,!0,!0)}}},H4={kernelName:nu,gradFunc:(e,t,n)=>{let{blockShape:a,crops:r}=n;return{x:()=>cd(e,a,r)}}},q4={kernelName:PS,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)}}},j4={kernelName:Mi,gradFunc:e=>({x:()=>e.clone()})},K4={kernelName:Pi,gradFunc:e=>({x:()=>qe(e)})},X4={kernelName:xs,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{clipValueMin:r,clipValueMax:s}=n;return{x:()=>rn(Fa(Rr(a,r),Ns(a,s)),e,qe(e))}}},Y4={kernelName:Rc,inputsToSave:["x"],gradFunc:KT.gradFunc},Z4={kernelName:su,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)}},J4={kernelName:Oi,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,{dilations:s,strides:i,pad:o,dataFormat:l}=n;return A(us(s),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`),{x:()=>Xv(a.shape,e,r,i,o,l),filter:()=>Dw(a,e,r.shape,i,o,l)}}},Q4={kernelName:Li,inputsToSave:["dy","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,{strides:s,pad:i,dataFormat:o,dimRoundingMode:l}=n;return{dy:()=>Rt(e,r,s,i,o,1,l),filter:()=>Dw(e,a,r.shape,s,i,o,l)}}};function eV(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(iu,o,l)}var tV=L({conv3DBackpropFilter_:eV}),nV={kernelName:zi,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let{dilations:a,strides:r,pad:s}=n;A(us(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:()=>gN(i.shape,e,o,r,s),filter:()=>tV(i,e,o.shape,r,s)}}},aV={kernelName:Wi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(yt(ef(se(n,"float32"))),e)}}},rV={kernelName:Bi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(tf(se(n,"float32")),e)}}},sV={kernelName:Vi,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r,exclusive:s,reverse:i}=n;return{x:()=>{let o=IN([r],a.rank),l=Vm(e,r,s,!i);return o!=null&&(l=De(l,o)),l}}}},iV={kernelName:Ui,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let{dilations:a,strides:r,pad:s,dimRoundingMode:i}=n,o=a==null?[1,1]:a;A(us(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(dr(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:()=>cT(l.shape,e,u,r,s,o,i),filter:()=>pT(l,e,u.shape,r,s,o,i)}}},oV={kernelName:Gi,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(Al,s,n),filter:()=>O.runKernel(Fl,i,n)}}},lV={kernelName:qi,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t,a={dy:e,y:n};return{x:()=>O.runKernel(cu,a)}}},uV={kernelName:ji,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t,a=z(yn(yt(lt(n))),2/Math.sqrt(Math.PI));return{x:()=>z(e,a)}}},pV={kernelName:Ki,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,n)}}},cV={kernelName:hu,inputsToSave:["input"],gradFunc:(e,t)=>{let[n]=t;return{input:()=>W(e,n.shape)}}},dV={kernelName:Xi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,yn(n))}}},hV={kernelName:Yi,gradFunc:e=>({x:()=>qe(e)})},mV={kernelName:Zi,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ut(n.shape,a.shape);return{a:()=>{let s=he(e,se(a,"float32")),i=Ut(n.shape,r);return i.length>0?W(fe(s,i),n.shape):s},b:()=>{let s=z(e,se(n,"float32")),i=Ut(a.shape,r);i.length>0&&(s=W(fe(s,i),a.shape));let o=lt(a);return yt(he(s,se(o,"float32")))}}}},fV={kernelName:Ji,inputsToSave:["x","mean","variance","scale"],gradFunc:(e,t,n)=>{let{varianceEpsilon:a}=n,[r,s,i,o]=t,l=o==null?ve(1):o,u=Ut(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,ve(-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)}}}},gV={kernelName:fu,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=tI(0,p),m=tI(p+1,p+1+c),f=nI([u,[l],d]),g=W(e,f),b=W(r,[l]),y=nI([[p],h,m]),x=De(g,y),v=uf(x,b,a.shape[i]),I=rw(y);return v=De(v,I),v},indices:()=>r}}};function tI(e,t){let n=[];for(let a=e;a{let[n,a]=t;return{a:()=>qe(n),b:()=>qe(a)}}},yV={kernelName:eo,gradFunc:e=>({x:()=>se(e,"float32")})},xV={kernelName:to,gradFunc:e=>({x:()=>qe(e)})},vV={kernelName:no,gradFunc:e=>({x:()=>qe(e)})},wV={kernelName:ao,gradFunc:e=>({x:()=>qe(e)})},kV={kernelName:ro,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{alpha:r}=n,s=Cn(a,0);return{x:()=>rn(s,e,z(e,r))}}},IV={kernelName:io,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,X(n,1))}}},SV={kernelName:so,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,se(n,"float32"))}}},NV={kernelName:LS,inputsToSave:[],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n;return{logits:()=>{let s=yn(a);return pe(e,z(fe(e,r,!0),s))}}}};function TV(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(Su,o,l)}var CV=L({localResponseNormalizationBackprop_:TV}),_V={kernelName:oo,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{depthRadius:s,bias:i,alpha:o,beta:l}=n;return{x:()=>CV(a,r,e,s,i,o,l)}}};function XT(e,t,n,a){return t.rankz(e,se(ea(n,t),e.dtype))}}var aI={kernelName:lo,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=XT(e,i,s,o);return{x:()=>l.x()}}},EV={kernelName:uo,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t;return{a:()=>z(e,se(Rr(n,a),"float32")),b:()=>z(e,se(Rl(n,a),"float32"))}}};function AV(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(zc,m,f);return h?W(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}var FV=L({maxPool3dGrad_:AV}),$V={kernelName:Nu,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=n;return{x:()=>FV(e,a,r,s,i,o,l)}}};function DV(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(Lc,p,d)}var RV=L({maxPoolGrad_:DV}),MV={kernelName:po,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{filterSize:s,strides:i,pad:o}=n;return{x:()=>RV(e,a,r,s,i,o)}}},PV={kernelName:co,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n,s=$a(r,a.shape),i=kN(a.shape,s)[1],o=bt(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)}}}},OV={kernelName:ho,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let a=n,{axis:r}=a,[s,i]=t,o=$a(r,s.shape),l=XT(e,i,s,o);return{x:()=>l.x()}}},LV={kernelName:mo,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t;return{a:()=>z(e,se(Ns(n,a),"float32")),b:()=>z(e,se(Cn(n,a),"float32"))}}},zV={kernelName:fo,inputsToSave:["x"],gradFunc:(e,t,n)=>{let a=t[0],{paddings:r}=n,s=r.map(i=>i[0]);return{x:()=>Ue(e,s,a.shape)}}},WV={kernelName:go,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ut(n.shape,a.shape);return{a:()=>{let s=Ut(n.shape,r);return s.length>0?W(fe(e,s),n.shape):e},b:()=>{let s=z(e,yt(tp(he(n,a)))),i=Ut(a.shape,r);return i.length>0?W(fe(s,i),a.shape):s}}}},BV={kernelName:bo,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ut(n.shape,a.shape);return{a:()=>{let s=z(e,se(a,"float32")),i=Ut(n.shape,r);return i.length>0?W(fe(s,i),n.shape):s},b:()=>{let s=z(e,se(n,"float32")),i=Ut(a.shape,r);return i.length>0?W(fe(s,i),a.shape):s}}}},VV={kernelName:Cu,gradFunc:e=>({x:()=>yt(e)})},UV={kernelName:yo,inputsToSave:["indices"],gradFunc:(e,t)=>{let n=t[0];return{indices:()=>Nt(n.shape,"float32")}}},GV={kernelName:$u,gradFunc:e=>({x:()=>qe(e)})},HV={kernelName:Du,saveAllInputs:!0,gradFunc:(e,t,n)=>{let{axis:a}=n;return pt(e,a).map(r=>()=>r)}},rI={kernelName:xo,inputsToSave:["x"],gradFunc:(e,t,n)=>{let a=t[0],{paddings:r}=n,s=r.map(i=>i[0]);return{x:()=>Ue(e,s,a.shape)}}},qV={kernelName:vo,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=se(i,"float32"),u=z(e,z(l,$r(s,pe(l,ve(1))))),p=Ut(s.shape,o);return p.length>0&&(u=fe(u,p)),W(u,s.shape)},b:()=>{let l=Cn(s,0),u=rn(l,ta(s),qe(s)),p=z(e,z(r,u)),d=Ut(i.shape,o);return d.length>0&&(p=fe(p,d)),W(p,i.shape)}}}},jV={kernelName:wo,inputsToSave:["x","alpha"],gradFunc:(e,t)=>{let[n,a]=t,r=Cn(n,0);return{x:()=>rn(r,e,z(e,a)),alpha:()=>{let s=rn(r,qe(e),z(e,n)),i=Ut(a.shape,e.shape);return i.length>0&&(s=fe(s,i)),W(s,a.shape)}}}};function KV(e,t,n){let a=e.shape.slice();a[n]=1;let r=W(t,a),s=xc(e,n,!0,!1),i=xc(e,n,!0,!0),o=z(s,i);return z(r,o)}function XV(e,t,n){let a=e.shape.length,r=a-n.length,s=N.getAxesPermutation(n,a),i=e;s!=null&&(i=De(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=KV(u,t,r);if(p=p.reshape(i.shape),s!=null){let d=N.getUndoAxesPermutation(s);p=De(p,d)}return p}var YV={kernelName:ko,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:()=>XV(a,e,s)}}},ZV={kernelName:Hi,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ut(n.shape,a.shape);return{a:()=>{let s=he(e,se(a,"float32")),i=Ut(n.shape,r);return i.length>0?W(fe(s,i),n.shape):s},b:()=>{let s=z(e,se(n,"float32")),i=Ut(a.shape,r);i.length>0&&(s=W(fe(s,i),a.shape));let o=lt(a);return yt(he(s,se(o,"float32")))}}}},JV={kernelName:Io,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,yt(lt(n)))}}},QV={kernelName:Co,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t,a=z(Ns(n,6),qo(n));return{x:()=>z(e,se(a,"float32"))}}},eU={kernelName:So,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,se(qo(n),"float32"))}}},tU={kernelName:Ru,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>W(e,n.shape)}}},nU={kernelName:To,inputsToSave:["images"],gradFunc:(e,t,n)=>{let[a]=t,r={dy:e,images:a};return{images:()=>O.runKernel(Pu,r,n)}}},aU={kernelName:No,inputsToSave:["images"],gradFunc:(e,t,n)=>{let[a]=t,r={dy:e,images:a};return{images:()=>O.runKernel(Mu,r,n)}}},rU={kernelName:_o,gradFunc:(e,t,n)=>{let{dims:a}=n,r=$a(a,e.shape);return{x:()=>ba(e,r)}}},sU={kernelName:Eo,gradFunc:e=>({x:()=>qe(e)})},iU={kernelName:Ao,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>yt(he(e,z($r(n,1.5),2)))}}},oU={kernelName:Wu,inputsToSave:["condition"],gradFunc:(e,t)=>{let[n]=t;return{condition:()=>se(qe(n),"float32"),t:()=>z(e,se(n,e.dtype)),e:()=>z(e,se(ud(n),e.dtype))}}},lU={kernelName:Fo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=Cn(n,ve(0)),r=ve(HT),s=ve(qT),i=z(e,s),o=z(z(e,r),yn(se(n,"float32")));return rn(a,i,o)}}}},uU={kernelName:Mo,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,z(n,pe(ve(1),n)))}}},pU={kernelName:Ro,gradFunc:e=>({x:()=>qe(e)})},cU={kernelName:$o,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(sd(se(n,"float32")),e)}}},dU={kernelName:Do,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(Bm(se(n,"float32")),e)}}},hU={kernelName:Bu,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{begin:r,size:s}=n,i=a.shape,[o,l]=UT(a,r,s),u=[];for(let p=0;pxa(e,u)}}},mU={kernelName:zo,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))}}},fU={kernelName:Po,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,ma(n))}}},sI={kernelName:Vu,gradFunc:(e,t,n)=>{let{blockShape:a,paddings:r}=n;return{x:()=>rd(e,a,r)}}},iI={kernelName:Uu,gradFunc:(e,t,n)=>{let{axis:a}=n;return{x:()=>et(e,a)}}},gU={kernelName:Oo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,z(hn(se(n,"float32")),2))}}},bU={kernelName:Hc,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,z(se(n,"float32"),2))}}},yU={kernelName:Wo,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ve(2);return{a:()=>z(e,z(r,pe(n,a))),b:()=>z(e,z(r,pe(a,n)))}}},xU={kernelName:ws,gradFunc:e=>({x:()=>qe(e)})},vU={kernelName:Bo,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ut(n.shape,a.shape);return{a:()=>{let s=e,i=Ut(n.shape,r);return i.length>0&&(s=fe(s,i)),W(s,n.shape)},b:()=>{let s=e,i=Ut(a.shape,r);return i.length>0&&(s=fe(s,i)),W(yt(s),a.shape)}}}},wU={kernelName:Lo,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,Jn(a.shape,"float32"));return{x:()=>o}}},kU={kernelName:Vo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,lt(sd(n)))}}},IU={kernelName:Uo,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(pe(ve(1),lt(n)),e)}}},SU={kernelName:vs,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=rw(r);return{x:()=>De(e,s)}}},TU={kernelName:Xu,gradFunc:(e,t,n)=>{let a=n,{axis:r}=a;return{value:()=>Dt(e,r)}}},CU={kernelName:Zc,inputsToSave:["segmentIds"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>_U(e,n)}}};function _U(e,t){let n=hr(t,qe(t)),a=np(e,n),r=Rr(t,ve(0,"int32")),s=a.rank-r.rank;for(let o=0;o({x:()=>qe(e)})},AU=[KT,C4,_4,E4,A4,F4,$4,D4,R4,M4,P4,O4,W4,U4,G4,H4,q4,j4,K4,X4,Y4,Z4,Q4,J4,nV,aV,rV,sV,iV,oV,ZV,lV,uV,pV,cV,dV,mV,hV,fV,gV,bV,yV,xV,vV,wV,kV,IV,SV,NV,_V,aI,aI,EV,$V,MV,PV,OV,LV,zV,WV,BV,VV,UV,GV,HV,rI,rI,qV,jV,YV,JV,QV,eU,tU,nU,aU,rU,sU,iU,oU,lU,uU,pU,cU,dU,hU,mU,fU,sI,sI,iI,iI,gU,yU,bU,xU,vU,wU,kU,IU,SU,NU,TU,CU,EU];for(let e of AU)zS(e);Q().prototype.abs=function(){return this.throwIfDisposed(),Wt(this)};Q().prototype.acos=function(){return this.throwIfDisposed(),Av(this)};Q().prototype.acosh=function(){return this.throwIfDisposed(),Fv(this)};Q().prototype.add=function(e){return this.throwIfDisposed(),X(this,e)};Q().prototype.all=function(e,t){return this.throwIfDisposed(),Lm(this,e,t)};Q().prototype.any=function(e,t){return this.throwIfDisposed(),gc(this,e,t)};Q().prototype.argMax=function(e){return this.throwIfDisposed(),ci(this,e)};Q().prototype.argMin=function(e){return this.throwIfDisposed(),$v(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(),se(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(),Dv(this)};Q().prototype.asinh=function(){return this.throwIfDisposed(),Rv(this)};Q().prototype.atan=function(){return this.throwIfDisposed(),Mv(this)};Q().prototype.atan2=function(e){return this.throwIfDisposed(),Pv(this,e)};Q().prototype.atanh=function(){return this.throwIfDisposed(),Ov(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(),rd(this,e,t)};Q().prototype.batchNorm=function(e,t,n,a,r){return this.throwIfDisposed(),Is(this,e,t,n,a,r)};Q().prototype.broadcastTo=function(e){return this.throwIfDisposed(),ai(this,e)};Q().prototype.cast=function(e){return this.throwIfDisposed(),se(this,e)};Q().prototype.ceil=function(){return this.throwIfDisposed(),Gv(this)};Q().prototype.clipByValue=function(e,t){return this.throwIfDisposed(),sn(this,e,t)};Q().prototype.concat=function(e,t){return this.throwIfDisposed(),e instanceof Te&&(e=[e]),et([this,...e],t)};Q().prototype.conv1d=function(e,t,n,a,r,s){return this.throwIfDisposed(),zm(this,e,t,n,a,r,s)};Q().prototype.conv2dTranspose=function(e,t,n,a,r){return this.throwIfDisposed(),Wm(this,e,t,n,a,r)};Q().prototype.conv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),Rt(this,e,t,n,a,r,s)};Q().prototype.cos=function(){return this.throwIfDisposed(),sd(this)};Q().prototype.cosh=function(){return this.throwIfDisposed(),Bm(this)};Q().prototype.cumprod=function(e,t,n){return this.throwIfDisposed(),xc(this,e,t,n)};Q().prototype.cumsum=function(e,t,n){return this.throwIfDisposed(),Vm(this,e,t,n)};Q().prototype.depthToSpace=function(e,t){return this.throwIfDisposed(),Jv(this,e,t)};Q().prototype.depthwiseConv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),Ss(this,e,t,n,a,r,s)};Q().prototype.dilation2d=function(e,t,n,a,r){return this.throwIfDisposed(),Qv(this,e,t,n,a,r)};Q().prototype.divNoNan=function(e){return this.throwIfDisposed(),ew(this,e)};Q().prototype.div=function(e){return this.throwIfDisposed(),he(this,e)};Q().prototype.dot=function(e){return this.throwIfDisposed(),tw(this,e)};Q().prototype.elu=function(){return this.throwIfDisposed(),Qu(this)};Q().prototype.equal=function(e){return this.throwIfDisposed(),ea(this,e)};Q().prototype.erf=function(){return this.throwIfDisposed(),nw(this)};Q().prototype.euclideanNorm=function(e,t){return this.throwIfDisposed(),sw(this,e,t)};Q().prototype.exp=function(){return this.throwIfDisposed(),yn(this)};Q().prototype.expandDims=function(e){return this.throwIfDisposed(),nn(this,e)};Q().prototype.expm1=function(){return this.throwIfDisposed(),iw(this)};Q().prototype.fft=function(){return this.throwIfDisposed(),md(this)};Q().prototype.flatten=function(){return this.throwIfDisposed(),W(this,[this.size])};Q().prototype.floor=function(){return this.throwIfDisposed(),tp(this)};Q().prototype.floorDiv=function(e){return this.throwIfDisposed(),Om(this,e)};Q().prototype.gather=function(e,t,n){return this.throwIfDisposed(),np(this,e,t,n)};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(),Ll(this)};Q().prototype.irfft=function(){return this.throwIfDisposed(),af(this)};Q().prototype.isFinite=function(){return this.throwIfDisposed(),ow(this)};Q().prototype.isInf=function(){return this.throwIfDisposed(),lw(this)};Q().prototype.isNaN=function(){return this.throwIfDisposed(),uw(this)};Q().prototype.leakyRelu=function(e){return this.throwIfDisposed(),od(this,e)};Q().prototype.lessEqual=function(e){return this.throwIfDisposed(),Ns(this,e)};Q().prototype.less=function(e){return this.throwIfDisposed(),Rl(this,e)};Q().prototype.localResponseNormalization=function(e,t,n,a){return this.throwIfDisposed(),pw(this,e,t,n,a)};Q().prototype.logSigmoid=function(){return this.throwIfDisposed(),cw(this)};Q().prototype.logSoftmax=function(e){return this.throwIfDisposed(),Hm(this,e)};Q().prototype.logSumExp=function(e,t){return this.throwIfDisposed(),qm(this,e,t)};Q().prototype.log=function(){return this.throwIfDisposed(),ta(this)};Q().prototype.log1p=function(){return this.throwIfDisposed(),ld(this)};Q().prototype.logicalAnd=function(e){return this.throwIfDisposed(),Fa(this,e)};Q().prototype.logicalNot=function(){return this.throwIfDisposed(),ud(this)};Q().prototype.logicalOr=function(e){return this.throwIfDisposed(),jm(this,e)};Q().prototype.logicalXor=function(e){return this.throwIfDisposed(),dw(this,e)};Q().prototype.matMul=function(e,t,n){return this.throwIfDisposed(),$e(this,e,t,n)};Q().prototype.maxPool=function(e,t,n,a){return this.throwIfDisposed(),Mt(this,e,t,n,a)};Q().prototype.max=function(e,t){return this.throwIfDisposed(),fa(this,e,t)};Q().prototype.maximum=function(e){return this.throwIfDisposed(),hr(this,e)};Q().prototype.mean=function(e,t){return this.throwIfDisposed(),Et(this,e,t)};Q().prototype.min=function(e,t){return this.throwIfDisposed(),Dl(this,e,t)};Q().prototype.minimum=function(e){return this.throwIfDisposed(),ps(this,e)};Q().prototype.mirrorPad=function(e,t){return this.throwIfDisposed(),mw(this,e,t)};Q().prototype.mod=function(e){return this.throwIfDisposed(),fw(this,e)};Q().prototype.mul=function(e){return this.throwIfDisposed(),z(this,e)};Q().prototype.neg=function(){return this.throwIfDisposed(),yt(this)};Q().prototype.norm=function(e,t,n){return this.throwIfDisposed(),ep(this,e,t,n)};Q().prototype.notEqual=function(e){return this.throwIfDisposed(),fi(this,e)};Q().prototype.oneHot=function(e,t=1,n=0){return this.throwIfDisposed(),Ml(this,e,t,n)};Q().prototype.onesLike=function(){return this.throwIfDisposed(),na(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(),gw(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(),dd(this,e)};Q().prototype.prod=function(e,t){return this.throwIfDisposed(),bw(this,e,t)};Q().prototype.reciprocal=function(){return this.throwIfDisposed(),kw(this)};Q().prototype.relu=function(){return this.throwIfDisposed(),Ke(this)};Q().prototype.relu6=function(){return this.throwIfDisposed(),Ym(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(),bT(this,e,t,n)};Q().prototype.resizeNearestNeighbor=function(e,t,n){return this.throwIfDisposed(),yT(this,e,t,n)};Q().prototype.reverse=function(e){return this.throwIfDisposed(),ba(this,e)};Q().prototype.rfft=function(){return this.throwIfDisposed(),fd(this)};Q().prototype.round=function(){return this.throwIfDisposed(),Zm(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(),Cs(this,e,t,n,a,r,s)};Q().prototype.sigmoid=function(){return this.throwIfDisposed(),ma(this)};Q().prototype.sign=function(){return this.throwIfDisposed(),Iw(this)};Q().prototype.sin=function(){return this.throwIfDisposed(),ef(this)};Q().prototype.sinh=function(){return this.throwIfDisposed(),tf(this)};Q().prototype.slice=function(e,t){return this.throwIfDisposed(),Ue(this,e,t)};Q().prototype.softmax=function(e){return this.throwIfDisposed(),Xa(this,e)};Q().prototype.softplus=function(){return this.throwIfDisposed(),Go(this)};Q().prototype.spaceToBatchND=function(e,t){return this.throwIfDisposed(),cd(this,e,t)};Q().prototype.split=function(e,t){return this.throwIfDisposed(),zn(this,e,t)};Q().prototype.sqrt=function(){return this.throwIfDisposed(),hn(this)};Q().prototype.square=function(){return this.throwIfDisposed(),lt(this)};Q().prototype.squaredDifference=function(e){return this.throwIfDisposed(),rf(this,e)};Q().prototype.squeeze=function(e){return this.throwIfDisposed(),_s(this,e)};Q().prototype.stack=function(e,t){this.throwIfDisposed();let n=e instanceof Te?[this,e]:[this,...e];return Dt(n,t)};Q().prototype.step=function(e){return this.throwIfDisposed(),qo(this,e)};Q().prototype.stridedSlice=function(e,t,n,a,r,s,i,o){return this.throwIfDisposed(),Sw(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(),Nw(this)};Q().prototype.tanh=function(){return this.throwIfDisposed(),hi(this)};Q().prototype.tile=function(e){return this.throwIfDisposed(),Ln(this,e)};Q().prototype.toBool=function(){return this.throwIfDisposed(),se(this,"bool")};Q().prototype.toFloat=function(){return this.throwIfDisposed(),se(this,"float32")};Q().prototype.toInt=function(){return this.throwIfDisposed(),se(this,"int32")};Q().prototype.topk=function(e,t){return this.throwIfDisposed(),Cw(this,e,t)};Q().prototype.transpose=function(e){return this.throwIfDisposed(),De(this,e)};Q().prototype.unique=function(e){return this.throwIfDisposed(),_w(this,e)};Q().prototype.unsortedSegmentSum=function(e,t){return this.throwIfDisposed(),uf(this,e,t)};Q().prototype.unstack=function(e){return this.throwIfDisposed(),pt(this,e)};Q().prototype.where=function(e,t){return this.throwIfDisposed(),rn(e,this,t)};Q().prototype.zerosLike=function(){return this.throwIfDisposed(),qe(this)};var Sr=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Sr.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)}},Oe=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Oe.prototype)}},YT=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,YT.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 Sa={};function jw(e){if(e==null)return null;let t={};return t.className=e.getClassName(),t.config=e.getConfig(),t}function Rx(e){if(!(e==null||typeof e!="object"))if(Array.isArray(e))e.forEach(t=>Rx(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:Rx(a))}}}function bd(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: 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: 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];Tx(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 gU(e,t){return et?1:0}function gh(e,t){return-1*gU(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 bU(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 Uo(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 Ww(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 nn(e,t){Array.isArray(e)?(v.assert(e.length>0,()=>`${t} is unexpectedly an empty array.`),e.forEach((n,a)=>nn(n,`element ${a+1} of ${t}`))):v.assert(Number.isInteger(e)&&e>0,()=>`Expected ${t} to be a positive integer, but got ${VT(e)}.`)}function VT(e){return e===null?"null":Array.isArray(e)?"["+e.map(t=>VT(t)).join(",")+"]":typeof e=="string"?`"${e}"`:`${e}`}function yU(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 gl.set(n,1),n}else return e}var CU=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function KT(e){return!!e.match(CU)}function _U(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 qa(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=dd(e,1);return Cx(n,[1,t,1])})}function AU(e){let t=[rs(e.shape)];return W(e,t)}function FU(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 ri(e,t,n){return P(()=>{switch(e.rank){case 1:return od(e,t,n);case 2:return tf(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 $l(e,[t,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3]]);case 5:return Ue(e,[t,0,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3],e.shape[4]]);case 6:return Ue(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 tx(e,t,n){return P(()=>{switch(e.rank){case 1:return od(e,t,n);case 2:return tf(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 $l(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 yh(e,t,n,a){return P(()=>{switch(e.rank){case 1:return od(e,t,n);case 2:switch(a){case 1:return ri(e,t,n);case 2:return tx(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 ri(e,t,n);case 2:return Wo(e,[0,t,0],[e.shape[0],n,e.shape[2]]);case 3:return tx(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 ri(e,t,n);case 2:return $l(e,[0,t,0,0],[e.shape[0],n,e.shape[2],e.shape[3]]);case 3:return $l(e,[0,0,t,0],[e.shape[0],e.shape[1],n,e.shape[3]]);case 4:return tx(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 Bw(e,t=-1){let n;return t<0&&(n=e[0].rank,n!==0?t=n:t=0),t===e[0].rank&&(t=-1),Qe(e,t)}function eI(e,t){switch(e.rank){case 1:return Ov([e,t]);case 2:return Lv([e,t],0);case 3:return zv([e,t],0);case 4:return Wv([e,t],0);default:throw new V(`concatAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}}function Cx(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 gf(e,t=0,n=1,a,r){return Km(e,t,n,a,r)}function or(e,t,n,a){if(e.rank<2||t.rank<2)throw new Oe(`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 Oe(`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 Rl.matMul({a:e,b:t,transposeA:!1,transposeB:!1,bias:a?_x(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(De(t,p),[l,-1]);let d=[...r,...u],c=!1,h=!1;return W(Rl.matMul({a:e,b:t,transposeA:c,transposeB:h,bias:a?_x(e.rank,a,ja()):null,activation:n}),d)}}function XT(e,t,n){return P(()=>(Array.isArray(t)?t=je(t,"int32"):t=ie(t,"int32"),ep(e,t,n)))}function hd(e){return z(e,e)}function _x(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=ja()),Pt(n),X(e,_x(e.rank,t,n))))}function $U(e,t=1){if(t!==1)throw new Oe(`Support for alpha values other than 1 (${t}) is not implemented yet.`);return Zu(e)}function DU(e){return P(()=>he(e,X(Wt(e),1)))}function YT(e,t,n,a){return P(()=>Iw(e,t,n,a))}function RU(e){return P(()=>{let t=X(.5,z(.2,e));return rn(t,0,1)})}function md(e,t,n=!1){return n?e():t()}var MU=["fanIn","fanOut","fanAvg"],PU=["normal","uniform","truncatedNormal"];function OU(e){Uo(MU,"FanMode",e)}function LU(e){Uo(PU,"Distribution",e)}var Ra=class extends ne.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}},Vw=class extends Ra{apply(e,t){return Nt(e,t)}};Vw.className="Zeros";ne.registerClass(Vw);var bf=class extends Ra{apply(e,t){return Jn(e,t)}};bf.className="Ones";ne.registerClass(bf);var Uw=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(ve(this.value),Jn(e,t)))}getConfig(){return{value:this.value}}};Uw.className="Constant";ne.registerClass(Uw);var Gw=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 Ns(e,this.minval,this.maxval,t,this.seed)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}};Gw.className="RandomUniform";ne.registerClass(Gw);var Hw=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 Oe(`randomNormal 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}}};Hw.className="RandomNormal";ne.registerClass(Hw);var qw=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 Oe(`truncatedNormal does not support dType ${t}.`);return of(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};qw.className="TruncatedNormal";ne.registerClass(qw);var jw=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,Vm(e[0]))})}getConfig(){return{gain:this.gain}}};jw.className="Identity";ne.registerClass(jw);function zU(e,t="channelsLast"){let n,a;if(Pt(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 Vn=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,OU(this.mode),this.distribution=e.distribution==null?"normal":e.distribution,LU(this.distribution),this.seed=e.seed}apply(e,t){let n=zU(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 Oe(`${this.getClassName()} does not support dType ${t}.`);return of(e,0,i,t,this.seed)}else{let i=Math.sqrt(3*s);return Ns(e,-i,i,t,this.seed)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}};Vn.className="VarianceScaling";ne.registerClass(Vn);var yf=class extends Vn{constructor(e){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Vn.className}};yf.className="GlorotUniform";ne.registerClass(yf);var xf=class extends Vn{constructor(e){super({scale:1,mode:"fanAvg",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Vn.className}};xf.className="GlorotNormal";ne.registerClass(xf);var vf=class extends Vn{constructor(e){super({scale:2,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Vn.className}};vf.className="HeNormal";ne.registerClass(vf);var wf=class extends Vn{constructor(e){super({scale:2,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Vn.className}};wf.className="HeUniform";ne.registerClass(wf);var kf=class extends Vn{constructor(e){super({scale:1,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Vn.className}};kf.className="LeCunNormal";ne.registerClass(kf);var If=class extends Vn{constructor(e){super({scale:1,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Vn.className}};If.className="LeCunUniform";ne.registerClass(If);var Kw=class extends Ra{constructor(e){super(),this.DEFAULT_GAIN=1,this.ELEMENTS_WARN_SLOW=2e3,this.gain=e.gain==null?this.DEFAULT_GAIN:e.gain,this.seed=e.seed}apply(e,t){return P(()=>{if(e.length<2)throw new Oe("Shape must be at least 2D.");if(t!=="int32"&&t!=="float32"&&t!==void 0)throw new TypeError(`Unsupported data type ${t}.`);t=t;let n=v.sizeFromShape(e.slice(0,-1)),a=e[e.length-1],r=n*a;r>this.ELEMENTS_WARN_SLOW&&console.warn(`Orthogonal initializer is being called on a matrix with more than ${this.ELEMENTS_WARN_SLOW} (${r}) elements: Slowness may result.`);let s=[Math.max(a,n),Math.min(a,n)],i=gf(s,0,1,t,this.seed),o=Cw.qr(i,!1),l=o[0],u=o[1].flatten().stridedSlice([0],[Math.min(a,n)*Math.min(a,n)],[Math.min(a,n)+1]);return l=z(l,u.sign()),na*r);return t}var aI="Variable",ZT=class{constructor(e,t="float32",n=aI,a=!0,r=null){this.dtype=t==null?"float32":t,this.shape=e.shape,this.id=GT(),n=n==null?aI:n,this.originalName=qT(n),this.name=jT(this.originalName),this.trainable_=a,this.constraint=r,this.val=ww(e,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(e){return this.assertNotDisposed(),WU(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 WU(e,t){if(e.shape.toString()!==t.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(e.shape)+" vs. "+JSON.stringify(t.shape))}function Ax(e){return e.map(t=>t.read())}function Xw(e){e.forEach(t=>{t[0].write(t[1])})}var Bt=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=GT(),s!=null&&(this.originalName=qT(s),this.name=jT(this.originalName)),this.rank=t.length}},BU=0,Sf=class{constructor(e,t){this.callArgs=t,this.id=BU++,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}}},VU=0,Be=class extends ne.Serializable{constructor(e={}){super(),this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=VU++,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)+"_"+ff(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 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=vt(e),this.inputSpec==null||this.inputSpec.length===0)return;let t=vt(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 vt(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=vt(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 Oe("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return s}else{let s=UU(e),i=this.computeOutputShape(s),o,l=GU(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,vt(e),t,this.name,p)):o=new Va(l,i,this,vt(e),t,this.name),this.addInboundNode(e,o,null,null,s,i,t),this._refCount++,this.activityRegularizer!=null)throw new Oe("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 Ba(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return Kh(this.weights)}build(e){this.built=!0}getWeights(e=!1){return Ax(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=Ax(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=vt(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=vt(e);t=vt(t),n=vt(n),a=vt(a),r=jh(r),s=jh(s);let l=[],u=[],p=[];for(let d of o)l.push(d.sourceLayer),u.push(d.nodeIndex),p.push(d.tensorIndex);new Sf({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 UU(e){e=vt(e);let t=[];for(let n of e)t.push(n.shape);return On(t)}function GU(e){return"float32"}function JT(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=Xh.get(p),c;if(d==null){let m=jU(i,t);d=m.sorted,c=m.recipientCounts,Xh.put(p,d),Yh.put(p,c)}c={},r||Object.assign(c,Yh.get(p));let h=new ei(t);for(let m=0;ma.maxNumTensors&&(a.maxNumTensors=F),F0,()=>"Expected at least one fetch, got none");let n=[],a={};if(e.length===1){let r=rI(e[0],t);n=r.sorted,a=r.recipientMap}else{let r=new Set;for(let s of e){let{sorted:i,recipientMap:o}=rI(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:KU(a)}}function KU(e){let t={};for(let n in e)t[n]=e[n].size;return t}function rI(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 XU(e){let t;if(e.sourceLayer.inboundNodes.length===1)t=e.sourceLayer.output;else{let n=null;for(let a=0;a100,qU);var e2={};Ee(e2,{maxNorm:()=>ZU,minMaxNorm:()=>eG,nonNeg:()=>QU,unitNorm:()=>JU});function Yw(e,t){return P(()=>hn(fe(z(e,e),t,!0)))}var fd=class extends ne.Serializable{getConfig(){return{}}},Zw=class extends fd{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=Yw(e,this.axis),n=rn(t,0,this.maxValue);return z(e,he(n,X(jt(),t)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}};Zw.className="MaxNorm";ne.registerClass(Zw);var Jw=class extends fd{constructor(e){super(),this.defaultAxis=0,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return P(()=>he(e,X(jt(),Yw(e,this.axis))))}getConfig(){return{axis:this.axis}}};Jw.className="UnitNorm";ne.registerClass(Jw);var Qw=class extends fd{apply(e){return Ke(e)}};Qw.className="NonNeg";ne.registerClass(Qw);var e0=class extends fd{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=Yw(e,this.axis),n=X(z(this.rate,rn(t,this.minValue,this.maxValue)),z(1-this.rate,t));return z(e,he(n,X(jt(),t)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}};e0.className="MinMaxNorm";ne.registerClass(e0);var sI={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function Xt(e){return zw(e)}function iI(e,t={}){return cd(e,ne.SerializationMap.getMap().classNameMap,t,"constraint")}function Yt(e){if(e==null)return null;if(typeof e=="string"){let t={className:e in sI?sI[e]:e,config:{}};return iI(t)}else return e instanceof fd?e:iI(e)}function ZU(e){return new Zw(e)}function JU(e){return new Jw(e)}function QU(){return new Qw}function eG(e){return new e0(e)}var t2={};Ee(t2,{constant:()=>aG,glorotNormal:()=>pG,glorotUniform:()=>uG,heNormal:()=>cG,heUniform:()=>dG,identity:()=>oG,leCunNormal:()=>hG,leCunUniform:()=>mG,ones:()=>nG,orthogonal:()=>fG,randomNormal:()=>sG,randomUniform:()=>rG,truncatedNormal:()=>iG,varianceScaling:()=>lG,zeros:()=>tG});function tG(){return new Vw}function nG(){return new bf}function aG(e){return new Uw(e)}function rG(e){return new Gw(e)}function sG(e){return new Hw(e)}function iG(e){return new qw(e)}function oG(e){return new jw(e)}function lG(e){return new Vn(e)}function uG(e){return new yf(e)}function pG(e){return new xf(e)}function cG(e){return new vf(e)}function dG(e){return new wf(e)}function hG(e){return new kf(e)}function mG(e){return new If(e)}function fG(e){return new Kw(e)}var n2={};Ee(n2,{Layer:()=>Be,RNN:()=>mr,RNNCell:()=>vd,activation:()=>UH,add:()=>JH,alphaDropout:()=>M6,average:()=>QH,averagePooling1d:()=>c1,averagePooling2d:()=>d1,averagePooling3d:()=>h1,avgPool1d:()=>l6,avgPool2d:()=>p6,avgPool3d:()=>d6,avgPooling1d:()=>u6,avgPooling2d:()=>c6,avgPooling3d:()=>h6,batchNormalization:()=>s6,bidirectional:()=>C6,categoryEncoding:()=>W6,centerCrop:()=>L6,concatenate:()=>e6,conv1d:()=>RH,conv2d:()=>MH,conv2dTranspose:()=>PH,conv3d:()=>OH,conv3dTranspose:()=>LH,convLstm2d:()=>I6,convLstm2dCell:()=>S6,cropping2D:()=>WH,dense:()=>GH,depthwiseConv2d:()=>VH,dot:()=>r6,dropout:()=>HH,elu:()=>_H,embedding:()=>ZH,flatten:()=>jH,gaussianDropout:()=>R6,gaussianNoise:()=>D6,globalAveragePooling1d:()=>m6,globalAveragePooling2d:()=>f6,globalMaxPool1d:()=>E6,globalMaxPool2d:()=>A6,globalMaxPooling1d:()=>X2,globalMaxPooling2d:()=>Y2,gru:()=>b6,gruCell:()=>y6,input:()=>v2,inputLayer:()=>CH,layerNormalization:()=>i6,leakyReLU:()=>AH,lstm:()=>x6,lstmCell:()=>v6,masking:()=>P6,maxPool1d:()=>F6,maxPool2d:()=>$6,maxPooling1d:()=>Z2,maxPooling2d:()=>J2,maxPooling3d:()=>g6,maximum:()=>t6,minimum:()=>n6,multiply:()=>a6,permute:()=>YH,prelu:()=>FH,randomWidth:()=>B6,reLU:()=>EH,repeatVector:()=>KH,rescaling:()=>O6,reshape:()=>XH,resizing:()=>z6,rnn:()=>N6,separableConv2d:()=>zH,simpleRNN:()=>w6,simpleRNNCell:()=>k6,softmax:()=>$H,spatialDropout1d:()=>qH,stackedRNNCells:()=>T6,thresholdedReLU:()=>DH,timeDistributed:()=>_6,upSampling2d:()=>BH,zeroPadding2d:()=>o6});async function Xr(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;sX(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(),Ht(t[n])}))}},s2=class extends Ol{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 i2(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 l2(e,t,n,a,r,s,i,o,l){let u=new s2,p=[new bG,...Ca.createCallbacks(t)];e!=null&&p.push(...e),p.push(u);let d=new r2(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 cd(e,ne.SerializationMap.getMap().classNameMap,t,"layer",n)}function Zh(e,t){return P(()=>{e.dtype!=="float32"&&(e=ie(e,"float32"));let n=fe(hd(e),t,!0),a=xn(n.shape,jt()),r=hn(dr(n,a));return he(e,r)})}function Go(e,t){return P(()=>Et(hd(pe(t,e)),-1))}function Nf(e,t){return P(()=>Et(Wt(pe(t,e)),-1))}function ap(e,t){return P(()=>{let n=pe(e,t),a=rn(Wt(e),jt(),Number.MAX_VALUE),r=Wt(he(n,a));return z(100,Et(r,-1))})}function yG(e,t){return P(()=>{let n=rn(t,jt(),Number.MAX_VALUE),a=ta(X(1,n)),r=rn(e,jt(),Number.MAX_VALUE),s=ta(X(1,r));return Et(hd(pe(a,s)),-1)})}function xG(e,t){return P(()=>{let n=dr(0,pe(1,z(e,t)));return Et(hd(n),-1)})}function vG(e,t){return P(()=>{let n=dr(0,pe(1,z(e,t)));return Et(n,-1)})}function wG(e,t){return P(()=>{let n=fe(z(e,t),-1),a=fa(z(pe(1,e),t),-1);return dr(0,X(1,pe(a,n)))})}function kG(e,t){return P(()=>{let n=Math.log(2),a=pe(t,e),r=pe(X(a,zo(z(-2,a))),n);return Et(r,-1)})}function bc(e,t,n=!1){return P(()=>{if(n)t=Xa(t);else{let a=fe(t,t.shape.length-1,!0);t=he(t,a)}return t=rn(t,jt(),1-jt()),yt(fe(z(ie(e,"float32"),ta(t)),t.shape.length-1))})}function Jh(e,t,n=!1){return P(()=>{let a=ie(Qu(AU(e)),"int32");t=rn(t,jt(),1-jt());let r=t.shape,s=W(Al(a,r[r.length-1]),r);return bc(s,t,n)})}function IG(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=Ke(t),a=yt(Wt(t));return X(pe(n,z(t,e)),nd(yn(a)))})}function Tf(e,t){return P(()=>{let n;return n=rn(t,jt(),1-jt()),n=ta(he(n,pe(1,n))),Et(IG(e,n),-1)})}function SG(e,t){return P(()=>{let n=rn(e,jt(),1),a=rn(t,jt(),1);return fe(z(e,ta(he(n,a))),-1)})}function NG(e,t){return P(()=>{let n=ta(X(jt(),t));return Et(pe(t,z(e,n)),-1)})}function t0(e,t){return P(()=>{let n=Zh(e,-1),a=Zh(t,-1),r=z(n,a);return yt(fe(r,-1))})}var Qh={meanSquaredError:Go,meanAbsoluteError:Nf,meanAbsolutePercentageError:ap,meanSquaredLogarithmicError:yG,squaredHinge:xG,hinge:vG,categoricalHinge:wG,logcosh:kG,categoricalCrossentropy:bc,sparseCategoricalCrossentropy:Jh,binaryCrossentropy:Tf,kullbackLeiblerDivergence:SG,poisson:NG,cosineProximity:t0};function nx(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 n0(e,t){return P(()=>{let n=z(.5,na(t)),a=ir(Cn(t,n),e.dtype);return Et(ea(e,a),-1)})}function a0(e,t){return P(()=>ir(ea(pi(e,-1),pi(t,-1)),"float32"))}function u2(e,t){return P(()=>ie(fe(Fa(ea(e,1),ea(t,1))),"float32"))}function TG(e,t){return P(()=>ie(fe(Fa(ea(e,1),ea(t,0))),"float32"))}function CG(e,t){return P(()=>ie(fe(Fa(ea(e,0),ea(t,1))),"float32"))}function p2(e,t){return P(()=>{let n=u2(e,t),a=CG(e,t),r=X(n,a);return ie(an(Cn(r,0),he(n,r),0),"float32")})}function _G(e,t){return P(()=>{let n=u2(e,t),a=TG(e,t),r=X(n,a);return ie(an(Cn(r,0),he(n,r),0),"float32")})}function c2(e,t){return Tf(e,t)}function d2(e,t){return e.rank===t.rank&&(e=Cs(e,[e.rank-1])),t=pi(t,-1),t.dtype!==e.dtype&&(t=ie(t,e.dtype)),ie(ea(e,t),"float32")}var EG=Go,AG=Go,FG=Nf,$G=Nf,DG=ap,RG=ap,r0=bc,MG=t0,h2=Jh,em={binaryAccuracy:n0,categoricalAccuracy:a0,precision:p2,categoricalCrossentropy:r0,sparseCategoricalCrossentropy:h2,mse:EG,MSE:AG,mae:FG,MAE:$G,mape:DG,MAPE:RG,cosine:MG};function PG(e){if(typeof e=="string"&&e in em)return em[e];if(typeof e!="string"&&e!=null)return e;throw new V(`Unknown metric ${e}`)}function xh(e){if(nr(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(em))if(em[n]===e){t=n;break}return t!==void 0?t:e.name}}function OG(e){let t={Adagrad:()=>js.adagrad(.01),Adadelta:()=>js.adadelta(1,.95,jt()),Adam:()=>js.adam(.001,.9,.999,jt()),Adamax:()=>js.adamax(.002,.9,.999,jt(),0),RMSProp:()=>js.rmsprop(.001,.9,0,jt()),SGD:()=>js.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 lI(e,t,n=!1){if(e==null||typeof e!="object"||Object.getPrototypeOf(e)!==Object.prototype||!Fx(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 Fx(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"||!Fx(e[n]))return!1;return!0}else if(Array.isArray(e)){for(let t of e)if(!Fx(t))return!1;return!0}else return!1;else{let t=typeof e;return t==="string"||t==="number"||t==="boolean"}}function LG(e,t,n,a=console.log){let r=WG(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)),tm(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 tm(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 BG(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()];tm(o,t,n)}function VG(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;cb.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(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 y=b.sourceLayer,x=b.nodeIndex,w=b.tensorIndex;this.outputLayers.push(y),this.outputLayersNodeIndices.push(x),this.outputLayersTensorIndices.push(w)}for(let b of this.inputs){let y=b.sourceLayer,x=b.nodeIndex,w=b.tensorIndex;nr(x===0,"input layer has >1 nodes"),nr(w===0,"input layer has >1 tensors"),this.inputLayers.push(y),this.inputLayersNodeIndices.push(x),this.inputLayersTensorIndices.push(w)}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 t={},n={},a={},r={},s={},i=[],o=(b,y,x,w,I,T)=>{(w==null||I==null||T==null)&&(w=b.sourceLayer,I=b.nodeIndex,T=b.tensorIndex);let C=w.inboundNodes[I];if(x.indexOf(C)!==-1)throw new Ba(`The tensor ${b.name} at layer "${w.name}" is part of a cycle.`);if(y.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 E=C.inboundLayers.length;for(let F=0;F=0;)x.splice(x.indexOf(C),1);i.push(C)},l=[],u=[];for(let b of this.outputs)o(b,l,u);let p=i.slice().reverse();for(let b of p){n[b.id]=b,b.id in t||(t[b.id]=0);let y=t[b.id],x=a[b.outboundLayer.id]==null?0:a[b.outboundLayer.id];y=Math.max(y,x),a[b.outboundLayer.id]=y,r[b.outboundLayer.id]=b.outboundLayer,t[b.id]=y;for(let w=0;wparseInt(b,10)).sort(gh);this.layers=[];for(let b of h){let y=c[b];y.sort((x,w)=>{let I=s[x.id],T=s[w.id];return IT?1:0});for(let x of y)x instanceof er&&this.internalContainerRefs.push(x),this.layers.push(x)}this.layersByDepth=c,h=Object.keys(d).map(b=>parseInt(b,10)).sort(gh);let m=this.inputs.slice(),f=[];for(let b of h)for(let y of d[b]){let x=y.outboundLayer;if(x!=null){for(let w of y.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 y.outputTensors)m.push(w);f.push(x.name)}}this.nodesByDepth=d;let g=this.layers.map(b=>b.name);for(let b of g){let y=g.filter(x=>x===b).length;if(y!==1)throw new Ba(`The name "${b}" is used ${y} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(g))}this.outboundNodes=[],this.inboundNodes=[],new Sf({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 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}`)}Xw(r)}updatedConfig(){let e=this.getConfig(),t={};return t.className=this.getClassName(),t.config=e,t.kerasVersion=`tfjs-layers ${s0}`,t.backend="TensorFlow.js",t}toJSON(e,t=!0){let n=$x(this.updatedConfig());return t?JSON.stringify(n):n}call(e,t){return P(()=>{e=vt(e);let n=new ei;for(let a=0;a{e=vt(e);let n;return t==null?n=gi(null,e.length):n=vt(t),this.runInternalGraph(e,n)[1]})}computeOutputShape(e){let t=jh(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(gh);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(gh);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,b,y;if(u.callArgs!=null&&(m=u.callArgs),h.length===1){let[x,w]=h[0];m.mask==null&&(m.mask=w),b=vt(p.call(x,m)),y=vt(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),b=vt(p.call(f,m)),y=vt(p.computeMask(f,g));if(p.activityRegularizer)throw new Oe("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(b),y)}function l(f){let g=f.name,b=Ga(f,t.customObjects!=null?t.customObjects:{});b.setFastWeightInitDuringBuild(a),r[g]=b,f.inboundNodes.forEach(y=>{if(!(y instanceof Array))throw new V(`Corrupted configuration, expected array for nodeData: ${y}`);i(b,y)})}let u=t.name,p=t.layers;for(let f of p)l(f);for(;!bU(s);)for(let f of p){let g=r[f.name];if(g.name in s){let b=s[g.name];delete s[g.name];for(let y of b)o(g,y)}}let d=[],c=[],h=t.inputLayers;for(let f of h){let g=f[0],b=f[1],y=f[2];nr(g in r);let x=r[g].inboundNodes[b].outputTensors;d.push(x[y])}let m=t.outputLayers;for(let f of m){let g=f[0],b=f[1],y=f[2];nr(g in r);let x=r[g].inboundNodes[b].outputTensors;c.push(x[y])}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 UG(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 f2(e,t){return UG(e,t,"classWeight")}async function g2(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 pi(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])}),je(i,"float32")}else return null}function GG(e,t){return z(e,t)}var HG=32;function b2(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=uI("input",e.inputNames,n),i=uI("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 uI(e,t,n){if(n instanceof Ce)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 qG(e){if(e.length===3)throw new Oe("Validation with sample weights is not implemented yet.");return{xs:e[0],ys:e[1]}}async function jG(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(pI(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=qG(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=o2(n.callbacks,n.yieldEvery),d=n.verbose==null?1:n.verbose,{callbackList:c,history:h}=l2(p,d,n.epochs,null,null,KG(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;pI(n.validationData)?w=vt(await e.evaluateDataset(n.validationData,{batches:n.validationBatches})):w=vt(e.evaluate(s,i,{batchSize:n.validationBatchSize==null?HG:n.validationBatchSize,verbose:0}));for(let I=0;I0)throw new Oe("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=XG(t)?t:await t.iterator(),o=0,l=0;for(;!a||l{if(u.value){let{xs:p,ys:d}=b2(e,u.value),c=p.concat(d),h=P(()=>r(c));if(_e(c),l===0)for(let f=0;fX(s[f],z(m,g))),l>0&&_e(b)}_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 Gp(e,t,n){return e==null?[null]:Array.isArray(e)?e.map(a=>ri(a,t,n-t)):ri(e,t,n-t)}function Dx(e,t){return P(()=>e==null?null:Array.isArray(e)?e.map(n=>Dx(n,t)):XT(e,t.dtype==="int32"?t:ie(t,"int32")))}function rx(e,t){let n=[],a=0,r=null;for(;a=e&&(r=e),n.push([a,r]),a=r;return n}function y2(e){let t=[];e instanceof Ce&&(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 Ce)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 ZG(e){return e instanceof Ce}function Rx(e){return Array.isArray(e)}function cI(e){return!ZG(e)&&!Rx(e)}function dI(e,t,n,a=!0,r=""){if(t==null||t.length===0){if(e!=null){let i=!1;if(Rx(e)&&e.length>0)i=!0;else if(cI(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(cI(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(Rx(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=y2(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 JG(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 QG(e,t,n){let a=[Go,Tf,bc];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 tH="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).");LG(this,e,t,n)}compile(e){if(e.loss==null&&(e.loss=[]),this.loss=e.loss,typeof e.optimizer=="string")this.optimizer_=OG(e.optimizer),this.isOptimizerOwned=!0;else{if(!(e.optimizer instanceof Mr))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(nx(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=>nx(s))}else{let s=nx(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=eH(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])};ai("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=n0:["crossentropy","ce"].indexOf(c)!==-1&&(p=c2):this.lossFunctions[s]===Jh?["accuracy","acc"].indexOf(c)!==-1?p=d2:["crossentropy","ce"].indexOf(c)!==-1&&(p=h2):["accuracy","acc"].indexOf(c)!==-1?p=a0:["crossentropy","ce"].indexOf(c)!==-1&&(p=r0);let f;["accuracy","acc"].indexOf(c)!==-1?f="acc":["crossentropy","ce"].indexOf(c)!==-1&&(f="ce"),d=p,u=l+f}else d=PG(c),u=l+xh(c);let h;ai(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;ax(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(),YG(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 ei;if(e instanceof Ce&&(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 Oe("Verbose predictLoop() is not implemented yet.");let r=rx(a,t),s=this.outputs.map(i=>[]);for(let i=0;i{let o=r[i][0],l=r[i][1],u=Gp(e,o,l),p=[];if(Array.isArray(u))for(let c=0;cs[l].push(o));return On(s.map(i=>Qe(i,0)))})}predict(e,t={}){let n=y2(e);hI(n,this.inputNames,this.feedInputShapes,!1);try{let a=t.batchSize==null?32:t.batchSize;return ax(a),this.predictLoop(n,a)}finally{za(n,e)}}predictOnBatch(e){hI(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=f2(a,this.outputNames);l=[];for(let p=0;p{let s=this.checkNumSamples(t,n,r,"steps"),i=[];if(a>0)throw new Oe("Verbose mode is not implemented yet.");if(r!=null)throw new Oe("steps mode in testLoop() is not implemented yet");{let o=rx(s,n),l=je(qa(0,s));for(let u=0;u1){let s=Jk(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=X(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 Oe("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,E=await this.standardizeUserData(o,l,null,null,C,c);u=E[0],p=E[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)),E=a[0].shape[0];u=Gp(a,C,E),s=a,a=Gp(a,0,C),p=Gp(r,C,E),i=r,r=Gp(r,0,C),g=u.concat(p)}else n.validationSteps!=null&&(f=!0);let b=a.concat(r).concat(d);this.checkTrainableWeightsConsistency();let y=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=o2(n.callbacks,n.yieldEvery);return await this.fitLoop(y,b,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&&_e(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=qa(0,f)),s==null&&(s=1);let{callbackList:b,history:y}=l2(i,s,r,d,f,c,a,m,p);b.setModel(this),this.history=y,await b.onTrainBegin(),this.stopTraining_=!1;for(let x=d;x{let F=T[C][0],D=T[C][1],$=ri(I,F,D-F);E.batch=C,E.size=D-F;let S=Dx(t,$),M=e(S);for(let B=0;BSr(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(xh(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(e=>Sr(xh(e)));{let e={};for(let t in this.metrics)e[t]=Sr(xh(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=yc(e.optimizer_config),n=Ga(t),a;if(typeof e.loss=="string")a=Ys(e.loss);else if(Array.isArray(e.loss))a=e.loss.map(s=>Ys(s));else if(e.loss!=null){a={};for(let s in e.loss)a[s]=Ys(e.loss[s])}let r;if(Array.isArray(e.metrics))r=e.metrics.map(s=>Ys(s));else if(e.metrics!=null){r={};for(let s in e.metrics)r[s]=Ys(e.metrics[s])}this.compile({loss:a,metrics:r,optimizer:n})}async save(e,t){if(typeof e=="string"){let i=qt.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 qt.encodeWeights(this.getNamedWeights(t)),a=!1,r=null,s={modelTopology:this.toJSON(r,a),format:tH,generatedBy:`TensorFlow.js tfjs-layers v${s0}`,convertedBy:null};if(t!=null&&t.includeOptimizer&&this.optimizer!=null){s.trainingConfig=this.getTrainingConfig();let i="optimizer",{data:o,specs:l}=await qt.encodeWeights(await this.optimizer.getWeights(),i);n.specs.push(...l),n.data=qt.concatenateArrayBuffers([n.data,o])}return this.userDefinedMetadata!=null&&(lI(this.userDefinedMetadata,this.name,!0),s.userDefinedMetadata=this.userDefinedMetadata),s.weightData=n.data,s.weightSpecs=n.specs,e.save(s)}setUserDefinedMetadata(e){lI(e,this.name),this.userDefinedMetadata=e}getUserDefinedMetadata(){return this.userDefinedMetadata}};Er.className="Model";ne.registerClass(Er);var x2=class extends Er{};x2.className="Functional";ne.registerClass(x2);async function nH(e,t){"modelTopology"in e||(e={modelTopology:e}),e=e;let n=e.modelTopology;n.model_config!=null&&(n=n.model_config);let a=yc(n),r=Ga(a,t);if(e.weightsManifest!=null){let s=await qt.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 aH(e,t){if(t==null&&(t={}),typeof e=="string"){let n=qt.getLoadHandlers(e,t);if(n.length===0)n.push(qt.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 rH(e,void 0,t)}async function rH(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(yc(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}=sH(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 sH(e,t){let n=qt.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 Ll=class extends Er{constructor(e){if(super({inputs:[],outputs:[]}),e=e||{},this.trainable=!0,this.built=!1,this.name=e.name!=null?e.name:ff("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 Ll||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=QT({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=JT(this.outputs[0])}this.inboundNodes=[],new Sf({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:gi(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(Ze(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 Ll))throw new Oe(`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}}};Ll.className="Sequential";ne.registerClass(Ll);function iH(e){return new Er(e)}function oH(e){return new Ll(e)}function v2(e){return QT(e)}function lH(e,t){Ca.registerCallbackConstructor(e,t)}var Gn=class extends ne.Serializable{getConfig(){return{}}},w2=class extends Gn{apply(e,t=1){return $U(e,t)}};w2.className="elu";ne.registerClass(w2);var k2=class extends Gn{apply(e){return Jm(e)}};k2.className="selu";ne.registerClass(k2);var I2=class extends Gn{apply(e){return Ke(e)}};I2.className="relu";ne.registerClass(I2);var S2=class extends Gn{apply(e){return P(()=>us(6,Ke(e)))}};S2.className="relu6";ne.registerClass(S2);var N2=class extends Gn{apply(e){return e}};N2.className="linear";ne.registerClass(N2);var T2=class extends Gn{apply(e){return ma(e)}};T2.className="sigmoid";ne.registerClass(T2);var C2=class extends Gn{apply(e){return RU(e)}};C2.className="hardSigmoid";ne.registerClass(C2);var _2=class extends Gn{apply(e){return zo(e)}};_2.className="softplus";ne.registerClass(_2);var E2=class extends Gn{apply(e){return DU(e)}};E2.className="softsign";ne.registerClass(E2);var A2=class extends Gn{apply(e){return di(e)}};A2.className="tanh";ne.registerClass(A2);var i0=class extends Gn{apply(e,t=-1){return Xa(e,t)}};i0.className="softmax";ne.registerClass(i0);var F2=class extends Gn{apply(e,t=-1){return Gm(e,t)}};F2.className="logSoftmax";ne.registerClass(F2);var $2=class extends Gn{apply(e,t=1){return P(()=>z(ma(z(e,t)),e))}};$2.className="swish";ne.registerClass($2);var D2=class extends Gn{apply(e){return P(()=>z(e,di(zo(e))))}};D2.className="mish";ne.registerClass(D2);function cs(e){return e.getClassName()}function sx(e,t={}){return cd(e,ne.SerializationMap.getMap().classNameMap,t,"activation")}function ds(e){if(e==null){let t={};return t.className="linear",t.config={},sx(t)}if(typeof e=="string"){let t={};return t.className=e,t.config={},sx(t)}else return e instanceof Gn?e:sx(e)}function o0(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 R2=class extends ne.Serializable{},gd=class extends R2{constructor(e){super(),o0(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=Nt([1]);return this.hasL1&&(t=X(t,fe(z(this.l1,Wt(e))))),this.hasL2&&(t=X(t,fe(z(this.l2,hd(e))))),W(t,[])})}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(e,t){return new e({l1:t.l1,l2:t.l2})}};gd.className="L1L2";ne.registerClass(gd);function uH(e){return o0(e),new gd({l1:e!=null?e.l1:null,l2:0})}function pH(e){return o0(e),new gd({l2:e!=null?e.l2:null,l1:0})}var mI={l1l2:"L1L2"};function mt(e){return zw(e)}function fI(e,t={}){return cd(e,ne.SerializationMap.getMap().classNameMap,t,"regularizer")}function Ct(e){if(e==null)return null;if(typeof e=="string"){let t={className:e in mI?mI[e]:e,config:{}};return fI(t)}else return e instanceof R2?e:fI(e)}var l0=class extends Be{constructor(e){super(e==null?{}:e),this.supportsMasking=!0,e!=null&&(this.maxValue=e.maxValue)}call(e,t){e=Te(e);let n=Ke(e);return this.maxValue!=null&&(n=rn(n,0,this.maxValue)),n}computeOutputShape(e){return e}getConfig(){let e={maxValue:this.maxValue},t=super.getConfig();return Object.assign(e,t),e}};l0.className="ReLU";ne.registerClass(l0);var u0=class extends Be{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=Te(e);return td(n,this.alpha)}computeOutputShape(e){return e}getConfig(){let e={alpha:this.alpha},t=super.getConfig();return Object.assign(e,t),e}};u0.className="LeakyReLU";ne.registerClass(u0);var p0=class extends Be{constructor(e){if(super(e==null?{}:e),this.DEFAULT_ALPHA_INITIALIZER="zeros",e==null&&(e={}),this.supportsMasking=!0,this.alphaInitializer=Tt(e.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=Ct(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=Ze(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(Pt(t),t==="channelsFirst"?De(e,[0,2,3,1]):e))}function M2(e,t){return P(()=>(Pt(t),t==="channelsFirst"?De(e,[0,2,3,4,1]):e))}function cH(e,t,n,a=1,r="valid",s,i=1){return P(()=>{if(s==null&&(s=ja()),Pt(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=De(e,[0,2,1])),r==="causal")throw new Oe("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");let o=Lm(e,t,a,r==="same"?"same":"valid","NWC",i);return n!=null&&(o=Ya(o,n)),o})}function gI(e,t,n,a=[1,1],r="valid",s,i,o=null){return P(()=>{if(s==null&&(s=ja()),Pt(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=m0(e,s);if(r==="causal")throw new Oe("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return l=Rl.conv2d({x:l,filter:t,strides:a,pad:r==="same"?"same":"valid",dilations:i,dataFormat:"NHWC",bias:n,activation:o}),s==="channelsFirst"&&(l=De(l,[0,3,1,2])),l})}function dH(e,t,n,a=[1,1,1],r="valid",s,i){return P(()=>{if(s==null&&(s=ja()),Pt(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=M2(e,s);if(r==="causal")throw new Oe("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return o=Vv(o,t,a,r==="same"?"same":"valid","NDHWC",i),n!=null&&(o=Ya(o,n)),s==="channelsFirst"&&(o=De(o,[0,4,1,2,3])),o})}var f0=class extends Be{constructor(e,t){if(super(t),this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",f0.verifyArgs(t),this.rank=e,nn(this.rank,"rank"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new Oe(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=Il(t.kernelSize,e,"kernelSize"),this.strides=Il(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,Pt(this.dataFormat),this.activation=ds(t.activation),this.useBias=t.useBias==null?!0:t.useBias,this.biasInitializer=Tt(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=Yt(t.biasConstraint),this.biasRegularizer=Ct(t.biasRegularizer),this.activityRegularizer=Ct(t.activityRegularizer),this.dilationRate=Il(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"&&!Ww(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:cs(this.activation),useBias:this.useBias,biasInitializer:At(this.biasInitializer),biasRegularizer:mt(this.biasRegularizer),activityRegularizer:mt(this.activityRegularizer),biasConstraint:Xt(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}},bd=class extends f0{constructor(e,t){super(e,t),this.kernel=null,bd.verifyArgs(t),this.filters=t.filters,nn(this.filters,"filters"),this.kernelInitializer=Tt(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=Yt(t.kernelConstraint),this.kernelRegularizer=Ct(t.kernelRegularizer)}build(e){e=Ze(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=Te(e);let n,a=this.bias==null?null:this.bias.read(),r=UT(this.activation.getClassName());if(r!=null&&this.rank===2)n=gI(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate,r);else{if(this.rank===1)n=cH(e,this.kernel.read(),a,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)n=gI(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)n=dH(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new Oe("convolutions greater than 3D are not implemented yet.");this.activation!=null&&(n=this.activation.apply(n))}return n})}computeOutputShape(e){e=Ze(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)}`)}},yd=class extends bd{constructor(e){super(2,e),yd.verifyArgs(e)}getConfig(){let e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!Ww(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)}.`)}};yd.className="Conv2D";ne.registerClass(yd);var xd=class extends bd{constructor(e){super(3,e),xd.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)}.`)}};xd.className="Conv3D";ne.registerClass(xd);var g0=class extends yd{constructor(e){if(super(e),this.inputSpec=[new Bt({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=Ze(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 Bt({ndim:4,axes:{[t]:n}})],this.built=!0}call(e,t){return P(()=>{let n=Te(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=De(n,[0,2,3,1]));let g=zm(n,this.kernel.read(),f,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(g=De(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=Ze(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}};g0.className="Conv2DTranspose";ne.registerClass(g0);var b0=class extends xd{constructor(e){if(super(e),this.inputSpec=[new Bt({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=Ze(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 Bt({ndim:5,axes:{[t]:n}})],this.built=!0}call(e,t){return P(()=>{let n=Te(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],b=ar(l,m,d,this.padding),y=ar(u,f,c,this.padding),x=ar(p,g,h,this.padding),w=[r,b,y,x,this.filters];this.dataFormat!=="channelsLast"&&(n=De(n,[0,2,3,4,1]));let I=Uv(n,this.kernel.read(),w,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(I=De(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=Ze(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}};b0.className="Conv3DTranspose";ne.registerClass(b0);var P2=class extends bd{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=Tt(t.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=Ct(t.depthwiseRegularizer),this.depthwiseConstraint=Yt(t.depthwiseConstraint),this.pointwiseInitializer=Tt(t.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=Ct(t.pointwiseRegularizer),this.pointwiseConstraint=Yt(t.pointwiseConstraint)}build(e){if(e=Ze(e),e.length{e=Te(e);let n;if(this.rank===1)throw new Oe("1D separable convolution is not implemented yet.");return this.rank===2&&(this.dataFormat==="channelsFirst"&&(e=De(e,[0,2,3,1])),n=Ts(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=De(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=At(this.depthwiseInitializer),e.pointwiseInitializer=At(this.pointwiseInitializer),e.depthwiseRegularizer=mt(this.depthwiseRegularizer),e.pointwiseRegularizer=mt(this.pointwiseRegularizer),e.depthwiseConstraint=Xt(this.depthwiseConstraint),e.pointwiseConstraint=Xt(this.pointwiseConstraint),e}};P2.className="SeparableConv";var y0=class extends P2{constructor(e){super(2,e)}};y0.className="SeparableConv2D";ne.registerClass(y0);var Cf=class extends bd{constructor(e){super(1,e),Cf.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"&&!Ww(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)}.`)}};Cf.className="Conv1D";ne.registerClass(Cf);var x0=class extends Be{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=Te(e),this.dataFormat==="channelsLast"){let n=yh(e,this.cropping[0][0],e.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return yh(n,this.cropping[1][0],e.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{let n=yh(e,this.cropping[0][0],e.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return yh(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}};x0.className="Cropping2D";ne.registerClass(x0);var v0=class extends Be{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,Pt(this.dataFormat),this.interpolation=e.interpolation==null?"nearest":e.interpolation,NU(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=Te(e),a=n.shape;if(this.dataFormat==="channelsFirst"){n=De(n,[0,2,3,1]);let r=this.size[0]*a[2],s=this.size[1]*a[3],i=this.interpolation==="nearest"?Qn.resizeNearestNeighbor(n,[r,s]):Qn.resizeBilinear(n,[r,s]);return De(i,[0,3,1,2])}else{let r=this.size[0]*a[1],s=this.size[1]*a[2];return this.interpolation==="nearest"?Qn.resizeNearestNeighbor(n,[r,s]):Qn.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}};v0.className="UpSampling2D";ne.registerClass(v0);function hH(e,t,n=[1,1],a="valid",r,s){return P(()=>{r==null&&(r=ja()),Pt(r);let i=m0(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=De(i,[0,3,1,2])),i})}var w0=class extends f0{constructor(e){super(2,e),this.depthwiseKernel=null,this.depthMultiplier=e.depthMultiplier==null?1:e.depthMultiplier,this.depthwiseInitializer=Tt(e.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=Yt(e.depthwiseConstraint),this.depthwiseRegularizer=Ct(e.depthwiseRegularizer)}build(e){if(e=Ze(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=Te(e);let n=hH(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=Ze(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=At(this.depthwiseInitializer),e.depthwiseRegularizer=mt(this.depthwiseRegularizer),e.depthwiseConstraint=Xt(this.depthwiseRegularizer),e}};w0.className="DepthwiseConv2D";ne.registerClass(w0);function O2(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 L2(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(qa(2,l));if(t=De(t,u),s!=null)throw new Oe("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=ie(ie(r,"bool"),"float32"),r.rank===l-1&&(r=tn(r,-1)),r=De(r,u)),a&&(t=ba(t,0),r!=null&&(r=ba(r,0)));let p=[],d,c=n,h=t.shape[0],m=pt(t),f;r!=null&&(f=pt(r));for(let b=0;be(y,c));if(r==null)d=x[0],c=x[1];else{let w=P(()=>{let I=f[b],T=pe(na(I),I),C=X(z(x[0],I),z(c[0],T)),E=c.map((F,D)=>X(z(x[1][D],I),z(F,T)));return{output:C,newStates:E}});d=w.output,c=w.newStates}o&&p.push(d)}let g;return o&&(g=Dt(p,1)),[d,g,c]})}var mr=class extends Be{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 Af({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 Bt({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 qa(0,e).map(t=>null)}else return this.states_}setStates(e){this.states_=e}computeOutputShape(e){Ex(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 Bt({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=>Nt([n,a])):this.states_=[Nt([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=>Nt([n,a])):this.states_[0]=Nt([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;aHt(a.clone()))})}apply(e,t){let n=t==null?null:t.initialState,a=t==null?null:t.constants;t==null&&(t={});let r=O2(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 Bt({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=Te(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=L2((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=Nt(e.shape);return t=fe(t,[1,2]),t=dd(t),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(n=>n>1?Cx(t,[1,n]):t):this.cell.stateSize>1?[Cx(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 vd=class extends Be{},_f=class extends vd{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,nn(this.units,"units"),this.activation=ds(e.activation==null?this.DEFAULT_ACTIVATION:e.activation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=Tt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=Tt(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=Tt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Ct(e.kernelRegularizer),this.recurrentRegularizer=Ct(e.recurrentRegularizer),this.biasRegularizer=Ct(e.biasRegularizer),this.kernelConstraint=Yt(e.kernelConstraint),this.recurrentConstraint=Yt(e.recurrentConstraint),this.biasConstraint=Yt(e.biasConstraint),this.dropout=Pl([1,ps([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=Pl([1,ps([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.dropoutFunc=e.dropoutFunc,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=Ze(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=Ya(r,this.bias.read())),i!=null&&(n=z(n,i));let o=X(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:cs(this.activation),useBias:this.useBias,kernelInitializer:At(this.kernelInitializer),recurrentInitializer:At(this.recurrentInitializer),biasInitializer:At(this.biasInitializer),kernelRegularizer:mt(this.kernelRegularizer),recurrentRegularizer:mt(this.recurrentRegularizer),biasRegularizer:mt(this.biasRegularizer),activityRegularizer:mt(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)}};_f.className="SimpleRNNCell";ne.registerClass(_f);var k0=class extends mr{constructor(e){e.cell=new _f(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)}};k0.className="SimpleRNN";ne.registerClass(k0);var Ef=class extends vd{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,nn(this.units,"units"),this.activation=ds(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=ds(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=Tt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=Tt(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=Tt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Ct(e.kernelRegularizer),this.recurrentRegularizer=Ct(e.recurrentRegularizer),this.biasRegularizer=Ct(e.biasRegularizer),this.kernelConstraint=Yt(e.kernelConstraint),this.recurrentConstraint=Yt(e.recurrentConstraint),this.biasConstraint=Yt(e.biasConstraint),this.dropout=Pl([1,ps([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=Pl([1,ps([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=Ze(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)}};I0.className="GRU";ne.registerClass(I0);var wd=class extends vd{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,nn(this.units,"units"),this.activation=ds(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=ds(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=Tt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=Tt(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=Tt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=e.unitForgetBias,this.kernelRegularizer=Ct(e.kernelRegularizer),this.recurrentRegularizer=Ct(e.recurrentRegularizer),this.biasRegularizer=Ct(e.biasRegularizer),this.kernelConstraint=Yt(e.kernelConstraint),this.recurrentConstraint=Yt(e.recurrentConstraint),this.biasConstraint=Yt(e.biasConstraint),this.dropout=Pl([1,ps([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=Pl([1,ps([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=Ze(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 bf().apply([s]),p=r.apply([s*2]);return eI(eI(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)}};S0.className="LSTM";ne.registerClass(S0);var Af=class extends vd{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{ai(`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 Ax(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):YT(t(),n),o=()=>md(i,t,a);return!r||r<=1?Ht(o().clone()):Array(r).fill(void 0).map(o).map(l=>Ht(l.clone()))}var mH=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=Nt(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(()=>Nt(r)):this.states_=[Nt(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(()=>Nt(r)):this.states_[0]=Nt(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;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]]}};z2.className="ConvRNN2D";var Ff=class extends wd{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,nn(this.filters,"filters"),this.kernelSize=Il(n,2,"kernelSize"),this.kernelSize.forEach(o=>nn(o,"kernelSize")),this.strides=Il(a||1,2,"strides"),this.strides.forEach(o=>nn(o,"strides")),this.padding=r||"valid",va(this.padding),this.dataFormat=s||"channelsLast",Pt(this.dataFormat),this.dilationRate=Il(i||1,2,"dilationRate"),this.dilationRate.forEach(o=>nn(o,"dilationRate"))}build(e){var t;e=Ze(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 Bw([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),b=l(r,h,3),y=3,[x,w,I,T]=zn(this.kernel.read(),i,y),[C,E,F,D]=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,F,this.padding),c=this.inputConv(c,T,D,this.padding);let[$,S,M,B]=zn(this.recurrentKernel.read(),i,y);m=this.recurrentConv(m,$),f=this.recurrentConv(f,S),g=this.recurrentConv(g,M),b=this.recurrentConv(b,B);let U=this.recurrentActivation.apply(X(u,m)),H=this.recurrentActivation.apply(X(p,f)),j=X(z(H,s),z(U,this.activation.apply(X(d,g)))),K=z(this.recurrentActivation.apply(X(c,b)),this.activation.apply(j));return[K,K,j]})}getConfig(){let e=super.getConfig(),{units:t}=e,n=mH(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=Rt(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 Rt(e,t,1,"same",this.dataFormat==="channelsFirst"?"NCHW":"NHWC")}};Ff.className="ConvLSTM2DCell";ne.registerClass(Ff);var N0=class extends z2{constructor(e){let t=new Ff(e);super(Object.assign(Object.assign({},e),{cell:t}))}static fromConfig(e,t){return new e(t)}};N0.className="ConvLSTM2D";ne.registerClass(N0);var $f=class extends Be{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=Te(e);if(0YT(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 T0=class extends $f{constructor(e){super(e),this.inputSpec=[{ndim:3}]}getNoiseShape(e){let t=e.shape;return[t[0],1,t[2]]}};T0.className="SpatialDropout1D";ne.registerClass(T0);var C0=class extends Be{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,nn(this.units,"units"),this.activation=ds(e.activation),e.useBias!=null&&(this.useBias=e.useBias),this.kernelInitializer=Tt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=Tt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=Yt(e.kernelConstraint),this.biasConstraint=Yt(e.biasConstraint),this.kernelRegularizer=Ct(e.kernelRegularizer),this.biasRegularizer=Ct(e.biasRegularizer),this.activityRegularizer=Ct(e.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(e){e=Ze(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=Ze(e);let t=e.slice();return t[t.length-1]=this.units,t}call(e,t){return P(()=>{this.invokeCallHook(e,t);let n=Te(e),a=UT(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:cs(this.activation),useBias:this.useBias,kernelInitializer:At(this.kernelInitializer),biasInitializer:At(this.biasInitializer),kernelRegularizer:mt(this.kernelRegularizer),biasRegularizer:mt(this.biasRegularizer),activityRegularizer:mt(this.activityRegularizer),kernelConstraint:Xt(this.kernelConstraint),biasConstraint:Xt(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}};C0.className="Dense";ne.registerClass(C0);var _0=class extends Be{constructor(e){e=e||{},super(e),this.inputSpec=[{minNDim:3}],this.dataFormat=e.dataFormat}computeOutputShape(e){e=Ze(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=Te(e);if(this.dataFormat==="channelsFirst"&&n.rank>1){let a=[0];for(let r=2;r{this.invokeCallHook(e,t);let n=Te(e);return this.activation.apply(n)})}getConfig(){let e={activation:cs(this.activation)},t=super.getConfig();return Object.assign(e,t),e}};E0.className="Activation";ne.registerClass(E0);var A0=class extends Be{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=Te(e),EU(e,this.n)))}getConfig(){let e={n:this.n},t=super.getConfig();return Object.assign(e,t),e}};A0.className="RepeatVector";ne.registerClass(A0);var F0=class extends Be{constructor(e){super(e),this.targetShape=e.targetShape;for(let t=0;t{this.invokeCallHook(e,t);let n=Te(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}};F0.className="Reshape";ne.registerClass(F0);var $0=class extends Be{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=qa(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 Bt({ndim:this.dims.length+1})]}computeOutputShape(e){e=Ze(e);let t=e.slice();return this.dims.forEach((n,a)=>{t[a+1]=e[n]}),t}call(e,t){return De(Te(e),this.dimsIncludingBatch)}getConfig(){let e={dims:this.dims},t=super.getConfig();return Object.assign(e,t),e}};$0.className="Permute";ne.registerClass($0);var D0=class extends Be{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=Te(e),a=-1;return hc(mi(n,this.maskValue),a)}call(e,t){return P(()=>{this.invokeCallHook(e,t);let n=Te(e),a=-1,r=!0,s=hc(mi(n,this.maskValue),a,r);return z(n,ie(s,n.dtype))})}};D0.className="Masking";ne.registerClass(D0);var R0=class extends Be{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(vt(e.inputLength))}this.inputDim=e.inputDim,nn(this.inputDim,"inputDim"),this.outputDim=e.outputDim,nn(this.outputDim,"outputDim"),this.embeddingsInitializer=Tt(e.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=Ct(e.embeddingsRegularizer),this.activityRegularizer=Ct(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=Te(e),mi(e,qe(e))):null)}computeOutputShape(e){if(e=Ze(e),this.inputLength==null)return[...e,this.outputDim];let t=vt(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=Te(e);n.dtype!=="int32"&&(n=ir(n,"int32"));let a=XT(this.embeddings.read(),W(n,[n.size]));return W(a,Ze(this.computeOutputShape(n.shape)))})}getConfig(){let e={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:At(this.embeddingsInitializer),embeddingsRegularizer:mt(this.embeddingsRegularizer),activityRegularizer:mt(this.activityRegularizer),embeddingsConstraint:Xt(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},t=super.getConfig();return Object.assign(e,t),e}};R0.className="Embedding";ne.registerClass(R0);var Ho=class extends Be{constructor(e){super(e||{}),this.supportsMasking=!0}mergeFunction(e){throw new Oe}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=ps(a);for(let s of e){let i=s.rank;for(let o=0;o1){let u=qa(1,l).concat([0]);n.push(De(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(De(W(s,[-1,u]),[1,0]),p)}else if(i>1){let o=[i-1].concat(qa(0,i-1));s=De(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:tn(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(()=>Bw(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 Oe("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 Oe("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 Oe("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)=>Hp(r,e[s].shape.length)):a=[Hp(this.axes,t.shape.length),Hp(this.axes,n.shape.length)],this.normalize&&(t=Zh(t,a[0]),n=Zh(n,a[1])),fH(t,n,a)}interpretAxes(e,t){let n;return Array.isArray(this.axes)?n=this.axes:n=[Hp(this.axes,e.length),Hp(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 Oe("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}};B0.className="Dot";ne.registerClass(B0);var V0=class extends Be{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=Te(e);return md(()=>X(gf(n.shape,0,this.stddev),n),()=>n,t.training||!1)})}};V0.className="GaussianNoise";ne.registerClass(V0);var U0=class extends Be{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=Te(e);return this.rate>0&&this.rate<1?md(()=>{let a=Math.sqrt(this.rate/(1-this.rate));return z(n,gf(n.shape,1,a))},()=>n,t.training||!1):n})}};U0.className="GaussianDropout";ne.registerClass(U0);var G0=class extends Be{constructor(e){super(e),this.supportsMasking=!0,this.rate=e.rate,this.noiseShape=e.noiseShape}_getNoiseShape(e){return this.noiseShape||Te(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 md(()=>{let a=Te(e),r=1.6732632423543772,s=1.0507009873554805,i=-r*s,o=Dr(Ns(n),this.rate);o=ir(o,"float32");let l=((1-this.rate)*(1+this.rate*i**2))**-.5,u=-l*i*this.rate,p=X(z(a,o),z(X(o,-1),i));return X(z(p,l),u)},()=>Te(e),t.training||!1)}return e})}};G0.className="AlphaDropout";ne.registerClass(G0);function xc(e,t,n,a,r,s=.001){let i;if(e.rank===2)i=$v(e,t,n,a,r,s);else if(e.rank===3)i=Dv(e,t,n,a,r,s);else if(e.rank===4)i=Rv(e,t,n,a,r,s);else throw new Oe(`batchNormalization is not implemented for array of rank ${e.rank} yet`);return i}function gH(e,t,n,a,r=.001){return P(()=>{let s=rd(e,a),i=s.mean,o=s.variance;return[xc(e,i,o,n,t,r),i,o]})}function bH(e,t,n,a,r=.001){return P(()=>{let s=rd(e,a),i=s.mean,o=s.variance,l=[];for(let h of qa(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[xc(e,u,p,c,d,r),i,o]})}function yH(e,t,n,a,r=.001){return v.arraysEqual(a.slice().sort(),qa(0,e.rank-1))?gH(e,t,n,a,r):bH(e,t,n,a,r)}var H0=class extends Be{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=Tt(e.betaInitializer||"zeros"),this.gammaInitializer=Tt(e.gammaInitializer||"ones"),this.movingMeanInitializer=Tt(e.movingMeanInitializer||"zeros"),this.movingVarianceInitializer=Tt(e.movingVarianceInitializer||"ones"),this.betaConstraint=Yt(e.betaConstraint),this.gammaConstraint=Yt(e.gammaConstraint),this.betaRegularizer=Ct(e.betaRegularizer),this.gammaRegularizer=Ct(e.gammaRegularizer)}build(e){e=Ze(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 Bt({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=Te(e),r=a.shape,s=r.length,i=qa(0,s),o=this.axis>=0?this.axis:this.axis+s;i.splice(o,1);let l=gi(1,s);l[o]=r[o];let u=i.slice();u.sort();let p=!v.arraysEqual(u,qa(0,s).slice(0,s-1)),d=()=>{if(p){let g=W(this.movingMean.read(),l),b=W(this.movingVariance.read(),l),y=this.center?W(this.beta.read(),l):null,x=this.scale?W(this.gamma.read(),l):null;return xc(a,g,b,y,x,this.epsilon)}else return xc(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]=yH(a,this.gamma.read(),this.beta.read(),i,this.epsilon),f=(g,b,y)=>{P(()=>{let x=1-y,w=g.read(),I=z(pe(w,b),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:At(this.betaInitializer),gammaInitializer:At(this.gammaInitializer),movingMeanInitializer:At(this.movingMeanInitializer),movingVarianceInitializer:At(this.movingVarianceInitializer),betaRegularizer:mt(this.betaRegularizer),gammaRegularizer:mt(this.gammaRegularizer),betaConstraint:Xt(this.betaConstraint),gammaConstraint:Xt(this.gammaConstraint)},t=super.getConfig();return Object.assign(e,t),e}};H0.className="BatchNormalization";ne.registerClass(H0);var q0=class extends Be{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=Tt(e.betaInitializer||"zeros"),this.gammaInitializer=Tt(e.gammaInitializer||"ones"),this.betaRegularizer=Ct(e.betaRegularizer),this.gammaRegularizer=Ct(e.gammaRegularizer),this.supportsMasking=!0}build(e){e=Ze(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=Te(e),a=n.shape,r=a.length;return P(()=>{let{mean:s,variance:i}=rd(n,this.axis,!0),o=gi(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]],xa(e,a)})}var j0=class extends Be{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 Bt({ndim:4})]}computeOutputShape(e){e=Ze(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(()=>xH(Te(e),this.padding,this.dataFormat))}getConfig(){let e={padding:this.padding,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};j0.className="ZeroPadding2D";ne.registerClass(j0);function Df(e,t,n,a,r,s){return P(()=>{Pt(r),HT(s),va(a),n==null&&(n=[1,1]),a==null&&(a="valid"),r==null&&(r=ja()),s==null&&(s="max"),e=m0(e,r);let i,o=a==="same"?"same":"valid";return s==="max"?i=Mt(e,t,n,o):i=ya(e,t,n,o),r==="channelsFirst"&&(i=De(i,[0,3,1,2])),i})}function W2(e,t,n,a,r,s){return P(()=>{Pt(r),HT(s),va(a),n==null&&(n=[1,1,1]),a==null&&(a="valid"),r==null&&(r=ja()),s==null&&(s="max"),e=M2(e,r);let i,o=a==="same"?"same":"valid";return s==="max"?i=sw(e,t,n,o):i=Fv(e,t,n,o),r==="channelsFirst"&&(i=De(i,[0,4,1,2,3])),i})}var B2=class extends Be{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(nn(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)}`);nn(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,va(this.padding),this.inputSpec=[new Bt({ndim:3})]}computeOutputShape(e){e=Ze(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=dd(Te(e),2);let n=this.poolingFunction(Te(e),[this.poolSize[0],1],[this.strides[0],1],this.padding,"channelsLast");return Cs(n,[2])})}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides},t=super.getConfig();return Object.assign(e,t),e}},K0=class extends B2{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Pt(r),va(a),Df(e,t,n,a,r,"max")}};K0.className="MaxPooling1D";ne.registerClass(K0);var X0=class extends B2{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Pt(r),va(a),Df(e,t,n,a,r,"avg")}};X0.className="AveragePooling1D";ne.registerClass(X0);var V2=class extends Be{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];nn(this.poolSize,"poolSize"),nn(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Pt(this.dataFormat),va(this.padding),this.inputSpec=[new Bt({ndim:4})]}computeOutputShape(e){e=Ze(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(Te(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}},Y0=class extends V2{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Pt(r),va(a),Df(e,t,n,a,r,"max")}};Y0.className="MaxPooling2D";ne.registerClass(Y0);var Z0=class extends V2{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Pt(r),va(a),Df(e,t,n,a,r,"avg")}};Z0.className="AveragePooling2D";ne.registerClass(Z0);var U2=class extends Be{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];nn(this.poolSize,"poolSize"),nn(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Pt(this.dataFormat),va(this.padding),this.inputSpec=[new Bt({ndim:5})]}computeOutputShape(e){e=Ze(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(Te(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}},J0=class extends U2{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Pt(r),va(a),W2(e,t,n,a,r,"max")}};J0.className="MaxPooling3D";ne.registerClass(J0);var Q0=class extends U2{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Pt(r),va(a),W2(e,t,n,a,r,"avg")}};Q0.className="AveragePooling3D";ne.registerClass(Q0);var G2=class extends Be{constructor(e){super(e),this.inputSpec=[new Bt({ndim:3})]}computeOutputShape(e){return[e[0],e[2]]}call(e,t){throw new Oe}},e1=class extends G2{constructor(e){super(e||{})}call(e,t){return P(()=>{let n=Te(e);return Et(n,1)})}};e1.className="GlobalAveragePooling1D";ne.registerClass(e1);var t1=class extends G2{constructor(e){super(e||{})}call(e,t){return P(()=>{let n=Te(e);return fa(n,1)})}};t1.className="GlobalMaxPooling1D";ne.registerClass(t1);var H2=class extends Be{constructor(e){super(e),this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Pt(this.dataFormat),this.inputSpec=[new Bt({ndim:4})]}computeOutputShape(e){return e=e,this.dataFormat==="channelsLast"?[e[0],e[3]]:[e[0],e[1]]}call(e,t){throw new Oe}getConfig(){let e={dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},n1=class extends H2{call(e,t){return P(()=>{let n=Te(e);return this.dataFormat==="channelsLast"?Et(n,[1,2]):Et(n,[2,3])})}};n1.className="GlobalAveragePooling2D";ne.registerClass(n1);var a1=class extends H2{call(e,t){return P(()=>{let n=Te(e);return this.dataFormat==="channelsLast"?fa(n,[1,2]):fa(n,[2,3])})}};a1.className="GlobalMaxPooling2D";ne.registerClass(a1);var q2=class extends Be{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)}},r1=class extends q2{constructor(e){super(e),this.supportsMasking=!0}build(e){if(e=Ze(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=Ze(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=Te(e),L2((n,a)=>[Te(this.layer.call(n,t)),[]],e,[],!1,null,null,!1,!0)[1]))}};r1.className="TimeDistributed";ne.registerClass(r1);function vH(e){Uo(SU,"BidirectionalMergeMode",e)}var wH="concat",s1=class extends q2{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?wH:e.mergeMode,vH(this.mergeMode),e.weights)throw new Oe("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=O2(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 Bt({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 Oe("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=ba(r,1));let i;return this.mergeMode==="concat"?i=Bw([a,r]):this.mergeMode==="sum"?i=X(a,r):this.mergeMode==="ave"?i=z(.5,X(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){ai(this.forwardLayer.name,()=>{this.forwardLayer.build(e)}),ai(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 Oe("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");let a=t;return a.layer=n,new e(a)}};s1.className="Bidirectional";ne.registerClass(s1);var i1=class extends Be{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=Te(e),e.dtype!=="float32"&&(e=ir(e,"float32")),X(z(e,this.scale),this.offset)))}};i1.className="Rescaling";ne.registerClass(i1);var{resizeBilinear:kH,cropAndResize:IH}=Qn,o1=class extends Be{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=Dt([e])):l=e;for(let x=0;x{let r=kH(e,[t,n]);return ir(r,a)})}call(e,t){return P(()=>{let n=Te(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=Ze(e);let t=e.length-3,n=e.length-2;return e[t]=this.height,e[n]=this.width,e}};o1.className="CenterCrop";ne.registerClass(o1);function SH(e,t,n,a){let r=Te(e);if(r.dtype!=="int32"&&(r=ir(r,"int32")),t==="int")return r;let s=r.shape;if(r.rank===0&&(r=tn(r,-1)),t==="oneHot"&&r.shape[r.shape.length-1]!==1&&(r=tn(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=qh(o,a,n,i):l=qh(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 l1=class extends Be{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=Ze(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=Te(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=Te(t.countWeights)}let a=fa(e),r=_l(e),s=Cn(this.numTokens,a).bufferSync().get(0),i=Dr(r,0).bufferSync().get(0);if(!(s&&i))throw new V(`Input values must be between 0 < values <= numTokens with numTokens=${this.numTokens}`);return SH(e,this.outputMode,this.numTokens,n)})}};l1.className="CategoryEncoding";ne.registerClass(l1);var NH=["bilinear","nearest"],bI=new Set(NH),u1=class extends Be{constructor(e){if(super(e),this.height=e.height,this.width=e.width,e.interpolation)if(bI.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=!!e.cropToAspectRatio}computeOutputShape(e){e=Ze(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 Qn.resizeBilinear(e,n,!this.cropToAspectRatio);if(this.interpolation==="nearest")return Qn.resizeNearestNeighbor(e,n,!this.cropToAspectRatio);throw new Error(`Interpolation is ${this.interpolation} but only ${[...bI]} are supported`)})}};u1.className="Resizing";ne.registerClass(u1);var j2=class{constructor(e){this.seed=e}next(){if(this.seed!==void 0)return this.seed++}};j2.className="RandomSeed";var K2=class extends Be{constructor(e){super(e),this.randomGenerator=new j2(e.seed)}getConfig(){let e={seed:this.randomGenerator.seed},t=super.getConfig();return Object.assign(e,t),e}};K2.className="BaseRandomLayer";var TH=["bilinear","nearest"],yI=new Set(TH),p1=class extends K2{constructor(e){super(e);let{factor:t,interpolation:n="bilinear"}=e;if(this.factor=t,Array.isArray(this.factor)&&this.factor.length===2)this.widthLower=this.factor[0],this.widthUpper=this.factor[1];else if(!Array.isArray(this.factor)&&this.factor>0)this.widthLower=-this.factor,this.widthUpper=this.factor;else throw new V(`Invalid factor: ${this.factor}. Must be positive number or tuple of 2 numbers`);if(this.widthLower<-1||this.widthUpper<-1)throw new V(`factor must have values larger than -1. Got: ${this.factor}`);if(this.widthUppert?1:0}function wh(e,t){return-1*FU(e,t)}function rs(e){if(e==null)return e;let t=[];for(let n of e)t.indexOf(n)===-1&&t.push(n);return t}function $U(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 Kw(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 an(e,t){Array.isArray(e)?(w.assert(e.length>0,()=>`${t} is unexpectedly an empty array.`),e.forEach((n,a)=>an(n,`element ${a+1} of ${t}`))):w.assert(Number.isInteger(e)&&e>0,()=>`Expected ${t} to be a positive integer, but got ${JT(e)}.`)}function JT(e){return e===null?"null":Array.isArray(e)?"["+e.map(t=>JT(t)).join(",")+"]":typeof e=="string"?`"${e}"`:`${e}`}function DU(e,t,n){let a=n!=null?n():w.now(),r;return(...s)=>{let i=n!=null?n():w.now();return i-a0){let n=`${e}_${t}`;return wl.set(n,1),n}else return e}var VU=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function r2(e){return!!e.match(VU)}function UU(e){return e===parseInt(e.toString(),10)}function ss(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 qa(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=yd(e,1);return Mx(n,[1,t,1])})}function HU(e){let t=[ss(e.shape)];return W(e,t)}function qU(e){if(e.rank<=1)throw new V(`batchFlatten requires a minimum rank of 2. Got rank: ${e.rank}.`);let t=[e.shape[0],ss(e.shape,1)];return W(e,t)}function si(e,t,n){return P(()=>{switch(e.rank){case 1:return hd(e,t,n);case 2:return nf(e,[t,0],[n,e.shape[1]]);case 3:return Ho(e,[t,0,0],[n,e.shape[1],e.shape[2]]);case 4:return Ol(e,[t,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3]]);case 5:return Ue(e,[t,0,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3],e.shape[4]]);case 6:return Ue(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 ux(e,t,n){return P(()=>{switch(e.rank){case 1:return hd(e,t,n);case 2:return nf(e,[0,t],[e.shape[0],n]);case 3:return Ho(e,[0,0,t],[e.shape[0],e.shape[1],n]);case 4:return Ol(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 Ih(e,t,n,a){return P(()=>{switch(e.rank){case 1:return hd(e,t,n);case 2:switch(a){case 1:return si(e,t,n);case 2:return ux(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 si(e,t,n);case 2:return Ho(e,[0,t,0],[e.shape[0],n,e.shape[2]]);case 3:return ux(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 si(e,t,n);case 2:return Ol(e,[0,t,0,0],[e.shape[0],n,e.shape[2],e.shape[3]]);case 3:return Ol(e,[0,0,t,0],[e.shape[0],e.shape[1],n,e.shape[3]]);case 4:return ux(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 Xw(e,t=-1){let n;return t<0&&(n=e[0].rank,n!==0?t=n:t=0),t===e[0].rank&&(t=-1),et(e,t)}function uI(e,t){switch(e.rank){case 1:return Hv([e,t]);case 2:return qv([e,t],0);case 3:return jv([e,t],0);case 4:return Kv([e,t],0);default:throw new V(`concatAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}}function Mx(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 bf(e,t=0,n=1,a,r){return Xm(e,t,n,a,r)}function or(e,t,n,a){if(e.rank<2||t.rank<2)throw new Oe(`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 Oe(`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 zl.matMul({a:e,b:t,transposeA:!1,transposeB:!1,bias:a?Px(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(De(t,p),[l,-1]);let d=[...r,...u],c=!1,h=!1;return W(zl.matMul({a:e,b:t,transposeA:c,transposeB:h,bias:a?Px(e.rank,a,ja()):null,activation:n}),d)}}function s2(e,t,n){return P(()=>(Array.isArray(t)?t=je(t,"int32"):t=se(t,"int32"),np(e,t,n)))}function xd(e){return z(e,e)}function Px(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=ja()),Pt(n),X(e,Px(e.rank,t,n))))}function jU(e,t=1){if(t!==1)throw new Oe(`Support for alpha values other than 1 (${t}) is not implemented yet.`);return Qu(e)}function KU(e){return P(()=>he(e,X(Wt(e),1)))}function i2(e,t,n,a){return P(()=>Fw(e,t,n,a))}function XU(e){return P(()=>{let t=X(.5,z(.2,e));return sn(t,0,1)})}function vd(e,t,n=!1){return n?e():t()}var YU=["fanIn","fanOut","fanAvg"],ZU=["normal","uniform","truncatedNormal"];function JU(e){Ko(YU,"FanMode",e)}function QU(e){Ko(ZU,"Distribution",e)}var Ra=class extends ne.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}},Yw=class extends Ra{apply(e,t){return Nt(e,t)}};Yw.className="Zeros";ne.registerClass(Yw);var yf=class extends Ra{apply(e,t){return Jn(e,t)}};yf.className="Ones";ne.registerClass(yf);var Zw=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(ve(this.value),Jn(e,t)))}getConfig(){return{value:this.value}}};Zw.className="Constant";ne.registerClass(Zw);var Jw=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 Ts(e,this.minval,this.maxval,t,this.seed)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}};Jw.className="RandomUniform";ne.registerClass(Jw);var Qw=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 Oe(`randomNormal does not support dType ${t}.`);return bf(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};Qw.className="RandomNormal";ne.registerClass(Qw);var e0=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 Oe(`truncatedNormal does not support dType ${t}.`);return lf(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};e0.className="TruncatedNormal";ne.registerClass(e0);var t0=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,Um(e[0]))})}getConfig(){return{gain:this.gain}}};t0.className="Identity";ne.registerClass(t0);function eG(e,t="channelsLast"){let n,a;if(Pt(t),e.length===2)n=e[0],a=e[1];else if([3,4,5].indexOf(e.length)!==-1){if(t==="channelsFirst"){let r=ss(e,2);n=e[1]*r,a=e[0]*r}else if(t==="channelsLast"){let r=ss(e,0,e.length-2);n=e[e.length-2]*r,a=e[e.length-1]*r}}else{let r=ss(e);n=Math.sqrt(r),a=Math.sqrt(r)}return[n,a]}var Vn=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,JU(this.mode),this.distribution=e.distribution==null?"normal":e.distribution,QU(this.distribution),this.seed=e.seed}apply(e,t){let n=eG(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 Oe(`${this.getClassName()} does not support dType ${t}.`);return lf(e,0,i,t,this.seed)}else{let i=Math.sqrt(3*s);return Ts(e,-i,i,t,this.seed)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}};Vn.className="VarianceScaling";ne.registerClass(Vn);var xf=class extends Vn{constructor(e){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Vn.className}};xf.className="GlorotUniform";ne.registerClass(xf);var vf=class extends Vn{constructor(e){super({scale:1,mode:"fanAvg",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Vn.className}};vf.className="GlorotNormal";ne.registerClass(vf);var wf=class extends Vn{constructor(e){super({scale:2,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Vn.className}};wf.className="HeNormal";ne.registerClass(wf);var kf=class extends Vn{constructor(e){super({scale:2,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Vn.className}};kf.className="HeUniform";ne.registerClass(kf);var If=class extends Vn{constructor(e){super({scale:1,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Vn.className}};If.className="LeCunNormal";ne.registerClass(If);var Sf=class extends Vn{constructor(e){super({scale:1,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Vn.className}};Sf.className="LeCunUniform";ne.registerClass(Sf);var n0=class extends Ra{constructor(e){super(),this.DEFAULT_GAIN=1,this.ELEMENTS_WARN_SLOW=2e3,this.gain=e.gain==null?this.DEFAULT_GAIN:e.gain,this.seed=e.seed}apply(e,t){return P(()=>{if(e.length<2)throw new Oe("Shape must be at least 2D.");if(t!=="int32"&&t!=="float32"&&t!==void 0)throw new TypeError(`Unsupported data type ${t}.`);t=t;let n=w.sizeFromShape(e.slice(0,-1)),a=e[e.length-1],r=n*a;r>this.ELEMENTS_WARN_SLOW&&console.warn(`Orthogonal initializer is being called on a matrix with more than ${this.ELEMENTS_WARN_SLOW} (${r}) elements: Slowness may result.`);let s=[Math.max(a,n),Math.min(a,n)],i=bf(s,0,1,t,this.seed),o=Mw.qr(i,!1),l=o[0],u=o[1].flatten().stridedSlice([0],[Math.min(a,n)*Math.min(a,n)],[Math.min(a,n)+1]);return l=z(l,u.sign()),na*r);return t}var dI="Variable",o2=class{constructor(e,t="float32",n=dI,a=!0,r=null){this.dtype=t==null?"float32":t,this.shape=e.shape,this.id=e2(),n=n==null?dI:n,this.originalName=n2(n),this.name=a2(this.originalName),this.trainable_=a,this.constraint=r,this.val=Ew(e,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(e){return this.assertNotDisposed(),tG(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 tG(e,t){if(e.shape.toString()!==t.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(e.shape)+" vs. "+JSON.stringify(t.shape))}function Lx(e){return e.map(t=>t.read())}function a0(e){e.forEach(t=>{t[0].write(t[1])})}var Bt=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=e2(),s!=null&&(this.originalName=n2(s),this.name=a2(this.originalName)),this.rank=t.length}},nG=0,Nf=class{constructor(e,t){this.callArgs=t,this.id=nG++,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}}},aG=0,Be=class extends ne.Serializable{constructor(e={}){super(),this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=aG++,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)+"_"+gf(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 Sr(`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 Sr(`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 Sr(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new Sr(`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=vt(e),this.inputSpec==null||this.inputSpec.length===0)return;let t=vt(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 vt(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=vt(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 Oe("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return s}else{let s=rG(e),i=this.computeOutputShape(s),o,l=sG(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,vt(e),t,this.name,p)):o=new Va(l,i,this,vt(e),t,this.name),this.addInboundNode(e,o,null,null,s,i,t),this._refCount++,this.activityRegularizer!=null)throw new Oe("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 Sr(`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 Sr(`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 Qh(this.weights)}build(e){this.built=!0}getWeights(e=!1){return Lx(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=Lx(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=vt(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=vt(e);t=vt(t),n=vt(n),a=vt(a),r=Jh(r),s=Jh(s);let l=[],u=[],p=[];for(let d of o)l.push(d.sourceLayer),u.push(d.nodeIndex),p.push(d.tensorIndex);new Nf({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 rG(e){e=vt(e);let t=[];for(let n of e)t.push(n.shape);return On(t)}function sG(e){return"float32"}function l2(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=em.get(p),c;if(d==null){let m=lG(i,t);d=m.sorted,c=m.recipientCounts,em.put(p,d),tm.put(p,c)}c={},r||Object.assign(c,tm.get(p));let h=new ti(t);for(let m=0;ma.maxNumTensors&&(a.maxNumTensors=F),F0,()=>"Expected at least one fetch, got none");let n=[],a={};if(e.length===1){let r=hI(e[0],t);n=r.sorted,a=r.recipientMap}else{let r=new Set;for(let s of e){let{sorted:i,recipientMap:o}=hI(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:uG(a)}}function uG(e){let t={};for(let n in e)t[n]=e[n].size;return t}function hI(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 pG(e){let t;if(e.sourceLayer.inboundNodes.length===1)t=e.sourceLayer.output;else{let n=null;for(let a=0;a100,oG);var p2={};Ee(p2,{maxNorm:()=>dG,minMaxNorm:()=>fG,nonNeg:()=>mG,unitNorm:()=>hG});function r0(e,t){return P(()=>hn(fe(z(e,e),t,!0)))}var wd=class extends ne.Serializable{getConfig(){return{}}},s0=class extends wd{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=r0(e,this.axis),n=sn(t,0,this.maxValue);return z(e,he(n,X(Kt(),t)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}};s0.className="MaxNorm";ne.registerClass(s0);var i0=class extends wd{constructor(e){super(),this.defaultAxis=0,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return P(()=>he(e,X(Kt(),r0(e,this.axis))))}getConfig(){return{axis:this.axis}}};i0.className="UnitNorm";ne.registerClass(i0);var o0=class extends wd{apply(e){return Ke(e)}};o0.className="NonNeg";ne.registerClass(o0);var l0=class extends wd{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=r0(e,this.axis),n=X(z(this.rate,sn(t,this.minValue,this.maxValue)),z(1-this.rate,t));return z(e,he(n,X(Kt(),t)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}};l0.className="MinMaxNorm";ne.registerClass(l0);var mI={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function Yt(e){return jw(e)}function fI(e,t={}){return bd(e,ne.SerializationMap.getMap().classNameMap,t,"constraint")}function Zt(e){if(e==null)return null;if(typeof e=="string"){let t={className:e in mI?mI[e]:e,config:{}};return fI(t)}else return e instanceof wd?e:fI(e)}function dG(e){return new s0(e)}function hG(e){return new i0(e)}function mG(){return new o0}function fG(e){return new l0(e)}var c2={};Ee(c2,{constant:()=>yG,glorotNormal:()=>NG,glorotUniform:()=>SG,heNormal:()=>TG,heUniform:()=>CG,identity:()=>kG,leCunNormal:()=>_G,leCunUniform:()=>EG,ones:()=>bG,orthogonal:()=>AG,randomNormal:()=>vG,randomUniform:()=>xG,truncatedNormal:()=>wG,varianceScaling:()=>IG,zeros:()=>gG});function gG(){return new Yw}function bG(){return new yf}function yG(e){return new Zw(e)}function xG(e){return new Jw(e)}function vG(e){return new Qw(e)}function wG(e){return new e0(e)}function kG(e){return new t0(e)}function IG(e){return new Vn(e)}function SG(e){return new xf(e)}function NG(e){return new vf(e)}function TG(e){return new wf(e)}function CG(e){return new kf(e)}function _G(e){return new If(e)}function EG(e){return new Sf(e)}function AG(e){return new n0(e)}var d2={};Ee(d2,{Layer:()=>Be,RNN:()=>fr,RNNCell:()=>Td,activation:()=>r6,add:()=>h6,alphaDropout:()=>Y6,average:()=>m6,averagePooling1d:()=>x1,averagePooling2d:()=>v1,averagePooling3d:()=>w1,avgPool1d:()=>I6,avgPool2d:()=>N6,avgPool3d:()=>C6,avgPooling1d:()=>S6,avgPooling2d:()=>T6,avgPooling3d:()=>_6,batchNormalization:()=>v6,bidirectional:()=>V6,categoryEncoding:()=>tq,centerCrop:()=>Q6,concatenate:()=>f6,conv1d:()=>XH,conv2d:()=>YH,conv2dTranspose:()=>ZH,conv3d:()=>JH,conv3dTranspose:()=>QH,convLstm2d:()=>L6,convLstm2dCell:()=>z6,cropping2D:()=>t6,dense:()=>s6,depthwiseConv2d:()=>a6,dot:()=>x6,dropout:()=>i6,elu:()=>UH,embedding:()=>d6,flatten:()=>l6,gaussianDropout:()=>X6,gaussianNoise:()=>K6,globalAveragePooling1d:()=>E6,globalAveragePooling2d:()=>A6,globalMaxPool1d:()=>G6,globalMaxPool2d:()=>H6,globalMaxPooling1d:()=>sC,globalMaxPooling2d:()=>iC,gru:()=>$6,gruCell:()=>D6,input:()=>A2,inputLayer:()=>VH,layerNormalization:()=>w6,leakyReLU:()=>HH,lstm:()=>R6,lstmCell:()=>M6,masking:()=>Z6,maxPool1d:()=>q6,maxPool2d:()=>j6,maxPooling1d:()=>oC,maxPooling2d:()=>lC,maxPooling3d:()=>F6,maximum:()=>g6,minimum:()=>b6,multiply:()=>y6,permute:()=>c6,prelu:()=>qH,randomWidth:()=>nq,reLU:()=>GH,repeatVector:()=>u6,rescaling:()=>J6,reshape:()=>p6,resizing:()=>eq,rnn:()=>W6,separableConv2d:()=>e6,simpleRNN:()=>P6,simpleRNNCell:()=>O6,softmax:()=>jH,spatialDropout1d:()=>o6,stackedRNNCells:()=>B6,thresholdedReLU:()=>KH,timeDistributed:()=>U6,upSampling2d:()=>n6,zeroPadding2d:()=>k6});async function Yr(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;sX(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(),qt(t[n])}))}},f2=class extends Vl{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 g2(n,t))}var Ca=class{constructor(){}static registerCallbackConstructor(e,t){w.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 y2(e,t,n,a,r,s,i,o,l){let u=new f2,p=[new $G,...Ca.createCallbacks(t)];e!=null&&p.push(...e),p.push(u);let d=new m2(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 bd(e,ne.SerializationMap.getMap().classNameMap,t,"layer",n)}function nm(e,t){return P(()=>{e.dtype!=="float32"&&(e=se(e,"float32"));let n=fe(xd(e),t,!0),a=xn(n.shape,Kt()),r=hn(hr(n,a));return he(e,r)})}function Xo(e,t){return P(()=>Et(xd(pe(t,e)),-1))}function Tf(e,t){return P(()=>Et(Wt(pe(t,e)),-1))}function sp(e,t){return P(()=>{let n=pe(e,t),a=sn(Wt(e),Kt(),Number.MAX_VALUE),r=Wt(he(n,a));return z(100,Et(r,-1))})}function DG(e,t){return P(()=>{let n=sn(t,Kt(),Number.MAX_VALUE),a=ta(X(1,n)),r=sn(e,Kt(),Number.MAX_VALUE),s=ta(X(1,r));return Et(xd(pe(a,s)),-1)})}function RG(e,t){return P(()=>{let n=hr(0,pe(1,z(e,t)));return Et(xd(n),-1)})}function MG(e,t){return P(()=>{let n=hr(0,pe(1,z(e,t)));return Et(n,-1)})}function PG(e,t){return P(()=>{let n=fe(z(e,t),-1),a=fa(z(pe(1,e),t),-1);return hr(0,X(1,pe(a,n)))})}function OG(e,t){return P(()=>{let n=Math.log(2),a=pe(t,e),r=pe(X(a,Go(z(-2,a))),n);return Et(r,-1)})}function vc(e,t,n=!1){return P(()=>{if(n)t=Xa(t);else{let a=fe(t,t.shape.length-1,!0);t=he(t,a)}return t=sn(t,Kt(),1-Kt()),yt(fe(z(se(e,"float32"),ta(t)),t.shape.length-1))})}function am(e,t,n=!1){return P(()=>{let a=se(tp(HU(e)),"int32");t=sn(t,Kt(),1-Kt());let r=t.shape,s=W(Ml(a,r[r.length-1]),r);return vc(s,t,n)})}function LG(e,t){if(!w.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=Ke(t),a=yt(Wt(t));return X(pe(n,z(t,e)),ld(yn(a)))})}function Cf(e,t){return P(()=>{let n;return n=sn(t,Kt(),1-Kt()),n=ta(he(n,pe(1,n))),Et(LG(e,n),-1)})}function zG(e,t){return P(()=>{let n=sn(e,Kt(),1),a=sn(t,Kt(),1);return fe(z(e,ta(he(n,a))),-1)})}function WG(e,t){return P(()=>{let n=ta(X(Kt(),t));return Et(pe(t,z(e,n)),-1)})}function u0(e,t){return P(()=>{let n=nm(e,-1),a=nm(t,-1),r=z(n,a);return yt(fe(r,-1))})}var rm={meanSquaredError:Xo,meanAbsoluteError:Tf,meanAbsolutePercentageError:sp,meanSquaredLogarithmicError:DG,squaredHinge:RG,hinge:MG,categoricalHinge:PG,logcosh:OG,categoricalCrossentropy:vc,sparseCategoricalCrossentropy:am,binaryCrossentropy:Cf,kullbackLeiblerDivergence:zG,poisson:WG,cosineProximity:u0};function px(e){if(typeof e=="string"){if(e in rm)return rm[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 p0(e,t){return P(()=>{let n=z(.5,na(t)),a=ir(Cn(t,n),e.dtype);return Et(ea(e,a),-1)})}function c0(e,t){return P(()=>ir(ea(ci(e,-1),ci(t,-1)),"float32"))}function x2(e,t){return P(()=>se(fe(Fa(ea(e,1),ea(t,1))),"float32"))}function BG(e,t){return P(()=>se(fe(Fa(ea(e,1),ea(t,0))),"float32"))}function VG(e,t){return P(()=>se(fe(Fa(ea(e,0),ea(t,1))),"float32"))}function v2(e,t){return P(()=>{let n=x2(e,t),a=VG(e,t),r=X(n,a);return se(rn(Cn(r,0),he(n,r),0),"float32")})}function UG(e,t){return P(()=>{let n=x2(e,t),a=BG(e,t),r=X(n,a);return se(rn(Cn(r,0),he(n,r),0),"float32")})}function w2(e,t){return Cf(e,t)}function k2(e,t){return e.rank===t.rank&&(e=_s(e,[e.rank-1])),t=ci(t,-1),t.dtype!==e.dtype&&(t=se(t,e.dtype)),se(ea(e,t),"float32")}var GG=Xo,HG=Xo,qG=Tf,jG=Tf,KG=sp,XG=sp,d0=vc,YG=u0,I2=am,sm={binaryAccuracy:p0,categoricalAccuracy:c0,precision:v2,categoricalCrossentropy:d0,sparseCategoricalCrossentropy:I2,mse:GG,MSE:HG,mae:qG,MAE:jG,mape:KG,MAPE:XG,cosine:YG};function ZG(e){if(typeof e=="string"&&e in sm)return sm[e];if(typeof e!="string"&&e!=null)return e;throw new V(`Unknown metric ${e}`)}function Sh(e){if(nr(e!==null,`Unknown LossOrMetricFn ${e}`),typeof e=="string")return e;{let t;for(let n of Object.keys(rm))if(rm[n]===e){t=n;break}if(t!==void 0)return t;for(let n of Object.keys(sm))if(sm[n]===e){t=n;break}return t!==void 0?t:e.name}}function JG(e){let t={Adagrad:()=>Ks.adagrad(.01),Adadelta:()=>Ks.adadelta(1,.95,Kt()),Adam:()=>Ks.adam(.001,.9,.999,Kt()),Adamax:()=>Ks.adamax(.002,.9,.999,Kt(),0),RMSProp:()=>Ks.rmsprop(.001,.9,0,Kt()),SGD:()=>Ks.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 bI(e,t,n=!1){if(e==null||typeof e!="object"||Object.getPrototypeOf(e)!==Object.prototype||!zx(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 zx(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"||!zx(e[n]))return!1;return!0}else if(Array.isArray(e)){for(let t of e)if(!zx(t))return!1;return!0}else return!1;else{let t=typeof e;return t==="string"||t==="number"||t==="boolean"}}function QG(e,t,n,a=console.log){let r=tH(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)),im(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 im(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 nH(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()];im(o,t,n)}function aH(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;cb.name)}`);rs(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 y=b.sourceLayer,x=b.nodeIndex,v=b.tensorIndex;this.outputLayers.push(y),this.outputLayersNodeIndices.push(x),this.outputLayersTensorIndices.push(v)}for(let b of this.inputs){let y=b.sourceLayer,x=b.nodeIndex,v=b.tensorIndex;nr(x===0,"input layer has >1 nodes"),nr(v===0,"input layer has >1 tensors"),this.inputLayers.push(y),this.inputLayersNodeIndices.push(x),this.inputLayersTensorIndices.push(v)}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 t={},n={},a={},r={},s={},i=[],o=(b,y,x,v,I,T)=>{(v==null||I==null||T==null)&&(v=b.sourceLayer,I=b.nodeIndex,T=b.tensorIndex);let C=v.inboundNodes[I];if(x.indexOf(C)!==-1)throw new Ba(`The tensor ${b.name} at layer "${v.name}" is part of a cycle.`);if(y.indexOf(C)!==-1)return;this.containerNodes.add(er.nodeKey(v,I)),v.id in s||(s[v.id]=Object.keys(s).length),x.indexOf(C)===-1&&x.push(C);let E=C.inboundLayers.length;for(let F=0;F=0;)x.splice(x.indexOf(C),1);i.push(C)},l=[],u=[];for(let b of this.outputs)o(b,l,u);let p=i.slice().reverse();for(let b of p){n[b.id]=b,b.id in t||(t[b.id]=0);let y=t[b.id],x=a[b.outboundLayer.id]==null?0:a[b.outboundLayer.id];y=Math.max(y,x),a[b.outboundLayer.id]=y,r[b.outboundLayer.id]=b.outboundLayer,t[b.id]=y;for(let v=0;vparseInt(b,10)).sort(wh);this.layers=[];for(let b of h){let y=c[b];y.sort((x,v)=>{let I=s[x.id],T=s[v.id];return IT?1:0});for(let x of y)x instanceof er&&this.internalContainerRefs.push(x),this.layers.push(x)}this.layersByDepth=c,h=Object.keys(d).map(b=>parseInt(b,10)).sort(wh);let m=this.inputs.slice(),f=[];for(let b of h)for(let y of d[b]){let x=y.outboundLayer;if(x!=null){for(let v of y.inputTensors)if(m.indexOf(v)===-1)throw new Ba(`Graph disconnected: cannot obtain value for tensor ${v} at layer "${x.name}". The following previous layers were accessed without issue: ${f}`);for(let v of y.outputTensors)m.push(v);f.push(x.name)}}this.nodesByDepth=d;let g=this.layers.map(b=>b.name);for(let b of g){let y=g.filter(x=>x===b).length;if(y!==1)throw new Ba(`The name "${b}" is used ${y} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(g))}this.outboundNodes=[],this.inboundNodes=[],new Nf({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 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}`)}a0(r)}updatedConfig(){let e=this.getConfig(),t={};return t.className=this.getClassName(),t.config=e,t.kerasVersion=`tfjs-layers ${h0}`,t.backend="TensorFlow.js",t}toJSON(e,t=!0){let n=Wx(this.updatedConfig());return t?JSON.stringify(n):n}call(e,t){return P(()=>{e=vt(e);let n=new ti;for(let a=0;a{e=vt(e);let n;return t==null?n=bi(null,e.length):n=vt(t),this.runInternalGraph(e,n)[1]})}computeOutputShape(e){let t=Jh(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(wh);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(wh);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,b,y;if(u.callArgs!=null&&(m=u.callArgs),h.length===1){let[x,v]=h[0];m.mask==null&&(m.mask=v),b=vt(p.call(x,m)),y=vt(p.computeMask(x,v)),f=[x],g=[v]}else f=h.map(x=>x[0]),g=h.map(x=>x[1]),m.mask==null&&(m.mask=g),b=vt(p.call(f,m)),y=vt(p.computeMask(f,g));if(p.activityRegularizer)throw new Oe("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(b),y)}function l(f){let g=f.name,b=Ga(f,t.customObjects!=null?t.customObjects:{});b.setFastWeightInitDuringBuild(a),r[g]=b,f.inboundNodes.forEach(y=>{if(!(y instanceof Array))throw new V(`Corrupted configuration, expected array for nodeData: ${y}`);i(b,y)})}let u=t.name,p=t.layers;for(let f of p)l(f);for(;!$U(s);)for(let f of p){let g=r[f.name];if(g.name in s){let b=s[g.name];delete s[g.name];for(let y of b)o(g,y)}}let d=[],c=[],h=t.inputLayers;for(let f of h){let g=f[0],b=f[1],y=f[2];nr(g in r);let x=r[g].inboundNodes[b].outputTensors;d.push(x[y])}let m=t.outputLayers;for(let f of m){let g=f[0],b=f[1],y=f[2];nr(g in r);let x=r[g].inboundNodes[b].outputTensors;c.push(x[y])}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 rH(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 N2(e,t){return rH(e,t,"classWeight")}async function T2(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 ci(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])}),je(i,"float32")}else return null}function sH(e,t){return z(e,t)}var iH=32;function C2(e,t){let n,a,r=t;n=r.xs,a=r.ys,w.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=yI("input",e.inputNames,n),i=yI("output",e.outputNames,a),o=s[0].shape[0];w.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)})`),w.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 yI(e,t,n){if(n instanceof Te)return[n];if(Array.isArray(n))return w.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 oH(e){if(e.length===3)throw new Oe("Validation with sample weights is not implemented yet.");return{xs:e[0],ys:e[1]}}async function lH(e,t,n){let a=n.batchesPerEpoch!=null;if(w.assert(e.optimizer!=null,()=>"You must compile a model before training/testing. Use LayersModel.compile(modelCompileConfig)."),w.assert(n!=null,()=>"For fitDataset(), the 2nd argument (config) is required, but it is not provided in this call."),w.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}`),w.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}`),w.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(xI(n.validationData))w.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=oH(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=b2(n.callbacks,n.yieldEvery),d=n.verbose==null?1:n.verbose,{callbackList:c,history:h}=y2(p,d,n.epochs,null,null,uH(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 v;xI(n.validationData)?v=vt(await e.evaluateDataset(n.validationData,{batches:n.validationBatches})):v=vt(e.evaluate(s,i,{batchSize:n.validationBatchSize==null?iH:n.validationBatchSize,verbose:0}));for(let I=0;I0)throw new Oe("Verbose mode is not implemented yet.");w.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=pH(t)?t:await t.iterator(),o=0,l=0;for(;!a||l{if(u.value){let{xs:p,ys:d}=C2(e,u.value),c=p.concat(d),h=P(()=>r(c));if(_e(c),l===0)for(let f=0;fX(s[f],z(m,g))),l>0&&_e(b)}_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 jp(e,t,n){return e==null?[null]:Array.isArray(e)?e.map(a=>si(a,t,n-t)):si(e,t,n-t)}function Bx(e,t){return P(()=>e==null?null:Array.isArray(e)?e.map(n=>Bx(n,t)):s2(e,t.dtype==="int32"?t:se(t,"int32")))}function dx(e,t){let n=[],a=0,r=null;for(;a=e&&(r=e),n.push([a,r]),a=r;return n}function _2(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 dH(e){return e instanceof Te}function Vx(e){return Array.isArray(e)}function vI(e){return!dH(e)&&!Vx(e)}function wI(e,t,n,a=!0,r=""){if(t==null||t.length===0){if(e!=null){let i=!1;if(Vx(e)&&e.length>0)i=!0;else if(vI(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(vI(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(Vx(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=_2(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 hH(e,t,n){let a=rs(e.map(s=>s.shape[0]));a.sort();let r=rs(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&&!w.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 mH(e,t,n){let a=[Xo,Cf,vc];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 gH="layers-model",Ar=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).");QG(this,e,t,n)}compile(e){if(e.loss==null&&(e.loss=[]),this.loss=e.loss,typeof e.optimizer=="string")this.optimizer_=JG(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(px(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=>px(s))}else{let s=px(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=fH(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])};ri("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]===Cf?["accuracy","acc"].indexOf(c)!==-1?p=p0:["crossentropy","ce"].indexOf(c)!==-1&&(p=w2):this.lossFunctions[s]===am?["accuracy","acc"].indexOf(c)!==-1?p=k2:["crossentropy","ce"].indexOf(c)!==-1&&(p=I2):["accuracy","acc"].indexOf(c)!==-1?p=c0:["crossentropy","ce"].indexOf(c)!==-1&&(p=d0);let f;["accuracy","acc"].indexOf(c)!==-1?f="acc":["crossentropy","ce"].indexOf(c)!==-1&&(f="ce"),d=p,u=l+f}else d=ZG(c),u=l+Sh(c);let h;ri(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;cx(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(),cH(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 ti;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 Oe("Verbose predictLoop() is not implemented yet.");let r=dx(a,t),s=this.outputs.map(i=>[]);for(let i=0;i{let o=r[i][0],l=r[i][1],u=jp(e,o,l),p=[];if(Array.isArray(u))for(let c=0;cs[l].push(o));return On(s.map(i=>et(i,0)))})}predict(e,t={}){let n=_2(e);kI(n,this.inputNames,this.feedInputShapes,!1);try{let a=t.batchSize==null?32:t.batchSize;return cx(a),this.predictLoop(n,a)}finally{za(n,e)}}predictOnBatch(e){kI(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=N2(a,this.outputNames);l=[];for(let p=0;p{let s=this.checkNumSamples(t,n,r,"steps"),i=[];if(a>0)throw new Oe("Verbose mode is not implemented yet.");if(r!=null)throw new Oe("steps mode in testLoop() is not implemented yet");{let o=dx(s,n),l=je(qa(0,s));for(let u=0;u1){let s=oI(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=X(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 Oe("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,E=await this.standardizeUserData(o,l,null,null,C,c);u=E[0],p=E[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)),E=a[0].shape[0];u=jp(a,C,E),s=a,a=jp(a,0,C),p=jp(r,C,E),i=r,r=jp(r,0,C),g=u.concat(p)}else n.validationSteps!=null&&(f=!0);let b=a.concat(r).concat(d);this.checkTrainableWeightsConsistency();let y=this.makeTrainFunction(),x=this.getDedupedMetricsNames(),v,I;f?(this.makeTestFunction(),v=this.testFunction,I=x.slice().concat(x.map(C=>"val_"+C))):(v=null,g=[],I=x.slice());let T=b2(n.callbacks,n.yieldEvery);return await this.fitLoop(y,b,x,c,n.epochs,n.verbose,T,v,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&&_e(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=qa(0,f)),s==null&&(s=1);let{callbackList:b,history:y}=y2(i,s,r,d,f,c,a,m,p);b.setModel(this),this.history=y,await b.onTrainBegin(),this.stopTraining_=!1;for(let x=d;x{let F=T[C][0],D=T[C][1],$=si(I,F,D-F);E.batch=C,E.size=D-F;let S=Bx(t,$),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(Sh(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(e=>Nr(Sh(e)));{let e={};for(let t in this.metrics)e[t]=Nr(Sh(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=wc(e.optimizer_config),n=Ga(t),a;if(typeof e.loss=="string")a=Zs(e.loss);else if(Array.isArray(e.loss))a=e.loss.map(s=>Zs(s));else if(e.loss!=null){a={};for(let s in e.loss)a[s]=Zs(e.loss[s])}let r;if(Array.isArray(e.metrics))r=e.metrics.map(s=>Zs(s));else if(e.metrics!=null){r={};for(let s in e.metrics)r[s]=Zs(e.metrics[s])}this.compile({loss:a,metrics:r,optimizer:n})}async save(e,t){if(typeof e=="string"){let i=jt.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 jt.encodeWeights(this.getNamedWeights(t)),a=!1,r=null,s={modelTopology:this.toJSON(r,a),format:gH,generatedBy:`TensorFlow.js tfjs-layers v${h0}`,convertedBy:null};if(t!=null&&t.includeOptimizer&&this.optimizer!=null){s.trainingConfig=this.getTrainingConfig();let i="optimizer",{data:o,specs:l}=await jt.encodeWeights(await this.optimizer.getWeights(),i);n.specs.push(...l),n.data=jt.concatenateArrayBuffers([n.data,o])}return this.userDefinedMetadata!=null&&(bI(this.userDefinedMetadata,this.name,!0),s.userDefinedMetadata=this.userDefinedMetadata),s.weightData=n.data,s.weightSpecs=n.specs,e.save(s)}setUserDefinedMetadata(e){bI(e,this.name),this.userDefinedMetadata=e}getUserDefinedMetadata(){return this.userDefinedMetadata}};Ar.className="Model";ne.registerClass(Ar);var E2=class extends Ar{};E2.className="Functional";ne.registerClass(E2);async function bH(e,t){"modelTopology"in e||(e={modelTopology:e}),e=e;let n=e.modelTopology;n.model_config!=null&&(n=n.model_config);let a=wc(n),r=Ga(a,t);if(e.weightsManifest!=null){let s=await jt.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 yH(e,t){if(t==null&&(t={}),typeof e=="string"){let n=jt.getLoadHandlers(e,t);if(n.length===0)n.push(jt.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 xH(e,void 0,t)}async function xH(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(wc(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}=vH(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 vH(e,t){let n=jt.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 Ul=class extends Ar{constructor(e){if(super({inputs:[],outputs:[]}),e=e||{},this.trainable=!0,this.built=!1,this.name=e.name!=null?e.name:gf("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 Ul||e instanceof Ar,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=u2({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=l2(this.outputs[0])}this.inboundNodes=[],new Nf({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:bi(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 Ar({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 w.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 Ul))throw new Oe(`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}}};Ul.className="Sequential";ne.registerClass(Ul);function wH(e){return new Ar(e)}function kH(e){return new Ul(e)}function A2(e){return u2(e)}function IH(e,t){Ca.registerCallbackConstructor(e,t)}var Gn=class extends ne.Serializable{getConfig(){return{}}},F2=class extends Gn{apply(e,t=1){return jU(e,t)}};F2.className="elu";ne.registerClass(F2);var $2=class extends Gn{apply(e){return Qm(e)}};$2.className="selu";ne.registerClass($2);var D2=class extends Gn{apply(e){return Ke(e)}};D2.className="relu";ne.registerClass(D2);var R2=class extends Gn{apply(e){return P(()=>ps(6,Ke(e)))}};R2.className="relu6";ne.registerClass(R2);var M2=class extends Gn{apply(e){return e}};M2.className="linear";ne.registerClass(M2);var P2=class extends Gn{apply(e){return ma(e)}};P2.className="sigmoid";ne.registerClass(P2);var O2=class extends Gn{apply(e){return XU(e)}};O2.className="hardSigmoid";ne.registerClass(O2);var L2=class extends Gn{apply(e){return Go(e)}};L2.className="softplus";ne.registerClass(L2);var z2=class extends Gn{apply(e){return KU(e)}};z2.className="softsign";ne.registerClass(z2);var W2=class extends Gn{apply(e){return hi(e)}};W2.className="tanh";ne.registerClass(W2);var m0=class extends Gn{apply(e,t=-1){return Xa(e,t)}};m0.className="softmax";ne.registerClass(m0);var B2=class extends Gn{apply(e,t=-1){return Hm(e,t)}};B2.className="logSoftmax";ne.registerClass(B2);var V2=class extends Gn{apply(e,t=1){return P(()=>z(ma(z(e,t)),e))}};V2.className="swish";ne.registerClass(V2);var U2=class extends Gn{apply(e){return P(()=>z(e,hi(Go(e))))}};U2.className="mish";ne.registerClass(U2);function ds(e){return e.getClassName()}function hx(e,t={}){return bd(e,ne.SerializationMap.getMap().classNameMap,t,"activation")}function hs(e){if(e==null){let t={};return t.className="linear",t.config={},hx(t)}if(typeof e=="string"){let t={};return t.className=e,t.config={},hx(t)}else return e instanceof Gn?e:hx(e)}function f0(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 G2=class extends ne.Serializable{},kd=class extends G2{constructor(e){super(),f0(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=Nt([1]);return this.hasL1&&(t=X(t,fe(z(this.l1,Wt(e))))),this.hasL2&&(t=X(t,fe(z(this.l2,xd(e))))),W(t,[])})}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(e,t){return new e({l1:t.l1,l2:t.l2})}};kd.className="L1L2";ne.registerClass(kd);function SH(e){return f0(e),new kd({l1:e!=null?e.l1:null,l2:0})}function NH(e){return f0(e),new kd({l2:e!=null?e.l2:null,l1:0})}var II={l1l2:"L1L2"};function mt(e){return jw(e)}function SI(e,t={}){return bd(e,ne.SerializationMap.getMap().classNameMap,t,"regularizer")}function Ct(e){if(e==null)return null;if(typeof e=="string"){let t={className:e in II?II[e]:e,config:{}};return SI(t)}else return e instanceof G2?e:SI(e)}var g0=class extends Be{constructor(e){super(e==null?{}:e),this.supportsMasking=!0,e!=null&&(this.maxValue=e.maxValue)}call(e,t){e=Ce(e);let n=Ke(e);return this.maxValue!=null&&(n=sn(n,0,this.maxValue)),n}computeOutputShape(e){return e}getConfig(){let e={maxValue:this.maxValue},t=super.getConfig();return Object.assign(e,t),e}};g0.className="ReLU";ne.registerClass(g0);var b0=class extends Be{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=Ce(e);return od(n,this.alpha)}computeOutputShape(e){return e}getConfig(){let e={alpha:this.alpha},t=super.getConfig();return Object.assign(e,t),e}};b0.className="LeakyReLU";ne.registerClass(b0);var y0=class extends Be{constructor(e){if(super(e==null?{}:e),this.DEFAULT_ALPHA_INITIALIZER="zeros",e==null&&(e={}),this.supportsMasking=!0,this.alphaInitializer=Tt(e.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=Ct(e.alphaRegularizer),this.alphaConstraint=Zt(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(Pt(t),t==="channelsFirst"?De(e,[0,2,3,1]):e))}function H2(e,t){return P(()=>(Pt(t),t==="channelsFirst"?De(e,[0,2,3,4,1]):e))}function TH(e,t,n,a=1,r="valid",s,i=1){return P(()=>{if(s==null&&(s=ja()),Pt(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=De(e,[0,2,1])),r==="causal")throw new Oe("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");let o=zm(e,t,a,r==="same"?"same":"valid","NWC",i);return n!=null&&(o=Ya(o,n)),o})}function NI(e,t,n,a=[1,1],r="valid",s,i,o=null){return P(()=>{if(s==null&&(s=ja()),Pt(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=k0(e,s);if(r==="causal")throw new Oe("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return l=zl.conv2d({x:l,filter:t,strides:a,pad:r==="same"?"same":"valid",dilations:i,dataFormat:"NHWC",bias:n,activation:o}),s==="channelsFirst"&&(l=De(l,[0,3,1,2])),l})}function CH(e,t,n,a=[1,1,1],r="valid",s,i){return P(()=>{if(s==null&&(s=ja()),Pt(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=H2(e,s);if(r==="causal")throw new Oe("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return o=Yv(o,t,a,r==="same"?"same":"valid","NDHWC",i),n!=null&&(o=Ya(o,n)),s==="channelsFirst"&&(o=De(o,[0,4,1,2,3])),o})}var I0=class extends Be{constructor(e,t){if(super(t),this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",I0.verifyArgs(t),this.rank=e,an(this.rank,"rank"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new Oe(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=_l(t.kernelSize,e,"kernelSize"),this.strides=_l(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,Pt(this.dataFormat),this.activation=hs(t.activation),this.useBias=t.useBias==null?!0:t.useBias,this.biasInitializer=Tt(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=Zt(t.biasConstraint),this.biasRegularizer=Ct(t.biasRegularizer),this.activityRegularizer=Ct(t.activityRegularizer),this.dilationRate=_l(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"&&!Kw(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:ds(this.activation),useBias:this.useBias,biasInitializer:At(this.biasInitializer),biasRegularizer:mt(this.biasRegularizer),activityRegularizer:mt(this.activityRegularizer),biasConstraint:Yt(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}},Id=class extends I0{constructor(e,t){super(e,t),this.kernel=null,Id.verifyArgs(t),this.filters=t.filters,an(this.filters,"filters"),this.kernelInitializer=Tt(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=Zt(t.kernelConstraint),this.kernelRegularizer=Ct(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=Ce(e);let n,a=this.bias==null?null:this.bias.read(),r=QT(this.activation.getClassName());if(r!=null&&this.rank===2)n=NI(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate,r);else{if(this.rank===1)n=TH(e,this.kernel.read(),a,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)n=NI(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)n=CH(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new Oe("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)}`)}},Sd=class extends Id{constructor(e){super(2,e),Sd.verifyArgs(e)}getConfig(){let e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!Kw(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)}.`)}};Sd.className="Conv2D";ne.registerClass(Sd);var Nd=class extends Id{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 S0=class extends Sd{constructor(e){if(super(e),this.inputSpec=[new Bt({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 Bt({ndim:4,axes:{[t]:n}})],this.built=!0}call(e,t){return P(()=>{let n=Ce(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=De(n,[0,2,3,1]));let g=Wm(n,this.kernel.read(),f,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(g=De(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}};S0.className="Conv2DTranspose";ne.registerClass(S0);var N0=class extends Nd{constructor(e){if(super(e),this.inputSpec=[new Bt({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 Bt({ndim:5,axes:{[t]:n}})],this.built=!0}call(e,t){return P(()=>{let n=Ce(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],b=ar(l,m,d,this.padding),y=ar(u,f,c,this.padding),x=ar(p,g,h,this.padding),v=[r,b,y,x,this.filters];this.dataFormat!=="channelsLast"&&(n=De(n,[0,2,3,4,1]));let I=Zv(n,this.kernel.read(),v,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(I=De(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}};N0.className="Conv3DTranspose";ne.registerClass(N0);var q2=class extends Id{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=Tt(t.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=Ct(t.depthwiseRegularizer),this.depthwiseConstraint=Zt(t.depthwiseConstraint),this.pointwiseInitializer=Tt(t.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=Ct(t.pointwiseRegularizer),this.pointwiseConstraint=Zt(t.pointwiseConstraint)}build(e){if(e=Je(e),e.length{e=Ce(e);let n;if(this.rank===1)throw new Oe("1D separable convolution is not implemented yet.");return this.rank===2&&(this.dataFormat==="channelsFirst"&&(e=De(e,[0,2,3,1])),n=Cs(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=De(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=At(this.depthwiseInitializer),e.pointwiseInitializer=At(this.pointwiseInitializer),e.depthwiseRegularizer=mt(this.depthwiseRegularizer),e.pointwiseRegularizer=mt(this.pointwiseRegularizer),e.depthwiseConstraint=Yt(this.depthwiseConstraint),e.pointwiseConstraint=Yt(this.pointwiseConstraint),e}};q2.className="SeparableConv";var T0=class extends q2{constructor(e){super(2,e)}};T0.className="SeparableConv2D";ne.registerClass(T0);var _f=class extends Id{constructor(e){super(1,e),_f.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"&&!Kw(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)}.`)}};_f.className="Conv1D";ne.registerClass(_f);var C0=class extends Be{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=Ce(e),this.dataFormat==="channelsLast"){let n=Ih(e,this.cropping[0][0],e.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return Ih(n,this.cropping[1][0],e.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{let n=Ih(e,this.cropping[0][0],e.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return Ih(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}};C0.className="Cropping2D";ne.registerClass(C0);var _0=class extends Be{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,Pt(this.dataFormat),this.interpolation=e.interpolation==null?"nearest":e.interpolation,WU(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=Ce(e),a=n.shape;if(this.dataFormat==="channelsFirst"){n=De(n,[0,2,3,1]);let r=this.size[0]*a[2],s=this.size[1]*a[3],i=this.interpolation==="nearest"?Qn.resizeNearestNeighbor(n,[r,s]):Qn.resizeBilinear(n,[r,s]);return De(i,[0,3,1,2])}else{let r=this.size[0]*a[1],s=this.size[1]*a[2];return this.interpolation==="nearest"?Qn.resizeNearestNeighbor(n,[r,s]):Qn.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}};_0.className="UpSampling2D";ne.registerClass(_0);function _H(e,t,n=[1,1],a="valid",r,s){return P(()=>{r==null&&(r=ja()),Pt(r);let i=k0(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=Ss(i,t,n,a==="same"?"same":"valid","NHWC",s),r==="channelsFirst"&&(i=De(i,[0,3,1,2])),i})}var E0=class extends I0{constructor(e){super(2,e),this.depthwiseKernel=null,this.depthMultiplier=e.depthMultiplier==null?1:e.depthMultiplier,this.depthwiseInitializer=Tt(e.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=Zt(e.depthwiseConstraint),this.depthwiseRegularizer=Ct(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=Ce(e);let n=_H(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=At(this.depthwiseInitializer),e.depthwiseRegularizer=mt(this.depthwiseRegularizer),e.depthwiseConstraint=Yt(this.depthwiseRegularizer),e}};E0.className="DepthwiseConv2D";ne.registerClass(E0);function j2(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 K2(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(qa(2,l));if(t=De(t,u),s!=null)throw new Oe("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=se(se(r,"bool"),"float32"),r.rank===l-1&&(r=nn(r,-1)),r=De(r,u)),a&&(t=ba(t,0),r!=null&&(r=ba(r,0)));let p=[],d,c=n,h=t.shape[0],m=pt(t),f;r!=null&&(f=pt(r));for(let b=0;be(y,c));if(r==null)d=x[0],c=x[1];else{let v=P(()=>{let I=f[b],T=pe(na(I),I),C=X(z(x[0],I),z(c[0],T)),E=c.map((F,D)=>X(z(x[1][D],I),z(F,T)));return{output:C,newStates:E}});d=v.output,c=v.newStates}o&&p.push(d)}let g;return o&&(g=Dt(p,1)),[d,g,c]})}var fr=class extends Be{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 Ff({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 Bt({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 qa(0,e).map(t=>null)}else return this.states_}setStates(e){this.states_=e}computeOutputShape(e){Ox(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 Bt({shape:[null,s]}));this.stateful&&this.resetStates()}resetStates(e,t=!1){P(()=>{if(!this.stateful)throw new Sr("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=>Nt([n,a])):this.states_=[Nt([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=>Nt([n,a])):this.states_[0]=Nt([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;aqt(a.clone()))})}apply(e,t){let n=t==null?null:t.initialState,a=t==null?null:t.constants;t==null&&(t={});let r=j2(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 Bt({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=Ce(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=K2((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=Nt(e.shape);return t=fe(t,[1,2]),t=yd(t),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(n=>n>1?Mx(t,[1,n]):t):this.cell.stateSize>1?[Mx(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()===fr.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}))}};fr.className="RNN";ne.registerClass(fr);var Td=class extends Be{},Ef=class extends Td{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,an(this.units,"units"),this.activation=hs(e.activation==null?this.DEFAULT_ACTIVATION:e.activation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=Tt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=Tt(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=Tt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Ct(e.kernelRegularizer),this.recurrentRegularizer=Ct(e.recurrentRegularizer),this.biasRegularizer=Ct(e.biasRegularizer),this.kernelConstraint=Zt(e.kernelConstraint),this.recurrentConstraint=Zt(e.recurrentConstraint),this.biasConstraint=Zt(e.biasConstraint),this.dropout=Bl([1,cs([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=Bl([1,cs([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;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=Ya(r,this.bias.read())),i!=null&&(n=z(n,i));let o=X(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:ds(this.activation),useBias:this.useBias,kernelInitializer:At(this.kernelInitializer),recurrentInitializer:At(this.recurrentInitializer),biasInitializer:At(this.biasInitializer),kernelRegularizer:mt(this.kernelRegularizer),recurrentRegularizer:mt(this.recurrentRegularizer),biasRegularizer:mt(this.biasRegularizer),activityRegularizer:mt(this.activityRegularizer),kernelConstraint:Yt(this.kernelConstraint),recurrentConstraint:Yt(this.recurrentConstraint),biasConstraint:Yt(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign(Object.assign({},e),t)}};Ef.className="SimpleRNNCell";ne.registerClass(Ef);var A0=class extends fr{constructor(e){e.cell=new Ef(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)}};A0.className="SimpleRNN";ne.registerClass(A0);var Af=class extends Td{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,an(this.units,"units"),this.activation=hs(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=hs(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=Tt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=Tt(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=Tt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Ct(e.kernelRegularizer),this.recurrentRegularizer=Ct(e.recurrentRegularizer),this.biasRegularizer=Ct(e.biasRegularizer),this.kernelConstraint=Zt(e.kernelConstraint),this.recurrentConstraint=Zt(e.recurrentConstraint),this.biasConstraint=Zt(e.biasConstraint),this.dropout=Bl([1,cs([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=Bl([1,cs([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],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)}};F0.className="GRU";ne.registerClass(F0);var Cd=class extends Td{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,an(this.units,"units"),this.activation=hs(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=hs(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=Tt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=Tt(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=Tt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=e.unitForgetBias,this.kernelRegularizer=Ct(e.kernelRegularizer),this.recurrentRegularizer=Ct(e.recurrentRegularizer),this.biasRegularizer=Ct(e.biasRegularizer),this.kernelConstraint=Zt(e.kernelConstraint),this.recurrentConstraint=Zt(e.recurrentConstraint),this.biasConstraint=Zt(e.biasConstraint),this.dropout=Bl([1,cs([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=Bl([1,cs([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 yf().apply([s]),p=r.apply([s*2]);return uI(uI(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)}};$0.className="LSTM";ne.registerClass($0);var Ff=class extends Td{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{ri(`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 Lx(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):i2(t(),n),o=()=>vd(i,t,a);return!r||r<=1?qt(o().clone()):Array(r).fill(void 0).map(o).map(l=>qt(l.clone()))}var EH=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=Nt(r);return Array.isArray(t)?Array(t.length).fill(s):[s]})}resetStates(e,t=!1){P(()=>{if(!this.stateful)throw new Sr("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(()=>Nt(r)):this.states_=[Nt(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(()=>Nt(r)):this.states_[0]=Nt(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;sqt(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]]}};X2.className="ConvRNN2D";var $f=class extends Cd{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,an(this.filters,"filters"),this.kernelSize=_l(n,2,"kernelSize"),this.kernelSize.forEach(o=>an(o,"kernelSize")),this.strides=_l(a||1,2,"strides"),this.strides.forEach(o=>an(o,"strides")),this.padding=r||"valid",va(this.padding),this.dataFormat=s||"channelsLast",Pt(this.dataFormat),this.dilationRate=_l(i||1,2,"dilationRate"),this.dilationRate.forEach(o=>an(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=Jn([u]),m=l.apply([u*2]);return Xw([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),b=l(r,h,3),y=3,[x,v,I,T]=zn(this.kernel.read(),i,y),[C,E,F,D]=this.useBias?zn(this.bias.read(),i):[null,null,null,null];u=this.inputConv(u,x,C,this.padding),p=this.inputConv(p,v,E,this.padding),d=this.inputConv(d,I,F,this.padding),c=this.inputConv(c,T,D,this.padding);let[$,S,M,B]=zn(this.recurrentKernel.read(),i,y);m=this.recurrentConv(m,$),f=this.recurrentConv(f,S),g=this.recurrentConv(g,M),b=this.recurrentConv(b,B);let U=this.recurrentActivation.apply(X(u,m)),H=this.recurrentActivation.apply(X(p,f)),j=X(z(H,s),z(U,this.activation.apply(X(d,g)))),K=z(this.recurrentActivation.apply(X(c,b)),this.activation.apply(j));return[K,K,j]})}getConfig(){let e=super.getConfig(),{units:t}=e,n=EH(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=Rt(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 Rt(e,t,1,"same",this.dataFormat==="channelsFirst"?"NCHW":"NHWC")}};$f.className="ConvLSTM2DCell";ne.registerClass($f);var D0=class extends X2{constructor(e){let t=new $f(e);super(Object.assign(Object.assign({},e),{cell:t}))}static fromConfig(e,t){return new e(t)}};D0.className="ConvLSTM2D";ne.registerClass(D0);var Df=class extends Be{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=Ce(e);if(0i2(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()}};Df.className="Dropout";ne.registerClass(Df);var R0=class extends Df{constructor(e){super(e),this.inputSpec=[{ndim:3}]}getNoiseShape(e){let t=e.shape;return[t[0],1,t[2]]}};R0.className="SpatialDropout1D";ne.registerClass(R0);var M0=class extends Be{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,an(this.units,"units"),this.activation=hs(e.activation),e.useBias!=null&&(this.useBias=e.useBias),this.kernelInitializer=Tt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=Tt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=Zt(e.kernelConstraint),this.biasConstraint=Zt(e.biasConstraint),this.kernelRegularizer=Ct(e.kernelRegularizer),this.biasRegularizer=Ct(e.biasRegularizer),this.activityRegularizer=Ct(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=Ce(e),a=QT(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:ds(this.activation),useBias:this.useBias,kernelInitializer:At(this.kernelInitializer),biasInitializer:At(this.biasInitializer),kernelRegularizer:mt(this.kernelRegularizer),biasRegularizer:mt(this.biasRegularizer),activityRegularizer:mt(this.activityRegularizer),kernelConstraint:Yt(this.kernelConstraint),biasConstraint:Yt(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}};M0.className="Dense";ne.registerClass(M0);var P0=class extends Be{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],ss(e,1)]}call(e,t){return P(()=>{this.invokeCallHook(e,t);let n=Ce(e);if(this.dataFormat==="channelsFirst"&&n.rank>1){let a=[0];for(let r=2;r{this.invokeCallHook(e,t);let n=Ce(e);return this.activation.apply(n)})}getConfig(){let e={activation:ds(this.activation)},t=super.getConfig();return Object.assign(e,t),e}};O0.className="Activation";ne.registerClass(O0);var L0=class extends Be{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=Ce(e),GU(e,this.n)))}getConfig(){let e={n:this.n},t=super.getConfig();return Object.assign(e,t),e}};L0.className="RepeatVector";ne.registerClass(L0);var z0=class extends Be{constructor(e){super(e),this.targetShape=e.targetShape;for(let t=0;t{this.invokeCallHook(e,t);let n=Ce(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}};z0.className="Reshape";ne.registerClass(z0);var W0=class extends Be{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=qa(1,e.dims.length+1);if(!w.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 Bt({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 De(Ce(e),this.dimsIncludingBatch)}getConfig(){let e={dims:this.dims},t=super.getConfig();return Object.assign(e,t),e}};W0.className="Permute";ne.registerClass(W0);var B0=class extends Be{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=Ce(e),a=-1;return gc(fi(n,this.maskValue),a)}call(e,t){return P(()=>{this.invokeCallHook(e,t);let n=Ce(e),a=-1,r=!0,s=gc(fi(n,this.maskValue),a,r);return z(n,se(s,n.dtype))})}};B0.className="Masking";ne.registerClass(B0);var V0=class extends Be{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(vt(e.inputLength))}this.inputDim=e.inputDim,an(this.inputDim,"inputDim"),this.outputDim=e.outputDim,an(this.outputDim,"outputDim"),this.embeddingsInitializer=Tt(e.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=Ct(e.embeddingsRegularizer),this.activityRegularizer=Ct(e.activityRegularizer),this.embeddingsConstraint=Zt(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=Ce(e),fi(e,qe(e))):null)}computeOutputShape(e){if(e=Je(e),this.inputLength==null)return[...e,this.outputDim];let t=vt(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=Ce(e);n.dtype!=="int32"&&(n=ir(n,"int32"));let a=s2(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:At(this.embeddingsInitializer),embeddingsRegularizer:mt(this.embeddingsRegularizer),activityRegularizer:mt(this.activityRegularizer),embeddingsConstraint:Yt(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},t=super.getConfig();return Object.assign(e,t),e}};V0.className="Embedding";ne.registerClass(V0);var Yo=class extends Be{constructor(e){super(e||{}),this.supportsMasking=!0}mergeFunction(e){throw new Oe}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&&rs(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=cs(a);for(let s of e){let i=s.rank;for(let o=0;o1){let u=qa(1,l).concat([0]);n.push(De(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(De(W(s,[-1,u]),[1,0]),p)}else if(i>1){let o=[i-1].concat(qa(0,i-1));s=De(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:nn(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(()=>Xw(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 Oe("batchDot is not implemented for tensors of 4D or higher rank yet");if(w.assert(e.shape.length>=2,()=>`batchDot requires the rank of x to be >= 2, but got ${e.shape.length}`),w.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 Oe("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 Oe("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)=>Kp(r,e[s].shape.length)):a=[Kp(this.axes,t.shape.length),Kp(this.axes,n.shape.length)],this.normalize&&(t=nm(t,a[0]),n=nm(n,a[1])),AH(t,n,a)}interpretAxes(e,t){let n;return Array.isArray(this.axes)?n=this.axes:n=[Kp(this.axes,e.length),Kp(this.axes,t.length)],n}computeOutputShape(e){w.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 Oe("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}};X0.className="Dot";ne.registerClass(X0);var Y0=class extends Be{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=Ce(e);return vd(()=>X(bf(n.shape,0,this.stddev),n),()=>n,t.training||!1)})}};Y0.className="GaussianNoise";ne.registerClass(Y0);var Z0=class extends Be{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=Ce(e);return this.rate>0&&this.rate<1?vd(()=>{let a=Math.sqrt(this.rate/(1-this.rate));return z(n,bf(n.shape,1,a))},()=>n,t.training||!1):n})}};Z0.className="GaussianDropout";ne.registerClass(Z0);var J0=class extends Be{constructor(e){super(e),this.supportsMasking=!0,this.rate=e.rate,this.noiseShape=e.noiseShape}_getNoiseShape(e){return this.noiseShape||Ce(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 vd(()=>{let a=Ce(e),r=1.6732632423543772,s=1.0507009873554805,i=-r*s,o=Rr(Ts(n),this.rate);o=ir(o,"float32");let l=((1-this.rate)*(1+this.rate*i**2))**-.5,u=-l*i*this.rate,p=X(z(a,o),z(X(o,-1),i));return X(z(p,l),u)},()=>Ce(e),t.training||!1)}return e})}};J0.className="AlphaDropout";ne.registerClass(J0);function kc(e,t,n,a,r,s=.001){let i;if(e.rank===2)i=Wv(e,t,n,a,r,s);else if(e.rank===3)i=Bv(e,t,n,a,r,s);else if(e.rank===4)i=Vv(e,t,n,a,r,s);else throw new Oe(`batchNormalization is not implemented for array of rank ${e.rank} yet`);return i}function FH(e,t,n,a,r=.001){return P(()=>{let s=pd(e,a),i=s.mean,o=s.variance;return[kc(e,i,o,n,t,r),i,o]})}function $H(e,t,n,a,r=.001){return P(()=>{let s=pd(e,a),i=s.mean,o=s.variance,l=[];for(let h of qa(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[kc(e,u,p,c,d,r),i,o]})}function DH(e,t,n,a,r=.001){return w.arraysEqual(a.slice().sort(),qa(0,e.rank-1))?FH(e,t,n,a,r):$H(e,t,n,a,r)}var Q0=class extends Be{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=Tt(e.betaInitializer||"zeros"),this.gammaInitializer=Tt(e.gammaInitializer||"ones"),this.movingMeanInitializer=Tt(e.movingMeanInitializer||"zeros"),this.movingVarianceInitializer=Tt(e.movingVarianceInitializer||"ones"),this.betaConstraint=Zt(e.betaConstraint),this.gammaConstraint=Zt(e.gammaConstraint),this.betaRegularizer=Ct(e.betaRegularizer),this.gammaRegularizer=Ct(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 Bt({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=Ce(e),r=a.shape,s=r.length,i=qa(0,s),o=this.axis>=0?this.axis:this.axis+s;i.splice(o,1);let l=bi(1,s);l[o]=r[o];let u=i.slice();u.sort();let p=!w.arraysEqual(u,qa(0,s).slice(0,s-1)),d=()=>{if(p){let g=W(this.movingMean.read(),l),b=W(this.movingVariance.read(),l),y=this.center?W(this.beta.read(),l):null,x=this.scale?W(this.gamma.read(),l):null;return kc(a,g,b,y,x,this.epsilon)}else return kc(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]=DH(a,this.gamma.read(),this.beta.read(),i,this.epsilon),f=(g,b,y)=>{P(()=>{let x=1-y,v=g.read(),I=z(pe(v,b),x);g.write(pe(v,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:At(this.betaInitializer),gammaInitializer:At(this.gammaInitializer),movingMeanInitializer:At(this.movingMeanInitializer),movingVarianceInitializer:At(this.movingVarianceInitializer),betaRegularizer:mt(this.betaRegularizer),gammaRegularizer:mt(this.gammaRegularizer),betaConstraint:Yt(this.betaConstraint),gammaConstraint:Yt(this.gammaConstraint)},t=super.getConfig();return Object.assign(e,t),e}};Q0.className="BatchNormalization";ne.registerClass(Q0);var e1=class extends Be{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=Tt(e.betaInitializer||"zeros"),this.gammaInitializer=Tt(e.gammaInitializer||"ones"),this.betaRegularizer=Ct(e.betaRegularizer),this.gammaRegularizer=Ct(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!==rs(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=Ce(e),a=n.shape,r=a.length;return P(()=>{let{mean:s,variance:i}=pd(n,this.axis,!0),o=bi(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]],xa(e,a)})}var t1=class extends Be{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 Bt({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(()=>RH(Ce(e),this.padding,this.dataFormat))}getConfig(){let e={padding:this.padding,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};t1.className="ZeroPadding2D";ne.registerClass(t1);function Rf(e,t,n,a,r,s){return P(()=>{Pt(r),t2(s),va(a),n==null&&(n=[1,1]),a==null&&(a="valid"),r==null&&(r=ja()),s==null&&(s="max"),e=k0(e,r);let i,o=a==="same"?"same":"valid";return s==="max"?i=Mt(e,t,n,o):i=ya(e,t,n,o),r==="channelsFirst"&&(i=De(i,[0,3,1,2])),i})}function Y2(e,t,n,a,r,s){return P(()=>{Pt(r),t2(s),va(a),n==null&&(n=[1,1,1]),a==null&&(a="valid"),r==null&&(r=ja()),s==null&&(s="max"),e=H2(e,r);let i,o=a==="same"?"same":"valid";return s==="max"?i=hw(e,t,n,o):i=zv(e,t,n,o),r==="channelsFirst"&&(i=De(i,[0,4,1,2,3])),i})}var Z2=class extends Be{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(an(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)}`);an(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,va(this.padding),this.inputSpec=[new Bt({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=yd(Ce(e),2);let n=this.poolingFunction(Ce(e),[this.poolSize[0],1],[this.strides[0],1],this.padding,"channelsLast");return _s(n,[2])})}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides},t=super.getConfig();return Object.assign(e,t),e}},n1=class extends Z2{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Pt(r),va(a),Rf(e,t,n,a,r,"max")}};n1.className="MaxPooling1D";ne.registerClass(n1);var a1=class extends Z2{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Pt(r),va(a),Rf(e,t,n,a,r,"avg")}};a1.className="AveragePooling1D";ne.registerClass(a1);var J2=class extends Be{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];an(this.poolSize,"poolSize"),an(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Pt(this.dataFormat),va(this.padding),this.inputSpec=[new Bt({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(Ce(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}},r1=class extends J2{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Pt(r),va(a),Rf(e,t,n,a,r,"max")}};r1.className="MaxPooling2D";ne.registerClass(r1);var s1=class extends J2{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Pt(r),va(a),Rf(e,t,n,a,r,"avg")}};s1.className="AveragePooling2D";ne.registerClass(s1);var Q2=class extends Be{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];an(this.poolSize,"poolSize"),an(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Pt(this.dataFormat),va(this.padding),this.inputSpec=[new Bt({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(Ce(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}},i1=class extends Q2{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Pt(r),va(a),Y2(e,t,n,a,r,"max")}};i1.className="MaxPooling3D";ne.registerClass(i1);var o1=class extends Q2{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Pt(r),va(a),Y2(e,t,n,a,r,"avg")}};o1.className="AveragePooling3D";ne.registerClass(o1);var eC=class extends Be{constructor(e){super(e),this.inputSpec=[new Bt({ndim:3})]}computeOutputShape(e){return[e[0],e[2]]}call(e,t){throw new Oe}},l1=class extends eC{constructor(e){super(e||{})}call(e,t){return P(()=>{let n=Ce(e);return Et(n,1)})}};l1.className="GlobalAveragePooling1D";ne.registerClass(l1);var u1=class extends eC{constructor(e){super(e||{})}call(e,t){return P(()=>{let n=Ce(e);return fa(n,1)})}};u1.className="GlobalMaxPooling1D";ne.registerClass(u1);var tC=class extends Be{constructor(e){super(e),this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Pt(this.dataFormat),this.inputSpec=[new Bt({ndim:4})]}computeOutputShape(e){return e=e,this.dataFormat==="channelsLast"?[e[0],e[3]]:[e[0],e[1]]}call(e,t){throw new Oe}getConfig(){let e={dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},p1=class extends tC{call(e,t){return P(()=>{let n=Ce(e);return this.dataFormat==="channelsLast"?Et(n,[1,2]):Et(n,[2,3])})}};p1.className="GlobalAveragePooling2D";ne.registerClass(p1);var c1=class extends tC{call(e,t){return P(()=>{let n=Ce(e);return this.dataFormat==="channelsLast"?fa(n,[1,2]):fa(n,[2,3])})}};c1.className="GlobalMaxPooling2D";ne.registerClass(c1);var nC=class extends Be{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)}},d1=class extends nC{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=Ce(e),K2((n,a)=>[Ce(this.layer.call(n,t)),[]],e,[],!1,null,null,!1,!0)[1]))}};d1.className="TimeDistributed";ne.registerClass(d1);function MH(e){Ko(zU,"BidirectionalMergeMode",e)}var PH="concat",h1=class extends nC{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?PH:e.mergeMode,MH(this.mergeMode),e.weights)throw new Oe("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=j2(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 Bt({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 Oe("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=ba(r,1));let i;return this.mergeMode==="concat"?i=Xw([a,r]):this.mergeMode==="sum"?i=X(a,r):this.mergeMode==="ave"?i=z(.5,X(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){ri(this.forwardLayer.name,()=>{this.forwardLayer.build(e)}),ri(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 Oe("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");let a=t;return a.layer=n,new e(a)}};h1.className="Bidirectional";ne.registerClass(h1);var m1=class extends Be{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=Ce(e),e.dtype!=="float32"&&(e=ir(e,"float32")),X(z(e,this.scale),this.offset)))}};m1.className="Rescaling";ne.registerClass(m1);var{resizeBilinear:OH,cropAndResize:LH}=Qn,f1=class extends Be{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=Dt([e])):l=e;for(let x=0;x{let r=OH(e,[t,n]);return ir(r,a)})}call(e,t){return P(()=>{let n=Ce(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}};f1.className="CenterCrop";ne.registerClass(f1);function zH(e,t,n,a){let r=Ce(e);if(r.dtype!=="int32"&&(r=ir(r,"int32")),t==="int")return r;let s=r.shape;if(r.rank===0&&(r=nn(r,-1)),t==="oneHot"&&r.shape[r.shape.length-1]!==1&&(r=nn(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 g1=class extends Be{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=Ce(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=Ce(t.countWeights)}let a=fa(e),r=Dl(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 zH(e,this.outputMode,this.numTokens,n)})}};g1.className="CategoryEncoding";ne.registerClass(g1);var WH=["bilinear","nearest"],TI=new Set(WH),b1=class extends Be{constructor(e){if(super(e),this.height=e.height,this.width=e.width,e.interpolation)if(TI.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=!!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 Qn.resizeBilinear(e,n,!this.cropToAspectRatio);if(this.interpolation==="nearest")return Qn.resizeNearestNeighbor(e,n,!this.cropToAspectRatio);throw new Error(`Interpolation is ${this.interpolation} but only ${[...TI]} are supported`)})}};b1.className="Resizing";ne.registerClass(b1);var aC=class{constructor(e){this.seed=e}next(){if(this.seed!==void 0)return this.seed++}};aC.className="RandomSeed";var rC=class extends Be{constructor(e){super(e),this.randomGenerator=new aC(e.seed)}getConfig(){let e={seed:this.randomGenerator.seed},t=super.getConfig();return Object.assign(e,t),e}};rC.className="BaseRandomLayer";var BH=["bilinear","nearest"],CI=new Set(BH),y1=class extends rC{constructor(e){super(e);let{factor:t,interpolation:n="bilinear"}=e;if(this.factor=t,Array.isArray(this.factor)&&this.factor.length===2)this.widthLower=this.factor[0],this.widthUpper=this.factor[1];else if(!Array.isArray(this.factor)&&this.factor>0)this.widthLower=-this.factor,this.widthUpper=this.factor;else throw new V(`Invalid factor: ${this.factor}. Must be positive number or tuple of 2 numbers`);if(this.widthLower<-1||this.widthUpper<-1)throw new V(`factor must have values larger than -1. Got: ${this.factor}`);if(this.widthUpper{let n=Te(e);this.imgHeight=n.shape[n.shape.length-3];let a=n.shape[n.shape.length-2];this.widthFactor=Ns([1],1+this.widthLower,1+this.widthUpper,"float32",this.randomGenerator.next());let r=this.widthFactor.dataSync()[0]*a;r=Math.round(r);let s=[this.imgHeight,r];switch(this.interpolation){case"bilinear":return Qn.resizeBilinear(e,s);case"nearest":return Qn.resizeNearestNeighbor(e,s);default:throw new Error(`Interpolation is ${this.interpolation} - but only ${[...yI]} are supported`)}})}};p1.className="RandomWidth";ne.registerClass(p1);function CH(e){return new np(e)}function _H(e){return new c0(e)}function EH(e){return new l0(e)}function AH(e){return new u0(e)}function FH(e){return new p0(e)}function $H(e){return new h0(e)}function DH(e){return new d0(e)}function RH(e){return new Cf(e)}function MH(e){return new yd(e)}function PH(e){return new g0(e)}function OH(e){return new xd(e)}function LH(e){return new b0(e)}function zH(e){return new y0(e)}function WH(e){return new x0(e)}function BH(e){return new v0(e)}function VH(e){return new w0(e)}function UH(e){return new E0(e)}function GH(e){return new C0(e)}function HH(e){return new $f(e)}function qH(e){return new T0(e)}function jH(e){return new _0(e)}function KH(e){return new A0(e)}function XH(e){return new F0(e)}function YH(e){return new $0(e)}function ZH(e){return new R0(e)}function JH(e){return new M0(e)}function QH(e){return new O0(e)}function e6(e){return new W0(e)}function t6(e){return new L0(e)}function n6(e){return new z0(e)}function a6(e){return new P0(e)}function r6(e){return new B0(e)}function s6(e){return new H0(e)}function i6(e){return new q0(e)}function o6(e){return new j0(e)}function c1(e){return new X0(e)}function l6(e){return c1(e)}function u6(e){return c1(e)}function d1(e){return new Z0(e)}function p6(e){return d1(e)}function c6(e){return d1(e)}function h1(e){return new Q0(e)}function d6(e){return h1(e)}function h6(e){return h1(e)}function m6(e){return new e1(e)}function f6(e){return new n1(e)}function X2(e){return new t1(e)}function Y2(e){return new a1(e)}function Z2(e){return new K0(e)}function J2(e){return new Y0(e)}function g6(e){return new J0(e)}function b6(e){return new I0(e)}function y6(e){return new Ef(e)}function x6(e){return new S0(e)}function v6(e){return new wd(e)}function w6(e){return new k0(e)}function k6(e){return new _f(e)}function I6(e){return new N0(e)}function S6(e){return new Ff(e)}function N6(e){return new mr(e)}function T6(e){return new Af(e)}function C6(e){return new s1(e)}function _6(e){return new r1(e)}var E6=X2,A6=Y2,F6=Z2,$6=J2;function D6(e){return new V0(e)}function R6(e){return new U0(e)}function M6(e){return new G0(e)}function P6(e){return new D0(e)}function O6(e){return new i1(e)}function L6(e){return new o1(e)}function z6(e){return new u1(e)}function W6(e){return new l1(e)}function B6(e){return new p1(e)}var Q2={};Ee(Q2,{MAPE:()=>J6,MSE:()=>tq,binaryAccuracy:()=>V6,binaryCrossentropy:()=>U6,categoricalAccuracy:()=>H6,categoricalCrossentropy:()=>q6,cosineProximity:()=>X6,mape:()=>Q6,meanAbsoluteError:()=>Y6,meanAbsolutePercentageError:()=>Z6,meanSquaredError:()=>eq,mse:()=>nq,precision:()=>j6,recall:()=>K6,sparseCategoricalAccuracy:()=>G6});function V6(e,t){return n0(e,t)}function U6(e,t){return c2(e,t)}function G6(e,t){return d2(e,t)}function H6(e,t){return a0(e,t)}function q6(e,t){return r0(e,t)}function j6(e,t){return p2(e,t)}function K6(e,t){return _G(e,t)}function X6(e,t){return t0(e,t)}function Y6(e,t){return Nf(e,t)}function Z6(e,t){return ap(e,t)}function J6(e,t){return ap(e,t)}function Q6(e,t){return ap(e,t)}function eq(e,t){return Go(e,t)}function tq(e,t){return Go(e,t)}function nq(e,t){return Go(e,t)}var eC={};Ee(eC,{modelFromJSON:()=>nH});var tC={};Ee(tC,{l1:()=>rq,l1l2:()=>aq,l2:()=>sq});function aq(e){return new gd(e)}function rq(e){return uH(e)}function sq(e){return pH(e)}var nC=class extends Ol{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 vh(e,t){return et}var aC=class extends nC{constructor(e){if(super(),e==null&&(e={}),e.restoreBestWeights)throw new Oe("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=vh:this.mode==="max"?this.monitorFunc=xI:this.monitor.indexOf("acc")!==-1?this.monitorFunc=xI:this.monitorFunc=vh,this.monitorFunc===vh&&(this.minDelta*=-1)}async onTrainBegin(e){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===vh?1/0:-1/0}async onEpochEnd(e,t){await Xr(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 iq(e){return new aC(e)}var oq={earlyStopping:iq},lq=G();lq.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 vI;(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={}))})(vI||(vI={}));var m1={};function uq(e,t){let n={tfOpName:e,category:"custom",inputs:[],attrs:[],customExecutor:t};m1[e]=n}function rC(e){return m1[e]}function pq(e){delete m1[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,u=o<0?t.inputNames.length+o:o;if(s.type==="tensor")return cn(t.inputNames[u],n,a,r);if(s.type==="tensors"){let c=t.inputs.slice(o,l);return t.inputNames.slice(o,l).filter((h,m)=>{var f;return((f=c[m])===null||f===void 0?void 0:f.op)!=="NoOp"}).map(h=>cn(h,n,a,r))}let p=cn(t.inputNames[u],n,a,r),d=p.dataSync();return s.type==="number"?d[0]:v.toNestedArray(p.shape,d)}let i=t.attrParams[e];return i&&i.value}function cn(e,t,n,a){let[r,s]=Yn(e,n);if(a!=null){let o=a.getHashTableHandleByName(r);if(o!=null)return o}let i=n.currentContextIds.find(o=>!!t[nm(r,o)]);return i!==void 0?t[nm(r,i)][s]:void 0}function wI(e,t,n){return t[nm(e,n.currentContextId)]}function Nr(e,t){let[n,a,r]=Yn(e,t);return[nm(n,t&&t.currentContextId),a,r]}function nm(e,t){return t?`${e}-${t}`:e}function Yn(e,t){if(e==="")return["",0,void 0];let n=t!=null&&t.parseNodeNameCache!=null;if(n){let s=t.parseNodeNameCache.get(e);if(s!=null)return s}let a=e.split(":"),r;if(a.length===1)r=[e,0,void 0];else{let s=a[0],i=a.length===3?a[1]:void 0,o=Number(a[a.length-1]);r=[s,o,i]}return n&&t.parseNodeNameCache.set(e,r),r}function Ah(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 sC={};Ee(sC,{json:()=>cq});var cq=[{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}]}],iC={};Ee(iC,{json:()=>dq});var dq=[{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:"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}]},{tfOpName:"IsFinite",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"IsInf",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],oC={};Ee(oC,{json:()=>hq});var hq=[{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"}]}],lC={};Ee(lC,{json:()=>mq});var mq=[{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"}]}],uC={};Ee(uC,{json:()=>fq});var fq=[{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:"RandomUniformInt",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"minval",name:"minval",type:"number"},{tfName:"maxval",name:"maxval",type:"number"},{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,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"}]}],pC={};Ee(pC,{json:()=>gq});var gq=[{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}]}],cC={};Ee(cC,{json:()=>bq});var bq=[{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"}]}],dC={};Ee(dC,{json:()=>yq});var yq=[{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"}]}],hC={};Ee(hC,{json:()=>xq});var xq=[{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"}]}],mC={};Ee(mC,{json:()=>vq});var vq=[{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"}]}],fC={};Ee(fC,{json:()=>wq});var wq=[{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}]},{tfOpName:"BitwiseAnd",category:"logical",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}]}],gC={};Ee(gC,{json:()=>kq});var kq=[{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"}]},{tfOpName:"MatrixBandPart",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"numLower",type:"tensor"},{start:1,name:"numUpper",type:"tensor"}]}],bC={};Ee(bC,{json:()=>Iq});var Iq=[{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"}]}],yC={};Ee(yC,{json:()=>Sq});var Sq=[{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"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{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"}]}],xC={};Ee(xC,{json:()=>Nq});var Nq=[{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}]},{tfOpName:"TensorScatterUpdate",category:"slice_join",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"values",type:"tensor"}]}],vC={};Ee(vC,{json:()=>Tq});var Tq=[{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"}]}],wC={};Ee(wC,{json:()=>Cq});var Cq=[{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}]}],kC={};Ee(kC,{json:()=>_q});var _q=[{tfOpName:"StaticRegexReplace",category:"string",inputs:[{start:0,name:"input",type:"tensor"}],attrs:[{tfName:"pattern",name:"pattern",type:"string"},{tfName:"rewrite",name:"rewrite",type:"string"},{tfName:"replace_global",name:"replaceGlobal",type:"bool"}]},{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"}]}],IC={};Ee(IC,{json:()=>Eq});var Eq=[{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:"EnsureShape",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:[]}],kI=class{static get Instance(){return this._instance||(this._instance=new this)}constructor(){let e=[sC,iC,oC,lC,uC,pC,cC,dC,hC,mC,fC,gC,bC,yC,xC,vC,wC,kC,IC],t=[].concat(...e.map(n=>n.json));this.opMappers=t.reduce((n,a)=>(n[a.tfOpName]=a,n),{})}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,b)=>{let[y,,x]=Nr(g),w=i[y];if(w.outputs!=null){let I=w.outputs.indexOf(x);if(I!==-1){let T=`${y}:${I}`;f.inputNames[b]=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]=Nr(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]=Nr(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=rC(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=Mx(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=Mx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"string[]":i=Vx(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=Vx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"number":i=Ox(e.attr,r.tfName,r.defaultValue||0),i===void 0&&r.tfDeprecatedName&&(i=Ox(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"number[]":i=Bx(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=Bx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"bool":i=Px(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=Px(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"bool[]":i=Gx(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=Gx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"shape":i=Wx(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=Wx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"shape[]":i=Ux(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=Ux(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"dtype":i=Lx(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=Lx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"dtype[]":i=zx(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=zx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"func":i=II(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=II(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]=Nr(u.name),d={name:p,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:f1(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]=Nr(d),f=r[h];if(f.outputs!=null){let g=f.outputs.indexOf(m);if(g!==-1){let b=`${h}:${g}`;p.inputNames[c]=b}}p.inputs.push(f),f.children.push(p)})});let o=e.ret;e.signature.outputArg.forEach(u=>{let[p,d]=Nr(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 Aq(e){let t=G().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 SC(e,t){let n=Array.isArray(e)?String.fromCharCode.apply(null,e):Aq(e);return t?n:n.toLowerCase()}function Mx(e,t,n,a=!1){let r=e[t];return r!=null?SC(r.s,a):n}function Px(e,t,n){let a=e[t];return a?a.b:n}function Ox(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 f1(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 II(e,t,n){let a=e[t];return a&&a.func?a.func.name:n}function Lx(e,t,n){let a=e[t];return a&&a.type?f1(a.type):n}function zx(e,t,n){let a=e[t];return a&&a.list&&a.list.type?a.list.type.map(r=>f1(r)):n}function NC(e){if(!e.unknownRank)return e.dim!=null?e.dim.map(t=>typeof t.size=="number"?t.size:parseInt(t.size,10)):[]}function Wx(e,t,n){let a=e[t];return a&&a.shape?NC(a.shape):n}function Bx(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 Vx(e,t,n,a=!1){let r=e[t];return r&&r.list&&r.list.s?r.list.s.map(s=>SC(s,a)):n}function Ux(e,t,n){let a=e[t];return a&&a.list&&a.list.shape?a.list.shape.map(r=>NC(r)):n}function Gx(e,t,n){let a=e[t];return a&&a.list&&a.list.b?a.list.b:n}var Fq=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 cn(e,this.tensorMap,this.context)}getAttr(e,t){let n=this.node.rawAttrs[e];if(n.tensor!=null)return cn(e,this.tensorMap,this.context);if(n.i!=null||n.f!=null)return Ox(this.node.rawAttrs,e,t);if(n.s!=null)return Mx(this.node.rawAttrs,e,t);if(n.b!=null)return Px(this.node.rawAttrs,e,t);if(n.shape!=null)return Wx(this.node.rawAttrs,e,t);if(n.type!=null)return Lx(this.node.rawAttrs,e,t);if(n.list!=null){if(n.list.i!=null||n.list.f!=null)return Bx(this.node.rawAttrs,e,t);if(n.list.s!=null)return Vx(this.node.rawAttrs,e,t);if(n.list.shape!=null)return Ux(this.node.rawAttrs,e,t);if(n.list.b!=null)return Gx(this.node.rawAttrs,e,t);if(n.list.type!=null)return zx(this.node.rawAttrs,e,t)}return t}},on={};Ee(on,{OP_SCOPE_SUFFIX:()=>gv,abs:()=>Wt,acos:()=>kv,acosh:()=>Iv,add:()=>X,addN:()=>eN,all:()=>Om,any:()=>hc,argMax:()=>pi,argMin:()=>Sv,asin:()=>Nv,asinh:()=>Tv,atan:()=>Cv,atan2:()=>_v,atanh:()=>Ev,avgPool:()=>ya,avgPool3d:()=>Fv,basicLSTMCell:()=>rN,batchNorm:()=>ks,batchNorm2d:()=>$v,batchNorm3d:()=>Dv,batchNorm4d:()=>Rv,batchToSpaceND:()=>Jc,bincount:()=>Mv,bitwiseAnd:()=>sN,booleanMaskAsync:()=>XN,broadcastArgs:()=>iN,broadcastTo:()=>ni,buffer:()=>Le,cast:()=>ie,ceil:()=>Pv,clipByValue:()=>rn,clone:()=>sr,complex:()=>Ar,concat:()=>Qe,concat1d:()=>Ov,concat2d:()=>Lv,concat3d:()=>zv,concat4d:()=>Wv,conv1d:()=>Lm,conv2d:()=>Rt,conv2dTranspose:()=>zm,conv3d:()=>Vv,conv3dTranspose:()=>Uv,cos:()=>Qc,cosh:()=>Wm,cosineWindow:()=>uf,cumprod:()=>gc,cumsum:()=>Bm,denseBincount:()=>qh,depthToSpace:()=>Gv,depthwiseConv2d:()=>Is,diag:()=>lN,dilation2d:()=>Hv,div:()=>he,divNoNan:()=>qv,dot:()=>jv,dropout:()=>Iw,einsum:()=>pN,elu:()=>Zu,enclosingPowerOfTwo:()=>Sw,ensureShape:()=>cN,equal:()=>ea,erf:()=>Kv,euclideanNorm:()=>Zv,exp:()=>yn,expandDims:()=>tn,expm1:()=>Jv,eye:()=>Vm,fft:()=>ld,fill:()=>xn,floor:()=>Qu,floorDiv:()=>Pm,fused:()=>Rl,gather:()=>ep,gatherND:()=>QN,greater:()=>Cn,greaterEqual:()=>Dr,ifft:()=>Dl,imag:()=>ed,image:()=>Qn,inTopKAsync:()=>eT,irfft:()=>nf,isFinite:()=>Qv,isInf:()=>ew,isNaN:()=>tw,leakyRelu:()=>td,less:()=>El,lessEqual:()=>Ss,linalg:()=>Cw,linspace:()=>gN,localResponseNormalization:()=>nw,log:()=>ta,log1p:()=>nd,logSigmoid:()=>aw,logSoftmax:()=>Gm,logSumExp:()=>Hm,logicalAnd:()=>Fa,logicalNot:()=>ad,logicalOr:()=>qm,logicalXor:()=>rw,losses:()=>dT,lowerBound:()=>yN,matMul:()=>$e,max:()=>fa,maxPool:()=>Mt,maxPool3d:()=>sw,maxPoolWithArgmax:()=>xN,maximum:()=>dr,mean:()=>Et,meshgrid:()=>vN,min:()=>_l,minimum:()=>us,mirrorPad:()=>iw,mod:()=>ow,moments:()=>rd,movingAverage:()=>YN,mul:()=>z,multiRNNCell:()=>wN,multinomial:()=>kN,neg:()=>yt,norm:()=>Ju,notEqual:()=>mi,oneHot:()=>Al,ones:()=>Jn,onesLike:()=>na,op:()=>L,outerProduct:()=>IN,pad:()=>xa,pad1d:()=>SN,pad2d:()=>NN,pad3d:()=>TN,pad4d:()=>CN,pool:()=>lw,pow:()=>Fr,prelu:()=>id,print:()=>vv,prod:()=>uw,raggedGather:()=>_N,raggedRange:()=>EN,raggedTensorToTensor:()=>AN,rand:()=>FN,randomGamma:()=>MN,randomNormal:()=>Km,randomStandardNormal:()=>PN,randomUniform:()=>Ns,randomUniformInt:()=>ON,range:()=>fi,real:()=>Fl,reciprocal:()=>mw,relu:()=>Ke,relu6:()=>Xm,reshape:()=>W,reverse:()=>ba,reverse1d:()=>LN,reverse2d:()=>zN,reverse3d:()=>WN,reverse4d:()=>BN,rfft:()=>ud,round:()=>Ym,rsqrt:()=>Zm,scalar:()=>ve,scatterND:()=>ZN,searchSorted:()=>jm,selu:()=>Jm,separableConv2d:()=>Ts,setdiff1dAsync:()=>VN,sigmoid:()=>ma,sign:()=>fw,signal:()=>cT,sin:()=>Qm,sinh:()=>ef,slice:()=>Ue,slice1d:()=>od,slice2d:()=>tf,slice3d:()=>Wo,slice4d:()=>$l,softmax:()=>Xa,softplus:()=>zo,spaceToBatchND:()=>sd,sparse:()=>hT,sparseToDense:()=>JN,spectral:()=>pT,split:()=>zn,sqrt:()=>hn,square:()=>lt,squaredDifference:()=>af,squeeze:()=>Cs,stack:()=>Dt,step:()=>Bo,stridedSlice:()=>gw,string:()=>mT,sub:()=>pe,sum:()=>fe,tan:()=>bw,tanh:()=>di,tensor:()=>bn,tensor1d:()=>je,tensor2d:()=>Aa,tensor3d:()=>pd,tensor4d:()=>Da,tensor5d:()=>UN,tensor6d:()=>GN,tensorScatterUpdate:()=>qN,tile:()=>Ln,topk:()=>xw,transpose:()=>De,truncatedNormal:()=>of,unique:()=>vw,unsortedSegmentSum:()=>lf,unstack:()=>pt,upperBound:()=>jN,variable:()=>ww,where:()=>an,whereAsync:()=>kw,zeros:()=>Nt,zerosLike:()=>qe});var $q=(e,t,n,a=on)=>{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`)}},Dq=(e,t,n,a=on)=>{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(cn(e.inputNames[0],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(cn(e.inputNames[0],t,n))];case"IsInf":return[a.isInf(cn(e.inputNames[0],t,n))];case"IsFinite":return[a.isFinite(cn(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 SI(e){return!(typeof e=="number"||e.some(t=>t<0))}function qp(e,t,n){let a=Hx(e,n),r=!SI(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)}),!SI(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 Rq=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=ve(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,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 + `);if(n)if(CI.has(n))this.interpolation=n;else throw new V(`Invalid interpolation parameter: ${n} is not implemented`)}getConfig(){let e={factor:this.factor,interpolation:this.interpolation},t=super.getConfig();return Object.assign(e,t),e}computeOutputShape(e){e=Je(e);let t=e[2];return[this.imgHeight,-1,t]}call(e,t){return P(()=>{let n=Ce(e);this.imgHeight=n.shape[n.shape.length-3];let a=n.shape[n.shape.length-2];this.widthFactor=Ts([1],1+this.widthLower,1+this.widthUpper,"float32",this.randomGenerator.next());let r=this.widthFactor.dataSync()[0]*a;r=Math.round(r);let s=[this.imgHeight,r];switch(this.interpolation){case"bilinear":return Qn.resizeBilinear(e,s);case"nearest":return Qn.resizeNearestNeighbor(e,s);default:throw new Error(`Interpolation is ${this.interpolation} + but only ${[...CI]} are supported`)}})}};y1.className="RandomWidth";ne.registerClass(y1);function VH(e){return new rp(e)}function UH(e){return new x0(e)}function GH(e){return new g0(e)}function HH(e){return new b0(e)}function qH(e){return new y0(e)}function jH(e){return new w0(e)}function KH(e){return new v0(e)}function XH(e){return new _f(e)}function YH(e){return new Sd(e)}function ZH(e){return new S0(e)}function JH(e){return new Nd(e)}function QH(e){return new N0(e)}function e6(e){return new T0(e)}function t6(e){return new C0(e)}function n6(e){return new _0(e)}function a6(e){return new E0(e)}function r6(e){return new O0(e)}function s6(e){return new M0(e)}function i6(e){return new Df(e)}function o6(e){return new R0(e)}function l6(e){return new P0(e)}function u6(e){return new L0(e)}function p6(e){return new z0(e)}function c6(e){return new W0(e)}function d6(e){return new V0(e)}function h6(e){return new U0(e)}function m6(e){return new H0(e)}function f6(e){return new K0(e)}function g6(e){return new q0(e)}function b6(e){return new j0(e)}function y6(e){return new G0(e)}function x6(e){return new X0(e)}function v6(e){return new Q0(e)}function w6(e){return new e1(e)}function k6(e){return new t1(e)}function x1(e){return new a1(e)}function I6(e){return x1(e)}function S6(e){return x1(e)}function v1(e){return new s1(e)}function N6(e){return v1(e)}function T6(e){return v1(e)}function w1(e){return new o1(e)}function C6(e){return w1(e)}function _6(e){return w1(e)}function E6(e){return new l1(e)}function A6(e){return new p1(e)}function sC(e){return new u1(e)}function iC(e){return new c1(e)}function oC(e){return new n1(e)}function lC(e){return new r1(e)}function F6(e){return new i1(e)}function $6(e){return new F0(e)}function D6(e){return new Af(e)}function R6(e){return new $0(e)}function M6(e){return new Cd(e)}function P6(e){return new A0(e)}function O6(e){return new Ef(e)}function L6(e){return new D0(e)}function z6(e){return new $f(e)}function W6(e){return new fr(e)}function B6(e){return new Ff(e)}function V6(e){return new h1(e)}function U6(e){return new d1(e)}var G6=sC,H6=iC,q6=oC,j6=lC;function K6(e){return new Y0(e)}function X6(e){return new Z0(e)}function Y6(e){return new J0(e)}function Z6(e){return new B0(e)}function J6(e){return new m1(e)}function Q6(e){return new f1(e)}function eq(e){return new b1(e)}function tq(e){return new g1(e)}function nq(e){return new y1(e)}var uC={};Ee(uC,{MAPE:()=>hq,MSE:()=>gq,binaryAccuracy:()=>aq,binaryCrossentropy:()=>rq,categoricalAccuracy:()=>iq,categoricalCrossentropy:()=>oq,cosineProximity:()=>pq,mape:()=>mq,meanAbsoluteError:()=>cq,meanAbsolutePercentageError:()=>dq,meanSquaredError:()=>fq,mse:()=>bq,precision:()=>lq,recall:()=>uq,sparseCategoricalAccuracy:()=>sq});function aq(e,t){return p0(e,t)}function rq(e,t){return w2(e,t)}function sq(e,t){return k2(e,t)}function iq(e,t){return c0(e,t)}function oq(e,t){return d0(e,t)}function lq(e,t){return v2(e,t)}function uq(e,t){return UG(e,t)}function pq(e,t){return u0(e,t)}function cq(e,t){return Tf(e,t)}function dq(e,t){return sp(e,t)}function hq(e,t){return sp(e,t)}function mq(e,t){return sp(e,t)}function fq(e,t){return Xo(e,t)}function gq(e,t){return Xo(e,t)}function bq(e,t){return Xo(e,t)}var pC={};Ee(pC,{modelFromJSON:()=>bH});var cC={};Ee(cC,{l1:()=>xq,l1l2:()=>yq,l2:()=>vq});function yq(e){return new kd(e)}function xq(e){return SH(e)}function vq(e){return NH(e)}var dC=class extends Vl{constructor(){super(...arguments),this.model=null}setModel(e){if(!(e instanceof Ar))throw new Error("model must be a LayersModel, not some other Container");this.model=e}};function Nh(e,t){return et}var hC=class extends dC{constructor(e){if(super(),e==null&&(e={}),e.restoreBestWeights)throw new Oe("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=Nh:this.mode==="max"?this.monitorFunc=_I:this.monitor.indexOf("acc")!==-1?this.monitorFunc=_I:this.monitorFunc=Nh,this.monitorFunc===Nh&&(this.minDelta*=-1)}async onTrainBegin(e){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===Nh?1/0:-1/0}async onEpochEnd(e,t){await Yr(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 wq(e){return new hC(e)}var kq={earlyStopping:wq},Iq=G();Iq.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 EI;(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={}))})(EI||(EI={}));var k1={};function Sq(e,t){let n={tfOpName:e,category:"custom",inputs:[],attrs:[],customExecutor:t};k1[e]=n}function mC(e){return k1[e]}function Nq(e){delete k1[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,u=o<0?t.inputNames.length+o:o;if(s.type==="tensor")return cn(t.inputNames[u],n,a,r);if(s.type==="tensors"){let c=t.inputs.slice(o,l);return t.inputNames.slice(o,l).filter((h,m)=>{var f;return((f=c[m])===null||f===void 0?void 0:f.op)!=="NoOp"}).map(h=>cn(h,n,a,r))}let p=cn(t.inputNames[u],n,a,r),d=p.dataSync();return s.type==="number"?d[0]:w.toNestedArray(p.shape,d)}let i=t.attrParams[e];return i&&i.value}function cn(e,t,n,a){let[r,s]=Yn(e,n);if(a!=null){let o=a.getHashTableHandleByName(r);if(o!=null)return o}let i=n.currentContextIds.find(o=>!!t[om(r,o)]);return i!==void 0?t[om(r,i)][s]:void 0}function AI(e,t,n){return t[om(e,n.currentContextId)]}function Tr(e,t){let[n,a,r]=Yn(e,t);return[om(n,t&&t.currentContextId),a,r]}function om(e,t){return t?`${e}-${t}`:e}function Yn(e,t){if(e==="")return["",0,void 0];let n=t!=null&&t.parseNodeNameCache!=null;if(n){let s=t.parseNodeNameCache.get(e);if(s!=null)return s}let a=e.split(":"),r;if(a.length===1)r=[e,0,void 0];else{let s=a[0],i=a.length===3?a[1]:void 0,o=Number(a[a.length-1]);r=[s,o,i]}return n&&t.parseNodeNameCache.set(e,r),r}function Mh(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 Cr(e){return e.kept?e:sr(e)}var fC={};Ee(fC,{json:()=>Tq});var Tq=[{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}]}],gC={};Ee(gC,{json:()=>Cq});var Cq=[{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:"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}]},{tfOpName:"IsFinite",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"IsInf",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],bC={};Ee(bC,{json:()=>_q});var _q=[{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"}]}],yC={};Ee(yC,{json:()=>Eq});var Eq=[{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"}]}],xC={};Ee(xC,{json:()=>Aq});var Aq=[{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:"RandomUniformInt",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"minval",name:"minval",type:"number"},{tfName:"maxval",name:"maxval",type:"number"},{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,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"}]}],vC={};Ee(vC,{json:()=>Fq});var Fq=[{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}]}],wC={};Ee(wC,{json:()=>$q});var $q=[{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"}]}],kC={};Ee(kC,{json:()=>Dq});var Dq=[{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"}]}],IC={};Ee(IC,{json:()=>Rq});var Rq=[{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"}]}],SC={};Ee(SC,{json:()=>Mq});var Mq=[{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"}]}],NC={};Ee(NC,{json:()=>Pq});var Pq=[{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}]},{tfOpName:"BitwiseAnd",category:"logical",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}]}],TC={};Ee(TC,{json:()=>Oq});var Oq=[{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"}]},{tfOpName:"MatrixBandPart",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"numLower",type:"tensor"},{start:1,name:"numUpper",type:"tensor"}]}],CC={};Ee(CC,{json:()=>Lq});var Lq=[{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"}]}],_C={};Ee(_C,{json:()=>zq});var zq=[{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"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{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"}]}],EC={};Ee(EC,{json:()=>Wq});var Wq=[{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}]},{tfOpName:"TensorScatterUpdate",category:"slice_join",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"values",type:"tensor"}]}],AC={};Ee(AC,{json:()=>Bq});var Bq=[{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"}]}],FC={};Ee(FC,{json:()=>Vq});var Vq=[{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}]}],$C={};Ee($C,{json:()=>Uq});var Uq=[{tfOpName:"StaticRegexReplace",category:"string",inputs:[{start:0,name:"input",type:"tensor"}],attrs:[{tfName:"pattern",name:"pattern",type:"string"},{tfName:"rewrite",name:"rewrite",type:"string"},{tfName:"replace_global",name:"replaceGlobal",type:"bool"}]},{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"}]}],DC={};Ee(DC,{json:()=>Gq});var Gq=[{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:"EnsureShape",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:[]}],FI=class{static get Instance(){return this._instance||(this._instance=new this)}constructor(){let e=[fC,gC,bC,yC,xC,vC,wC,kC,IC,SC,NC,TC,CC,_C,EC,AC,FC,$C,DC],t=[].concat(...e.map(n=>n.json));this.opMappers=t.reduce((n,a)=>(n[a.tfOpName]=a,n),{})}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,b)=>{let[y,,x]=Tr(g),v=i[y];if(v.outputs!=null){let I=v.outputs.indexOf(x);if(I!==-1){let T=`${y}:${I}`;f.inputNames[b]=T}}f.inputs.push(v),v.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]=Tr(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]=Tr(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=mC(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=Ux(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=Ux(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"string[]":i=Yx(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=Yx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"number":i=Hx(e.attr,r.tfName,r.defaultValue||0),i===void 0&&r.tfDeprecatedName&&(i=Hx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"number[]":i=Xx(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=Xx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"bool":i=Gx(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=Gx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"bool[]":i=Jx(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=Jx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"shape":i=Kx(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=Kx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"shape[]":i=Zx(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=Zx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"dtype":i=qx(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=qx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"dtype[]":i=jx(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=jx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"func":i=$I(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=$I(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]=Tr(u.name),d={name:p,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:I1(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]=Tr(d),f=r[h];if(f.outputs!=null){let g=f.outputs.indexOf(m);if(g!==-1){let b=`${h}:${g}`;p.inputNames[c]=b}}p.inputs.push(f),f.children.push(p)})});let o=e.ret;e.signature.outputArg.forEach(u=>{let[p,d]=Tr(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 Hq(e){let t=G().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 RC(e,t){let n=Array.isArray(e)?String.fromCharCode.apply(null,e):Hq(e);return t?n:n.toLowerCase()}function Ux(e,t,n,a=!1){let r=e[t];return r!=null?RC(r.s,a):n}function Gx(e,t,n){let a=e[t];return a?a.b:n}function Hx(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 I1(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 $I(e,t,n){let a=e[t];return a&&a.func?a.func.name:n}function qx(e,t,n){let a=e[t];return a&&a.type?I1(a.type):n}function jx(e,t,n){let a=e[t];return a&&a.list&&a.list.type?a.list.type.map(r=>I1(r)):n}function MC(e){if(!e.unknownRank)return e.dim!=null?e.dim.map(t=>typeof t.size=="number"?t.size:parseInt(t.size,10)):[]}function Kx(e,t,n){let a=e[t];return a&&a.shape?MC(a.shape):n}function Xx(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 Yx(e,t,n,a=!1){let r=e[t];return r&&r.list&&r.list.s?r.list.s.map(s=>RC(s,a)):n}function Zx(e,t,n){let a=e[t];return a&&a.list&&a.list.shape?a.list.shape.map(r=>MC(r)):n}function Jx(e,t,n){let a=e[t];return a&&a.list&&a.list.b?a.list.b:n}var qq=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 cn(e,this.tensorMap,this.context)}getAttr(e,t){let n=this.node.rawAttrs[e];if(n.tensor!=null)return cn(e,this.tensorMap,this.context);if(n.i!=null||n.f!=null)return Hx(this.node.rawAttrs,e,t);if(n.s!=null)return Ux(this.node.rawAttrs,e,t);if(n.b!=null)return Gx(this.node.rawAttrs,e,t);if(n.shape!=null)return Kx(this.node.rawAttrs,e,t);if(n.type!=null)return qx(this.node.rawAttrs,e,t);if(n.list!=null){if(n.list.i!=null||n.list.f!=null)return Xx(this.node.rawAttrs,e,t);if(n.list.s!=null)return Yx(this.node.rawAttrs,e,t);if(n.list.shape!=null)return Zx(this.node.rawAttrs,e,t);if(n.list.b!=null)return Jx(this.node.rawAttrs,e,t);if(n.list.type!=null)return jx(this.node.rawAttrs,e,t)}return t}},ln={};Ee(ln,{OP_SCOPE_SUFFIX:()=>Nv,abs:()=>Wt,acos:()=>Av,acosh:()=>Fv,add:()=>X,addN:()=>uN,all:()=>Lm,any:()=>gc,argMax:()=>ci,argMin:()=>$v,asin:()=>Dv,asinh:()=>Rv,atan:()=>Mv,atan2:()=>Pv,atanh:()=>Ov,avgPool:()=>ya,avgPool3d:()=>zv,basicLSTMCell:()=>hN,batchNorm:()=>Is,batchNorm2d:()=>Wv,batchNorm3d:()=>Bv,batchNorm4d:()=>Vv,batchToSpaceND:()=>rd,bincount:()=>Uv,bitwiseAnd:()=>mN,booleanMaskAsync:()=>rT,broadcastArgs:()=>fN,broadcastTo:()=>ai,buffer:()=>Le,cast:()=>se,ceil:()=>Gv,clipByValue:()=>sn,clone:()=>sr,complex:()=>Fr,concat:()=>et,concat1d:()=>Hv,concat2d:()=>qv,concat3d:()=>jv,concat4d:()=>Kv,conv1d:()=>zm,conv2d:()=>Rt,conv2dTranspose:()=>Wm,conv3d:()=>Yv,conv3dTranspose:()=>Zv,cos:()=>sd,cosh:()=>Bm,cosineWindow:()=>pf,cumprod:()=>xc,cumsum:()=>Vm,denseBincount:()=>Zh,depthToSpace:()=>Jv,depthwiseConv2d:()=>Ss,diag:()=>bN,dilation2d:()=>Qv,div:()=>he,divNoNan:()=>ew,dot:()=>tw,dropout:()=>Fw,einsum:()=>xN,elu:()=>Qu,enclosingPowerOfTwo:()=>$w,ensureShape:()=>vN,equal:()=>ea,erf:()=>nw,euclideanNorm:()=>sw,exp:()=>yn,expandDims:()=>nn,expm1:()=>iw,eye:()=>Um,fft:()=>md,fill:()=>xn,floor:()=>tp,floorDiv:()=>Om,fused:()=>zl,gather:()=>np,gatherND:()=>lT,greater:()=>Cn,greaterEqual:()=>Rr,ifft:()=>Ll,imag:()=>id,image:()=>Qn,inTopKAsync:()=>uT,irfft:()=>af,isFinite:()=>ow,isInf:()=>lw,isNaN:()=>uw,leakyRelu:()=>od,less:()=>Rl,lessEqual:()=>Ns,linalg:()=>Mw,linspace:()=>NN,localResponseNormalization:()=>pw,log:()=>ta,log1p:()=>ld,logSigmoid:()=>cw,logSoftmax:()=>Hm,logSumExp:()=>qm,logicalAnd:()=>Fa,logicalNot:()=>ud,logicalOr:()=>jm,logicalXor:()=>dw,losses:()=>wT,lowerBound:()=>CN,matMul:()=>$e,max:()=>fa,maxPool:()=>Mt,maxPool3d:()=>hw,maxPoolWithArgmax:()=>_N,maximum:()=>hr,mean:()=>Et,meshgrid:()=>EN,min:()=>Dl,minimum:()=>ps,mirrorPad:()=>mw,mod:()=>fw,moments:()=>pd,movingAverage:()=>sT,mul:()=>z,multiRNNCell:()=>AN,multinomial:()=>FN,neg:()=>yt,norm:()=>ep,notEqual:()=>fi,oneHot:()=>Ml,ones:()=>Jn,onesLike:()=>na,op:()=>L,outerProduct:()=>$N,pad:()=>xa,pad1d:()=>DN,pad2d:()=>RN,pad3d:()=>MN,pad4d:()=>PN,pool:()=>gw,pow:()=>$r,prelu:()=>dd,print:()=>_v,prod:()=>bw,raggedGather:()=>ON,raggedRange:()=>LN,raggedTensorToTensor:()=>zN,rand:()=>WN,randomGamma:()=>GN,randomNormal:()=>Xm,randomStandardNormal:()=>HN,randomUniform:()=>Ts,randomUniformInt:()=>qN,range:()=>gi,real:()=>Pl,reciprocal:()=>kw,relu:()=>Ke,relu6:()=>Ym,reshape:()=>W,reverse:()=>ba,reverse1d:()=>jN,reverse2d:()=>KN,reverse3d:()=>XN,reverse4d:()=>YN,rfft:()=>fd,round:()=>Zm,rsqrt:()=>Jm,scalar:()=>ve,scatterND:()=>iT,searchSorted:()=>Km,selu:()=>Qm,separableConv2d:()=>Cs,setdiff1dAsync:()=>ZN,sigmoid:()=>ma,sign:()=>Iw,signal:()=>vT,sin:()=>ef,sinh:()=>tf,slice:()=>Ue,slice1d:()=>hd,slice2d:()=>nf,slice3d:()=>Ho,slice4d:()=>Ol,softmax:()=>Xa,softplus:()=>Go,spaceToBatchND:()=>cd,sparse:()=>kT,sparseToDense:()=>oT,spectral:()=>xT,split:()=>zn,sqrt:()=>hn,square:()=>lt,squaredDifference:()=>rf,squeeze:()=>_s,stack:()=>Dt,step:()=>qo,stridedSlice:()=>Sw,string:()=>IT,sub:()=>pe,sum:()=>fe,tan:()=>Nw,tanh:()=>hi,tensor:()=>bn,tensor1d:()=>je,tensor2d:()=>Aa,tensor3d:()=>gd,tensor4d:()=>Da,tensor5d:()=>JN,tensor6d:()=>QN,tensorScatterUpdate:()=>tT,tile:()=>Ln,topk:()=>Cw,transpose:()=>De,truncatedNormal:()=>lf,unique:()=>_w,unsortedSegmentSum:()=>uf,unstack:()=>pt,upperBound:()=>nT,variable:()=>Ew,where:()=>rn,whereAsync:()=>Aw,zeros:()=>Nt,zerosLike:()=>qe});var jq=(e,t,n,a=ln)=>{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`)}},Kq=(e,t,n,a=ln)=>{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(cn(e.inputNames[0],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(cn(e.inputNames[0],t,n))];case"IsInf":return[a.isInf(cn(e.inputNames[0],t,n))];case"IsFinite":return[a.isFinite(cn(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")){w.assert(e.length===t.length,()=>n+` Shapes ${e} and ${t} must match`);for(let a=0;an+` Shapes ${e} and ${t} must match`)}}}function DI(e){return!(typeof e=="number"||e.some(t=>t<0))}function Xp(e,t,n){let a=Qx(e,n),r=!DI(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=Qx(s.shape,a)}),!DI(a))throw new Error(`Non-fully-defined elementShape: ${a}`);return a}function Qx(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 Xq=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=ve(0),qt(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,qt(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: "),Ht(r)}),this.idTensor=ve(0),this.maxNumElements=a,Ht(this.idTensor)}copy(){return new zl([...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=qp(this.elementShape,this.tensors,e);return P(()=>{let r=this.tensors.map(s=>W(s,a));return Dt(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=qp(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 zl([],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=qp(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=qp(this.elementShape,this.tensors,n);return e.length===0?bn([],[0].concat(a)):P(()=>{let r=e.map(s=>W(this.tensors[s],a));return Dt(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=qp(this.elementShape,this.tensors,t);return this.size()===0?bn([],[0].concat(n)):P(()=>{let a=this.tensors.map(r=>W(r,n));return Qe(a,0)})}};function Mq(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=pt(e);return new zl(s,t,a)}function Pq(e,t,n,a){return new zl([],e,t,a)}function Oq(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 zl([],n,e.dtype,a),i=pt(e,0);return t.forEach((o,l)=>{s.setItem(o,i[l])}),s}function Lq(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: "),qt(r)}),this.idTensor=ve(0),this.maxNumElements=a,qt(this.idTensor)}copy(){return new Gl([...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=Xp(this.elementShape,this.tensors,e);return P(()=>{let r=this.tensors.map(s=>W(s,a));return Dt(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=Xp(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.");qt(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 Gl([],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=Xp(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: "),qt(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=Xp(this.elementShape,this.tensors,n);return e.length===0?bn([],[0].concat(a)):P(()=>{let r=e.map(s=>W(this.tensors[s],a));return Dt(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=Xp(this.elementShape,this.tensors,t);return this.size()===0?bn([],[0].concat(n)):P(()=>{let a=this.tensors.map(r=>W(r,n));return et(a,0)})}};function Yq(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=pt(e);return new Gl(s,t,a)}function Zq(e,t,n,a){return new Gl([],e,t,a)}function Jq(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 Gl([],n,e.dtype,a),i=pt(e,0);return t.forEach((o,l)=>{s.setItem(o,i[l])}),s}function Qq(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=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[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=>cn(r,t,n)!==void 0);if(a){let r=cn(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 Rq(u,r,a,s,l,i,o);return n.addTensorArray(p),[p.idTensor,ve(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[ve(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=Oq(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=Pq(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=Mq(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=Lq(a,s,r);return n.addTensorList(i),[i.idTensor]}case"TensorListLength":{let a=k("tensorListId",e,t,n),r=n.getTensorList(a.id);return[ve(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=Ah(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 Wq=(e,t,n,a=on)=>{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=Ah(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=Ah(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=Ah(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`)}},Bq=(e,t,n,a=on)=>{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"RandomUniformInt":return[a.randomUniformInt(k("shape",e,t,n),k("minval",e,t,n),k("maxval",e,t,n),k("seed",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 ix(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 Vq=async(e,t,n,a,r=on)=>{switch(e.op){case"NonMaxSuppressionV5":{let{boxes:s,scores:i,maxOutputSize:o,iouThreshold:l,scoreThreshold:u,softNmsSigma:p}=ix(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}=ix(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}=ix(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`)}},Uq=(e,t,n,a=on)=>{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`)}},Gq=(e,t,n,a=on)=>{switch(e.op){case"Const":return t[e.name];case"PlaceholderWithDefault":let r=k("default",e,t,n);return[cn(e.name,t,n)||r];case"Placeholder":return[cn(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 ve(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 Hq(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`)}},jq=(e,t,n,a=on)=>{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`)}},Kq=(e,t,n,a=on)=>{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))];case"BitwiseAnd":return[a.bitwiseAnd(k("a",e,t,n),k("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},Xq=(e,t,n,a=on)=>{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})];case"MatrixBandPart":return[a.linalg.bandPart(k("a",e,t,n),k("numLower",e,t,n),k("numUpper",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},Yq=(e,t,n,a=on)=>{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))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},Zq=(e,t,n,a=on)=>{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`)}},Jq=(e,t,n,a=on)=>{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`)}},Qq=(e,t,n,a=on)=>{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))]}case"TensorScatterUpdate":{let r=k("indices",e,t,n),s=k("values",e,t,n),i=k("tensor",e,t,n);return[a.tensorScatterUpdate(i,r,s)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},ej=(e,t,n,a=on)=>{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`)}},tj=(e,t,n,a=on)=>{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`)}},nj=(e,t,n,a=on)=>{switch(e.op){case"StaticRegexReplace":return[a.string.staticRegexReplace(k("input",e,t,n),k("pattern",e,t,n),k("rewrite",e,t,n),k("replaceGlobal",e,t,n))];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`)}},aj=(e,t,n,a=on)=>{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"EnsureShape":return[a.ensureShape(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 TI(e,t,n,a,r=P){let s=((i,o,l)=>{switch(i.category){case"arithmetic":return r(()=>$q(i,o,l));case"basic_math":return r(()=>Dq(i,o,l));case"control":return zq(i,o,l);case"convolution":return r(()=>Wq(i,o,l));case"creation":return r(()=>Bq(i,o,l));case"dynamic":return Vq(i,o,l);case"evaluation":return r(()=>Uq(i,o,l));case"image":return r(()=>jq(i,o,l));case"graph":return r(()=>Gq(i,o,l));case"logical":return r(()=>Kq(i,o,l));case"matrices":return r(()=>Xq(i,o,l));case"normalization":return r(()=>Yq(i,o,l));case"ragged":return r(()=>Zq(i,o,l));case"reduction":return r(()=>Jq(i,o,l));case"slice_join":return r(()=>Qq(i,o,l));case"sparse":return r(()=>ej(i,o,l));case"spectral":return r(()=>tj(i,o,l));case"string":return r(()=>nj(i,o,l));case"transformation":return r(()=>aj(i,o,l));case"hash_table":return qq(i,o,l,a);case"custom":let u=rC(i.op);if(u&&u.customExecutor)return u.customExecutor(new Fq(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 CI=class{constructor(e={},t={},n={},a={},r){this.weightMap=e,this.tensorArrayMap=t,this.tensorListMap=n,this.functionMap=a,this.parseNodeNameCache=r,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 _I(e,t,n,a){let r=new Set,s=[],i=null,o=null,l=new Set,u=new Set(Object.keys(e).map(c=>Yn(c)[0]));a=a||[];let p=new Set(a.map(c=>Yn(c.name)[0])),d=[...t];for(;d.length>0;){let c=d.pop();if((Zs(c)||cj(c)||dj(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.has(c.name)&&!p.has(c.name)){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 rj(e,t){let{usedNodes:n,inputs:a}=t,r=Object.keys(a).map(g=>Yn(g)[0]).map(g=>e.nodes[g]),s=e.initNodes||[],i=g=>n.has(typeof g=="string"?g:g.name);function o(g){return[...new Map(g.map(b=>[b.name,b])).values()]}let l=o([...r,...e.weights,...s]).filter(i),u=o([...l,...Object.values(e.nodes)]).filter(i),p=new Map(u.map(g=>[g.name,g])),d={};for(let g of u){d[g.name]=d[g.name]||0;for(let b of g.children)i(b)||(d[b.name]=Number.POSITIVE_INFINITY),d[b.name]=(d[b.name]||0)+1}let c=Object.entries(d).filter(([,g])=>g===0).map(([g])=>g),h=[...c];for(;c.length>0;){let g=c.pop(),b=p.get(g);for(let y of b.children.filter(i))--d[y.name]===0&&(h.push(y.name),c.push(y.name))}let m=h.map(g=>p.get(g)),f=sj(m,l);return ij(f,l),f}function sj(e,t){let n=new Map(e.map(s=>[s.name,s])),a=t.map(s=>s.name),r=new Set(a);for(;a.length>0;){let s=a.pop(),i=n.get(s);for(let o of i.children)!n.has(o.name)||r.has(o.name)||(r.add(o.name),a.push(o.name))}return e.filter(s=>r.has(s.name))}var wh=class extends Error{constructor(e){super(`NodesExecutionOrderError: ${e}`)}};function ij(e,t){let n=new Map(e.map((o,l)=>[o.name,l])),a=new Set(t.map(o=>o.name)),r=o=>a.has(typeof o=="string"?o:o.name),s=new Set(e.map(o=>o.name)),i=o=>s.has(typeof o=="string"?o:o.name);for(let o of e){for(let l of o.children.filter(i)){if(!n.has(l.name))throw new wh(`Child ${l.name} of node ${o.name} is unreachable.`);if(n.get(o.name)>n.get(l.name))throw new wh(`Node ${o.name} is scheduled to run after its child ${l.name}.`)}if(!r(o))for(let l of o.inputs){if(!n.has(l.name))throw new wh(`Input ${l.name} of node ${o.name} is unreachable.`);if(n.get(l.name)>n.get(o.name))throw new wh(`Node ${o.name} is scheduled to run before its input ${l.name}.`)}}}function oj(e){let t=new Map(e.map((o,l)=>[o.name,l])),n=Number.MAX_SAFE_INTEGER,a=e.map((o,l)=>Zs(o)?n:l),r=o=>{let l=a[t.get(o.name)];return l==null?-1:l},s=e.map((o,l)=>o.children.map(r).reduce((u,p)=>Math.max(u,p),a[l])),i=new Map;for(let o=0;oe[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),{})}constructor(e,t){this.graph=e,this.parent=t,this.compiledMap=new Map,this.parseNodeNameCache=new Map,this._weightMap={},this.SEPARATOR=",",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 qx(e.functions[n],this)})}getCompilationKey(e,t){let n=e.map(r=>r.name).sort(),a=t.map(r=>r.name).sort();return n.join(this.SEPARATOR)+"--"+a.join(this.SEPARATOR)}compile(e,t){let n=_I(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 l=t.map(p=>p.name),u=Object.keys(e);throw new Error(`Cannot compute the outputs [${l}] from the provided inputs [${u}]. Missing the following inputs: [${a}]`)}let i=rj(this.graph,n),o=oj(i);return{orderedNodes:i,nodeLiveUntilMap:o}}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(d=>this.graph.nodes[Yn(d)[0]]),r=t.map(d=>Yn(d)[0]),s=new Set(r),i=r.map(d=>this.graph.nodes[d]);i.length===0&&(i=this._outputs);let o=this.getCompilationKey(a,i),l=this.compiledMap.get(o);l==null&&(l=this.compile(e,i),this.compiledMap.set(o,l));try{this.keepIntermediateTensors=G().getBool("KEEP_INTERMEDIATE_TENSORS")}catch(d){this.keepIntermediateTensors=!1,console.warn(d.message)}let u={},p={};return P(()=>{let d=new CI(this.weightMap,u,p,this.functionExecutorMap,this.parseNodeNameCache),c=Object.assign({},this.weightMap);this.keepIntermediateTensors&&(this.clonedTensorsMap=this.cloneTensorMap(this.weightMap)),Object.keys(e).forEach(g=>{let[b,y]=Yn(g,d),x=[];x[y]=e[g],c[b]=x,this.keepIntermediateTensors&&(this.clonedTensorsMap[b]=this.cloneTensorList(x))});let h=this.getFrozenTensorIds(c),{orderedNodes:m,nodeLiveUntilMap:f}=l;for(let g of m){if(c[g.name])continue;let b=TI(g,c,d,this._resourceManager);if(v.isPromise(b))throw new Error(`The execution of the op '${g.op}' returned a promise. Please use model.executeAsync() instead.`);c[g.name]=b,this.keepIntermediateTensors&&(this.clonedTensorsMap[g.name]=this.cloneTensorList(b)),this.checkTensorForDisposalWithNodeLiveUntilInfo(g,c,d,h,s,f.get(g.name))}return this.parent==null&&d.dispose(h),t.map(g=>cn(g,c,d))})}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){if(!(Zs(t)||s.has(e))){for(let o of n[e])o!=null&&(i[o.id]=(i[o.id]||0)+t.children.length);for(let o of t.inputs){if(Zs(o))continue;let l=wI(o.name,n,a);if(l!=null)for(let u of l){if(!u||u.kept||r.has(u.id))continue;let p=i[u.id];p===1?(u.dispose(),delete i[u.id]):p!=null&&i[u.id]--}}}}checkTensorForDisposalWithNodeLiveUntilInfo(e,t,n,a,r,s){function i(o){return Zs(o)||r.has(o.name)}if(!(Zs(e)||s==null))for(let o of s){if(i(o))continue;let l=wI(o.name,t,n);for(let u of l)!u||u.kept||a.has(u.id)||u.dispose()}}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=G().getBool("KEEP_INTERMEDIATE_TENSORS")}catch(d){this.keepIntermediateTensors=!1,console.warn(d.message)}let s=new CI(this.weightMap,a,r,this.functionExecutorMap,this.parseNodeNameCache);this.keepIntermediateTensors&&(this.clonedTensorsMap=this.cloneTensorMap(this.weightMap));let i=await this.executeWithControlFlow(e,s,t,n),o=t.map(d=>cn(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(x=>this.graph.nodes[Yn(x)[0]]),i=n.map(x=>Yn(x)[0]),o=new Set(i),l=i.map(x=>this.graph.nodes[x]);l.length===0&&(l=this._outputs);let{usedNodes:u,missingInputs:p,dynamicNode:d,syncInputs:c}=_I(e,l,this.weightMap,this._initNodes),h=[...s,...this.graph.weights,...this._initNodes||[]].map(x=>({node:x,contexts:t.currentContext})),m=Object.assign({},this.weightMap);Object.keys(e).forEach(x=>{let[w,I]=Yn(x),T=[];T[I]=e[x],m[w]=T});let f={},g=this.getFrozenTensorIds(m),b={};for(;h.length>0;){let x=this.processStack(s,h,t,m,b,g,o,f,u);await Promise.all(x)}d==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=l.filter(x=>!Zs(x)&&!cn(x.name,m,t)).map(x=>x.name);if(y.length>0){let x="";throw d!=null&&(x=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${c}]`),new Error(`Cannot compute the outputs [${y}] from the provided inputs [${r}]. Consider providing the following inputs: [${p}]. ${x}`)}return m}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]=Nr(p.node.name,n)),a[p.node.name]==null){let c=TI(p.node,a,n,this._resourceManager);d||([d]=Nr(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]=Nr(i.name,n);r[o]||!s.has(i.name)||(i.op==="Merge"?i.inputNames.some(l=>!!cn(l,a,n))&&(r[o]=!0,t.push({contexts:n.currentContext,node:i})):i.inputNames.every(l=>!!cn(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`)})}},hj=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]}},mj="?tfjs-format=file",fj="model.json",g1=class{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}constructor(e,t={},n=qt){this.modelUrl=e,this.loadOptions=t,this.version="n/a",this.io=n,t==null&&(this.loadOptions={}),this.resourceManager=new hj}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 qx(kI.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=kI.Instance.transformGraph(e.modelInitializer);this.initializer=new qx(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 Ce?[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 Ce)&&!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&&_e(this.resourceIdToCapturedInput)),this.resourceManager.dispose()}};async function gj(e,t={},n=qt){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=yj(e));let a=new g1(e,t,n);return await a.load(),a}function bj(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=qt.getWeightSpecs(a.weightsManifest),i=qt.getModelArtifactsForJSONSync(a,s,r);t=qt.fromMemorySync(i)}else if("load"in e)t=e;else if("modelTopology"in e&&"weightSpecs"in e&&"weightData"in e)t=qt.fromMemorySync(e);else throw new Error("Unknown model format");let n=new g1(t);return n.load(),n}function yj(e){return e.endsWith("/")||(e=e+"/"),`${e}${fj}${mj}`}var xj="4.5.0",TC={};Ee(TC,{CSVDataset:()=>MC,Dataset:()=>rp,FileDataSource:()=>VC,TextLineDataset:()=>RC,URLDataSource:()=>UC,array:()=>Vj,csv:()=>Qj,func:()=>e5,generator:()=>t5,microphone:()=>a5,version_data:()=>r5,webcam:()=>n5,zip:()=>Uj});var vj=gs(hm()),wj=gs(hm());function kj(e,t){return am(e,t)}function am(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(Wl(e)){let s=Array.isArray(e)?[]:{};a.add(e);for(let i in e){let o=e[i],l=am(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 Ij(e,t=_C){return CC(e,t)}function CC(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(Wl(a)){let s=Array.isArray(a)?[]:{};n.add(a);for(let i in a){let o=e.map(u=>u[i]),l=CC(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 _C(e){return e===null?null:Wl(e[0])?{value:null,recurse:!0}:{value:e,recurse:!1}}async function EC(e,t){let n=new Map;am(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 am(e,t,n)}function Wl(e){let t=!1;if(G().get("IS_BROWSER"))t=e instanceof TextDecoder;else{let{StringDecoder:n}=hS();t=e instanceof n}return e!=null&&!ArrayBuffer.isView(e)&&(Array.isArray(e)||typeof e=="object"&&!(e instanceof Ce)&&!(e instanceof Promise)&&!t)}function Sj(e){return e==null||Nj(e)||Array.isArray(e)||typeof e=="object"&&e instanceof Ce||v.isTypedArray(e)}function Nj(e){return e===null||typeof e!="object"&&typeof e!="function"}function Tj(e){return kj(e,Cj)}function Cj(e){return e instanceof Ce?{value:e.clone(),recurse:!1}:Wl(e)?{value:null,recurse:!0}:{value:e,recurse:!1}}var AC=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}},b1=class extends AC{constructor(){super(b1.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 Mj(this,e,t)}columnMajorBatch(e,t=!0,n=_C){return this.rowMajorBatch(e,t).map(a=>Ij(a,n))}concatenate(e,t){return new $C(FC([this,e]),t)}take(e){return e<0||e==null?this:new Rj(this,e)}skip(e){return e<0||e==null?this:new Dj(this,e)}prefetch(e){return new DC(this,e)}shuffle(e,t){return new Bj(this,e,t)}serial(){return new $j(this)}},Aj=class extends sn{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:Tj(e),done:!1}}},Fj=class extends sn{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}}},$j=class extends sn{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()}},Dj=class extends sn{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()}},Mj=class extends sn{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}}},Pj=class extends sn{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)}}},Oj=class extends sn{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 sn{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}}}},EI=class extends sn{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}}},x1=class extends sn{constructor(){super(),this.outputQueue=new b1,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}}},zj=class extends x1{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}},$C=class extends sn{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}},es;(function(e){e[e.FAIL=0]="FAIL",e[e.SHORTEST=1]="SHORTEST",e[e.LONGEST=2]="LONGEST"})(es||(es={}));var Wj=class extends sn{constructor(e,t=es.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 sn?{value:s.next().then(i=>(t++,i.done&&n++,i.value)),recurse:!1}:{value:null,recurse:!0}}let r=await EC(this.iterators,a);if(t===n)return{value:null,done:!0};if(n>0)switch(this.mismatchMode){case es.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case es.SHORTEST:return{value:null,done:!0};case es.LONGEST:default:}return this.count++,{value:r,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}},DC=class extends sn{constructor(e,t){super(),this.upstream=e,this.bufferSize=t,this.buffer=new AC(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()}},Bj=class extends DC{constructor(e,t,n){super(e,t),this.upstream=e,this.windowSize=t,this.upstreamExhausted=!1,this.random=wj.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}}},rp=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,Gj),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=y1(async()=>({value:await t.iterator(),done:!1}));return _j(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=vj.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()}};rp.MAX_BUFFER_SIZE=1e4;function Xn(e,t=null){return new class extends rp{constructor(){super(...arguments),this.size=t}async iterator(){return e()}}}function Vj(e){return Xn(async()=>FC(e),e.length)}function Uj(e){if(!Wl(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 EC(e,a=>{if(a instanceof rp)return{value:a.iterator(),recurse:!1};if(Wl(a))return{value:null,recurse:!0};throw new Error("Leaves of the structure passed to zip() must be Datasets, not primitives.")});return Ej(n,es.SHORTEST)},t)}function Gj(e){if(e===null)return null;let t=e[0];return Sj(t)?{value:Hj(e),recurse:!1}:{value:null,recurse:!0}}function Hj(e){if(e.length===0)throw new Error("Can't make a batch of zero elements.");return e[0]instanceof Ce?Dt(e):bn(e)}var RC=class extends rp{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))}},kh='"',jp=Symbol("out"),AI=Symbol("field"),Ih=Symbol("quote"),ox=Symbol("quoteafterquote"),FI=Symbol("quoteinquote"),MC=class extends rp{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}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 RC(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 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(!G().get("IS_BROWSER"))throw new Error("microphone API is only supported in browser environment.");let t=new PC(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),bn(n,t)}},OC=class extends sn{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=je([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(!G().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 OC(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=Vo.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=tn(ie(e,"float32"),0),n;n=Qn.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.")}},LC=class{},zC=class extends sn{split(e){return new qj(this,e)}},qj=class extends zC{constructor(e,t){super(),this.upstream=e,this.impl=new jj(e,t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},jj=class extends x1{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}},Kj=class extends sn{decodeUTF8(){return new Xj(this)}},Xj=class extends zC{constructor(e){super(),this.upstream=e,this.impl=new Yj(e)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},Yj=class extends x1{constructor(e){if(super(),this.upstream=e,G().get("IS_BROWSER"))this.decoder=new TextDecoder("utf-8");else{let{StringDecoder:t}=hS();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 G().get("IS_BROWSER")?n=this.decoder.decode(t,{stream:!0}):n=this.decoder.write(Buffer.from(t.buffer)),this.outputQueue.push(n),!0}},WC=class extends Kj{constructor(e,t={}){super(),this.file=e,this.options=t,v.assert(e instanceof Uint8Array||(G().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 Zj(e,t={},n){let a,r;typeof e=="string"?a=e:(a=e.url,r=Jj(e));let s=await(n||v.fetch)(a,r);if(s.ok){let i=new Uint8Array(await s.arrayBuffer());return new WC(i,t)}else throw new Error(s.statusText)}var Jj=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 BC(e){return typeof e=="string"&&e.slice(0,7)==="file://"}var VC=class extends LC{constructor(e,t={}){super(),this.input=e,this.options=t}async iterator(){if(BC(this.input)&&G().get("IS_NODE")){let e=uv();this.input=e.readFileSync(this.input.slice(7))}return new WC(this.input,this.options)}},UC=class extends LC{constructor(e,t={}){super(),this.url=e,this.fileOptions=t}async iterator(){return BC(this.url)?new VC(this.url,this.fileOptions).iterator():Zj(this.url,this.fileOptions)}};function Qj(e,t={}){return new MC(new UC(e),t)}function e5(e){let t=y1(e);return Xn(async()=>t)}function t5(e){return Xn(async()=>{let t=await e();return y1(()=>t.next())})}async function n5(e,t){return OC.create(e,t)}async function a5(e){return PC.create(e)}var r5="4.5.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 s5=hr.whereImpl,Rf=class extends Tc{nextDataId(){return Rf.nextDataId++}constructor(){super(),this.blockSize=48,this.firstUse=!0,this.data=new mm(this,_a())}write(e,t,n){this.firstUse&&(this.firstUse=!1,G().get("IS_NODE")&&N.warn(` + ${a}, and tensor's shape is: ${e.shape}`);let s=e.shape.slice(1),i=Qx(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[Cr(a)]}case"Switch":{let a=k("pred",e,t,n),r=k("data",e,t,n);return r.kept||(r=Cr(r)),(await a.data())[0]?[void 0,r]:[r,void 0]}case"Merge":{let a=e.inputNames.find(r=>cn(r,t,n)!==void 0);if(a){let r=cn(a,t,n);return[Cr(r)]}return}case"Enter":{let a=k("frameName",e,t,n),r=k("tensor",e,t,n);return n.enterFrame(a),[Cr(r)]}case"Exit":{let a=k("tensor",e,t,n);return n.exitFrame(),[Cr(a)]}case"NextIteration":{let a=k("tensor",e,t,n);return n.nextIteration(),[Cr(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 Xq(u,r,a,s,l,i,o);return n.addTensorArray(p),[p.idTensor,ve(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[ve(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=Jq(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=Zq(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=Yq(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=Qq(a,s,r);return n.addTensorList(i),[i.idTensor]}case"TensorListLength":{let a=k("tensorListId",e,t,n),r=n.getTensorList(a.id);return[ve(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 RI(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=Mh(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 tj=(e,t,n,a=ln)=>{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=Mh(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}=RI(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}=RI(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=Mh(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=Mh(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`)}},nj=(e,t,n,a=ln)=>{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"RandomUniformInt":return[a.randomUniformInt(k("shape",e,t,n),k("minval",e,t,n),k("maxval",e,t,n),k("seed",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 mx(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 aj=async(e,t,n,a,r=ln)=>{switch(e.op){case"NonMaxSuppressionV5":{let{boxes:s,scores:i,maxOutputSize:o,iouThreshold:l,scoreThreshold:u,softNmsSigma:p}=mx(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}=mx(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}=mx(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`)}},rj=(e,t,n,a=ln)=>{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`)}},sj=(e,t,n,a=ln)=>{switch(e.op){case"Const":return t[e.name];case"PlaceholderWithDefault":let r=k("default",e,t,n);return[cn(e.name,t,n)||r];case"Placeholder":return[cn(e.name,t,n)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":{let p=k("x",e,t,n);return[Cr(p)]}case"IdentityN":return k("x",e,t,n).map(p=>Cr(p));case"Snapshot":let s=k("x",e,t,n);return[Cr(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 ve(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;w.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 ij(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`)}},lj=(e,t,n,a=ln)=>{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`)}},uj=(e,t,n,a=ln)=>{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))];case"BitwiseAnd":return[a.bitwiseAnd(k("a",e,t,n),k("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},pj=(e,t,n,a=ln)=>{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})];case"MatrixBandPart":return[a.linalg.bandPart(k("a",e,t,n),k("numLower",e,t,n),k("numUpper",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},cj=(e,t,n,a=ln)=>{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))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},dj=(e,t,n,a=ln)=>{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`)}},hj=(e,t,n,a=ln)=>{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`)}},mj=(e,t,n,a=ln)=>{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=w.arraysEqual(u.shape,i);if(!p&&!w.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))]}case"TensorScatterUpdate":{let r=k("indices",e,t,n),s=k("values",e,t,n),i=k("tensor",e,t,n);return[a.tensorScatterUpdate(i,r,s)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},fj=(e,t,n,a=ln)=>{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`)}},gj=(e,t,n,a=ln)=>{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`)}},bj=(e,t,n,a=ln)=>{switch(e.op){case"StaticRegexReplace":return[a.string.staticRegexReplace(k("input",e,t,n),k("pattern",e,t,n),k("rewrite",e,t,n),k("replaceGlobal",e,t,n))];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`)}},yj=(e,t,n,a=ln)=>{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"EnsureShape":return[a.ensureShape(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 MI(e,t,n,a,r=P){let s=((i,o,l)=>{switch(i.category){case"arithmetic":return r(()=>jq(i,o,l));case"basic_math":return r(()=>Kq(i,o,l));case"control":return ej(i,o,l);case"convolution":return r(()=>tj(i,o,l));case"creation":return r(()=>nj(i,o,l));case"dynamic":return aj(i,o,l);case"evaluation":return r(()=>rj(i,o,l));case"image":return r(()=>lj(i,o,l));case"graph":return r(()=>sj(i,o,l));case"logical":return r(()=>uj(i,o,l));case"matrices":return r(()=>pj(i,o,l));case"normalization":return r(()=>cj(i,o,l));case"ragged":return r(()=>dj(i,o,l));case"reduction":return r(()=>hj(i,o,l));case"slice_join":return r(()=>mj(i,o,l));case"sparse":return r(()=>fj(i,o,l));case"spectral":return r(()=>gj(i,o,l));case"string":return r(()=>bj(i,o,l));case"transformation":return r(()=>yj(i,o,l));case"hash_table":return oj(i,o,l,a);case"custom":let u=mC(i.op);if(u&&u.customExecutor)return u.customExecutor(new qq(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 w.isPromise(s)?s.then(i=>[].concat(i)):[].concat(s)}var PI=class{constructor(e={},t={},n={},a={},r){this.weightMap=e,this.tensorArrayMap=t,this.tensorListMap=n,this.functionMap=a,this.parseNodeNameCache=r,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 OI(e,t,n,a){let r=new Set,s=[],i=null,o=null,l=new Set,u=new Set(Object.keys(e).map(c=>Yn(c)[0]));a=a||[];let p=new Set(a.map(c=>Yn(c.name)[0])),d=[...t];for(;d.length>0;){let c=d.pop();if((Js(c)||Tj(c)||Cj(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.has(c.name)&&!p.has(c.name)){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 xj(e,t){let{usedNodes:n,inputs:a}=t,r=Object.keys(a).map(g=>Yn(g)[0]).map(g=>e.nodes[g]),s=e.initNodes||[],i=g=>n.has(typeof g=="string"?g:g.name);function o(g){return[...new Map(g.map(b=>[b.name,b])).values()]}let l=o([...r,...e.weights,...s]).filter(i),u=o([...l,...Object.values(e.nodes)]).filter(i),p=new Map(u.map(g=>[g.name,g])),d={};for(let g of u){d[g.name]=d[g.name]||0;for(let b of g.children)i(b)||(d[b.name]=Number.POSITIVE_INFINITY),d[b.name]=(d[b.name]||0)+1}let c=Object.entries(d).filter(([,g])=>g===0).map(([g])=>g),h=[...c];for(;c.length>0;){let g=c.pop(),b=p.get(g);for(let y of b.children.filter(i))--d[y.name]===0&&(h.push(y.name),c.push(y.name))}let m=h.map(g=>p.get(g)),f=vj(m,l);return wj(f,l),f}function vj(e,t){let n=new Map(e.map(s=>[s.name,s])),a=t.map(s=>s.name),r=new Set(a);for(;a.length>0;){let s=a.pop(),i=n.get(s);for(let o of i.children)!n.has(o.name)||r.has(o.name)||(r.add(o.name),a.push(o.name))}return e.filter(s=>r.has(s.name))}var Th=class extends Error{constructor(e){super(`NodesExecutionOrderError: ${e}`)}};function wj(e,t){let n=new Map(e.map((o,l)=>[o.name,l])),a=new Set(t.map(o=>o.name)),r=o=>a.has(typeof o=="string"?o:o.name),s=new Set(e.map(o=>o.name)),i=o=>s.has(typeof o=="string"?o:o.name);for(let o of e){for(let l of o.children.filter(i)){if(!n.has(l.name))throw new Th(`Child ${l.name} of node ${o.name} is unreachable.`);if(n.get(o.name)>n.get(l.name))throw new Th(`Node ${o.name} is scheduled to run after its child ${l.name}.`)}if(!r(o))for(let l of o.inputs){if(!n.has(l.name))throw new Th(`Input ${l.name} of node ${o.name} is unreachable.`);if(n.get(l.name)>n.get(o.name))throw new Th(`Node ${o.name} is scheduled to run before its input ${l.name}.`)}}}function kj(e){let t=new Map(e.map((o,l)=>[o.name,l])),n=Number.MAX_SAFE_INTEGER,a=e.map((o,l)=>Js(o)?n:l),r=o=>{let l=a[t.get(o.name)];return l==null?-1:l},s=e.map((o,l)=>o.children.map(r).reduce((u,p)=>Math.max(u,p),a[l])),i=new Map;for(let o=0;oe[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),{})}constructor(e,t){this.graph=e,this.parent=t,this.compiledMap=new Map,this.parseNodeNameCache=new Map,this._weightMap={},this.SEPARATOR=",",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 ev(e.functions[n],this)})}getCompilationKey(e,t){let n=e.map(r=>r.name).sort(),a=t.map(r=>r.name).sort();return n.join(this.SEPARATOR)+"--"+a.join(this.SEPARATOR)}compile(e,t){let n=OI(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 l=t.map(p=>p.name),u=Object.keys(e);throw new Error(`Cannot compute the outputs [${l}] from the provided inputs [${u}]. Missing the following inputs: [${a}]`)}let i=xj(this.graph,n),o=kj(i);return{orderedNodes:i,nodeLiveUntilMap:o}}cloneAndKeepTensor(e){if(e==null)return null;let t=e.clone();return qt(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(d=>this.graph.nodes[Yn(d)[0]]),r=t.map(d=>Yn(d)[0]),s=new Set(r),i=r.map(d=>this.graph.nodes[d]);i.length===0&&(i=this._outputs);let o=this.getCompilationKey(a,i),l=this.compiledMap.get(o);l==null&&(l=this.compile(e,i),this.compiledMap.set(o,l));try{this.keepIntermediateTensors=G().getBool("KEEP_INTERMEDIATE_TENSORS")}catch(d){this.keepIntermediateTensors=!1,console.warn(d.message)}let u={},p={};return P(()=>{let d=new PI(this.weightMap,u,p,this.functionExecutorMap,this.parseNodeNameCache),c=Object.assign({},this.weightMap);this.keepIntermediateTensors&&(this.clonedTensorsMap=this.cloneTensorMap(this.weightMap)),Object.keys(e).forEach(g=>{let[b,y]=Yn(g,d),x=[];x[y]=e[g],c[b]=x,this.keepIntermediateTensors&&(this.clonedTensorsMap[b]=this.cloneTensorList(x))});let h=this.getFrozenTensorIds(c),{orderedNodes:m,nodeLiveUntilMap:f}=l;for(let g of m){if(c[g.name])continue;let b=MI(g,c,d,this._resourceManager);if(w.isPromise(b))throw new Error(`The execution of the op '${g.op}' returned a promise. Please use model.executeAsync() instead.`);c[g.name]=b,this.keepIntermediateTensors&&(this.clonedTensorsMap[g.name]=this.cloneTensorList(b)),this.checkTensorForDisposalWithNodeLiveUntilInfo(g,c,d,h,s,f.get(g.name))}return this.parent==null&&d.dispose(h),t.map(g=>cn(g,c,d))})}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){if(!(Js(t)||s.has(e))){for(let o of n[e])o!=null&&(i[o.id]=(i[o.id]||0)+t.children.length);for(let o of t.inputs){if(Js(o))continue;let l=AI(o.name,n,a);if(l!=null)for(let u of l){if(!u||u.kept||r.has(u.id))continue;let p=i[u.id];p===1?(u.dispose(),delete i[u.id]):p!=null&&i[u.id]--}}}}checkTensorForDisposalWithNodeLiveUntilInfo(e,t,n,a,r,s){function i(o){return Js(o)||r.has(o.name)}if(!(Js(e)||s==null))for(let o of s){if(i(o))continue;let l=AI(o.name,t,n);for(let u of l)!u||u.kept||a.has(u.id)||u.dispose()}}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=G().getBool("KEEP_INTERMEDIATE_TENSORS")}catch(d){this.keepIntermediateTensors=!1,console.warn(d.message)}let s=new PI(this.weightMap,a,r,this.functionExecutorMap,this.parseNodeNameCache);this.keepIntermediateTensors&&(this.clonedTensorsMap=this.cloneTensorMap(this.weightMap));let i=await this.executeWithControlFlow(e,s,t,n),o=t.map(d=>cn(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(x=>this.graph.nodes[Yn(x)[0]]),i=n.map(x=>Yn(x)[0]),o=new Set(i),l=i.map(x=>this.graph.nodes[x]);l.length===0&&(l=this._outputs);let{usedNodes:u,missingInputs:p,dynamicNode:d,syncInputs:c}=OI(e,l,this.weightMap,this._initNodes),h=[...s,...this.graph.weights,...this._initNodes||[]].map(x=>({node:x,contexts:t.currentContext})),m=Object.assign({},this.weightMap);Object.keys(e).forEach(x=>{let[v,I]=Yn(x),T=[];T[I]=e[x],m[v]=T});let f={},g=this.getFrozenTensorIds(m),b={};for(;h.length>0;){let x=this.processStack(s,h,t,m,b,g,o,f,u);await Promise.all(x)}d==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=l.filter(x=>!Js(x)&&!cn(x.name,m,t)).map(x=>x.name);if(y.length>0){let x="";throw d!=null&&(x=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${c}]`),new Error(`Cannot compute the outputs [${y}] from the provided inputs [${r}]. Consider providing the following inputs: [${p}]. ${x}`)}return m}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]=Tr(p.node.name,n)),a[p.node.name]==null){let c=MI(p.node,a,n,this._resourceManager);d||([d]=Tr(p.node.name,n));let h=n.currentContext;w.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]=Tr(i.name,n);r[o]||!s.has(i.name)||(i.op==="Merge"?i.inputNames.some(l=>!!cn(l,a,n))&&(r[o]=!0,t.push({contexts:n.currentContext,node:i})):i.inputNames.every(l=>!!cn(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);w.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&&w.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`)})}},_j=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]}},Ej="?tfjs-format=file",Aj="model.json",S1=class{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}constructor(e,t={},n=jt){this.modelUrl=e,this.loadOptions=t,this.version="n/a",this.io=n,t==null&&(this.loadOptions={}),this.resourceManager=new _j}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 w.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 ev(FI.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=FI.Instance.transformGraph(e.modelInitializer);this.initializer=new ev(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&&_e(this.resourceIdToCapturedInput)),this.resourceManager.dispose()}};async function Fj(e,t={},n=jt){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=Dj(e));let a=new S1(e,t,n);return await a.load(),a}function $j(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=jt.getWeightSpecs(a.weightsManifest),i=jt.getModelArtifactsForJSONSync(a,s,r);t=jt.fromMemorySync(i)}else if("load"in e)t=e;else if("modelTopology"in e&&"weightSpecs"in e&&"weightData"in e)t=jt.fromMemorySync(e);else throw new Error("Unknown model format");let n=new S1(t);return n.load(),n}function Dj(e){return e.endsWith("/")||(e=e+"/"),`${e}${Aj}${Ej}`}var Rj="4.7.0",PC={};Ee(PC,{CSVDataset:()=>HC,Dataset:()=>ip,FileDataSource:()=>JC,TextLineDataset:()=>GC,URLDataSource:()=>QC,array:()=>a5,csv:()=>m5,func:()=>f5,generator:()=>g5,microphone:()=>y5,version_data:()=>x5,webcam:()=>b5,zip:()=>r5});var Mj=bs(ym()),Pj=bs(ym());function Oj(e,t){return lm(e,t)}function lm(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(Hl(e)){let s=Array.isArray(e)?[]:{};a.add(e);for(let i in e){let o=e[i],l=lm(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 Lj(e,t=LC){return OC(e,t)}function OC(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(Hl(a)){let s=Array.isArray(a)?[]:{};n.add(a);for(let i in a){let o=e.map(u=>u[i]),l=OC(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 LC(e){return e===null?null:Hl(e[0])?{value:null,recurse:!0}:{value:e,recurse:!1}}async function zC(e,t){let n=new Map;lm(e,t,n);for(let a of Array.from(n.keys())){let r=n.get(a);if(w.isPromise(r)){let s=await r;n.set(a,s)}}return lm(e,t,n)}function Hl(e){let t=!1;if(G().get("IS_BROWSER"))t=e instanceof TextDecoder;else{let{StringDecoder:n}=kS();t=e instanceof n}return e!=null&&!ArrayBuffer.isView(e)&&(Array.isArray(e)||typeof e=="object"&&!(e instanceof Te)&&!(e instanceof Promise)&&!t)}function zj(e){return e==null||Wj(e)||Array.isArray(e)||typeof e=="object"&&e instanceof Te||w.isTypedArray(e)}function Wj(e){return e===null||typeof e!="object"&&typeof e!="function"}function Bj(e){return Oj(e,Vj)}function Vj(e){return e instanceof Te?{value:e.clone(),recurse:!1}:Hl(e)?{value:null,recurse:!0}:{value:e,recurse:!1}}var WC=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}},N1=class extends WC{constructor(){super(N1.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 Yj(this,e,t)}columnMajorBatch(e,t=!0,n=LC){return this.rowMajorBatch(e,t).map(a=>Lj(a,n))}concatenate(e,t){return new VC(BC([this,e]),t)}take(e){return e<0||e==null?this:new Xj(this,e)}skip(e){return e<0||e==null?this:new Kj(this,e)}prefetch(e){return new UC(this,e)}shuffle(e,t){return new n5(this,e,t)}serial(){return new jj(this)}},Hj=class extends on{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:Bj(e),done:!1}}},qj=class extends on{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}}},jj=class extends on{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()}},Kj=class extends on{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()}},Yj=class extends on{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}}},Zj=class extends on{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)}}},Jj=class extends on{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}}},Qj=class extends on{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}}}},LI=class extends on{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}}},C1=class extends on{constructor(){super(),this.outputQueue=new N1,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}}},e5=class extends C1{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}},VC=class extends on{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 t5=class extends on{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 on?{value:s.next().then(i=>(t++,i.done&&n++,i.value)),recurse:!1}:{value:null,recurse:!0}}let r=await zC(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}},UC=class extends on{constructor(e,t){super(),this.upstream=e,this.bufferSize=t,this.buffer=new WC(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()}},n5=class extends UC{constructor(e,t,n){super(e,t),this.upstream=e,this.windowSize=t,this.upstreamExhausted=!1,this.random=Pj.alea(n||w.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}}},ip=class{constructor(){this.size=null}batch(e,t=!0){let n=this;w.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,s5),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=T1(async()=>({value:await t.iterator(),done:!1}));return Uj(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=Mj.alea(t||w.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()}};ip.MAX_BUFFER_SIZE=1e4;function Xn(e,t=null){return new class extends ip{constructor(){super(...arguments),this.size=t}async iterator(){return e()}}}function a5(e){return Xn(async()=>BC(e),e.length)}function r5(e){if(!Hl(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 zC(e,a=>{if(a instanceof ip)return{value:a.iterator(),recurse:!1};if(Hl(a))return{value:null,recurse:!0};throw new Error("Leaves of the structure passed to zip() must be Datasets, not primitives.")});return Gj(n,ts.SHORTEST)},t)}function s5(e){if(e===null)return null;let t=e[0];return zj(t)?{value:i5(e),recurse:!1}:{value:null,recurse:!0}}function i5(e){if(e.length===0)throw new Error("Can't make a batch of zero elements.");return e[0]instanceof Te?Dt(e):bn(e)}var GC=class extends ip{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))}},Ch='"',Yp=Symbol("out"),zI=Symbol("field"),_h=Symbol("quote"),fx=Symbol("quoteafterquote"),WI=Symbol("quoteinquote"),HC=class extends ip{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&&w.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(w.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}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 GC(e),t||(t={}),this.hasHeader=t.hasHeader!==!1,this.fullColumnNames=t.columnNames,this.columnConfigs=t.columnConfigs,this.configuredColumnsOnly=t.configuredColumnsOnly,t.delimWhitespace?(w.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 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(!G().get("IS_BROWSER"))throw new Error("microphone API is only supported in browser environment.");let t=new qC(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(w.sizeFromShape(t));return n.set(e,n.length-e.length),bn(n,t)}},jC=class extends on{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=je([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(!G().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 jC(e,t);return await n.start(),n}async start(){this.webcamConfig.facingMode&&w.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=jo.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=nn(se(e,"float32"),0),n;n=Qn.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.")}},KC=class{},XC=class extends on{split(e){return new o5(this,e)}},o5=class extends XC{constructor(e,t){super(),this.upstream=e,this.impl=new l5(e,t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},l5=class extends C1{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}},u5=class extends on{decodeUTF8(){return new p5(this)}},p5=class extends XC{constructor(e){super(),this.upstream=e,this.impl=new c5(e)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},c5=class extends C1{constructor(e){if(super(),this.upstream=e,G().get("IS_BROWSER"))this.decoder=new TextDecoder("utf-8");else{let{StringDecoder:t}=kS();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 G().get("IS_BROWSER")?n=this.decoder.decode(t,{stream:!0}):n=this.decoder.write(Buffer.from(t.buffer)),this.outputQueue.push(n),!0}},YC=class extends u5{constructor(e,t={}){super(),this.file=e,this.options=t,w.assert(e instanceof Uint8Array||(G().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 d5(e,t={},n){let a,r;typeof e=="string"?a=e:(a=e.url,r=h5(e));let s=await(n||w.fetch)(a,r);if(s.ok){let i=new Uint8Array(await s.arrayBuffer());return new YC(i,t)}else throw new Error(s.statusText)}var h5=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 ZC(e){return typeof e=="string"&&e.slice(0,7)==="file://"}var JC=class extends KC{constructor(e,t={}){super(),this.input=e,this.options=t}async iterator(){if(ZC(this.input)&&G().get("IS_NODE")){let e=bv();this.input=e.readFileSync(this.input.slice(7))}return new YC(this.input,this.options)}},QC=class extends KC{constructor(e,t={}){super(),this.url=e,this.fileOptions=t}async iterator(){return ZC(this.url)?new JC(this.url,this.fileOptions).iterator():d5(this.url,this.fileOptions)}};function m5(e,t={}){return new HC(new QC(e),t)}function f5(e){let t=T1(e);return Xn(async()=>t)}function g5(e){return Xn(async()=>{let t=await e();return T1(()=>t.next())})}async function b5(e,t){return jC.create(e,t)}async function y5(e){return qC.create(e)}var x5="4.7.0";function ge(e,t){Array.isArray(e)||(e=[e]),e.forEach(n=>{n!=null&&w.assert(n.dtype!=="complex64",()=>`${t} does not support complex64 tensors in the CPU backend.`)})}var v5=mr.whereImpl,Mf=class extends Ec{nextDataId(){return Mf.nextDataId++}constructor(){super(),this.blockSize=48,this.firstUse=!0,this.data=new xm(this,_a())}write(e,t,n){this.firstUse&&(this.firstUse=!1,G().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 v.convertBackendValuesAndArrayBuffer(this.data.get(e).values,t)}bufferSync(e){let t=this.readSync(e.dataId);if(e.dtype==="string")try{let n=t.map(a=>v.decodeString(a));return Le(e.shape,e.dtype,n)}catch(n){throw new Error("Failed to decode encoded string bytes into utf-8")}return Le(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 s5(e.shape,t)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}};Rf.nextDataId=0;var v1={};Ee(v1,{addImpl:()=>qC,bincountImpl:()=>k1,bincountReduceImpl:()=>jC,bitwiseAndImpl:()=>KC,castImpl:()=>HC,ceilImpl:()=>XC,concatImpl:()=>I1,equalImpl:()=>YC,expImpl:()=>JC,expm1Impl:()=>e_,floorDivImpl:()=>n_,floorImpl:()=>t_,gatherNdImpl:()=>a_,gatherV2Impl:()=>r_,greaterEqualImpl:()=>i_,greaterImpl:()=>s_,lessEqualImpl:()=>l_,lessImpl:()=>o_,linSpaceImpl:()=>u_,logImpl:()=>p_,maxImpl:()=>c_,maximumImpl:()=>d_,minimumImpl:()=>h_,multiplyImpl:()=>S1,negImpl:()=>m_,notEqualImpl:()=>f_,prodImpl:()=>g_,raggedGatherImpl:()=>b_,raggedRangeImpl:()=>y_,raggedTensorToTensorImpl:()=>x_,rangeImpl:()=>T1,rsqrtImpl:()=>v_,scatterImpl:()=>ti,sigmoidImpl:()=>aK,simpleAbsImpl:()=>GC,sliceImpl:()=>sm,sparseFillEmptyRowsImpl:()=>k_,sparseReshapeImpl:()=>I_,sparseSegmentReductionImpl:()=>C1,sqrtImpl:()=>iK,squaredDifferenceImpl:()=>S_,staticRegexReplaceImpl:()=>N_,stridedSliceImpl:()=>T_,stringNGramsImpl:()=>_1,stringSplitImpl:()=>E1,stringToHashBucketFastImpl:()=>A1,subImpl:()=>C_,tileImpl:()=>__,topKImpl:()=>A_,transposeImpl:()=>N1,uniqueImpl:()=>$1});function GC(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=GC(r),n.makeOutput(a,t.shape,t.dtype)},o5={kernelName:ql,backendName:"cpu",kernelFunc:i5};function Ot(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 b=0;bx[C]=0);let w=v.locToIndex(x,d,h),I=y.slice(-c);g.forEach(C=>I[C]=0);let T=v.locToIndex(I,c,m);p[b]=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 l5={kernelName:xm,backendName:"cpu",kernelFunc:Zn};function rm(e,t,n="float32"){if(n==="complex64"){let r=rm(e,t,"float32"),s=rm(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 u5={kernelName:Zi,backendName:"cpu",kernelFunc:pr};function bi(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 p5={kernelName:$m,backendName:"cpu",kernelFunc:bi};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]=Ot((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 ms(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=rm(n,r.shape,r.dtype),d=ms({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=bi({inputs:{input:r},backend:n}),d=ms({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]=HC(i,r.shape,r.dtype,s);return n.makeTensorInfo(o,l,u)}var c5={kernelName:Di,backendName:"cpu",kernelFunc:ms};function Zt(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=ms({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=ms({inputs:{x:o},backend:l,attrs:{dtype:"complex64"}}),g=l.data.get(f.dataId),b=g.complexTensorInfos.real,y=g.complexTensorInfos.imag,x=l.data.get(b.dataId).values,w=l.data.get(y.dataId).values,[I,T,C]=n(i.shape,o.shape,h,m,x,w),E=l.makeTensorInfo(C,"float32",I),F=l.makeTensorInfo(C,"float32",T),D=Zn({inputs:{real:E,imag:F},backend:l});return l.disposeIntermediateTensorInfo(u),l.disposeIntermediateTensorInfo(f),l.disposeIntermediateTensorInfo(E),l.disposeIntermediateTensorInfo(F),D}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 w1(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),b=t.length,y=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,b,y),F=T.slice(-x);m.forEach(S=>F[S]=0);let D=v.locToIndex(F,x,w),$=e(f[E*2],f[E*2+1],g[D*2],g[D*2+1]);d[I]=$.real,c[I]=$.imag}return[d,c,o]}}var qC=Ot((e,t)=>e+t),d5=w1((e,t,n,a)=>({real:e+n,imag:t+a})),Bl=Zt(bs,qC,d5),h5={kernelName:bs,backendName:"cpu",kernelFunc:Bl};function k1(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 jC(e,t,n,a=!1){let r=e.shape[0],s=e.shape[1],i=Le([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}var KC=Ot((e,t)=>e&t),m5=Zt(ym,KC),f5={kernelName:ym,backendName:"cpu",kernelFunc:m5};function fr(e){return(t,n,a)=>{let r=v.getArrayFromDType(n,t.length);for(let s=0;s{let{x:i}=a;ge(i,e);let o=s,l=o.data.get(i.dataId).values,u;if(i.dtype==="string"){if(!Array.isArray(l))throw new Error("String tensor's value was not an instance of Array");u=N.fromUint8ToStringArray(l)}else u=l;let p=n||i.dtype,d=t(u,p,r);return o.makeTensorInfo(i.shape,p,d)}}var XC=fr(e=>Math.ceil(e)),g5=_s(Ri,XC),b5={kernelName:Ri,backendName:"cpu",kernelFunc:g5};function I1(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),ZC=Zt(lu,YC,null,"bool"),y5={kernelName:lu,backendName:"cpu",kernelFunc:ZC},JC=fr(e=>Math.exp(e)),QC=_s(Hi,JC,"float32"),x5={kernelName:Hi,backendName:"cpu",kernelFunc:QC},e_=fr(e=>Math.expm1(e)),v5=_s(qi,e_),w5={kernelName:qi,backendName:"cpu",kernelFunc:v5},t_=fr(e=>Math.floor(e)),k5=_s(ji,t_),I5={kernelName:ji,backendName:"cpu",kernelFunc:k5},n_=Ot((e,t)=>Math.floor(e/t)),S5=Zt(Ki,n_,null,"int32"),N5={kernelName:Ki,backendName:"cpu",kernelFunc:S5};function a_(e,t,n,a,r,s,i,o,l){let u=Le([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),T5=Zt(hu,s_,null,"bool"),C5={kernelName:hu,backendName:"cpu",kernelFunc:T5},i_=Ot((e,t)=>e>=t?1:0),_5=Zt(Yi,i_,null,"bool"),E5={kernelName:Yi,backendName:"cpu",kernelFunc:_5},o_=Ot((e,t)=>ee<=t?1:0),$5=Zt(fu,l_,null,"bool"),D5={kernelName:fu,backendName:"cpu",kernelFunc:$5};function u_(e,t,n){let a=(t-e)/(n-1),r=v.makeZerosTypedArray(n,"float32");r[0]=e;for(let s=1;sMath.log(e)),R5=_s(no,p_),M5={kernelName:no,backendName:"cpu",kernelFunc:R5};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 d_=Ot((e,t)=>Math.max(e,t)),P5=Zt(io,d_),O5={kernelName:io,backendName:"cpu",kernelFunc:P5},h_=Ot((e,t)=>Math.min(e,t)),L5=Zt(po,h_),z5={kernelName:po,backendName:"cpu",kernelFunc:L5},S1=Ot((e,t)=>e*t),W5=w1((e,t,n,a)=>({real:e*n-t*a,imag:e*a+t*n})),Mf=Zt(ho,S1,W5),B5={kernelName:ho,backendName:"cpu",kernelFunc:Mf};function m_(e,t,n){let a=v.createScalarValue(-1,n);return S1([],t,a,e,n)}function V5(e){let{inputs:t,backend:n}=e,{x:a}=t;ge(a,"neg");let r=n.data.get(a.dataId).values,[s,i]=m_(r,a.shape,a.dtype);return n.makeTensorInfo(i,a.dtype,s)}var U5={kernelName:Su,backendName:"cpu",kernelFunc:V5},f_=Ot((e,t)=>e!==t?1:0),G5=Zt(Nu,f_,null,"bool"),H5={kernelName:Nu,backendName:"cpu",kernelFunc:G5};function N1(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(y)),n.makeTensorInfo(b,g,m)}var K5={kernelName:yo,backendName:"cpu",kernelFunc:j5};function X5(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 Y5(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 Z5(e,t,n,a){let r=[],s=0,i=t.length-1+n.length,o=new Array(i).fill(null).map(()=>[0]);Y5(n,a);let l=1;for(let u=0;u=0){let f=o[m],g=f[f.length-1]-h[p];for(let b=p;br[i]=s)}return t}function $I(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&&yb)w=0;else if(w=Math.ceil(Math.abs((y-b)/x)),w>DI)throw new Error(`Requires ((limit - start) / delta) <= ${DI}`);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=MI(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=ni(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);RI(f,u,o),++c}m<0?(p=h+1,d=c):(p=h,d=c,c=d+1)}}};function RI(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 x_(e,t,n,a,r,s,i,o,l,u){return new jx(e,t,n,a,r,s,i,o,l,u).compute()}function T1(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)),tK=_s(To,v_),nK={kernelName:To,backendName:"cpu",kernelFunc:tK};function ti(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 Le(n,t.dtype);let h=l instanceof Vt?l:Le(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 b=0;b1/(1+Math.exp(-e))),w_=it(Ao,e=>1/(1+Math.exp(-e))),rK={kernelName:Ao,backendName:"cpu",kernelFunc:w_};function sm(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=Le(a,r,l),p=Le(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 yi(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=sm(u,o,l,r.shape,r.dtype);return n.makeTensorInfo(l,r.dtype,p)}var sK={kernelName:Lu,backendName:"cpu",kernelFunc:yi};function k_(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),b=v.getArrayFromDType(r,0);return[g,[0,d],b,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,b,l));++m[b],c=c&&b>=h,h=b}let f=!0;for(let g=0;g0&&(m[g]+=m[g-1])}if(f&&c){let g=e,b=a;for(let y=0;y0){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((y,x)=>y*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,b=r[m];for(;;){let y=0;if(f=y)throw new Error(N.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage())}if(b<0||b>=p)throw new Error(N.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(b,p));b>g&&h.fill(i,g*u,b*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)),oK=it($o,e=>Math.sqrt(e)),lK={kernelName:$o,backendName:"cpu",kernelFunc:oK},S_=Ot((e,t)=>{let n=e-t;return n*n}),uK=Zt(Mo,S_),pK={kernelName:Mo,backendName:"cpu",kernelFunc:uK},N_=fr((e,t)=>{let{pattern:n,replaceGlobal:a,rewrite:r}=t;return e.replace(new RegExp(n,a?"g":""),r)}),cK=_s(Wc,N_),dK={kernelName:Wc,backendName:"cpu",kernelFunc:cK};function T_(e,t,n,a){let r=Le(e,t.dtype);for(let s=0;s0?0:i-o),c=0;c+=l*this.leftPad.length;for(let b=0;bb.forEach(y=>m[f++]=y);for(let b=0;b0){g(e[d+p-1]);for(let b=0;b0){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 _1(e,t,n,a,r,s,i,o){return new hK(n,a,r,s,i,o).compute(e,t)}function mK(e,t,n,a){if(!e.length)return;if(t.length===0){for(let s=0;se-t),fK=w1((e,t,n,a)=>({real:e-n,imag:t-a})),F1=Zt(Po,C_,fK),gK={kernelName:Po,backendName:"cpu",kernelFunc:F1};function __(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 E_(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));E_(e,t,c,h)}let r=e[t],s=n,i=a;for(v.swap(e,n,t),Zp(e[a],r)>0&&v.swap(e,n,a);s0;)i=i-1}Zp(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 A_(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:y,index:x}),a{for(let g=0;gnew Rf,1);var F_=it(Gi,e=>e>=0?e:Math.exp(e)-1),yK={kernelName:Gi,backendName:"cpu",kernelFunc:F_};function $_(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 D_(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]=vK(a.shape,r.shape,s,i,"float32");return n.makeTensorInfo(l,"float32",o)}var wK={kernelName:bo,backendName:"cpu",kernelFunc:D_},R_=it(vo,e=>Math.max(0,e)),kK={kernelName:vo,backendName:"cpu",kernelFunc:R_},M_=it(Io,e=>Math.min(Math.max(0,e),6)),IK={kernelName:Io,backendName:"cpu",kernelFunc:M_};function im(e,t,n,a,r){if(n==="linear")return pr({inputs:{x:t},backend:e});if(n==="relu")return R_({inputs:{x:t},backend:e});if(n==="elu")return F_({inputs:{x:t},backend:e});if(n==="relu6")return M_({inputs:{x:t},backend:e});if(n==="prelu")return D_({inputs:{x:t,alpha:a},backend:e});if(n==="leakyrelu")return $_({inputs:{x:t},backend:e,attrs:{alpha:r}});if(n==="sigmoid")return w_({inputs:{x:t},backend:e});throw new Error(`Activation ${n} has not been implemented for the CPU backend.`)}function xt(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 SK={kernelName:Fu,backendName:"cpu",kernelFunc:xt};function P_(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),b=v.sizeFromShape(f),y=Yu.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?[b,h,d]:[b,d,h],I=xt({inputs:{x:r},backend:n,attrs:{shape:x}}),T=xt({inputs:{x:s},backend:n,attrs:{shape:w}}),C=i?I.shape[1]:I.shape[2],E=i?I.shape[2]:I.shape[1],F=o?T.shape[1]:T.shape[2],D=Math.max(g,b),$=n.data.get(I.dataId).values,S=n.data.get(T.dataId).values,M=v.computeStrides(I.shape),B=v.computeStrides(T.shape),[U,H,j]=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*F,ae=Le([D,E,F],I.dtype),te=ae.values,re=n.blockSize;for(let se=0;seMath.acos(e)),EK={kernelName:Ii,backendName:"cpu",kernelFunc:_K},AK=it(Si,e=>Math.acosh(e)),FK={kernelName:Si,backendName:"cpu",kernelFunc:AK};function $K(e){let{inputs:t,backend:n}=e,a=t;ge(t,"addN");let r=a.map(o=>n.data.get(o.dataId).values),s=Le(a[0].shape,a[0].dtype),i=s.values;for(let o=0;oy&&(y=I,x=w)}h[g]=x}return u.forEach(g=>n.disposeIntermediateTensorInfo(g)),n.makeTensorInfo(p,"int32",h)}var zK={kernelName:Xl,backendName:"cpu",kernelFunc:LK};function WK(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=Un({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 BK={kernelName:Yl,backendName:"cpu",kernelFunc:WK},VK=it(Ti,e=>Math.asin(e)),UK={kernelName:Ti,backendName:"cpu",kernelFunc:VK},GK=it(Ci,e=>Math.asinh(e)),HK={kernelName:Ci,backendName:"cpu",kernelFunc:GK},qK=it(_i,e=>Math.atan(e)),jK={kernelName:_i,backendName:"cpu",kernelFunc:qK},KK=Ot((e,t)=>Math.atan2(e,t)),XK=Zt(Ai,KK),YK={kernelName:Ai,backendName:"cpu",kernelFunc:XK},ZK=it(Ei,e=>Math.atanh(e)),JK={kernelName:Ei,backendName:"cpu",kernelFunc:ZK};function D1(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=Le(r.outShape,n),g=f.values,b=r.outShape[1]*r.outShape[2]*r.outShape[3],y=r.outShape[2]*r.outShape[3],x=r.outShape[3];for(let w=0;wj?j=se:s==="avg"&&(K+=se,Z++)}if(isNaN(j))break}let J=S+M*x+C;g[J]=s==="avg"?K/Z:j}}}return f}function O_(e,t,n,a,r=!1,s=!1){let i=Le(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=Le(t,n,e);for(let g=0;gD&&(D=H,r?$=s?((g*a.inHeight+S)*a.inWidth+B)*a.inChannels+b:(S*a.inWidth+B)*a.inChannels+b:$=M*c+U)}}i.set($,g,y,T,b)}}return i}function L_(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,b=r.padInfo.left,y=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,x=Le(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 F=0;Fbe?be=ft:s==="avg"&&(ke+=ft,Se++),isNaN(be))break}if(isNaN(be))break}if(isNaN(be))break}let We=ue+S;w[We]=s==="avg"?ke/Math.max(Se,1):be}}}}return x}function QK(e,t){let n=Le(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=H*p*d+K*p+J)}}}n.set(B,f,b,I,F,g)}}}return n}function e8(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=D1(c,r.shape,r.dtype,h,p,"avg");d=n.makeTensorInfo(p.outShape,r.dtype,m.values)}return d}var t8={kernelName:Fi,backendName:"cpu",kernelFunc:e8};function n8(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=L_(d,r.shape,r.dtype,v.computeStrides(r.shape),p,"avg");return n.makeTensorInfo(c.shape,"float32",c.values)}var a8={kernelName:Zl,backendName:"cpu",kernelFunc:n8};function r8(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,b=p.dilationDepth,y=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,F=I-1-p.padInfo.top,D=Le(s.shape,"float32"),$=1/(m*f*g),S=n.bufferSync(r);for(let M=0;M=p.outDepth||Math.floor(te)!==te))for(let re=0;re=p.outHeight||Math.floor(se)!==se))for(let ye=0;ye=p.outWidth||Math.floor(ue)!==ue)continue;let be=S.get(M,te,se,ue,B);ee+=be}}}D.set(ee*$,M,U,H,j,B)}return n.makeTensorInfo(D.shape,D.dtype,D.values)}var s8={kernelName:_c,backendName:"cpu",kernelFunc:r8};function i8(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,b=p.effectiveFilterHeight,y=p.effectiveFilterWidth,x=y-1-p.padInfo.left,w=b-1-p.padInfo.top,I=Le(i.shape,"float32"),T=1/(h*m),C=n.data.get(r.dataId).values,E=Le(r.shape,"float32",C);for(let F=0;F=p.outHeight||Math.floor(j)!==j))for(let K=0;K=p.outWidth||Math.floor(Z)!==Z)continue;let J=E.get(F,j,Z,D);U+=J}}I.set(U*T,F,$,S,D)}return n.makeTensorInfo(I.shape,I.dtype,I.values)}var o8={kernelName:bm,backendName:"cpu",kernelFunc:i8};function l8(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,b=h.length,y=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>=b&&(T=0),C>=y&&(C=0);return n.makeTensorInfo(r.shape,r.dtype,f)}var u8={kernelName:Xi,backendName:"cpu",kernelFunc:l8};function p8(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,crops:i}=a;ge([r],"batchToSpaceND");let o=s.reduce((b,y)=>b*y),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=xt({inputs:{x:r},backend:n,attrs:{shape:l}}),m=Un({inputs:{x:h},backend:n,attrs:{perm:u}}),f=xt({inputs:{x:m},backend:n,attrs:{shape:p}}),g=yi({inputs:{x:f},backend:n,attrs:{begin:d,size:c}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),g}var c8={kernelName:Jl,backendName:"cpu",kernelFunc:p8};function d8(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=k1(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,u)}var h8={kernelName:Ql,backendName:"cpu",kernelFunc:d8};function m8(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 f8={kernelName:Ec,backendName:"cpu",kernelFunc:m8},g8=it(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=>bi({inputs:{input:w},backend:n})),g=l.map(w=>Vl({inputs:{input:w},backend:n})),b=Ul({inputs:f,backend:n,attrs:{axis:s}}),y=Ul({inputs:g,backend:n,attrs:{axis:s}}),x=Zn({inputs:{real:b,imag:y},backend:n});return f.forEach(w=>n.disposeIntermediateTensorInfo(w)),g.forEach(w=>n.disposeIntermediateTensorInfo(w)),n.disposeIntermediateTensorInfo(b),n.disposeIntermediateTensorInfo(y),x}let u=l.map(f=>{let g=[-1,v.sizeFromShape(f.shape.slice(s))];return xt({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=I1(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 w8={kernelName:eu,backendName:"cpu",kernelFunc:Ul};function z_(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,b=c.padInfo.left,y=c.padInfo.top,x=c.dataFormat==="channelsLast",w=new Vt(c.outShape,r.dtype),I=v.computeStrides(r.shape),T=v.computeStrides(s.shape),C=I[0],E=x?I[1]:I[2],F=x?I[2]:1,D=x?1:I[1],$=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,H=n.data.get(s.dataId).values,j=w.values;for(let K=0;K=c.inHeight)continue;let ye=re*T[0],ue=Z+se*E;for(let be=0;be=c.inWidth)continue;let ht=ye+We*T[1],st=ue+Ge*F,tt=ht;for(let nt=0;nt=u.inDepth)continue;let K=H*F[0],Z=$+j*E[1];for(let J=0;J=u.inHeight)continue;let se=K+te*F[1],ye=Z+re*E[2];for(let ue=0;ue=u.inWidth)continue;let Ge=se+Se*F[2],ht=ye+We*u.inChannels,st=Ge;for(let tt=0;ttMath.cos(e)),R8={kernelName:Li,backendName:"cpu",kernelFunc:D8},M8=it(zi,e=>Math.cosh(e)),P8={kernelName:zi,backendName:"cpu",kernelFunc:M8};function O8(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,b=Le([m,f,g,h],"float32"),y=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(b.shape);for(let C=0;C=p)continue;let B=f>1?($-F)*(d-1)/(f-1):0,U=g>1?(S-D)*(c-1)/(g-1):0;for(let H=0;H1?F*(d-1)+H*B:.5*(F+$)*(d-1);if(j<0||j>d-1){for(let K=0;K1?D*(c-1)+ee*U:.5*(D+S)*(c-1);if(ae<0||ae>c-1){for(let ye=0;ye1?D*(c-1)+K*U:.5*(D+S)*(c-1);if(Z<0||Z>c-1){for(let ae=0;aeb+m-y-1:(b,y)=>b+y;for(let b=0;bb+m-y-1:(b,y)=>b+y;for(let b=0;b`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 b=0;b`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:b,padInfo:y}=h,x=y.left,w=y.top,I=h.outChannels/h.inChannels,T=new Vt(h.outShape,r.dtype),C=n.data.get(r.dataId).values,E=n.data.get(s.dataId).values,F=T.values;for(let D=0;D=h.inHeight)continue;let K=H*d[0],Z=$+j*p[1];for(let J=0;J=h.inWidth)continue;let se=K+te*d[1],ye=Z+re*h.inChannels,ue=ee,be=se;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:b,outWidth:y,padInfo:x,strideHeight:w,strideWidth:I,filterHeight:T,filterWidth:C,dilationHeight:E,dilationWidth:F,outShape:D}=N.computeDilation2DInfo(a.shape,r.shape,s,i,"NHWC",o),$=v.sizeFromShape(D),S=D.length,M=v.getArrayFromDType(a.dtype,$);for(let B=0;B=0&&te=0&&seJ&&(J=be)}}}let ee=v.locToIndex([B,U,j,Z],S,v.computeStrides(D));M[ee]=J}}}return{dataId:l.write(v.toTypedArray(M,a.dtype),D,a.dtype),shape:D,dtype:a.dtype}}},tX={kernelName:Tl,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:b,padInfo:y,strideHeight:x,strideWidth:w,filterHeight:I,filterWidth:T,dilationHeight:C,dilationWidth:E,outShape:F}=N.computeDilation2DInfo(a.shape,r.shape,i,o,"NHWC",l);v.assert(s.rank===F.length,()=>`Error in ${Tl}, dy must have the same rank as output ${F.length}, but got ${s.rank}`);let D=v.toNestedArray(F,u.data.get(s.dataId).values),$=v.makeZerosNestedTypedArray(r.shape,r.dtype);for(let S=0;S=0&&ae=0&&reK&&(K=se,Z=ee,J=te)}}}$[Z][J][j]+=D[S][M][U][j]}}}return{dataId:u.write(v.toTypedArray($,a.dtype),r.shape,r.dtype),shape:r.shape,dtype:r.dtype}}},nX={kernelName:Nl,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:b,padInfo:y,strideHeight:x,strideWidth:w,filterHeight:I,filterWidth:T,dilationHeight:C,dilationWidth:E,outShape:F}=N.computeDilation2DInfo(a.shape,r.shape,i,o,"NHWC",l);v.assert(s.rank===F.length,()=>`Error in ${Nl}, dy must have the same rank as output ${F.length}, but got ${s.rank}`);let D=v.toNestedArray(F,u.data.get(s.dataId).values),$=v.makeZerosNestedTypedArray(a.shape,a.dtype);for(let S=0;S=0&&ae=0&&reK&&(K=se,Z=ae,J=re)}}}$[S][Z][J][j]+=D[S][M][U][j]}}}return{dataId:u.write(v.toTypedArray($,a.dtype),a.shape,a.dtype),shape:a.shape,dtype:a.dtype}}};function kd(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=ms({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=Un({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=rm(n,h,f),b=v.sizeFromShape(m),y=n.data.get(g.dataId).values,x=n.data.get(c.dataId).values;for(let w=0;w=0&&(c=kd({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 sX={kernelName:Im,backendName:"cpu",kernelFunc:rX};function iX(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=0?s[l]=o[l]:s[l]=o[l]*(u+1)}return n.makeTensorInfo(r.shape,"float32",s)}var oX={kernelName:iu,backendName:"cpu",kernelFunc:iX},lX=N.ERF_P,uX=N.ERF_A1,pX=N.ERF_A2,cX=N.ERF_A3,dX=N.ERF_A4,hX=N.ERF_A5,mX=it(ou,e=>{let t=Math.sign(e),n=Math.abs(e),a=1/(1+lX*n);return t*(1-((((hX*a+dX)*a+cX)*a+pX)*a+uX)*a*Math.exp(-n*n))}),fX={kernelName:ou,backendName:"cpu",kernelFunc:mX};function om(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),xt({inputs:{x:r},backend:n,attrs:{shape:o}})}var gX={kernelName:uu,backendName:"cpu",kernelFunc:om},bX=Ot((e,t)=>e/t),R1=Zt(Ui,bX),Kx={kernelName:Ui,backendName:"cpu",kernelFunc:R1};function B_(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&&y=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=xt({inputs:{x:r},backend:n,attrs:{shape:[h.batchSize,h.outerSize,h.dimSize,h.sliceSize]}}),f=xt({inputs:{x:s},backend:n,attrs:{shape:[h.batchSize,c/h.batchSize]}}),g=[h.batchSize,h.outerSize,c/h.batchSize,h.sliceSize],b=n.bufferSync(f),y=n.bufferSync(m),x=r_(y,b,g);return n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),n.makeTensorInfo(h.outputShape,x.dtype,x.values)}var DX={kernelName:cu,backendName:"cpu",kernelFunc:$X};function RX(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=xt({inputs:{x:a},backend:n,attrs:{shape:[i,s]}}),l=B_(o,!0,n),u=xt({inputs:{x:l},backend:n,attrs:{shape:a.shape}});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(l),u}var MX={kernelName:Nm,backendName:"cpu",kernelFunc:RX},PX=it(Ji,e=>Number.isFinite(e)?1:0,"bool"),OX={kernelName:Ji,backendName:"cpu",kernelFunc:PX},LX=it(Qi,e=>Math.abs(e)===1/0?1:0,"bool"),zX={kernelName:Qi,backendName:"cpu",kernelFunc:LX},WX=it(eo,e=>Number.isNaN(e)?1:0,"bool"),BX={kernelName:eo,backendName:"cpu",kernelFunc:WX};function VX(e){let{backend:t,attrs:n}=e,{start:a,stop:r,num:s}=n,i=u_(a,r,s);return t.makeTensorInfo([i.length],"float32",i)}var UX={kernelName:gu,backendName:"cpu",kernelFunc:VX},GX=it(ao,e=>Math.log1p(e)),HX={kernelName:ao,backendName:"cpu",kernelFunc:GX},qX=Ot((e,t)=>e&&t),jX=Zt(bu,qX,null,"bool"),KX={kernelName:bu,backendName:"cpu",kernelFunc:jX},XX=it(yu,e=>e?0:1,"bool"),YX={kernelName:yu,backendName:"cpu",kernelFunc:XX},ZX=Ot((e,t)=>e||t),JX=Zt(xu,ZX,null,"bool"),QX={kernelName:xu,backendName:"cpu",kernelFunc:JX};function eY(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,b=f-g+Math.max(0,g-s),y=f-g+Math.min(g+s,p),x=0;for(;b<=y;b++){let w=d[b];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=D1(c,r.shape,r.dtype,h,p,"max");d=n.makeTensorInfo(p.outShape,r.dtype,m.values)}return d}var iY={kernelName:oo,backendName:"cpu",kernelFunc:sY};function oY(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=L_(d,r.shape,r.dtype,v.computeStrides(r.shape),p,"max");return n.makeTensorInfo(c.shape,"float32",c.values)}var lY={kernelName:wu,backendName:"cpu",kernelFunc:oY};function uY(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=QK(d,p),h=p.strideDepth,m=p.strideHeight,f=p.strideWidth,g=p.dilationDepth,b=p.dilationHeight,y=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,F=Le(s.shape,"float32"),D=n.bufferSync(r);for(let $=0;$=p.outDepth||Math.floor(ee)!==ee))for(let ae=0;ae=p.outHeight||Math.floor(te)!==te))for(let re=0;re=p.outWidth||Math.floor(se)!==se)continue;let ye=x*w*I-1-c.get($,ee,te,se,S),ue=J*w*I+ae*I+re,be=ye===ue?1:0;if(be===0)continue;let ke=D.get($,ee,te,se,S);Z+=ke*be}}}F.set(Z,$,M,B,U,S)}return n.makeTensorInfo(F.shape,F.dtype,F.values)}var pY={kernelName:Rc,backendName:"cpu",kernelFunc:uY};function cY(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=Le(c.outShape,o.dtype,O_(h,o.shape,o.dtype,c).values),f=c.strideHeight,g=c.strideWidth,b=c.dilationHeight,y=c.dilationWidth,x=c.effectiveFilterHeight,w=c.effectiveFilterWidth,I=w-1-c.padInfo.left,T=x-1-c.padInfo.top,C=Le(o.shape,"float32"),E=n.data.get(r.dataId).values,F=Le(r.shape,"float32",E);for(let D=0;D=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(D,K,J,$),ae=j*w+Z,te=ee===ae?1:0;if(te===0)continue;let re=F.get(D,K,J,$);H+=re*te}}C.set(H,D,S,M,$)}return n.makeTensorInfo(C.shape,C.dtype,C.values)}var dY={kernelName:Cm,backendName:"cpu",kernelFunc:cY};function hY(e,t,n,a,r){let s=v.computeStrides(t),i=D1(e,t,n,s,r,"max"),o=O_(e,t,n,r,!0,a);return[i.values,o.values]}var mY={kernelName:_m,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]=hY(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 fY(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=ms({inputs:{x:r},backend:n,attrs:{dtype:"float32"}});p.push(c);let h=R1({inputs:{a:c,b:d},backend:n});p.push(h);let m=kd({inputs:{x:h},backend:n,attrs:{axis:s,keepDims:i}});return p.forEach(f=>n.disposeIntermediateTensorInfo(f)),m}var gY={kernelName:lo,backendName:"cpu",kernelFunc:fY};function bY(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=Un({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 b=0;by[0]+r.shape[x]+y[1]),l=s.map(y=>y[0]),u=s.map((y,x)=>y[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),b=v.getTypedArrayFromDType(r.dtype,m);for(let y=0;y=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);b[y]=d[w]}return{dataId:n.write(b,o,r.dtype),shape:o,dtype:r.dtype}}var vY={kernelName:co,backendName:"cpu",kernelFunc:xY},wY=Ot((e,t)=>{let n=e%t;return e<0&&t<0||e>=0&&t>=0?n:(n+t)%t}),kY=Zt(ku,wY),IY={kernelName:ku,backendName:"cpu",kernelFunc:kY},SY=gs(hm());function U_(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=V_({inputs:{x:r},backend:n,attrs:{reductionIndices:l,keepDims:!1}}),p=N.expandShapeToKeepDim(u.shape,l),d=xt({inputs:{x:u},backend:n,attrs:{shape:p}}),c=F1({inputs:{a:r,b:d},backend:n}),h=QC({inputs:{x:c},backend:n}),m=kd({inputs:{x:h},backend:n,attrs:{axis:l,keepDims:!1}}),f=xt({inputs:{x:m},backend:n,attrs:{shape:p}}),g=R1({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 NY={kernelName:Ro,backendName:"cpu",kernelFunc:U_};function TY(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:U_({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=om({inputs:{input:p},backend:n,attrs:{dim:r}});return o.push(d),d}),u=Ul({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(p=>n.disposeIntermediateTensorInfo(p)),u}var BY={kernelName:Au,backendName:"cpu",kernelFunc:H_};function VY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{paddings:s,constantValue:i}=a;ge(r,"pad");let o=s.map((b,y)=>b[0]+r.shape[y]+b[1]),l=s.map(b=>b[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 b=0;bw+l[I]),x=v.locToIndex(y,m,f);g[x]=u[b]}return{dataId:n.write(g,o,r.dtype),shape:o,dtype:r.dtype}}var q_={kernelName:fo,backendName:"cpu",kernelFunc:VY},UY=Ot((e,t)=>Math.pow(e,t)),GY=Zt(go,UY),HY={kernelName:go,backendName:"cpu",kernelFunc:GY};function qY(e){let{inputs:t,backend:n,attrs:a}=e,{paramsNestedSplits:r,paramsDenseValues:s,indices:i}=t,{outputRaggedRank:o}=a,l=r.map(b=>n.data.get(b.dataId).values),u=r.map(b=>b.shape),p=n.data.get(s.dataId).values,d=n.data.get(i.dataId).values,[c,h,m]=b_(l,u,p,s.shape,s.dtype,d,i.shape,o),f=c.map(b=>n.makeTensorInfo([b.length],"int32",b)),g=n.makeTensorInfo(m,s.dtype,h);return f.concat([g])}var jY={kernelName:Em,backendName:"cpu",kernelFunc:qY};function KY(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]=y_(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 XY={kernelName:Am,backendName:"cpu",kernelFunc:KY};function YY(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]=x_(u,r.shape,p,s.shape,s.dtype,d,i.shape,c,h,l);return n.makeTensorInfo(m,s.dtype,f)}var ZY={kernelName:Fm,backendName:"cpu",kernelFunc:YY};function JY(e){let{backend:t,attrs:n}=e,{start:a,stop:r,dtype:s,step:i}=n,o=T1(a,r,i,s);return t.makeTensorInfo([o.length],s,o)}var QY={kernelName:Mc,backendName:"cpu",kernelFunc:JY},e7=it(xo,e=>1/e),t7={kernelName:xo,backendName:"cpu",kernelFunc:e7};function n7(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])),b=[s&&u>1?c-1:c,s&&p>1?h-1:h],y=[s&&u>1?u-1:u,s&&p>1?p-1:p],x=0,w=b[0]/y[0],I=b[1]/y[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],b=f[0]/g[0],y=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],y=[s&&u>1?u-1:u,s&&p>1?p-1:p],x=b[0]/y[0],w=b[1]/y[1],I=0;for(let T=0;T1?p-1:p,i&&m>1?d-1:d],y=[i&&h>1?h-1:h,i&&m>1?m-1:m],x=b[0]/y[0],w=b[1]/y[1],I=1/x,T=1/w,C=Math.ceil(I)*2+2,E=Math.ceil(T)*2+2;for(let F=0;F=h)continue;let te=D+ae*l[1],re=ae*x,se=Math.min(p-1,i?Math.round(re):Math.floor(re));if($===se)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[H+Z]=J}}}}return n.makeTensorInfo(r.shape,r.dtype,f)}var u7={kernelName:$u,backendName:"cpu",kernelFunc:l7};function p7(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 Vt(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 c7={kernelName:So,backendName:"cpu",kernelFunc:p7},d7={kernelName:Xu,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),b=Math.cos(r),y=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}),m7={kernelName:No,backendName:"cpu",kernelFunc:h7};function f7(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=ti(h,m,i,d,u,l,o,p,0,c);return n.makeTensorInfo(i,f.dtype,f.values)}var g7={kernelName:Ru,backendName:"cpu",kernelFunc:f7};function b7(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?N7*e:S7*(Math.exp(e)-1)),C7={kernelName:Co,backendName:"cpu",kernelFunc:T7},_7=it(Eo,e=>e<0?-1:e>0?1:0),E7={kernelName:Eo,backendName:"cpu",kernelFunc:_7},A7=it(_o,e=>Math.sin(e)),F7={kernelName:_o,backendName:"cpu",kernelFunc:A7},$7=it(zu,e=>Math.sinh(e)),D7={kernelName:zu,backendName:"cpu",kernelFunc:$7},R7=11920928955078125e-23,PI=Math.log(R7)+2,M7=it(Fo,e=>{let t=e>-PI,n=e0&&w.isString(n[0])){let r=n.map(s=>w.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 w.convertBackendValuesAndArrayBuffer(this.data.get(e).values,t)}bufferSync(e){let t=this.readSync(e.dataId);if(e.dtype==="string")try{let n=t.map(a=>w.decodeString(a));return Le(e.shape,e.dtype,n)}catch(n){throw new Error("Failed to decode encoded string bytes into utf-8")}return Le(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=w.now();return e(),{kernelMs:w.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 v5(e.shape,t)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}};Mf.nextDataId=0;var _1={};Ee(_1,{addImpl:()=>n_,bincountImpl:()=>A1,bincountReduceImpl:()=>a_,bitwiseAndImpl:()=>r_,castImpl:()=>t_,ceilImpl:()=>s_,concatImpl:()=>F1,equalImpl:()=>i_,expImpl:()=>l_,expm1Impl:()=>p_,floorDivImpl:()=>d_,floorImpl:()=>c_,gatherNdImpl:()=>h_,gatherV2Impl:()=>m_,greaterEqualImpl:()=>g_,greaterImpl:()=>f_,lessEqualImpl:()=>y_,lessImpl:()=>b_,linSpaceImpl:()=>x_,logImpl:()=>v_,maxImpl:()=>w_,maximumImpl:()=>k_,minimumImpl:()=>I_,multiplyImpl:()=>$1,negImpl:()=>S_,notEqualImpl:()=>N_,prodImpl:()=>T_,raggedGatherImpl:()=>C_,raggedRangeImpl:()=>__,raggedTensorToTensorImpl:()=>E_,rangeImpl:()=>R1,rsqrtImpl:()=>A_,scatterImpl:()=>ni,sigmoidImpl:()=>yK,simpleAbsImpl:()=>e_,sliceImpl:()=>pm,sparseFillEmptyRowsImpl:()=>$_,sparseReshapeImpl:()=>D_,sparseSegmentReductionImpl:()=>M1,sqrtImpl:()=>wK,squaredDifferenceImpl:()=>R_,staticRegexReplaceImpl:()=>M_,stridedSliceImpl:()=>P_,stringNGramsImpl:()=>P1,stringSplitImpl:()=>O1,stringToHashBucketFastImpl:()=>L1,subImpl:()=>O_,tileImpl:()=>L_,topKImpl:()=>W_,transposeImpl:()=>D1,uniqueImpl:()=>W1});function e_(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(w.sizeFromShape(t.shape)),r=n.data.get(t.dataId).values;return a=e_(r),n.makeOutput(a,t.shape,t.dtype)},k5={kernelName:Yl,backendName:"cpu",kernelFunc:w5};function Ot(e){return(t,n,a,r,s)=>{let i=N.assertAndGetBroadcastShape(t,n),o=i.length,l=w.computeStrides(i),u=w.sizeFromShape(i),p=w.getTypedArrayFromDType(s,u),d=t.length,c=n.length,h=w.computeStrides(t),m=w.computeStrides(n),f=N.getBroadcastDims(t,i),g=N.getBroadcastDims(n,i);if(f.length+g.length===0)for(let b=0;bx[C]=0);let v=w.locToIndex(x,d,h),I=y.slice(-c);g.forEach(C=>I[C]=0);let T=w.locToIndex(I,c,m);p[b]=e(a[v],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 I5={kernelName:km,backendName:"cpu",kernelFunc:Zn};function um(e,t,n="float32"){if(n==="complex64"){let r=um(e,t,"float32"),s=um(e,t,"float32");return Zn({inputs:{real:r,imag:s},backend:e})}let a=w.makeZerosTypedArray(w.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 S5={kernelName:eo,backendName:"cpu",kernelFunc:pr};function yi(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 N5={kernelName:Dm,backendName:"cpu",kernelFunc:yi};function t_(e,t,n,a){if(a==="int32"){let r=Int32Array.from(e);return[t,"int32",r]}if(a==="bool"){let r=w.toTypedArray([0],n),[s,i]=Ot((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 fs(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=um(n,r.shape,r.dtype),d=fs({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=yi({inputs:{input:r},backend:n}),d=fs({inputs:{x:p},backend:n,attrs:{dtype:s}});return n.disposeIntermediateTensorInfo(p),d}if(!w.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]=t_(i,r.shape,r.dtype,s);return n.makeTensorInfo(o,l,u)}var T5={kernelName:Mi,backendName:"cpu",kernelFunc:fs};function Jt(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=fs({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=fs({inputs:{x:o},backend:l,attrs:{dtype:"complex64"}}),g=l.data.get(f.dataId),b=g.complexTensorInfos.real,y=g.complexTensorInfos.imag,x=l.data.get(b.dataId).values,v=l.data.get(y.dataId).values,[I,T,C]=n(i.shape,o.shape,h,m,x,v),E=l.makeTensorInfo(C,"float32",I),F=l.makeTensorInfo(C,"float32",T),D=Zn({inputs:{real:E,imag:F},backend:l});return l.disposeIntermediateTensorInfo(u),l.disposeIntermediateTensorInfo(f),l.disposeIntermediateTensorInfo(E),l.disposeIntermediateTensorInfo(F),D}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 E1(e){return(t,n,a,r,s,i)=>{let o=N.assertAndGetBroadcastShape(t,n),l=w.sizeFromShape(o),u=o.length,p=w.computeStrides(o),d=w.getTypedArrayFromDType("float32",l),c=w.getTypedArrayFromDType("float32",l),h=N.getBroadcastDims(t,o),m=N.getBroadcastDims(n,o),f=N.mergeRealAndImagArrays(a,r),g=N.mergeRealAndImagArrays(s,i),b=t.length,y=w.computeStrides(t),x=n.length,v=w.computeStrides(n);if(h.length+m.length===0)for(let I=0;IC[S]=0);let E=w.locToIndex(C,b,y),F=T.slice(-x);m.forEach(S=>F[S]=0);let D=w.locToIndex(F,x,v),$=e(f[E*2],f[E*2+1],g[D*2],g[D*2+1]);d[I]=$.real,c[I]=$.imag}return[d,c,o]}}var n_=Ot((e,t)=>e+t),C5=E1((e,t,n,a)=>({real:e+n,imag:t+a})),ql=Jt(ys,n_,C5),_5={kernelName:ys,backendName:"cpu",kernelFunc:ql};function A1(e,t,n,a,r){let s=w.sizeFromShape(a),i=w.makeZerosTypedArray(r,n);for(let o=0;o=r||(s>0?i[l]+=t[o]:i[l]+=1)}return i}function a_(e,t,n,a=!1){let r=e.shape[0],s=e.shape[1],i=Le([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}var r_=Ot((e,t)=>e&t),E5=Jt(ru,r_),A5={kernelName:ru,backendName:"cpu",kernelFunc:E5};function gr(e){return(t,n,a)=>{let r=w.getArrayFromDType(n,t.length);for(let s=0;s{let{x:i}=a;ge(i,e);let o=s,l=o.data.get(i.dataId).values,u;if(i.dtype==="string"){if(!Array.isArray(l))throw new Error("String tensor's value was not an instance of Array");u=N.fromUint8ToStringArray(l)}else u=l;let p=n||i.dtype,d=t(u,p,r);return o.makeTensorInfo(i.shape,p,d)}}var s_=gr(e=>Math.ceil(e)),F5=Es(Pi,s_),$5={kernelName:Pi,backendName:"cpu",kernelFunc:F5};function F1(e,t,n,a){let r=w.getArrayFromDType(n,w.sizeFromShape(t));if(a&&n!=="string"){let s=0;e.forEach(i=>{let o=w.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),o_=Jt(du,i_,null,"bool"),D5={kernelName:du,backendName:"cpu",kernelFunc:o_},l_=gr(e=>Math.exp(e)),u_=Es(Ki,l_,"float32"),R5={kernelName:Ki,backendName:"cpu",kernelFunc:u_},p_=gr(e=>Math.expm1(e)),M5=Es(Xi,p_),P5={kernelName:Xi,backendName:"cpu",kernelFunc:M5},c_=gr(e=>Math.floor(e)),O5=Es(Yi,c_),L5={kernelName:Yi,backendName:"cpu",kernelFunc:O5},d_=Ot((e,t)=>Math.floor(e/t)),z5=Jt(Zi,d_,null,"int32"),W5={kernelName:Zi,backendName:"cpu",kernelFunc:z5};function h_(e,t,n,a,r,s,i,o,l){let u=Le([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),B5=Jt(bu,f_,null,"bool"),V5={kernelName:bu,backendName:"cpu",kernelFunc:B5},g_=Ot((e,t)=>e>=t?1:0),U5=Jt(Qi,g_,null,"bool"),G5={kernelName:Qi,backendName:"cpu",kernelFunc:U5},b_=Ot((e,t)=>ee<=t?1:0),j5=Jt(xu,y_,null,"bool"),K5={kernelName:xu,backendName:"cpu",kernelFunc:j5};function x_(e,t,n){let a=(t-e)/(n-1),r=w.makeZerosTypedArray(n,"float32");r[0]=e;for(let s=1;sMath.log(e)),X5=Es(so,v_),Y5={kernelName:so,backendName:"cpu",kernelFunc:X5};function w_(e,t,n,a){let r=w.getTypedArrayFromDType(a,w.sizeFromShape(n));for(let s=0;so)&&(o=u)}r[s]=o}return r}var k_=Ot((e,t)=>Math.max(e,t)),Z5=Jt(uo,k_),J5={kernelName:uo,backendName:"cpu",kernelFunc:Z5},I_=Ot((e,t)=>Math.min(e,t)),Q5=Jt(mo,I_),eK={kernelName:mo,backendName:"cpu",kernelFunc:Q5},$1=Ot((e,t)=>e*t),tK=E1((e,t,n,a)=>({real:e*n-t*a,imag:e*a+t*n})),Pf=Jt(bo,$1,tK),nK={kernelName:bo,backendName:"cpu",kernelFunc:Pf};function S_(e,t,n){let a=w.createScalarValue(-1,n);return $1([],t,a,e,n)}function aK(e){let{inputs:t,backend:n}=e,{x:a}=t;ge(a,"neg");let r=n.data.get(a.dataId).values,[s,i]=S_(r,a.shape,a.dtype);return n.makeTensorInfo(i,a.dtype,s)}var rK={kernelName:Cu,backendName:"cpu",kernelFunc:aK},N_=Ot((e,t)=>e!==t?1:0),sK=Jt(_u,N_,null,"bool"),iK={kernelName:_u,backendName:"cpu",kernelFunc:sK};function D1(e,t,n,a,r){let s=t.length,i=w.sizeFromShape(t),o=w.computeStrides(t),l=w.computeStrides(r),u=w.getTypedArrayFromDType(n,w.sizeFromShape(r));for(let p=0;pn.disposeIntermediateTensorInfo(y)),n.makeTensorInfo(b,g,m)}var uK={kernelName:ko,backendName:"cpu",kernelFunc:lK};function pK(e,t,n){e.forEach((a,r)=>{if(a<0||a>=n){let s=w.indexToLoc(r,t.length,w.computeStrides(t)).join(",");throw new Error(`indices[${s}] = ${a} is not in [0, ${n})`)}})}function cK(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 dK(e,t,n,a){let r=[],s=0,i=t.length-1+n.length,o=new Array(i).fill(null).map(()=>[0]);cK(n,a);let l=1;for(let u=0;u=0){let f=o[m],g=f[f.length-1]-h[p];for(let b=p;br[i]=s)}return t}function BI(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&&yb)v=0;else if(v=Math.ceil(Math.abs((y-b)/x)),v>VI)throw new Error(`Requires ((limit - start) / delta) <= ${VI}`);c[g+1]=c[g]+v}let h=c[d],m=w.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=GI(t,!1),r=w.getArrayFromDType(this.valuesDType,w.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=w.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=ai(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);UI(f,u,o),++c}m<0?(p=h+1,d=c):(p=h,d=c,c=d+1)}}};function UI(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 E_(e,t,n,a,r,s,i,o,l,u){return new tv(e,t,n,a,r,s,i,o,l,u).compute()}function R1(e,t,n,a){let r=e===t,s=e1;if(r||s||i)return w.makeZerosTypedArray(0,a);let o=Math.abs(Math.ceil((t-e)/n)),l=w.makeZerosTypedArray(o,a);t1/Math.sqrt(e)),gK=Es(Ao,A_),bK={kernelName:Ao,backendName:"cpu",kernelFunc:gK};function ni(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 Le(n,t.dtype);let h=l instanceof Vt?l:Le(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 b=0;b1/(1+Math.exp(-e))),F_=it(Mo,e=>1/(1+Math.exp(-e))),xK={kernelName:Mo,backendName:"cpu",kernelFunc:F_};function pm(e,t,n,a,r){let s=Xt.isSliceContinous(a,t,n),i=w.sizeFromShape(n),o=w.computeStrides(a);if(s){let d=Xt.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=Le(a,r,l),p=Le(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 xi(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,size:i}=a;ge(r,"slice");let[o,l]=Xt.parseSliceParams(r,s,i);Xt.assertParamsValid(r,o,l);let u=n.data.get(r.dataId).values,p=pm(u,o,l,r.shape,r.dtype);return n.makeTensorInfo(l,r.dtype,p)}var vK={kernelName:Bu,backendName:"cpu",kernelFunc:xi};function $_(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=w.getArrayFromDType(n,0),b=w.getArrayFromDType(r,0);return[g,[0,d],b,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,b,l));++m[b],c=c&&b>=h,h=b}let f=!0;for(let g=0;g0&&(m[g]+=m[g-1])}if(f&&c){let g=e,b=a;for(let y=0;y0){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=w.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((y,x)=>y*x,1),h=w.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,b=r[m];for(;;){let y=0;if(f=y)throw new Error(N.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage())}if(b<0||b>=p)throw new Error(N.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(b,p));b>g&&h.fill(i,g*u,b*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)),kK=it(Oo,e=>Math.sqrt(e)),IK={kernelName:Oo,backendName:"cpu",kernelFunc:kK},R_=Ot((e,t)=>{let n=e-t;return n*n}),SK=Jt(Wo,R_),NK={kernelName:Wo,backendName:"cpu",kernelFunc:SK},M_=gr((e,t)=>{let{pattern:n,replaceGlobal:a,rewrite:r}=t;return e.replace(new RegExp(n,a?"g":""),r)}),TK=Es(qc,M_),CK={kernelName:qc,backendName:"cpu",kernelFunc:TK};function P_(e,t,n,a){let r=Le(e,t.dtype);for(let s=0;s0?0:i-o),c=0;c+=l*this.leftPad.length;for(let b=0;bb.forEach(y=>m[f++]=y);for(let b=0;b0){g(e[d+p-1]);for(let b=0;b0){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=w.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 P1(e,t,n,a,r,s,i,o){return new _K(n,a,r,s,i,o).compute(e,t)}function EK(e,t,n,a){if(!e.length)return;if(t.length===0){for(let s=0;se-t),AK=E1((e,t,n,a)=>({real:e-n,imag:t-a})),z1=Jt(Bo,O_,AK),FK={kernelName:Bo,backendName:"cpu",kernelFunc:z1};function L_(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 z_(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));z_(e,t,c,h)}let r=e[t],s=n,i=a;for(w.swap(e,n,t),ec(e[a],r)>0&&w.swap(e,n,a);s0;)i=i-1}ec(e[n],r)===0?w.swap(e,n,i):(i=i+1,w.swap(e,i,a)),i<=t&&(n=i+1),t<=i&&(a=i-1)}}function W_(e,t,n,a,r){let s=t[t.length-1],[i,o]=[e.length/s,s],l=w.getTypedArrayFromDType(n,i*a),u=w.getTypedArrayFromDType("int32",i*a);for(let d=0;dm[x]={value:y,index:x}),a{for(let g=0;gnew Mf,1);var B_=it(qi,e=>e>=0?e:Math.exp(e)-1),DK={kernelName:qi,backendName:"cpu",kernelFunc:B_};function V_(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{alpha:s}=a;ge([r],"leakyRelu");let i=w.sizeFromShape(r.shape),o=n.data.get(r.dataId).values,l=w.getTypedArrayFromDType("float32",i);for(let u=0;ue<0?t*e:e);function U_(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]=MK(a.shape,r.shape,s,i,"float32");return n.makeTensorInfo(l,"float32",o)}var PK={kernelName:wo,backendName:"cpu",kernelFunc:U_},G_=it(So,e=>Math.max(0,e)),OK={kernelName:So,backendName:"cpu",kernelFunc:G_},H_=it(Co,e=>Math.min(Math.max(0,e),6)),LK={kernelName:Co,backendName:"cpu",kernelFunc:H_};function cm(e,t,n,a,r){if(n==="linear")return pr({inputs:{x:t},backend:e});if(n==="relu")return G_({inputs:{x:t},backend:e});if(n==="elu")return B_({inputs:{x:t},backend:e});if(n==="relu6")return H_({inputs:{x:t},backend:e});if(n==="prelu")return U_({inputs:{x:t,alpha:a},backend:e});if(n==="leakyrelu")return V_({inputs:{x:t},backend:e,attrs:{alpha:r}});if(n==="sigmoid")return F_({inputs:{x:t},backend:e});throw new Error(`Activation ${n} has not been implemented for the CPU backend.`)}function xt(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{shape:s}=a,i=w.sizeFromShape(r.shape),o=w.inferFromImplicitShape(s,i),l=w.sizeFromShape(o);w.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 zK={kernelName:Ru,backendName:"cpu",kernelFunc:xt};function q_(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=w.sizeFromShape(m),b=w.sizeFromShape(f),y=Ju.assertAndGetBroadcastShape(r.shape.slice(0,-2),s.shape.slice(0,-2)).concat([c,h]);w.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],v=o?[b,h,d]:[b,d,h],I=xt({inputs:{x:r},backend:n,attrs:{shape:x}}),T=xt({inputs:{x:s},backend:n,attrs:{shape:v}}),C=i?I.shape[1]:I.shape[2],E=i?I.shape[2]:I.shape[1],F=o?T.shape[1]:T.shape[2],D=Math.max(g,b),$=n.data.get(I.dataId).values,S=n.data.get(T.dataId).values,M=w.computeStrides(I.shape),B=w.computeStrides(T.shape),[U,H,j]=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*F,ae=Le([D,E,F],I.dtype),te=ae.values,re=n.blockSize;for(let ie=0;ieMath.acos(e)),GK={kernelName:Ni,backendName:"cpu",kernelFunc:UK},HK=it(Ti,e=>Math.acosh(e)),qK={kernelName:Ti,backendName:"cpu",kernelFunc:HK};function jK(e){let{inputs:t,backend:n}=e,a=t;ge(t,"addN");let r=a.map(o=>n.data.get(o.dataId).values),s=Le(a[0].shape,a[0].dtype),i=s.values;for(let o=0;oy&&(y=I,x=v)}h[g]=x}return u.forEach(g=>n.disposeIntermediateTensorInfo(g)),n.makeTensorInfo(p,"int32",h)}var e8={kernelName:Ql,backendName:"cpu",kernelFunc:QK};function t8(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a;ge(r,"argMin");let i=w.parseAxisParam(s,r.shape),o=N.getAxesPermutation(i,r.shape.length),l=r,u=[];o!=null&&(l=Un({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=w.sizeFromShape(p),h=w.makeZerosTypedArray(c,"int32"),m=w.sizeFromShape(d),f=n.data.get(l.dataId).values;for(let g=0;gn.disposeIntermediateTensorInfo(g)),n.makeTensorInfo(p,"int32",h)}var n8={kernelName:eu,backendName:"cpu",kernelFunc:t8},a8=it(_i,e=>Math.asin(e)),r8={kernelName:_i,backendName:"cpu",kernelFunc:a8},s8=it(Ei,e=>Math.asinh(e)),i8={kernelName:Ei,backendName:"cpu",kernelFunc:s8},o8=it(Ai,e=>Math.atan(e)),l8={kernelName:Ai,backendName:"cpu",kernelFunc:o8},u8=Ot((e,t)=>Math.atan2(e,t)),p8=Jt($i,u8),c8={kernelName:$i,backendName:"cpu",kernelFunc:p8},d8=it(Fi,e=>Math.atanh(e)),h8={kernelName:Fi,backendName:"cpu",kernelFunc:d8};function B1(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=Le(r.outShape,n),g=f.values,b=r.outShape[1]*r.outShape[2]*r.outShape[3],y=r.outShape[2]*r.outShape[3],x=r.outShape[3];for(let v=0;vj?j=ie:s==="avg"&&(K+=ie,Z++)}if(isNaN(j))break}let J=S+M*x+C;g[J]=s==="avg"?K/Z:j}}}return f}function j_(e,t,n,a,r=!1,s=!1){let i=Le(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=Le(t,n,e);for(let g=0;gD&&(D=H,r?$=s?((g*a.inHeight+S)*a.inWidth+B)*a.inChannels+b:(S*a.inWidth+B)*a.inChannels+b:$=M*c+U)}}i.set($,g,y,T,b)}}return i}function K_(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,b=r.padInfo.left,y=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,x=Le(r.outShape,n),v=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 F=0;Fbe?be=ft:s==="avg"&&(ke+=ft,Se++),isNaN(be))break}if(isNaN(be))break}if(isNaN(be))break}let We=ue+S;v[We]=s==="avg"?ke/Math.max(Se,1):be}}}}return x}function m8(e,t){let n=Le(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=H*p*d+K*p+J)}}}n.set(B,f,b,I,F,g)}}}return n}function f8(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;w.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&&w.arraysEqual(p.inShape,p.outShape))d=pr({inputs:{x:r},backend:n});else{let c=n.data.get(r.dataId).values,h=w.computeStrides(r.shape),m=B1(c,r.shape,r.dtype,h,p,"avg");d=n.makeTensorInfo(p.outShape,r.dtype,m.values)}return d}var g8={kernelName:Di,backendName:"cpu",kernelFunc:f8};function b8(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=K_(d,r.shape,r.dtype,w.computeStrides(r.shape),p,"avg");return n.makeTensorInfo(c.shape,"float32",c.values)}var y8={kernelName:tu,backendName:"cpu",kernelFunc:b8};function x8(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,b=p.dilationDepth,y=p.dilationHeight,x=p.dilationWidth,v=p.effectiveFilterDepth,I=p.effectiveFilterHeight,T=p.effectiveFilterWidth,C=v-1-p.padInfo.front,E=T-1-p.padInfo.left,F=I-1-p.padInfo.top,D=Le(s.shape,"float32"),$=1/(m*f*g),S=n.bufferSync(r);for(let M=0;M=p.outDepth||Math.floor(te)!==te))for(let re=0;re=p.outHeight||Math.floor(ie)!==ie))for(let ye=0;ye=p.outWidth||Math.floor(ue)!==ue)continue;let be=S.get(M,te,ie,ue,B);ee+=be}}}D.set(ee*$,M,U,H,j,B)}return n.makeTensorInfo(D.shape,D.dtype,D.values)}var v8={kernelName:$c,backendName:"cpu",kernelFunc:x8};function w8(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,b=p.effectiveFilterHeight,y=p.effectiveFilterWidth,x=y-1-p.padInfo.left,v=b-1-p.padInfo.top,I=Le(i.shape,"float32"),T=1/(h*m),C=n.data.get(r.dataId).values,E=Le(r.shape,"float32",C);for(let F=0;F=p.outHeight||Math.floor(j)!==j))for(let K=0;K=p.outWidth||Math.floor(Z)!==Z)continue;let J=E.get(F,j,Z,D);U+=J}}I.set(U*T,F,$,S,D)}return n.makeTensorInfo(I.shape,I.dtype,I.values)}var k8={kernelName:Fc,backendName:"cpu",kernelFunc:w8};function I8(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,scale:s,offset:i,mean:o,variance:l}=t;w.assert(o.shape.length===l.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),w.assert(i==null||o.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),w.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,b=h.length,y=c.length,x=d.length,v=0,I=0,T=0,C=0;for(let E=0;E=g&&(v=0),I>=x&&(I=0),T>=b&&(T=0),C>=y&&(C=0);return n.makeTensorInfo(r.shape,r.dtype,f)}var S8={kernelName:Ji,backendName:"cpu",kernelFunc:I8};function N8(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,crops:i}=a;ge([r],"batchToSpaceND");let o=s.reduce((b,y)=>b*y),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=xt({inputs:{x:r},backend:n,attrs:{shape:l}}),m=Un({inputs:{x:h},backend:n,attrs:{perm:u}}),f=xt({inputs:{x:m},backend:n,attrs:{shape:p}}),g=xi({inputs:{x:f},backend:n,attrs:{begin:d,size:c}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),g}var T8={kernelName:nu,backendName:"cpu",kernelFunc:N8};function C8(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=A1(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,u)}var _8={kernelName:au,backendName:"cpu",kernelFunc:C8};function E8(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 A8={kernelName:Dc,backendName:"cpu",kernelFunc:E8},F8=it(xs,(e,t)=>{let n=t;return e>n.clipValueMax?n.clipValueMax:e{let{x:t}=e.inputs,n=e.backend,a=new Float32Array(w.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(w.sizeFromShape(o)===0)return n.makeTensorInfo(o,t[0].dtype,[]);let l=t.filter(f=>w.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(v=>yi({inputs:{input:v},backend:n})),g=l.map(v=>jl({inputs:{input:v},backend:n})),b=Kl({inputs:f,backend:n,attrs:{axis:s}}),y=Kl({inputs:g,backend:n,attrs:{axis:s}}),x=Zn({inputs:{real:b,imag:y},backend:n});return f.forEach(v=>n.disposeIntermediateTensorInfo(v)),g.forEach(v=>n.disposeIntermediateTensorInfo(v)),n.disposeIntermediateTensorInfo(b),n.disposeIntermediateTensorInfo(y),x}let u=l.map(f=>{let g=[-1,w.sizeFromShape(f.shape.slice(s))];return xt({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=F1(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 P8={kernelName:su,backendName:"cpu",kernelFunc:Kl};function X_(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,b=c.padInfo.left,y=c.padInfo.top,x=c.dataFormat==="channelsLast",v=new Vt(c.outShape,r.dtype),I=w.computeStrides(r.shape),T=w.computeStrides(s.shape),C=I[0],E=x?I[1]:I[2],F=x?I[2]:1,D=x?1:I[1],$=v.strides[0],S=x?v.strides[1]:v.strides[2],M=x?v.strides[2]:1,B=x?1:v.strides[1],U=n.data.get(r.dataId).values,H=n.data.get(s.dataId).values,j=v.values;for(let K=0;K=c.inHeight)continue;let ye=re*T[0],ue=Z+ie*E;for(let be=0;be=c.inWidth)continue;let ht=ye+We*T[1],st=ue+Ge*F,tt=ht;for(let nt=0;nt=u.inDepth)continue;let K=H*F[0],Z=$+j*E[1];for(let J=0;J=u.inHeight)continue;let ie=K+te*F[1],ye=Z+re*E[2];for(let ue=0;ue=u.inWidth)continue;let Ge=ie+Se*F[2],ht=ye+We*u.inChannels,st=Ge;for(let tt=0;ttMath.cos(e)),X8={kernelName:Wi,backendName:"cpu",kernelFunc:K8},Y8=it(Bi,e=>Math.cosh(e)),Z8={kernelName:Bi,backendName:"cpu",kernelFunc:Y8};function J8(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,b=Le([m,f,g,h],"float32"),y=n.data.get(s.dataId).values,x=n.data.get(i.dataId).values,v=n.data.get(r.dataId).values,I=w.computeStrides(r.shape),T=w.computeStrides(b.shape);for(let C=0;C=p)continue;let B=f>1?($-F)*(d-1)/(f-1):0,U=g>1?(S-D)*(c-1)/(g-1):0;for(let H=0;H1?F*(d-1)+H*B:.5*(F+$)*(d-1);if(j<0||j>d-1){for(let K=0;K1?D*(c-1)+ee*U:.5*(D+S)*(c-1);if(ae<0||ae>c-1){for(let ye=0;ye1?D*(c-1)+K*U:.5*(D+S)*(c-1);if(Z<0||Z>c-1){for(let ae=0;aeb+m-y-1:(b,y)=>b+y;for(let b=0;bb+m-y-1:(b,y)=>b+y;for(let b=0;b`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 b=0;b`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:b,padInfo:y}=h,x=y.left,v=y.top,I=h.outChannels/h.inChannels,T=new Vt(h.outShape,r.dtype),C=n.data.get(r.dataId).values,E=n.data.get(s.dataId).values,F=T.values;for(let D=0;D=h.inHeight)continue;let K=H*d[0],Z=$+j*p[1];for(let J=0;J=h.inWidth)continue;let ie=K+te*d[1],ye=Z+re*h.inChannels,ue=ee,be=ie;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:b,outWidth:y,padInfo:x,strideHeight:v,strideWidth:I,filterHeight:T,filterWidth:C,dilationHeight:E,dilationWidth:F,outShape:D}=N.computeDilation2DInfo(a.shape,r.shape,s,i,"NHWC",o),$=w.sizeFromShape(D),S=D.length,M=w.getArrayFromDType(a.dtype,$);for(let B=0;B=0&&te=0&&ieJ&&(J=be)}}}let ee=w.locToIndex([B,U,j,Z],S,w.computeStrides(D));M[ee]=J}}}return{dataId:l.write(w.toTypedArray(M,a.dtype),D,a.dtype),shape:D,dtype:a.dtype}}},gX={kernelName:Fl,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=w.toNestedArray(a.shape,u.data.get(a.dataId).values),d=w.toNestedArray(r.shape,u.data.get(r.dataId).values),{batchSize:c,inHeight:h,inWidth:m,inChannels:f,outHeight:g,outWidth:b,padInfo:y,strideHeight:x,strideWidth:v,filterHeight:I,filterWidth:T,dilationHeight:C,dilationWidth:E,outShape:F}=N.computeDilation2DInfo(a.shape,r.shape,i,o,"NHWC",l);w.assert(s.rank===F.length,()=>`Error in ${Fl}, dy must have the same rank as output ${F.length}, but got ${s.rank}`);let D=w.toNestedArray(F,u.data.get(s.dataId).values),$=w.makeZerosNestedTypedArray(r.shape,r.dtype);for(let S=0;S=0&&ae=0&&reK&&(K=ie,Z=ee,J=te)}}}$[Z][J][j]+=D[S][M][U][j]}}}return{dataId:u.write(w.toTypedArray($,a.dtype),r.shape,r.dtype),shape:r.shape,dtype:r.dtype}}},bX={kernelName:Al,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=w.toNestedArray(a.shape,u.data.get(a.dataId).values),d=w.toNestedArray(r.shape,u.data.get(r.dataId).values),{batchSize:c,inHeight:h,inWidth:m,inChannels:f,outHeight:g,outWidth:b,padInfo:y,strideHeight:x,strideWidth:v,filterHeight:I,filterWidth:T,dilationHeight:C,dilationWidth:E,outShape:F}=N.computeDilation2DInfo(a.shape,r.shape,i,o,"NHWC",l);w.assert(s.rank===F.length,()=>`Error in ${Al}, dy must have the same rank as output ${F.length}, but got ${s.rank}`);let D=w.toNestedArray(F,u.data.get(s.dataId).values),$=w.makeZerosNestedTypedArray(a.shape,a.dtype);for(let S=0;S=0&&ae=0&&reK&&(K=ie,Z=ae,J=re)}}}$[S][Z][J][j]+=D[S][M][U][j]}}}return{dataId:u.write(w.toTypedArray($,a.dtype),a.shape,a.dtype),shape:a.shape,dtype:a.dtype}}};function yX(e){let{inputs:t,backend:n,attrs:a}=e,{image:r}=t,{canvas:s,options:i}=a,{contextOptions:o,imageOptions:l}=i||{},u=(l==null?void 0:l.alpha)||1,p=(o==null?void 0:o.contextType)||"2d";if(p!=="2d")throw new Error(`Context type ${o.contextType} is not supported by the CPU backend.`);let d=s.getContext(p,(o==null?void 0:o.contextAttributes)||{});if(d==null)throw new Error(`Could not get the context with ${p} type.`);let[c,h]=r.shape.slice(0,2),m=r.shape.length===2?1:r.shape[2],f=n.data.get(r.dataId).values,g=r.dtype==="float32"?255:1,b=new Uint8ClampedArray(h*c*4);for(let x=0;x1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${C}.`)}else if(r.dtype==="int32"&&(C<0||C>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${C}.`);m===1?(v[0]=C*g,v[1]=C*g,v[2]=C*g):v[T]=C*g}let I=x*4;b[I+0]=Math.round(v[0]),b[I+1]=Math.round(v[1]),b[I+2]=Math.round(v[2]),b[I+3]=Math.round(v[3])}s.width=h,s.height=c;let y=new ImageData(b,h,c);return d.putImageData(y,0,0),r}var xX={kernelName:kv,backendName:"cpu",kernelFunc:yX};function _d(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=fs({inputs:{x:r},backend:n,attrs:{dtype:"int32"}}):o=pr({inputs:{x:r},backend:n});let l=o.shape.length,u=w.parseAxisParam(s,o.shape),p=N.getAxesPermutation(u,l),d=u,c=o;p!=null&&(c=Un({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=um(n,h,f),b=w.sizeFromShape(m),y=n.data.get(g.dataId).values,x=n.data.get(c.dataId).values;for(let v=0;v=0&&(c=_d({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 kX={kernelName:Tm,backendName:"cpu",kernelFunc:wX};function IX(e){let{inputs:t,backend:n}=e,{dy:a,y:r}=t;ge([a,r],"eluGrad");let s=new Float32Array(w.sizeFromShape(r.shape)),i=n.data.get(r.dataId).values,o=n.data.get(a.dataId).values;for(let l=0;l=0?s[l]=o[l]:s[l]=o[l]*(u+1)}return n.makeTensorInfo(r.shape,"float32",s)}var SX={kernelName:cu,backendName:"cpu",kernelFunc:IX},NX=N.ERF_P,TX=N.ERF_A1,CX=N.ERF_A2,_X=N.ERF_A3,EX=N.ERF_A4,AX=N.ERF_A5,FX=it(ji,e=>{let t=Math.sign(e),n=Math.abs(e),a=1/(1+NX*n);return t*(1-((((AX*a+EX)*a+_X)*a+CX)*a+TX)*a*Math.exp(-n*n))}),$X={kernelName:ji,backendName:"cpu",kernelFunc:FX};function dm(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&&(w.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),l=i+s+1),o.splice(l,0,1),xt({inputs:{x:r},backend:n,attrs:{shape:o}})}var DX={kernelName:hu,backendName:"cpu",kernelFunc:dm},RX=Ot((e,t)=>e/t),V1=Jt(Hi,RX),nv={kernelName:Hi,backendName:"cpu",kernelFunc:V1};function Z_(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=w.sizeFromShape(u),d=w.getTypedArrayFromDType("float32",p),c=w.getTypedArrayFromDType("float32",p);for(let g=0;g{let{image:a}=e,r=n,s=w.getTypedArrayFromDType(a.dtype,w.sizeFromShape(a.shape)),[i,o,l,u]=a.shape,p=r.data.get(a.dataId).values;for(let d=0;d=0&&y=0,()=>`GatherV2: the index value ${I} is not in [0, ${p-1}]`)}let d=o;o==null&&(d=0);let c=w.sizeFromShape(s.shape),h=N.segment_util.collectGatherOpShapeInfo(r,s,l,d),m=xt({inputs:{x:r},backend:n,attrs:{shape:[h.batchSize,h.outerSize,h.dimSize,h.sliceSize]}}),f=xt({inputs:{x:s},backend:n,attrs:{shape:[h.batchSize,c/h.batchSize]}}),g=[h.batchSize,h.outerSize,c/h.batchSize,h.sliceSize],b=n.bufferSync(f),y=n.bufferSync(m),x=m_(y,b,g);return n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),n.makeTensorInfo(h.outputShape,x.dtype,x.values)}var YX={kernelName:fu,backendName:"cpu",kernelFunc:XX};function ZX(e){let{inputs:t,backend:n}=e,{input:a}=t,r=w.sizeFromShape(a.shape),s=a.shape[a.shape.length-1],i=r/s,o=xt({inputs:{x:a},backend:n,attrs:{shape:[i,s]}}),l=Z_(o,!0,n),u=xt({inputs:{x:l},backend:n,attrs:{shape:a.shape}});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(l),u}var JX={kernelName:_m,backendName:"cpu",kernelFunc:ZX},QX=it(to,e=>Number.isFinite(e)?1:0,"bool"),eY={kernelName:to,backendName:"cpu",kernelFunc:QX},tY=it(no,e=>Math.abs(e)===1/0?1:0,"bool"),nY={kernelName:no,backendName:"cpu",kernelFunc:tY},aY=it(ao,e=>Number.isNaN(e)?1:0,"bool"),rY={kernelName:ao,backendName:"cpu",kernelFunc:aY};function sY(e){let{backend:t,attrs:n}=e,{start:a,stop:r,num:s}=n,i=x_(a,r,s);return t.makeTensorInfo([i.length],"float32",i)}var iY={kernelName:vu,backendName:"cpu",kernelFunc:sY},oY=it(io,e=>Math.log1p(e)),lY={kernelName:io,backendName:"cpu",kernelFunc:oY},uY=Ot((e,t)=>e&&t),pY=Jt(wu,uY,null,"bool"),cY={kernelName:wu,backendName:"cpu",kernelFunc:pY},dY=it(ku,e=>e?0:1,"bool"),hY={kernelName:ku,backendName:"cpu",kernelFunc:dY},mY=Ot((e,t)=>e||t),fY=Jt(Iu,mY,null,"bool"),gY={kernelName:Iu,backendName:"cpu",kernelFunc:fY};function bY(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=w.sizeFromShape(r.shape),h=new Float32Array(c);function m(f){let g=f%u,b=f-g+Math.max(0,g-s),y=f-g+Math.min(g+s,p),x=0;for(;b<=y;b++){let v=d[b];x+=v*v}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&&w.arraysEqual(p.inShape,p.outShape))d=pr({inputs:{x:r},backend:n});else{let c=n.data.get(r.dataId).values,h=w.computeStrides(r.shape),m=B1(c,r.shape,r.dtype,h,p,"max");d=n.makeTensorInfo(p.outShape,r.dtype,m.values)}return d}var IY={kernelName:po,backendName:"cpu",kernelFunc:kY};function SY(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=K_(d,r.shape,r.dtype,w.computeStrides(r.shape),p,"max");return n.makeTensorInfo(c.shape,"float32",c.values)}var NY={kernelName:Nu,backendName:"cpu",kernelFunc:SY};function TY(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=m8(d,p),h=p.strideDepth,m=p.strideHeight,f=p.strideWidth,g=p.dilationDepth,b=p.dilationHeight,y=p.dilationWidth,x=p.effectiveFilterDepth,v=p.effectiveFilterHeight,I=p.effectiveFilterWidth,T=x-1-p.padInfo.front,C=I-1-p.padInfo.left,E=v-1-p.padInfo.top,F=Le(s.shape,"float32"),D=n.bufferSync(r);for(let $=0;$=p.outDepth||Math.floor(ee)!==ee))for(let ae=0;ae=p.outHeight||Math.floor(te)!==te))for(let re=0;re=p.outWidth||Math.floor(ie)!==ie)continue;let ye=x*v*I-1-c.get($,ee,te,ie,S),ue=J*v*I+ae*I+re,be=ye===ue?1:0;if(be===0)continue;let ke=D.get($,ee,te,ie,S);Z+=ke*be}}}F.set(Z,$,M,B,U,S)}return n.makeTensorInfo(F.shape,F.dtype,F.values)}var CY={kernelName:zc,backendName:"cpu",kernelFunc:TY};function _Y(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=Le(c.outShape,o.dtype,j_(h,o.shape,o.dtype,c).values),f=c.strideHeight,g=c.strideWidth,b=c.dilationHeight,y=c.dilationWidth,x=c.effectiveFilterHeight,v=c.effectiveFilterWidth,I=v-1-c.padInfo.left,T=x-1-c.padInfo.top,C=Le(o.shape,"float32"),E=n.data.get(r.dataId).values,F=Le(r.shape,"float32",E);for(let D=0;D=c.outHeight||Math.floor(K)!==K))for(let Z=0;Z=c.outWidth||Math.floor(J)!==J)continue;let ee=x*v-1-m.get(D,K,J,$),ae=j*v+Z,te=ee===ae?1:0;if(te===0)continue;let re=F.get(D,K,J,$);H+=re*te}}C.set(H,D,S,M,$)}return n.makeTensorInfo(C.shape,C.dtype,C.values)}var EY={kernelName:Lc,backendName:"cpu",kernelFunc:_Y};function AY(e,t,n,a,r){let s=w.computeStrides(t),i=B1(e,t,n,s,r,"max"),o=j_(e,t,n,r,!0,a);return[i.values,o.values]}var FY={kernelName:Wc,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]=AY(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 $Y(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=w.parseAxisParam(s,r.shape),l=N.computeOutAndReduceShapes(r.shape,o)[1],u=w.sizeFromShape(l),p=[],d=n.makeTensorInfo([],"float32",new Float32Array([u]));p.push(d);let c=fs({inputs:{x:r},backend:n,attrs:{dtype:"float32"}});p.push(c);let h=V1({inputs:{a:c,b:d},backend:n});p.push(h);let m=_d({inputs:{x:h},backend:n,attrs:{axis:s,keepDims:i}});return p.forEach(f=>n.disposeIntermediateTensorInfo(f)),m}var DY={kernelName:co,backendName:"cpu",kernelFunc:$Y};function RY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;ge(r,"min");let o=w.parseAxisParam(s,r.shape),l=o,u=N.getAxesPermutation(l,r.shape.length),p=r;u!=null&&(p=Un({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=w.sizeFromShape(c),m=w.makeZerosTypedArray(w.sizeFromShape(d),p.dtype),f=n.data.get(p.dataId).values;for(let b=0;by[0]+r.shape[x]+y[1]),l=s.map(y=>y[0]),u=s.map((y,x)=>y[0]+r.shape[x]),p=i==="reflect"?0:1,d=n.data.get(r.dataId).values,c=r.shape.length,h=w.computeStrides(r.shape),m=w.sizeFromShape(o),f=o.length,g=w.computeStrides(o),b=w.getTypedArrayFromDType(r.dtype,m);for(let y=0;y=u[I]&&(x[I]=(u[I]-1)*2-x[I]+p);x=x.map((I,T)=>I-l[T]);let v=w.locToIndex(x,c,h);b[y]=d[v]}return{dataId:n.write(b,o,r.dtype),shape:o,dtype:r.dtype}}var OY={kernelName:fo,backendName:"cpu",kernelFunc:PY},LY=Ot((e,t)=>{let n=e%t;return e<0&&t<0||e>=0&&t>=0?n:(n+t)%t}),zY=Jt(go,LY),WY={kernelName:go,backendName:"cpu",kernelFunc:zY},BY=bs(ym());function Q_(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=w.parseAxisParam([o],r.shape),u=J_({inputs:{x:r},backend:n,attrs:{reductionIndices:l,keepDims:!1}}),p=N.expandShapeToKeepDim(u.shape,l),d=xt({inputs:{x:u},backend:n,attrs:{shape:p}}),c=z1({inputs:{a:r,b:d},backend:n}),h=u_({inputs:{x:c},backend:n}),m=_d({inputs:{x:h},backend:n,attrs:{axis:l,keepDims:!1}}),f=xt({inputs:{x:m},backend:n,attrs:{shape:p}}),g=V1({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 VY={kernelName:zo,backendName:"cpu",kernelFunc:Q_};function UY(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:Q_({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=w.makeZerosTypedArray(w.sizeFromShape(c),"int32");for(let m=0;m=0&&d[c]{w.assertShapesMatch(s,p.shape,"All tensors passed to stack must have matching shapes"),w.assert(i===p.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=[],l=t.map(p=>{let d=dm({inputs:{input:p},backend:n,attrs:{dim:r}});return o.push(d),d}),u=Kl({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(p=>n.disposeIntermediateTensorInfo(p)),u}var r7={kernelName:Du,backendName:"cpu",kernelFunc:tE};function s7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{paddings:s,constantValue:i}=a;ge(r,"pad");let o=s.map((b,y)=>b[0]+r.shape[y]+b[1]),l=s.map(b=>b[0]),u=n.data.get(r.dataId).values,p=w.sizeFromShape(r.shape),d=r.shape.length,c=w.computeStrides(r.shape),h=w.sizeFromShape(o),m=o.length,f=w.computeStrides(o),g=w.getTypedArrayFromDType(r.dtype,h);i!==0&&g.fill(i);for(let b=0;bv+l[I]),x=w.locToIndex(y,m,f);g[x]=u[b]}return{dataId:n.write(g,o,r.dtype),shape:o,dtype:r.dtype}}var nE={kernelName:xo,backendName:"cpu",kernelFunc:s7},i7=Ot((e,t)=>Math.pow(e,t)),o7=Jt(vo,i7),l7={kernelName:vo,backendName:"cpu",kernelFunc:o7};function u7(e){let{inputs:t,backend:n,attrs:a}=e,{paramsNestedSplits:r,paramsDenseValues:s,indices:i}=t,{outputRaggedRank:o}=a,l=r.map(b=>n.data.get(b.dataId).values),u=r.map(b=>b.shape),p=n.data.get(s.dataId).values,d=n.data.get(i.dataId).values,[c,h,m]=C_(l,u,p,s.shape,s.dtype,d,i.shape,o),f=c.map(b=>n.makeTensorInfo([b.length],"int32",b)),g=n.makeTensorInfo(m,s.dtype,h);return f.concat([g])}var p7={kernelName:Am,backendName:"cpu",kernelFunc:u7};function c7(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]=__(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 d7={kernelName:Fm,backendName:"cpu",kernelFunc:c7};function h7(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]=E_(u,r.shape,p,s.shape,s.dtype,d,i.shape,c,h,l);return n.makeTensorInfo(m,s.dtype,f)}var m7={kernelName:$m,backendName:"cpu",kernelFunc:h7};function f7(e){let{backend:t,attrs:n}=e,{start:a,stop:r,dtype:s,step:i}=n,o=R1(a,r,i,s);return t.makeTensorInfo([o.length],s,o)}var g7={kernelName:Bc,backendName:"cpu",kernelFunc:f7},b7=it(Io,e=>1/e),y7={kernelName:Io,backendName:"cpu",kernelFunc:b7};function x7(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a;ge(r,"resizeBilinear");let l=w.computeStrides(r.shape),[u,p]=o,[d,c,h,m]=r.shape,f=n.data.get(r.dataId).values,g=new Float32Array(w.sizeFromShape([d,u,p,m])),b=[s&&u>1?c-1:c,s&&p>1?h-1:h],y=[s&&u>1?u-1:u,s&&p>1?p-1:p],x=0,v=b[0]/y[0],I=b[1]/y[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],b=f[0]/g[0],y=f[1]/g[1],x=n.data.get(s.dataId).values,v=0;for(let I=0;I1?c-1:c,s&&p>1?h-1:h],y=[s&&u>1?u-1:u,s&&p>1?p-1:p],x=b[0]/y[0],v=b[1]/y[1],I=0;for(let T=0;T1?p-1:p,i&&m>1?d-1:d],y=[i&&h>1?h-1:h,i&&m>1?m-1:m],x=b[0]/y[0],v=b[1]/y[1],I=1/x,T=1/v,C=Math.ceil(I)*2+2,E=Math.ceil(T)*2+2;for(let F=0;F=h)continue;let te=D+ae*l[1],re=ae*x,ie=Math.min(p-1,i?Math.round(re):Math.floor(re));if($===ie)for(let ye=0;ye=m)continue;let be=te+ue*l[2],ke=ue*v,Se=Math.min(d-1,i?Math.round(ke):Math.floor(ke));U===Se&&(J+=g[be+Z])}}f[H+Z]=J}}}}return n.makeTensorInfo(r.shape,r.dtype,f)}var T7={kernelName:Mu,backendName:"cpu",kernelFunc:N7};function C7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a;ge(r,"reverse");let i=r.shape.length,o=w.parseAxisParam(s,r.shape);if(i===0)return pr({inputs:{x:r},backend:n});let l=new Vt(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 _7={kernelName:_o,backendName:"cpu",kernelFunc:C7},E7={kernelName:Zu,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{image:a}=e,{radians:r,fillValue:s,center:i}=t,o=n,l=w.getTypedArrayFromDType(a.dtype,w.sizeFromShape(a.shape)),[u,p,d,c]=a.shape,[h,m]=N.getImageCenter(i,p,d),f=255,g=Math.sin(r),b=Math.cos(r),y=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}),F7={kernelName:Eo,backendName:"cpu",kernelFunc:A7};function $7(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=ni(h,m,i,d,u,l,o,p,0,c);return n.makeTensorInfo(i,f.dtype,f.values)}var D7={kernelName:Ou,backendName:"cpu",kernelFunc:$7};function R7(e,t){let n=0,a=e.length,r=0;for(;n1||r.shape.length===1?1:w.sizeFromShape(r.shape.slice(1));for(let m=0;me>=0?V7*e:B7*(Math.exp(e)-1)),G7={kernelName:Fo,backendName:"cpu",kernelFunc:U7},H7=it(Ro,e=>e<0?-1:e>0?1:0),q7={kernelName:Ro,backendName:"cpu",kernelFunc:H7},j7=it($o,e=>Math.sin(e)),K7={kernelName:$o,backendName:"cpu",kernelFunc:j7},X7=it(Do,e=>Math.sinh(e)),Y7={kernelName:Do,backendName:"cpu",kernelFunc:X7},Z7=11920928955078125e-23,HI=Math.log(Z7)+2,J7=it(Po,e=>{let t=e>-HI,n=eNumber(g)))),n.makeTensorInfo([f.length],a.dtype,new Int32Array(f))]}var W7={kernelName:Pc,backendName:"cpu",kernelFunc:z7};function B7(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]=$_(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 aZ={kernelName:Vc,backendName:"cpu",kernelFunc:nZ};function rZ(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]=I_(o,a.shape,a.dtype,i,l);return[n.makeTensorInfo(p,a.dtype,u),n.makeTensorInfo([d.length],s.dtype,new Int32Array(d))]}var V7={kernelName:Vu,backendName:"cpu",kernelFunc:B7};function U7(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]=D_(o,a.shape,a.dtype,i,l);return[n.makeTensorInfo(p,a.dtype,u),n.makeTensorInfo([d.length],s.dtype,new Int32Array(d))]}var sZ={kernelName:Gu,backendName:"cpu",kernelFunc:rZ};function iZ(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]=C1(i,a.shape,a.dtype,o,l,!0);return n.makeTensorInfo(p,a.dtype,u)}var G7={kernelName:Oc,backendName:"cpu",kernelFunc:U7};function H7(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]=M1(i,a.shape,a.dtype,o,l,!0);return n.makeTensorInfo(p,a.dtype,u)}var oZ={kernelName:Uc,backendName:"cpu",kernelFunc:iZ};function lZ(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]=C1(i,a.shape,a.dtype,o,l);return n.makeTensorInfo(p,a.dtype,u)}var q7={kernelName:Lc,backendName:"cpu",kernelFunc:H7};function j7(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),b=!!n.data.get(i.dataId).values[0];f=ti(m,g,o,c,p,u,l,d,b,h);break}case"float32":{let g=n.bufferSync(s),b=n.data.get(i.dataId).values[0];f=ti(m,g,o,c,p,u,l,d,b,h);break}case"int32":{let g=n.bufferSync(s),b=n.data.get(i.dataId).values[0];f=ti(m,g,o,c,p,u,l,d,b,h);break}case"string":{let g=n.bufferSync(s),b=v.decodeString(n.data.get(i.dataId).values[0]);f=ti(m,g,o,c,p,u,l,d,b,h);break}default:throw new Error(`Unsupported type ${s.dtype}`)}return n.makeTensorInfo(o,f.dtype,f.values)}var K7={kernelName:Uu,backendName:"cpu",kernelFunc:j7};function X7(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=yi({inputs:{x:r},backend:n,attrs:{begin:u,size:c}});return u[o]+=d,h})}var Y7={kernelName:Bu,backendName:"cpu",kernelFunc:X7},Z7={kernelName:zc,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}),Q7={kernelName:vs,backendName:"cpu",kernelFunc:J7};function eZ(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:b,begin:y,end:x,strides:w}=Kt.sliceInfo(r.shape,s,i,o,l,u,p,d,c),I;if(f)I=xt({inputs:{x:r},backend:n,attrs:{shape:m}});else if(g||b){v.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let T=Kt.computeOutShape(y,x,w),C=yi({inputs:{x:r},backend:n,attrs:{begin:y,size:T}});I=xt({inputs:{x:C},backend:n,attrs:{shape:m}}),n.disposeIntermediateTensorInfo(C)}else{let T=n.bufferSync(r),C=T_(h,T,w,y);I=n.makeTensorInfo(m,C.dtype,C.values)}return I}var tZ={kernelName:Gu,backendName:"cpu",kernelFunc:eZ};function nZ(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]=_1(c,h,r,s,i,o,l,u);return[n.makeTensorInfo([m.length],"string",m),n.makeTensorInfo(d.shape,"int32",f)]}var aZ={kernelName:Bc,backendName:"cpu",kernelFunc:nZ};function rZ(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]=E1(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 sZ={kernelName:Vc,backendName:"cpu",kernelFunc:rZ};function iZ(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=A1(i,r);return n.makeTensorInfo(s.shape,"int32",o)}var oZ={kernelName:Uc,backendName:"cpu",kernelFunc:iZ},lZ=it(Oo,e=>Math.tan(e)),uZ={kernelName:Oo,backendName:"cpu",kernelFunc:lZ},pZ=it(Lo,e=>Math.tanh(e)),cZ={kernelName:Lo,backendName:"cpu",kernelFunc:pZ};function dZ(e){let{inputs:t,backend:n}=e,{tensor:a,indices:r,updates:s}=t,{sliceRank:i,numUpdates:o,sliceSize:l,strides:u,outputSize:p}=N.calculateShapes(s,r,a.shape),d=!1,c=n.bufferSync(r),h=n.bufferSync(s),m=n.bufferSync(a),f=ti(c,h,a.shape,p,l,o,i,u,m,d);return n.makeTensorInfo(a.shape,f.dtype,f.values)}var hZ={kernelName:Mu,backendName:"cpu",kernelFunc:dZ};function mZ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{reps:s}=a;ge(r,"tile");let i=__(n.bufferSync(r),s);return n.makeTensorInfo(i.shape,i.dtype,i.values)}var fZ={kernelName:xs,backendName:"cpu",kernelFunc:mZ};function gZ(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]=A_(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 bZ={kernelName:Hu,backendName:"cpu",kernelFunc:gZ};function yZ(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],b=v.computeStrides(r.shape),y=b[0],x=b[1],w=b[2],I=v.computeStrides(g),T=I[0],C=I[1],E=I[2],F=v.getTypedArrayFromDType(r.dtype,v.sizeFromShape(g));F.fill(l);let D=a.data.get(r.dataId).values,$=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 wZ(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 kZ(e,t){return e}function IZ(e,t){return v.clamp(0,e,t-1)}function Jp(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 FZ={kernelName:Hc,backendName:"cpu",kernelFunc:AZ},$Z=[CK,o5,EK,FK,h5,DK,MK,OK,zK,BK,UK,HK,jK,YK,JK,t8,a8,s8,o8,NK,u8,c8,h8,f5,f8,c5,b5,b8,l5,x8,w8,k8,S8,T8,_8,A8,$8,R8,P8,L8,W8,V8,G8,q8,j8,X8,Z8,Q8,eX,tX,nX,sX,yK,oX,y5,fX,x5,gX,w5,kX,IX,NX,I5,N5,CX,EX,FX,DX,C5,E5,u5,MX,v8,OX,zX,BX,xK,F5,D5,UX,M5,HX,KX,YX,QX,tY,aY,rY,O5,iY,lY,pY,dY,mY,gY,yY,z5,vY,IY,CY,B5,U5,AY,DY,PY,H5,LY,WY,BY,q_,HY,wK,K5,jY,XY,ZY,QY,p5,Kx,t7,kK,IK,SK,a7,s7,o7,u7,c7,d7,m7,nK,g7,w7,I7,C7,rK,E7,F7,D7,sK,NY,P7,L7,W7,V7,G7,q7,K7,Y7,lK,Z7,pK,dK,Q7,tZ,aZ,sZ,oZ,gK,aX,uZ,cZ,hZ,fZ,bZ,xZ,q5,CZ,EZ,FZ,zY];for(let e of $Z)qc(e);var j_={};Ee(j_,{assertNotComplex:()=>ip,bindCanvasToFramebuffer:()=>UZ,bindColorTextureToFramebuffer:()=>$h,bindTextureToProgramUniformSampler:()=>uE,bindTextureUnit:()=>iE,bindVertexBufferToProgramAttribute:()=>Yx,callAndCheck:()=>de,canBeRepresented:()=>X_,createFragmentShader:()=>J_,createFramebuffer:()=>sE,createProgram:()=>Q_,createStaticIndexBuffer:()=>nE,createStaticVertexBuffer:()=>tE,createTexture:()=>aE,createVertexShader:()=>Z_,getBatchDim:()=>xi,getExtensionOrThrow:()=>Qp,getFramebufferErrorMessage:()=>pE,getMaxTexturesInShader:()=>mE,getNumChannels:()=>BZ,getProgramUniformLocation:()=>lE,getProgramUniformLocationOrThrow:()=>oE,getRowsCols:()=>vi,getShapeAs3D:()=>tc,getTextureShapeFromLogicalShape:()=>dE,getWebGLDisjointQueryTimerVersion:()=>fE,getWebGLErrorMessage:()=>Y_,getWebGLMaxTextureSize:()=>hE,hasExtension:()=>ha,isCapableOfRenderingToFloatTexture:()=>gE,isDownloadFloatTextureEnabled:()=>bE,isReshapeFree:()=>wc,isWebGLFenceEnabled:()=>yE,isWebGLVersionEnabled:()=>Jx,linkProgram:()=>eE,logShaderSourceAndInfoLog:()=>O1,resetMaxTextureSize:()=>GZ,resetMaxTexturesInShader:()=>HZ,unbindColorTextureFromFramebuffer:()=>Zx,unbindTextureUnit:()=>VZ,validateFramebuffer:()=>ec,validateProgram:()=>Fh,validateTextureSize:()=>rE});var Js={},Sh={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function K_(e,t){Js[e]=t}function Ka(e,t){if(!(e in Js)||t!=null){let a=RZ(e,t);if(a!==null)Js[e]=a;else return console.log("Could not get context for WebGL version",e),null}let n=Js[e];return n==null||n.isContextLost()?(delete Js[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),Js[e])}function DZ(e){if(!G().getBool("IS_SAFARI")&&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 RZ(e,t){if(e!==1&&e!==2)throw new Error("Cannot get WebGL rendering context, WebGL is disabled.");let n=t==null?DZ(e):t;return n.addEventListener("webglcontextlost",a=>{a.preventDefault(),delete Js[e]},!1),G().getBool("SOFTWARE_WEBGL_ENABLED")&&(Sh.failIfMajorPerformanceCaveat=!1),e===1?n.getContext("webgl",Sh)||n.getContext("experimental-webgl",Sh):n.getContext("webgl2",Sh)}var vc;(function(e){e[e.DENSE=0]="DENSE",e[e.SHARED_BATCH=1]="SHARED_BATCH"})(vc||(vc={}));var da;(function(e){e[e.RENDER=0]="RENDER",e[e.UPLOAD=1]="UPLOAD",e[e.PIXELS=2]="PIXELS",e[e.DOWNLOAD=3]="DOWNLOAD"})(da||(da={}));var dn;(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"})(dn||(dn={}));function Id(e,t){return[t,e]}function MZ(e,t){return e*t}function Nh(e){let t=v.sizeFromShape(e),n=Math.ceil(t/4);return v.sizeToSquarishShape(n)}function sp(e,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(e/2))]}function PZ(e,t){let[n,a]=sp(e,t);return n*a*4}function P1(e,t){let n=e,a,r,s,i,o,l,u,p,d,c;return G().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 de(e,t){let n=t();return G().getBool("DEBUG")&&OZ(e),n}function OZ(e){let t=e.getError();if(t!==e.NO_ERROR)throw new Error("WebGL Error: "+Y_(e,t))}var LZ=596e-10,zZ=65504;function X_(e){return!!(G().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||e===0||LZe.getExtension(t),'Extension "'+t+'" not supported on this browser.')}function Z_(e,t){let n=Pr(e,()=>e.createShader(e.VERTEX_SHADER),"Unable to create vertex WebGLShader.");if(de(e,()=>e.shaderSource(n,t)),de(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 J_(e,t){let n=Pr(e,()=>e.createShader(e.FRAGMENT_SHADER),"Unable to create fragment WebGLShader.");if(de(e,()=>e.shaderSource(n,t)),de(e,()=>e.compileShader(n)),G().get("ENGINE_COMPILE_ONLY"))return n;if(e.getShaderParameter(n,e.COMPILE_STATUS)===!1)throw O1(t,e.getShaderInfoLog(n)),new Error("Failed to compile fragment shader.");return n}var WZ=/ERROR: [0-9]+:([0-9]+):/g;function O1(e,t){let n=WZ.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;d{let c=[...p];c[o]=d;let h=xi({inputs:{x:r},backend:n,attrs:{begin:u,size:c}});return u[o]+=d,h})}var hZ={kernelName:Uu,backendName:"cpu",kernelFunc:dZ},mZ={kernelName:Hc,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}),gZ={kernelName:ws,backendName:"cpu",kernelFunc:fZ};function bZ(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:b,begin:y,end:x,strides:v}=Xt.sliceInfo(r.shape,s,i,o,l,u,p,d,c),I;if(f)I=xt({inputs:{x:r},backend:n,attrs:{shape:m}});else if(g||b){w.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let T=Xt.computeOutShape(y,x,v),C=xi({inputs:{x:r},backend:n,attrs:{begin:y,size:T}});I=xt({inputs:{x:C},backend:n,attrs:{shape:m}}),n.disposeIntermediateTensorInfo(C)}else{let T=n.bufferSync(r),C=P_(h,T,v,y);I=n.makeTensorInfo(m,C.dtype,C.values)}return I}var yZ={kernelName:qu,backendName:"cpu",kernelFunc:bZ};function xZ(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]=P1(c,h,r,s,i,o,l,u);return[n.makeTensorInfo([m.length],"string",m),n.makeTensorInfo(d.shape,"int32",f)]}var vZ={kernelName:jc,backendName:"cpu",kernelFunc:xZ};function wZ(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]=O1(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 kZ={kernelName:Kc,backendName:"cpu",kernelFunc:wZ};function IZ(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=L1(i,r);return n.makeTensorInfo(s.shape,"int32",o)}var SZ={kernelName:Xc,backendName:"cpu",kernelFunc:IZ},NZ=it(Vo,e=>Math.tan(e)),TZ={kernelName:Vo,backendName:"cpu",kernelFunc:NZ},CZ=it(Uo,e=>Math.tanh(e)),_Z={kernelName:Uo,backendName:"cpu",kernelFunc:CZ};function EZ(e){let{inputs:t,backend:n}=e,{tensor:a,indices:r,updates:s}=t,{sliceRank:i,numUpdates:o,sliceSize:l,strides:u,outputSize:p}=N.calculateShapes(s,r,a.shape),d=!1,c=n.bufferSync(r),h=n.bufferSync(s),m=n.bufferSync(a),f=ni(c,h,a.shape,p,l,o,i,u,m,d);return n.makeTensorInfo(a.shape,f.dtype,f.values)}var AZ={kernelName:Lu,backendName:"cpu",kernelFunc:EZ};function FZ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{reps:s}=a;ge(r,"tile");let i=L_(n.bufferSync(r),s);return n.makeTensorInfo(i.shape,i.dtype,i.values)}var $Z={kernelName:vs,backendName:"cpu",kernelFunc:FZ};function DZ(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]=W_(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 RZ={kernelName:ju,backendName:"cpu",kernelFunc:DZ};function MZ(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],b=w.computeStrides(r.shape),y=b[0],x=b[1],v=b[2],I=w.computeStrides(g),T=I[0],C=I[1],E=I[2],F=w.getTypedArrayFromDType(r.dtype,w.sizeFromShape(g));F.fill(l);let D=a.data.get(r.dataId).values,$=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 w.clamp(0,n,t-1)}function LZ(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 w.clamp(0,n,t-1)}function zZ(e,t){return e}function WZ(e,t){return w.clamp(0,e,t-1)}function tc(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 KZ={kernelName:Zc,backendName:"cpu",kernelFunc:jZ},XZ=[VK,k5,GK,qK,_5,KK,YK,JK,e8,n8,r8,i8,l8,c8,h8,g8,y8,v8,k8,WK,S8,T8,_8,A5,A8,T5,$5,$8,I5,R8,P8,O8,z8,B8,U8,H8,j8,X8,Z8,Q8,tX,aX,sX,oX,lX,pX,dX,mX,fX,gX,bX,xX,kX,DK,SX,D5,$X,R5,DX,P5,zX,WX,VX,L5,W5,GX,qX,KX,YX,V5,G5,S5,JX,M8,eY,nY,rY,RK,q5,K5,iY,Y5,lY,cY,hY,gY,yY,vY,wY,J5,IY,NY,CY,EY,FY,DY,MY,eK,OY,WY,GY,nK,rK,jY,YY,QY,iK,t7,a7,r7,nE,l7,PK,uK,p7,d7,m7,g7,N5,nv,y7,OK,LK,zK,v7,k7,S7,T7,_7,E7,F7,bK,D7,L7,W7,G7,xK,q7,K7,Y7,vK,VY,Q7,tZ,aZ,sZ,oZ,uZ,cZ,hZ,IK,mZ,NK,CK,gZ,yZ,vZ,kZ,SZ,FK,vX,TZ,_Z,AZ,$Z,RZ,PZ,oK,GZ,qZ,KZ,n7];for(let e of XZ)Jc(e);var aE={};Ee(aE,{assertNotComplex:()=>lp,bindCanvasToFramebuffer:()=>iJ,bindColorTextureToFramebuffer:()=>Oh,bindTextureToProgramUniformSampler:()=>xE,bindTextureUnit:()=>gE,bindVertexBufferToProgramAttribute:()=>rv,callAndCheck:()=>de,canBeRepresented:()=>sE,createFragmentShader:()=>lE,createFramebuffer:()=>fE,createProgram:()=>uE,createStaticIndexBuffer:()=>dE,createStaticVertexBuffer:()=>cE,createTexture:()=>hE,createVertexShader:()=>oE,getBatchDim:()=>vi,getExtensionOrThrow:()=>nc,getFramebufferErrorMessage:()=>vE,getMaxTexturesInShader:()=>SE,getNumChannels:()=>rJ,getProgramUniformLocation:()=>yE,getProgramUniformLocationOrThrow:()=>bE,getRowsCols:()=>wi,getShapeAs3D:()=>rc,getTextureShapeFromLogicalShape:()=>kE,getWebGLDisjointQueryTimerVersion:()=>NE,getWebGLErrorMessage:()=>iE,getWebGLMaxTextureSize:()=>IE,hasExtension:()=>ha,isCapableOfRenderingToFloatTexture:()=>TE,isDownloadFloatTextureEnabled:()=>CE,isReshapeFree:()=>Sc,isWebGLFenceEnabled:()=>_E,isWebGLVersionEnabled:()=>iv,linkProgram:()=>pE,logShaderSourceAndInfoLog:()=>H1,resetMaxTextureSize:()=>oJ,resetMaxTexturesInShader:()=>lJ,unbindColorTextureFromFramebuffer:()=>sv,unbindTextureUnit:()=>sJ,validateFramebuffer:()=>ac,validateProgram:()=>Ph,validateTextureSize:()=>mE});var Qs={},Eh={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function rE(e,t){Qs[e]=t}function Ka(e,t){if(!(e in Qs)||t!=null){let a=ZZ(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 YZ(e){if(!G().getBool("IS_SAFARI")&&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 ZZ(e,t){if(e!==1&&e!==2)throw new Error("Cannot get WebGL rendering context, WebGL is disabled.");let n=t==null?YZ(e):t;return n.addEventListener("webglcontextlost",a=>{a.preventDefault(),delete Qs[e]},!1),G().getBool("SOFTWARE_WEBGL_ENABLED")&&(Eh.failIfMajorPerformanceCaveat=!1),e===1?n.getContext("webgl",Eh)||n.getContext("experimental-webgl",Eh):n.getContext("webgl2",Eh)}var Ic;(function(e){e[e.DENSE=0]="DENSE",e[e.SHARED_BATCH=1]="SHARED_BATCH"})(Ic||(Ic={}));var da;(function(e){e[e.RENDER=0]="RENDER",e[e.UPLOAD=1]="UPLOAD",e[e.PIXELS=2]="PIXELS",e[e.DOWNLOAD=3]="DOWNLOAD"})(da||(da={}));var dn;(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"})(dn||(dn={}));function Ed(e,t){return[t,e]}function JZ(e,t){return e*t}function Ah(e){let t=w.sizeFromShape(e),n=Math.ceil(t/4);return w.sizeToSquarishShape(n)}function op(e,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(e/2))]}function QZ(e,t){let[n,a]=op(e,t);return n*a*4}function G1(e,t){let n=e,a,r,s,i,o,l,u,p,d,c;return G().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 de(e,t){let n=t();return G().getBool("DEBUG")&&eJ(e),n}function eJ(e){let t=e.getError();if(t!==e.NO_ERROR)throw new Error("WebGL Error: "+iE(e,t))}var tJ=596e-10,nJ=65504;function sE(e){return!!(G().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||e===0||tJe.getExtension(t),'Extension "'+t+'" not supported on this browser.')}function oE(e,t){let n=Or(e,()=>e.createShader(e.VERTEX_SHADER),"Unable to create vertex WebGLShader.");if(de(e,()=>e.shaderSource(n,t)),de(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 lE(e,t){let n=Or(e,()=>e.createShader(e.FRAGMENT_SHADER),"Unable to create fragment WebGLShader.");if(de(e,()=>e.shaderSource(n,t)),de(e,()=>e.compileShader(n)),G().get("ENGINE_COMPILE_ONLY"))return n;if(e.getShaderParameter(n,e.COMPILE_STATUS)===!1)throw H1(t,e.getShaderInfoLog(n)),new Error("Failed to compile fragment shader.");return n}var aJ=/ERROR: [0-9]+:([0-9]+):/g;function H1(e,t){let n=aJ.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)=>w.rightPad((c+1).toString(),s)+d),o=0;for(let d=0;de.createProgram(),"Unable to create WebGLProgram.")}function eE(e,t){if(de(e,()=>e.linkProgram(t)),!G().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 Fh(e,t){if(de(e,()=>e.validateProgram(t)),e.getProgramParameter(t,e.VALIDATE_STATUS)===!1)throw console.log(e.getProgramInfoLog(t)),new Error("Shader program validation failed.")}function tE(e,t){let n=Pr(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return de(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),de(e,()=>e.bufferData(e.ARRAY_BUFFER,t,e.STATIC_DRAW)),n}function nE(e,t){let n=Pr(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return de(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,n)),de(e,()=>e.bufferData(e.ELEMENT_ARRAY_BUFFER,t,e.STATIC_DRAW)),n}function BZ(){return G().getNumber("WEBGL_VERSION")===2?1:4}function aE(e){return Pr(e,()=>e.createTexture(),"Unable to create WebGLTexture.")}function rE(e,t){let n=G().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 sE(e){return Pr(e,()=>e.createFramebuffer(),"Unable to create WebGLFramebuffer.")}function Yx(e,t,n,a,r,s,i){let o=e.getAttribLocation(t,n);return o===-1?!1:(de(e,()=>e.bindBuffer(e.ARRAY_BUFFER,a)),de(e,()=>e.vertexAttribPointer(o,r,e.FLOAT,!1,s,i)),de(e,()=>e.enableVertexAttribArray(o)),!0)}function iE(e,t,n){cE(e,n),de(e,()=>e.activeTexture(e.TEXTURE0+n)),de(e,()=>e.bindTexture(e.TEXTURE_2D,t))}function VZ(e,t){cE(e,t),de(e,()=>e.activeTexture(e.TEXTURE0+t)),de(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function oE(e,t,n){return Pr(e,()=>e.getUniformLocation(t,n),'uniform "'+n+'" not present in program.')}function lE(e,t,n){return e.getUniformLocation(t,n)}function uE(e,t,n,a){de(e,()=>iE(e,t,a)),de(e,()=>e.uniform1i(n,a))}function UZ(e){de(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),de(e,()=>e.viewport(0,0,e.canvas.width,e.canvas.height)),de(e,()=>e.scissor(0,0,e.canvas.width,e.canvas.height))}function $h(e,t,n){de(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,n)),de(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t,0))}function Zx(e,t){de(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,t)),de(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,null,0))}function ec(e){let t=e.checkFramebufferStatus(e.FRAMEBUFFER);if(t!==e.FRAMEBUFFER_COMPLETE)throw new Error("Error binding framebuffer: "+pE(e,t))}function pE(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 Pr(e,t,n){let a=de(e,()=>t());if(a==null)throw new Error(n);return a}function cE(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 xi(e,t=2){return v.sizeFromShape(e.slice(0,e.length-t))}function vi(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 tc(e){let t=[1,1,1];return e.length===0||e.length===1&&e[0]===1||(t=[xi(e),...vi(e)]),t}function dE(e,t=!1){let n=G().getNumber("WEBGL_MAX_TEXTURE_SIZE"),a=G().getNumber("WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE");a===1/0&&G().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=xi(e),l=2,u=2;e.length&&([l,u]=vi(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 wc(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[e.length-1],a=t[t.length-1];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 Dh,Rh;function hE(e){if(Dh==null){let t=Ka(e);Dh=t.getParameter(t.MAX_TEXTURE_SIZE)}return Dh}function GZ(){Dh=null}function HZ(){Rh=null}function mE(e){if(Rh==null){let t=Ka(e);Rh=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,Rh)}function fE(e){if(e===0)return 0;let t,n=Ka(e);return ha(n,"EXT_disjoint_timer_query_webgl2")&&e===2?t=2:ha(n,"EXT_disjoint_timer_query")?t=1:t=0,t}function ha(e,t){return e.getExtension(t)!=null}function Jx(e){try{if(Ka(e)!=null)return!0}catch(t){return console.log("Error when getting WebGL context: ",t),!1}return!1}function gE(e){if(e===0)return!1;let t=Ka(e);if(e===1){if(!ha(t,"OES_texture_float"))return!1}else if(!ha(t,"EXT_color_buffer_float"))return!1;return Qx(t)}function bE(e){if(e===0)return!1;let t=Ka(e);if(e===1){if(!ha(t,"OES_texture_float")||!ha(t,"WEBGL_color_buffer_float"))return!1}else{if(ha(t,"EXT_color_buffer_float"))return Qx(t);let n="EXT_color_buffer_half_float";if(ha(t,n)){let a=t.getExtension(n);return qZ(t,a)}return!1}return Qx(t)}function Qx(e){let t=P1(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 qZ(e,t){let n=P1(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 ip(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 xe=G();xe.registerFlag("HAS_WEBGL",()=>xe.getNumber("WEBGL_VERSION")>0);xe.registerFlag("WEBGL_VERSION",()=>Jx(2)?2:Jx(1)?1:0);xe.registerFlag("WEBGL_CHECK_NUMERICAL_PROBLEMS",()=>!1);xe.registerFlag("WEBGL_BUFFER_SUPPORTED",()=>xe.get("WEBGL_VERSION")===2);xe.registerFlag("WEBGL_CPU_FORWARD",()=>!0);xe.registerFlag("WEBGL_FORCE_F16_TEXTURES",()=>!1);xe.registerFlag("WEBGL_PACK",()=>xe.getBool("HAS_WEBGL"));xe.registerFlag("WEBGL_PACK_NORMALIZATION",()=>xe.getBool("WEBGL_PACK"));xe.registerFlag("WEBGL_PACK_CLIP",()=>xe.getBool("WEBGL_PACK"));xe.registerFlag("WEBGL_PACK_DEPTHWISECONV",()=>xe.getBool("WEBGL_PACK"));xe.registerFlag("WEBGL_PACK_BINARY_OPERATIONS",()=>xe.getBool("WEBGL_PACK"));xe.registerFlag("WEBGL_PACK_UNARY_OPERATIONS",()=>xe.getBool("WEBGL_PACK"));xe.registerFlag("WEBGL_PACK_ARRAY_OPERATIONS",()=>xe.getBool("WEBGL_PACK"));xe.registerFlag("WEBGL_PACK_IMAGE_OPERATIONS",()=>xe.getBool("WEBGL_PACK"));xe.registerFlag("WEBGL_PACK_REDUCE",()=>xe.getBool("WEBGL_PACK"));xe.registerFlag("WEBGL_LAZILY_UNPACK",()=>xe.getBool("WEBGL_PACK"));xe.registerFlag("WEBGL_CONV_IM2COL",()=>xe.getBool("WEBGL_PACK"));xe.registerFlag("WEBGL_MAX_TEXTURE_SIZE",()=>hE(xe.getNumber("WEBGL_VERSION")));xe.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER",()=>mE(xe.getNumber("WEBGL_VERSION")));xe.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",()=>{let e=xe.getNumber("WEBGL_VERSION");return e===0?0:fE(e)});xe.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",()=>xe.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&!Xc.isMobile());xe.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE",()=>gE(xe.getNumber("WEBGL_VERSION")));xe.registerFlag("WEBGL_RENDER_FLOAT32_ENABLED",()=>xe.getBool("WEBGL_FORCE_F16_TEXTURES")?!1:xe.getBool("WEBGL_RENDER_FLOAT32_CAPABLE"));xe.registerFlag("WEBGL_DOWNLOAD_FLOAT_ENABLED",()=>bE(xe.getNumber("WEBGL_VERSION")));xe.registerFlag("WEBGL_FENCE_API_ENABLED",()=>yE(xe.getNumber("WEBGL_VERSION")));xe.registerFlag("WEBGL_SIZE_UPLOAD_UNIFORM",()=>xe.getBool("WEBGL_RENDER_FLOAT32_ENABLED")?4:0);xe.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}.`)});xe.registerFlag("WEBGL_FLUSH_THRESHOLD",()=>Xc.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}.`)});xe.registerFlag("CPU_HANDOFF_SIZE_THRESHOLD",()=>128);xe.registerFlag("WEBGL_USE_SHAPES_UNIFORMS",()=>!1);xe.registerFlag("TOPK_LAST_DIM_CPU_HANDOFF_SIZE_THRESHOLD",()=>1e5);xe.registerFlag("TOPK_K_CPU_HANDOFF_THRESHOLD",()=>128);xe.registerFlag("WEBGL_EXP_CONV",()=>!1);xe.registerFlag("SOFTWARE_WEBGL_ENABLED",()=>xe.getBool("IS_TEST"));xe.registerFlag("WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE",()=>1/0);xe.registerFlag("WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE",()=>!1);xe.registerFlag("WEBGL2_ISNAN_CUSTOM",()=>!1);xe.registerFlag("ENGINE_COMPILE_ONLY",()=>!1);function _n(){let e,t,n,a,r,s,i,o,l,u;return G().getNumber("WEBGL_VERSION")===2?(e="#version 300 es",t="in",n="out",a="in",r="texture",s="outputColor",i="out vec4 outputColor;",o=G().getBool("WEBGL2_ISNAN_CUSTOM")?` +`)[0]),console.log(`%c ${w.rightPad(u[0],o)}`,"border:1px solid red; background-color:#e3d2d2; color:#a61717"),console.log(p.join(` +`))}function uE(e){return Or(e,()=>e.createProgram(),"Unable to create WebGLProgram.")}function pE(e,t){if(de(e,()=>e.linkProgram(t)),!G().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 Ph(e,t){if(de(e,()=>e.validateProgram(t)),e.getProgramParameter(t,e.VALIDATE_STATUS)===!1)throw console.log(e.getProgramInfoLog(t)),new Error("Shader program validation failed.")}function cE(e,t){let n=Or(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return de(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),de(e,()=>e.bufferData(e.ARRAY_BUFFER,t,e.STATIC_DRAW)),n}function dE(e,t){let n=Or(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return de(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,n)),de(e,()=>e.bufferData(e.ELEMENT_ARRAY_BUFFER,t,e.STATIC_DRAW)),n}function rJ(){return G().getNumber("WEBGL_VERSION")===2?1:4}function hE(e){return Or(e,()=>e.createTexture(),"Unable to create WebGLTexture.")}function mE(e,t){let n=G().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 fE(e){return Or(e,()=>e.createFramebuffer(),"Unable to create WebGLFramebuffer.")}function rv(e,t,n,a,r,s,i){let o=e.getAttribLocation(t,n);return o===-1?!1:(de(e,()=>e.bindBuffer(e.ARRAY_BUFFER,a)),de(e,()=>e.vertexAttribPointer(o,r,e.FLOAT,!1,s,i)),de(e,()=>e.enableVertexAttribArray(o)),!0)}function gE(e,t,n){wE(e,n),de(e,()=>e.activeTexture(e.TEXTURE0+n)),de(e,()=>e.bindTexture(e.TEXTURE_2D,t))}function sJ(e,t){wE(e,t),de(e,()=>e.activeTexture(e.TEXTURE0+t)),de(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function bE(e,t,n){return Or(e,()=>e.getUniformLocation(t,n),'uniform "'+n+'" not present in program.')}function yE(e,t,n){return e.getUniformLocation(t,n)}function xE(e,t,n,a){de(e,()=>gE(e,t,a)),de(e,()=>e.uniform1i(n,a))}function iJ(e){de(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),de(e,()=>e.viewport(0,0,e.canvas.width,e.canvas.height)),de(e,()=>e.scissor(0,0,e.canvas.width,e.canvas.height))}function Oh(e,t,n){de(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,n)),de(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t,0))}function sv(e,t){de(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,t)),de(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,null,0))}function ac(e){let t=e.checkFramebufferStatus(e.FRAMEBUFFER);if(t!==e.FRAMEBUFFER_COMPLETE)throw new Error("Error binding framebuffer: "+vE(e,t))}function vE(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=de(e,()=>t());if(a==null)throw new Error(n);return a}function wE(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 vi(e,t=2){return w.sizeFromShape(e.slice(0,e.length-t))}function wi(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 rc(e){let t=[1,1,1];return e.length===0||e.length===1&&e[0]===1||(t=[vi(e),...wi(e)]),t}function kE(e,t=!1){let n=G().getNumber("WEBGL_MAX_TEXTURE_SIZE"),a=G().getNumber("WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE");a===1/0&&G().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?w.nearestLargerEven(e[l]):e[l]),e.length===1&&(e=[2,e[0]])),e.length!==2&&(e=w.squeezeShape(e).newShape);let r=w.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=vi(e),l=2,u=2;e.length&&([l,u]=wi(e)),r=o*(l/2)*(u/2),s=w.sizeToSquarishShape(r).map(p=>p*2)}else s=w.sizeToSquarishShape(r);return s}function Fh(e){return e%2===0}function Sc(e,t){if(e=e.slice(-2),t=t.slice(-2),w.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[e.length-1],a=t[t.length-1];if(n===a||Fh(n)&&Fh(a)&&(e[0]===1||t[0]===1))return!0}return e[1]===t[1]&&Fh(e[0])&&Fh(t[0])}var Lh,zh;function IE(e){if(Lh==null){let t=Ka(e);Lh=t.getParameter(t.MAX_TEXTURE_SIZE)}return Lh}function oJ(){Lh=null}function lJ(){zh=null}function SE(e){if(zh==null){let t=Ka(e);zh=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,zh)}function NE(e){if(e===0)return 0;let t,n=Ka(e);return ha(n,"EXT_disjoint_timer_query_webgl2")&&e===2?t=2:ha(n,"EXT_disjoint_timer_query")?t=1:t=0,t}function ha(e,t){return e.getExtension(t)!=null}function iv(e){try{if(Ka(e)!=null)return!0}catch(t){return console.log("Error when getting WebGL context: ",t),!1}return!1}function TE(e){if(e===0)return!1;let t=Ka(e);if(e===1){if(!ha(t,"OES_texture_float"))return!1}else if(!ha(t,"EXT_color_buffer_float"))return!1;return ov(t)}function CE(e){if(e===0)return!1;let t=Ka(e);if(e===1){if(!ha(t,"OES_texture_float")||!ha(t,"WEBGL_color_buffer_float"))return!1}else{if(ha(t,"EXT_color_buffer_float"))return ov(t);let n="EXT_color_buffer_half_float";if(ha(t,n)){let a=t.getExtension(n);return uJ(t,a)}return!1}return ov(t)}function ov(e){let t=G1(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 uJ(e,t){let n=G1(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 _E(e){return e!==2?!1:Ka(e).fenceSync!=null}function lp(e,t){Array.isArray(e)||(e=[e]),e.forEach(n=>{n!=null&&w.assert(n.dtype!=="complex64",()=>`${t} does not support complex64 tensors in the WebGL backend.`)})}var xe=G();xe.registerFlag("HAS_WEBGL",()=>xe.getNumber("WEBGL_VERSION")>0);xe.registerFlag("WEBGL_VERSION",()=>iv(2)?2:iv(1)?1:0);xe.registerFlag("WEBGL_CHECK_NUMERICAL_PROBLEMS",()=>!1);xe.registerFlag("WEBGL_BUFFER_SUPPORTED",()=>xe.get("WEBGL_VERSION")===2);xe.registerFlag("WEBGL_CPU_FORWARD",()=>!0);xe.registerFlag("WEBGL_FORCE_F16_TEXTURES",()=>!1);xe.registerFlag("WEBGL_PACK",()=>xe.getBool("HAS_WEBGL"));xe.registerFlag("WEBGL_PACK_NORMALIZATION",()=>xe.getBool("WEBGL_PACK"));xe.registerFlag("WEBGL_PACK_CLIP",()=>xe.getBool("WEBGL_PACK"));xe.registerFlag("WEBGL_PACK_DEPTHWISECONV",()=>xe.getBool("WEBGL_PACK"));xe.registerFlag("WEBGL_PACK_BINARY_OPERATIONS",()=>xe.getBool("WEBGL_PACK"));xe.registerFlag("WEBGL_PACK_UNARY_OPERATIONS",()=>xe.getBool("WEBGL_PACK"));xe.registerFlag("WEBGL_PACK_ARRAY_OPERATIONS",()=>xe.getBool("WEBGL_PACK"));xe.registerFlag("WEBGL_PACK_IMAGE_OPERATIONS",()=>xe.getBool("WEBGL_PACK"));xe.registerFlag("WEBGL_PACK_REDUCE",()=>xe.getBool("WEBGL_PACK"));xe.registerFlag("WEBGL_LAZILY_UNPACK",()=>xe.getBool("WEBGL_PACK"));xe.registerFlag("WEBGL_CONV_IM2COL",()=>xe.getBool("WEBGL_PACK"));xe.registerFlag("WEBGL_MAX_TEXTURE_SIZE",()=>IE(xe.getNumber("WEBGL_VERSION")));xe.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER",()=>SE(xe.getNumber("WEBGL_VERSION")));xe.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",()=>{let e=xe.getNumber("WEBGL_VERSION");return e===0?0:NE(e)});xe.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",()=>xe.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&!td.isMobile());xe.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE",()=>TE(xe.getNumber("WEBGL_VERSION")));xe.registerFlag("WEBGL_RENDER_FLOAT32_ENABLED",()=>xe.getBool("WEBGL_FORCE_F16_TEXTURES")?!1:xe.getBool("WEBGL_RENDER_FLOAT32_CAPABLE"));xe.registerFlag("WEBGL_DOWNLOAD_FLOAT_ENABLED",()=>CE(xe.getNumber("WEBGL_VERSION")));xe.registerFlag("WEBGL_FENCE_API_ENABLED",()=>_E(xe.getNumber("WEBGL_VERSION")));xe.registerFlag("WEBGL_SIZE_UPLOAD_UNIFORM",()=>xe.getBool("WEBGL_RENDER_FLOAT32_ENABLED")?4:0);xe.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}.`)});xe.registerFlag("WEBGL_FLUSH_THRESHOLD",()=>td.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}.`)});xe.registerFlag("CPU_HANDOFF_SIZE_THRESHOLD",()=>128);xe.registerFlag("WEBGL_USE_SHAPES_UNIFORMS",()=>!1);xe.registerFlag("TOPK_LAST_DIM_CPU_HANDOFF_SIZE_THRESHOLD",()=>1e5);xe.registerFlag("TOPK_K_CPU_HANDOFF_THRESHOLD",()=>128);xe.registerFlag("WEBGL_EXP_CONV",()=>!1);xe.registerFlag("SOFTWARE_WEBGL_ENABLED",()=>xe.getBool("IS_TEST"));xe.registerFlag("WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE",()=>1/0);xe.registerFlag("WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE",()=>!1);xe.registerFlag("WEBGL2_ISNAN_CUSTOM",()=>!1);xe.registerFlag("ENGINE_COMPILE_ONLY",()=>!1);function _n(){let e,t,n,a,r,s,i,o,l,u;return G().getNumber("WEBGL_VERSION")===2?(e="#version 300 es",t="in",n="out",a="in",r="texture",s="outputColor",i="out vec4 outputColor;",o=G().getBool("WEBGL2_ISNAN_CUSTOM")?` bool isnan_custom(float val) { uint floatToUint = floatBitsToUint(val); return (floatToUint & 0x7fffffffu) > 0x7f800000u; @@ -112,15 +112,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 qo(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 Pf(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 jZ(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 KZ(e,t,n="index"){let a=e.map((s,i)=>i),r=jZ(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 L1(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 Zo(e,t,n="index"){let a=w.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 Of(e,t,n="index"){let a=w.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 pJ(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 cJ(e,t,n="index"){let a=e.map((s,i)=>i),r=pJ(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 q1(e){let t=w.computeStrides(e).map(n=>n.toString());return` int getFlatIndex(ivec3 coords) { return coords.x * ${t[0]} + coords.y * ${t[1]} + coords.z; } -`}function z1(){return` +`}function j1(){return` int getFlatIndex(ivec3 coords) { return coords.x * outShapeStrides[0] + coords.y * outShapeStrides[1] + coords.z; } -`}var xE=` +`}var EE=` const float FLOAT_MAX = 1.70141184e38; const float FLOAT_MIN = 1.17549435e-38; @@ -159,22 +159,22 @@ Hi, looks like you are running TensorFlow.js in Node.js. To speed things up dram return c / 255.0; } -`,{getBroadcastDims:vE}=N;function XZ(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}=W1(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=>YZ(c,t,n.packedInputs,n.enableShapeUniforms)).join(` -`),i=t.texShape,o=_n(),l=QZ(o),u,p,d=nJ(o);return t.isPacked?(u=ZZ(t.logicalShape,i,n.enableShapeUniforms),p=tJ(o)):(u=JZ(t.logicalShape,i,n.enableShapeUniforms),p=eJ(o)),n.packedInputs&&(d+=iJ),[d,l,p,r,u,s,n.userCode].join(` -`)}function op(e,t=!1){let n=e.shapeInfo.logicalShape;switch(n.length){case 0:return yJ(e,t);case 1:return vJ(e,t);case 2:return kJ(e,t);case 3:return SJ(e,t);case 4:return TJ(e,t);case 5:return CJ(e);case 6:return _J(e);default:throw new Error(`${n.length}-D input sampling is not yet supported`)}}function wE(e,t){switch(e.shapeInfo.logicalShape.length){case 0:return bJ(e);case 1:return xJ(e,t);case 2:return wJ(e,t);case 3:return IJ(e,t);default:return NJ(e,t)}}function YZ(e,t,n=!1,a){let r="";n?r+=wE(e,a):r+=op(e,a);let s=e.shapeInfo.logicalShape,i=t.logicalShape;return s.length<=i.length&&(n?r+=EJ(e,t):r+=AJ(e,t)),r}function ZZ(e,t,n){switch(e.length){case 0:return kE();case 1:return oJ(e,t,n);case 2:return fJ(e,t,n);case 3:return uJ(e,t,n);default:return cJ(e,t,n)}}function JZ(e,t,n){switch(e.length){case 0:return kE();case 1:return lJ(e,t,n);case 2:return gJ(e,t,n);case 3:return pJ(e,t,n);case 4:return dJ(e,t,n);case 5:return hJ(e,t);case 6:return mJ(e,t);default:throw new Error(`${e.length}-D output sampling is not yet supported`)}}function QZ(e){return` +`,{getBroadcastDims:AE}=N;function dJ(e,t,n){let a=[];if(e.forEach(c=>{let h=w.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}=K1(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=>hJ(c,t,n.packedInputs,n.enableShapeUniforms)).join(` +`),i=t.texShape,o=_n(),l=gJ(o),u,p,d=xJ(o);return t.isPacked?(u=mJ(t.logicalShape,i,n.enableShapeUniforms),p=yJ(o)):(u=fJ(t.logicalShape,i,n.enableShapeUniforms),p=bJ(o)),n.packedInputs&&(d+=IJ),[d,l,p,r,u,s,n.userCode].join(` +`)}function up(e,t=!1){let n=e.shapeInfo.logicalShape;switch(n.length){case 0:return MJ(e,t);case 1:return OJ(e,t);case 2:return zJ(e,t);case 3:return BJ(e,t);case 4:return UJ(e,t);case 5:return GJ(e);case 6:return HJ(e);default:throw new Error(`${n.length}-D input sampling is not yet supported`)}}function FE(e,t){switch(e.shapeInfo.logicalShape.length){case 0:return RJ(e);case 1:return PJ(e,t);case 2:return LJ(e,t);case 3:return WJ(e,t);default:return VJ(e,t)}}function hJ(e,t,n=!1,a){let r="";n?r+=FE(e,a):r+=up(e,a);let s=e.shapeInfo.logicalShape,i=t.logicalShape;return s.length<=i.length&&(n?r+=qJ(e,t):r+=jJ(e,t)),r}function mJ(e,t,n){switch(e.length){case 0:return $E();case 1:return SJ(e,t,n);case 2:return $J(e,t,n);case 3:return TJ(e,t,n);default:return _J(e,t,n)}}function fJ(e,t,n){switch(e.length){case 0:return $E();case 1:return NJ(e,t,n);case 2:return DJ(e,t,n);case 3:return CJ(e,t,n);case 4:return EJ(e,t,n);case 5:return AJ(e,t);case 6:return FJ(e,t);default:throw new Error(`${e.length}-D output sampling is not yet supported`)}}function gJ(e){return` float sampleTexture(sampler2D textureSampler, vec2 uv) { return ${e.texture2D}(textureSampler, uv).r; } - `}function eJ(e){return` + `}function bJ(e){return` void setOutput(float val) { ${e.output} = vec4(val, 0, 0, 0); } - `}function tJ(e){return` + `}function yJ(e){return` void setOutput(vec4 val) { ${e.output} = val; } - `}function nJ(e){return`${e.version} + `}function xJ(e){return`${e.version} precision highp float; precision highp int; precision highp sampler2D; @@ -229,10 +229,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); } - ${aJ} - ${rJ} - ${sJ} - `}var aJ=` + ${vJ} + ${wJ} + ${kJ} + `}var vJ=` vec2 uvFromFlat(int texNumR, int texNumC, int index) { int texR = index / texNumC; int texC = index - texR * texNumC; @@ -244,7 +244,7 @@ vec2 packedUVfrom1D(int texNumR, int texNumC, int index) { int texC = texelIndex - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } -`,rJ=` +`,wJ=` vec2 packedUVfrom2D(int texelsInLogicalRow, int texNumR, int texNumC, int row, int col) { int texelIndex = (row / 2) * texelsInLogicalRow + (col / 2); @@ -252,7 +252,7 @@ vec2 packedUVfrom2D(int texelsInLogicalRow, int texNumR, int texC = texelIndex - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } -`,sJ=` +`,kJ=` vec2 packedUVfrom3D(int texNumR, int texNumC, int texelsInBatch, int texelsInLogicalRow, int b, int row, int col) { @@ -261,7 +261,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, int texC = index - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } -`,iJ=` +`,IJ=` float getChannel(vec4 frag, vec2 innerDims) { vec2 modCoord = mod(innerDims, 2.); return modCoord.x == 0. ? @@ -272,11 +272,11 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, float modCoord = mod(float(dim), 2.); return modCoord == 0. ? frag.r : frag.g; } -`;function kE(){return` +`;function $E(){return` int getOutputCoords() { return 0; } - `}function oJ(e,t,n){let a=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];return a[0]===1?n?` + `}function SJ(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)); } @@ -305,7 +305,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2(${a[0]}, ${a[1]})); return 2 * (resTexRC.x * ${a[1]} + resTexRC.y); } - `}function lJ(e,t,n){return t[0]===1?n?` + `}function NJ(e,t,n){return t[0]===1?n?` int getOutputCoords() { return int(resultUV.x * float(outTexShape[1])); } @@ -333,7 +333,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2(${t[0]}, ${t[1]})); return resTexRC.x * ${t[1]} + resTexRC.y; } - `}function uJ(e,t,n){if(n)return` + `}function TJ(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)); @@ -364,15 +364,15 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, return ivec3(b, r, c); } - `}function pJ(e,t,n){if(n)return` + `}function CJ(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; - ${Pf(["r","c","d"],e)} + ${Of(["r","c","d"],e)} return ivec3(r, c, d); } -`;let a=qo(["r","c","d"],e);return` +`;let a=Zo(["r","c","d"],e);return` ivec3 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${t[0]}, ${t[1]})); @@ -380,7 +380,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${a} return ivec3(r, c, d); } - `}function cJ(e,t,n){if(n)return` + `}function _J(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 * @@ -421,15 +421,15 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, return ivec${e.length}(${l}); } - `}function dJ(e,t,n){if(n)return` + `}function EJ(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; - ${Pf(["r","c","d","d2"],e)} + ${Of(["r","c","d","d2"],e)} return ivec4(r, c, d, d2); } - `;let a=qo(["r","c","d","d2"],e);return` + `;let a=Zo(["r","c","d","d2"],e);return` ivec4 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${t[0]}, ${t[1]})); @@ -437,7 +437,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${a} return ivec4(r, c, d, d2); } - `}function hJ(e,t){let n=qo(["r","c","d","d2","d3"],e);return` + `}function AJ(e,t){let n=Zo(["r","c","d","d2","d3"],e);return` ivec5 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${t[0]}, ${t[1]})); @@ -449,7 +449,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ivec5 outShape = ivec5(r, c, d, d2, d3); return outShape; } - `}function mJ(e,t){let n=qo(["r","c","d","d2","d3","d4"],e);return` + `}function FJ(e,t){let n=Zo(["r","c","d","d2","d3","d4"],e);return` ivec6 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${t[0]}, ${t[1]})); @@ -460,7 +460,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ivec6 result = ivec6(r, c, d, d2, d3, d4); return result; } - `}function fJ(e,t,n){let a=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];if(v.arraysEqual(e,t))return n?` + `}function $J(e,t,n){let a=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];if(w.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])); @@ -493,7 +493,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, return ivec2(r, c); } - `}function gJ(e,t,n){return v.arraysEqual(e,t)?n?` + `}function DJ(e,t,n){return w.arraysEqual(e,t)?n?` ivec2 getOutputCoords() { return ivec2(resultUV.yx * vec2(outTexShape[0], outTexShape[1])); } @@ -547,15 +547,15 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, int c = index - r * ${e[1]}; return ivec2(r, c); } - `}function jo(e){return`offset${e}`}function bJ(e){let t=e.name,n="get"+t.charAt(0).toUpperCase()+t.slice(1),a=_n();return` + `}function Jo(e){return`offset${e}`}function RJ(e){let t=e.name,n="get"+t.charAt(0).toUpperCase()+t.slice(1),a=_n();return` vec4 ${n}() { return ${a.texture2D}(${t}, halfCR); } - `}function yJ(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 MJ(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=jo(n);if(t)return` + `;let i=Jo(n);if(t)return` float ${a}() { vec2 uv = uvFromFlat(${n}TexShape[0], ${n}TexShape[1], ${i}); return sampleTexture(${n}, uv); @@ -565,7 +565,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2 uv = uvFromFlat(${o}, ${l}, ${i}); return sampleTexture(${n}, uv); } - `}function xJ(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 PJ(e,t){let n=e.name,a="get"+n.charAt(0).toUpperCase()+n.slice(1),r=e.shapeInfo.texShape,s=_n();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( @@ -578,15 +578,15 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${i[0]}, ${i[1]}, index); return ${s.texture2D}(${n}, uv); } - `}function vJ(e,t){let n=e.name,a="get"+n.charAt(0).toUpperCase()+n.slice(1);if(e.shapeInfo.isUniform)return` + `}function OJ(e,t){let n=e.name,a="get"+n.charAt(0).toUpperCase()+n.slice(1);if(e.shapeInfo.isUniform)return` float ${a}(int index) { - ${lp(e)} + ${pp(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=jo(n);return i===1?t?` + `;let o=Jo(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); @@ -616,7 +616,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2 uv = uvFromFlat(${s}, ${i}, index + ${o}); return sampleTexture(${n}, uv); } - `}function wJ(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 LJ(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&&w.arraysEqual(n,s))return t?` vec4 ${r}(int row, int col) { vec2 uv = (vec2(col, row) + halfCR) / vec2(${a}TexShape[1], ${a}TexShape[0]); @@ -640,7 +640,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2 uv = packedUVfrom2D(${p}, ${u[0]}, ${u[1]}, row, col); return ${l.texture2D}(${a}, uv); } - `}function kJ(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 zJ(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&&w.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); @@ -650,17 +650,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(` -`);let c="";i<2&&s>0?c="coords":c=e.shapeInfo.logicalShape.map((g,b)=>`coords.${d[b+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=` + `}function qJ(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=AE(e.shapeInfo.logicalShape,t.logicalShape),l=ct(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,b)=>`coords.${d[b+u]}`).join(", ");let h="return outputValue;",m=w.sizeFromShape(e.shapeInfo.logicalShape)===1,f=w.sizeFromShape(t.logicalShape)===1;if(s===1&&!m&&!f)h=` return vec4(outputValue.xy, outputValue.xy); `;else if(m&&!f)i===1?h=` return vec4(outputValue.x, outputValue.x, 0., 0.); @@ -977,20 +977,20 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec4 outputValue = get${a}(${c}); ${h} } - `}function AJ(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 jJ(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&&w.arraysEqual(i,s))return` float ${r}() { return sampleTexture(${n}, resultUV); } - `;let u=ct(l),p=vE(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=ct(l),p=AE(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 ct(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 W1(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 FJ(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=XZ(r,i,t),l=J_(e.gl,o),u=e.createProgram(l);return G().get("ENGINE_COMPILE_ONLY")?{program:t,fragmentShader:l,source:o,webGLProgram:u,inShapeInfos:s,outShapeInfo:i,variablesLocations:null,customUniformLocations:null,infLoc:null,nanLoc:null,outShapeLocation:null,outShapeStridesLocation:null,outTexShapeLocation:null}:(e.buildVao(u),Object.assign({program:t,fragmentShader:l,source:o,webGLProgram:u,inShapeInfos:s,outShapeInfo:i},IE(e,t,u)))}function IE(e,t,n){let a=[],r=[],s,i,o,l=null,u=null;u=e.getUniformLocation(n,"NAN",!1),G().getNumber("WEBGL_VERSION")===1&&(l=e.getUniformLocation(n,"INFINITY",!1));let p=!1;for(let d of t.variableNames){let c={name:d,uniform:e.getUniformLocation(n,d,p),offset:e.getUniformLocation(n,`offset${d}`,p)};t.enableShapeUniforms&&(c.shape=e.getUniformLocation(n,`${d}Shape`,p),c.texShape=e.getUniformLocation(n,`${d}TexShape`,p)),a.push(c)}if(t.enableShapeUniforms&&(s=e.getUniformLocation(n,"outShape",p),o=e.getUniformLocation(n,"outShapeStrides",p),i=e.getUniformLocation(n,"outTexShape",p)),t.customUniforms)for(let d of t.customUniforms)r.push(e.getUniformLocation(n,d.name,p));return{variablesLocations:a,customUniformLocations:r,infLoc:l,nanLoc:u,outShapeLocation:s,outShapeStridesLocation:o,outTexShapeLocation:i}}function LI(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 $J(e,t,n,a,r){t.program.enableShapeUniforms||(LI(t.inShapeInfos,n),LI([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),e.bindVertexArray(t.webGLProgram.vao),G().getNumber("WEBGL_VERSION")===1&&t.infLoc!==null&&e.gl.uniform1f(t.infLoc,1/0),t.nanLoc!==null&&e.gl.uniform1f(t.nanLoc,NaN);for(let l=0;l{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}=W1(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),b=v.sizeFromShape(i.shape)===1,y=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}_${b}_${y}_${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+`${G().getNumber("WEBGL_VERSION")}`,s}function vn(e){return G().getBool("WEBGL_USE_SHAPES_UNIFORMS")&&e<=4}var RJ=class{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=vc.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];let t=_n();this.outputShape=e,this.enableShapeUniforms=vn(this.outputShape.length),this.userCode=` + `}function ct(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 K1(e,t,n){let{newShape:a,keptDims:r}=w.squeezeShape(t),s=t.length,i=e&&s===3&&t[0]===1,o=i?t.slice(1):a,l=!e&&s>1&&!w.arraysEqual(t,n)&&a.lengthe[n]).join(", ")}function KJ(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=dJ(r,i,t),l=lE(e.gl,o),u=e.createProgram(l);return G().get("ENGINE_COMPILE_ONLY")?{program:t,fragmentShader:l,source:o,webGLProgram:u,inShapeInfos:s,outShapeInfo:i,variablesLocations:null,customUniformLocations:null,infLoc:null,nanLoc:null,outShapeLocation:null,outShapeStridesLocation:null,outTexShapeLocation:null}:(e.buildVao(u),Object.assign({program:t,fragmentShader:l,source:o,webGLProgram:u,inShapeInfos:s,outShapeInfo:i},DE(e,t,u)))}function DE(e,t,n){let a=[],r=[],s,i,o,l=null,u=null;u=e.getUniformLocation(n,"NAN",!1),G().getNumber("WEBGL_VERSION")===1&&(l=e.getUniformLocation(n,"INFINITY",!1));let p=!1;for(let d of t.variableNames){let c={name:d,uniform:e.getUniformLocation(n,d,p),offset:e.getUniformLocation(n,`offset${d}`,p)};t.enableShapeUniforms&&(c.shape=e.getUniformLocation(n,`${d}Shape`,p),c.texShape=e.getUniformLocation(n,`${d}TexShape`,p)),a.push(c)}if(t.enableShapeUniforms&&(s=e.getUniformLocation(n,"outShape",p),o=e.getUniformLocation(n,"outShapeStrides",p),i=e.getUniformLocation(n,"outTexShape",p)),t.customUniforms)for(let d of t.customUniforms)r.push(e.getUniformLocation(n,d.name,p));return{variablesLocations:a,customUniformLocations:r,infLoc:l,nanLoc:u,outShapeLocation:s,outShapeStridesLocation:o,outTexShapeLocation:i}}function jI(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(!w.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(!w.arraysEqual(o,l))throw Error(`Binary was compiled with different texture shapes than the current args. Shape ${o} and ${l} must match`)})}function XJ(e,t,n,a,r){t.program.enableShapeUniforms||(jI(t.inShapeInfos,n),jI([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),e.bindVertexArray(t.webGLProgram.vao),G().getNumber("WEBGL_VERSION")===1&&t.infLoc!==null&&e.gl.uniform1f(t.infLoc,1/0),t.nanLoc!==null&&e.gl.uniform1f(t.nanLoc,NaN);for(let l=0;l{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}=K1(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=w.computeStrides(p);m=`${I[0]===l[1]}_${I[I.length-1]===l[1]}`}let f=i.shape.length,g=p.length===2&&w.arraysEqual(i.shape,l),b=w.sizeFromShape(i.shape)===1,y=N.getBroadcastDims(i.shape,n.shape),x=!e.packedInputs&&f===n.shape.length&&w.arraysEqual(l,n.texData.texShape),v=e.packedInputs||p.length>2?"":`${l[0]>1}_${l[1]>1}`;a+=`${f}_${x}_${u?d:""}_${p.length}_${b}_${y}_${g}_${c}_${h}_${m}_${v}_${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+`${G().getNumber("WEBGL_VERSION")}`,s}function vn(e){return G().getBool("WEBGL_USE_SHAPES_UNIFORMS")&&e<=4}var ZJ=class{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=Ic.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];let t=_n();this.outputShape=e,this.enableShapeUniforms=vn(this.outputShape.length),this.userCode=` ivec3 outCoordsFromFlatIndex(int index) { - ${this.enableShapeUniforms?Pf(["r","c","d"],e):qo(["r","c","d"],e)} + ${this.enableShapeUniforms?Of(["r","c","d"],e):Zo(["r","c","d"],e)} return ivec3(r, c, d); } @@ -1008,9 +1008,9 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${t.output} = result; } - `}},MJ=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=vc.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];let t=_n();this.outputShape=e,this.enableShapeUniforms=vn(this.outputShape.length),this.userCode=` + `}},JJ=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=Ic.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];let t=_n();this.outputShape=e,this.enableShapeUniforms=vn(this.outputShape.length),this.userCode=` ivec3 outCoordsFromFlatIndex(int index) { - ${this.enableShapeUniforms?Pf(["r","c","d"],e):qo(["r","c","d"],e)} + ${this.enableShapeUniforms?Of(["r","c","d"],e):Zo(["r","c","d"],e)} return ivec3(r, c, d); } @@ -1028,26 +1028,26 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${t.output} = result; } - `}},PJ=class{constructor(e){this.variableNames=["A"],this.outTexUsage=da.DOWNLOAD;let t=_n();this.outputShape=e,this.userCode=` - ${xE} + `}},QJ=class{constructor(e){this.variableNames=["A"],this.outTexUsage=da.DOWNLOAD;let t=_n();this.outputShape=e,this.userCode=` + ${EE} void main() { float x = getAAtOutCoords(); ${t.output} = encode_float(x); } - `}},OJ=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=da.DOWNLOAD;let t=_n();this.outputShape=e,this.userCode=` - ${xE} + `}},e9=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=da.DOWNLOAD;let t=_n();this.outputShape=e,this.userCode=` + ${EE} void main() { ivec3 coords = getOutputCoords(); float x = getChannel(getAAtOutCoords(), vec2(coords.y, coords.z)); ${t.output} = encode_float(x); } - `}},LJ={R:0,G:1,B:2,A:3},zI=class{constructor(e,t=!1,n="RGBA"){this.variableNames=["A"],this.customUniforms=[{name:"texShape",type:"ivec2"}];let a=_n();this.outputShape=e,this.enableShapeUniforms=vn(this.outputShape.length);let r="result";t&&(r="floor(result * 255. + 0.5)");let s="";for(let i=0;iDE,createBufferFromOutputTexture:()=>PE,createFloat16MatrixTexture:()=>EE,createFloat16PackedMatrixTexture:()=>$E,createFloat32MatrixTexture:()=>_E,createIndexBuffer:()=>CE,createPackedMatrixTexture:()=>FE,createUnsignedBytesMatrixTexture:()=>AE,createVertexBuffer:()=>TE,createVertexShader:()=>NE,downloadByteEncodedFloatMatrixFromOutputTexture:()=>LE,downloadFloat32MatrixFromBuffer:()=>OE,downloadMatrixFromPackedOutputTexture:()=>WE,downloadPackedMatrixFromBuffer:()=>zE,getInternalFormatForFloat16MatrixTexture:()=>V1,getInternalFormatForFloat16PackedMatrixTexture:()=>H1,getInternalFormatForFloat32MatrixTexture:()=>B1,getInternalFormatForPackedMatrixTexture:()=>G1,getInternalFormatForUnsignedBytesMatrixTexture:()=>U1,uploadDenseMatrixToTexture:()=>RE,uploadPixelDataToTexture:()=>ME});function NE(e){let t=_n(),n=`${t.version} + `}},RE={};Ee(RE,{bindVertexProgramAttributeStreams:()=>UE,createBufferFromOutputTexture:()=>qE,createFloat16MatrixTexture:()=>zE,createFloat16PackedMatrixTexture:()=>VE,createFloat32MatrixTexture:()=>LE,createIndexBuffer:()=>OE,createPackedMatrixTexture:()=>BE,createUnsignedBytesMatrixTexture:()=>WE,createVertexBuffer:()=>PE,createVertexShader:()=>ME,downloadByteEncodedFloatMatrixFromOutputTexture:()=>KE,downloadFloat32MatrixFromBuffer:()=>jE,downloadMatrixFromPackedOutputTexture:()=>YE,downloadPackedMatrixFromBuffer:()=>XE,getInternalFormatForFloat16MatrixTexture:()=>Y1,getInternalFormatForFloat16PackedMatrixTexture:()=>Q1,getInternalFormatForFloat32MatrixTexture:()=>X1,getInternalFormatForPackedMatrixTexture:()=>J1,getInternalFormatForUnsignedBytesMatrixTexture:()=>Z1,uploadDenseMatrixToTexture:()=>GE,uploadPixelDataToTexture:()=>HE});function ME(e){let t=_n(),n=`${t.version} precision highp float; ${t.attribute} vec3 clipSpacePos; ${t.attribute} vec2 uv; @@ -1119,7 +1119,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, void main() { gl_Position = vec4(clipSpacePos, 1); resultUV = uv; - }`;return Z_(e,n)}function TE(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 tE(e,t)}function CE(e){let t=new Uint16Array([0,1,2,2,1,3]);return nE(e,t)}function Sd(e,t,n,a,r,s){rE(t,n);let i=aE(e),o=e.TEXTURE_2D;return de(e,()=>e.bindTexture(o,i)),de(e,()=>e.texParameteri(o,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE)),de(e,()=>e.texParameteri(o,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),de(e,()=>e.texParameteri(o,e.TEXTURE_MIN_FILTER,e.NEAREST)),de(e,()=>e.texParameteri(o,e.TEXTURE_MAG_FILTER,e.NEAREST)),G().getNumber("WEBGL_VERSION")===1?de(e,()=>e.texImage2D(o,0,a,t,n,0,r,s,null)):de(e,()=>e.texStorage2D(o,1,a,t,n)),de(e,()=>e.bindTexture(e.TEXTURE_2D,null)),{texture:i,texShape:[n,t]}}function B1(e){return e.internalFormatFloat}function _E(e,t,n,a){let[r,s]=Id(t,n);return Sd(e,r,s,B1(a),a.textureFormatFloat,e.FLOAT)}function V1(e){return e.internalFormatHalfFloat}function EE(e,t,n,a){let[r,s]=Id(t,n);return Sd(e,r,s,V1(a),a.textureFormatFloat,a.textureTypeHalfFloat)}function U1(e){return e.downloadTextureFormat}function AE(e,t,n,a){let[r,s]=Id(t,n);return Sd(e,r,s,U1(a),e.RGBA,e.UNSIGNED_BYTE)}function G1(e){return e.internalFormatPackedFloat}function FE(e,t,n,a){let[r,s]=sp(t,n);return Sd(e,r,s,G1(a),e.RGBA,e.FLOAT)}function H1(e){return e.internalFormatPackedHalfFloat}function $E(e,t,n,a){let[r,s]=sp(t,n);return Sd(e,r,s,H1(a),e.RGBA,a.textureTypeHalfFloat)}function DE(e,t,n){return de(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),Yx(e,t,"clipSpacePos",n,3,20,0)&&Yx(e,t,"uv",n,2,20,12)}function RE(e,t,n,a,r,s){de(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),G().getNumber("WEBGL_VERSION")===2?de(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,n,a,e.RGBA,o,i)):de(e,()=>e.texImage2D(e.TEXTURE_2D,0,l,n,a,0,e.RGBA,o,i)),de(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function ME(e,t,n){de(e,()=>e.bindTexture(e.TEXTURE_2D,t)),n.data instanceof Uint8Array?G().getNumber("WEBGL_VERSION")===2?de(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,n.width,n.height,e.RGBA,e.UNSIGNED_BYTE,n.data)):de(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,n.width,n.height,0,e.RGBA,e.UNSIGNED_BYTE,n.data)):G().getNumber("WEBGL_VERSION")===2?de(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,e.RGBA,e.UNSIGNED_BYTE,n)):de(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,n)),de(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function PE(e,t,n,a){let r=e.createBuffer();de(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,r));let s=4*4*t*n;return de(e,()=>e.bufferData(e.PIXEL_PACK_BUFFER,s,e.STREAM_READ)),de(e,()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,0)),de(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,null)),r}function OE(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 LE(e,t,n,a){let[r,s]=Id(t,n),i=4,o=new Uint8Array(MZ(t*n,i));return de(e,()=>e.readPixels(0,0,r,s,a.downloadTextureFormat,e.UNSIGNED_BYTE,o)),new Float32Array(o.buffer)}function zE(e,t,n,a,r,s,i,o){let l=e,u=new Float32Array(PZ(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 WE(e,t,n){let a=new Float32Array(t*n*4);return de(e,()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,a)),a}var Mh=class{constructor(e){this.outputTexture=null,this.program=null,this.disposed=!1,this.itemsToPoll=[];let t=G().getNumber("WEBGL_VERSION");if(e!=null?(this.gl=e,K_(t,e)):this.gl=Ka(t),e=this.gl,G().getNumber("WEBGL_VERSION")===2){let r=e;this.createVertexArray=()=>de(r,()=>r.createVertexArray()),this.bindVertexArray=s=>de(r,()=>r.bindVertexArray(s)),this.deleteVertexArray=s=>de(r,()=>r.deleteVertexArray(s)),this.getVertexArray=()=>de(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=()=>de(e,()=>r.createVertexArrayOES()),this.bindVertexArray=s=>de(e,()=>r.bindVertexArrayOES(s)),this.deleteVertexArray=s=>de(e,()=>r.deleteVertexArrayOES(s)),this.getVertexArray=()=>de(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"),G().getNumber("WEBGL_VERSION")===1){let r="OES_texture_float",s="OES_texture_half_float";if(this.textureFloatExtension=Qp(this.gl,r),ha(this.gl,s))this.textureHalfFloatExtension=Qp(this.gl,s);else if(G().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),ha(this.gl,a))this.colorBufferHalfFloatExtension=Qp(this.gl,a);else if(G().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",ha(this.gl,n))this.colorBufferFloatExtension=this.gl.getExtension(n);else if(ha(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=CE(this.gl),this.framebuffer=sE(this.gl),this.textureConfig=P1(this.gl,this.textureHalfFloatExtension)}get debug(){return G().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;de(e,()=>e.finish()),de(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),de(e,()=>e.deleteFramebuffer(this.framebuffer)),de(e,()=>e.bindBuffer(e.ARRAY_BUFFER,null)),de(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null)),de(e,()=>e.deleteBuffer(this.indexBuffer)),this.disposed=!0}createFloat32MatrixTexture(e,t){return this.throwIfDisposed(),_E(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(),AE(this.gl,e,t,this.textureConfig)}uploadPixelDataToTexture(e,t){this.throwIfDisposed(),ME(this.gl,e,t)}uploadDenseMatrixToTexture(e,t,n,a){this.throwIfDisposed(),RE(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(),FE(this.gl,e,t,this.textureConfig)}deleteMatrixTexture(e){this.throwIfDisposed(),this.outputTexture===e&&(Zx(this.gl,this.framebuffer),this.outputTexture=null),de(this.gl,()=>this.gl.deleteTexture(e))}downloadByteEncodedFloatMatrixFromOutputTexture(e,t,n){return this.downloadMatrixDriver(e,()=>LE(this.gl,t,n,this.textureConfig))}downloadPackedMatrixFromBuffer(e,t,n,a,r,s){return zE(this.gl,e,t,n,a,r,s,this.textureConfig)}downloadFloat32MatrixFromBuffer(e,t){return OE(this.gl,e,t)}createBufferFromTexture(e,t,n){this.bindTextureToFrameBuffer(e);let a=PE(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(G().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 G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(t=this.beginQuery(),this.endQuery(),n=()=>this.isQueryAvailable(t,G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))):n=()=>!0;return{query:t,isFencePassed:n}}downloadMatrixFromPackedTexture(e,t,n){return this.downloadMatrixDriver(e,()=>WE(this.gl,t,n))}createProgram(e){this.throwIfDisposed();let t=this.gl;this.vertexShader==null&&(this.vertexShader=NE(t));let n=Q_(t);de(t,()=>t.attachShader(n,this.vertexShader)),de(t,()=>t.attachShader(n,e)),eE(t,n);let a=Object.assign(n,{vao:this.createVertexArray()});return this.debug&&Fh(t,a),a}buildVao(e){this.setProgram(e),this.bindVertexArray(e.vao);let t=this.gl;de(t,()=>t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer)),DE(t,e,this.vertexBuffer)}deleteProgram(e){this.throwIfDisposed(),e===this.program&&(this.program=null),e!=null&&(de(this.gl,()=>this.gl.deleteProgram(e)),this.deleteVertexArray(e.vao))}setProgram(e){this.throwIfDisposed(),this.program=e,this.program!=null&&this.debug&&Fh(this.gl,this.program),de(this.gl,()=>this.gl.useProgram(e))}getUniformLocation(e,t,n=!0){return this.throwIfDisposed(),n?oE(this.gl,e,t):lE(this.gl,e,t)}getAttributeLocation(e,t){return this.throwIfDisposed(),de(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(),uE(this.gl,e,t,n)}setOutputMatrixTexture(e,t,n){this.setOutputMatrixTextureDriver(e,n,t)}setOutputPackedMatrixTexture(e,t,n){this.throwIfDisposed();let[a,r]=sp(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&&Fh(this.gl,this.program),ec(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()}de(e,()=>e.drawElements(e.TRIANGLES,6,e.UNSIGNED_SHORT,0))}blockUntilAllProgramsCompleted(){this.throwIfDisposed(),de(this.gl,()=>this.gl.finish())}getQueryTimerExtension(){return this.disjointQueryTimerExtension==null&&(this.disjointQueryTimerExtension=Qp(this.gl,G().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(G().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(G().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,G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))),this.getQueryTime(e,G().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=WJ(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 G().platform&&(n=G().platform.setTimeoutCustom.bind(G().platform)),v.repeatedTry(()=>(this.pollItems(),this.itemsToPoll.length===0),()=>0,null,n)}bindTextureToFrameBuffer(e){this.throwIfDisposed(),$h(this.gl,e,this.framebuffer),this.debug&&ec(this.gl)}unbindTextureToFrameBuffer(){this.outputTexture!=null?($h(this.gl,this.outputTexture,this.framebuffer),this.debug&&ec(this.gl)):Zx(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;$h(a,e,this.framebuffer),this.debug&&ec(a),this.outputTexture=e,de(a,()=>a.viewport(0,0,t,n)),de(a,()=>a.scissor(0,0,t,n))}setOutputMatrixWriteRegionDriver(e,t,n,a){this.throwIfDisposed(),de(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 WJ(e){let t=0;for(;t`${e}.${n}`)}function In(e,t){return t===1?[e]:GE(e,t)}function F9(e,t){if(e===1)return"rc";let n="";for(let a=0;ae.bindTexture(o,i)),de(e,()=>e.texParameteri(o,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE)),de(e,()=>e.texParameteri(o,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),de(e,()=>e.texParameteri(o,e.TEXTURE_MIN_FILTER,e.NEAREST)),de(e,()=>e.texParameteri(o,e.TEXTURE_MAG_FILTER,e.NEAREST)),G().getNumber("WEBGL_VERSION")===1?de(e,()=>e.texImage2D(o,0,a,t,n,0,r,s,null)):de(e,()=>e.texStorage2D(o,1,a,t,n)),de(e,()=>e.bindTexture(e.TEXTURE_2D,null)),{texture:i,texShape:[n,t]}}function X1(e){return e.internalFormatFloat}function LE(e,t,n,a){let[r,s]=Ed(t,n);return Ad(e,r,s,X1(a),a.textureFormatFloat,e.FLOAT)}function Y1(e){return e.internalFormatHalfFloat}function zE(e,t,n,a){let[r,s]=Ed(t,n);return Ad(e,r,s,Y1(a),a.textureFormatFloat,a.textureTypeHalfFloat)}function Z1(e){return e.downloadTextureFormat}function WE(e,t,n,a){let[r,s]=Ed(t,n);return Ad(e,r,s,Z1(a),e.RGBA,e.UNSIGNED_BYTE)}function J1(e){return e.internalFormatPackedFloat}function BE(e,t,n,a){let[r,s]=op(t,n);return Ad(e,r,s,J1(a),e.RGBA,e.FLOAT)}function Q1(e){return e.internalFormatPackedHalfFloat}function VE(e,t,n,a){let[r,s]=op(t,n);return Ad(e,r,s,Q1(a),e.RGBA,a.textureTypeHalfFloat)}function UE(e,t,n){return de(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),rv(e,t,"clipSpacePos",n,3,20,0)&&rv(e,t,"uv",n,2,20,12)}function GE(e,t,n,a,r,s){de(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),G().getNumber("WEBGL_VERSION")===2?de(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,n,a,e.RGBA,o,i)):de(e,()=>e.texImage2D(e.TEXTURE_2D,0,l,n,a,0,e.RGBA,o,i)),de(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function HE(e,t,n){de(e,()=>e.bindTexture(e.TEXTURE_2D,t)),n.data instanceof Uint8Array?G().getNumber("WEBGL_VERSION")===2?de(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,n.width,n.height,e.RGBA,e.UNSIGNED_BYTE,n.data)):de(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,n.width,n.height,0,e.RGBA,e.UNSIGNED_BYTE,n.data)):G().getNumber("WEBGL_VERSION")===2?de(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,e.RGBA,e.UNSIGNED_BYTE,n)):de(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,n)),de(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function qE(e,t,n,a){let r=e.createBuffer();de(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,r));let s=4*4*t*n;return de(e,()=>e.bufferData(e.PIXEL_PACK_BUFFER,s,e.STREAM_READ)),de(e,()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,0)),de(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,null)),r}function jE(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 KE(e,t,n,a){let[r,s]=Ed(t,n),i=4,o=new Uint8Array(JZ(t*n,i));return de(e,()=>e.readPixels(0,0,r,s,a.downloadTextureFormat,e.UNSIGNED_BYTE,o)),new Float32Array(o.buffer)}function XE(e,t,n,a,r,s,i,o){let l=e,u=new Float32Array(QZ(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 YE(e,t,n){let a=new Float32Array(t*n*4);return de(e,()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,a)),a}var Wh=class{constructor(e){this.outputTexture=null,this.program=null,this.disposed=!1,this.itemsToPoll=[];let t=G().getNumber("WEBGL_VERSION");if(e!=null?(this.gl=e,rE(t,e)):this.gl=Ka(t),e=this.gl,G().getNumber("WEBGL_VERSION")===2){let r=e;this.createVertexArray=()=>de(r,()=>r.createVertexArray()),this.bindVertexArray=s=>de(r,()=>r.bindVertexArray(s)),this.deleteVertexArray=s=>de(r,()=>r.deleteVertexArray(s)),this.getVertexArray=()=>de(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=()=>de(e,()=>r.createVertexArrayOES()),this.bindVertexArray=s=>de(e,()=>r.bindVertexArrayOES(s)),this.deleteVertexArray=s=>de(e,()=>r.deleteVertexArrayOES(s)),this.getVertexArray=()=>de(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"),G().getNumber("WEBGL_VERSION")===1){let r="OES_texture_float",s="OES_texture_half_float";if(this.textureFloatExtension=nc(this.gl,r),ha(this.gl,s))this.textureHalfFloatExtension=nc(this.gl,s);else if(G().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),ha(this.gl,a))this.colorBufferHalfFloatExtension=nc(this.gl,a);else if(G().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",ha(this.gl,n))this.colorBufferFloatExtension=this.gl.getExtension(n);else if(ha(this.gl,a))this.colorBufferHalfFloatExtension=this.gl.getExtension(a);else throw new Error("GL context does not support color renderable floats");this.vertexBuffer=PE(this.gl),this.indexBuffer=OE(this.gl),this.framebuffer=fE(this.gl),this.textureConfig=G1(this.gl,this.textureHalfFloatExtension)}get debug(){return G().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;de(e,()=>e.finish()),de(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),de(e,()=>e.deleteFramebuffer(this.framebuffer)),de(e,()=>e.bindBuffer(e.ARRAY_BUFFER,null)),de(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null)),de(e,()=>e.deleteBuffer(this.indexBuffer)),this.disposed=!0}createFloat32MatrixTexture(e,t){return this.throwIfDisposed(),LE(this.gl,e,t,this.textureConfig)}createFloat16MatrixTexture(e,t){return this.throwIfDisposed(),zE(this.gl,e,t,this.textureConfig)}createUnsignedBytesMatrixTexture(e,t){return this.throwIfDisposed(),WE(this.gl,e,t,this.textureConfig)}uploadPixelDataToTexture(e,t){this.throwIfDisposed(),HE(this.gl,e,t)}uploadDenseMatrixToTexture(e,t,n,a){this.throwIfDisposed(),GE(this.gl,e,t,n,a,this.textureConfig)}createFloat16PackedMatrixTexture(e,t){return this.throwIfDisposed(),VE(this.gl,e,t,this.textureConfig)}createPackedMatrixTexture(e,t){return this.throwIfDisposed(),BE(this.gl,e,t,this.textureConfig)}deleteMatrixTexture(e){this.throwIfDisposed(),this.outputTexture===e&&(sv(this.gl,this.framebuffer),this.outputTexture=null),de(this.gl,()=>this.gl.deleteTexture(e))}downloadByteEncodedFloatMatrixFromOutputTexture(e,t,n){return this.downloadMatrixDriver(e,()=>KE(this.gl,t,n,this.textureConfig))}downloadPackedMatrixFromBuffer(e,t,n,a,r,s){return XE(this.gl,e,t,n,a,r,s,this.textureConfig)}downloadFloat32MatrixFromBuffer(e,t){return jE(this.gl,e,t)}createBufferFromTexture(e,t,n){this.bindTextureToFrameBuffer(e);let a=qE(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(G().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 G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(t=this.beginQuery(),this.endQuery(),n=()=>this.isQueryAvailable(t,G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))):n=()=>!0;return{query:t,isFencePassed:n}}downloadMatrixFromPackedTexture(e,t,n){return this.downloadMatrixDriver(e,()=>YE(this.gl,t,n))}createProgram(e){this.throwIfDisposed();let t=this.gl;this.vertexShader==null&&(this.vertexShader=ME(t));let n=uE(t);de(t,()=>t.attachShader(n,this.vertexShader)),de(t,()=>t.attachShader(n,e)),pE(t,n);let a=Object.assign(n,{vao:this.createVertexArray()});return this.debug&&Ph(t,a),a}buildVao(e){this.setProgram(e),this.bindVertexArray(e.vao);let t=this.gl;de(t,()=>t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer)),UE(t,e,this.vertexBuffer)}deleteProgram(e){this.throwIfDisposed(),e===this.program&&(this.program=null),e!=null&&(de(this.gl,()=>this.gl.deleteProgram(e)),this.deleteVertexArray(e.vao))}setProgram(e){this.throwIfDisposed(),this.program=e,this.program!=null&&this.debug&&Ph(this.gl,this.program),de(this.gl,()=>this.gl.useProgram(e))}getUniformLocation(e,t,n=!0){return this.throwIfDisposed(),n?bE(this.gl,e,t):yE(this.gl,e,t)}getAttributeLocation(e,t){return this.throwIfDisposed(),de(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(),xE(this.gl,e,t,n)}setOutputMatrixTexture(e,t,n){this.setOutputMatrixTextureDriver(e,n,t)}setOutputPackedMatrixTexture(e,t,n){this.throwIfDisposed();let[a,r]=op(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&&Ph(this.gl,this.program),ac(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()}de(e,()=>e.drawElements(e.TRIANGLES,6,e.UNSIGNED_SHORT,0))}blockUntilAllProgramsCompleted(){this.throwIfDisposed(),de(this.gl,()=>this.gl.finish())}getQueryTimerExtension(){return this.disjointQueryTimerExtension==null&&(this.disjointQueryTimerExtension=nc(this.gl,G().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(G().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(G().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 w.repeatedTry(()=>this.disposed||this.isQueryAvailable(e,G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))),this.getQueryTime(e,G().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=a9(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 G().platform&&(n=G().platform.setTimeoutCustom.bind(G().platform)),w.repeatedTry(()=>(this.pollItems(),this.itemsToPoll.length===0),()=>0,null,n)}bindTextureToFrameBuffer(e){this.throwIfDisposed(),Oh(this.gl,e,this.framebuffer),this.debug&&ac(this.gl)}unbindTextureToFrameBuffer(){this.outputTexture!=null?(Oh(this.gl,this.outputTexture,this.framebuffer),this.debug&&ac(this.gl)):sv(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&&ac(a),this.outputTexture=e,de(a,()=>a.viewport(0,0,t,n)),de(a,()=>a.scissor(0,0,t,n))}setOutputMatrixWriteRegionDriver(e,t,n,a){this.throwIfDisposed(),de(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 a9(e){let t=0;for(;t`${e}.${n}`)}function In(e,t){return t===1?[e]:eA(e,t)}function X9(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]})`}},HE=class{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"inputShape",type:"ivec3"}],this.outputShape=e,this.enableShapeUniforms=vn(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]})`}},tA=class{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"inputShape",type:"ivec3"}],this.outputShape=e,this.enableShapeUniforms=vn(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); @@ -1158,8 +1158,8 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, getChannel(getA(inputRC.x, inputRC.y, inputRC.z), inputRCInnerDims); ${a>0?"}":""} `}this.userCode=` - ${D9(t,this.enableShapeUniforms)} - ${this.enableShapeUniforms?z1():L1(e)} + ${Z9(t,this.enableShapeUniforms)} + ${this.enableShapeUniforms?j1():q1(e)} void main() { ivec3 rc = getOutputCoords(); @@ -1174,12 +1174,12 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(result); } - `}};function D9(e,t){return` + `}};function Z9(e,t){return` ivec3 inputCoordsFromReshapedOutCoords(int index) { - ${t?KZ(["r","c","d"],"inputShape"):qo(["r","c","d"],e)} + ${t?cJ(["r","c","d"],"inputShape"):Zo(["r","c","d"],e)} return ivec3(r, c, d); } - `}var R9=class{constructor(e){this.gpgpu=e,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0,this.freeTextures={},this.usedTextures={},this.logEnabled=!1}acquireTexture(e,t,n){let a=BI(t,n),r=VI(e,a,n);r in this.freeTextures||(this.freeTextures[r]=[]),r in this.usedTextures||(this.usedTextures[r]=[]);let s=WI(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].pop();return this.usedTextures[r].push(o),o}let i;return a===dn.PACKED_2X2_FLOAT32?i=this.gpgpu.createPackedMatrixTexture(e[0],e[1]):a===dn.PACKED_2X2_FLOAT16?i=this.gpgpu.createFloat16PackedMatrixTexture(e[0],e[1]):a===dn.UNPACKED_FLOAT32?i=this.gpgpu.createFloat32MatrixTexture(e[0],e[1]):a===dn.UNPACKED_FLOAT16?i=this.gpgpu.createFloat16MatrixTexture(e[0],e[1]):a===dn.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=VI(t,r,a);s in this.freeTextures||(this.freeTextures[s]=[]);let i=WI(t,r,this.gpgpu.gl,this.gpgpu.textureConfig,a),o=G().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&&l.indexOf(e);if(u==null||u<0)throw new Error("Cannot release a texture that was never provided by this texture manager");l[u]=l[l.length-1],l.pop(),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 M9(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 WI(e,t,n,a,r){let s=P9(t,a),i;if(r){let[l,u]=sp(e[0],e[1]);i=l*u}else{let[l,u]=Id(e[0],e[1]);i=l*u}let o=M9(n,s);return i*o}function P9(e,t){switch(e){case dn.PACKED_2X2_FLOAT32:return G1(t);case dn.PACKED_2X2_FLOAT16:return H1(t);case dn.UNPACKED_FLOAT32:return B1(t);case dn.UNPACKED_FLOAT16:return V1(t);case dn.PACKED_4X1_UNSIGNED_BYTE:return U1(t);default:throw new Error(`Unknown physical texture type ${e}`)}}function O9(e){return G().getBool("WEBGL_RENDER_FLOAT32_ENABLED")?e?dn.PACKED_2X2_FLOAT32:dn.UNPACKED_FLOAT32:e?dn.PACKED_2X2_FLOAT16:dn.UNPACKED_FLOAT16}function BI(e,t){if(e===da.UPLOAD)return dn.PACKED_2X2_FLOAT32;if(e===da.RENDER||e==null)return O9(t);if(e===da.DOWNLOAD||e===da.PIXELS)return dn.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknown logical texture type ${e}`)}function VI(e,t,n){return`${e[0]}_${e[1]}_${t}_${n}`}var rr=class{constructor(e,t){this.variableNames=["A"],this.outputShape=e,this.enableShapeUniforms=vn(this.outputShape.length),this.userCode=` + `}var J9=class{constructor(e){this.gpgpu=e,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0,this.freeTextures={},this.usedTextures={},this.logEnabled=!1}acquireTexture(e,t,n){let a=YI(t,n),r=ZI(e,a,n);r in this.freeTextures||(this.freeTextures[r]=[]),r in this.usedTextures||(this.usedTextures[r]=[]);let s=XI(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].pop();return this.usedTextures[r].push(o),o}let i;return a===dn.PACKED_2X2_FLOAT32?i=this.gpgpu.createPackedMatrixTexture(e[0],e[1]):a===dn.PACKED_2X2_FLOAT16?i=this.gpgpu.createFloat16PackedMatrixTexture(e[0],e[1]):a===dn.UNPACKED_FLOAT32?i=this.gpgpu.createFloat32MatrixTexture(e[0],e[1]):a===dn.UNPACKED_FLOAT16?i=this.gpgpu.createFloat16MatrixTexture(e[0],e[1]):a===dn.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=YI(n,a),s=ZI(t,r,a);s in this.freeTextures||(this.freeTextures[s]=[]);let i=XI(t,r,this.gpgpu.gl,this.gpgpu.textureConfig,a),o=G().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&&l.indexOf(e);if(u==null||u<0)throw new Error("Cannot release a texture that was never provided by this texture manager");l[u]=l[l.length-1],l.pop(),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 Q9(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 XI(e,t,n,a,r){let s=eQ(t,a),i;if(r){let[l,u]=op(e[0],e[1]);i=l*u}else{let[l,u]=Ed(e[0],e[1]);i=l*u}let o=Q9(n,s);return i*o}function eQ(e,t){switch(e){case dn.PACKED_2X2_FLOAT32:return J1(t);case dn.PACKED_2X2_FLOAT16:return Q1(t);case dn.UNPACKED_FLOAT32:return X1(t);case dn.UNPACKED_FLOAT16:return Y1(t);case dn.PACKED_4X1_UNSIGNED_BYTE:return Z1(t);default:throw new Error(`Unknown physical texture type ${e}`)}}function tQ(e){return G().getBool("WEBGL_RENDER_FLOAT32_ENABLED")?e?dn.PACKED_2X2_FLOAT32:dn.UNPACKED_FLOAT32:e?dn.PACKED_2X2_FLOAT16:dn.UNPACKED_FLOAT16}function YI(e,t){if(e===da.UPLOAD)return dn.PACKED_2X2_FLOAT32;if(e===da.RENDER||e==null)return tQ(t);if(e===da.DOWNLOAD||e===da.PIXELS)return dn.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknown logical texture type ${e}`)}function ZI(e,t,n){return`${e[0]}_${e[1]}_${t}_${n}`}var rr=class{constructor(e,t){this.variableNames=["A"],this.outputShape=e,this.enableShapeUniforms=vn(this.outputShape.length),this.userCode=` float unaryOperation(float x) { ${t} } @@ -1190,11 +1190,11 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(y); } - `}},Ma="if (isnan(x)) return x;",L9="return x;",UI="return abs(x);",z9="return (x >= 0.0) ? x : (exp(x) - 1.0);",W9=Ma+` + `}},Ma="if (isnan(x)) return x;",nQ="return x;",JI="return abs(x);",aQ="return (x >= 0.0) ? x : (exp(x) - 1.0);",rQ=Ma+` return (x < 0.0) ? 0.0 : x; -`,B9=Ma+` +`,sQ=Ma+` return (x < 0.0) ? 0.0 : min(6.0, x); -`,Yr="return x;",V9="return 1.0 / (1.0 + exp(-1.0 * x));",U9="return x;",G9=` +`,Zr="return x;",iQ="return 1.0 / (1.0 + exp(-1.0 * x));",oQ="return x;",lQ=` vec4 result; result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0); @@ -1203,7 +1203,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0); return result; -`,H9=` +`,uQ=` vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -1213,7 +1213,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.a = isNaN.a ? x.a : result.a; return result; -`,q9=` +`,pQ=` vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -1223,7 +1223,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.a = isNaN.a ? x.a : result.a; return result; -`,j9="return 1.0 / (1.0 + exp(-1.0 * x));",ts=class{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.enableShapeUniforms=vn(this.outputShape.length),this.userCode=` +`,cQ="return 1.0 / (1.0 + exp(-1.0 * x));",ns=class{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.enableShapeUniforms=vn(this.outputShape.length),this.userCode=` vec4 unaryOperation(vec4 x) { ${t} } @@ -1234,17 +1234,17 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(y); } - `}},K9=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=e,this.enableShapeUniforms=vn(this.outputShape.length);let t=e.length,n=In("rc",t),a=ct(t),r=F9(t,n),s=n.slice(-2),i=t<=1?"rc":`vec2(${s.join(",")})`;this.userCode=` + `}},dQ=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=e,this.enableShapeUniforms=vn(this.outputShape.length);let t=e.length,n=In("rc",t),a=ct(t),r=X9(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})); } - `}},X9=hr.whereImpl,Y9=1e-7,Z9=1e-4,lx={};function J9(e){return e in lx||(lx[e]={}),lx[e]}var Q9=G().getNumber("CPU_HANDOFF_SIZE_THRESHOLD"),eQ=600;function tQ(){return G().global.screen==null?1024:G().global.screen.height*G().global.screen.width*window.devicePixelRatio*eQ/1024/1024}var Of=class extends Tc{nextDataId(){return Of.nextDataId++}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,!G().getBool("HAS_WEBGL"))throw new Error("WebGL is not supported on this device");let t;if(e!=null){if(e instanceof Mh)t=e;else{let n=Ka(G().getNumber("WEBGL_VERSION"),e);t=new Mh(n)}this.binaryCache={},this.gpgpuCreatedLocally=!1}else{let n=Ka(G().getNumber("WEBGL_VERSION"));t=new Mh(n),this.binaryCache=J9(G().getNumber("WEBGL_VERSION")),this.gpgpuCreatedLocally=!0}this.gpgpu=t,this.canvas=this.gpgpu.gl.canvas,this.textureManager=new R9(this.gpgpu),this.numMBBeforeWarning=tQ(),this.texData=new mm(this,_a())}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=tc(t),u=new zI(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((G().getBool("WEBGL_CHECK_NUMERICAL_PROBLEMS")||G().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:da.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(G().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:da.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 ts(i,Yr):d=new rr(i,Yr);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 ts(a,Yr):h=new rr(a,Yr);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(G().getBool("DEBUG")&&!G().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&G().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"&&G().get("WEBGL_BUFFER_SUPPORTED")){u=this.decode(e);let h=this.texData.get(u.dataId);l=this.gpgpu.createBufferFromTexture(h.texture.texture,...Nh(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;de(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 ts(r,Yr):c=new rr(r,Yr);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 Le(e.shape,e.dtype,n)}catch(n){throw new Error("Failed to decode encoded string bytes into utf-8")}return Le(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(G().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 G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.beginQuery():{startMs:v.now(),endMs:null}}endTimer(e){return G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?(this.gpgpu.endQuery(),e):(e.endMs=v.now(),e)}async getQueryTime(e){if(G().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=Q9){return G().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 K9(e.shape);return this.runWebGLProgram(t,[e],e.dtype)}packTensor(e){let t=new $9(e.shape),n=!0;return this.runWebGLProgram(t,[e],e.dtype,null,n)}packedReshape(e,t){let n=[xi(e.shape),...vi(e.shape)],a={dtype:e.dtype,shape:n,dataId:e.dataId},r=[xi(t),...vi(t)],s=new HE(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=tc(r),o;a?o=new MJ(i):o=new RJ(i);let l=!0,u=[t!=null?t:Nh(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===vc.DENSE){let g=s!=null?s:Nh(e.outputShape);o.texShape=g.map(b=>b*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 b=this.texData.get(g.dataId);if(b.texture==null){if(!e.packedInputs&&v.sizeFromShape(g.shape)<=G().getNumber("WEBGL_SIZE_UPLOAD_UNIFORM"))return{shape:g.shape,texData:null,isUniform:!0,uniformValues:b.values};e.packedInputs&&(b.isPacked=!0,b.shape=g.shape)}if(this.uploadToGPU(g.dataId),!!b.isPacked!=!!e.packedInputs)g=b.isPacked?this.unpackTensor(g):this.packTensor(g),l.push(g),b=this.texData.get(g.dataId);else if(b.isPacked&&!wc(b.shape,g.shape)){let y=g,x=g.shape;g.shape=b.shape,g=this.packedReshape(g,x),l.push(g),b=this.texData.get(g.dataId),y.shape=x}return{shape:g.shape,texData:b,isUniform:!1}});this.uploadToGPU(i.dataId);let p={shape:i.shape,texData:o,isUniform:!1},d=DJ(e,u,p),c=this.getAndSaveBinary(d,()=>FJ(this.gpgpu,e,u,p)),h=this.activeTimers!=null,m;h&&(m=this.startTimer()),G().get("ENGINE_COMPILE_ONLY")||$J(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=G().get("WEBGL_FLUSH_THRESHOLD");if(f>0){let g=v.now();g-this.lastGlFlushTime>f&&(this.gpgpu.gl.flush(),this.lastGlFlushTime=g)}if(!G().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||(G().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(!G().get("WEBGL_RENDER_FLOAT32_ENABLED")){let e=G().getBool("DEBUG");G().set("DEBUG",!1);let t=this.abs(ve(1e-8)).dataSync()[0];if(G().set("DEBUG",e),t>0)return 32}return 16})),this.floatPrecisionValue}epsilon(){return this.floatPrecision()===32?Y9:Z9}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=dE(n,o),t.texShape=p),r!=null){let d=tc(n),c,h=p[1],m=p[0],f=r instanceof Uint8Array||r instanceof Uint8ClampedArray;(o||!f)&&([h,m]=sp(p[0],p[1])),o?c=new zJ(d,f):c=new zI(d,f);let g=f?[m,h]:p,b=this.makeTensorInfo(g,a),y=this.texData.get(b.dataId);f?y.usage=da.PIXELS:y.usage=da.UPLOAD,y.texShape=g,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(b.dataId),h,m,r);let x=[[m,h]],w=!0,I=this.runWebGLProgram(c,[b],a,x,w),T=this.texData.get(I.dataId);t.texShape=T.texShape,t.isPacked=T.isPacked,t.usage=T.usage,G().get("ENGINE_COMPILE_ONLY")?this.disposeData(I.dataId):(t.texture=T.texture,t.values=null,this.texData.delete(I.dataId)),this.disposeIntermediateTensorInfo(b),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=nQ(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 Ow(),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?(O1(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.values(this.binaryCache)){this.gpgpu.buildVao(e.webGLProgram);let{variablesLocations:t,customUniformLocations:n,infLoc:a,nanLoc:r,outShapeLocation:s,outShapeStridesLocation:i,outTexShapeLocation:o}=IE(this.gpgpu,e.program,e.webGLProgram);e.variablesLocations=t,e.customUniformLocations=n,e.infLoc=a,e.nanLoc=r,e.outShapeLocation=s,e.outShapeStridesLocation=i,e.outTexShapeLocation=o}}createTensorFromGPUData(e,t,n){e.channels=e.channels||"RGBA";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)}};Of.nextDataId=0;function nQ(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 Of,2);var rQ={forceHalfFloat:qE},j1=` + `}},hQ=mr.whereImpl,mQ=1e-7,fQ=1e-4,gx={};function gQ(e){return e in gx||(gx[e]={}),gx[e]}var bQ=G().getNumber("CPU_HANDOFF_SIZE_THRESHOLD"),yQ=600;function xQ(){return G().global.screen==null?1024:G().global.screen.height*G().global.screen.width*window.devicePixelRatio*yQ/1024/1024}var Lf=class extends Ec{nextDataId(){return Lf.nextDataId++}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,!G().getBool("HAS_WEBGL"))throw new Error("WebGL is not supported on this device");let t;if(e!=null){if(e instanceof Wh)t=e;else{let n=Ka(G().getNumber("WEBGL_VERSION"),e);t=new Wh(n)}this.binaryCache={},this.gpgpuCreatedLocally=!1}else{let n=Ka(G().getNumber("WEBGL_VERSION"));t=new Wh(n),this.binaryCache=gQ(G().getNumber("WEBGL_VERSION")),this.gpgpuCreatedLocally=!0}this.gpgpu=t,this.canvas=this.gpgpu.gl.canvas,this.textureManager=new J9(this.gpgpu),this.numMBBeforeWarning=xQ(),this.texData=new xm(this,_a())}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=rc(t),u=new KI(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((G().getBool("WEBGL_CHECK_NUMERICAL_PROBLEMS")||G().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:da.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(G().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:da.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 ns(i,Zr):d=new rr(i,Zr);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=w.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+=w.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 ns(a,Zr):h=new rr(a,Zr);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(G().getBool("DEBUG")&&!G().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&G().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"&&G().get("WEBGL_BUFFER_SUPPORTED")){u=this.decode(e);let h=this.texData.get(u.dataId);l=this.gpgpu.createBufferFromTexture(h.texture.texture,...Ah(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=w.sizeFromShape(a);p=this.gpgpu.downloadFloat32MatrixFromBuffer(l,h)}if(u!=null&&this.disposeIntermediateTensorInfo(u),l!=null){let h=this.gpgpu.gl;de(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 ns(r,Zr):c=new rr(r,Zr);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=>w.decodeString(a));return Le(e.shape,e.dtype,n)}catch(n){throw new Error("Failed to decode encoded string bytes into utf-8")}return Le(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=w.flatten(this.activeTimers.map(o=>o.query)).filter(o=>o!=null),s=w.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(G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0){let o=await Promise.all(r);i.kernelMs=w.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 G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.beginQuery():{startMs:w.now(),endMs:null}}endTimer(e){return G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?(this.gpgpu.endQuery(),e):(e.endMs=w.now(),e)}async getQueryTime(e){if(G().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=bQ){return G().getBool("WEBGL_CPU_FORWARD")&&e.every(n=>this.texData.get(n.dataId).texture==null&&w.sizeFromShape(n.shape)0&&w.isString(n[0])){let r=n.map(s=>w.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 dQ(e.shape);return this.runWebGLProgram(t,[e],e.dtype)}packTensor(e){let t=new Y9(e.shape),n=!0;return this.runWebGLProgram(t,[e],e.dtype,null,n)}packedReshape(e,t){let n=[vi(e.shape),...wi(e.shape)],a={dtype:e.dtype,shape:n,dataId:e.dataId},r=[vi(t),...wi(t)],s=new tA(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=w.sizeFromShape(r),c=t[0]*t[1]*4;w.assert(d<=c,()=>"customTexShape is too small. Row * Column * 4 should be equal or larger than the size of the tensor data.")}let i=rc(r),o;a?o=new JJ(i):o=new ZJ(i);let l=!0,u=[t!=null?t:Ah(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===Ic.DENSE){let g=s!=null?s:Ah(e.outputShape);o.texShape=g.map(b=>b*2)}if(e.outTexUsage!=null&&(o.usage=e.outTexUsage),w.sizeFromShape(i.shape)===0)return o.values=w.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 b=this.texData.get(g.dataId);if(b.texture==null){if(!e.packedInputs&&w.sizeFromShape(g.shape)<=G().getNumber("WEBGL_SIZE_UPLOAD_UNIFORM"))return{shape:g.shape,texData:null,isUniform:!0,uniformValues:b.values};e.packedInputs&&(b.isPacked=!0,b.shape=g.shape)}if(this.uploadToGPU(g.dataId),!!b.isPacked!=!!e.packedInputs)g=b.isPacked?this.unpackTensor(g):this.packTensor(g),l.push(g),b=this.texData.get(g.dataId);else if(b.isPacked&&!Sc(b.shape,g.shape)){let y=g,x=g.shape;g.shape=b.shape,g=this.packedReshape(g,x),l.push(g),b=this.texData.get(g.dataId),y.shape=x}return{shape:g.shape,texData:b,isUniform:!1}});this.uploadToGPU(i.dataId);let p={shape:i.shape,texData:o,isUniform:!1},d=YJ(e,u,p),c=this.getAndSaveBinary(d,()=>KJ(this.gpgpu,e,u,p)),h=this.activeTimers!=null,m;h&&(m=this.startTimer()),G().get("ENGINE_COMPILE_ONLY")||XJ(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=G().get("WEBGL_FLUSH_THRESHOLD");if(f>0){let g=w.now();g-this.lastGlFlushTime>f&&(this.gpgpu.gl.flush(),this.lastGlFlushTime=g)}if(!G().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||(G().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(!G().get("WEBGL_RENDER_FLOAT32_ENABLED")){let e=G().getBool("DEBUG");G().set("DEBUG",!1);let t=this.abs(ve(1e-8)).dataSync()[0];if(G().set("DEBUG",e),t>0)return 32}return 16})),this.floatPrecisionValue}epsilon(){return this.floatPrecision()===32?mQ:fQ}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=w.now());let p=t.texShape;if(p==null&&(p=kE(n,o),t.texShape=p),r!=null){let d=rc(n),c,h=p[1],m=p[0],f=r instanceof Uint8Array||r instanceof Uint8ClampedArray;(o||!f)&&([h,m]=op(p[0],p[1])),o?c=new n9(d,f):c=new KI(d,f);let g=f?[m,h]:p,b=this.makeTensorInfo(g,a),y=this.texData.get(b.dataId);f?y.usage=da.PIXELS:y.usage=da.UPLOAD,y.texShape=g,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(b.dataId),h,m,r);let x=[[m,h]],v=!0,I=this.runWebGLProgram(c,[b],a,x,v),T=this.texData.get(I.dataId);t.texShape=T.texShape,t.isPacked=T.isPacked,t.usage=T.usage,G().get("ENGINE_COMPILE_ONLY")?this.disposeData(I.dataId):(t.texture=T.texture,t.values=null,this.texData.delete(I.dataId)),this.disposeIntermediateTensorInfo(b),l&&(this.uploadWaitMs+=w.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=vQ(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]*w.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 Hw(),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?(H1(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.values(this.binaryCache)){this.gpgpu.buildVao(e.webGLProgram);let{variablesLocations:t,customUniformLocations:n,infLoc:a,nanLoc:r,outShapeLocation:s,outShapeStridesLocation:i,outTexShapeLocation:o}=DE(this.gpgpu,e.program,e.webGLProgram);e.variablesLocations=t,e.customUniformLocations=n,e.infLoc=a,e.nanLoc=r,e.outShapeLocation=s,e.outShapeStridesLocation=i,e.outTexShapeLocation=o}}createTensorFromGPUData(e,t,n){e.channels=e.channels||"RGBA";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)}};Lf.nextDataId=0;function vQ(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 Lf,2);var kQ={forceHalfFloat:nA},tk=` if (isnan(a)) return a; if (isnan(b)) return b; -`,Gl=class{constructor(e,t,n){this.variableNames=["A","B"],this.outputShape=N.assertAndGetBroadcastShape(t,n),this.enableShapeUniforms=vn(this.outputShape.length),this.userCode=` +`,ki=class{constructor(e,t,n){this.variableNames=["A","B"],this.outputShape=N.assertAndGetBroadcastShape(t,n),this.enableShapeUniforms=vn(this.outputShape.length),this.userCode=` float binaryOperation(float a, float b) { ${e} } @@ -1254,12 +1254,12 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, float b = getBAtOutCoords(); setOutput(binaryOperation(a, b)); } - `}},Ko=` + `}},Qo=` 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; -`,Nd=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=vn(r);let s="";if(a)if(r===0||v.sizeFromShape(this.outputShape)===1)s=` +`,hp=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=vn(r);let s="";if(a)if(r===0||w.sizeFromShape(this.outputShape)===1)s=` result.y = 0.; result.z = 0.; result.w = 0.; @@ -1303,13 +1303,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 sQ={kernelName:Zi,backendName:"webgl",kernelFunc:aa};function Es(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 iQ={kernelName:xm,backendName:"webgl",kernelFunc:Es},jE="return (a < 0.) ? b * a : a;",KE=` + `}};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 IQ={kernelName:eo,backendName:"webgl",kernelFunc:aa};function As(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 SQ={kernelName:km,backendName:"webgl",kernelFunc:As},aA="return (a < 0.) ? b * a : a;",rA=` vec4 aLessThanZero = vec4(lessThan(a, vec4(0.))); return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a); -`;function oQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{alpha:s}=a,i=n.makeTensorInfo([],"float32",v.createScalarValue(s,"float32")),o=G().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Nd(KE,r.shape,i.shape):new Gl(jE,r.shape,i.shape),l=n.runWebGLProgram(o,[r,i],"float32");return n.disposeIntermediateTensorInfo(i),l}var lQ={kernelName:to,backendName:"webgl",kernelFunc:oQ},XE="return (a < 0.) ? b * a : a;",YE=` +`;function NQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{alpha:s}=a,i=n.makeTensorInfo([],"float32",w.createScalarValue(s,"float32")),o=G().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new hp(rA,r.shape,i.shape):new ki(aA,r.shape,i.shape),l=n.runWebGLProgram(o,[r,i],"float32");return n.disposeIntermediateTensorInfo(i),l}var TQ={kernelName:ro,backendName:"webgl",kernelFunc:NQ},sA="return (a < 0.) ? b * a : a;",iA=` vec4 aLessThanZero = vec4(lessThan(a, vec4(0.))); return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a); -`;function uQ(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t,s=G().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Nd(YE,a.shape,r.shape):new Gl(XE,a.shape,r.shape);return n.runWebGLProgram(s,[a,r],"float32")}var pQ={kernelName:bo,backendName:"webgl",kernelFunc:uQ},cp="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=G().getBool("WEBGL_PACK_UNARY_OPERATIONS")&&t!=null,p;return u?p=new ts(i.shape,t):p=new rr(i.shape,e),o.runWebGLProgram(p,[i],l)}}function mn({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,b]=[[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 Gl(e,l.shape,u.shape);return p.runWebGLProgram(E,[T,C],ga(w.dtype,I.dtype))}),y=Es({inputs:{real:g,imag:b},backend:p});return p.disposeIntermediateTensorInfo(g),p.disposeIntermediateTensorInfo(b),y}let d=s||ga(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,b=l.dtype==="string"?N.fromUint8ToStringArray(f):f,[y,x]=r(l.shape,u.shape,g,b,d),w=p.makeTensorInfo(x,d),I=p.texData.get(w.dataId);return I.values=y,w}let c=G().getBool("WEBGL_PACK_BINARY_OPERATIONS")&&t!=null,h;return c?h=new Nd(t,l.shape,u.shape,n):h=new Gl(e,l.shape,u.shape),p.runWebGLProgram(h,[l,u],d)}}function kc(e,t=!1){if(e==="linear")return t?U9:L9;if(e==="relu")return t?H9:W9;if(e==="elu")return t?G9:z9;if(e==="relu6")return t?q9:B9;if(e==="prelu")return t?YE:XE;if(e==="leakyrelu")return t?KE:jE;if(e==="sigmoid")return t?j9:V9;throw new Error(`Activation ${e} has not been implemented for the WebGL backend.`)}var ZE=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=vn(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 CQ(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t,s=G().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new hp(iA,a.shape,r.shape):new ki(sA,a.shape,r.shape);return n.runWebGLProgram(s,[a,r],"float32")}var _Q={kernelName:wo,backendName:"webgl",kernelFunc:CQ},mp="if (isnan(x)) return x;";function Ze({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=G().getBool("WEBGL_PACK_UNARY_OPERATIONS")&&t!=null,p;return u?p=new ns(i.shape,t):p=new rr(i.shape,e),o.runWebGLProgram(p,[i],l)}}function mn({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,b]=[[m.complexTensorInfos.real,f.complexTensorInfos.real],[m.complexTensorInfos.imag,f.complexTensorInfos.imag]].map(x=>{let[v,I]=x,T={dataId:v.dataId,dtype:v.dtype,shape:l.shape},C={dataId:I.dataId,dtype:I.dtype,shape:u.shape},E=new ki(e,l.shape,u.shape);return p.runWebGLProgram(E,[T,C],ga(v.dtype,I.dtype))}),y=As({inputs:{real:g,imag:b},backend:p});return p.disposeIntermediateTensorInfo(g),p.disposeIntermediateTensorInfo(b),y}let d=s||ga(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,b=l.dtype==="string"?N.fromUint8ToStringArray(f):f,[y,x]=r(l.shape,u.shape,g,b,d),v=p.makeTensorInfo(x,d),I=p.texData.get(v.dataId);return I.values=y,v}let c=G().getBool("WEBGL_PACK_BINARY_OPERATIONS")&&t!=null,h;return c?h=new hp(t,l.shape,u.shape,n):h=new ki(e,l.shape,u.shape),p.runWebGLProgram(h,[l,u],d)}}function Nc(e,t=!1){if(e==="linear")return t?oQ:nQ;if(e==="relu")return t?uQ:rQ;if(e==="elu")return t?lQ:aQ;if(e==="relu6")return t?pQ:sQ;if(e==="prelu")return t?iA:sA;if(e==="leakyrelu")return t?rA:aA;if(e==="sigmoid")return t?cQ:iQ;throw new Error(`Activation ${e} has not been implemented for the WebGL backend.`)}var oA=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=vn(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) { @@ -1348,7 +1348,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(result); } - `}},GI={REAL:"return areal * breal - aimag * bimag;",IMAG:"return areal * bimag + aimag * breal;"},HI=class{constructor(e,t,n){this.variableNames=["AReal","AImag","BReal","BImag"],this.outputShape=N.assertAndGetBroadcastShape(t,n),this.userCode=` + `}},QI={REAL:"return areal * breal - aimag * bimag;",IMAG:"return areal * bimag + aimag * breal;"},eS=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} @@ -1361,7 +1361,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, float bimag = getBImagAtOutCoords(); setOutput(binaryOpComplex(areal, aimag, breal, bimag)); } - `}},qI="return a * b;";function K1(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 HI(GI.REAL,a.shape,r.shape),p=new HI(GI.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=Es({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]=o9(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 G().getBool("WEBGL_PACK_BINARY_OPERATIONS")?i=new Nd(qI,a.shape,r.shape):i=new Gl(qI,a.shape,r.shape),n.runWebGLProgram(i,[a,r],s)}var cQ={kernelName:ho,backendName:"webgl",kernelFunc:K1};function dQ(e,t,n){let a=[xi(e.shape),...vi(e.shape)],r={dtype:e.dtype,shape:a,dataId:e.dataId},s=[xi(t),...vi(t)],i=new HE(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 ce(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&&!wc(r.shape,l)&&!(p.texture!==null&&wc(p.shape,l))?dQ(r,l,i):(i.incRef(r.dataId),{dataId:r.dataId,shape:l,dtype:r.dtype})}var hQ={kernelName:Fu,backendName:"webgl",kernelFunc:ce},jI=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=` + `}},tS="return a * b;";function nk(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 eS(QI.REAL,a.shape,r.shape),p=new eS(QI.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=As({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]=N9(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 G().getBool("WEBGL_PACK_BINARY_OPERATIONS")?i=new hp(tS,a.shape,r.shape):i=new ki(tS,a.shape,r.shape),n.runWebGLProgram(i,[a,r],s)}var EQ={kernelName:bo,backendName:"webgl",kernelFunc:nk};function AQ(e,t,n){let a=[vi(e.shape),...wi(e.shape)],r={dtype:e.dtype,shape:a,dataId:e.dataId},s=[vi(t),...wi(t)],i=new tA(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 ce(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{shape:s}=a,i=n,o=w.sizeFromShape(r.shape),l=w.inferFromImplicitShape(s,o),u=w.sizeFromShape(l);w.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))?AQ(r,l,i):(i.incRef(r.dataId),{dataId:r.dataId,shape:l,dtype:r.dtype})}var FQ={kernelName:Ru,backendName:"webgl",kernelFunc:ce},nS=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 * ${w.isInt(p)?p.toPrecision(2):p}, ones);`}let u="";r%n>0&&(u=` if (inIdx < 0 || inIdx >= ${r}) { return 0.0; } @@ -1414,7 +1414,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, } setOutput(sumValue); } - `}},mQ=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=` + `}},$Q=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"}) { @@ -1506,12 +1506,12 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, } setOutput(${l}); } - `}};function fQ(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 Xo(e,t,n,a){let r=fQ(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=ct(this.rank),r=GE("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=ct(this.rank),r=eA("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?[b,d,h]:[b,h,d],I=a?[y,m,c]:[y,c,m],T=ce({inputs:{x:e},backend:r,attrs:{shape:w}}),C=ce({inputs:{x:t},backend:r,attrs:{shape:I}}),E=[T,C],F=Math.max(b,y),D=n?T.shape[1]:T.shape[2],$=s!=null,S=i!=null,M=l==="leakyrelu",B=l!=null?kc(l,!0):null,U=$||S||M||B!=null,H;if((h===1||m===1)&&D>JE&&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=ce({inputs:{x:K},backend:r,attrs:{shape:[F,D,1]}}),E.push(ae));let te=m===1?2:1,re=Z;ee&&(re=ce({inputs:{x:Z},backend:r,attrs:{shape:[F,1,D]}}),E.push(re));let se=K1({inputs:{a:ae,b:re},backend:r});H=zf({inputs:{x:se},backend:r,attrs:{axis:te,keepDims:!0}}),E.push(se)}else{let K=ga(e.dtype,t.dtype),Z=new ZE(w,I,[F,h,m],n,a,$,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)}H=r.runWebGLProgram(Z,J,K)}let j=ce({inputs:{x:H},backend:r,attrs:{shape:x}});E.push(H);for(let K of E)r.disposeIntermediateTensorInfo(K);return j}function kQ(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 um({a:r,b:s,transposeA:l,transposeB:u,backend:n,bias:i,preluActivationWeights:o,leakyreluAlpha:d,activation:p})}var IQ={kernelName:si,backendName:"webgl",kernelFunc:kQ},KI="return abs(x);";function SQ(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=VE(s.values);return n.makeTensorInfo(a.shape,a.dtype,i)}let r;return G().getBool("WEBGL_PACK_UNARY_OPERATIONS")?r=new ts(a.shape,KI):r=new rr(a.shape,KI),n.runWebGLProgram(r,[a],a.dtype)}var NQ={kernelName:ql,backendName:"webgl",kernelFunc:SQ},TQ=Ma+` + `}};function zf(e,t,n){let a=G().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new PQ(e.shape,t):new RQ(e.shape,t);return n.runWebGLProgram(a,[e],e.dtype)}function OQ(e,t,n,a){let r=t,s=e.shape.length,i=w.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=w.sizeFromShape(c),f=w.sizeFromShape(e.shape)/m,g=ce({inputs:{x:p},attrs:{shape:[f,m]},backend:a}),b=Mm(e.dtype),y=el(g,b,"sum",a),x=ce({inputs:{x:y},attrs:{shape:h},backend:a});return a.disposeIntermediateTensorInfo(g),a.disposeIntermediateTensorInfo(y),u&&a.disposeIntermediateTensorInfo(p),x}function Wf(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;return OQ(r,s,i,n)}var LQ={kernelName:Lo,backendName:"webgl",kernelFunc:Wf};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 v=n?[b,d,h]:[b,h,d],I=a?[y,m,c]:[y,c,m],T=ce({inputs:{x:e},backend:r,attrs:{shape:v}}),C=ce({inputs:{x:t},backend:r,attrs:{shape:I}}),E=[T,C],F=Math.max(b,y),D=n?T.shape[1]:T.shape[2],$=s!=null,S=i!=null,M=l==="leakyrelu",B=l!=null?Nc(l,!0):null,U=$||S||M||B!=null,H;if((h===1||m===1)&&D>lA&&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=ce({inputs:{x:K},backend:r,attrs:{shape:[F,D,1]}}),E.push(ae));let te=m===1?2:1,re=Z;ee&&(re=ce({inputs:{x:Z},backend:r,attrs:{shape:[F,1,D]}}),E.push(re));let ie=nk({inputs:{a:ae,b:re},backend:r});H=Wf({inputs:{x:ie},backend:r,attrs:{axis:te,keepDims:!0}}),E.push(ie)}else{let K=ga(e.dtype,t.dtype),Z=new oA(v,I,[F,h,m],n,a,$,B,S,M),J=[T,C];if(s!=null&&J.push(s),S&&J.push(i),M){let ee=r.makeTensorInfo([],"float32",w.createScalarValue(o,"float32"));J.push(ee),E.push(ee)}H=r.runWebGLProgram(Z,J,K)}let j=ce({inputs:{x:H},backend:r,attrs:{shape:x}});E.push(H);for(let K of E)r.disposeIntermediateTensorInfo(K);return j}function WQ(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 mm({a:r,b:s,transposeA:l,transposeB:u,backend:n,bias:i,preluActivationWeights:o,leakyreluAlpha:d,activation:p})}var BQ={kernelName:ii,backendName:"webgl",kernelFunc:WQ},aS="return abs(x);";function VQ(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=JE(s.values);return n.makeTensorInfo(a.shape,a.dtype,i)}let r;return G().getBool("WEBGL_PACK_UNARY_OPERATIONS")?r=new ns(a.shape,aS):r=new rr(a.shape,aS),n.runWebGLProgram(r,[a],a.dtype)}var UQ={kernelName:Yl,backendName:"webgl",kernelFunc:VQ},GQ=Ma+` if (abs(x) > 1.) { return NAN; } return acos(x); -`,CQ=Ye({opSnippet:TQ}),_Q={kernelName:Ii,backendName:"webgl",kernelFunc:CQ},EQ=Ma+` +`,HQ=Ze({opSnippet:GQ}),qQ={kernelName:Ni,backendName:"webgl",kernelFunc:HQ},jQ=Ma+` if (x < 1.0) return NAN; -return log(x + sqrt(x * x - 1.0));`,AQ=Ye({opSnippet:EQ}),FQ={kernelName:Si,backendName:"webgl",kernelFunc:AQ},XI="return a + b;",$Q=mn({opSnippet:XI,packedOpSnippet:XI,supportsComplex:!0,cpuKernelImpl:BJ}),DQ={kernelName:bs,backendName:"webgl",kernelFunc:$Q},RQ=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));`,KQ=Ze({opSnippet:jQ}),XQ={kernelName:Ti,backendName:"webgl",kernelFunc:KQ},rS="return a + b;",YQ=mn({opSnippet:rS,packedOpSnippet:rS,supportsComplex:!0,cpuKernelImpl:r9}),ZQ={kernelName:ys,backendName:"webgl",kernelFunc:YQ},JQ=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(` `)} @@ -1543,7 +1543,7 @@ return log(x + sqrt(x * x - 1.0));`,AQ=Ye({opSnippet:EQ}),FQ={kernelName:Si,back float result = ${a}; setOutput(result); } - `}},MQ=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=` + `}},QQ=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(` `)} @@ -1551,7 +1551,7 @@ return log(x + sqrt(x * x - 1.0));`,AQ=Ye({opSnippet:EQ}),FQ={kernelName:Si,back vec4 result = ${a}; setOutput(result); } - `}};function Ph(e){let{inputs:t,backend:n}=e,a=t;if(a.length===1)return aa({inputs:{x:a[0]},backend:n});if(a.length>G().get("WEBGL_MAX_TEXTURES_IN_SHADER")){let o=Math.floor(a.length/2),l=Ph({inputs:a.slice(0,o),backend:n}),u=Ph({inputs:a.slice(o),backend:n});return Ph({inputs:[l,u],backend:n})}let r=a.map(o=>o.dtype).reduce((o,l)=>ga(o,l)),s=a.map(o=>o.shape),i=G().getBool("WEBGL_PACK")?new MQ(a[0].shape,s):new RQ(a[0].shape,s);return n.runWebGLProgram(i,a,r)}var PQ={kernelName:Ni,backendName:"webgl",kernelFunc:Ph};function OQ(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=ce({inputs:{x:d},backend:n,attrs:{shape:[-1,m]}}),g=Xo(f,f.dtype,"all",n),b;if(i){let y=N.expandShapeToKeepDim(c,l);b=ce({inputs:{x:g},backend:n,attrs:{shape:y}})}else b=ce({inputs:{x:g},backend:n,attrs:{shape:c}});return n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(g),p!=null&&n.disposeIntermediateTensorInfo(d),b}var LQ={kernelName:jl,backendName:"webgl",kernelFunc:OQ};function zQ(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=ce({inputs:{x:d},backend:n,attrs:{shape:[-1,m]}}),g=Xo(f,f.dtype,"any",n),b;if(i){let y=N.expandShapeToKeepDim(c,l);b=ce({inputs:{x:g},backend:n,attrs:{shape:y}})}else b=ce({inputs:{x:g},backend:n,attrs:{shape:c}});return n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(g),p!=null&&n.disposeIntermediateTensorInfo(d),b}var WQ={kernelName:Kl,backendName:"webgl",kernelFunc:zQ},BQ=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 Bh(e){let{inputs:t,backend:n}=e,a=t;if(a.length===1)return aa({inputs:{x:a[0]},backend:n});if(a.length>G().get("WEBGL_MAX_TEXTURES_IN_SHADER")){let o=Math.floor(a.length/2),l=Bh({inputs:a.slice(0,o),backend:n}),u=Bh({inputs:a.slice(o),backend:n});return Bh({inputs:[l,u],backend:n})}let r=a.map(o=>o.dtype).reduce((o,l)=>ga(o,l)),s=a.map(o=>o.shape),i=G().getBool("WEBGL_PACK")?new QQ(a[0].shape,s):new JQ(a[0].shape,s);return n.runWebGLProgram(i,a,r)}var eee={kernelName:Ci,backendName:"webgl",kernelFunc:Bh};function tee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=r.shape.length,l=w.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=w.sizeFromShape(h),f=ce({inputs:{x:d},backend:n,attrs:{shape:[-1,m]}}),g=el(f,f.dtype,"all",n),b;if(i){let y=N.expandShapeToKeepDim(c,l);b=ce({inputs:{x:g},backend:n,attrs:{shape:y}})}else b=ce({inputs:{x:g},backend:n,attrs:{shape:c}});return n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(g),p!=null&&n.disposeIntermediateTensorInfo(d),b}var nee={kernelName:Zl,backendName:"webgl",kernelFunc:tee};function aee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=r.shape.length,l=w.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=w.sizeFromShape(h),f=ce({inputs:{x:d},backend:n,attrs:{shape:[-1,m]}}),g=el(f,f.dtype,"any",n),b;if(i){let y=N.expandShapeToKeepDim(c,l);b=ce({inputs:{x:g},backend:n,attrs:{shape:y}})}else b=ce({inputs:{x:g},backend:n,attrs:{shape:c}});return n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(g),p!=null&&n.disposeIntermediateTensorInfo(d),b}var ree={kernelName:Jl,backendName:"webgl",kernelFunc:aee},see=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]; @@ -1571,7 +1571,7 @@ return log(x + sqrt(x * x - 1.0));`,AQ=Ye({opSnippet:EQ}),FQ={kernelName:Si,back } setOutput(float(bestIndex)); } - `}},VQ=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=ct(o),u=In("coords",o),p,d;if(s===1){d=o+1;let C=ct(d);p=` + `}},iee=class{constructor(e,t,n,a){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,w.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=ct(o),u=In("coords",o),p,d;if(s===1){d=o+1;let C=ct(d);p=` ${C} sourceLocR = ${C}(${u.join()}, 0); ++${u[o-1]}; ${C} sourceLocG = ${C}(${u.join()}, 0); @@ -1587,7 +1587,7 @@ return log(x + sqrt(x * x - 1.0));`,AQ=Ye({opSnippet:EQ}),FQ={kernelName:Si,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=In("sourceLocR",d-1).concat("inIdx.r"),g=In("sourceLocG",d-1).concat("inIdx.g"),b=In("sourceLocB",d-1).concat("inIdx.b"),y=In("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"),b=In("sourceLocB",d-1).concat("inIdx.b"),y=In("sourceLocA",d-1).concat("inIdx.a"),x=n==="max"?"greaterThan":"lessThan",v=a?"":` inIdx = round(vec4(getBestIndicesAChannel(${f.join()}), getBestIndicesAChannel(${g.join()}), getBestIndicesAChannel(${b.join()}), @@ -1618,7 +1618,7 @@ return log(x + sqrt(x * x - 1.0));`,AQ=Ye({opSnippet:EQ}),FQ={kernelName:Si,back for (int i = 0; i < ${t}; i++) { inIdx = srcIdx; - ${w} + ${v} vec4 candidate = ${I}; bvec4 nan = isnan(candidate); bvec4 replace = bvec4( @@ -1633,25 +1633,25 @@ return log(x + sqrt(x * x - 1.0));`,AQ=Ye({opSnippet:EQ}),FQ={kernelName:Si,back } setOutput(bestIndex); } - `}};function QE(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 BQ(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=QE(e,t,n,p);return e.disposeIntermediateTensorInfo(p),d}function eA(e,t,n,a=null){let r=a!=null?a.shape:t.shape,s=r[r.length-1],i=N.computeOptimalWindowSize(s),o=new VQ(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=eA(e,t,n,u);return e.disposeIntermediateTensorInfo(u),p}return u}function tA(e,t,n,a){let r=[n];if(N.assertAxesAreInnerMostDims("arg"+a.charAt(0).toUpperCase()+a.slice(1),r,t.shape.length),!G().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=ce({inputs:{x:l},backend:e,attrs:{shape:[-1,d]}});s.push(c);let h=QE(e,c,a);s.push(h);let m=ce({inputs:{x:h},backend:e,attrs:{shape:u}});return s.forEach(f=>e.disposeIntermediateTensorInfo(f)),m}return eA(e,t,a)}function UQ(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=tA(n,l,i[0],"max");return u.forEach(d=>n.disposeIntermediateTensorInfo(d)),p}var GQ={kernelName:Xl,backendName:"webgl",kernelFunc:UQ};function HQ(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=tA(n,l,i[0],"min");return u.forEach(d=>n.disposeIntermediateTensorInfo(d)),p}var qQ={kernelName:Yl,backendName:"webgl",kernelFunc:HQ},jQ=Ma+` + `}};function uA(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 see(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=uA(e,t,n,p);return e.disposeIntermediateTensorInfo(p),d}function pA(e,t,n,a=null){let r=a!=null?a.shape:t.shape,s=r[r.length-1],i=N.computeOptimalWindowSize(s),o=new iee(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=pA(e,t,n,u);return e.disposeIntermediateTensorInfo(u),p}return u}function cA(e,t,n,a){let r=[n];if(N.assertAxesAreInnerMostDims("arg"+a.charAt(0).toUpperCase()+a.slice(1),r,t.shape.length),!G().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=w.sizeFromShape(p),c=ce({inputs:{x:l},backend:e,attrs:{shape:[-1,d]}});s.push(c);let h=uA(e,c,a);s.push(h);let m=ce({inputs:{x:h},backend:e,attrs:{shape:u}});return s.forEach(f=>e.disposeIntermediateTensorInfo(f)),m}return pA(e,t,a)}function oee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a,i=w.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=cA(n,l,i[0],"max");return u.forEach(d=>n.disposeIntermediateTensorInfo(d)),p}var lee={kernelName:Ql,backendName:"webgl",kernelFunc:oee};function uee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a,i=w.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=cA(n,l,i[0],"min");return u.forEach(d=>n.disposeIntermediateTensorInfo(d)),p}var pee={kernelName:eu,backendName:"webgl",kernelFunc:uee},cee=Ma+` if (abs(x) > 1.) { return NAN; } return asin(x); -`,KQ=Ye({opSnippet:jQ}),XQ={kernelName:Ti,backendName:"webgl",kernelFunc:KQ},YQ=Ma+"return log(x + sqrt(x * x + 1.0));",ZQ=Ye({opSnippet:YQ}),JQ={kernelName:Ci,backendName:"webgl",kernelFunc:ZQ},QQ=Ma+` +`,dee=Ze({opSnippet:cee}),hee={kernelName:_i,backendName:"webgl",kernelFunc:dee},mee=Ma+"return log(x + sqrt(x * x + 1.0));",fee=Ze({opSnippet:mee}),gee={kernelName:Ei,backendName:"webgl",kernelFunc:fee},bee=Ma+` return atan(x); -`,eee=Ye({opSnippet:QQ}),tee={kernelName:_i,backendName:"webgl",kernelFunc:eee},nee=j1+` +`,yee=Ze({opSnippet:bee}),xee={kernelName:Ai,backendName:"webgl",kernelFunc:yee},vee=tk+` return atan(a, b); -`,aee=` +`,wee=` 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); - `+Ko+` + `+Qo+` return result; -`,ree=mn({opSnippet:nee,packedOpSnippet:aee}),see={kernelName:Ai,backendName:"webgl",kernelFunc:ree},iee=Ma+` +`,kee=mn({opSnippet:vee,packedOpSnippet:wee}),Iee={kernelName:$i,backendName:"webgl",kernelFunc:kee},See=Ma+` if ((x < -1.0) || (x > 1.0)) return NAN; -return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,oee=Ye({opSnippet:iee}),lee={kernelName:Ei,backendName:"webgl",kernelFunc:oee},Ic=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`,b="0.0";if(m||(b="-1.0 / 1e-20"),n){let C=">=";this.userCode=` +return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Nee=Ze({opSnippet:See}),Tee={kernelName:Fi,backendName:"webgl",kernelFunc:Nee},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`,b="0.0";if(m||(b="-1.0 / 1e-20"),n){let C=">=";this.userCode=` const ivec2 strides = ivec2(${i}, ${o}); const ivec2 pads = ivec2(${c}, ${h}); @@ -1702,7 +1702,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,oee=Ye({opSnippet:iee}),lee={kernel } setOutput(float(minMaxPosition)); } - `;return}let y="max",x=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="avg"&&(x="avgValue / max(count, 1.0)");let w=Math.floor(s/4)*4,I=s%4,T=` + `;return}let y="max",x=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="avg"&&(x="avgValue / max(count, 1.0)");let v=Math.floor(s/4)*4,I=s%4,T=` if (${m}) { avgValue += dot(values, ones); } else { @@ -1747,7 +1747,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,oee=Ye({opSnippet:iee}),lee={kernel continue; } - for (int wC = 0; wC < ${w}; wC += 4) { + for (int wC = 0; wC < ${v}; wC += 4) { int xC = xCCorner + wC * ${u}; vec4 values = vec4( @@ -1760,7 +1760,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,oee=Ye({opSnippet:iee}),lee={kernel ${T} } - int xC = xCCorner + ${w}; + int xC = xCCorner + ${v}; if (${I===1}) { vec4 values = vec4( getValue(batch, xR, xC, d), @@ -1792,7 +1792,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,oee=Ye({opSnippet:iee}),lee={kernel } setOutput(${x}); } - `}},X1=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,b=e.padInfo.left;this.outputShape=e.outShape;let y=t==="avg",x="0.0";if(y||(x="-1.0 / 1e-20"),n){let F=">=";this.userCode=` + `}},ak=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,b=e.padInfo.left;this.outputShape=e.outShape;let y=t==="avg",x="0.0";if(y||(x="-1.0 / 1e-20"),n){let F=">=";this.userCode=` const ivec3 strides = ivec3(${i}, ${o}, ${l}); const ivec3 pads = ivec3(${f}, ${g}, ${b}); @@ -1854,11 +1854,11 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,oee=Ye({opSnippet:iee}),lee={kernel } setOutput(float(minMaxPosition)); } - `;return}let w="max",I=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="avg"&&(I="avgValue / max(count, 1.0)");let T=Math.floor(s/4)*4,C=s%4,E=` + `;return}let v="max",I=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="avg"&&(I="avgValue / max(count, 1.0)");let T=Math.floor(s/4)*4,C=s%4,E=` if (${y}) { avgValue += dot(values, ones); } else { - minMaxValue = ${w}(values, minMaxValue); + minMaxValue = ${v}(values, minMaxValue); } `;this.userCode=` const ivec3 strides = @@ -1955,7 +1955,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,oee=Ye({opSnippet:iee}),lee={kernel } setOutput(${I}); } - `}};function uee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;ip(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 Ic(p,"avg",!1);return n.runWebGLProgram(d,[r],"float32")}var pee={kernelName:Fi,backendName:"webgl",kernelFunc:uee};function cee(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 X1(d,"avg",!1);return n.runWebGLProgram(c,[r],"float32")}var dee={kernelName:Zl,backendName:"webgl",kernelFunc:cee},hee=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 Cee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;lp(r,"avgPool");let{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=a,u=1;w.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&&w.arraysEqual(p.inShape,p.outShape))return aa({inputs:{x:r},backend:n});let d=new Tc(p,"avg",!1);return n.runWebGLProgram(d,[r],"float32")}var _ee={kernelName:Di,backendName:"webgl",kernelFunc:Cee};function Eee(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 ak(d,"avg",!1);return n.runWebGLProgram(c,[r],"float32")}var Aee={kernelName:tu,backendName:"webgl",kernelFunc:Eee},Fee=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}); @@ -1997,7 +1997,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,oee=Ye({opSnippet:iee}),lee={kernel } setOutput(dotProd); } - `}},mee=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=` + `}},$ee=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}); @@ -2053,7 +2053,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,oee=Ye({opSnippet:iee}),lee={kernel } setOutput(dotProd); } - `}};function fee(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 mee(c);return n.runWebGLProgram(h,[r],i.dtype)}var gee={kernelName:_c,backendName:"webgl",kernelFunc:fee};function bee(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s;ip([r,s],"avgPoolGrad");let{filterSize:o,strides:l,pad:u}=a,p=N.computePool2DInfo(i.shape,o,l,1,u),d=new hee(p);return n.runWebGLProgram(d,[r],i.dtype)}var yee={kernelName:bm,backendName:"webgl",kernelFunc:bee};function xee(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;return um({a:r,b:s,transposeA:i,transposeB:o,backend:n})}var vee={kernelName:$i,backendName:"webgl",kernelFunc:xee},wee=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 Dee(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 $ee(c);return n.runWebGLProgram(h,[r],i.dtype)}var Ree={kernelName:$c,backendName:"webgl",kernelFunc:Dee};function Mee(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s;lp([r,s],"avgPoolGrad");let{filterSize:o,strides:l,pad:u}=a,p=N.computePool2DInfo(i.shape,o,l,1,u),d=new Fee(p);return n.runWebGLProgram(d,[r],i.dtype)}var Pee={kernelName:Fc,backendName:"webgl",kernelFunc:Mee};function Oee(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;return mm({a:r,b:s,transposeA:i,transposeB:o,backend:n})}var Lee={kernelName:Ri,backendName:"webgl",kernelFunc:Oee},zee=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(); @@ -2063,7 +2063,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,oee=Ye({opSnippet:iee}),lee={kernel float inv = scale * inversesqrt(variance + float(${s})); setOutput(dot(vec3(x, -mean, offset), vec3(inv, inv, 1))); } - `}},kee=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=` + `}},Wee=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}; @@ -2076,7 +2076,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,oee=Ye({opSnippet:iee}),lee={kernel setOutput((x - mean) * inv + offset); } - `}},Iee=({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=G().getBool("WEBGL_PACK_NORMALIZATION")?new kee(a.shape,r.shape,s.shape,p,d,l):new wee(a.shape,r.shape,s.shape,p,d,l);return t.runWebGLProgram(c,u,u[0].dtype)},See={kernelName:Xi,backendName:"webgl",kernelFunc:Iee},Nee=class{constructor(e){this.variableNames=["source"],this.outputShape=e,this.rank=e.length;let t=ct(this.rank);this.customUniforms=[{name:"start",arrayIndex:this.rank,type:"int"}];let n=Tee(this.rank),a,r=e.map((s,i)=>`sourceLoc.${ev[i]} = start[${i}] + coords.${ev[i]};`);a=` + `}},Bee=({inputs:e,backend:t,attrs:n})=>{let{x:a,mean:r,variance:s,offset:i,scale:o}=e;w.assert(r.shape.length===s.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),w.assert(i==null||r.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),w.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=G().getBool("WEBGL_PACK_NORMALIZATION")?new Wee(a.shape,r.shape,s.shape,p,d,l):new zee(a.shape,r.shape,s.shape,p,d,l);return t.runWebGLProgram(c,u,u[0].dtype)},Vee={kernelName:Ji,backendName:"webgl",kernelFunc:Bee},Uee=class{constructor(e){this.variableNames=["source"],this.outputShape=e,this.rank=e.length;let t=ct(this.rank);this.customUniforms=[{name:"start",arrayIndex:this.rank,type:"int"}];let n=Gee(this.rank),a,r=e.map((s,i)=>`sourceLoc.${lv[i]} = start[${i}] + coords.${lv[i]};`);a=` ${t} sourceLoc; ${t} coords = getOutputCoords(); ${r.join(` @@ -2086,7 +2086,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,oee=Ye({opSnippet:iee}),lee={kernel ${a} setOutput(getSource(${n})); } - `}},ev=["x","y","z","w","u","v"];function Tee(e){if(e===1)return"sourceLoc";if(e<=6)return ev.slice(0,e).map(t=>"sourceLoc."+t).join(",");throw Error(`Slicing for rank ${e} is not yet supported`)}var Cee=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=ct(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=` + `}},lv=["x","y","z","w","u","v"];function Gee(e){if(e===1)return"sourceLoc";if(e<=6)return lv.slice(0,e).map(t=>"sourceLoc."+t).join(",");throw Error(`Slicing for rank ${e} is not yet supported`)}var Hee=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=ct(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]}; @@ -2115,7 +2115,15 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,oee=Ye({opSnippet:iee}),lee={kernel ${o} setOutput(result); } - `}};function _ee(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 dp(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=y9(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=G().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new Cee(l):new Nee(l),c=[o];return n.runWebGLProgram(d,[r],r.dtype,c)}return n.uploadToGPU(r.dataId),_ee(r,o,l,n)}var Eee={kernelName:Lu,backendName:"webgl",kernelFunc:dp},Aee=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((y,x)=>y*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=ce({inputs:{x:r},backend:n,attrs:{shape:l}}),f=Sn({inputs:{x:m},backend:n,attrs:{perm:u}}),g=ce({inputs:{x:f},backend:n,attrs:{shape:p}}),b=dp({inputs:{x:g},backend:n,attrs:{begin:d,size:c}});return h.push(m),h.push(f),h.push(g),h.forEach(y=>n.disposeIntermediateTensorInfo(y)),b},Fee={kernelName:Jl,backendName:"webgl",kernelFunc:Aee};function $ee(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=BE(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,u)}var Dee={kernelName:Ql,backendName:"webgl",kernelFunc:$ee};function Ree(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 Mee={kernelName:Ec,backendName:"webgl",kernelFunc:Ree},Pee="return float(a != b);",nA=mn({opSnippet:Pee,cpuKernelImpl:u9,dtype:"bool"}),Oee={kernelName:Nu,backendName:"webgl",kernelFunc:nA};function Td(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 Lee={kernelName:$m,backendName:"webgl",kernelFunc:Td},zee="return float(int(x));";function Wee(e,t){let n=new rr(e.shape,zee),a=t.runWebGLProgram(n,[e],"int32");return{dataId:a.dataId,shape:a.shape,dtype:a.dtype}}function tv(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=Nt(r.shape),o=tv({inputs:{x:r},backend:n,attrs:{dtype:"float32"}}),l=Es({inputs:{real:o,imag:i},backend:n});return i.dispose(),n.disposeIntermediateTensorInfo(o),l}if(r.dtype==="complex64"){let i=Td({inputs:{input:r},backend:n}),o=tv({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]=UJ(i,r.shape,r.dtype,s);return n.makeTensorInfo(o,l,u)}if(s==="int32")return Wee(r,n);if(s==="bool"){let i=n.makeTensorInfo([],"bool",v.getTypedArrayFromDType("bool",1)),o=nA({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 Bee={kernelName:Di,backendName:"webgl",kernelFunc:tv},YI="return ceil(x);",Vee=Ye({opSnippet:YI,packedOpSnippet:YI,cpuKernelImpl:GJ}),Uee={kernelName:Ri,backendName:"webgl",kernelFunc:Vee},Gee=class{constructor(e){this.variableNames=["A"],this.customUniforms=[{name:"minVal",type:"float"},{name:"maxVal",type:"float"}],this.outputShape=e,this.userCode=` + `}};function qee(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=Xt.computeFlatOffset(t,w.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 fp(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,size:i}=a,[o,l]=Xt.parseSliceParams(r,s,i);if(Xt.assertParamsValid(r,o,l),w.sizeFromShape(l)===0)return n.makeTensorInfo(l,r.dtype,[]);if(n.shouldExecuteOnCPU([r])||r.dtype==="string"){let d=n.texData.get(r.dataId),c=P9(d.values,o,l,r.shape,r.dtype);return n.makeTensorInfo(l,r.dtype,c)}let{isPacked:u}=n.texData.get(r.dataId),p=Xt.isSliceContinous(r.shape,o,l);if(u||!p){let d=G().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new Hee(l):new Uee(l),c=[o];return n.runWebGLProgram(d,[r],r.dtype,c)}return n.uploadToGPU(r.dataId),qee(r,o,l,n)}var jee={kernelName:Bu,backendName:"webgl",kernelFunc:fp},Kee=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,crops:i}=a;w.assert(r.shape.length<=4,()=>"batchToSpaceND for rank > 4 with a WebGL backend not implemented yet");let o=s.reduce((y,x)=>y*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=ce({inputs:{x:r},backend:n,attrs:{shape:l}}),f=Sn({inputs:{x:m},backend:n,attrs:{perm:u}}),g=ce({inputs:{x:f},backend:n,attrs:{shape:p}}),b=fp({inputs:{x:g},backend:n,attrs:{begin:d,size:c}});return h.push(m),h.push(f),h.push(g),h.forEach(y=>n.disposeIntermediateTensorInfo(y)),b},Xee={kernelName:nu,backendName:"webgl",kernelFunc:Kee};function Yee(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=ZE(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,u)}var Zee={kernelName:au,backendName:"webgl",kernelFunc:Yee},Jee=` + int r = int(a.r) & int(b.r); + int g = int(a.g) & int(b.g); + int rb = int(a.b) & int(b.b); + int ra = int(a.a) & int(b.a); + return vec4(r, g, rb, ra); +`,Qee=` + return float(int(a.r) & int(b.r)); +`;function ete(e){let{inputs:t,backend:n}=e,{a,b:r}=t,s=G().getBool("WEBGL_PACK_BINARY_OPERATIONS"),i=G().getNumber("WEBGL_VERSION");if(n.shouldExecuteOnCPU([a,r])||i===1){let l=n.texData.get(a.dataId).values,u=n.texData.get(r.dataId).values,[p,d]=i9(a.shape,r.shape,l,u,a.dtype),c=n.makeTensorInfo(d,a.dtype),h=n.texData.get(c.dataId);return h.values=p,c}let o;return s?o=new hp(Jee,a.shape,r.shape,!1):o=new ki(Qee,a.shape,r.shape),n.runWebGLProgram(o,[a,r],a.dtype)}var tte={kernelName:ru,backendName:"webgl",kernelFunc:ete};function nte(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 ate={kernelName:Dc,backendName:"webgl",kernelFunc:nte},rte="return float(a != b);",dA=mn({opSnippet:rte,cpuKernelImpl:C9,dtype:"bool"}),ste={kernelName:_u,backendName:"webgl",kernelFunc:dA};function Fd(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 ite={kernelName:Dm,backendName:"webgl",kernelFunc:Fd},ote="return float(int(x));";function lte(e,t){let n=new rr(e.shape,ote),a=t.runWebGLProgram(n,[e],"int32");return{dataId:a.dataId,shape:a.shape,dtype:a.dtype}}function uv(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=Nt(r.shape),o=uv({inputs:{x:r},backend:n,attrs:{dtype:"float32"}}),l=As({inputs:{real:o,imag:i},backend:n});return i.dispose(),n.disposeIntermediateTensorInfo(o),l}if(r.dtype==="complex64"){let i=Fd({inputs:{input:r},backend:n}),o=uv({inputs:{x:i},backend:n,attrs:{dtype:s}});return n.disposeIntermediateTensorInfo(i),o}if(!w.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]=o9(i,r.shape,r.dtype,s);return n.makeTensorInfo(o,l,u)}if(s==="int32")return lte(r,n);if(s==="bool"){let i=n.makeTensorInfo([],"bool",w.getTypedArrayFromDType("bool",1)),o=dA({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 ute={kernelName:Mi,backendName:"webgl",kernelFunc:uv},sS="return ceil(x);",pte=Ze({opSnippet:sS,packedOpSnippet:sS,cpuKernelImpl:l9}),cte={kernelName:Pi,backendName:"webgl",kernelFunc:pte},dte=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(); @@ -2126,7 +2134,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,oee=Ye({opSnippet:iee}),lee={kernel setOutput(clamp(value, minVal, maxVal)); } - `}},Hee=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=` + `}},hte=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(); @@ -2137,7 +2145,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,oee=Ye({opSnippet:iee}),lee={kernel setOutput(clamp(value, vec4(minVal), vec4(maxVal))); } - `}};function qee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{clipValueMin:s,clipValueMax:i}=a,o;G().getBool("WEBGL_PACK_CLIP")?o=new Hee(r.shape):o=new Gee(r.shape);let l=[[s],[i]];return n.runWebGLProgram(o,[r],r.dtype,l)}var jee={kernelName:ys,backendName:"webgl",kernelFunc:qee},Kee=class{constructor(e){this.variableNames=["real","imag"],this.outputShape=e,this.userCode=` + `}};function mte(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{clipValueMin:s,clipValueMax:i}=a,o;G().getBool("WEBGL_PACK_CLIP")?o=new hte(r.shape):o=new dte(r.shape);let l=[[s],[i]];return n.runWebGLProgram(o,[r],r.dtype,l)}var fte={kernelName:xs,backendName:"webgl",kernelFunc:mte},gte=class{constructor(e){this.variableNames=["real","imag"],this.outputShape=e,this.userCode=` void main() { float re = abs(getRealAtOutCoords()); float im = abs(getImagAtOutCoords()); @@ -2150,7 +2158,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,oee=Ye({opSnippet:iee}),lee={kernel mx == 0.0 ? 0.0 : mx * length(vec2(1, min(re, im)/mx)) ); } - `}};function ZI(e,t){return{dataId:t.dataId,dtype:t.dtype,shape:e.shape}}function Xee(e){let{inputs:t,backend:n}=e,{x:a}=t,r=n.texData.get(a.dataId),s=new Kee(a.shape),i=[ZI(a,r.complexTensorInfos.real),ZI(a,r.complexTensorInfos.imag)];return n.runWebGLProgram(s,i,i[0].dtype)}var Yee={kernelName:Ac,backendName:"webgl",kernelFunc:Xee},Zee=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}(${Ch(i,l,f)}), - vec2(${Ch(u,l,f)})); + getT${m}(${$h(i,l,f)}), + vec2(${$h(u,l,f)})); }`}let c=o.length,h=o[o.length-1];d+=` return getChannel( - getT${c}(${Ch(i,l,h)}), - vec2(${Ch(u,l,h)}));`,this.userCode=` + getT${c}(${$h(i,l,h)}), + vec2(${$h(u,l,h)}));`,this.userCode=` float getValue(${i.map(m=>"int "+m)}) { ${d} } @@ -2196,7 +2204,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,oee=Ye({opSnippet:iee}),lee={kernel } setOutput(result); } - `}};function Ch(e,t,n){let a=e.indexOf(t);return e.map((r,s)=>s===a?`${r} - ${n}`:r).join()}function Wf(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 Qee={kernelName:Tm,backendName:"webgl",kernelFunc:Wf};function nc(e,t,n){let a=e[0].dtype;if(a==="complex64"){let h=e.map(y=>Td({inputs:{input:y},backend:n})),m=e.map(y=>Wf({inputs:{input:y},backend:n})),f=nc(h,t,n),g=nc(m,t,n),b=Es({inputs:{real:f,imag:g},backend:n});return h.forEach(y=>n.disposeIntermediateTensorInfo(y)),m.forEach(y=>n.disposeIntermediateTensorInfo(y)),n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(g),b}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 ce({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,b=HJ(m,f,a,g),y=N.computeOutShape(e.map(w=>w.shape),t),x=n.makeTensorInfo(y,a,b);return h.forEach(w=>n.disposeIntermediateTensorInfo(w)),x}let s=e.filter(h=>v.sizeFromShape(h.shape)>0),i=G().getBool("WEBGL_PACK_ARRAY_OPERATIONS")&&s[0].shape.length>1;if(s.length===1){let h=i?new rr(e[0].shape,Yr):new ts(e[0].shape,Yr);return n.runWebGLProgram(h,e,a)}let o=G().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}=ete(s,t,n),p=new Zee(l.map(h=>h.shape)),d=n.runWebGLProgram(p,l,a);l.forEach(h=>n.disposeIntermediateTensorInfo(h));let c=ce({inputs:{x:d},attrs:{shape:u},backend:n});return n.disposeIntermediateTensorInfo(d),c}function ete(e,t,n){let a=N.computeOutShape(e.map(r=>r.shape),t);return{tensors2D:e.map(r=>ce({inputs:{x:r},attrs:{shape:[-1,v.sizeFromShape(r.shape.slice(t))]},backend:n})),outShape:a}}function aA(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}):nc(l,s,n)}var tte={kernelName:eu,backendName:"webgl",kernelFunc:aA},rA=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,b=f?2:3,y=f?3:1,x="",w="";n&&(a?x=`float activation(float a) { + `}};function $h(e,t,n){let a=e.indexOf(t);return e.map((r,s)=>s===a?`${r} - ${n}`:r).join()}function Bf(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 wte={kernelName:Em,backendName:"webgl",kernelFunc:Bf};function sc(e,t,n){let a=e[0].dtype;if(a==="complex64"){let h=e.map(y=>Fd({inputs:{input:y},backend:n})),m=e.map(y=>Bf({inputs:{input:y},backend:n})),f=sc(h,t,n),g=sc(m,t,n),b=As({inputs:{real:f,imag:g},backend:n});return h.forEach(y=>n.disposeIntermediateTensorInfo(y)),m.forEach(y=>n.disposeIntermediateTensorInfo(y)),n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(g),b}let r=n.shouldExecuteOnCPU(e);if(a==="string"&&(r=!0),r){let h=e.map(v=>{let I=[-1,w.sizeFromShape(v.shape.slice(t))];return ce({inputs:{x:v},backend:n,attrs:{shape:I}})}),m=h.map(v=>({vals:n.readSync(v.dataId),shape:v.shape})),f=N.computeOutShape(h.map(v=>v.shape),1),g=h[0].shape[0]===1,b=u9(m,f,a,g),y=N.computeOutShape(e.map(v=>v.shape),t),x=n.makeTensorInfo(y,a,b);return h.forEach(v=>n.disposeIntermediateTensorInfo(v)),x}let s=e.filter(h=>w.sizeFromShape(h.shape)>0),i=G().getBool("WEBGL_PACK_ARRAY_OPERATIONS")&&s[0].shape.length>1;if(s.length===1){let h=i?new rr(e[0].shape,Zr):new ns(e[0].shape,Zr);return n.runWebGLProgram(h,e,a)}let o=G().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}=kte(s,t,n),p=new xte(l.map(h=>h.shape)),d=n.runWebGLProgram(p,l,a);l.forEach(h=>n.disposeIntermediateTensorInfo(h));let c=ce({inputs:{x:d},attrs:{shape:u},backend:n});return n.disposeIntermediateTensorInfo(d),c}function kte(e,t,n){let a=N.computeOutShape(e.map(r=>r.shape),t);return{tensors2D:e.map(r=>ce({inputs:{x:r},attrs:{shape:[-1,w.sizeFromShape(r.shape.slice(t))]},backend:n})),outShape:a}}function hA(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a,s=w.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(w.sizeFromShape(o)===0)return n.makeTensorInfo(o,t[0].dtype,[]);let l=t.filter(u=>w.sizeFromShape(u.shape)>0);return l.length===1?aa({inputs:{x:l[0]},backend:n}):sc(l,s,n)}var Ite={kernelName:su,backendName:"webgl",kernelFunc:hA},mA=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,b=f?2:3,y=f?3:1,x="",v="";n&&(a?x=`float activation(float a) { float b = getPreluActivationWeightsAtOutCoords(); ${n} }`:r?x=`float activation(float a) { @@ -2206,7 +2214,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,oee=Ye({opSnippet:iee}),lee={kernel float activation(float x) { ${n} } - `,w="result = activation(result);");let I=t?"result += getBiasAtOutCoords();":"";t&&this.variableNames.push("bias"),a&&this.variableNames.push("preluActivationWeights"),r&&this.variableNames.push("leakyreluAlpha"),this.userCode=` + `,v="result = activation(result);");let I=t?"result += getBiasAtOutCoords();":"";t&&this.variableNames.push("bias"),a&&this.variableNames.push("preluActivationWeights"),r&&this.variableNames.push("leakyreluAlpha"),this.userCode=` ${x} const ivec2 strides = ivec2(${o}, ${l}); @@ -2327,10 +2335,10 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,oee=Ye({opSnippet:iee}),lee={kernel float result = dotProd; ${I} - ${w} + ${v} setOutput(result); } - `}},nte=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=` + `}},Ste=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}); @@ -2418,7 +2426,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,oee=Ye({opSnippet:iee}),lee={kernel } setOutput(dotProd); } - `}},sA=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=vn(this.outputShape.length);let s=e.padInfo.left,i=e.strideWidth,o=e.dilationWidth,l=e.filterHeight,u=e.filterWidth,p=u,d=` + `}},fA=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=vn(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= 0 && xCOffset < inDims[1] && xTexelC${g+1}Ready == 0) { @@ -2614,7 +2622,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,oee=Ye({opSnippet:iee}),lee={kernel ${h} setOutput(result); } - `}},ate=class{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"inputShape",type:"ivec4"},{name:"pad",type:"ivec2"},{name:"stride",type:"ivec2"},{name:"dilation",type:"ivec2"},{name:"inChannels",type:"int"},{name:"itemsPerBlockRow",type:"int"},{name:"outWidth",type:"int"}],this.outputShape=e,this.enableShapeUniforms=vn(this.outputShape.length);let{dataFormat:n}=t,a=_n(),r=n==="channelsLast",s=r?1:2,i=r?2:3,o=this.enableShapeUniforms?"if(blockIndex < outShape[2] && pos < outShape[1]) {":`if(blockIndex < ${e[2]} && pos < ${e[1]}) {`,l="";for(let u=0;u<=1;u++)for(let p=0;p<=1;p++)l+=` + `}},Nte=class{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"inputShape",type:"ivec4"},{name:"pad",type:"ivec2"},{name:"stride",type:"ivec2"},{name:"dilation",type:"ivec2"},{name:"inChannels",type:"int"},{name:"itemsPerBlockRow",type:"int"},{name:"outWidth",type:"int"}],this.outputShape=e,this.enableShapeUniforms=vn(this.outputShape.length);let{dataFormat:n}=t,a=_n(),r=n==="channelsLast",s=r?1:2,i=r?2:3,o=this.enableShapeUniforms?"if(blockIndex < outShape[2] && pos < outShape[1]) {":`if(blockIndex < ${e[2]} && pos < ${e[1]}) {`,l="";for(let u=0;u<=1;u++)for(let p=0;p<=1;p++)l+=` blockIndex = rc.z + ${p}; pos = rc.y + ${u}; @@ -2661,7 +2669,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,oee=Ye({opSnippet:iee}),lee={kernel ${a.output} = result; } - `}};function pm(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 iA({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,b=[];if(s!=null){let y=pm(s.shape,h);y!=null&&(s=ce({inputs:{x:s},backend:a,attrs:{shape:y}}),b.push(s))}if(r!=null){let y=pm(r.shape,h);y!=null&&(r=ce({inputs:{x:r},backend:a,attrs:{shape:y}}),b.push(r))}if(!((d===1||c===1)&&p>JE)&&u.isPacked&&h&&u.texture!=null&&l[2]%2!==0&&v.arraysEqual(u.shape.slice(-3),l.slice(-3))){let y=l[0]*l[1]*(l[2]+1),x={dataId:e.dataId,shape:[1,y,n.inChannels],dtype:e.dtype},w=u.shape;u.shape=u.shape.slice(),u.shape[u.shape.length-2]++,v.assert(wc(u.shape,x.shape),()=>`packed reshape ${u.shape} to ${x.shape} isn't free`);let I=ce({inputs:{x:t},backend:a,attrs:{shape:[1,n.inChannels,n.outChannels]}});b.push(I);let T=um({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,b.push(T)}else{let y=n.outHeight*n.outWidth,x=ce({inputs:{x:e},backend:a,attrs:{shape:h?[n.batchSize,y,n.inChannels]:[n.batchSize,n.inChannels,y]}}),w=ce({inputs:{x:t},backend:a,attrs:{shape:[1,n.inChannels,n.outChannels]}}),I=um({a:h?x:w,b:h?w:x,transposeA:!h,transposeB:f,backend:a,bias:r,activation:o,preluActivationWeights:s,leakyreluAlpha:i});g=ce({inputs:{x:I},backend:a,attrs:{shape:n.outShape}}),b.push(x),b.push(w),b.push(I)}for(let y of b)a.disposeIntermediateTensorInfo(y);return g}function oA({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,b=[n.batchSize,f,g],y=!0,x=!1,w=[];if(s!=null){let K=pm(s.shape,m);K!=null&&(s=ce({inputs:{x:s},backend:a,attrs:{shape:K}}),w.push(s))}if(r!=null){let K=pm(r.shape,m);K!=null&&(r=ce({inputs:{x:r},backend:a,attrs:{shape:K}}),w.push(r))}let I=ce({inputs:{x:t},backend:a,attrs:{shape:[1,f,v.sizeFromShape(t.shape)/f]}});w.push(I);let T=new ate(b,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),F=ce({inputs:{x:E},backend:a,attrs:{shape:b}});w.push(E),w.push(F);let D=r!=null,$=s!=null,S=o==="leakyrelu",M=o?kc(o,!0):null,B=new ZE(m?F.shape:I.shape,m?I.shape:F.shape,m?[n.batchSize,g,n.outChannels]:[n.batchSize,n.outChannels,g],y,x,D,M,$,S),U=m?[F,I]:[I,F];if(r&&U.push(r),$&&U.push(s),S){let K=a.makeTensorInfo([],"float32",v.createScalarValue(i,"float32"));U.push(K),w.push(K)}let H=a.runWebGLProgram(B,U,"float32"),j=ce({inputs:{x:H},backend:a,attrs:{shape:n.outShape}});w.push(H);for(let K of w)a.disposeIntermediateTensorInfo(K);return j}function rte(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=iA({x:r,filter:s,convInfo:c,backend:n});else if(c.strideWidth<=2&&d==="channelsLast"&&G().getBool("WEBGL_EXP_CONV")){let f=new sA(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(G().getBool("WEBGL_CONV_IM2COL"))h=oA({x:r,filter:s,convInfo:c,backend:n});else{let f=new rA(c);h=n.runWebGLProgram(f,[r,s],"float32")}let m=ce({inputs:{x:h},backend:n,attrs:{shape:c.outShape}});return n.disposeIntermediateTensorInfo(h),m}var ste={kernelName:Mi,backendName:"webgl",kernelFunc:rte},ite=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 fm(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 gA({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,b=[];if(s!=null){let y=fm(s.shape,h);y!=null&&(s=ce({inputs:{x:s},backend:a,attrs:{shape:y}}),b.push(s))}if(r!=null){let y=fm(r.shape,h);y!=null&&(r=ce({inputs:{x:r},backend:a,attrs:{shape:y}}),b.push(r))}if(!((d===1||c===1)&&p>lA)&&u.isPacked&&h&&u.texture!=null&&l[2]%2!==0&&w.arraysEqual(u.shape.slice(-3),l.slice(-3))){let y=l[0]*l[1]*(l[2]+1),x={dataId:e.dataId,shape:[1,y,n.inChannels],dtype:e.dtype},v=u.shape;u.shape=u.shape.slice(),u.shape[u.shape.length-2]++,w.assert(Sc(u.shape,x.shape),()=>`packed reshape ${u.shape} to ${x.shape} isn't free`);let I=ce({inputs:{x:t},backend:a,attrs:{shape:[1,n.inChannels,n.outChannels]}});b.push(I);let T=mm({a:x,b:I,backend:a,transposeA:m,transposeB:f,bias:r,activation:o,preluActivationWeights:s,leakyreluAlpha:i}),C=a.texData.get(T.dataId);w.assert(C.isPacked,()=>"batchMatMul result is expected to be packed"),u.shape=v,C.shape=n.outShape,g=aa({inputs:{x:T},backend:a}),g.shape=n.outShape,b.push(T)}else{let y=n.outHeight*n.outWidth,x=ce({inputs:{x:e},backend:a,attrs:{shape:h?[n.batchSize,y,n.inChannels]:[n.batchSize,n.inChannels,y]}}),v=ce({inputs:{x:t},backend:a,attrs:{shape:[1,n.inChannels,n.outChannels]}}),I=mm({a:h?x:v,b:h?v:x,transposeA:!h,transposeB:f,backend:a,bias:r,activation:o,preluActivationWeights:s,leakyreluAlpha:i});g=ce({inputs:{x:I},backend:a,attrs:{shape:n.outShape}}),b.push(x),b.push(v),b.push(I)}for(let y of b)a.disposeIntermediateTensorInfo(y);return g}function bA({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,b=[n.batchSize,f,g],y=!0,x=!1,v=[];if(s!=null){let K=fm(s.shape,m);K!=null&&(s=ce({inputs:{x:s},backend:a,attrs:{shape:K}}),v.push(s))}if(r!=null){let K=fm(r.shape,m);K!=null&&(r=ce({inputs:{x:r},backend:a,attrs:{shape:K}}),v.push(r))}let I=ce({inputs:{x:t},backend:a,attrs:{shape:[1,f,w.sizeFromShape(t.shape)/f]}});v.push(I);let T=new Nte(b,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),F=ce({inputs:{x:E},backend:a,attrs:{shape:b}});v.push(E),v.push(F);let D=r!=null,$=s!=null,S=o==="leakyrelu",M=o?Nc(o,!0):null,B=new oA(m?F.shape:I.shape,m?I.shape:F.shape,m?[n.batchSize,g,n.outChannels]:[n.batchSize,n.outChannels,g],y,x,D,M,$,S),U=m?[F,I]:[I,F];if(r&&U.push(r),$&&U.push(s),S){let K=a.makeTensorInfo([],"float32",w.createScalarValue(i,"float32"));U.push(K),v.push(K)}let H=a.runWebGLProgram(B,U,"float32"),j=ce({inputs:{x:H},backend:a,attrs:{shape:n.outShape}});v.push(H);for(let K of v)a.disposeIntermediateTensorInfo(K);return j}function Tte(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=gA({x:r,filter:s,convInfo:c,backend:n});else if(c.strideWidth<=2&&d==="channelsLast"&&G().getBool("WEBGL_EXP_CONV")){let f=new fA(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(G().getBool("WEBGL_CONV_IM2COL"))h=bA({x:r,filter:s,convInfo:c,backend:n});else{let f=new mA(c);h=n.runWebGLProgram(f,[r,s],"float32")}let m=ce({inputs:{x:h},backend:n,attrs:{shape:c.outShape}});return n.disposeIntermediateTensorInfo(h),m}var Cte={kernelName:Oi,backendName:"webgl",kernelFunc:Tte},_te=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; @@ -2698,7 +2706,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,oee=Ye({opSnippet:iee}),lee={kernel } setOutput(dotProd); } - `}},ote=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=` + `}},Ete=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() { @@ -2751,7 +2759,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,oee=Ye({opSnippet:iee}),lee={kernel } setOutput(dotProd); } - `}},lte=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=` + `}},Ate=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; @@ -2793,7 +2801,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,oee=Ye({opSnippet:iee}),lee={kernel } setOutput(dotProd); } - `}},ute=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=` + `}},Fte=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() { @@ -2850,7 +2858,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,oee=Ye({opSnippet:iee}),lee={kernel } setOutput(dotProd); } - `}};function pte(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 ite(c);return n.runWebGLProgram(h,[r,s],"float32")}var cte={kernelName:vm,backendName:"webgl",kernelFunc:pte},dte=class{constructor(e){this.variableNames=["dy","W"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"strides",type:"vec2"}],this.outputShape=e.inShape,this.enableShapeUniforms=vn(this.outputShape.length);let t=e.filterHeight,n=e.filterWidth,a=t-1-e.padInfo.top,r=n-1-e.padInfo.left;this.userCode=` + `}};function $te(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 _te(c);return n.runWebGLProgram(h,[r,s],"float32")}var Dte={kernelName:Im,backendName:"webgl",kernelFunc:$te},Rte=class{constructor(e){this.variableNames=["dy","W"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"strides",type:"vec2"}],this.outputShape=e.inShape,this.enableShapeUniforms=vn(this.outputShape.length);let t=e.filterHeight,n=e.filterWidth,a=t-1-e.padInfo.top,r=n-1-e.padInfo.left;this.userCode=` const ivec2 pads = ivec2(${a}, ${r}); void main() { @@ -2924,17 +2932,17 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,oee=Ye({opSnippet:iee}),lee={kernel } setOutput(result); } - `}};function hte(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);if(G().getBool("WEBGL_PACK")&&d==="channelsLast"){let h=[[c.strideHeight,c.strideWidth]],m=new dte(c);return n.runWebGLProgram(m,[r,s],"float32",h)}else{let h=new ote(c);return n.runWebGLProgram(h,[r,s],"float32")}}var mte={kernelName:Pi,backendName:"webgl",kernelFunc:hte};function fte(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 nte(u);return n.runWebGLProgram(p,[r,s],"float32")}var gte={kernelName:Oi,backendName:"webgl",kernelFunc:fte};function bte(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 lte(u);return n.runWebGLProgram(p,[r,s],"float32")}var yte={kernelName:tu,backendName:"webgl",kernelFunc:bte};function xte(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 ute(u);return n.runWebGLProgram(p,[r,s],"float32")}var vte={kernelName:nu,backendName:"webgl",kernelFunc:xte},wte=cp+` + `}};function Mte(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);if(G().getBool("WEBGL_PACK")&&d==="channelsLast"){let h=[[c.strideHeight,c.strideWidth]],m=new Rte(c);return n.runWebGLProgram(m,[r,s],"float32",h)}else{let h=new Ete(c);return n.runWebGLProgram(h,[r,s],"float32")}}var Pte={kernelName:Li,backendName:"webgl",kernelFunc:Mte};function Ote(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 Ste(u);return n.runWebGLProgram(p,[r,s],"float32")}var Lte={kernelName:zi,backendName:"webgl",kernelFunc:Ote};function zte(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 Ate(u);return n.runWebGLProgram(p,[r,s],"float32")}var Wte={kernelName:iu,backendName:"webgl",kernelFunc:zte};function Bte(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 Fte(u);return n.runWebGLProgram(p,[r,s],"float32")}var Vte={kernelName:ou,backendName:"webgl",kernelFunc:Bte},Ute=mp+` return cos(x); -`,kte=` +`,Gte=` vec4 result = cos(x); bvec4 isNaN = isnan(x); - ${Ko} + ${Qo} return result; -`,Ite=Ye({opSnippet:wte,packedOpSnippet:kte}),Ste={kernelName:Li,backendName:"webgl",kernelFunc:Ite},Nte=` +`,Hte=Ze({opSnippet:Ute,packedOpSnippet:Gte}),qte={kernelName:Wi,backendName:"webgl",kernelFunc:Hte},jte=` float e2x = exp(-x); return (e2x + 1.0 / e2x) / 2.0; -`,Tte=Ye({opSnippet:Nte}),Cte={kernelName:zi,backendName:"webgl",kernelFunc:Tte},_te=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,b]=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}`],[y,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=` +`,Kte=Ze({opSnippet:jte}),Xte={kernelName:Bi,backendName:"webgl",kernelFunc:Kte},Yte=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,b]=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}`],[y,x,v]=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(${y}); void main() { @@ -2964,7 +2972,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,oee=Ye({opSnippet:iee}),lee={kernel setOutput(float(${r})); return; } - float in_x = ${w}; + float in_x = ${v}; if( in_x < 0.0 || in_x > ${m} ) { setOutput(float(${r})); return; @@ -2995,20 +3003,20 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,oee=Ye({opSnippet:iee}),lee={kernel setOutput(newValue); } } - `}},Ete=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 _te(r.shape,s.shape,o,l,u);return n.runWebGLProgram(p,[r,s,i],"float32")},Ate={kernelName:ru,backendName:"webgl",kernelFunc:Ete},Sc;(function(e){e.Prod="*",e.Sum="+"})(Sc||(Sc={}));var JI=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===Sc.Prod?"1.0":"0.0",i=n?s:`getX(${QI(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=` + `}},Zte=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 Yte(r.shape,s.shape,o,l,u);return n.runWebGLProgram(p,[r,s,i],"float32")},Jte={kernelName:uu,backendName:"webgl",kernelFunc:Zte},Cc;(function(e){e.Prod="*",e.Sum="+"})(Cc||(Cc={}));var oS=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===Cc.Prod?"1.0":"0.0",i=n?s:`getX(${lS(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() { ${ct(r)} coords = getOutputCoords(); - int end = ${eS(r,"coords",this.op)}; + int end = ${uS(r,"coords",this.op)}; float val = ${i}; int pow2 = int(pow(2.0, index)); if (${l}) { int idx = ${u}; - ${eS(r,"coords",this.op)} = idx; - val ${this.op}= getX(${QI(r,"coords",this.op)}); + ${uS(r,"coords",this.op)} = idx; + val ${this.op}= getX(${lS(r,"coords",this.op)}); } setOutput(val); } - `}};function QI(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 eS(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 lA(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 JI(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 JI(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 Fte(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,exclusive:i,reverse:o}=a;return lA(Sc.Prod,r,n,s,i,o)}var $te={kernelName:au,backendName:"webgl",kernelFunc:Fte};function Dte(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,exclusive:i,reverse:o}=a;return lA(Sc.Sum,r,n,s,i,o)}var Rte={kernelName:Wi,backendName:"webgl",kernelFunc:Dte};function Mte(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=BE(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=VJ(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 Pte={kernelName:Fc,backendName:"webgl",kernelFunc:Mte},Ote=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=[],this.outputShape=e,this.blockSize=t,this.dataFormat=n,this.userCode=` + `}};function lS(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 uS(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 yA(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 oS(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 oS(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 Qte(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,exclusive:i,reverse:o}=a;return yA(Cc.Prod,r,n,s,i,o)}var ene={kernelName:lu,backendName:"webgl",kernelFunc:Qte};function tne(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,exclusive:i,reverse:o}=a;return yA(Cc.Sum,r,n,s,i,o)}var nne={kernelName:Vi,backendName:"webgl",kernelFunc:tne};function ane(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=ZE(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=s9(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 rne={kernelName:Mc,backendName:"webgl",kernelFunc:ane},sne=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]; @@ -3027,7 +3035,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,oee=Ye({opSnippet:iee}),lee={kernel 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 Lte(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 Ote(m,s,i);return n.runWebGLProgram(f,[r],r.dtype)}var zte={kernelName:su,backendName:"webgl",kernelFunc:Lte},uA=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=vn(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 ine(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 sne(m,s,i);return n.runWebGLProgram(f,[r],r.dtype)}var one={kernelName:pu,backendName:"webgl",kernelFunc:ine},xA=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=vn(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) { @@ -3080,7 +3088,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,oee=Ye({opSnippet:iee}),lee={kernel ${u} setOutput(result); } - `}},pA=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=vn(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=` + `}},vA=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=vn(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= 0 && xCOffset < inDims[1] && xTexelC${b+1}Ready == 0) { @@ -3269,7 +3277,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,oee=Ye({opSnippet:iee}),lee={kernel ${m} setOutput(result); } - `}};function Wte(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;G().getBool("WEBGL_PACK_DEPTHWISECONV")&&d.strideWidth<=2&&d.outChannels/d.inChannels===1?c=new pA(d):c=new uA(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 Bte={kernelName:Bi,backendName:"webgl",kernelFunc:Wte},Vte=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 lne(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]),w.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;G().getBool("WEBGL_PACK_DEPTHWISECONV")&&d.strideWidth<=2&&d.outChannels/d.inChannels===1?c=new vA(d):c=new xA(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 une={kernelName:Ui,backendName:"webgl",kernelFunc:lne},pne=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; @@ -3304,7 +3312,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,oee=Ye({opSnippet:iee}),lee={kernel } setOutput(dotProd); } - `}},Ute=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=` + `}},cne=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() { @@ -3349,13 +3357,13 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,oee=Ye({opSnippet:iee}),lee={kernel } setOutput(dotProd); } - `}};function Gte(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 Vte(d);return n.runWebGLProgram(c,[r,s],"float32")}var Hte={kernelName:wm,backendName:"webgl",kernelFunc:Gte};function qte(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 Ute(d);return n.runWebGLProgram(c,[r,s],"float32")}var jte={kernelName:km,backendName:"webgl",kernelFunc:qte},Kte=class{constructor(e){this.variableNames=["X"],this.outputShape=[e,e],this.userCode=` + `}};function dne(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 pne(d);return n.runWebGLProgram(c,[r,s],"float32")}var hne={kernelName:Sm,backendName:"webgl",kernelFunc:dne};function mne(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 cne(d);return n.runWebGLProgram(c,[r,s],"float32")}var fne={kernelName:Nm,backendName:"webgl",kernelFunc:mne},gne=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 Xte(e){let{inputs:t,backend:n}=e,{x:a}=t,r=[...a.shape,...a.shape],s=v.sizeFromShape(a.shape),i=ce({inputs:{x:a},backend:n,attrs:{shape:[s]}}),o=new Kte(s),l=n.runWebGLProgram(o,[i],i.dtype),u=ce({inputs:{x:l},backend:n,attrs:{shape:r}});return n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(l),u}var Yte={kernelName:$c,backendName:"webgl",kernelFunc:Xte},Zte=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 bne(e){let{inputs:t,backend:n}=e,{x:a}=t,r=[...a.shape,...a.shape],s=w.sizeFromShape(a.shape),i=ce({inputs:{x:a},backend:n,attrs:{shape:[s]}}),o=new gne(s),l=n.runWebGLProgram(o,[i],i.dtype),u=ce({inputs:{x:l},backend:n,attrs:{shape:r}});return n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(l),u}var yne={kernelName:Pc,backendName:"webgl",kernelFunc:bne},xne=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; @@ -3393,7 +3401,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,oee=Ye({opSnippet:iee}),lee={kernel float result = curVal; setOutput(result); } - `}};function Jte(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 Zte(u);p=n.runWebGLProgram(d,[r,s],"float32");let c=ce({inputs:{x:p},backend:n,attrs:{shape:u.outShape}});return n.disposeIntermediateTensorInfo(p),c}var Qte={kernelName:Vi,backendName:"webgl",kernelFunc:Jte};function ene(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 tne={kernelName:Im,backendName:"webgl",kernelFunc:ene},nne="return (x >= 0.0) ? x : (exp(x) - 1.0);",ane=` + `}};function vne(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 xne(u);p=n.runWebGLProgram(d,[r,s],"float32");let c=ce({inputs:{x:p},backend:n,attrs:{shape:u.outShape}});return n.disposeIntermediateTensorInfo(p),c}var wne={kernelName:Gi,backendName:"webgl",kernelFunc:vne};function kne(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=Wf({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 Ine={kernelName:Tm,backendName:"webgl",kernelFunc:kne},Sne="return (x >= 0.0) ? x : (exp(x) - 1.0);",Nne=` vec4 result; result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0); @@ -3402,12 +3410,12 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,oee=Ye({opSnippet:iee}),lee={kernel result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0); return result; -`,rne=Ye({opSnippet:nne,packedOpSnippet:ane}),sne={kernelName:Gi,backendName:"webgl",kernelFunc:rne},ine="return (b >= 0.0) ? a : a * (b + 1.0);",one=` +`,Tne=Ze({opSnippet:Sne,packedOpSnippet:Nne}),Cne={kernelName:qi,backendName:"webgl",kernelFunc:Tne},_ne="return (b >= 0.0) ? a : a * (b + 1.0);",Ene=` vec4 bGTEZero = vec4(greaterThanEqual(b, vec4(0.))); return (bGTEZero * a) + ((vec4(1.0) - bGTEZero) * (a * (b + vec4(1.0)))); -`,lne=e=>{let{inputs:t,backend:n}=e,{dy:a,y:r}=t,s=G().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Nd(one,a.shape,r.shape):new Gl(ine,a.shape,r.shape);return n.runWebGLProgram(s,[a,r],a.dtype)},une={kernelName:iu,backendName:"webgl",kernelFunc:lne},pne=` +`,Ane=e=>{let{inputs:t,backend:n}=e,{dy:a,y:r}=t,s=G().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new hp(Ene,a.shape,r.shape):new ki(_ne,a.shape,r.shape);return n.runWebGLProgram(s,[a,r],a.dtype)},Fne={kernelName:cu,backendName:"webgl",kernelFunc:Ane},$ne=` return vec4(equal(a, b)); -`,cne="return float(a == b);",dne=mn({opSnippet:cne,packedOpSnippet:pne,dtype:"bool",cpuKernelImpl:qJ}),hne={kernelName:lu,backendName:"webgl",kernelFunc:dne},mne=` +`,Dne="return float(a == b);",Rne=mn({opSnippet:Dne,packedOpSnippet:$ne,dtype:"bool",cpuKernelImpl:p9}),Mne={kernelName:du,backendName:"webgl",kernelFunc:Rne},Pne=` // Error function is calculated approximately with elementary function. // See "Handbook of Mathematical Functions with Formulas, // Graphs, and Mathematical Tables", Abramowitz and Stegun. @@ -3422,9 +3430,9 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,oee=Ye({opSnippet:iee}),lee={kernel 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)); -`,fne=Ye({opSnippet:mne}),gne={kernelName:ou,backendName:"webgl",kernelFunc:fne},bne=cp+` +`,One=Ze({opSnippet:Pne}),Lne={kernelName:ji,backendName:"webgl",kernelFunc:One},zne=mp+` return exp(x); -`,yne=` +`,Wne=` vec4 result = exp(x); bvec4 isNaN = isnan(x); result.r = isNaN.r ? x.r : result.r; @@ -3433,7 +3441,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,oee=Ye({opSnippet:iee}),lee={kernel result.a = isNaN.a ? x.a : result.a; return result; -`,cA=Ye({opSnippet:bne,packedOpSnippet:yne,cpuKernelImpl:jJ,dtype:"float32"}),xne={kernelName:Hi,backendName:"webgl",kernelFunc:cA};function nv(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),ce({inputs:{x:s},backend:a,attrs:{shape:o}})}var vne={kernelName:uu,backendName:"webgl",kernelFunc:nv},tS="return exp(x) - 1.0;",wne=Ye({opSnippet:tS,packedOpSnippet:tS,cpuKernelImpl:KJ}),kne={kernelName:qi,backendName:"webgl",kernelFunc:wne},nS=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=` +`,wA=Ze({opSnippet:zne,packedOpSnippet:Wne,cpuKernelImpl:c9,dtype:"float32"}),Bne={kernelName:Ki,backendName:"webgl",kernelFunc:wA};function pv(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&&(w.assert(-(i+1)<=r,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),l=i+r+1),o.splice(l,0,1),ce({inputs:{x:s},backend:a,attrs:{shape:o}})}var Vne={kernelName:hu,backendName:"webgl",kernelFunc:pv},pS="return exp(x) - 1.0;",Une=Ze({opSnippet:pS,packedOpSnippet:pS,cpuKernelImpl:d9}),Gne={kernelName:Xi,backendName:"webgl",kernelFunc:Une},cS=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) { @@ -3466,12 +3474,12 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,oee=Ye({opSnippet:iee}),lee={kernel ivec2 coords = getOutputCoords(); setOutput(mulMatDFT(coords[0], coords[1])); } - `}};function dA(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=ce({inputs:{x:e},backend:n,attrs:{shape:[i,s]}}),l=o.shape,u=new nS("real",l,t),p=new nS("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=Es({inputs:{real:c,imag:h},backend:n});n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h);let f=ce({inputs:{x:m},backend:n,attrs:{shape:e.shape}});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(m),f}function Ine(e){let{inputs:t,backend:n}=e,{input:a}=t;return dA(a,!1,n)}var Sne={kernelName:Sm,backendName:"webgl",kernelFunc:Ine},Nne=class{constructor(e,t){this.outputShape=[],this.customUniforms=[{name:"value",type:"float"}],this.variableNames=["x"],this.outputShape=e,this.userCode=` + `}};function kA(e,t,n){let a=n.texData.get(e.dataId),r=w.sizeFromShape(e.shape),s=e.shape[e.shape.length-1],i=r/s,o=ce({inputs:{x:e},backend:n,attrs:{shape:[i,s]}}),l=o.shape,u=new cS("real",l,t),p=new cS("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=As({inputs:{real:c,imag:h},backend:n});n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h);let f=ce({inputs:{x:m},backend:n,attrs:{shape:e.shape}});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(m),f}function Hne(e){let{inputs:t,backend:n}=e,{input:a}=t;return kA(a,!1,n)}var qne={kernelName:Cm,backendName:"webgl",kernelFunc:Hne},jne=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 Nne(a,r),o=[[r]];return t.runWebGLProgram(i,[],s,o)}}var Tne={kernelName:Dc,backendName:"webgl",kernelFunc:Cd},Cne=class{constructor(e){this.variableNames=["Image"],this.outputShape=[];let t=e[2];this.outputShape=e,this.userCode=` + `}};function $d(e){let{backend:t,attrs:n}=e,{shape:a,value:r}=n,{dtype:s}=n;if(s=s||w.inferDtype(r),s==="string"){let i=w.getArrayFromDType(s,w.sizeFromShape(a));return i.fill(r),t.makeTensorInfo(a,s,i)}else{let i=new jne(a,r),o=[[r]];return t.runWebGLProgram(i,[],s,o)}}var Kne={kernelName:Oc,backendName:"webgl",kernelFunc:$d},Xne=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]; @@ -3485,7 +3493,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,oee=Ye({opSnippet:iee}),lee={kernel } setOutput(outputValue); } - `}},_ne={kernelName:pu,backendName:"webgl",kernelFunc:({inputs:e,backend:t})=>{let{image:n}=e,a=t,r=new Cne(n.shape);return a.runWebGLProgram(r,[n],n.dtype)}},aS="return floor(x);",Ene=Ye({opSnippet:aS,packedOpSnippet:aS,cpuKernelImpl:XJ}),Ane={kernelName:ji,backendName:"webgl",kernelFunc:Ene},Fne=` + `}},Yne={kernelName:mu,backendName:"webgl",kernelFunc:({inputs:e,backend:t})=>{let{image:n}=e,a=t,r=new Xne(n.shape);return a.runWebGLProgram(r,[n],n.dtype)}},dS="return floor(x);",Zne=Ze({opSnippet:dS,packedOpSnippet:dS,cpuKernelImpl:h9}),Jne={kernelName:Yi,backendName:"webgl",kernelFunc:Zne},Qne=` float s = sign(a) * sign(b); int ia = round(a); int ib = round(b); @@ -3495,7 +3503,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,oee=Ye({opSnippet:iee}),lee={kernel } else { return NAN; } -`,$ne=` +`,eae=` ivec4 ia = round(a); ivec4 ib = round(b); bvec4 cond = notEqual(ib, ivec4(0)); @@ -3516,7 +3524,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,oee=Ye({opSnippet:iee}),lee={kernel result[3] = idiv(ia[3], ib[3], s[3]); } return vec4(result); -`,Dne=mn({opSnippet:Fne,packedOpSnippet:$ne,dtype:"int32"}),Rne={kernelName:Ki,backendName:"webgl",kernelFunc:Dne},Mne=class{constructor(e){this.variableNames=["A"];let t=_n(),[n,a]=e;this.outputShape=e,this.userCode=` +`,tae=mn({opSnippet:Qne,packedOpSnippet:eae,dtype:"int32"}),nae={kernelName:Zi,backendName:"webgl",kernelFunc:tae},aae=class{constructor(e){this.variableNames=["A"];let t=_n(),[n,a]=e;this.outputShape=e,this.userCode=` void main() { ivec3 coords = getOutputCoords(); int texR = coords[0]; @@ -3538,7 +3546,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,oee=Ye({opSnippet:iee}),lee={kernel setOutput(floor(value * 255.0 + 0.5)); } - `}},Pne=class{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;let t=_n(),[n,a]=e;this.outputShape=e,this.userCode=` + `}},rae=class{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;let t=_n(),[n,a]=e;this.outputShape=e,this.userCode=` void main() { ivec3 coords = getOutputCoords(); int texR = coords[0]; @@ -3572,7 +3580,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,oee=Ye({opSnippet:iee}),lee={kernel ${t.output} = result; } - `}},One={kernelName:Wh,backendName:"webgl",kernelFunc:Lne},bl,ux=G().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");function Lne(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=G().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");(bl==null||f!==ux)&&(ux=f,bl=document.createElement("canvas").getContext("2d",{willReadFrequently:ux})),bl.canvas.width=l,bl.canvas.height=u,bl.drawImage(r,0,0,l,u),r=bl.canvas}let c=n.makeTensorInfo(p,"int32");n.texData.get(c.dataId).usage=da.PIXELS,n.gpgpu.uploadPixelDataToTexture(n.getTexture(c.dataId),r);let h=G().getBool("WEBGL_PACK")?new Pne(d):new Mne(d),m=n.runWebGLProgram(h,[c],"int32");return n.disposeData(c.dataId),m}function zne(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),b,y=[],x=i!=null,w=o!=null,I=h==="leakyrelu",T=()=>{let E=[r,s],F=(D,$)=>{if($==="NCHW"&&D.shape.length===1&&D.shape[0]!==1){let S=ce({inputs:{x:D},backend:n,attrs:{shape:[D.shape[0],1,1]}});return y.push(S),S}return D};if(x&&E.push(F(i,p)),w&&E.push(F(o,p)),I){let D=n.makeTensorInfo([],"float32",v.createScalarValue(m,"float32"));E.push(D),y.push(D)}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"))b=iA({x:r,filter:s,convInfo:g,backend:n,bias:i,activation:h,preluActivationWeights:o,leakyreluAlpha:m});else if(g.strideWidth<=2&&f==="channelsLast"&&G().getBool("WEBGL_EXP_CONV")){let E=h?kc(h,!0):null,F=new sA(g,x,E,w,I),D=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],$=T();b=n.runWebGLProgram(F,$,"float32",D)}else if(G().getBool("WEBGL_CONV_IM2COL"))b=oA({x:r,filter:s,convInfo:g,backend:n,bias:i,activation:h,preluActivationWeights:o,leakyreluAlpha:m});else{let E=h?kc(h,!1):null,F=new rA(g,x,E,w,I),D=T();b=n.runWebGLProgram(F,D,"float32")}let C=ce({inputs:{x:b},backend:n,attrs:{shape:g.outShape}});return y.push(b),y.forEach(E=>n.disposeIntermediateTensorInfo(E)),C}var Wne={kernelName:ii,backendName:"webgl",kernelFunc:zne};function Bne(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),b=G().getBool("WEBGL_PACK_DEPTHWISECONV")&&g.strideWidth<=2&&g.outChannels/g.inChannels===1,y=c?kc(c,b):null,x=[r,s],w=i!=null,I=o!=null,T=c==="leakyrelu";if(w&&x.push(i),I&&x.push(o),T){let D=n.makeTensorInfo([],"float32",v.createScalarValue(h,"float32"));x.push(D),m.push(D)}let C;b?C=new pA(g,w,y,I,T):C=new uA(g,w,y,I,T);let E=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],F=n.runWebGLProgram(C,x,"float32",E);return m.forEach(D=>n.disposeIntermediateTensorInfo(D)),F}var Vne={kernelName:oi,backendName:"webgl",kernelFunc:Bne},Une=class{constructor(e,t,n,a){this.sliceDim=e,this.strides=t,this.paramsShape=a,this.variableNames=["x","indices"],this.outputShape=n;let r=ct(n.length),s=` + `}},sae={kernelName:Hh,backendName:"webgl",kernelFunc:iae},kl,bx=G().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");function iae(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=G().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");(kl==null||f!==bx)&&(bx=f,kl=document.createElement("canvas").getContext("2d",{willReadFrequently:bx})),kl.canvas.width=l,kl.canvas.height=u,kl.drawImage(r,0,0,l,u),r=kl.canvas}let c=n.makeTensorInfo(p,"int32");n.texData.get(c.dataId).usage=da.PIXELS,n.gpgpu.uploadPixelDataToTexture(n.getTexture(c.dataId),r);let h=G().getBool("WEBGL_PACK")?new rae(d):new aae(d),m=n.runWebGLProgram(h,[c],"int32");return n.disposeData(c.dataId),m}function oae(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),b,y=[],x=i!=null,v=o!=null,I=h==="leakyrelu",T=()=>{let E=[r,s],F=(D,$)=>{if($==="NCHW"&&D.shape.length===1&&D.shape[0]!==1){let S=ce({inputs:{x:D},backend:n,attrs:{shape:[D.shape[0],1,1]}});return y.push(S),S}return D};if(x&&E.push(F(i,p)),v&&E.push(F(o,p)),I){let D=n.makeTensorInfo([],"float32",w.createScalarValue(m,"float32"));E.push(D),y.push(D)}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"))b=gA({x:r,filter:s,convInfo:g,backend:n,bias:i,activation:h,preluActivationWeights:o,leakyreluAlpha:m});else if(g.strideWidth<=2&&f==="channelsLast"&&G().getBool("WEBGL_EXP_CONV")){let E=h?Nc(h,!0):null,F=new fA(g,x,E,v,I),D=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],$=T();b=n.runWebGLProgram(F,$,"float32",D)}else if(G().getBool("WEBGL_CONV_IM2COL"))b=bA({x:r,filter:s,convInfo:g,backend:n,bias:i,activation:h,preluActivationWeights:o,leakyreluAlpha:m});else{let E=h?Nc(h,!1):null,F=new mA(g,x,E,v,I),D=T();b=n.runWebGLProgram(F,D,"float32")}let C=ce({inputs:{x:b},backend:n,attrs:{shape:g.outShape}});return y.push(b),y.forEach(E=>n.disposeIntermediateTensorInfo(E)),C}var lae={kernelName:oi,backendName:"webgl",kernelFunc:oae};function uae(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]),w.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),b=G().getBool("WEBGL_PACK_DEPTHWISECONV")&&g.strideWidth<=2&&g.outChannels/g.inChannels===1,y=c?Nc(c,b):null,x=[r,s],v=i!=null,I=o!=null,T=c==="leakyrelu";if(v&&x.push(i),I&&x.push(o),T){let D=n.makeTensorInfo([],"float32",w.createScalarValue(h,"float32"));x.push(D),m.push(D)}let C;b?C=new vA(g,v,y,I,T):C=new xA(g,v,y,I,T);let E=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],F=n.runWebGLProgram(C,x,"float32",E);return m.forEach(D=>n.disposeIntermediateTensorInfo(D)),F}var pae={kernelName:li,backendName:"webgl",kernelFunc:uae},cae=class{constructor(e,t,n,a){this.sliceDim=e,this.strides=t,this.paramsShape=a,this.variableNames=["x","indices"],this.outputShape=n;let r=ct(n.length),s=` int index;`;for(let i=0;i= 0) && (index < ${e[2]}) ? 1.0 : 0.0; setOutput(inBounds * getA(${a})); } - `}};function jne(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=ce({inputs:{x:r},backend:n,attrs:{shape:[u.batchSize,u.outerSize,u.dimSize,u.sliceSize]}}),h=ce({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 y=n.bufferSync(h),x=n.bufferSync(c),w=ZJ(x,y,m);return d.forEach(I=>n.disposeIntermediateTensorInfo(I)),n.makeTensorInfo(u.outputShape,w.dtype,w.values)}let f=new qne(c.shape,m),g=n.runWebGLProgram(f,[c,h],c.dtype);d.push(g);let b=ce({inputs:{x:g},backend:n,attrs:{shape:u.outputShape}});return d.forEach(y=>n.disposeIntermediateTensorInfo(y)),b}var Kne={kernelName:cu,backendName:"webgl",kernelFunc:hA},Xne="return float(a > b);",Yne=` + `}};function fae(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=w.sizeFromShape(s.shape),d=[],c=ce({inputs:{x:r},backend:n,attrs:{shape:[u.batchSize,u.outerSize,u.dimSize,u.sliceSize]}}),h=ce({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 y=n.bufferSync(h),x=n.bufferSync(c),v=f9(x,y,m);return d.forEach(I=>n.disposeIntermediateTensorInfo(I)),n.makeTensorInfo(u.outputShape,v.dtype,v.values)}let f=new mae(c.shape,m),g=n.runWebGLProgram(f,[c,h],c.dtype);d.push(g);let b=ce({inputs:{x:g},backend:n,attrs:{shape:u.outputShape}});return d.forEach(y=>n.disposeIntermediateTensorInfo(y)),b}var gae={kernelName:fu,backendName:"webgl",kernelFunc:IA},bae="return float(a > b);",yae=` return vec4(greaterThan(a, b)); -`,Zne=mn({opSnippet:Xne,packedOpSnippet:Yne,cpuKernelImpl:JJ,dtype:"bool"}),Jne={kernelName:hu,backendName:"webgl",kernelFunc:Zne},Qne="return float(a >= b);",eae=` +`,xae=mn({opSnippet:bae,packedOpSnippet:yae,cpuKernelImpl:g9,dtype:"bool"}),vae={kernelName:bu,backendName:"webgl",kernelFunc:xae},wae="return float(a >= b);",kae=` return vec4(greaterThanEqual(a, b)); -`,tae=mn({opSnippet:Qne,packedOpSnippet:eae,dtype:"bool",cpuKernelImpl:QJ}),nae={kernelName:Yi,backendName:"webgl",kernelFunc:tae};function aae(e){let{inputs:t,backend:n}=e,{input:a}=t;return dA(a,!0,n)}var rae={kernelName:Nm,backendName:"webgl",kernelFunc:aae},sae="return float(!isnan(x) && !isinf(x));",iae=Ye({opSnippet:sae,dtype:"bool"}),oae={kernelName:Ji,backendName:"webgl",kernelFunc:iae},lae="return float(isinf(x));",uae=Ye({opSnippet:lae,dtype:"bool"}),pae={kernelName:Qi,backendName:"webgl",kernelFunc:uae},cae="return float(isnan(x));",dae=Ye({opSnippet:cae,dtype:"bool"}),hae={kernelName:eo,backendName:"webgl",kernelFunc:dae},mae="return float(a < b);",fae=` +`,Iae=mn({opSnippet:wae,packedOpSnippet:kae,dtype:"bool",cpuKernelImpl:b9}),Sae={kernelName:Qi,backendName:"webgl",kernelFunc:Iae};function Nae(e){let{inputs:t,backend:n}=e,{input:a}=t;return kA(a,!0,n)}var Tae={kernelName:_m,backendName:"webgl",kernelFunc:Nae},Cae="return float(!isnan(x) && !isinf(x));",_ae=Ze({opSnippet:Cae,dtype:"bool"}),Eae={kernelName:to,backendName:"webgl",kernelFunc:_ae},Aae="return float(isinf(x));",Fae=Ze({opSnippet:Aae,dtype:"bool"}),$ae={kernelName:no,backendName:"webgl",kernelFunc:Fae},Dae="return float(isnan(x));",Rae=Ze({opSnippet:Dae,dtype:"bool"}),Mae={kernelName:ao,backendName:"webgl",kernelFunc:Rae},Pae="return float(a < b);",Oae=` return vec4(lessThan(a, b)); -`,gae=mn({opSnippet:mae,packedOpSnippet:fae,cpuKernelImpl:e9,dtype:"bool"}),bae={kernelName:mu,backendName:"webgl",kernelFunc:gae},yae="return float(a <= b);",xae=` +`,Lae=mn({opSnippet:Pae,packedOpSnippet:Oae,cpuKernelImpl:y9,dtype:"bool"}),zae={kernelName:yu,backendName:"webgl",kernelFunc:Lae},Wae="return float(a <= b);",Bae=` return vec4(lessThanEqual(a, b)); -`,vae=mn({opSnippet:yae,packedOpSnippet:xae,cpuKernelImpl:t9,dtype:"bool"}),wae={kernelName:fu,backendName:"webgl",kernelFunc:vae};function kae(e){let{backend:t,attrs:n}=e,{start:a,stop:r,num:s}=n,i=n9(a,r,s);return t.makeTensorInfo([i.length],"float32",i)}var Iae={kernelName:gu,backendName:"webgl",kernelFunc:kae},Sae=cp+` +`,Vae=mn({opSnippet:Wae,packedOpSnippet:Bae,cpuKernelImpl:x9,dtype:"bool"}),Uae={kernelName:xu,backendName:"webgl",kernelFunc:Vae};function Gae(e){let{backend:t,attrs:n}=e,{start:a,stop:r,num:s}=n,i=v9(a,r,s);return t.makeTensorInfo([i.length],"float32",i)}var Hae={kernelName:vu,backendName:"webgl",kernelFunc:Gae},qae=mp+` return x < 0.0 ? 0./0. : log(x); -`,Nae=` +`,jae=` vec4 result = log(x); bvec4 isNaN = isnan(x); result.r = isNaN.r ? x.r : (x.r < 0.0 ? 0./0. : result.r); @@ -3612,18 +3620,18 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,oee=Ye({opSnippet:iee}),lee={kernel 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; -`,Tae=Ye({opSnippet:Sae,packedOpSnippet:Nae,cpuKernelImpl:a9}),Cae={kernelName:no,backendName:"webgl",kernelFunc:Tae},_ae=cp+` +`,Kae=Ze({opSnippet:qae,packedOpSnippet:jae,cpuKernelImpl:w9}),Xae={kernelName:so,backendName:"webgl",kernelFunc:Kae},Yae=mp+` return log(1.0 + x); -`,Eae=Ye({opSnippet:_ae}),Aae={kernelName:ao,backendName:"webgl",kernelFunc:Eae},Fae="return float(a >= 1.0 && b >= 1.0);",$ae=` +`,Zae=Ze({opSnippet:Yae}),Jae={kernelName:io,backendName:"webgl",kernelFunc:Zae},Qae="return float(a >= 1.0 && b >= 1.0);",ere=` return vec4( vec4(greaterThanEqual(a, vec4(1.0))) * vec4(greaterThanEqual(b, vec4(1.0)))); -`,Dae=mn({opSnippet:Fae,packedOpSnippet:$ae,dtype:"bool"}),Rae={kernelName:bu,backendName:"webgl",kernelFunc:Dae},Mae="return float(!(x >= 1.0));",Pae=Ye({opSnippet:Mae}),Oae={kernelName:yu,backendName:"webgl",kernelFunc:Pae},Lae="return float(a >= 1.0 || b >= 1.0);",zae=` +`,tre=mn({opSnippet:Qae,packedOpSnippet:ere,dtype:"bool"}),nre={kernelName:wu,backendName:"webgl",kernelFunc:tre},are="return float(!(x >= 1.0));",rre=Ze({opSnippet:are}),sre={kernelName:ku,backendName:"webgl",kernelFunc:rre},ire="return float(a >= 1.0 || b >= 1.0);",ore=` return min( vec4(greaterThanEqual(a, vec4(1.0))) + vec4(greaterThanEqual(b, vec4(1.0))), vec4(1.0)); -`,Wae=mn({opSnippet:Lae,packedOpSnippet:zae,dtype:"bool"}),Bae={kernelName:xu,backendName:"webgl",kernelFunc:Wae},Vae=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=` +`,lre=mn({opSnippet:ire,packedOpSnippet:ore,dtype:"bool"}),ure={kernelName:Iu,backendName:"webgl",kernelFunc:lre},pre=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]; @@ -3642,7 +3650,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,oee=Ye({opSnippet:iee}),lee={kernel float val = x * ${o}; setOutput(val); } - `}},Uae=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=` + `}},cre=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; @@ -3704,7 +3712,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,oee=Ye({opSnippet:iee}),lee={kernel vec4 result = xAtOutputCoords * ${o}; setOutput(result); } - `}},Gae=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=a,u=G().getBool("WEBGL_PACK_NORMALIZATION")?new Uae(r.shape,s,i,o,l):new Vae(r.shape,s,i,o,l);return n.runWebGLProgram(u,[r],r.dtype)},Hae={kernelName:ro,backendName:"webgl",kernelFunc:Gae},qae=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=` + `}},dre=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=a,u=G().getBool("WEBGL_PACK_NORMALIZATION")?new cre(r.shape,s,i,o,l):new pre(r.shape,s,i,o,l);return n.runWebGLProgram(u,[r],r.dtype)},hre={kernelName:oo,backendName:"webgl",kernelFunc:dre},mre=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]; @@ -3759,16 +3767,16 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,oee=Ye({opSnippet:iee}),lee={kernel } setOutput(result); } - `}},jae=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 qae(r.shape,o,l,u,p);return n.runWebGLProgram(d,[r,s,i],r.dtype)},Kae={kernelName:vu,backendName:"webgl",kernelFunc:jae};function Xae(e,t,n,a){let r=v.sizeFromShape(t),s=v.sizeFromShape(e.shape)/r,i=ce({inputs:{x:e},attrs:{shape:[s,r]},backend:a}),o=Xo(i,e.dtype,"max",a),l=ce({inputs:{x:o},attrs:{shape:n},backend:a});return a.disposeIntermediateTensorInfo(i),a.disposeIntermediateTensorInfo(o),l}function mA(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 y=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 mre(r.shape,o,l,u,p);return n.runWebGLProgram(d,[r,s,i],r.dtype)},gre={kernelName:Su,backendName:"webgl",kernelFunc:fre};function bre(e,t,n,a){let r=w.sizeFromShape(t),s=w.sizeFromShape(e.shape)/r,i=ce({inputs:{x:e},attrs:{shape:[s,r]},backend:a}),o=el(i,e.dtype,"max",a),l=ce({inputs:{x:o},attrs:{shape:n},backend:a});return a.disposeIntermediateTensorInfo(i),a.disposeIntermediateTensorInfo(o),l}function SA(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{reductionIndices:s,keepDims:i}=a,o=r.shape.length,l=w.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 y=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 Ic(p,"max",!1);return n.runWebGLProgram(d,[r],r.dtype)}var nre={kernelName:oo,backendName:"webgl",kernelFunc:tre};function are(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 X1(d,"max",!1);return n.runWebGLProgram(c,[r],r.dtype)}var rre={kernelName:wu,backendName:"webgl",kernelFunc:are},sre=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=` +`,wre=mn({opSnippet:xre,packedOpSnippet:vre,cpuKernelImpl:I9}),kre={kernelName:uo,backendName:"webgl",kernelFunc:wre};function Ire(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;lp(r,"maxPool");let{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=a,u=1;w.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&&w.arraysEqual(p.inShape,p.outShape))return aa({inputs:{x:r},backend:n});let d=new Tc(p,"max",!1);return n.runWebGLProgram(d,[r],r.dtype)}var Sre={kernelName:po,backendName:"webgl",kernelFunc:Ire};function Nre(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 ak(d,"max",!1);return n.runWebGLProgram(c,[r],r.dtype)}var Tre={kernelName:Nu,backendName:"webgl",kernelFunc:Nre},Cre=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() { @@ -3814,7 +3822,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,oee=Ye({opSnippet:iee}),lee={kernel } setOutput(dotProd); } - `}},ire=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=` + `}},_re=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() { @@ -3878,16 +3886,16 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,oee=Ye({opSnippet:iee}),lee={kernel } setOutput(dotProd); } - `}};function ore(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 X1(c,"max",!0),m=n.runWebGLProgram(h,[i],i.dtype),f=new ire(c),g=n.runWebGLProgram(f,[r,m],i.dtype);return n.disposeIntermediateTensorInfo(m),g}var lre={kernelName:Rc,backendName:"webgl",kernelFunc:ore};function ure(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s,output:i}=t,o=s;ip([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 Ic(c,"max",h),f=n.runWebGLProgram(m,[o],o.dtype),g=new sre(c),b=n.runWebGLProgram(g,[r,f],o.dtype);return n.disposeIntermediateTensorInfo(f),b}var pre={kernelName:Cm,backendName:"webgl",kernelFunc:ure};function cre(e,t,n,a){let r=new Ic(n,"max",!1),s=a.runWebGLProgram(r,[e],"float32");r=new Ic(n,"max",!0,!0,t);let i=a.runWebGLProgram(r,[e],"float32");return[s,i]}var dre={kernelName:_m,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]=cre(a,o,p,l);return[d,c]}};function hre(e,t,n,a){let r=v.sizeFromShape(t),s=v.sizeFromShape(e.shape)/r,i=ce({inputs:{x:e},attrs:{shape:[s,r]},backend:a}),o=Xo(i,"float32","mean",a),l=ce({inputs:{x:o},attrs:{shape:n},backend:a});return a.disposeIntermediateTensorInfo(i),a.disposeIntermediateTensorInfo(o),l}var mre={kernelName:lo,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;w.assert(a.shape.length===4,()=>`Error in maxPool: input must be rank 4 but got rank ${a.shape.length}.`);let u=[1,1];w.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]=Dre(a,o,p,l);return[d,c]}};function Mre(e,t,n,a){let r=w.sizeFromShape(t),s=w.sizeFromShape(e.shape)/r,i=ce({inputs:{x:e},attrs:{shape:[s,r]},backend:a}),o=el(i,"float32","mean",a),l=ce({inputs:{x:o},attrs:{shape:n},backend:a});return a.disposeIntermediateTensorInfo(i),a.disposeIntermediateTensorInfo(o),l}var Pre={kernelName:co,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=w.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,v=new Array(o);for(let C=0;Cu[0]+e[p]+u[1]);let a=e.length,r=ct(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=` +`,Bre=mn({opSnippet:zre,packedOpSnippet:Wre,cpuKernelImpl:S9}),Vre={kernelName:mo,backendName:"webgl",kernelFunc:Bre},Ure=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=ct(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}; @@ -3916,7 +3924,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,oee=Ye({opSnippet:iee}),lee={kernel ${r} coords = outC - start; setOutput(getX(${o})); } - `}},kre=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=ct(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=` + `}},Gre=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=ct(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}; @@ -3972,13 +3980,13 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,oee=Ye({opSnippet:iee}),lee={kernel ${c} setOutput(result); } - `}},Ire=({inputs:e,backend:t,attrs:n})=>{let{x:a}=e,{paddings:r,mode:s}=n,i=G().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new kre(a.shape,r,s):new wre(a.shape,r,s);return t.runWebGLProgram(i,[a],a.dtype)},Sre={kernelName:co,backendName:"webgl",kernelFunc:Ire},Nre=`if (b == 0.0) return NAN; - return mod(a, b);`,Tre=` + `}},Hre=({inputs:e,backend:t,attrs:n})=>{let{x:a}=e,{paddings:r,mode:s}=n,i=G().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new Gre(a.shape,r,s):new Ure(a.shape,r,s);return t.runWebGLProgram(i,[a],a.dtype)},qre={kernelName:fo,backendName:"webgl",kernelFunc:Hre},jre=`if (b == 0.0) return NAN; + return mod(a, b);`,Kre=` vec4 result = mod(a, b); bvec4 isNaN = equal(b, vec4(0.0)); - `+Ko+` + `+Qo+` return result; -`,Cre=mn({opSnippet:Nre,packedOpSnippet:Tre}),_re={kernelName:ku,backendName:"webgl",kernelFunc:Cre},Ere=class{constructor(e,t,n){this.variableNames=["probs"],this.customUniforms=[{name:"seed",type:"float"}],this.outputShape=[e,n],this.userCode=` +`,Xre=mn({opSnippet:jre,packedOpSnippet:Kre}),Yre={kernelName:go,backendName:"webgl",kernelFunc:Xre},Zre=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]; @@ -3998,11 +4006,11 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,oee=Ye({opSnippet:iee}),lee={kernel // If no other event happened, last event happened. setOutput(float(${t-1})); } - `}},Are=` + `}},Jre=` if (a == b) { return 1.0; }; -return a / b;`,Fre=` +return a / b;`,Qre=` // vec4 one = vec4(equal(a, b)); // return one + (vec4(1.0) - one) * a / b; vec4 result = a / b; @@ -4020,9 +4028,9 @@ return a / b;`,Fre=` } return result; -`,fA=mn({opSnippet:Are,packedOpSnippet:Fre,checkOutOfBounds:!0}),$re={kernelName:Ui,backendName:"webgl",kernelFunc:fA},rS="return a - b;",gA=mn({opSnippet:rS,packedOpSnippet:rS,supportsComplex:!0,cpuKernelImpl:C9}),Dre={kernelName:Po,backendName:"webgl",kernelFunc:gA};function bA(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{dim:s}=a,i=v.parseAxisParam([s],r.shape),o=mA({inputs:{x:r},backend:n,attrs:{reductionIndices:i,keepDims:!1}}),l=N.expandShapeToKeepDim(o.shape,i),u=ce({inputs:{x:o},backend:n,attrs:{shape:l}}),p=gA({inputs:{a:r,b:u},backend:n}),d=cA({inputs:{x:p},backend:n}),c=zf({inputs:{x:d},backend:n,attrs:{axis:i,keepDims:!1}}),h=ce({inputs:{x:c},backend:n,attrs:{shape:l}}),m=fA({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 Rre={kernelName:Ro,backendName:"webgl",kernelFunc:bA};function Mre(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{numSamples:s,seed:i,normalized:o}=a,l=o?r:bA({inputs:{logits:r},backend:n,attrs:{dim:r.shape.length-1}}),u=l.shape[0],p=l.shape[1],d=new Ere(u,p,s),c=[[i]],h=n.runWebGLProgram(d,[l],"int32",c);return o||n.disposeIntermediateTensorInfo(l),h}var Pre={kernelName:Iu,backendName:"webgl",kernelFunc:Mre},Ore=Ma+` +`,NA=mn({opSnippet:Jre,packedOpSnippet:Qre,checkOutOfBounds:!0}),ese={kernelName:Hi,backendName:"webgl",kernelFunc:NA},hS="return a - b;",TA=mn({opSnippet:hS,packedOpSnippet:hS,supportsComplex:!0,cpuKernelImpl:H9}),tse={kernelName:Bo,backendName:"webgl",kernelFunc:TA};function CA(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{dim:s}=a,i=w.parseAxisParam([s],r.shape),o=SA({inputs:{x:r},backend:n,attrs:{reductionIndices:i,keepDims:!1}}),l=N.expandShapeToKeepDim(o.shape,i),u=ce({inputs:{x:o},backend:n,attrs:{shape:l}}),p=TA({inputs:{a:r,b:u},backend:n}),d=wA({inputs:{x:p},backend:n}),c=Wf({inputs:{x:d},backend:n,attrs:{axis:i,keepDims:!1}}),h=ce({inputs:{x:c},backend:n,attrs:{shape:l}}),m=NA({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 nse={kernelName:zo,backendName:"webgl",kernelFunc:CA};function ase(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{numSamples:s,seed:i,normalized:o}=a,l=o?r:CA({inputs:{logits:r},backend:n,attrs:{dim:r.shape.length-1}}),u=l.shape[0],p=l.shape[1],d=new Zre(u,p,s),c=[[i]],h=n.runWebGLProgram(d,[l],"int32",c);return o||n.disposeIntermediateTensorInfo(l),h}var rse={kernelName:Tu,backendName:"webgl",kernelFunc:ase},sse=Ma+` return -x; -`,Lre=` +`,ise=` vec4 result = -x; bvec4 isNaN = isnan(x); @@ -4032,14 +4040,14 @@ return a / b;`,Fre=` result.a = isNaN.a ? x.a : result.a; return result; -`;function zre(e){let{inputs:t,backend:n}=e,{x:a}=t;if(n.shouldExecuteOnCPU([a])){let s=n.texData.get(a.dataId),[i,o]=l9(s.values,a.shape,a.dtype);return n.makeTensorInfo(o,a.dtype,i)}let r;return G().getBool("WEBGL_PACK_UNARY_OPERATIONS")?r=new ts(a.shape,Lre):r=new rr(a.shape,Ore),n.runWebGLProgram(r,[a],a.dtype)}var Wre={kernelName:Su,backendName:"webgl",kernelFunc:zre},Bre=hr.nonMaxSuppressionV3Impl;function Vre(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}=Bre(u,p,i,o,l);return n.makeTensorInfo([d.length],"int32",new Int32Array(d))}var Ure={kernelName:Tu,backendName:"webgl",kernelFunc:Vre},Gre=hr.nonMaxSuppressionV4Impl;function Hre(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}=Gre(p,d,i,o,l,u);return[n.makeTensorInfo([c.length],"int32",new Int32Array(c)),n.makeTensorInfo([],"int32",new Int32Array([h]))]}var qre={kernelName:Cu,backendName:"webgl",kernelFunc:Hre},jre=hr.nonMaxSuppressionV5Impl;function Kre(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:b}=jre(p,d,c,h,m,f);return[n.makeTensorInfo([g.length],"int32",new Int32Array(g)),n.makeTensorInfo([b.length],"float32",new Float32Array(b))]}var Xre={kernelName:_u,backendName:"webgl",kernelFunc:Kre},Yre=class{constructor(e,t,n,a){this.variableNames=["indices"],this.outputShape=[e,t],this.userCode=` +`;function ose(e){let{inputs:t,backend:n}=e,{x:a}=t;if(n.shouldExecuteOnCPU([a])){let s=n.texData.get(a.dataId),[i,o]=T9(s.values,a.shape,a.dtype);return n.makeTensorInfo(o,a.dtype,i)}let r;return G().getBool("WEBGL_PACK_UNARY_OPERATIONS")?r=new ns(a.shape,ise):r=new rr(a.shape,sse),n.runWebGLProgram(r,[a],a.dtype)}var lse={kernelName:Cu,backendName:"webgl",kernelFunc:ose},use=mr.nonMaxSuppressionV3Impl;function pse(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}=use(u,p,i,o,l);return n.makeTensorInfo([d.length],"int32",new Int32Array(d))}var cse={kernelName:Eu,backendName:"webgl",kernelFunc:pse},dse=mr.nonMaxSuppressionV4Impl;function hse(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}=dse(p,d,i,o,l,u);return[n.makeTensorInfo([c.length],"int32",new Int32Array(c)),n.makeTensorInfo([],"int32",new Int32Array([h]))]}var mse={kernelName:Au,backendName:"webgl",kernelFunc:hse},fse=mr.nonMaxSuppressionV5Impl;function gse(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:b}=fse(p,d,c,h,m,f);return[n.makeTensorInfo([g.length],"int32",new Int32Array(g)),n.makeTensorInfo([b.length],"float32",new Float32Array(b))]}var bse={kernelName:Fu,backendName:"webgl",kernelFunc:gse},yse=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))); } - `}},Zre=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 Yre(u,i,o,l),d=ce({inputs:{x:r},backend:n,attrs:{shape:[u]}}),c=n.runWebGLProgram(p,[d],s);n.disposeIntermediateTensorInfo(d);let h=[...r.shape,i],m=ce({inputs:{x:c},backend:n,attrs:{shape:h}});return n.disposeIntermediateTensorInfo(c),m},Jre={kernelName:mo,backendName:"webgl",kernelFunc:Zre};function cm(e){let{inputs:t,backend:n}=e,{x:a}=t;if(a.dtype==="complex64"){let r=Td({inputs:{input:a},backend:n}),s=cm({inputs:{x:r},backend:n}),i=Wf({inputs:{input:a},backend:n}),o=cm({inputs:{x:i},backend:n}),l=Es({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 Qre={kernelName:Ku,backendName:"webgl",kernelFunc:cm};function yA(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=Td({inputs:{input:a},backend:n}),s=yA({inputs:{x:r},backend:n}),i=Wf({inputs:{input:a},backend:n}),o=cm({inputs:{x:i},backend:n}),l=Es({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 ese={kernelName:Eu,backendName:"webgl",kernelFunc:yA};function tse(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a;if(t.length===1)return nv({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=nv({inputs:{input:p},backend:n,attrs:{dim:r}});return o.push(d),d}),u=aA({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(p=>n.disposeIntermediateTensorInfo(p)),u}var nse={kernelName:Au,backendName:"webgl",kernelFunc:tse},ase=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=ct(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=` + `}},xse=e=>{let{inputs:t,backend:n,attrs:a}=e,{indices:r}=t,{dtype:s,depth:i,onValue:o,offValue:l}=a,u=w.sizeFromShape(r.shape),p=new yse(u,i,o,l),d=ce({inputs:{x:r},backend:n,attrs:{shape:[u]}}),c=n.runWebGLProgram(p,[d],s);n.disposeIntermediateTensorInfo(d);let h=[...r.shape,i],m=ce({inputs:{x:c},backend:n,attrs:{shape:h}});return n.disposeIntermediateTensorInfo(c),m},vse={kernelName:yo,backendName:"webgl",kernelFunc:xse};function gm(e){let{inputs:t,backend:n}=e,{x:a}=t;if(a.dtype==="complex64"){let r=Fd({inputs:{input:a},backend:n}),s=gm({inputs:{x:r},backend:n}),i=Bf({inputs:{input:a},backend:n}),o=gm({inputs:{x:i},backend:n}),l=As({inputs:{real:s,imag:o},backend:n});return n.disposeIntermediateTensorInfo(r),n.disposeIntermediateTensorInfo(s),n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}else return $d({attrs:{shape:a.shape,dtype:a.dtype,value:a.dtype==="string"?"":0},backend:n})}var wse={kernelName:Yu,backendName:"webgl",kernelFunc:gm};function _A(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=Fd({inputs:{input:a},backend:n}),s=_A({inputs:{x:r},backend:n}),i=Bf({inputs:{input:a},backend:n}),o=gm({inputs:{x:i},backend:n}),l=As({inputs:{real:s,imag:o},backend:n});return n.disposeIntermediateTensorInfo(r),n.disposeIntermediateTensorInfo(s),n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}else return $d({attrs:{shape:a.shape,dtype:a.dtype,value:1},backend:n})}var kse={kernelName:$u,backendName:"webgl",kernelFunc:_A};function Ise(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a;if(t.length===1)return pv({inputs:{input:t[0]},backend:n,attrs:{dim:r}});let s=t[0].shape,i=t[0].dtype;t.forEach(p=>{w.assertShapesMatch(s,p.shape,"All tensors passed to stack must have matching shapes"),w.assert(i===p.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=[],l=t.map(p=>{let d=pv({inputs:{input:p},backend:n,attrs:{dim:r}});return o.push(d),d}),u=hA({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(p=>n.disposeIntermediateTensorInfo(p)),u}var Sse={kernelName:Du,backendName:"webgl",kernelFunc:Ise},Nse=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=ct(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}; @@ -4064,7 +4072,7 @@ return a / b;`,Fre=` setOutput(getX(${o})); } } - `}},rse=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=ct(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; + `}},Tse=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=ct(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; @@ -4088,7 +4096,7 @@ return a / b;`,Fre=` ${h} setOutput(result); } - `}},xA=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=G().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new rse(r.shape,s,i):new ase(r.shape,s,i),l=[[i]];return n.runWebGLProgram(o,[r],r.dtype,l)},sse={kernelName:fo,backendName:"webgl",kernelFunc:xA},ise=` + `}},EA=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{paddings:s,constantValue:i}=a;if(w.sizeFromShape(r.shape)===0){let u=s.map((p,d)=>p[0]+r.shape[d]+p[1]);return $d({backend:n,attrs:{shape:u,value:i,dtype:r.dtype}})}let o=G().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new Tse(r.shape,s,i):new Nse(r.shape,s,i),l=[[i]];return n.runWebGLProgram(o,[r],r.dtype,l)},Cse={kernelName:xo,backendName:"webgl",kernelFunc:EA},_se=` if(a < 0.0 && floor(b) < b){ return NAN; } @@ -4097,7 +4105,7 @@ return a / b;`,Fre=` } return (round(mod(b, 2.0)) != 1) ? pow(abs(a), b) : sign(a) * pow(abs(a), b); -`,ose=` +`,Ese=` // 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); @@ -4113,11 +4121,11 @@ return a / b;`,Fre=` 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); - `+Ko+` + `+Qo+` return result; -`,lse=mn({opSnippet:ise,packedOpSnippet:ose}),use={kernelName:go,backendName:"webgl",kernelFunc:lse};function pse(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:b}=p9(c.shape,c.dtype,m,p);h=n.makeTensorInfo(g,b,f)}else{let[m,f]=N.computeOutAndReduceShapes(c.shape,p),g=v.sizeFromShape(f),b=ce({inputs:{x:c},backend:n,attrs:{shape:[-1,g]}}),y=Rm(r.dtype),x=Xo(b,y,"prod",n);h=ce({inputs:{x},backend:n,attrs:{shape:m}}),l.push(b),l.push(x)}if(i){l.push(h);let m=N.expandShapeToKeepDim(h.shape,u);h=ce({inputs:{x:h},backend:n,attrs:{shape:m}})}return l.forEach(m=>n.disposeIntermediateTensorInfo(m)),h}var cse={kernelName:yo,backendName:"webgl",kernelFunc:pse};function dse(e){let{inputs:t,backend:n,attrs:a}=e,{paramsNestedSplits:r,paramsDenseValues:s,indices:i}=t,{outputRaggedRank:o}=a,l=r.map(b=>n.readSync(b.dataId)),u=r.map(b=>b.shape),p=n.readSync(s.dataId),d=n.readSync(i.dataId),[c,h,m]=c9(l,u,p,s.shape,s.dtype,d,i.shape,o),f=c.map(b=>n.makeTensorInfo([b.length],"int32",b)),g=n.makeTensorInfo(m,s.dtype,h);return f.concat([g])}var hse={kernelName:Em,backendName:"webgl",kernelFunc:dse};function mse(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]=d9(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 fse={kernelName:Am,backendName:"webgl",kernelFunc:mse};function gse(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]=h9(u,r.shape,p,s.shape,s.dtype,d,i.shape,c,h,l);return n.makeTensorInfo(m,s.dtype,f)}var bse={kernelName:Fm,backendName:"webgl",kernelFunc:gse},vA=e=>{let{backend:t,attrs:n}=e,{start:a,stop:r,step:s,dtype:i}=n,o=m9(a,r,s,i);return t.makeTensorInfo([o.length],i,o)},yse={kernelName:Mc,backendName:"webgl",kernelFunc:vA},xse="return 1.0 / x;",vse=Ye({opSnippet:xse}),wse={kernelName:xo,backendName:"webgl",kernelFunc:vse},kse=Ma+` +`,Ase=mn({opSnippet:_se,packedOpSnippet:Ese}),Fse={kernelName:vo,backendName:"webgl",kernelFunc:Ase};function $se(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=r.shape.length,l=[],u=w.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:b}=_9(c.shape,c.dtype,m,p);h=n.makeTensorInfo(g,b,f)}else{let[m,f]=N.computeOutAndReduceShapes(c.shape,p),g=w.sizeFromShape(f),b=ce({inputs:{x:c},backend:n,attrs:{shape:[-1,g]}}),y=Mm(r.dtype),x=el(b,y,"prod",n);h=ce({inputs:{x},backend:n,attrs:{shape:m}}),l.push(b),l.push(x)}if(i){l.push(h);let m=N.expandShapeToKeepDim(h.shape,u);h=ce({inputs:{x:h},backend:n,attrs:{shape:m}})}return l.forEach(m=>n.disposeIntermediateTensorInfo(m)),h}var Dse={kernelName:ko,backendName:"webgl",kernelFunc:$se};function Rse(e){let{inputs:t,backend:n,attrs:a}=e,{paramsNestedSplits:r,paramsDenseValues:s,indices:i}=t,{outputRaggedRank:o}=a,l=r.map(b=>n.readSync(b.dataId)),u=r.map(b=>b.shape),p=n.readSync(s.dataId),d=n.readSync(i.dataId),[c,h,m]=E9(l,u,p,s.shape,s.dtype,d,i.shape,o),f=c.map(b=>n.makeTensorInfo([b.length],"int32",b)),g=n.makeTensorInfo(m,s.dtype,h);return f.concat([g])}var Mse={kernelName:Am,backendName:"webgl",kernelFunc:Rse};function Pse(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]=A9(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 Ose={kernelName:Fm,backendName:"webgl",kernelFunc:Pse};function Lse(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]=F9(u,r.shape,p,s.shape,s.dtype,d,i.shape,c,h,l);return n.makeTensorInfo(m,s.dtype,f)}var zse={kernelName:$m,backendName:"webgl",kernelFunc:Lse},AA=e=>{let{backend:t,attrs:n}=e,{start:a,stop:r,step:s,dtype:i}=n,o=$9(a,r,s,i);return t.makeTensorInfo([o.length],i,o)},Wse={kernelName:Bc,backendName:"webgl",kernelFunc:AA},Bse="return 1.0 / x;",Vse=Ze({opSnippet:Bse}),Use={kernelName:Io,backendName:"webgl",kernelFunc:Vse},Gse=Ma+` return (x < 0.0) ? 0.0 : x; -`,Ise=` +`,Hse=` vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -4127,9 +4135,9 @@ return a / b;`,Fre=` result.a = isNaN.a ? x.a : result.a; return result; -`,Sse=Ye({opSnippet:kse,packedOpSnippet:Ise}),Nse={kernelName:vo,backendName:"webgl",kernelFunc:Sse},Tse=Ma+` +`,qse=Ze({opSnippet:Gse,packedOpSnippet:Hse}),jse={kernelName:So,backendName:"webgl",kernelFunc:qse},Kse=Ma+` return (x < 0.0) ? 0.0 : min(6.0, x); -`,Cse=` +`,Xse=` vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -4139,7 +4147,7 @@ return a / b;`,Fre=` result.a = isNaN.a ? x.a : result.a; return result; -`,_se=Ye({opSnippet:Tse,packedOpSnippet:Cse}),Ese={kernelName:Io,backendName:"webgl",kernelFunc:_se},Ase=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=` +`,Yse=Ze({opSnippet:Kse,packedOpSnippet:Xse}),Zse={kernelName:Co,backendName:"webgl",kernelFunc:Yse},Jse=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]}); @@ -4172,7 +4180,7 @@ return a / b;`,Fre=` setOutput(newValue); } - `}},Fse=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=` + `}},Qse=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]}, @@ -4249,7 +4257,7 @@ return a / b;`,Fre=` setOutput(newValue); } - `}};function $se(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,p=G().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new Fse(r.shape,l,u,s,i):new Ase(r.shape,l,u,s,i);return n.runWebGLProgram(p,[r],"float32")}var Dse={kernelName:ko,backendName:"webgl",kernelFunc:$se},Rse=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 eie(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,p=G().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new Qse(r.shape,l,u,s,i):new Jse(r.shape,l,u,s,i);return n.runWebGLProgram(p,[r],"float32")}var tie={kernelName:To,backendName:"webgl",kernelFunc:eie},nie=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]; @@ -4330,7 +4338,7 @@ return a / b;`,Fre=` setOutput(accumulator); } - `}};function Mse(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=new Rse(s.shape,r.shape,i);return n.runWebGLProgram(o,[s],s.dtype)}var Pse={kernelName:Du,backendName:"webgl",kernelFunc:Mse},Ose=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 aie(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=new nie(s.shape,r.shape,i);return n.runWebGLProgram(o,[s],s.dtype)}var rie={kernelName:Pu,backendName:"webgl",kernelFunc:aie},sie=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]}); @@ -4352,7 +4360,7 @@ return a / b;`,Fre=` setOutput(newValue); } - `}},Lse=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=` + `}},iie=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]}, @@ -4393,7 +4401,7 @@ return a / b;`,Fre=` setOutput(newValue); } - `}};function zse(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,p=G().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new Lse(r.shape,l,u,s,i):new Ose(r.shape,l,u,s,i);return n.runWebGLProgram(p,[r],r.dtype)}var Wse={kernelName:wo,backendName:"webgl",kernelFunc:zse},Bse=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 oie(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,p=G().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new iie(r.shape,l,u,s,i):new sie(r.shape,l,u,s,i);return n.runWebGLProgram(p,[r],r.dtype)}var lie={kernelName:No,backendName:"webgl",kernelFunc:oie},uie=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]; @@ -4463,7 +4471,7 @@ return a / b;`,Fre=` setOutput(accumulator); } - `}};function Vse(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=new Bse(s.shape,r.shape,i);return n.runWebGLProgram(o,[s],s.dtype)}var Use={kernelName:$u,backendName:"webgl",kernelFunc:Vse},Gse=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 pie(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=new uie(s.shape,r.shape,i);return n.runWebGLProgram(o,[s],s.dtype)}var cie={kernelName:Mu,backendName:"webgl",kernelFunc:pie},die=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)); @@ -4473,7 +4481,7 @@ return a / b;`,Fre=` ${s} coords = getOutputCoords(); setOutput(getX(${r})); } - `}},Hse=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=ct(n);n===1?this.userCode=` + `}},hie=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=ct(n);n===1?this.userCode=` void main(){ int rc = getOutputCoords(); vec4 result = vec4(0.); @@ -4501,7 +4509,7 @@ return a / b;`,Fre=` } 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((b,y)=>c(y,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 qse(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=G().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new Hse(r.shape,o):new Gse(r.shape,o);return n.runWebGLProgram(l,[r],r.dtype)}var jse={kernelName:So,backendName:"webgl",kernelFunc:qse},Kse=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((b,y)=>c(y,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 mie(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a,i=r.shape.length,o=w.parseAxisParam(s,r.shape);if(i===0)return aa({inputs:{x:r},backend:n});let l=G().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new hie(r.shape,o):new die(r.shape,o);return n.runWebGLProgram(l,[r],r.dtype)}var fie={kernelName:_o,backendName:"webgl",kernelFunc:mie},gie=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() { @@ -4520,7 +4528,7 @@ return a / b;`,Fre=` } setOutput(outputValue); } - `}},Xse={kernelName:Xu,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{image:a}=e,{radians:r,fillValue:s,center:i}=t,o=n,l=new Kse(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)}},Yse=` + `}},bie={kernelName:Zu,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{image:a}=e,{radians:r,fillValue:s,center:i}=t,o=n,l=new gie(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)}},yie=` // OpenGL ES does not support round function. // The algorithm is based on banker's rounding. float base = floor(x); @@ -4535,7 +4543,7 @@ return a / b;`,Fre=` return base + 1.0; } } -`,Zse=Ye({opSnippet:Yse}),Jse={kernelName:No,backendName:"webgl",kernelFunc:Zse},Qse="return inversesqrt(x);",eie=Ye({opSnippet:Qse,cpuKernelImpl:f9}),tie={kernelName:To,backendName:"webgl",kernelFunc:eie},Y1=class{constructor(e,t,n,a,r,s,i=!0,o=!1){this.variableNames=["updates","indices","defaultValue"],this.outputShape=s;let l=ct(r.length),u=ct(s.length),p="";n===1?p="i":n===2&&(p="i, j");let d=`getIndices(${p})`,c="";a===1?c="i":a===2&&(c="i, coords[1]");let h=`getUpdates(${c})`,m="";o&&(m="coords[0], coords[1]");let f=`getDefaultValue(${m})`,g=t>1?"strides[j]":"strides";this.userCode=` +`,xie=Ze({opSnippet:yie}),vie={kernelName:Eo,backendName:"webgl",kernelFunc:xie},wie="return inversesqrt(x);",kie=Ze({opSnippet:wie,cpuKernelImpl:D9}),Iie={kernelName:Ao,backendName:"webgl",kernelFunc:kie},rk=class{constructor(e,t,n,a,r,s,i=!0,o=!1){this.variableNames=["updates","indices","defaultValue"],this.outputShape=s;let l=ct(r.length),u=ct(s.length),p="";n===1?p="i":n===2&&(p="i, j");let d=`getIndices(${p})`,c="";a===1?c="i":a===2&&(c="i, coords[1]");let h=`getUpdates(${c})`,m="";o&&(m="coords[0], coords[1]");let f=`getDefaultValue(${m})`,g=t>1?"strides[j]":"strides";this.userCode=` ${l} strides = ${l}(${r}); void main() { @@ -4555,7 +4563,7 @@ return a / b;`,Fre=` } setOutput(mix(${f}, sum, float(found))); } - `}},nie=class{constructor(e,t,n,a,r,s,i=!0,o=!1){this.variableNames=["updates","indices","defaultValue"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=s;let l=ct(r.length),u=ct(s.length),p="";n===1?p="i":n===2&&(p="i, j");let d=`getIndices(${p})`,c="";a===1?c="i":a===2&&(c="i, coords[1]");let h=`getUpdates(${c})`,m="";o&&(m="coords[0], coords[1]");let f=`getDefaultValue(${m})`,g=t>1?"strides[j]":"strides",b=t>1?"strides[j + 1]":"strides";this.userCode=` + `}},Sie=class{constructor(e,t,n,a,r,s,i=!0,o=!1){this.variableNames=["updates","indices","defaultValue"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=s;let l=ct(r.length),u=ct(s.length),p="";n===1?p="i":n===2&&(p="i, j");let d=`getIndices(${p})`,c="";a===1?c="i":a===2&&(c="i, coords[1]");let h=`getUpdates(${c})`,m="";o&&(m="coords[0], coords[1]");let f=`getDefaultValue(${m})`,g=t>1?"strides[j]":"strides",b=t>1?"strides[j + 1]":"strides";this.userCode=` ${l} strides = ${l}(${r}); void main() { @@ -4592,7 +4600,7 @@ return a / b;`,Fre=` } setOutput(mix(${f}, sum, found)); } - `}};function aie(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=ce({inputs:{x:r},backend:n,attrs:{shape:[l,o]}}),m=ce({inputs:{x:s},backend:n,attrs:{shape:[l,u]}}),f=n.makeTensorInfo([],"float32",new Float32Array([0])),g;G().getBool("WEBGL_PACK")?g=new nie(l,o,h.shape.length,m.shape.length,p,c):g=new Y1(l,o,h.shape.length,m.shape.length,p,c);let b=n.runWebGLProgram(g,[m,h,f],m.dtype),y=ce({inputs:{x:b},backend:n,attrs:{shape:i}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(b),n.disposeIntermediateTensorInfo(f),y}var rie={kernelName:Ru,backendName:"webgl",kernelFunc:aie},sie=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=G().getNumber("WEBGL_VERSION")===2?r:s,o=a==="left"?"<":"<=";this.userCode=` + `}};function Nie(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=ce({inputs:{x:r},backend:n,attrs:{shape:[l,o]}}),m=ce({inputs:{x:s},backend:n,attrs:{shape:[l,u]}}),f=n.makeTensorInfo([],"float32",new Float32Array([0])),g;G().getBool("WEBGL_PACK")?g=new Sie(l,o,h.shape.length,m.shape.length,p,c):g=new rk(l,o,h.shape.length,m.shape.length,p,c);let b=n.runWebGLProgram(g,[m,h,f],m.dtype),y=ce({inputs:{x:b},backend:n,attrs:{shape:i}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(b),n.disposeIntermediateTensorInfo(f),y}var Tie={kernelName:Ou,backendName:"webgl",kernelFunc:Nie},Cie=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=G().getNumber("WEBGL_VERSION")===2?r:s,o=a==="left"?"<":"<=";this.userCode=` int findBound(int batch, float value) { int left = 0; int right = numInputs; @@ -4617,7 +4625,7 @@ return a / b;`,Fre=` setOutput(float(findBound(batch, value))); } - `}};function iie(e){let{inputs:t,backend:n,attrs:a}=e,{sortedSequence:r,values:s}=t,{side:i}=a,o=new sie(r.shape[0],r.shape[1],s.shape[1],i),l=[[r.shape[1]]];return n.runWebGLProgram(o,[r,s],"int32",l)}var oie={kernelName:Pu,backendName:"webgl",kernelFunc:iie},lie=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); -`,die=Ye({opSnippet:cie}),hie={kernelName:Co,backendName:"webgl",kernelFunc:die},mie=cp+` +`,Rie=Ze({opSnippet:Die}),Mie={kernelName:Fo,backendName:"webgl",kernelFunc:Rie},Pie=mp+` return 1.0 / (1.0 + exp(-1.0 * x)); -`,fie=` +`,Oie=` vec4 result = 1.0 / (1.0 + exp(-1.0 * x)); bvec4 isNaN = isnan(x); @@ -4645,20 +4653,20 @@ return a / b;`,Fre=` result.a = isNaN.a ? x.a : result.a; return result; -`,gie=Ye({opSnippet:mie,packedOpSnippet:fie,cpuKernelImpl:b9}),bie={kernelName:Ao,backendName:"webgl",kernelFunc:gie},yie=` +`,Lie=Ze({opSnippet:Pie,packedOpSnippet:Oie,cpuKernelImpl:M9}),zie={kernelName:Mo,backendName:"webgl",kernelFunc:Lie},Wie=` if (isnan(x)) { return 0.0; } return sign(x); -`,xie=Ye({opSnippet:yie}),vie={kernelName:Eo,backendName:"webgl",kernelFunc:xie},wie=cp+` +`,Bie=Ze({opSnippet:Wie}),Vie={kernelName:Ro,backendName:"webgl",kernelFunc:Bie},Uie=mp+` return sin(x); -`,kie=` +`,Gie=` vec4 result = sin(x); bvec4 isNaN = isnan(x); - ${Ko} + ${Qo} return result; -`,Iie=Ye({opSnippet:wie,packedOpSnippet:kie}),Sie={kernelName:_o,backendName:"webgl",kernelFunc:Iie},Nie=` +`,Hie=Ze({opSnippet:Uie,packedOpSnippet:Gie}),qie={kernelName:$o,backendName:"webgl",kernelFunc:Hie},jie=` float e2x = exp(x); return (e2x - 1.0 / e2x) / 2.0; -`,Tie=Ye({opSnippet:Nie}),Cie={kernelName:zu,backendName:"webgl",kernelFunc:Tie},_ie=` +`,Kie=Ze({opSnippet:jie}),Xie={kernelName:Do,backendName:"webgl",kernelFunc:Kie},Yie=` float epsilon = 1.1920928955078125e-7; float threshold = log(epsilon) + 2.0; @@ -4678,17 +4686,17 @@ return a / b;`,Fre=` result = log(exp_x + 1.0); } return result; -`,Eie=Ye({opSnippet:_ie}),Aie={kernelName:Fo,backendName:"webgl",kernelFunc:Eie},Fie=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((b,y)=>b*y),l=[[0,0]];l.push(...i);for(let b=1+s.length;bn.disposeIntermediateTensorInfo(b)),g},$ie={kernelName:Wu,backendName:"webgl",kernelFunc:Fie};function Die(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: +`,Zie=Ze({opSnippet:Yie}),Jie={kernelName:Po,backendName:"webgl",kernelFunc:Zie},Qie=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,paddings:i}=a;w.assert(r.shape.length<=4,()=>"spaceToBatchND for rank > 4 with a WebGL backend not implemented yet");let o=s.reduce((b,y)=>b*y),l=[[0,0]];l.push(...i);for(let b=1+s.length;bn.disposeIntermediateTensorInfo(b)),g},eoe={kernelName:Vu,backendName:"webgl",kernelFunc:Qie};function toe(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]=x9(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 Rie={kernelName:Pc,backendName:"webgl",kernelFunc:Die};function Mie(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]=v9(o,a.shape,a.dtype,i,l);return[n.makeTensorInfo(p,a.dtype,u),n.makeTensorInfo([d.length],s.dtype,new Int32Array(d))]}var Pie={kernelName:Vu,backendName:"webgl",kernelFunc:Mie};function Oie(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]=O9(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 noe={kernelName:Vc,backendName:"webgl",kernelFunc:toe};function aoe(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]=L9(o,a.shape,a.dtype,i,l);return[n.makeTensorInfo(p,a.dtype,u),n.makeTensorInfo([d.length],s.dtype,new Int32Array(d))]}var roe={kernelName:Gu,backendName:"webgl",kernelFunc:aoe};function soe(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]=UE(i,a.shape,a.dtype,o,l,!0);return n.makeTensorInfo(p,a.dtype,u)}var Lie={kernelName:Oc,backendName:"webgl",kernelFunc:Oie};function zie(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]=QE(i,a.shape,a.dtype,o,l,!0);return n.makeTensorInfo(p,a.dtype,u)}var ioe={kernelName:Uc,backendName:"webgl",kernelFunc:soe};function ooe(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]=UE(i,a.shape,a.dtype,o,l);return n.makeTensorInfo(p,a.dtype,u)}var Wie={kernelName:Lc,backendName:"webgl",kernelFunc:zie};function Bie(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 b=n.bufferSync(r),y=n.bufferSync(s),x=v.decodeString(n.readSync(i.dataId)[0]),w=g9(b,y,o,c,p,u,l,d,x,h);return n.makeTensorInfo(o,w.dtype,w.values)}let m=new Y1(u,l,r.shape.length,s.shape.length,d,[c,1],h),f=n.runWebGLProgram(m,[s,r,i],s.dtype),g=ce({inputs:{x:f},backend:n,attrs:{shape:o}});return n.disposeIntermediateTensorInfo(f),g}var Vie={kernelName:Uu,backendName:"webgl",kernelFunc:Bie};function Uie(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=dp({inputs:{x:r},backend:n,attrs:{begin:p,size:h}});return p[o]+=c,m})}var Gie={kernelName:Bu,backendName:"webgl",kernelFunc:Uie},sS="return sqrt(x);",Hie=Ye({opSnippet:sS,packedOpSnippet:sS,cpuKernelImpl:w9}),qie={kernelName:$o,backendName:"webgl",kernelFunc:Hie},jie="return x * x;",Kie=Ye({opSnippet:jie}),Xie={kernelName:zc,backendName:"webgl",kernelFunc:Kie},iS="return (a - b) * (a - b);",Yie=mn({opSnippet:iS,packedOpSnippet:iS}),Zie={kernelName:Mo,backendName:"webgl",kernelFunc:Yie};function Jie(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;if(r.dtype!=="string")throw new Error("Input must be of datatype string");let s=n.readSync(r.dataId),i=N.fromUint8ToStringArray(s),o=k9(i,"string",a);return n.makeTensorInfo(r.shape,"string",o)}var Qie={kernelName:Wc,backendName:"webgl",kernelFunc:Jie};function eoe({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]=QE(i,a.shape,a.dtype,o,l);return n.makeTensorInfo(p,a.dtype,u)}var loe={kernelName:Gc,backendName:"webgl",kernelFunc:ooe};function uoe(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 b=n.bufferSync(r),y=n.bufferSync(s),x=w.decodeString(n.readSync(i.dataId)[0]),v=R9(b,y,o,c,p,u,l,d,x,h);return n.makeTensorInfo(o,v.dtype,v.values)}let m=new rk(u,l,r.shape.length,s.shape.length,d,[c,1],h),f=n.runWebGLProgram(m,[s,r,i],s.dtype),g=ce({inputs:{x:f},backend:n,attrs:{shape:o}});return n.disposeIntermediateTensorInfo(f),g}var poe={kernelName:Hu,backendName:"webgl",kernelFunc:uoe};function coe(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{numOrSizeSplits:s,axis:i}=a,o=w.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=fp({inputs:{x:r},backend:n,attrs:{begin:p,size:h}});return p[o]+=c,m})}var doe={kernelName:Uu,backendName:"webgl",kernelFunc:coe},mS="return sqrt(x);",hoe=Ze({opSnippet:mS,packedOpSnippet:mS,cpuKernelImpl:z9}),moe={kernelName:Oo,backendName:"webgl",kernelFunc:hoe},foe="return x * x;",goe=Ze({opSnippet:foe}),boe={kernelName:Hc,backendName:"webgl",kernelFunc:goe},fS="return (a - b) * (a - b);",yoe=mn({opSnippet:fS,packedOpSnippet:fS}),xoe={kernelName:Wo,backendName:"webgl",kernelFunc:yoe};function voe(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;if(r.dtype!=="string")throw new Error("Input must be of datatype string");let s=n.readSync(r.dataId),i=N.fromUint8ToStringArray(s),o=W9(i,"string",a);return n.makeTensorInfo(r.shape,"string",o)}var woe={kernelName:qc,backendName:"webgl",kernelFunc:voe};function koe({inputs:e,attrs:t,backend:n}){let{x:a}=e,r=Ma+` return x > 0.0 ? 1.0 : float(${t.alpha}); - `,s=new rr(a.shape,r);return n.runWebGLProgram(s,[a],a.dtype)}var toe={kernelName:vs,backendName:"webgl",kernelFunc:eoe},noe=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=n;let a=n.length,r=ct(n.length),s=ct(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 Ioe={kernelName:ws,backendName:"webgl",kernelFunc:koe},Soe=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=n;let a=n.length,r=ct(n.length),s=ct(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}); @@ -4696,15 +4704,15 @@ return a / b;`,Fre=` ${s} coords = getOutputCoords(); setOutput(getX(${i})); } - `}};function aoe(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:b,begin:y,end:x,strides:w}=Kt.sliceInfo(r.shape,s,i,o,l,u,p,d,c),I;if(f)I=ce({inputs:{x:r},backend:n,attrs:{shape:m}});else if(g||b){v.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let C=Kt.computeOutShape(y,x,w),E=dp({inputs:{x:r},backend:n,attrs:{begin:y,size:C}});I=ce({inputs:{x:E},backend:n,attrs:{shape:m}}),n.disposeIntermediateTensorInfo(E)}else if(n.shouldExecuteOnCPU([r])){let C=n.readSync(r.dataId),E=Le(r.shape,r.dtype,C),F=I9(h,E,w,y);I=n.makeTensorInfo(m,r.dtype,F.values)}else{let C=new noe(y,w,h);I=n.runWebGLProgram(C,[r],r.dtype)}let T=ce({inputs:{x:I},backend:n,attrs:{shape:m}});return n.disposeIntermediateTensorInfo(I),T}var roe={kernelName:Gu,backendName:"webgl",kernelFunc:aoe};function soe(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]=S9(c,h,r,s,i,o,l,u);return[n.makeTensorInfo([m.length],"string",m),n.makeTensorInfo(d.shape,"int32",f)]}var ioe={kernelName:Bc,backendName:"webgl",kernelFunc:soe};function ooe(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]=N9(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 loe={kernelName:Vc,backendName:"webgl",kernelFunc:ooe};function uoe(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=T9(i,r);return n.makeTensorInfo(s.shape,"int32",o)}var poe={kernelName:Uc,backendName:"webgl",kernelFunc:uoe},coe="return tan(x);",doe=Ye({opSnippet:coe}),hoe={kernelName:Oo,backendName:"webgl",kernelFunc:doe},moe=` + `}};function Noe(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:b,begin:y,end:x,strides:v}=Xt.sliceInfo(r.shape,s,i,o,l,u,p,d,c),I;if(f)I=ce({inputs:{x:r},backend:n,attrs:{shape:m}});else if(g||b){w.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let C=Xt.computeOutShape(y,x,v),E=fp({inputs:{x:r},backend:n,attrs:{begin:y,size:C}});I=ce({inputs:{x:E},backend:n,attrs:{shape:m}}),n.disposeIntermediateTensorInfo(E)}else if(n.shouldExecuteOnCPU([r])){let C=n.readSync(r.dataId),E=Le(r.shape,r.dtype,C),F=B9(h,E,v,y);I=n.makeTensorInfo(m,r.dtype,F.values)}else{let C=new Soe(y,v,h);I=n.runWebGLProgram(C,[r],r.dtype)}let T=ce({inputs:{x:I},backend:n,attrs:{shape:m}});return n.disposeIntermediateTensorInfo(I),T}var Toe={kernelName:qu,backendName:"webgl",kernelFunc:Noe};function Coe(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]=V9(c,h,r,s,i,o,l,u);return[n.makeTensorInfo([m.length],"string",m),n.makeTensorInfo(d.shape,"int32",f)]}var _oe={kernelName:jc,backendName:"webgl",kernelFunc:Coe};function Eoe(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]=U9(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 Aoe={kernelName:Kc,backendName:"webgl",kernelFunc:Eoe};function Foe(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=G9(i,r);return n.makeTensorInfo(s.shape,"int32",o)}var $oe={kernelName:Xc,backendName:"webgl",kernelFunc:Foe},Doe="return tan(x);",Roe=Ze({opSnippet:Doe}),Moe={kernelName:Vo,backendName:"webgl",kernelFunc:Roe},Poe=` float e2x = exp(-2.0 * abs(x)); return sign(x) * (1.0 - e2x) / (1.0 + e2x); -`,foe=Ye({opSnippet:moe}),goe={kernelName:Lo,backendName:"webgl",kernelFunc:foe};function boe(e){let{inputs:t,backend:n,attrs:a}=e,{tensor:r,indices:s,updates:i}=t,{}=a,{sliceRank:o,numUpdates:l,sliceSize:u,strides:p,outputSize:d}=N.calculateShapes(i,s,r.shape),c=[d/u,u];if(d===0)return n.makeTensorInfo(r.shape,s.dtype);let h=ce({inputs:{x:s},backend:n,attrs:{shape:[l,o]}}),m=ce({inputs:{x:i},backend:n,attrs:{shape:[l,u]}}),f=ce({inputs:{x:r},backend:n,attrs:{shape:c}}),g=new Y1(l,o,h.shape.length,m.shape.length,p,c,!1,!0),b=n.runWebGLProgram(g,[m,h,f],f.dtype),y=ce({inputs:{x:b},backend:n,attrs:{shape:r.shape}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(b),y}var yoe={kernelName:Mu,backendName:"webgl",kernelFunc:boe},xoe=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=Le(r.shape,r.dtype,l),p=_9(u,s);return n.makeTensorInfo(p.shape,p.dtype,p.values)}let i=new xoe(r.shape,s);return n.runWebGLProgram(i,[r],r.dtype)}var woe={kernelName:xs,backendName:"webgl",kernelFunc:wA},koe=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 Voe(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=>w.decodeString(d)):o,u=Le(r.shape,r.dtype,l),p=q9(u,s);return n.makeTensorInfo(p.shape,p.dtype,p.values)}let i=new Boe(r.shape,s);return n.runWebGLProgram(i,[r],r.dtype)}var Uoe={kernelName:vs,backendName:"webgl",kernelFunc:FA},Goe=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]; @@ -4744,7 +4752,7 @@ return a / b;`,Fre=` setOutput(float(i1)); } } - `}},Ioe=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=` + `}},Hoe=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(); @@ -4778,7 +4786,7 @@ return a / b;`,Fre=` setOutput(x0 >= x1 ? float(i0) : float(i1)); } - `}};function Hs(e,t){t!==null&&e.disposeIntermediateTensorInfo(t)}function oS(e){let t=1;for(;tl){let F=n.readSync(r.dataId),[D,$]=E9(F,u,r.dtype,s,i);return[n.makeTensorInfo(D.shape,D.dtype,D.values),n.makeTensorInfo($.shape,$.dtype,$.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=ce({inputs:{x:h},attrs:{shape:[m,p]},backend:n});c&&Hs(n,h);let g=oS(s),b=oS(p),y=null,x=()=>y===null?[f,f]:[f,y],w=(F,D,$)=>{let S=x(),M=new koe($),B=[[p],[y===null?1:0],[Number.NEGATIVE_INFINITY],[F],[D]],U=y;y=n.runWebGLProgram(M,S,"int32",B),Hs(n,U)};for(let F=1;F=1;$/=2)w(D,$,[m,b])}for(let F=b;F>g;F/=2){let D=x(),$=new Ioe([m,F/2]),S=[[p],[y===null?1:0],[g]],M=y;y=n.runWebGLProgram($,D,"int32",S),Hs(n,M);let B=g/2,U=B*2;for(let H=B;H>=1;H/=2)w(U,H,y.shape)}let I=y;y=dp({inputs:{x:y},backend:n,attrs:{begin:0,size:[m,s]}}),Hs(n,I);let T=hA({inputs:{x:f,indices:y},backend:n,attrs:{axis:1,batchDims:1}});Hs(n,f);let C=u.slice(0,-1);C.push(s),I=y,y=ce({inputs:{x:y},attrs:{shape:C},backend:n}),Hs(n,I);let E=T;return T=ce({inputs:{x:T},attrs:{shape:C},backend:n}),Hs(n,E),[T,y]}var Noe={kernelName:Hu,backendName:"webgl",kernelFunc:Soe},Toe=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 qs(e,t){t!==null&&e.disposeIntermediateTensorInfo(t)}function gS(e){let t=1;for(;tl){let F=n.readSync(r.dataId),[D,$]=j9(F,u,r.dtype,s,i);return[n.makeTensorInfo(D.shape,D.dtype,D.values),n.makeTensorInfo($.shape,$.dtype,$.values)]}if(s===0)return u[u.length-1]=0,[n.makeTensorInfo(u,r.dtype,[]),n.makeTensorInfo(u,"int32",[])];if(p===1)return[r,$d({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=w.sizeFromShape(u)/p,f=ce({inputs:{x:h},attrs:{shape:[m,p]},backend:n});c&&qs(n,h);let g=gS(s),b=gS(p),y=null,x=()=>y===null?[f,f]:[f,y],v=(F,D,$)=>{let S=x(),M=new Goe($),B=[[p],[y===null?1:0],[Number.NEGATIVE_INFINITY],[F],[D]],U=y;y=n.runWebGLProgram(M,S,"int32",B),qs(n,U)};for(let F=1;F=1;$/=2)v(D,$,[m,b])}for(let F=b;F>g;F/=2){let D=x(),$=new Hoe([m,F/2]),S=[[p],[y===null?1:0],[g]],M=y;y=n.runWebGLProgram($,D,"int32",S),qs(n,M);let B=g/2,U=B*2;for(let H=B;H>=1;H/=2)v(U,H,y.shape)}let I=y;y=fp({inputs:{x:y},backend:n,attrs:{begin:0,size:[m,s]}}),qs(n,I);let T=IA({inputs:{x:f,indices:y},backend:n,attrs:{axis:1,batchDims:1}});qs(n,f);let C=u.slice(0,-1);C.push(s),I=y,y=ce({inputs:{x:y},attrs:{shape:C},backend:n}),qs(n,I);let E=T;return T=ce({inputs:{x:T},attrs:{shape:C},backend:n}),qs(n,E),[T,y]}var joe={kernelName:ju,backendName:"webgl",kernelFunc:qoe},Koe=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) { @@ -4890,7 +4898,7 @@ return a / b;`,Fre=` } setOutput(outputValue); } - `}};function Coe(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],b=new Toe(d,c,i,o,l,g);return n.runWebGLProgram(b,[r,s],"float32")}var _oe={kernelName:qu,backendName:"webgl",kernelFunc:Coe};function Eoe(e){let{inputs:t,attrs:n,backend:a}=e,{axis:r}=n,{x:s}=t;ip(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}=A9(i,r,s.shape,s.dtype);return[a.makeTensorInfo(l,s.dtype,o),a.makeTensorInfo([u.length],"int32",u)]}var Aoe={kernelName:Gc,backendName:"webgl",kernelFunc:Eoe};function Foe(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 $oe={kernelName:ju,backendName:"webgl",kernelFunc:Foe},Doe=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 Xoe(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],b=new Koe(d,c,i,o,l,g);return n.runWebGLProgram(b,[r,s],"float32")}var Yoe={kernelName:Ku,backendName:"webgl",kernelFunc:Xoe};function Zoe(e){let{inputs:t,attrs:n,backend:a}=e,{axis:r}=n,{x:s}=t;lp(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}=K9(i,r,s.shape,s.dtype);return[a.makeTensorInfo(l,s.dtype,o),a.makeTensorInfo([u.length],"int32",u)]}var Joe={kernelName:Yc,backendName:"webgl",kernelFunc:Zoe};function Qoe(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 ele={kernelName:Xu,backendName:"webgl",kernelFunc:Qoe},tle=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}) { @@ -4996,7 +5004,7 @@ return a / b;`,Fre=` } setOutput(${l}); } - `}};function Roe(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=ce({inputs:{x:d},backend:n,attrs:{shape:[-1,h]}});l.push(m);let f=Rm(r.dtype),g=(w,I,T,C,E)=>{let F=w.shape[0],D=w.shape[1],$=N.segment_util.segOpComputeOptimalWindowSize(D,E),S={windowSize:$,inSize:D,batchSize:F,numSegments:E},M=new Doe(S,I),B=n.compileAndRun(M,[w,T],C);if(l.push(B),B.shape[1]===E)return B;let U=vA({backend:n,attrs:{start:0,stop:E,step:1,dtype:"float32"}}),H=wA({inputs:{x:U},backend:n,attrs:{reps:[D/$]}});return l.push(U),l.push(H),g(B,I,H,C,E)},b=g(m,"unsortedSegmentSum",s,f,i),y=ce({inputs:{x:b},backend:n,attrs:{shape:c}}),x=y;if(p!=null){l.push(y);let w=N.getUndoAxesPermutation(p);x=Sn({inputs:{x},backend:n,attrs:{perm:w}})}return l.forEach(w=>n.disposeIntermediateTensorInfo(w)),x}var Moe={kernelName:Hc,backendName:"webgl",kernelFunc:Roe},Poe=[IQ,NQ,_Q,FQ,DQ,PQ,LQ,WQ,GQ,qQ,XQ,JQ,tee,see,lee,pee,dee,gee,yee,vee,See,Fee,Dee,Mee,Bee,Uee,jee,iQ,Yee,tte,ste,cte,mte,gte,yte,vte,Ste,Cte,Ate,$te,Rte,Pte,zte,Bte,Hte,jte,Yte,Qte,tne,sne,une,hne,gne,xne,vne,kne,Sne,Tne,_ne,Ane,Rne,One,Wne,Vne,Hne,Kne,Jne,nae,sQ,rae,Qee,oae,pae,hae,lQ,bae,wae,Iae,Cae,Aae,Rae,Oae,Bae,Hae,Kae,Yae,ere,nre,rre,lre,pre,dre,mre,gre,vre,Sre,_re,Pre,cQ,Wre,Ure,qre,Xre,Oee,Jre,ese,nse,sse,use,pQ,cse,hse,fse,bse,yse,Lee,$re,wse,Nse,Ese,hQ,Dse,Pse,Wse,Use,jse,Xse,Jse,tie,rie,oie,pie,hie,bie,vie,Sie,Cie,Eee,Rre,Aie,$ie,Rie,Pie,Lie,Wie,Vie,Gie,qie,Xie,Zie,Qie,toe,roe,ioe,loe,poe,Dre,vQ,hoe,goe,yoe,woe,Noe,_oe,wQ,Aoe,$oe,Moe,Qre];for(let e of Poe)qc(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 Nc;(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"})(Nc||(Nc={}));var kA;function Ooe(e){kA=e.wasm.cwrap(si,null,["number","array","number","number","array","number","number","number","number","number","number","number","number"])}function Loe(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=Nc[p];if(g==null)throw new Error(`${p} activation not yet supported for FusedConv2D in the wasm backend.`);let b=l?r.shape[2]:r.shape[1],y=u?s.shape[1]:s.shape[2],x=Yu.assertAndGetBroadcastShape(r.shape.slice(0,-2),s.shape.slice(0,-2)),w=n.makeOutput([...x,b,y],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 kA(c,T,r.shape.length,h,C,s.shape.length,l,u,g,m,f,d||0,I),w}var zoe={kernelName:si,backendName:"wasm",setupFunc:Ooe,kernelFunc:Loe};function Je(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 Woe=Je(ql),Boe=Je(Ii),Voe=Je(Si);function ln(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),b=new Uint8Array(new Int32Array(p.shape).buffer),y=o.dataIdMap.get(f.dataId).id;return a(d,g,u.shape.length,c,b,p.shape.length,et[u.dtype],y),f}return{kernelName:e,backendName:"wasm",setupFunc:r,kernelFunc:s}}var Uoe=!0,Goe=ln(bs,Uoe),IA;function Hoe(e){IA=e.wasm.cwrap(Ni,null,["array","number","number","number"])}function qoe(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 IA(s,r.length,et[a.dtype],i),a}var joe={kernelName:Ni,backendName:"wasm",setupFunc:Hoe,kernelFunc:qoe};function Bf(e){let{inputs:{x:t},backend:n}=e;if(t.dtype==="string")return bn(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 Koe={kernelName:Zi,backendName:"wasm",kernelFunc:Bf},SA;function Xoe(e){SA=e.wasm.cwrap(_r,null,["number","array","number","number","number","array","number"])}function fs(e){let{inputs:t,backend:n,attrs:a}=e,[r,s]=Zoe(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 Joe={kernelName:_r,backendName:"wasm",kernelFunc:fs,setupFunc:Xoe};function As(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 wle={kernelName:Fu,backendName:"wasm",kernelFunc:Wn},FA;function kle(e){FA=e.wasm.cwrap($i,null,["number","array","number","number","array","number","number","number","number"])}function Ile(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),b=v.sizeFromShape(f),y=Yu.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?[b,h,d]:[b,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,F=i?I.shape[2]:I.shape[1],D=o?T.shape[1]:T.shape[2],$=Math.max(g,b),S=n.makeOutput([$,F,D],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 FA(C,B,I.shape.length,E,U,T.shape.length,i,o,M),n.disposeData(I.dataId),n.disposeData(T.dataId),S.shape=y,S}var Sle={kernelName:$i,backendName:"wasm",setupFunc:kle,kernelFunc:Ile};function wi(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=sm(l,s,i,t.shape,t.dtype);return d.stringBytes=m,u}let c=r.typedArrayFromHeap(u),h=t.shape.length;if(h===2)Nle(l,p[0],c,s,i);else if(h===3)Tle(l,p[0],p[1],c,s,i);else if(h===4)Cle(l,p[0],p[1],p[2],c,s,i);else{let m=sm(l,s,i,t.shape,t.dtype);c.set(m)}return u}function Nle(e,t,n,a,r){let s=0,i=a[0],o=a[1],l=i+r[0];for(let u=i;ub*y),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=fs({inputs:{x:h},backend:n,attrs:{perm:u}}),f=Wn({inputs:{x:m},backend:n,attrs:{shape:p}}),g=wi({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 Ale={kernelName:Jl,backendName:"wasm",kernelFunc:Ele},$A;function Fle(e){$A=e.wasm.cwrap(Ql,null,["number","number","boolean","number","number","number"])}function $le(e){let{backend:t,inputs:n,attrs:a}=e,{x:r,weights:s}=n,{size:i}=a,o=s.shape.reduce((d,c)=>d*c,1)!==0,l=r.shape.length===1?[i]:[r.shape[0],i],u=t.makeOutput(l,s.dtype);function p(d){return t.dataIdMap.get(d.dataId).id}return $A(p(r),i,o,p(s),et[s.dtype],p(u)),u}var Dle={kernelName:Ql,backendName:"wasm",setupFunc:Fle,kernelFunc:$le};function Rle(e){let{inputs:t,backend:n}=e,{s0:a,s1:r}=t,s=n.typedArrayFromHeap(a),i=n.typedArrayFromHeap(r),o=N.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return n.makeOutput([o.length],"int32",void 0,new Int32Array(o))}var Mle={kernelName:Ec,backendName:"wasm",kernelFunc:Rle};function Fs(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 Ple={kernelName:Di,backendName:"wasm",kernelFunc:Fs},Ole=Je(Ri),DA;function Lle(e){DA=e.wasm.cwrap(ys,null,["number","number","number","number"])}function zle(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 DA(o,s,i,u),l}var Wle={kernelName:ys,backendName:"wasm",setupFunc:Lle,kernelFunc:zle};function RA(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 Bf({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=I1(m,s,t[0].dtype,f),b=N.computeOutShape(i.map(x=>x.shape),a);o.shape=b;let y=n.dataIdMap.get(o.dataId);return y.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=fs({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;BA(m,i?1:0,o?1:0,h,f,et[r.dtype]);let g=c;if(u!==null){let b=N.getUndoAxesPermutation(u);g=fs({inputs:{x:c},attrs:{perm:b},backend:n}),n.disposeData(p.dataId),n.disposeData(c.dataId)}return g}var pue={kernelName:au,backendName:"wasm",setupFunc:lue,kernelFunc:uue},VA;function cue(e){VA=e.wasm.cwrap(Wi,null,["number","number","number","number","number","number"])}function due(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=fs({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;VA(m,i?1:0,o?1:0,h,f,et[r.dtype]);let g=c;if(u!==null){let b=N.getUndoAxesPermutation(u);g=fs({inputs:{x:c},attrs:{perm:b},backend:n}),n.disposeData(p.dataId),n.disposeData(c.dataId)}return g}var hue={kernelName:Wi,backendName:"wasm",setupFunc:cue,kernelFunc:due},UA;function mue(e){UA=e.wasm.cwrap("DenseBincount",null,["number","array","number","number","boolean","number","number","boolean","number"])}function fue(e){let{backend:t,inputs:n,attrs:a}=e,{x:r,weights:s}=n,{size:i,binaryOutput:o}=a,l=s.shape.reduce((c,h)=>c*h,1)!==0,u=r.shape.length===1?[i]:[r.shape[0],i],p=t.makeOutput(u,s.dtype);function d(c){return t.dataIdMap.get(c.dataId).id}return UA(d(r),new Uint8Array(new Int32Array(r.shape).buffer),r.shape.length,i,l,d(s),et[s.dtype],o,d(p)),p}var gue={kernelName:Fc,backendName:"wasm",setupFunc:mue,kernelFunc:fue},GA;function bue(e){GA=e.wasm.cwrap(su,null,["number","number","number","array","number","array","array","number","number"])}function yue(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,b=new Uint8Array(new Int32Array(v.computeStrides(r.shape)).buffer),y=new Uint8Array(new Int32Array(m).buffer),x=new Uint8Array(new Int32Array(v.computeStrides(m)).buffer),w=t.dataIdMap.get(f.dataId).id;return GA(g,s,i==="NHWC"?1:0,b,r.shape.length-1,y,x,m.length,w),f}var xue={kernelName:su,backendName:"wasm",setupFunc:bue,kernelFunc:yue},HA;function vue(e){HA=e.wasm.cwrap(Bi,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function wue(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,b=h.padInfo.right,y=h.padInfo.bottom,x=h.padInfo.left,w=h.dilationHeight,I=h.dilationWidth,T=h.strideHeight,C=h.strideWidth,E=h.inChannels,F=h.outChannels,D=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 $=a.makeOutput(h.outShape,"float32"),S=a.dataIdMap.get($.dataId).id;return HA(i,r.shape[0],r.shape[1],r.shape[2],o,m,f,g,b,y,x,D,w,I,T,C,E,F,S),$}var kue={kernelName:Bi,backendName:"wasm",setupFunc:vue,kernelFunc:wue},qA;function Iue(e){qA=e.wasm.cwrap("Diag",null,["number","number","number","number"])}function Sue(e){let{inputs:t,backend:n}=e,{x:a}=t,r=v.sizeFromShape(a.shape),s=n.makeOutput([...a.shape,...a.shape],a.dtype);return qA(n.dataIdMap.get(a.dataId).id,et[a.dtype],r,n.dataIdMap.get(s.dataId).id),s}var Nue={kernelName:$c,backendName:"wasm",setupFunc:Iue,kernelFunc:Sue},jA;function Tue(e){jA=e.wasm.cwrap(Vi,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Cue(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dilations:l}=a;if(r.dtype!==s.dtype)throw new Error(`Dilation2D error: x must have the same dtype as filter. Got ${r.dtype} and ${s.dtype}`);let u=N.computeDilation2DInfo(r.shape,s.shape,i,o,"NHWC",l),p=n.makeOutput(u.outShape,r.dtype);return jA(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(p.dataId).id,et[r.dtype],u.batchSize,u.inChannels,u.inHeight,u.inWidth,u.outHeight,u.outWidth,u.strideHeight,u.strideWidth,u.dilationHeight,u.dilationWidth,u.filterHeight,u.filterWidth,u.padInfo.top,u.padInfo.left),p}var _ue={kernelName:Vi,backendName:"wasm",setupFunc:Tue,kernelFunc:Cue},KA;function Eue(e){KA=e.wasm.cwrap(Tl,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Aue(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,dy:i}=t,{strides:o,pad:l,dilations:u}=a;if(r.dtype!==s.dtype||r.dtype!==i.dtype)throw new Error(`Dilation2DBackpropFilter error: x must have the same dtype as filter and dy. Got ${r.dtype}, ${s.dtype}, and ${i.dtype}`);let p=N.computeDilation2DInfo(r.shape,s.shape,o,l,"NHWC",u),d=n.makeOutput(s.shape,s.dtype);return KA(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(i.dataId).id,n.dataIdMap.get(d.dataId).id,et[r.dtype],p.batchSize,p.inChannels,p.inHeight,p.inWidth,p.outHeight,p.outWidth,p.strideHeight,p.strideWidth,p.dilationHeight,p.dilationWidth,p.filterHeight,p.filterWidth,p.padInfo.top,p.padInfo.left),d}var Fue={kernelName:Tl,backendName:"wasm",setupFunc:Eue,kernelFunc:Aue},XA;function $ue(e){XA=e.wasm.cwrap(Nl,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Due(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,dy:i}=t,{strides:o,pad:l,dilations:u}=a;if(r.dtype!==s.dtype||r.dtype!==i.dtype)throw new Error(`Dilation2DBackpropInput error: x must have the same dtype as filter and dy. Got ${r.dtype}, ${s.dtype}, and ${i.dtype}`);let p=N.computeDilation2DInfo(r.shape,s.shape,o,l,"NHWC",u),d=n.makeOutput(r.shape,r.dtype);return XA(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(i.dataId).id,n.dataIdMap.get(d.dataId).id,et[r.dtype],p.batchSize,p.inChannels,p.inHeight,p.inWidth,p.outHeight,p.outWidth,p.strideHeight,p.strideWidth,p.dilationHeight,p.dilationWidth,p.filterHeight,p.filterWidth,p.padInfo.top,p.padInfo.left),d}var Rue={kernelName:Nl,backendName:"wasm",setupFunc:$ue,kernelFunc:Due},Mue=Je(Gi),YA;function Pue(e){YA=e.wasm.cwrap(iu,null,["number","number","number"])}function Oue(e){let{inputs:t,backend:n}=e,{dy:a,y:r}=t,s=n.makeOutput(r.shape,"float32"),i=o=>n.dataIdMap.get(o.dataId).id;return YA(i(r),i(a),i(s)),s}var Lue={kernelName:iu,backendName:"wasm",setupFunc:Pue,kernelFunc:Oue},zue=!1,Wue=ln(lu,zue,"bool"),Bue=Je(Hi,"float32");function rv(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 Vue={kernelName:uu,backendName:"wasm",kernelFunc:rv},Uue=Je(qi,"float32");function ZA(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 Gue={kernelName:Dc,backendName:"wasm",kernelFunc:ZA},JA;function Hue(e){JA=e.wasm.cwrap(pu,null,["number","number","number","number","number","number"])}function que(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 JA(s,o,l,u,p,i),r}var jue={kernelName:pu,backendName:"wasm",kernelFunc:que,setupFunc:Hue},Kue=Je(ji),Xue=!1,Yue=ln(Ki,Xue),QA;function Zue(e){QA=e.wasm.cwrap(Xi,null,["number","number","number","number","number","number","number"])}function Jue(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 QA(p,d,c,h,m,r,g),f}var Que={kernelName:Xi,backendName:"wasm",setupFunc:Zue,kernelFunc:Jue},eF;function epe(e){eF=e.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 tpe(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=Nc[h];if(g==null)throw new Error(`${h} activation not yet supported for FusedConv2D in the wasm backend.`);let b=a.dataIdMap.get(r.dataId).id,y=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=f.padInfo.bottom,D=f.padInfo.left,$=f.dilationHeight,S=f.dilationWidth,M=f.strideHeight,B=f.strideWidth,U=f.inChannels,H=f.padInfo.type==="SAME"?1:0,j=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 eF(b,j,K,Z,y,I,T,w,C,E,F,D,H,$,S,M,B,U,x,g,ae,m||0,ee),J}var npe={kernelName:ii,backendName:"wasm",setupFunc:epe,kernelFunc:tpe},tF;function ape(e){tF=e.wasm.cwrap(oi,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 rpe(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=Nc[h];if(g==null)throw new Error(`${h} activation not yet supported for FusedDepthwiseConv2D in the wasm backend.`);let b=a.dataIdMap.get(r.dataId).id,y=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=f.padInfo.bottom,D=f.padInfo.left,$=f.dilationHeight,S=f.dilationWidth,M=f.strideHeight,B=f.strideWidth,U=f.inChannels,H=f.padInfo.type==="SAME"?1:0,j=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 tF(b,j,K,Z,y,I,T,w,C,E,F,D,H,$,S,M,B,U,x,g,ae,m||0,ee),J}var spe={kernelName:oi,backendName:"wasm",setupFunc:ape,kernelFunc:rpe},nF;function ipe(e){nF=e.wasm.cwrap(du,null,["number","number","number","number","number","number","array","number"])}function ope(e){let{backend:t,inputs:n}=e,{params:a,indices:r}=n,[s,i,o,l]=Pw.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 nF(c,et[a.dtype],h,i,d,o,m,f),u}var lpe={kernelName:du,backendName:"wasm",setupFunc:ipe,kernelFunc:ope},aF;function upe(e){aF=e.wasm.cwrap("Gather",null,["number","number","array","number","number","number","array","number"])}function ppe(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 b=c.shape.length-1,y=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 aF(y,et[r.dtype],I,b,x,d.batchSize,T,w),t.disposeData(c.dataId),t.disposeData(m.dataId),g.shape=d.outputShape,g}var cpe={kernelName:cu,backendName:"wasm",setupFunc:upe,kernelFunc:ppe},dpe=!1,hpe=ln(hu,dpe,"bool"),mpe=!1,fpe=ln(Yi,mpe,"bool"),gpe=Je(Ji,"bool"),bpe=Je(Qi,"bool"),ype=Je(eo,"bool"),rF;function xpe(e){rF=e.wasm.cwrap(to,null,["number","number","number","number"])}function vpe(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;rF(r,et[t.dtype],n,i)}return s}var wpe={kernelName:to,backendName:"wasm",setupFunc:xpe,kernelFunc:vpe},kpe=!1,Ipe=ln(mu,kpe,"bool"),Spe=!1,Npe=ln(fu,Spe,"bool"),sF;function Tpe(e){sF=e.wasm.cwrap(gu,null,["number","number","number","number"])}function Cpe(e){let{attrs:t,backend:n}=e,{start:a,stop:r,num:s}=t,i=Math.floor(s),o=n.makeOutput([i],"float32");return sF(n.dataIdMap.get(o.dataId).id,a,r,i),o}var _pe={kernelName:gu,backendName:"wasm",setupFunc:Tpe,kernelFunc:Cpe},Epe=Je(no),Ape=Je(ao),Fpe=!1,$pe=ln(bu,Fpe,"bool"),Dpe=Je(yu),Rpe=!1,Mpe=ln(xu,Rpe,"bool"),Ppe=!1,Ope=ln(_S,Ppe,"bool"),iF;function Lpe(e){iF=e.wasm.cwrap(ro,null,["number","number","number","number","number","number","number"])}function zpe(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=a;if(r.dtype!=="float32")throw new Error("LRN error: x must have dtype float32");let u=n.makeOutput(r.shape,r.dtype);return iF(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(u.dataId).id,r.shape[3],s,i,o,l),u}var Wpe={kernelName:ro,backendName:"wasm",setupFunc:Lpe,kernelFunc:zpe},oF;function Bpe(e){oF=e.wasm.cwrap(vu,null,["number","number","number","number","number","number","number","number","number"])}function Vpe(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;if(r.dtype!=="float32"||s.dtype!=="float32"||i.dtype!=="float32")throw new Error("LRNGrad error: x, y, and dy must have dtype float32");let d=n.makeOutput(r.shape,r.dtype);return oF(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(i.dataId).id,n.dataIdMap.get(d.dataId).id,i.shape[3],o,l,u,p),d}var Upe={kernelName:vu,backendName:"wasm",setupFunc:Bpe,kernelFunc:Vpe},lF;function Gpe(e){lF=e.wasm.cwrap(so,null,["number","number","number","number"])}function Hpe(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}=As(i,r,t);if(c){let y=t.dataIdMap.get(u.dataId).id;l=u,o=y}let h=l.shape.length;N.assertAxesAreInnerMostDims("max",p,h);let[m,f]=N.computeOutAndReduceShapes(l.shape,p),g=v.sizeFromShape(f),b=t.makeOutput(m,i.dtype);if(v.sizeFromShape(l.shape)!==0){let y=t.dataIdMap.get(b.dataId).id;lF(o,et[i.dtype],g,y)}if(c&&t.disposeData(u.dataId),s){let y=N.expandShapeToKeepDim(b.shape,d);b.shape=y}return b}var qpe={kernelName:so,backendName:"wasm",setupFunc:Gpe,kernelFunc:Hpe},jpe=!1,Kpe=ln(io,jpe),uF;function Xpe(e){uF=e.wasm.cwrap(oo,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Ype(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,b=p.dilationHeight,y=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 uF(s,r.shape[0],r.shape[1],r.shape[2],d,c,h,m,f,g,b,y,x,w,I,T,E),C}var Zpe={kernelName:oo,backendName:"wasm",setupFunc:Xpe,kernelFunc:Ype},pF;function Jpe(e){pF=e.wasm.cwrap("MaxPool3D",null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Qpe(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=a,p=N.computePool3DInfo(r.shape,s,i,1,o,l,u),d=n.makeOutput(p.outShape,r.dtype);return pF(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(d.dataId).id,p.batchSize,p.inChannels,p.inDepth,p.inHeight,p.inWidth,p.outDepth,p.outHeight,p.outWidth,p.strideDepth,p.strideHeight,p.strideWidth,p.dilationDepth,p.dilationHeight,p.dilationWidth,p.effectiveFilterDepth,p.effectiveFilterHeight,p.effectiveFilterWidth,p.padInfo.front,p.padInfo.top,p.padInfo.left),d}var ece={kernelName:wu,backendName:"wasm",setupFunc:Jpe,kernelFunc:Qpe},cF;function tce(e){cF=e.wasm.cwrap("MaxPool3DGrad",null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function nce(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=a,p=N.computePool3DInfo(s.shape,i,o,1,l,u),d=n.makeOutput(s.shape,s.dtype);return cF(n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(d.dataId).id,p.batchSize,p.inChannels,p.inDepth,p.inHeight,p.inWidth,p.outDepth,p.outHeight,p.outWidth,p.strideDepth,p.strideHeight,p.strideWidth,p.dilationDepth,p.dilationHeight,p.dilationWidth,p.effectiveFilterDepth,p.effectiveFilterHeight,p.effectiveFilterWidth,p.padInfo.front,p.padInfo.top,p.padInfo.left),d}var ace={kernelName:Rc,backendName:"wasm",setupFunc:tce,kernelFunc:nce},dF;function rce(e){dF=e.wasm.cwrap(lo,null,["number, number, number"])}function sce(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}=As(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),b=v.sizeFromShape(g),y=u;u.dtype!=="float32"&&(y=Fs({backend:t,inputs:{x:u},attrs:{dtype:"float32"}}),l=t.dataIdMap.get(y.dataId).id);let x=t.makeOutput(f,"float32");if(v.sizeFromShape(u.shape)!==0){let w=t.dataIdMap.get(x.dataId).id;dF(l,b,w)}if(h&&t.disposeData(p.dataId),s){let w=N.expandShapeToKeepDim(x.shape,c);x.shape=w}return u.dtype!=="float32"&&t.disposeData(y.dataId),x}var ice={kernelName:lo,backendName:"wasm",setupFunc:rce,kernelFunc:sce},hF;function oce(e){hF=e.wasm.cwrap(uo,null,["number","number","number","number"])}function lce(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}=As(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),b=v.sizeFromShape(g),y=t.makeOutput(f,u.dtype);if(v.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(y.dataId).id;hF(l,et[i.dtype],b,x)}if(h&&t.disposeData(p.dataId),s){let x=N.expandShapeToKeepDim(y.shape,c);y.shape=x}return y}var uce={kernelName:uo,backendName:"wasm",setupFunc:oce,kernelFunc:lce},pce=!1,cce=ln(po,pce),sv;(function(e){e[e.reflect=0]="reflect",e[e.symmetric=1]="symmetric"})(sv||(sv={}));var mF;function dce(e){mF=e.wasm.cwrap(co,null,["number","array","number","number","array","array","number","number"])}function hce(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 mF(i,u,t.shape.length,et[t.dtype],c,h,sv[r],l),o}var mce={kernelName:co,backendName:"wasm",kernelFunc:hce,setupFunc:dce},fF;function fce(e){fF=e.wasm.cwrap(Ro,null,["number","number","number","number"])}function gF(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||fF(r,i,o,l),s}var gce={kernelName:Ro,backendName:"wasm",setupFunc:fce,kernelFunc:gF},bF;function bce(e){bF=e.wasm.cwrap(Iu,null,["number","number","number","number","number","number"])}function yce(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{numSamples:s,seed:i,normalized:o}=a;if(r.dtype!=="float32")throw new Error(`Tensor logits must have dtype float32, got ${r.dtype}`);let l=o?r:gF({inputs:{logits:r},backend:n,attrs:{dim:r.shape.length-1}}),[u,p]=l.shape,d=n.makeOutput([u,s],"int32");return bF(n.dataIdMap.get(l.dataId).id,u,p,s,i,n.dataIdMap.get(d.dataId).id),o||n.disposeData(l.dataId),d}var xce={kernelName:Iu,backendName:"wasm",setupFunc:bce,kernelFunc:yce},vce=!0,wce=ln(ho,vce),kce=Je(Su);function Z1(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 yF;function Ice(e){yF=e.wasm.cwrap(Tu,"number",["number","number","number","number","number"])}function Sce(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=yF(u,p,s,r,i),{pSelectedIndices:c,selectedSize:h,pSelectedScores:m,pValidOutputs:f}=Z1(t,d);return t.wasm._free(m),t.wasm._free(f),t.makeOutput([h],"int32",c)}var Nce={kernelName:Tu,backendName:"wasm",setupFunc:Ice,kernelFunc:Sce},xF;function Tce(e){xF=e.wasm.cwrap(Cu,"number",["number","number","number","number","number","bool"])}function Cce(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=xF(p,d,s,r,i,o),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=Z1(t,c);t.wasm._free(f);let b=t.makeOutput([m],"int32",h),y=t.makeOutput([],"int32",g);return[b,y]}var _ce={kernelName:Cu,backendName:"wasm",setupFunc:Tce,kernelFunc:Cce},vF;function Ece(e){vF=e.wasm.cwrap(_u,"number",["number","number","number","number","number","number"])}function Ace(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=vF(p,d,s,r,i,o),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=Z1(t,c);t.wasm._free(g);let b=t.makeOutput([m],"int32",h),y=t.makeOutput([m],"float32",f);return[b,y]}var Fce={kernelName:_u,backendName:"wasm",setupFunc:Ece,kernelFunc:Ace},$ce=!1,Dce=ln(Nu,$ce,"bool"),wF;function Rce(e){wF=e.wasm.cwrap(mo,null,["number","number","number","number","number"])}function Mce(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 wF(d,i,o,l,p),u}var Pce={kernelName:mo,backendName:"wasm",setupFunc:Rce,kernelFunc:Mce};function Oce(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(a).fill(1),a}var Lce={kernelName:Eu,backendName:"wasm",kernelFunc:Oce};function zce(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a;if(t.length===1)return rv({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=rv({inputs:{input:p},backend:n,attrs:{dim:r}});return o.push(d),d}),u=RA({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(p=>n.disposeData(p.dataId)),u}var Wce={kernelName:Au,backendName:"wasm",kernelFunc:zce},kF;function Bce(e){kF=e.wasm.cwrap(fo,null,["number","array","number","number","array","array","number","number"])}function Vce(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 ZA({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 kF(i,u,t.shape.length,et[t.dtype],c,h,r,l),o}var IF={kernelName:fo,backendName:"wasm",kernelFunc:Vce,setupFunc:Bce},Uce=!1,Gce=ln(go,Uce),SF;function Hce(e){SF=e.wasm.cwrap(bo,null,["number","number","number"])}function qce(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=Fs({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 SF(o,i,d),l.dtype!=="float32"&&n.disposeData(u.dataId),p}var jce={kernelName:bo,backendName:"wasm",setupFunc:Hce,kernelFunc:qce},NF;function Kce(e){NF=e.wasm.cwrap(yo,null,["number","number","number","number"])}function Xce(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}=As(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),b=v.sizeFromShape(g),y=t.makeOutput(f,u.dtype);if(v.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(y.dataId).id;NF(l,b,et[y.dtype],x)}if(h&&t.disposeData(p.dataId),s){let x=N.expandShapeToKeepDim(y.shape,c);y.shape=x}return y}var Yce={kernelName:yo,backendName:"wasm",setupFunc:Kce,kernelFunc:Xce},Zce=e=>{let{backend:t,attrs:n}=e,{start:a,stop:r,step:s,dtype:i}=n,o=T1(a,r,s,i),l=t.makeOutput([o.length],i);return t.typedArrayFromHeap(l).set(o),l},Jce={kernelName:Mc,backendName:"wasm",kernelFunc:Zce},Qce=!0,ede=ln(Ui,Qce),tde=Je(xo),nde=Je(vo),ade=Je(Io),TF;function rde(e){TF=e.wasm.cwrap(ko,null,["number","number","number","number","number","number","number","number","number","number"])}function sde(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=Fs({backend:t,inputs:{x:r},attrs:{dtype:"float32"}}),f=t.dataIdMap.get(g.dataId));let b=f.id,y=t.makeOutput(m,"float32");if(v.sizeFromShape(r.shape)===0)return y;let x=t.dataIdMap.get(y.dataId).id;return TF(b,p,d,c,h,l,u,s?1:0,i?1:0,x),g!=null&&t.disposeData(g.dataId),y}var ide={kernelName:ko,backendName:"wasm",setupFunc:rde,kernelFunc:sde},CF;function ode(e){CF=e.wasm.cwrap(Du,null,["number","number","number","array","array","boolean"])}function lde(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=n.makeOutput(r.shape,"float32"),l=n.dataIdMap.get(r.dataId),u;return l.dtype!=="float32"&&(u=Fs({backend:n,inputs:{x:r},attrs:{dtype:"float32"}}),l=n.dataIdMap.get(u.dataId)),CF(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(o.dataId).id,new Uint8Array(new Int32Array(r.shape).buffer),new Uint8Array(new Int32Array(s.shape).buffer),i),u!=null&&n.disposeData(u.dataId),o}var ude={kernelName:Du,backendName:"wasm",setupFunc:ode,kernelFunc:lde},_F;function pde(e){_F=e.wasm.cwrap(wo,null,["number","number","number","number","number","number","number","number","number","number"])}function cde(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),b;g.dtype!=="float32"&&(b=Fs({backend:t,inputs:{x:r},attrs:{dtype:"float32"}}),g=t.dataIdMap.get(b.dataId));let y=g.id,x=t.dataIdMap.get(f.dataId).id;return _F(y,p,d,c,h,l,u,s?1:0,i?1:0,x),b!=null&&t.disposeData(b.dataId),f}var dde={kernelName:wo,backendName:"wasm",setupFunc:pde,kernelFunc:cde},EF;function hde(e){EF=e.wasm.cwrap($u,null,["number","number","number","array","array","boolean"])}function mde(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=n.makeOutput(r.shape,"float32"),l=n.dataIdMap.get(r.dataId),u;return l.dtype!=="float32"&&(u=Fs({backend:n,inputs:{x:r},attrs:{dtype:"float32"}}),l=n.dataIdMap.get(u.dataId)),EF(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(o.dataId).id,new Uint8Array(new Int32Array(r.shape).buffer),new Uint8Array(new Int32Array(s.shape).buffer),i),u!=null&&n.disposeData(u.dataId),o}var fde={kernelName:$u,backendName:"wasm",setupFunc:hde,kernelFunc:mde},AF;function gde(e){AF=e.wasm.cwrap(So,null,["number","array","number","array","number","number"])}function bde(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 Bf({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);AF(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 yde={kernelName:So,backendName:"wasm",kernelFunc:bde,setupFunc:gde},FF;function xde(e){FF=e.wasm.cwrap(Xu,null,["number","number","number","number","number","number","number","number","array","number","number"])}function vde(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),b=i===0,y=255,x=typeof i=="number"?[i,i,i,b?0:y]:[...i,y],w=new Uint8Array(new Int32Array(x).buffer);return FF(u,d,c,h,m,s,f,g,w,x.length,p),l}var wde={kernelName:Xu,backendName:"wasm",kernelFunc:vde,setupFunc:xde},kde=Je(No),Ide=Je(To),$F;function Sde(e){$F=e.wasm.cwrap(Ru,null,["number","number","number","number","number","number","array","number","number"])}function Nde(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}=rf.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 $F(h,m,et[s.dtype],l,u,p,f,c,g),o}var Tde={kernelName:Ru,backendName:"wasm",setupFunc:Sde,kernelFunc:Nde},DF;function Cde(e){DF=e.wasm.cwrap(Pu,null,["number","number","number","number","number","number","bool","number"])}function _de(e){let{inputs:t,backend:n,attrs:a}=e,{sortedSequence:r,values:s}=t,{side:i}=a;if(r.dtype!==s.dtype)throw new Error(`SearchSorted error: sorted_sequence must have the same dtype as values. Got ${r.dtype} and ${s.dtype}`);let o=n.makeOutput(s.shape,"int32");function l(u){return n.dataIdMap.get(u.dataId).id}return DF(l(r),l(s),r.shape[0],r.shape[1],s.shape[1],et[r.dtype],i==="left",l(o)),o}var Ede={kernelName:Pu,backendName:"wasm",setupFunc:Cde,kernelFunc:_de},RF;function Ade(e){RF=e.wasm.cwrap("SelectV2",null,["number","number","number","number","number"])}function Fde(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 RF(i,o,l,h,p),u}var $de={kernelName:Ou,backendName:"wasm",kernelFunc:Fde,setupFunc:Ade},Dde=Je(Co),MF;function Rde(e){MF=e.wasm.cwrap(Ao,null,["number","number"])}function Mde(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||MF(a,s),r}var Pde={kernelName:"Sigmoid",backendName:"wasm",setupFunc:Rde,kernelFunc:Mde},Ode=Je(Eo),Lde=Je(_o),zde=Je(Fo);function Wde(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 F=v.shape[0],D=v.shape[1],$=N.segment_util.segOpComputeOptimalWindowSize(D,E),S={windowSize:$,inSize:D,batchSize:F,numSegments:E},M=new tle(S,I),B=n.compileAndRun(M,[v,T],C);if(l.push(B),B.shape[1]===E)return B;let U=AA({backend:n,attrs:{start:0,stop:E,step:1,dtype:"float32"}}),H=FA({inputs:{x:U},backend:n,attrs:{reps:[D/$]}});return l.push(U),l.push(H),g(B,I,H,C,E)},b=g(m,"unsortedSegmentSum",s,f,i),y=ce({inputs:{x:b},backend:n,attrs:{shape:c}}),x=y;if(p!=null){l.push(y);let v=N.getUndoAxesPermutation(p);x=Sn({inputs:{x},backend:n,attrs:{perm:v}})}return l.forEach(v=>n.disposeIntermediateTensorInfo(v)),x}var ale={kernelName:Zc,backendName:"webgl",kernelFunc:nle},rle=[BQ,UQ,qQ,XQ,ZQ,eee,nee,ree,lee,pee,hee,gee,xee,Iee,Tee,_ee,Aee,Ree,Pee,Lee,Vee,Xee,Zee,tte,ate,ute,cte,fte,SQ,yte,Ite,Cte,Dte,Pte,Lte,Wte,Vte,qte,Xte,Jte,ene,nne,rne,one,une,hne,fne,yne,wne,Ine,Cne,Fne,Mne,Lne,Bne,Vne,Gne,qne,Kne,Yne,Jne,nae,sae,lae,pae,hae,gae,vae,Sae,IQ,Tae,wte,Eae,$ae,Mae,TQ,zae,Uae,Hae,Xae,Jae,nre,sre,ure,hre,gre,yre,kre,Sre,Tre,Are,$re,Rre,Pre,Lre,Vre,qre,Yre,rse,EQ,lse,cse,mse,bse,ste,vse,kse,Sse,Cse,Fse,_Q,Dse,Mse,Ose,zse,Wse,ite,ese,Use,jse,Zse,FQ,tie,rie,lie,cie,fie,bie,vie,Iie,Tie,Eie,$ie,Mie,zie,Vie,qie,Xie,jee,nse,Jie,eoe,noe,roe,ioe,loe,poe,doe,moe,boe,xoe,woe,Ioe,Toe,_oe,Aoe,$oe,tse,LQ,Moe,Loe,Woe,Uoe,joe,Yoe,zQ,Joe,ele,ale,wse];for(let e of rle)Jc(e);var Qe;(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"})(Qe||(Qe={}));var _c;(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"})(_c||(_c={}));var $A;function sle(e){$A=e.wasm.cwrap(ii,null,["number","array","number","number","array","number","number","number","number","number","number","number","number"])}function ile(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=_c[p];if(g==null)throw new Error(`${p} activation not yet supported for FusedConv2D in the wasm backend.`);let b=l?r.shape[2]:r.shape[1],y=u?s.shape[1]:s.shape[2],x=Ju.assertAndGetBroadcastShape(r.shape.slice(0,-2),s.shape.slice(0,-2)),v=n.makeOutput([...x,b,y],r.dtype),I=n.dataIdMap.get(v.dataId).id,T=new Uint8Array(new Int32Array(r.shape).buffer),C=new Uint8Array(new Int32Array(s.shape).buffer);return $A(c,T,r.shape.length,h,C,s.shape.length,l,u,g,m,f,d||0,I),v}var ole={kernelName:ii,backendName:"wasm",setupFunc:sle,kernelFunc:ile};function Xe(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 w.sizeFromShape(u.shape)===0||n(l,Qe[o.dtype],p),u}return{kernelName:e,backendName:"wasm",setupFunc:a,kernelFunc:r}}var lle=Xe(Yl),ule=Xe(Ni),ple=Xe(Ti);function Ht(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(w.sizeFromShape(m)===0)return f;let g=new Uint8Array(new Int32Array(u.shape).buffer),b=new Uint8Array(new Int32Array(p.shape).buffer),y=o.dataIdMap.get(f.dataId).id;return a(d,g,u.shape.length,c,b,p.shape.length,Qe[u.dtype],y),f}return{kernelName:e,backendName:"wasm",setupFunc:r,kernelFunc:s}}var cle=!0,dle=Ht(ys,cle),DA;function hle(e){DA=e.wasm.cwrap(Ci,null,["array","number","number","number"])}function mle(e){let{inputs:t,backend:n}=e,a=n.makeOutput(t[0].shape,t[0].dtype);if(w.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 DA(s,r.length,Qe[a.dtype],i),a}var fle={kernelName:Ci,backendName:"wasm",setupFunc:hle,kernelFunc:mle};function Vf(e){let{inputs:{x:t},backend:n}=e;if(t.dtype==="string")return bn(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 gle={kernelName:eo,backendName:"wasm",kernelFunc:Vf},RA;function ble(e){RA=e.wasm.cwrap(Er,null,["number","array","number","number","number","array","number"])}function gs(e){let{inputs:t,backend:n,attrs:a}=e,[r,s]=xle(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 vle={kernelName:Er,backendName:"wasm",kernelFunc:gs,setupFunc:ble};function Fs(e,t,n){let a=e.shape,r=e.shape.length,s=w.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 qle={kernelName:Ru,backendName:"wasm",kernelFunc:Wn},VA;function jle(e){VA=e.wasm.cwrap(Ri,null,["number","array","number","number","array","number","number","number","number"])}function Kle(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=w.sizeFromShape(m),b=w.sizeFromShape(f),y=Ju.assertAndGetBroadcastShape(r.shape.slice(0,-2),s.shape.slice(0,-2)).concat([c,h]);w.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],v=o?[b,h,d]:[b,d,h],I=Wn({inputs:{x:r},backend:n,attrs:{shape:x}}),T=Wn({inputs:{x:s},backend:n,attrs:{shape:v}}),C=n.dataIdMap.get(I.dataId).id,E=n.dataIdMap.get(T.dataId).id,F=i?I.shape[2]:I.shape[1],D=o?T.shape[1]:T.shape[2],$=Math.max(g,b),S=n.makeOutput([$,F,D],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 VA(C,B,I.shape.length,E,U,T.shape.length,i,o,M),n.disposeData(I.dataId),n.disposeData(T.dataId),S.shape=y,S}var Xle={kernelName:Ri,backendName:"wasm",setupFunc:jle,kernelFunc:Kle};function Ii(e){let{inputs:{x:t},attrs:{begin:n,size:a},backend:r}=e,[s,i]=Xt.parseSliceParams(t,n,a),o=Xt.isSliceContinous(t.shape,s,i),l=r.readSync(t.dataId),u=r.makeOutput(i,t.dtype),p=w.computeStrides(t.shape),d=r.dataIdMap.get(u.dataId);if(o){let m=Xt.computeFlatOffset(s,p);return t.dtype==="string"?d.stringBytes=l.slice(m,m+w.sizeFromShape(i)):r.typedArrayFromHeap(u).set(l.subarray(m,m+w.sizeFromShape(i))),u}if(t.dtype==="string"){let m=pm(l,s,i,t.shape,t.dtype);return d.stringBytes=m,u}let c=r.typedArrayFromHeap(u),h=t.shape.length;if(h===2)Yle(l,p[0],c,s,i);else if(h===3)Zle(l,p[0],p[1],c,s,i);else if(h===4)Jle(l,p[0],p[1],p[2],c,s,i);else{let m=pm(l,s,i,t.shape,t.dtype);c.set(m)}return u}function Yle(e,t,n,a,r){let s=0,i=a[0],o=a[1],l=i+r[0];for(let u=i;ub*y),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=gs({inputs:{x:h},backend:n,attrs:{perm:u}}),f=Wn({inputs:{x:m},backend:n,attrs:{shape:p}}),g=Ii({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 tue={kernelName:nu,backendName:"wasm",kernelFunc:eue},UA;function nue(e){UA=e.wasm.cwrap(au,null,["number","number","boolean","number","number","number"])}function aue(e){let{backend:t,inputs:n,attrs:a}=e,{x:r,weights:s}=n,{size:i}=a,o=s.shape.reduce((d,c)=>d*c,1)!==0,l=r.shape.length===1?[i]:[r.shape[0],i],u=t.makeOutput(l,s.dtype);function p(d){return t.dataIdMap.get(d.dataId).id}return UA(p(r),i,o,p(s),Qe[s.dtype],p(u)),u}var rue={kernelName:au,backendName:"wasm",setupFunc:nue,kernelFunc:aue},sue=!0,iue=Ht(ru,sue);function oue(e){let{inputs:t,backend:n}=e,{s0:a,s1:r}=t,s=n.typedArrayFromHeap(a),i=n.typedArrayFromHeap(r),o=N.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return n.makeOutput([o.length],"int32",void 0,new Int32Array(o))}var lue={kernelName:Dc,backendName:"wasm",kernelFunc:oue};function $s(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 uue={kernelName:Mi,backendName:"wasm",kernelFunc:$s},pue=Xe(Pi),GA;function cue(e){GA=e.wasm.cwrap(xs,null,["number","number","number","number"])}function due(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 GA(o,s,i,u),l}var hue={kernelName:xs,backendName:"wasm",setupFunc:cue,kernelFunc:due};function HA(e){let{inputs:t,backend:n}=e,a=w.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=>w.sizeFromShape(h.shape)>0);if(i.length===1)return Vf({inputs:{x:i[0]},backend:n});let o=n.makeOutput(s,t[0].dtype);if(w.sizeFromShape(s)===0)return o;if(i[0].dtype==="string"){let h=i.map(x=>{let v=[-1,w.sizeFromShape(x.shape.slice(a))];return Wn({inputs:{x},backend:n,attrs:{shape:v}})}),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=F1(m,s,t[0].dtype,f),b=N.computeOutShape(i.map(x=>x.shape),a);o.shape=b;let y=n.dataIdMap.get(o.dataId);return y.stringBytes=N.fromStringArrayToUint8(g),h.forEach(x=>n.disposeData(x.dataId)),o}let l=w.sizeFromShape(i[0].shape.slice(0,a)),u=0,p=i.map(h=>{let m=w.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=gs({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;JA(m,i?1:0,o?1:0,h,f,Qe[r.dtype]);let g=c;if(u!==null){let b=N.getUndoAxesPermutation(u);g=gs({inputs:{x:c},attrs:{perm:b},backend:n}),n.disposeData(p.dataId),n.disposeData(c.dataId)}return g}var Oue={kernelName:lu,backendName:"wasm",setupFunc:Mue,kernelFunc:Pue},QA;function Lue(e){QA=e.wasm.cwrap(Vi,null,["number","number","number","number","number","number"])}function zue(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,exclusive:i,reverse:o}=a,l=r.shape.length;w.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=gs({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;QA(m,i?1:0,o?1:0,h,f,Qe[r.dtype]);let g=c;if(u!==null){let b=N.getUndoAxesPermutation(u);g=gs({inputs:{x:c},attrs:{perm:b},backend:n}),n.disposeData(p.dataId),n.disposeData(c.dataId)}return g}var Wue={kernelName:Vi,backendName:"wasm",setupFunc:Lue,kernelFunc:zue},eF;function Bue(e){eF=e.wasm.cwrap("DenseBincount",null,["number","array","number","number","boolean","number","number","boolean","number"])}function Vue(e){let{backend:t,inputs:n,attrs:a}=e,{x:r,weights:s}=n,{size:i,binaryOutput:o}=a,l=s.shape.reduce((c,h)=>c*h,1)!==0,u=r.shape.length===1?[i]:[r.shape[0],i],p=t.makeOutput(u,s.dtype);function d(c){return t.dataIdMap.get(c.dataId).id}return eF(d(r),new Uint8Array(new Int32Array(r.shape).buffer),r.shape.length,i,l,d(s),Qe[s.dtype],o,d(p)),p}var Uue={kernelName:Mc,backendName:"wasm",setupFunc:Bue,kernelFunc:Vue},tF;function Gue(e){tF=e.wasm.cwrap(pu,null,["number","number","number","array","number","array","array","number","number"])}function Hue(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,b=new Uint8Array(new Int32Array(w.computeStrides(r.shape)).buffer),y=new Uint8Array(new Int32Array(m).buffer),x=new Uint8Array(new Int32Array(w.computeStrides(m)).buffer),v=t.dataIdMap.get(f.dataId).id;return tF(g,s,i==="NHWC"?1:0,b,r.shape.length-1,y,x,m.length,v),f}var que={kernelName:pu,backendName:"wasm",setupFunc:Gue,kernelFunc:Hue},nF;function jue(e){nF=e.wasm.cwrap(Ui,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Kue(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,b=h.padInfo.right,y=h.padInfo.bottom,x=h.padInfo.left,v=h.dilationHeight,I=h.dilationWidth,T=h.strideHeight,C=h.strideWidth,E=h.inChannels,F=h.outChannels,D=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 $=a.makeOutput(h.outShape,"float32"),S=a.dataIdMap.get($.dataId).id;return nF(i,r.shape[0],r.shape[1],r.shape[2],o,m,f,g,b,y,x,D,v,I,T,C,E,F,S),$}var Xue={kernelName:Ui,backendName:"wasm",setupFunc:jue,kernelFunc:Kue},aF;function Yue(e){aF=e.wasm.cwrap("Diag",null,["number","number","number","number"])}function Zue(e){let{inputs:t,backend:n}=e,{x:a}=t,r=w.sizeFromShape(a.shape),s=n.makeOutput([...a.shape,...a.shape],a.dtype);return aF(n.dataIdMap.get(a.dataId).id,Qe[a.dtype],r,n.dataIdMap.get(s.dataId).id),s}var Jue={kernelName:Pc,backendName:"wasm",setupFunc:Yue,kernelFunc:Zue},rF;function Que(e){rF=e.wasm.cwrap(Gi,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function epe(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dilations:l}=a;if(r.dtype!==s.dtype)throw new Error(`Dilation2D error: x must have the same dtype as filter. Got ${r.dtype} and ${s.dtype}`);let u=N.computeDilation2DInfo(r.shape,s.shape,i,o,"NHWC",l),p=n.makeOutput(u.outShape,r.dtype);return rF(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(p.dataId).id,Qe[r.dtype],u.batchSize,u.inChannels,u.inHeight,u.inWidth,u.outHeight,u.outWidth,u.strideHeight,u.strideWidth,u.dilationHeight,u.dilationWidth,u.filterHeight,u.filterWidth,u.padInfo.top,u.padInfo.left),p}var tpe={kernelName:Gi,backendName:"wasm",setupFunc:Que,kernelFunc:epe},sF;function npe(e){sF=e.wasm.cwrap(Fl,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function ape(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,dy:i}=t,{strides:o,pad:l,dilations:u}=a;if(r.dtype!==s.dtype||r.dtype!==i.dtype)throw new Error(`Dilation2DBackpropFilter error: x must have the same dtype as filter and dy. Got ${r.dtype}, ${s.dtype}, and ${i.dtype}`);let p=N.computeDilation2DInfo(r.shape,s.shape,o,l,"NHWC",u),d=n.makeOutput(s.shape,s.dtype);return sF(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(i.dataId).id,n.dataIdMap.get(d.dataId).id,Qe[r.dtype],p.batchSize,p.inChannels,p.inHeight,p.inWidth,p.outHeight,p.outWidth,p.strideHeight,p.strideWidth,p.dilationHeight,p.dilationWidth,p.filterHeight,p.filterWidth,p.padInfo.top,p.padInfo.left),d}var rpe={kernelName:Fl,backendName:"wasm",setupFunc:npe,kernelFunc:ape},iF;function spe(e){iF=e.wasm.cwrap(Al,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function ipe(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,dy:i}=t,{strides:o,pad:l,dilations:u}=a;if(r.dtype!==s.dtype||r.dtype!==i.dtype)throw new Error(`Dilation2DBackpropInput error: x must have the same dtype as filter and dy. Got ${r.dtype}, ${s.dtype}, and ${i.dtype}`);let p=N.computeDilation2DInfo(r.shape,s.shape,o,l,"NHWC",u),d=n.makeOutput(r.shape,r.dtype);return iF(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(i.dataId).id,n.dataIdMap.get(d.dataId).id,Qe[r.dtype],p.batchSize,p.inChannels,p.inHeight,p.inWidth,p.outHeight,p.outWidth,p.strideHeight,p.strideWidth,p.dilationHeight,p.dilationWidth,p.filterHeight,p.filterWidth,p.padInfo.top,p.padInfo.left),d}var ope={kernelName:Al,backendName:"wasm",setupFunc:spe,kernelFunc:ipe},lpe=Xe(qi),oF;function upe(e){oF=e.wasm.cwrap(cu,null,["number","number","number"])}function ppe(e){let{inputs:t,backend:n}=e,{dy:a,y:r}=t,s=n.makeOutput(r.shape,"float32"),i=o=>n.dataIdMap.get(o.dataId).id;return oF(i(r),i(a),i(s)),s}var cpe={kernelName:cu,backendName:"wasm",setupFunc:upe,kernelFunc:ppe},dpe=!1,hpe=Ht(du,dpe,"bool"),mpe=Xe(ji),fpe=Xe(Ki,"float32");function dv(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&&(w.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 gpe={kernelName:hu,backendName:"wasm",kernelFunc:dv},bpe=Xe(Xi,"float32");function lF(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 ype={kernelName:Oc,backendName:"wasm",kernelFunc:lF},uF;function xpe(e){uF=e.wasm.cwrap(mu,null,["number","number","number","number","number","number"])}function vpe(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 uF(s,o,l,u,p,i),r}var wpe={kernelName:mu,backendName:"wasm",kernelFunc:vpe,setupFunc:xpe},kpe=Xe(Yi),Ipe=!1,Spe=Ht(Zi,Ipe),pF;function Npe(e){pF=e.wasm.cwrap(Ji,null,["number","number","number","number","number","number","number"])}function Tpe(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(w.sizeFromShape(s.shape)===0)return f;let g=t.dataIdMap.get(f.dataId).id;return pF(p,d,c,h,m,r,g),f}var Cpe={kernelName:Ji,backendName:"wasm",setupFunc:Npe,kernelFunc:Tpe},cF;function _pe(e){cF=e.wasm.cwrap(oi,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 Epe(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=_c[h];if(g==null)throw new Error(`${h} activation not yet supported for FusedConv2D in the wasm backend.`);let b=a.dataIdMap.get(r.dataId).id,y=a.dataIdMap.get(s.dataId).id,x=f.outChannels,v=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})`);v=te.id}let I=f.filterHeight,T=f.filterWidth,C=f.padInfo.top,E=f.padInfo.right,F=f.padInfo.bottom,D=f.padInfo.left,$=f.dilationHeight,S=f.dilationWidth,M=f.strideHeight,B=f.strideWidth,U=f.inChannels,H=f.padInfo.type==="SAME"?1:0,j=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 cF(b,j,K,Z,y,I,T,v,C,E,F,D,H,$,S,M,B,U,x,g,ae,m||0,ee),J}var Ape={kernelName:oi,backendName:"wasm",setupFunc:_pe,kernelFunc:Epe},dF;function Fpe(e){dF=e.wasm.cwrap(li,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 $pe(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=_c[h];if(g==null)throw new Error(`${h} activation not yet supported for FusedDepthwiseConv2D in the wasm backend.`);let b=a.dataIdMap.get(r.dataId).id,y=a.dataIdMap.get(s.dataId).id,x=f.outChannels,v=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})`);v=te.id}let I=f.filterHeight,T=f.filterWidth,C=f.padInfo.top,E=f.padInfo.right,F=f.padInfo.bottom,D=f.padInfo.left,$=f.dilationHeight,S=f.dilationWidth,M=f.strideHeight,B=f.strideWidth,U=f.inChannels,H=f.padInfo.type==="SAME"?1:0,j=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 dF(b,j,K,Z,y,I,T,v,C,E,F,D,H,$,S,M,B,U,x,g,ae,m||0,ee),J}var Dpe={kernelName:li,backendName:"wasm",setupFunc:Fpe,kernelFunc:$pe},hF;function Rpe(e){hF=e.wasm.cwrap(gu,null,["number","number","number","number","number","number","array","number"])}function Mpe(e){let{backend:t,inputs:n}=e,{params:a,indices:r}=n,[s,i,o,l]=Gw.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 hF(c,Qe[a.dtype],h,i,d,o,m,f),u}var Ppe={kernelName:gu,backendName:"wasm",setupFunc:Rpe,kernelFunc:Mpe},mF;function Ope(e){mF=e.wasm.cwrap("Gather",null,["number","number","array","number","number","number","array","number"])}function Lpe(e){let{backend:t,inputs:n,attrs:a}=e,{x:r,indices:s}=n,{axis:i,batchDims:o}=a,l=w.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=w.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(w.sizeFromShape(r.shape)===0)return g;let b=c.shape.length-1,y=t.dataIdMap.get(c.dataId).id,x=t.dataIdMap.get(m.dataId).id,v=t.dataIdMap.get(g.dataId).id,I=new Uint8Array(new Int32Array(w.computeStrides(c.shape)).buffer),T=new Uint8Array(new Int32Array(w.computeStrides(f)).buffer);return mF(y,Qe[r.dtype],I,b,x,d.batchSize,T,v),t.disposeData(c.dataId),t.disposeData(m.dataId),g.shape=d.outputShape,g}var zpe={kernelName:fu,backendName:"wasm",setupFunc:Ope,kernelFunc:Lpe},Wpe=!1,Bpe=Ht(bu,Wpe,"bool"),Vpe=!1,Upe=Ht(Qi,Vpe,"bool"),Gpe=Xe(to,"bool"),Hpe=Xe(no,"bool"),qpe=Xe(ao,"bool"),fF;function jpe(e){fF=e.wasm.cwrap(ro,null,["number","number","number","number"])}function Kpe(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(w.sizeFromShape(t.shape)!==0){let i=a.dataIdMap.get(s.dataId).id;fF(r,Qe[t.dtype],n,i)}return s}var Xpe={kernelName:ro,backendName:"wasm",setupFunc:jpe,kernelFunc:Kpe},Ype=!1,Zpe=Ht(yu,Ype,"bool"),Jpe=!1,Qpe=Ht(xu,Jpe,"bool"),gF;function ece(e){gF=e.wasm.cwrap(vu,null,["number","number","number","number"])}function tce(e){let{attrs:t,backend:n}=e,{start:a,stop:r,num:s}=t,i=Math.floor(s),o=n.makeOutput([i],"float32");return gF(n.dataIdMap.get(o.dataId).id,a,r,i),o}var nce={kernelName:vu,backendName:"wasm",setupFunc:ece,kernelFunc:tce},ace=Xe(so),rce=Xe(io),sce=!1,ice=Ht(wu,sce,"bool"),oce=Xe(ku),lce=!1,uce=Ht(Iu,lce,"bool"),pce=!1,cce=Ht(OS,pce,"bool"),bF;function dce(e){bF=e.wasm.cwrap(oo,null,["number","number","number","number","number","number","number"])}function hce(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=a;if(r.dtype!=="float32")throw new Error("LRN error: x must have dtype float32");let u=n.makeOutput(r.shape,r.dtype);return bF(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(u.dataId).id,r.shape[3],s,i,o,l),u}var mce={kernelName:oo,backendName:"wasm",setupFunc:dce,kernelFunc:hce},yF;function fce(e){yF=e.wasm.cwrap(Su,null,["number","number","number","number","number","number","number","number","number"])}function gce(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;if(r.dtype!=="float32"||s.dtype!=="float32"||i.dtype!=="float32")throw new Error("LRNGrad error: x, y, and dy must have dtype float32");let d=n.makeOutput(r.shape,r.dtype);return yF(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(i.dataId).id,n.dataIdMap.get(d.dataId).id,i.shape[3],o,l,u,p),d}var bce={kernelName:Su,backendName:"wasm",setupFunc:fce,kernelFunc:gce},xF;function yce(e){xF=e.wasm.cwrap(lo,null,["number","number","number","number"])}function xce(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}=Fs(i,r,t);if(c){let y=t.dataIdMap.get(u.dataId).id;l=u,o=y}let h=l.shape.length;N.assertAxesAreInnerMostDims("max",p,h);let[m,f]=N.computeOutAndReduceShapes(l.shape,p),g=w.sizeFromShape(f),b=t.makeOutput(m,i.dtype);if(w.sizeFromShape(l.shape)!==0){let y=t.dataIdMap.get(b.dataId).id;xF(o,Qe[i.dtype],g,y)}if(c&&t.disposeData(u.dataId),s){let y=N.expandShapeToKeepDim(b.shape,d);b.shape=y}return b}var vce={kernelName:lo,backendName:"wasm",setupFunc:yce,kernelFunc:xce},wce=!1,kce=Ht(uo,wce),vF;function Ice(e){vF=e.wasm.cwrap(po,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Sce(e){let{inputs:t,attrs:n,backend:a}=e,r=t.x,s=a.dataIdMap.get(r.dataId).id;w.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,b=p.dilationHeight,y=p.dilationWidth,x=p.strideHeight,v=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 vF(s,r.shape[0],r.shape[1],r.shape[2],d,c,h,m,f,g,b,y,x,v,I,T,E),C}var Nce={kernelName:po,backendName:"wasm",setupFunc:Ice,kernelFunc:Sce},wF;function Tce(e){wF=e.wasm.cwrap("MaxPool3D",null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Cce(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=a,p=N.computePool3DInfo(r.shape,s,i,1,o,l,u),d=n.makeOutput(p.outShape,r.dtype);return wF(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(d.dataId).id,p.batchSize,p.inChannels,p.inDepth,p.inHeight,p.inWidth,p.outDepth,p.outHeight,p.outWidth,p.strideDepth,p.strideHeight,p.strideWidth,p.dilationDepth,p.dilationHeight,p.dilationWidth,p.effectiveFilterDepth,p.effectiveFilterHeight,p.effectiveFilterWidth,p.padInfo.front,p.padInfo.top,p.padInfo.left),d}var _ce={kernelName:Nu,backendName:"wasm",setupFunc:Tce,kernelFunc:Cce},kF;function Ece(e){kF=e.wasm.cwrap("MaxPool3DGrad",null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Ace(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=a,p=N.computePool3DInfo(s.shape,i,o,1,l,u),d=n.makeOutput(s.shape,s.dtype);return kF(n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(d.dataId).id,p.batchSize,p.inChannels,p.inDepth,p.inHeight,p.inWidth,p.outDepth,p.outHeight,p.outWidth,p.strideDepth,p.strideHeight,p.strideWidth,p.dilationDepth,p.dilationHeight,p.dilationWidth,p.effectiveFilterDepth,p.effectiveFilterHeight,p.effectiveFilterWidth,p.padInfo.front,p.padInfo.top,p.padInfo.left),d}var Fce={kernelName:zc,backendName:"wasm",setupFunc:Ece,kernelFunc:Ace},IF;function $ce(e){IF=e.wasm.cwrap("MaxPoolGrad",null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Dce(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=a,p=N.computePool2DInfo(s.shape,i,o,1,l,u),d=n.makeOutput(s.shape,s.dtype);return IF(n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(d.dataId).id,p.batchSize,p.inChannels,p.inHeight,p.inWidth,p.outHeight,p.outWidth,p.strideHeight,p.strideWidth,p.dilationHeight,p.dilationWidth,p.effectiveFilterHeight,p.effectiveFilterWidth,p.padInfo.top,p.padInfo.left),d}var Rce={kernelName:Lc,backendName:"wasm",setupFunc:$ce,kernelFunc:Dce},SF;function Mce(e){SF=e.wasm.cwrap("MaxPoolWithArgmax",null,["number","number","number","number","boolean","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Pce(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,includeBatchInIndex:l}=a;w.assert(r.shape.length===4,()=>`Error in maxPool: input must be rank 4 but got rank ${r.shape.length}.`);let u=[1,1];w.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,[1,1],o),d=n.makeOutput(p.outShape,r.dtype),c=n.makeOutput(p.outShape,"int32");return SF(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(d.dataId).id,n.dataIdMap.get(c.dataId).id,Qe[r.dtype],l,p.batchSize,p.inChannels,p.inHeight,p.inWidth,p.outHeight,p.outWidth,p.strideHeight,p.strideWidth,p.dilationHeight,p.dilationWidth,p.effectiveFilterHeight,p.effectiveFilterWidth,p.padInfo.top,p.padInfo.left),[d,c]}var Oce={kernelName:Wc,backendName:"wasm",setupFunc:Mce,kernelFunc:Pce},NF;function Lce(e){NF=e.wasm.cwrap(co,null,["number, number, number"])}function zce(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}=Fs(i,r,t),m=d;if(h){let v=t.dataIdMap.get(p.dataId).id;v!==o&&(u=p,l=v,m=N.getInnerMostAxes(m.length,u.shape.length))}N.assertAxesAreInnerMostDims("mean",m,u.shape.length);let[f,g]=N.computeOutAndReduceShapes(u.shape,m),b=w.sizeFromShape(g),y=u;u.dtype!=="float32"&&(y=$s({backend:t,inputs:{x:u},attrs:{dtype:"float32"}}),l=t.dataIdMap.get(y.dataId).id);let x=t.makeOutput(f,"float32");if(w.sizeFromShape(u.shape)!==0){let v=t.dataIdMap.get(x.dataId).id;NF(l,b,v)}if(h&&t.disposeData(p.dataId),s){let v=N.expandShapeToKeepDim(x.shape,c);x.shape=v}return u.dtype!=="float32"&&t.disposeData(y.dataId),x}var Wce={kernelName:co,backendName:"wasm",setupFunc:Lce,kernelFunc:zce},TF;function Bce(e){TF=e.wasm.cwrap(ho,null,["number","number","number","number"])}function Vce(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}=Fs(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),b=w.sizeFromShape(g),y=t.makeOutput(f,u.dtype);if(w.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(y.dataId).id;TF(l,Qe[i.dtype],b,x)}if(h&&t.disposeData(p.dataId),s){let x=N.expandShapeToKeepDim(y.shape,c);y.shape=x}return y}var Uce={kernelName:ho,backendName:"wasm",setupFunc:Bce,kernelFunc:Vce},Gce=!1,Hce=Ht(mo,Gce),hv;(function(e){e[e.reflect=0]="reflect",e[e.symmetric=1]="symmetric"})(hv||(hv={}));var CF;function qce(e){CF=e.wasm.cwrap(fo,null,["number","array","number","number","array","array","number","number"])}function jce(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 CF(i,u,t.shape.length,Qe[t.dtype],c,h,hv[r],l),o}var Kce={kernelName:fo,backendName:"wasm",kernelFunc:jce,setupFunc:qce},_F;function Xce(e){_F=e.wasm.cwrap(zo,null,["number","number","number","number"])}function EF(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=w.sizeFromShape(n.shape)/o;return w.sizeFromShape(s.shape)===0||_F(r,i,o,l),s}var Yce={kernelName:zo,backendName:"wasm",setupFunc:Xce,kernelFunc:EF},AF;function Zce(e){AF=e.wasm.cwrap(Tu,null,["number","number","number","number","number","number"])}function Jce(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{numSamples:s,seed:i,normalized:o}=a;if(r.dtype!=="float32")throw new Error(`Tensor logits must have dtype float32, got ${r.dtype}`);let l=o?r:EF({inputs:{logits:r},backend:n,attrs:{dim:r.shape.length-1}}),[u,p]=l.shape,d=n.makeOutput([u,s],"int32");return AF(n.dataIdMap.get(l.dataId).id,u,p,s,i,n.dataIdMap.get(d.dataId).id),o||n.disposeData(l.dataId),d}var Qce={kernelName:Tu,backendName:"wasm",setupFunc:Zce,kernelFunc:Jce},ede=Ht(go,!0),tde=!0,nde=Ht(bo,tde),ade=Xe(Cu);function sk(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 FF;function rde(e){FF=e.wasm.cwrap(Eu,"number",["number","number","number","number","number"])}function sde(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=FF(u,p,s,r,i),{pSelectedIndices:c,selectedSize:h,pSelectedScores:m,pValidOutputs:f}=sk(t,d);return t.wasm._free(m),t.wasm._free(f),t.makeOutput([h],"int32",c)}var ide={kernelName:Eu,backendName:"wasm",setupFunc:rde,kernelFunc:sde},$F;function ode(e){$F=e.wasm.cwrap(Au,"number",["number","number","number","number","number","bool"])}function lde(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=$F(p,d,s,r,i,o),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=sk(t,c);t.wasm._free(f);let b=t.makeOutput([m],"int32",h),y=t.makeOutput([],"int32",g);return[b,y]}var ude={kernelName:Au,backendName:"wasm",setupFunc:ode,kernelFunc:lde},DF;function pde(e){DF=e.wasm.cwrap(Fu,"number",["number","number","number","number","number","number"])}function cde(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=DF(p,d,s,r,i,o),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=sk(t,c);t.wasm._free(g);let b=t.makeOutput([m],"int32",h),y=t.makeOutput([m],"float32",f);return[b,y]}var dde={kernelName:Fu,backendName:"wasm",setupFunc:pde,kernelFunc:cde},hde=!1,mde=Ht(_u,hde,"bool"),RF;function fde(e){RF=e.wasm.cwrap(yo,null,["number","number","number","number","number"])}function gde(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 RF(d,i,o,l,p),u}var bde={kernelName:yo,backendName:"wasm",setupFunc:fde,kernelFunc:gde};function yde(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(a).fill(1),a}var xde={kernelName:$u,backendName:"wasm",kernelFunc:yde};function vde(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a;if(t.length===1)return dv({inputs:{input:t[0]},backend:n,attrs:{dim:r}});let s=t[0].shape,i=t[0].dtype;t.forEach(p=>{w.assertShapesMatch(s,p.shape,"All tensors passed to stack must have matching shapes"),w.assert(i===p.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=[],l=t.map(p=>{let d=dv({inputs:{input:p},backend:n,attrs:{dim:r}});return o.push(d),d}),u=HA({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(p=>n.disposeData(p.dataId)),u}var wde={kernelName:Du,backendName:"wasm",kernelFunc:vde},MF;function kde(e){MF=e.wasm.cwrap(xo,null,["number","array","number","number","array","array","number","number"])}function Ide(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(w.sizeFromShape(t.shape)===0)return lF({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 MF(i,u,t.shape.length,Qe[t.dtype],c,h,r,l),o}var PF={kernelName:xo,backendName:"wasm",kernelFunc:Ide,setupFunc:kde},Sde=!1,Nde=Ht(vo,Sde),OF;function Tde(e){OF=e.wasm.cwrap(wo,null,["number","number","number"])}function Cde(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=$s({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 OF(o,i,d),l.dtype!=="float32"&&n.disposeData(u.dataId),p}var _de={kernelName:wo,backendName:"wasm",setupFunc:Tde,kernelFunc:Cde},LF;function Ede(e){LF=e.wasm.cwrap(ko,null,["number","number","number","number"])}function Ade(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}=Fs(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),b=w.sizeFromShape(g),y=t.makeOutput(f,u.dtype);if(w.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(y.dataId).id;LF(l,b,Qe[y.dtype],x)}if(h&&t.disposeData(p.dataId),s){let x=N.expandShapeToKeepDim(y.shape,c);y.shape=x}return y}var Fde={kernelName:ko,backendName:"wasm",setupFunc:Ede,kernelFunc:Ade},$de=e=>{let{backend:t,attrs:n}=e,{start:a,stop:r,step:s,dtype:i}=n,o=R1(a,r,s,i),l=t.makeOutput([o.length],i);return t.typedArrayFromHeap(l).set(o),l},Dde={kernelName:Bc,backendName:"wasm",kernelFunc:$de},Rde=!0,Mde=Ht(Hi,Rde),Pde=Xe(Io),Ode=Xe(So),Lde=Xe(Co),zF;function zde(e){zF=e.wasm.cwrap(To,null,["number","number","number","number","number","number","number","number","number","number"])}function Wde(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=$s({backend:t,inputs:{x:r},attrs:{dtype:"float32"}}),f=t.dataIdMap.get(g.dataId));let b=f.id,y=t.makeOutput(m,"float32");if(w.sizeFromShape(r.shape)===0)return y;let x=t.dataIdMap.get(y.dataId).id;return zF(b,p,d,c,h,l,u,s?1:0,i?1:0,x),g!=null&&t.disposeData(g.dataId),y}var Bde={kernelName:To,backendName:"wasm",setupFunc:zde,kernelFunc:Wde},WF;function Vde(e){WF=e.wasm.cwrap(Pu,null,["number","number","number","array","array","boolean"])}function Ude(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=n.makeOutput(r.shape,"float32"),l=n.dataIdMap.get(r.dataId),u;return l.dtype!=="float32"&&(u=$s({backend:n,inputs:{x:r},attrs:{dtype:"float32"}}),l=n.dataIdMap.get(u.dataId)),WF(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(o.dataId).id,new Uint8Array(new Int32Array(r.shape).buffer),new Uint8Array(new Int32Array(s.shape).buffer),i),u!=null&&n.disposeData(u.dataId),o}var Gde={kernelName:Pu,backendName:"wasm",setupFunc:Vde,kernelFunc:Ude},BF;function Hde(e){BF=e.wasm.cwrap(No,null,["number","number","number","number","number","number","number","number","number","number"])}function qde(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(w.sizeFromShape(r.shape)===0)return f;let g=t.dataIdMap.get(r.dataId),b;g.dtype!=="float32"&&(b=$s({backend:t,inputs:{x:r},attrs:{dtype:"float32"}}),g=t.dataIdMap.get(b.dataId));let y=g.id,x=t.dataIdMap.get(f.dataId).id;return BF(y,p,d,c,h,l,u,s?1:0,i?1:0,x),b!=null&&t.disposeData(b.dataId),f}var jde={kernelName:No,backendName:"wasm",setupFunc:Hde,kernelFunc:qde},VF;function Kde(e){VF=e.wasm.cwrap(Mu,null,["number","number","number","array","array","boolean"])}function Xde(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=n.makeOutput(r.shape,"float32"),l=n.dataIdMap.get(r.dataId),u;return l.dtype!=="float32"&&(u=$s({backend:n,inputs:{x:r},attrs:{dtype:"float32"}}),l=n.dataIdMap.get(u.dataId)),VF(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(o.dataId).id,new Uint8Array(new Int32Array(r.shape).buffer),new Uint8Array(new Int32Array(s.shape).buffer),i),u!=null&&n.disposeData(u.dataId),o}var Yde={kernelName:Mu,backendName:"wasm",setupFunc:Kde,kernelFunc:Xde},UF;function Zde(e){UF=e.wasm.cwrap(_o,null,["number","array","number","array","number","number"])}function Jde(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a,i=w.parseAxisParam(s,r.shape);if(r.shape.length===0)return Vf({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);UF(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 Qde={kernelName:_o,backendName:"wasm",kernelFunc:Jde,setupFunc:Zde},GF;function ehe(e){GF=e.wasm.cwrap(Zu,null,["number","number","number","number","number","number","number","number","array","number","number"])}function the(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),b=i===0,y=255,x=typeof i=="number"?[i,i,i,b?0:y]:[...i,y],v=new Uint8Array(new Int32Array(x).buffer);return GF(u,d,c,h,m,s,f,g,v,x.length,p),l}var nhe={kernelName:Zu,backendName:"wasm",kernelFunc:the,setupFunc:ehe},ahe=Xe(Eo),rhe=Xe(Ao),HF;function she(e){HF=e.wasm.cwrap(Ou,null,["number","number","number","number","number","number","array","number","number"])}function ihe(e){let{backend:t,inputs:n,attrs:a}=e,{indices:r,updates:s}=n,{shape:i}=a,o=t.makeOutput(i,s.dtype);if(w.sizeFromShape(i)===0)return o;let{sliceRank:l,numUpdates:u,sliceSize:p,strides:d,outputSize:c}=sf.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 HF(h,m,Qe[s.dtype],l,u,p,f,c,g),o}var ohe={kernelName:Ou,backendName:"wasm",setupFunc:she,kernelFunc:ihe},qF;function lhe(e){qF=e.wasm.cwrap(zu,null,["number","number","number","number","number","number","bool","number"])}function uhe(e){let{inputs:t,backend:n,attrs:a}=e,{sortedSequence:r,values:s}=t,{side:i}=a;if(r.dtype!==s.dtype)throw new Error(`SearchSorted error: sorted_sequence must have the same dtype as values. Got ${r.dtype} and ${s.dtype}`);let o=n.makeOutput(s.shape,"int32");function l(u){return n.dataIdMap.get(u.dataId).id}return qF(l(r),l(s),r.shape[0],r.shape[1],s.shape[1],Qe[r.dtype],i==="left",l(o)),o}var phe={kernelName:zu,backendName:"wasm",setupFunc:lhe,kernelFunc:uhe},jF;function che(e){jF=e.wasm.cwrap("SelectV2",null,["number","number","number","number","number"])}function dhe(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:w.sizeFromShape(r.shape.slice(1));return jF(i,o,l,h,p),u}var hhe={kernelName:Wu,backendName:"wasm",kernelFunc:dhe,setupFunc:che},mhe=Xe(Fo),KF;function fhe(e){KF=e.wasm.cwrap(Mo,null,["number","number"])}function ghe(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 w.sizeFromShape(r.shape)===0||KF(a,s),r}var bhe={kernelName:"Sigmoid",backendName:"wasm",setupFunc:fhe,kernelFunc:ghe},yhe=Xe(Ro),xhe=Xe($o),vhe=Xe(Do),whe=Xe(Po);function khe(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,paddings:i}=a,o=w.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"),b=n.dataIdMap.get(g.dataId).id;LF(d,et[r.dtype],r.shape[0],c,h,f,b,t,0);let y=n.readSync(g.dataId),x;switch(y[0]){case 0:{x=N.getSparseSegmentReductionNegativeSegmentIdsErrorMessage();break}case 1:{x=N.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage();break}case 2:x=N.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(y[1],y[2]);break;case 3:x=N.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(y[1],y[2],y[3]);break;default:x=""}if(n.disposeData(g.dataId),x)throw n.disposeData(m.dataId),new Error(x);return m}function Kde(e){return WF(e,!0)}var Xde={kernelName:Oc,backendName:"wasm",setupFunc:zF,kernelFunc:Kde};function Yde(e){return WF(e,!1)}var Zde={kernelName:Lc,backendName:"wasm",setupFunc:zF,kernelFunc:Yde},BF;function Jde(e){BF=e.wasm.cwrap(Uu,null,["number","number","number","number","number","number","number","number","array","number","number"])}function Qde(e){let{backend:t,inputs:n,attrs:a}=e,{sparseIndices:r,sparseValues:s,defaultValue:i}=n,{outputShape:o}=a,l=t.makeOutput(o,i.dtype);if(v.sizeFromShape(o)===0)return l;let{sliceRank:u,numUpdates:p,sliceSize:d,strides:c,outputSize:h}=N.calculateShapes(s,r,o),m=t.dataIdMap.get(r.dataId).id,f=t.dataIdMap.get(s.dataId).id,g=t.dataIdMap.get(i.dataId).id,b=new Uint8Array(new Int32Array(c).buffer),y=t.dataIdMap.get(l.dataId).id;return BF(m,f,s.shape.length,g,et[i.dtype],u,p,d,b,h,y),l}var ehe={kernelName:Uu,backendName:"wasm",setupFunc:Jde,kernelFunc:Qde};function the(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=wi({inputs:{x:r},attrs:{begin:u,size:c},backend:a});return u[o]+=d,h})}var nhe={kernelName:Bu,backendName:"wasm",kernelFunc:the},ahe=Je($o),rhe=Je(zc),she=!0,ihe=ln(Mo,she),VF;function ohe(e){VF=e.wasm.cwrap(vs,null,["number","number","number","number"])}function lhe(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 VF(i,r,et[s.dtype],l),o}var uhe={kernelName:vs,backendName:"wasm",setupFunc:ohe,kernelFunc:lhe},UF;function phe(e){UF=e.wasm.cwrap(Gu,null,["number","array","number","array","array","array","array","array","number","number"])}function che(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:b,begin:y,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||b){v.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let T=Kt.computeOutShape(y,x,w),C=wi({inputs:{x:r},backend:t,attrs:{begin:y,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),F=new Uint8Array(new Int32Array(y).buffer),D=new Uint8Array(new Int32Array(x).buffer),$=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;UF(C,E,r.shape.length,F,D,$,S,M,h.length,B),I=Wn({inputs:{x:T},backend:t,attrs:{shape:m}}),t.disposeData(T.dataId)}return I}var dhe={kernelName:Gu,backendName:"wasm",setupFunc:phe,kernelFunc:che};function hhe(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]=_1(c,h,i,o,l,u,p,d),g=t.makeOutput([m.length],"string"),b=t.dataIdMap.get(g.dataId);b.stringBytes=m;let y=t.makeOutput(s.shape,"int32");return t.typedArrayFromHeap(y).set(f),[g,y]}var mhe={kernelName:Bc,backendName:"wasm",kernelFunc:hhe};function fhe(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]=E1(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 ghe={kernelName:Vc,backendName:"wasm",kernelFunc:fhe};function bhe(e){let{backend:t,inputs:n,attrs:a}=e,{input:r}=n,{numBuckets:s}=a,i=t.readSync(r.dataId),o=A1(i,s),l=t.makeOutput(r.shape,"int32");return t.typedArrayFromHeap(l).set(o),l}var yhe={kernelName:Uc,backendName:"wasm",kernelFunc:bhe},xhe=!0,vhe=ln(Po,xhe),GF;function whe(e){GF=e.wasm.cwrap(Do,null,["number","number","number","number"])}function khe(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}=As(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),b=v.sizeFromShape(g),y=t.makeOutput(f,u.dtype);if(v.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(y.dataId).id;GF(l,b,et[y.dtype],x)}if(h&&t.disposeData(p.dataId),s){let x=N.expandShapeToKeepDim(y.shape,c);y.shape=x}return y}var Ihe={kernelName:Do,backendName:"wasm",setupFunc:whe,kernelFunc:khe},She=Je(Oo),Nhe=Je(Lo),HF;function The(e){HF=e.wasm.cwrap(Mu,null,["number","number","number","number","number","number","array","number","number","number"])}function Che(e){let{backend:t,inputs:n,attrs:a}=e,{tensor:r,indices:s,updates:i}=n,{}=a,o=t.makeOutput(r.shape,r.dtype);if(v.sizeFromShape(r.shape)===0)return o;let{sliceRank:l,numUpdates:u,sliceSize:p,strides:d,outputSize:c}=rf.calculateShapes(i,s,r.shape),h=t.dataIdMap.get(s.dataId).id,m=t.dataIdMap.get(i.dataId).id,f=t.dataIdMap.get(r.dataId).id,g=new Uint8Array(new Int32Array(d).buffer),b=t.dataIdMap.get(o.dataId).id;return HF(h,m,et[i.dtype],l,u,p,g,c,b,f),o}var _he={kernelName:Mu,backendName:"wasm",setupFunc:The,kernelFunc:Che},qF;function Ehe(e){qF=e.wasm.cwrap(xs,null,["number","array","number","array","number","number"])}function Ahe(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 jF(i,o,a.shape.length,et[a.dtype],r,s,p,c),[u,d]},Rhe={kernelName:Hu,backendName:"wasm",setupFunc:$he,kernelFunc:Dhe},KF;function Mhe(e){KF=e.wasm.cwrap(qu,null,["number","number","bool","number","number","number","number","number","number","array","number","array","number","number","number","number","number"])}function Phe(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],b=new Uint8Array(new Int32Array(v.computeStrides(r.shape)).buffer),y=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 KF(I,T,s.shape[0]>1,p,m,f,h,c,d,b,r.shape.length-1,y,g.length-1,C,E,l,w),x}var Ohe={kernelName:qu,backendName:"wasm",setupFunc:Mhe,kernelFunc:Phe};function Lhe(e){let{inputs:t,attrs:n,backend:a}=e,{axis:r}=n,{x:s}=t,{outputValues:i,outputShape:o,indices:l}=$1(a.readSync(s.dataId),r,s.shape,s.dtype);return[a.makeOutput(o,s.dtype,void 0,i),a.makeOutput([l.length],"int32",void 0,l)]}var zhe={kernelName:Gc,backendName:"wasm",kernelFunc:Lhe};function Whe(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 Bhe={kernelName:ju,backendName:"wasm",kernelFunc:Whe};function Vhe(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(a).fill(0),a}var Uhe={kernelName:Ku,backendName:"wasm",kernelFunc:Vhe},Ghe=[zoe,Woe,Boe,Voe,Goe,joe,tle,rle,sle,ile,ole,lle,ule,ple,cle,mle,ble,vle,Sle,Ale,Dle,Mle,Ple,Ole,Wle,Ble,Gle,jle,Yle,Qle,nue,aue,rue,oue,pue,hue,gue,xue,kue,Nue,_ue,Fue,Rue,Mue,Lue,Wue,Bue,Vue,Uue,Gue,jue,Kue,Yue,Que,npe,spe,lpe,cpe,hpe,fpe,Koe,gpe,bpe,ype,wpe,Ipe,Npe,_pe,Ape,Epe,$pe,Dpe,Mpe,Ope,Wpe,Upe,qpe,Kpe,Zpe,ece,ace,ice,uce,cce,mce,xce,wce,kce,Nce,_ce,Fce,Dce,Pce,Lce,Wce,IF,Gce,jce,Yce,Jce,ede,tde,nde,ade,wle,ide,ude,dde,fde,yde,wde,kde,Ide,Tde,Ede,$de,Dde,Pde,Ode,Lde,_le,gce,zde,Bde,Gde,jde,Xde,Zde,ehe,nhe,ahe,rhe,ihe,uhe,dhe,mhe,ghe,yhe,vhe,Ihe,She,Nhe,_he,Fhe,Rhe,Ohe,Joe,zhe,Bhe,Uhe];for(let e of Ghe)qc(e);var iv=G();iv.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}});iv.registerFlag("WASM_HAS_MULTITHREAD_SUPPORT",async()=>{if(iv.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 lS=gs(JD()),Hhe=gs(QD()),uS=gs(eR()),pS=lS.default||lS,qhe=uS.default||uS,XF=class extends Tc{constructor(e){super(),this.wasm=e,this.dataIdNextNumber=1,this.wasm.tfjs.initWithThreadsCount(YF),ov=this.wasm.tfjs.getThreadsCount(),this.dataIdMap=new mm(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)>>>0;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 Xhe(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,a){let r;if(n==null)r=this.write(a!=null?a:null,e,t);else{let s=this.dataIdNextNumber++;r={id:s},this.dataIdMap.set(r,{id:s,memoryOffset:n,shape:e,dtype:t,refCount:1});let i=v.sizeFromShape(e);this.wasm.tfjs.registerTensor(s,i,n)}return{dataId:r,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 jhe(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 cS(e,t,n){if(dm!=null)return dm;let a="tfjs-backend-wasm.wasm";return e&&t?a="tfjs-backend-wasm-threaded-simd.wasm":e&&(a="tfjs-backend-wasm-simd.wasm"),ic!=null&&ic[a]!=null?ic[a]:n+a}async function Khe(){let[e,t]=await Promise.all([G().getAsync("WASM_HAS_SIMD_SUPPORT"),G().getAsync("WASM_HAS_MULTITHREAD_SUPPORT")]);return new Promise((n,a)=>{let r={};r.locateFile=(o,l)=>{if(o.endsWith(".worker.js")){let u=Hhe.wasmWorkerContents.replace(/\n/g,"\\n"),p=new Blob([u],{type:"application/javascript"});return URL.createObjectURL(p)}return o.endsWith(".wasm")?cS(e,t,ac!=null?ac:l):l+o},J1&&(r.instantiateWasm=jhe(cS(e,t,ac!=null?ac:"")));let s=!1;r.onAbort=()=>{s||oc||(oc=!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&&dm==null?(r.mainScriptUrlOrBlob=new Blob(["var WasmBackendModuleThreadedSimd = "+pS.toString()],{type:"text/javascript"}),i=pS(r)):i=qhe(r),i.then(o=>{s=!0,oc=!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 Xhe(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 Yhe=["tfjs-backend-wasm.wasm","tfjs-backend-wasm-simd.wasm","tfjs-backend-wasm-threaded-simd.wasm"],dm=null,ac=null,ic={},oc=!1,J1=!1;function Zhe(e,t=!1){if(wv("setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release."),oc)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`");dm=e,J1=t}function Jhe(e,t=!1){if(oc)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")ac=e;else{ic=e;let n=Yhe.filter(a=>ic[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.`)}J1=t}var YF=-1,ov=-1;function Qhe(e){YF=e}function eme(){if(ov===-1)throw new Error("WASM backend not initialized.");return ov}var tme="4.5.0",nme=2;Mm("wasm",async()=>{let{wasm:e}=await Khe();return new XF(e)},nme);var dS="4.5.0",ame="4.5.0",rme="4.5.0",sme="4.5.0",ime="4.5.0",ome={tfjs:dS,"tfjs-core":dS,"tfjs-converter":ame,"tfjs-backend-cpu":rme,"tfjs-backend-webgl":sme,"tfjs-backend-wasm":ime};var b$={};jy(b$,{AnchorPosition:()=>ok,DrawBox:()=>Fd,DrawBoxOptions:()=>qf,DrawFaceLandmarks:()=>rg,DrawFaceLandmarksOptions:()=>ag,DrawTextField:()=>Br,DrawTextFieldOptions:()=>xp,drawContour:()=>Or,drawDetections:()=>mme,drawFaceExpressions:()=>fme,drawFaceLandmarks:()=>bme});function Or(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 ZF={};jy(ZF,{computeReshapedDimensions:()=>tk,getCenterPoint:()=>Jo,isDimensions:()=>Uf,isEven:()=>Vf,isFloat:()=>ek,isTensor:()=>Yo,isTensor1D:()=>lme,isTensor2D:()=>Q1,isTensor3D:()=>Lr,isTensor4D:()=>wa,isValidNumber:()=>Za,isValidProbablitiy:()=>hp,range:()=>gr,round:()=>Zo});var En=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 En(1/this.width,1/this.height)}};function Yo(e,t){return e instanceof Ce&&e.shape.length===t}function lme(e){return Yo(e,1)}function Q1(e){return Yo(e,2)}function Lr(e){return Yo(e,3)}function wa(e){return Yo(e,4)}function ek(e){return e%1!==0}function Vf(e){return e%2===0}function Zo(e,t=2){let n=10**t;return Math.floor(e*n)/n}function Uf(e){return e&&e.width&&e.height}function tk({width:e,height:t},n){let a=n/Math.max(t,e);return new En(Math.round(e*a),Math.round(t*a))}function Jo(e){return e.reduce((t,n)=>t.add(n),new Pe(0,0)).div(new Pe(e.length,e.length))}function gr(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 hp(e){return Za(e)&&e>=0&&e<=1}var Pe=class{constructor(t,n){this._x=t,this._y=n}get x(){return this._x}get y(){return this._y}add(t){return new Pe(this.x+t.x,this.y+t.y)}sub(t){return new Pe(this.x-t.x,this.y-t.y)}mul(t){return new Pe(this.x*t.x,this.y*t.y)}div(t){return new Pe(this.x/t.x,this.y/t.y)}abs(){return new Pe(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(this.x**2+this.y**2)}floor(){return new Pe(Math.floor(this.x),Math.floor(this.y))}};var dt=class{static isRect(t){return!!t&&[t.x,t.y,t.width,t.height].every(Za)}static assertIsValidBox(t,n,a=!1){if(!dt.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];dt.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 Pe(this.left,this.top)}get topRight(){return new Pe(this.right,this.top)}get bottomLeft(){return new Pe(this.left,this.bottom)}get bottomRight(){return new Pe(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 dt({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 dt({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 dt({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 mp=class extends dt{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 En(s.width,s.height),this._score=t,this._classScore=n,this._className=a,this._box=new dt(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 dt(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 wt=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 wt(a,r,s)}};function JF(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 QF(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 br(e,t){return P(()=>{let[n,a,r]=t,s=xn([...e.shape.slice(0,3),1],n,"float32"),i=xn([...e.shape.slice(0,3),1],a,"float32"),o=xn([...e.shape.slice(0,3),1],r,"float32"),l=Qe([s,i,o],3);return pe(e,l)})}function t$(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,xn(h,0,"float32")},l=o(s),u=r-l.shape[i],d=[t&&u?o(u):null,e,l].filter(c=>!!c).map(c=>ie(c,"float32"));return Qe(d,i)})}function gwe(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 Gf(e){return 1/(1+Math.exp(-e))}function ywe(e){return Math.log(e/(1-e))}var fp=class extends dt{constructor(t,n,a,r,s=!1){super({x:t,y:n,width:a,height:r},s)}};var ume=.5,pme=.43,cme=.45,ka=class{constructor(t,n,a=new Pe(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 Pe(r,s)).add(a))}get shift(){return new Pe(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 Pe(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 Pe(t,n))}shiftByPoint(t){return this.shiftBy(t.x,t.y)}align(t,n={}){if(t){let s=t instanceof wt?t.box.floor():new dt(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/cme),l=Jo(t),u=Math.floor(Math.max(0,l.x-ume*o)),p=Math.floor(Math.max(0,l.y-pme*o));return new fp(u,p,Math.min(o,this.imageWidth+u),Math.min(o,this.imageHeight+p))}alignMinBbox(t){let n=QF(this.positions);return n.pad(n.width*t,n.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var n$=class extends ka{getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],Jo([t[3],t[4]])]}};var gp=class extends ka{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(Jo)}};var _d=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?` (${Zo(this.distance)})`:""}`}};var Ed=class extends dt{constructor(n,a){super(n);this._label=a}static assertIsValidLabeledBox(n,a){if(dt.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 zr=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 zr(t.label,n)}};var a$=class extends Ed{constructor(n,a,r,s){super(n,a);this._score=r,this._classScore=s}static assertIsValidPredictedBox(n,a){if(Ed.assertIsValidLabeledBox(n,a),!hp(n.score)||!hp(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 Wr(e){return e.detection instanceof wt}function bp(e,t){return{...e,...{detection:t}}}function nk(){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 Ad(){return typeof global=="object"&&typeof process!="undefined"&&process.versions!=null&&process.versions.node!=null}function Hf(e){let t="";if(!e&&Ad())try{e=FD("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 ak(){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=Hf();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 rk(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var un;function dme(){if(!un)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return un}function sk(e){un=e}function ik(){return rk()?sk(nk()):Ad()?sk(ak()):null}function hme(e){if(un||ik(),!un)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=un.Canvas,Image:n=un.Image}=e;un.Canvas=t,un.Image=n,un.createCanvasElement=e.createCanvasElement||(()=>new t),un.createImageElement=e.createImageElement||(()=>new n),un.ImageData=e.ImageData||un.ImageData,un.Video=e.Video||un.Video,un.fetch=e.fetch||un.fetch,un.readFile=e.readFile||un.readFile}var at={getEnv:dme,setEnv:sk,initialize:ik,createBrowserEnv:nk,createFileSystem:Hf,createNodejsEnv:ak,monkeyPatch:hme,isBrowser:rk,isNodejs:Ad};ik();function yp(e){return!at.isNodejs()&&typeof e=="string"?document.getElementById(e):e}function sa(e){let{Canvas:t,CanvasRenderingContext2D:n}=at.getEnv();if(e instanceof n)return e;let a=yp(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 ok=(r=>(r.TOP_LEFT="TOP_LEFT",r.TOP_RIGHT="TOP_RIGHT",r.BOTTOM_LEFT="BOTTOM_LEFT",r.BOTTOM_RIGHT="BOTTOM_RIGHT",r))(ok||{}),xp=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 xp(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 qf=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 xp({...i,...s})}},Fd=class{constructor(t,n={}){this.box=new dt(t),this.options=new qf(n)}draw(t){let n=sa(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 mme(e,t){(Array.isArray(t)?t:[t]).forEach(a=>{let r=a instanceof wt?a.score:Wr(a)?a.detection.score:void 0,s=a instanceof wt?a.box:Wr(a)?a.detection.box:new dt(a),i=r?`${Zo(r)}`:void 0;new Fd(s,{label:i}).draw(e)})}function jf(e){let{Image:t,Video:n}=at.getEnv();return e instanceof t&&e.complete||e instanceof n&&e.readyState>=3}function r$(e){return new Promise((t,n)=>{(e instanceof at.getEnv().Canvas||jf(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 s$(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=at.getEnv().createImageElement();r.onload=()=>t(r),r.onerror=n,r.src=a.result},a.onerror=n,a.readAsDataURL(e)})}function vp(e){let{Image:t,Video:n}=at.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 wp({width:e,height:t}){let{createCanvasElement:n}=at.getEnv(),a=n();return a.width=e,a.height=t,a}function Kf(e,t){let{ImageData:n}=at.getEnv();if(!(e instanceof n)&&!jf(e))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:a,height:r}=t||vp(e),s=wp({width:a,height:r});return e instanceof n?sa(s).putImageData(e,0,0):sa(s).drawImage(e,0,0,a,r),s}async function i$(e,t){let n=t||at.getEnv().createCanvasElement(),[a,r,s]=e.shape.slice(wa(e)?1:0),i=P(()=>e.as3D(a,r,s).toInt());return await Vo.toPixels(i,n),i.dispose(),n}function lk(e){let{Image:t,Canvas:n,Video:a}=at.getEnv();return e instanceof t||e instanceof n||e instanceof a}function o$(e,t,n=!1){let{Image:a,Canvas:r}=at.getEnv();if(!(e instanceof a||e instanceof r))throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement");if(t<=0)return wp({width:1,height:1});let s=vp(e),i=t/Math.max(s.height,s.width),o=i*s.width,l=i*s.height,u=wp({width:t,height:t}),p=e instanceof r?e:Kf(e),d=Math.abs(o-l)/2,c=n&&o0&&p.height>0&&sa(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(Lr(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 at.getEnv().Canvas?a:Kf(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 gr(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 tk({width:n,height:a},this.inputSize)}toBatchTensor(t,n=!0){return this._inputSize=t,P(()=>{let a=gr(this.batchSize,0,1).map(s=>{let i=this.getInput(s);if(i instanceof Ce){let o=wa(i)?i:tn(i);return o=t$(o,n),(o.shape[1]!==t||o.shape[2]!==t)&&(o=Qn.resizeBilinear(o,[t,t],!1,!1)),o.as3D(t,t,3)}if(i instanceof at.getEnv().Canvas)return Vo.fromPixels(o$(i,t,n));throw new Error(`toBatchTensor - at batchIdx ${s}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${i}`)});return Dt(a.map(s=>ie(s,"float32"))).as4D(this.batchSize,t,t,3)})}};async function kt(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(yp);return a.forEach((r,s)=>{if(!lk(r)&&!Lr(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=>lk(r)&&r$(r))),new Vr(a,Array.isArray(e))}async function $d(e,t){let{Canvas:n}=at.getEnv(),a=e;if(!(e instanceof n)){let i=await kt(e);if(i.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");let o=i.getInput(0);a=o instanceof n?o:await i$(o)}let r=sa(a);return t.map(i=>i instanceof wt?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=wp({width:l,height:u});return l>0&&u>0&&sa(p).putImageData(r.getImageData(i,o,l,u),0,0),p})}async function Dd(e,t){if(!Lr(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 wt?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 Ds(e,t){let{fetch:n}=at.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 ake(e){let t=await Ds(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 s$(n)}async function l$(e){return(await Ds(e)).json()}async function lke(e){return new Float32Array(await(await Ds(e)).arrayBuffer())}function u$(e){return new Promise((t,n)=>{e instanceof Blob||n(new Error("bufferToVideo - expected buf to be of type: Blob"));let a=at.getEnv().createVideoElement();a.oncanplay=()=>t(a),a.onerror=n,a.playsInline=!0,a.muted=!0,a.src=URL.createObjectURL(e),a.play()})}async function mke(e){let t=await Ds(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 u$(n)}function Xf(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 p$(e,t){let{manifestUri:n,modelBaseUri:a}=Xf(e,t),r=await l$(n);return qt.loadWeights(r,a)}function wke(e,t,n=!1){let{width:a,height:r}=n?vp(t):t;return e.width=a,e.height=r,{width:a,height:r}}var fn=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 os)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof os))}variable(){this.getFrozenParams().forEach(({path:t,tensor:n})=>{this.reassignParamFromPath(t,n.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:n})=>{let a=bn(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 p$(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}=at.getEnv(),{manifestUri:a,modelBaseUri:r}=Xf(t,this.getDefaultModelName()),s=u=>Promise.all(u.map(p=>n(p).then(d=>d.buffer))),i=qt.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 Ce))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=X(a,t.bias),a})}function Yf(e,t,n=!1){return P(()=>{let a=Ke(n?X(Rt(e,t.conv0.filters,[2,2],"same"),t.conv0.bias):Hn(e,t.conv0,[2,2])),r=Hn(a,t.conv1,[1,1]),s=Ke(X(a,r)),i=Hn(s,t.conv2,[1,1]);return Ke(X(a,X(r,i)))})}function Rd(e,t,n=!1,a=!0){return P(()=>{let r=Ke(n?X(Rt(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=Ke(X(r,s)),o=Hn(i,t.conv2,[1,1]),l=Ke(X(r,X(s,o))),u=Hn(l,t.conv3,[1,1]);return Ke(X(r,X(s,X(o,u))))})}function Qo(e,t,n="same",a=!1){return P(()=>{let r=X(Rt(e,t.filters,[1,1],n),t.bias);return a?Ke(r):r})}function An(e,t){Object.keys(e).forEach(n=>{t.some(a=>a.originalPath===n)||e[n].dispose()})}function kp(e,t){return(n,a,r,s)=>{let i=Da(e(n*a*r*r),[r,r,n,a]),o=je(e(a));return t.push({paramPath:`${s}/filters`},{paramPath:`${s}/bias`}),{filters:i,bias:o}}}function Zf(e,t){return(n,a,r)=>{let s=Aa(e(n*a),[n,a]),i=je(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 Ip(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=je(e(a));return t.push({paramPath:`${r}/depthwise_filter`},{paramPath:`${r}/pointwise_filter`},{paramPath:`${r}/bias`}),new Md(s,i,o)}}function Sp(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 ia(e,t){return(n,a,r)=>{let s=e[n];if(!Yo(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 Fn(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 Jf(e,t){let n=kp(e,t),a=Ip(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 c$(e){let t=[],{extractWeights:n,getRemainingWeights:a}=Fn(e),{extractDenseBlock4Params:r}=Jf(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 Qf(e){return t=>{let n=e(`${t}/filters`,4),a=e(`${t}/bias`,1);return{filters:n,bias:a}}}function eg(e,t){let n=ia(e,t),a=Qf(n),r=Sp(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 d$(e){let t=[],{extractDenseBlock4Params:n}=eg(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 Np=class extends fn{constructor(){super("FaceFeatureExtractor")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("FaceFeatureExtractor - load model before inference");return P(()=>{let a=ie(t.toBatchTensor(112,!0),"float32"),s=br(a,[122.782,117.001,104.298]).div(255),i=Rd(s,n.dense0,!0);return i=Rd(i,n.dense1),i=Rd(i,n.dense2),i=Rd(i,n.dense3),i=ya(i,[7,7],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await kt(t))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeightMap(t){return d$(t)}extractParams(t){return c$(t)}};function Pd(e,t){return P(()=>X($e(e,t.weights),t.bias))}function h$(e,t,n){let a=[],{extractWeights:r,getRemainingWeights:s}=Fn(e),o=Zf(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 m$(e){let t=[],n=ia(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 tg(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 Tp=class extends fn{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 Pd(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 h$(n,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeightMap(n){let{featureExtractorMap:a,classifierMap:r}=tg(n);return this.faceFeatureExtractor.loadFromWeightMap(a),m$(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 f$=["neutral","happy","sad","angry","fearful","disgusted","surprised"],Rs=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}`);f$.forEach((n,a)=>{this[n]=t[a]})}asSortedArray(){return f$.map(t=>({expression:t,probability:this[t]})).sort((t,n)=>n.probability-t.probability)}};var ng=class extends Tp{constructor(t=new Np){super("FaceExpressionNet",t)}forwardInput(t){return P(()=>Xa(this.runNet(t)))}async forward(t){return this.forwardInput(await kt(t))}async predictExpressions(t){let n=await kt(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 Rs(i));return n.isBatchInput?s:s[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}};function g$(e){return e.expressions instanceof Rs}function uk(e,t){return{...e,...{expressions:t}}}function fme(e,t,n=.1,a){(Array.isArray(t)?t:[t]).forEach(s=>{let i=s instanceof Rs?s:g$(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=Wr(s)?s.detection.box.bottomLeft:a||new Pe(0,0);new Br(l.map(d=>`${d.expression} (${Zo(d.probability)})`),u).draw(e)})}function Cp(e){return Wr(e)&&e.landmarks instanceof ka&&e.unshiftedLandmarks instanceof ka&&e.alignedRect instanceof wt}function gme(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 Od(e,t){let{box:n}=e.detection,a=t.shiftBy(n.x,n.y),r=a.align(),{imageDims:s}=e.detection,i=new wt(e.detection.score,r.rescale(s.reverse()),s),o=gme(t);return{...e,...{landmarks:a,unshiftedLandmarks:t,alignedRect:i,angle:o}}}var ag=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)"}},rg=class{constructor(t,n={}){this.faceLandmarks=t,this.options=new ag(n)}draw(t){let n=sa(t),{drawLines:a,drawPoints:r,lineWidth:s,lineColor:i,pointSize:o,pointColor:l}=this.options;if(a&&this.faceLandmarks instanceof gp&&(n.strokeStyle=i,n.lineWidth=s,Or(n,this.faceLandmarks.getJawOutline()),Or(n,this.faceLandmarks.getLeftEyeBrow()),Or(n,this.faceLandmarks.getRightEyeBrow()),Or(n,this.faceLandmarks.getNose()),Or(n,this.faceLandmarks.getLeftEye(),!0),Or(n,this.faceLandmarks.getRightEye(),!0),Or(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 bme(e,t){(Array.isArray(t)?t:[t]).forEach(a=>{let r=a instanceof ka?a:Cp(a)?a.landmarks:void 0;if(!r)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new rg(r).draw(e)})}var y$="1.7.11";function vme(e,t){let n=kp(e,t),a=Ip(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 x$(e,t){let n=[],{extractWeights:a,getRemainingWeights:r}=Fn(e),{extractConvParams:s,extractSeparableConvParams:i,extractReductionBlockParams:o,extractMainBlockParams:l}=vme(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={};gr(t,0,1).forEach(b=>{h[`main_block_${b}`]=l(128,`middle_flow/main_block_${b}`)});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 wme(e,t){let n=ia(e,t),a=Qf(n),r=Sp(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 v$(e,t){let n=[],{extractConvParams:a,extractSeparableConvParams:r,extractReductionBlockParams:s,extractMainBlockParams:i}=wme(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={};gr(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 w$(e,t,n){return X(Rt(e,t.filters,n,"same"),t.bias)}function pk(e,t,n=!0){let a=n?Ke(e):e;return a=Hn(a,t.separable_conv0,[1,1]),a=Hn(Ke(a),t.separable_conv1,[1,1]),a=Mt(a,[3,3],[2,2],"same"),a=X(a,w$(e,t.expansion_conv,[2,2])),a}function kme(e,t){let n=Hn(Ke(e),t.separable_conv0,[1,1]);return n=Hn(Ke(n),t.separable_conv1,[1,1]),n=Hn(Ke(n),t.separable_conv2,[1,1]),n=X(n,e),n}var sg=class extends fn{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=ie(n.toBatchTensor(112,!0),"float32"),i=br(r,[122.782,117.001,104.298]).div(255),o=Ke(w$(i,a.entry_flow.conv_in,[2,2]));return o=pk(o,a.entry_flow.reduction_block_0,!1),o=pk(o,a.entry_flow.reduction_block_1),gr(this._numMainBlocks,0,1).forEach(l=>{o=kme(o,a.middle_flow[`main_block_${l}`])}),o=pk(o,a.exit_flow.reduction_block),o=Ke(Hn(o,a.exit_flow.separable_conv,[1,1])),o})}async forward(n){return this.forwardInput(await kt(n))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeightMap(n){return v$(n,this._numMainBlocks)}extractParams(n){return x$(n,this._numMainBlocks)}};function k$(e){let t=[],{extractWeights:n,getRemainingWeights:a}=Fn(e),r=Zf(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 I$(e){let t=[],n=ia(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 ck=(n=>(n.FEMALE="female",n.MALE="male",n))(ck||{});var ig=class extends fn{constructor(n=new sg(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=ya(r,[7,7],[2,2],"valid").as2D(r.shape[0],-1),i=Pd(s,a.fc.age).as1D(),o=Pd(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 kt(n))}async predictAgeAndGender(n){let a=await kt(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 k$(n)}extractParamsFromWeightMap(n){let{featureExtractorMap:a,classifierMap:r}=tg(n);return this.faceFeatureExtractor.loadFromWeightMap(a),I$(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 _p=class extends Tp{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)=>Dt([xn([68],d,"float32"),xn([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(Dt(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 kt(t))}async detectLandmarks(t){let n=await kt(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)=>Vf(d)),u=o.filter((p,d)=>!Vf(d));return new gp(Array(68).fill(0).map((p,d)=>new Pe(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 Ep=class extends _p{constructor(t=new Np){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};function S$(e){let t=[],{extractDenseBlock3Params:n}=eg(e,t),a={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2")};return An(e,t),{params:a,paramMappings:t}}function N$(e){let t=[],{extractWeights:n,getRemainingWeights:a}=Fn(e),{extractDenseBlock3Params:r}=Jf(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 og=class extends fn{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("TinyFaceFeatureExtractor - load model before inference");return P(()=>{let a=ie(t.toBatchTensor(112,!0),"float32"),s=br(a,[122.782,117.001,104.298]).div(255),i=Yf(s,n.dense0,!0);return i=Yf(i,n.dense1),i=Yf(i,n.dense2),i=ya(i,[14,14],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await kt(t))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeightMap(t){return S$(t)}extractParams(t){return N$(t)}};var lg=class extends _p{constructor(t=new og){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var T$=class extends Ep{};function C$(e,t){return X(z(e,t.weights),t.biases)}function dk(e,t,n,a,r="same"){let{filters:s,bias:i}=t.conv,o=Rt(e,s,n,r);return o=X(o,i),o=C$(o,t.scale),a?Ke(o):o}function _$(e,t){return dk(e,t,[1,1],!0)}function hk(e,t){return dk(e,t,[1,1],!1)}function ug(e,t){return dk(e,t,[2,2],!0,"valid")}function Ime(e,t){function n(o,l,u){let p=e(o),d=p.length/(l*u*u);if(ek(d))throw new Error(`depth has to be an integer: ${d}, weights.length: ${p.length}, numFilters: ${l}, filterSize: ${u}`);return P(()=>De(Da(p,[l,d,u,u]),[2,3,1,0]))}function a(o,l,u,p){let d=n(o,l,u),c=je(e(l));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/bias`}),{filters:d,bias:c}}function r(o,l){let u=je(e(o)),p=je(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 E$(e){let{extractWeights:t,getRemainingWeights:n}=Fn(e),a=[],{extractConvLayerParams:r,extractResidualLayerParams:s}=Ime(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"),b=s(589824,256,3,"conv256_down",!0),y=s(589824,256,3,"conv256_1"),x=s(589824,256,3,"conv256_2"),w=s(589824,256,3,"conv256_down_out"),I=P(()=>De(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:b,conv256_1:y,conv256_2:x,conv256_down_out:w,fc:I},paramMappings:a}}function Sme(e,t){let n=ia(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 A$(e){let t=[],{extractConvLayerParams:n,extractResidualLayerParams:a}=Sme(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"),b=a("conv256_2"),y=a("conv256_down_out"),{fc:x}=e;if(t.push({originalPath:"fc",paramPath:"fc"}),!Q1(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:b,conv256_down_out:y,fc:x};return An(e,t),{params:w,paramMappings:t}}function Ja(e,t){let n=_$(e,t.conv1);return n=hk(n,t.conv2),n=X(n,e),n=Ke(n),n}function Ld(e,t){let n=ug(e,t.conv1);n=hk(n,t.conv2);let a=ya(e,2,2,"valid"),r=Nt(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=Nt(o);n=Qe([n,l],1);let u=[...n.shape];u[2]=1;let p=Nt(u);n=Qe([n,p],2)}return a=s?Qe([a,r],3):a,n=X(a,n),n=Ke(n),n}var Ap=class extends fn{constructor(){super("FaceRecognitionNet")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("FaceRecognitionNet - load model before inference");return P(()=>{let a=ie(t.toBatchTensor(150,!0),"float32"),s=br(a,[122.782,117.001,104.298]).div(255),i=ug(s,n.conv32_down);i=Mt(i,3,2,"valid"),i=Ja(i,n.conv32_1),i=Ja(i,n.conv32_2),i=Ja(i,n.conv32_3),i=Ld(i,n.conv64_down),i=Ja(i,n.conv64_1),i=Ja(i,n.conv64_2),i=Ja(i,n.conv64_3),i=Ld(i,n.conv128_down),i=Ja(i,n.conv128_1),i=Ja(i,n.conv128_2),i=Ld(i,n.conv256_down),i=Ja(i,n.conv256_1),i=Ja(i,n.conv256_2),i=Ld(i,n.conv256_down_out);let o=i.mean([1,2]);return $e(o,n.fc)})}async forward(t){return this.forwardInput(await kt(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 kt(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 A$(t)}extractParams(t){return E$(t)}};function jTe(e){let t=new Ap;return t.extractWeights(e),t}function mk(e,t){return{...e,...{descriptor:t}}}function ZTe(e){return typeof e.age=="number"}function fk(e,t){return{...e,...{age:t}}}function t2e(e){return(e.gender==="male"||e.gender==="female")&&hp(e.genderProbability)}function gk(e,t,n){return{...e,...{gender:t,genderProbability:n}}}function Nme(e,t){function n(l,u){let p=Da(e(9*l),[3,3,l,1]),d=je(e(l)),c=je(e(l)),h=je(e(l)),m=je(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=je(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"),b=s(512,512,"mobilenetv1/conv_9"),y=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:b,conv_10:y,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"),b=a(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),y=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"),F=a(256,18,1,"prediction_layer/box_predictor_4/class_predictor"),D=a(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),$=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:b},box_predictor_1:{box_encoding_predictor:y,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:F},box_predictor_5:{box_encoding_predictor:D,class_predictor:$}}}return{extractMobilenetV1Params:i,extractPredictionLayerParams:o}}function F$(e){let t=[],{extractWeights:n,getRemainingWeights:a}=Fn(e),{extractMobilenetV1Params:r,extractPredictionLayerParams:s}=Nme(n,t),i=r(),o=s(),u={extra_dim:pd(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 Tme(e,t){let n=ia(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`),b=n(`${d}/BatchNorm/moving_mean`,1,`${c}/batch_norm_mean`),y=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:b,batch_norm_variance:y},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 $$(e){let t=[],{extractMobilenetV1Params:n,extractPredictionLayerParams:a}=Tme(e,t),r=e["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!Lr(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=Rt(e,t.filters,n,"same");return a=X(a,t.batch_norm_offset),rn(a,0,6)})}var Cme=.0010000000474974513;function _me(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,Cme),rn(a,0,6)})}function Eme(e){return[2,4,6,12].some(t=>t===e)?[2,2]:[1,1]}function D$(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=Eme(o);a=_me(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 Ame(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),b=Math.min(o,d),y=Math.max(g-m,0)*Math.max(b-f,0);return y/(c+h-y)}function R$(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=Ame(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 Fme(e){let t=pt(De(e,[1,0])),n=[pe(t[2],t[0]),pe(t[3],t[1])],a=[X(t[0],he(n[0],2)),X(t[1],he(n[1],2))];return{sizes:n,centers:a}}function $me(e,t){let{sizes:n,centers:a}=Fme(e),r=pt(De(t,[1,0])),s=he(z(yn(he(r[2],5)),n[0]),2),i=X(z(he(r[0],10),n[0]),a[0]),o=he(z(yn(he(r[3],5)),n[1]),2),l=X(z(he(r[1],10),n[1]),a[1]);return De(Dt([pe(i,s),pe(l,o),X(i,s),X(l,o)]),[1,0])}function M$(e,t,n){return P(()=>{let a=e.shape[0],r=$me(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=ma(Ue(t,[0,0,1],[-1,-1,-1])),i=Ue(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 el(e,t){return P(()=>{let n=e.shape[0],a=W(Qo(e,t.box_encoding_predictor),[n,-1,1,4]),r=W(Qo(e,t.class_predictor),[n,-1,3]);return{boxPredictionEncoding:a,classPrediction:r}})}function P$(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=el(t,n.box_predictor_0),c=el(e,n.box_predictor_1),h=el(r,n.box_predictor_2),m=el(i,n.box_predictor_3),f=el(l,n.box_predictor_4),g=el(p,n.box_predictor_5),b=Qe([d.boxPredictionEncoding,c.boxPredictionEncoding,h.boxPredictionEncoding,m.boxPredictionEncoding,f.boxPredictionEncoding,g.boxPredictionEncoding],1),y=Qe([d.classPrediction,c.classPrediction,h.classPrediction,m.classPrediction,f.classPrediction,g.classPrediction],1);return{boxPredictions:b,classPredictions:y}})}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 tl=class extends fn{constructor(){super("SsdMobilenetv1")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("SsdMobilenetv1 - load model before inference");return P(()=>{let a=ie(t.toBatchTensor(512,!1),"float32"),r=pe(he(a,127.5),1),s=D$(r,n.mobilenetv1),{boxPredictions:i,classPredictions:o}=P$(s.out,s.conv11,n.prediction_layer);return M$(i,o,n.output_layer)})}async forward(t){return this.forwardInput(await kt(t))}async locateFaces(t,n={}){let{maxResults:a,minConfidence:r}=new Oa(n),s=await kt(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,b[x][0]),Math.min(1,b[x][2])].map(E=>E*g),[T,C]=[Math.max(0,b[x][1]),Math.min(1,b[x][3])].map(E=>E*f);return new wt(p[x],new fp(T,w,C-T,I-w),{height:s.getInputHeight(0),width:s.getInputWidth(0)})});return l.dispose(),u.dispose(),y}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return $$(t)}extractParams(t){return F$(t)}};function Dme(e){let t=new tl;return t.extractWeights(e),t}function j2e(e){return Dme(e)}var O$=class extends tl{};var L$=.4,z$=[new Pe(.738768,.874946),new Pe(2.42204,2.65704),new Pe(4.30971,7.04493),new Pe(10.246,4.59428),new Pe(12.6868,11.8741)],W$=[new Pe(1.603231,2.094468),new Pe(6.041143,7.080126),new Pe(2.882459,3.518061),new Pe(4.266906,5.178857),new Pe(9.041765,10.66308)],B$=[117.001,114.697,97.404],V$="tiny_yolov2_model",U$="tiny_yolov2_separable_conv_model";var pg=e=>typeof e=="number";function G$(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(!pg(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=>pg(t.x)&&pg(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(pg)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(e.meanRgb)}`)}function Fp(e){return P(()=>{let t=z(e,ve(.10000000149011612));return X(Ke(pe(e,t)),t)})}function Ur(e,t){return P(()=>{let n=xa(e,[[0,0],[1,1],[1,1],[0,0]]);return n=Rt(n,t.conv.filters,[1,1],"valid"),n=pe(n,t.bn.sub),n=z(n,t.bn.truediv),n=X(n,t.conv.bias),Fp(n)})}function Gr(e,t){return P(()=>{let n=xa(e,[[0,0],[1,1],[1,1],[0,0]]);return n=Ts(n,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),n=X(n,t.bias),Fp(n)})}function Rme(e,t){let n=kp(e,t);function a(i,o){let l=je(e(i)),u=je(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=Ip(e,t);return{extractConvParams:n,extractConvWithBatchNormParams:r,extractSeparableConvParams:s}}function H$(e,t,n,a){let{extractWeights:r,getRemainingWeights:s}=Fn(e),i=[],{extractConvParams:o,extractConvWithBatchNormParams:l,extractSeparableConvParams:u}=Rme(r,i),p;if(t.withSeparableConvs){let[d,c,h,m,f,g,b,y,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"),F=u(g,b,"conv5"),D=y?u(b,y,"conv6"):void 0,$=x?u(y,x,"conv7"):void 0,S=o(x||y||b,5*n,1,"conv8");p={conv0:w,conv1:I,conv2:T,conv3:C,conv4:E,conv5:F,conv6:D,conv7:$,conv8:S}}else{let[d,c,h,m,f,g,b,y,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"),F=l(g,b,"conv5"),D=l(b,y,"conv6"),$=l(y,x,"conv7"),S=o(x,5*n,1,"conv8");p={conv0:w,conv1:I,conv2:T,conv3:C,conv4:E,conv5:F,conv6:D,conv7:$,conv8:S}}if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{params:p,paramMappings:i}}function Mme(e,t){let n=ia(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=Sp(n);return{extractConvParams:r,extractConvWithBatchNormParams:s,extractSeparableConvParams:i}}function q$(e,t){let n=[],{extractConvParams:a,extractConvWithBatchNormParams:r,extractSeparableConvParams:s}=Mme(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 bk=class extends fn{constructor(n){super("TinyYolov2");G$(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=Ur(n,a.conv0);return r=Mt(r,[2,2],[2,2],"same"),r=Ur(r,a.conv1),r=Mt(r,[2,2],[2,2],"same"),r=Ur(r,a.conv2),r=Mt(r,[2,2],[2,2],"same"),r=Ur(r,a.conv3),r=Mt(r,[2,2],[2,2],"same"),r=Ur(r,a.conv4),r=Mt(r,[2,2],[2,2],"same"),r=Ur(r,a.conv5),r=Mt(r,[2,2],[1,1],"same"),r=Ur(r,a.conv6),r=Ur(r,a.conv7),Qo(r,a.conv8,"valid",!1)}runMobilenet(n,a){let r=this.config.isFirstLayerConv2d?Fp(Qo(n,a.conv0,"valid",!1)):Gr(n,a.conv0);return r=Mt(r,[2,2],[2,2],"same"),r=Gr(r,a.conv1),r=Mt(r,[2,2],[2,2],"same"),r=Gr(r,a.conv2),r=Mt(r,[2,2],[2,2],"same"),r=Gr(r,a.conv3),r=Mt(r,[2,2],[2,2],"same"),r=Gr(r,a.conv4),r=Mt(r,[2,2],[2,2],"same"),r=Gr(r,a.conv5),r=Mt(r,[2,2],[1,1],"same"),r=a.conv6?Gr(r,a.conv6):r,r=a.conv7?Gr(r,a.conv7):r,Qo(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=ie(n.toBatchTensor(a,!1),"float32");return s=this.config.meanRgb?br(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 kt(n),a)}async detect(n,a={}){let{inputSize:r,scoreThreshold:s}=new yr(a),i=await kt(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(b=>b.box),c=p.map(b=>b.score),h=p.map(b=>b.classScore),m=p.map(b=>this.config.classes[b.label]);return e$(d.map(b=>b.rescale(r)),c,this.config.iouThreshold,!0).map(b=>new $s(c[b],h[b],m[b],d[b],u))}getDefaultModelName(){return""}extractParamsFromWeightMap(n){return q$(n,this.config)}extractParams(n){let a=this.config.filterSizes||bk.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 H$(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 y=n.reshape([p,p,d,this.boxEncodingSize]),x=y.slice([0,0,0,0],[p,p,d,4]),w=y.slice([0,0,0,4],[p,p,d,1]),I=this.withClassScores?Xa(y.slice([0,0,0,5],[p,p,d,this.config.classes.length]),3):ve(0);return[x,w,I]}),f=[],g=await h.array(),b=await c.array();for(let y=0;yr){let T=(x+Gf(b[y][x][w][0]))/p*l,C=(y+Gf(b[y][x][w][1]))/p*u,E=Math.exp(b[y][x][w][2])*this.config.anchors[w].x/p*l,F=Math.exp(b[y][x][w][3])*this.config.anchors[w].y/p*u,D=T-E/2,$=C-F/2,S={row:y,col:x,anchor:w},{classScore:M,label:B}=this.withClassScores?await this.extractPredictedClass(m,S):{classScore:1,label:0};f.push({box:new mp(D,$,D+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)}},nl=bk;nl.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var $p=class extends nl{constructor(t=!0){let n={withSeparableConvs:t,iouThreshold:L$,classes:["face"],...t?{anchors:W$,meanRgb:B$}:{anchors:z$,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 wt(r.score,r.relativeBox,{width:r.imageWidth,height:r.imageHeight}))}getDefaultModelName(){return this.withSeparableConvs?U$:V$}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};function LCe(e,t=!0){let n=new $p(t);return n.extractWeights(e),n}var cg=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 al(e,t,n,a,r=({alignedRect:s})=>s){let s=e.map(l=>Cp(l)?r(l):l.detection),i=a||(t instanceof Ce?await Dd(t,s):await $d(t,s)),o=await n(i);return i.forEach(l=>l instanceof Ce&&l.dispose()),o}async function Dp(e,t,n,a,r){return al([e],t,async s=>n(s[0]),a,r)}var j$=.4,K$=[new Pe(1.603231,2.094468),new Pe(6.041143,7.080126),new Pe(2.882459,3.518061),new Pe(4.266906,5.178857),new Pe(9.041765,10.66308)],X$=[117.001,114.697,97.404];var Rp=class extends nl{constructor(){let t={withSeparableConvs:!0,iouThreshold:j$,classes:["face"],anchors:K$,meanRgb:X$,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 wt(r.score,r.relativeBox,{width:r.imageWidth,height:r.imageHeight}))}getDefaultModelName(){return"tiny_face_detector_model"}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};var rt={ssdMobilenetv1:new tl,tinyFaceDetector:new Rp,tinyYolov2:new $p,faceLandmark68Net:new Ep,faceLandmark68TinyNet:new lg,faceRecognitionNet:new Ap,faceExpressionNet:new ng,ageGenderNet:new ig},Pme=(e,t)=>rt.ssdMobilenetv1.locateFaces(e,t),m_e=(e,t)=>rt.tinyFaceDetector.locateFaces(e,t),f_e=(e,t)=>rt.tinyYolov2.locateFaces(e,t),Ome=e=>rt.faceLandmark68Net.detectLandmarks(e),g_e=e=>rt.faceLandmark68TinyNet.detectLandmarks(e),b_e=e=>rt.faceRecognitionNet.computeFaceDescriptor(e),y_e=e=>rt.faceExpressionNet.predictExpressions(e),x_e=e=>rt.ageGenderNet.predictAgeAndGender(e),Lme=e=>rt.ssdMobilenetv1.load(e),v_e=e=>rt.tinyFaceDetector.load(e),w_e=e=>rt.tinyYolov2.load(e),k_e=e=>rt.faceLandmark68Net.load(e),I_e=e=>rt.faceLandmark68TinyNet.load(e),S_e=e=>rt.faceRecognitionNet.load(e),N_e=e=>rt.faceExpressionNet.load(e),T_e=e=>rt.ageGenderNet.load(e),C_e=Lme,__e=Pme,E_e=Ome;var dg=class extends La{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.extractedFaces=r}},rl=class extends dg{async run(){let t=await this.parentTask,n=await al(t,this.input,async a=>Promise.all(a.map(r=>rt.faceExpressionNet.predictExpressions(r))),this.extractedFaces);return t.map((a,r)=>uk(a,n[r]))}withAgeAndGender(){return new il(this,this.input)}},sl=class extends dg{async run(){let t=await this.parentTask;if(!t)return;let n=await Dp(t,this.input,a=>rt.faceExpressionNet.predictExpressions(a),this.extractedFaces);return uk(t,n)}withAgeAndGender(){return new ol(this,this.input)}},Ms=class extends rl{withAgeAndGender(){return new Os(this,this.input)}withFaceDescriptors(){return new zs(this,this.input)}},Ps=class extends sl{withAgeAndGender(){return new Ls(this,this.input)}withFaceDescriptor(){return new Ws(this,this.input)}};var hg=class extends La{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.extractedFaces=r}},il=class extends hg{async run(){let t=await this.parentTask,n=await al(t,this.input,async a=>Promise.all(a.map(r=>rt.ageGenderNet.predictAgeAndGender(r))),this.extractedFaces);return t.map((a,r)=>{let{age:s,gender:i,genderProbability:o}=n[r];return fk(gk(a,i,o),s)})}withFaceExpressions(){return new rl(this,this.input)}},ol=class extends hg{async run(){let t=await this.parentTask;if(!t)return;let{age:n,gender:a,genderProbability:r}=await Dp(t,this.input,s=>rt.ageGenderNet.predictAgeAndGender(s),this.extractedFaces);return fk(gk(t,a,r),n)}withFaceExpressions(){return new sl(this,this.input)}},Os=class extends il{withFaceExpressions(){return new Ms(this,this.input)}withFaceDescriptors(){return new zs(this,this.input)}},Ls=class extends ol{withFaceExpressions(){return new Ps(this,this.input)}withFaceDescriptor(){return new Ws(this,this.input)}};var mg=class extends La{constructor(n,a){super();this.parentTask=n;this.input=a}},zs=class extends mg{async run(){let t=await this.parentTask;return(await al(t,this.input,a=>Promise.all(a.map(r=>rt.faceRecognitionNet.computeFaceDescriptor(r))),null,a=>a.landmarks.align(null,{useDlibAlignment:!0}))).map((a,r)=>mk(t[r],a))}withFaceExpressions(){return new Ms(this,this.input)}withAgeAndGender(){return new Os(this,this.input)}},Ws=class extends mg{async run(){let t=await this.parentTask;if(!t)return;let n=await Dp(t,this.input,a=>rt.faceRecognitionNet.computeFaceDescriptor(a),null,a=>a.landmarks.align(null,{useDlibAlignment:!0}));return mk(t,n)}withFaceExpressions(){return new Ps(this,this.input)}withAgeAndGender(){return new Ls(this,this.input)}};var fg=class extends La{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.useTinyLandmarkNet=r}get landmarkNet(){return this.useTinyLandmarkNet?rt.faceLandmark68TinyNet:rt.faceLandmark68Net}},gg=class extends fg{async run(){let t=await this.parentTask,n=t.map(i=>i.detection),a=this.input instanceof Ce?await Dd(this.input,n):await $d(this.input,n),r=await Promise.all(a.map(i=>this.landmarkNet.detectLandmarks(i)));return a.forEach(i=>i instanceof Ce&&i.dispose()),t.filter((i,o)=>r[o]).map((i,o)=>Od(i,r[o]))}withFaceExpressions(){return new Ms(this,this.input)}withAgeAndGender(){return new Os(this,this.input)}withFaceDescriptors(){return new zs(this,this.input)}},bg=class extends fg{async run(){let t=await this.parentTask;if(!t)return;let{detection:n}=t,a=this.input instanceof Ce?await Dd(this.input,[n]):await $d(this.input,[n]),r=await this.landmarkNet.detectLandmarks(a[0]);return a.forEach(s=>s instanceof Ce&&s.dispose()),Od(t,r)}withFaceExpressions(){return new Ps(this,this.input)}withAgeAndGender(){return new Ls(this,this.input)}withFaceDescriptor(){return new Ws(this,this.input)}};var yg=class extends La{constructor(n,a=new Oa){super();this.input=n;this.options=a}},zd=class extends yg{async run(){let{input:t,options:n}=this,a;if(n instanceof cg)a=rt.tinyFaceDetector.locateFaces(t,n);else if(n instanceof Oa)a=rt.ssdMobilenetv1.locateFaces(t,n);else if(n instanceof yr)a=rt.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=>bp({},r)))).catch(a=>n(a))})}withFaceLandmarks(t=!1){return new gg(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new rl(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new il(this.runAndExtendWithFaceDetections(),this.input)}},xg=class extends yg{async run(){let t=await new zd(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?bp({},n):void 0)})}withFaceLandmarks(t=!1){return new bg(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new sl(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new ol(this.runAndExtendWithFaceDetection(),this.input)}};function TEe(e,t=new Oa){return new xg(e,t)}function yk(e,t=new Oa){return new zd(e,t)}async function zme(e,t){return yk(e,new Oa(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function $Ee(e,t={}){return yk(e,new yr(t)).withFaceLandmarks().withFaceDescriptors()}var DEe=zme;function Y$(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 vg=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 zr)return i;if(i instanceof Float32Array)return new zr(s(),[i]);if(i.descriptor&&i.descriptor instanceof Float32Array)return new zr(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=>Y$(a,t)).reduce((a,r)=>a+r,0)/(n.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:n,label:a})=>new _d(a,this.computeMeanDistance(t,n))).reduce((n,a)=>n.distancet.toJSON())}}static fromJSON(t){let n=t.labeledDescriptors.map(a=>zr.fromJSON(a));return new vg(n,t.distanceThreshold)}};function ZEe(e){let t=new Rp;return t.extractWeights(e),t}function Wme(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=>Wme(r,{width:n,height:a}));if(Cp(e)){let r=e.detection.forSize(n,a),s=e.unshiftedLandmarks.forSize(r.box.width,r.box.height);return Od(bp(e,r),s)}return Wr(e)?bp(e,e.detection.forSize(n,a)):e instanceof ka||e instanceof wt?e.forSize(n,a):e}var lAe=y$;export{ig as AgeGenderNet,mp as BoundingBox,dt as Box,La as ComposableTask,zs as ComputeAllFaceDescriptorsTask,mg as ComputeFaceDescriptorsTaskBase,Ws as ComputeSingleFaceDescriptorTask,gg as DetectAllFaceLandmarksTask,zd as DetectAllFacesTask,fg as DetectFaceLandmarksTaskBase,yg as DetectFacesTaskBase,bg as DetectSingleFaceLandmarksTask,xg as DetectSingleFaceTask,En as Dimensions,f$ as FACE_EXPRESSION_LABELS,wt as FaceDetection,O$ as FaceDetectionNet,ng as FaceExpressionNet,Rs as FaceExpressions,Ep as FaceLandmark68Net,lg as FaceLandmark68TinyNet,T$ as FaceLandmarkNet,ka as FaceLandmarks,n$ as FaceLandmarks5,gp as FaceLandmarks68,_d as FaceMatch,vg as FaceMatcher,Ap as FaceRecognitionNet,ck as Gender,Ed as LabeledBox,zr as LabeledFaceDescriptors,Vr as NetInput,fn as NeuralNetwork,$s as ObjectDetection,Pe as Point,a$ as PredictedBox,fp as Rect,tl as SsdMobilenetv1,Oa as SsdMobilenetv1Options,Rp as TinyFaceDetector,cg as TinyFaceDetectorOptions,$p as TinyYolov2,yr as TinyYolov2Options,DEe as allFaces,zme as allFacesSsdMobilenetv1,$Ee as allFacesTinyYolov2,r$ as awaitMediaLoaded,s$ as bufferToImage,b_e as computeFaceDescriptor,wp as createCanvas,Kf as createCanvasFromMedia,j2e as createFaceDetectionNet,jTe as createFaceRecognitionNet,Dme as createSsdMobilenetv1,ZEe as createTinyFaceDetector,LCe as createTinyYolov2,yk as detectAllFaces,Ome as detectFaceLandmarks,g_e as detectFaceLandmarksTiny,E_e as detectLandmarks,TEe as detectSingleFace,b$ as draw,at as env,Y$ as euclideanDistance,fk as extendWithAge,mk as extendWithFaceDescriptor,bp as extendWithFaceDetection,uk as extendWithFaceExpressions,Od as extendWithFaceLandmarks,gk as extendWithGender,Dd as extractFaceTensors,$d as extractFaces,ake as fetchImage,l$ as fetchJson,lke as fetchNetWeights,Ds as fetchOrThrow,mke as fetchVideo,sa as getContext2dOrThrow,vp as getMediaDimensions,i$ as imageTensorToCanvas,o$ as imageToSquare,ywe as inverseSigmoid,JF as iou,lk as isMediaElement,jf as isMediaLoaded,ZTe as isWithAge,Wr as isWithFaceDetection,g$ as isWithFaceExpressions,Cp as isWithFaceLandmarks,t2e as isWithGender,T_e as loadAgeGenderModel,C_e as loadFaceDetectionModel,N_e as loadFaceExpressionModel,k_e as loadFaceLandmarkModel,I_e as loadFaceLandmarkTinyModel,S_e as loadFaceRecognitionModel,Lme as loadSsdMobilenetv1Model,v_e as loadTinyFaceDetectorModel,w_e as loadTinyYolov2Model,p$ as loadWeightMap,__e as locateFaces,wke as matchDimensions,QF as minBbox,rt as nets,e$ as nonMaxSuppression,br as normalize,t$ as padToSquare,x_e as predictAgeAndGender,y_e as recognizeFaceExpressions,Wme as resizeResults,yp as resolveInput,gwe as shuffleArray,Gf as sigmoid,Pme as ssdMobilenetv1,ze as tf,m_e as tinyFaceDetector,f_e as tinyYolov2,kt as toNetInput,ZF as utils,G$ as validateConfig,lAe 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=w.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;YF(i,o,l,u,c,m,g);let b=t.readSync(f.dataId),y;switch(b[0]){case 0:{y=N.getSparseReshapeMultipleNegativeOneOutputDimErrorMessage(b[1],b[2]);break}case 1:{y=N.getSparseReshapeNegativeOutputDimErrorMessage(b[1],b[2]);break}case 2:y=N.getSparseReshapeEmptyTensorZeroOutputDimErrorMessage();break;case 3:{let x=Array.from(t.readSync(r.dataId)),v=Array.from(t.readSync(h.dataId));y=N.getSparseReshapeInputOutputMultipleErrorMessage(x,v);break}case 4:{let x=Array.from(t.readSync(r.dataId)),v=Array.from(t.readSync(h.dataId));y=N.getSparseReshapeInputOutputMismatchErrorMessage(x,v);break}default:y=""}if(t.disposeData(f.dataId),y)throw t.disposeData(d.dataId),t.disposeData(h.dataId),new Error(y);return[d,h]}var Ehe={kernelName:Gu,backendName:"wasm",setupFunc:Che,kernelFunc:_he},ZF;function JF(e){ZF=e.wasm.cwrap("SparseSegmentReduction",null,["number","number","number","number","number","number","number","number","number"])}function QF(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"),b=n.dataIdMap.get(g.dataId).id;ZF(d,Qe[r.dtype],r.shape[0],c,h,f,b,t,0);let y=n.readSync(g.dataId),x;switch(y[0]){case 0:{x=N.getSparseSegmentReductionNegativeSegmentIdsErrorMessage();break}case 1:{x=N.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage();break}case 2:x=N.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(y[1],y[2]);break;case 3:x=N.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(y[1],y[2],y[3]);break;default:x=""}if(n.disposeData(g.dataId),x)throw n.disposeData(m.dataId),new Error(x);return m}function Ahe(e){return QF(e,!0)}var Fhe={kernelName:Uc,backendName:"wasm",setupFunc:JF,kernelFunc:Ahe};function $he(e){return QF(e,!1)}var Dhe={kernelName:Gc,backendName:"wasm",setupFunc:JF,kernelFunc:$he},e$;function Rhe(e){e$=e.wasm.cwrap(Hu,null,["number","number","number","number","number","number","number","number","array","number","number"])}function Mhe(e){let{backend:t,inputs:n,attrs:a}=e,{sparseIndices:r,sparseValues:s,defaultValue:i}=n,{outputShape:o}=a,l=t.makeOutput(o,i.dtype);if(w.sizeFromShape(o)===0)return l;let{sliceRank:u,numUpdates:p,sliceSize:d,strides:c,outputSize:h}=N.calculateShapes(s,r,o),m=t.dataIdMap.get(r.dataId).id,f=t.dataIdMap.get(s.dataId).id,g=t.dataIdMap.get(i.dataId).id,b=new Uint8Array(new Int32Array(c).buffer),y=t.dataIdMap.get(l.dataId).id;return e$(m,f,s.shape.length,g,Qe[i.dtype],u,p,d,b,h,y),l}var Phe={kernelName:Hu,backendName:"wasm",setupFunc:Rhe,kernelFunc:Mhe};function Ohe(e){let{inputs:t,attrs:n,backend:a}=e,{x:r}=t,{numOrSizeSplits:s,axis:i}=n,o=w.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=Ii({inputs:{x:r},attrs:{begin:u,size:c},backend:a});return u[o]+=d,h})}var Lhe={kernelName:Uu,backendName:"wasm",kernelFunc:Ohe},zhe=Xe(Oo),Whe=Xe(Hc),Bhe=!0,Vhe=Ht(Wo,Bhe),t$;function Uhe(e){t$=e.wasm.cwrap(ws,null,["number","number","number","number"])}function Ghe(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 t$(i,r,Qe[s.dtype],l),o}var Hhe={kernelName:ws,backendName:"wasm",setupFunc:Uhe,kernelFunc:Ghe},n$;function qhe(e){n$=e.wasm.cwrap(qu,null,["number","array","number","array","array","array","array","array","number","number"])}function jhe(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:b,begin:y,end:x,strides:v}=Xt.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||b){w.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let T=Xt.computeOutShape(y,x,v),C=Ii({inputs:{x:r},backend:t,attrs:{begin:y,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(w.computeStrides(r.shape)).buffer),F=new Uint8Array(new Int32Array(y).buffer),D=new Uint8Array(new Int32Array(x).buffer),$=new Uint8Array(new Int32Array(v).buffer),S=new Uint8Array(new Int32Array(h).buffer),M=new Uint8Array(new Int32Array(w.computeStrides(h)).buffer),B=t.dataIdMap.get(T.dataId).id;n$(C,E,r.shape.length,F,D,$,S,M,h.length,B),I=Wn({inputs:{x:T},backend:t,attrs:{shape:m}}),t.disposeData(T.dataId)}return I}var Khe={kernelName:qu,backendName:"wasm",setupFunc:qhe,kernelFunc:jhe};function Xhe(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]=P1(c,h,i,o,l,u,p,d),g=t.makeOutput([m.length],"string"),b=t.dataIdMap.get(g.dataId);b.stringBytes=m;let y=t.makeOutput(s.shape,"int32");return t.typedArrayFromHeap(y).set(f),[g,y]}var Yhe={kernelName:jc,backendName:"wasm",kernelFunc:Xhe};function Zhe(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]=O1(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 Jhe={kernelName:Kc,backendName:"wasm",kernelFunc:Zhe};function Qhe(e){let{backend:t,inputs:n,attrs:a}=e,{input:r}=n,{numBuckets:s}=a,i=t.readSync(r.dataId),o=L1(i,s),l=t.makeOutput(r.shape,"int32");return t.typedArrayFromHeap(l).set(o),l}var eme={kernelName:Xc,backendName:"wasm",kernelFunc:Qhe},tme=!0,nme=Ht(Bo,tme),a$;function ame(e){a$=e.wasm.cwrap(Lo,null,["number","number","number","number"])}function rme(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}=Fs(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),b=w.sizeFromShape(g),y=t.makeOutput(f,u.dtype);if(w.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(y.dataId).id;a$(l,b,Qe[y.dtype],x)}if(h&&t.disposeData(p.dataId),s){let x=N.expandShapeToKeepDim(y.shape,c);y.shape=x}return y}var sme={kernelName:Lo,backendName:"wasm",setupFunc:ame,kernelFunc:rme},ime=Xe(Vo),ome=Xe(Uo),r$;function lme(e){r$=e.wasm.cwrap(Lu,null,["number","number","number","number","number","number","array","number","number","number"])}function ume(e){let{backend:t,inputs:n,attrs:a}=e,{tensor:r,indices:s,updates:i}=n,{}=a,o=t.makeOutput(r.shape,r.dtype);if(w.sizeFromShape(r.shape)===0)return o;let{sliceRank:l,numUpdates:u,sliceSize:p,strides:d,outputSize:c}=sf.calculateShapes(i,s,r.shape),h=t.dataIdMap.get(s.dataId).id,m=t.dataIdMap.get(i.dataId).id,f=t.dataIdMap.get(r.dataId).id,g=new Uint8Array(new Int32Array(d).buffer),b=t.dataIdMap.get(o.dataId).id;return r$(h,m,Qe[i.dtype],l,u,p,g,c,b,f),o}var pme={kernelName:Lu,backendName:"wasm",setupFunc:lme,kernelFunc:ume},s$;function cme(e){s$=e.wasm.cwrap(vs,null,["number","array","number","array","number","number"])}function dme(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 i$(i,o,a.shape.length,Qe[a.dtype],r,s,p,c),[u,d]},gme={kernelName:ju,backendName:"wasm",setupFunc:mme,kernelFunc:fme},o$;function bme(e){o$=e.wasm.cwrap(Ku,null,["number","number","bool","number","number","number","number","number","number","array","number","array","number","number","number","number","number"])}function yme(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],b=new Uint8Array(new Int32Array(w.computeStrides(r.shape)).buffer),y=new Uint8Array(new Int32Array(w.computeStrides(g)).buffer),x=t.makeOutput(g,r.dtype),v=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 o$(I,T,s.shape[0]>1,p,m,f,h,c,d,b,r.shape.length-1,y,g.length-1,C,E,l,v),x}var xme={kernelName:Ku,backendName:"wasm",setupFunc:bme,kernelFunc:yme};function vme(e){let{inputs:t,attrs:n,backend:a}=e,{axis:r}=n,{x:s}=t,{outputValues:i,outputShape:o,indices:l}=W1(a.readSync(s.dataId),r,s.shape,s.dtype);return[a.makeOutput(o,s.dtype,void 0,i),a.makeOutput([l.length],"int32",void 0,l)]}var wme={kernelName:Yc,backendName:"wasm",kernelFunc:vme};function kme(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 Ime={kernelName:Xu,backendName:"wasm",kernelFunc:kme};function Sme(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(a).fill(0),a}var Nme={kernelName:Yu,backendName:"wasm",kernelFunc:Sme},Tme=[ole,lle,ule,ple,dle,fle,Ile,Tle,Cle,_le,Ele,Ale,Fle,$le,Dle,Ple,Hle,zle,Vle,Xle,tue,rue,iue,lue,uue,pue,hue,mue,bue,vue,Iue,Tue,Eue,Aue,Fue,Rue,Oue,Wue,Uue,que,Xue,Jue,tpe,rpe,ope,lpe,cpe,hpe,mpe,fpe,gpe,bpe,ype,wpe,kpe,Spe,Cpe,Ape,Dpe,Ppe,zpe,Bpe,Upe,gle,Gpe,Hpe,qpe,Xpe,Zpe,Qpe,nce,rce,ace,ice,oce,uce,cce,mce,bce,vce,kce,Nce,_ce,Fce,Rce,Oce,Wce,Uce,Hce,Kce,Qce,ede,nde,ade,ide,ude,dde,mde,bde,xde,wde,PF,Nde,_de,Fde,Dde,Mde,Pde,Ode,Lde,qle,Bde,Gde,jde,Yde,Qde,nhe,ahe,rhe,ohe,phe,hhe,mhe,bhe,yhe,xhe,vhe,Qle,Yce,whe,Ihe,The,Ehe,Fhe,Dhe,Phe,Lhe,zhe,Whe,Vhe,Hhe,Khe,Yhe,Jhe,eme,nme,sme,ime,ome,pme,hme,gme,xme,vle,wme,Ime,Nme];for(let e of Tme)Jc(e);var mv=G();mv.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}});mv.registerFlag("WASM_HAS_MULTITHREAD_SUPPORT",async()=>{if(mv.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 bS=bs(cR()),Cme=bs(dR()),yS=bs(hR()),xS=bS.default||bS,_me=yS.default||yS,l$=class extends Ec{constructor(e){super(),this.wasm=e,this.dataIdNextNumber=1,this.wasm.tfjs.initWithThreadsCount(u$),fv=this.wasm.tfjs.getThreadsCount(),this.dataIdMap=new xm(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=w.now();return e(),{kernelMs:w.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=w.sizeFromShape(n),o=i*w.bytesPerElement(a),l=this.wasm._malloc(o)>>>0;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||w.sizeFromShape(s);let o=w.bytesPerElement(r),l=this.wasm.HEAPU8.slice(a+t*o,a+n*o);return Fme(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,a){let r;if(n==null)r=this.write(a!=null?a:null,e,t);else{let s=this.dataIdNextNumber++;r={id:s},this.dataIdMap.set(r,{id:s,memoryOffset:n,shape:e,dtype:t,refCount:1});let i=w.sizeFromShape(e);this.wasm.tfjs.registerTensor(s,i,n)}return{dataId:r,shape:e,dtype:t}}typedArrayFromHeap({shape:e,dtype:t,dataId:n}){let a=this.wasm.HEAPU8.buffer,{memoryOffset:r}=this.dataIdMap.get(n),s=w.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 Eme(e){return(t,n)=>(w.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 vS(e,t,n){if(bm!=null)return bm;let a="tfjs-backend-wasm.wasm";return e&&t?a="tfjs-backend-wasm-threaded-simd.wasm":e&&(a="tfjs-backend-wasm-simd.wasm"),uc!=null&&uc[a]!=null?uc[a]:n+a}async function Ame(){let[e,t]=await Promise.all([G().getAsync("WASM_HAS_SIMD_SUPPORT"),G().getAsync("WASM_HAS_MULTITHREAD_SUPPORT")]);return new Promise((n,a)=>{let r={};r.locateFile=(o,l)=>{if(o.endsWith(".worker.js")){let u=Cme.wasmWorkerContents.replace(/\n/g,"\\n"),p=new Blob([u],{type:"application/javascript"});return URL.createObjectURL(p)}return o.endsWith(".wasm")?vS(e,t,ic!=null?ic:l):l+o},ik&&(r.instantiateWasm=Eme(vS(e,t,ic!=null?ic:"")));let s=!1;r.onAbort=()=>{s||pc||(pc=!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&&bm==null?(r.mainScriptUrlOrBlob=new Blob(["var WasmBackendModuleThreadedSimd = "+xS.toString()],{type:"text/javascript"}),i=xS(r)):i=_me(r),i.then(o=>{s=!0,pc=!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 Fme(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 $me=["tfjs-backend-wasm.wasm","tfjs-backend-wasm-simd.wasm","tfjs-backend-wasm-threaded-simd.wasm"],bm=null,ic=null,uc={},pc=!1,ik=!1;function Dme(e,t=!1){if(Ev("setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release."),pc)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`");bm=e,ik=t}function Rme(e,t=!1){if(pc)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")ic=e;else{uc=e;let n=$me.filter(a=>uc[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.`)}ik=t}var u$=-1,fv=-1;function Mme(e){u$=e}function Pme(){if(fv===-1)throw new Error("WASM backend not initialized.");return fv}var Ome="4.7.0",Lme=2;Pm("wasm",async()=>{let{wasm:e}=await Ame();return new l$(e)},Lme);var wS="4.7.0",zme="4.7.0",Wme="4.7.0",Bme="4.7.0",Vme="4.7.0",Ume={tfjs:wS,"tfjs-core":wS,"tfjs-converter":zme,"tfjs-backend-cpu":Wme,"tfjs-backend-webgl":Bme,"tfjs-backend-wasm":Vme};var A$={};tx(A$,{AnchorPosition:()=>fk,DrawBox:()=>Pd,DrawBoxOptions:()=>jf,DrawFaceLandmarks:()=>sg,DrawFaceLandmarksOptions:()=>rg,DrawTextField:()=>Vr,DrawTextFieldOptions:()=>kp,drawContour:()=>Lr,drawDetections:()=>Yme,drawFaceExpressions:()=>Zme,drawFaceLandmarks:()=>Qme});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 p$={};tx(p$,{computeReshapedDimensions:()=>uk,getCenterPoint:()=>al,isDimensions:()=>Gf,isEven:()=>Uf,isFloat:()=>lk,isTensor:()=>tl,isTensor1D:()=>Gme,isTensor2D:()=>ok,isTensor3D:()=>zr,isTensor4D:()=>wa,isValidNumber:()=>Za,isValidProbablitiy:()=>gp,range:()=>br,round:()=>nl});var En=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 En(1/this.width,1/this.height)}};function tl(e,t){return e instanceof Te&&e.shape.length===t}function Gme(e){return tl(e,1)}function ok(e){return tl(e,2)}function zr(e){return tl(e,3)}function wa(e){return tl(e,4)}function lk(e){return e%1!==0}function Uf(e){return e%2===0}function nl(e,t=2){let n=10**t;return Math.floor(e*n)/n}function Gf(e){return e&&e.width&&e.height}function uk({width:e,height:t},n){let a=n/Math.max(t,e);return new En(Math.round(e*a),Math.round(t*a))}function al(e){return e.reduce((t,n)=>t.add(n),new Pe(0,0)).div(new Pe(e.length,e.length))}function br(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 gp(e){return Za(e)&&e>=0&&e<=1}var Pe=class{constructor(t,n){this._x=t,this._y=n}get x(){return this._x}get y(){return this._y}add(t){return new Pe(this.x+t.x,this.y+t.y)}sub(t){return new Pe(this.x-t.x,this.y-t.y)}mul(t){return new Pe(this.x*t.x,this.y*t.y)}div(t){return new Pe(this.x/t.x,this.y/t.y)}abs(){return new Pe(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(this.x**2+this.y**2)}floor(){return new Pe(Math.floor(this.x),Math.floor(this.y))}};var dt=class{static isRect(t){return!!t&&[t.x,t.y,t.width,t.height].every(Za)}static assertIsValidBox(t,n,a=!1){if(!dt.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];dt.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 Pe(this.left,this.top)}get topRight(){return new Pe(this.right,this.top)}get bottomLeft(){return new Pe(this.left,this.bottom)}get bottomRight(){return new Pe(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 dt({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 dt({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 dt({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 bp=class extends dt{constructor(t,n,a,r,s=!1){super({left:t,top:n,right:a,bottom:r},s)}};var Ds=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 dt(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 dt(this._box).rescale(this.imageDims.reverse())}forSize(t,n){return new Ds(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:n})}};var wt=class extends Ds{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 wt(a,r,s)}};function c$(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 d$(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 yr(e,t){return P(()=>{let[n,a,r]=t,s=xn([...e.shape.slice(0,3),1],n,"float32"),i=xn([...e.shape.slice(0,3),1],a,"float32"),o=xn([...e.shape.slice(0,3),1],r,"float32"),l=et([s,i,o],3);return pe(e,l)})}function m$(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,xn(h,0,"float32")},l=o(s),u=r-l.shape[i],d=[t&&u?o(u):null,e,l].filter(c=>!!c).map(c=>se(c,"float32"));return et(d,i)})}function Jwe(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 Hf(e){return 1/(1+Math.exp(-e))}function e0e(e){return Math.log(e/(1-e))}var yp=class extends dt{constructor(t,n,a,r,s=!1){super({x:t,y:n,width:a,height:r},s)}};var Hme=.5,qme=.43,jme=.45,ka=class{constructor(t,n,a=new Pe(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 Pe(r,s)).add(a))}get shift(){return new Pe(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 Pe(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 Pe(t,n))}shiftByPoint(t){return this.shiftBy(t.x,t.y)}align(t,n={}){if(t){let s=t instanceof wt?t.box.floor():new dt(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/jme),l=al(t),u=Math.floor(Math.max(0,l.x-Hme*o)),p=Math.floor(Math.max(0,l.y-qme*o));return new yp(u,p,Math.min(o,this.imageWidth+u),Math.min(o,this.imageHeight+p))}alignMinBbox(t){let n=d$(this.positions);return n.pad(n.width*t,n.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var f$=class extends ka{getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],al([t[3],t[4]])]}};var xp=class extends ka{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(al)}};var Dd=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?` (${nl(this.distance)})`:""}`}};var Rd=class extends dt{constructor(n,a){super(n);this._label=a}static assertIsValidLabeledBox(n,a){if(dt.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 Wr=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 Wr(t.label,n)}};var g$=class extends Rd{constructor(n,a,r,s){super(n,a);this._score=r,this._classScore=s}static assertIsValidPredictedBox(n,a){if(Rd.assertIsValidLabeledBox(n,a),!gp(n.score)||!gp(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 Br(e){return e.detection instanceof wt}function vp(e,t){return{...e,...{detection:t}}}function pk(){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 qf(e){let t="";if(!e&&Md())try{e=GD("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 ck(){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=qf();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 dk(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var un;function Kme(){if(!un)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return un}function hk(e){un=e}function mk(){return dk()?hk(pk()):Md()?hk(ck()):null}function Xme(e){if(un||mk(),!un)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=un.Canvas,Image:n=un.Image}=e;un.Canvas=t,un.Image=n,un.createCanvasElement=e.createCanvasElement||(()=>new t),un.createImageElement=e.createImageElement||(()=>new n),un.ImageData=e.ImageData||un.ImageData,un.Video=e.Video||un.Video,un.fetch=e.fetch||un.fetch,un.readFile=e.readFile||un.readFile}var at={getEnv:Kme,setEnv:hk,initialize:mk,createBrowserEnv:pk,createFileSystem:qf,createNodejsEnv:ck,monkeyPatch:Xme,isBrowser:dk,isNodejs:Md};mk();function wp(e){return!at.isNodejs()&&typeof e=="string"?document.getElementById(e):e}function sa(e){let{Canvas:t,CanvasRenderingContext2D:n}=at.getEnv();if(e instanceof n)return e;let a=wp(e);if(!(a instanceof t))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");let r=a.getContext("2d",{willReadFrequently:!0});if(!r)throw new Error("resolveContext2d - canvas 2d context is null");return r}var fk=(r=>(r.TOP_LEFT="TOP_LEFT",r.TOP_RIGHT="TOP_RIGHT",r.BOTTOM_LEFT="BOTTOM_LEFT",r.BOTTOM_RIGHT="BOTTOM_RIGHT",r))(fk||{}),kp=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}},Vr=class{constructor(t,n,a={}){this.text=typeof t=="string"?[t]:t instanceof Vr?t.text:t,this.anchor=n,this.options=new kp(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 jf=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 kp({...i,...s})}},Pd=class{constructor(t,n={}){this.box=new dt(t),this.options=new jf(n)}draw(t){let n=sa(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 Vr([u],{x:s-r/2,y:i},this.options.drawLabelOptions).draw(t)}};function Yme(e,t){(Array.isArray(t)?t:[t]).forEach(a=>{let r=a instanceof wt?a.score:Br(a)?a.detection.score:void 0,s=a instanceof wt?a.box:Br(a)?a.detection.box:new dt(a),i=r?`${nl(r)}`:void 0;new Pd(s,{label:i}).draw(e)})}function Kf(e){let{Image:t,Video:n}=at.getEnv();return e instanceof t&&e.complete||e instanceof n&&e.readyState>=3}function b$(e){return new Promise((t,n)=>{(e instanceof at.getEnv().Canvas||Kf(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 y$(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=at.getEnv().createImageElement();r.onload=()=>t(r),r.onerror=n,r.src=a.result},a.onerror=n,a.readAsDataURL(e)})}function Ip(e){let{Image:t,Video:n}=at.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 Sp({width:e,height:t}){let{createCanvasElement:n}=at.getEnv(),a=n();return a.width=e,a.height=t,a}function Xf(e,t){let{ImageData:n}=at.getEnv();if(!(e instanceof n)&&!Kf(e))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:a,height:r}=t||Ip(e),s=Sp({width:a,height:r});return e instanceof n?sa(s).putImageData(e,0,0):sa(s).drawImage(e,0,0,a,r),s}async function x$(e,t){let n=t||at.getEnv().createCanvasElement(),[a,r,s]=e.shape.slice(wa(e)?1:0),i=P(()=>e.as3D(a,r,s).toInt());return await jo.toPixels(i,n),i.dispose(),n}function gk(e){let{Image:t,Canvas:n,Video:a}=at.getEnv();return e instanceof t||e instanceof n||e instanceof a}function v$(e,t,n=!1){let{Image:a,Canvas:r}=at.getEnv();if(!(e instanceof a||e instanceof r))throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement");if(t<=0)return Sp({width:1,height:1});let s=Ip(e),i=t/Math.max(s.height,s.width),o=i*s.width,l=i*s.height,u=Sp({width:t,height:t}),p=e instanceof r?e:Xf(e),d=Math.abs(o-l)/2,c=n&&o0&&p.height>0&&sa(u).drawImage(p,c,h,o,l),u}var Ur=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 at.getEnv().Canvas?a:Xf(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 br(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 uk({width:n,height:a},this.inputSize)}toBatchTensor(t,n=!0){return this._inputSize=t,P(()=>{let a=br(this.batchSize,0,1).map(s=>{let i=this.getInput(s);if(i instanceof Te){let o=wa(i)?i:nn(i);return o=m$(o,n),(o.shape[1]!==t||o.shape[2]!==t)&&(o=Qn.resizeBilinear(o,[t,t],!1,!1)),o.as3D(t,t,3)}if(i instanceof at.getEnv().Canvas)return jo.fromPixels(v$(i,t,n));throw new Error(`toBatchTensor - at batchIdx ${s}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${i}`)});return Dt(a.map(s=>se(s,"float32"))).as4D(this.batchSize,t,t,3)})}};async function kt(e){if(e instanceof Ur)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(wp);return a.forEach((r,s)=>{if(!gk(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=>gk(r)&&b$(r))),new Ur(a,Array.isArray(e))}async function Od(e,t){let{Canvas:n}=at.getEnv(),a=e;if(!(e instanceof n)){let i=await kt(e);if(i.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");let o=i.getInput(0);a=o instanceof n?o:await x$(o)}let r=sa(a);return t.map(i=>i instanceof wt?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=Sp({width:l,height:u});return l>0&&u>0&&sa(p).putImageData(r.getImageData(i,o,l,u),0,0),p})}async function Ld(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 wt?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})=>Ho(e.as3D(n,a,r),[l,o,0],[p,u,r]))})}async function Rs(e,t){let{fetch:n}=at.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 zke(e){let t=await Rs(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 y$(n)}async function w$(e){return(await Rs(e)).json()}async function Gke(e){return new Float32Array(await(await Rs(e)).arrayBuffer())}function k$(e){return new Promise((t,n)=>{e instanceof Blob||n(new Error("bufferToVideo - expected buf to be of type: Blob"));let a=at.getEnv().createVideoElement();a.oncanplay=()=>t(a),a.onerror=n,a.playsInline=!0,a.muted=!0,a.src=URL.createObjectURL(e),a.play()})}async function Yke(e){let t=await Rs(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 k$(n)}function Yf(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 I$(e,t){let{manifestUri:n,modelBaseUri:a}=Yf(e,t),r=await w$(n);return jt.loadWeights(r,a)}function aIe(e,t,n=!1){let{width:a,height:r}=n?Ip(t):t;return e.width=a,e.height=r,{width:a,height:r}}var fn=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 ls)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof ls))}variable(){this.getFrozenParams().forEach(({path:t,tensor:n})=>{this.reassignParamFromPath(t,n.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:n})=>{let a=bn(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 I$(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}=at.getEnv(),{manifestUri:a,modelBaseUri:r}=Yf(t,this.getDefaultModelName()),s=u=>Promise.all(u.map(p=>n(p).then(d=>d.buffer))),i=jt.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=Cs(e,t.depthwise_filter,t.pointwise_filter,n,"same");return a=X(a,t.bias),a})}function Zf(e,t,n=!1){return P(()=>{let a=Ke(n?X(Rt(e,t.conv0.filters,[2,2],"same"),t.conv0.bias):Hn(e,t.conv0,[2,2])),r=Hn(a,t.conv1,[1,1]),s=Ke(X(a,r)),i=Hn(s,t.conv2,[1,1]);return Ke(X(a,X(r,i)))})}function zd(e,t,n=!1,a=!0){return P(()=>{let r=Ke(n?X(Rt(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=Ke(X(r,s)),o=Hn(i,t.conv2,[1,1]),l=Ke(X(r,X(s,o))),u=Hn(l,t.conv3,[1,1]);return Ke(X(r,X(s,X(o,u))))})}function rl(e,t,n="same",a=!1){return P(()=>{let r=X(Rt(e,t.filters,[1,1],n),t.bias);return a?Ke(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=je(e(a));return t.push({paramPath:`${s}/filters`},{paramPath:`${s}/bias`}),{filters:i,bias:o}}}function Jf(e,t){return(n,a,r)=>{let s=Aa(e(n*a),[n,a]),i=je(e(a));return t.push({paramPath:`${r}/weights`},{paramPath:`${r}/bias`}),{weights:s,bias:i}}}var Wd=class{constructor(t,n,a){this.depthwise_filter=t;this.pointwise_filter=n;this.bias=a}};function Tp(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=je(e(a));return t.push({paramPath:`${r}/depthwise_filter`},{paramPath:`${r}/pointwise_filter`},{paramPath:`${r}/bias`}),new Wd(s,i,o)}}function Cp(e){return t=>{let n=e(`${t}/depthwise_filter`,4),a=e(`${t}/pointwise_filter`,4),r=e(`${t}/bias`,1);return new Wd(n,a,r)}}function ia(e,t){return(n,a,r)=>{let s=e[n];if(!tl(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 Fn(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 Qf(e,t){let n=Np(e,t),a=Tp(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 S$(e){let t=[],{extractWeights:n,getRemainingWeights:a}=Fn(e),{extractDenseBlock4Params:r}=Qf(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 eg(e){return t=>{let n=e(`${t}/filters`,4),a=e(`${t}/bias`,1);return{filters:n,bias:a}}}function tg(e,t){let n=ia(e,t),a=eg(n),r=Cp(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 N$(e){let t=[],{extractDenseBlock4Params:n}=tg(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 _p=class extends fn{constructor(){super("FaceFeatureExtractor")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("FaceFeatureExtractor - load model before inference");return P(()=>{let a=se(t.toBatchTensor(112,!0),"float32"),s=yr(a,[122.782,117.001,104.298]).div(255),i=zd(s,n.dense0,!0);return i=zd(i,n.dense1),i=zd(i,n.dense2),i=zd(i,n.dense3),i=ya(i,[7,7],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await kt(t))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeightMap(t){return N$(t)}extractParams(t){return S$(t)}};function Bd(e,t){return P(()=>X($e(e,t.weights),t.bias))}function T$(e,t,n){let a=[],{extractWeights:r,getRemainingWeights:s}=Fn(e),o=Jf(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 C$(e){let t=[],n=ia(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 ng(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 Ep=class extends fn{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 Ur?this.faceFeatureExtractor.forwardInput(n):n;return Bd(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 T$(n,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeightMap(n){let{featureExtractorMap:a,classifierMap:r}=ng(n);return this.faceFeatureExtractor.loadFromWeightMap(a),C$(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 _$=["neutral","happy","sad","angry","fearful","disgusted","surprised"],Ms=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}`);_$.forEach((n,a)=>{this[n]=t[a]})}asSortedArray(){return _$.map(t=>({expression:t,probability:this[t]})).sort((t,n)=>n.probability-t.probability)}};var ag=class extends Ep{constructor(t=new _p){super("FaceExpressionNet",t)}forwardInput(t){return P(()=>Xa(this.runNet(t)))}async forward(t){return this.forwardInput(await kt(t))}async predictExpressions(t){let n=await kt(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 Ms(i));return n.isBatchInput?s:s[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}};function E$(e){return e.expressions instanceof Ms}function bk(e,t){return{...e,...{expressions:t}}}function Zme(e,t,n=.1,a){(Array.isArray(t)?t:[t]).forEach(s=>{let i=s instanceof Ms?s:E$(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=Br(s)?s.detection.box.bottomLeft:a||new Pe(0,0);new Vr(l.map(d=>`${d.expression} (${nl(d.probability)})`),u).draw(e)})}function Ap(e){return Br(e)&&e.landmarks instanceof ka&&e.unshiftedLandmarks instanceof ka&&e.alignedRect instanceof wt}function Jme(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 Vd(e,t){let{box:n}=e.detection,a=t.shiftBy(n.x,n.y),r=a.align(),{imageDims:s}=e.detection,i=new wt(e.detection.score,r.rescale(s.reverse()),s),o=Jme(t);return{...e,...{landmarks:a,unshiftedLandmarks:t,alignedRect:i,angle:o}}}var rg=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)"}},sg=class{constructor(t,n={}){this.faceLandmarks=t,this.options=new rg(n)}draw(t){let n=sa(t),{drawLines:a,drawPoints:r,lineWidth:s,lineColor:i,pointSize:o,pointColor:l}=this.options;if(a&&this.faceLandmarks instanceof xp&&(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 Qme(e,t){(Array.isArray(t)?t:[t]).forEach(a=>{let r=a instanceof ka?a:Ap(a)?a.landmarks:void 0;if(!r)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new sg(r).draw(e)})}var F$="1.7.12";function nfe(e,t){let n=Np(e,t),a=Tp(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,t){let n=[],{extractWeights:a,getRemainingWeights:r}=Fn(e),{extractConvParams:s,extractSeparableConvParams:i,extractReductionBlockParams:o,extractMainBlockParams:l}=nfe(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={};br(t,0,1).forEach(b=>{h[`main_block_${b}`]=l(128,`middle_flow/main_block_${b}`)});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 afe(e,t){let n=ia(e,t),a=eg(n),r=Cp(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 D$(e,t){let n=[],{extractConvParams:a,extractSeparableConvParams:r,extractReductionBlockParams:s,extractMainBlockParams:i}=afe(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={};br(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 R$(e,t,n){return X(Rt(e,t.filters,n,"same"),t.bias)}function yk(e,t,n=!0){let a=n?Ke(e):e;return a=Hn(a,t.separable_conv0,[1,1]),a=Hn(Ke(a),t.separable_conv1,[1,1]),a=Mt(a,[3,3],[2,2],"same"),a=X(a,R$(e,t.expansion_conv,[2,2])),a}function rfe(e,t){let n=Hn(Ke(e),t.separable_conv0,[1,1]);return n=Hn(Ke(n),t.separable_conv1,[1,1]),n=Hn(Ke(n),t.separable_conv2,[1,1]),n=X(n,e),n}var ig=class extends fn{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=se(n.toBatchTensor(112,!0),"float32"),i=yr(r,[122.782,117.001,104.298]).div(255),o=Ke(R$(i,a.entry_flow.conv_in,[2,2]));return o=yk(o,a.entry_flow.reduction_block_0,!1),o=yk(o,a.entry_flow.reduction_block_1),br(this._numMainBlocks,0,1).forEach(l=>{o=rfe(o,a.middle_flow[`main_block_${l}`])}),o=yk(o,a.exit_flow.reduction_block),o=Ke(Hn(o,a.exit_flow.separable_conv,[1,1])),o})}async forward(n){return this.forwardInput(await kt(n))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeightMap(n){return D$(n,this._numMainBlocks)}extractParams(n){return $$(n,this._numMainBlocks)}};function M$(e){let t=[],{extractWeights:n,getRemainingWeights:a}=Fn(e),r=Jf(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 P$(e){let t=[],n=ia(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 xk=(n=>(n.FEMALE="female",n.MALE="male",n))(xk||{});var og=class extends fn{constructor(n=new ig(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 Ur?this.faceFeatureExtractor.forwardInput(n):n,s=ya(r,[7,7],[2,2],"valid").as2D(r.shape[0],-1),i=Bd(s,a.fc.age).as1D(),o=Bd(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 kt(n))}async predictAgeAndGender(n){let a=await kt(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 M$(n)}extractParamsFromWeightMap(n){let{featureExtractorMap:a,classifierMap:r}=ng(n);return this.faceFeatureExtractor.loadFromWeightMap(a),P$(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 Fp=class extends Ep{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)=>Dt([xn([68],d,"float32"),xn([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(Dt(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 kt(t))}async detectLandmarks(t){let n=await kt(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)=>Uf(d)),u=o.filter((p,d)=>!Uf(d));return new xp(Array(68).fill(0).map((p,d)=>new Pe(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 $p=class extends Fp{constructor(t=new _p){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};function O$(e){let t=[],{extractDenseBlock3Params:n}=tg(e,t),a={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2")};return An(e,t),{params:a,paramMappings:t}}function L$(e){let t=[],{extractWeights:n,getRemainingWeights:a}=Fn(e),{extractDenseBlock3Params:r}=Qf(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 lg=class extends fn{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("TinyFaceFeatureExtractor - load model before inference");return P(()=>{let a=se(t.toBatchTensor(112,!0),"float32"),s=yr(a,[122.782,117.001,104.298]).div(255),i=Zf(s,n.dense0,!0);return i=Zf(i,n.dense1),i=Zf(i,n.dense2),i=ya(i,[14,14],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await kt(t))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeightMap(t){return O$(t)}extractParams(t){return L$(t)}};var ug=class extends Fp{constructor(t=new lg){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var z$=class extends $p{};function W$(e,t){return X(z(e,t.weights),t.biases)}function vk(e,t,n,a,r="same"){let{filters:s,bias:i}=t.conv,o=Rt(e,s,n,r);return o=X(o,i),o=W$(o,t.scale),a?Ke(o):o}function B$(e,t){return vk(e,t,[1,1],!0)}function wk(e,t){return vk(e,t,[1,1],!1)}function pg(e,t){return vk(e,t,[2,2],!0,"valid")}function sfe(e,t){function n(o,l,u){let p=e(o),d=p.length/(l*u*u);if(lk(d))throw new Error(`depth has to be an integer: ${d}, weights.length: ${p.length}, numFilters: ${l}, filterSize: ${u}`);return P(()=>De(Da(p,[l,d,u,u]),[2,3,1,0]))}function a(o,l,u,p){let d=n(o,l,u),c=je(e(l));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/bias`}),{filters:d,bias:c}}function r(o,l){let u=je(e(o)),p=je(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 V$(e){let{extractWeights:t,getRemainingWeights:n}=Fn(e),a=[],{extractConvLayerParams:r,extractResidualLayerParams:s}=sfe(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"),b=s(589824,256,3,"conv256_down",!0),y=s(589824,256,3,"conv256_1"),x=s(589824,256,3,"conv256_2"),v=s(589824,256,3,"conv256_down_out"),I=P(()=>De(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:b,conv256_1:y,conv256_2:x,conv256_down_out:v,fc:I},paramMappings:a}}function ife(e,t){let n=ia(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 U$(e){let t=[],{extractConvLayerParams:n,extractResidualLayerParams:a}=ife(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"),b=a("conv256_2"),y=a("conv256_down_out"),{fc:x}=e;if(t.push({originalPath:"fc",paramPath:"fc"}),!ok(x))throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${x}`);let v={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:b,conv256_down_out:y,fc:x};return An(e,t),{params:v,paramMappings:t}}function Ja(e,t){let n=B$(e,t.conv1);return n=wk(n,t.conv2),n=X(n,e),n=Ke(n),n}function Ud(e,t){let n=pg(e,t.conv1);n=wk(n,t.conv2);let a=ya(e,2,2,"valid"),r=Nt(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=Nt(o);n=et([n,l],1);let u=[...n.shape];u[2]=1;let p=Nt(u);n=et([n,p],2)}return a=s?et([a,r],3):a,n=X(a,n),n=Ke(n),n}var Dp=class extends fn{constructor(){super("FaceRecognitionNet")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("FaceRecognitionNet - load model before inference");return P(()=>{let a=se(t.toBatchTensor(150,!0),"float32"),s=yr(a,[122.782,117.001,104.298]).div(255),i=pg(s,n.conv32_down);i=Mt(i,3,2,"valid"),i=Ja(i,n.conv32_1),i=Ja(i,n.conv32_2),i=Ja(i,n.conv32_3),i=Ud(i,n.conv64_down),i=Ja(i,n.conv64_1),i=Ja(i,n.conv64_2),i=Ja(i,n.conv64_3),i=Ud(i,n.conv128_down),i=Ja(i,n.conv128_1),i=Ja(i,n.conv128_2),i=Ud(i,n.conv256_down),i=Ja(i,n.conv256_1),i=Ja(i,n.conv256_2),i=Ud(i,n.conv256_down_out);let o=i.mean([1,2]);return $e(o,n.fc)})}async forward(t){return this.forwardInput(await kt(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 kt(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 U$(t)}extractParams(t){return V$(t)}};function E2e(e){let t=new Dp;return t.extractWeights(e),t}function kk(e,t){return{...e,...{descriptor:t}}}function D2e(e){return typeof e.age=="number"}function Ik(e,t){return{...e,...{age:t}}}function O2e(e){return(e.gender==="male"||e.gender==="female")&&gp(e.genderProbability)}function Sk(e,t,n){return{...e,...{gender:t,genderProbability:n}}}function ofe(e,t){function n(l,u){let p=Da(e(9*l),[3,3,l,1]),d=je(e(l)),c=je(e(l)),h=je(e(l)),m=je(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=je(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"),b=s(512,512,"mobilenetv1/conv_9"),y=s(512,512,"mobilenetv1/conv_10"),x=s(512,512,"mobilenetv1/conv_11"),v=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:b,conv_10:y,conv_11:x,conv_12:v,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"),b=a(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),y=a(1024,24,1,"prediction_layer/box_predictor_1/box_encoding_predictor"),x=a(1024,18,1,"prediction_layer/box_predictor_1/class_predictor"),v=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"),F=a(256,18,1,"prediction_layer/box_predictor_4/class_predictor"),D=a(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),$=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:b},box_predictor_1:{box_encoding_predictor:y,class_predictor:x},box_predictor_2:{box_encoding_predictor:v,class_predictor:I},box_predictor_3:{box_encoding_predictor:T,class_predictor:C},box_predictor_4:{box_encoding_predictor:E,class_predictor:F},box_predictor_5:{box_encoding_predictor:D,class_predictor:$}}}return{extractMobilenetV1Params:i,extractPredictionLayerParams:o}}function G$(e){let t=[],{extractWeights:n,getRemainingWeights:a}=Fn(e),{extractMobilenetV1Params:r,extractPredictionLayerParams:s}=ofe(n,t),i=r(),o=s(),u={extra_dim:gd(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 lfe(e,t){let n=ia(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`),b=n(`${d}/BatchNorm/moving_mean`,1,`${c}/batch_norm_mean`),y=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:b,batch_norm_variance:y},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 H$(e){let t=[],{extractMobilenetV1Params:n,extractPredictionLayerParams:a}=lfe(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 Pa(e,t,n){return P(()=>{let a=Rt(e,t.filters,n,"same");return a=X(a,t.batch_norm_offset),sn(a,0,6)})}var ufe=.0010000000474974513;function pfe(e,t,n){return P(()=>{let a=Ss(e,t.filters,n,"same");return a=Is(a,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,ufe),sn(a,0,6)})}function cfe(e){return[2,4,6,12].some(t=>t===e)?[2,2]:[1,1]}function q$(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=cfe(o);a=pfe(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 dfe(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),b=Math.min(o,d),y=Math.max(g-m,0)*Math.max(b-f,0);return y/(c+h-y)}function j$(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=dfe(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 hfe(e){let t=pt(De(e,[1,0])),n=[pe(t[2],t[0]),pe(t[3],t[1])],a=[X(t[0],he(n[0],2)),X(t[1],he(n[1],2))];return{sizes:n,centers:a}}function mfe(e,t){let{sizes:n,centers:a}=hfe(e),r=pt(De(t,[1,0])),s=he(z(yn(he(r[2],5)),n[0]),2),i=X(z(he(r[0],10),n[0]),a[0]),o=he(z(yn(he(r[3],5)),n[1]),2),l=X(z(he(r[1],10),n[1]),a[1]);return De(Dt([pe(i,s),pe(l,o),X(i,s),X(l,o)]),[1,0])}function K$(e,t,n){return P(()=>{let a=e.shape[0],r=mfe(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=ma(Ue(t,[0,0,1],[-1,-1,-1])),i=Ue(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 sl(e,t){return P(()=>{let n=e.shape[0],a=W(rl(e,t.box_encoding_predictor),[n,-1,1,4]),r=W(rl(e,t.class_predictor),[n,-1,3]);return{boxPredictionEncoding:a,classPrediction:r}})}function X$(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=sl(t,n.box_predictor_0),c=sl(e,n.box_predictor_1),h=sl(r,n.box_predictor_2),m=sl(i,n.box_predictor_3),f=sl(l,n.box_predictor_4),g=sl(p,n.box_predictor_5),b=et([d.boxPredictionEncoding,c.boxPredictionEncoding,h.boxPredictionEncoding,m.boxPredictionEncoding,f.boxPredictionEncoding,g.boxPredictionEncoding],1),y=et([d.classPrediction,c.classPrediction,h.classPrediction,m.classPrediction,f.classPrediction,g.classPrediction],1);return{boxPredictions:b,classPredictions:y}})}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 il=class extends fn{constructor(){super("SsdMobilenetv1")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("SsdMobilenetv1 - load model before inference");return P(()=>{let a=se(t.toBatchTensor(512,!1),"float32"),r=pe(he(a,127.5),1),s=q$(r,n.mobilenetv1),{boxPredictions:i,classPredictions:o}=X$(s.out,s.conv11,n.prediction_layer);return K$(i,o,n.output_layer)})}async forward(t){return this.forwardInput(await kt(t))}async locateFaces(t,n={}){let{maxResults:a,minConfidence:r}=new Oa(n),s=await kt(t),{boxes:i,scores:o}=this.forwardInput(s),l=i[0],u=o[0];for(let x=1;x{let[v,I]=[Math.max(0,b[x][0]),Math.min(1,b[x][2])].map(E=>E*g),[T,C]=[Math.max(0,b[x][1]),Math.min(1,b[x][3])].map(E=>E*f);return new wt(p[x],new yp(T,v,C-T,I-v),{height:s.getInputHeight(0),width:s.getInputWidth(0)})});return l.dispose(),u.dispose(),y}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return H$(t)}extractParams(t){return G$(t)}};function ffe(e){let t=new il;return t.extractWeights(e),t}function ECe(e){return ffe(e)}var Y$=class extends il{};var Z$=.4,J$=[new Pe(.738768,.874946),new Pe(2.42204,2.65704),new Pe(4.30971,7.04493),new Pe(10.246,4.59428),new Pe(12.6868,11.8741)],Q$=[new Pe(1.603231,2.094468),new Pe(6.041143,7.080126),new Pe(2.882459,3.518061),new Pe(4.266906,5.178857),new Pe(9.041765,10.66308)],eD=[117.001,114.697,97.404],tD="tiny_yolov2_model",nD="tiny_yolov2_separable_conv_model";var cg=e=>typeof e=="number";function aD(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(!cg(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=>cg(t.x)&&cg(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(cg)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(e.meanRgb)}`)}function Rp(e){return P(()=>{let t=z(e,ve(.10000000149011612));return X(Ke(pe(e,t)),t)})}function Gr(e,t){return P(()=>{let n=xa(e,[[0,0],[1,1],[1,1],[0,0]]);return n=Rt(n,t.conv.filters,[1,1],"valid"),n=pe(n,t.bn.sub),n=z(n,t.bn.truediv),n=X(n,t.conv.bias),Rp(n)})}function Hr(e,t){return P(()=>{let n=xa(e,[[0,0],[1,1],[1,1],[0,0]]);return n=Cs(n,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),n=X(n,t.bias),Rp(n)})}function gfe(e,t){let n=Np(e,t);function a(i,o){let l=je(e(i)),u=je(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=Tp(e,t);return{extractConvParams:n,extractConvWithBatchNormParams:r,extractSeparableConvParams:s}}function rD(e,t,n,a){let{extractWeights:r,getRemainingWeights:s}=Fn(e),i=[],{extractConvParams:o,extractConvWithBatchNormParams:l,extractSeparableConvParams:u}=gfe(r,i),p;if(t.withSeparableConvs){let[d,c,h,m,f,g,b,y,x]=a,v=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"),F=u(g,b,"conv5"),D=y?u(b,y,"conv6"):void 0,$=x?u(y,x,"conv7"):void 0,S=o(x||y||b,5*n,1,"conv8");p={conv0:v,conv1:I,conv2:T,conv3:C,conv4:E,conv5:F,conv6:D,conv7:$,conv8:S}}else{let[d,c,h,m,f,g,b,y,x]=a,v=l(d,c,"conv0"),I=l(c,h,"conv1"),T=l(h,m,"conv2"),C=l(m,f,"conv3"),E=l(f,g,"conv4"),F=l(g,b,"conv5"),D=l(b,y,"conv6"),$=l(y,x,"conv7"),S=o(x,5*n,1,"conv8");p={conv0:v,conv1:I,conv2:T,conv3:C,conv4:E,conv5:F,conv6:D,conv7:$,conv8:S}}if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{params:p,paramMappings:i}}function bfe(e,t){let n=ia(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=Cp(n);return{extractConvParams:r,extractConvWithBatchNormParams:s,extractSeparableConvParams:i}}function sD(e,t){let n=[],{extractConvParams:a,extractConvWithBatchNormParams:r,extractSeparableConvParams:s}=bfe(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 xr=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 Nk=class extends fn{constructor(n){super("TinyYolov2");aD(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=Mt(r,[2,2],[2,2],"same"),r=Gr(r,a.conv1),r=Mt(r,[2,2],[2,2],"same"),r=Gr(r,a.conv2),r=Mt(r,[2,2],[2,2],"same"),r=Gr(r,a.conv3),r=Mt(r,[2,2],[2,2],"same"),r=Gr(r,a.conv4),r=Mt(r,[2,2],[2,2],"same"),r=Gr(r,a.conv5),r=Mt(r,[2,2],[1,1],"same"),r=Gr(r,a.conv6),r=Gr(r,a.conv7),rl(r,a.conv8,"valid",!1)}runMobilenet(n,a){let r=this.config.isFirstLayerConv2d?Rp(rl(n,a.conv0,"valid",!1)):Hr(n,a.conv0);return r=Mt(r,[2,2],[2,2],"same"),r=Hr(r,a.conv1),r=Mt(r,[2,2],[2,2],"same"),r=Hr(r,a.conv2),r=Mt(r,[2,2],[2,2],"same"),r=Hr(r,a.conv3),r=Mt(r,[2,2],[2,2],"same"),r=Hr(r,a.conv4),r=Mt(r,[2,2],[2,2],"same"),r=Hr(r,a.conv5),r=Mt(r,[2,2],[1,1],"same"),r=a.conv6?Hr(r,a.conv6):r,r=a.conv7?Hr(r,a.conv7):r,rl(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=se(n.toBatchTensor(a,!1),"float32");return s=this.config.meanRgb?yr(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 kt(n),a)}async detect(n,a={}){let{inputSize:r,scoreThreshold:s}=new xr(a),i=await kt(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(b=>b.box),c=p.map(b=>b.score),h=p.map(b=>b.classScore),m=p.map(b=>this.config.classes[b.label]);return h$(d.map(b=>b.rescale(r)),c,this.config.iouThreshold,!0).map(b=>new Ds(c[b],h[b],m[b],d[b],u))}getDefaultModelName(){return""}extractParamsFromWeightMap(n){return sD(n,this.config)}extractParams(n){let a=this.config.filterSizes||Nk.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 rD(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 y=n.reshape([p,p,d,this.boxEncodingSize]),x=y.slice([0,0,0,0],[p,p,d,4]),v=y.slice([0,0,0,4],[p,p,d,1]),I=this.withClassScores?Xa(y.slice([0,0,0,5],[p,p,d,this.config.classes.length]),3):ve(0);return[x,v,I]}),f=[],g=await h.array(),b=await c.array();for(let y=0;yr){let T=(x+Hf(b[y][x][v][0]))/p*l,C=(y+Hf(b[y][x][v][1]))/p*u,E=Math.exp(b[y][x][v][2])*this.config.anchors[v].x/p*l,F=Math.exp(b[y][x][v][3])*this.config.anchors[v].y/p*u,D=T-E/2,$=C-F/2,S={row:y,col:x,anchor:v},{classScore:M,label:B}=this.withClassScores?await this.extractPredictedClass(m,S):{classScore:1,label:0};f.push({box:new bp(D,$,D+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)}},ol=Nk;ol.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var Mp=class extends ol{constructor(t=!0){let n={withSeparableConvs:t,iouThreshold:Z$,classes:["face"],...t?{anchors:Q$,meanRgb:eD}:{anchors:J$,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 wt(r.score,r.relativeBox,{width:r.imageWidth,height:r.imageHeight}))}getDefaultModelName(){return this.withSeparableConvs?nD:tD}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};function v_e(e,t=!0){let n=new Mp(t);return n.extractWeights(e),n}var dg=class extends xr{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 ll(e,t,n,a,r=({alignedRect:s})=>s){let s=e.map(l=>Ap(l)?r(l):l.detection),i=a||(t instanceof Te?await Ld(t,s):await Od(t,s)),o=await n(i);return i.forEach(l=>l instanceof Te&&l.dispose()),o}async function Pp(e,t,n,a,r){return ll([e],t,async s=>n(s[0]),a,r)}var iD=.4,oD=[new Pe(1.603231,2.094468),new Pe(6.041143,7.080126),new Pe(2.882459,3.518061),new Pe(4.266906,5.178857),new Pe(9.041765,10.66308)],lD=[117.001,114.697,97.404];var Op=class extends ol{constructor(){let t={withSeparableConvs:!0,iouThreshold:iD,classes:["face"],anchors:oD,meanRgb:lD,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 wt(r.score,r.relativeBox,{width:r.imageWidth,height:r.imageHeight}))}getDefaultModelName(){return"tiny_face_detector_model"}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};var rt={ssdMobilenetv1:new il,tinyFaceDetector:new Op,tinyYolov2:new Mp,faceLandmark68Net:new $p,faceLandmark68TinyNet:new ug,faceRecognitionNet:new Dp,faceExpressionNet:new ag,ageGenderNet:new og},yfe=(e,t)=>rt.ssdMobilenetv1.locateFaces(e,t),Y_e=(e,t)=>rt.tinyFaceDetector.locateFaces(e,t),Z_e=(e,t)=>rt.tinyYolov2.locateFaces(e,t),xfe=e=>rt.faceLandmark68Net.detectLandmarks(e),J_e=e=>rt.faceLandmark68TinyNet.detectLandmarks(e),Q_e=e=>rt.faceRecognitionNet.computeFaceDescriptor(e),eEe=e=>rt.faceExpressionNet.predictExpressions(e),tEe=e=>rt.ageGenderNet.predictAgeAndGender(e),vfe=e=>rt.ssdMobilenetv1.load(e),nEe=e=>rt.tinyFaceDetector.load(e),aEe=e=>rt.tinyYolov2.load(e),rEe=e=>rt.faceLandmark68Net.load(e),sEe=e=>rt.faceLandmark68TinyNet.load(e),iEe=e=>rt.faceRecognitionNet.load(e),oEe=e=>rt.faceExpressionNet.load(e),lEe=e=>rt.ageGenderNet.load(e),uEe=vfe,pEe=yfe,cEe=xfe;var hg=class extends La{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.extractedFaces=r}},ul=class extends hg{async run(){let t=await this.parentTask,n=await ll(t,this.input,async a=>Promise.all(a.map(r=>rt.faceExpressionNet.predictExpressions(r))),this.extractedFaces);return t.map((a,r)=>bk(a,n[r]))}withAgeAndGender(){return new cl(this,this.input)}},pl=class extends hg{async run(){let t=await this.parentTask;if(!t)return;let n=await Pp(t,this.input,a=>rt.faceExpressionNet.predictExpressions(a),this.extractedFaces);return bk(t,n)}withAgeAndGender(){return new dl(this,this.input)}},Ps=class extends ul{withAgeAndGender(){return new Ls(this,this.input)}withFaceDescriptors(){return new Ws(this,this.input)}},Os=class extends pl{withAgeAndGender(){return new zs(this,this.input)}withFaceDescriptor(){return new Bs(this,this.input)}};var mg=class extends La{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.extractedFaces=r}},cl=class extends mg{async run(){let t=await this.parentTask,n=await ll(t,this.input,async a=>Promise.all(a.map(r=>rt.ageGenderNet.predictAgeAndGender(r))),this.extractedFaces);return t.map((a,r)=>{let{age:s,gender:i,genderProbability:o}=n[r];return Ik(Sk(a,i,o),s)})}withFaceExpressions(){return new ul(this,this.input)}},dl=class extends mg{async run(){let t=await this.parentTask;if(!t)return;let{age:n,gender:a,genderProbability:r}=await Pp(t,this.input,s=>rt.ageGenderNet.predictAgeAndGender(s),this.extractedFaces);return Ik(Sk(t,a,r),n)}withFaceExpressions(){return new pl(this,this.input)}},Ls=class extends cl{withFaceExpressions(){return new Ps(this,this.input)}withFaceDescriptors(){return new Ws(this,this.input)}},zs=class extends dl{withFaceExpressions(){return new Os(this,this.input)}withFaceDescriptor(){return new Bs(this,this.input)}};var fg=class extends La{constructor(n,a){super();this.parentTask=n;this.input=a}},Ws=class extends fg{async run(){let t=await this.parentTask;return(await ll(t,this.input,a=>Promise.all(a.map(r=>rt.faceRecognitionNet.computeFaceDescriptor(r))),null,a=>a.landmarks.align(null,{useDlibAlignment:!0}))).map((a,r)=>kk(t[r],a))}withFaceExpressions(){return new Ps(this,this.input)}withAgeAndGender(){return new Ls(this,this.input)}},Bs=class extends fg{async run(){let t=await this.parentTask;if(!t)return;let n=await Pp(t,this.input,a=>rt.faceRecognitionNet.computeFaceDescriptor(a),null,a=>a.landmarks.align(null,{useDlibAlignment:!0}));return kk(t,n)}withFaceExpressions(){return new Os(this,this.input)}withAgeAndGender(){return new zs(this,this.input)}};var gg=class extends La{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.useTinyLandmarkNet=r}get landmarkNet(){return this.useTinyLandmarkNet?rt.faceLandmark68TinyNet:rt.faceLandmark68Net}},bg=class extends gg{async run(){let t=await this.parentTask,n=t.map(i=>i.detection),a=this.input instanceof Te?await Ld(this.input,n):await Od(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)=>Vd(i,r[o]))}withFaceExpressions(){return new Ps(this,this.input)}withAgeAndGender(){return new Ls(this,this.input)}withFaceDescriptors(){return new Ws(this,this.input)}},yg=class extends gg{async run(){let t=await this.parentTask;if(!t)return;let{detection:n}=t,a=this.input instanceof Te?await Ld(this.input,[n]):await Od(this.input,[n]),r=await this.landmarkNet.detectLandmarks(a[0]);return a.forEach(s=>s instanceof Te&&s.dispose()),Vd(t,r)}withFaceExpressions(){return new Os(this,this.input)}withAgeAndGender(){return new zs(this,this.input)}withFaceDescriptor(){return new Bs(this,this.input)}};var xg=class extends La{constructor(n,a=new Oa){super();this.input=n;this.options=a}},Gd=class extends xg{async run(){let{input:t,options:n}=this,a;if(n instanceof dg)a=rt.tinyFaceDetector.locateFaces(t,n);else if(n instanceof Oa)a=rt.ssdMobilenetv1.locateFaces(t,n);else if(n instanceof xr)a=rt.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=>vp({},r)))).catch(a=>n(a))})}withFaceLandmarks(t=!1){return new bg(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new ul(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new cl(this.runAndExtendWithFaceDetections(),this.input)}},vg=class extends xg{async run(){let t=await new Gd(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?vp({},n):void 0)})}withFaceLandmarks(t=!1){return new yg(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new pl(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new dl(this.runAndExtendWithFaceDetection(),this.input)}};function lAe(e,t=new Oa){return new vg(e,t)}function Tk(e,t=new Oa){return new Gd(e,t)}async function wfe(e,t){return Tk(e,new Oa(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function mAe(e,t={}){return Tk(e,new xr(t)).withFaceLandmarks().withFaceDescriptors()}var fAe=wfe;function uD(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 wg=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 Wr)return i;if(i instanceof Float32Array)return new Wr(s(),[i]);if(i.descriptor&&i.descriptor instanceof Float32Array)return new Wr(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=>uD(a,t)).reduce((a,r)=>a+r,0)/(n.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:n,label:a})=>new Dd(a,this.computeMeanDistance(t,n))).reduce((n,a)=>n.distancet.toJSON())}}static fromJSON(t){let n=t.labeledDescriptors.map(a=>Wr.fromJSON(a));return new wg(n,t.distanceThreshold)}};function DAe(e){let t=new Op;return t.extractWeights(e),t}function kfe(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=>kfe(r,{width:n,height:a}));if(Ap(e)){let r=e.detection.forSize(n,a),s=e.unshiftedLandmarks.forSize(r.box.width,r.box.height);return Vd(vp(e,r),s)}return Br(e)?vp(e,e.detection.forSize(n,a)):e instanceof ka||e instanceof wt?e.forSize(n,a):e}var GAe=F$;export{og as AgeGenderNet,bp as BoundingBox,dt as Box,La as ComposableTask,Ws as ComputeAllFaceDescriptorsTask,fg as ComputeFaceDescriptorsTaskBase,Bs as ComputeSingleFaceDescriptorTask,bg as DetectAllFaceLandmarksTask,Gd as DetectAllFacesTask,gg as DetectFaceLandmarksTaskBase,xg as DetectFacesTaskBase,yg as DetectSingleFaceLandmarksTask,vg as DetectSingleFaceTask,En as Dimensions,_$ as FACE_EXPRESSION_LABELS,wt as FaceDetection,Y$ as FaceDetectionNet,ag as FaceExpressionNet,Ms as FaceExpressions,$p as FaceLandmark68Net,ug as FaceLandmark68TinyNet,z$ as FaceLandmarkNet,ka as FaceLandmarks,f$ as FaceLandmarks5,xp as FaceLandmarks68,Dd as FaceMatch,wg as FaceMatcher,Dp as FaceRecognitionNet,xk as Gender,Rd as LabeledBox,Wr as LabeledFaceDescriptors,Ur as NetInput,fn as NeuralNetwork,Ds as ObjectDetection,Pe as Point,g$ as PredictedBox,yp as Rect,il as SsdMobilenetv1,Oa as SsdMobilenetv1Options,Op as TinyFaceDetector,dg as TinyFaceDetectorOptions,Mp as TinyYolov2,xr as TinyYolov2Options,fAe as allFaces,wfe as allFacesSsdMobilenetv1,mAe as allFacesTinyYolov2,b$ as awaitMediaLoaded,y$ as bufferToImage,Q_e as computeFaceDescriptor,Sp as createCanvas,Xf as createCanvasFromMedia,ECe as createFaceDetectionNet,E2e as createFaceRecognitionNet,ffe as createSsdMobilenetv1,DAe as createTinyFaceDetector,v_e as createTinyYolov2,Tk as detectAllFaces,xfe as detectFaceLandmarks,J_e as detectFaceLandmarksTiny,cEe as detectLandmarks,lAe as detectSingleFace,A$ as draw,at as env,uD as euclideanDistance,Ik as extendWithAge,kk as extendWithFaceDescriptor,vp as extendWithFaceDetection,bk as extendWithFaceExpressions,Vd as extendWithFaceLandmarks,Sk as extendWithGender,Ld as extractFaceTensors,Od as extractFaces,zke as fetchImage,w$ as fetchJson,Gke as fetchNetWeights,Rs as fetchOrThrow,Yke as fetchVideo,sa as getContext2dOrThrow,Ip as getMediaDimensions,x$ as imageTensorToCanvas,v$ as imageToSquare,e0e as inverseSigmoid,c$ as iou,gk as isMediaElement,Kf as isMediaLoaded,D2e as isWithAge,Br as isWithFaceDetection,E$ as isWithFaceExpressions,Ap as isWithFaceLandmarks,O2e as isWithGender,lEe as loadAgeGenderModel,uEe as loadFaceDetectionModel,oEe as loadFaceExpressionModel,rEe as loadFaceLandmarkModel,sEe as loadFaceLandmarkTinyModel,iEe as loadFaceRecognitionModel,vfe as loadSsdMobilenetv1Model,nEe as loadTinyFaceDetectorModel,aEe as loadTinyYolov2Model,I$ as loadWeightMap,pEe as locateFaces,aIe as matchDimensions,d$ as minBbox,rt as nets,h$ as nonMaxSuppression,yr as normalize,m$ as padToSquare,tEe as predictAgeAndGender,eEe as recognizeFaceExpressions,kfe as resizeResults,wp as resolveInput,Jwe as shuffleArray,Hf as sigmoid,yfe as ssdMobilenetv1,ze as tf,Y_e as tinyFaceDetector,Z_e as tinyYolov2,kt as toNetInput,p$ as utils,aD as validateConfig,GAe 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 45f1228..b1bdb7b 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", "../package.json", "../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 iq=Object.create;var r0=Object.defineProperty;var aq=Object.getOwnPropertyDescriptor;var lq=Object.getOwnPropertyNames;var uq=Object.getPrototypeOf,cq=Object.prototype.hasOwnProperty;var wr=(r,t)=>()=>(t||r((t={exports:{}}).exports,t),t.exports),Kt=(r,t)=>{for(var e in t)r0(r,e,{get:t[e],enumerable:!0})},pq=(r,t,e,n)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let o of lq(t))!cq.call(r,o)&&o!==e&&r0(r,o,{get:()=>t[o],enumerable:!(n=aq(t,o))||n.enumerable});return r};var Kl=(r,t,e)=>(e=r!=null?iq(uq(r)):{},pq(t||!r||!r.__esModule?r0(e,\"default\",{value:r,enumerable:!0}):e,r));var A_=wr((hmt,E_)=>{E_.exports=Ue;var bo=null;try{bo=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 Bn(r){return(r&&r.__isLong__)===!0}Ue.isLong=Bn;var w_={},I_={};function lc(r,t){var e,n,o;return t?(r>>>=0,(o=0<=r&&r<256)&&(n=I_[r],n)?n:(e=He(r,(r|0)<0?-1:0,!0),o&&(I_[r]=e),e)):(r|=0,(o=-128<=r&&r<128)&&(n=w_[r],n)?n:(e=He(r,r<0?-1:0,!1),o&&(w_[r]=e),e))}Ue.fromInt=lc;function wo(r,t){if(isNaN(r))return t?ac:Io;if(t){if(r<0)return ac;if(r>=N_)return __}else{if(r<=-v_)return zn;if(r+1>=v_)return T_}return r<0?wo(-r,t).neg():He(r%Zp|0,r/Zp|0,t)}Ue.fromNumber=wo;function He(r,t,e){return new Ue(r,t,e)}Ue.fromBits=He;var Qg=Math.pow;function h0(r,t,e){if(r.length===0)throw Error(\"empty string\");if(r===\"NaN\"||r===\"Infinity\"||r===\"+Infinity\"||r===\"-Infinity\")return Io;if(typeof t==\"number\"?(e=t,t=!1):t=!!t,e=e||10,e<2||360)throw Error(\"interior hyphen\");if(n===0)return h0(r.substring(1),t,e).neg();for(var o=wo(Qg(e,8)),s=Io,i=0;i>>0:this.low};xt.toNumber=function(){return this.unsigned?(this.high>>>0)*Zp+(this.low>>>0):this.high*Zp+(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(zn)?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 Bn(t)||(t=oi(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(Bn(t)||(t=oi(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(zn)?zn:this.not().add(Yp)};xt.neg=xt.negate;xt.add=function(t){Bn(t)||(t=oi(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 Bn(t)||(t=oi(t)),this.add(t.neg())};xt.sub=xt.subtract;xt.multiply=function(t){if(this.isZero())return Io;if(Bn(t)||(t=oi(t)),bo){var e=bo.mul(this.low,this.high,t.low,t.high);return He(e,bo.get_high(),this.unsigned)}if(t.isZero())return Io;if(this.eq(zn))return t.isOdd()?zn:Io;if(t.eq(zn))return this.isOdd()?zn:Io;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(S_)&&t.lt(S_))return wo(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(Bn(t)||(t=oi(t)),t.isZero())throw Error(\"division by zero\");if(bo){if(!this.unsigned&&this.high===-2147483648&&t.low===-1&&t.high===-1)return this;var e=(this.unsigned?bo.div_u:bo.div_s)(this.low,this.high,t.low,t.high);return He(e,bo.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?ac:Io;var n,o,s;if(this.unsigned){if(t.unsigned||(t=t.toUnsigned()),t.gt(this))return ac;if(t.gt(this.shru(1)))return k_;s=ac}else{if(this.eq(zn)){if(t.eq(Yp)||t.eq(d0))return zn;if(t.eq(zn))return Yp;var i=this.shr(1);return n=i.div(t).shl(1),n.eq(Io)?t.isNegative()?Yp:d0:(o=this.sub(t.mul(n)),s=n.add(o.div(t)),s)}else if(t.eq(zn))return this.unsigned?ac:Io;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=Io}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:Qg(2,a-48),l=wo(n),c=l.mul(t);c.isNegative()||c.gt(o);)n-=u,l=wo(n,this.unsigned),c=l.mul(t);l.isZero()&&(l=Yp),s=s.add(l),o=o.sub(c)}return s};xt.div=xt.divide;xt.modulo=function(t){if(Bn(t)||(t=oi(t)),bo){var e=(this.unsigned?bo.rem_u:bo.rem_s)(this.low,this.high,t.low,t.high);return He(e,bo.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 Bn(t)||(t=oi(t)),He(this.low&t.low,this.high&t.high,this.unsigned)};xt.or=function(t){return Bn(t)||(t=oi(t)),He(this.low|t.low,this.high|t.high,this.unsigned)};xt.xor=function(t){return Bn(t)||(t=oi(t)),He(this.low^t.low,this.high^t.high,this.unsigned)};xt.shiftLeft=function(t){return Bn(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(Bn(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 cE=wr(()=>{});var pE=wr(()=>{});var GE=wr((VE,j0)=>{(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})(VE,typeof j0==\"object\"&&j0,typeof define==\"function\"&&define)});var UE=wr((WE,X0)=>{(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})(WE,typeof X0==\"object\"&&X0,typeof define==\"function\"&&define)});var qE=wr((HE,Y0)=>{(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})(HE,typeof Y0==\"object\"&&Y0,typeof define==\"function\"&&define)});var jE=wr((KE,Z0)=>{(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})(KE,typeof Z0==\"object\"&&Z0,typeof define==\"function\"&&define)});var YE=wr((XE,J0)=>{(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})(XE,typeof J0==\"object\"&&J0,typeof define==\"function\"&&define)});var JE=wr((ZE,Q0)=>{(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})(ZE,typeof Q0==\"object\"&&Q0,typeof define==\"function\"&&define)});var QE=wr(()=>{});var eA=wr((tA,ry)=>{(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,I,N){var E=[];I=I==!0?{entropy:!0}:I||{};var A=g(h(I.entropy?[w,b(t)]:w==null?x():w,3),E),D=new f(E),F=function(){for(var P=D.g(o),V=a,G=0;P=l;)P/=2,V/=2,G>>>=1;return(P+G)/V};return F.int32=function(){return D.g(4)|0},F.quick=function(){return D.g(4)/4294967296},F.double=F,g(b(D.S),t),(I.pass||N||function(P,V,G,W){return W&&(W.S&&d(W,D),P.state=function(){return d(D,{})}),G?(e[i]=P,V):P})(F,A,\"global\"in I?I.global:this==e,I.state)}function f(w){var I,N=w.length,E=this,A=0,D=E.i=E.j=0,F=E.S=[];for(N||(w=[N++]);A{var oX=GE(),sX=UE(),iX=qE(),aX=jE(),lX=YE(),uX=JE(),bc=eA();bc.alea=oX;bc.xor128=sX;bc.xorwow=iX;bc.xorshift7=aX;bc.xor4096=lX;bc.tychei=uX;rA.exports=bc});var wk=wr(()=>{});var pw=wr(()=>{});var G1=wr(()=>{});var dH=wr(()=>{});var hH=wr(()=>{});var gH=wr(()=>{});var xH=wr((EC,U1)=>{var W1=(()=>{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 it.buffer!=ee&&je(it.buffer),xe}function n(){return it.buffer!=ee&&je(it.buffer),fe}function o(){return it.buffer!=ee&&je(it.buffer),Ae}function s(){return it.buffer!=ee&&je(it.buffer),Pn}function i(){return it.buffer!=ee&&je(it.buffer),lr}function a(){return it.buffer!=ee&&je(it.buffer),Jn}function u(){return it.buffer!=ee&&je(it.buffer),Br}var l=typeof t!=\"undefined\"?t:{},c,p;l.ready=new Promise(function(M,U){c=M,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=(M,U)=>{throw U},x=typeof window==\"object\",b=typeof importScripts==\"function\",w=typeof process==\"object\"&&typeof process.versions==\"object\"&&typeof process.versions.node==\"string\",I=l.ENVIRONMENT_IS_PTHREAD||!1,N=\"\";function E(M){return l.locateFile?l.locateFile(M,N):N+M}var A,D,F,P;function V(M){if(M instanceof tc)return;X(\"exiting due to exception: \"+M)}if(w){var G=pw(),W=G1();b?N=W.dirname(N)+\"/\":N=__dirname+\"/\",A=(U,dt)=>(U=Sp(U)?new URL(U):W.normalize(U),G.readFileSync(U,dt?void 0:\"utf8\")),F=U=>{var dt=A(U,!0);return dt.buffer||(dt=new Uint8Array(dt)),dt},D=(U,dt,Lt)=>{U=Sp(U)?new URL(U):W.normalize(U),G.readFile(U,function(Zt,Yt){Zt?Lt(Zt):dt(Yt.buffer)})},process.argv.length>1&&(h=process.argv[1].replace(/\\\\/g,\"/\")),d=process.argv.slice(2),process.on(\"uncaughtException\",function(U){if(!(U instanceof tc))throw U}),process.on(\"unhandledRejection\",function(U){throw U}),g=(U,dt)=>{if(Go())throw process.exitCode=U,dt;V(dt),process.exit(U)},l.inspect=function(){return\"[Emscripten Module object]\"};let M;try{M=dH()}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=M.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=M=>{var U=new XMLHttpRequest;return U.open(\"GET\",M,!1),U.send(null),U.responseText},b&&(F=M=>{var U=new XMLHttpRequest;return U.open(\"GET\",M,!1),U.responseType=\"arraybuffer\",U.send(null),new Uint8Array(U.response)}),D=(M,U,dt)=>{var Lt=new XMLHttpRequest;Lt.open(\"GET\",M,!0),Lt.responseType=\"arraybuffer\",Lt.onload=()=>{if(Lt.status==200||Lt.status==0&&Lt.response){U(Lt.response);return}dt()},Lt.onerror=dt,Lt.send(null)}),P=M=>document.title=M);w&&typeof performance==\"undefined\"&&(global.performance=hH().performance);var q=console.log.bind(console),H=console.warn.bind(console);w&&(q=M=>G.writeSync(1,M+`\n`),H=M=>G.writeSync(2,M+`\n`));var K=l.print||q,X=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,nt=Atomics.store,st=Atomics.compareExchange,at;l.wasmBinary&&(at=l.wasmBinary);var ot=l.noExitRuntime||!0;typeof WebAssembly!=\"object\"&&Qu(\"no native wasm support detected\");var it,mt,gt=!1,It;function Rt(M,U){M||Qu(U)}var Dt=typeof TextDecoder!=\"undefined\"?new TextDecoder(\"utf8\"):void 0;function Ht(M,U,dt){U>>>=0;for(var Lt=U+dt,Zt=U;M[Zt]&&!(Zt>=Lt);)++Zt;if(Zt-U>16&&M.buffer&&Dt)return Dt.decode(M.buffer instanceof SharedArrayBuffer?M.slice(U,Zt):M.subarray(U,Zt));for(var Yt=\"\";U>10,56320|ro&1023)}}return Yt}function qt(M,U){return M>>>=0,M?Ht(n(),M,U):\"\"}function ce(M,U,dt,Lt){if(dt>>>=0,!(Lt>0))return 0;for(var Zt=dt,Yt=dt+Lt-1,yt=0;yt=55296&&$t<=57343){var nr=M.charCodeAt(++yt);$t=65536+(($t&1023)<<10)|nr&1023}if($t<=127){if(dt>=Yt)break;U[dt++>>>0]=$t}else if($t<=2047){if(dt+1>=Yt)break;U[dt++>>>0]=192|$t>>6,U[dt++>>>0]=128|$t&63}else if($t<=65535){if(dt+2>=Yt)break;U[dt++>>>0]=224|$t>>12,U[dt++>>>0]=128|$t>>6&63,U[dt++>>>0]=128|$t&63}else{if(dt+3>=Yt)break;U[dt++>>>0]=240|$t>>18,U[dt++>>>0]=128|$t>>12&63,U[dt++>>>0]=128|$t>>6&63,U[dt++>>>0]=128|$t&63}}return U[dt>>>0]=0,dt-Zt}function ge(M,U,dt){return ce(M,n(),U,dt)}var ee,xe,fe,Ae,De,Pn,lr,Jn,Br;I&&(ee=l.buffer);function je(M){ee=M,l.HEAP8=xe=new Int8Array(M),l.HEAP16=Ae=new Int16Array(M),l.HEAP32=Pn=new Int32Array(M),l.HEAPU8=fe=new Uint8Array(M),l.HEAPU16=De=new Uint16Array(M),l.HEAPU32=lr=new Uint32Array(M),l.HEAPF32=Jn=new Float32Array(M),l.HEAPF64=Br=new Float64Array(M)}var Vr=l.INITIAL_MEMORY||16777216;if(I)it=l.wasmMemory,ee=l.buffer;else if(l.wasmMemory)it=l.wasmMemory;else if(it=new WebAssembly.Memory({initial:Vr/65536,maximum:65536,shared:!0}),!(it.buffer instanceof SharedArrayBuffer))throw X(\"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&&X(\"(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and/or recent version)\"),Error(\"bad memory\");it&&(ee=it.buffer),Vr=ee.byteLength,je(ee);var Gr,Qn=[],to=[],Jr=[],Ca=!1;function Go(){return ot}function Ni(){if(l.preRun)for(typeof l.preRun==\"function\"&&(l.preRun=[l.preRun]);l.preRun.length;)Hd(l.preRun.shift());jd(Qn)}function Er(){Ca=!0,!I&&jd(to)}function va(){if(!I){if(l.postRun)for(typeof l.postRun==\"function\"&&(l.postRun=[l.postRun]);l.postRun.length;)Z1(l.postRun.shift());jd(Jr)}}function Hd(M){Qn.unshift(M)}function qd(M){to.unshift(M)}function Z1(M){Jr.unshift(M)}var Ul=0,vp=null,Sa=null;function $C(M){Ul++,l.monitorRunDependencies&&l.monitorRunDependencies(Ul)}function Cg(M){if(Ul--,l.monitorRunDependencies&&l.monitorRunDependencies(Ul),Ul==0&&(vp!==null&&(clearInterval(vp),vp=null),Sa)){var U=Sa;Sa=null,U()}}function Qu(M){l.onAbort&&l.onAbort(M),M=\"Aborted(\"+M+\")\",X(M),gt=!0,It=1,M+=\". Build with -sASSERTIONS for more info.\";var U=new WebAssembly.RuntimeError(M);throw p(U),U}var RC=\"data:application/octet-stream;base64,\";function vg(M){return M.startsWith(RC)}function Sp(M){return M.startsWith(\"file://\")}var Qr;Qr=\"tfjs-backend-wasm-threaded-simd.wasm\",vg(Qr)||(Qr=E(Qr));function Sg(M){try{if(M==Qr&&at)return new Uint8Array(at);if(F)return F(M);throw\"both async and sync fetching of the wasm failed\"}catch(U){Qu(U)}}function FC(){if(!at&&(x||b)){if(typeof fetch==\"function\"&&!Sp(Qr))return fetch(Qr,{credentials:\"same-origin\"}).then(function(M){if(!M.ok)throw\"failed to load wasm binary file at '\"+Qr+\"'\";return M.arrayBuffer()}).catch(function(){return Sg(Qr)});if(D)return new Promise(function(M,U){D(Qr,function(dt){M(new Uint8Array(dt))},U)})}return Promise.resolve().then(function(){return Sg(Qr)})}function OC(){var M={env:Mg,wasi_snapshot_preview1:Mg};function U(yt,$t){var nr=yt.exports;if(l.asm=nr,UC(l.asm._emscripten_tls_init),Gr=l.asm.__indirect_function_table,qd(l.asm.__wasm_call_ctors),mt=$t,!I){var ro=Xt.unusedWorkers.length;Xt.unusedWorkers.forEach(function(ka){Xt.loadWasmModuleToWorker(ka,function(){--ro||Cg(\"wasm-instantiate\")})})}}I||$C(\"wasm-instantiate\");function dt(yt){U(yt.instance,yt.module)}function Lt(yt){return FC().then(function($t){return WebAssembly.instantiate($t,M)}).then(function($t){return $t}).then(yt,function($t){X(\"failed to asynchronously prepare wasm: \"+$t),Qu($t)})}function Zt(){return!at&&typeof WebAssembly.instantiateStreaming==\"function\"&&!vg(Qr)&&!Sp(Qr)&&!w&&typeof fetch==\"function\"?fetch(Qr,{credentials:\"same-origin\"}).then(function(yt){var $t=WebAssembly.instantiateStreaming(yt,M);return $t.then(dt,function(nr){return X(\"wasm streaming compile failed: \"+nr),X(\"falling back to ArrayBuffer instantiation\"),Lt(dt)})}):Lt(dt)}if(l.instantiateWasm)try{var Yt=l.instantiateWasm(M,U);return Yt}catch(yt){X(\"Module.instantiateWasm callback failed with error: \"+yt),p(yt)}return Zt().catch(p),{}}var J1,Q1,Ng={};function tc(M){this.name=\"ExitStatus\",this.message=\"Program terminated with exit(\"+M+\")\",this.status=M}function PC(M){var U=Xt.pthreads[M];delete Xt.pthreads[M],U.terminate(),QS(M),Xt.runningWorkers.splice(Xt.runningWorkers.indexOf(U),1),U.pthread_ptr=0}function MC(M){var U=Xt.pthreads[M];U.postMessage({cmd:\"cancel\"})}function Kd(M){var U=Xt.pthreads[M];Rt(U),Xt.returnWorkerToPool(U)}function LC(M){var U=Xt.getNewWorker();if(!U)return 6;Xt.runningWorkers.push(U),Xt.pthreads[M.pthread_ptr]=U,U.pthread_ptr=M.pthread_ptr;var dt={cmd:\"run\",start_routine:M.startRoutine,arg:M.arg,pthread_ptr:M.pthread_ptr};return U.runPthread=()=>{w&&U.ref(),U.postMessage(dt,M.transferList),delete U.runPthread},U.loaded&&U.runPthread(),0}var kg={varargs:void 0,get:function(){kg.varargs+=4;var M=s()[kg.varargs-4>>>2];return M},getStr:function(M){var U=qt(M);return U}};function Tg(M){if(I)return Hl(1,1,M);It=M,Go()||(Xt.terminateAllThreads(),l.onExit&&l.onExit(M),gt=!0),g(M,new tc(M))}function zC(M,U){if(It=M,!U&&I)throw Eg(M),\"unwind\";Tg(M)}var _g=zC;function BC(M){if(M instanceof tc||M==\"unwind\")return It;g(1,M)}var Xt={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init:function(){I?Xt.initWorker():Xt.initMainThread()},initMainThread:function(){for(var M=8;M--;)Xt.allocateUnusedWorker()},initWorker:function(){ot=!1},setExitStatus:function(M){It=M},terminateAllThreads:function(){for(var M of Object.values(Xt.pthreads))Xt.returnWorkerToPool(M);for(var M of Xt.unusedWorkers)M.terminate();Xt.unusedWorkers=[]},returnWorkerToPool:function(M){var U=M.pthread_ptr;delete Xt.pthreads[U],Xt.unusedWorkers.push(M),Xt.runningWorkers.splice(Xt.runningWorkers.indexOf(M),1),M.pthread_ptr=0,w&&M.unref(),QS(U)},receiveObjectTransfer:function(M){},threadInitTLS:function(){Xt.tlsInitFunctions.forEach(M=>M())},loadWasmModuleToWorker:function(M,U){M.onmessage=Yt=>{var yt=Yt.data,$t=yt.cmd;if(M.pthread_ptr&&(Xt.currentProxiedOperationCallerThread=M.pthread_ptr),yt.targetThread&&yt.targetThread!=Wg()){var nr=Xt.pthreads[yt.targetThread];nr?nr.postMessage(yt,yt.transferList):X('Internal error! Worker sent a message \"'+$t+'\" to target pthread '+yt.targetThread+\", but that thread no longer exists!\"),Xt.currentProxiedOperationCallerThread=void 0;return}$t===\"processProxyingQueue\"?Xd(yt.queue):$t===\"spawnThread\"?LC(yt):$t===\"cleanupThread\"?Kd(yt.thread):$t===\"killThread\"?PC(yt.thread):$t===\"cancelThread\"?MC(yt.thread):$t===\"loaded\"?(M.loaded=!0,w&&M.unref(),U&&U(M),M.runPthread&&M.runPthread()):$t===\"print\"?K(\"Thread \"+yt.threadId+\": \"+yt.text):$t===\"printErr\"?X(\"Thread \"+yt.threadId+\": \"+yt.text):$t===\"alert\"?alert(\"Thread \"+yt.threadId+\": \"+yt.text):yt.target===\"setimmediate\"?M.postMessage(yt):$t===\"callHandler\"?l[yt.handler](...yt.args):$t&&X(\"worker sent an unknown command \"+$t),Xt.currentProxiedOperationCallerThread=void 0},M.onerror=Yt=>{var yt=\"worker sent an error!\";throw X(yt+\" \"+Yt.filename+\":\"+Yt.lineno+\": \"+Yt.message),Yt},w&&(M.on(\"message\",function(Yt){M.onmessage({data:Yt})}),M.on(\"error\",function(Yt){M.onerror(Yt)}),M.on(\"detachedExit\",function(){}));var dt=[],Lt=[\"onExit\",\"onAbort\",\"print\",\"printErr\"];for(var Zt of Lt)l.hasOwnProperty(Zt)&&dt.push(Zt);M.postMessage({cmd:\"load\",handlers:dt,urlOrBlob:l.mainScriptUrlOrBlob||r,wasmMemory:it,wasmModule:mt})},allocateUnusedWorker:function(){var M,U=E(\"tfjs-backend-wasm-threaded-simd.worker.js\");M=new Worker(U),Xt.unusedWorkers.push(M)},getNewWorker:function(){return Xt.unusedWorkers.length==0&&(Xt.allocateUnusedWorker(),Xt.loadWasmModuleToWorker(Xt.unusedWorkers[0])),Xt.unusedWorkers.pop()}};l.PThread=Xt;function jd(M){for(;M.length>0;)M.shift()(l)}function VC(){var M=Wg(),U=s()[M+52>>>2],dt=s()[M+56>>>2],Lt=U-dt;s_(U,Lt),Ug(U)}l.establishStackSpace=VC;function Eg(M){if(I)return Hl(2,0,M);try{_g(M)}catch(U){BC(U)}}var Np=[];function GC(M){var U=Np[M];return U||(M>=Np.length&&(Np.length=M+1),Np[M]=U=Gr.get(M)),U}function WC(M,U){var dt=GC(M)(U);Go()?Xt.setExitStatus(dt):o_(dt)}l.invokeEntryPoint=WC;function UC(M){Xt.tlsInitFunctions.push(M)}function HC(M){e_(M,!b,1,!x),Xt.threadInitTLS()}function qC(M){I?postMessage({cmd:\"cleanupThread\",thread:M}):Kd(M)}function Ag(M,U,dt,Lt){return I?Hl(3,1,M,U,dt,Lt):Dg(M,U,dt,Lt)}function Dg(M,U,dt,Lt){if(typeof SharedArrayBuffer==\"undefined\")return X(\"Current environment does not support SharedArrayBuffer, pthreads are not available!\"),6;var Zt=[],Yt=0;if(I&&(Zt.length===0||Yt))return Ag(M,U,dt,Lt);if(Yt)return Yt;var yt={startRoutine:dt,pthread_ptr:M,arg:Lt,transferList:Zt};return I?(yt.cmd=\"spawnThread\",postMessage(yt,Zt),0):LC(yt)}function KC(){return 65536}var jC=!0;function XC(){return jC}function Xd(M){Atomics.store(s(),M>>2,1),Wg()&&n_(M),Atomics.compareExchange(s(),M>>2,1,0)}l.executeNotifiedProxyingQueue=Xd;function YC(M,U,dt,Lt){if(M==U)setTimeout(()=>Xd(Lt));else if(I)postMessage({targetThread:M,cmd:\"processProxyingQueue\",queue:Lt});else{var Zt=Xt.pthreads[M];if(!Zt)return;Zt.postMessage({cmd:\"processProxyingQueue\",queue:Lt})}return 1}function ZC(M,U,dt){return-1}function JC(){Qu(\"\")}function ec(M){ec.shown||(ec.shown={}),ec.shown[M]||(ec.shown[M]=1,w&&(M=\"warning: \"+M),X(M))}function QC(){w||b||ec(\"Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread\")}function tv(){return Date.now()}function $g(){return 4294901760}function ev(){return $g()}var Yd;w?Yd=()=>{var M=process.hrtime();return M[0]*1e3+M[1]/1e6}:Yd=()=>performance.timeOrigin+performance.now();function rv(M,U,dt){n().copyWithin(M>>>0,U>>>0,U+dt>>>0)}function nv(){return w?gH().cpus().length:navigator.hardwareConcurrency}function ov(M){var U=t0(),dt=M();return Ug(U),dt}function Hl(M,U){var dt=arguments.length-2,Lt=arguments;return ov(()=>{for(var Zt=dt,Yt=Hg(Zt*8),yt=Yt>>3,$t=0;$t>>0]=nr}return r_(M,Zt,Yt,U)})}var Zd=[];function sv(M,U,dt){Zd.length=U;for(var Lt=dt>>3,Zt=0;Zt>>0];var Yt=M<0,yt=Yt?Ng[-M-1]:dv[M];return yt.apply(null,Zd)}function iv(M){try{return it.grow(M-ee.byteLength+65535>>>16),je(it.buffer),1}catch(U){}}function av(M){var U=n().length;if(M=M>>>0,M<=U)return!1;var dt=$g();if(M>dt)return!1;let Lt=(nr,ro)=>nr+(ro-nr%ro)%ro;for(var Zt=1;Zt<=4;Zt*=2){var Yt=U*(1+.2/Zt);Yt=Math.min(Yt,M+100663296);var yt=Math.min(dt,Lt(Math.max(M,Yt),65536)),$t=iv(yt);if($t)return!0}return!1}function lv(){throw\"unwind\"}function Rg(M){return I?Hl(4,1,M):52}function Fg(M,U,dt,Lt,Zt){return I?Hl(5,1,M,U,dt,Lt,Zt):70}var uv=[null,[],[]];function cv(M,U){var dt=uv[M];U===0||U===10?((M===1?K:X)(Ht(dt,0)),dt.length=0):dt.push(U)}function Og(M,U,dt,Lt){if(I)return Hl(6,1,M,U,dt,Lt);for(var Zt=0,Yt=0;Yt>>2],$t=i()[U+4>>>2];U+=8;for(var nr=0;nr<$t;nr++)cv(M,n()[yt+nr>>>0]);Zt+=$t}return i()[Lt>>>2]=Zt,0}function Pg(M){var U=l[\"_\"+M];return U}function pv(M,U){e().set(M,U>>>0)}function mv(M,U,dt,Lt,Zt){var Yt={string:Mn=>{var Ep=0;if(Mn!=null&&Mn!==0){var l_=(Mn.length<<2)+1;Ep=Hg(l_),ge(Mn,Ep,l_)}return Ep},array:Mn=>{var Ep=Hg(Mn.length);return pv(Mn,Ep),Ep}};function yt(Mn){return U===\"string\"?qt(Mn):U===\"boolean\"?!!Mn:Mn}var $t=Pg(M),nr=[],ro=0;if(Lt)for(var ka=0;kayt===\"number\"||yt===\"boolean\"),Yt=U!==\"string\";return Yt&&Zt&&!Lt?Pg(M):function(){return mv(M,U,dt,arguments,Lt)}}Xt.init();var dv=[null,Tg,Eg,Ag,Rg,Fg,Og],Mg={__emscripten_init_main_thread_js:HC,__emscripten_thread_cleanup:qC,__pthread_create_js:Dg,_emscripten_default_pthread_stack_size:KC,_emscripten_get_now_is_monotonic:XC,_emscripten_notify_task_queue:YC,_emscripten_set_offscreencanvas_size:ZC,abort:JC,emscripten_check_blocking_allowed:QC,emscripten_date_now:tv,emscripten_get_heap_max:ev,emscripten_get_now:Yd,emscripten_memcpy_big:rv,emscripten_num_logical_cores:nv,emscripten_receive_on_main_thread_js:sv,emscripten_resize_heap:av,emscripten_unwind_to_js_event_loop:lv,exit:_g,fd_close:Rg,fd_seek:Fg,fd_write:Og,memory:it||l.wasmMemory},t_=OC(),hv=l.___wasm_call_ctors=function(){return(hv=l.___wasm_call_ctors=l.asm.__wasm_call_ctors).apply(null,arguments)},gv=l._init=function(){return(gv=l._init=l.asm.init).apply(null,arguments)},xv=l._init_with_threads_count=function(){return(xv=l._init_with_threads_count=l.asm.init_with_threads_count).apply(null,arguments)},yv=l._get_threads_count=function(){return(yv=l._get_threads_count=l.asm.get_threads_count).apply(null,arguments)},bv=l._register_tensor=function(){return(bv=l._register_tensor=l.asm.register_tensor).apply(null,arguments)},wv=l._dispose_data=function(){return(wv=l._dispose_data=l.asm.dispose_data).apply(null,arguments)},Iv=l._dispose=function(){return(Iv=l._dispose=l.asm.dispose).apply(null,arguments)},Cv=l._Abs=function(){return(Cv=l._Abs=l.asm.Abs).apply(null,arguments)},vv=l._Acos=function(){return(vv=l._Acos=l.asm.Acos).apply(null,arguments)},Sv=l._Acosh=function(){return(Sv=l._Acosh=l.asm.Acosh).apply(null,arguments)},Nv=l._Add=function(){return(Nv=l._Add=l.asm.Add).apply(null,arguments)},kv=l._AddN=function(){return(kv=l._AddN=l.asm.AddN).apply(null,arguments)},Tv=l._All=function(){return(Tv=l._All=l.asm.All).apply(null,arguments)},_v=l._Any=function(){return(_v=l._Any=l.asm.Any).apply(null,arguments)},Ev=l._ArgMax=function(){return(Ev=l._ArgMax=l.asm.ArgMax).apply(null,arguments)},Av=l._ArgMin=function(){return(Av=l._ArgMin=l.asm.ArgMin).apply(null,arguments)},Dv=l._Asin=function(){return(Dv=l._Asin=l.asm.Asin).apply(null,arguments)},$v=l._Asinh=function(){return($v=l._Asinh=l.asm.Asinh).apply(null,arguments)},Rv=l._Atan=function(){return(Rv=l._Atan=l.asm.Atan).apply(null,arguments)},Fv=l._Atan2=function(){return(Fv=l._Atan2=l.asm.Atan2).apply(null,arguments)},Ov=l._Atanh=function(){return(Ov=l._Atanh=l.asm.Atanh).apply(null,arguments)},Pv=l._AvgPool=function(){return(Pv=l._AvgPool=l.asm.AvgPool).apply(null,arguments)},Mv=l._AvgPool3D=function(){return(Mv=l._AvgPool3D=l.asm.AvgPool3D).apply(null,arguments)},Lv=l._AvgPool3DGrad=function(){return(Lv=l._AvgPool3DGrad=l.asm.AvgPool3DGrad).apply(null,arguments)},zv=l._BatchMatMul=function(){return(zv=l._BatchMatMul=l.asm.BatchMatMul).apply(null,arguments)},Bv=l._Bincount=function(){return(Bv=l._Bincount=l.asm.Bincount).apply(null,arguments)},Vv=l._Ceil=function(){return(Vv=l._Ceil=l.asm.Ceil).apply(null,arguments)},Gv=l._ClipByValue=function(){return(Gv=l._ClipByValue=l.asm.ClipByValue).apply(null,arguments)},Wv=l._Conv2D=function(){return(Wv=l._Conv2D=l.asm.Conv2D).apply(null,arguments)},Uv=l._Conv2DBackpropInput=function(){return(Uv=l._Conv2DBackpropInput=l.asm.Conv2DBackpropInput).apply(null,arguments)},Hv=l._Conv3D=function(){return(Hv=l._Conv3D=l.asm.Conv3D).apply(null,arguments)},qv=l._Conv3DBackpropFilterV2=function(){return(qv=l._Conv3DBackpropFilterV2=l.asm.Conv3DBackpropFilterV2).apply(null,arguments)},Kv=l._Conv3DBackpropInputV2=function(){return(Kv=l._Conv3DBackpropInputV2=l.asm.Conv3DBackpropInputV2).apply(null,arguments)},jv=l._Cos=function(){return(jv=l._Cos=l.asm.Cos).apply(null,arguments)},Xv=l._Cosh=function(){return(Xv=l._Cosh=l.asm.Cosh).apply(null,arguments)},Yv=l._CropAndResize=function(){return(Yv=l._CropAndResize=l.asm.CropAndResize).apply(null,arguments)},Zv=l._Cumprod=function(){return(Zv=l._Cumprod=l.asm.Cumprod).apply(null,arguments)},Jv=l._Cumsum=function(){return(Jv=l._Cumsum=l.asm.Cumsum).apply(null,arguments)},Qv=l._DenseBincount=function(){return(Qv=l._DenseBincount=l.asm.DenseBincount).apply(null,arguments)},tS=l._DepthToSpace=function(){return(tS=l._DepthToSpace=l.asm.DepthToSpace).apply(null,arguments)},eS=l._DepthwiseConv2dNative=function(){return(eS=l._DepthwiseConv2dNative=l.asm.DepthwiseConv2dNative).apply(null,arguments)},rS=l._Diag=function(){return(rS=l._Diag=l.asm.Diag).apply(null,arguments)},nS=l._Dilation2D=function(){return(nS=l._Dilation2D=l.asm.Dilation2D).apply(null,arguments)},oS=l._Dilation2DBackpropFilter=function(){return(oS=l._Dilation2DBackpropFilter=l.asm.Dilation2DBackpropFilter).apply(null,arguments)},sS=l._Dilation2DBackpropInput=function(){return(sS=l._Dilation2DBackpropInput=l.asm.Dilation2DBackpropInput).apply(null,arguments)},iS=l._Elu=function(){return(iS=l._Elu=l.asm.Elu).apply(null,arguments)},aS=l._EluGrad=function(){return(aS=l._EluGrad=l.asm.EluGrad).apply(null,arguments)},lS=l._Equal=function(){return(lS=l._Equal=l.asm.Equal).apply(null,arguments)},uS=l._Exp=function(){return(uS=l._Exp=l.asm.Exp).apply(null,arguments)},cS=l._Expm1=function(){return(cS=l._Expm1=l.asm.Expm1).apply(null,arguments)},pS=l._FlipLeftRight=function(){return(pS=l._FlipLeftRight=l.asm.FlipLeftRight).apply(null,arguments)},mS=l._Floor=function(){return(mS=l._Floor=l.asm.Floor).apply(null,arguments)},fS=l._FloorDiv=function(){return(fS=l._FloorDiv=l.asm.FloorDiv).apply(null,arguments)},dS=l._FusedBatchNorm=function(){return(dS=l._FusedBatchNorm=l.asm.FusedBatchNorm).apply(null,arguments)},hS=l._FusedConv2D=function(){return(hS=l._FusedConv2D=l.asm.FusedConv2D).apply(null,arguments)},gS=l._FusedDepthwiseConv2D=function(){return(gS=l._FusedDepthwiseConv2D=l.asm.FusedDepthwiseConv2D).apply(null,arguments)},xS=l._Gather=function(){return(xS=l._Gather=l.asm.Gather).apply(null,arguments)},yS=l._GatherNd=function(){return(yS=l._GatherNd=l.asm.GatherNd).apply(null,arguments)},bS=l._Greater=function(){return(bS=l._Greater=l.asm.Greater).apply(null,arguments)},wS=l._GreaterEqual=function(){return(wS=l._GreaterEqual=l.asm.GreaterEqual).apply(null,arguments)},IS=l._IsFinite=function(){return(IS=l._IsFinite=l.asm.IsFinite).apply(null,arguments)},CS=l._IsInf=function(){return(CS=l._IsInf=l.asm.IsInf).apply(null,arguments)},vS=l._IsNan=function(){return(vS=l._IsNan=l.asm.IsNan).apply(null,arguments)},SS=l._LRN=function(){return(SS=l._LRN=l.asm.LRN).apply(null,arguments)},NS=l._LRNGrad=function(){return(NS=l._LRNGrad=l.asm.LRNGrad).apply(null,arguments)},kS=l._LeakyRelu=function(){return(kS=l._LeakyRelu=l.asm.LeakyRelu).apply(null,arguments)},TS=l._Less=function(){return(TS=l._Less=l.asm.Less).apply(null,arguments)},_S=l._LessEqual=function(){return(_S=l._LessEqual=l.asm.LessEqual).apply(null,arguments)},ES=l._LinSpace=function(){return(ES=l._LinSpace=l.asm.LinSpace).apply(null,arguments)},AS=l._Log=function(){return(AS=l._Log=l.asm.Log).apply(null,arguments)},DS=l._Log1p=function(){return(DS=l._Log1p=l.asm.Log1p).apply(null,arguments)},$S=l._LogicalAnd=function(){return($S=l._LogicalAnd=l.asm.LogicalAnd).apply(null,arguments)},RS=l._LogicalNot=function(){return(RS=l._LogicalNot=l.asm.LogicalNot).apply(null,arguments)},FS=l._LogicalOr=function(){return(FS=l._LogicalOr=l.asm.LogicalOr).apply(null,arguments)},OS=l._LogicalXor=function(){return(OS=l._LogicalXor=l.asm.LogicalXor).apply(null,arguments)},PS=l._Max=function(){return(PS=l._Max=l.asm.Max).apply(null,arguments)},MS=l._MaxPool=function(){return(MS=l._MaxPool=l.asm.MaxPool).apply(null,arguments)},LS=l._MaxPool3D=function(){return(LS=l._MaxPool3D=l.asm.MaxPool3D).apply(null,arguments)},zS=l._MaxPool3DGrad=function(){return(zS=l._MaxPool3DGrad=l.asm.MaxPool3DGrad).apply(null,arguments)},BS=l._Maximum=function(){return(BS=l._Maximum=l.asm.Maximum).apply(null,arguments)},VS=l._Mean=function(){return(VS=l._Mean=l.asm.Mean).apply(null,arguments)},GS=l._Min=function(){return(GS=l._Min=l.asm.Min).apply(null,arguments)},WS=l._Minimum=function(){return(WS=l._Minimum=l.asm.Minimum).apply(null,arguments)},US=l._MirrorPad=function(){return(US=l._MirrorPad=l.asm.MirrorPad).apply(null,arguments)},HS=l._Multinomial=function(){return(HS=l._Multinomial=l.asm.Multinomial).apply(null,arguments)},qS=l._Multiply=function(){return(qS=l._Multiply=l.asm.Multiply).apply(null,arguments)},KS=l._Neg=function(){return(KS=l._Neg=l.asm.Neg).apply(null,arguments)},jS=l._NonMaxSuppressionV3=function(){return(jS=l._NonMaxSuppressionV3=l.asm.NonMaxSuppressionV3).apply(null,arguments)},Lg=l._NonMaxSuppressionV4=function(){return(Lg=l._NonMaxSuppressionV4=l.asm.NonMaxSuppressionV4).apply(null,arguments)},zg=l._NonMaxSuppressionV5=function(){return(zg=l._NonMaxSuppressionV5=l.asm.NonMaxSuppressionV5).apply(null,arguments)},Jd=l._NotEqual=function(){return(Jd=l._NotEqual=l.asm.NotEqual).apply(null,arguments)},XS=l._OneHot=function(){return(XS=l._OneHot=l.asm.OneHot).apply(null,arguments)},YS=l._PadV2=function(){return(YS=l._PadV2=l.asm.PadV2).apply(null,arguments)},kp=l._Pow=function(){return(kp=l._Pow=l.asm.Pow).apply(null,arguments)},Bg=l._Prelu=function(){return(Bg=l._Prelu=l.asm.Prelu).apply(null,arguments)},Tp=l._Prod=function(){return(Tp=l._Prod=l.asm.Prod).apply(null,arguments)},_p=l._RealDiv=function(){return(_p=l._RealDiv=l.asm.RealDiv).apply(null,arguments)},ZS=l._Reciprocal=function(){return(ZS=l._Reciprocal=l.asm.Reciprocal).apply(null,arguments)},j=l._Relu=function(){return(j=l._Relu=l.asm.Relu).apply(null,arguments)},ut=l._Relu6=function(){return(ut=l._Relu6=l.asm.Relu6).apply(null,arguments)},Ft=l._ResizeBilinear=function(){return(Ft=l._ResizeBilinear=l.asm.ResizeBilinear).apply(null,arguments)},pe=l._ResizeBilinearGrad=function(){return(pe=l._ResizeBilinearGrad=l.asm.ResizeBilinearGrad).apply(null,arguments)},Xe=l._ResizeNearestNeighbor=function(){return(Xe=l._ResizeNearestNeighbor=l.asm.ResizeNearestNeighbor).apply(null,arguments)},Ye=l._ResizeNearestNeighborGrad=function(){return(Ye=l._ResizeNearestNeighborGrad=l.asm.ResizeNearestNeighborGrad).apply(null,arguments)},oe=l._Reverse=function(){return(oe=l._Reverse=l.asm.Reverse).apply(null,arguments)},re=l._RotateWithOffset=function(){return(re=l._RotateWithOffset=l.asm.RotateWithOffset).apply(null,arguments)},br=l._Round=function(){return(br=l._Round=l.asm.Round).apply(null,arguments)},eo=l._Rsqrt=function(){return(eo=l._Rsqrt=l.asm.Rsqrt).apply(null,arguments)},Na=l._ScatterNd=function(){return(Na=l._ScatterNd=l.asm.ScatterNd).apply(null,arguments)},Vg=l._SearchSorted=function(){return(Vg=l._SearchSorted=l.asm.SearchSorted).apply(null,arguments)},Qd=l._SelectV2=function(){return(Qd=l._SelectV2=l.asm.SelectV2).apply(null,arguments)},JS=l._Selu=function(){return(JS=l._Selu=l.asm.Selu).apply(null,arguments)},on=l._Sigmoid=function(){return(on=l._Sigmoid=l.asm.Sigmoid).apply(null,arguments)},ql=l._Sign=function(){return(ql=l._Sign=l.asm.Sign).apply(null,arguments)},Gg=l._Sin=function(){return(Gg=l._Sin=l.asm.Sin).apply(null,arguments)},TH=l._Softmax=function(){return(TH=l._Softmax=l.asm.Softmax).apply(null,arguments)},_H=l._Softplus=function(){return(_H=l._Softplus=l.asm.Softplus).apply(null,arguments)},EH=l._SparseFillEmptyRows=function(){return(EH=l._SparseFillEmptyRows=l.asm.SparseFillEmptyRows).apply(null,arguments)},AH=l._SparseReshape=function(){return(AH=l._SparseReshape=l.asm.SparseReshape).apply(null,arguments)},DH=l._SparseSegmentReduction=function(){return(DH=l._SparseSegmentReduction=l.asm.SparseSegmentReduction).apply(null,arguments)},$H=l._SparseToDense=function(){return($H=l._SparseToDense=l.asm.SparseToDense).apply(null,arguments)},RH=l._Sqrt=function(){return(RH=l._Sqrt=l.asm.Sqrt).apply(null,arguments)},FH=l._Square=function(){return(FH=l._Square=l.asm.Square).apply(null,arguments)},OH=l._SquaredDifference=function(){return(OH=l._SquaredDifference=l.asm.SquaredDifference).apply(null,arguments)},PH=l._Step=function(){return(PH=l._Step=l.asm.Step).apply(null,arguments)},MH=l._StridedSlice=function(){return(MH=l._StridedSlice=l.asm.StridedSlice).apply(null,arguments)},LH=l._Sub=function(){return(LH=l._Sub=l.asm.Sub).apply(null,arguments)},zH=l._Sum=function(){return(zH=l._Sum=l.asm.Sum).apply(null,arguments)},BH=l._Tan=function(){return(BH=l._Tan=l.asm.Tan).apply(null,arguments)},VH=l._Tanh=function(){return(VH=l._Tanh=l.asm.Tanh).apply(null,arguments)},GH=l._TensorScatterUpdate=function(){return(GH=l._TensorScatterUpdate=l.asm.TensorScatterUpdate).apply(null,arguments)},WH=l._Tile=function(){return(WH=l._Tile=l.asm.Tile).apply(null,arguments)},UH=l._TopK=function(){return(UH=l._TopK=l.asm.TopK).apply(null,arguments)},HH=l._Transform=function(){return(HH=l._Transform=l.asm.Transform).apply(null,arguments)},qH=l._Transpose=function(){return(qH=l._Transpose=l.asm.Transpose).apply(null,arguments)},KH=l.__FusedMatMul=function(){return(KH=l.__FusedMatMul=l.asm._FusedMatMul).apply(null,arguments)},jH=l._malloc=function(){return(jH=l._malloc=l.asm.malloc).apply(null,arguments)},XH=l._free=function(){return(XH=l._free=l.asm.free).apply(null,arguments)},YH=l.__emscripten_tls_init=function(){return(YH=l.__emscripten_tls_init=l.asm._emscripten_tls_init).apply(null,arguments)},Wg=l._pthread_self=function(){return(Wg=l._pthread_self=l.asm.pthread_self).apply(null,arguments)},ZH=l.___errno_location=function(){return(ZH=l.___errno_location=l.asm.__errno_location).apply(null,arguments)},e_=l.__emscripten_thread_init=function(){return(e_=l.__emscripten_thread_init=l.asm._emscripten_thread_init).apply(null,arguments)},JH=l.__emscripten_thread_crashed=function(){return(JH=l.__emscripten_thread_crashed=l.asm._emscripten_thread_crashed).apply(null,arguments)},QH=l._emscripten_main_thread_process_queued_calls=function(){return(QH=l._emscripten_main_thread_process_queued_calls=l.asm.emscripten_main_thread_process_queued_calls).apply(null,arguments)},tq=l._emscripten_main_browser_thread_id=function(){return(tq=l._emscripten_main_browser_thread_id=l.asm.emscripten_main_browser_thread_id).apply(null,arguments)},r_=l._emscripten_run_in_main_runtime_thread_js=function(){return(r_=l._emscripten_run_in_main_runtime_thread_js=l.asm.emscripten_run_in_main_runtime_thread_js).apply(null,arguments)},eq=l._emscripten_dispatch_to_thread_=function(){return(eq=l._emscripten_dispatch_to_thread_=l.asm.emscripten_dispatch_to_thread_).apply(null,arguments)},n_=l.__emscripten_proxy_execute_task_queue=function(){return(n_=l.__emscripten_proxy_execute_task_queue=l.asm._emscripten_proxy_execute_task_queue).apply(null,arguments)},QS=l.__emscripten_thread_free_data=function(){return(QS=l.__emscripten_thread_free_data=l.asm._emscripten_thread_free_data).apply(null,arguments)},o_=l.__emscripten_thread_exit=function(){return(o_=l.__emscripten_thread_exit=l.asm._emscripten_thread_exit).apply(null,arguments)},s_=l._emscripten_stack_set_limits=function(){return(s_=l._emscripten_stack_set_limits=l.asm.emscripten_stack_set_limits).apply(null,arguments)},t0=l.stackSave=function(){return(t0=l.stackSave=l.asm.stackSave).apply(null,arguments)},Ug=l.stackRestore=function(){return(Ug=l.stackRestore=l.asm.stackRestore).apply(null,arguments)},Hg=l.stackAlloc=function(){return(Hg=l.stackAlloc=l.asm.stackAlloc).apply(null,arguments)},rq=l.dynCall_iijjiiii=function(){return(rq=l.dynCall_iijjiiii=l.asm.dynCall_iijjiiii).apply(null,arguments)},nq=l.dynCall_jiji=function(){return(nq=l.dynCall_jiji=l.asm.dynCall_jiji).apply(null,arguments)};l.keepRuntimeAlive=Go,l.wasmMemory=it,l.cwrap=fv,l.ExitStatus=tc,l.PThread=Xt;var qg;Sa=function M(){qg||i_(),qg||(Sa=M)};function i_(M){if(M=M||d,Ul>0)return;if(I){c(l),Er(),startWorker(l);return}if(Ni(),Ul>0)return;function U(){qg||(qg=!0,l.calledRun=!0,!gt&&(Er(),c(l),l.onRuntimeInitialized&&l.onRuntimeInitialized(),va()))}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()();i_();var Kg;m&&(Kg={uncaughtException:process.listeners(\"uncaughtException\").filter(function(M){return!m.uncaughtException.indexOf(M)>-1}),unhandledRejection:process.listeners(\"unhandledRejection\").filter(function(M){return!m.unhandledRejection.indexOf(M)>-1})});var jg;if(typeof WasmBackendModule!=\"undefined\")jg=WasmBackendModule;else if(typeof t!=\"undefined\")jg=t;else throw new Error(\"Could not find wasm module in post.js\");if(Kg){var oq=jg._dispose;jg._dispose=function(){oq(),Kg.uncaughtException.forEach(function(M){process.removeListener(\"uncaughtException\",M)}),Kg.unhandledRejection.forEach(function(M){process.removeListener(\"unhandledRejection\",M)})}}return t.ready}})();typeof EC==\"object\"&&typeof U1==\"object\"?U1.exports=W1:typeof define==\"function\"&&define.amd?define([],function(){return W1}):typeof EC==\"object\"&&(EC.WasmBackendModuleThreadedSimd=W1)});var bH=wr((der,yH)=>{yH.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\")+\"//# sourceURL=\"+f)},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.startWorker=instance=>{Module=instance;postMessage({\"cmd\":\"loaded\"})};self.onmessage=e=>{try{if(e.data.cmd===\"load\"){Module[\"wasmModule\"]=e.data.wasmModule;for(const handler of e.data.handlers){Module[handler]=function(){postMessage({cmd:\"callHandler\",handler:handler,args:[...arguments]})}}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)}else if(e.data.cmd===\"run\"){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 wH=wr((AC,q1)=>{var H1=(()=>{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(j,ut){n=j,o=ut});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=(j,ut)=>{throw ut},c=typeof window==\"object\",p=typeof importScripts==\"function\",m=typeof process==\"object\"&&typeof process.versions==\"object\"&&typeof process.versions.node==\"string\",f=\"\";function d(j){return e.locateFile?e.locateFile(j,f):f+j}var h,g,x,b;function w(j){if(j instanceof vp)return;A(\"exiting due to exception: \"+j)}if(m){var I=pw(),N=G1();p?f=N.dirname(f)+\"/\":f=__dirname+\"/\",h=(j,ut)=>(j=Ni(j)?new URL(j):N.normalize(j),I.readFileSync(j,ut?void 0:\"utf8\")),x=j=>{var ut=h(j,!0);return ut.buffer||(ut=new Uint8Array(ut)),ut},g=(j,ut,Ft)=>{j=Ni(j)?new URL(j):N.normalize(j),I.readFile(j,function(pe,Xe){pe?Ft(pe):ut(Xe.buffer)})},process.argv.length>1&&(u=process.argv[1].replace(/\\\\/g,\"/\")),a=process.argv.slice(2),process.on(\"uncaughtException\",function(j){if(!(j instanceof vp))throw j}),process.on(\"unhandledRejection\",function(j){throw j}),l=(j,ut)=>{if(fe())throw process.exitCode=j,ut;w(ut),process.exit(j)},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=j=>{var ut=new XMLHttpRequest;return ut.open(\"GET\",j,!1),ut.send(null),ut.responseText},p&&(x=j=>{var ut=new XMLHttpRequest;return ut.open(\"GET\",j,!1),ut.responseType=\"arraybuffer\",ut.send(null),new Uint8Array(ut.response)}),g=(j,ut,Ft)=>{var pe=new XMLHttpRequest;pe.open(\"GET\",j,!0),pe.responseType=\"arraybuffer\",pe.onload=()=>{if(pe.status==200||pe.status==0&&pe.response){ut(pe.response);return}Ft()},pe.onerror=Ft,pe.send(null)},b=j=>document.title=j);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 D=4,F;e.wasmBinary&&(F=e.wasmBinary);var P=e.noExitRuntime||!0;typeof WebAssembly!=\"object\"&&Jr(\"no native wasm support detected\");var V,G=!1,W;function q(j,ut){j||Jr(ut)}var H=typeof TextDecoder!=\"undefined\"?new TextDecoder(\"utf8\"):void 0;function K(j,ut,Ft){ut>>>=0;for(var pe=ut+Ft,Xe=ut;j[Xe]&&!(Xe>=pe);)++Xe;if(Xe-ut>16&&j.buffer&&H)return H.decode(j.subarray(ut,Xe));for(var Ye=\"\";ut>10,56320|eo&1023)}}return Ye}function X(j,ut){return j>>>=0,j?K(at,j,ut):\"\"}function Z(j,ut,Ft,pe){if(Ft>>>=0,!(pe>0))return 0;for(var Xe=Ft,Ye=Ft+pe-1,oe=0;oe=55296&&re<=57343){var br=j.charCodeAt(++oe);re=65536+((re&1023)<<10)|br&1023}if(re<=127){if(Ft>=Ye)break;ut[Ft++>>>0]=re}else if(re<=2047){if(Ft+1>=Ye)break;ut[Ft++>>>0]=192|re>>6,ut[Ft++>>>0]=128|re&63}else if(re<=65535){if(Ft+2>=Ye)break;ut[Ft++>>>0]=224|re>>12,ut[Ft++>>>0]=128|re>>6&63,ut[Ft++>>>0]=128|re&63}else{if(Ft+3>=Ye)break;ut[Ft++>>>0]=240|re>>18,ut[Ft++>>>0]=128|re>>12&63,ut[Ft++>>>0]=128|re>>6&63,ut[Ft++>>>0]=128|re&63}}return ut[Ft>>>0]=0,Ft-Xe}function et(j,ut,Ft){return Z(j,at,ut,Ft)}var nt,st,at,ot,it,mt,gt,It,Rt;function Dt(j){nt=j,e.HEAP8=st=new Int8Array(j),e.HEAP16=ot=new Int16Array(j),e.HEAP32=mt=new Int32Array(j),e.HEAPU8=at=new Uint8Array(j),e.HEAPU16=it=new Uint16Array(j),e.HEAPU32=gt=new Uint32Array(j),e.HEAPF32=It=new Float32Array(j),e.HEAPF64=Rt=new Float64Array(j)}var Ht=e.INITIAL_MEMORY||16777216,qt,ce=[],ge=[],ee=[],xe=!1;function fe(){return P}function Ae(){if(e.preRun)for(typeof e.preRun==\"function\"&&(e.preRun=[e.preRun]);e.preRun.length;)lr(e.preRun.shift());Sa(ce)}function De(){xe=!0,Sa(ge)}function Pn(){if(e.postRun)for(typeof e.postRun==\"function\"&&(e.postRun=[e.postRun]);e.postRun.length;)Br(e.postRun.shift());Sa(ee)}function lr(j){ce.unshift(j)}function Jn(j){ge.unshift(j)}function Br(j){ee.unshift(j)}var je=0,Vr=null,Gr=null;function Qn(j){je++,e.monitorRunDependencies&&e.monitorRunDependencies(je)}function to(j){if(je--,e.monitorRunDependencies&&e.monitorRunDependencies(je),je==0&&(Vr!==null&&(clearInterval(Vr),Vr=null),Gr)){var ut=Gr;Gr=null,ut()}}function Jr(j){e.onAbort&&e.onAbort(j),j=\"Aborted(\"+j+\")\",A(j),G=!0,W=1,j+=\". Build with -sASSERTIONS for more info.\";var ut=new WebAssembly.RuntimeError(j);throw o(ut),ut}var Ca=\"data:application/octet-stream;base64,\";function Go(j){return j.startsWith(Ca)}function Ni(j){return j.startsWith(\"file://\")}var Er;Er=\"tfjs-backend-wasm.wasm\",Go(Er)||(Er=d(Er));function va(j){try{if(j==Er&&F)return new Uint8Array(F);if(x)return x(j);throw\"both async and sync fetching of the wasm failed\"}catch(ut){Jr(ut)}}function Hd(){if(!F&&(c||p)){if(typeof fetch==\"function\"&&!Ni(Er))return fetch(Er,{credentials:\"same-origin\"}).then(function(j){if(!j.ok)throw\"failed to load wasm binary file at '\"+Er+\"'\";return j.arrayBuffer()}).catch(function(){return va(Er)});if(g)return new Promise(function(j,ut){g(Er,function(Ft){j(new Uint8Array(Ft))},ut)})}return Promise.resolve().then(function(){return va(Er)})}function qd(){var j={env:Kd,wasi_snapshot_preview1:Kd};function ut(oe,re){var br=oe.exports;e.asm=br,V=e.asm.memory,Dt(V.buffer),qt=e.asm.__indirect_function_table,Jn(e.asm.__wasm_call_ctors),to(\"wasm-instantiate\")}Qn(\"wasm-instantiate\");function Ft(oe){ut(oe.instance)}function pe(oe){return Hd().then(function(re){return WebAssembly.instantiate(re,j)}).then(function(re){return re}).then(oe,function(re){A(\"failed to asynchronously prepare wasm: \"+re),Jr(re)})}function Xe(){return!F&&typeof WebAssembly.instantiateStreaming==\"function\"&&!Go(Er)&&!Ni(Er)&&!m&&typeof fetch==\"function\"?fetch(Er,{credentials:\"same-origin\"}).then(function(oe){var re=WebAssembly.instantiateStreaming(oe,j);return re.then(Ft,function(br){return A(\"wasm streaming compile failed: \"+br),A(\"falling back to ArrayBuffer instantiation\"),pe(Ft)})}):pe(Ft)}if(e.instantiateWasm)try{var Ye=e.instantiateWasm(j,ut);return Ye}catch(oe){A(\"Module.instantiateWasm callback failed with error: \"+oe),o(oe)}return Xe().catch(o),{}}var Z1,Ul;function vp(j){this.name=\"ExitStatus\",this.message=\"Program terminated with exit(\"+j+\")\",this.status=j}function Sa(j){for(;j.length>0;)j.shift()(e)}function $C(){Jr(\"\")}function Cg(){return 4294901760}function Qu(){return Cg()}function RC(j,ut,Ft){at.copyWithin(j>>>0,ut>>>0,ut+Ft>>>0)}function vg(j){try{return V.grow(j-nt.byteLength+65535>>>16),Dt(V.buffer),1}catch(ut){}}function Sp(j){var ut=at.length;j=j>>>0;var Ft=Cg();if(j>Ft)return!1;let pe=(br,eo)=>br+(eo-br%eo)%eo;for(var Xe=1;Xe<=4;Xe*=2){var Ye=ut*(1+.2/Xe);Ye=Math.min(Ye,j+100663296);var oe=Math.min(Ft,pe(Math.max(j,Ye),65536)),re=vg(oe);if(re)return!0}return!1}var Qr={varargs:void 0,get:function(){Qr.varargs+=4;var j=mt[Qr.varargs-4>>>2];return j},getStr:function(j){var ut=X(j);return ut}};function Sg(j){return 52}function FC(j,ut,Ft,pe,Xe){return 70}var OC=[null,[],[]];function J1(j,ut){var Ft=OC[j];ut===0||ut===10?((j===1?E:A)(K(Ft,0)),Ft.length=0):Ft.push(ut)}function Q1(j,ut,Ft,pe){for(var Xe=0,Ye=0;Ye>>2],re=gt[ut+4>>>2];ut+=8;for(var br=0;br>>0]);Xe+=re}return gt[pe>>>2]=Xe,0}function Ng(j){var ut=e[\"_\"+j];return ut}function tc(j,ut){st.set(j,ut>>>0)}function PC(j,ut,Ft,pe,Xe){var Ye={string:on=>{var ql=0;if(on!=null&&on!==0){var Gg=(on.length<<2)+1;ql=Jd(Gg),et(on,ql,Gg)}return ql},array:on=>{var ql=Jd(on.length);return tc(on,ql),ql}};function oe(on){return ut===\"string\"?X(on):ut===\"boolean\"?!!on:on}var re=Ng(j),br=[],eo=0;if(pe)for(var Na=0;Naoe===\"number\"||oe===\"boolean\"),Ye=ut!==\"string\";return Ye&&Xe&&!pe?Ng(j):function(){return PC(j,ut,Ft,arguments,pe)}}var Kd={abort:$C,emscripten_get_heap_max:Qu,emscripten_memcpy_big:RC,emscripten_resize_heap:Sp,fd_close:Sg,fd_seek:FC,fd_write:Q1},LC=qd(),kg=e.___wasm_call_ctors=function(){return(kg=e.___wasm_call_ctors=e.asm.__wasm_call_ctors).apply(null,arguments)},Tg=e._init=function(){return(Tg=e._init=e.asm.init).apply(null,arguments)},zC=e._init_with_threads_count=function(){return(zC=e._init_with_threads_count=e.asm.init_with_threads_count).apply(null,arguments)},_g=e._get_threads_count=function(){return(_g=e._get_threads_count=e.asm.get_threads_count).apply(null,arguments)},BC=e._register_tensor=function(){return(BC=e._register_tensor=e.asm.register_tensor).apply(null,arguments)},Xt=e._dispose_data=function(){return(Xt=e._dispose_data=e.asm.dispose_data).apply(null,arguments)},jd=e._dispose=function(){return(jd=e._dispose=e.asm.dispose).apply(null,arguments)},VC=e._Abs=function(){return(VC=e._Abs=e.asm.Abs).apply(null,arguments)},Eg=e._Acos=function(){return(Eg=e._Acos=e.asm.Acos).apply(null,arguments)},Np=e._Acosh=function(){return(Np=e._Acosh=e.asm.Acosh).apply(null,arguments)},GC=e._Add=function(){return(GC=e._Add=e.asm.Add).apply(null,arguments)},WC=e._AddN=function(){return(WC=e._AddN=e.asm.AddN).apply(null,arguments)},UC=e._All=function(){return(UC=e._All=e.asm.All).apply(null,arguments)},HC=e._Any=function(){return(HC=e._Any=e.asm.Any).apply(null,arguments)},qC=e._ArgMax=function(){return(qC=e._ArgMax=e.asm.ArgMax).apply(null,arguments)},Ag=e._ArgMin=function(){return(Ag=e._ArgMin=e.asm.ArgMin).apply(null,arguments)},Dg=e._Asin=function(){return(Dg=e._Asin=e.asm.Asin).apply(null,arguments)},KC=e._Asinh=function(){return(KC=e._Asinh=e.asm.Asinh).apply(null,arguments)},jC=e._Atan=function(){return(jC=e._Atan=e.asm.Atan).apply(null,arguments)},XC=e._Atan2=function(){return(XC=e._Atan2=e.asm.Atan2).apply(null,arguments)},Xd=e._Atanh=function(){return(Xd=e._Atanh=e.asm.Atanh).apply(null,arguments)},YC=e._AvgPool=function(){return(YC=e._AvgPool=e.asm.AvgPool).apply(null,arguments)},ZC=e._AvgPool3D=function(){return(ZC=e._AvgPool3D=e.asm.AvgPool3D).apply(null,arguments)},JC=e._AvgPool3DGrad=function(){return(JC=e._AvgPool3DGrad=e.asm.AvgPool3DGrad).apply(null,arguments)},ec=e._BatchMatMul=function(){return(ec=e._BatchMatMul=e.asm.BatchMatMul).apply(null,arguments)},QC=e._Bincount=function(){return(QC=e._Bincount=e.asm.Bincount).apply(null,arguments)},tv=e._Ceil=function(){return(tv=e._Ceil=e.asm.Ceil).apply(null,arguments)},$g=e._ClipByValue=function(){return($g=e._ClipByValue=e.asm.ClipByValue).apply(null,arguments)},ev=e._Conv2D=function(){return(ev=e._Conv2D=e.asm.Conv2D).apply(null,arguments)},Yd=e._Conv2DBackpropInput=function(){return(Yd=e._Conv2DBackpropInput=e.asm.Conv2DBackpropInput).apply(null,arguments)},rv=e._Conv3D=function(){return(rv=e._Conv3D=e.asm.Conv3D).apply(null,arguments)},nv=e._Conv3DBackpropFilterV2=function(){return(nv=e._Conv3DBackpropFilterV2=e.asm.Conv3DBackpropFilterV2).apply(null,arguments)},ov=e._Conv3DBackpropInputV2=function(){return(ov=e._Conv3DBackpropInputV2=e.asm.Conv3DBackpropInputV2).apply(null,arguments)},Hl=e._Cos=function(){return(Hl=e._Cos=e.asm.Cos).apply(null,arguments)},Zd=e._Cosh=function(){return(Zd=e._Cosh=e.asm.Cosh).apply(null,arguments)},sv=e._CropAndResize=function(){return(sv=e._CropAndResize=e.asm.CropAndResize).apply(null,arguments)},iv=e._Cumprod=function(){return(iv=e._Cumprod=e.asm.Cumprod).apply(null,arguments)},av=e._Cumsum=function(){return(av=e._Cumsum=e.asm.Cumsum).apply(null,arguments)},lv=e._DenseBincount=function(){return(lv=e._DenseBincount=e.asm.DenseBincount).apply(null,arguments)},Rg=e._DepthToSpace=function(){return(Rg=e._DepthToSpace=e.asm.DepthToSpace).apply(null,arguments)},Fg=e._DepthwiseConv2dNative=function(){return(Fg=e._DepthwiseConv2dNative=e.asm.DepthwiseConv2dNative).apply(null,arguments)},uv=e._Diag=function(){return(uv=e._Diag=e.asm.Diag).apply(null,arguments)},cv=e._Dilation2D=function(){return(cv=e._Dilation2D=e.asm.Dilation2D).apply(null,arguments)},Og=e._Dilation2DBackpropFilter=function(){return(Og=e._Dilation2DBackpropFilter=e.asm.Dilation2DBackpropFilter).apply(null,arguments)},Pg=e._Dilation2DBackpropInput=function(){return(Pg=e._Dilation2DBackpropInput=e.asm.Dilation2DBackpropInput).apply(null,arguments)},pv=e._Elu=function(){return(pv=e._Elu=e.asm.Elu).apply(null,arguments)},mv=e._EluGrad=function(){return(mv=e._EluGrad=e.asm.EluGrad).apply(null,arguments)},fv=e._Equal=function(){return(fv=e._Equal=e.asm.Equal).apply(null,arguments)},dv=e._Exp=function(){return(dv=e._Exp=e.asm.Exp).apply(null,arguments)},Mg=e._Expm1=function(){return(Mg=e._Expm1=e.asm.Expm1).apply(null,arguments)},t_=e._FlipLeftRight=function(){return(t_=e._FlipLeftRight=e.asm.FlipLeftRight).apply(null,arguments)},hv=e._Floor=function(){return(hv=e._Floor=e.asm.Floor).apply(null,arguments)},gv=e._FloorDiv=function(){return(gv=e._FloorDiv=e.asm.FloorDiv).apply(null,arguments)},xv=e._FusedBatchNorm=function(){return(xv=e._FusedBatchNorm=e.asm.FusedBatchNorm).apply(null,arguments)},yv=e._FusedConv2D=function(){return(yv=e._FusedConv2D=e.asm.FusedConv2D).apply(null,arguments)},bv=e._FusedDepthwiseConv2D=function(){return(bv=e._FusedDepthwiseConv2D=e.asm.FusedDepthwiseConv2D).apply(null,arguments)},wv=e._Gather=function(){return(wv=e._Gather=e.asm.Gather).apply(null,arguments)},Iv=e._GatherNd=function(){return(Iv=e._GatherNd=e.asm.GatherNd).apply(null,arguments)},Cv=e._Greater=function(){return(Cv=e._Greater=e.asm.Greater).apply(null,arguments)},vv=e._GreaterEqual=function(){return(vv=e._GreaterEqual=e.asm.GreaterEqual).apply(null,arguments)},Sv=e._IsFinite=function(){return(Sv=e._IsFinite=e.asm.IsFinite).apply(null,arguments)},Nv=e._IsInf=function(){return(Nv=e._IsInf=e.asm.IsInf).apply(null,arguments)},kv=e._IsNan=function(){return(kv=e._IsNan=e.asm.IsNan).apply(null,arguments)},Tv=e._LRN=function(){return(Tv=e._LRN=e.asm.LRN).apply(null,arguments)},_v=e._LRNGrad=function(){return(_v=e._LRNGrad=e.asm.LRNGrad).apply(null,arguments)},Ev=e._LeakyRelu=function(){return(Ev=e._LeakyRelu=e.asm.LeakyRelu).apply(null,arguments)},Av=e._Less=function(){return(Av=e._Less=e.asm.Less).apply(null,arguments)},Dv=e._LessEqual=function(){return(Dv=e._LessEqual=e.asm.LessEqual).apply(null,arguments)},$v=e._LinSpace=function(){return($v=e._LinSpace=e.asm.LinSpace).apply(null,arguments)},Rv=e._Log=function(){return(Rv=e._Log=e.asm.Log).apply(null,arguments)},Fv=e._Log1p=function(){return(Fv=e._Log1p=e.asm.Log1p).apply(null,arguments)},Ov=e._LogicalAnd=function(){return(Ov=e._LogicalAnd=e.asm.LogicalAnd).apply(null,arguments)},Pv=e._LogicalNot=function(){return(Pv=e._LogicalNot=e.asm.LogicalNot).apply(null,arguments)},Mv=e._LogicalOr=function(){return(Mv=e._LogicalOr=e.asm.LogicalOr).apply(null,arguments)},Lv=e._LogicalXor=function(){return(Lv=e._LogicalXor=e.asm.LogicalXor).apply(null,arguments)},zv=e._Max=function(){return(zv=e._Max=e.asm.Max).apply(null,arguments)},Bv=e._MaxPool=function(){return(Bv=e._MaxPool=e.asm.MaxPool).apply(null,arguments)},Vv=e._MaxPool3D=function(){return(Vv=e._MaxPool3D=e.asm.MaxPool3D).apply(null,arguments)},Gv=e._MaxPool3DGrad=function(){return(Gv=e._MaxPool3DGrad=e.asm.MaxPool3DGrad).apply(null,arguments)},Wv=e._Maximum=function(){return(Wv=e._Maximum=e.asm.Maximum).apply(null,arguments)},Uv=e._Mean=function(){return(Uv=e._Mean=e.asm.Mean).apply(null,arguments)},Hv=e._Min=function(){return(Hv=e._Min=e.asm.Min).apply(null,arguments)},qv=e._Minimum=function(){return(qv=e._Minimum=e.asm.Minimum).apply(null,arguments)},Kv=e._MirrorPad=function(){return(Kv=e._MirrorPad=e.asm.MirrorPad).apply(null,arguments)},jv=e._Multinomial=function(){return(jv=e._Multinomial=e.asm.Multinomial).apply(null,arguments)},Xv=e._Multiply=function(){return(Xv=e._Multiply=e.asm.Multiply).apply(null,arguments)},Yv=e._Neg=function(){return(Yv=e._Neg=e.asm.Neg).apply(null,arguments)},Zv=e._NonMaxSuppressionV3=function(){return(Zv=e._NonMaxSuppressionV3=e.asm.NonMaxSuppressionV3).apply(null,arguments)},Jv=e._NonMaxSuppressionV4=function(){return(Jv=e._NonMaxSuppressionV4=e.asm.NonMaxSuppressionV4).apply(null,arguments)},Qv=e._NonMaxSuppressionV5=function(){return(Qv=e._NonMaxSuppressionV5=e.asm.NonMaxSuppressionV5).apply(null,arguments)},tS=e._NotEqual=function(){return(tS=e._NotEqual=e.asm.NotEqual).apply(null,arguments)},eS=e._OneHot=function(){return(eS=e._OneHot=e.asm.OneHot).apply(null,arguments)},rS=e._PadV2=function(){return(rS=e._PadV2=e.asm.PadV2).apply(null,arguments)},nS=e._Pow=function(){return(nS=e._Pow=e.asm.Pow).apply(null,arguments)},oS=e._Prelu=function(){return(oS=e._Prelu=e.asm.Prelu).apply(null,arguments)},sS=e._Prod=function(){return(sS=e._Prod=e.asm.Prod).apply(null,arguments)},iS=e._RealDiv=function(){return(iS=e._RealDiv=e.asm.RealDiv).apply(null,arguments)},aS=e._Reciprocal=function(){return(aS=e._Reciprocal=e.asm.Reciprocal).apply(null,arguments)},lS=e._Relu=function(){return(lS=e._Relu=e.asm.Relu).apply(null,arguments)},uS=e._Relu6=function(){return(uS=e._Relu6=e.asm.Relu6).apply(null,arguments)},cS=e._ResizeBilinear=function(){return(cS=e._ResizeBilinear=e.asm.ResizeBilinear).apply(null,arguments)},pS=e._ResizeBilinearGrad=function(){return(pS=e._ResizeBilinearGrad=e.asm.ResizeBilinearGrad).apply(null,arguments)},mS=e._ResizeNearestNeighbor=function(){return(mS=e._ResizeNearestNeighbor=e.asm.ResizeNearestNeighbor).apply(null,arguments)},fS=e._ResizeNearestNeighborGrad=function(){return(fS=e._ResizeNearestNeighborGrad=e.asm.ResizeNearestNeighborGrad).apply(null,arguments)},dS=e._Reverse=function(){return(dS=e._Reverse=e.asm.Reverse).apply(null,arguments)},hS=e._RotateWithOffset=function(){return(hS=e._RotateWithOffset=e.asm.RotateWithOffset).apply(null,arguments)},gS=e._Round=function(){return(gS=e._Round=e.asm.Round).apply(null,arguments)},xS=e._Rsqrt=function(){return(xS=e._Rsqrt=e.asm.Rsqrt).apply(null,arguments)},yS=e._ScatterNd=function(){return(yS=e._ScatterNd=e.asm.ScatterNd).apply(null,arguments)},bS=e._SearchSorted=function(){return(bS=e._SearchSorted=e.asm.SearchSorted).apply(null,arguments)},wS=e._SelectV2=function(){return(wS=e._SelectV2=e.asm.SelectV2).apply(null,arguments)},IS=e._Selu=function(){return(IS=e._Selu=e.asm.Selu).apply(null,arguments)},CS=e._Sigmoid=function(){return(CS=e._Sigmoid=e.asm.Sigmoid).apply(null,arguments)},vS=e._Sign=function(){return(vS=e._Sign=e.asm.Sign).apply(null,arguments)},SS=e._Sin=function(){return(SS=e._Sin=e.asm.Sin).apply(null,arguments)},NS=e._Softmax=function(){return(NS=e._Softmax=e.asm.Softmax).apply(null,arguments)},kS=e._Softplus=function(){return(kS=e._Softplus=e.asm.Softplus).apply(null,arguments)},TS=e._SparseFillEmptyRows=function(){return(TS=e._SparseFillEmptyRows=e.asm.SparseFillEmptyRows).apply(null,arguments)},_S=e._SparseReshape=function(){return(_S=e._SparseReshape=e.asm.SparseReshape).apply(null,arguments)},ES=e._SparseSegmentReduction=function(){return(ES=e._SparseSegmentReduction=e.asm.SparseSegmentReduction).apply(null,arguments)},AS=e._SparseToDense=function(){return(AS=e._SparseToDense=e.asm.SparseToDense).apply(null,arguments)},DS=e._Sqrt=function(){return(DS=e._Sqrt=e.asm.Sqrt).apply(null,arguments)},$S=e._Square=function(){return($S=e._Square=e.asm.Square).apply(null,arguments)},RS=e._SquaredDifference=function(){return(RS=e._SquaredDifference=e.asm.SquaredDifference).apply(null,arguments)},FS=e._Step=function(){return(FS=e._Step=e.asm.Step).apply(null,arguments)},OS=e._StridedSlice=function(){return(OS=e._StridedSlice=e.asm.StridedSlice).apply(null,arguments)},PS=e._Sub=function(){return(PS=e._Sub=e.asm.Sub).apply(null,arguments)},MS=e._Sum=function(){return(MS=e._Sum=e.asm.Sum).apply(null,arguments)},LS=e._Tan=function(){return(LS=e._Tan=e.asm.Tan).apply(null,arguments)},zS=e._Tanh=function(){return(zS=e._Tanh=e.asm.Tanh).apply(null,arguments)},BS=e._TensorScatterUpdate=function(){return(BS=e._TensorScatterUpdate=e.asm.TensorScatterUpdate).apply(null,arguments)},VS=e._Tile=function(){return(VS=e._Tile=e.asm.Tile).apply(null,arguments)},GS=e._TopK=function(){return(GS=e._TopK=e.asm.TopK).apply(null,arguments)},WS=e._Transform=function(){return(WS=e._Transform=e.asm.Transform).apply(null,arguments)},US=e._Transpose=function(){return(US=e._Transpose=e.asm.Transpose).apply(null,arguments)},HS=e.__FusedMatMul=function(){return(HS=e.__FusedMatMul=e.asm._FusedMatMul).apply(null,arguments)},qS=e._malloc=function(){return(qS=e._malloc=e.asm.malloc).apply(null,arguments)},KS=e._free=function(){return(KS=e._free=e.asm.free).apply(null,arguments)},jS=e.___errno_location=function(){return(jS=e.___errno_location=e.asm.__errno_location).apply(null,arguments)},Lg=e.stackSave=function(){return(Lg=e.stackSave=e.asm.stackSave).apply(null,arguments)},zg=e.stackRestore=function(){return(zg=e.stackRestore=e.asm.stackRestore).apply(null,arguments)},Jd=e.stackAlloc=function(){return(Jd=e.stackAlloc=e.asm.stackAlloc).apply(null,arguments)},XS=e.dynCall_iijjiiii=function(){return(XS=e.dynCall_iijjiiii=e.asm.dynCall_iijjiiii).apply(null,arguments)},YS=e.dynCall_jiji=function(){return(YS=e.dynCall_jiji=e.asm.dynCall_jiji).apply(null,arguments)};e.cwrap=MC;var kp;Gr=function j(){kp||Bg(),kp||(Gr=j)};function Bg(j){if(j=j||a,je>0||(Ae(),je>0))return;function ut(){kp||(kp=!0,e.calledRun=!0,!G&&(De(),n(e),e.onRuntimeInitialized&&e.onRuntimeInitialized(),Pn()))}e.setStatus?(e.setStatus(\"Running...\"),setTimeout(function(){setTimeout(function(){e.setStatus(\"\")},1),ut()},1)):ut()}if(e.preInit)for(typeof e.preInit==\"function\"&&(e.preInit=[e.preInit]);e.preInit.length>0;)e.preInit.pop()();Bg();var Tp;s&&(Tp={uncaughtException:process.listeners(\"uncaughtException\").filter(function(j){return!s.uncaughtException.indexOf(j)>-1}),unhandledRejection:process.listeners(\"unhandledRejection\").filter(function(j){return!s.unhandledRejection.indexOf(j)>-1})});var _p;if(typeof t!=\"undefined\")_p=t;else if(typeof WasmBackendModuleThreadedSimd!=\"undefined\")_p=WasmBackendModuleThreadedSimd;else throw new Error(\"Could not find wasm module in post.js\");if(Tp){var ZS=_p._dispose;_p._dispose=function(){ZS(),Tp.uncaughtException.forEach(function(j){process.removeListener(\"uncaughtException\",j)}),Tp.unhandledRejection.forEach(function(j){process.removeListener(\"unhandledRejection\",j)})}}return t.ready}})();typeof AC==\"object\"&&typeof q1==\"object\"?q1.exports=H1:typeof define==\"function\"&&define.amd?define([],function(){return H1}):typeof AC==\"object\"&&(AC.WasmBackendModule=H1)});var Ta=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}},Wo=class{refCount(t){return Ln(\"refCount\")}incRef(t){return Ln(\"incRef\")}timerAvailable(){return!0}time(t){return Ln(\"time\")}read(t){return Ln(\"read\")}readSync(t){return Ln(\"readSync\")}readToGPU(t,e){return Ln(\"readToGPU\")}numDataIds(){return Ln(\"numDataIds\")}disposeData(t,e){return Ln(\"disposeData\")}write(t,e,n){return Ln(\"write\")}move(t,e,n,o,s){return Ln(\"move\")}createTensorFromGPUData(t,e,n){return Ln(\"createTensorFromGPUData\")}memory(){return Ln(\"memory\")}floatPrecision(){return Ln(\"floatPrecision\")}epsilon(){return this.floatPrecision()===32?1e-7:1e-4}dispose(){return Ln(\"dispose\")}};function Ln(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 u_(r){let t=r.length,e=0;for(;t>0;)e=Math.random()*t|0,t--,Xg(r,t,e)}function mq(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--,Xg(r,e,n),Xg(t,e,n)}function Ap(r,t,e){return Math.max(r,Math.min(t,e))}function fq(r){return r%2===0?r:r+1}function Xg(r,t,e){let n=r[t];r[t]=r[e],r[e]=n}function dq(r){let t=0;for(let e=0;ee+` Shapes ${r} and ${t} must match`)}function no(r){_(r!=null,()=>\"The input to the tensor constructor must be a non-null value.\")}function te(r){if(r.length===0)return 1;let t=r[0];for(let e=1;e0,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 Cq(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 fr(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=>_a(n)),()=>`All values in axis param must be integers but got axis ${r}`),r.map(n=>n<0?e+n:n)}function o0(r,t){let e=[],n=[],o=t!=null&&Array.isArray(t)&&t.length===0,s=t==null||o?null:fr(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 s0(r,t){return Yg(r,t)}function Yg(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 i0(r,t){for(let e=0;et+=e.length),t}function Uo(r){return typeof r==\"string\"||r instanceof String}function c_(r){return typeof r==\"boolean\"}function p_(r){return typeof r==\"number\"}function jl(r){return Array.isArray(r)?jl(r[0]):r instanceof Float32Array?\"float32\":r instanceof Int32Array||r instanceof Uint8Array||r instanceof Uint8ClampedArray?\"int32\":p_(r)?\"float32\":Uo(r)?\"string\":c_(r)?\"bool\":\"float32\"}function ki(r){return!!(r&&r.constructor&&r.call&&r.apply)}function $p(r,t){for(let e=t;e=0;--n)e[n]=e[n+1]*r[n+1];return e}function m_(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 m_(0,r,t,e)}function Sq(r,t){if(Array.isArray(r))return r;if(t===\"float32\")return r instanceof Float32Array?r:new Float32Array(r);if(t===\"int32\")return r instanceof Int32Array?r:new Int32Array(r);if(t===\"bool\"||t===\"string\")return Uint8Array.from(new Int32Array(r));throw new Error(`Unknown dtype ${t}`)}function th(r,t){let e=Rp(r,t);for(let n=0;nn*o,1);if(t==null||t===\"float32\")return rc(r,new Float32Array(e));if(t===\"int32\")return rc(r,new Int32Array(e));if(t===\"bool\")return rc(r,new Uint8Array(e));throw new Error(`Unknown data type ${t}`)}function Me(r){r.forEach(t=>{_(Number.isInteger(t)&&t>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${r}].`)})}function kq(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]=Dq(o,s)})}};function Eq(r){let t={};return r.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(e,...n)=>(Aq(t,n[0],n[1]),n.join(\"=\"))),t}function Aq(r,t,e){r[decodeURIComponent(t)]=decodeURIComponent(e||\"\")}function Dq(r,t){let e=t.toLowerCase();return e===\"true\"||e===\"false\"?e===\"true\":`${+e}`===e?+e:t}function L(){return u0}var u0=null;function d_(r){u0=r}var c0;function p0(){if(c0==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\");c0=r}return c0}function $q(){let r=p0();return r._tfGlobals==null&&(r._tfGlobals=new Map),r._tfGlobals}function rh(r,t){let e=$q();if(e.has(r))return e.get(r);{let n=t();return e.set(r,n),e.get(r)}}var _i=\"Abs\",Ho=\"Acos\",qo=\"Acosh\",oo=\"Add\",Ko=\"AddN\",Ea=\"All\",Aa=\"Any\",Ei=\"ArgMax\",Ai=\"ArgMin\",jo=\"Asin\",Xo=\"Asinh\",Yo=\"Atan\",Zo=\"Atanh\",Jo=\"Atan2\",Qo=\"AvgPool\",Fp=\"AvgPoolGrad\",Di=\"AvgPool3D\",Xl=\"AvgPool3DGrad\",ts=\"BatchMatMul\",$i=\"BatchToSpaceND\",Da=\"Bincount\",nh=\"BitwiseAnd\",h_=\"BroadcastTo\",Yl=\"BroadcastArgs\",ho=\"Cast\",es=\"Ceil\",go=\"ClipByValue\",Op=\"Complex\",Zl=\"ComplexAbs\",Ri=\"Concat\",rs=\"Conv2D\",Pp=\"Conv2DBackpropFilter\",ns=\"Conv2DBackpropInput\",os=\"Conv3D\",$a=\"Conv3DBackpropFilterV2\",Ra=\"Conv3DBackpropInputV2\",ss=\"Cos\",is=\"Cosh\",Fa=\"Cumprod\",as=\"Cumsum\",Oa=\"CropAndResize\",Jl=\"DenseBincount\",Pa=\"DepthToSpace\",ls=\"DepthwiseConv2dNative\",Mp=\"DepthwiseConv2dNativeBackpropFilter\",Lp=\"DepthwiseConv2dNativeBackpropInput\",Ql=\"Diag\",us=\"Dilation2D\",tu=\"Dilation2DBackpropInput\",eu=\"Dilation2DBackpropFilter\",cs=\"RealDiv\",zp=\"Einsum\",ps=\"Elu\",Ma=\"EluGrad\",La=\"Erf\",za=\"Equal\",ms=\"Exp\",Fi=\"ExpandDims\",fs=\"Expm1\",Bp=\"FFT\",ru=\"Fill\",Ba=\"FlipLeftRight\",ds=\"Floor\",hs=\"FloorDiv\",gs=\"FusedBatchNorm\",Oi=\"GatherV2\",Va=\"GatherNd\",Ga=\"Greater\",xs=\"GreaterEqual\",xo=\"Identity\",Vp=\"IFFT\",Gp=\"Imag\",ys=\"IsFinite\",bs=\"IsInf\",ws=\"IsNan\",Is=\"LeakyRelu\",Wa=\"Less\",Ua=\"LessEqual\",Ha=\"LinSpace\",Cs=\"Log\",vs=\"Log1p\",qa=\"LogicalAnd\",Ka=\"LogicalNot\",ja=\"LogicalOr\",g_=\"LogicalXor\",x_=\"LogSoftmax\",rmt=\"LowerBound\",Ss=\"LRN\",Xa=\"LRNGrad\",nmt=\"MatrixBandPart\",Ns=\"Max\",ks=\"Maximum\",Ts=\"MaxPool\",Wp=\"MaxPoolGrad\",Pi=\"MaxPool3D\",nu=\"MaxPool3DGrad\",Up=\"MaxPoolWithArgmax\",_s=\"Mean\",Es=\"Min\",As=\"Minimum\",Ds=\"MirrorPad\",Ya=\"Mod\",Za=\"Multinomial\",$s=\"Multiply\",Mi=\"Neg\",Ja=\"NotEqual\",Qa=\"NonMaxSuppressionV3\",tl=\"NonMaxSuppressionV4\",el=\"NonMaxSuppressionV5\",Li=\"OnesLike\",Rs=\"OneHot\",zi=\"Pack\",Fs=\"PadV2\",omt=\"Pool\",Os=\"Pow\",Ps=\"Prelu\",Ms=\"Prod\",Hp=\"RaggedGather\",qp=\"RaggedRange\",Kp=\"RaggedTensorToTensor\",ou=\"Range\",jp=\"Real\",Ls=\"Reciprocal\",zs=\"Relu\",Bi=\"Reshape\",Bs=\"ResizeNearestNeighbor\",rl=\"ResizeNearestNeighborGrad\",Vs=\"ResizeBilinear\",nl=\"ResizeBilinearGrad\",Gs=\"Relu6\",Ws=\"Reverse\",Us=\"Round\",Hs=\"Rsqrt\",ol=\"ScatterNd\",sl=\"TensorScatterUpdate\",il=\"SearchSorted\",Vi=\"Select\",qs=\"Selu\",Gi=\"Slice\",Ks=\"Sin\",al=\"Sinh\",js=\"Sign\",Xs=\"Sigmoid\",Ys=\"Softplus\",Zs=\"Sqrt\",Js=\"Sum\",Wi=\"SpaceToBatchND\",Ui=\"SplitV\",Qs=\"Softmax\",su=\"SparseFillEmptyRows\",ll=\"SparseReshape\",iu=\"SparseSegmentMean\",au=\"SparseSegmentSum\",ul=\"SparseToDense\",ti=\"SquaredDifference\",lu=\"Square\",sc=\"StaticRegexReplace\",cl=\"StridedSlice\",uu=\"StringNGrams\",cu=\"StringSplit\",pu=\"StringToHashBucketFast\",ei=\"Sub\",ri=\"Tan\",ni=\"Tanh\",so=\"Tile\",pl=\"TopK\",ml=\"Transform\",io=\"Transpose\",mu=\"Unique\",Hi=\"Unpack\",fu=\"UnsortedSegmentSum\",smt=\"UpperBound\",qi=\"ZerosLike\",yo=\"Step\",oh=\"FromPixels\",fl=\"RotateWithOffset\",Ki=\"_FusedMatMul\",ji=\"FusedConv2D\",Xi=\"FusedDepthwiseConv2D\";function Yi(...r){L().getBool(\"IS_TEST\")||L().getBool(\"PROD\")||console.warn(...r)}function Rq(...r){L().getBool(\"IS_TEST\")||L().getBool(\"PROD\")||console.log(...r)}var Xp=rh(\"kernelRegistry\",()=>new Map),sh=rh(\"gradRegistry\",()=>new Map);function ih(r,t){let e=f0(r,t);return Xp.get(e)}function m0(r){return sh.get(r)}function Zg(r){let t=Xp.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 ic(r){let{kernelName:t,backendName:e}=r,n=f0(t,e);Xp.has(n)&&Yi(`The kernel '${t}' for backend '${e}' is already registered`),Xp.set(n,r)}function b_(r){let{kernelName:t}=r;sh.has(t)&&L().getBool(\"DEBUG\")&&Yi(`Overriding the gradient for '${t}'`),sh.set(t,r)}function cmt(r,t){let e=f0(r,t);if(!Xp.has(e))throw new Error(`The kernel '${r}' for backend '${t}' is not registered`);Xp.delete(e)}function pmt(r){if(!sh.has(r))throw new Error(`The gradient '${r}' for backend is not registered`);sh.delete(r)}function mmt(r,t){Zg(r).forEach(n=>{let o=Object.assign({},n,{backendName:t});ic(o)})}function f0(r,t){return`${t}_${r}`}var y={};Kt(y,{arraysEqual:()=>sn,arraysEqualWithNull:()=>n0,assert:()=>_,assertNonNegativeIntegerDimensions:()=>Me,assertNonNull:()=>no,assertShapesMatch:()=>Re,bytesFromStringArray:()=>l0,bytesPerElement:()=>Dp,checkConversionForErrors:()=>i0,clamp:()=>Ap,computeStrides:()=>Ti,convertBackendValuesAndArrayBuffer:()=>Sq,createScalarValue:()=>Bq,createShuffledIndices:()=>wq,decodeString:()=>Qp,distSquared:()=>gq,encodeString:()=>hu,fetch:()=>Gq,fingerPrint64:()=>zq,flatten:()=>si,getArrayFromDType:()=>Yg,getTypedArrayFromDType:()=>s0,hasEncodingLoss:()=>vq,hexToLong:()=>ah,indexToLoc:()=>Tq,inferDtype:()=>jl,inferFromImplicitShape:()=>Cq,isBoolean:()=>c_,isFunction:()=>ki,isInt:()=>_a,isNumber:()=>p_,isPromise:()=>oc,isScalarShape:()=>xq,isString:()=>Uo,isTypedArray:()=>or,isValidDtype:()=>a0,locToIndex:()=>kq,makeOnesTypedArray:()=>th,makeZerosNestedTypedArray:()=>Nq,makeZerosTypedArray:()=>Rp,nearestDivisor:()=>$p,nearestLargerEven:()=>fq,now:()=>pc,parseAxisParam:()=>fr,randUniform:()=>hq,repeatedTry:()=>Iq,rightPad:()=>nc,shuffle:()=>u_,shuffleCombo:()=>mq,sizeFromShape:()=>te,sizeToSquarishShape:()=>bq,squeezeShape:()=>o0,sum:()=>dq,swap:()=>Xg,tanh:()=>yq,toNestedArray:()=>rc,toTypedArray:()=>Jp});function Jg(r){return r instanceof Float32Array||r instanceof Int32Array||r instanceof Uint8Array||r instanceof Uint8ClampedArray}var x0=Kl(A_());var cc=x0.default||x0;function ah(r){return cc.fromString(r,!0,16)}var $_=ah(\"c3a5c85c97cb3127\"),uc=ah(\"b492b66fbe98f273\"),an=ah(\"9ae16a3b2f90404f\");function g0(r){return r.xor(r.shru(47))}function R_(r,t,e){let n=r.slice(t,t+e);return cc.fromBytes(Array.from(n),!0,!0)}function Le(r,t){return R_(r,t,8)}function D_(r,t){return R_(r,t,4)}function Ar(r,t){return t===0?r:r.shru(t).or(r.shl(64-t))}function du(r,t,e=ah(\"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 Oq(r,t,e,n,o,s){o=o.add(r),s=Ar(s.add(o).add(n),21);let i=o;return o=o.add(t),o=o.add(e),s=s.add(Ar(o,44)),[o.add(n),s.add(i)]}function tx(r,t,e,n){return Oq(Le(r,t),Le(r,t+8),Le(r,t+16),Le(r,t+24),e,n)}function Pq(r,t=r.length){if(t>=8){let e=an.add(t*2),n=Le(r,0).add(an),o=Le(r,t-8),s=Ar(o,37).mul(e).add(n),i=Ar(n,25).add(o).mul(e);return du(s,i,e)}if(t>=4){let e=an.add(t*2),n=D_(r,0);return du(n.shl(3).add(t),D_(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 g0(an.mul(s).xor($_.mul(i))).mul(an)}return an}function Mq(r,t=r.length){let e=an.add(t*2),n=Le(r,0).mul(uc),o=Le(r,8),s=Le(r,t-8).mul(e),i=Le(r,t-16).mul(an);return du(Ar(n.add(o),43).add(Ar(s,30)).add(i),n.add(Ar(o.add(an),18)).add(s),e)}function Lq(r,t=r.length){let e=an.add(t*2),n=Le(r,0).mul(an),o=Le(r,8),s=Le(r,t-8).mul(e),i=Le(r,t-16).mul(an),a=Ar(n.add(o),43).add(Ar(s,30)).add(i),u=du(a,n.add(Ar(o.add(an),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 du(Ar(l.add(c),43).add(Ar(p,30)).add(m),l.add(Ar(c.add(n),18)).add(p),e)}function zq(r,t=r.length){let e=cc.fromNumber(81,!0);if(t<=32)return t<=16?Pq(r,t):Mq(r,t);if(t<=64)return Lq(r,t);let n=e,o=e.mul(uc).add(113),s=g0(o.mul(an).add(113)).mul(an),i=[cc.UZERO,cc.UZERO],a=[cc.UZERO,cc.UZERO];n=n.mul(an).add(Le(r,0));let u=0,l=(t-1>>6)*64,c=l+(t-1&63)-63;do n=Ar(n.add(o).add(i[0]).add(Le(r,u+8)),37).mul(uc),o=Ar(o.add(i[1]).add(Le(r,u+48)),42).mul(uc),n=n.xor(a[1]),o=o.add(i[0]).add(Le(r,u+40)),s=Ar(s.add(a[0]),33).mul(uc),i=tx(r,u,i[1].mul(uc),n.add(a[0])),a=tx(r,u+32,s.add(a[1]),o.add(Le(r,u+16))),[s,n]=[n,s],u+=64;while(u!==l);let p=uc.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=Ar(n.add(o).add(i[0]).add(Le(r,u+8)),37).mul(p),o=Ar(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=Ar(s.add(a[0]),33).mul(p),i=tx(r,u,i[1].mul(p),n.add(a[0])),a=tx(r,u+32,s.add(a[1]),o.add(Le(r,u+16))),[s,n]=[n,s],du(du(i[0],a[0],p).add(g0(o).mul($_)).add(s),du(i[1],a[1],p).add(n),p)}function Bq(r,t){return t===\"string\"?hu(r):Jp([r],t)}function Vq(r,t){return r instanceof Float32Array&&t===\"float32\"||r instanceof Int32Array&&t===\"int32\"||r instanceof Uint8Array&&t===\"bool\"}function Jp(r,t){if(t===\"string\")throw new Error(\"Cannot convert a string[] to a TypedArray\");if(Array.isArray(r)&&(r=si(r)),L().getBool(\"DEBUG\")&&i0(r,t),Vq(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=pc();if(this.backendTimer.timerAvailable())i=this.backendTimer.time(s);else{s();for(let l of o)l.dataSync();i=Promise.resolve({kernelMs:pc()-a})}if(L().getBool(\"CHECK_COMPUTATION_FOR_ERRORS\"))for(let l=0;l{Wq(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 Wq(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 F_(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(!sn(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 P_=20,lh=3,b0=7;function M_(r,t,e,n){let o=Ti(t),s=Uq(r,t,e,o),i=t.length,a=rx(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 Uq(r,t,e,n){let o=te(t),s=n[n.length-1],i=new Array(s).fill(0),a=t.length,u=e===\"complex64\"?ch(r):r;if(a>1)for(let l=0;lP_){let g=lh*i,x=Array.from(r.slice(0,g)),b=Array.from(r.slice((a-lh)*i,a*i));return e===\"complex64\"&&(x=ch(x),b=ch(b)),[\"[\"+x.map((w,I)=>uh(w,o[I],e)).join(\", \")+\", ..., \"+b.map((w,I)=>uh(w,o[a-lh+I],e)).join(\", \")+\"]\"]}return[\"[\"+(e===\"complex64\"?ch(r):Array.from(r)).map((g,x)=>uh(g,o[x],e)).join(\", \")+\"]\"]}let l=t.slice(1),c=n.slice(1),p=n[0]*i,m=[];if(a>P_){for(let h=0;h0?m[0]+f:\"\");for(let h=1;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||Yg(e,this.size),this.strides=Ti(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;oQp(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(),ii().readToGPU(this.dataId,t)}dataSync(){this.throwIfDisposed();let t=ii().readSync(this.dataId);if(this.dtype===\"string\")try{return t.map(e=>Qp(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 ii().read(this.dataId);return this.dtype===\"string\"?t:new Uint8Array(t.buffer)}dispose(){this.isDisposed||(ii().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error(\"Tensor is disposed.\")}print(t=!1){return tm.print(this,t)}clone(){return this.throwIfDisposed(),tm.clone(this)}toString(t=!1){let e=this.dataSync();return M_(e,this.shape,this.dtype,t)}cast(t){return this.throwIfDisposed(),tm.cast(this,t)}variable(t=!0,e,n){return this.throwIfDisposed(),ii().makeVariable(this,t,e,n)}};Object.defineProperty(Pt,Symbol.hasInstance,{value:r=>!!r&&r.data!=null&&r.dataSync!=null&&r.throwIfDisposed!=null});function O(){return rh(\"Tensor\",()=>Pt)}O();var dl=class extends Pt{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(!sn(t.shape,this.shape))throw new Error(`shape of the new value (${t.shape}) and previous value (${this.shape}) must match`);ii().disposeTensor(this),this.dataId=t.dataId,ii().incRef(this,null)}dispose(){ii().disposeVariable(this),this.isDisposedInternal=!0}};Object.defineProperty(dl,Symbol.hasInstance,{value:r=>r instanceof Pt&&r.assign!=null&&r.assign instanceof Function});var Co={};Kt(Co,{assertTypesMatch:()=>N0,getTensorsInContainer:()=>ph,isTensorInList:()=>Kq,makeTypesMatch:()=>jt});var w0;(function(r){r.R0=\"R0\",r.R1=\"R1\",r.R2=\"R2\",r.R3=\"R3\",r.R4=\"R4\",r.R5=\"R5\",r.R6=\"R6\"})(w0||(w0={}));var I0;(function(r){r.float32=\"float32\",r.int32=\"int32\",r.bool=\"int32\",r.complex64=\"complex64\"})(I0||(I0={}));var C0;(function(r){r.float32=\"float32\",r.int32=\"int32\",r.bool=\"bool\",r.complex64=\"complex64\"})(C0||(C0={}));var v0;(function(r){r.float32=\"float32\",r.int32=\"float32\",r.bool=\"float32\",r.complex64=\"complex64\"})(v0||(v0={}));var S0;(function(r){r.float32=\"complex64\",r.int32=\"complex64\",r.bool=\"complex64\",r.complex64=\"complex64\"})(S0||(S0={}));var qq={float32:v0,int32:I0,bool:C0,complex64:S0};function ur(r,t){if(r===\"string\"||t===\"string\"){if(r===\"string\"&&t===\"string\")return\"string\";throw new Error(`Can not upcast ${r} with ${t}`)}return qq[r][t]}function mc(r){return ur(r,\"int32\")}function nx(r){return r!=null&&typeof r==\"object\"&&\"texture\"in r&&r.texture instanceof WebGLTexture}function ox(r){return typeof GPUBuffer!=\"undefined\"&&r!=null&&typeof r==\"object\"&&\"buffer\"in r&&r.buffer instanceof GPUBuffer}function jt(r,t){if(r.dtype===t.dtype)return[r,t];let e=ur(r.dtype,t.dtype);return[r.cast(e),t.cast(e)]}function N0(r,t){_(r.dtype===t.dtype,()=>`The dtypes of the first(${r.dtype}) and second(${t.dtype}) input must match`)}function Kq(r,t){return t.some(e=>e.id===r.id)}function ph(r){let t=[];return G_(r,t,new Set),t}function G_(r,t,e){if(r==null)return;if(r instanceof Pt){t.push(r);return}if(!jq(r))return;let n=r;for(let o in n){let s=n[o];e.has(s)||(e.add(s),G_(s,t,e))}}function jq(r){return Array.isArray(r)||typeof r==\"object\"}function k0(r){return r.kernelName!=null}var sx=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()}},gu=class{constructor(t){this.ENV=t,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new sx}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 Wo)&&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 gu.nextTensorId++}nextVariableId(){return gu.nextVariableId++}clone(t){let e=T.runKernel(xo,{x:t}),n={x:t},o=i=>({x:()=>{let a=\"float32\",u={x:i},l={dtype:a};return T.runKernel(ho,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,!(ih(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=k0(t)?t.kernelName:this.state.activeScope!=null?this.state.activeScope.name:\"\";if(k0(t)){let{kernelName:d,inputs:h,attrs:g}=t;this.backendName==null&&this.backend;let x=ih(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 I=w.map(N=>N.rank!=null?N:this.makeTensorFromTensorInfo(N));if(o){let N=this.getTensorsForGradient(d,h,I);n=this.saveTensorsForBackwardMode(N)}return I}}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=k0(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=m0(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\"&&Uo(t[0])&&(s=t.map(u=>hu(u)));let i=o.write(s,e,n),a=new Pt(e,n,i,this.nextTensorId());if(this.trackTensor(a,o),n===\"string\"){let u=this.state.tensorInfo.get(i),l=l0(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 Pt(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 dl(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*Dp(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 dl||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*Dp(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=m0(t);u!=null&&(o=u.gradFunc),o!=null&&(a.gradient=l=>(l=l.map((c,p)=>{if(c==null){let m=n[p],f=Rp(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=ph(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 Pt,()=>\"The result y returned by f() must be a tensor.\");let i=F_(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?Xq(s.shape):n,O_(a,i,l=>this.tidy(l),Yq);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 _(ki(t),()=>\"The f passed in customGrad(f) must be a function.\"),(...e)=>{_(e.every(a=>a instanceof Pt),()=>\"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 Pt,()=>\"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor\"),_(ki(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 Pt),()=>\"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=pc(),n=await this.backend.time(t);return n.wallMs=pc()-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 sx;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}};gu.nextTensorId=0;gu.nextVariableId=0;function Xq(r){let t=th(te(r),\"float32\");return T.makeTensor(t,r,\"float32\")}function T0(){let r=p0();if(r._tfengine==null){let t=new eh(r);r._tfengine=new gu(t)}return d_(r._tfengine.ENV),z_(()=>r._tfengine),r._tfengine}var T=T0();function Yq(r,t){let e={a:r,b:t};return T.runKernel(oo,e)}var xu={};Kt(xu,{isBrowser:()=>E0,isMobile:()=>Qq,mockIsMobile:()=>Jq});function Zq(){return typeof navigator!=\"undefined\"&&navigator!=null}var _0;function Jq(r){_0=r}function Qq(r){if(_0!==void 0)return _0;if(r||Zq()){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 E0(){return typeof window!=\"undefined\"&&window.document!=null||typeof WorkerGlobalScope!=\"undefined\"}var Sn=L();Sn.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.\")});Sn.registerFlag(\"IS_BROWSER\",()=>E0());Sn.registerFlag(\"IS_NODE\",()=>typeof process!=\"undefined\"&&typeof process.versions!=\"undefined\"&&typeof process.versions.node!=\"undefined\");Sn.registerFlag(\"IS_CHROME\",()=>typeof navigator!=\"undefined\"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));Sn.registerFlag(\"IS_SAFARI\",()=>typeof navigator!=\"undefined\"&&navigator!=null&&navigator.userAgent!=null&&/Safari/.test(navigator.userAgent)&&/Apple/.test(navigator.vendor));Sn.registerFlag(\"PROD\",()=>!1);Sn.registerFlag(\"TENSORLIKE_CHECK_SHAPE_CONSISTENCY\",()=>Sn.getBool(\"DEBUG\"));Sn.registerFlag(\"DEPRECATION_WARNINGS_ENABLED\",()=>!0);Sn.registerFlag(\"IS_TEST\",()=>!1);Sn.registerFlag(\"CHECK_COMPUTATION_FOR_ERRORS\",()=>Sn.getBool(\"DEBUG\"));Sn.registerFlag(\"WRAP_TO_IMAGEBITMAP\",()=>!1);Sn.registerFlag(\"CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU\",()=>!1);Sn.registerFlag(\"USE_SETTIMEOUTCUSTOM\",()=>!1);function Wr(r,t){let e=r;if(or(r))return t===\"string\"?[]:[r.length];if(nx(r)){let o=r.channels||\"RGBA\";return[r.height,r.width*o.length]}else if(ox(r))return[r.buffer.size/(t==null?4:Dp(t))];if(!Array.isArray(r))return[];let n=[];for(;Array.isArray(e)||or(e)&&t!==\"string\";)n.push(e.length),e=e[0];return Array.isArray(r)&&L().getBool(\"TENSORLIKE_CHECK_SHAPE_CONSISTENCY\")&&U_(r,n,[]),n}function U_(r,t,e){if(e=e||[],!Array.isArray(r)&&!or(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),W_(n,o,t,e),r==null||!or(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=Wr(r,o);!or(r)&&!Array.isArray(r)&&(r=[r]);let a=o!==\"string\"?Jp(r,o):si(r,[],!0);return T.makeTensor(a,s,o)}function hl(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 A0=\"__op\";function k(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+A0;let o=(...s)=>{T.startScope(e);try{let i=n(...s);return oc(i)&&console.error(\"Cannot return a Promise inside of tidy.\"),T.endScope(i),i}catch(i){throw T.endScope(null),i}};return Object.defineProperty(o,\"name\",{value:e,configurable:!0}),o}function tK(r,t){let e=v(r,\"real\",\"complex\"),n=v(t,\"imag\",\"complex\");Re(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 T.runKernel(Op,o)}var Nn=k({complex_:tK});function ln(r,t,e,n){if(n==null)n=jl(r);else if(n===\"complex64\")throw new Error(\"Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).\");if(ox(r)||nx(r)){if(n!==\"float32\"&&n!==\"int32\")throw new Error(`Creating tensor from GPU data only supports 'float32'|'int32' dtype, while the dtype is ${n}.`);return T.backend.createTensorFromGPUData(r,t||e,n)}if(!or(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){Me(t);let o=te(t),s=te(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!or(r)&&!Array.isArray(r)&&(r=[r]),t=t||e,r=n!==\"string\"?Jp(r,n):si(r,[],!0),T.makeTensor(r,t,n)}function sr(r,t,e){let n=Wr(r,e);return ln(r,t,n,e)}var mh={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8};var ix=4;async function q_(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)+ix*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 D0=typeof Buffer!=\"undefined\"&&(typeof Blob==\"undefined\"||typeof atob==\"undefined\"||typeof btoa==\"undefined\");function H_(r){return D0?Buffer.byteLength(r):new Blob([r]).size}function K_(r){if(D0)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 $0(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 lx(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 R0(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 rm(r,t){let e,n;return r.weightsManifest!=null&&([e,n]=await t(r.weightsManifest)),R0(r,e,n)}function Zi(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:H_(JSON.stringify(r.modelTopology)),weightSpecsBytes:r.weightSpecs==null?0:H_(JSON.stringify(r.weightSpecs)),weightDataBytes:r.weightData==null?0:r.weightData.byteLength}}function ux(r){let t=[];for(let e of r)t.push(...e.weights);return t}function rK(){let r=e=>{let n=e<<13,o=0;for(;!(n&8388608);)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 nK(){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 oK(){let r=new Uint32Array(64);for(let t=0;t<64;t++)r[t]=1024;return r[0]=r[32]=0,r}function sK(){let r=rK(),t=nK(),e=oK();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 ve=class{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return ve.instance==null&&(ve.instance=new ve),ve.instance}static registerSaveRouter(t){ve.getInstance().saveRouters.push(t)}static registerLoadRouter(t){ve.getInstance().loadRouters.push(t)}static getSaveHandlers(t){return ve.getHandlers(t,\"save\")}static getLoadHandlers(t,e){return ve.getHandlers(t,\"load\",e)}static getHandlers(t,e,n){let o=[];return(e===\"load\"?ve.getInstance().loadRouters:ve.getInstance().saveRouters).forEach(i=>{let a=i(t,n);a!==null&&o.push(a)}),o}},X_=r=>ve.registerSaveRouter(r),Y_=r=>ve.registerLoadRouter(r),Z_=r=>ve.getSaveHandlers(r),J_=(r,t)=>ve.getLoadHandlers(r,t);var F0=\"tensorflowjs\",O0=1,fc=\"models_store\",yu=\"model_info_store\";function Q_(){if(!L().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 P0(r){let t=r.result;t.createObjectStore(fc,{keyPath:\"modelPath\"}),t.createObjectStore(yu,{keyPath:\"modelPath\"})}var Ji=class{constructor(t){if(this.indexedDB=Q_(),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(F0,O0);s.onupgradeneeded=()=>P0(s),s.onsuccess=()=>{let i=s.result;if(e==null){let a=i.transaction(fc,\"readonly\"),l=a.objectStore(fc).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=Zi(e),u=i.transaction(yu,\"readwrite\"),l=u.objectStore(yu),c;try{c=l.put({modelPath:this.modelPath,modelArtifactsInfo:a})}catch(m){return o(m)}let p;c.onsuccess=()=>{p=i.transaction(fc,\"readwrite\");let m=p.objectStore(fc),f;try{f=m.put({modelPath:this.modelPath,modelArtifacts:e,modelArtifactsInfo:a})}catch(d){return o(d)}f.onsuccess=()=>n({modelArtifactsInfo:a}),f.onerror=d=>{l=u.objectStore(yu);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)})}};Ji.URL_SCHEME=\"indexeddb://\";var tE=r=>L().getBool(\"IS_BROWSER\")&&!Array.isArray(r)&&r.startsWith(Ji.URL_SCHEME)?iK(r.slice(Ji.URL_SCHEME.length)):null;ve.registerSaveRouter(tE);ve.registerLoadRouter(tE);function iK(r){return new Ji(r)}function aK(r){return r.startsWith(Ji.URL_SCHEME)?r.slice(Ji.URL_SCHEME.length):r}var cx=class{constructor(){this.indexedDB=Q_()}async listModels(){return new Promise((t,e)=>{let n=this.indexedDB.open(F0,O0);n.onupgradeneeded=()=>P0(n),n.onsuccess=()=>{let o=n.result,s=o.transaction(yu,\"readonly\"),a=s.objectStore(yu).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=aK(t),new Promise((e,n)=>{let o=this.indexedDB.open(F0,O0);o.onupgradeneeded=()=>P0(o),o.onsuccess=()=>{let s=o.result,i=s.transaction(yu,\"readwrite\"),a=i.objectStore(yu),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(fc,\"readwrite\");let f=l.objectStore(fc).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 gl=\"/\",nm=\"tensorflowjs_models\",eE=\"info\",lK=\"model_topology\",uK=\"weight_specs\",cK=\"weight_data\",pK=\"model_metadata\";function rE(r){return{info:[nm,r,eE].join(gl),topology:[nm,r,lK].join(gl),weightSpecs:[nm,r,uK].join(gl),weightData:[nm,r,cK].join(gl),modelMetadata:[nm,r,pK].join(gl)}}function nE(r){for(let t of Object.values(r))window.localStorage.removeItem(t)}function mK(r){let t=r.split(gl);if(t.length<3)throw new Error(`Invalid key format: ${r}`);return t.slice(1,t.length-1).join(gl)}function fK(r){return r.startsWith(Qi.URL_SCHEME)?r.slice(Qi.URL_SCHEME.length):r}var Qi=class{constructor(t){if(!L().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=rE(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=Zi(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,K_(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 nE(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=j_(i),e}};Qi.URL_SCHEME=\"localstorage://\";var oE=r=>L().getBool(\"IS_BROWSER\")&&!Array.isArray(r)&&r.startsWith(Qi.URL_SCHEME)?dK(r.slice(Qi.URL_SCHEME.length)):null;ve.registerSaveRouter(oE);ve.registerLoadRouter(oE);function dK(r){return new Qi(r)}var px=class{constructor(){_(L().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=nm+gl,n=gl+eE;for(let o=0;o\"scheme must not be undefined or null.\"),t.endsWith(om)&&(t=t.slice(0,t.indexOf(om))),_(t.length>0,()=>\"scheme must not be an empty string.\");let n=Dr.getInstance();_(n.managers[t]==null,()=>`A model store manager is already registered for scheme '${t}'.`),n.managers[t]=e}static getManager(t){let e=Dr.getInstance().managers[t];if(e==null)throw new Error(`Cannot find model manager for scheme '${t}'`);return e}static getSchemes(){return Object.keys(Dr.getInstance().managers)}};function mx(r){if(r.indexOf(om)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${Dr.getSchemes().join(\",\")}`);return{scheme:r.split(om)[0],path:r.split(om)[1]}}async function sE(r,t,e=!1){_(r!==t,()=>`Old path and new path are the same: '${r}'`);let n=ve.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=ve.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=mx(r).scheme,u=mx(r).path,l=a===mx(r).scheme,c=await o.load();e&&l&&await Dr.getManager(a).removeModel(u);let p=await i.save(c);return e&&!l&&await Dr.getManager(a).removeModel(u),p.modelArtifactsInfo}async function iE(){let r=Dr.getSchemes(),t={};for(let e of r){let n=await Dr.getManager(e).listModels();for(let o in n){let s=e+om+o;t[s]=n[o]}}return t}async function aE(r){let t=mx(r);return Dr.getManager(t.scheme).removeModel(t.path)}async function lE(r,t){return sE(r,t,!1)}async function uE(r,t){return sE(r,t,!0)}var M0=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\"||!L().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))}isTypedArray(t){return Jg(t)}};if(L().get(\"IS_BROWSER\")){L().setPlatform(\"browser\",new M0);try{Dr.registerManager(Qi.URL_SCHEME,new px)}catch(r){}try{Dr.registerManager(Ji.URL_SCHEME,new cx)}catch(r){}}var hK={importFetch:()=>cE()},L0;var z0=class{constructor(){this.util=pE(),this.textEncoder=new this.util.TextEncoder}fetch(t,e){return L().global.fetch!=null?L().global.fetch(t,e):(L0==null&&(L0=hK.importFetch()),L0(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)}isTypedArray(t){return this.util.types.isFloat32Array(t)||this.util.types.isInt32Array(t)||this.util.types.isUint8Array(t)||this.util.types.isUint8ClampedArray(t)}};L().get(\"IS_NODE\")&&!L().get(\"IS_BROWSER\")&&L().setPlatform(\"node\",new z0);function bt(r,t=\"float32\",e){return t=t||\"float32\",Me(r),new le(r,t,e)}function gK(r,t){let e=v(r,\"x\",\"cast\");if(!a0(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 T.runKernel(ho,n,o)}var Q=k({cast_:gK});function xK(r){let e={x:v(r,\"x\",\"clone\",\"string_or_numeric\")};return T.runKernel(xo,e)}var un=k({clone_:xK});function fx(r,t=!1){console.log(r.toString(t))}T0();var yK={buffer:bt,cast:Q,clone:un,print:fx};B_(yK);function Idt(){L().set(\"PROD\",!0)}function Cdt(){L().set(\"DEBUG\",!0)}function vdt(){L().set(\"DEPRECATION_WARNINGS_ENABLED\",!1),console.warn(\"TensorFlow.js deprecation warnings have been disabled.\")}function B0(r){L().getBool(\"DEPRECATION_WARNINGS_ENABLED\")&&console.warn(r+\" You can disable deprecation warnings with tf.disableDeprecationWarnings().\")}V_(B0);function Sdt(){T.disposeVariables()}function Vn(){return T}function fh(){return T.memory()}function Ndt(r){return T.profile(r)}function B(r,t){return T.tidy(r,t)}function Tt(r){ph(r).forEach(e=>e.dispose())}function $e(r){return T.keep(r)}function kdt(r){return T.time(r)}function bK(r){return T.setBackend(r)}function Tdt(){return T.ready()}function _dt(){return T.backendName}function Edt(r){T.removeBackend(r)}function Adt(r){return T.findBackend(r)}function Ddt(r){return T.findBackendFactory(r)}function sm(r,t,e=1){return T.registerBackend(r,t,e)}function mE(){return T.backend}function $dt(r,t){L().setPlatform(r,t)}function wK(r,t){let e=v(r,\"a\",\"add\"),n=v(t,\"b\",\"add\");[e,n]=jt(e,n);let o={a:e,b:n};return T.runKernel(oo,o)}var Y=k({add_:wK});function IK(r,t){let e=v(r,\"a\",\"floorDiv\"),n=v(t,\"b\",\"floorDiv\");[e,n]=jt(e,n);let o={a:e,b:n};return T.runKernel(hs,o)}var im=k({floorDiv_:IK});function CK(r,t){let e=v(r,\"a\",\"div\"),n=v(t,\"b\",\"div\");if([e,n]=jt(e,n),e.dtype===\"int32\"&&n.dtype===\"int32\")return im(e,n);let o={a:e,b:n},s={};return T.runKernel(cs,o,s)}var ct=k({div_:CK});function vK(r,t){let e=v(r,\"a\",\"mul\"),n=v(t,\"b\",\"mul\");[e,n]=jt(e,n);let o={a:e,b:n};return T.runKernel($s,o)}var $=k({mul_:vK});function SK(r){let t=v(r,\"x\",\"abs\");if(t.dtype===\"complex64\"){let e={x:t};return T.runKernel(Zl,e)}else{let e={x:t};return T.runKernel(_i,e)}}var Ee=k({abs_:SK});function NK(r){let e={x:v(r,\"x\",\"acos\")};return T.runKernel(Ho,e)}var dx=k({acos_:NK});function kK(r){let e={x:v(r,\"x\",\"acosh\")};return T.runKernel(qo,e)}var hx=k({acosh_:kK});function TK(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(!sn(o.shape,e.shape))throw new Error(\"All tensors passed to tf.addN() must have the same shape\")});let n=t;return T.runKernel(Ko,n)}var fE=k({addN_:TK});function _K(r,t=null,e=!1){let o={x:v(r,\"x\",\"all\",\"bool\")},s={axis:t,keepDims:e};return T.runKernel(Ea,o,s)}var am=k({all_:_K});function EK(r,t=null,e=!1){let o={x:v(r,\"x\",\"any\",\"bool\")},s={axis:t,keepDims:e};return T.runKernel(Aa,o,s)}var dc=k({any_:EK});function AK(r,t=0){let n={x:v(r,\"x\",\"argMax\")},o={axis:t};return T.runKernel(Ei,n,o)}var ta=k({argMax_:AK});function DK(r,t=0){let n={x:v(r,\"x\",\"argMin\")},o={axis:t};return T.runKernel(Ai,n,o)}var gx=k({argMin_:DK});function $K(r){let e={x:v(r,\"x\",\"asin\")};return T.runKernel(jo,e)}var xx=k({asin_:$K});function RK(r){let e={x:v(r,\"x\",\"asinh\")};return T.runKernel(Xo,e)}var yx=k({asinh_:RK});function FK(r){let e={x:v(r,\"x\",\"atan\")};return T.runKernel(Yo,e)}var bx=k({atan_:FK});function OK(r,t){let e=v(r,\"a\",\"atan2\"),n=v(t,\"b\",\"atan2\");[e,n]=jt(e,n);let o={a:e,b:n};return T.runKernel(Jo,o)}var wx=k({atan2_:OK});function PK(r){let e={x:v(r,\"x\",\"atanh\")};return T.runKernel(Zo,e)}var Ix=k({atanh_:PK});function MK(r,t,e,n,o=\"NHWC\",s){let i=r[3],a=[...t,i],u=hE(o);return hc(r,a,e,s,n,null,null,u)}function G0(r,t,e,n,o,s,i=\"channelsLast\"){let[a,u]=dh(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 hc(r,l,e,n,o,s,!1,i)}function LK(r,t,e,n,o,s,i=\"NDHWC\"){let[a,u,l]=V0(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 dE(r,c,e,n,o,!1,p,s)}function hc(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]=dh(e),[x,b]=dh(n),w=lm(m,x),I=lm(f,b),{padInfo:N,outHeight:E,outWidth:A}=VK(o,l,c,h,g,w,I,s,a),D=i?d*p:d,F;return a===\"channelsFirst\"?F=[u,D,E,A]:a===\"channelsLast\"&&(F=[u,E,A,D]),{batchSize:u,dataFormat:a,inHeight:l,inWidth:c,inChannels:p,outHeight:E,outWidth:A,outChannels:D,padInfo:N,strideHeight:h,strideWidth:g,filterHeight:m,filterWidth:f,effectiveFilterHeight:w,effectiveFilterWidth:I,dilationHeight:x,dilationWidth:b,inShape:r,outShape:F,filterShape:t}}function dE(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]=V0(e),[I,N,E]=V0(n),A=lm(f,I),D=lm(d,N),F=lm(h,E),{padInfo:P,outDepth:V,outHeight:G,outWidth:W}=GK(o,l,c,p,x,b,w,A,D,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:D,effectiveFilterWidth:F,dilationDepth:I,dilationHeight:N,dilationWidth:E,inShape:r,outShape:H,filterShape:t}}function zK(r,t,e,n,o){n==null&&(n=W0(r,t,e));let s=r[0],i=r[1],a=hh((s-t+2*n)/e+1,o),u=hh((i-t+2*n)/e+1,o);return[a,u]}function BK(r,t,e,n,o,s){o==null&&(o=W0(r,t[0],n[0]));let i=[0,0,0,e];for(let a=0;a<3;a++)r[a]+2*o>=t[a]&&(i[a]=hh((r[a]-t[a]+2*o)/n[a]+1,s));return i}function W0(r,t,e,n=1){let o=lm(t,n);return Math.floor((r[0]*(e-1)-e+o)/2)}function dh(r){return typeof r==\"number\"?[r,r,r]:r.length===2?[r[0],r[1],1]:r}function V0(r){return typeof r==\"number\"?[r,r,r]:r}function lm(r,t){return t<=1?r:r+(r-1)*(t-1)}function VK(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=zK([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=hh((t-s+m+f)/n+1,a),p=hh((e-i+d+h)/o+1,a)}else throw Error(`Unknown padding parameter: ${r}`);return{padInfo:l,outHeight:c,outWidth:p}}function GK(r,t,e,n,o,s,i,a,u,l,c){let p,m,f,d;if(r===\"valid\"&&(r=0),typeof r==\"number\"){p={top:r,bottom:r,left:r,right:r,front:r,back:r,type:r===0?\"VALID\":\"NUMBER\"};let g=BK([t,e,n,1],[a,u,l],1,[o,s,i],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,I=Math.floor(g/2),N=g-I,E=Math.floor(x/2),A=x-E;p={top:I,bottom:N,left:E,right:A,front:b,back:w,type:\"SAME\"}}else throw Error(`Unknown padding parameter: ${r}`);return{padInfo:p,outDepth:m,outHeight:f,outWidth:d}}function hh(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 ao(r){let[t,e,n]=dh(r);return t===1&&e===1&&n===1}function $r(r,t){return ao(r)||ao(t)}function ea(r){return dh(r).every(t=>t>0)}function hE(r){if(r===\"NHWC\")return\"channelsLast\";if(r===\"NCHW\")return\"channelsFirst\";throw new Error(`Unknown dataFormat ${r}`)}function Se(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\")_(_a(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=>{_(_a(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 WK(r,t){let n={x:v(r,\"x\",\"reshape\",\"string_or_numeric\")},o={shape:t};return T.runKernel(Bi,n,o)}var R=k({reshape_:WK});function UK(r,t,e,n,o){let s=v(r,\"x\",\"avgPool\",\"float32\"),i=1;_($r(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}.`),Se(\"avgPool\",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o},p=T.runKernel(Qo,l,c);return p=Q(p,s.dtype),u?R(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var bu=k({avgPool_:UK});function HK(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}`),_(typeof e==\"number\"&&e>0||Array.isArray(e)&&e[0]>0&&e[1]>0&&e[2]>0,()=>`Error in avgPool3d: Stride must be > 0, but got '${e}'`),Se(\"avgPool3d\",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o,dataFormat:s},p=T.runKernel(Di,l,c);return p=Q(p,a.dtype),u?R(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var Cx=k({avgPool3d_:HK});function qK(r,t=0){_(r.length>=1,()=>\"Pass at least one tensor to concat\");let e=hl(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 un(e[0]);let n=e,o={axis:t};return T.runKernel(Ri,n,o)}var se=k({concat_:qK});function KK(r,t,e=!1,n=!1){let o=v(r,\"a\",\"matMul\"),s=v(t,\"b\",\"matMul\");[o,s]=jt(o,s);let i={a:o,b:s},a={transposeA:e,transposeB:n};return T.runKernel(ts,i,a)}var Bt=k({matMul_:KK});function jK(r){let e={x:v(r,\"x\",\"sigmoid\",\"float32\")};return T.runKernel(Xs,e)}var tn=k({sigmoid_:jK});function XK(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 T.runKernel(Gi,o,s)}var Ot=k({slice_:XK});function YK(r){let e={x:v(r,\"x\",\"tanh\",\"float32\")};return T.runKernel(ni,e)}var ra=k({tanh_:YK});function ZK(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=se([l,p],1),f=Bt(m,a),d=Y(f,u),h=d.shape[0],g=d.shape[1]/4,x=[h,g],b=Ot(d,[0,0],x),w=Ot(d,[0,g],x),I=Ot(d,[0,g*2],x),N=Ot(d,[0,g*3],x),E=Y($(tn(b),ra(w)),$(c,tn(Y(i,I)))),A=$(ra(E),tn(N));return[E,A]}var gE=k({basicLSTMCell_:ZK});function JK(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 T.runKernel($i,s,i)}var wu=k({batchToSpaceND_:JK});function xE(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 QK(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:xE(i),scale:l,offset:c,mean:a,variance:u},f={varianceEpsilon:s},d=T.runKernel(gs,m,f);return R(d,i.shape)}var na=k({batchNorm_:QK});function tj(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}.`),na(i,a,u,c,l,s)}var vx=k({batchNorm2d_:tj});function ej(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}.`),na(i,a,u,c,l,s)}var Sx=k({batchNorm3d_:ej});function rj(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}.`),na(i,a,u,c,l,s)}var Nx=k({batchNorm4d_:rj});function nj(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 T.runKernel(Da,s,i)}var kx=k({bincount_:nj});function oj(r,t){let e=v(r,\"x\",\"bitwiseAnd\"),n=v(t,\"y\",\"bitwiseAnd\");if(!sn(e.shape,n.shape))throw new Error(`BitwiseAnd: Tensors must have the same shape. x: ${e.shape}, y: ${n.shape}`);if(e.dtype!==\"int32\"||n.dtype!==\"int32\")throw new Error(`BitwiseAnd: Only supports 'int32' values in tensor, found type of x: ${e.dtype} and type of y: ${n.dtype}`);let o={a:e,b:n};return T.runKernel(nh,o)}var yE=k({bitwiseAnd_:oj});function sj(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 T.runKernel(Yl,o)}var bE=k({broadcastArgs_:sj});function ij(r,t){let e=v(r,\"broadcastTo\",\"x\"),n=e.shape;if(Me(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 un(e);let a={x:e},u={reps:s};return T.runKernel(so,a,u)}var oa=k({broadcastTo_:ij});function aj(r){let e={x:v(r,\"x\",\"ceil\",\"float32\")};return T.runKernel(es,e)}var Tx=k({ceil_:aj});function vo(r,t,e){Me(r),e=e||jl(t);let n={shape:r,value:t,dtype:e};return T.runKernel(ru,{},n)}function lj(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 vo(n.shape,t,n.dtype);let o={x:n},s={clipValueMin:t,clipValueMax:e};return T.runKernel(go,o,s)}var vr=k({clipByValue_:lj});function uj(r){return se(r,0)}var _x=k({concat1d_:uj});function cj(r,t){return se(r,t)}var Ex=k({concat2d_:cj});function pj(r,t){return se(r,t)}var Ax=k({concat3d_:pj});function mj(r,t){return se(r,t)}var Dx=k({concat4d_:mj});function fj(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}.`),Se(\"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]}.`),_($r(e,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`),_(ea(s),()=>\"Error in conv2D: Dilated rates should be larger than 0.\"),_(ea(e),()=>\"Error in conv2D: Strides should be larger than 0.\");let m={x:l,filter:u},f={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i},d=T.runKernel(rs,m,f);return c?R(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var kn=k({conv2d_:fj});function dj(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}.`),Se(\"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]}.`),_($r(e,s),()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${e} and dilation '${s}'`),_(ea(s),()=>\"Error in conv1D: Dilated rates should be larger than 0.\"),_(ea(e),()=>\"Error in conv1D: Stride should be larger than 0.\"),_(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=kn(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 um=k({conv1d_:dj});function hj(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]}.`),Se(\"conv2dDerInput\",o,i);let m={dy:u,filter:e},f={strides:n,pad:o,dataFormat:s,dimRoundingMode:i,inputShape:a},d=T.runKernel(ns,m,f);return l?R(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var cm=k({conv2DBackpropInput_:hj});function gj(r,t,e,n,o,s){let i=v(r,\"x\",\"conv2dTranspose\"),a=v(t,\"filter\",\"conv2dTranspose\");return cm(e,i,a,n,o,\"NHWC\",s)}var pm=k({conv2dTranspose_:gj});function xj(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]}.`),_($r(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.`),_(ea(s),()=>\"Error in conv3D: Dilated rates should be larger than 0.\"),_(ea(e),()=>\"Error in conv3D: Strides should be larger than 0.\");let c={x:u,filter:a},p={strides:e,pad:n,dataFormat:o,dilations:s},m=T.runKernel(os,c,p);return l?R(m,[m.shape[1],m.shape[2],m.shape[3],m.shape[4]]):m}var $x=k({conv3d_:xj});function yj(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=T.runKernel(Ra,c,p);return a?R(m,[m.shape[1],m.shape[2],m.shape[3],m.shape[4]]):m}var Rx=k({conv3DBackpropInput_:yj});function bj(r,t,e,n,o){let s=v(r,\"x\",\"conv3dTranspose\"),i=v(t,\"filter\",\"conv3dTranspose\");return Rx(e,s,i,n,o)}var Fx=k({conv3dTranspose_:bj});function wj(r){let e={x:v(r,\"x\",\"cos\",\"float32\")};return T.runKernel(ss,e)}var Iu=k({cos_:wj});function Ij(r){let e={x:v(r,\"x\",\"cosh\",\"float32\")};return T.runKernel(is,e)}var mm=k({cosh_:Ij});function Cj(r,t=0,e=!1,n=!1){let s={x:v(r,\"x\",\"cumprod\")},i={axis:t,exclusive:e,reverse:n};return T.runKernel(Fa,s,i)}var gc=k({cumprod_:Cj});function vj(r,t=0,e=!1,n=!1){let s={x:v(r,\"x\",\"cumsum\")},i={axis:t,exclusive:e,reverse:n};return T.runKernel(as,s,i)}var fm=k({cumsum_:vj});function Sj(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 T.runKernel(Jl,i,a)}var gh=k({denseBincount_:Sj});function Nj(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 T.runKernel(Pa,a,u)}var Ox=k({depthToSpace_:Nj});function kj(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]}.`),Se(\"depthwiseConv2d\",n,i);let m={x:l,filter:u},f={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i},d=T.runKernel(ls,m,f);return c?R(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var sa=k({depthwiseConv2d_:kj});function Tj(r){let e={x:v(r,\"x\",\"diag\")};return T.runKernel(Ql,e)}var wE=k({diag_:Tj});function _j(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),_(u.shape[3]===a.shape[2],()=>`Error in dilation2d: input and filter must have the same depth: ${u.shape[3]} vs ${a.shape[2]}`);let c={x:u,filter:a},p={strides:e,pad:n,dilations:o},m=T.runKernel(us,c,p);return l?R(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var Px=k({dilation2d_:_j});var Ur={};Kt(Ur,{assertAndGetBroadcastShape:()=>Mt,getBroadcastDims:()=>IE,getReductionAxes:()=>ye});function IE(r,t){let e=r.length,n=[];for(let o=0;o1&&i===1&&n.unshift(s)}return n}function ye(r,t){let e=[];for(let n=0;n1)&&e.unshift(s)}return e}function Mt(r,t){let e=Math.max(r.length,t.length),n=new Array(e);for(let o=0;o`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=Bt(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=Bt(i,a);return R(u,[u.size])}else if(e.rank===2&&n.rank===1){let i=R(n,[-1,1]),a=Bt(e,i);return R(a,[a.size])}else{let i=R(n,[n.shape[0],n.shape[1]]);return Bt(e,i)}}var Lx=k({dot_:Rj});function Fj(r,...t){let e=t.map((o,s)=>v(o,`tensors${s}`,\"einsum\")),n={equation:r};return T.runKernel(zp,e,n)}var CE=k({einsum_:Fj});function Oj(r){let e={x:v(r,\"x\",\"elu\",\"float32\")};return T.runKernel(ps,e)}var ia=k({elu_:Oj});function Pj(r,t){let e=v(r,\"x\",\"ensureShape\",\"string_or_numeric\");if(!n0(e.shape,t))throw new Error(`EnsureShape: Shape of tensor ${e.shape} is not compatible with expected shape ${t}`);return r}var vE=k({ensureShape_:Pj});function Mj(r){let t=v(r,\"x\",\"erf\");_(t.dtype===\"int32\"||t.dtype===\"float32\",()=>\"Input dtype must be `int32` or `float32`.\"),t.dtype===\"int32\"&&(t=Q(t,\"float32\"));let e={x:t};return T.runKernel(La,e)}var zx=k({erf_:Mj});function U0(r,t){for(let e=0;er[s]);return[e,o]}function So(r,t){let e=t.map(n=>1);return SE(r,e,t)}function Lj(r,t,e){_(U0(t,e),()=>`${r} supports only inner-most axes for now. Got axes ${t} and rank-${e} input.`)}function q0(r,t){if(U0(r,t))return null;let e=[];for(let n=0;ne.push(n)),e}function xh(r){return r.map((t,e)=>[e,t]).sort((t,e)=>t[1]-e[1]).map(t=>t[0])}function zj(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 T.runKernel(Fi,n,o)}var ar=k({expandDims_:Xj});function Yj(r){let e={x:v(r,\"x\",\"expm1\")};return T.runKernel(fs,e)}var Vx=k({expm1_:Yj});function Zj(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 T.runKernel(so,n,o)}var Fr=k({tile_:Zj});function Jj(r,t,e,n=\"float32\"){t==null&&(t=r);let o=bt([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}.`),_(_a(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=T.runKernel(Ss,u,l);return a?R(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var Hx=k({localResponseNormalization_:c6});function p6(r){let e={x:v(r,\"x\",\"log\",\"float32\")};return T.runKernel(Cs,e)}var Nr=k({log_:p6});function m6(r){let e={x:v(r,\"x\",\"log1p\")};return T.runKernel(vs,e)}var Su=k({log1p_:m6});function f6(r){return _(ki(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 T.tidy(()=>{let{value:s,grads:i}=T.gradients(()=>r(n),[n],o);return o!=null&&Re(s.shape,o.shape,\"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)\"),Kx(i),i[0]})}}function d6(r){return _(ki(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=hl(t,\"args\",\"tf.grads\",\"string_or_numeric\"),o=e!=null?v(e,\"dy\",\"tf.grads\"):null;return T.tidy(()=>{let{value:s,grads:i}=T.gradients(()=>r(...n),n,o);return o!=null&&Re(s.shape,o.shape,\"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])\"),Kx(i),i})}}function h6(r){return _(ki(r),()=>\"The f passed in valueAndGrad(f) must be a function\"),(t,e)=>{_(t instanceof Pt,()=>\"The x passed in valueAndGrad(f)(x) must be a tensor\"),_(e==null||e instanceof Pt,()=>\"The dy passed in valueAndGrad(f)(x, dy) must be a tensor\");let{grads:n,value:o}=T.gradients(()=>r(t),[t],e);return Kx(n),{grad:n[0],value:o}}}function g6(r){return _(ki(r),()=>\"The f passed in valueAndGrads(f) must be a function\"),(t,e)=>{_(Array.isArray(t)&&t.every(o=>o instanceof Pt),()=>\"The args passed in valueAndGrads(f)(args) must be array of tensors\"),_(e==null||e instanceof Pt,()=>\"The dy passed in valueAndGrads(f)(args, dy) must be a tensor\");let n=T.gradients(()=>r(...t),t,e);return e!=null&&Re(n.value.shape,e.shape,\"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])\"),Kx(n.grads),n}}function qx(r,t){_(ki(r),()=>\"The f passed in variableGrads(f) must be a function\"),_(t==null||Array.isArray(t)&&t.every(l=>l instanceof dl),()=>\"The varList passed in variableGrads(f, varList) must be an array of variables\");let e=t!=null;if(!e){t=[];for(let l in T.registeredVariables)t.push(T.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}=T.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 mn(r){return T.customGrad(r)}function Kx(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 x6(r){let e={x:v(r,\"x\",\"neg\")};return T.runKernel(Mi,e)}var Ut=k({neg_:x6});function y6(r){let e={x:v(r,\"x\",\"softplus\")};return T.runKernel(Ys,e)}var ai=k({softplus_:y6});function b6(r){let t=v(r,\"x\",\"logSigmoid\");return mn(n=>({value:Ut(ai(Ut(n))),gradFunc:i=>$(i,tn(Ut(n)))}))(t)}var jx=k({logSigmoid_:b6});function w6(r,t){let e=v(r,\"a\",\"sub\"),n=v(t,\"b\",\"sub\");[e,n]=jt(e,n);let o={a:e,b:n};return T.runKernel(ei,o)}var lt=k({sub_:w6});function I6(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 mn((o,s)=>{let a=Sr(o,t,!0),u=lt(o,a),l=lt(Q(u,\"float32\"),Nr(pt(ir(u),t,!0)));return s([l]),{value:l,gradFunc:(p,m)=>{let[f]=m,d=!0,h=ir(f);return lt(p,$(pt(p,t,d),h))}}})(e)}var dm=k({logSoftmax_:I6});function C6(r,t=null,e=!1){let n=v(r,\"x\",\"logSumExp\"),o=fr(t,n.shape),s=Sr(n,o,!0),i=lt(n,s),a=ir(i),u=pt(a,o),l=Nr(u),c=Y(R(s,l.shape),l);if(e){let p=So(c.shape,o);return R(c,p)}return c}var hm=k({logSumExp_:C6});function v6(r,t){let e=v(r,\"a\",\"logicalAnd\",\"bool\"),n=v(t,\"b\",\"logicalAnd\",\"bool\");Mt(e.shape,n.shape);let o={a:e,b:n};return T.runKernel(qa,o)}var Or=k({logicalAnd_:v6});function S6(r){let e={x:v(r,\"x\",\"logicalNot\",\"bool\")};return T.runKernel(Ka,e)}var Nu=k({logicalNot_:S6});function N6(r,t){let e=v(r,\"a\",\"logicalOr\",\"bool\"),n=v(t,\"b\",\"logicalOr\",\"bool\");Mt(e.shape,n.shape);let o={a:e,b:n};return T.runKernel(ja,o)}var gm=k({logicalOr_:N6});function k6(r,t){let e=v(r,\"a\",\"logicalXor\",\"bool\"),n=v(t,\"b\",\"logicalXor\",\"bool\");return Mt(e.shape,n.shape),Or(gm(r,t),Nu(Or(r,t)))}var Xx=k({logicalXor_:k6});var Yx=2147483648;function T6(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(te(u.shape)>=Yx)throw new Error(`values tensor size must less than ${Yx}`);if(a.shape[1]>=Yx)throw new Error(`trailing dim_size must less than ${Yx} for int32 output type, was ${a.shape[1]}`);let l={sortedSequence:a,values:u},c={side:e};return T.runKernel(il,l,c)}var yh=k({searchSorted_:T6});function TE(r,t){return yh(r,t,\"left\")}function _6(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}.`),_($r(e,i),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${e} and dilations '${i}'`),Se(\"maxPool\",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o},p=T.runKernel(Ts,l,c);return u?R(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var ku=k({maxPool_:_6});function E6(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}`),Se(\"maxPool3d\",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o,dataFormat:s},p=T.runKernel(Pi,l,c);return u?R(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var Zx=k({maxPool3d_:E6});function A6(r,t,e,n,o=!1){let i={x:v(r,\"x\",\"maxPoolWithArgmax\")},a={filterSize:t,strides:e,pad:n,includeBatchInIndex:o},u=T.runKernel(Up,i,a);return{result:u[0],indexes:u[1]}}var _E=k({maxPoolWithArgmax_:A6});function D6(r,t){let e=v(r,\"a\",\"maximum\"),n=v(t,\"b\",\"maximum\");[e,n]=jt(e,n),e.dtype===\"bool\"&&(e=Q(e,\"int32\"),n=Q(n,\"int32\")),Mt(e.shape,n.shape);let o={a:e,b:n};return T.runKernel(ks,o)}var Tn=k({maximum_:D6});function $6(r,t=null,e=!1){let o={x:v(r,\"x\",\"mean\")},s={axis:t,keepDims:e};return T.runKernel(_s,o,s)}var ke=k({mean_:$6});function Te(r,t=\"float32\"){if(Me(r),t===\"complex64\"){let n=Te(r,\"float32\"),o=Te(r,\"float32\");return Nn(n,o)}let e=Rp(te(r),t);return T.makeTensor(e,r,t)}function dr(r,t=\"float32\"){if(Me(r),t===\"complex64\"){let n=dr(r,\"float32\"),o=Te(r,\"float32\");return Nn(n,o)}let e=th(te(r),t);return T.makeTensor(e,r,t)}function EE(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 Pt?r.dtype:\"float32\");if(t===void 0)return[n];let o=v(t,\"y\",\"meshgrid\",t instanceof Pt?t.dtype:\"float32\"),s=te(n.shape),i=te(o.shape);return e===\"xy\"?(n=R(n,[1,-1]),o=R(o,[-1,1]),[Bt(dr([i,1],n.dtype),n),Bt(o,dr([1,s],o.dtype))]):(n=R(n,[-1,1]),o=R(o,[1,-1]),[Bt(n,dr([1,i],n.dtype)),Bt(dr([s,1],o.dtype),o)])}function R6(r,t){let e=v(r,\"a\",\"minimum\"),n=v(t,\"b\",\"minimum\");[e,n]=jt(e,n),e.dtype===\"bool\"&&(e=Q(e,\"int32\"),n=Q(n,\"int32\")),Mt(e.shape,n.shape);let o={a:e,b:n};return T.runKernel(As,o)}var uo=k({minimum_:R6});function F6(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 T.runKernel(Ds,i,s)}var Jx=k({mirrorPad_:F6});function O6(r,t){let e=v(r,\"a\",\"mod\"),n=v(t,\"b\",\"mod\");[e,n]=jt(e,n);let o={a:e,b:n};return T.runKernel(Ya,o)}var Qx=k({mod_:O6});function P6(r,t=null,e=!1){r=v(r,\"x\",\"moments\");let n=fr(t,r.shape),o=ke(r,n,e),s=o.shape;e||(s=So(o.shape,n));let i=Wt(lt(Q(r,\"float32\"),R(o,s))),a=ke(i,n,e);return{mean:o,variance:a}}var yc=k({moments_:P6});function M6(r,t,e,n){let o=v(t,\"data\",\"multiRNNCell\"),s=hl(e,\"c\",\"multiRNNCell\"),i=hl(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=T.runKernel(Za,u,l);return i===1?R(c,[c.size]):c}var DE=k({multinomial_:L6});function z6(r,t){let e=v(r,\"a\",\"notEqual\",\"string_or_numeric\"),n=v(t,\"b\",\"notEqual\",\"string_or_numeric\");[e,n]=jt(e,n),Mt(e.shape,n.shape);let o={a:e,b:n};return T.runKernel(Ja,o)}var li=k({notEqual_:z6});function B6(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 T.runKernel(Rs,i,a)}var ua=k({oneHot_:B6});function V6(r){let e={x:v(r,\"x\",\"onesLike\")};return T.runKernel(Li,e)}var Ir=k({onesLike_:V6});function G6(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 Bt(o,s)}var $E=k({outerProduct_:G6});function W6(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 T.runKernel(Fs,s,o)}var fn=k({pad_:W6});function U6(r,t,e=0){return _(t.length===2,()=>\"Invalid number of paddings. Must be length of 2.\"),fn(r,[t],e)}var RE=k({pad1d_:U6});function H6(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.\"),fn(r,t,e)}var FE=k({pad2d_:H6});function q6(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.\"),fn(r,t,e)}var OE=k({pad3d_:q6});function K6(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.\"),fn(r,t,e)}var PE=k({pad4d_:K6});function j6(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 T.runKernel(Wi,o,s)}var Tu=k({spaceToBatchND_:j6});function X6(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]])),_($r(s,o),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${o}'`);let c=G0(u.shape,t,s,o,n),p=[c.dilationHeight,c.dilationWidth],m;n===\"same\"?m=Z6([c.filterHeight,c.filterWidth],p):m=[[0,0],[0,0]];let f=p[0]===1&&p[1]===1,[d,h]=Y6([c.inHeight,c.inWidth],p,m),g=f?n:\"valid\",x=f?u:Tu(u,p,d),w=(e===\"avg\"?()=>bu(x,t,s,g,i):()=>ku(x,t,s,g,i))(),I=f?w:wu(w,p,h);return l?R(I,[I.shape[1],I.shape[2],I.shape[3]]):I}function Y6(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 Z6(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 ty=k({pool_:X6});function J6(r,t){let e=v(r,\"x\",\"prelu\"),n=v(t,\"alpha\",\"prelu\"),o={x:e,alpha:n};return T.runKernel(Ps,o)}var _u=k({prelu_:J6});function Q6(r,t=null,e=!1){let n=v(r,\"x\",\"prod\");n.dtype===\"bool\"&&(n=Q(n,\"int32\"));let o={x:n},s={axis:t,keepDims:e};return T.runKernel(Ms,o,s)}var ey=k({prod_:Q6});function tX(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=T.runKernel(Hp,a,u);return{outputNestedSplits:l.slice(0,l.length-1),outputDenseValues:l[l.length-1]}}var ME=k({raggedGather_:tX});function eX(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=T.runKernel(qp,i);return{rtNestedSplits:a[0],rtDenseValues:a[1]}}var LE=k({raggedRange_:eX});function rX(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 T.runKernel(Kp,l,c)}var zE=k({raggedTensorToTensor_:rX});function nX(r,t,e){Me(r);let n=te(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;snA,createVideoElement:()=>gX,encodeStrings:()=>sA,expectArrayBuffersEqual:()=>hX,expectArraysClose:()=>pX,expectArraysEqual:()=>fX,expectNumbersClose:()=>oA,expectPromiseToFail:()=>mX,expectValuesInRange:()=>dX,play:()=>xX,testEpsilon:()=>ny});var cX=.001,nA=.1;function pX(r,t,e){return e==null&&(e=ny()),tN(r,t,(n,o)=>eN(n,o,e))}function ny(){return T.backend.floatPrecision()===32?cX:nA}function tN(r,t,e){let n=!0;if((or(r)||or(t))&&(n=!1),or(r)&&or(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=Wr(r),a=Wr(t);if(!sn(i,a))throw new Error(`Arrays have different shapes. Actual: [${i}]. Expected: [${a}]`)}let o=or(r)?r:si(r),s=or(t)?t:si(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 fX(r,t){let e=typeof t==\"string\"||typeof t==\"number\"||typeof t==\"boolean\"?[t]:t;return Uo(r)||Uo(r[0])||Uo(t)||Uo(t[0])?tN(r,e,(n,o)=>n==o):tN(r,t,(n,o)=>eN(n,o,0))}function oA(r,t,e){if(e==null&&(e=ny()),!eN(r,t,e))throw new Error(`Numbers differ: actual === ${r}, expected === ${t}`);typeof expect!=\"undefined\"&&expect().nothing()}function eN(r,t,e){return!isFinite(r)&&!isFinite(t)?!0:!(isNaN(r)||isNaN(t)||Math.abs(r-t)>e)}function dX(r,t,e){for(let n=0;ne)throw new Error(`Value out of range:${r[n]} low: ${t}, high: ${e}`)}function hX(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 xX(r){await r.play(),\"requestVideoFrameCallback\"in r&&await new Promise(t=>{r.requestVideoFrameCallback(t)})}var wc=class{constructor(t,e,n,o,s){this.mean=t,this.stdDev=e,this.dtype=n,this.nextVal=NaN,this.truncated=o,this.truncated&&(this.upper=this.mean+this.stdDev*2,this.lower=this.mean-this.stdDev*2);let i=s||Math.random();this.random=iy.alea(i.toString())}nextValue(){if(!isNaN(this.nextVal)){let o=this.nextVal;return this.nextVal=NaN,o}let t,e,n=!1;for(;!n;){let o,s,i;do o=2*this.random()-1,s=2*this.random()-1,i=o*o+s*s;while(i>=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}},oy=class{constructor(t,e,n,o){this.alpha=t,this.beta=1/e,this.dtype=n;let s=o||Math.random();this.randu=iy.alea(s.toString()),this.randn=new wc(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=iy.alea(o)}convertValue(t){return this.canReturnFloat()?t:Math.round(t)}nextValue(){return this.convertValue(this.min+this.range*this.random())}};function yX(r,t,e=1,n=\"float32\",o){if(Me(r),e==null&&(e=1),n==null&&(n=\"float32\"),n!==\"float32\"&&n!==\"int32\")throw new Error(`Unsupported data type ${n}`);let s=new oy(t,e,n,o),i=bt(r,n);for(let a=0;a`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`),hr(t,0)}var cA=k({reverse1d_:_X});function EX(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}.`),hr(e,t)}var pA=k({reverse2d_:EX});function AX(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}.`),hr(e,t)}var mA=k({reverse3d_:AX});function DX(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}.`),hr(e,t)}var fA=k({reverse4d_:DX});function $X(r){let e={x:v(r,\"x\",\"round\")};return T.runKernel(Us,e)}var ym=k({round_:$X});function RX(r){let e={x:v(r,\"x\",\"rsqrt\",\"float32\")};return T.runKernel(Hs,e)}var bm=k({rsqrt_:RX});function FX(r){let e={x:v(r,\"x\",\"selu\")};return T.runKernel(qs,e)}var wm=k({selu_:FX});function OX(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=sa(c,u,n,o,i,s),g=kn(d,l,1,\"valid\",i);return p?R(g,[g.shape[1],g.shape[2],g.shape[3]]):g}var Im=k({separableConv2d_:OX});async function PX(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`),Ot(n,[t],[e])}var Sm=k({slice1d_:BX});function VX(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`),Ot(n,t,e)}var wh=k({slice2d_:VX});function GX(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`),Ot(n,t,e)}var Nm=k({slice3d_:GX});function WX(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`),Ot(n,t,e)}var Cc=k({slice4d_:WX});function UX(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 T.runKernel(Qs,n,o)}var Eu=k({softmax_:UX});function HX(r){_(r.dtype===\"complex64\",()=>`The dtype for tf.spectral.fft() must be complex64 but got ${r.dtype}.`);let t={input:r};return T.runKernel(Bp,t)}var Au=k({fft_:HX});function qX(r){_(r.dtype===\"complex64\",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${r.dtype}.`);let t={input:r};return T.runKernel(Vp,t)}var Il=k({ifft_:qX});function KX(r){let t=r.shape[r.shape.length-1],e=r.size/t,n;if(t<=2){let o=R(r,[e,t]);n=Il(o)}else{let o=[e,2*(t-1)],s=R(wl(r),[e,t]),i=R(Cu(r),[e,t]),a=hr(Ot(s,[0,1],[e,t-2]),1),u=$(hr(Ot(i,[0,1],[e,t-2]),1),ft(-1)),l=se([s,a],1),c=se([i,u],1),p=R(Nn(l,c),[o[0],o[1]]);n=Il(p)}if(n=wl(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 km=k({irfft_:KX});function jX(r,t,e=0){let o={x:v(r,\"x\",\"split\")},s={numOrSizeSplits:t,axis:e};return T.runKernel(Ui,o,s)}var gr=k({split_:jX});function XX(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=Ot(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=se([r,Te(d)],r.shape.length-1),e=t}else o=r;let s=vt(o),i=R(Nn(o,s),[n,e]),a=Au(i),u=Math.floor(e/2)+1,l=wl(a),c=Cu(a),p=gr(l,[u,e-u],l.shape.length-1),m=gr(c,[u,e-u],c.shape.length-1),f=o.shape.slice();return f[o.shape.length-1]=u,R(Nn(p[0],m[0]),f)}var Du=k({rfft_:XX});function YX(r,t){let e=v(r,\"a\",\"squaredDifference\"),n=v(t,\"b\",\"squaredDifference\");[e,n]=jt(e,n),Mt(e.shape,n.shape);let o={a:e,b:n},s={};return T.runKernel(ti,o,s)}var Tm=k({squaredDifference_:YX});function ZX(r,t){let e=v(r,\"x\",\"squeeze\",\"string_or_numeric\");return R(e,o0(e.shape,t).newShape)}var Un=k({squeeze_:ZX});function JX(r,t=0){let e=hl(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 T.runKernel(zi,n,o)}var qe=k({stack_:JX});function QX(r,t=0){let n={x:v(r,\"x\",\"step\")},o={alpha:t};return T.runKernel(yo,n,o)}var No=k({step_:QX});function t5(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 T.runKernel(cl,c,p)}var uy=k({stridedSlice_:t5});function e5(r){let e={x:v(r,\"x\",\"tan\",\"float32\")};return T.runKernel(ri,e)}var cy=k({tan_:e5});function Ke(r,t){no(r);let e=Wr(r,t);if(e.length!==1)throw new Error(\"tensor1d() requires values to be a flat/TypedArray\");return ln(r,null,e,t)}function ui(r,t,e){if(no(r),t!=null&&t.length!==2)throw new Error(\"tensor2d() requires shape to have two numbers\");let n=Wr(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 ln(r,t,n,e)}function py(r,t,e){if(no(r),t!=null&&t.length!==3)throw new Error(\"tensor3d() requires shape to have three numbers\");let n=Wr(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 ln(r,t,n,e)}function hA(r,t,e){if(no(r),t!=null&&t.length!==4)throw new Error(\"tensor4d() requires shape to have four numbers\");let n=Wr(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 ln(r,t,n,e)}function gA(r,t,e){if(no(r),t!=null&&t.length!==5)throw new Error(\"tensor5d() requires shape to have five numbers\");let n=Wr(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 ln(r,t,n,e)}function xA(r,t,e){if(no(r),t!=null&&t.length!==6)throw new Error(\"tensor6d() requires shape to have six numbers\");let n=Wr(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,ln(r,t,n,e)}var $u={};Kt($u,{calculateShapes:()=>yA,validateInput:()=>_m,validateUpdateShape:()=>rN});function rN(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;p= 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]=T.runKernel(pl,s,i);return{values:a,indices:u}}var my=k({topk_:n5});function o5(r,t=0,e=1,n,o){if(Me(r),n!=null&&n===\"bool\")throw new Error(\"Unsupported data type $ { dtype }\");let s=new wc(t,e,n,!0,o),i=bt(r,n);for(let a=0;a0,()=>\"The input tensor must be at least 1D\");let n={x:e},o={axis:t},[s,i]=T.runKernel(mu,n,o);return{values:s,indices:i}}var fy=k({unique_:s5});function i5(r,t,e){let n=v(r,\"x\",\"unsortedSegmentSum\"),o=v(t,\"segmentIds\",\"unsortedSegmentSum\",\"int32\");_(_a(e),()=>\"numSegments must be of dtype int\");let s={x:n,segmentIds:o},i={numSegments:e};return T.runKernel(fu,s,i)}var Am=k({unsortedSegmentSum_:i5});function a5(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 T.runKernel(Hi,n,o)}var xr=k({unstack_:a5});function wA(r,t){return yh(r,t,\"right\")}function dy(r,t=!0,e,n){return T.makeVariable(r,t,e,n)}function hy(r,t){let e=[];for(let s=0;s0,()=>\"mask cannot be scalar\"),Re(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;ha).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=wl(n),a=Cu(n);return i=T.runKernel(io,{x:i},s),a=T.runKernel(io,{x:a},s),e&&(a=Ut(a)),Nn(i,a)}):T.runKernel(io,o,s)}var Vt=k({transpose_:p5});function m5(r,t,e,n,o=!0){let s=v(r,\"v\",\"movingAverage\"),i=v(t,\"x\",\"movingAverage\"),a=v(e,\"decay\",\"movingAverage\");N0(s,i),_(sn(s.shape,i.shape),()=>\"Shape mismatch in v and x\");let u=ft(1),l=lt(u,a),c=$(lt(i,s),l);if(o){_(n!=null,()=>\"When using zeroDebias: true, step is required.\");let p=v(n,\"step\",\"movingAverage\");c=ct(c,lt(u,cn(a,p)))}return Y(s,c)}var f5=k({movingAverage_:m5});function d5(r,t,e){Me(e);let n=v(r,\"indices\",\"scatterND\",\"int32\"),o=v(t,\"updates\",\"scatterND\");_m(o,n,e);let s={indices:n,updates:o},i={shape:e};return T.runKernel(ol,s,i)}var h5=k({scatterND_:d5});function IA(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 x5(r,t,e,n=0){Me(e);let o=v(r,\"sparseIndices\",\"sparseToDense\",\"int32\"),s=v(t,\"sparseValues\",\"sparseToDense\",\"string_or_numeric\"),i=v(n,\"defaultValue\",\"sparseToDense\",s.dtype);IA(o,s,e,i);let a={sparseIndices:o,sparseValues:s,defaultValue:i},u={outputShape:e};return T.runKernel(ul,a,u)}var y5=k({sparseToDense_:x5});function b5(r,t){let e=v(t,\"indices\",\"gatherND\",\"int32\"),o={params:v(r,\"x\",\"gatherND\",\"string_or_numeric\"),indices:e};return T.runKernel(Va,o)}var w5=k({gatherND_:b5});function CA(r,t){if(t==null)return r.shape.slice();if(sn(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 Pt?o.clone():o;let s=CA(o,e),i=1-t,a=ct(aa(Y(Wn(s,0,1,\"float32\",n),i)),i);return $(o,a)}var nN=k({dropout_:I5});function oN(r){return Math.floor(Math.pow(2,Math.ceil(Math.log(r)/Math.log(2))))}function Ih(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}`),Re(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=s0(\"bool\",u);for(let p=0;pg.value-h.value),c[p]=0;for(let h=0;hvA,depthwiseConv2d:()=>SA,matMul:()=>NA});function S5(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]}).`),Se(\"conv2dDerFilter\",o,i);let p={x:a,dy:u},m={strides:n,pad:o,dataFormat:s,dimRoundingMode:i,filterShape:e};return T.runKernel(Pp,p,m)}var Dm=k({conv2DBackpropFilter_:S5});function vc(r,t,e){if(e==null||e===\"linear\")return r;if(e===\"relu\")return $(r,No(t));throw new Error(`Cannot compute gradient for fused activation ${e}.`)}function Sc(r,t){let e=t,n=ye(r.shape,t.shape);return n.length>0&&(e=pt(e,n)),R(e,r.shape)}function Nc(r,t,e,n){if(t===\"linear\")return r;if(t===\"relu\")return Pr(r);if(t===\"elu\")return ia(r);if(t===\"relu6\")return xm(r);if(t===\"prelu\")return _u(r,e);if(t===\"leakyrelu\")return vu(r,n);if(t===\"sigmoid\")return tn(r);throw new Error(`Unknown fused activation ${t}.`)}var kc=(r,t)=>!(r>0)||t===\"linear\";function N5({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\",kc(T.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=kn(r,t,e,n,o,s,i);return a!=null&&(E=Y(E,a)),Nc(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}.`),Se(\"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]}.`),_($r(e,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`);let g=hc(f.shape,m.shape,e,s,n,i),x;a!=null&&(x=v(a,\"bias\",\"fused conv2d\"),[x]=jt(x,p),o===\"NHWC\"?Mt(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{Mt(E,g.outShape)}catch(A){let D=`Error in fused conv2d: PReLU activation weights (${E}) is not compatible with the output shape of the conv2d (${g.outShape}).`;throw Error(D)}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[D,F,P,V]=A,G=vc(E,P,u);_(ao(s),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`);let W=cm(F.shape,G,D,e,n),q=Dm(F,G,D.shape,e,n),H=[W,q];if(V!=null){let K=Sc(V,G);H.push(K)}return H},I={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?mn((A,D,F)=>{let P=T.runKernel(ji,I,N);return F([D,A,P]),d&&(P=R(P,[P.shape[1],P.shape[2],P.shape[3]])),{value:P,gradFunc:w}})(f,m):mn((A,D,F,P)=>{let V=T.runKernel(ji,I,N);return P([D,A,V,F]),d&&(V=R(V,[V.shape[1],V.shape[2],V.shape[3]])),{value:V,gradFunc:w}})(f,m,x)}var vA=k({fusedConv2d_:N5});function k5(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 T.runKernel(Mp,l,c)}var xy=k({depthwiseConv2dNativeBackpropFilter_:k5});function T5(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=T.runKernel(Lp,l,c);return u?R(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var yy=k({depthwiseConv2dNativeBackpropInput_:T5});function _5({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(kc(T.state.gradientDepth,u)===!1){let N=sa(r,t,e,n,o,s,i);return a!=null&&(N=Y(N,a)),Nc(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]),_($r(e,s),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`),Se(\"fused depthwiseConv2d\",n,i);let h=hc(f.shape,m.shape,e,s,n,i,!0),g;a!=null&&(g=v(a,\"bias\",\"fused conv2d\"),[g]=jt(g,p),Mt(h.outShape,g.shape));let x;l!=null&&(x=v(l,\"prelu weights\",\"fused depthwiseConv2d\"));let b=(N,E)=>{_(ao(s),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${s}'`);let[A,D,F,P]=E,V=vc(N,F,u),G=yy(D.shape,V,A,e,n,s,i),W=xy(D,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},I={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i,activation:u,leakyreluAlpha:c};return a==null?mn((E,A,D)=>{let F=T.runKernel(Xi,w,I);return D([A,E,F]),d&&(F=R(F,[F.shape[1],F.shape[2],F.shape[3]])),{value:F,gradFunc:b}})(f,m):mn((E,A,D,F)=>{let P=T.runKernel(Xi,w,I);return F([A,E,P,D]),d&&(P=R(P,[P.shape[1],P.shape[2],P.shape[3]])),{value:P,gradFunc:b}})(f,m,g)}var SA=k({fusedDepthwiseConv2d_:_5});function E5({a:r,b:t,transposeA:e=!1,transposeB:n=!1,bias:o,activation:s=\"linear\",preluActivationWeights:i,leakyreluAlpha:a=.2}){if(kc(T.state.gradientDepth,s)===!1){let V=Bt(r,t,e,n);return o!=null&&(V=Y(V,o)),Nc(V,s,i,a)}let u=v(r,\"a\",\"fused matMul\"),l=v(t,\"b\",\"fused matMul\");[u,l]=jt(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=te(d),x=te(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=Mt(u.shape.slice(0,-2),l.shape.slice(0,-2)).concat([m,f]),I=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]=jt(E,u),Mt(w,E.shape));let A;i!=null&&(A=v(i,\"prelu weights\",\"fused matMul\"));let D=(V,G)=>{let[W,q,H,K]=G,X=vc(R(V,H.shape),H,s),Z,et;if(!e&&!n?(Z=Bt(X,q,!1,!0),et=Bt(W,X,!0,!1)):!e&&n?(Z=Bt(X,q,!1,!1),et=Bt(X,W,!0,!1)):e&&!n?(Z=Bt(q,X,!1,!0),et=Bt(W,X,!1,!1)):(Z=Bt(q,X,!0,!0),et=Bt(X,W,!0,!0)),o!=null){let nt=Sc(K,X);return[Z,et,nt]}else return[Z,et]},F={a:I,b:N,bias:E,preluActivationWeights:A},P={transposeA:e,transposeB:n,activation:s,leakyreluAlpha:a};return o==null?mn((G,W,q)=>{let H=T.runKernel(Ki,F,P);return q([G,W,H]),{value:R(H,w),gradFunc:D}})(I,N):mn((G,W,q,H)=>{let K=T.runKernel(Ki,F,P);return H([G,W,K,q]),{value:R(K,w),gradFunc:D}})(I,N,E)}var NA=k({fusedMatMul_:E5});function A5(r){return Ih(r,.54,.46)}var kA=k({hammingWindow_:A5});function D5(r){return Ih(r,.5,.5)}var by=k({hannWindow_:D5});function $5(r,t,e,n=!1,o=0){let s=0,i=[];for(;s+t<=r.size;)i.push(Ot(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 T.runKernel(Oa,c,p)}var _A=k({cropAndResize_:F5});function O5(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 T.runKernel(Ba,e,{})}var EA=k({flipLeftRight_:O5});function P5(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 AA=k({grayscaleToRGB_:P5});function M5(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 T.runKernel(fl,s,i)}var DA=k({rotateWithOffset_:M5});function ko(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 L5(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY){let s=v(r,\"boxes\",\"nonMaxSuppression\",\"float32\"),i=v(t,\"scores\",\"nonMaxSuppression\",\"float32\"),a=ko(s,i,e,n,o);e=a.maxOutputSize,n=a.iouThreshold,o=a.scoreThreshold;let u={maxOutputSize:e,iouThreshold:n,scoreThreshold:o};return T.runKernel(Qa,{boxes:s,scores:i},u)}var $A=k({nonMaxSuppression_:L5});function RA(r,t,e){let n=z5(r,t,e),o=n<0?-(n+1):n;r.splice(o,0,t)}function z5(r,t,e){return V5(r,t,e||B5)}function B5(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 Iy(r,t,e,n,o){return sN(r,t,e,n,o,0)}function Cy(r,t,e,n,o,s){return sN(r,t,e,n,o,0,!1,s,!0)}function vy(r,t,e,n,o,s){return sN(r,t,e,n,o,s,!0)}function sN(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(FA);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=G5(r,b,p[N]);if(E>=n){I=!0;break}if(g.score=g.score*W5(n,c,E),g.score<=o)break}g.suppressBeginIndex=p.length,I||(g.score===x?(p.push(b),m.push(g.score)):g.score>o&&RA(l,g,FA))}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 G5(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 W5(r,t,e){let n=Math.exp(t*e*e);return e<=r?n:0}function FA(r,t){return r.score-t.score||r.score===t.score&&t.boxIndex-r.boxIndex}async function U5(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY){let s=v(r,\"boxes\",\"nonMaxSuppressionAsync\"),i=v(t,\"scores\",\"nonMaxSuppressionAsync\"),a=ko(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}=Iy(l,c,e,n,o);return s!==r&&s.dispose(),i!==t&&i.dispose(),Ke(p,\"int32\")}var OA=U5;function H5(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=0){let i=v(r,\"boxes\",\"nonMaxSuppression\"),a=v(t,\"scores\",\"nonMaxSuppression\"),u=ko(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=T.runKernel(el,l,c);return{selectedIndices:p[0],selectedScores:p[1]}}var PA=k({nonMaxSuppressionWithScore_:H5});async function q5(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=0){let i=v(r,\"boxes\",\"nonMaxSuppressionAsync\"),a=v(t,\"scores\",\"nonMaxSuppressionAsync\"),u=ko(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}=vy(c,p,e,n,o,s);return i!==r&&i.dispose(),a!==t&&a.dispose(),{selectedIndices:Ke(m,\"int32\"),selectedScores:Ke(f)}}var MA=q5;function K5(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=!1){let i=v(r,\"boxes\",\"nonMaxSuppression\"),a=v(t,\"scores\",\"nonMaxSuppression\"),u=ko(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=T.runKernel(tl,m,f);return{selectedIndices:d[0],validOutputs:d[1]}}var LA=k({nonMaxSuppressionPadded_:K5});async function j5(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=!1){let i=v(r,\"boxes\",\"nonMaxSuppressionAsync\"),a=v(t,\"scores\",\"nonMaxSuppressionAsync\"),u=ko(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}=Cy(m,f,l,c,p,s);return i!==r&&i.dispose(),a!==t&&a.dispose(),{selectedIndices:Ke(d,\"int32\"),validOutputs:ft(h,\"int32\")}}var zA=j5;function X5(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=T.runKernel(Vs,a,u);return i?R(l,[l.shape[1],l.shape[2],l.shape[3]]):l}var Sy=k({resizeBilinear_:X5});function Y5(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=T.runKernel(Bs,a,u);return i?R(l,[l.shape[1],l.shape[2],l.shape[3]]):l}var Ny=k({resizeNearestNeighbor_:Y5});function Z5(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=$(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]=gr(o,[1,1,1],-1);let g=$(c,s),x=$(p,i),b=$(m,a);f=Y(Y(g,x),b)}else f=r;if(t===\"otsu\"){let g=kx(Q(ym(f),\"int32\"),sr([]),256);l=J5(g,u)}let d=e?Gn(f,l):Fe(f,l);return Q($(d,255),\"int32\")}function J5(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 T.runKernel(ml,u,l)}var VA=k({transform_:Q5});function t8(r,t,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),a,u;typeof t==\"number\"?(_(t%1===0,()=>`bandPart(): numLower must be an integer, got ${t}.`),_(t<=s,()=>`bandPart(): numLower (${t}) must not be greater than the number of rows (${s}).`),a=v(t<0?s:t,\"numLower\",\"bandPart\")):(_(t.dtype===\"int32\",()=>\"bandPart(): numLower's dtype must be an int32.\"),a=be(bl(t,0),s,uo(t,s))),typeof e==\"number\"?(_(e%1===0,()=>`bandPart(): numUpper must be an integer, got ${e}.`),_(e<=i,()=>`bandPart(): numUpper (${e}) must not be greater than the number of columns (${i}).`),u=v(e<0?i:e,\"numUpper\",\"bandPart\")):(_(e.dtype===\"int32\",()=>\"bandPart(): numUpper's dtype must be an int32.\"),u=be(bl(e,0),i,uo(e,i)));let l=R(ca(0,s,1,\"int32\"),[-1,1]),c=ca(0,i,1,\"int32\"),p=lt(l,c),m=Or(Gn(p,a),pn(p,Ut(u))),f=Te([s,i],n.dtype);return R(qe(xr(R(n,[-1,s,i])).map(d=>be(m,d,f))),o)}var GA=k({bandPart_:t8});function e8(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=gr(r,r.shape[0],0).map(o=>Un(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 UA(r,t);{let e=r.shape.slice(0,r.shape.length-2).reduce((u,l)=>u*l),n=xr(R(r,[e,r.shape[r.shape.length-2],r.shape[r.shape.length-1]]),0),o=[],s=[];n.forEach(u=>{let[l,c]=UA(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 UA(r,t=!1){return T.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=xc(e),s=un(r),i=ui([[1]],[1,1]),a=un(i),u=e>=n?n:e;for(let l=0;l{let f=Ot(s,[l,l],[e-l,1]),d=yl(f),h=Ot(s,[l,l],[1,1]),g=be(Fe(h,0),ui([[-1]]),ui([[1]])),x=lt(h,$(g,d)),b=ct(f,x);b.shape[0]===1?a=un(i):a=se([i,Ot(b,[1,0],[b.shape[0]-1,b.shape[1]])],0);let w=Ut(ct(Bt(g,x),d)),I=Ot(s,[l,0],[e-l,n]),N=$(w,a),E=Vt(a);if(l===0)s=lt(I,Bt(N,Bt(E,I)));else{let F=lt(I,Bt(N,Bt(E,I)));s=se([Ot(s,[0,0],[l,n]),F],0)}let A=Vt(N),D=Ot(o,[0,l],[e,o.shape[1]-l]);if(l===0)o=lt(D,Bt(Bt(D,a),A));else{let F=lt(D,Bt(Bt(D,a),A));o=se([Ot(o,[0,0],[e,l]),F],1)}return[a,s,o]}),Tt([c,p,m])}return!t&&e>n&&(o=Ot(o,[0,0],[e,n]),s=Ot(s,[0,0],[n,n])),[o,s]})}var HA=k({qr_:r8});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 n8(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:$(n,o);if(e===Ze.NONE)return s;if(e===Ze.SUM)return pt(s);if(e===Ze.MEAN){if(o==null)return ke(s);{let i=n.size/o.size,a=ct(pt(s),pt(o));return i>1?ct(a,ft(i)):a}}if(e===Ze.SUM_BY_NONZERO_WEIGHTS){if(o==null)return ct(pt(s),ft(n.size));{let i=$(o,dr(n.shape)),a=Q(pt(li(i,ft(0))),\"float32\");return ct(pt(s),a)}}throw Error(`Unknown reduction: ${e}`)}var Hr=k({computeWeightedLoss_:n8});function o8(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\")),Re(o.shape,s.shape,\"Error in absoluteDifference: \");let a=Ee(lt(o,s));return Hr(a,i,n)}var qA=k({absoluteDifference_:o8});function s8(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\")),Re(s.shape,i.shape,\"Error in cosineDistance: \");let u=ft(1),l=lt(u,pt($(s,i),e,!0));return Hr(l,a,o)}var KA=k({cosineDistance_:s8});function i8(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\")),Re(o.shape,s.shape,\"Error in hingeLoss: \");let a=ft(1);o=lt($(ft(2),o),a);let u=Pr(lt(a,$(o,s)));return Hr(u,i,n)}var jA=k({hingeLoss_:i8});function a8(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\")),Re(s.shape,i.shape,\"Error in huberLoss: \");let u=ft(n),l=Ee(lt(i,s)),c=uo(l,u),p=lt(l,c),m=Y($(ft(.5),Wt(c)),$(u,p));return Hr(m,a,o)}var XA=k({huberLoss_:a8});function l8(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\")),Re(s.shape,i.shape,\"Error in logLoss: \");let u=ft(1),l=ft(n),c=Ut($(s,Nr(Y(i,l)))),p=$(lt(u,s),Nr(Y(lt(u,i),l))),m=lt(c,p);return Hr(m,a,o)}var YA=k({logLoss_:l8});function u8(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\")),Re(o.shape,s.shape,\"Error in meanSquaredError: \");let a=Tm(o,s);return Hr(a,i,n)}var ZA=k({meanSquaredError_:u8});function c8(r,t){let e=v(r,\"labels\",\"sigmoidCrossEntropyWithLogits\"),n=v(t,\"logits\",\"sigmoidCrossEntropyWithLogits\");Re(e.shape,n.shape,\"Error in sigmoidCrossEntropyWithLogits: \");let o=Pr(n),s=$(n,e),i=Su(ir(Ut(Ee(n))));return Y(lt(o,s),i)}function p8(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\")),Re(s.shape,i.shape,\"Error in sigmoidCrossEntropy: \"),n>0){let l=ft(n),c=ft(1),p=ft(.5);s=Y($(s,lt(c,l)),$(p,l))}let u=c8(s,i);return Hr(u,a,o)}var JA=k({sigmoidCrossEntropy_:p8});function m8(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 mn((o,s,i)=>{let u=hm(s,[e],!0),l=lt(Q(s,\"float32\"),u);i([o,l]);let c=Ut($(l,o));return{value:pt(c,[e]),gradFunc:(f,d)=>{let[h,g]=d,x=So(f.shape,[e]);return[$(R(f,x),lt(Q(h,\"float32\"),ir(g))),$(R(f,x),lt(ir(g),Q(h,\"float32\")))]}}})(r,t)}function f8(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\")),Re(s.shape,i.shape,\"Error in softmaxCrossEntropy: \"),n>0){let l=ft(n),c=ft(1),p=ft(s.shape[1]);s=Y($(s,lt(c,l)),ct(l,p))}let u=m8(s,i);return Hr(u,a,o)}var QA=k({softmaxCrossEntropy_:f8});function d8(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=T.runKernel(su,u);return{outputIndices:l[0],outputValues:l[1],emptyRowIndicator:l[2],reverseIndexMap:l[3]}}var t2=k({sparseFillEmptyRows_:d8});function h8(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=T.runKernel(ll,i);return{outputIndices:a[0],outputShape:a[1]}}var e2=k({sparseReshape_:h8});function g8(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 T.runKernel(iu,i)}var r2=k({sparseSegmentMean_:g8});function x8(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 T.runKernel(au,i)}var n2=k({sparseSegmentSum_:x8});function y8(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=T.runKernel(uu,p,c);return{nGrams:m[0],nGramsSplits:m[1]}}var o2=k({stringNGrams_:y8});function b8(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=T.runKernel(cu,i,s);return{indices:a[0],values:a[1],shape:a[2]}}var s2=k({stringSplit_:b8});function w8(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 T.runKernel(pu,o,n)}var i2=k({stringToHashBucketFast_:w8});function I8(r,t,e,n=!0){let o=v(r,\"input\",\"staticRegexReplace\",\"string\"),s={pattern:t,rewrite:e,replaceGlobal:n};return T.runKernel(sc,{x:o},s)}var a2=k({staticRegexReplace_:I8});var C8={fft:Au,ifft:Il,rfft:Du,irfft:km},v8={hammingWindow:kA,hannWindow:by,frame:wy,stft:TA},dn={flipLeftRight:EA,grayscaleToRGB:AA,resizeNearestNeighbor:Ny,resizeBilinear:Sy,rotateWithOffset:DA,cropAndResize:_A,nonMaxSuppression:$A,nonMaxSuppressionAsync:OA,nonMaxSuppressionWithScore:PA,nonMaxSuppressionWithScoreAsync:MA,nonMaxSuppressionPadded:LA,nonMaxSuppressionPaddedAsync:zA,threshold:BA,transform:VA},iN={bandPart:GA,gramSchmidt:WA,qr:HA},S8={absoluteDifference:qA,computeWeightedLoss:Hr,cosineDistance:KA,hingeLoss:jA,huberLoss:XA,logLoss:YA,meanSquaredError:ZA,sigmoidCrossEntropy:JA,softmaxCrossEntropy:QA},N8={sparseFillEmptyRows:t2,sparseReshape:e2,sparseSegmentMean:r2,sparseSegmentSum:n2},k8={stringNGrams:o2,stringSplit:s2,stringToHashBucketFast:i2,staticRegexReplace:a2};var J={};Kt(J,{Serializable:()=>Ch,SerializationMap:()=>pa,registerClass:()=>aN});var Ch=class{getClassName(){return this.constructor.className}static fromConfig(t,e){return new t(e)}},pa=class{constructor(){this.classNameMap={}}static getMap(){return pa.instance==null&&(pa.instance=new pa),pa.instance}static register(t){pa.getMap().classNameMap[t.className]=[t,t.fromConfig]}};function aN(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.\"),pa.register(r)}var qr=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 Tt(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 qx(t,e)}dispose(){this.iterations_!=null&&Tt(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:\"iter\",tensor:ft(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(qr,Symbol.hasInstance,{value:r=>r.minimize!=null&&r.computeGradients!=null&&r.applyGradients!=null});var Tc=class extends qr{static get className(){return\"Adadelta\"}constructor(t,e,n=null){super(),this.learningRate=t,this.rho=e,this.epsilon=n,this.accumulatedGrads=[],this.accumulatedUpdates=[],n==null&&(this.epsilon=T.backend.epsilon())}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=T.registeredVariables[n],i=!1;this.accumulatedGrads[o]==null&&(this.accumulatedGrads[o]={originalName:`${n}/accum_grad`,variable:B(()=>vt(s).variable(i))}),this.accumulatedUpdates[o]==null&&(this.accumulatedUpdates[o]={originalName:`${n}/accum_var`,variable:B(()=>vt(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=Y($(u,this.rho),$(Wt(a),1-this.rho)),p=$(ct(Ne(Y(l,this.epsilon)),Ne(Y(u,this.epsilon))),a),m=Y($(l,this.rho),$(Wt(p),1-this.rho));u.assign(c),l.assign(m);let f=Y($(p,-this.learningRate),s);s.assign(f)})}),this.incrementIterations()}dispose(){this.accumulatedUpdates!=null&&(Tt(this.accumulatedGrads.map(t=>t.variable)),Tt(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)}};var _c=class extends qr{static get className(){return\"Adagrad\"}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=T.registeredVariables[n];this.accumulatedGrads[o]==null&&(this.accumulatedGrads[o]={originalName:`${n}/accumulator`,variable:B(()=>vo(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=Y(a,Wt(i));a.assign(u);let l=Y($(ct(i,Ne(Y(u,T.backend.epsilon()))),-this.learningRate),s);s.assign(l)})}),this.incrementIterations()}dispose(){this.accumulatedGrads!=null&&Tt(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)}};var Ec=class extends qr{static get className(){return\"Adam\"}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=ft(e).variable(),this.accBeta2=ft(n).variable()}),o==null&&(this.epsilon=T.backend.epsilon())}applyGradients(t){let e=Array.isArray(t)?t.map(n=>n.name):Object.keys(t);B(()=>{let n=lt(1,this.accBeta1),o=lt(1,this.accBeta2);e.forEach((s,i)=>{let a=T.registeredVariables[s],u=!1;this.accumulatedFirstMoment[i]==null&&(this.accumulatedFirstMoment[i]={originalName:`${s}/m`,variable:B(()=>vt(a).variable(u))}),this.accumulatedSecondMoment[i]==null&&(this.accumulatedSecondMoment[i]={originalName:`${s}/v`,variable:B(()=>vt(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=Y($(c,this.beta1),$(l,1-this.beta1)),f=Y($(p,this.beta2),$(Wt(l),1-this.beta2)),d=ct(m,n),h=ct(f,o);c.assign(m),p.assign(f);let g=Y($(ct(d,Y(Ne(h),this.epsilon)),-this.learningRate),a);a.assign(g)}),this.accBeta1.assign($(this.accBeta1,this.beta1)),this.accBeta2.assign($(this.accBeta2,this.beta2))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),this.accumulatedFirstMoment!=null&&Tt(this.accumulatedFirstMoment.map(t=>t.variable)),this.accumulatedSecondMoment!=null&&Tt(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(cn(this.beta1,this.iterations_+1)),this.accBeta2.assign(cn(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)}};var Ac=class extends qr{static get className(){return\"Adamax\"}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=ft(0).variable(),this.accBeta1=ft(e).variable()}),o==null&&(this.epsilon=T.backend.epsilon())}applyGradients(t){let e=Array.isArray(t)?t.map(n=>n.name):Object.keys(t);B(()=>{let n=lt(1,this.accBeta1),o=ct(-this.learningRate,Y($(this.iteration,this.decay),1));e.forEach((s,i)=>{let a=T.registeredVariables[s],u=!1;this.accumulatedFirstMoment[i]==null&&(this.accumulatedFirstMoment[i]={originalName:`${s}/m`,variable:vt(a).variable(u)}),this.accumulatedWeightedInfNorm[i]==null&&(this.accumulatedWeightedInfNorm[i]={originalName:`${s}/v`,variable:vt(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=Y($(c,this.beta1),$(l,1-this.beta1)),f=$(p,this.beta2),d=Ee(l),h=Tn(f,d);c.assign(m),p.assign(h);let g=Y($(ct(o,n),ct(m,Y(h,this.epsilon))),a);a.assign(g)}),this.iteration.assign(Y(this.iteration,1)),this.accBeta1.assign($(this.accBeta1,this.beta1))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),this.accumulatedFirstMoment!=null&&Tt(this.accumulatedFirstMoment.map(t=>t.variable)),this.accumulatedWeightedInfNorm!=null&&Tt(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)}};var Cl=class extends qr{static get className(){return\"SGD\"}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=T.registeredVariables[n];B(()=>{let a=Y($(this.c,s),i);i.assign(a)})}),this.incrementIterations()}setLearningRate(t){this.learningRate=t,this.c!=null&&this.c.dispose(),this.c=$e(ft(-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)}};var Dc=class extends Cl{static get className(){return\"Momentum\"}constructor(t,e,n=!1){super(t),this.learningRate=t,this.momentum=e,this.useNesterov=n,this.accumulations=[],this.m=ft(this.momentum)}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=T.registeredVariables[n];this.accumulations[o]==null&&(this.accumulations[o]={originalName:`${n}/momentum`,variable:B(()=>vt(s).variable(!1))});let i=this.accumulations[o].variable,a=Array.isArray(t)?t[o].tensor:t[n];a!=null&&B(()=>{let u,l=Y($(this.m,i),a);this.useNesterov?u=Y($(this.c,Y(a,$(l,this.m))),s):u=Y($(this.c,l),s),i.assign(l),s.assign(u)})}),this.incrementIterations()}dispose(){this.m.dispose(),this.accumulations!=null&&Tt(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)}};var $c=class extends qr{static get className(){return\"RMSProp\"}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=T.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=T.registeredVariables[n],i=!1;this.accumulatedMeanSquares[o]==null&&(this.accumulatedMeanSquares[o]={originalName:`${n}/rms`,variable:B(()=>vt(s).variable(i))}),this.accumulatedMoments[o]==null&&(this.accumulatedMoments[o]={originalName:`${n}/momentum`,variable:B(()=>vt(s).variable(i))}),this.accumulatedMeanGrads[o]==null&&this.centered&&(this.accumulatedMeanGrads[o]={originalName:`${n}/mg`,variable:B(()=>vt(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=Y($(u,this.decay),$(Wt(a),1-this.decay));if(this.centered){let p=this.accumulatedMeanGrads[o].variable,m=Y($(p,this.decay),$(a,1-this.decay)),f=ct($(a,this.learningRate),Ne(lt(c,Y(Wt(m),this.epsilon)))),d=Y($(l,this.momentum),f);u.assign(c),p.assign(m),l.assign(d);let h=lt(s,d);s.assign(h)}else{let p=Y($(u,this.decay),$(Wt(a),1-this.decay)),m=Y($(l,this.momentum),ct($(a,this.learningRate),Ne(Y(p,this.epsilon))));u.assign(p),l.assign(m);let f=lt(s,m);s.assign(f)}})}),this.incrementIterations()}dispose(){this.accumulatedMeanSquares!=null&&Tt(this.accumulatedMeanSquares.map(t=>t.variable)),this.accumulatedMeanGrads!=null&&this.centered&&Tt(this.accumulatedMeanGrads.map(t=>t.variable)),this.accumulatedMoments!=null&&Tt(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)}};var T8=[Tc,_c,Ec,Ac,Dc,$c,Cl];function l2(){for(let r of T8)aN(r)}var Mr={};Kt(Mr,{browserFiles:()=>c2,browserHTTPRequest:()=>f2,concatenateArrayBuffers:()=>em,copyModel:()=>lE,decodeWeights:()=>ax,encodeWeights:()=>q_,fromMemory:()=>d2,fromMemorySync:()=>fN,getLoadHandlers:()=>J_,getModelArtifactsForJSON:()=>rm,getModelArtifactsForJSONSync:()=>R0,getModelArtifactsInfoForJSON:()=>Zi,getSaveHandlers:()=>Z_,getWeightSpecs:()=>ux,http:()=>_y,isHTTPScheme:()=>Ty,listModels:()=>iE,loadWeights:()=>p2,moveModel:()=>uE,registerLoadRouter:()=>Y_,registerSaveRouter:()=>X_,removeModel:()=>aE,weightsLoaderFactory:()=>pN,withSaveHandler:()=>h2,withSaveHandlerSync:()=>g2});var _8=\"model\",E8=\".json\",A8=\".weights.bin\";function u2(r){return new Promise(t=>setTimeout(t)).then(r)}var vl=class{constructor(t){if(!L().getBool(\"IS_BROWSER\"))throw new Error(\"browserDownloads() cannot proceed because the current environment is not a browser.\");t.startsWith(vl.URL_SCHEME)&&(t=t.slice(vl.URL_SCHEME.length)),(t==null||t.length===0)&&(t=_8),this.modelJsonFileName=t+E8,this.weightDataFileName=t+A8}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=lx(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 u2(()=>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 u2(()=>a.dispatchEvent(new MouseEvent(\"click\")))}return{modelArtifactsInfo:Zi(t)}}}};vl.URL_SCHEME=\"downloads://\";var lN=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=rm(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,em(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=>$0(s.name)),o={};for(let s of t)s.paths.forEach(i=>{let a=$0(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}},D8=r=>L().getBool(\"IS_BROWSER\")&&!Array.isArray(r)&&r.startsWith(vl.URL_SCHEME)?$8(r.slice(vl.URL_SCHEME.length)):null;ve.registerSaveRouter(D8);function $8(r=\"model\"){return new vl(r)}function c2(r){return new lN(r)}var ky=class{constructor(t){if(this.shards=[],this.previousShardIndex=0,t instanceof Array||(t=[t]),t=t.map(n=>or(n)?n.buffer:n),t.length===0)return;this.bufferUniformSize=t[0].byteLength;let e=0;for(let n=0;n=this.byteLength)return-1;if(this.bufferUniformSize!=null)return this.previousShardIndex=Math.floor(t/this.bufferUniformSize),this.previousShardIndex;function e(o){return t=o.end?1:0}if(e(this.shards[this.previousShardIndex])===0)return this.previousShardIndex;let n=R8(this.shards,e);return n===-1?-1:(this.previousShardIndex=n,this.previousShardIndex)}};function R8(r,t){let e=0,n=r.length;for(;e<=n;){let o=Math.floor((n-e)/2)+e,s=t(r[o]);if(s===0)return o;s<0?n=o:e=o+1}return-1}function uN(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 cN(r,t){t==null&&(t={});let e=t.fetchFunc==null?L().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 uN(n,t.onProgress,o,s)).map(p=>p.arrayBuffer()),u=.5,l=1;return t.onProgress==null?await Promise.all(a):await uN(a,t.onProgress,u,l)}async function p2(r,t=\"\",e,n){return pN(i=>cN(i,{requestInit:n}))(r,t,e)}function pN(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=mh[x]*te(g.shape),w=()=>{o[d]=!0,s[d]==null&&(s[d]=[]),s[d].push({manifestEntry:g,groupOffset:h,sizeBytes:b})};n!=null?n.forEach((I,N)=>{I===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=new ky(c.slice(m,m+d));s[f].forEach(x=>{let b=h.slice(x.groupOffset,x.groupOffset+x.sizeBytes),w=ax(b,[x.manifestEntry]);for(let I in w)p[I]=w[I]}),m+=d}),p}}var F8=\"application/octet-stream\",O8=\"application/json\",vh=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=L().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=lx(t,n);e.body.append(\"model.json\",new Blob([JSON.stringify(o)],{type:O8}),\"model.json\"),t.weightData!=null&&e.body.append(\"model.weights.bin\",new Blob([t.weightData],{type:F8}),\"model.weights.bin\");let s=await this.fetch(this.path,e);if(s.ok)return{modelArtifactsInfo:Zi(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 rm(e,s=>this.loadWeights(s))}async loadWeights(t){let e=Array.isArray(this.path)?this.path[1]:this.path,[n,o]=P8(e),s=this.weightPathPrefix||n,i=ux(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 cN(a,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress});return[i,em(l)]}};vh.URL_SCHEME_REGEX=/^https?:\\/\\//;function P8(r){let t=r.lastIndexOf(\"/\"),e=r.lastIndexOf(\"?\"),n=r.substring(0,t),o=e>t?r.substring(e):\"\";return[n+\"/\",o]}function Ty(r){return r.match(vh.URL_SCHEME_REGEX)!=null}var m2=(r,t)=>{if(typeof fetch==\"undefined\"&&(t==null||t.fetchFunc==null))return null;{let e=!0;if(Array.isArray(r)?e=r.every(n=>Ty(n)):e=Ty(r),e)return _y(r,t)}return null};ve.registerSaveRouter(m2);ve.registerLoadRouter(m2);function _y(r,t){return new vh(r,t)}function f2(r,t){return _y(r,t)}var Sh=class{constructor(t){this.modelArtifacts=t}load(){return this.modelArtifacts}},Ey=class{constructor(t){this.saveHandler=t}save(t){return this.saveHandler(t)}},mN=class{constructor(t){t.load&&(this.load=()=>Promise.resolve(t.load())),t.save&&(this.save=e=>Promise.resolve(t.save(e)))}};function d2(r,t,e,n){let o=arguments;return new mN(fN(...o))}function fN(r,t,e,n){return arguments.length===1?r.modelTopology!=null||r.weightSpecs!=null?new Sh(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 Sh({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 Sh({modelTopology:r,weightSpecs:t,weightData:e,trainingConfig:n}))}function h2(r){return new Ey(r)}function g2(r){return new Ey(r)}var y2={};Kt(y2,{confusionMatrix:()=>x2});function M8(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=ua(Q(n,\"int32\"),e),i=ua(Q(o,\"int32\"),e),a=Vt(s),u=Bt(a,i);return Q(u,\"int32\")}var x2=k({confusionMatrix_:M8});var Ay={};Kt(Ay,{fromPixels:()=>U8,fromPixelsAsync:()=>G8,toPixels:()=>W8});var Rc;function b2(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(ih(oh,T.backendName)!=null){let d={pixels:r},h={numChannels:t};return T.runKernel(oh,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(Rc==null)if(typeof document==\"undefined\")if(typeof OffscreenCanvas!=\"undefined\"&&typeof OffscreenCanvasRenderingContext2D!=\"undefined\")Rc=new OffscreenCanvas(1,1).getContext(\"2d\");else throw new Error(\"Cannot parse input in current context. Reason: OffscreenCanvas Context2D rendering is not supported.\");else Rc=document.createElement(\"canvas\").getContext(\"2d\",{willReadFrequently:!0});Rc.canvas.width=l,Rc.canvas.height=c,Rc.drawImage(r,0,0,l,c),p=Rc.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 U8=k({fromPixels_:b2});var Dy={};Kt(Dy,{prepareAndValidate:()=>w2});function w2(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(te(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 ze={};Kt(ze,{assertParamsValid:()=>q8,computeFlatOffset:()=>Z8,computeOutShape:()=>j8,getNormalizedAxes:()=>X8,isSliceContinous:()=>Y8,maskToAxes:()=>K8,parseSliceParams:()=>hN,sliceInfo:()=>J8,startForAxis:()=>_2,startIndicesWithElidedDims:()=>N2,stopForAxis:()=>E2,stopIndicesWithElidedDims:()=>k2,stridesForAxis:()=>T2,stridesWithElidedDims:()=>C2});var dN=-2,H8=-1;function q8(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 K8(r){let t=[],e=0;for(;r>0;)r&1&&t.push(e),r/=2,e++;return t}function j8(r,t,e){let n=[];for(let o=0;o0){let f=t[0],d=e+1;c=N2(i,f,d,n,r),p=k2(a,f,d,o,r),m=C2(s,f,d,r)}else for(let f=0;f-1)s[a]=0;else{let u=v2(t,e,a),l=n[u];r&1<-1)s[a]=Number.MAX_SAFE_INTEGER;else{let u=v2(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=Ap(0,i,u-1),i}function E2(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=Ap(0,i,u):i=Ap(-1,i,u-1),i}function Y8(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 Z8(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 J8(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)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(I&&m.strides[w]<=0)throw Error(\"only stride 1 allowed on non-range indexing.\");h=h&&m.strides[w]===1;let D=!!(m.beginMask&1<=N)throw Error(`slice index ${m.begin[w]} of dimension ${w} out of bounds.`)}else m.begin[w]=I2(m.begin[w],0,m.strides[w],N,E,A),m.end[w]=I2(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=d&&(w===0&&m.strides[w]===1||D);let F,P=!1;if(m.beginValid&&m.endValid?(F=m.end[w]-m.begin[w],P=!0):I?(F=1,P=!0):D&&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[I]):I===dN&&x.push(1)}return{finalShapeSparse:x.filter((w,I)=>m.finalShapeGatherIndices[I]!==dN),finalShape:x,isIdentity:f,sliceDim0:d,isSimpleSlice:h,begin:m.begin,end:m.end,strides:m.strides}}function Q8(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 A2=\"4.5.0\";var Nh=class{static sgd(t){return new Cl(t)}static momentum(t,e,n=!1){return new Dc(t,e,n)}static rmsprop(t,e=.9,n=0,o=null,s=!1){return new $c(t,e,n,o,s)}static adam(t=.001,e=.9,n=.999,o=null){return new Ec(t,e,n,o)}static adadelta(t=.001,e=.95,n=null){return new Tc(t,e,n)}static adamax(t=.002,e=.9,n=.999,o=null,s=0){return new Ac(t,e,n,o,s)}static adagrad(t,e=.1){return new _c(t,e)}};var Fc=Nh;var tY=(()=>typeof requestAnimationFrame!=\"undefined\"?requestAnimationFrame:typeof setImmediate!=\"undefined\"?setImmediate:r=>r())();function kh(){return new Promise(r=>tY(()=>r()))}var S={};Kt(S,{ERF_A1:()=>hY,ERF_A2:()=>gY,ERF_A3:()=>xY,ERF_A4:()=>yY,ERF_A5:()=>bY,ERF_P:()=>dY,PARALLELIZE_THRESHOLD:()=>$y,RowPartitionType:()=>ma,SELU_SCALE:()=>xN,SELU_SCALEALPHA:()=>gN,applyActivation:()=>Nc,assertAndGetBroadcastShape:()=>Mt,assertAxesAreInnerMostDims:()=>Lj,assertParamsConsistent:()=>eY,assignToTypedArray:()=>NY,axesAreInnerMostDims:()=>U0,calculateShapes:()=>yA,checkEinsumDimSizes:()=>DY,checkPadOnDimRoundingMode:()=>Se,combineLocations:()=>SE,combineRaggedTensorToTensorShapes:()=>nY,complexWithEvenIndex:()=>CY,complexWithOddIndex:()=>vY,computeConv2DInfo:()=>hc,computeConv3DInfo:()=>dE,computeDefaultPad:()=>W0,computeDilation2DInfo:()=>MK,computeOptimalWindowSize:()=>aY,computeOutAndReduceShapes:()=>H0,computeOutShape:()=>rY,computePool2DInfo:()=>G0,computePool3DInfo:()=>LK,convertConv2DDataFormat:()=>hE,decodeEinsumEquation:()=>EY,eitherStridesOrDilationsAreOne:()=>$r,expandShapeToKeepDim:()=>So,exponent:()=>TY,exponents:()=>kY,fromStringArrayToUint8:()=>JY,fromUint8ToStringArray:()=>ZY,getAxesPermutation:()=>q0,getBroadcastDims:()=>IE,getComplexWithIndex:()=>SY,getEinsumComputePath:()=>$Y,getEinsumPermutation:()=>AY,getFusedBiasGradient:()=>Sc,getFusedDyActivation:()=>vc,getImageCenter:()=>lY,getInnerMostAxes:()=>zj,getPermuted:()=>cY,getRaggedRank:()=>sY,getReductionAxes:()=>ye,getReshaped:()=>uY,getReshapedPermuted:()=>pY,getRowPartitionTypesHelper:()=>oY,getSliceBeginCoords:()=>mY,getSliceSize:()=>fY,getSparseFillEmptyRowsIndicesDenseShapeMismatch:()=>PY,getSparseFillEmptyRowsNegativeIndexErrorMessage:()=>MY,getSparseFillEmptyRowsOutOfRangeIndexErrorMessage:()=>LY,getSparseReshapeEmptyTensorZeroOutputDimErrorMessage:()=>VY,getSparseReshapeInputOutputMismatchErrorMessage:()=>WY,getSparseReshapeInputOutputMultipleErrorMessage:()=>GY,getSparseReshapeMultipleNegativeOneOutputDimErrorMessage:()=>zY,getSparseReshapeNegativeOutputDimErrorMessage:()=>BY,getSparseSegmentReductionIndicesOutOfRangeErrorMessage:()=>KY,getSparseSegmentReductionNegativeSegmentIdsErrorMessage:()=>UY,getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage:()=>HY,getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage:()=>qY,getUndoAxesPermutation:()=>xh,isIdentityPermutation:()=>RY,log:()=>Rq,mergeRealAndImagArrays:()=>wY,prepareAndValidate:()=>w2,prepareSplitSize:()=>OY,segment_util:()=>bN,shouldFuse:()=>kc,slice_util:()=>ze,splitRealAndImagArrays:()=>IY,stridesOrDilationsArePositive:()=>ea,tupleValuesAreOne:()=>ao,upcastType:()=>ur,validateDefaultValueShape:()=>iY,validateInput:()=>_m,validateUpdateShape:()=>rN,warn:()=>Yi});function eY(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 rY(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 oY(r){let t={FIRST_DIM_SIZE:ma.FIRST_DIM_SIZE,VALUE_ROWIDS:ma.VALUE_ROWIDS,ROW_LENGTHS:ma.ROW_LENGTHS,ROW_SPLITS:ma.ROW_SPLITS,ROW_LIMITS:ma.ROW_LIMITS,ROW_STARTS:ma.ROW_STARTS},e=[];for(let n of r)if(n in t)e.push(t[n]);else break;return e}function sY(r){return r.length===0?0:r[0]===ma.FIRST_DIM_SIZE?r.length-1:r.length}function iY(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 $y=30;function aY(r){return r<=$y?r:$p(r,Math.floor(Math.sqrt(r)))}function lY(r,t,e){let n=e*(typeof r==\"number\"?r:r[0]),o=t*(typeof r==\"number\"?r:r[1]);return[n,o]}function uY(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 pY(r,t,e,n=!0){let o=[];n?o.push(r[0]/e):o.push(r[0]*e);for(let s=1;s\",_Y=/->/g,D2=\",\",$2=\"...\";function EY(r,t){r=r.replace(/\\s/g,\"\");let e=(r.length-r.replace(_Y,\"\").length)/yN.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 (\"${yN}\").`);let[n,o]=r.split(yN);_(n.indexOf($2)===-1,()=>`The ellipsis notation (\"${$2}\") is not supported yet.`);let s=n.split(D2),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 DY(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 $Y(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 FY(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 PY(r){return`Received SparseTensor with denseShape[0] = 0 but\n indices.shape[0] = ${r}`}function MY(r,t){return`indices(${r}, 0) is invalid: ${t} < 0`}function LY(r,t,e){return`indices(${r}, 0) is invalid: ${t} >= ${e}`}function zY(r,t){return`only one output dimension may be -1, not both ${r} and ${t}`}function BY(r,t){return`size ${r} must be non-negative, not ${t}`}function VY(){return\"reshape cannot infer the missing input size for an empty tensor unless all specified input sizes are non-zero\"}function GY(r,t){let e=te(r),n=te(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 WY(r,t){let e=te(r),n=te(t);return`Input to reshape is a tensor with ${e} dense values, but the requested shape has ${n}. inputShape=${r} outputShape=${t}`}function UY(){return\"segment ids must be >= 0\"}function HY(){return\"segment ids are not increasing\"}function qY(r,t){return`Segment id ${r} out of range [0, ${t}), possibly because segmentIds input is not sorted.`}function KY(r,t,e){return`Bad: indices[${r}] == ${t} out of range [0, ${e})`}var bN={};Kt(bN,{collectGatherOpShapeInfo:()=>YY,computeOutShape:()=>XY,segOpComputeOptimalWindowSize:()=>jY});function jY(r,t){let e=!1,n;for(r<=$y?(n=r,e=!0):n=$p(r,Math.floor(Math.sqrt(r)));!e;)n>t||n===r?e=!0:n=$p(r,n+1);return n}function XY(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(eQp(t))}catch(t){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${t}`)}}function JY(r){return r.map(t=>hu(t))}var Kr={};Kt(Kr,{nonMaxSuppressionV3Impl:()=>Iy,nonMaxSuppressionV4Impl:()=>Cy,nonMaxSuppressionV5Impl:()=>vy,whereImpl:()=>hy});l2();var Ry={kernelName:_i,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(r,No(Q(e,\"float32\"),-1))}}};var R2={kernelName:Ho,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Wt(Q(e,\"float32\")),o=Ne(lt(ft(1),n));return Ut(ct(r,o))}}}};var F2={kernelName:qo,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Ne(lt(Wt(Q(e,\"float32\")),1));return ct(r,n)}}}};var O2={kernelName:oo,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=Mt(e.shape,n.shape);return{a:()=>{let a=r,u=ye(e.shape,o);return u.length>0&&(a=pt(a,u)),R(a,e.shape)},b:()=>{let a=r,u=ye(n.shape,o);return u.length>0&&(a=pt(a,u)),R(a,n.shape)}}}};var P2={kernelName:Ko,saveAllInputs:!0,gradFunc:(r,t)=>{let e={};return t.forEach((n,o)=>{e[o]=()=>r.clone()}),e}};var M2={kernelName:Ei,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>vt(e)}}};var L2={kernelName:Ai,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>vt(e)}}};var z2={kernelName:jo,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,Ne(lt(ft(1),Wt(Q(e,\"float32\")))))}}};var B2={kernelName:Xo,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Ne(Y(ft(1),Wt(Q(e,\"float32\"))));return ct(r,n)}}}};var V2={kernelName:Jo,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=Mt(e.shape,n.shape);return{a:()=>{let a=Y(Wt(e),Wt(n)),u=$(r,ct(n,a)),l=ye(e.shape,o);return l.length>0&&(u=pt(u,l)),R(u,e.shape)},b:()=>{let a=Y(Wt(e),Wt(n)),u=Ut($(r,ct(e,a))),l=ye(n.shape,o);return l.length>0&&(u=pt(u,l)),R(u,n.shape)}}}};var G2={kernelName:Yo,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,Y(Wt(Q(e,\"float32\")),1))}}};var W2={kernelName:Zo,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,lt(ft(1),Wt(Q(e,\"float32\"))))}}};function QY(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}.`),Se(\"avgPool3dGrad\",o,s);let p={dy:u,input:l},m={filterSize:e,strides:n,pad:o,dimRoundingMode:s},f=T.runKernel(Xl,p,m);return c?R(f,[f.shape[1],f.shape[2],f.shape[3],f.shape[4]]):f}var U2=k({avgPool3dGrad_:QY});var H2={kernelName:Di,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{filterSize:o,strides:s,pad:i,dimRoundingMode:a}=e;return{x:()=>U2(r,n,o,s,i,a)}}};function tZ(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=T.runKernel(Fp,c,p);return l?R(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var q2=k({avgPoolGrad_:tZ});var K2={kernelName:Qo,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{filterSize:o,strides:s,pad:i}=e;return{x:()=>q2(r,n,o,s,i)}}};var j2={kernelName:ts,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t,e)=>{let[n,o]=t,{transposeA:s,transposeB:i}=e;return!s&&!i?{a:()=>Bt(r,o,!1,!0),b:()=>Bt(n,r,!0,!1)}:!s&&i?{a:()=>Bt(r,o,!1,!1),b:()=>Bt(r,n,!0,!1)}:s&&!i?{a:()=>Bt(o,r,!1,!0),b:()=>Bt(n,r,!1,!1)}:{a:()=>Bt(o,r,!0,!0),b:()=>Bt(r,n,!0,!0)}}};var X2={kernelName:$i,gradFunc:(r,t,e)=>{let{blockShape:n,crops:o}=e;return{x:()=>Tu(r,n,o)}}};var Y2={kernelName:h_,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:()=>pt(r,a,!0)}}};var Z2={kernelName:ho,gradFunc:r=>({x:()=>r.clone()})};var J2={kernelName:es,gradFunc:r=>({x:()=>vt(r)})};var Q2={kernelName:go,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{clipValueMin:o,clipValueMax:s}=e;return{x:()=>be(Or(pn(n,o),Gn(n,s)),r,vt(r))}}};var tD={kernelName:Zl,inputsToSave:[\"x\"],gradFunc:Ry.gradFunc};var eD={kernelName:Ri,saveAllInputs:!0,gradFunc:(r,t,e)=>{let n=t.map(u=>u.shape),{axis:o}=e,s=fr(o,t[0].shape)[0],i=n.map(u=>u[s]);return gr(r,i,s).map(u=>()=>u)}};var rD={kernelName:rs,inputsToSave:[\"x\",\"filter\"],gradFunc:(r,t,e)=>{let[n,o]=t,{dilations:s,strides:i,pad:a,dataFormat:u}=e;return _(ao(s),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`),{x:()=>cm(n.shape,r,o,i,a,u),filter:()=>Dm(n,r,o.shape,i,a,u)}}};var nD={kernelName:ns,inputsToSave:[\"dy\",\"filter\"],gradFunc:(r,t,e)=>{let[n,o]=t,{strides:s,pad:i,dataFormat:a,dimRoundingMode:u}=e;return{dy:()=>kn(r,o,s,i,a,1,u),filter:()=>Dm(r,n,o.shape,s,i,a,u)}}};function eZ(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 T.runKernel($a,a,u)}var oD=k({conv3DBackpropFilter_:eZ});var sD={kernelName:os,inputsToSave:[\"x\",\"filter\"],gradFunc:(r,t,e)=>{let{dilations:n,strides:o,pad:s}=e;_(ao(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:()=>Rx(i.shape,r,a,o,s),filter:()=>oD(i,r,a.shape,o,s)}}};var iD={kernelName:ss,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(Ut(Cm(Q(e,\"float32\"))),r)}}};var aD={kernelName:is,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(vm(Q(e,\"float32\")),r)}}};var lD={kernelName:as,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{axis:o,exclusive:s,reverse:i}=e;return{x:()=>{let a=q0([o],n.rank),u=fm(r,o,s,!i);return a!=null&&(u=Vt(u,a)),u}}}};var uD={kernelName:ls,inputsToSave:[\"x\",\"filter\"],gradFunc:(r,t,e)=>{let{dilations:n,strides:o,pad:s,dimRoundingMode:i}=e,a=n==null?[1,1]:n;_(ao(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]}.`),_($r(o,a),()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${o} and dilations '${a}'.`),Se(\"depthwiseConv2d\",s,i),{x:()=>yy(u.shape,r,l,o,s,a,i),filter:()=>xy(u,r,l.shape,o,s,a,i)}}};var cD={kernelName:us,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:()=>T.runKernel(tu,s,e),filter:()=>T.runKernel(eu,i,e)}}};var pD={kernelName:ps,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t,n={dy:r,y:e};return{x:()=>T.runKernel(Ma,n)}}};var mD={kernelName:La,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t,n=$(ir(Ut(Wt(e))),2/Math.sqrt(Math.PI));return{x:()=>$(r,n)}}};var fD={kernelName:ms,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(r,e)}}};var dD={kernelName:Fi,inputsToSave:[\"input\"],gradFunc:(r,t)=>{let[e]=t;return{input:()=>R(r,e.shape)}}};var hD={kernelName:fs,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(r,ir(e))}}};var gD={kernelName:ds,gradFunc:r=>({x:()=>vt(r)})};var xD={kernelName:hs,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=Mt(e.shape,n.shape);return{a:()=>{let a=ct(r,Q(n,\"float32\")),u=ye(e.shape,o);return u.length>0?R(pt(a,u),e.shape):a},b:()=>{let a=$(r,Q(e,\"float32\")),u=ye(n.shape,o);u.length>0&&(a=R(pt(a,u),n.shape));let l=Wt(n);return Ut(ct(a,Q(l,\"float32\")))}}}};var yD={kernelName:gs,inputsToSave:[\"x\",\"mean\",\"variance\",\"scale\"],gradFunc:(r,t,e)=>{let{varianceEpsilon:n}=e,[o,s,i,a]=t,u=a==null?ft(1):a,l=ye(s.shape,o.shape),c=[];if(s.rank===1){for(let I=0;Is.rank===1?R($($(r,Fr(R(f,[1,1,1,s.shape[0]]),c)),u),o.shape):R($($(r,f),u),o.shape),mean:()=>{let I=$($(f,ft(-1)),m);return s.rank===1&&(I=pt(I,l)),R(I,s.shape)},variance:()=>{let I=$($(d,p),m);return s.rank===1&&(I=pt(I,l)),R(I,s.shape)},scale:()=>{let I=$(p,f),N=$(r,I);return s.rank===1&&(N=pt(N,l)),R(N,s.shape)},offset:()=>{let I=r;return s.rank===1&&(I=pt(I,l)),R(I,s.shape)}}}};var ID={kernelName:Oi,inputsToSave:[\"x\",\"indices\"],gradFunc:(r,t,e)=>{let[n,o]=t,{axis:s}=e,i=fr(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=bD(0,p),h=bD(p+1,p+1+f),g=wD([c,[l],m]),x=R(r,g),b=R(o,[l]),w=wD([[p],d,h]),I=Vt(x,w),N=Am(I,b,n.shape[i]),E=xh(w);return N=Vt(N,E),N},indices:()=>o}}};function bD(r,t){let e=[];for(let n=r;n{let[e,n]=t;return{a:()=>vt(e),b:()=>vt(n)}}};var vD={kernelName:xo,gradFunc:r=>({x:()=>Q(r,\"float32\")})};var SD={kernelName:ys,gradFunc:r=>({x:()=>vt(r)})};var ND={kernelName:bs,gradFunc:r=>({x:()=>vt(r)})};var kD={kernelName:ws,gradFunc:r=>({x:()=>vt(r)})};var TD={kernelName:Is,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{alpha:o}=e,s=Fe(n,0);return{x:()=>be(s,r,$(r,o))}}};var _D={kernelName:vs,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,Y(e,1))}}};var ED={kernelName:Cs,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,Q(e,\"float32\"))}}};var AD={kernelName:x_,inputsToSave:[],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n]=t,{axis:o}=e;return{logits:()=>{let i=ir(n);return lt(r,$(pt(r,o,!0),i))}}}};function rZ(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 T.runKernel(Xa,a,u)}var DD=k({localResponseNormalizationBackprop_:rZ});var $D={kernelName:Ss,inputsToSave:[\"x\"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{depthRadius:s,bias:i,alpha:a,beta:u}=e;return{x:()=>DD(n,o,r,s,i,a,u)}}};function Fy(r,t,e,n){return t.rank$(r,Q(Rr(e,t),r.dtype))}}var wN={kernelName:Ns,inputsToSave:[\"x\"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let n=e,{reductionIndices:o}=n,s=t[0],i=t[1],a=fr(o,s.shape),u=Fy(r,i,s,a);return{x:()=>u.x()}}};var RD={kernelName:ks,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t;return{a:()=>$(r,Q(pn(e,n),\"float32\")),b:()=>$(r,Q(bl(e,n),\"float32\"))}}};function nZ(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}.`),Se(\"maxPool3dGrad\",s,i);let d={dy:c,input:p,output:m},h={filterSize:n,strides:o,pad:s,dimRoundingMode:i},g=T.runKernel(nu,d,h);return f?R(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}var FD=k({maxPool3dGrad_:nZ});var OD={kernelName:Pi,inputsToSave:[\"x\"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u}=e;return{x:()=>FD(r,n,o,s,i,a,u)}}};function oZ(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}.`),Se(\"maxPoolGrad\",s,i);let c={dy:a,input:u,output:l},p={filterSize:n,strides:o,pad:s,dimRoundingMode:i};return T.runKernel(Wp,c,p)}var PD=k({maxPoolGrad_:oZ});var MD={kernelName:Ts,inputsToSave:[\"x\"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{filterSize:s,strides:i,pad:a}=e;return{x:()=>PD(r,n,o,s,i,a)}}};var LD={kernelName:_s,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{axis:o}=e,s=fr(o,n.shape),a=H0(n.shape,s)[1],u=te(a);return{x:()=>{let c=n.shape.slice();s.forEach(f=>{c[f]=1});let p=R(r,c);return ct($(p,dr(n.shape,\"float32\")),u)}}}};var zD={kernelName:Es,inputsToSave:[\"x\"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let n=e,{axis:o}=n,[s,i]=t,a=fr(o,s.shape),u=Fy(r,i,s,a);return{x:()=>u.x()}}};var BD={kernelName:As,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t;return{a:()=>$(r,Q(Gn(e,n),\"float32\")),b:()=>$(r,Q(Fe(e,n),\"float32\"))}}};var VD={kernelName:Ds,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let n=t[0],{paddings:o}=e,s=o.map(i=>i[0]);return{x:()=>Ot(r,s,n.shape)}}};var GD={kernelName:Ya,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=Mt(e.shape,n.shape);return{a:()=>{let a=ye(e.shape,o);return a.length>0?R(pt(r,a),e.shape):r},b:()=>{let a=$(r,Ut(aa(ct(e,n)))),u=ye(n.shape,o);return u.length>0?R(pt(a,u),n.shape):a}}}};var WD={kernelName:$s,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=Mt(e.shape,n.shape);return{a:()=>{let a=$(r,Q(n,\"float32\")),u=ye(e.shape,o);return u.length>0?R(pt(a,u),e.shape):a},b:()=>{let a=$(r,Q(e,\"float32\")),u=ye(n.shape,o);return u.length>0?R(pt(a,u),n.shape):a}}}};var UD={kernelName:Mi,gradFunc:r=>({x:()=>Ut(r)})};var HD={kernelName:Rs,inputsToSave:[\"indices\"],gradFunc:(r,t)=>{let e=t[0];return{indices:()=>Te(e.shape,\"float32\")}}};var qD={kernelName:Li,gradFunc:r=>({x:()=>vt(r)})};var KD={kernelName:zi,saveAllInputs:!0,gradFunc:(r,t,e)=>{let{axis:n}=e;return xr(r,n).map(s=>()=>s)}};var IN={kernelName:Fs,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let n=t[0],{paddings:o}=e,s=o.map(i=>i[0]);return{x:()=>Ot(r,s,n.shape)}}};var jD={kernelName:Os,inputsToSave:[\"a\",\"b\"],outputsToSave:[!0],gradFunc:(r,t)=>{let[e,n,o]=t,s=e,i=n,a=Mt(s.shape,i.shape);return{a:()=>{let c=Q(i,\"float32\"),p=$(r,$(c,cn(s,lt(c,ft(1))))),m=ye(s.shape,a);return m.length>0&&(p=pt(p,m)),R(p,s.shape)},b:()=>{let c=Fe(s,0),p=be(c,Nr(s),vt(s)),m=$(r,$(o,p)),f=ye(i.shape,a);return f.length>0&&(m=pt(m,f)),R(m,i.shape)}}}};var XD={kernelName:Ps,inputsToSave:[\"x\",\"alpha\"],gradFunc:(r,t)=>{let[e,n]=t,o=Fe(e,0);return{x:()=>be(o,r,$(r,n)),alpha:()=>{let s=be(o,vt(r),$(r,e)),i=ye(n.shape,r.shape);return i.length>0&&(s=pt(s,i)),R(s,n.shape)}}}};function sZ(r,t,e){let n=r.shape.slice();n[e]=1;let o=R(t,n),s=gc(r,e,!0,!1),i=gc(r,e,!0,!0),a=$(s,i);return $(o,a)}function iZ(r,t,e){let n=r.shape.length,o=n-e.length,s=S.getAxesPermutation(e,n),i=r;s!=null&&(i=Vt(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=sZ(c,t,o);if(p=p.reshape(i.shape),s!=null){let m=S.getUndoAxesPermutation(s);p=Vt(p,m)}return p}var YD={kernelName:Ms,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:()=>iZ(n,r,s)}}};var ZD={kernelName:cs,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=Mt(e.shape,n.shape);return{a:()=>{let a=ct(r,Q(n,\"float32\")),u=ye(e.shape,o);return u.length>0?R(pt(a,u),e.shape):a},b:()=>{let a=$(r,Q(e,\"float32\")),u=ye(n.shape,o);u.length>0&&(a=R(pt(a,u),n.shape));let l=Wt(n);return Ut(ct(a,Q(l,\"float32\")))}}}};var JD={kernelName:Ls,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,Ut(Wt(e)))}}};var QD={kernelName:Gs,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t,n=$(Gn(e,6),No(e));return{x:()=>$(r,Q(n,\"float32\"))}}};var t$={kernelName:zs,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(r,Q(No(e),\"float32\"))}}};var e$={kernelName:Bi,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>R(r,e.shape)}}};var r$={kernelName:Vs,inputsToSave:[\"images\"],gradFunc:(r,t,e)=>{let[n]=t,o={dy:r,images:n};return{images:()=>T.runKernel(nl,o,e)}}};var n$={kernelName:Bs,inputsToSave:[\"images\"],gradFunc:(r,t,e)=>{let[n]=t,o={dy:r,images:n};return{images:()=>T.runKernel(rl,o,e)}}};var o$={kernelName:Ws,gradFunc:(r,t,e)=>{let{dims:n}=e,o=fr(n,r.shape);return{x:()=>hr(r,o)}}};var s$={kernelName:Us,gradFunc:r=>({x:()=>vt(r)})};var i$={kernelName:Hs,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>Ut(ct(r,$(cn(e,1.5),2)))}}};var a$={kernelName:Vi,inputsToSave:[\"condition\"],gradFunc:(r,t)=>{let[e]=t;return{condition:()=>Q(vt(e),\"float32\"),t:()=>$(r,Q(e,r.dtype)),e:()=>$(r,Q(Nu(e),r.dtype))}}};var l$={kernelName:qs,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Fe(e,ft(0)),o=ft(gN),s=ft(xN),i=$(r,s),a=$($(r,o),ir(Q(e,\"float32\")));return be(n,i,a)}}}};var u$={kernelName:Xs,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(r,$(e,lt(ft(1),e)))}}};var c$={kernelName:js,gradFunc:r=>({x:()=>vt(r)})};var p$={kernelName:Ks,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(Iu(Q(e,\"float32\")),r)}}};var m$={kernelName:al,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(mm(Q(e,\"float32\")),r)}}};var f$={kernelName:Gi,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{begin:o,size:s}=e,i=n.shape,[a,u]=hN(n,o,s),l=[];for(let c=0;cfn(r,l)}}};var d$={kernelName:Qs,outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n]=t,{dim:o}=e,s=!0,i=$(r,n);return{logits:()=>lt(i,$(pt(i,[o],s),n))}}};var h$={kernelName:Ys,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(r,tn(e))}}};var CN={kernelName:Wi,gradFunc:(r,t,e)=>{let{blockShape:n,paddings:o}=e;return{x:()=>wu(r,n,o)}}};var vN={kernelName:Ui,gradFunc:(r,t,e)=>{let{axis:n}=e;return{x:()=>se(r,n)}}};var g$={kernelName:Zs,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,$(Ne(Q(e,\"float32\")),2))}}};var x$={kernelName:lu,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(r,$(Q(e,\"float32\"),2))}}};var y$={kernelName:ti,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=ft(2);return{a:()=>$(r,$(o,lt(e,n))),b:()=>$(r,$(o,lt(n,e)))}}};var b$={kernelName:yo,gradFunc:r=>({x:()=>vt(r)})};var w$={kernelName:ei,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=Mt(e.shape,n.shape);return{a:()=>{let a=r,u=ye(e.shape,o);return u.length>0&&(a=pt(a,u)),R(a,e.shape)},b:()=>{let a=r,u=ye(n.shape,o);return u.length>0&&(a=pt(a,u)),R(Ut(a),n.shape)}}}};var I$={kernelName:Js,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,o=n.shape.slice(),{axis:s}=e;fr(s,n.shape).forEach(l=>{o[l]=1});let a=R(r,o),u=$(a,dr(n.shape,\"float32\"));return{x:()=>u}}};var C$={kernelName:ri,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,Wt(Iu(e)))}}};var v$={kernelName:ni,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(lt(ft(1),Wt(e)),r)}}};var S$={kernelName:so,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{reps:o}=e;return{x:()=>{let i=vt(n);if(n.rank===1)for(let a=0;a{let n=e,{perm:o}=n,s=xh(o);return{x:()=>Vt(r,s)}}};var k$={kernelName:Hi,gradFunc:(r,t,e)=>{let n=e,{axis:o}=n;return{value:()=>qe(r,o)}}};var T$={kernelName:fu,inputsToSave:[\"segmentIds\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>aZ(r,e)}}};function aZ(r,t){let e=Tn(t,vt(t)),n=la(r,e),o=pn(t,ft(0,\"int32\")),s=n.rank-o.rank;for(let a=0;a({x:()=>vt(r)})};var lZ=[Ry,R2,F2,O2,P2,M2,L2,z2,B2,V2,G2,W2,H2,K2,j2,X2,Y2,Z2,J2,Q2,tD,eD,nD,rD,sD,iD,aD,lD,uD,cD,ZD,pD,mD,fD,dD,hD,xD,gD,yD,ID,CD,vD,SD,ND,kD,TD,_D,ED,AD,$D,wN,wN,RD,OD,MD,LD,zD,BD,VD,GD,WD,UD,HD,qD,KD,IN,IN,jD,XD,YD,JD,QD,t$,e$,r$,n$,o$,s$,i$,a$,l$,u$,c$,p$,m$,f$,d$,h$,CN,CN,vN,vN,g$,y$,x$,b$,w$,I$,C$,v$,S$,N$,k$,T$,_$];for(let r of lZ)b_(r);O().prototype.abs=function(){return this.throwIfDisposed(),Ee(this)};O().prototype.acos=function(){return this.throwIfDisposed(),dx(this)};O().prototype.acosh=function(){return this.throwIfDisposed(),hx(this)};O().prototype.add=function(r){return this.throwIfDisposed(),Y(this,r)};O().prototype.all=function(r,t){return this.throwIfDisposed(),am(this,r,t)};O().prototype.any=function(r,t){return this.throwIfDisposed(),dc(this,r,t)};O().prototype.argMax=function(r){return this.throwIfDisposed(),ta(this,r)};O().prototype.argMin=function(r){return this.throwIfDisposed(),gx(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(),Q(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(),xx(this)};O().prototype.asinh=function(){return this.throwIfDisposed(),yx(this)};O().prototype.atan=function(){return this.throwIfDisposed(),bx(this)};O().prototype.atan2=function(r){return this.throwIfDisposed(),wx(this,r)};O().prototype.atanh=function(){return this.throwIfDisposed(),Ix(this)};O().prototype.avgPool=function(r,t,e,n){return this.throwIfDisposed(),bu(this,r,t,e,n)};O().prototype.batchToSpaceND=function(r,t){return this.throwIfDisposed(),wu(this,r,t)};O().prototype.batchNorm=function(r,t,e,n,o){return this.throwIfDisposed(),na(this,r,t,e,n,o)};O().prototype.broadcastTo=function(r){return this.throwIfDisposed(),oa(this,r)};O().prototype.cast=function(r){return this.throwIfDisposed(),Q(this,r)};O().prototype.ceil=function(){return this.throwIfDisposed(),Tx(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 Pt&&(r=[r]),se([this,...r],t)};O().prototype.conv1d=function(r,t,e,n,o,s){return this.throwIfDisposed(),um(this,r,t,e,n,o,s)};O().prototype.conv2dTranspose=function(r,t,e,n,o){return this.throwIfDisposed(),pm(this,r,t,e,n,o)};O().prototype.conv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),kn(this,r,t,e,n,o,s)};O().prototype.cos=function(){return this.throwIfDisposed(),Iu(this)};O().prototype.cosh=function(){return this.throwIfDisposed(),mm(this)};O().prototype.cumprod=function(r,t,e){return this.throwIfDisposed(),gc(this,r,t,e)};O().prototype.cumsum=function(r,t,e){return this.throwIfDisposed(),fm(this,r,t,e)};O().prototype.depthToSpace=function(r,t){return this.throwIfDisposed(),Ox(this,r,t)};O().prototype.depthwiseConv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),sa(this,r,t,e,n,o,s)};O().prototype.dilation2d=function(r,t,e,n,o){return this.throwIfDisposed(),Px(this,r,t,e,n,o)};O().prototype.divNoNan=function(r){return this.throwIfDisposed(),Mx(this,r)};O().prototype.div=function(r){return this.throwIfDisposed(),ct(this,r)};O().prototype.dot=function(r){return this.throwIfDisposed(),Lx(this,r)};O().prototype.elu=function(){return this.throwIfDisposed(),ia(this)};O().prototype.equal=function(r){return this.throwIfDisposed(),Rr(this,r)};O().prototype.erf=function(){return this.throwIfDisposed(),zx(this)};O().prototype.euclideanNorm=function(r,t){return this.throwIfDisposed(),Bx(this,r,t)};O().prototype.exp=function(){return this.throwIfDisposed(),ir(this)};O().prototype.expandDims=function(r){return this.throwIfDisposed(),ar(this,r)};O().prototype.expm1=function(){return this.throwIfDisposed(),Vx(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(),aa(this)};O().prototype.floorDiv=function(r){return this.throwIfDisposed(),im(this,r)};O().prototype.gather=function(r,t,e){return this.throwIfDisposed(),la(this,r,t,e)};O().prototype.greaterEqual=function(r){return this.throwIfDisposed(),pn(this,r)};O().prototype.greater=function(r){return this.throwIfDisposed(),Fe(this,r)};O().prototype.ifft=function(){return this.throwIfDisposed(),Il(this)};O().prototype.irfft=function(){return this.throwIfDisposed(),km(this)};O().prototype.isFinite=function(){return this.throwIfDisposed(),Gx(this)};O().prototype.isInf=function(){return this.throwIfDisposed(),Wx(this)};O().prototype.isNaN=function(){return this.throwIfDisposed(),Ux(this)};O().prototype.leakyRelu=function(r){return this.throwIfDisposed(),vu(this,r)};O().prototype.lessEqual=function(r){return this.throwIfDisposed(),Gn(this,r)};O().prototype.less=function(r){return this.throwIfDisposed(),bl(this,r)};O().prototype.localResponseNormalization=function(r,t,e,n){return this.throwIfDisposed(),Hx(this,r,t,e,n)};O().prototype.logSigmoid=function(){return this.throwIfDisposed(),jx(this)};O().prototype.logSoftmax=function(r){return this.throwIfDisposed(),dm(this,r)};O().prototype.logSumExp=function(r,t){return this.throwIfDisposed(),hm(this,r,t)};O().prototype.log=function(){return this.throwIfDisposed(),Nr(this)};O().prototype.log1p=function(){return this.throwIfDisposed(),Su(this)};O().prototype.logicalAnd=function(r){return this.throwIfDisposed(),Or(this,r)};O().prototype.logicalNot=function(){return this.throwIfDisposed(),Nu(this)};O().prototype.logicalOr=function(r){return this.throwIfDisposed(),gm(this,r)};O().prototype.logicalXor=function(r){return this.throwIfDisposed(),Xx(this,r)};O().prototype.matMul=function(r,t,e){return this.throwIfDisposed(),Bt(this,r,t,e)};O().prototype.maxPool=function(r,t,e,n){return this.throwIfDisposed(),ku(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(),Tn(this,r)};O().prototype.mean=function(r,t){return this.throwIfDisposed(),ke(this,r,t)};O().prototype.min=function(r,t){return this.throwIfDisposed(),xl(this,r,t)};O().prototype.minimum=function(r){return this.throwIfDisposed(),uo(this,r)};O().prototype.mirrorPad=function(r,t){return this.throwIfDisposed(),Jx(this,r,t)};O().prototype.mod=function(r){return this.throwIfDisposed(),Qx(this,r)};O().prototype.mul=function(r){return this.throwIfDisposed(),$(this,r)};O().prototype.neg=function(){return this.throwIfDisposed(),Ut(this)};O().prototype.norm=function(r,t,e){return this.throwIfDisposed(),yl(this,r,t,e)};O().prototype.notEqual=function(r){return this.throwIfDisposed(),li(this,r)};O().prototype.oneHot=function(r,t=1,e=0){return this.throwIfDisposed(),ua(this,r,t,e)};O().prototype.onesLike=function(){return this.throwIfDisposed(),Ir(this)};O().prototype.pad=function(r,t){return this.throwIfDisposed(),fn(this,r,t)};O().prototype.pool=function(r,t,e,n,o,s){return this.throwIfDisposed(),ty(this,r,t,e,n,o,s)};O().prototype.pow=function(r){return this.throwIfDisposed(),cn(this,r)};O().prototype.prelu=function(r){return this.throwIfDisposed(),_u(this,r)};O().prototype.prod=function(r,t){return this.throwIfDisposed(),ey(this,r,t)};O().prototype.reciprocal=function(){return this.throwIfDisposed(),ay(this)};O().prototype.relu=function(){return this.throwIfDisposed(),Pr(this)};O().prototype.relu6=function(){return this.throwIfDisposed(),xm(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(),Sy(this,r,t,e)};O().prototype.resizeNearestNeighbor=function(r,t,e){return this.throwIfDisposed(),Ny(this,r,t,e)};O().prototype.reverse=function(r){return this.throwIfDisposed(),hr(this,r)};O().prototype.rfft=function(){return this.throwIfDisposed(),Du(this)};O().prototype.round=function(){return this.throwIfDisposed(),ym(this)};O().prototype.rsqrt=function(){return this.throwIfDisposed(),bm(this)};O().prototype.selu=function(){return this.throwIfDisposed(),wm(this)};O().prototype.separableConv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),Im(this,r,t,e,n,o,s)};O().prototype.sigmoid=function(){return this.throwIfDisposed(),tn(this)};O().prototype.sign=function(){return this.throwIfDisposed(),ly(this)};O().prototype.sin=function(){return this.throwIfDisposed(),Cm(this)};O().prototype.sinh=function(){return this.throwIfDisposed(),vm(this)};O().prototype.slice=function(r,t){return this.throwIfDisposed(),Ot(this,r,t)};O().prototype.softmax=function(r){return this.throwIfDisposed(),Eu(this,r)};O().prototype.softplus=function(){return this.throwIfDisposed(),ai(this)};O().prototype.spaceToBatchND=function(r,t){return this.throwIfDisposed(),Tu(this,r,t)};O().prototype.split=function(r,t){return this.throwIfDisposed(),gr(this,r,t)};O().prototype.sqrt=function(){return this.throwIfDisposed(),Ne(this)};O().prototype.square=function(){return this.throwIfDisposed(),Wt(this)};O().prototype.squaredDifference=function(r){return this.throwIfDisposed(),Tm(this,r)};O().prototype.squeeze=function(r){return this.throwIfDisposed(),Un(this,r)};O().prototype.stack=function(r,t){this.throwIfDisposed();let e=r instanceof Pt?[this,r]:[this,...r];return qe(e,t)};O().prototype.step=function(r){return this.throwIfDisposed(),No(this,r)};O().prototype.stridedSlice=function(r,t,e,n,o,s,i,a){return this.throwIfDisposed(),uy(this,r,t,e,n,o,s,i,a)};O().prototype.sub=function(r){return this.throwIfDisposed(),lt(this,r)};O().prototype.sum=function(r,t){return this.throwIfDisposed(),pt(this,r,t)};O().prototype.tan=function(){return this.throwIfDisposed(),cy(this)};O().prototype.tanh=function(){return this.throwIfDisposed(),ra(this)};O().prototype.tile=function(r){return this.throwIfDisposed(),Fr(this,r)};O().prototype.toBool=function(){return this.throwIfDisposed(),Q(this,\"bool\")};O().prototype.toFloat=function(){return this.throwIfDisposed(),Q(this,\"float32\")};O().prototype.toInt=function(){return this.throwIfDisposed(),Q(this,\"int32\")};O().prototype.topk=function(r,t){return this.throwIfDisposed(),my(this,r,t)};O().prototype.transpose=function(r){return this.throwIfDisposed(),Vt(this,r)};O().prototype.unique=function(r){return this.throwIfDisposed(),fy(this,r)};O().prototype.unsortedSegmentSum=function(r,t){return this.throwIfDisposed(),Am(this,r,t)};O().prototype.unstack=function(r){return this.throwIfDisposed(),xr(this,r)};O().prototype.where=function(r,t){return this.throwIfDisposed(),be(r,this,t)};O().prototype.zerosLike=function(){return this.throwIfDisposed(),vt(this)};var _n=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,_n.prototype)}},jr=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,jr.prototype)}},z=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,z.prototype)}},Nt=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,Nt.prototype)}},$m=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,$m.prototype)}};var Th=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 To={};function Rm(r){if(r==null)return null;let t={};return t.className=r.getClassName(),t.config=r.getConfig(),t}function SN(r){if(!(r==null||typeof r!=\"object\"))if(Array.isArray(r))r.forEach(t=>SN(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:SN(n))}}}function fa(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 To)i=To[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 To?[a,u]=To.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(To))l[f]=To[f];for(let f of Object.keys(e))l[f]=e[f];let c=s.config;c.customObjects=l;let p=Object.assign({},To);for(let f of Object.keys(e))To[f]=e[f];SN(s.config);let m=u(a,s.config,e,o);return To=Object.assign({},p),m}else{let l=Object.assign({},To);for(let p of Object.keys(e))To[p]=e[p];let c=new a(s.config);return To=Object.assign({},l),c}}}function uZ(r,t){return rt?1:0}function _h(r,t){return-1*uZ(r,t)}function Ao(r){if(r==null)return r;let t=[];for(let e of r)t.indexOf(e)===-1&&t.push(e);return t}function E$(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 da(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 Oy(r,t,e=0,n=1/0){return co(e>=0),co(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 ${A$(r)}.`)}function A$(r){return r===null?\"null\":Array.isArray(r)?\"[\"+r.map(t=>A$(t)).join(\",\")+\"]\":typeof r==\"string\"?`\"${r}\"`:`${r}`}function D$(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 Fm.set(e,1),e}else return r}var mZ=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\\._\\/]*$/);function z$(r){return!!r.match(mZ)}function B$(r){return r===parseInt(r.toString(),10)}function Do(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 gn(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=kl(r,1);return Gy(e,[1,t,1])})}function G$(r){let t=[Do(r.shape)];return R(r,t)}function W$(r){if(r.rank<=1)throw new z(`batchFlatten requires a minimum rank of 2. Got rank: ${r.rank}.`);let t=[r.shape[0],Do(r.shape,1)];return R(r,t)}function Nl(r,t,e){return B(()=>{switch(r.rank){case 1:return Sm(r,t,e);case 2:return wh(r,[t,0],[e,r.shape[1]]);case 3:return Nm(r,[t,0,0],[e,r.shape[1],r.shape[2]]);case 4:return Cc(r,[t,0,0,0],[e,r.shape[1],r.shape[2],r.shape[3]]);case 5:return Ot(r,[t,0,0,0,0],[e,r.shape[1],r.shape[2],r.shape[3],r.shape[4]]);case 6:return Ot(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 _N(r,t,e){return B(()=>{switch(r.rank){case 1:return Sm(r,t,e);case 2:return wh(r,[0,t],[r.shape[0],e]);case 3:return Nm(r,[0,0,t],[r.shape[0],r.shape[1],e]);case 4:return Cc(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 Ah(r,t,e,n){return B(()=>{switch(r.rank){case 1:return Sm(r,t,e);case 2:switch(n){case 1:return Nl(r,t,e);case 2:return _N(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 Nl(r,t,e);case 2:return Nm(r,[0,t,0],[r.shape[0],e,r.shape[2]]);case 3:return _N(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 Nl(r,t,e);case 2:return Cc(r,[0,t,0,0],[r.shape[0],e,r.shape[2],r.shape[3]]);case 3:return Cc(r,[0,0,t,0],[r.shape[0],r.shape[1],e,r.shape[3]]);case 4:return _N(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 Om(r,t=-1){let e;return t<0&&(e=r[0].rank,e!==0?t=e:t=0),t===r[0].rank&&(t=-1),se(r,t)}function AN(r,t){switch(r.rank){case 1:return _x([r,t]);case 2:return Ex([r,t],0);case 3:return Ax([r,t],0);case 4:return Dx([r,t],0);default:throw new z(`concatAlongFirstAxis() received an unsupported tensor rank: ${r.rank}`)}}function Gy(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 Pm(r,t=0,e=1,n,o){return Ic(r,t,e,n,o)}function $o(r,t,e,n){if(r.rank<2||t.rank<2)throw new Nt(`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 Nt(`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 Ru.matMul({a:r,b:t,transposeA:!1,transposeB:!1,bias:n?EN(r.rank,n,xn()):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(Vt(t,c),[u,-1]);let p=[...o,...l],m=!1,f=!1;return R(Ru.matMul({a:r,b:t,transposeA:m,transposeB:f,bias:n?EN(r.rank,n,xn()):null,activation:e}),p)}}function Wy(r,t,e){return B(()=>(Array.isArray(t)?t=Ke(t,\"int32\"):t=Q(t,\"int32\"),la(r,t,e)))}function Pc(r){return $(r,r)}function EN(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 yn(r,t,e){return B(()=>(e==null&&(e=xn()),Oe(e),Y(r,EN(r.rank,t,e))))}function U$(r,t=1){if(t!==1)throw new Nt(`Support for alpha values other than 1 (${t}) is not implemented yet.`);return ia(r)}function H$(r){return B(()=>ct(r,Y(Ee(r),1)))}function Uy(r,t,e,n){return B(()=>nN(r,t,e,n))}function q$(r){return B(()=>{let t=Y(.5,$(.2,r));return vr(t,0,1)})}function Ou(r,t,e=!1){return e?r():t()}var K$=[\"fanIn\",\"fanOut\",\"fanAvg\"],j$=[\"normal\",\"uniform\",\"truncatedNormal\"];function fZ(r){da(K$,\"FanMode\",r)}function dZ(r){da(j$,\"Distribution\",r)}var bn=class extends J.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}},Mm=class extends bn{apply(t,e){return Te(t,e)}};Mm.className=\"Zeros\";J.registerClass(Mm);var Pu=class extends bn{apply(t,e){return dr(t,e)}};Pu.className=\"Ones\";J.registerClass(Pu);var Lm=class extends bn{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(()=>$(ft(this.value),dr(t,e)))}getConfig(){return{value:this.value}}};Lm.className=\"Constant\";J.registerClass(Lm);var zm=class extends bn{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 Wn(t,this.minval,this.maxval,e,this.seed)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}};zm.className=\"RandomUniform\";J.registerClass(zm);var Bm=class extends bn{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 Nt(`randomNormal does not support dType ${e}.`);return Pm(t,this.mean,this.stddev,e,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};Bm.className=\"RandomNormal\";J.registerClass(Bm);var Vm=class extends bn{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 Nt(`truncatedNormal does not support dType ${e}.`);return Em(t,this.mean,this.stddev,e,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};Vm.className=\"TruncatedNormal\";J.registerClass(Vm);var Gm=class extends bn{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 $(this.gain,xc(t[0]))})}getConfig(){return{gain:this.gain}}};Gm.className=\"Identity\";J.registerClass(Gm);function hZ(r,t=\"channelsLast\"){let e,n;if(Oe(t),r.length===2)e=r[0],n=r[1];else if([3,4,5].indexOf(r.length)!==-1){if(t===\"channelsFirst\"){let o=Do(r,2);e=r[1]*o,n=r[0]*o}else if(t===\"channelsLast\"){let o=Do(r,0,r.length-2);e=r[r.length-2]*o,n=r[r.length-1]*o}}else{let o=Do(r);e=Math.sqrt(o),n=Math.sqrt(o)}return[e,n]}var Xr=class extends bn{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,fZ(this.mode),this.distribution=t.distribution==null?\"normal\":t.distribution,dZ(this.distribution),this.seed=t.seed}apply(t,e){let n=hZ(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 Nt(`${this.getClassName()} does not support dType ${e}.`);return Em(t,0,a,e,this.seed)}else{let a=Math.sqrt(3*i);return Wn(t,-a,a,e,this.seed)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}};Xr.className=\"VarianceScaling\";J.registerClass(Xr);var Mc=class extends Xr{constructor(t){super({scale:1,mode:\"fanAvg\",distribution:\"uniform\",seed:t==null?null:t.seed})}getClassName(){return Xr.className}};Mc.className=\"GlorotUniform\";J.registerClass(Mc);var Lc=class extends Xr{constructor(t){super({scale:1,mode:\"fanAvg\",distribution:\"normal\",seed:t==null?null:t.seed})}getClassName(){return Xr.className}};Lc.className=\"GlorotNormal\";J.registerClass(Lc);var zc=class extends Xr{constructor(t){super({scale:2,mode:\"fanIn\",distribution:\"normal\",seed:t==null?null:t.seed})}getClassName(){return Xr.className}};zc.className=\"HeNormal\";J.registerClass(zc);var Bc=class extends Xr{constructor(t){super({scale:2,mode:\"fanIn\",distribution:\"uniform\",seed:t==null?null:t.seed})}getClassName(){return Xr.className}};Bc.className=\"HeUniform\";J.registerClass(Bc);var Vc=class extends Xr{constructor(t){super({scale:1,mode:\"fanIn\",distribution:\"normal\",seed:t==null?null:t.seed})}getClassName(){return Xr.className}};Vc.className=\"LeCunNormal\";J.registerClass(Vc);var Gc=class extends Xr{constructor(t){super({scale:1,mode:\"fanIn\",distribution:\"uniform\",seed:t==null?null:t.seed})}getClassName(){return Xr.className}};Gc.className=\"LeCunUniform\";J.registerClass(Gc);var Wm=class extends bn{constructor(t){super(),this.DEFAULT_GAIN=1,this.ELEMENTS_WARN_SLOW=2e3,this.gain=t.gain==null?this.DEFAULT_GAIN:t.gain,this.seed=t.seed}apply(t,e){return B(()=>{if(t.length<2)throw new Nt(\"Shape must be at least 2D.\");if(e!==\"int32\"&&e!==\"float32\"&&e!==void 0)throw new TypeError(`Unsupported data type ${e}.`);e=e;let n=y.sizeFromShape(t.slice(0,-1)),o=t[t.length-1],s=n*o;s>this.ELEMENTS_WARN_SLOW&&console.warn(`Orthogonal initializer is being called on a matrix with more than ${this.ELEMENTS_WARN_SLOW} (${s}) elements: Slowness may result.`);let i=[Math.max(o,n),Math.min(o,n)],a=Pm(i,0,1,e,this.seed),u=iN.qr(a,!1),l=u[0],p=u[1].flatten().stridedSlice([0],[Math.min(o,n)*Math.min(o,n)],[Math.min(o,n)+1]);return l=$(l,p.sign()),nn*o);return t}var J$=\"Variable\",Dh=class{constructor(t,e=\"float32\",n=J$,o=!0,s=null){this.dtype=e==null?\"float32\":e,this.shape=t.shape,this.id=Ly(),n=n==null?J$:n,this.originalName=zy(n),this.name=By(this.originalName),this.trainable_=o,this.constraint=s,this.val=dy(t,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(t){return this.assertNotDisposed(),xZ(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 xZ(r,t){if(r.shape.toString()!==t.shape.toString())throw new Error(\"Shape mismatch: \"+JSON.stringify(r.shape)+\" vs. \"+JSON.stringify(t.shape))}function $h(r){return r.map(t=>t.read())}function qm(r){r.forEach(t=>{t[0].write(t[1])})}var Ie=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||{}}},rn=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=Ly(),i!=null&&(this.originalName=zy(i),this.name=By(this.originalName)),this.rank=e.length}},yZ=0,Tl=class{constructor(t,e){this.callArgs=e,this.id=yZ++,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}}},bZ=0,_t=class extends J.Serializable{constructor(t={}){super(),this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=bZ++,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=Eo(n)+\"_\"+Fu(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 jr(`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 kr(this.getNodeAtIndex(t,\"input\").inputTensors)}getOutputAt(t){return kr(this.getNodeAtIndex(t,\"output\").outputTensors)}get input(){if(this.inboundNodes.length>1)throw new _n(`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 _n(`Layer ${this.name} is not connected, no input to return.`);return kr(this.getNodeAtIndex(0,\"input\").inputTensors)}get output(){if(this.inboundNodes.length===0)throw new _n(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new _n(`Layer ${this.name} has multiple inbound nodes, hence the notion of \"layer output\" is ill-defined. Use \\`getOutputAt(nodeIndex)\\` instead.`);return kr(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=we(t),this.inputSpec==null||this.inputSpec.length===0)return;let e=we(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 we(t))i.push(a.shape);this.build(kr(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=we(i),u=[];for(let l of a)n.indexOf(l)!==-1&&(l=l.clone()),u.push(l);if(i=kr(u),this.activityRegularizer!=null)throw new Nt(\"Layer invocation in the presence of activity regularizer(s) is not supported yet.\");return i}else{let i=wZ(t),a=this.computeOutputShape(i),u,l=IZ(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 rn(l,c,this,we(t),e,this.name,p)):u=new rn(l,a,this,we(t),e,this.name),this.addInboundNode(t,u,null,null,i,a,e),this._refCount++,this.activityRegularizer!=null)throw new Nt(\"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 _n(`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 _n(`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 jr(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return Hm(this.weights)}build(t){this.built=!0}getWeights(t=!1){return $h(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=$h(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=we(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=we(t);e=we(e),n=we(n),o=we(o),s=Um(s),i=Um(i);let l=[],c=[],p=[];for(let m of u)l.push(m.sourceLayer),c.push(m.nodeIndex),p.push(m.tensorIndex);new Tl({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 wZ(r){r=we(r);let t=[];for(let e of r)t.push(e.shape);return kr(t)}function IZ(r){return\"float32\"}function DN(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=Ky.get(c),m;if(p==null){let d=vZ(i,t);p=d.sorted,m=d.recipientCounts,Ky.put(c,p),jy.put(c,m)}m={},o||Object.assign(m,jy.get(c));let f=new Ro(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:SZ(n)}}function SZ(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 NZ(r){let t;if(r.sourceLayer.inboundNodes.length===1)t=r.sourceLayer.output;else{let e=null;for(let n=0;n100,tR);var nR={};Kt(nR,{maxNorm:()=>TZ,minMaxNorm:()=>AZ,nonNeg:()=>EZ,unitNorm:()=>_Z});function $N(r,t){return B(()=>Ne(pt($(r,r),t,!0)))}var Uc=class extends J.Serializable{getConfig(){return{}}},Km=class extends Uc{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=$N(t,this.axis),n=vr(e,0,this.maxValue);return $(t,ct(n,Y(cr(),e)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}};Km.className=\"MaxNorm\";J.registerClass(Km);var jm=class extends Uc{constructor(t){super(),this.defaultAxis=0,this.axis=t.axis!=null?t.axis:this.defaultAxis}apply(t){return B(()=>ct(t,Y(cr(),$N(t,this.axis))))}getConfig(){return{axis:this.axis}}};jm.className=\"UnitNorm\";J.registerClass(jm);var Xm=class extends Uc{apply(t){return Pr(t)}};Xm.className=\"NonNeg\";J.registerClass(Xm);var Ym=class extends Uc{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=$N(t,this.axis),n=Y($(this.rate,vr(e,this.minValue,this.maxValue)),$(1-this.rate,e));return $(t,ct(n,Y(cr(),e)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}};Ym.className=\"MinMaxNorm\";J.registerClass(Ym);var eR={maxNorm:\"MaxNorm\",minMaxNorm:\"MinMaxNorm\",nonNeg:\"NonNeg\",unitNorm:\"UnitNorm\"};function Be(r){return Rm(r)}function rR(r,t={}){return fa(r,J.SerializationMap.getMap().classNameMap,t,\"constraint\")}function Ve(r){if(r==null)return null;if(typeof r==\"string\"){let e={className:r in eR?eR[r]:r,config:{}};return rR(e)}else return r instanceof Uc?r:rR(r)}function TZ(r){return new Km(r)}function _Z(r){return new jm(r)}function EZ(){return new Xm}function AZ(r){return new Ym(r)}var oR={};Kt(oR,{constant:()=>RZ,glorotNormal:()=>BZ,glorotUniform:()=>zZ,heNormal:()=>VZ,heUniform:()=>GZ,identity:()=>MZ,leCunNormal:()=>WZ,leCunUniform:()=>UZ,ones:()=>$Z,orthogonal:()=>HZ,randomNormal:()=>OZ,randomUniform:()=>FZ,truncatedNormal:()=>PZ,varianceScaling:()=>LZ,zeros:()=>DZ});function DZ(){return new Mm}function $Z(){return new Pu}function RZ(r){return new Lm(r)}function FZ(r){return new zm(r)}function OZ(r){return new Bm(r)}function PZ(r){return new Vm(r)}function MZ(r){return new Gm(r)}function LZ(r){return new Xr(r)}function zZ(r){return new Mc(r)}function BZ(r){return new Lc(r)}function VZ(r){return new zc(r)}function GZ(r){return new Bc(r)}function WZ(r){return new Vc(r)}function UZ(r){return new Gc(r)}function HZ(r){return new Wm(r)}var LR={};Kt(LR,{Layer:()=>_t,RNN:()=>An,RNNCell:()=>Dl,activation:()=>uJ,add:()=>yJ,alphaDropout:()=>e9,average:()=>bJ,averagePooling1d:()=>qN,averagePooling2d:()=>KN,averagePooling3d:()=>jN,avgPool1d:()=>_J,avgPool2d:()=>AJ,avgPool3d:()=>$J,avgPooling1d:()=>EJ,avgPooling2d:()=>DJ,avgPooling3d:()=>RJ,batchNormalization:()=>NJ,bidirectional:()=>KJ,categoryEncoding:()=>i9,centerCrop:()=>o9,concatenate:()=>wJ,conv1d:()=>tJ,conv2d:()=>eJ,conv2dTranspose:()=>rJ,conv3d:()=>nJ,conv3dTranspose:()=>oJ,convLstm2d:()=>WJ,convLstm2dCell:()=>UJ,cropping2D:()=>iJ,dense:()=>cJ,depthwiseConv2d:()=>lJ,dot:()=>SJ,dropout:()=>pJ,elu:()=>j7,embedding:()=>xJ,flatten:()=>fJ,gaussianDropout:()=>t9,gaussianNoise:()=>QJ,globalAveragePooling1d:()=>FJ,globalAveragePooling2d:()=>OJ,globalMaxPool1d:()=>XJ,globalMaxPool2d:()=>YJ,globalMaxPooling1d:()=>FR,globalMaxPooling2d:()=>OR,gru:()=>MJ,gruCell:()=>LJ,input:()=>BN,inputLayer:()=>K7,layerNormalization:()=>kJ,leakyReLU:()=>Y7,lstm:()=>zJ,lstmCell:()=>BJ,masking:()=>r9,maxPool1d:()=>ZJ,maxPool2d:()=>JJ,maxPooling1d:()=>PR,maxPooling2d:()=>MR,maxPooling3d:()=>PJ,maximum:()=>IJ,minimum:()=>CJ,multiply:()=>vJ,permute:()=>gJ,prelu:()=>Z7,randomWidth:()=>a9,reLU:()=>X7,repeatVector:()=>dJ,rescaling:()=>n9,reshape:()=>hJ,resizing:()=>s9,rnn:()=>HJ,separableConv2d:()=>sJ,simpleRNN:()=>VJ,simpleRNNCell:()=>GJ,softmax:()=>J7,spatialDropout1d:()=>mJ,stackedRNNCells:()=>qJ,thresholdedReLU:()=>Q7,timeDistributed:()=>jJ,upSampling2d:()=>aJ,zeroPadding2d:()=>TJ});async function ha(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;sY(this.totals[o],$(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=$(ct(1,this.seen),this.totals[n]);e[n]=o,this.totals[n].dispose(),$e(e[n])}))}},Zy=class extends _l{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 Jy(n,t))}var wn=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}`),wn.checkForDuplicate(e),wn.constructors[t]==null&&(wn.constructors[t]=[]),wn.constructors[t].push(e)}static checkForDuplicate(t){for(let e in wn.constructors)wn.constructors[+e].forEach(o=>{if(o===t)throw new z(\"Duplicate callback constructor.\")})}static clear(){wn.constructors={}}static createCallbacks(t){let e=[];for(let n in wn.constructors){let o=+n;t>=o&&e.push(...wn.constructors[o])}return e.map(n=>new n)}};wn.constructors={};function tb(r,t,e,n,o,s,i,a,u){let l=new Zy,c=[new RN,...wn.createCallbacks(t)];r!=null&&c.push(...r),c.push(l);let p=new Yy(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 In(r,t={},e=!1){return fa(r,J.SerializationMap.getMap().classNameMap,t,\"layer\",e)}function Rh(r,t){return B(()=>{r.dtype!==\"float32\"&&(r=Q(r,\"float32\"));let e=pt(Pc(r),t,!0),n=vo(e.shape,cr()),o=Ne(Tn(e,n));return ct(r,o)})}function ga(r,t){return B(()=>ke(Pc(lt(t,r)),-1))}function Zm(r,t){return B(()=>ke(Ee(lt(t,r)),-1))}function Mu(r,t){return B(()=>{let e=lt(r,t),n=vr(Ee(r),cr(),Number.MAX_VALUE),o=Ee(ct(e,n));return $(100,ke(o,-1))})}function KZ(r,t){return B(()=>{let e=vr(t,cr(),Number.MAX_VALUE),n=Nr(Y(1,e)),o=vr(r,cr(),Number.MAX_VALUE),s=Nr(Y(1,o));return ke(Pc(lt(n,s)),-1)})}function jZ(r,t){return B(()=>{let e=Tn(0,lt(1,$(r,t)));return ke(Pc(e),-1)})}function XZ(r,t){return B(()=>{let e=Tn(0,lt(1,$(r,t)));return ke(e,-1)})}function YZ(r,t){return B(()=>{let e=pt($(r,t),-1),n=Sr($(lt(1,r),t),-1);return Tn(0,Y(1,lt(n,e)))})}function ZZ(r,t){return B(()=>{let e=Math.log(2),n=lt(t,r),o=lt(Y(n,ai($(-2,n))),e);return ke(o,-1)})}function Hc(r,t,e=!1){return B(()=>{if(e)t=Eu(t);else{let n=pt(t,t.shape.length-1,!0);t=ct(t,n)}return t=vr(t,cr(),1-cr()),Ut(pt($(Q(r,\"float32\"),Nr(t)),t.shape.length-1))})}function Jm(r,t,e=!1){return B(()=>{let n=Q(aa(G$(r)),\"int32\");t=vr(t,cr(),1-cr());let o=t.shape,s=R(ua(n,o[o.length-1]),o);return Hc(s,t,e)})}function JZ(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=Ut(Ee(t));return Y(lt(e,$(t,r)),Su(ir(n)))})}function Qm(r,t){return B(()=>{let e;return e=vr(t,cr(),1-cr()),e=Nr(ct(e,lt(1,e))),ke(JZ(r,e),-1)})}function QZ(r,t){return B(()=>{let e=vr(r,cr(),1),n=vr(t,cr(),1);return pt($(r,Nr(ct(e,n))),-1)})}function t7(r,t){return B(()=>{let e=Nr(Y(cr(),t));return ke(lt(t,$(r,e)),-1)})}function Oh(r,t){return B(()=>{let e=Rh(r,-1),n=Rh(t,-1),o=$(e,n);return Ut(pt(o,-1))})}var Fh={meanSquaredError:ga,meanAbsoluteError:Zm,meanAbsolutePercentageError:Mu,meanSquaredLogarithmicError:KZ,squaredHinge:jZ,hinge:XZ,categoricalHinge:YZ,logcosh:ZZ,categoricalCrossentropy:Hc,sparseCategoricalCrossentropy:Jm,binaryCrossentropy:Qm,kullbackLeiblerDivergence:QZ,poisson:t7,cosineProximity:Oh};function eb(r){if(typeof r==\"string\"){if(r in Fh)return Fh[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 Ph(r,t){return B(()=>{let e=$(.5,Ir(t)),n=en(Fe(t,e),r.dtype);return ke(Rr(r,n),-1)})}function Mh(r,t){return B(()=>en(Rr(ta(r,-1),ta(t,-1)),\"float32\"))}function aR(r,t){return B(()=>Q(pt(Or(Rr(r,1),Rr(t,1))),\"float32\"))}function e7(r,t){return B(()=>Q(pt(Or(Rr(r,1),Rr(t,0))),\"float32\"))}function r7(r,t){return B(()=>Q(pt(Or(Rr(r,0),Rr(t,1))),\"float32\"))}function FN(r,t){return B(()=>{let e=aR(r,t),n=r7(r,t),o=Y(e,n);return Q(be(Fe(o,0),ct(e,o),0),\"float32\")})}function lR(r,t){return B(()=>{let e=aR(r,t),n=e7(r,t),o=Y(e,n);return Q(be(Fe(o,0),ct(e,o),0),\"float32\")})}function nb(r,t){return Qm(r,t)}function ob(r,t){return r.rank===t.rank&&(r=Un(r,[r.rank-1])),t=ta(t,-1),t.dtype!==r.dtype&&(t=Q(t,r.dtype)),Q(Rr(r,t),\"float32\")}var n7=ga,o7=ga,s7=Zm,i7=Zm,a7=Mu,l7=Mu,Lh=Hc,u7=Oh,ON=Jm,rb={binaryAccuracy:Ph,categoricalAccuracy:Mh,precision:FN,categoricalCrossentropy:Lh,sparseCategoricalCrossentropy:ON,mse:n7,MSE:o7,mae:s7,MAE:i7,mape:a7,MAPE:l7,cosine:u7};function uR(r){if(typeof r==\"string\"&&r in rb)return rb[r];if(typeof r!=\"string\"&&r!=null)return r;throw new z(`Unknown metric ${r}`)}function zh(r){if(co(r!==null,`Unknown LossOrMetricFn ${r}`),typeof r==\"string\")return r;{let t;for(let e of Object.keys(Fh))if(Fh[e]===r){t=e;break}if(t!==void 0)return t;for(let e of Object.keys(rb))if(rb[e]===r){t=e;break}return t!==void 0?t:r.name}}function pR(r){let t={Adagrad:()=>Fc.adagrad(.01),Adadelta:()=>Fc.adadelta(1,.95,cr()),Adam:()=>Fc.adam(.001,.9,.999,cr()),Adamax:()=>Fc.adamax(.002,.9,.999,cr(),0),RMSProp:()=>Fc.rmsprop(.001,.9,0,cr()),SGD:()=>Fc.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 MN(r,t,e=!1){if(r==null||typeof r!=\"object\"||Object.getPrototypeOf(r)!==Object.prototype||!PN(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 PN(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\"||!PN(r[e]))return!1;return!0}else if(Array.isArray(r)){for(let t of r)if(!PN(t))return!1;return!0}else return!1;else{let t=typeof r;return t===\"string\"||t===\"number\"||t===\"boolean\"}}function mR(r,t,e,n=console.log){let o=m7(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)),sb(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 sb(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 f7(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()];sb(a,t,e)}function d7(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)}`);Ao(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,I=b.nodeIndex,N=b.tensorIndex;this.outputLayers.push(w),this.outputLayersNodeIndices.push(I),this.outputLayersTensorIndices.push(N)}for(let b of this.inputs){let w=b.sourceLayer,I=b.nodeIndex,N=b.tensorIndex;co(I===0,\"input layer has >1 nodes\"),co(N===0,\"input layer has >1 tensors\"),this.inputLayers.push(w),this.inputLayersNodeIndices.push(I),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,I,N,E,A)=>{(N==null||E==null||A==null)&&(N=b.sourceLayer,E=b.nodeIndex,A=b.tensorIndex);let D=N.inboundNodes[E];if(I.indexOf(D)!==-1)throw new jr(`The tensor ${b.name} at layer \"${N.name}\" is part of a cycle.`);if(w.indexOf(D)!==-1)return;this.containerNodes.add(Hn.nodeKey(N,E)),N.id in i||(i[N.id]=Object.keys(i).length),I.indexOf(D)===-1&&I.push(D);let F=D.inboundLayers.length;for(let P=0;P=0;)I.splice(I.indexOf(D),1);a.push(D)},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],I=o[b.outboundLayer.id]==null?0:o[b.outboundLayer.id];w=Math.max(w,I),o[b.outboundLayer.id]=w,s[b.outboundLayer.id]=b.outboundLayer,e[b.id]=w;for(let N=0;NparseInt(b,10)).sort(_h);this.layers=[];for(let b of d){let w=f[b];w.sort((I,N)=>{let E=i[I.id],A=i[N.id];return EA?1:0});for(let I of w)I instanceof Hn&&this.internalContainerRefs.push(I),this.layers.push(I)}this.layersByDepth=f,d=Object.keys(m).map(b=>parseInt(b,10)).sort(_h);let h=this.inputs.slice(),g=[];for(let b of d)for(let w of m[b]){let I=w.outboundLayer;if(I!=null){for(let N of w.inputTensors)if(h.indexOf(N)===-1)throw new jr(`Graph disconnected: cannot obtain value for tensor ${N} at layer \"${I.name}\". The following previous layers were accessed without issue: ${g}`);for(let N of w.outputTensors)h.push(N);g.push(I.name)}}this.nodesByDepth=m;let x=this.layers.map(b=>b.name);for(let b of x){let w=x.filter(I=>I===b).length;if(w!==1)throw new jr(`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 Tl({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}`)}qm(s)}updatedConfig(){let t=this.getConfig(),e={};return e.className=this.getClassName(),e.config=t,e.kerasVersion=`tfjs-layers ${tf}`,e.backend=\"TensorFlow.js\",e}toJSON(t,e=!0){let n=ib(this.updatedConfig());return e?JSON.stringify(n):n}call(t,e){return B(()=>{t=we(t);let n=new Ro;for(let o=0;o{t=we(t);let n;return e==null?n=_o(null,t.length):n=we(e),this.runInternalGraph(t,n)[1]})}computeOutputShape(t){let e=Um(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(_h);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(_h);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[I,N]=d[0];h.mask==null&&(h.mask=N),b=we(p.call(I,h)),w=we(p.computeMask(I,N)),g=[I],x=[N]}else g=d.map(I=>I[0]),x=d.map(I=>I[1]),h.mask==null&&(h.mask=x),b=we(p.call(g,h)),w=we(p.computeMask(g,x));if(p.activityRegularizer)throw new Nt(\"LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet.\");for(let I=0;I{let t=[];for(let e of this.layers)for(let n=0;n0){let h=[];for(let g=0;g0&&g.apply(kr(b),w)}function l(g){let x=g.name,b=In(g,e.customObjects!=null?e.customObjects:{});b.setFastWeightInitDuringBuild(o),s[x]=b,g.inboundNodes.forEach(I=>{if(!(I instanceof Array))throw new z(`Corrupted configuration, expected array for nodeData: ${I}`);a(b,I)})}let c=e.name,p=e.layers;for(let g of p)l(g);for(;!E$(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];co(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];co(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 h7(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 ab(r,t){return h7(r,t,\"classWeight\")}async function lb(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 un(r);if(r.shape.length===2){if(r.shape[1]>1)return ta(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());Tt(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 dR(r,t){return $(r,t)}var g7=32;function xR(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=hR(\"input\",r.inputNames,e),i=hR(\"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 hR(r,t,e){if(e instanceof Pt)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 x7(r){if(r.length===3)throw new Nt(\"Validation with sample weights is not implemented yet.\");return{xs:r[0],ys:r[1]}}async function yR(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(gR(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=x7(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=Qy(e.callbacks,e.yieldEvery),p=e.verbose==null?1:e.verbose,{callbackList:m,history:f}=tb(c,p,e.epochs,null,null,y7(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 I;gR(e.validationData)?I=we(await r.evaluateDataset(e.validationData,{batches:e.validationBatches})):I=we(r.evaluate(s,i,{batchSize:e.validationBatchSize==null?g7:e.validationBatchSize,verbose:0}));for(let N=0;N0)throw new Nt(\"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=b7(t)?t:await t.iterator(),a=0,u=0;for(;!n||u{if(l.value){let{xs:c,ys:p}=xR(r,l.value),m=c.concat(p),f=B(()=>o(m));if(Tt(m),u===0)for(let h=0;hY(s[h],$(d,g))),u>0&&Tt(x)}Tt(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 ef(r,t,e){return r==null?[null]:Array.isArray(r)?r.map(n=>Nl(n,t,e-t)):Nl(r,t,e-t)}function cb(r,t){return B(()=>r==null?null:Array.isArray(r)?r.map(e=>cb(e,t)):Wy(r,t.dtype===\"int32\"?t:Q(t,\"int32\")))}function pb(r,t){let e=[],n=0,o=null;for(;n=r&&(o=r),e.push([n,o]),n=o;return e}function LN(r){let t=[];r instanceof Pt&&(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 Pt)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 w7(r){return r instanceof Pt}function zN(r){return Array.isArray(r)}function wR(r){return!w7(r)&&!zN(r)}function IR(r,t,e,n=!0,o=\"\"){if(t==null||t.length===0){if(r!=null){let i=!1;if(zN(r)&&r.length>0)i=!0;else if(wR(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(wR(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(zN(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=LN(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 I7(r,t,e){let n=Ao(r.map(s=>s.shape[0]));n.sort();let o=Ao(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 C7(r,t,e){let n=[ga,Qm,Hc];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 S7=\"layers-model\",qn=class extends Hn{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).\");mR(this,t,e,n)}compile(t){if(t.loss==null&&(t.loss=[]),this.loss=t.loss,typeof t.optimizer==\"string\")this.optimizer_=pR(t.optimizer),this.isOptimizerOwned=!0;else{if(!(t.optimizer instanceof qr))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(eb(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=>eb(a))}else{let i=eb(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=v7(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])};pi(\"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]===Qm?[\"accuracy\",\"acc\"].indexOf(d)!==-1?m=Ph:[\"crossentropy\",\"ce\"].indexOf(d)!==-1&&(m=nb):this.lossFunctions[i]===Jm?[\"accuracy\",\"acc\"].indexOf(d)!==-1?m=ob:[\"crossentropy\",\"ce\"].indexOf(d)!==-1&&(m=ON):[\"accuracy\",\"acc\"].indexOf(d)!==-1?m=Mh:[\"crossentropy\",\"ce\"].indexOf(d)!==-1&&(m=Lh);let x;[\"accuracy\",\"acc\"].indexOf(d)!==-1?x=\"acc\":[\"crossentropy\",\"ce\"].indexOf(d)!==-1&&(x=\"ce\"),f=m,p=c+x}else f=uR(d),p=c+zh(d);let h;pi(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;ub(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 kr(l)}finally{Fo(i[0],t),Fo(i[1],e)}}async evaluateDataset(t,e){return this.makeTestFunction(),bR(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 Ro;if(t instanceof Pt&&(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 Nt(\"Verbose predictLoop() is not implemented yet.\");let s=pb(o,e),i=this.outputs.map(a=>[]);for(let a=0;a{let l=s[a][0],c=s[a][1],p=ef(t,l,c),m=[];if(Array.isArray(p))for(let d=0;di[c].push(l));return kr(i.map(a=>se(a,0)))})}predict(t,e={}){let n=LN(t);CR(n,this.inputNames,this.feedInputShapes,!1);try{let o=e.batchSize==null?32:e.batchSize;return ub(o),this.predictLoop(n,o)}finally{Fo(n,t)}}predictOnBatch(t){CR(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 jr(\"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=ab(o,this.outputNames);l=[];for(let p=0;p{let i=this.checkNumSamples(e,n,s,\"steps\"),a=[];if(o>0)throw new Nt(\"Verbose mode is not implemented yet.\");if(s!=null)throw new Nt(\"steps mode in testLoop() is not implemented yet\");{let u=pb(i,n),l=Ke(gn(0,i));for(let c=0;c1){let i=NN(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=Y(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 Nt(\"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=ef(o,F,P),i=o,o=ef(o,0,F),p=ef(s,F,P),a=s,s=ef(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(),I=this.getDedupedMetricsNames(),N,E;g?(this.makeTestFunction(),N=this.testFunction,E=I.slice().concat(I.map(F=>\"val_\"+F))):(N=null,x=[],E=I.slice());let A=Qy(n.callbacks,n.yieldEvery);return await this.fitLoop(w,b,I,f,n.epochs,n.verbose,A,N,x,n.shuffle,E,n.initialEpoch,null,null)}finally{this.isTraining=!1,Fo(o,t),Fo(s,e),Fo(i,t),Fo(a,e),Fo(c,u),Fo(p,l),m!=null&&Tt(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=gn(0,g)),i==null&&(i=1);let{callbackList:b,history:w}=tb(a,i,s,m,g,f,o,h,p);b.setModel(this),this.history=w,await b.onTrainBegin(),this.stopTraining_=!1;for(let I=m;I{let P=A[D][0],V=A[D][1],G=Nl(E,P,V-P);F.batch=D,F.size=V-P;let W=cb(e,G),q=t(W);for(let H=0;HEo(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]=Eo(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[Eo(zh(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(t=>Eo(zh(t)));{let t={};for(let e in this.metrics)t[e]=Eo(zh(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=qc(t.optimizer_config),n=In(e),o;if(typeof t.loss==\"string\")o=Sl(t.loss);else if(Array.isArray(t.loss))o=t.loss.map(i=>Sl(i));else if(t.loss!=null){o={};for(let i in t.loss)o[i]=Sl(t.loss[i])}let s;if(Array.isArray(t.metrics))s=t.metrics.map(i=>Sl(i));else if(t.metrics!=null){s={};for(let i in t.metrics)s[i]=Sl(t.metrics[i])}this.compile({loss:o,metrics:s,optimizer:n})}async save(t,e){if(typeof t==\"string\"){let l=Mr.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 Mr.encodeWeights(this.getNamedWeights(e)),o=!1,s=null,a={modelTopology:this.toJSON(s,o),format:S7,generatedBy:`TensorFlow.js tfjs-layers v${tf}`,convertedBy:null};if((e==null?!1:e.includeOptimizer)&&this.optimizer!=null){a.trainingConfig=this.getTrainingConfig();let l=\"optimizer\",{data:c,specs:p}=await Mr.encodeWeights(await this.optimizer.getWeights(),l);n.specs.push(...p),n.data=Mr.concatenateArrayBuffers([n.data,c])}return this.userDefinedMetadata!=null&&(MN(this.userDefinedMetadata,this.name,!0),a.userDefinedMetadata=this.userDefinedMetadata),a.weightData=n.data,a.weightSpecs=n.specs,t.save(a)}setUserDefinedMetadata(t){MN(t,this.name),this.userDefinedMetadata=t}getUserDefinedMetadata(){return this.userDefinedMetadata}};qn.className=\"Model\";J.registerClass(qn);var mb=class extends qn{};mb.className=\"Functional\";J.registerClass(mb);async function vR(r,t){\"modelTopology\"in r||(r={modelTopology:r}),r=r;let e=r.modelTopology;e.model_config!=null&&(e=e.model_config);let n=qc(e),o=In(n,t);if(r.weightsManifest!=null){let s=await Mr.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),Tt(s)}return o}async function SR(r,t){if(t==null&&(t={}),typeof r==\"string\"){let e=Mr.getLoadHandlers(r,t);if(e.length===0)e.push(Mr.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 N7(r,void 0,t)}async function N7(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=In(qc(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}=k7(n.weightData,n.weightSpecs);a.loadWeights(l,s),a.optimizer!=null&&c.length>0&&await a.optimizer.setWeights(c),Tt(l),Tt(c.map(p=>p.tensor))}return a}function k7(r,t){let e=Mr.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 xa=class extends qn{constructor(t){if(super({inputs:[],outputs:[]}),t=t||{},this.trainable=!0,this.built=!1,this.name=t.name!=null?t.name:Fu(\"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 xa||t instanceof qn,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=qy({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=DN(this.outputs[0])}this.inboundNodes=[],new Tl({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:_o(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(Gt(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 qn({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 jr(\"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 jr(\"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 jr(\"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 jr(\"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 xa))throw new Nt(`Sequential.fromConfig called on non-Sequential input: ${a}`);for(let u of s){let c=In(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}}};xa.className=\"Sequential\";J.registerClass(xa);function T7(r){return new qn(r)}function _7(r){return new xa(r)}function BN(r){return qy(r)}function E7(r,t){wn.registerCallbackConstructor(r,t)}var nn=class extends J.Serializable{getConfig(){return{}}},fb=class extends nn{apply(t,e=1){return U$(t,e)}};fb.className=\"elu\";J.registerClass(fb);var db=class extends nn{apply(t){return wm(t)}};db.className=\"selu\";J.registerClass(db);var hb=class extends nn{apply(t){return Pr(t)}};hb.className=\"relu\";J.registerClass(hb);var gb=class extends nn{apply(t){return B(()=>uo(6,Pr(t)))}};gb.className=\"relu6\";J.registerClass(gb);var xb=class extends nn{apply(t){return t}};xb.className=\"linear\";J.registerClass(xb);var yb=class extends nn{apply(t){return tn(t)}};yb.className=\"sigmoid\";J.registerClass(yb);var bb=class extends nn{apply(t){return q$(t)}};bb.className=\"hardSigmoid\";J.registerClass(bb);var wb=class extends nn{apply(t){return ai(t)}};wb.className=\"softplus\";J.registerClass(wb);var Ib=class extends nn{apply(t){return H$(t)}};Ib.className=\"softsign\";J.registerClass(Ib);var Cb=class extends nn{apply(t){return ra(t)}};Cb.className=\"tanh\";J.registerClass(Cb);var rf=class extends nn{apply(t,e=-1){return Eu(t,e)}};rf.className=\"softmax\";J.registerClass(rf);var vb=class extends nn{apply(t,e=-1){return dm(t,e)}};vb.className=\"logSoftmax\";J.registerClass(vb);var Sb=class extends nn{apply(t,e=1){return B(()=>$(tn($(t,e)),t))}};Sb.className=\"swish\";J.registerClass(Sb);var Nb=class extends nn{apply(t){return B(()=>$(t,ra(ai(t))))}};Nb.className=\"mish\";J.registerClass(Nb);function di(r){return r.getClassName()}function VN(r,t={}){return fa(r,J.SerializationMap.getMap().classNameMap,t,\"activation\")}function hi(r){if(r==null){let t={};return t.className=\"linear\",t.config={},VN(t)}if(typeof r==\"string\"){let t={};return t.className=r,t.config={},VN(t)}else return r instanceof nn?r:VN(r)}function GN(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 kb=class extends J.Serializable{},Lu=class extends kb{constructor(t){super(),GN(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=Te([1]);return this.hasL1&&(e=Y(e,pt($(this.l1,Ee(t))))),this.hasL2&&(e=Y(e,pt($(this.l2,Pc(t))))),R(e,[])})}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(t,e){return new t({l1:e.l1,l2:e.l2})}};Lu.className=\"L1L2\";J.registerClass(Lu);function TR(r){return GN(r),new Lu({l1:r!=null?r.l1:null,l2:0})}function _R(r){return GN(r),new Lu({l2:r!=null?r.l2:null,l1:0})}var NR={l1l2:\"L1L2\"};function me(r){return Rm(r)}function kR(r,t={}){return fa(r,J.SerializationMap.getMap().classNameMap,t,\"regularizer\")}function Ce(r){if(r==null)return null;if(typeof r==\"string\"){let e={className:r in NR?NR[r]:r,config:{}};return kR(e)}else return r instanceof kb?r:kR(r)}var nf=class extends _t{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}};nf.className=\"ReLU\";J.registerClass(nf);var of=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=St(t);return vu(n,this.alpha)}computeOutputShape(t){return t}getConfig(){let t={alpha:this.alpha},e=super.getConfig();return Object.assign(t,e),t}};of.className=\"LeakyReLU\";J.registerClass(of);var sf=class extends _t{constructor(t){if(super(t==null?{}:t),this.DEFAULT_ALPHA_INITIALIZER=\"zeros\",t==null&&(t={}),this.supportsMasking=!0,this.alphaInitializer=he(t.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=Ce(t.alphaRegularizer),this.alphaConstraint=Ve(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=Gt(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(Oe(t),t===\"channelsFirst\"?Vt(r,[0,2,3,1]):r))}function WN(r,t){return B(()=>(Oe(t),t===\"channelsFirst\"?Vt(r,[0,2,3,4,1]):r))}function D7(r,t,e,n=1,o=\"valid\",s,i=1){return B(()=>{if(s==null&&(s=xn()),Oe(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=Vt(r,[0,2,1])),o===\"causal\")throw new Nt(\"The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.\");let a=um(r,t,n,o===\"same\"?\"same\":\"valid\",\"NWC\",i);return e!=null&&(a=yn(a,e)),a})}function ER(r,t,e,n=[1,1],o=\"valid\",s,i,a=null){return B(()=>{if(s==null&&(s=xn()),Oe(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=Bh(r,s);if(o===\"causal\")throw new Nt(\"The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.\");return u=Ru.conv2d({x:u,filter:t,strides:n,pad:o===\"same\"?\"same\":\"valid\",dilations:i,dataFormat:\"NHWC\",bias:e,activation:a}),s===\"channelsFirst\"&&(u=Vt(u,[0,3,1,2])),u})}function $7(r,t,e,n=[1,1,1],o=\"valid\",s,i){return B(()=>{if(s==null&&(s=xn()),Oe(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=WN(r,s);if(o===\"causal\")throw new Nt(\"The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.\");return a=$x(a,t,n,o===\"same\"?\"same\":\"valid\",\"NDHWC\",i),e!=null&&(a=yn(a,e)),s===\"channelsFirst\"&&(a=Vt(a,[0,4,1,2,3])),a})}var Kc=class extends _t{constructor(t,e){if(super(e),this.bias=null,this.DEFAULT_KERNEL_INITIALIZER=\"glorotNormal\",this.DEFAULT_BIAS_INITIALIZER=\"zeros\",Kc.verifyArgs(e),this.rank=t,Qe(this.rank,\"rank\"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new Nt(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=zu(e.kernelSize,t,\"kernelSize\"),this.strides=zu(e.strides==null?1:e.strides,t,\"strides\"),this.padding=e.padding==null?\"valid\":e.padding,hn(this.padding),this.dataFormat=e.dataFormat==null?\"channelsLast\":e.dataFormat,Oe(this.dataFormat),this.activation=hi(e.activation),this.useBias=e.useBias==null?!0:e.useBias,this.biasInitializer=he(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=Ve(e.biasConstraint),this.biasRegularizer=Ce(e.biasRegularizer),this.activityRegularizer=Ce(e.activityRegularizer),this.dilationRate=zu(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(co(\"kernelSize\"in t,\"required key 'kernelSize' not in config\"),typeof t.kernelSize!=\"number\"&&!Oy(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:di(this.activation),useBias:this.useBias,biasInitializer:_e(this.biasInitializer),biasRegularizer:me(this.biasRegularizer),activityRegularizer:me(this.activityRegularizer),biasConstraint:Be(this.biasConstraint)},e=super.getConfig();return Object.assign(t,e),t}},Bu=class extends Kc{constructor(t,e){super(t,e),this.kernel=null,Bu.verifyArgs(e),this.filters=e.filters,Qe(this.filters,\"filters\"),this.kernelInitializer=he(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=Ve(e.kernelConstraint),this.kernelRegularizer=Ce(e.kernelRegularizer)}build(t){t=Gt(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=Py(this.activation.getClassName());if(s!=null&&this.rank===2)n=ER(t,this.kernel.read(),o,this.strides,this.padding,this.dataFormat,this.dilationRate,s);else{if(this.rank===1)n=D7(t,this.kernel.read(),o,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)n=ER(t,this.kernel.read(),o,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)n=$7(t,this.kernel.read(),o,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new Nt(\"convolutions greater than 3D are not implemented yet.\");this.activation!=null&&(n=this.activation.apply(n))}return n})}computeOutputShape(t){t=Gt(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)}`)}},El=class extends Bu{constructor(t){super(2,t),El.verifyArgs(t)}getConfig(){let t=super.getConfig();return delete t.rank,t}static verifyArgs(t){if(typeof t.kernelSize!=\"number\"&&!Oy(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)}.`)}};El.className=\"Conv2D\";J.registerClass(El);var Al=class extends Bu{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 z(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(t.kernelSize)}.`)}};Al.className=\"Conv3D\";J.registerClass(Al);var cf=class extends El{constructor(t){if(super(t),this.inputSpec=[new Ie({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=Gt(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 Ie({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=gi(u,m,c,this.padding),h=gi(l,f,p,this.padding),g=[s,d,h,this.filters];this.dataFormat!==\"channelsLast\"&&(n=Vt(n,[0,2,3,1]));let x=pm(n,this.kernel.read(),g,this.strides,this.padding);return this.dataFormat!==\"channelsLast\"&&(x=Vt(x,[0,3,1,2])),this.bias!=null&&(x=yn(x,this.bias.read(),this.dataFormat)),this.activation!=null&&(x=this.activation.apply(x)),x})}computeOutputShape(t){t=Gt(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]=gi(e[o],u,i,this.padding),e[s]=gi(e[s],l,a,this.padding),e}getConfig(){let t=super.getConfig();return delete t.dilationRate,t}};cf.className=\"Conv2DTranspose\";J.registerClass(cf);var pf=class extends Al{constructor(t){if(super(t),this.inputSpec=[new Ie({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=Gt(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 Ie({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=gi(l,h,m,this.padding),w=gi(c,g,f,this.padding),I=gi(p,x,d,this.padding),N=[s,b,w,I,this.filters];this.dataFormat!==\"channelsLast\"&&(n=Vt(n,[0,2,3,4,1]));let E=Fx(n,this.kernel.read(),N,this.strides,this.padding);return this.dataFormat!==\"channelsLast\"&&(E=Vt(E,[0,4,1,2,3])),this.bias!==null&&(E=yn(E,this.bias.read(),this.dataFormat)),this.activation!==null&&(E=this.activation.apply(E)),E})}computeOutputShape(t){t=Gt(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]=gi(e[o],c,a,this.padding),e[s]=gi(e[s],p,u,this.padding),e[i]=gi(e[i],m,l,this.padding),e}getConfig(){let t=super.getConfig();return delete t.dilationRate,t}};pf.className=\"Conv3DTranspose\";J.registerClass(pf);var Tb=class extends Bu{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=he(e.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=Ce(e.depthwiseRegularizer),this.depthwiseConstraint=Ve(e.depthwiseConstraint),this.pointwiseInitializer=he(e.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=Ce(e.pointwiseRegularizer),this.pointwiseConstraint=Ve(e.pointwiseConstraint)}build(t){if(t=Gt(t),t.length{t=St(t);let n;if(this.rank===1)throw new Nt(\"1D separable convolution is not implemented yet.\");return this.rank===2&&(this.dataFormat===\"channelsFirst\"&&(t=Vt(t,[0,2,3,1])),n=Im(t,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,\"NHWC\")),this.useBias&&(n=yn(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),this.dataFormat===\"channelsFirst\"&&(n=Vt(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=_e(this.depthwiseInitializer),t.pointwiseInitializer=_e(this.pointwiseInitializer),t.depthwiseRegularizer=me(this.depthwiseRegularizer),t.pointwiseRegularizer=me(this.pointwiseRegularizer),t.depthwiseConstraint=Be(this.depthwiseConstraint),t.pointwiseConstraint=Be(this.pointwiseConstraint),t}};Tb.className=\"SeparableConv\";var mf=class extends Tb{constructor(t){super(2,t)}};mf.className=\"SeparableConv2D\";J.registerClass(mf);var Vu=class extends Bu{constructor(t){super(1,t),Vu.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\"&&!Oy(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)}.`)}};Vu.className=\"Conv1D\";J.registerClass(Vu);var ff=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=St(t),this.dataFormat===\"channelsLast\"){let n=Ah(t,this.cropping[0][0],t.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return Ah(n,this.cropping[1][0],t.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{let n=Ah(t,this.cropping[0][0],t.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return Ah(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}};ff.className=\"Cropping2D\";J.registerClass(ff);var df=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,Oe(this.dataFormat),this.interpolation=t.interpolation==null?\"nearest\":t.interpolation,L$(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=Vt(n,[0,2,3,1]);let s=this.size[0]*o[2],i=this.size[1]*o[3],a=this.interpolation===\"nearest\"?dn.resizeNearestNeighbor(n,[s,i]):dn.resizeBilinear(n,[s,i]);return Vt(a,[0,3,1,2])}else{let s=this.size[0]*o[1],i=this.size[1]*o[2];return this.interpolation===\"nearest\"?dn.resizeNearestNeighbor(n,[s,i]):dn.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}};df.className=\"UpSampling2D\";J.registerClass(df);function R7(r,t,e=[1,1],n=\"valid\",o,s){return B(()=>{o==null&&(o=xn()),Oe(o);let i=Bh(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=sa(i,t,e,n===\"same\"?\"same\":\"valid\",\"NHWC\",s),o===\"channelsFirst\"&&(i=Vt(i,[0,3,1,2])),i})}var hf=class extends Kc{constructor(t){super(2,t),this.depthwiseKernel=null,this.depthMultiplier=t.depthMultiplier==null?1:t.depthMultiplier,this.depthwiseInitializer=he(t.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=Ve(t.depthwiseConstraint),this.depthwiseRegularizer=Ce(t.depthwiseRegularizer)}build(t){if(t=Gt(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=R7(t,this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(n=yn(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),n})}computeOutputShape(t){t=Gt(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=En(e,this.kernelSize[0],this.padding,this.strides[0]),i=En(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=_e(this.depthwiseInitializer),t.depthwiseRegularizer=me(this.depthwiseRegularizer),t.depthwiseConstraint=Be(this.depthwiseRegularizer),t}};hf.className=\"DepthwiseConv2D\";J.registerClass(hf);function UN(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 HN(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(gn(2,u));if(t=Vt(t,l),s!=null)throw new Nt(\"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=Q(Q(o,\"bool\"),\"float32\"),o.rank===u-1&&(o=ar(o,-1)),o=Vt(o,l)),n&&(t=hr(t,0),o!=null&&(o=hr(o,0)));let c=[],p,m=e,f=t.shape[0],d=xr(t),h;o!=null&&(h=xr(o));for(let x=0;xr(b,m));if(o==null)p=w[0],m=w[1];else{let I=B(()=>{let N=h[x],E=lt(Ir(N),N),A=Y($(w[0],N),$(m[0],E)),D=m.map((F,P)=>Y($(w[1][P],N),$(F,E)));return{output:A,newStates:D}});p=I.output,m=I.newStates}a&&c.push(p)}let g;return a&&(g=qe(c,1)),[p,g,m]})}var An=class extends _t{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 Yc({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 Ie({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 gn(0,t).map(e=>null)}else return this.states_}setStates(t){this.states_=t}computeOutputShape(t){Hy(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 Ie({shape:[null,a]}));this.stateful&&this.resetStates()}resetStates(t,e=!1){B(()=>{if(!this.stateful)throw new _n(\"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=>Te([n,o])):this.states_=[Te([n,this.cell.stateSize])];else if(t==null)Tt(this.states_),this.keptStates!=null&&(Tt(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(o=>Te([n,o])):this.states_[0]=Te([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()):Tt(this.states_);for(let o=0;o$e(o.clone()))})}apply(t,e){let n=e==null?null:e.initialState,o=e==null?null:e.constants;e==null&&(e={});let s=UN(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 Ie({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 rn){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=HN((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=Te(t.shape);return e=pt(e,[1,2]),e=kl(e),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(n=>n>1?Gy(e,[1,n]):e):this.cell.stateSize>1?[Gy(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()===An.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=In(o,n);return new t(Object.assign(e,{cell:s}))}};An.className=\"RNN\";J.registerClass(An);var Dl=class extends _t{},jc=class extends Dl{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=hi(t.activation==null?this.DEFAULT_ACTIVATION:t.activation),this.useBias=t.useBias==null?!0:t.useBias,this.kernelInitializer=he(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=he(t.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=he(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Ce(t.kernelRegularizer),this.recurrentRegularizer=Ce(t.recurrentRegularizer),this.biasRegularizer=Ce(t.biasRegularizer),this.kernelConstraint=Ve(t.kernelConstraint),this.recurrentConstraint=Ve(t.recurrentConstraint),this.biasConstraint=Ve(t.biasConstraint),this.dropout=Oc([1,mi([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=Oc([1,mi([0,t.recurrentDropout==null?0:t.recurrentDropout])]),this.dropoutFunc=t.dropoutFunc,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(t){t=Gt(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;0Ir(t),rate:this.dropout,training:o,dropoutFunc:this.dropoutFunc})),0Ir(n),rate:this.recurrentDropout,training:o,dropoutFunc:this.dropoutFunc}));let s,i=this.dropoutMask,a=this.recurrentDropoutMask;i!=null?s=$o($(t,i),this.kernel.read()):s=$o(t,this.kernel.read()),this.bias!=null&&(s=yn(s,this.bias.read())),a!=null&&(n=$(n,a));let u=Y(s,$o(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:di(this.activation),useBias:this.useBias,kernelInitializer:_e(this.kernelInitializer),recurrentInitializer:_e(this.recurrentInitializer),biasInitializer:_e(this.biasInitializer),kernelRegularizer:me(this.kernelRegularizer),recurrentRegularizer:me(this.recurrentRegularizer),biasRegularizer:me(this.biasRegularizer),activityRegularizer:me(this.activityRegularizer),kernelConstraint:Be(this.kernelConstraint),recurrentConstraint:Be(this.recurrentConstraint),biasConstraint:Be(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign(Object.assign({},t),e)}};jc.className=\"SimpleRNNCell\";J.registerClass(jc);var gf=class extends An{constructor(t){t.cell=new jc(t),super(t)}call(t,e){return B(()=>{this.cell.dropoutMask!=null&&(Tt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Tt(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)}};gf.className=\"SimpleRNN\";J.registerClass(gf);var Xc=class extends Dl{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=hi(t.activation===void 0?this.DEFAULT_ACTIVATION:t.activation),this.recurrentActivation=hi(t.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:t.recurrentActivation),this.useBias=t.useBias==null?!0:t.useBias,this.kernelInitializer=he(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=he(t.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=he(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Ce(t.kernelRegularizer),this.recurrentRegularizer=Ce(t.recurrentRegularizer),this.biasRegularizer=Ce(t.biasRegularizer),this.kernelConstraint=Ve(t.kernelConstraint),this.recurrentConstraint=Ve(t.recurrentConstraint),this.biasConstraint=Ve(t.biasConstraint),this.dropout=Oc([1,mi([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=Oc([1,mi([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=Gt(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],0Ir(t),rate:this.dropout,training:n,count:3,dropoutFunc:this.dropoutFunc})),0Ir(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&&(Tt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Tt(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)}};xf.className=\"GRU\";J.registerClass(xf);var $l=class extends Dl{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=hi(t.activation===void 0?this.DEFAULT_ACTIVATION:t.activation),this.recurrentActivation=hi(t.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:t.recurrentActivation),this.useBias=t.useBias==null?!0:t.useBias,this.kernelInitializer=he(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=he(t.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=he(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=t.unitForgetBias,this.kernelRegularizer=Ce(t.kernelRegularizer),this.recurrentRegularizer=Ce(t.recurrentRegularizer),this.biasRegularizer=Ce(t.biasRegularizer),this.kernelConstraint=Ve(t.kernelConstraint),this.recurrentConstraint=Ve(t.recurrentConstraint),this.biasConstraint=Ve(t.biasConstraint),this.dropout=Oc([1,mi([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=Oc([1,mi([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=Gt(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 bn{apply(u,l){let c=s.apply([i]),p=new Pu().apply([i]),m=s.apply([i*2]);return AN(AN(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],0Ir(t),rate:this.dropout,training:n,count:4,dropoutFunc:this.dropoutFunc})),0Ir(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&&(Tt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Tt(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)}};yf.className=\"LSTM\";J.registerClass(yf);var Yc=class extends Dl{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{pi(`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(In(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 $h(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):Uy(t(),e),a=()=>Ou(i,t,n);return!o||o<=1?$e(a().clone()):Array(o).fill(void 0).map(a).map(l=>$e(l.clone()))}var F7=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&&(Tt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Tt(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=Te(s);return Array.isArray(e)?Array(e.length).fill(i):[i]})}resetStates(t,e=!1){B(()=>{if(!this.stateful)throw new _n(\"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(()=>Te(s)):this.states_=[Te(s)];else if(t==null)Tt(this.states_),this.keptStates!=null&&(Tt(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>Te(s)):this.states_[0]=Te(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()):Tt(this.states_);for(let a=0;a$e(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=En(l,o[0],s,i[0],a[0]),m=En(c,o[1],s,i[1],a[1]);return[...t.slice(0,2),...u?[n,p,m]:[p,m,n]]}};_b.className=\"ConvRNN2D\";var Zc=class extends $l{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=zu(n,2,\"kernelSize\"),this.kernelSize.forEach(u=>Qe(u,\"kernelSize\")),this.strides=zu(o||1,2,\"strides\"),this.strides.forEach(u=>Qe(u,\"strides\")),this.padding=s||\"valid\",hn(this.padding),this.dataFormat=i||\"channelsLast\",Oe(this.dataFormat),this.dilationRate=zu(a||1,2,\"dilationRate\"),this.dilationRate.forEach(u=>Qe(u,\"dilationRate\"))}build(t){var e;t=Gt(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 bn{apply(m,f){let d=l.apply([c]),h=dr([c]),g=l.apply([c*2]);return Om([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;0Ir(o),rate:this.dropout,training:n,count:a,dropoutFunc:this.dropoutFunc}));let u=this.dropoutMask,l=(nt,st,at)=>!st||!st[at]?nt:$(st[at],nt),c=l(o,u,0),p=l(o,u,1),m=l(o,u,2),f=l(o,u,3);0Ir(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,[I,N,E,A]=gr(this.kernel.read(),a,w),[D,F,P,V]=this.useBias?gr(this.bias.read(),a):[null,null,null,null];c=this.inputConv(c,I,D,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]=gr(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 K=this.recurrentActivation.apply(Y(c,h)),X=this.recurrentActivation.apply(Y(p,g)),Z=Y($(X,i),$(K,this.activation.apply(Y(m,x)))),et=$(this.recurrentActivation.apply(Y(f,b)),this.activation.apply(Z));return[et,et,Z]})}getConfig(){let t=super.getConfig(),{units:e}=t,n=F7(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=kn(t,e,this.strides,o||\"valid\",this.dataFormat===\"channelsFirst\"?\"NCHW\":\"NHWC\",this.dilationRate);return n?yn(s,n,this.dataFormat):s}recurrentConv(t,e){return kn(t,e,1,\"same\",this.dataFormat===\"channelsFirst\"?\"NCHW\":\"NHWC\")}};Zc.className=\"ConvLSTM2DCell\";J.registerClass(Zc);var bf=class extends _b{constructor(t){let e=new Zc(t);super(Object.assign(Object.assign({},t),{cell:e}))}static fromConfig(t,e){return new t(e)}};bf.className=\"ConvLSTM2D\";J.registerClass(bf);var Jc=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=St(t);if(0Uy(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()}};Jc.className=\"Dropout\";J.registerClass(Jc);var wf=class extends Jc{constructor(t){super(t),this.inputSpec=[{ndim:3}]}getNoiseShape(t){let e=t.shape;return[e[0],1,e[2]]}};wf.className=\"SpatialDropout1D\";J.registerClass(wf);var If=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,Qe(this.units,\"units\"),this.activation=hi(t.activation),t.useBias!=null&&(this.useBias=t.useBias),this.kernelInitializer=he(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=he(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=Ve(t.kernelConstraint),this.biasConstraint=Ve(t.biasConstraint),this.kernelRegularizer=Ce(t.kernelRegularizer),this.biasRegularizer=Ce(t.biasRegularizer),this.activityRegularizer=Ce(t.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(t){t=Gt(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=Gt(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=Py(this.activation.getClassName()),s;return o!=null?s=$o(n,this.kernel.read(),o,this.bias?this.bias.read():null):(s=$o(n,this.kernel.read()),this.bias!=null&&(s=yn(s,this.bias.read())),this.activation!=null&&(s=this.activation.apply(s))),s})}getConfig(){let t={units:this.units,activation:di(this.activation),useBias:this.useBias,kernelInitializer:_e(this.kernelInitializer),biasInitializer:_e(this.biasInitializer),kernelRegularizer:me(this.kernelRegularizer),biasRegularizer:me(this.biasRegularizer),activityRegularizer:me(this.activityRegularizer),kernelConstraint:Be(this.kernelConstraint),biasConstraint:Be(this.biasConstraint)},e=super.getConfig();return Object.assign(t,e),t}};If.className=\"Dense\";J.registerClass(If);var Cf=class extends _t{constructor(t){t=t||{},super(t),this.inputSpec=[{minNDim:3}],this.dataFormat=t.dataFormat}computeOutputShape(t){t=Gt(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],Do(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:di(this.activation)},e=super.getConfig();return Object.assign(t,e),t}};vf.className=\"Activation\";J.registerClass(vf);var Sf=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=St(t),V$(t,this.n)))}getConfig(){let t={n:this.n},e=super.getConfig();return Object.assign(t,e),t}};Sf.className=\"RepeatVector\";J.registerClass(Sf);var Nf=class extends _t{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}};Nf.className=\"Reshape\";J.registerClass(Nf);var kf=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=gn(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 Ie({ndim:this.dims.length+1})]}computeOutputShape(t){t=Gt(t);let e=t.slice();return this.dims.forEach((n,o)=>{e[o+1]=t[n]}),e}call(t,e){return Vt(St(t),this.dimsIncludingBatch)}getConfig(){let t={dims:this.dims},e=super.getConfig();return Object.assign(t,e),t}};kf.className=\"Permute\";J.registerClass(kf);var Tf=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=St(t),o=-1;return dc(li(n,this.maskValue),o)}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=St(t),o=-1,s=!0,i=dc(li(n,this.maskValue),o,s);return $(n,Q(i,n.dtype))})}};Tf.className=\"Masking\";J.registerClass(Tf);var _f=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(we(t.inputLength))}this.inputDim=t.inputDim,Qe(this.inputDim,\"inputDim\"),this.outputDim=t.outputDim,Qe(this.outputDim,\"outputDim\"),this.embeddingsInitializer=he(t.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=Ce(t.embeddingsRegularizer),this.activityRegularizer=Ce(t.activityRegularizer),this.embeddingsConstraint=Ve(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),li(t,vt(t))):null)}computeOutputShape(t){if(t=Gt(t),this.inputLength==null)return[...t,this.outputDim];let e=we(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=en(n,\"int32\"));let o=Wy(this.embeddings.read(),R(n,[n.size]));return R(o,Gt(this.computeOutputShape(n.shape)))})}getConfig(){let t={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:_e(this.embeddingsInitializer),embeddingsRegularizer:me(this.embeddingsRegularizer),activityRegularizer:me(this.activityRegularizer),embeddingsConstraint:Be(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},e=super.getConfig();return Object.assign(t,e),t}};_f.className=\"Embedding\";J.registerClass(_f);var Fl=class extends _t{constructor(t){super(t||{}),this.supportsMasking=!0}mergeFunction(t){throw new Nt}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&&Ao(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=mi(o);for(let i of t){let a=i.rank;for(let u=0;u1){let c=gn(1,l).concat([0]);n.push(Vt(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(Vt(R(i,[-1,c]),[1,0]),p)}else if(a>1){let u=[a-1].concat(gn(0,a-1));i=Vt(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:ar(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(()=>Om(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 Nt(\"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 Nt(\"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 Nt(\"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)=>Vh(s,t[i].shape.length)):o=[Vh(this.axes,e.shape.length),Vh(this.axes,n.shape.length)],this.normalize&&(e=Rh(e,o[0]),n=Rh(n,o[1])),O7(e,n,o)}interpretAxes(t,e){let n;return Array.isArray(this.axes)?n=this.axes:n=[Vh(this.axes,t.length),Vh(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 Nt(\"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}};Of.className=\"Dot\";J.registerClass(Of);var Pf=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=St(t);return Ou(()=>Y(Pm(n.shape,0,this.stddev),n),()=>n,e.training||!1)})}};Pf.className=\"GaussianNoise\";J.registerClass(Pf);var Mf=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=St(t);return this.rate>0&&this.rate<1?Ou(()=>{let s=Math.sqrt(this.rate/(1-this.rate));return $(n,Pm(n.shape,1,s))},()=>n,e.training||!1):n})}};Mf.className=\"GaussianDropout\";J.registerClass(Mf);var Lf=class extends _t{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 Ou(()=>{let s=St(t),i=1.6732632423543772,a=1.0507009873554805,u=-i*a,l=pn(Wn(n),this.rate);l=en(l,\"float32\");let c=((1-this.rate)*(1+this.rate*u**2))**-.5,p=-c*u*this.rate,m=Y($(s,l),$(Y(l,-1),u));return Y($(m,c),p)},()=>St(t),e.training||!1)}return t})}};Lf.className=\"AlphaDropout\";J.registerClass(Lf);function Gh(r,t,e,n,o,s=.001){let i;if(r.rank===2)i=vx(r,t,e,n,o,s);else if(r.rank===3)i=Sx(r,t,e,n,o,s);else if(r.rank===4)i=Nx(r,t,e,n,o,s);else throw new Nt(`batchNormalization is not implemented for array of rank ${r.rank} yet`);return i}function P7(r,t,e,n,o=.001){return B(()=>{let s=yc(r,n),i=s.mean,a=s.variance;return[Gh(r,i,a,e,t,o),i,a]})}function M7(r,t,e,n,o=.001){return B(()=>{let s=yc(r,n),i=s.mean,a=s.variance,u=[];for(let d of gn(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[Gh(r,l,c,m,p,o),i,a]})}function L7(r,t,e,n,o=.001){return y.arraysEqual(n.slice().sort(),gn(0,r.rank-1))?P7(r,t,e,n,o):M7(r,t,e,n,o)}var zf=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=he(t.betaInitializer||\"zeros\"),this.gammaInitializer=he(t.gammaInitializer||\"ones\"),this.movingMeanInitializer=he(t.movingMeanInitializer||\"zeros\"),this.movingVarianceInitializer=he(t.movingVarianceInitializer||\"ones\"),this.betaConstraint=Ve(t.betaConstraint),this.gammaConstraint=Ve(t.gammaConstraint),this.betaRegularizer=Ce(t.betaRegularizer),this.gammaRegularizer=Ce(t.gammaRegularizer)}build(t){t=Gt(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 Ie({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=gn(0,i),u=this.axis>=0?this.axis:this.axis+i;a.splice(u,1);let l=_o(1,i);l[u]=s[u];let c=a.slice();c.sort();let p=!y.arraysEqual(c,gn(0,i).slice(0,i-1)),m=()=>{if(p){let b=R(this.movingMean.read(),l),w=R(this.movingVariance.read(),l),I=this.center?R(this.beta.read(),l):null,N=this.scale?R(this.gamma.read(),l):null;return Gh(o,b,w,I,N,this.epsilon)}else return Gh(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]=L7(o,this.gamma.read(),this.beta.read(),a,this.epsilon),g=(b,w,I)=>{B(()=>{let N=1-I,E=b.read(),A=$(lt(E,w),N);b.write(lt(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:_e(this.betaInitializer),gammaInitializer:_e(this.gammaInitializer),movingMeanInitializer:_e(this.movingMeanInitializer),movingVarianceInitializer:_e(this.movingVarianceInitializer),betaRegularizer:me(this.betaRegularizer),gammaRegularizer:me(this.gammaRegularizer),betaConstraint:Be(this.betaConstraint),gammaConstraint:Be(this.gammaConstraint)},e=super.getConfig();return Object.assign(t,e),t}};zf.className=\"BatchNormalization\";J.registerClass(zf);var Bf=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=he(t.betaInitializer||\"zeros\"),this.gammaInitializer=he(t.gammaInitializer||\"ones\"),this.betaRegularizer=Ce(t.betaRegularizer),this.gammaRegularizer=Ce(t.gammaRegularizer),this.supportsMasking=!0}build(t){t=Gt(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!==Ao(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}=yc(n,this.axis,!0),l=_o(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=xn()),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]],fn(r,n)})}var Vf=class extends _t{constructor(t){if(t==null&&(t={}),super(t),this.dataFormat=t.dataFormat==null?xn():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 Ie({ndim:4})]}computeOutputShape(t){t=Gt(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(()=>z7(St(t),this.padding,this.dataFormat))}getConfig(){let t={padding:this.padding,dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}};Vf.className=\"ZeroPadding2D\";J.registerClass(Vf);function Fb(r,t,e,n,o,s){return B(()=>{Oe(o),kN(s),hn(n),e==null&&(e=[1,1]),n==null&&(n=\"valid\"),o==null&&(o=xn()),s==null&&(s=\"max\"),r=Bh(r,o);let i,a=n===\"same\"?\"same\":\"valid\";return s===\"max\"?i=ku(r,t,e,a):i=bu(r,t,e,a),o===\"channelsFirst\"&&(i=Vt(i,[0,3,1,2])),i})}function AR(r,t,e,n,o,s){return B(()=>{Oe(o),kN(s),hn(n),e==null&&(e=[1,1,1]),n==null&&(n=\"valid\"),o==null&&(o=xn()),s==null&&(s=\"max\"),r=WN(r,o);let i,a=n===\"same\"?\"same\":\"valid\";return s===\"max\"?i=Zx(r,t,e,a):i=Cx(r,t,e,a),o===\"channelsFirst\"&&(i=Vt(i,[0,4,1,2,3])),i})}var Eb=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 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,hn(this.padding),this.inputSpec=[new Ie({ndim:3})]}computeOutputShape(t){t=Gt(t);let e=En(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=kl(St(t),2);let n=this.poolingFunction(St(t),[this.poolSize[0],1],[this.strides[0],1],this.padding,\"channelsLast\");return Un(n,[2])})}getConfig(){let t={poolSize:this.poolSize,padding:this.padding,strides:this.strides},e=super.getConfig();return Object.assign(t,e),t}},Gf=class extends Eb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Oe(s),hn(o),Fb(t,e,n,o,s,\"max\")}};Gf.className=\"MaxPooling1D\";J.registerClass(Gf);var Wf=class extends Eb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Oe(s),hn(o),Fb(t,e,n,o,s,\"avg\")}};Wf.className=\"AveragePooling1D\";J.registerClass(Wf);var Ab=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 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,Oe(this.dataFormat),hn(this.padding),this.inputSpec=[new Ie({ndim:4})]}computeOutputShape(t){t=Gt(t);let e=this.dataFormat===\"channelsFirst\"?t[2]:t[1],n=this.dataFormat===\"channelsFirst\"?t[3]:t[2];return e=En(e,this.poolSize[0],this.padding,this.strides[0]),n=En(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}},Uf=class extends Ab{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Oe(s),hn(o),Fb(t,e,n,o,s,\"max\")}};Uf.className=\"MaxPooling2D\";J.registerClass(Uf);var Hf=class extends Ab{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Oe(s),hn(o),Fb(t,e,n,o,s,\"avg\")}};Hf.className=\"AveragePooling2D\";J.registerClass(Hf);var Db=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 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,Oe(this.dataFormat),hn(this.padding),this.inputSpec=[new Ie({ndim:5})]}computeOutputShape(t){t=Gt(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=En(e,this.poolSize[0],this.padding,this.strides[0]),n=En(n,this.poolSize[1],this.padding,this.strides[1]),o=En(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}},qf=class extends Db{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Oe(s),hn(o),AR(t,e,n,o,s,\"max\")}};qf.className=\"MaxPooling3D\";J.registerClass(qf);var Kf=class extends Db{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Oe(s),hn(o),AR(t,e,n,o,s,\"avg\")}};Kf.className=\"AveragePooling3D\";J.registerClass(Kf);var $b=class extends _t{constructor(t){super(t),this.inputSpec=[new Ie({ndim:3})]}computeOutputShape(t){return[t[0],t[2]]}call(t,e){throw new Nt}},jf=class extends $b{constructor(t){super(t||{})}call(t,e){return B(()=>{let n=St(t);return ke(n,1)})}};jf.className=\"GlobalAveragePooling1D\";J.registerClass(jf);var Xf=class extends $b{constructor(t){super(t||{})}call(t,e){return B(()=>{let n=St(t);return Sr(n,1)})}};Xf.className=\"GlobalMaxPooling1D\";J.registerClass(Xf);var Rb=class extends _t{constructor(t){super(t),this.dataFormat=t.dataFormat==null?\"channelsLast\":t.dataFormat,Oe(this.dataFormat),this.inputSpec=[new Ie({ndim:4})]}computeOutputShape(t){return t=t,this.dataFormat===\"channelsLast\"?[t[0],t[3]]:[t[0],t[1]]}call(t,e){throw new Nt}getConfig(){let t={dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}},Yf=class extends Rb{call(t,e){return B(()=>{let n=St(t);return this.dataFormat===\"channelsLast\"?ke(n,[1,2]):ke(n,[2,3])})}};Yf.className=\"GlobalAveragePooling2D\";J.registerClass(Yf);var Zf=class extends Rb{call(t,e){return B(()=>{let n=St(t);return this.dataFormat===\"channelsLast\"?Sr(n,[1,2]):Sr(n,[2,3])})}};Zf.className=\"GlobalMaxPooling2D\";J.registerClass(Zf);var Ob=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=In(o,n);delete e.layer;let i={layer:s};return Object.assign(i,e),new t(i)}},Jf=class extends Ob{constructor(t){super(t),this.supportsMasking=!0}build(t){if(t=Gt(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=Gt(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),HN((i,a)=>[St(this.layer.call(i,e)),[]],t,[],!1,null,null,!1,!0)[1]))}};Jf.className=\"TimeDistributed\";J.registerClass(Jf);function B7(r){da(P$,\"BidirectionalMergeMode\",r)}var V7=\"concat\",Qf=class extends Ob{constructor(t){super(t);let e=t.layer.getConfig(),n={};n.className=t.layer.getClassName(),n.config=e,this.forwardLayer=In(n),e.goBackwards=e.goBackwards!==!0;let o={};if(o.className=t.layer.getClassName(),o.config=e,this.backwardLayer=In(o),this.forwardLayer.name=\"forward_\"+this.forwardLayer.name,this.backwardLayer.name=\"backward_\"+this.backwardLayer.name,this.mergeMode=t.mergeMode===void 0?V7:t.mergeMode,B7(this.mergeMode),t.weights)throw new Nt(\"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()):kr(o)}apply(t,e){let n=e==null?null:e.initialState,o=e==null?null:e.constants;e==null&&(e={});let s=UN(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 Ie({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 Nt(\"Support for constants in Bidirectional layers is not implemented yet.\");let u=i[0]instanceof rn;for(let l of i)if(l instanceof rn!==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=hr(s,1));let a;return this.mergeMode===\"concat\"?a=Om([o,s]):this.mergeMode===\"sum\"?a=Y(o,s):this.mergeMode===\"ave\"?a=$(.5,Y(o,s)):this.mergeMode===\"mul\"?a=$(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){pi(this.forwardLayer.name,()=>{this.forwardLayer.build(t)}),pi(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=In(e.layer);if(delete e.layer,e.numConstants!=null)throw new Nt(\"Deserialization of a Bidirectional layer with numConstants present is not supported yet.\");let o=e;return o.layer=n,new t(o)}};Qf.className=\"Bidirectional\";J.registerClass(Qf);var td=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=St(t),t.dtype!==\"float32\"&&(t=en(t,\"float32\")),Y($(t,this.scale),this.offset)))}};td.className=\"Rescaling\";J.registerClass(td);var{resizeBilinear:G7,cropAndResize:W7}=dn,ed=class extends _t{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=G7(t,[e,n]);return en(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=Gt(t);let e=t.length-3,n=t.length-2;return t[e]=this.height,t[n]=this.width,t}};ed.className=\"CenterCrop\";J.registerClass(ed);function DR(r,t,e,n){let o=St(r);if(o.dtype!==\"int32\"&&(o=en(o,\"int32\")),t===\"int\")return o;let s=o.shape;if(o.rank===0&&(o=ar(o,-1)),t===\"oneHot\"&&o.shape[o.shape.length-1]!==1&&(o=ar(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=gh(a,n,e,i):u=gh(a,[],e,i),t!==\"tfIdf\")return u;if(n)return $(u,n);throw new z(\"When outputMode is 'tfIdf', weights must be provided.\")}var rd=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=Gt(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=en(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=xl(t),i=Fe(this.numTokens,o).bufferSync().get(0),a=pn(s,0).bufferSync().get(0);if(!(i&&a))throw new z(`Input values must be between 0 < values <= numTokens with numTokens=${this.numTokens}`);return DR(t,this.outputMode,this.numTokens,n)})}};rd.className=\"CategoryEncoding\";J.registerClass(rd);var H7=[\"bilinear\",\"nearest\"],$R=new Set(H7),nd=class extends _t{constructor(t){if(super(t),this.height=t.height,this.width=t.width,t.interpolation)if($R.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=!!t.cropToAspectRatio}computeOutputShape(t){t=Gt(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 dn.resizeBilinear(t,n,!this.cropToAspectRatio);if(this.interpolation===\"nearest\")return dn.resizeNearestNeighbor(t,n,!this.cropToAspectRatio);throw new Error(`Interpolation is ${this.interpolation} but only ${[...$R]} are supported`)})}};nd.className=\"Resizing\";J.registerClass(nd);var Wh=class{constructor(t){this.seed=t}next(){if(this.seed!==void 0)return this.seed++}};Wh.className=\"RandomSeed\";var Uh=class extends _t{constructor(t){super(t),this.randomGenerator=new Wh(t.seed)}getConfig(){let t={seed:this.randomGenerator.seed},e=super.getConfig();return Object.assign(t,e),t}};Uh.className=\"BaseRandomLayer\";var q7=[\"bilinear\",\"nearest\"],RR=new Set(q7),od=class extends Uh{constructor(t){super(t);let{factor:e,interpolation:n=\"bilinear\"}=t;if(this.factor=e,Array.isArray(this.factor)&&this.factor.length===2)this.widthLower=this.factor[0],this.widthUpper=this.factor[1];else if(!Array.isArray(this.factor)&&this.factor>0)this.widthLower=-this.factor,this.widthUpper=this.factor;else throw new z(`Invalid factor: ${this.factor}. Must be positive number or tuple of 2 numbers`);if(this.widthLower<-1||this.widthUpper<-1)throw new z(`factor must have values larger than -1. Got: ${this.factor}`);if(this.widthUpper{let n=St(t);this.imgHeight=n.shape[n.shape.length-3];let o=n.shape[n.shape.length-2];this.widthFactor=Wn([1],1+this.widthLower,1+this.widthUpper,\"float32\",this.randomGenerator.next());let s=this.widthFactor.dataSync()[0]*o;s=Math.round(s);let i=[this.imgHeight,s];switch(this.interpolation){case\"bilinear\":return dn.resizeBilinear(t,i);case\"nearest\":return dn.resizeNearestNeighbor(t,i);default:throw new Error(`Interpolation is ${this.interpolation}\n but only ${[...RR]} are supported`)}})}};od.className=\"RandomWidth\";J.registerClass(od);function K7(r){return new fi(r)}function j7(r){return new af(r)}function X7(r){return new nf(r)}function Y7(r){return new of(r)}function Z7(r){return new sf(r)}function J7(r){return new uf(r)}function Q7(r){return new lf(r)}function tJ(r){return new Vu(r)}function eJ(r){return new El(r)}function rJ(r){return new cf(r)}function nJ(r){return new Al(r)}function oJ(r){return new pf(r)}function sJ(r){return new mf(r)}function iJ(r){return new ff(r)}function aJ(r){return new df(r)}function lJ(r){return new hf(r)}function uJ(r){return new vf(r)}function cJ(r){return new If(r)}function pJ(r){return new Jc(r)}function mJ(r){return new wf(r)}function fJ(r){return new Cf(r)}function dJ(r){return new Sf(r)}function hJ(r){return new Nf(r)}function gJ(r){return new kf(r)}function xJ(r){return new _f(r)}function yJ(r){return new Ef(r)}function bJ(r){return new Df(r)}function wJ(r){return new Ff(r)}function IJ(r){return new $f(r)}function CJ(r){return new Rf(r)}function vJ(r){return new Af(r)}function SJ(r){return new Of(r)}function NJ(r){return new zf(r)}function kJ(r){return new Bf(r)}function TJ(r){return new Vf(r)}function qN(r){return new Wf(r)}function _J(r){return qN(r)}function EJ(r){return qN(r)}function KN(r){return new Hf(r)}function AJ(r){return KN(r)}function DJ(r){return KN(r)}function jN(r){return new Kf(r)}function $J(r){return jN(r)}function RJ(r){return jN(r)}function FJ(r){return new jf(r)}function OJ(r){return new Yf(r)}function FR(r){return new Xf(r)}function OR(r){return new Zf(r)}function PR(r){return new Gf(r)}function MR(r){return new Uf(r)}function PJ(r){return new qf(r)}function MJ(r){return new xf(r)}function LJ(r){return new Xc(r)}function zJ(r){return new yf(r)}function BJ(r){return new $l(r)}function VJ(r){return new gf(r)}function GJ(r){return new jc(r)}function WJ(r){return new bf(r)}function UJ(r){return new Zc(r)}function HJ(r){return new An(r)}function qJ(r){return new Yc(r)}function KJ(r){return new Qf(r)}function jJ(r){return new Jf(r)}var XJ=FR,YJ=OR,ZJ=PR,JJ=MR;function QJ(r){return new Pf(r)}function t9(r){return new Mf(r)}function e9(r){return new Lf(r)}function r9(r){return new Tf(r)}function n9(r){return new td(r)}function o9(r){return new ed(r)}function s9(r){return new nd(r)}function i9(r){return new rd(r)}function a9(r){return new od(r)}var zR={};Kt(zR,{MAPE:()=>y9,MSE:()=>I9,binaryAccuracy:()=>l9,binaryCrossentropy:()=>u9,categoricalAccuracy:()=>p9,categoricalCrossentropy:()=>m9,cosineProximity:()=>h9,mape:()=>b9,meanAbsoluteError:()=>g9,meanAbsolutePercentageError:()=>x9,meanSquaredError:()=>w9,mse:()=>C9,precision:()=>f9,recall:()=>d9,sparseCategoricalAccuracy:()=>c9});function l9(r,t){return Ph(r,t)}function u9(r,t){return nb(r,t)}function c9(r,t){return ob(r,t)}function p9(r,t){return Mh(r,t)}function m9(r,t){return Lh(r,t)}function f9(r,t){return FN(r,t)}function d9(r,t){return lR(r,t)}function h9(r,t){return Oh(r,t)}function g9(r,t){return Zm(r,t)}function x9(r,t){return Mu(r,t)}function y9(r,t){return Mu(r,t)}function b9(r,t){return Mu(r,t)}function w9(r,t){return ga(r,t)}function I9(r,t){return ga(r,t)}function C9(r,t){return ga(r,t)}var BR={};Kt(BR,{modelFromJSON:()=>vR});var VR={};Kt(VR,{l1:()=>S9,l1l2:()=>v9,l2:()=>N9});function v9(r){return new Lu(r)}function S9(r){return TR(r)}function N9(r){return _R(r)}var Mb=class extends _l{constructor(){super(...arguments),this.model=null}setModel(t){if(!(t instanceof qn))throw new Error(\"model must be a LayersModel, not some other Container\");this.model=t}};function Pb(r,t){return rt}var Lb=class extends Mb{constructor(t){if(super(),t==null&&(t={}),t.restoreBestWeights)throw new Nt(\"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=Pb:this.mode===\"max\"?this.monitorFunc=GR:this.monitor.indexOf(\"acc\")!==-1?this.monitorFunc=GR:this.monitorFunc=Pb,this.monitorFunc===Pb&&(this.minDelta*=-1)}async onTrainBegin(t){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===Pb?1/0:-1/0}async onEpochEnd(t,e){await ha(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 k9(r){return new Lb(r)}var T9={earlyStopping:k9};var _9=L();_9.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 po;(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\"})(po||(po={}));var WR;(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={}))})(WR||(WR={}));var XN={};function A9(r,t){let e={tfOpName:r,category:\"custom\",inputs:[],attrs:[],customExecutor:t};XN[r]=e}function zb(r){return XN[r]}function D9(r){delete XN[r]}function C(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,l=a<0?t.inputNames.length+a:a;if(s.type===\"tensor\")return pr(t.inputNames[l],e,n,o);if(s.type===\"tensors\"){let m=t.inputs.slice(a,u);return t.inputNames.slice(a,u).filter((d,h)=>{var g;return((g=m[h])===null||g===void 0?void 0:g.op)!==\"NoOp\"}).map(d=>pr(d,e,n,o))}let c=pr(t.inputNames[l],e,n,o),p=c.dataSync();return s.type===\"number\"?p[0]:y.toNestedArray(c.shape,p)}let i=t.attrParams[r];return i&&i.value}function pr(r,t,e,n){let[o,s]=Cn(r,e);if(n!=null){let a=n.getHashTableHandleByName(o);if(a!=null)return a}let i=e.currentContextIds.find(a=>!!t[Bb(o,a)]);return i!==void 0?t[Bb(o,i)][s]:void 0}function YN(r,t,e){return t[Bb(r,e.currentContextId)]}function xi(r,t){let[e,n,o]=Cn(r,t);return[Bb(e,t&&t.currentContextId),n,o]}function Bb(r,t){return t?`${r}-${t}`:r}function Cn(r,t){if(r===\"\")return[\"\",0,void 0];let e=t!=null&&t.parseNodeNameCache!=null;if(e){let s=t.parseNodeNameCache.get(r);if(s!=null)return s}let n=r.split(\":\"),o;if(n.length===1)o=[r,0,void 0];else{let s=n[0],i=n.length===3?n[1]:void 0,a=Number(n[n.length-1]);o=[s,a,i]}return e&&t.parseNodeNameCache.set(r,o),o}function Hh(r,t,e){let n=C(\"pad\",r,t,e);if(n===\"explicit\"){n=C(\"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 yi(r){return r.kept?r:un(r)}var ZN={};Kt(ZN,{json:()=>$9});var $9=[{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 JN={};Kt(JN,{json:()=>R9});var R9=[{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:\"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}]},{tfOpName:\"IsFinite\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"IsInf\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]}];var QN={};Kt(QN,{json:()=>F9});var F9=[{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 tk={};Kt(tk,{json:()=>O9});var O9=[{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 ek={};Kt(ek,{json:()=>P9});var P9=[{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:\"RandomUniformInt\",category:\"creation\",inputs:[{start:0,name:\"shape\",type:\"number[]\"}],attrs:[{tfName:\"minval\",name:\"minval\",type:\"number\"},{tfName:\"maxval\",name:\"maxval\",type:\"number\"},{tfName:\"seed\",name:\"seed\",type:\"number\",defaultValue:0},{tfName:\"seed2\",name:\"seed2\",type:\"number\",defaultValue:0,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 rk={};Kt(rk,{json:()=>M9});var M9=[{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 nk={};Kt(nk,{json:()=>L9});var L9=[{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 ok={};Kt(ok,{json:()=>z9});var z9=[{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 sk={};Kt(sk,{json:()=>B9});var B9=[{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 ik={};Kt(ik,{json:()=>V9});var V9=[{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 ak={};Kt(ak,{json:()=>G9});var G9=[{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}]},{tfOpName:\"BitwiseAnd\",category:\"logical\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"y\",type:\"tensor\"}]}];var lk={};Kt(lk,{json:()=>W9});var W9=[{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\"}]},{tfOpName:\"MatrixBandPart\",category:\"matrices\",inputs:[{start:0,name:\"a\",type:\"tensor\"},{start:1,name:\"numLower\",type:\"tensor\"},{start:1,name:\"numUpper\",type:\"tensor\"}]}];var uk={};Kt(uk,{json:()=>U9});var U9=[{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\"}]}];var ck={};Kt(ck,{json:()=>H9});var H9=[{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\"},{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{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 pk={};Kt(pk,{json:()=>q9});var q9=[{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}]},{tfOpName:\"TensorScatterUpdate\",category:\"slice_join\",inputs:[{start:0,name:\"tensor\",type:\"tensor\"},{start:1,name:\"indices\",type:\"tensor\"},{start:2,name:\"values\",type:\"tensor\"}]}];var mk={};Kt(mk,{json:()=>K9});var K9=[{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 fk={};Kt(fk,{json:()=>j9});var j9=[{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 dk={};Kt(dk,{json:()=>X9});var X9=[{tfOpName:\"StaticRegexReplace\",category:\"string\",inputs:[{start:0,name:\"input\",type:\"tensor\"}],attrs:[{tfName:\"pattern\",name:\"pattern\",type:\"string\"},{tfName:\"rewrite\",name:\"rewrite\",type:\"string\"},{tfName:\"replace_global\",name:\"replaceGlobal\",type:\"bool\"}]},{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 hk={};Kt(hk,{json:()=>Y9});var Y9=[{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:\"EnsureShape\",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 qh=class{static get Instance(){return this._instance||(this._instance=new this)}constructor(){let t=[ZN,JN,QN,tk,ek,rk,nk,ok,sk,ik,ak,lk,uk,ck,pk,mk,fk,dk,hk],e=[].concat(...t.map(n=>n.json));this.opMappers=e.reduce((n,o)=>(n[o.tfOpName]=o,n),{})}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,,I]=xi(x),N=a[w];if(N.outputs!=null){let E=N.outputs.indexOf(I);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]=xi(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]=xi(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=zb(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=Vb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=Vb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"string[]\":a=jb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=jb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"number\":a=Wb(t.attr,s.tfName,s.defaultValue||0),a===void 0&&s.tfDeprecatedName&&(a=Wb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"number[]\":a=Kb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=Kb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"bool\":a=Gb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=Gb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"bool[]\":a=Yb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=Yb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"shape\":a=qb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=qb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"shape[]\":a=Xb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=Xb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"dtype\":a=Ub(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=Ub(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"dtype[]\":a=Hb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=Hb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"func\":a=UR(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=UR(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]=xi(p.name),f={name:m,op:\"Placeholder\",inputs:[],inputNames:[],category:\"graph\",inputParams:{},attrParams:{dtype:{value:gk(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]=xi(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]=xi(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 Z9(r){let t=L().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 HR(r,t){let e=Array.isArray(r)?String.fromCharCode.apply(null,r):Z9(r);return t?e:e.toLowerCase()}function Vb(r,t,e,n=!1){let o=r[t];return o!=null?HR(o.s,n):e}function Gb(r,t,e){let n=r[t];return n?n.b:e}function Wb(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 gk(r){switch(typeof r==\"string\"&&(r=po[r]),r){case po.DT_FLOAT:case po.DT_HALF:return\"float32\";case po.DT_INT32:case po.DT_INT64:case po.DT_INT8:case po.DT_UINT8:return\"int32\";case po.DT_BOOL:return\"bool\";case po.DT_DOUBLE:return\"float32\";case po.DT_STRING:return\"string\";default:return null}}function UR(r,t,e){let n=r[t];return n&&n.func?n.func.name:e}function Ub(r,t,e){let n=r[t];return n&&n.type?gk(n.type):e}function Hb(r,t,e){let n=r[t];return n&&n.list&&n.list.type?n.list.type.map(o=>gk(o)):e}function qR(r){if(!r.unknownRank)return r.dim!=null?r.dim.map(t=>typeof t.size==\"number\"?t.size:parseInt(t.size,10)):[]}function qb(r,t,e){let n=r[t];return n&&n.shape?qR(n.shape):e}function Kb(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 jb(r,t,e,n=!1){let o=r[t];return o&&o.list&&o.list.s?o.list.s.map(s=>HR(s,n)):e}function Xb(r,t,e){let n=r[t];return n&&n.list&&n.list.shape?n.list.shape.map(o=>qR(o)):e}function Yb(r,t,e){let n=r[t];return n&&n.list&&n.list.b?n.list.b:e}var Zb=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 pr(t,this.tensorMap,this.context)}getAttr(t,e){let n=this.node.rawAttrs[t];if(n.tensor!=null)return pr(t,this.tensorMap,this.context);if(n.i!=null||n.f!=null)return Wb(this.node.rawAttrs,t,e);if(n.s!=null)return Vb(this.node.rawAttrs,t,e);if(n.b!=null)return Gb(this.node.rawAttrs,t,e);if(n.shape!=null)return qb(this.node.rawAttrs,t,e);if(n.type!=null)return Ub(this.node.rawAttrs,t,e);if(n.list!=null){if(n.list.i!=null||n.list.f!=null)return Kb(this.node.rawAttrs,t,e);if(n.list.s!=null)return jb(this.node.rawAttrs,t,e);if(n.list.shape!=null)return Xb(this.node.rawAttrs,t,e);if(n.list.b!=null)return Yb(this.node.rawAttrs,t,e);if(n.list.type!=null)return Hb(this.node.rawAttrs,t,e)}return e}};var ie={};Kt(ie,{OP_SCOPE_SUFFIX:()=>A0,abs:()=>Ee,acos:()=>dx,acosh:()=>hx,add:()=>Y,addN:()=>fE,all:()=>am,any:()=>dc,argMax:()=>ta,argMin:()=>gx,asin:()=>xx,asinh:()=>yx,atan:()=>bx,atan2:()=>wx,atanh:()=>Ix,avgPool:()=>bu,avgPool3d:()=>Cx,basicLSTMCell:()=>gE,batchNorm:()=>na,batchNorm2d:()=>vx,batchNorm3d:()=>Sx,batchNorm4d:()=>Nx,batchToSpaceND:()=>wu,bincount:()=>kx,bitwiseAnd:()=>yE,booleanMaskAsync:()=>c5,broadcastArgs:()=>bE,broadcastTo:()=>oa,buffer:()=>bt,cast:()=>Q,ceil:()=>Tx,clipByValue:()=>vr,clone:()=>un,complex:()=>Nn,concat:()=>se,concat1d:()=>_x,concat2d:()=>Ex,concat3d:()=>Ax,concat4d:()=>Dx,conv1d:()=>um,conv2d:()=>kn,conv2dTranspose:()=>pm,conv3d:()=>$x,conv3dTranspose:()=>Fx,cos:()=>Iu,cosh:()=>mm,cosineWindow:()=>Ih,cumprod:()=>gc,cumsum:()=>fm,denseBincount:()=>gh,depthToSpace:()=>Ox,depthwiseConv2d:()=>sa,diag:()=>wE,dilation2d:()=>Px,div:()=>ct,divNoNan:()=>Mx,dot:()=>Lx,dropout:()=>nN,einsum:()=>CE,elu:()=>ia,enclosingPowerOfTwo:()=>oN,ensureShape:()=>vE,equal:()=>Rr,erf:()=>zx,euclideanNorm:()=>Bx,exp:()=>ir,expandDims:()=>ar,expm1:()=>Vx,eye:()=>xc,fft:()=>Au,fill:()=>vo,floor:()=>aa,floorDiv:()=>im,fused:()=>Ru,gather:()=>la,gatherND:()=>w5,greater:()=>Fe,greaterEqual:()=>pn,ifft:()=>Il,imag:()=>Cu,image:()=>dn,inTopKAsync:()=>v5,irfft:()=>km,isFinite:()=>Gx,isInf:()=>Wx,isNaN:()=>Ux,leakyRelu:()=>vu,less:()=>bl,lessEqual:()=>Gn,linalg:()=>iN,linspace:()=>kE,localResponseNormalization:()=>Hx,log:()=>Nr,log1p:()=>Su,logSigmoid:()=>jx,logSoftmax:()=>dm,logSumExp:()=>hm,logicalAnd:()=>Or,logicalNot:()=>Nu,logicalOr:()=>gm,logicalXor:()=>Xx,losses:()=>S8,lowerBound:()=>TE,matMul:()=>Bt,max:()=>Sr,maxPool:()=>ku,maxPool3d:()=>Zx,maxPoolWithArgmax:()=>_E,maximum:()=>Tn,mean:()=>ke,meshgrid:()=>EE,min:()=>xl,minimum:()=>uo,mirrorPad:()=>Jx,mod:()=>Qx,moments:()=>yc,movingAverage:()=>f5,mul:()=>$,multiRNNCell:()=>AE,multinomial:()=>DE,neg:()=>Ut,norm:()=>yl,notEqual:()=>li,oneHot:()=>ua,ones:()=>dr,onesLike:()=>Ir,op:()=>k,outerProduct:()=>$E,pad:()=>fn,pad1d:()=>RE,pad2d:()=>FE,pad3d:()=>OE,pad4d:()=>PE,pool:()=>ty,pow:()=>cn,prelu:()=>_u,print:()=>fx,prod:()=>ey,raggedGather:()=>ME,raggedRange:()=>LE,raggedTensorToTensor:()=>zE,rand:()=>BE,randomGamma:()=>aA,randomNormal:()=>Ic,randomStandardNormal:()=>lA,randomUniform:()=>Wn,randomUniformInt:()=>uA,range:()=>ca,real:()=>wl,reciprocal:()=>ay,relu:()=>Pr,relu6:()=>xm,reshape:()=>R,reverse:()=>hr,reverse1d:()=>cA,reverse2d:()=>pA,reverse3d:()=>mA,reverse4d:()=>fA,rfft:()=>Du,round:()=>ym,rsqrt:()=>bm,scalar:()=>ft,scatterND:()=>h5,searchSorted:()=>yh,selu:()=>wm,separableConv2d:()=>Im,setdiff1dAsync:()=>dA,sigmoid:()=>tn,sign:()=>ly,signal:()=>v8,sin:()=>Cm,sinh:()=>vm,slice:()=>Ot,slice1d:()=>Sm,slice2d:()=>wh,slice3d:()=>Nm,slice4d:()=>Cc,softmax:()=>Eu,softplus:()=>ai,spaceToBatchND:()=>Tu,sparse:()=>N8,sparseToDense:()=>y5,spectral:()=>C8,split:()=>gr,sqrt:()=>Ne,square:()=>Wt,squaredDifference:()=>Tm,squeeze:()=>Un,stack:()=>qe,step:()=>No,stridedSlice:()=>uy,string:()=>k8,sub:()=>lt,sum:()=>pt,tan:()=>cy,tanh:()=>ra,tensor:()=>sr,tensor1d:()=>Ke,tensor2d:()=>ui,tensor3d:()=>py,tensor4d:()=>hA,tensor5d:()=>gA,tensor6d:()=>xA,tensorScatterUpdate:()=>bA,tile:()=>Fr,topk:()=>my,transpose:()=>Vt,truncatedNormal:()=>Em,unique:()=>fy,unsortedSegmentSum:()=>Am,unstack:()=>xr,upperBound:()=>wA,variable:()=>dy,where:()=>be,whereAsync:()=>gy,zeros:()=>Te,zerosLike:()=>vt});var KR=(r,t,e,n=ie)=>{switch(r.op){case\"BiasAdd\":case\"AddV2\":case\"Add\":return[n.add(C(\"a\",r,t,e),C(\"b\",r,t,e))];case\"AddN\":return[n.addN(C(\"tensors\",r,t,e))];case\"FloorMod\":case\"Mod\":return[n.mod(C(\"a\",r,t,e),C(\"b\",r,t,e))];case\"Mul\":return[n.mul(C(\"a\",r,t,e),C(\"b\",r,t,e))];case\"RealDiv\":case\"Div\":return[n.div(C(\"a\",r,t,e),C(\"b\",r,t,e))];case\"DivNoNan\":return[n.divNoNan(C(\"a\",r,t,e),C(\"b\",r,t,e))];case\"FloorDiv\":return[n.floorDiv(C(\"a\",r,t,e),C(\"b\",r,t,e))];case\"Sub\":return[n.sub(C(\"a\",r,t,e),C(\"b\",r,t,e))];case\"Minimum\":return[n.minimum(C(\"a\",r,t,e),C(\"b\",r,t,e))];case\"Maximum\":return[n.maximum(C(\"a\",r,t,e),C(\"b\",r,t,e))];case\"Pow\":return[n.pow(C(\"a\",r,t,e),C(\"b\",r,t,e))];case\"SquaredDifference\":return[n.squaredDifference(C(\"a\",r,t,e),C(\"b\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var jR=(r,t,e,n=ie)=>{switch(r.op){case\"Abs\":case\"ComplexAbs\":return[n.abs(C(\"x\",r,t,e))];case\"Acos\":return[n.acos(C(\"x\",r,t,e))];case\"Acosh\":return[n.acosh(C(\"x\",r,t,e))];case\"Asin\":return[n.asin(C(\"x\",r,t,e))];case\"Asinh\":return[n.asinh(C(\"x\",r,t,e))];case\"Atan\":return[n.atan(C(\"x\",r,t,e))];case\"Atan2\":return[n.atan2(C(\"x\",r,t,e),C(\"y\",r,t,e))];case\"Atanh\":return[n.atanh(C(\"x\",r,t,e))];case\"Ceil\":return[n.ceil(C(\"x\",r,t,e))];case\"Complex\":return[n.complex(C(\"real\",r,t,e),C(\"imag\",r,t,e))];case\"Cos\":return[n.cos(C(\"x\",r,t,e))];case\"Cosh\":return[n.cosh(C(\"x\",r,t,e))];case\"Elu\":return[n.elu(C(\"x\",r,t,e))];case\"Erf\":return[n.erf(C(\"x\",r,t,e))];case\"Exp\":return[n.exp(C(\"x\",r,t,e))];case\"Expm1\":return[n.expm1(C(\"x\",r,t,e))];case\"Floor\":return[n.floor(C(\"x\",r,t,e))];case\"Log\":return[n.log(C(\"x\",r,t,e))];case\"Log1p\":return[n.log1p(C(\"x\",r,t,e))];case\"Imag\":return[n.imag(C(\"x\",r,t,e))];case\"Neg\":return[n.neg(C(\"x\",r,t,e))];case\"Reciprocal\":return[n.reciprocal(C(\"x\",r,t,e))];case\"Real\":return[n.real(C(\"x\",r,t,e))];case\"Relu\":return[n.relu(C(\"x\",r,t,e))];case\"Round\":return[n.round(C(\"x\",r,t,e))];case\"Selu\":return[n.selu(C(\"x\",r,t,e))];case\"Sigmoid\":return[n.sigmoid(C(\"x\",r,t,e))];case\"Sin\":return[n.sin(C(\"x\",r,t,e))];case\"Sign\":return[n.sign(C(\"x\",r,t,e))];case\"Sinh\":return[n.sinh(C(\"x\",r,t,e))];case\"Softplus\":return[n.softplus(C(\"x\",r,t,e))];case\"Sqrt\":return[n.sqrt(C(\"x\",r,t,e))];case\"Square\":return[n.square(C(\"x\",r,t,e))];case\"Tanh\":return[n.tanh(C(\"x\",r,t,e))];case\"Tan\":return[n.tan(C(\"x\",r,t,e))];case\"ClipByValue\":return[n.clipByValue(C(\"x\",r,t,e),C(\"clipValueMin\",r,t,e),C(\"clipValueMax\",r,t,e))];case\"Relu6\":return[n.relu6(C(\"x\",r,t,e))];case\"Rsqrt\":return[n.rsqrt(pr(r.inputNames[0],t,e))];case\"LeakyRelu\":return[n.leakyRelu(C(\"x\",r,t,e),C(\"alpha\",r,t,e))];case\"Prelu\":return[n.prelu(C(\"x\",r,t,e),C(\"alpha\",r,t,e))];case\"IsNan\":return[n.isNaN(pr(r.inputNames[0],t,e))];case\"IsInf\":return[n.isInf(pr(r.inputNames[0],t,e))];case\"IsFinite\":return[n.isFinite(pr(r.inputNames[0],t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function Kn(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 XR(r){return!(typeof r==\"number\"||r.some(t=>t<0))}function sd(r,t,e){let n=Jb(r,e),o=!XR(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=Jb(s.shape,n)}),!XR(n))throw new Error(`Non-fully-defined elementShape: ${n}`);return n}function Jb(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 Qb=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=ft(0),$e(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),Kn(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,$e(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,xr(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}`);Kn(e,s.shape,\"TensorList shape mismatch: \"),$e(s)}),this.idTensor=ft(0),this.maxNumElements=o,$e(this.idTensor)}copy(){return new Ol([...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.`);Kn(t,this.elementShape,\"TensorList shape mismatch: \");let o=sd(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=sd(this.elementShape,this.tensors,t),o=this.tensors.pop();return o.kept=!1,Kn(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(Kn(t.shape,this.elementShape,\"TensorList shape mismatch: \"),this.maxNumElements===this.size())throw new Error(\"Trying to push element into a full list.\");$e(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 Ol([],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.`);Kn(this.tensors[t].shape,e,\"TensorList shape mismatch: \");let o=sd(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.`);Kn(this.elementShape,e.shape,\"TensorList shape mismatch: \"),$e(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}`);Kn(this.elementShape,n,\"TensorList shape mismatch: \"),t=t.slice(0,this.size());let o=sd(this.elementShape,this.tensors,n);return t.length===0?sr([],[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}`);Kn(this.elementShape,e,\"TensorList shape mismatch: \");let n=sd(this.elementShape,this.tensors,e);return this.size()===0?sr([],[0].concat(n)):B(()=>{let o=this.tensors.map(s=>R(s,n));return se(o,0)})}};function YR(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);Kn(o,t,\"TensorList shape mismatch: \");let s=xr(r);return new Ol(s,t,n)}function ZR(r,t,e,n){return new Ol([],r,t,n)}function JR(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 Ol([],e,r.dtype,n),i=xr(r,0);return t.forEach((a,u)=>{s.setItem(a,i[u])}),s}function QR(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=Jb(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=C(\"thenBranch\",r,t,e),o=C(\"elseBranch\",r,t,e),s=C(\"cond\",r,t,e),i=C(\"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=C(\"body\",r,t,e),o=C(\"cond\",r,t,e),s=C(\"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=C(\"pred\",r,t,e);return[yi(n)]}case\"Switch\":{let n=C(\"pred\",r,t,e),o=C(\"data\",r,t,e);return o.kept||(o=yi(o)),(await n.data())[0]?[void 0,o]:[o,void 0]}case\"Merge\":{let n=r.inputNames.find(o=>pr(o,t,e)!==void 0);if(n){let o=pr(n,t,e);return[yi(o)]}return}case\"Enter\":{let n=C(\"frameName\",r,t,e),o=C(\"tensor\",r,t,e);return e.enterFrame(n),[yi(o)]}case\"Exit\":{let n=C(\"tensor\",r,t,e);return e.exitFrame(),[yi(n)]}case\"NextIteration\":{let n=C(\"tensor\",r,t,e);return e.nextIteration(),[yi(n)]}case\"TensorArrayV3\":{let n=C(\"size\",r,t,e),o=C(\"dtype\",r,t,e),s=C(\"elementShape\",r,t,e),i=C(\"dynamicSize\",r,t,e),a=C(\"clearAfterRead\",r,t,e),u=C(\"identicalElementShapes\",r,t,e),l=C(\"name\",r,t,e),c=new Qb(l,o,n,s,u,i,a);return e.addTensorArray(c),[c.idTensor,ft(1)]}case\"TensorArrayWriteV3\":{let n=C(\"tensorArrayId\",r,t,e),o=C(\"index\",r,t,e),s=C(\"tensor\",r,t,e),i=e.getTensorArray(n.id);return i.write(o,s),[i.idTensor]}case\"TensorArrayReadV3\":{let n=C(\"tensorArrayId\",r,t,e),o=C(\"index\",r,t,e);return[e.getTensorArray(n.id).read(o)]}case\"TensorArrayGatherV3\":{let n=C(\"tensorArrayId\",r,t,e),o=C(\"indices\",r,t,e),s=C(\"dtype\",r,t,e);return[e.getTensorArray(n.id).gather(o,s)]}case\"TensorArrayScatterV3\":{let n=C(\"tensorArrayId\",r,t,e),o=C(\"indices\",r,t,e),s=C(\"tensor\",r,t,e),i=e.getTensorArray(n.id);return i.scatter(o,s),[i.idTensor]}case\"TensorArrayConcatV3\":{let n=C(\"tensorArrayId\",r,t,e),o=e.getTensorArray(n.id),s=C(\"dtype\",r,t,e);return[o.concat(s)]}case\"TensorArraySplitV3\":{let n=C(\"tensorArrayId\",r,t,e),o=C(\"tensor\",r,t,e),s=C(\"lengths\",r,t,e),i=e.getTensorArray(n.id);return i.split(s,o),[i.idTensor]}case\"TensorArraySizeV3\":{let n=C(\"tensorArrayId\",r,t,e),o=e.getTensorArray(n.id);return[ft(o.size(),\"int32\")]}case\"TensorArrayCloseV3\":{let n=C(\"tensorArrayId\",r,t,e),o=e.getTensorArray(n.id);return o.clearAndClose(),[o.idTensor]}case\"TensorListSetItem\":{let n=C(\"tensorListId\",r,t,e),o=C(\"index\",r,t,e),s=C(\"tensor\",r,t,e),i=e.getTensorList(n.id);return i.setItem(o,s),[i.idTensor]}case\"TensorListGetItem\":{let n=C(\"tensorListId\",r,t,e),o=C(\"index\",r,t,e),s=C(\"elementShape\",r,t,e),i=C(\"elementDType\",r,t,e);return[e.getTensorList(n.id).getItem(o,s,i)]}case\"TensorListScatterV2\":case\"TensorListScatter\":{let n=C(\"indices\",r,t,e),o=C(\"tensor\",r,t,e),s=C(\"elementShape\",r,t,e),i=C(\"numElements\",r,t,e),a=JR(o,n,s,i);return e.addTensorList(a),[a.idTensor]}case\"TensorListReserve\":case\"EmptyTensorList\":{let n=C(\"elementShape\",r,t,e),o=C(\"elementDType\",r,t,e),s;r.op===\"TensorListReserve\"?s=\"numElements\":s=\"maxNumElements\";let i=C(s,r,t,e),a=r.op===\"TensorListReserve\"?-1:i,u=ZR(n,o,i,a);return e.addTensorList(u),[u.idTensor]}case\"TensorListGather\":{let n=C(\"tensorListId\",r,t,e),o=C(\"indices\",r,t,e),s=C(\"elementShape\",r,t,e),i=C(\"elementDType\",r,t,e);return[e.getTensorList(n.id).gather(o,i,s)]}case\"TensorListStack\":{let n=C(\"tensorListId\",r,t,e),o=C(\"elementShape\",r,t,e),s=C(\"elementDType\",r,t,e),i=C(\"numElements\",r,t,e);return[e.getTensorList(n.id).stack(o,s,i)]}case\"TensorListFromTensor\":{let n=C(\"tensor\",r,t,e),o=C(\"elementShape\",r,t,e),s=C(\"elementDType\",r,t,e),i=YR(n,o,s);return e.addTensorList(i),[i.idTensor]}case\"TensorListConcat\":case\"TensorListConcatV2\":{let n=C(\"tensorListId\",r,t,e),o=e.getTensorList(n.id),s=C(\"dtype\",r,t,e),i=C(\"elementShape\",r,t,e);return[o.concat(s,i)]}case\"TensorListPushBack\":{let n=C(\"tensorListId\",r,t,e),o=C(\"tensor\",r,t,e),s=e.getTensorList(n.id);return s.pushBack(o),[s.idTensor]}case\"TensorListPopBack\":{let n=C(\"tensorListId\",r,t,e),o=C(\"elementShape\",r,t,e),s=C(\"elementDType\",r,t,e);return[e.getTensorList(n.id).popBack(o,s)]}case\"TensorListSplit\":{let n=C(\"tensor\",r,t,e),o=C(\"elementShape\",r,t,e),s=C(\"lengths\",r,t,e),i=QR(n,s,o);return e.addTensorList(i),[i.idTensor]}case\"TensorListLength\":{let n=C(\"tensorListId\",r,t,e),o=e.getTensorList(n.id);return[ft(o.size(),\"int32\")]}case\"TensorListResize\":{let n=C(\"tensorListId\",r,t,e),o=C(\"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 eF(r,t,e){let[n,o]=C(\"fusedOps\",r,t,e),s=n===\"biasadd\",i=!s,a=o===\"prelu\",u=n===\"fusedbatchnorm\",l=C(\"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=C(\"strides\",r,t,e),p=Hh(r,t,e),m=C(\"dataFormat\",r,t,e).toUpperCase(),f=C(\"dilations\",r,t,e),[d,h]=C(\"args\",r,t,e);i&&(h=d,d=void 0);let g=C(\"leakyreluAlpha\",r,t,e);return{stride:c,pad:p,dataFormat:m,dilations:f,biasArg:d,preluArg:h,activationFunc:o,leakyreluAlpha:g}}var rF=(r,t,e,n=ie)=>{switch(r.op){case\"Conv1D\":{let o=C(\"stride\",r,t,e),s=C(\"pad\",r,t,e),i=C(\"dataFormat\",r,t,e).toUpperCase(),a=C(\"dilation\",r,t,e);return[n.conv1d(C(\"x\",r,t,e),C(\"filter\",r,t,e),o,s,i,a)]}case\"Conv2D\":{let o=C(\"strides\",r,t,e),s=Hh(r,t,e),i=C(\"dataFormat\",r,t,e).toUpperCase(),a=C(\"dilations\",r,t,e);return[n.conv2d(C(\"x\",r,t,e),C(\"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}=eF(r,t,e);return[n.fused.conv2d({x:C(\"x\",r,t,e),filter:C(\"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}=eF(r,t,e);return[n.fused.depthwiseConv2d({x:C(\"x\",r,t,e),filter:C(\"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=C(\"outputShape\",r,t,e),s=C(\"strides\",r,t,e),i=Hh(r,t,e);return[n.conv2dTranspose(C(\"x\",r,t,e),C(\"filter\",r,t,e),o,[s[1],s[2]],i)]}case\"DepthwiseConv2dNative\":case\"DepthwiseConv2d\":{let o=C(\"strides\",r,t,e),s=Hh(r,t,e),i=C(\"dilations\",r,t,e),a=C(\"dataFormat\",r,t,e).toUpperCase();return[n.depthwiseConv2d(C(\"input\",r,t,e),C(\"filter\",r,t,e),[o[1],o[2]],s,a,[i[1],i[2]])]}case\"Conv3D\":{let o=C(\"strides\",r,t,e),s=C(\"pad\",r,t,e),i=C(\"dataFormat\",r,t,e).toUpperCase(),a=C(\"dilations\",r,t,e);return[n.conv3d(C(\"x\",r,t,e),C(\"filter\",r,t,e),[o[1],o[2],o[3]],s,i,[a[1],a[2],a[3]])]}case\"AvgPool\":{let o=C(\"strides\",r,t,e),s=C(\"pad\",r,t,e),i=C(\"kernelSize\",r,t,e);return[n.avgPool(C(\"x\",r,t,e),[i[1],i[2]],[o[1],o[2]],s)]}case\"MaxPool\":{let o=C(\"strides\",r,t,e),s=C(\"pad\",r,t,e),i=C(\"kernelSize\",r,t,e);return[n.maxPool(C(\"x\",r,t,e),[i[1],i[2]],[o[1],o[2]],s)]}case\"MaxPoolWithArgmax\":{let o=C(\"strides\",r,t,e),s=C(\"pad\",r,t,e),i=C(\"kernelSize\",r,t,e),a=C(\"includeBatchInIndex\",r,t,e),{result:u,indexes:l}=n.maxPoolWithArgmax(C(\"x\",r,t,e),[i[1],i[2]],[o[1],o[2]],s,a);return[u,l]}case\"AvgPool3D\":{let o=C(\"strides\",r,t,e),s=C(\"pad\",r,t,e),i=C(\"kernelSize\",r,t,e);return[n.avgPool3d(C(\"x\",r,t,e),[i[1],i[2],i[3]],[o[1],o[2],o[3]],s)]}case\"MaxPool3D\":{let o=C(\"strides\",r,t,e),s=C(\"pad\",r,t,e),i=C(\"kernelSize\",r,t,e);return[n.maxPool3d(C(\"x\",r,t,e),[i[1],i[2],i[3]],[o[1],o[2],o[3]],s)]}case\"Dilation2D\":{let o=C(\"strides\",r,t,e),s=C(\"pad\",r,t,e),i=C(\"dilations\",r,t,e),a=o[1],u=o[2],l=i[1],c=i[2];return[n.dilation2d(C(\"x\",r,t,e),C(\"filter\",r,t,e),[a,u],s,[l,c],\"NHWC\")]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var nF=(r,t,e,n=ie)=>{switch(r.op){case\"Fill\":{let o=C(\"shape\",r,t,e),s=C(\"dtype\",r,t,e),i=C(\"value\",r,t,e);return[n.fill(o,i,s)]}case\"LinSpace\":{let o=C(\"start\",r,t,e),s=C(\"stop\",r,t,e),i=C(\"num\",r,t,e);return[n.linspace(o,s,i)]}case\"Multinomial\":{let o=C(\"logits\",r,t,e),s=C(\"numSamples\",r,t,e),i=C(\"seed\",r,t,e);return[n.multinomial(o,s,i)]}case\"OneHot\":{let o=C(\"indices\",r,t,e),s=C(\"depth\",r,t,e),i=C(\"onValue\",r,t,e),a=C(\"offValue\",r,t,e),u=C(\"dtype\",r,t,e);return[n.oneHot(o,s,i,a,u)]}case\"Ones\":return[n.ones(C(\"shape\",r,t,e),C(\"dtype\",r,t,e))];case\"OnesLike\":return[n.onesLike(C(\"x\",r,t,e))];case\"RandomStandardNormal\":return[n.randomStandardNormal(C(\"shape\",r,t,e),C(\"dtype\",r,t,e),C(\"seed\",r,t,e))];case\"RandomUniform\":return[n.randomUniform(C(\"shape\",r,t,e),C(\"minval\",r,t,e),C(\"maxval\",r,t,e),C(\"dtype\",r,t,e))];case\"RandomUniformInt\":return[n.randomUniformInt(C(\"shape\",r,t,e),C(\"minval\",r,t,e),C(\"maxval\",r,t,e),C(\"seed\",r,t,e))];case\"Range\":{let o=C(\"start\",r,t,e),s=C(\"stop\",r,t,e),i=C(\"step\",r,t,e);return[n.range(o,s,i,C(\"dtype\",r,t,e))]}case\"TruncatedNormal\":{let o=C(\"shape\",r,t,e),s=C(\"mean\",r,t,e),i=C(\"stdDev\",r,t,e),a=C(\"seed\",r,t,e);return[n.truncatedNormal(o,s,i,C(\"dtype\",r,t,e),a)]}case\"Zeros\":return[n.zeros(C(\"shape\",r,t,e),C(\"dtype\",r,t,e))];case\"ZerosLike\":return[n.zerosLike(C(\"x\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function xk(r,t,e){let n=C(\"boxes\",r,t,e),o=C(\"scores\",r,t,e),s=C(\"maxOutputSize\",r,t,e),i=C(\"iouThreshold\",r,t,e),a=C(\"scoreThreshold\",r,t,e),u=C(\"softNmsSigma\",r,t,e);return{boxes:n,scores:o,maxOutputSize:s,iouThreshold:i,scoreThreshold:a,softNmsSigma:u}}var oF=async(r,t,e,n,o=ie)=>{switch(r.op){case\"NonMaxSuppressionV5\":{let{boxes:s,scores:i,maxOutputSize:a,iouThreshold:u,scoreThreshold:l,softNmsSigma:c}=xk(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}=xk(r,t,e),c=C(\"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}=xk(r,t,e);return[await o.image.nonMaxSuppressionAsync(s,i,a,u,l)]}case\"Where\":{let s=o.cast(C(\"condition\",r,t,e),\"bool\"),i=[await o.whereAsync(s)];return s.dispose(),i}case\"ListDiff\":return o.setdiff1dAsync(C(\"x\",r,t,e),C(\"y\",r,t,e));default:throw TypeError(`Node type ${r.op} is not implemented`)}};var sF=(r,t,e,n=ie)=>{switch(r.op){case\"LowerBound\":{let o=C(\"sortedSequence\",r,t,e),s=C(\"values\",r,t,e);return[n.lowerBound(o,s)]}case\"TopKV2\":{let o=C(\"x\",r,t,e),s=C(\"k\",r,t,e),i=C(\"sorted\",r,t,e),a=n.topk(o,s,i);return[a.values,a.indices]}case\"UpperBound\":{let o=C(\"sortedSequence\",r,t,e),s=C(\"values\",r,t,e);return[n.upperBound(o,s)]}case\"Unique\":{let o=C(\"x\",r,t,e),s=n.unique(o);return[s.values,s.indices]}case\"UniqueV2\":{let o=C(\"x\",r,t,e),s=C(\"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 iF=(r,t,e,n=ie)=>{switch(r.op){case\"Const\":return t[r.name];case\"PlaceholderWithDefault\":let o=C(\"default\",r,t,e);return[pr(r.name,t,e)||o];case\"Placeholder\":return[pr(r.name,t,e)];case\"Identity\":case\"StopGradient\":case\"FakeQuantWithMinMaxVars\":{let c=C(\"x\",r,t,e);return[yi(c)]}case\"IdentityN\":return C(\"x\",r,t,e).map(c=>yi(c));case\"Snapshot\":let s=C(\"x\",r,t,e);return[yi(s)];case\"Shape\":return[n.tensor1d(C(\"x\",r,t,e).shape,\"int32\")];case\"ShapeN\":return C(\"x\",r,t,e).map(c=>n.tensor1d(c.shape));case\"Size\":return[n.scalar(C(\"x\",r,t,e).size,\"int32\")];case\"Rank\":return[n.scalar(C(\"x\",r,t,e).rank,\"int32\")];case\"NoOp\":return[n.scalar(1)];case\"Print\":let i=C(\"x\",r,t,e),a=C(\"data\",r,t,e),u=C(\"message\",r,t,e),l=C(\"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 ft(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=xr(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=C(\"keyDType\",r,t,e),i=C(\"valueDType\",r,t,e),a=new tw(s,i);return n.addHashTable(r.name,a),[a.handle]}}case\"InitializeTable\":case\"InitializeTableV2\":case\"LookupTableImport\":case\"LookupTableImportV2\":{let o=C(\"tableHandle\",r,t,e,n),s=C(\"keys\",r,t,e),i=C(\"values\",r,t,e);return[await n.getHashTableById(o.id).import(s,i)]}case\"LookupTableFind\":case\"LookupTableFindV2\":{let o=C(\"tableHandle\",r,t,e,n),s=C(\"keys\",r,t,e),i=C(\"defaultValue\",r,t,e);return[await n.getHashTableById(o.id).find(s,i)]}case\"LookupTableSize\":case\"LookupTableSizeV2\":{let o=C(\"tableHandle\",r,t,e,n);return[n.getHashTableById(o.id).tensorSize()]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var lF=(r,t,e,n=ie)=>{switch(r.op){case\"ResizeBilinear\":{let o=C(\"images\",r,t,e),s=C(\"size\",r,t,e),i=C(\"alignCorners\",r,t,e),a=C(\"halfPixelCenters\",r,t,e);return[n.image.resizeBilinear(o,[s[0],s[1]],i,a)]}case\"ResizeNearestNeighbor\":{let o=C(\"images\",r,t,e),s=C(\"size\",r,t,e),i=C(\"alignCorners\",r,t,e),a=C(\"halfPixelCenters\",r,t,e);return[n.image.resizeNearestNeighbor(o,[s[0],s[1]],i,a)]}case\"CropAndResize\":{let o=C(\"image\",r,t,e),s=C(\"boxes\",r,t,e),i=C(\"boxInd\",r,t,e),a=C(\"cropSize\",r,t,e),u=C(\"method\",r,t,e),l=C(\"extrapolationValue\",r,t,e);return[n.image.cropAndResize(o,s,i,a,u,l)]}case\"ImageProjectiveTransformV3\":{let o=C(\"images\",r,t,e),s=C(\"transforms\",r,t,e),i=C(\"outputShape\",r,t,e),a=C(\"fillValue\",r,t,e),u=C(\"interpolation\",r,t,e),l=C(\"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 uF=(r,t,e,n=ie)=>{switch(r.op){case\"Equal\":return[n.equal(C(\"a\",r,t,e),C(\"b\",r,t,e))];case\"NotEqual\":return[n.notEqual(C(\"a\",r,t,e),C(\"b\",r,t,e))];case\"Greater\":return[n.greater(C(\"a\",r,t,e),C(\"b\",r,t,e))];case\"GreaterEqual\":return[n.greaterEqual(C(\"a\",r,t,e),C(\"b\",r,t,e))];case\"Less\":return[n.less(C(\"a\",r,t,e),C(\"b\",r,t,e))];case\"LessEqual\":return[n.lessEqual(C(\"a\",r,t,e),C(\"b\",r,t,e))];case\"LogicalAnd\":return[n.logicalAnd(C(\"a\",r,t,e),C(\"b\",r,t,e))];case\"LogicalNot\":return[n.logicalNot(C(\"a\",r,t,e))];case\"LogicalOr\":return[n.logicalOr(C(\"a\",r,t,e),C(\"b\",r,t,e))];case\"Select\":case\"SelectV2\":return[n.where(C(\"condition\",r,t,e),C(\"a\",r,t,e),C(\"b\",r,t,e))];case\"BitwiseAnd\":return[n.bitwiseAnd(C(\"a\",r,t,e),C(\"b\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var cF=(r,t,e,n=ie)=>{switch(r.op){case\"BatchMatMul\":case\"BatchMatMulV2\":case\"MatMul\":return[n.matMul(C(\"a\",r,t,e),C(\"b\",r,t,e),C(\"transposeA\",r,t,e),C(\"transposeB\",r,t,e))];case\"Einsum\":return[n.einsum(C(\"equation\",r,t,e),...C(\"tensors\",r,t,e))];case\"Transpose\":return[n.transpose(C(\"x\",r,t,e),C(\"perm\",r,t,e))];case\"_FusedMatMul\":let[o,s]=C(\"fusedOps\",r,t,e),i=o===\"biasadd\",a=s===\"prelu\",u=C(\"numArgs\",r,t,e),l=C(\"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]=C(\"args\",r,t,e);return[n.fused.matMul({a:C(\"a\",r,t,e),b:C(\"b\",r,t,e),transposeA:C(\"transposeA\",r,t,e),transposeB:C(\"transposeB\",r,t,e),bias:c,activation:s,preluActivationWeights:p,leakyreluAlpha:l})];case\"MatrixBandPart\":return[n.linalg.bandPart(C(\"a\",r,t,e),C(\"numLower\",r,t,e),C(\"numUpper\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var pF=(r,t,e,n=ie)=>{switch(r.op){case\"EuclideanNorm\":return[n.euclideanNorm(C(\"x\",r,t,e),C(\"axis\",r,t,e),C(\"keepDims\",r,t,e))];case\"FusedBatchNorm\":case\"FusedBatchNormV2\":return[n.batchNorm(C(\"x\",r,t,e),C(\"mean\",r,t,e),C(\"variance\",r,t,e),C(\"offset\",r,t,e),C(\"scale\",r,t,e),C(\"epsilon\",r,t,e))];case\"FusedBatchNormV3\":return[n.batchNorm(C(\"x\",r,t,e),C(\"mean\",r,t,e),C(\"variance\",r,t,e),C(\"offset\",r,t,e),C(\"scale\",r,t,e),C(\"epsilon\",r,t,e))];case\"LRN\":return[n.localResponseNormalization(C(\"x\",r,t,e),C(\"radius\",r,t,e),C(\"bias\",r,t,e),C(\"alpha\",r,t,e),C(\"beta\",r,t,e))];case\"Softmax\":return[n.softmax(C(\"x\",r,t,e))];case\"LogSoftmax\":return[n.logSoftmax(C(\"x\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var mF=(r,t,e,n=ie)=>{switch(r.op){case\"RaggedGather\":{let{outputNestedSplits:o,outputDenseValues:s}=n.raggedGather(C(\"paramsNestedSplits\",r,t,e),C(\"paramsDenseValues\",r,t,e),C(\"indices\",r,t,e),C(\"outputRaggedRank\",r,t,e));return o.concat(s)}case\"RaggedRange\":{let{rtNestedSplits:o,rtDenseValues:s}=n.raggedRange(C(\"starts\",r,t,e),C(\"limits\",r,t,e),C(\"splits\",r,t,e));return[o,s]}case\"RaggedTensorToTensor\":return[n.raggedTensorToTensor(C(\"shape\",r,t,e),C(\"values\",r,t,e),C(\"defaultValue\",r,t,e),C(\"rowPartitionTensors\",r,t,e),C(\"rowPartitionTypes\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var fF=(r,t,e,n=ie)=>{switch(r.op){case\"Max\":{let a=C(\"axis\",r,t,e),u=C(\"keepDims\",r,t,e);return[n.max(C(\"x\",r,t,e),a,u)]}case\"Mean\":{let a=C(\"axis\",r,t,e),u=C(\"keepDims\",r,t,e);return[n.mean(C(\"x\",r,t,e),a,u)]}case\"Min\":{let a=C(\"axis\",r,t,e),u=C(\"keepDims\",r,t,e);return[n.min(C(\"x\",r,t,e),a,u)]}case\"Sum\":{let a=C(\"axis\",r,t,e),u=C(\"keepDims\",r,t,e);return[n.sum(C(\"x\",r,t,e),a,u)]}case\"All\":{let a=C(\"axis\",r,t,e),u=C(\"keepDims\",r,t,e);return[n.all(C(\"x\",r,t,e),a,u)]}case\"Any\":{let a=C(\"axis\",r,t,e),u=C(\"keepDims\",r,t,e);return[n.any(C(\"x\",r,t,e),a,u)]}case\"ArgMax\":{let a=C(\"axis\",r,t,e);return[n.argMax(C(\"x\",r,t,e),a)]}case\"ArgMin\":{let a=C(\"axis\",r,t,e);return[n.argMin(C(\"x\",r,t,e),a)]}case\"Prod\":{let a=C(\"axis\",r,t,e),u=C(\"keepDims\",r,t,e);return[n.prod(C(\"x\",r,t,e),a,u)]}case\"Cumprod\":{let a=C(\"axis\",r,t,e),u=C(\"exclusive\",r,t,e),l=C(\"reverse\",r,t,e);return[n.cumprod(C(\"x\",r,t,e),a,u,l)]}case\"Cumsum\":{let a=C(\"axis\",r,t,e),u=C(\"exclusive\",r,t,e),l=C(\"reverse\",r,t,e);return[n.cumsum(C(\"x\",r,t,e),a,u,l)]}case\"Bincount\":let o=C(\"x\",r,t,e),s=C(\"weights\",r,t,e),i=C(\"size\",r,t,e);return[n.bincount(o,s,i)];case\"DenseBincount\":{let a=C(\"x\",r,t,e),u=C(\"weights\",r,t,e),l=C(\"size\",r,t,e),c=C(\"binaryOutput\",r,t,e);return[n.denseBincount(a,u,l,c)]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var dF=(r,t,e,n=ie)=>{switch(r.op){case\"ConcatV2\":case\"Concat\":{let o=C(\"n\",r,t,e),s=C(\"axis\",r,t,e),i=C(\"tensors\",r,t,e);return i=i.slice(0,o),[n.concat(i,s)]}case\"Gather\":{let o=C(\"x\",r,t,e),s=C(\"indices\",r,t,e);return[n.gather(o,n.cast(s,\"int32\"),0)]}case\"GatherV2\":{let o=C(\"axis\",r,t,e),s=C(\"batchDims\",r,t,e),i=C(\"x\",r,t,e),a=C(\"indices\",r,t,e);return[n.gather(i,n.cast(a,\"int32\"),o,s)]}case\"Reverse\":{let o=C(\"dims\",r,t,e),s=[];for(let a=0;a{let o=C(\"axis\",r,t,e),s=C(\"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=C(\"axis\",r,t,e),s=C(\"tensor\",r,t,e);return n.unstack(s,o)}case\"Tile\":{let o=C(\"reps\",r,t,e);return[n.tile(C(\"x\",r,t,e),o)]}case\"Split\":case\"SplitV\":{let o=C(\"axis\",r,t,e),s=C(\"numOrSizeSplits\",r,t,e),i=C(\"x\",r,t,e);return n.split(i,s,o)}case\"ScatterNd\":{let o=C(\"indices\",r,t,e),s=C(\"values\",r,t,e),i=C(\"shape\",r,t,e);return[n.scatterND(o,s,i)]}case\"GatherNd\":{let o=C(\"x\",r,t,e),s=C(\"indices\",r,t,e);return[n.gatherND(o,s)]}case\"SparseToDense\":{let o=C(\"sparseIndices\",r,t,e),s=C(\"outputShape\",r,t,e),i=C(\"sparseValues\",r,t,e),a=C(\"defaultValue\",r,t,e);return[n.sparseToDense(o,i,s,i.dtype===a.dtype?a:n.cast(a,i.dtype))]}case\"TensorScatterUpdate\":{let o=C(\"indices\",r,t,e),s=C(\"values\",r,t,e),i=C(\"tensor\",r,t,e);return[n.tensorScatterUpdate(i,o,s)]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var hF=(r,t,e,n=ie)=>{switch(r.op){case\"SparseFillEmptyRows\":{let{outputIndices:o,outputValues:s,emptyRowIndicator:i,reverseIndexMap:a}=n.sparse.sparseFillEmptyRows(C(\"indices\",r,t,e),C(\"values\",r,t,e),C(\"denseShape\",r,t,e),C(\"defaultValue\",r,t,e));return[o,s,i,a]}case\"SparseReshape\":{let{outputIndices:o,outputShape:s}=n.sparse.sparseReshape(C(\"inputIndices\",r,t,e),C(\"inputShape\",r,t,e),C(\"newShape\",r,t,e));return[o,s]}case\"SparseSegmentMean\":return[n.sparse.sparseSegmentMean(C(\"data\",r,t,e),C(\"indices\",r,t,e),C(\"segmentIds\",r,t,e))];case\"SparseSegmentSum\":return[n.sparse.sparseSegmentSum(C(\"data\",r,t,e),C(\"indices\",r,t,e),C(\"segmentIds\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var gF=(r,t,e,n=ie)=>{switch(r.op){case\"FFT\":return[n.fft(C(\"x\",r,t,e))];case\"IFFT\":return[n.ifft(C(\"x\",r,t,e))];case\"RFFT\":return[n.rfft(C(\"x\",r,t,e))];case\"IRFFT\":return[n.irfft(C(\"x\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var xF=(r,t,e,n=ie)=>{switch(r.op){case\"StaticRegexReplace\":return[n.string.staticRegexReplace(C(\"input\",r,t,e),C(\"pattern\",r,t,e),C(\"rewrite\",r,t,e),C(\"replaceGlobal\",r,t,e))];case\"StringNGrams\":{let{nGrams:o,nGramsSplits:s}=n.string.stringNGrams(C(\"data\",r,t,e),C(\"dataSplits\",r,t,e),C(\"separator\",r,t,e),C(\"nGramWidths\",r,t,e),C(\"leftPad\",r,t,e),C(\"rightPad\",r,t,e),C(\"padWidth\",r,t,e),C(\"preserveShortSequences\",r,t,e));return[o,s]}case\"StringSplit\":{let{indices:o,values:s,shape:i}=n.string.stringSplit(C(\"input\",r,t,e),C(\"delimiter\",r,t,e),C(\"skipEmpty\",r,t,e));return[o,s,i]}case\"StringToHashBucketFast\":return[n.string.stringToHashBucketFast(C(\"input\",r,t,e),C(\"numBuckets\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var yF=(r,t,e,n=ie)=>{switch(r.op){case\"Cast\":return[n.cast(C(\"x\",r,t,e),C(\"dtype\",r,t,e))];case\"ExpandDims\":{let o=C(\"axis\",r,t,e);return[n.expandDims(C(\"x\",r,t,e),o)]}case\"Squeeze\":{let o=C(\"axis\",r,t,e);return[n.squeeze(C(\"x\",r,t,e),o)]}case\"Reshape\":return[n.reshape(C(\"x\",r,t,e),C(\"shape\",r,t,e))];case\"EnsureShape\":return[n.ensureShape(C(\"x\",r,t,e),C(\"shape\",r,t,e))];case\"MirrorPad\":return[n.mirrorPad(C(\"x\",r,t,e),C(\"padding\",r,t,e),C(\"mode\",r,t,e))];case\"PadV2\":case\"Pad\":return[n.pad(C(\"x\",r,t,e),C(\"padding\",r,t,e),C(\"constantValue\",r,t,e))];case\"SpaceToBatchND\":{let o=C(\"blockShape\",r,t,e),s=C(\"paddings\",r,t,e);return[n.spaceToBatchND(C(\"x\",r,t,e),o,s)]}case\"BatchToSpaceND\":{let o=C(\"blockShape\",r,t,e),s=C(\"crops\",r,t,e);return[n.batchToSpaceND(C(\"x\",r,t,e),o,s)]}case\"DepthToSpace\":{let o=C(\"blockSize\",r,t,e),s=C(\"dataFormat\",r,t,e).toUpperCase();return[n.depthToSpace(C(\"x\",r,t,e),o,s)]}case\"BroadcastTo\":return[n.broadcastTo(C(\"x\",r,t,e),C(\"shape\",r,t,e))];case\"BroadcastArgs\":return[n.broadcastArgs(C(\"s0\",r,t,e),C(\"s1\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function yk(r,t,e,n,o=B){let s=((i,a,u)=>{switch(i.category){case\"arithmetic\":return o(()=>KR(i,a,u));case\"basic_math\":return o(()=>jR(i,a,u));case\"control\":return tF(i,a,u);case\"convolution\":return o(()=>rF(i,a,u));case\"creation\":return o(()=>nF(i,a,u));case\"dynamic\":return oF(i,a,u);case\"evaluation\":return o(()=>sF(i,a,u));case\"image\":return o(()=>lF(i,a,u));case\"graph\":return o(()=>iF(i,a,u));case\"logical\":return o(()=>uF(i,a,u));case\"matrices\":return o(()=>cF(i,a,u));case\"normalization\":return o(()=>pF(i,a,u));case\"ragged\":return o(()=>mF(i,a,u));case\"reduction\":return o(()=>fF(i,a,u));case\"slice_join\":return o(()=>dF(i,a,u));case\"sparse\":return o(()=>hF(i,a,u));case\"spectral\":return o(()=>gF(i,a,u));case\"string\":return o(()=>xF(i,a,u));case\"transformation\":return o(()=>yF(i,a,u));case\"hash_table\":return aF(i,a,u,n);case\"custom\":let l=zb(i.op);if(l&&l.customExecutor)return l.customExecutor(new Zb(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 Kh=class{constructor(t={},e={},n={},o={},s){this.weightMap=t,this.tensorArrayMap=e,this.tensorListMap=n,this.functionMap=o,this.parseNodeNameCache=s,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 bk(r,t,e,n){let o=new Set,s=[],i=null,a=null,u=new Set,l=new Set(Object.keys(r).map(m=>Cn(m)[0]));n=n||[];let c=new Set(n.map(m=>Cn(m.name)[0])),p=[...t];for(;p.length>0;){let m=p.pop();if((Gu(m)||vQ(m)||SQ(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.has(m.name)&&!c.has(m.name)){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 bF(r,t){let{usedNodes:e,inputs:n}=t,o=Object.keys(n).map(g=>Cn(g)[0]).map(g=>r.nodes[g]),s=r.initNodes||[],i=g=>e.has(typeof g==\"string\"?g:g.name);function a(g){return[...new Map(g.map(x=>[x.name,x])).values()]}let u=a([...o,...r.weights,...s]).filter(i),l=a([...u,...Object.values(r.nodes)]).filter(i),c=new Map(l.map(g=>[g.name,g])),p={};for(let g of l){p[g.name]=p[g.name]||0;for(let x of g.children)i(x)||(p[x.name]=Number.POSITIVE_INFINITY),p[x.name]=(p[x.name]||0)+1}let m=Object.entries(p).filter(([,g])=>g===0).map(([g])=>g),f=[...m];for(;m.length>0;){let g=m.pop(),x=c.get(g);for(let b of x.children.filter(i))--p[b.name]===0&&(f.push(b.name),m.push(b.name))}let d=f.map(g=>c.get(g)),h=yQ(d,u);return bQ(h,u),h}function yQ(r,t){let e=new Map(r.map(i=>[i.name,i])),n=t.map(i=>i.name),o=new Set(n);for(;n.length>0;){let i=n.pop(),a=e.get(i);for(let u of a.children)!e.has(u.name)||o.has(u.name)||(o.add(u.name),n.push(u.name))}return r.filter(i=>o.has(i.name))}var id=class extends Error{constructor(t){super(`NodesExecutionOrderError: ${t}`)}};function bQ(r,t){let e=new Map(r.map((a,u)=>[a.name,u])),n=new Set(t.map(a=>a.name)),o=a=>n.has(typeof a==\"string\"?a:a.name),s=new Set(r.map(a=>a.name)),i=a=>s.has(typeof a==\"string\"?a:a.name);for(let a of r){for(let u of a.children.filter(i)){if(!e.has(u.name))throw new id(`Child ${u.name} of node ${a.name} is unreachable.`);if(e.get(a.name)>e.get(u.name))throw new id(`Node ${a.name} is scheduled to run after its child ${u.name}.`)}if(!o(a))for(let u of a.inputs){if(!e.has(u.name))throw new id(`Input ${u.name} of node ${a.name} is unreachable.`);if(e.get(u.name)>e.get(a.name))throw new id(`Node ${a.name} is scheduled to run before its input ${u.name}.`)}}}function wF(r){let t=new Map(r.map((a,u)=>[a.name,u])),e=Number.MAX_SAFE_INTEGER,n=r.map((a,u)=>Gu(a)?e:u),o=a=>{let u=n[t.get(a.name)];return u==null?-1:u},s=r.map((a,u)=>a.children.map(o).reduce((l,c)=>Math.max(l,c),n[u])),i=new Map;for(let a=0;at[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),{})}constructor(t,e){this.graph=t,this.parent=e,this.compiledMap=new Map,this.parseNodeNameCache=new Map,this._weightMap={},this.SEPARATOR=\",\",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 Qc(t.functions[n],this)})}getCompilationKey(t,e){let n=t.map(s=>s.name).sort(),o=e.map(s=>s.name).sort();return n.join(this.SEPARATOR)+\"--\"+o.join(this.SEPARATOR)}compile(t,e){let n=bk(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 l=e.map(p=>p.name),c=Object.keys(t);throw new Error(`Cannot compute the outputs [${l}] from the provided inputs [${c}]. Missing the following inputs: [${o}]`)}let a=bF(this.graph,n),u=wF(a);return{orderedNodes:a,nodeLiveUntilMap:u}}cloneAndKeepTensor(t){if(t==null)return null;let e=t.clone();return $e(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(m=>this.graph.nodes[Cn(m)[0]]),s=e.map(m=>Cn(m)[0]),i=new Set(s),a=s.map(m=>this.graph.nodes[m]);a.length===0&&(a=this._outputs);let u=this.getCompilationKey(o,a),l=this.compiledMap.get(u);l==null&&(l=this.compile(t,a),this.compiledMap.set(u,l));try{this.keepIntermediateTensors=L().getBool(\"KEEP_INTERMEDIATE_TENSORS\")}catch(m){this.keepIntermediateTensors=!1,console.warn(m.message)}let c={},p={};return B(()=>{let m=new Kh(this.weightMap,c,p,this.functionExecutorMap,this.parseNodeNameCache),f=Object.assign({},this.weightMap);this.keepIntermediateTensors&&(this.clonedTensorsMap=this.cloneTensorMap(this.weightMap)),Object.keys(t).forEach(x=>{let[b,w]=Cn(x,m),I=[];I[w]=t[x],f[b]=I,this.keepIntermediateTensors&&(this.clonedTensorsMap[b]=this.cloneTensorList(I))});let d=this.getFrozenTensorIds(f),{orderedNodes:h,nodeLiveUntilMap:g}=l;for(let x of h){if(f[x.name])continue;let b=yk(x,f,m,this._resourceManager);if(y.isPromise(b))throw new Error(`The execution of the op '${x.op}' returned a promise. Please use model.executeAsync() instead.`);f[x.name]=b,this.keepIntermediateTensors&&(this.clonedTensorsMap[x.name]=this.cloneTensorList(b)),this.checkTensorForDisposalWithNodeLiveUntilInfo(x,f,m,d,i,g.get(x.name))}return this.parent==null&&m.dispose(d),e.map(x=>pr(x,f,m))})}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){if(!(Gu(e)||i.has(t))){for(let u of n[t])u!=null&&(a[u.id]=(a[u.id]||0)+e.children.length);for(let u of e.inputs){if(Gu(u))continue;let l=YN(u.name,n,o);if(l!=null)for(let c of l){if(!c||c.kept||s.has(c.id))continue;let p=a[c.id];p===1?(c.dispose(),delete a[c.id]):p!=null&&a[c.id]--}}}}checkTensorForDisposalWithNodeLiveUntilInfo(t,e,n,o,s,i){function a(u){return Gu(u)||s.has(u.name)}if(!(Gu(t)||i==null))for(let u of i){if(a(u))continue;let l=YN(u.name,e,n);for(let c of l)!c||c.kept||o.has(c.id)||c.dispose()}}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=L().getBool(\"KEEP_INTERMEDIATE_TENSORS\")}catch(m){this.keepIntermediateTensors=!1,console.warn(m.message)}let i=new Kh(this.weightMap,o,s,this.functionExecutorMap,this.parseNodeNameCache);this.keepIntermediateTensors&&(this.clonedTensorsMap=this.cloneTensorMap(this.weightMap));let a=await this.executeWithControlFlow(t,i,e,n),u=e.map(m=>pr(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(I=>this.graph.nodes[Cn(I)[0]]),a=n.map(I=>Cn(I)[0]),u=new Set(a),l=a.map(I=>this.graph.nodes[I]);l.length===0&&(l=this._outputs);let{usedNodes:c,missingInputs:p,dynamicNode:m,syncInputs:f}=bk(t,l,this.weightMap,this._initNodes),d=[...i,...this.graph.weights,...this._initNodes||[]].map(I=>({node:I,contexts:e.currentContext})),h=Object.assign({},this.weightMap);Object.keys(t).forEach(I=>{let[N,E]=Cn(I),A=[];A[E]=t[I],h[N]=A});let g={},x=this.getFrozenTensorIds(h),b={};for(;d.length>0;){let I=this.processStack(i,d,e,h,b,x,u,g,c);await Promise.all(I)}m==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 w=l.filter(I=>!Gu(I)&&!pr(I.name,h,e)).map(I=>I.name);if(w.length>0){let I=\"\";throw m!=null&&(I=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${f}]`),new Error(`Cannot compute the outputs [${w}] from the provided inputs [${s}]. Consider providing the following inputs: [${p}]. ${I}`)}return h}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\"&&C(\"isConstant\",p.node,o,n)&&([m]=xi(p.node.name,n)),o[p.node.name]==null){let f=yk(p.node,o,n,this._resourceManager);m||([m]=xi(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]=xi(a.name,n);s[u]||!i.has(a.name)||(a.op===\"Merge\"?a.inputNames.some(l=>!!pr(l,o,n))&&(s[u]=!0,e.push({contexts:n.currentContext,node:a})):a.inputNames.every(l=>!!pr(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]=Cn(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]=Cn(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]=Cn(e);if(!this.graph.nodes[n])throw new Error(`The output '${e}' is not found in the graph`)})}};var ew=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 NQ=\"?tfjs-format=file\",kQ=\"model.json\",jh=class{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}constructor(t,e={},n=Mr){this.modelUrl=t,this.loadOptions=e,this.version=\"n/a\",this.io=n,e==null&&(this.loadOptions={}),this.resourceManager=new ew}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 Qc(qh.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=qh.Instance.transformGraph(t.modelInitializer);this.initializer=new Qc(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 Pt?[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 Pt)&&!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&&Tt(this.resourceIdToCapturedInput)),this.resourceManager.dispose()}};async function TQ(r,t={},e=Mr){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=EQ(r));let n=new jh(r,t,e);return await n.load(),n}function _Q(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=Mr.getWeightSpecs(n.weightsManifest),i=Mr.getModelArtifactsForJSONSync(n,s,o);t=Mr.fromMemorySync(i)}else if(\"load\"in r)t=r;else if(\"modelTopology\"in r&&\"weightSpecs\"in r&&\"weightData\"in r)t=Mr.fromMemorySync(r);else throw new Error(\"Unknown model format\");let e=new jh(t);return e.load(),e}function EQ(r){return r.endsWith(\"/\")||(r=r+\"/\"),`${r}${kQ}${NQ}`}var IF=\"4.5.0\";var VF={};Kt(VF,{CSVDataset:()=>ud,Dataset:()=>bi,FileDataSource:()=>dd,TextLineDataset:()=>ld,URLDataSource:()=>hd,array:()=>DF,csv:()=>PF,func:()=>MF,generator:()=>LF,microphone:()=>BF,version_data:()=>Bk,webcam:()=>zF,zip:()=>$F});var AF=Kl(bh());var TF=Kl(bh());function CF(r,t){return rw(r,t)}function rw(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(Wu(r)){let s=Array.isArray(r)?[]:{};n.add(r);for(let i in r){let a=r[i],u=rw(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 vF(r,t=Ik){return SF(r,t)}function SF(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(Wu(n)){let s=Array.isArray(n)?[]:{};e.add(n);for(let i in n){let a=r.map(l=>l[i]),u=SF(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 Ik(r){return r===null?null:Wu(r[0])?{value:null,recurse:!0}:{value:r,recurse:!1}}async function nw(r,t){let e=new Map;rw(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 rw(r,t,e)}function Wu(r){let t=!1;if(L().get(\"IS_BROWSER\"))t=r instanceof TextDecoder;else{let{StringDecoder:e}=wk();t=r instanceof e}return r!=null&&!ArrayBuffer.isView(r)&&(Array.isArray(r)||typeof r==\"object\"&&!(r instanceof Pt)&&!(r instanceof Promise)&&!t)}function NF(r){return r==null||AQ(r)||Array.isArray(r)||typeof r==\"object\"&&r instanceof Pt||y.isTypedArray(r)}function AQ(r){return r===null||typeof r!=\"object\"&&typeof r!=\"function\"}function kF(r){return CF(r,DQ)}function DQ(r){return r instanceof Pt?{value:r.clone(),recurse:!1}:Wu(r)?{value:null,recurse:!0}:{value:r,recurse:!1}}var ad=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 tp=class extends ad{constructor(){super(tp.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 Tk(this,t,e)}columnMajorBatch(t,e=!0,n=Ik){return this.rowMajorBatch(t,e).map(s=>vF(s,n))}concatenate(t,e){return new sw(Fk([this,t]),e)}take(t){return t<0||t==null?this:new kk(this,t)}skip(t){return t<0||t==null?this:new Nk(this,t)}prefetch(t){return new iw(this,t)}shuffle(t,e){return new Rk(this,t,e)}serial(){return new Sk(this)}},Ck=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:kF(t),done:!1}}},vk=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}}},Sk=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()}},Nk=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()}},Tk=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}}},_k=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;Tt(t.value)}}},Ek=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=Co.getTensorsInContainer(t.value),n=this.transform(t.value),o=Co.getTensorsInContainer(n);for(let s of e)Co.isTensorInList(s,o)||s.dispose();return{value:n,done:!1}}},Ak=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}}}},ow=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=Co.getTensorsInContainer(t.value),n=await this.transform(t.value),o=Co.getTensorsInContainer(n);for(let s of e)Co.isTensorInList(s,o)||s.dispose();return{value:n,done:!1}}},ep=class extends tr{constructor(){super(),this.outputQueue=new tp,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}}},Dk=class extends ep{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=Co.getTensorsInContainer(t.value),n=this.transform(t.value),o=Co.getTensorsInContainer(n);this.outputQueue.pushAll(n);for(let s of e)Co.isTensorInList(s,o)||s.dispose();return!0}},sw=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}},Pl;(function(r){r[r.FAIL=0]=\"FAIL\",r[r.SHORTEST=1]=\"SHORTEST\",r[r.LONGEST=2]=\"LONGEST\"})(Pl||(Pl={}));var $k=class extends tr{constructor(t,e=Pl.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 nw(this.iterators,o);if(e===n)return{value:null,done:!0};if(n>0)switch(this.mismatchMode){case Pl.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case Pl.SHORTEST:return{value:null,done:!0};case Pl.LONGEST:default:}return this.count++,{value:s,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}},iw=class extends tr{constructor(t,e){super(),this.upstream=t,this.bufferSize=e,this.buffer=new ad(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()}},Rk=class extends iw{constructor(t,e,n){super(t,e),this.upstream=t,this.windowSize=e,this.upstreamExhausted=!1,this.random=TF.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 bi=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),Dn(async()=>(await n.iterator()).columnMajorBatch(t,e,$Q),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,Dn(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,Dn(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 Dn(async()=>(await e.iterator()).map(n=>B(()=>t(n))),this.size)}mapAsync(t){let e=this;return Dn(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 Dn(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,Dn(async()=>{let o=Xh(async()=>({value:await e.iterator(),done:!1}));return _F(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=AF.alea(e||y.now().toString());return Dn(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,Dn(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()}};bi.MAX_BUFFER_SIZE=1e4;function Dn(r,t=null){return new class extends bi{constructor(){super(...arguments),this.size=t}async iterator(){return r()}}}function DF(r){return Dn(async()=>Fk(r),r.length)}function $F(r){if(!Wu(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 nw(r,n=>{if(n instanceof bi)return{value:n.iterator(),recurse:!1};if(Wu(n))return{value:null,recurse:!0};throw new Error(\"Leaves of the structure passed to zip() must be Datasets, not primitives.\")});return EF(e,Pl.SHORTEST)},t)}function $Q(r){if(r===null)return null;let t=r[0];return NF(t)?{value:RQ(r),recurse:!1}:{value:null,recurse:!0}}function RQ(r){if(r.length===0)throw new Error(\"Can't make a batch of zero elements.\");return r[0]instanceof Pt?qe(r):sr(r)}var ld=class extends bi{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 aw='\"',Yh=Symbol(\"out\"),RF=Symbol(\"field\"),lw=Symbol(\"quote\"),Ok=Symbol(\"quoteafterquote\"),FF=Symbol(\"quoteinquote\"),ud=class extends bi{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}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 ld(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 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(!L().get(\"IS_BROWSER\"))throw new Error(\"microphone API is only supported in browser environment.\");let e=new cd(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),sr(n,e)}};var pd=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=ui([i,s,u,a],[1,4])}else this.cropBox=ui([0,0,1,1],[1,4])}summary(){return\"webcam\"}static async create(t,e={}){if(!L().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 pd(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=Ay.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=ar(Q(t,\"float32\"),0),n;n=dn.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 md=class{};var Zh=class extends tr{split(t){return new Pk(this,t)}},Pk=class extends Zh{constructor(t,e){super(),this.upstream=t,this.impl=new Mk(t,e)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},Mk=class extends ep{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 uw=class extends tr{decodeUTF8(){return new Lk(this)}},Lk=class extends Zh{constructor(t){super(),this.upstream=t,this.impl=new zk(t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},zk=class extends ep{constructor(t){if(super(),this.upstream=t,L().get(\"IS_BROWSER\"))this.decoder=new TextDecoder(\"utf-8\");else{let{StringDecoder:e}=wk();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 L().get(\"IS_BROWSER\")?n=this.decoder.decode(e,{stream:!0}):n=this.decoder.write(Buffer.from(e.buffer)),this.outputQueue.push(n),!0}};var fd=class extends uw{constructor(t,e={}){super(),this.file=t,this.options=e,y.assert(t instanceof Uint8Array||(L().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 OF(r,t={},e){let n,o;typeof r==\"string\"?n=r:(n=r.url,o=FQ(r));let s=await(e||y.fetch)(n,o);if(s.ok){let i=new Uint8Array(await s.arrayBuffer());return new fd(i,t)}else throw new Error(s.statusText)}var FQ=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 cw(r){return typeof r==\"string\"&&r.slice(0,7)===\"file://\"}var dd=class extends md{constructor(t,e={}){super(),this.input=t,this.options=e}async iterator(){if(cw(this.input)&&L().get(\"IS_NODE\")){let t=pw();this.input=t.readFileSync(this.input.slice(7))}return new fd(this.input,this.options)}};var hd=class extends md{constructor(t,e={}){super(),this.url=t,this.fileOptions=e}async iterator(){return cw(this.url)?new dd(this.url,this.fileOptions).iterator():OF(this.url,this.fileOptions)}};function PF(r,t={}){return new ud(new hd(r),t)}function MF(r){let t=Xh(r);return Dn(async()=>t)}function LF(r){return Dn(async()=>{let t=await r();return Xh(()=>t.next())})}async function zF(r,t){return pd.create(r,t)}async function BF(r){return cd.create(r)}var Bk=\"4.5.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 OQ=Kr.whereImpl,Uu=class extends Wo{nextDataId(){return Uu.nextDataId++}constructor(){super(),this.blockSize=48,this.firstUse=!0,this.data=new Ta(this,Vn())}write(t,e,n){this.firstUse&&(this.firstUse=!1,L().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 y.convertBackendValuesAndArrayBuffer(this.data.get(t).values,e)}bufferSync(t){let e=this.readSync(t.dataId);if(t.dtype===\"string\")try{let n=e.map(o=>y.decodeString(o));return bt(t.shape,t.dtype,n)}catch(n){throw new Error(\"Failed to decode encoded string bytes into utf-8\")}return bt(t.shape,t.dtype,e)}makeOutput(t,e,n){return Vn().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 OQ(t.shape,e)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}};Uu.nextDataId=0;var Nw={};Kt(Nw,{addImpl:()=>Wk,bincountImpl:()=>yd,bincountReduceImpl:()=>mw,bitwiseAndImpl:()=>Uk,castImpl:()=>Gk,ceilImpl:()=>Hk,concatImpl:()=>rp,equalImpl:()=>qk,expImpl:()=>jk,expm1Impl:()=>Yk,floorDivImpl:()=>Jk,floorImpl:()=>Zk,gatherNdImpl:()=>fw,gatherV2Impl:()=>dw,greaterEqualImpl:()=>tT,greaterImpl:()=>Qk,lessEqualImpl:()=>rT,lessImpl:()=>eT,linSpaceImpl:()=>hw,logImpl:()=>nT,maxImpl:()=>gw,maximumImpl:()=>oT,minimumImpl:()=>sT,multiplyImpl:()=>Jh,negImpl:()=>iT,notEqualImpl:()=>aT,prodImpl:()=>lT,raggedGatherImpl:()=>xw,raggedRangeImpl:()=>yw,raggedTensorToTensorImpl:()=>bw,rangeImpl:()=>op,rsqrtImpl:()=>uT,scatterImpl:()=>wi,sigmoidImpl:()=>yO,simpleAbsImpl:()=>Vk,sliceImpl:()=>sp,sparseFillEmptyRowsImpl:()=>ww,sparseReshapeImpl:()=>Iw,sparseSegmentReductionImpl:()=>Id,sqrtImpl:()=>IO,squaredDifferenceImpl:()=>pT,staticRegexReplaceImpl:()=>mT,stridedSliceImpl:()=>Cw,stringNGramsImpl:()=>ip,stringSplitImpl:()=>ap,stringToHashBucketFastImpl:()=>lp,subImpl:()=>dT,tileImpl:()=>vw,topKImpl:()=>Sw,transposeImpl:()=>bd,uniqueImpl:()=>up});function Vk(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=Vk(o),e.makeOutput(n,t.shape,t.dtype)},GF={kernelName:_i,backendName:\"cpu\",kernelFunc:PQ};function Jt(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 I=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[I],o[E])}return[c,i]}}function Cr(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 WF={kernelName:Op,backendName:\"cpu\",kernelFunc:Cr};function gd(r,t,e=\"float32\"){if(e===\"complex64\"){let o=gd(r,t,\"float32\"),s=gd(r,t,\"float32\");return Cr({inputs:{real:o,imag:s},backend:r})}let n=y.makeZerosTypedArray(y.sizeFromShape(t),e);return r.makeTensorInfo(t,e,n)}function Yr(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 UF={kernelName:xo,backendName:\"cpu\",kernelFunc:Yr};function Oo(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 HF={kernelName:jp,backendName:\"cpu\",kernelFunc:Oo};function Gk(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]=Jt((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 Po(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dtype:s}=n;if(s===\"complex64\"){if(o.dtype===\"complex64\")return Yr({inputs:{x:o},backend:e});let c=gd(e,o.shape,o.dtype),p=Po({inputs:{x:o},backend:e,attrs:{dtype:\"float32\"}}),m=Cr({inputs:{real:p,imag:c},backend:e});return e.disposeIntermediateTensorInfo(c),e.disposeIntermediateTensorInfo(p),m}if(o.dtype===\"complex64\"){let c=Oo({inputs:{input:o},backend:e}),p=Po({inputs:{x:c},backend:e,attrs:{dtype:s}});return e.disposeIntermediateTensorInfo(c),p}if(!y.hasEncodingLoss(o.dtype,s)){let c=Yr({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]=Gk(i,o.shape,o.dtype,s);return e.makeTensorInfo(a,u,l)}var qF={kernelName:ho,backendName:\"cpu\",kernelFunc:Po};function ne(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=Po({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=Po({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,I=u.data.get(b.dataId).values,[N,E,A]=e(i.shape,a.shape,f,d,w,I),D=u.makeTensorInfo(A,\"float32\",N),F=u.makeTensorInfo(A,\"float32\",E),P=Cr({inputs:{real:D,imag:F},backend:u});return u.disposeIntermediateTensorInfo(l),u.disposeIntermediateTensorInfo(h),u.disposeIntermediateTensorInfo(D),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 xd(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,I=y.computeStrides(e);if(f.length+d.length===0)for(let N=0;NA[G]=0);let D=y.locToIndex(A,x,b),F=E.slice(-w);d.forEach(G=>F[G]=0);let P=y.locToIndex(F,w,I),V=r(h[D*2],h[D*2+1],g[P*2],g[P*2+1]);p[N]=V.real,m[N]=V.imag}return[p,m,a]}}var Wk=Jt((r,t)=>r+t),MQ=xd((r,t,e,n)=>({real:r+e,imag:t+n})),ya=ne(oo,Wk,MQ),KF={kernelName:oo,backendName:\"cpu\",kernelFunc:ya};function yd(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 mw(r,t,e,n=!1){let o=r.shape[0],s=r.shape[1],i=bt([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}var Uk=Jt((r,t)=>r&t),LQ=ne(nh,Uk),jF={kernelName:nh,backendName:\"cpu\",kernelFunc:LQ};function _r(r){return(t,e,n)=>{let o=y.getArrayFromDType(e,t.length);for(let s=0;s{let{x:i}=n;tt(i,r);let a=s,u=a.data.get(i.dataId).values,l;if(i.dtype===\"string\"){if(!Array.isArray(u))throw new Error(\"String tensor's value was not an instance of Array\");l=S.fromUint8ToStringArray(u)}else l=u;let c=e||i.dtype,p=t(l,c,o);return a.makeTensorInfo(i.shape,c,p)}}var Hk=_r(r=>Math.ceil(r)),zQ=$n(es,Hk),XF={kernelName:es,backendName:\"cpu\",kernelFunc:zQ};function rp(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),Kk=ne(za,qk,null,\"bool\"),YF={kernelName:za,backendName:\"cpu\",kernelFunc:Kk};var jk=_r(r=>Math.exp(r)),Xk=$n(ms,jk,\"float32\"),ZF={kernelName:ms,backendName:\"cpu\",kernelFunc:Xk};var Yk=_r(r=>Math.expm1(r)),BQ=$n(fs,Yk),JF={kernelName:fs,backendName:\"cpu\",kernelFunc:BQ};var Zk=_r(r=>Math.floor(r)),VQ=$n(ds,Zk),QF={kernelName:ds,backendName:\"cpu\",kernelFunc:VQ};var Jk=Jt((r,t)=>Math.floor(r/t)),GQ=ne(hs,Jk,null,\"int32\"),tO={kernelName:hs,backendName:\"cpu\",kernelFunc:GQ};function fw(r,t,e,n,o,s,i,a,u){let l=bt([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),WQ=ne(Ga,Qk,null,\"bool\"),eO={kernelName:Ga,backendName:\"cpu\",kernelFunc:WQ};var tT=Jt((r,t)=>r>=t?1:0),UQ=ne(xs,tT,null,\"bool\"),rO={kernelName:xs,backendName:\"cpu\",kernelFunc:UQ};var eT=Jt((r,t)=>rr<=t?1:0),qQ=ne(Ua,rT,null,\"bool\"),oO={kernelName:Ua,backendName:\"cpu\",kernelFunc:qQ};function hw(r,t,e){let n=(t-r)/(e-1),o=y.makeZerosTypedArray(e,\"float32\");o[0]=r;for(let s=1;sMath.log(r)),KQ=$n(Cs,nT),sO={kernelName:Cs,backendName:\"cpu\",kernelFunc:KQ};function gw(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 oT=Jt((r,t)=>Math.max(r,t)),jQ=ne(ks,oT),iO={kernelName:ks,backendName:\"cpu\",kernelFunc:jQ};var sT=Jt((r,t)=>Math.min(r,t)),XQ=ne(As,sT),aO={kernelName:As,backendName:\"cpu\",kernelFunc:XQ};var Jh=Jt((r,t)=>r*t),YQ=xd((r,t,e,n)=>({real:r*e-t*n,imag:r*n+t*e})),np=ne($s,Jh,YQ),lO={kernelName:$s,backendName:\"cpu\",kernelFunc:np};function iT(r,t,e){let n=y.createScalarValue(-1,e);return Jh([],t,n,r,e)}function ZQ(r){let{inputs:t,backend:e}=r,{x:n}=t;tt(n,\"neg\");let o=e.data.get(n.dataId).values,[s,i]=iT(o,n.shape,n.dtype);return e.makeTensorInfo(i,n.dtype,s)}var uO={kernelName:Mi,backendName:\"cpu\",kernelFunc:ZQ};var aT=Jt((r,t)=>r!==t?1:0),JQ=ne(Ja,aT,null,\"bool\"),cO={kernelName:Ja,backendName:\"cpu\",kernelFunc:JQ};function bd(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 mO={kernelName:Ms,backendName:\"cpu\",kernelFunc:QQ};function ttt(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 ett(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 rtt(r,t,e,n){let o=[],s=0,i=t.length-1+e.length,a=new Array(i).fill(null).map(()=>[0]);ett(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 fO(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)I=0;else if(I=Math.ceil(Math.abs((b-x)/w)),I>dO)throw new Error(`Requires ((limit - start) / delta) <= ${dO}`);m[g+1]=m[g]+I}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 Mo.VALUE_ROWIDS:return this.calculateOutputIndexValueRowID(s,e,n,o);case Mo.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: ${Mo[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 Mo.FIRST_DIM_SIZE:return t[0];case Mo.VALUE_ROWIDS:throw new Error(\"Cannot handle VALUE_ROWIDS in first dimension.\");case Mo.ROW_SPLITS:return this.rowPartitionValuesShapes[0][0]-1;default:throw new Error(`Cannot handle type ${Mo[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=gO(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=oa(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);hO(g,c,u),++f}h<0?(p=d+1,m=f):(p=d,m=f,f=m+1)}}};function hO(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 bw(r,t,e,n,o,s,i,a,u,l){return new wd(r,t,e,n,o,s,i,a,u,l).compute()}function op(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)),itt=$n(Hs,uT),xO={kernelName:Hs,backendName:\"cpu\",kernelFunc:itt};function wi(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 bt(e,t.dtype);let f=u instanceof le?u:bt(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))),cT=At(Xs,r=>1/(1+Math.exp(-r))),bO={kernelName:Xs,backendName:\"cpu\",kernelFunc:cT};function sp(r,t,e,n,o){let s=ze.isSliceContinous(n,t,e),i=y.sizeFromShape(e),a=y.computeStrides(n);if(s){let p=ze.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=bt(n,o,u),c=bt(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 Lo(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,size:i}=n;tt(o,\"slice\");let[a,u]=ze.parseSliceParams(o,s,i);ze.assertParamsValid(o,a,u);let l=e.data.get(o.dataId).values,c=sp(l,a,u,o.shape,o.dtype);return e.makeTensorInfo(u,o.dtype,c)}var wO={kernelName:Gi,backendName:\"cpu\",kernelFunc:Lo};function ww(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,I)=>w*I,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 I=h;I=u[0])throw new Error(S.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(I,n[I],u[0]));for(let E=0;Ea)break}return xMath.sqrt(r)),att=At(Zs,r=>Math.sqrt(r)),CO={kernelName:Zs,backendName:\"cpu\",kernelFunc:att};var pT=Jt((r,t)=>{let e=r-t;return e*e}),ltt=ne(ti,pT),vO={kernelName:ti,backendName:\"cpu\",kernelFunc:ltt};var mT=_r((r,t)=>{let{pattern:e,replaceGlobal:n,rewrite:o}=t;return r.replace(new RegExp(e,n?\"g\":\"\"),o)}),utt=$n(sc,mT),SO={kernelName:sc,backendName:\"cpu\",kernelFunc:utt};function Cw(r,t,e,n){let o=bt(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 ip(r,t,e,n,o,s,i,a){return new fT(e,n,o,s,i,a).compute(r,t)}function ctt(r,t,e,n){if(!r.length)return;if(t.length===0){for(let s=0;sr-t),ptt=xd((r,t,e,n)=>({real:r-e,imag:t-n})),Qh=ne(ei,dT,ptt),NO={kernelName:ei,backendName:\"cpu\",kernelFunc:Qh};function vw(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 kO(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));kO(r,t,m,f)}let o=r[t],s=e,i=n;for(y.swap(r,e,t),tg(r[n],o)>0&&y.swap(r,e,n);s0;)i=i-1}tg(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 Sw(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 Uu,1);var hT=At(ps,r=>r>=0?r:Math.exp(r)-1),_O={kernelName:ps,backendName:\"cpu\",kernelFunc:hT};function gT(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 xT(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]=mtt(n.shape,o.shape,s,i,\"float32\");return e.makeTensorInfo(u,\"float32\",a)}var AO={kernelName:Ps,backendName:\"cpu\",kernelFunc:xT};var yT=At(zs,r=>Math.max(0,r)),DO={kernelName:zs,backendName:\"cpu\",kernelFunc:yT};var bT=At(Gs,r=>Math.min(Math.max(0,r),6)),$O={kernelName:Gs,backendName:\"cpu\",kernelFunc:bT};function cp(r,t,e,n,o){if(e===\"linear\")return Yr({inputs:{x:t},backend:r});if(e===\"relu\")return yT({inputs:{x:t},backend:r});if(e===\"elu\")return hT({inputs:{x:t},backend:r});if(e===\"relu6\")return bT({inputs:{x:t},backend:r});if(e===\"prelu\")return xT({inputs:{x:t,alpha:n},backend:r});if(e===\"leakyrelu\")return gT({inputs:{x:t},backend:r,attrs:{alpha:o}});if(e===\"sigmoid\")return cT({inputs:{x:t},backend:r});throw new Error(`Activation ${e} has not been implemented for the CPU backend.`)}function Qt(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 RO={kernelName:Bi,backendName:\"cpu\",kernelFunc:Qt};function wT(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=Ur.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 I=i?[g,c,m]:[g,m,c],N=a?[x,f,p]:[x,p,f],E=Qt({inputs:{x:o},backend:e,attrs:{shape:I}}),A=Qt({inputs:{x:s},backend:e,attrs:{shape:N}}),D=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),[K,X,Z]=i?[q[0],1,q[1]]:[q[0],q[1],1],[et,nt,st]=a?[1,H[1],H[0]]:[H[1],1,H[0]],at=F*P,ot=bt([V,F,P],E.dtype),it=ot.values,mt=e.blockSize;for(let gt=0;gtMath.acos(r)),PO={kernelName:Ho,backendName:\"cpu\",kernelFunc:dtt};var htt=At(qo,r=>Math.acosh(r)),MO={kernelName:qo,backendName:\"cpu\",kernelFunc:htt};function gtt(r){let{inputs:t,backend:e}=r,n=t;tt(t,\"addN\");let o=n.map(a=>e.data.get(a.dataId).values),s=bt(n[0].shape,n[0].dtype),i=s.values;for(let a=0;ab&&(b=N,w=I)}f[g]=w}return l.forEach(g=>e.disposeIntermediateTensorInfo(g)),e.makeTensorInfo(c,\"int32\",f)}var VO={kernelName:Ei,backendName:\"cpu\",kernelFunc:btt};function wtt(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=Ge({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 GO={kernelName:Ai,backendName:\"cpu\",kernelFunc:wtt};var Itt=At(jo,r=>Math.asin(r)),WO={kernelName:jo,backendName:\"cpu\",kernelFunc:Itt};var Ctt=At(Xo,r=>Math.asinh(r)),UO={kernelName:Xo,backendName:\"cpu\",kernelFunc:Ctt};var vtt=At(Yo,r=>Math.atan(r)),HO={kernelName:Yo,backendName:\"cpu\",kernelFunc:vtt};var Stt=Jt((r,t)=>Math.atan2(r,t)),Ntt=ne(Jo,Stt),qO={kernelName:Jo,backendName:\"cpu\",kernelFunc:Ntt};var ktt=At(Zo,r=>Math.atanh(r)),KO={kernelName:Zo,backendName:\"cpu\",kernelFunc:ktt};function Cd(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=bt(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 I=0;IX?X=mt:s===\"avg\"&&(Z+=mt,et++)}if(isNaN(X))break}let nt=G+W*w+A;g[nt]=s===\"avg\"?Z/et:X}}}return h}function kw(r,t,e,n,o=!1,s=!1){let i=bt(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=bt(t,e,r);for(let g=0;gP&&(P=K,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 Tw(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=bt(o.outShape,e),I=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],D=o.outShape[4];for(let F=0;FRt?Rt=De:s===\"avg\"&&(Dt+=De,Ht++),isNaN(Rt))break}if(isNaN(Rt))break}if(isNaN(Rt))break}let qt=It+G;I[qt]=s===\"avg\"?Dt/Math.max(Ht,1):Rt}}}}return w}function jO(r,t){let e=bt(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=st,q=K*c*p+Z*c+nt)}}}e.set(q,h,x,N,F,g)}}}return e}function Ttt(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=Yr({inputs:{x:o},backend:e});else{let m=e.data.get(o.dataId).values,f=y.computeStrides(o.shape),d=Cd(m,o.shape,o.dtype,f,c,\"avg\");p=e.makeTensorInfo(c.outShape,o.dtype,d.values)}return p}var XO={kernelName:Qo,backendName:\"cpu\",kernelFunc:Ttt};function _tt(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=Tw(p,o.shape,o.dtype,y.computeStrides(o.shape),c,\"avg\");return e.makeTensorInfo(m.shape,\"float32\",m.values)}var YO={kernelName:Di,backendName:\"cpu\",kernelFunc:_tt};function Ett(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,I=c.effectiveFilterDepth,N=c.effectiveFilterHeight,E=c.effectiveFilterWidth,A=I-1-c.padInfo.front,D=E-1-c.padInfo.left,F=N-1-c.padInfo.top,P=bt(s.shape,\"float32\"),V=1/(d*h*g),G=e.bufferSync(o);for(let W=0;W=c.outDepth||Math.floor(ot)!==ot))for(let it=0;it=c.outHeight||Math.floor(mt)!==mt))for(let gt=0;gt=c.outWidth||Math.floor(It)!==It)continue;let Rt=G.get(W,ot,mt,It,q);st+=Rt}}}P.set(st*V,W,H,K,X,q)}return e.makeTensorInfo(P.shape,P.dtype,P.values)}var ZO={kernelName:Xl,backendName:\"cpu\",kernelFunc:Ett};function Att(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,I=x-1-c.padInfo.top,N=bt(i.shape,\"float32\"),E=1/(f*d),A=e.data.get(o.dataId).values,D=bt(o.shape,\"float32\",A);for(let F=0;F=c.outHeight||Math.floor(X)!==X))for(let Z=0;Z=c.outWidth||Math.floor(et)!==et)continue;let nt=D.get(F,X,et,P);H+=nt}}N.set(H*E,F,V,G,P)}return e.makeTensorInfo(N.shape,N.dtype,N.values)}var JO={kernelName:Fp,backendName:\"cpu\",kernelFunc:Att};function Dtt(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,I=0,N=0,E=0,A=0;for(let D=0;D=g&&(I=0),N>=w&&(N=0),E>=x&&(E=0),A>=b&&(A=0);return e.makeTensorInfo(o.shape,o.dtype,h)}var QO={kernelName:gs,backendName:\"cpu\",kernelFunc:Dtt};function $tt(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=Qt({inputs:{x:o},backend:e,attrs:{shape:u}}),d=Ge({inputs:{x:f},backend:e,attrs:{perm:l}}),h=Qt({inputs:{x:d},backend:e,attrs:{shape:c}}),g=Lo({inputs:{x:h},backend:e,attrs:{begin:p,size:m}});return e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(h),g}var tP={kernelName:$i,backendName:\"cpu\",kernelFunc:$tt};function Rtt(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=yd(a,u,s.dtype,s.shape,i);return e.makeTensorInfo([i],s.dtype,l)}var eP={kernelName:Da,backendName:\"cpu\",kernelFunc:Rtt};function Ftt(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 rP={kernelName:Yl,backendName:\"cpu\",kernelFunc:Ftt};var Ott=At(go,(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 Yr({inputs:{x:u[0]},backend:e});if(u[0].dtype===\"complex64\"){let h=u.map(I=>Oo({inputs:{input:I},backend:e})),g=u.map(I=>ba({inputs:{input:I},backend:e})),x=Hu({inputs:h,backend:e,attrs:{axis:s}}),b=Hu({inputs:g,backend:e,attrs:{axis:s}}),w=Cr({inputs:{real:x,imag:b},backend:e});return h.forEach(I=>e.disposeIntermediateTensorInfo(I)),g.forEach(I=>e.disposeIntermediateTensorInfo(I)),e.disposeIntermediateTensorInfo(x),e.disposeIntermediateTensorInfo(b),w}let l=u.map(h=>{let x=[-1,y.sizeFromShape(h.shape.slice(s))];return Qt({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=rp(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 iP={kernelName:Ri,backendName:\"cpu\",kernelFunc:Hu};function IT(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\",I=new le(m.outShape,o.dtype),N=y.computeStrides(o.shape),E=y.computeStrides(s.shape),A=N[0],D=w?N[1]:N[2],F=w?N[2]:1,P=w?1:N[1],V=I.strides[0],G=w?I.strides[1]:I.strides[2],W=w?I.strides[2]:1,q=w?1:I.strides[1],H=e.data.get(o.dataId).values,K=e.data.get(s.dataId).values,X=I.values;for(let Z=0;Z=m.inHeight)continue;let gt=it*E[0],It=et+mt*D;for(let Rt=0;Rt=m.inWidth)continue;let ge=gt+qt*E[1],ee=It+ce*F,xe=ge;for(let fe=0;fe=l.inDepth)continue;let Z=K*F[0],et=V+X*D[1];for(let nt=0;nt=l.inHeight)continue;let mt=Z+ot*F[1],gt=et+it*D[2];for(let It=0;It=l.inWidth)continue;let ce=mt+Ht*F[2],ge=gt+qt*l.inChannels,ee=ce;for(let xe=0;xeMath.cos(r)),fP={kernelName:ss,backendName:\"cpu\",kernelFunc:Gtt};var Wtt=At(is,r=>Math.cosh(r)),dP={kernelName:is,backendName:\"cpu\",kernelFunc:Wtt};function Utt(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=bt([d,h,g,f],\"float32\"),b=e.data.get(s.dataId).values,w=e.data.get(i.dataId).values,I=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 K=0;K1?F*(p-1)+K*q:.5*(F+V)*(p-1);if(X<0||X>p-1){for(let Z=0;Z1?P*(m-1)+st*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,I=b.top,N=f.outChannels/f.inChannels,E=new le(f.outShape,o.dtype),A=e.data.get(o.dataId).values,D=e.data.get(s.dataId).values,F=E.values;for(let P=0;P=f.inHeight)continue;let Z=K*p[0],et=V+X*c[1];for(let nt=0;nt=f.inWidth)continue;let mt=Z+ot*p[1],gt=et+it*f.inChannels,It=st,Rt=mt;for(let Dt=0;Dt{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:I,strideWidth:N,filterHeight:E,filterWidth:A,dilationHeight:D,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&&it=0&>st&&(st=Dt)}}}let at=y.locToIndex([H,K,Z,nt],G,y.computeStrides(P));W[at]=st}}}return{dataId:u.write(y.toTypedArray(W,n.dtype),P,n.dtype),shape:P,dtype:n.dtype}}};var NP={kernelName:eu,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:I,filterHeight:N,filterWidth:E,dilationHeight:A,dilationWidth:D,outShape:F}=S.computeDilation2DInfo(n.shape,o.shape,i,a,\"NHWC\",u);y.assert(s.rank===F.length,()=>`Error in ${eu}, 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&&ot=0&&mtet&&(et=gt,nt=at,st=it)}}}V[nt][st][Z]+=P[W][q][K][Z]}}}return{dataId:l.write(y.toTypedArray(V,n.dtype),o.shape,o.dtype),shape:o.shape,dtype:o.dtype}}};var kP={kernelName:tu,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:I,filterHeight:N,filterWidth:E,dilationHeight:A,dilationWidth:D,outShape:F}=S.computeDilation2DInfo(n.shape,o.shape,i,a,\"NHWC\",u);y.assert(s.rank===F.length,()=>`Error in ${tu}, 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&&ot=0&&mtet&&(et=gt,nt=ot,st=mt)}}}V[W][nt][st][Z]+=P[W][q][K][Z]}}}return{dataId:l.write(y.toTypedArray(V,n.dtype),n.shape,n.dtype),shape:n.shape,dtype:n.dtype}}};function Ml(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=Po({inputs:{x:o},backend:e,attrs:{dtype:\"int32\"}}):a=Yr({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=Ge({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=gd(e,f,h),x=y.sizeFromShape(d),b=e.data.get(g.dataId).values,w=e.data.get(m.dataId).values;for(let I=0;I=0&&(m=Ml({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 _P={kernelName:zp,backendName:\"cpu\",kernelFunc:Jtt};function Qtt(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=0?s[u]=a[u]:s[u]=a[u]*(l+1)}return e.makeTensorInfo(o.shape,\"float32\",s)}var EP={kernelName:Ma,backendName:\"cpu\",kernelFunc:Qtt};var tet=S.ERF_P,eet=S.ERF_A1,ret=S.ERF_A2,net=S.ERF_A3,oet=S.ERF_A4,set=S.ERF_A5,iet=At(La,r=>{let t=Math.sign(r),e=Math.abs(r),n=1/(1+tet*e);return t*(1-((((set*n+oet)*n+net)*n+ret)*n+eet)*n*Math.exp(-e*e))}),AP={kernelName:La,backendName:\"cpu\",kernelFunc:iet};function vd(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),Qt({inputs:{x:o},backend:e,attrs:{shape:a}})}var DP={kernelName:Fi,backendName:\"cpu\",kernelFunc:vd};var aet=Jt((r,t)=>r/t),eg=ne(cs,aet),rg={kernelName:cs,backendName:\"cpu\",kernelFunc:eg};function _w(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&&w=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=Qt({inputs:{x:o},backend:e,attrs:{shape:[f.batchSize,f.outerSize,f.dimSize,f.sliceSize]}}),h=Qt({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=dw(b,x,g);return e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(h),e.makeTensorInfo(f.outputShape,w.dtype,w.values)}var LP={kernelName:Oi,backendName:\"cpu\",kernelFunc:xet};function yet(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=Qt({inputs:{x:n},backend:e,attrs:{shape:[i,s]}}),u=_w(a,!0,e),l=Qt({inputs:{x:u},backend:e,attrs:{shape:n.shape}});return e.disposeIntermediateTensorInfo(a),e.disposeIntermediateTensorInfo(u),l}var zP={kernelName:Vp,backendName:\"cpu\",kernelFunc:yet};var bet=At(ys,r=>Number.isFinite(r)?1:0,\"bool\"),BP={kernelName:ys,backendName:\"cpu\",kernelFunc:bet};var wet=At(bs,r=>Math.abs(r)===1/0?1:0,\"bool\"),VP={kernelName:bs,backendName:\"cpu\",kernelFunc:wet};var Iet=At(ws,r=>Number.isNaN(r)?1:0,\"bool\"),GP={kernelName:ws,backendName:\"cpu\",kernelFunc:Iet};function Cet(r){let{backend:t,attrs:e}=r,{start:n,stop:o,num:s}=e,i=hw(n,o,s);return t.makeTensorInfo([i.length],\"float32\",i)}var WP={kernelName:Ha,backendName:\"cpu\",kernelFunc:Cet};var vet=At(vs,r=>Math.log1p(r)),UP={kernelName:vs,backendName:\"cpu\",kernelFunc:vet};var Net=Jt((r,t)=>r&&t),ket=ne(qa,Net,null,\"bool\"),HP={kernelName:qa,backendName:\"cpu\",kernelFunc:ket};var Tet=At(Ka,r=>r?0:1,\"bool\"),qP={kernelName:Ka,backendName:\"cpu\",kernelFunc:Tet};var _et=Jt((r,t)=>r||t),Eet=ne(ja,_et,null,\"bool\"),KP={kernelName:ja,backendName:\"cpu\",kernelFunc:Eet};function Aet(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 I=p[x];w+=I*I}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=Yr({inputs:{x:o},backend:e});else{let m=e.data.get(o.dataId).values,f=y.computeStrides(o.shape),d=Cd(m,o.shape,o.dtype,f,c,\"max\");p=e.makeTensorInfo(c.outShape,o.dtype,d.values)}return p}var ZP={kernelName:Ts,backendName:\"cpu\",kernelFunc:$et};function Ret(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=Tw(p,o.shape,o.dtype,y.computeStrides(o.shape),c,\"max\");return e.makeTensorInfo(m.shape,\"float32\",m.values)}var JP={kernelName:Pi,backendName:\"cpu\",kernelFunc:Ret};function Fet(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=jO(p,c),f=c.strideDepth,d=c.strideHeight,h=c.strideWidth,g=c.dilationDepth,x=c.dilationHeight,b=c.dilationWidth,w=c.effectiveFilterDepth,I=c.effectiveFilterHeight,N=c.effectiveFilterWidth,E=w-1-c.padInfo.front,A=N-1-c.padInfo.left,D=I-1-c.padInfo.top,F=bt(s.shape,\"float32\"),P=e.bufferSync(o);for(let V=0;V=c.outDepth||Math.floor(st)!==st))for(let at=0;at=c.outHeight||Math.floor(ot)!==ot))for(let it=0;it=c.outWidth||Math.floor(mt)!==mt)continue;let gt=w*I*N-1-m.get(V,st,ot,mt,G),It=nt*I*N+at*N+it,Rt=gt===It?1:0;if(Rt===0)continue;let Dt=P.get(V,st,ot,mt,G);et+=Dt*Rt}}}F.set(et,V,W,q,H,G)}return e.makeTensorInfo(F.shape,F.dtype,F.values)}var QP={kernelName:nu,backendName:\"cpu\",kernelFunc:Fet};function Oet(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=bt(m.outShape,a.dtype,kw(f,a.shape,a.dtype,m).values),h=m.strideHeight,g=m.strideWidth,x=m.dilationHeight,b=m.dilationWidth,w=m.effectiveFilterHeight,I=m.effectiveFilterWidth,N=I-1-m.padInfo.left,E=w-1-m.padInfo.top,A=bt(a.shape,\"float32\"),D=e.data.get(o.dataId).values,F=bt(o.shape,\"float32\",D);for(let P=0;P=m.outHeight||Math.floor(Z)!==Z))for(let et=0;et=m.outWidth||Math.floor(nt)!==nt)continue;let st=w*I-1-d.get(P,Z,nt,V),at=X*I+et,ot=st===at?1:0;if(ot===0)continue;let it=F.get(P,Z,nt,V);K+=it*ot}}A.set(K,P,G,W,V)}return e.makeTensorInfo(A.shape,A.dtype,A.values)}var tM={kernelName:Wp,backendName:\"cpu\",kernelFunc:Oet};function eM(r,t,e,n,o){let s=y.computeStrides(t),i=Cd(r,t,e,s,o,\"max\"),a=kw(r,t,e,o,!0,n);return[i.values,a.values]}var rM={kernelName:Up,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]=eM(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 Pet(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=Po({inputs:{x:o},backend:e,attrs:{dtype:\"float32\"}});p.push(f);let d=eg({inputs:{a:f,b:m},backend:e});p.push(d);let h=Ml({inputs:{x:d},backend:e,attrs:{axis:s,keepDims:i}});return p.forEach(g=>e.disposeIntermediateTensorInfo(g)),h}var nM={kernelName:_s,backendName:\"cpu\",kernelFunc:Pet};function Met(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=Ge({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[I]+w[1]),u=s.map(w=>w[0]),l=s.map((w,I)=>w[0]+o.shape[I]),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]&&(I[E]=(l[E]-1)*2-I[E]+c);I=I.map((E,A)=>E-u[A]);let N=y.locToIndex(I,m,f);x[w]=p[N]}return{dataId:e.write(x,a,o.dtype),shape:a,dtype:o.dtype}}var sM={kernelName:Ds,backendName:\"cpu\",kernelFunc:Let};var zet=Jt((r,t)=>{let e=r%t;return r<0&&t<0||r>=0&&t>=0?e:(e+t)%t}),Bet=ne(Ya,zet),iM={kernelName:Ya,backendName:\"cpu\",kernelFunc:Bet};var lM=Kl(bh());function NT(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=ST({inputs:{x:o},backend:e,attrs:{reductionIndices:u,keepDims:!1}}),c=S.expandShapeToKeepDim(l.shape,u),p=Qt({inputs:{x:l},backend:e,attrs:{shape:c}}),m=Qh({inputs:{a:o,b:p},backend:e}),f=Xk({inputs:{x:m},backend:e}),d=Ml({inputs:{x:f},backend:e,attrs:{axis:u,keepDims:!1}}),h=Qt({inputs:{x:d},backend:e,attrs:{shape:c}}),g=eg({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 aM={kernelName:Qs,backendName:\"cpu\",kernelFunc:NT};function Vet(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:NT({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=vd({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=Hu({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeIntermediateTensorInfo(c)),l}var xM={kernelName:zi,backendName:\"cpu\",kernelFunc:kT};function Xet(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(I,d,h);g[N]=l[b]}return{dataId:e.write(g,a,o.dtype),shape:a,dtype:o.dtype}}var Ew={kernelName:Fs,backendName:\"cpu\",kernelFunc:Xet};var Yet=Jt((r,t)=>Math.pow(r,t)),Zet=ne(Os,Yet),yM={kernelName:Os,backendName:\"cpu\",kernelFunc:Zet};function Jet(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]=xw(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 bM={kernelName:Hp,backendName:\"cpu\",kernelFunc:Jet};function Qet(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]=yw(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 wM={kernelName:qp,backendName:\"cpu\",kernelFunc:Qet};function trt(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]=bw(l,o.shape,c,s.shape,s.dtype,p,i.shape,m,f,u);return e.makeTensorInfo(d,s.dtype,h)}var IM={kernelName:Kp,backendName:\"cpu\",kernelFunc:trt};function ert(r){let{backend:t,attrs:e}=r,{start:n,stop:o,dtype:s,step:i}=e,a=op(n,o,i,s);return t.makeTensorInfo([a.length],s,a)}var CM={kernelName:ou,backendName:\"cpu\",kernelFunc:ert};var rrt=At(Ls,r=>1/r),vM={kernelName:Ls,backendName:\"cpu\",kernelFunc:rrt};function nrt(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,I=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,I=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],I=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],I=x[1]/b[1],N=1/w,E=1/I,A=Math.ceil(N)*2+2,D=Math.ceil(E)*2+2;for(let F=0;F=f)continue;let ot=P+at*u[1],it=at*w,mt=Math.min(c-1,i?Math.round(it):Math.floor(it));if(V===mt)for(let gt=0;gt=d)continue;let Rt=ot+It*u[2],Dt=It*I,Ht=Math.min(p-1,i?Math.round(Dt):Math.floor(Dt));H===Ht&&(nt+=g[Rt+et])}}h[K+et]=nt}}}}return e.makeTensorInfo(o.shape,o.dtype,h)}var TM={kernelName:rl,backendName:\"cpu\",kernelFunc:irt};function art(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 Yr({inputs:{x:o},backend:e});let u=new le(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 _M={kernelName:Ws,backendName:\"cpu\",kernelFunc:art};var EM={kernelName:fl,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 I=0;I=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}),AM={kernelName:Us,backendName:\"cpu\",kernelFunc:lrt};function urt(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=wi(f,d,i,p,l,u,a,c,0,m);return e.makeTensorInfo(i,h.dtype,h.values)}var DM={kernelName:ol,backendName:\"cpu\",kernelFunc:urt};function crt(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?hrt*r:drt*(Math.exp(r)-1)),OM={kernelName:qs,backendName:\"cpu\",kernelFunc:grt};var xrt=At(js,r=>r<0?-1:r>0?1:0),PM={kernelName:js,backendName:\"cpu\",kernelFunc:xrt};var yrt=At(Ks,r=>Math.sin(r)),MM={kernelName:Ks,backendName:\"cpu\",kernelFunc:yrt};var brt=At(al,r=>Math.sinh(r)),LM={kernelName:al,backendName:\"cpu\",kernelFunc:brt};var wrt=11920928955078125e-23,zM=Math.log(wrt)+2,Irt=At(Ys,r=>{let t=r>-zM,e=rNumber(g)))),e.makeTensorInfo([h.length],n.dtype,new Int32Array(h))]}var GM={kernelName:su,backendName:\"cpu\",kernelFunc:vrt};function Srt(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]=Iw(a,n.shape,n.dtype,i,u);return[e.makeTensorInfo(c,n.dtype,l),e.makeTensorInfo([p.length],s.dtype,new Int32Array(p))]}var WM={kernelName:ll,backendName:\"cpu\",kernelFunc:Srt};function Nrt(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]=Id(i,n.shape,n.dtype,a,u,!0);return e.makeTensorInfo(c,n.dtype,l)}var UM={kernelName:iu,backendName:\"cpu\",kernelFunc:Nrt};function krt(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]=Id(i,n.shape,n.dtype,a,u);return e.makeTensorInfo(c,n.dtype,l)}var HM={kernelName:au,backendName:\"cpu\",kernelFunc:krt};function Trt(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=!!e.data.get(i.dataId).values[0];h=wi(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=wi(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=wi(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=wi(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 qM={kernelName:ul,backendName:\"cpu\",kernelFunc:Trt};function _rt(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=Lo({inputs:{x:o},backend:e,attrs:{begin:l,size:m}});return l[a]+=p,f})}var KM={kernelName:Ui,backendName:\"cpu\",kernelFunc:_rt};var jM={kernelName:lu,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}),XM={kernelName:yo,backendName:\"cpu\",kernelFunc:Ert};function Art(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:I}=ze.sliceInfo(o.shape,s,i,a,u,l,c,p,m),N;if(h)N=Qt({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=ze.computeOutShape(b,w,I),A=Lo({inputs:{x:o},backend:e,attrs:{begin:b,size:E}});N=Qt({inputs:{x:A},backend:e,attrs:{shape:d}}),e.disposeIntermediateTensorInfo(A)}else{let E=e.bufferSync(o),A=Cw(f,E,I,b);N=e.makeTensorInfo(d,A.dtype,A.values)}return N}var YM={kernelName:cl,backendName:\"cpu\",kernelFunc:Art};function Drt(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]=ip(m,f,o,s,i,a,u,l);return[e.makeTensorInfo([d.length],\"string\",d),e.makeTensorInfo(p.shape,\"int32\",h)]}var ZM={kernelName:uu,backendName:\"cpu\",kernelFunc:Drt};function $rt(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]=ap(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 JM={kernelName:cu,backendName:\"cpu\",kernelFunc:$rt};function Rrt(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=lp(i,o);return e.makeTensorInfo(s.shape,\"int32\",a)}var QM={kernelName:pu,backendName:\"cpu\",kernelFunc:Rrt};var Frt=At(ri,r=>Math.tan(r)),tL={kernelName:ri,backendName:\"cpu\",kernelFunc:Frt};var Ort=At(ni,r=>Math.tanh(r)),eL={kernelName:ni,backendName:\"cpu\",kernelFunc:Ort};function Prt(r){let{inputs:t,backend:e}=r,{tensor:n,indices:o,updates:s}=t,{sliceRank:i,numUpdates:a,sliceSize:u,strides:l,outputSize:c}=S.calculateShapes(s,o,n.shape),p=!1,m=e.bufferSync(o),f=e.bufferSync(s),d=e.bufferSync(n),h=wi(m,f,n.shape,c,u,a,i,l,d,p);return e.makeTensorInfo(n.shape,h.dtype,h.values)}var rL={kernelName:sl,backendName:\"cpu\",kernelFunc:Prt};function Mrt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{reps:s}=n;tt(o,\"tile\");let i=vw(e.bufferSync(o),s);return e.makeTensorInfo(i.shape,i.dtype,i.values)}var nL={kernelName:so,backendName:\"cpu\",kernelFunc:Mrt};function Lrt(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]=Sw(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 oL={kernelName:pl,backendName:\"cpu\",kernelFunc:Lrt};function zrt(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],I=x[2],N=y.computeStrides(g),E=N[0],A=N[1],D=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 Vrt(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 Grt(r,t){return r}function Wrt(r,t){return y.clamp(0,r,t-1)}function sg(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 uL={kernelName:fu,backendName:\"cpu\",kernelFunc:jrt};var Xrt=[OO,GF,PO,MO,KF,LO,zO,BO,VO,GO,WO,UO,HO,qO,KO,XO,YO,ZO,JO,FO,QO,tP,eP,jF,rP,qF,XF,nP,WF,oP,iP,aP,lP,uP,cP,pP,mP,fP,dP,hP,gP,xP,yP,bP,wP,IP,CP,vP,SP,NP,kP,_P,_O,EP,YF,AP,ZF,DP,JF,$P,RP,FP,QF,tO,OP,PP,MP,LP,eO,rO,UF,zP,sP,BP,VP,GP,EO,nO,oO,WP,sO,UP,HP,qP,KP,jP,XP,YP,iO,ZP,JP,QP,tM,rM,nM,oM,aO,sM,iM,uM,lO,uO,cM,pM,mM,cO,fM,gM,xM,Ew,yM,AO,mO,bM,wM,IM,CM,HF,rg,vM,DO,$O,RO,SM,NM,kM,TM,_M,EM,AM,xO,DM,RM,FM,OM,bO,PM,MM,LM,wO,aM,BM,VM,GM,WM,UM,HM,qM,KM,CO,jM,vO,SO,XM,YM,ZM,JM,QM,NO,TP,tL,eL,rL,nL,oL,iL,pO,aL,lL,uL,dM];for(let r of Xrt)ic(r);var Td={};Kt(Td,{assertNotComplex:()=>Ii,bindCanvasToFramebuffer:()=>ont,bindColorTextureToFramebuffer:()=>ug,bindTextureToProgramUniformSampler:()=>GT,bindTextureUnit:()=>fL,bindVertexBufferToProgramAttribute:()=>Ow,callAndCheck:()=>ht,canBeRepresented:()=>AT,createFragmentShader:()=>$T,createFramebuffer:()=>zT,createProgram:()=>RT,createStaticIndexBuffer:()=>PT,createStaticVertexBuffer:()=>OT,createTexture:()=>MT,createVertexShader:()=>DT,getBatchDim:()=>zl,getExtensionOrThrow:()=>Sd,getFramebufferErrorMessage:()=>dL,getMaxTexturesInShader:()=>HT,getNumChannels:()=>rnt,getProgramUniformLocation:()=>VT,getProgramUniformLocationOrThrow:()=>BT,getRowsCols:()=>Bl,getShapeAs3D:()=>kd,getTextureShapeFromLogicalShape:()=>WT,getWebGLDisjointQueryTimerVersion:()=>qT,getWebGLErrorMessage:()=>mL,getWebGLMaxTextureSize:()=>UT,hasExtension:()=>Xn,isCapableOfRenderingToFloatTexture:()=>KT,isDownloadFloatTextureEnabled:()=>jT,isReshapeFree:()=>Ku,isWebGLFenceEnabled:()=>XT,isWebGLVersionEnabled:()=>Mw,linkProgram:()=>FT,logShaderSourceAndInfoLog:()=>Fw,resetMaxTextureSize:()=>snt,resetMaxTexturesInShader:()=>int,unbindColorTextureFromFramebuffer:()=>Pw,unbindTextureUnit:()=>nnt,validateFramebuffer:()=>Nd,validateProgram:()=>lg,validateTextureSize:()=>LT});var pp={},Aw={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function TT(r,t){pp[r]=t}function jn(r,t){if(!(r in pp)||t!=null){let n=Zrt(r,t);if(n!==null)pp[r]=n;else return console.log(\"Could not get context for WebGL version\",r),null}let e=pp[r];return e==null||e.isContextLost()?(delete pp[r],jn(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),pp[r])}function Yrt(r){if(!L().getBool(\"IS_SAFARI\")&&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 Zrt(r,t){if(r!==1&&r!==2)throw new Error(\"Cannot get WebGL rendering context, WebGL is disabled.\");let e=t==null?Yrt(r):t;return e.addEventListener(\"webglcontextlost\",n=>{n.preventDefault(),delete pp[r]},!1),L().getBool(\"SOFTWARE_WEBGL_ENABLED\")&&(Aw.failIfMajorPerformanceCaveat=!1),r===1?e.getContext(\"webgl\",Aw)||e.getContext(\"experimental-webgl\",Aw):e.getContext(\"webgl2\",Aw)}var qu;(function(r){r[r.DENSE=0]=\"DENSE\",r[r.SHARED_BATCH=1]=\"SHARED_BATCH\"})(qu||(qu={}));var Zr;(function(r){r[r.RENDER=0]=\"RENDER\",r[r.UPLOAD=1]=\"UPLOAD\",r[r.PIXELS=2]=\"PIXELS\",r[r.DOWNLOAD=3]=\"DOWNLOAD\"})(Zr||(Zr={}));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 mp(r,t){return[t,r]}function cL(r,t){return r*t}function ig(r){let t=y.sizeFromShape(r),e=Math.ceil(t/4);return y.sizeToSquarishShape(e)}function wa(r,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(r/2))]}function pL(r,t){let[e,n]=wa(r,t);return e*n*4}function ag(r,t){let e=r,n,o,s,i,a,u,l,c,p,m;return L().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 L().getBool(\"DEBUG\")&&Jrt(r),e}function Jrt(r){let t=r.getError();if(t!==r.NO_ERROR)throw new Error(\"WebGL Error: \"+mL(r,t))}var Qrt=596e-10,tnt=65504;function AT(r){return!!(L().getBool(\"WEBGL_RENDER_FLOAT32_ENABLED\")||r===0||Qrtr.getExtension(t),'Extension \"'+t+'\" not supported on this browser.')}function DT(r,t){let e=Ll(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 $T(r,t){let e=Ll(r,()=>r.createShader(r.FRAGMENT_SHADER),\"Unable to create fragment WebGLShader.\");if(ht(r,()=>r.shaderSource(e,t)),ht(r,()=>r.compileShader(e)),L().get(\"ENGINE_COMPILE_ONLY\"))return e;if(r.getShaderParameter(e,r.COMPILE_STATUS)===!1)throw Fw(t,r.getShaderInfoLog(e)),new Error(\"Failed to compile fragment shader.\");return e}var ent=/ERROR: [0-9]+:([0-9]+):/g;function Fw(r,t){let e=ent.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 FT(r,t){if(ht(r,()=>r.linkProgram(t)),!L().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 lg(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 OT(r,t){let e=Ll(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 PT(r,t){let e=Ll(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 rnt(){return L().getNumber(\"WEBGL_VERSION\")===2?1:4}function MT(r){return Ll(r,()=>r.createTexture(),\"Unable to create WebGLTexture.\")}function LT(r,t){let e=L().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 zT(r){return Ll(r,()=>r.createFramebuffer(),\"Unable to create WebGLFramebuffer.\")}function Ow(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 fL(r,t,e){hL(r,e),ht(r,()=>r.activeTexture(r.TEXTURE0+e)),ht(r,()=>r.bindTexture(r.TEXTURE_2D,t))}function nnt(r,t){hL(r,t),ht(r,()=>r.activeTexture(r.TEXTURE0+t)),ht(r,()=>r.bindTexture(r.TEXTURE_2D,null))}function BT(r,t,e){return Ll(r,()=>r.getUniformLocation(t,e),'uniform \"'+e+'\" not present in program.')}function VT(r,t,e){return r.getUniformLocation(t,e)}function GT(r,t,e,n){ht(r,()=>fL(r,t,n)),ht(r,()=>r.uniform1i(e,n))}function ont(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 ug(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 Pw(r,t){ht(r,()=>r.bindFramebuffer(r.FRAMEBUFFER,t)),ht(r,()=>r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,null,0))}function Nd(r){let t=r.checkFramebufferStatus(r.FRAMEBUFFER);if(t!==r.FRAMEBUFFER_COMPLETE)throw new Error(\"Error binding framebuffer: \"+dL(r,t))}function dL(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 Ll(r,t,e){let n=ht(r,()=>t());if(n==null)throw new Error(e);return n}function hL(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 zl(r,t=2){return y.sizeFromShape(r.slice(0,r.length-t))}function Bl(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 kd(r){let t=[1,1,1];return r.length===0||r.length===1&&r[0]===1||(t=[zl(r),...Bl(r)]),t}function WT(r,t=!1){let e=L().getNumber(\"WEBGL_MAX_TEXTURE_SIZE\"),n=L().getNumber(\"WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE\");n===1/0&&L().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=zl(r),u=2,l=2;r.length&&([u,l]=Bl(r)),o=a*(u/2)*(l/2),s=y.sizeToSquarishShape(o).map(c=>c*2)}else s=y.sizeToSquarishShape(o);return s}function Dw(r){return r%2===0}function Ku(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[r.length-1],n=t[t.length-1];if(e===n||Dw(e)&&Dw(n)&&(r[0]===1||t[0]===1))return!0}return r[1]===t[1]&&Dw(r[0])&&Dw(t[0])}var $w,Rw;function UT(r){if($w==null){let t=jn(r);$w=t.getParameter(t.MAX_TEXTURE_SIZE)}return $w}function snt(){$w=null}function int(){Rw=null}function HT(r){if(Rw==null){let t=jn(r);Rw=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,Rw)}function qT(r){if(r===0)return 0;let t,e=jn(r);return Xn(e,\"EXT_disjoint_timer_query_webgl2\")&&r===2?t=2:Xn(e,\"EXT_disjoint_timer_query\")?t=1:t=0,t}function Xn(r,t){return r.getExtension(t)!=null}function Mw(r){try{if(jn(r)!=null)return!0}catch(t){return console.log(\"Error when getting WebGL context: \",t),!1}return!1}function KT(r){if(r===0)return!1;let t=jn(r);if(r===1){if(!Xn(t,\"OES_texture_float\"))return!1}else if(!Xn(t,\"EXT_color_buffer_float\"))return!1;return ET(t)}function jT(r){if(r===0)return!1;let t=jn(r);if(r===1){if(!Xn(t,\"OES_texture_float\")||!Xn(t,\"WEBGL_color_buffer_float\"))return!1}else{if(Xn(t,\"EXT_color_buffer_float\"))return ET(t);let n=\"EXT_color_buffer_half_float\";if(Xn(t,n)){let o=t.getExtension(n);return ant(t,o)}return!1}return ET(t)}function ET(r){let t=ag(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 ant(r,t){let e=ag(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 XT(r){return r!==2?!1:jn(r).fenceSync!=null}function Ii(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 Et=L();Et.registerFlag(\"HAS_WEBGL\",()=>Et.getNumber(\"WEBGL_VERSION\")>0);Et.registerFlag(\"WEBGL_VERSION\",()=>Mw(2)?2:Mw(1)?1:0);Et.registerFlag(\"WEBGL_CHECK_NUMERICAL_PROBLEMS\",()=>!1);Et.registerFlag(\"WEBGL_BUFFER_SUPPORTED\",()=>Et.get(\"WEBGL_VERSION\")===2);Et.registerFlag(\"WEBGL_CPU_FORWARD\",()=>!0);Et.registerFlag(\"WEBGL_FORCE_F16_TEXTURES\",()=>!1);Et.registerFlag(\"WEBGL_PACK\",()=>Et.getBool(\"HAS_WEBGL\"));Et.registerFlag(\"WEBGL_PACK_NORMALIZATION\",()=>Et.getBool(\"WEBGL_PACK\"));Et.registerFlag(\"WEBGL_PACK_CLIP\",()=>Et.getBool(\"WEBGL_PACK\"));Et.registerFlag(\"WEBGL_PACK_DEPTHWISECONV\",()=>Et.getBool(\"WEBGL_PACK\"));Et.registerFlag(\"WEBGL_PACK_BINARY_OPERATIONS\",()=>Et.getBool(\"WEBGL_PACK\"));Et.registerFlag(\"WEBGL_PACK_UNARY_OPERATIONS\",()=>Et.getBool(\"WEBGL_PACK\"));Et.registerFlag(\"WEBGL_PACK_ARRAY_OPERATIONS\",()=>Et.getBool(\"WEBGL_PACK\"));Et.registerFlag(\"WEBGL_PACK_IMAGE_OPERATIONS\",()=>Et.getBool(\"WEBGL_PACK\"));Et.registerFlag(\"WEBGL_PACK_REDUCE\",()=>Et.getBool(\"WEBGL_PACK\"));Et.registerFlag(\"WEBGL_LAZILY_UNPACK\",()=>Et.getBool(\"WEBGL_PACK\"));Et.registerFlag(\"WEBGL_CONV_IM2COL\",()=>Et.getBool(\"WEBGL_PACK\"));Et.registerFlag(\"WEBGL_MAX_TEXTURE_SIZE\",()=>UT(Et.getNumber(\"WEBGL_VERSION\")));Et.registerFlag(\"WEBGL_MAX_TEXTURES_IN_SHADER\",()=>HT(Et.getNumber(\"WEBGL_VERSION\")));Et.registerFlag(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\",()=>{let r=Et.getNumber(\"WEBGL_VERSION\");return r===0?0:qT(r)});Et.registerFlag(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE\",()=>Et.getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\")>0&&!xu.isMobile());Et.registerFlag(\"WEBGL_RENDER_FLOAT32_CAPABLE\",()=>KT(Et.getNumber(\"WEBGL_VERSION\")));Et.registerFlag(\"WEBGL_RENDER_FLOAT32_ENABLED\",()=>Et.getBool(\"WEBGL_FORCE_F16_TEXTURES\")?!1:Et.getBool(\"WEBGL_RENDER_FLOAT32_CAPABLE\"));Et.registerFlag(\"WEBGL_DOWNLOAD_FLOAT_ENABLED\",()=>jT(Et.getNumber(\"WEBGL_VERSION\")));Et.registerFlag(\"WEBGL_FENCE_API_ENABLED\",()=>XT(Et.getNumber(\"WEBGL_VERSION\")));Et.registerFlag(\"WEBGL_SIZE_UPLOAD_UNIFORM\",()=>Et.getBool(\"WEBGL_RENDER_FLOAT32_ENABLED\")?4:0);Et.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}.`)});Et.registerFlag(\"WEBGL_FLUSH_THRESHOLD\",()=>xu.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}.`)});Et.registerFlag(\"CPU_HANDOFF_SIZE_THRESHOLD\",()=>128);Et.registerFlag(\"WEBGL_USE_SHAPES_UNIFORMS\",()=>!1);Et.registerFlag(\"TOPK_LAST_DIM_CPU_HANDOFF_SIZE_THRESHOLD\",()=>1e5);Et.registerFlag(\"TOPK_K_CPU_HANDOFF_THRESHOLD\",()=>128);Et.registerFlag(\"WEBGL_EXP_CONV\",()=>!1);Et.registerFlag(\"SOFTWARE_WEBGL_ENABLED\",()=>Et.getBool(\"IS_TEST\"));Et.registerFlag(\"WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE\",()=>1/0);Et.registerFlag(\"WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE\",()=>!1);Et.registerFlag(\"WEBGL2_ISNAN_CUSTOM\",()=>!1);Et.registerFlag(\"ENGINE_COMPILE_ONLY\",()=>!1);function We(){let r,t,e,n,o,s,i,a,u,l;return L().getNumber(\"WEBGL_VERSION\")===2?(r=\"#version 300 es\",t=\"in\",e=\"out\",n=\"in\",o=\"texture\",s=\"outputColor\",i=\"out vec4 outputColor;\",a=L().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 Ci(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 fp(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 lnt(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 gL(r,t,e=\"index\"){let n=r.map((s,i)=>i),o=lnt(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 _d(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 Ed(){return`\n int getFlatIndex(ivec3 coords) {\n return coords.x * outShapeStrides[0] + coords.y * outShapeStrides[1] + coords.z;\n }\n`}var Lw=`\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:xL}=S;function yL(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}=zw(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=>unt(f,t,e.packedInputs,e.enableShapeUniforms)).join(`\n`),i=t.texShape,a=We(),u=mnt(a),l,c,p=hnt(a);return t.isPacked?(l=cnt(t.logicalShape,i,e.enableShapeUniforms),c=dnt(a)):(l=pnt(t.logicalShape,i,e.enableShapeUniforms),c=fnt(a)),e.packedInputs&&(p+=bnt),[p,u,c,o,l,s,e.userCode].join(`\n`)}function Dd(r,t=!1){let e=r.shapeInfo.logicalShape;switch(e.length){case 0:return Dnt(r,t);case 1:return Rnt(r,t);case 2:return Ont(r,t);case 3:return Mnt(r,t);case 4:return znt(r,t);case 5:return Bnt(r);case 6:return Vnt(r);default:throw new Error(`${e.length}-D input sampling is not yet supported`)}}function bL(r,t){switch(r.shapeInfo.logicalShape.length){case 0:return Ant(r);case 1:return $nt(r,t);case 2:return Fnt(r,t);case 3:return Pnt(r,t);default:return Lnt(r,t)}}function unt(r,t,e=!1,n){let o=\"\";e?o+=bL(r,n):o+=Dd(r,n);let s=r.shapeInfo.logicalShape,i=t.logicalShape;return s.length<=i.length&&(e?o+=Gnt(r,t):o+=Wnt(r,t)),o}function cnt(r,t,e){switch(r.length){case 0:return wL();case 1:return wnt(r,t,e);case 2:return _nt(r,t,e);case 3:return Cnt(r,t,e);default:return Snt(r,t,e)}}function pnt(r,t,e){switch(r.length){case 0:return wL();case 1:return Int(r,t,e);case 2:return Ent(r,t,e);case 3:return vnt(r,t,e);case 4:return Nnt(r,t,e);case 5:return knt(r,t);case 6:return Tnt(r,t);default:throw new Error(`${r.length}-D output sampling is not yet supported`)}}function mnt(r){return`\n float sampleTexture(sampler2D textureSampler, vec2 uv) {\n return ${r.texture2D}(textureSampler, uv).r;\n }\n `}function fnt(r){return`\n void setOutput(float val) {\n ${r.output} = vec4(val, 0, 0, 0);\n }\n `}function dnt(r){return`\n void setOutput(vec4 val) {\n ${r.output} = val;\n }\n `}function hnt(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 ${gnt}\n ${xnt}\n ${ynt}\n `}var gnt=`\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`,xnt=`\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`,ynt=`\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`,bnt=`\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 wL(){return`\n int getOutputCoords() {\n return 0;\n }\n `}function wnt(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 Int(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 Cnt(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 vnt(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 ${fp([\"r\",\"c\",\"d\"],r)}\n return ivec3(r, c, d);\n }\n`;let n=Ci([\"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 Snt(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 Wnt(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=xL(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 zw(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=yL(o,i,t),u=$T(r.gl,a),l=r.createProgram(u);return L().get(\"ENGINE_COMPILE_ONLY\")?{program:t,fragmentShader:u,source:a,webGLProgram:l,inShapeInfos:s,outShapeInfo:i,variablesLocations:null,customUniformLocations:null,infLoc:null,nanLoc:null,outShapeLocation:null,outShapeStridesLocation:null,outTexShapeLocation:null}:(r.buildVao(l),Object.assign({program:t,fragmentShader:u,source:a,webGLProgram:l,inShapeInfos:s,outShapeInfo:i},YT(r,t,l)))}function YT(r,t,e){let n=[],o=[],s,i,a,u=null,l=null;l=r.getUniformLocation(e,\"NAN\",!1),L().getNumber(\"WEBGL_VERSION\")===1&&(u=r.getUniformLocation(e,\"INFINITY\",!1));let c=!1;for(let p of t.variableNames){let m={name:p,uniform:r.getUniformLocation(e,p,c),offset:r.getUniformLocation(e,`offset${p}`,c)};t.enableShapeUniforms&&(m.shape=r.getUniformLocation(e,`${p}Shape`,c),m.texShape=r.getUniformLocation(e,`${p}TexShape`,c)),n.push(m)}if(t.enableShapeUniforms&&(s=r.getUniformLocation(e,\"outShape\",c),a=r.getUniformLocation(e,\"outShapeStrides\",c),i=r.getUniformLocation(e,\"outTexShape\",c)),t.customUniforms)for(let p of t.customUniforms)o.push(r.getUniformLocation(e,p.name,c));return{variablesLocations:n,customUniformLocations:o,infLoc:u,nanLoc:l,outShapeLocation:s,outShapeStridesLocation:a,outTexShapeLocation:i}}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 vL(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),r.bindVertexArray(t.webGLProgram.vao),L().getNumber(\"WEBGL_VERSION\")===1&&t.infLoc!==null&&r.gl.uniform1f(t.infLoc,1/0),t.nanLoc!==null&&r.gl.uniform1f(t.nanLoc,NaN);for(let u=0;u{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}=zw(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),I=r.packedInputs||c.length>2?\"\":`${u[0]>1}_${u[1]>1}`;n+=`${h}_${w}_${l?p:\"\"}_${c.length}_${x}_${b}_${g}_${m}_${f}_${d}_${I}_${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+`${L().getNumber(\"WEBGL_VERSION\")}`,s}function de(r){return L().getBool(\"WEBGL_USE_SHAPES_UNIFORMS\")&&r<=4}var Bw=class{constructor(t){this.variableNames=[\"A\"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=qu.DENSE,this.customUniforms=[{name:\"texShape\",type:\"ivec2\"}];let e=We();this.outputShape=t,this.enableShapeUniforms=de(this.outputShape.length),this.userCode=`\n ivec3 outCoordsFromFlatIndex(int index) {\n ${this.enableShapeUniforms?fp([\"r\",\"c\",\"d\"],t):Ci([\"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 Vw=class{constructor(t){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=qu.DENSE,this.customUniforms=[{name:\"texShape\",type:\"ivec2\"}];let e=We();this.outputShape=t,this.enableShapeUniforms=de(this.outputShape.length),this.userCode=`\n ivec3 outCoordsFromFlatIndex(int index) {\n ${this.enableShapeUniforms?fp([\"r\",\"c\",\"d\"],t):Ci([\"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 Gw=class{constructor(t){this.variableNames=[\"A\"],this.outTexUsage=Zr.DOWNLOAD;let e=We();this.outputShape=t,this.userCode=`\n ${Lw}\n\n void main() {\n float x = getAAtOutCoords();\n ${e.output} = encode_float(x);\n }\n `}};var Ww=class{constructor(t){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=Zr.DOWNLOAD;let e=We();this.outputShape=t,this.userCode=`\n ${Lw}\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 qnt={R:0,G:1,B:2,A:3},cg=class{constructor(t,e=!1,n=\"RGBA\"){this.variableNames=[\"A\"],this.customUniforms=[{name:\"texShape\",type:\"ivec2\"}];let o=We();this.outputShape=t,this.enableShapeUniforms=de(this.outputShape.length);let s=\"result\";e&&(s=\"floor(result * 255. + 0.5)\");let i=\"\";for(let a=0;as1,createBufferFromOutputTexture:()=>l1,createFloat16MatrixTexture:()=>e1,createFloat16PackedMatrixTexture:()=>o1,createFloat32MatrixTexture:()=>t1,createIndexBuffer:()=>QT,createPackedMatrixTexture:()=>n1,createUnsignedBytesMatrixTexture:()=>r1,createVertexBuffer:()=>JT,createVertexShader:()=>ZT,downloadByteEncodedFloatMatrixFromOutputTexture:()=>c1,downloadFloat32MatrixFromBuffer:()=>u1,downloadMatrixFromPackedOutputTexture:()=>m1,downloadPackedMatrixFromBuffer:()=>p1,getInternalFormatForFloat16MatrixTexture:()=>qw,getInternalFormatForFloat16PackedMatrixTexture:()=>Xw,getInternalFormatForFloat32MatrixTexture:()=>Hw,getInternalFormatForPackedMatrixTexture:()=>jw,getInternalFormatForUnsignedBytesMatrixTexture:()=>Kw,uploadDenseMatrixToTexture:()=>i1,uploadPixelDataToTexture:()=>a1});function ZT(r){let t=We(),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 DT(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 OT(r,t)}function QT(r){let t=new Uint16Array([0,1,2,2,1,3]);return PT(r,t)}function pg(r,t,e,n,o,s){LT(t,e);let i=MT(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)),L().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 Hw(r){return r.internalFormatFloat}function t1(r,t,e,n){let[o,s]=mp(t,e);return pg(r,o,s,Hw(n),n.textureFormatFloat,r.FLOAT)}function qw(r){return r.internalFormatHalfFloat}function e1(r,t,e,n){let[o,s]=mp(t,e);return pg(r,o,s,qw(n),n.textureFormatFloat,n.textureTypeHalfFloat)}function Kw(r){return r.downloadTextureFormat}function r1(r,t,e,n){let[o,s]=mp(t,e);return pg(r,o,s,Kw(n),r.RGBA,r.UNSIGNED_BYTE)}function jw(r){return r.internalFormatPackedFloat}function n1(r,t,e,n){let[o,s]=wa(t,e);return pg(r,o,s,jw(n),r.RGBA,r.FLOAT)}function Xw(r){return r.internalFormatPackedHalfFloat}function o1(r,t,e,n){let[o,s]=wa(t,e);return pg(r,o,s,Xw(n),r.RGBA,n.textureTypeHalfFloat)}function s1(r,t,e){return ht(r,()=>r.bindBuffer(r.ARRAY_BUFFER,e)),Ow(r,t,\"clipSpacePos\",e,3,20,0)&&Ow(r,t,\"uv\",e,2,20,12)}function i1(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),L().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 a1(r,t,e){ht(r,()=>r.bindTexture(r.TEXTURE_2D,t)),e.data instanceof Uint8Array?L().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)):L().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 l1(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 u1(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 c1(r,t,e,n){let[o,s]=mp(t,e),i=4,a=new Uint8Array(cL(t*e,i));return ht(r,()=>r.readPixels(0,0,o,s,n.downloadTextureFormat,r.UNSIGNED_BYTE,a)),new Float32Array(a.buffer)}function p1(r,t,e,n,o,s,i,a){let u=r,l=new Float32Array(pL(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 m1(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 hp=class{constructor(t){this.outputTexture=null,this.program=null,this.disposed=!1,this.itemsToPoll=[];let e=L().getNumber(\"WEBGL_VERSION\");if(t!=null?(this.gl=t,TT(e,t)):this.gl=jn(e),t=this.gl,L().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\"),L().getNumber(\"WEBGL_VERSION\")===1){let s=\"OES_texture_float\",i=\"OES_texture_half_float\";if(this.textureFloatExtension=Sd(this.gl,s),Xn(this.gl,i))this.textureHalfFloatExtension=Sd(this.gl,i);else if(L().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),Xn(this.gl,o))this.colorBufferHalfFloatExtension=Sd(this.gl,o);else if(L().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\",Xn(this.gl,n))this.colorBufferFloatExtension=this.gl.getExtension(n);else if(Xn(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=QT(this.gl),this.framebuffer=zT(this.gl),this.textureConfig=ag(this.gl,this.textureHalfFloatExtension)}get debug(){return L().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(),t1(this.gl,t,e,this.textureConfig)}createFloat16MatrixTexture(t,e){return this.throwIfDisposed(),e1(this.gl,t,e,this.textureConfig)}createUnsignedBytesMatrixTexture(t,e){return this.throwIfDisposed(),r1(this.gl,t,e,this.textureConfig)}uploadPixelDataToTexture(t,e){this.throwIfDisposed(),a1(this.gl,t,e)}uploadDenseMatrixToTexture(t,e,n,o){this.throwIfDisposed(),i1(this.gl,t,e,n,o,this.textureConfig)}createFloat16PackedMatrixTexture(t,e){return this.throwIfDisposed(),o1(this.gl,t,e,this.textureConfig)}createPackedMatrixTexture(t,e){return this.throwIfDisposed(),n1(this.gl,t,e,this.textureConfig)}deleteMatrixTexture(t){this.throwIfDisposed(),this.outputTexture===t&&(Pw(this.gl,this.framebuffer),this.outputTexture=null),ht(this.gl,()=>this.gl.deleteTexture(t))}downloadByteEncodedFloatMatrixFromOutputTexture(t,e,n){return this.downloadMatrixDriver(t,()=>c1(this.gl,e,n,this.textureConfig))}downloadPackedMatrixFromBuffer(t,e,n,o,s,i){return p1(this.gl,t,e,n,o,s,i,this.textureConfig)}downloadFloat32MatrixFromBuffer(t,e){return u1(this.gl,t,e)}createBufferFromTexture(t,e,n){this.bindTextureToFrameBuffer(t);let o=l1(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(L().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 L().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\")>0?(e=this.beginQuery(),this.endQuery(),n=()=>this.isQueryAvailable(e,L().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\"))):n=()=>!0;return{query:e,isFencePassed:n}}downloadMatrixFromPackedTexture(t,e,n){return this.downloadMatrixDriver(t,()=>m1(this.gl,e,n))}createProgram(t){this.throwIfDisposed();let e=this.gl;this.vertexShader==null&&(this.vertexShader=ZT(e));let n=RT(e);ht(e,()=>e.attachShader(n,this.vertexShader)),ht(e,()=>e.attachShader(n,t)),FT(e,n);let o=Object.assign(n,{vao:this.createVertexArray()});return this.debug&&lg(e,o),o}buildVao(t){this.setProgram(t),this.bindVertexArray(t.vao);let e=this.gl;ht(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,this.indexBuffer)),s1(e,t,this.vertexBuffer)}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.debug&&lg(this.gl,this.program),ht(this.gl,()=>this.gl.useProgram(t))}getUniformLocation(t,e,n=!0){return this.throwIfDisposed(),n?BT(this.gl,t,e):VT(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(),GT(this.gl,t,e,n)}setOutputMatrixTexture(t,e,n){this.setOutputMatrixTextureDriver(t,n,e)}setOutputPackedMatrixTexture(t,e,n){this.throwIfDisposed();let[o,s]=wa(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&&lg(this.gl,this.program),Nd(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=Sd(this.gl,L().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(L().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(L().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,L().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\"))),this.getQueryTime(t,L().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=Knt(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 L().platform&&(n=L().platform.setTimeoutCustom.bind(L().platform)),y.repeatedTry(()=>(this.pollItems(),this.itemsToPoll.length===0),()=>0,null,n)}bindTextureToFrameBuffer(t){this.throwIfDisposed(),ug(this.gl,t,this.framebuffer),this.debug&&Nd(this.gl)}unbindTextureToFrameBuffer(){this.outputTexture!=null?(ug(this.gl,this.outputTexture,this.framebuffer),this.debug&&Nd(this.gl)):Pw(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;ug(o,t,this.framebuffer),this.debug&&Nd(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 Knt(r){let t=0;for(;t`${r}.${e}`)}function er(r,t){return t===1?[r]:d1(r,t)}function hz(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 Od=class{constructor(t,e){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:\"inputShape\",type:\"ivec3\"}],this.outputShape=t,this.enableShapeUniforms=de(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 ${jnt(e,this.enableShapeUniforms)}\n ${this.enableShapeUniforms?Ed():_d(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 jnt(r,t){return`\n ivec3 inputCoordsFromReshapedOutCoords(int index) {\n ${t?gL([\"r\",\"c\",\"d\"],\"inputShape\"):Ci([\"r\",\"c\",\"d\"],r)}\n return ivec3(r, c, d);\n }\n `}var tI=class{constructor(t){this.gpgpu=t,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0,this.freeTextures={},this.usedTextures={},this.logEnabled=!1}acquireTexture(t,e,n){let o=xz(e,n),s=yz(t,o,n);s in this.freeTextures||(this.freeTextures[s]=[]),s in this.usedTextures||(this.usedTextures[s]=[]);let i=gz(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].pop();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=xz(n,o),i=yz(e,s,o);i in this.freeTextures||(this.freeTextures[i]=[]);let a=gz(e,s,this.gpgpu.gl,this.gpgpu.textureConfig,o),u=L().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&&l.indexOf(t);if(c==null||c<0)throw new Error(\"Cannot release a texture that was never provided by this texture manager\");l[c]=l[l.length-1],l.pop(),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 Xnt(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 gz(r,t,e,n,o){let s=Ynt(t,n),i;if(o){let[u,l]=wa(r[0],r[1]);i=u*l}else{let[u,l]=mp(r[0],r[1]);i=u*l}let a=Xnt(e,s);return i*a}function Ynt(r,t){switch(r){case Lr.PACKED_2X2_FLOAT32:return jw(t);case Lr.PACKED_2X2_FLOAT16:return Xw(t);case Lr.UNPACKED_FLOAT32:return Hw(t);case Lr.UNPACKED_FLOAT16:return qw(t);case Lr.PACKED_4X1_UNSIGNED_BYTE:return Kw(t);default:throw new Error(`Unknown physical texture type ${r}`)}}function Znt(r){return L().getBool(\"WEBGL_RENDER_FLOAT32_ENABLED\")?r?Lr.PACKED_2X2_FLOAT32:Lr.UNPACKED_FLOAT32:r?Lr.PACKED_2X2_FLOAT16:Lr.UNPACKED_FLOAT16}function xz(r,t){if(r===Zr.UPLOAD)return Lr.PACKED_2X2_FLOAT32;if(r===Zr.RENDER||r==null)return Znt(t);if(r===Zr.DOWNLOAD||r===Zr.PIXELS)return Lr.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknown logical texture type ${r}`)}function yz(r,t,e){return`${r[0]}_${r[1]}_${t}_${e}`}var zr=class{constructor(t,e){this.variableNames=[\"A\"],this.outputShape=t,this.enableShapeUniforms=de(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 `}},yr=\"if (isnan(x)) return x;\",bz=\"return x;\",h1=\"return abs(x);\";var wz=\"return (x >= 0.0) ? x : (exp(x) - 1.0);\",Iz=yr+`\n return (x < 0.0) ? 0.0 : x;\n`,Cz=yr+`\n return (x < 0.0) ? 0.0 : min(6.0, x);\n`,Ia=\"return x;\",vz=\"return 1.0 / (1.0 + exp(-1.0 * x));\";var Nz=\"return x;\",kz=`\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`,Tz=`\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`,_z=`\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`,Ez=\"return 1.0 / (1.0 + exp(-1.0 * x));\",Rn=class{constructor(t,e){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t,this.enableShapeUniforms=de(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 eI=class{constructor(t){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=t,this.enableShapeUniforms=de(this.outputShape.length);let e=t.length,n=er(\"rc\",e),o=zt(e),s=hz(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 Qnt=Kr.whereImpl,tot=1e-7,eot=1e-4,rI={};function rot(r){return r in rI||(rI[r]={}),rI[r]}var not=L().getNumber(\"CPU_HANDOFF_SIZE_THRESHOLD\"),oot=600;function sot(){return L().global.screen==null?1024:L().global.screen.height*L().global.screen.width*window.devicePixelRatio*oot/1024/1024}var ju=class extends Wo{nextDataId(){return ju.nextDataId++}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,!L().getBool(\"HAS_WEBGL\"))throw new Error(\"WebGL is not supported on this device\");let e;if(t!=null){if(t instanceof hp)e=t;else{let n=jn(L().getNumber(\"WEBGL_VERSION\"),t);e=new hp(n)}this.binaryCache={},this.gpgpuCreatedLocally=!1}else{let n=jn(L().getNumber(\"WEBGL_VERSION\"));e=new hp(n),this.binaryCache=rot(L().getNumber(\"WEBGL_VERSION\")),this.gpgpuCreatedLocally=!0}this.gpgpu=e,this.canvas=this.gpgpu.gl.canvas,this.textureManager=new tI(this.gpgpu),this.numMBBeforeWarning=sot(),this.texData=new Ta(this,Vn())}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=kd(e),c=new cg(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((L().getBool(\"WEBGL_CHECK_NUMERICAL_PROBLEMS\")||L().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:Zr.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(L().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:Zr.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 Rn(a,Ia):m=new zr(a,Ia);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 Rn(o,Ia):d=new zr(o,Ia);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(L().getBool(\"DEBUG\")&&!L().getBool(\"WEBGL_DOWNLOAD_FLOAT_ENABLED\")&&L().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\"&&L().get(\"WEBGL_BUFFER_SUPPORTED\")){c=this.decode(t);let d=this.texData.get(c.dataId);l=this.gpgpu.createBufferFromTexture(d.texture.texture,...ig(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)&&Vn().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 Rn(s,Ia):f=new zr(s,Ia);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=Vn().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 bt(t.shape,t.dtype,n)}catch(n){throw new Error(\"Failed to decode encoded string bytes into utf-8\")}return bt(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(L().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 L().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE\")>0?this.gpgpu.beginQuery():{startMs:y.now(),endMs:null}}endTimer(t){return L().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE\")>0?(this.gpgpu.endQuery(),t):(t.endMs=y.now(),t)}async getQueryTime(t){if(L().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=not){return L().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 Vn().makeTensorFromTensorInfo(this.makeTensorInfo(t,e,n),this)}unpackTensor(t){let e=new eI(t.shape);return this.runWebGLProgram(e,[t],t.dtype)}packTensor(t){let e=new Qw(t.shape),n=!0;return this.runWebGLProgram(e,[t],t.dtype,null,n)}packedReshape(t,e){let n=[zl(t.shape),...Bl(t.shape)],o={dtype:t.dtype,shape:n,dataId:t.dataId},s=[zl(e),...Bl(e)],i=new Od(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=kd(s),u;o?u=new Vw(a):u=new Bw(a);let l=!0,c=[e!=null?e:ig(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===qu.DENSE){let x=i!=null?i:ig(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)<=L().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&&!Ku(b.shape,x.shape)){let w=x,I=x.shape;x.shape=b.shape,x=this.packedReshape(x,I),l.push(x),b=this.texData.get(x.dataId),w.shape=I}return{shape:x.shape,texData:b,isUniform:!1}});this.uploadToGPU(a.dataId);let p={shape:a.shape,texData:u,isUniform:!1},m=SL(t,c,p),f=this.getAndSaveBinary(m,()=>CL(this.gpgpu,t,c,p)),d=this.activeTimers!=null,h;d&&(h=this.startTimer()),L().get(\"ENGINE_COMPILE_ONLY\")||vL(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=L().get(\"WEBGL_FLUSH_THRESHOLD\");if(g>0){let x=y.now();x-this.lastGlFlushTime>g&&(this.gpgpu.gl.flush(),this.lastGlFlushTime=x)}if(!L().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||(L().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(!L().get(\"WEBGL_RENDER_FLOAT32_ENABLED\")){let t=L().getBool(\"DEBUG\");L().set(\"DEBUG\",!1);let e=this.abs(ft(1e-8)).dataSync()[0];if(L().set(\"DEBUG\",t),e>0)return 32}return 16})),this.floatPrecisionValue}epsilon(){return this.floatPrecision()===32?tot:eot}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=WT(n,u),e.texShape=p),s!=null){let m=kd(n),f,d=p[1],h=p[0],g=s instanceof Uint8Array||s instanceof Uint8ClampedArray;(u||!g)&&([d,h]=wa(p[0],p[1])),u?f=new Uw(m,g):f=new cg(m,g);let x=g?[h,d]:p,b=this.makeTensorInfo(x,o),w=this.texData.get(b.dataId);g?w.usage=Zr.PIXELS:w.usage=Zr.UPLOAD,w.texShape=x,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(b.dataId),d,h,s);let I=[[h,d]],N=!0,E=this.runWebGLProgram(f,[b],o,I,N),A=this.texData.get(E.dataId);e.texShape=A.texShape,e.isPacked=A.isPacked,e.usage=A.usage,L().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=iot(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 kh(),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?(Fw(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.values(this.binaryCache)){this.gpgpu.buildVao(t.webGLProgram);let{variablesLocations:e,customUniformLocations:n,infLoc:o,nanLoc:s,outShapeLocation:i,outShapeStridesLocation:a,outTexShapeLocation:u}=YT(this.gpgpu,t.program,t.webGLProgram);t.variablesLocations=e,t.customUniformLocations=n,t.infLoc=o,t.nanLoc=s,t.outShapeLocation=i,t.outShapeStridesLocation=a,t.outTexShapeLocation=u}}createTensorFromGPUData(t,e,n){t.channels=t.channels||\"RGBA\";let{texture:o,height:s,width:i,channels:a}=t,u=Vn().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 Vn().makeTensorFromDataId(l,e,n,u)}};ju.nextDataId=0;function iot(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 ju,2);var aDe={forceHalfFloat:Dz};var Pd=`\n if (isnan(a)) return a;\n if (isnan(b)) return b;\n`;var mo=class{constructor(t,e,n){this.variableNames=[\"A\",\"B\"],this.outputShape=S.assertAndGetBroadcastShape(e,n),this.enableShapeUniforms=de(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 Yn=`\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 zo=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=de(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=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 $z={kernelName:xo,backendName:\"webgl\",kernelFunc:rr};function Fn(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 Rz={kernelName:Op,backendName:\"webgl\",kernelFunc:Fn};var g1=\"return (a < 0.) ? b * a : a;\",x1=`\n vec4 aLessThanZero = vec4(lessThan(a, vec4(0.)));\n return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a);\n`;function aot(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{alpha:s}=n,i=e.makeTensorInfo([],\"float32\",y.createScalarValue(s,\"float32\")),a=L().getBool(\"WEBGL_PACK_BINARY_OPERATIONS\")?new zo(x1,o.shape,i.shape):new mo(g1,o.shape,i.shape),u=e.runWebGLProgram(a,[o,i],\"float32\");return e.disposeIntermediateTensorInfo(i),u}var Fz={kernelName:Is,backendName:\"webgl\",kernelFunc:aot};var y1=\"return (a < 0.) ? b * a : a;\",b1=`\n vec4 aLessThanZero = vec4(lessThan(a, vec4(0.)));\n return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a);\n`;function lot(r){let{inputs:t,backend:e}=r,{x:n,alpha:o}=t,s=L().getBool(\"WEBGL_PACK_BINARY_OPERATIONS\")?new zo(b1,n.shape,o.shape):new mo(y1,n.shape,o.shape);return e.runWebGLProgram(s,[n,o],\"float32\")}var Oz={kernelName:Ps,backendName:\"webgl\",kernelFunc:lot};var Bo=\"if (isnan(x)) return x;\";function wt({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=L().getBool(\"WEBGL_PACK_UNARY_OPERATIONS\")&&t!=null,c;return l?c=new Rn(i.shape,t):c=new zr(i.shape,r),a.runWebGLProgram(c,[i],u)}}function ue({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[I,N]=w,E={dataId:I.dataId,dtype:I.dtype,shape:u.shape},A={dataId:N.dataId,dtype:N.dtype,shape:l.shape},D=new mo(r,u.shape,l.shape);return c.runWebGLProgram(D,[E,A],ur(I.dtype,N.dtype))}),b=Fn({inputs:{real:g,imag:x},backend:c});return c.disposeIntermediateTensorInfo(g),c.disposeIntermediateTensorInfo(x),b}let p=s||ur(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),I=c.makeTensorInfo(w,p),N=c.texData.get(I.dataId);return N.values=b,I}let m=L().getBool(\"WEBGL_PACK_BINARY_OPERATIONS\")&&t!=null,f;return m?f=new zo(t,u.shape,l.shape,e):f=new mo(r,u.shape,l.shape),c.runWebGLProgram(f,[u,l],p)}}function Vl(r,t=!1){if(r===\"linear\")return t?Nz:bz;if(r===\"relu\")return t?Tz:Iz;if(r===\"elu\")return t?kz:wz;if(r===\"relu6\")return t?_z:Cz;if(r===\"prelu\")return t?b1:y1;if(r===\"leakyrelu\")return t?x1:g1;if(r===\"sigmoid\")return t?Ez:vz;throw new Error(`Activation ${r} has not been implemented for the WebGL backend.`)}var Md=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=de(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\",I=\"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&&!Ku(o.shape,u)&&!(c.texture!==null&&Ku(c.shape,u))?Lz(o,u,i):(i.incRef(o.dataId),{dataId:o.dataId,shape:u,dtype:o.dtype})}var zz={kernelName:Bi,backendName:\"webgl\",kernelFunc:rt};var dg=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 nI=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 cot(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 Zn(r,t,e,n){let o=cot(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=d1(\"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=rt({inputs:{x:r},backend:o,attrs:{shape:N}}),D=rt({inputs:{x:t},backend:o,attrs:{shape:E}}),F=[A,D],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?Vl(u,!0):null,K=G||W||q||H!=null,X;if((f===1||d===1)&&V>I1&&K===!1){let et=A,nt=D;e&&(et=Pe({inputs:{x:A},backend:o,attrs:{perm:[0,2,1]}}),F.push(et)),n&&(nt=Pe({inputs:{x:D},backend:o,attrs:{perm:[0,2,1]}}),F.push(nt));let st=d!==1,at=d===1,ot=et;st&&(ot=rt({inputs:{x:et},backend:o,attrs:{shape:[P,V,1]}}),F.push(ot));let it=d===1?2:1,mt=nt;at&&(mt=rt({inputs:{x:nt},backend:o,attrs:{shape:[P,1,V]}}),F.push(mt));let gt=fg({inputs:{a:ot,b:mt},backend:o});X=xp({inputs:{x:gt},backend:o,attrs:{axis:it,keepDims:!0}}),F.push(gt)}else{let et=ur(r.dtype,t.dtype),nt=new Md(N,E,[P,f,d],e,n,G,H,W,q),st=[A,D];if(s!=null&&st.push(s),W&&st.push(i),q){let at=o.makeTensorInfo([],\"float32\",y.createScalarValue(a,\"float32\"));st.push(at),F.push(at)}X=o.runWebGLProgram(nt,st,et)}let Z=rt({inputs:{x:X},backend:o,attrs:{shape:I}});F.push(X);for(let et of F)o.disposeIntermediateTensorInfo(et);return Z}function mot(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 yp({a:o,b:s,transposeA:u,transposeB:l,backend:e,bias:i,preluActivationWeights:a,leakyreluAlpha:p,activation:c})}var Wz={kernelName:Ki,backendName:\"webgl\",kernelFunc:mot};var Uz=\"return abs(x);\";function fot(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 L().getBool(\"WEBGL_PACK_UNARY_OPERATIONS\")?o=new Rn(n.shape,Uz):o=new zr(n.shape,Uz),e.runWebGLProgram(o,[n],n.dtype)}var Hz={kernelName:_i,backendName:\"webgl\",kernelFunc:fot};var dot=yr+`\n if (abs(x) > 1.) {\n return NAN;\n }\n return acos(x);\n`,hot=wt({opSnippet:dot}),qz={kernelName:Ho,backendName:\"webgl\",kernelFunc:hot};var got=yr+`\n if (x < 1.0) return NAN;\nreturn log(x + sqrt(x * x - 1.0));`,xot=wt({opSnippet:got}),Kz={kernelName:qo,backendName:\"webgl\",kernelFunc:xot};var jz=\"return a + b;\",yot=ue({opSnippet:jz,packedOpSnippet:jz,supportsComplex:!0,cpuKernelImpl:NL}),Xz={kernelName:oo,backendName:\"webgl\",kernelFunc:yot};var iI=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 aI=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 lI(r){let{inputs:t,backend:e}=r,n=t;if(n.length===1)return rr({inputs:{x:n[0]},backend:e});if(n.length>L().get(\"WEBGL_MAX_TEXTURES_IN_SHADER\")){let u=Math.floor(n.length/2),l=lI({inputs:n.slice(0,u),backend:e}),c=lI({inputs:n.slice(u),backend:e});return lI({inputs:[l,c],backend:e})}let o=n.map(u=>u.dtype).reduce((u,l)=>ur(u,l)),s=n.map(u=>u.shape),a=L().getBool(\"WEBGL_PACK\")?new aI(n[0].shape,s):new iI(n[0].shape,s);return e.runWebGLProgram(a,n,o)}var Yz={kernelName:Ko,backendName:\"webgl\",kernelFunc:lI};function bot(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=Pe({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=rt({inputs:{x:p},backend:e,attrs:{shape:[-1,d]}}),g=Zn(h,h.dtype,\"all\",e),x;if(i){let b=S.expandShapeToKeepDim(m,u);x=rt({inputs:{x:g},backend:e,attrs:{shape:b}})}else x=rt({inputs:{x:g},backend:e,attrs:{shape:m}});return e.disposeIntermediateTensorInfo(h),e.disposeIntermediateTensorInfo(g),c!=null&&e.disposeIntermediateTensorInfo(p),x}var Zz={kernelName:Ea,backendName:\"webgl\",kernelFunc:bot};function wot(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=Pe({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=rt({inputs:{x:p},backend:e,attrs:{shape:[-1,d]}}),g=Zn(h,h.dtype,\"any\",e),x;if(i){let b=S.expandShapeToKeepDim(m,u);x=rt({inputs:{x:g},backend:e,attrs:{shape:b}})}else x=rt({inputs:{x:g},backend:e,attrs:{shape:m}});return e.disposeIntermediateTensorInfo(h),e.disposeIntermediateTensorInfo(g),c!=null&&e.disposeIntermediateTensorInfo(p),x}var Jz={kernelName:Aa,backendName:\"webgl\",kernelFunc:wot};var uI=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 cI=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=er(\"coords\",u),p,m;if(i===1){m=u+1;let D=zt(m);p=`\n ${D} sourceLocR = ${D}(${c.join()}, 0);\n ++${c[u-1]};\n ${D} sourceLocG = ${D}(${c.join()}, 0);\n ++${c[u-2]};\n ${D} sourceLocA = ${D}(${c.join()}, 0);\n --${c[u-1]};\n ${D} sourceLocB = ${D}(${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(D=>\"int \"+D),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\"),I=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(${I}(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 Qz(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 uI(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=Qz(r,t,e,c);return r.disposeIntermediateTensorInfo(c),p}function t3(r,t,e,n=null){let o=n!=null?n.shape:t.shape,s=o[o.length-1],i=S.computeOptimalWindowSize(s),a=new cI(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=t3(r,t,e,l);return r.disposeIntermediateTensorInfo(l),c}return l}function pI(r,t,e,n){let o=[e];if(S.assertAxesAreInnerMostDims(\"arg\"+n.charAt(0).toUpperCase()+n.slice(1),o,t.shape.length),!L().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=rt({inputs:{x:u},backend:r,attrs:{shape:[-1,p]}});s.push(m);let f=Qz(r,m,n);s.push(f);let d=rt({inputs:{x:f},backend:r,attrs:{shape:l}});return s.forEach(h=>r.disposeIntermediateTensorInfo(h)),d}return t3(r,t,n)}function Iot(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=Pe({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=pI(e,u,i[0],\"max\");return l.forEach(p=>e.disposeIntermediateTensorInfo(p)),c}var e3={kernelName:Ei,backendName:\"webgl\",kernelFunc:Iot};function Cot(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=Pe({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=pI(e,u,i[0],\"min\");return l.forEach(p=>e.disposeIntermediateTensorInfo(p)),c}var r3={kernelName:Ai,backendName:\"webgl\",kernelFunc:Cot};var vot=yr+`\n if (abs(x) > 1.) {\n return NAN;\n }\n return asin(x);\n`,Sot=wt({opSnippet:vot}),n3={kernelName:jo,backendName:\"webgl\",kernelFunc:Sot};var Not=yr+\"return log(x + sqrt(x * x + 1.0));\",kot=wt({opSnippet:Not}),o3={kernelName:Xo,backendName:\"webgl\",kernelFunc:kot};var Tot=yr+`\n return atan(x);\n`,_ot=wt({opSnippet:Tot}),s3={kernelName:Yo,backendName:\"webgl\",kernelFunc:_ot};var Eot=Pd+`\n return atan(a, b);\n`,Aot=`\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 `+Yn+`\n return result;\n`,Dot=ue({opSnippet:Eot,packedOpSnippet:Aot}),i3={kernelName:Jo,backendName:\"webgl\",kernelFunc:Dot};var $ot=yr+`\n if ((x < -1.0) || (x > 1.0)) return NAN;\nreturn (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Rot=wt({opSnippet:$ot}),a3={kernelName:Zo,backendName:\"webgl\",kernelFunc:Rot};var vi=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 D=\">=\";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 ${D} 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\",I=`${e}(${e}(${e}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;e===\"avg\"&&(I=\"avgValue / max(count, 1.0)\");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(${I});\n }\n `}},Yu=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\",I=\"0.0\";if(w||(I=\"-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 / max(count, 1.0)\");let A=Math.floor(i/4)*4,D=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 = ${I};\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(${I});\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 (${D===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 (${D===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 (${D===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 }\n setOutput(${E});\n }\n `}};function Fot(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t;Ii(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 vi(c,\"avg\",!1);return e.runWebGLProgram(p,[o],\"float32\")}var l3={kernelName:Qo,backendName:\"webgl\",kernelFunc:Fot};function Oot(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 Yu(p,\"avg\",!1);return e.runWebGLProgram(m,[o],\"float32\")}var u3={kernelName:Di,backendName:\"webgl\",kernelFunc:Oot};var mI=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 `}},fI=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 Pot(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 fI(m);return e.runWebGLProgram(f,[o],i.dtype)}var c3={kernelName:Xl,backendName:\"webgl\",kernelFunc:Pot};function Mot(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,i=s;Ii([o,s],\"avgPoolGrad\");let{filterSize:a,strides:u,pad:l}=n,c=S.computePool2DInfo(i.shape,a,u,1,l),p=new mI(c);return e.runWebGLProgram(p,[o],i.dtype)}var p3={kernelName:Fp,backendName:\"webgl\",kernelFunc:Mot};function Lot(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s}=t,{transposeA:i,transposeB:a}=n;return yp({a:o,b:s,transposeA:i,transposeB:a,backend:e})}var m3={kernelName:ts,backendName:\"webgl\",kernelFunc:Lot};var dI=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 hI=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 zot=({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=L().getBool(\"WEBGL_PACK_NORMALIZATION\")?new hI(n.shape,o.shape,s.shape,c,p,u):new dI(n.shape,o.shape,s.shape,c,p,u);return t.runWebGLProgram(m,l,l[0].dtype)},f3={kernelName:gs,backendName:\"webgl\",kernelFunc:zot};var gI=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=Bot(this.rank),o,s=t.map((i,a)=>`sourceLoc.${C1[a]} = start[${a}] + coords.${C1[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 `}},C1=[\"x\",\"y\",\"z\",\"w\",\"u\",\"v\"];function Bot(r){if(r===1)return\"sourceLoc\";if(r<=6)return C1.slice(0,r).map(t=>\"sourceLoc.\"+t).join(\",\");throw Error(`Slicing for rank ${r} is not yet supported`)}var xI=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=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 Vot(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=ze.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]=ze.parseSliceParams(o,s,i);if(ze.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=rz(p.values,a,u,o.shape,o.dtype);return e.makeTensorInfo(u,o.dtype,m)}let{isPacked:l}=e.texData.get(o.dataId),c=ze.isSliceContinous(o.shape,a,u);if(l||!c){let p=L().getBool(\"WEBGL_PACK_ARRAY_OPERATIONS\")?new xI(u):new gI(u),m=[a];return e.runWebGLProgram(p,[o],o.dtype,m)}return e.uploadToGPU(o.dataId),Vot(o,a,u,e)}var d3={kernelName:Gi,backendName:\"webgl\",kernelFunc:Si};var Got=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=rt({inputs:{x:o},backend:e,attrs:{shape:u}}),h=Pe({inputs:{x:d},backend:e,attrs:{perm:l}}),g=rt({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},h3={kernelName:$i,backendName:\"webgl\",kernelFunc:Got};function Wot(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=Yw(a,u,s.dtype,s.shape,i);return e.makeTensorInfo([i],s.dtype,l)}var g3={kernelName:Da,backendName:\"webgl\",kernelFunc:Wot};function Uot(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 x3={kernelName:Yl,backendName:\"webgl\",kernelFunc:Uot};var Hot=\"return float(a != b);\",v1=ue({opSnippet:Hot,cpuKernelImpl:KL,dtype:\"bool\"}),y3={kernelName:Ja,backendName:\"webgl\",kernelFunc:v1};function Gl(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 b3={kernelName:jp,backendName:\"webgl\",kernelFunc:Gl};var qot=\"return float(int(x));\";function w3(r,t){let e=new zr(r.shape,qot),n=t.runWebGLProgram(e,[r],\"int32\");return{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}function S1(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=Te(o.shape),a=S1({inputs:{x:o},backend:e,attrs:{dtype:\"float32\"}}),u=Fn({inputs:{real:a,imag:i},backend:e});return i.dispose(),e.disposeIntermediateTensorInfo(a),u}if(o.dtype===\"complex64\"){let i=Gl({inputs:{input:o},backend:e}),a=S1({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]=TL(i,o.shape,o.dtype,s);return e.makeTensorInfo(a,u,l)}if(s===\"int32\")return w3(o,e);if(s===\"bool\"){let i=e.makeTensorInfo([],\"bool\",y.getTypedArrayFromDType(\"bool\",1)),u=v1({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 I3={kernelName:ho,backendName:\"webgl\",kernelFunc:S1};var C3=\"return ceil(x);\",Kot=wt({opSnippet:C3,packedOpSnippet:C3,cpuKernelImpl:_L}),v3={kernelName:es,backendName:\"webgl\",kernelFunc:Kot};var yI=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 bI=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 jot(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{clipValueMin:s,clipValueMax:i}=n,a;L().getBool(\"WEBGL_PACK_CLIP\")?a=new bI(o.shape):a=new yI(o.shape);let u=[[s],[i]];return e.runWebGLProgram(a,[o],o.dtype,u)}var S3={kernelName:go,backendName:\"webgl\",kernelFunc:jot};var wI=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 N3(r,t){return{dataId:t.dataId,dtype:t.dtype,shape:r.shape}}function Xot(r){let{inputs:t,backend:e}=r,{x:n}=t,o=e.texData.get(n.dataId),s=new wI(n.shape),i=[N3(n,o.complexTensorInfos.real),N3(n,o.complexTensorInfos.imag)];return e.runWebGLProgram(s,i,i[0].dtype)}var k3={kernelName:Zl,backendName:\"webgl\",kernelFunc:Xot};var II=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}(${CI(a,l,g)}),\n vec2(${CI(c,l,g)}));\n }`}let f=u.length,d=u[u.length-1];m+=`\n return getChannel(\n getT${f}(${CI(a,l,d)}),\n vec2(${CI(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 CI(r,t,e){let n=r.indexOf(t);return r.map((s,i)=>i===n?`${s} - ${e}`:s).join()}function bp(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 T3={kernelName:Gp,backendName:\"webgl\",kernelFunc:bp};function Ld(r,t,e){let n=r[0].dtype;if(n===\"complex64\"){let f=r.map(b=>Gl({inputs:{input:b},backend:e})),d=r.map(b=>bp({inputs:{input:b},backend:e})),h=Ld(f,t,e),g=Ld(d,t,e),x=Fn({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(I=>{let E=[-1,y.sizeFromShape(I.shape.slice(t))];return rt({inputs:{x:I},backend:e,attrs:{shape:E}})}),d=f.map(I=>({vals:e.readSync(I.dataId),shape:I.shape})),h=S.computeOutShape(f.map(I=>I.shape),1),g=f[0].shape[0]===1,x=EL(d,h,n,g),b=S.computeOutShape(r.map(I=>I.shape),t),w=e.makeTensorInfo(b,n,x);return f.forEach(I=>e.disposeIntermediateTensorInfo(I)),w}let s=r.filter(f=>y.sizeFromShape(f.shape)>0),i=L().getBool(\"WEBGL_PACK_ARRAY_OPERATIONS\")&&s[0].shape.length>1;if(s.length===1){let f=i?new zr(r[0].shape,Ia):new Rn(r[0].shape,Ia);return e.runWebGLProgram(f,r,n)}let a=L().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}=Yot(s,t,e),c=new II(u.map(f=>f.shape)),p=e.runWebGLProgram(c,u,n);u.forEach(f=>e.disposeIntermediateTensorInfo(f));let m=rt({inputs:{x:p},attrs:{shape:l},backend:e});return e.disposeIntermediateTensorInfo(p),m}function Yot(r,t,e){let n=S.computeOutShape(r.map(s=>s.shape),t);return{tensors2D:r.map(s=>rt({inputs:{x:s},attrs:{shape:[-1,y.sizeFromShape(s.shape.slice(t))]},backend:e})),outShape:n}}function N1(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}):Ld(u,s,e)}var _3={kernelName:Ri,backendName:\"webgl\",kernelFunc:N1};var zd=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,I=\"\",N=\"\";n&&(o?I=`float activation(float a) {\n float b = getPreluActivationWeightsAtOutCoords();\n ${n}\n }`:s?I=`float activation(float a) {\n float b = getLeakyreluAlphaAtOutCoords();\n ${n}\n }`:I=`\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 ${I}\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 `}},SI=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 Bd=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=de(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 kI(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 TI({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 I=kI(s.shape,f);I!=null&&(s=rt({inputs:{x:s},backend:n,attrs:{shape:I}}),x.push(s))}if(o!=null){let I=kI(o.shape,f);I!=null&&(o=rt({inputs:{x:o},backend:n,attrs:{shape:I}}),x.push(o))}if(!((p===1||m===1)&&c>I1)&&l.isPacked&&f&&l.texture!=null&&u[2]%2!==0&&y.arraysEqual(l.shape.slice(-3),u.slice(-3))){let I=u[0]*u[1]*(u[2]+1),N={dataId:r.dataId,shape:[1,I,e.inChannels],dtype:r.dtype},E=l.shape;l.shape=l.shape.slice(),l.shape[l.shape.length-2]++,y.assert(Ku(l.shape,N.shape),()=>`packed reshape ${l.shape} to ${N.shape} isn't free`);let A=rt({inputs:{x:t},backend:n,attrs:{shape:[1,e.inChannels,e.outChannels]}});x.push(A);let D=yp({a:N,b:A,backend:n,transposeA:d,transposeB:h,bias:o,activation:a,preluActivationWeights:s,leakyreluAlpha:i}),F=n.texData.get(D.dataId);y.assert(F.isPacked,()=>\"batchMatMul result is expected to be packed\"),l.shape=E,F.shape=e.outShape,g=rr({inputs:{x:D},backend:n}),g.shape=e.outShape,x.push(D)}else{let I=e.outHeight*e.outWidth,N=rt({inputs:{x:r},backend:n,attrs:{shape:f?[e.batchSize,I,e.inChannels]:[e.batchSize,e.inChannels,I]}}),E=rt({inputs:{x:t},backend:n,attrs:{shape:[1,e.inChannels,e.outChannels]}}),A=yp({a:f?N:E,b:f?E:N,transposeA:!f,transposeB:h,backend:n,bias:o,activation:a,preluActivationWeights:s,leakyreluAlpha:i});g=rt({inputs:{x:A},backend:n,attrs:{shape:e.outShape}}),x.push(N),x.push(E),x.push(A)}for(let I of x)n.disposeIntermediateTensorInfo(I);return g}function _I({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,I=[];if(s!=null){let Z=kI(s.shape,d);Z!=null&&(s=rt({inputs:{x:s},backend:n,attrs:{shape:Z}}),I.push(s))}if(o!=null){let Z=kI(o.shape,d);Z!=null&&(o=rt({inputs:{x:o},backend:n,attrs:{shape:Z}}),I.push(o))}let N=rt({inputs:{x:t},backend:n,attrs:{shape:[1,h,y.sizeFromShape(t.shape)/h]}});I.push(N);let E=new NI(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]],D=n.runWebGLProgram(E,[r],\"float32\",A),F=rt({inputs:{x:D},backend:n,attrs:{shape:x}});I.push(D),I.push(F);let P=o!=null,V=s!=null,G=a===\"leakyrelu\",W=a?Vl(a,!0):null,q=new Md(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),I.push(Z)}let K=n.runWebGLProgram(q,H,\"float32\"),X=rt({inputs:{x:K},backend:n,attrs:{shape:e.outShape}});I.push(K);for(let Z of I)n.disposeIntermediateTensorInfo(Z);return X}function Zot(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=TI({x:o,filter:s,convInfo:m,backend:e});else if(m.strideWidth<=2&&p===\"channelsLast\"&&L().getBool(\"WEBGL_EXP_CONV\")){let h=new Bd(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(L().getBool(\"WEBGL_CONV_IM2COL\"))f=_I({x:o,filter:s,convInfo:m,backend:e});else{let h=new zd(m);f=e.runWebGLProgram(h,[o,s],\"float32\")}let d=rt({inputs:{x:f},backend:e,attrs:{shape:m.outShape}});return e.disposeIntermediateTensorInfo(f),d}var E3={kernelName:rs,backendName:\"webgl\",kernelFunc:Zot};var EI=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 ${i?`float dyValue = getDy(b, yR, yC, d2);\n float xValue = getX(b, xR, xC, d1);\n dotProd += (xValue * dyValue);`:`float dyValue = getDy(b, d2, yR, yC);\n float xValue = getX(b, d1, xR, xC);\n dotProd += (xValue * dyValue);`}\n }\n }\n }\n setOutput(dotProd);\n }\n `}},AI=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 `}},DI=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 `}},$I=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 Jot(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 EI(m);return e.runWebGLProgram(f,[o,s],\"float32\")}var A3={kernelName:Pp,backendName:\"webgl\",kernelFunc:Jot};var RI=class{constructor(t){this.variableNames=[\"dy\",\"W\"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:\"strides\",type:\"vec2\"}],this.outputShape=t.inShape,this.enableShapeUniforms=de(this.outputShape.length);let e=t.filterHeight,n=t.filterWidth,o=e-1-t.padInfo.top,s=n-1-t.padInfo.left;this.userCode=`\n const ivec2 pads = ivec2(${o}, ${s});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d1 = coords[3];\n\n ivec2 dyCorner = ivec2(coords[1], coords[2]) - pads;\n int dyRCorner = dyCorner.x;\n int dyCCorner = dyCorner.y;\n\n vec4 result = vec4(0.);\n for (int wR = 0; wR < ${e}; wR++) {\n float dyR = float(dyRCorner + wR) / strides[0];\n if (dyR < 0.0 || dyR >= ${t.outHeight}.0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n int wRPerm = ${e} - 1 - wR;\n\n for (int wC = 0; wC < ${n}; wC++) {\n int wCPerm = ${n} - 1 - wC;\n\n float dyC = float(dyCCorner + wC) / strides[1];\n bool idyCVal = (dyC >= 0.0) && (dyC < ${t.outWidth}.0)\n && (fract(dyC) == 0.0);\n int idyC = int(dyC);\n\n float dyC2 = float(dyCCorner + wC + 1) / strides[1];\n bool idyCVal2 = (dyC2 >= 0.0) && (dyC2 < ${t.outWidth}.0)\n && (fract(dyC2) == 0.0);\n int idyC2 = int(dyC2);\n\n if (idyCVal && idyCVal2) {\n for (int d2 = 0; d2 < ${t.outChannels}; d2 += 2) {\n vec4 wValue = getW(wRPerm, wCPerm, d1, d2);\n vec4 dySample = getDy(batch, idyR, idyC, d2);\n vec4 dySample2 = (idyC / 2 == idyC2 / 2) ?\n dySample : getDy(batch, idyR, idyC2, d2);\n\n vec2 dyValue = mod(float(idyC), 2.) == 0. ?\n dySample.xy : dySample.zw;\n result.xy += vec2(dot(dyValue, wValue.xy),\n dot(dyValue, wValue.zw));\n\n dyValue = mod(float(idyC2), 2.) == 0. ?\n dySample2.xy : dySample2.zw;\n result.zw += vec2(dot(dyValue, wValue.xy),\n dot(dyValue, wValue.zw));\n }\n } else if (idyCVal) {\n for (int d2 = 0; d2 < ${t.outChannels}; d2 += 2) {\n vec4 wValue = getW(wRPerm, wCPerm, d1, d2);\n vec4 dySample = getDy(batch, idyR, idyC, d2);\n vec2 dyValue = mod(float(idyC), 2.) == 0. ?\n dySample.xy : dySample.zw;\n result.xy += vec2(dot(dyValue, wValue.xy),\n dot(dyValue, wValue.zw));\n }\n } else if (idyCVal2) {\n for (int d2 = 0; d2 < ${t.outChannels}; d2 += 2) {\n vec4 wValue = getW(wRPerm, wCPerm, d1, d2);\n vec4 dySample = getDy(batch, idyR, idyC2, d2);\n vec2 dyValue = mod(float(idyC2), 2.) == 0. ?\n dySample.xy : dySample.zw;\n result.zw += vec2(dot(dyValue, wValue.xy),\n dot(dyValue, wValue.zw));\n }\n }\n }\n }\n setOutput(result);\n }\n `}};function Qot(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);if(L().getBool(\"WEBGL_PACK\")&&p===\"channelsLast\"){let f=[[m.strideHeight,m.strideWidth]],d=new RI(m);return e.runWebGLProgram(d,[o,s],\"float32\",f)}else{let f=new AI(m);return e.runWebGLProgram(f,[o,s],\"float32\")}}var D3={kernelName:ns,backendName:\"webgl\",kernelFunc:Qot};function tst(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 SI(l);return e.runWebGLProgram(c,[o,s],\"float32\")}var $3={kernelName:os,backendName:\"webgl\",kernelFunc:tst};function est(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 DI(l);return e.runWebGLProgram(c,[o,s],\"float32\")}var R3={kernelName:$a,backendName:\"webgl\",kernelFunc:est};function rst(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 $I(l);return e.runWebGLProgram(c,[o,s],\"float32\")}var F3={kernelName:Ra,backendName:\"webgl\",kernelFunc:rst};var nst=Bo+`\n return cos(x);\n`,ost=`\n vec4 result = cos(x);\n bvec4 isNaN = isnan(x);\n ${Yn}\n return result;\n`,sst=wt({opSnippet:nst,packedOpSnippet:ost}),O3={kernelName:ss,backendName:\"webgl\",kernelFunc:sst};var ist=`\n float e2x = exp(-x);\n return (e2x + 1.0 / e2x) / 2.0;\n`,ast=wt({opSnippet:ist}),P3={kernelName:is,backendName:\"webgl\",kernelFunc:ast};var FI=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,I,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 = ${I};\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 lst=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 FI(o.shape,s.shape,a,u,l);return e.runWebGLProgram(c,[o,s,i],\"float32\")},M3={kernelName:Oa,backendName:\"webgl\",kernelFunc:lst};var wp;(function(r){r.Prod=\"*\",r.Sum=\"+\"})(wp||(wp={}));var hg=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===wp.Prod?\"1.0\":\"0.0\",a=n?i:`getX(${L3(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 = ${z3(s,\"coords\",this.op)};\n float val = ${a};\n int pow2 = int(pow(2.0, index));\n if (${l}) {\n int idx = ${c};\n ${z3(s,\"coords\",this.op)} = idx;\n val ${this.op}= getX(${L3(s,\"coords\",this.op)});\n }\n setOutput(val);\n }\n `}};function L3(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 z3(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 OI(r,t,e,n,o,s){let i=t.shape.length,a=S.getAxesPermutation([n],i),u=t;a!=null&&(u=Pe({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 hg(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 hg(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=Pe({inputs:{x:p},backend:e,attrs:{perm:m}});return e.disposeIntermediateTensorInfo(p),e.disposeIntermediateTensorInfo(u),f}return p}function ust(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,exclusive:i,reverse:a}=n;return OI(wp.Prod,o,e,s,i,a)}var B3={kernelName:Fa,backendName:\"webgl\",kernelFunc:ust};function cst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,exclusive:i,reverse:a}=n;return OI(wp.Sum,o,e,s,i,a)}var V3={kernelName:as,backendName:\"webgl\",kernelFunc:cst};function pst(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=Yw(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=kL(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 G3={kernelName:Jl,backendName:\"webgl\",kernelFunc:pst};var PI=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 mst(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 PI(d,s,i);return e.runWebGLProgram(h,[o],o.dtype)}var W3={kernelName:Pa,backendName:\"webgl\",kernelFunc:mst};var Vd=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=de(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 Gd=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=de(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;L().getBool(\"WEBGL_PACK_DEPTHWISECONV\")&&p.strideWidth<=2&&p.outChannels/p.inChannels===1?m=new Gd(p):m=new Vd(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 U3={kernelName:ls,backendName:\"webgl\",kernelFunc:fst};var MI=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 `}},LI=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 dst(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 MI(p);return e.runWebGLProgram(m,[o,s],\"float32\")}var H3={kernelName:Mp,backendName:\"webgl\",kernelFunc:dst};function hst(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 LI(p);return e.runWebGLProgram(m,[o,s],\"float32\")}var q3={kernelName:Lp,backendName:\"webgl\",kernelFunc:hst};var zI=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 gst(r){let{inputs:t,backend:e}=r,{x:n}=t,o=[...n.shape,...n.shape],s=y.sizeFromShape(n.shape),i=rt({inputs:{x:n},backend:e,attrs:{shape:[s]}}),a=new zI(s),u=e.runWebGLProgram(a,[i],i.dtype),l=rt({inputs:{x:u},backend:e,attrs:{shape:o}});return e.disposeIntermediateTensorInfo(i),e.disposeIntermediateTensorInfo(u),l}var K3={kernelName:Ql,backendName:\"webgl\",kernelFunc:gst};var BI=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 xst(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 BI(l);c=e.runWebGLProgram(p,[o,s],\"float32\");let m=rt({inputs:{x:c},backend:e,attrs:{shape:l.outShape}});return e.disposeIntermediateTensorInfo(c),m}var j3={kernelName:us,backendName:\"webgl\",kernelFunc:xst};function yst(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=xp({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 X3={kernelName:zp,backendName:\"webgl\",kernelFunc:yst};var bst=\"return (x >= 0.0) ? x : (exp(x) - 1.0);\",wst=`\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`,Ist=wt({opSnippet:bst,packedOpSnippet:wst}),Y3={kernelName:ps,backendName:\"webgl\",kernelFunc:Ist};var Cst=\"return (b >= 0.0) ? a : a * (b + 1.0);\",vst=`\n vec4 bGTEZero = vec4(greaterThanEqual(b, vec4(0.)));\n return (bGTEZero * a) + ((vec4(1.0) - bGTEZero) * (a * (b + vec4(1.0))));\n`,Sst=r=>{let{inputs:t,backend:e}=r,{dy:n,y:o}=t,s=L().getBool(\"WEBGL_PACK_BINARY_OPERATIONS\")?new zo(vst,n.shape,o.shape):new mo(Cst,n.shape,o.shape);return e.runWebGLProgram(s,[n,o],n.dtype)},Z3={kernelName:Ma,backendName:\"webgl\",kernelFunc:Sst};var Nst=`\n return vec4(equal(a, b));\n`,kst=\"return float(a == b);\",Tst=ue({opSnippet:kst,packedOpSnippet:Nst,dtype:\"bool\",cpuKernelImpl:AL}),J3={kernelName:za,backendName:\"webgl\",kernelFunc:Tst};var _st=`\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`,Est=wt({opSnippet:_st}),Q3={kernelName:La,backendName:\"webgl\",kernelFunc:Est};var Ast=Bo+`\n return exp(x);\n`,Dst=`\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`,k1=wt({opSnippet:Ast,packedOpSnippet:Dst,cpuKernelImpl:DL,dtype:\"float32\"}),tB={kernelName:ms,backendName:\"webgl\",kernelFunc:k1};function VI(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),rt({inputs:{x:s},backend:n,attrs:{shape:a}})}var eB={kernelName:Fi,backendName:\"webgl\",kernelFunc:VI};var rB=\"return exp(x) - 1.0;\",$st=wt({opSnippet:rB,packedOpSnippet:rB,cpuKernelImpl:$L}),nB={kernelName:fs,backendName:\"webgl\",kernelFunc:$st};var gg=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 GI(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=rt({inputs:{x:r},backend:e,attrs:{shape:[i,s]}}),u=a.shape,l=new gg(\"real\",u,t),c=new gg(\"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=Fn({inputs:{real:m,imag:f},backend:e});e.disposeIntermediateTensorInfo(m),e.disposeIntermediateTensorInfo(f);let h=rt({inputs:{x:d},backend:e,attrs:{shape:r.shape}});return e.disposeIntermediateTensorInfo(a),e.disposeIntermediateTensorInfo(d),h}function Rst(r){let{inputs:t,backend:e}=r,{input:n}=t;return GI(n,!1,e)}var oB={kernelName:Bp,backendName:\"webgl\",kernelFunc:Rst};var WI=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 Wl(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 WI(n,o),a=[[o]];return t.runWebGLProgram(i,[],s,a)}}var sB={kernelName:ru,backendName:\"webgl\",kernelFunc:Wl};var UI=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 iB={kernelName:Ba,backendName:\"webgl\",kernelFunc:({inputs:r,backend:t})=>{let{image:e}=r,n=t,o=new UI(e.shape);return n.runWebGLProgram(o,[e],e.dtype)}};var aB=\"return floor(x);\",Fst=wt({opSnippet:aB,packedOpSnippet:aB,cpuKernelImpl:RL}),lB={kernelName:ds,backendName:\"webgl\",kernelFunc:Fst};var Ost=`\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`,Pst=`\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`,Mst=ue({opSnippet:Ost,packedOpSnippet:Pst,dtype:\"int32\"}),uB={kernelName:hs,backendName:\"webgl\",kernelFunc:Mst};var HI=class{constructor(t){this.variableNames=[\"A\"];let e=We(),[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 qI=class{constructor(t){this.variableNames=[\"A\"],this.packedInputs=!1,this.packedOutput=!0;let e=We(),[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 cB={kernelName:oh,backendName:\"webgl\",kernelFunc:Lst},Wd,T1=L().getBool(\"CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU\");function Lst(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=L().getBool(\"CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU\");(Wd==null||h!==T1)&&(T1=h,Wd=document.createElement(\"canvas\").getContext(\"2d\",{willReadFrequently:T1})),Wd.canvas.width=u,Wd.canvas.height=l,Wd.drawImage(o,0,0,u,l),o=Wd.canvas}let m=e.makeTensorInfo(c,\"int32\");e.texData.get(m.dataId).usage=Zr.PIXELS,e.gpgpu.uploadPixelDataToTexture(e.getTexture(m.dataId),o);let f=L().getBool(\"WEBGL_PACK\")?new qI(p):new HI(p),d=e.runWebGLProgram(f,[m],\"int32\");return e.disposeData(m.dataId),d}function zst(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,I=a!=null,N=f===\"leakyrelu\",E=()=>{let D=[o,s],F=(P,V)=>{if(V===\"NCHW\"&&P.shape.length===1&&P.shape[0]!==1){let G=rt({inputs:{x:P},backend:e,attrs:{shape:[P.shape[0],1,1]}});return b.push(G),G}return P};if(w&&D.push(F(i,c)),I&&D.push(F(a,c)),N){let P=e.makeTensorInfo([],\"float32\",y.createScalarValue(d,\"float32\"));D.push(P),b.push(P)}return D};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=TI({x:o,filter:s,convInfo:g,backend:e,bias:i,activation:f,preluActivationWeights:a,leakyreluAlpha:d});else if(g.strideWidth<=2&&h===\"channelsLast\"&&L().getBool(\"WEBGL_EXP_CONV\")){let D=f?Vl(f,!0):null,F=new Bd(g,w,D,I,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(L().getBool(\"WEBGL_CONV_IM2COL\"))x=_I({x:o,filter:s,convInfo:g,backend:e,bias:i,activation:f,preluActivationWeights:a,leakyreluAlpha:d});else{let D=f?Vl(f,!1):null,F=new zd(g,w,D,I,N),P=E();x=e.runWebGLProgram(F,P,\"float32\")}let A=rt({inputs:{x},backend:e,attrs:{shape:g.outShape}});return b.push(x),b.forEach(D=>e.disposeIntermediateTensorInfo(D)),A}var pB={kernelName:ji,backendName:\"webgl\",kernelFunc:zst};function Bst(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=L().getBool(\"WEBGL_PACK_DEPTHWISECONV\")&&g.strideWidth<=2&&g.outChannels/g.inChannels===1,b=m?Vl(m,x):null,w=[o,s],I=i!=null,N=a!=null,E=m===\"leakyrelu\";if(I&&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 Gd(g,I,b,N,E):A=new Vd(g,I,b,N,E);let D=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],F=e.runWebGLProgram(A,w,\"float32\",D);return d.forEach(P=>e.disposeIntermediateTensorInfo(P)),F}var mB={kernelName:Xi,backendName:\"webgl\",kernelFunc:Bst};var KI=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 Vst(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=rt({inputs:{x:o},backend:e,attrs:{shape:[l,i]}}),f=rt({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=FL(x,b,n.dtype,l,i,c,p,n.shape,a);return e.makeTensorInfo(u,n.dtype,w.values)}let d=new KI(i,p,[l,c],n.shape),h=e.runWebGLProgram(d,[f,m],f.dtype),g=rt({inputs:{x:h},backend:e,attrs:{shape:u}});return e.disposeIntermediateTensorInfo(m),e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(h),g}var fB={kernelName:Va,backendName:\"webgl\",kernelFunc:Vst};var jI=class{constructor(t,e){this.variableNames=[\"A\",\"indices\"],this.outputShape=e,this.rank=e.length;let n=zt(this.rank),o=Gst(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 Gst(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=rt({inputs:{x:o},backend:e,attrs:{shape:[l.batchSize,l.outerSize,l.dimSize,l.sliceSize]}}),f=rt({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),I=OL(w,b,d);return p.forEach(N=>e.disposeIntermediateTensorInfo(N)),e.makeTensorInfo(l.outputShape,I.dtype,I.values)}let h=new jI(m.shape,d),g=e.runWebGLProgram(h,[m,f],m.dtype);p.push(g);let x=rt({inputs:{x:g},backend:e,attrs:{shape:l.outputShape}});return p.forEach(b=>e.disposeIntermediateTensorInfo(b)),x}var dB={kernelName:Oi,backendName:\"webgl\",kernelFunc:_1};var Wst=\"return float(a > b);\",Ust=`\n return vec4(greaterThan(a, b));\n`,Hst=ue({opSnippet:Wst,packedOpSnippet:Ust,cpuKernelImpl:PL,dtype:\"bool\"}),hB={kernelName:Ga,backendName:\"webgl\",kernelFunc:Hst};var qst=\"return float(a >= b);\",Kst=`\n return vec4(greaterThanEqual(a, b));\n`,jst=ue({opSnippet:qst,packedOpSnippet:Kst,dtype:\"bool\",cpuKernelImpl:ML}),gB={kernelName:xs,backendName:\"webgl\",kernelFunc:jst};function Xst(r){let{inputs:t,backend:e}=r,{input:n}=t;return GI(n,!0,e)}var xB={kernelName:Vp,backendName:\"webgl\",kernelFunc:Xst};var Yst=\"return float(!isnan(x) && !isinf(x));\",Zst=wt({opSnippet:Yst,dtype:\"bool\"}),yB={kernelName:ys,backendName:\"webgl\",kernelFunc:Zst};var Jst=\"return float(isinf(x));\",Qst=wt({opSnippet:Jst,dtype:\"bool\"}),bB={kernelName:bs,backendName:\"webgl\",kernelFunc:Qst};var tit=\"return float(isnan(x));\",eit=wt({opSnippet:tit,dtype:\"bool\"}),wB={kernelName:ws,backendName:\"webgl\",kernelFunc:eit};var rit=\"return float(a < b);\",nit=`\n return vec4(lessThan(a, b));\n`,oit=ue({opSnippet:rit,packedOpSnippet:nit,cpuKernelImpl:LL,dtype:\"bool\"}),IB={kernelName:Wa,backendName:\"webgl\",kernelFunc:oit};var sit=\"return float(a <= b);\",iit=`\n return vec4(lessThanEqual(a, b));\n`,ait=ue({opSnippet:sit,packedOpSnippet:iit,cpuKernelImpl:zL,dtype:\"bool\"}),CB={kernelName:Ua,backendName:\"webgl\",kernelFunc:ait};function lit(r){let{backend:t,attrs:e}=r,{start:n,stop:o,num:s}=e,i=BL(n,o,s);return t.makeTensorInfo([i.length],\"float32\",i)}var vB={kernelName:Ha,backendName:\"webgl\",kernelFunc:lit};var uit=Bo+`\n return x < 0.0 ? 0./0. : log(x);\n`,cit=`\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`,pit=wt({opSnippet:uit,packedOpSnippet:cit,cpuKernelImpl:VL}),SB={kernelName:Cs,backendName:\"webgl\",kernelFunc:pit};var mit=Bo+`\n return log(1.0 + x);\n`,fit=wt({opSnippet:mit}),NB={kernelName:vs,backendName:\"webgl\",kernelFunc:fit};var dit=\"return float(a >= 1.0 && b >= 1.0);\",hit=`\n return vec4(\n vec4(greaterThanEqual(a, vec4(1.0))) *\n vec4(greaterThanEqual(b, vec4(1.0))));\n`,git=ue({opSnippet:dit,packedOpSnippet:hit,dtype:\"bool\"}),kB={kernelName:qa,backendName:\"webgl\",kernelFunc:git};var xit=\"return float(!(x >= 1.0));\",yit=wt({opSnippet:xit}),TB={kernelName:Ka,backendName:\"webgl\",kernelFunc:yit};var bit=\"return float(a >= 1.0 || b >= 1.0);\",wit=`\n return min(\n vec4(greaterThanEqual(a, vec4(1.0))) +\n vec4(greaterThanEqual(b, vec4(1.0))),\n vec4(1.0));\n`,Iit=ue({opSnippet:bit,packedOpSnippet:wit,dtype:\"bool\"}),_B={kernelName:ja,backendName:\"webgl\",kernelFunc:Iit};var XI=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 YI=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 Cit=r=>{let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{depthRadius:s,bias:i,alpha:a,beta:u}=n,l=L().getBool(\"WEBGL_PACK_NORMALIZATION\")?new YI(o.shape,s,i,a,u):new XI(o.shape,s,i,a,u);return e.runWebGLProgram(l,[o],o.dtype)},EB={kernelName:Ss,backendName:\"webgl\",kernelFunc:Cit};var ZI=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 vit=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 ZI(o.shape,a,u,l,c);return e.runWebGLProgram(p,[o,s,i],o.dtype)},AB={kernelName:Xa,backendName:\"webgl\",kernelFunc:vit};function DB(r,t,e,n){let o=y.sizeFromShape(t),i=y.sizeFromShape(r.shape)/o,a=rt({inputs:{x:r},attrs:{shape:[i,o]},backend:n}),u=Zn(a,r.dtype,\"max\",n),l=rt({inputs:{x:u},attrs:{shape:e},backend:n});return n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(u),l}function E1(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,I=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 vi(c,\"max\",!1);return e.runWebGLProgram(p,[o],o.dtype)}var FB={kernelName:Ts,backendName:\"webgl\",kernelFunc:Tit};function _it(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 Yu(p,\"max\",!1);return e.runWebGLProgram(m,[o],o.dtype)}var OB={kernelName:Pi,backendName:\"webgl\",kernelFunc:_it};var JI=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 `}},QI=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 Eit(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 Yu(m,\"max\",!0),d=e.runWebGLProgram(f,[i],i.dtype),h=new QI(m),g=e.runWebGLProgram(h,[o,d],i.dtype);return e.disposeIntermediateTensorInfo(d),g}var PB={kernelName:nu,backendName:\"webgl\",kernelFunc:Eit};function Ait(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s,output:i}=t,a=s;Ii([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 vi(m,\"max\",f),h=e.runWebGLProgram(d,[a],a.dtype),g=new JI(m),x=e.runWebGLProgram(g,[o,h],a.dtype);return e.disposeIntermediateTensorInfo(h),x}var MB={kernelName:Wp,backendName:\"webgl\",kernelFunc:Ait};function LB(r,t,e,n){let o=new vi(e,\"max\",!1),s=n.runWebGLProgram(o,[r],\"float32\");o=new vi(e,\"max\",!0,!0,t);let i=n.runWebGLProgram(o,[r],\"float32\");return[s,i]}var zB={kernelName:Up,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]=LB(n,a,c,u);return[p,m]}};function BB(r,t,e,n){let o=y.sizeFromShape(t),i=y.sizeFromShape(r.shape)/o,a=rt({inputs:{x:r},attrs:{shape:[i,o]},backend:n}),u=Zn(a,\"float32\",\"mean\",n),l=rt({inputs:{x:u},attrs:{shape:e},backend:n});return n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(u),l}var VB={kernelName:_s,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 I=i.texData.get(d.dataId).values,N=new Array(a);for(let D=0;Dc[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 eC=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=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 Oit=({inputs:r,backend:t,attrs:e})=>{let{x:n}=r,{paddings:o,mode:s}=e,i=L().getBool(\"WEBGL_PACK_ARRAY_OPERATIONS\")?new eC(n.shape,o,s):new tC(n.shape,o,s);return t.runWebGLProgram(i,[n],n.dtype)},UB={kernelName:Ds,backendName:\"webgl\",kernelFunc:Oit};var Pit=`if (b == 0.0) return NAN;\n return mod(a, b);`,Mit=`\n vec4 result = mod(a, b);\n bvec4 isNaN = equal(b, vec4(0.0));\n `+Yn+`\n return result;\n`,Lit=ue({opSnippet:Pit,packedOpSnippet:Mit}),HB={kernelName:Ya,backendName:\"webgl\",kernelFunc:Lit};var rC=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 zit=`\nif (a == b) {\n return 1.0;\n};\nreturn a / b;`,Bit=`\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`,A1=ue({opSnippet:zit,packedOpSnippet:Bit,checkOutOfBounds:!0}),qB={kernelName:cs,backendName:\"webgl\",kernelFunc:A1};var KB=\"return a - b;\",D1=ue({opSnippet:KB,packedOpSnippet:KB,supportsComplex:!0,cpuKernelImpl:pz}),jB={kernelName:ei,backendName:\"webgl\",kernelFunc:D1};function $1(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{dim:s}=n,i=y.parseAxisParam([s],o.shape),a=E1({inputs:{x:o},backend:e,attrs:{reductionIndices:i,keepDims:!1}}),u=S.expandShapeToKeepDim(a.shape,i),l=rt({inputs:{x:a},backend:e,attrs:{shape:u}}),c=D1({inputs:{a:o,b:l},backend:e}),p=k1({inputs:{x:c},backend:e}),m=xp({inputs:{x:p},backend:e,attrs:{axis:i,keepDims:!1}}),f=rt({inputs:{x:m},backend:e,attrs:{shape:u}}),d=A1({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 XB={kernelName:Qs,backendName:\"webgl\",kernelFunc:$1};function Vit(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{numSamples:s,seed:i,normalized:a}=n,u=a?o:$1({inputs:{logits:o},backend:e,attrs:{dim:o.shape.length-1}}),l=u.shape[0],c=u.shape[1],p=new rC(l,c,s),m=[[i]],f=e.runWebGLProgram(p,[u],\"int32\",m);return a||e.disposeIntermediateTensorInfo(u),f}var YB={kernelName:Za,backendName:\"webgl\",kernelFunc:Vit};var Git=yr+`\n return -x;\n`,Wit=`\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 Uit(r){let{inputs:t,backend:e}=r,{x:n}=t;if(e.shouldExecuteOnCPU([n])){let s=e.texData.get(n.dataId),[i,a]=qL(s.values,n.shape,n.dtype);return e.makeTensorInfo(a,n.dtype,i)}let o;return L().getBool(\"WEBGL_PACK_UNARY_OPERATIONS\")?o=new Rn(n.shape,Wit):o=new zr(n.shape,Git),e.runWebGLProgram(o,[n],n.dtype)}var ZB={kernelName:Mi,backendName:\"webgl\",kernelFunc:Uit};var Hit=Kr.nonMaxSuppressionV3Impl;function qit(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}=Hit(l,c,i,a,u);return e.makeTensorInfo([p.length],\"int32\",new Int32Array(p))}var JB={kernelName:Qa,backendName:\"webgl\",kernelFunc:qit};var Kit=Kr.nonMaxSuppressionV4Impl;function jit(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}=Kit(c,p,i,a,u,l);return[e.makeTensorInfo([m.length],\"int32\",new Int32Array(m)),e.makeTensorInfo([],\"int32\",new Int32Array([f]))]}var QB={kernelName:tl,backendName:\"webgl\",kernelFunc:jit};var Xit=Kr.nonMaxSuppressionV5Impl;function Yit(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}=Xit(c,p,m,f,d,h);return[e.makeTensorInfo([g.length],\"int32\",new Int32Array(g)),e.makeTensorInfo([x.length],\"float32\",new Float32Array(x))]}var tV={kernelName:el,backendName:\"webgl\",kernelFunc:Yit};var nC=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 Zit=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 nC(l,i,a,u),p=rt({inputs:{x:o},backend:e,attrs:{shape:[l]}}),m=e.runWebGLProgram(c,[p],s);e.disposeIntermediateTensorInfo(p);let f=[...o.shape,i],d=rt({inputs:{x:m},backend:e,attrs:{shape:f}});return e.disposeIntermediateTensorInfo(m),d},eV={kernelName:Rs,backendName:\"webgl\",kernelFunc:Zit};function xg(r){let{inputs:t,backend:e}=r,{x:n}=t;if(n.dtype===\"complex64\"){let o=Gl({inputs:{input:n},backend:e}),s=xg({inputs:{x:o},backend:e}),i=bp({inputs:{input:n},backend:e}),a=xg({inputs:{x:i},backend:e}),u=Fn({inputs:{real:s,imag:a},backend:e});return e.disposeIntermediateTensorInfo(o),e.disposeIntermediateTensorInfo(s),e.disposeIntermediateTensorInfo(i),e.disposeIntermediateTensorInfo(a),u}else return Wl({attrs:{shape:n.shape,dtype:n.dtype,value:n.dtype===\"string\"?\"\":0},backend:e})}var rV={kernelName:qi,backendName:\"webgl\",kernelFunc:xg};function nV(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=Gl({inputs:{input:n},backend:e}),s=nV({inputs:{x:o},backend:e}),i=bp({inputs:{input:n},backend:e}),a=xg({inputs:{x:i},backend:e}),u=Fn({inputs:{real:s,imag:a},backend:e});return e.disposeIntermediateTensorInfo(o),e.disposeIntermediateTensorInfo(s),e.disposeIntermediateTensorInfo(i),e.disposeIntermediateTensorInfo(a),u}else return Wl({attrs:{shape:n.shape,dtype:n.dtype,value:1},backend:e})}var oV={kernelName:Li,backendName:\"webgl\",kernelFunc:nV};function Jit(r){let{inputs:t,backend:e,attrs:n}=r,{axis:o}=n;if(t.length===1)return VI({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=VI({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=N1({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeIntermediateTensorInfo(c)),l}var sV={kernelName:zi,backendName:\"webgl\",kernelFunc:Jit};var oC=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 sC=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=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 Wl({backend:e,attrs:{shape:l,value:i,dtype:o.dtype}})}let a=L().getBool(\"WEBGL_PACK_ARRAY_OPERATIONS\")?new sC(o.shape,s,i):new oC(o.shape,s,i),u=[[i]];return e.runWebGLProgram(a,[o],o.dtype,u)},iV={kernelName:Fs,backendName:\"webgl\",kernelFunc:R1};var Qit=`\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`,tat=`\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 `+Yn+`\n return result;\n`,eat=ue({opSnippet:Qit,packedOpSnippet:tat}),aV={kernelName:Os,backendName:\"webgl\",kernelFunc:eat};function rat(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=Pe({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}=jL(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=rt({inputs:{x:m},backend:e,attrs:{shape:[-1,g]}}),b=mc(o.dtype),w=Zn(x,b,\"prod\",e);f=rt({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=rt({inputs:{x:f},backend:e,attrs:{shape:d}})}return u.forEach(d=>e.disposeIntermediateTensorInfo(d)),f}var lV={kernelName:Ms,backendName:\"webgl\",kernelFunc:rat};function nat(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]=XL(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 uV={kernelName:Hp,backendName:\"webgl\",kernelFunc:nat};function oat(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]=YL(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 cV={kernelName:qp,backendName:\"webgl\",kernelFunc:oat};function sat(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 pV={kernelName:Kp,backendName:\"webgl\",kernelFunc:sat};var F1=r=>{let{backend:t,attrs:e}=r,{start:n,stop:o,step:s,dtype:i}=e,a=JL(n,o,s,i);return t.makeTensorInfo([a.length],i,a)},mV={kernelName:ou,backendName:\"webgl\",kernelFunc:F1};var iat=\"return 1.0 / x;\",aat=wt({opSnippet:iat}),fV={kernelName:Ls,backendName:\"webgl\",kernelFunc:aat};var lat=yr+`\n return (x < 0.0) ? 0.0 : x;\n`,uat=`\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`,cat=wt({opSnippet:lat,packedOpSnippet:uat}),dV={kernelName:zs,backendName:\"webgl\",kernelFunc:cat};var pat=yr+`\n return (x < 0.0) ? 0.0 : min(6.0, x);\n`,mat=`\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`,fat=wt({opSnippet:pat,packedOpSnippet:mat}),hV={kernelName:Gs,backendName:\"webgl\",kernelFunc:fat};var iC=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 aC=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 dat(r){let{inputs:t,backend:e,attrs:n}=r,{images:o}=t,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,c=L().getBool(\"WEBGL_PACK_IMAGE_OPERATIONS\")?new aC(o.shape,u,l,s,i):new iC(o.shape,u,l,s,i);return e.runWebGLProgram(c,[o],\"float32\")}var gV={kernelName:Vs,backendName:\"webgl\",kernelFunc:dat};var lC=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 hat(r){let{inputs:t,backend:e,attrs:n}=r,{images:o,dy:s}=t,{alignCorners:i}=n,a=new lC(s.shape,o.shape,i);return e.runWebGLProgram(a,[s],s.dtype)}var xV={kernelName:nl,backendName:\"webgl\",kernelFunc:hat};var uC=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 cC=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 gat(r){let{inputs:t,backend:e,attrs:n}=r,{images:o}=t,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,c=L().getBool(\"WEBGL_PACK_IMAGE_OPERATIONS\")?new cC(o.shape,u,l,s,i):new uC(o.shape,u,l,s,i);return e.runWebGLProgram(c,[o],o.dtype)}var yV={kernelName:Bs,backendName:\"webgl\",kernelFunc:gat};var pC=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 xat(r){let{inputs:t,backend:e,attrs:n}=r,{images:o,dy:s}=t,{alignCorners:i}=n,a=new pC(s.shape,o.shape,i);return e.runWebGLProgram(a,[s],s.dtype)}var bV={kernelName:rl,backendName:\"webgl\",kernelFunc:xat};var mC=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 fC=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=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 yat(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=L().getBool(\"WEBGL_PACK_ARRAY_OPERATIONS\")?new fC(o.shape,a):new mC(o.shape,a);return e.runWebGLProgram(u,[o],o.dtype)}var wV={kernelName:Ws,backendName:\"webgl\",kernelFunc:yat};var dC=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 IV={kernelName:fl,backendName:\"webgl\",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{image:n}=r,{radians:o,fillValue:s,center:i}=t,a=e,u=new dC(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 bat=`\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`,wat=wt({opSnippet:bat}),CV={kernelName:Us,backendName:\"webgl\",kernelFunc:wat};var Iat=\"return inversesqrt(x);\",Cat=wt({opSnippet:Iat,cpuKernelImpl:QL}),vV={kernelName:Hs,backendName:\"webgl\",kernelFunc:Cat};var Zu=class{constructor(t,e,n,o,s,i,a=!0,u=!1){this.variableNames=[\"updates\",\"indices\",\"defaultValue\"],this.outputShape=i;let l=zt(s.length),c=zt(i.length),p=\"\";n===1?p=\"i\":n===2&&(p=\"i, j\");let m=`getIndices(${p})`,f=\"\";o===1?f=\"i\":o===2&&(f=\"i, coords[1]\");let d=`getUpdates(${f})`,h=\"\";u&&(h=\"coords[0], coords[1]\");let g=`getDefaultValue(${h})`,x=e>1?\"strides[j]\":\"strides\";this.userCode=`\n ${l} strides = ${l}(${s});\n\n void main() {\n ${c} 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(${m});\n flattenedIndex += index * ${x};\n }\n if (flattenedIndex == coords[0]) {\n sum += ${d};\n found = true;\n }\n }\n setOutput(mix(${g}, sum, float(found)));\n }\n `}};var hC=class{constructor(t,e,n,o,s,i,a=!0,u=!1){this.variableNames=[\"updates\",\"indices\",\"defaultValue\"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=i;let l=zt(s.length),c=zt(i.length),p=\"\";n===1?p=\"i\":n===2&&(p=\"i, j\");let m=`getIndices(${p})`,f=\"\";o===1?f=\"i\":o===2&&(f=\"i, coords[1]\");let d=`getUpdates(${f})`,h=\"\";u&&(h=\"coords[0], coords[1]\");let g=`getDefaultValue(${h})`,x=e>1?\"strides[j]\":\"strides\",b=e>1?\"strides[j + 1]\":\"strides\";this.userCode=`\n ${l} strides = ${l}(${s});\n\n void main() {\n ${c} coords = getOutputCoords();\n vec4 sum = vec4(0.);\n vec4 found = vec4(0.);\n for (int i = 0; i < ${t}; i+=2) {\n ivec2 flattenedIndex = ivec2(0);\n for (int j = 0; j < ${e}; j+=2) {\n ivec4 index = round(${m});\n flattenedIndex += index.xz * ${x};\n if (j + 1 < ${e}) {\n flattenedIndex += index.yw * ${b};\n }\n }\n if (flattenedIndex[0] == coords[0] || flattenedIndex[1] == coords[0] ||\n flattenedIndex[0] == coords[0] + 1 || flattenedIndex[1] == coords[0] + 1) {\n vec4 updVals = ${d};\n if (flattenedIndex[0] == coords[0]) {\n sum.xy += updVals.xy;\n found.xy = vec2(1.);\n } else if (flattenedIndex[0] == coords[0] + 1) {\n sum.zw += updVals.xy;\n found.zw = vec2(1.);\n }\n if (flattenedIndex[1] == coords[0]) {\n sum.xy += updVals.zw;\n found.xy = vec2(1.);\n } else if (flattenedIndex[1] == coords[0] + 1) {\n sum.zw += updVals.zw;\n found.zw = vec2(1.);\n }\n }\n }\n setOutput(mix(${g}, sum, found));\n }\n `}};function vat(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=rt({inputs:{x:o},backend:e,attrs:{shape:[u,a]}}),d=rt({inputs:{x:s},backend:e,attrs:{shape:[u,l]}}),h=e.makeTensorInfo([],\"float32\",new Float32Array([0])),g;L().getBool(\"WEBGL_PACK\")?g=new hC(u,a,f.shape.length,d.shape.length,c,m):g=new Zu(u,a,f.shape.length,d.shape.length,c,m);let x=e.runWebGLProgram(g,[d,f,h],d.dtype),b=rt({inputs:{x},backend:e,attrs:{shape:i}});return e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(x),e.disposeIntermediateTensorInfo(h),b}var SV={kernelName:ol,backendName:\"webgl\",kernelFunc:vat};var gC=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=L().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 Sat(r){let{inputs:t,backend:e,attrs:n}=r,{sortedSequence:o,values:s}=t,{side:i}=n,a=new gC(o.shape[0],o.shape[1],s.shape[1],i),u=[[o.shape[1]]];return e.runWebGLProgram(a,[o,s],\"int32\",u)}var NV={kernelName:il,backendName:\"webgl\",kernelFunc:Sat};var xC=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 Nat(r){let{inputs:t,backend:e}=r,{condition:n,t:o,e:s}=t,i=new xC(n.shape.length,o.shape,o.shape.length);return e.runWebGLProgram(i,[n,o,s],ur(o.dtype,s.dtype))}var kV={kernelName:Vi,backendName:\"webgl\",kernelFunc:Nat};var kat=`\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`,Tat=wt({opSnippet:kat}),TV={kernelName:qs,backendName:\"webgl\",kernelFunc:Tat};var _at=Bo+`\n return 1.0 / (1.0 + exp(-1.0 * x));\n`,Eat=`\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`,Aat=wt({opSnippet:_at,packedOpSnippet:Eat,cpuKernelImpl:ez}),_V={kernelName:Xs,backendName:\"webgl\",kernelFunc:Aat};var Dat=`\n if (isnan(x)) { return 0.0; }\n return sign(x);\n`,$at=wt({opSnippet:Dat}),EV={kernelName:js,backendName:\"webgl\",kernelFunc:$at};var Rat=Bo+`\n return sin(x);\n`,Fat=`\n vec4 result = sin(x);\n bvec4 isNaN = isnan(x);\n ${Yn}\n return result;\n`,Oat=wt({opSnippet:Rat,packedOpSnippet:Fat}),AV={kernelName:Ks,backendName:\"webgl\",kernelFunc:Oat};var Pat=`\n float e2x = exp(x);\n return (e2x - 1.0 / e2x) / 2.0;\n`,Mat=wt({opSnippet:Pat}),DV={kernelName:al,backendName:\"webgl\",kernelFunc:Mat};var Lat=`\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`,zat=wt({opSnippet:Lat}),$V={kernelName:Ys,backendName:\"webgl\",kernelFunc:zat};var Bat=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},RV={kernelName:Wi,backendName:\"webgl\",kernelFunc:Bat};function Vat(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]=nz(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 FV={kernelName:su,backendName:\"webgl\",kernelFunc:Vat};function Gat(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]=oz(a,n.shape,n.dtype,i,u);return[e.makeTensorInfo(c,n.dtype,l),e.makeTensorInfo([p.length],s.dtype,new Int32Array(p))]}var OV={kernelName:ll,backendName:\"webgl\",kernelFunc:Gat};function Wat(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]=Jw(i,n.shape,n.dtype,a,u,!0);return e.makeTensorInfo(c,n.dtype,l)}var PV={kernelName:iu,backendName:\"webgl\",kernelFunc:Wat};function Uat(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]=Jw(i,n.shape,n.dtype,a,u);return e.makeTensorInfo(c,n.dtype,l)}var MV={kernelName:au,backendName:\"webgl\",kernelFunc:Uat};function Hat(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]),I=tz(x,b,a,m,c,l,u,p,w,f);return e.makeTensorInfo(a,I.dtype,I.values)}let d=new Zu(l,u,o.shape.length,s.shape.length,p,[m,1],f),h=e.runWebGLProgram(d,[s,o,i],s.dtype),g=rt({inputs:{x:h},backend:e,attrs:{shape:a}});return e.disposeIntermediateTensorInfo(h),g}var LV={kernelName:ul,backendName:\"webgl\",kernelFunc:Hat};function qat(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 zV={kernelName:Ui,backendName:\"webgl\",kernelFunc:qat};var BV=\"return sqrt(x);\",Kat=wt({opSnippet:BV,packedOpSnippet:BV,cpuKernelImpl:sz}),VV={kernelName:Zs,backendName:\"webgl\",kernelFunc:Kat};var jat=\"return x * x;\",Xat=wt({opSnippet:jat}),GV={kernelName:lu,backendName:\"webgl\",kernelFunc:Xat};var WV=\"return (a - b) * (a - b);\",Yat=ue({opSnippet:WV,packedOpSnippet:WV}),UV={kernelName:ti,backendName:\"webgl\",kernelFunc:Yat};function Zat(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t;if(o.dtype!==\"string\")throw new Error(\"Input must be of datatype string\");let s=e.readSync(o.dataId),i=S.fromUint8ToStringArray(s),a=iz(i,\"string\",n);return e.makeTensorInfo(o.shape,\"string\",a)}var HV={kernelName:sc,backendName:\"webgl\",kernelFunc:Zat};function Jat({inputs:r,attrs:t,backend:e}){let{x:n}=r,o=yr+`\n return x > 0.0 ? 1.0 : float(${t.alpha});\n `,s=new zr(n.shape,o);return e.runWebGLProgram(s,[n],n.dtype)}var qV={kernelName:yo,backendName:\"webgl\",kernelFunc:Jat};var yC=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 Qat(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:I}=ze.sliceInfo(o.shape,s,i,a,u,l,c,p,m),N;if(h)N=rt({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=ze.computeOutShape(b,w,I),D=Si({inputs:{x:o},backend:e,attrs:{begin:b,size:A}});N=rt({inputs:{x:D},backend:e,attrs:{shape:d}}),e.disposeIntermediateTensorInfo(D)}else if(e.shouldExecuteOnCPU([o])){let D=e.readSync(o.dataId),F=bt(o.shape,o.dtype,D),P=az(f,F,I,b);N=e.makeTensorInfo(d,o.dtype,P.values)}else{let D=new yC(b,I,f);N=e.runWebGLProgram(D,[o],o.dtype)}let E=rt({inputs:{x:N},backend:e,attrs:{shape:d}});return e.disposeIntermediateTensorInfo(N),E}var KV={kernelName:cl,backendName:\"webgl\",kernelFunc:Qat};function tlt(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]=lz(m,f,o,s,i,a,u,l);return[e.makeTensorInfo([d.length],\"string\",d),e.makeTensorInfo(p.shape,\"int32\",h)]}var jV={kernelName:uu,backendName:\"webgl\",kernelFunc:tlt};function elt(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]=uz(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 XV={kernelName:cu,backendName:\"webgl\",kernelFunc:elt};function rlt(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=cz(i,o);return e.makeTensorInfo(s.shape,\"int32\",a)}var YV={kernelName:pu,backendName:\"webgl\",kernelFunc:rlt};var nlt=\"return tan(x);\",olt=wt({opSnippet:nlt}),ZV={kernelName:ri,backendName:\"webgl\",kernelFunc:olt};var slt=`\n float e2x = exp(-2.0 * abs(x));\n return sign(x) * (1.0 - e2x) / (1.0 + e2x);\n`,ilt=wt({opSnippet:slt}),JV={kernelName:ni,backendName:\"webgl\",kernelFunc:ilt};function alt(r){let{inputs:t,backend:e,attrs:n}=r,{tensor:o,indices:s,updates:i}=t,{}=n,{sliceRank:a,numUpdates:u,sliceSize:l,strides:c,outputSize:p}=S.calculateShapes(i,s,o.shape),m=[p/l,l];if(p===0)return e.makeTensorInfo(o.shape,s.dtype);let f=rt({inputs:{x:s},backend:e,attrs:{shape:[u,a]}}),d=rt({inputs:{x:i},backend:e,attrs:{shape:[u,l]}}),h=rt({inputs:{x:o},backend:e,attrs:{shape:m}}),g=new Zu(u,a,f.shape.length,d.shape.length,c,m,!1,!0),x=e.runWebGLProgram(g,[d,f,h],h.dtype),b=rt({inputs:{x},backend:e,attrs:{shape:o.shape}});return e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(h),e.disposeIntermediateTensorInfo(x),b}var QV={kernelName:sl,backendName:\"webgl\",kernelFunc:alt};var bC=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=bt(o.shape,o.dtype,l),p=mz(c,s);return e.makeTensorInfo(p.shape,p.dtype,p.values)}let i=new bC(o.shape,s);return e.runWebGLProgram(i,[o],o.dtype)}var tG={kernelName:so,backendName:\"webgl\",kernelFunc:O1};var wC=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 `}},IC=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 Ip(r,t){t!==null&&r.disposeIntermediateTensorInfo(t)}function eG(r){let t=1;for(;tu){let P=e.readSync(o.dataId),[V,G]=fz(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,Wl({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=rt({inputs:{x:f},attrs:{shape:[h,c]},backend:e});m&&Ip(e,f);let x=eG(s),b=eG(c),w=null,I=()=>w===null?[g,g]:[g,w],N=(P,V,G)=>{let W=I(),q=new wC(G),K=[[c],[w===null?1:0],[Number.NEGATIVE_INFINITY],[P],[V]],X=w;w=e.runWebGLProgram(q,W,\"int32\",K),Ip(e,X)};for(let P=1;P=1;G/=2)N(V,G,[h,b])}for(let P=b;P>x;P/=2){let V=I(),G=new IC([h,P/2]),q=[[c],[w===null?1:0],[x]],H=w;w=e.runWebGLProgram(G,V,\"int32\",q),Ip(e,H);let K=x/2,X=K*2;for(let Z=K;Z>=1;Z/=2)N(X,Z,w.shape)}let E=w;w=Si({inputs:{x:w},backend:e,attrs:{begin:0,size:[h,s]}}),Ip(e,E);let A=_1({inputs:{x:g,indices:w},backend:e,attrs:{axis:1,batchDims:1}});Ip(e,g);let D=l.slice(0,-1);D.push(s),E=w,w=rt({inputs:{x:w},attrs:{shape:D},backend:e}),Ip(e,E);let F=A;return A=rt({inputs:{x:A},attrs:{shape:D},backend:e}),Ip(e,F),[A,w]}var rG={kernelName:pl,backendName:\"webgl\",kernelFunc:ult};var CC=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 clt(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 CC(p,m,i,a,u,g);return e.runWebGLProgram(x,[o,s],\"float32\")}var nG={kernelName:ml,backendName:\"webgl\",kernelFunc:clt};function plt(r){let{inputs:t,attrs:e,backend:n}=r,{axis:o}=e,{x:s}=t;Ii(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}=dz(i,o,s.shape,s.dtype);return[n.makeTensorInfo(u,s.dtype,a),n.makeTensorInfo([l.length],\"int32\",l)]}var oG={kernelName:mu,backendName:\"webgl\",kernelFunc:plt};function mlt(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 sG={kernelName:Hi,backendName:\"webgl\",kernelFunc:mlt};var vC=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 flt(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=Pe({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=rt({inputs:{x:p},backend:e,attrs:{shape:[-1,f]}});u.push(d);let h=mc(o.dtype),g=(I,N,E,A,D)=>{let F=I.shape[0],P=I.shape[1],V=S.segment_util.segOpComputeOptimalWindowSize(P,D),G={windowSize:V,inSize:P,batchSize:F,numSegments:D},W=new vC(G,N),q=e.compileAndRun(W,[I,E],A);if(u.push(q),q.shape[1]===D)return q;let H=F1({backend:e,attrs:{start:0,stop:D,step:1,dtype:\"float32\"}}),K=O1({inputs:{x:H},backend:e,attrs:{reps:[P/V]}});return u.push(H),u.push(K),g(q,N,K,A,D)},x=g(d,\"unsortedSegmentSum\",s,h,i),b=rt({inputs:{x},backend:e,attrs:{shape:m}}),w=b;if(c!=null){u.push(b);let I=S.getUndoAxesPermutation(c);w=Pe({inputs:{x:w},backend:e,attrs:{perm:I}})}return u.forEach(I=>e.disposeIntermediateTensorInfo(I)),w}var iG={kernelName:fu,backendName:\"webgl\",kernelFunc:flt};var dlt=[Wz,Hz,qz,Kz,Xz,Yz,Zz,Jz,e3,r3,n3,o3,s3,i3,a3,l3,u3,c3,p3,m3,f3,h3,g3,x3,I3,v3,S3,Rz,k3,_3,E3,A3,D3,$3,R3,F3,O3,P3,M3,B3,V3,G3,W3,U3,H3,q3,K3,j3,X3,Y3,Z3,J3,Q3,tB,eB,nB,oB,sB,iB,lB,uB,cB,pB,mB,fB,dB,hB,gB,$z,xB,T3,yB,bB,wB,Fz,IB,CB,vB,SB,NB,kB,TB,_B,EB,AB,$B,RB,FB,OB,PB,MB,zB,VB,GB,WB,UB,HB,YB,Mz,ZB,JB,QB,tV,y3,eV,oV,sV,iV,aV,Oz,lV,uV,cV,pV,mV,b3,qB,fV,dV,hV,zz,gV,xV,yV,bV,wV,IV,CV,vV,SV,NV,kV,TV,_V,EV,AV,DV,d3,XB,$V,RV,FV,OV,PV,MV,LV,zV,VV,GV,UV,HV,qV,KV,jV,XV,YV,jB,Vz,ZV,JV,QV,tG,rG,nG,Gz,oG,sG,iG,rV];for(let r of dlt)ic(r);var kt;(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\"})(kt||(kt={}));var Ju;(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\"})(Ju||(Ju={}));var aG;function hlt(r){aG=r.wasm.cwrap(Ki,null,[\"number\",\"array\",\"number\",\"number\",\"array\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function glt(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 D=e.dataIdMap.get(i.dataId);if(D.shape.length!==1)throw new Error(`_FusedMatMul only supports rank-1 bias but got rank ${D.shape.length}.`);d=D.id}let h=a==null?0:e.dataIdMap.get(a.dataId).id,g=Ju[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=Ur.assertAndGetBroadcastShape(o.shape.slice(0,-2),s.shape.slice(0,-2)),I=e.makeOutput([...w,x,b],o.dtype),N=e.dataIdMap.get(I.dataId).id,E=new Uint8Array(new Int32Array(o.shape).buffer),A=new Uint8Array(new Int32Array(s.shape).buffer);return aG(m,E,o.shape.length,f,A,s.shape.length,u,l,g,d,h,p||0,N),I}var lG={kernelName:Ki,backendName:\"wasm\",setupFunc:hlt,kernelFunc:glt};function Ct(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,kt[a.dtype],c),l}return{kernelName:r,backendName:\"wasm\",setupFunc:n,kernelFunc:o}}var uG=Ct(_i);var cG=Ct(Ho);var pG=Ct(qo);function ae(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,kt[l.dtype],b))(),h}return{kernelName:r,backendName:\"wasm\",setupFunc:o,kernelFunc:s}}var xlt=!0,mG=ae(oo,xlt);var fG;function ylt(r){fG=r.wasm.cwrap(Ko,null,[\"array\",\"number\",\"number\",\"number\"])}function blt(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 fG(s,o.length,kt[n.dtype],i),n}var dG={kernelName:Ko,backendName:\"wasm\",setupFunc:ylt,kernelFunc:blt};function Cp(r){let{inputs:{x:t},backend:e}=r;if(t.dtype===\"string\")return sr(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 hG={kernelName:xo,backendName:\"wasm\",kernelFunc:Cp};var gG;function wlt(r){gG=r.wasm.cwrap(io,null,[\"number\",\"array\",\"number\",\"number\",\"number\",\"array\",\"number\"])}function fo(r){let{inputs:t,backend:e,attrs:n}=r,[o,s]=Clt(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 xG={kernelName:io,backendName:\"wasm\",kernelFunc:fo,setupFunc:wlt};function vn(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 OG={kernelName:Bi,backendName:\"wasm\",kernelFunc:mr};var PG;function Rlt(r){PG=r.wasm.cwrap(ts,null,[\"number\",\"array\",\"number\",\"number\",\"array\",\"number\",\"number\",\"number\",\"number\"])}function Flt(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=Ur.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 I=i?[g,c,m]:[g,m,c],N=a?[x,f,p]:[x,p,f],E=mr({inputs:{x:o},backend:e,attrs:{shape:I}}),A=mr({inputs:{x:s},backend:e,attrs:{shape:N}}),D=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),K=new Uint8Array(new Int32Array(A.shape).buffer);return PG(D,H,E.shape.length,F,K,A.shape.length,i,a,q),e.disposeData(E.dataId),e.disposeData(A.dataId),W.shape=w,W}var MG={kernelName:ts,backendName:\"wasm\",setupFunc:Rlt,kernelFunc:Flt};function Vo(r){let{inputs:{x:t},attrs:{begin:e,size:n},backend:o}=r,[s,i]=ze.parseSliceParams(t,e,n),a=ze.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=ze.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=sp(u,s,i,t.shape,t.dtype);return p.stringBytes=d,l}let m=o.typedArrayFromHeap(l),f=t.shape.length;if(f===2)Olt(u,c[0],m,s,i);else if(f===3)Plt(u,c[0],c[1],m,s,i);else if(f===4)Mlt(u,c[0],c[1],c[2],m,s,i);else{let d=sp(u,s,i,t.shape,t.dtype);m.set(d)}return l}function Olt(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=mr({inputs:{x:o},backend:e,attrs:{shape:u}}),d=fo({inputs:{x:f},backend:e,attrs:{perm:l}}),h=mr({inputs:{x:d},backend:e,attrs:{shape:c}}),g=Vo({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 zG={kernelName:$i,backendName:\"wasm\",kernelFunc:Llt};var BG;function zlt(r){BG=r.wasm.cwrap(Da,null,[\"number\",\"number\",\"boolean\",\"number\",\"number\",\"number\"])}function Blt(r){let{backend:t,inputs:e,attrs:n}=r,{x:o,weights:s}=e,{size:i}=n,a=s.shape.reduce((p,m)=>p*m,1)!==0,u=o.shape.length===1?[i]:[o.shape[0],i],l=t.makeOutput(u,s.dtype);function c(p){return t.dataIdMap.get(p.dataId).id}return BG(c(o),i,a,c(s),kt[s.dtype],c(l)),l}var VG={kernelName:Da,backendName:\"wasm\",setupFunc:zlt,kernelFunc:Blt};function Vlt(r){let{inputs:t,backend:e}=r,{s0:n,s1:o}=t,s=e.typedArrayFromHeap(n),i=e.typedArrayFromHeap(o),a=S.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return e.makeOutput([a.length],\"int32\",void 0,new Int32Array(a))}var GG={kernelName:Yl,backendName:\"wasm\",kernelFunc:Vlt};function On(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 WG={kernelName:ho,backendName:\"wasm\",kernelFunc:On};var UG=Ct(es);var HG;function Glt(r){HG=r.wasm.cwrap(go,null,[\"number\",\"number\",\"number\",\"number\"])}function Wlt(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 HG(a,s,i,l),u}var qG={kernelName:go,backendName:\"wasm\",setupFunc:Glt,kernelFunc:Wlt};function P1(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 Cp({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 mr({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=rp(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=fo({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;lW(d,i?1:0,a?1:0,f,h,kt[o.dtype]);let g=m;if(l!==null){let x=S.getUndoAxesPermutation(l);g=fo({inputs:{x:m},attrs:{perm:x},backend:e}),e.disposeData(c.dataId),e.disposeData(m.dataId)}return g}var uW={kernelName:Fa,backendName:\"wasm\",setupFunc:rut,kernelFunc:nut};var cW;function out(r){cW=r.wasm.cwrap(as,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function sut(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=fo({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;cW(d,i?1:0,a?1:0,f,h,kt[o.dtype]);let g=m;if(l!==null){let x=S.getUndoAxesPermutation(l);g=fo({inputs:{x:m},attrs:{perm:x},backend:e}),e.disposeData(c.dataId),e.disposeData(m.dataId)}return g}var pW={kernelName:as,backendName:\"wasm\",setupFunc:out,kernelFunc:sut};var mW;function iut(r){mW=r.wasm.cwrap(\"DenseBincount\",null,[\"number\",\"array\",\"number\",\"number\",\"boolean\",\"number\",\"number\",\"boolean\",\"number\"])}function aut(r){let{backend:t,inputs:e,attrs:n}=r,{x:o,weights:s}=e,{size:i,binaryOutput:a}=n,u=s.shape.reduce((m,f)=>m*f,1)!==0,l=o.shape.length===1?[i]:[o.shape[0],i],c=t.makeOutput(l,s.dtype);function p(m){return t.dataIdMap.get(m.dataId).id}return mW(p(o),new Uint8Array(new Int32Array(o.shape).buffer),o.shape.length,i,u,p(s),kt[s.dtype],a,p(c)),c}var fW={kernelName:Jl,backendName:\"wasm\",setupFunc:iut,kernelFunc:aut};var dW;function lut(r){dW=r.wasm.cwrap(Pa,null,[\"number\",\"number\",\"number\",\"array\",\"number\",\"array\",\"array\",\"number\",\"number\"])}function uut(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),I=new Uint8Array(new Int32Array(y.computeStrides(d)).buffer),N=t.dataIdMap.get(h.dataId).id;return dW(x,s,i===\"NHWC\"?1:0,b,o.shape.length-1,w,I,d.length,N),h}var hW={kernelName:Pa,backendName:\"wasm\",setupFunc:lut,kernelFunc:uut};var gW;function cut(r){gW=r.wasm.cwrap(ls,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function put(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,I=f.dilationHeight,N=f.dilationWidth,E=f.strideHeight,A=f.strideWidth,D=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 gW(i,o.shape[0],o.shape[1],o.shape[2],a,d,h,g,x,b,w,P,I,N,E,A,D,F,G),V}var xW={kernelName:ls,backendName:\"wasm\",setupFunc:cut,kernelFunc:put};var yW;function mut(r){yW=r.wasm.cwrap(\"Diag\",null,[\"number\",\"number\",\"number\",\"number\"])}function fut(r){let{inputs:t,backend:e}=r,{x:n}=t,o=y.sizeFromShape(n.shape),s=e.makeOutput([...n.shape,...n.shape],n.dtype);return yW(e.dataIdMap.get(n.dataId).id,kt[n.dtype],o,e.dataIdMap.get(s.dataId).id),s}var bW={kernelName:Ql,backendName:\"wasm\",setupFunc:mut,kernelFunc:fut};var wW;function dut(r){wW=r.wasm.cwrap(us,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function hut(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dilations:u}=n;if(o.dtype!==s.dtype)throw new Error(`Dilation2D error: x must have the same dtype as filter. Got ${o.dtype} and ${s.dtype}`);let l=S.computeDilation2DInfo(o.shape,s.shape,i,a,\"NHWC\",u),c=e.makeOutput(l.outShape,o.dtype);return wW(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(c.dataId).id,kt[o.dtype],l.batchSize,l.inChannels,l.inHeight,l.inWidth,l.outHeight,l.outWidth,l.strideHeight,l.strideWidth,l.dilationHeight,l.dilationWidth,l.filterHeight,l.filterWidth,l.padInfo.top,l.padInfo.left),c}var IW={kernelName:us,backendName:\"wasm\",setupFunc:dut,kernelFunc:hut};var CW;function gut(r){CW=r.wasm.cwrap(eu,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function xut(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s,dy:i}=t,{strides:a,pad:u,dilations:l}=n;if(o.dtype!==s.dtype||o.dtype!==i.dtype)throw new Error(`Dilation2DBackpropFilter error: x must have the same dtype as filter and dy. Got ${o.dtype}, ${s.dtype}, and ${i.dtype}`);let c=S.computeDilation2DInfo(o.shape,s.shape,a,u,\"NHWC\",l),p=e.makeOutput(s.shape,s.dtype);return CW(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(i.dataId).id,e.dataIdMap.get(p.dataId).id,kt[o.dtype],c.batchSize,c.inChannels,c.inHeight,c.inWidth,c.outHeight,c.outWidth,c.strideHeight,c.strideWidth,c.dilationHeight,c.dilationWidth,c.filterHeight,c.filterWidth,c.padInfo.top,c.padInfo.left),p}var vW={kernelName:eu,backendName:\"wasm\",setupFunc:gut,kernelFunc:xut};var SW;function yut(r){SW=r.wasm.cwrap(tu,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function but(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s,dy:i}=t,{strides:a,pad:u,dilations:l}=n;if(o.dtype!==s.dtype||o.dtype!==i.dtype)throw new Error(`Dilation2DBackpropInput error: x must have the same dtype as filter and dy. Got ${o.dtype}, ${s.dtype}, and ${i.dtype}`);let c=S.computeDilation2DInfo(o.shape,s.shape,a,u,\"NHWC\",l),p=e.makeOutput(o.shape,o.dtype);return SW(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(i.dataId).id,e.dataIdMap.get(p.dataId).id,kt[o.dtype],c.batchSize,c.inChannels,c.inHeight,c.inWidth,c.outHeight,c.outWidth,c.strideHeight,c.strideWidth,c.dilationHeight,c.dilationWidth,c.filterHeight,c.filterWidth,c.padInfo.top,c.padInfo.left),p}var NW={kernelName:tu,backendName:\"wasm\",setupFunc:yut,kernelFunc:but};var kW=Ct(ps);var TW;function wut(r){TW=r.wasm.cwrap(Ma,null,[\"number\",\"number\",\"number\"])}function Iut(r){let{inputs:t,backend:e}=r,{dy:n,y:o}=t,s=e.makeOutput(o.shape,\"float32\"),i=a=>e.dataIdMap.get(a.dataId).id;return TW(i(o),i(n),i(s)),s}var _W={kernelName:Ma,backendName:\"wasm\",setupFunc:wut,kernelFunc:Iut};var Cut=!1,EW=ae(za,Cut,\"bool\");var AW=Ct(ms,\"float32\");function NC(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),mr({inputs:{x:o},backend:n,attrs:{shape:a}})}var DW={kernelName:Fi,backendName:\"wasm\",kernelFunc:NC};var $W=Ct(fs,\"float32\");function L1(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 RW={kernelName:ru,backendName:\"wasm\",kernelFunc:L1};var FW;function vut(r){FW=r.wasm.cwrap(Ba,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function Sut(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 FW(s,a,u,l,c,i),o}var OW={kernelName:Ba,backendName:\"wasm\",kernelFunc:Sut,setupFunc:vut};var PW=Ct(ds);var Nut=!1,MW=ae(hs,Nut);var LW;function kut(r){LW=r.wasm.cwrap(gs,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function Tut(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 LW(c,p,m,f,d,o,g),h}var zW={kernelName:gs,backendName:\"wasm\",setupFunc:kut,kernelFunc:Tut};var BW;function _ut(r){BW=r.wasm.cwrap(ji,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 Eut(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=Ju[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,I=0;if(i!=null){let ot=n.dataIdMap.get(i.dataId);if(ot.shape.length!==1)throw new Error(`FusedConv2D only supports rank-1 bias but got rank ${ot.shape.length}.`);if(ot.shape[0]!==w)throw new Error(`FusedConv2D bias shape (${ot.shape}) does not match the number of output channels (${w})`);I=ot.id}let N=h.filterHeight,E=h.filterWidth,A=h.padInfo.top,D=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,K=h.padInfo.type===\"SAME\"?1:0,X=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 nt=n.makeOutput(h.outShape,\"float32\"),st=n.dataIdMap.get(nt.dataId).id,at=a==null?0:n.dataIdMap.get(a.dataId).id;return BW(x,X,Z,et,b,N,E,I,A,D,F,P,K,V,G,W,q,H,w,g,at,d||0,st),nt}var VW={kernelName:ji,backendName:\"wasm\",setupFunc:_ut,kernelFunc:Eut};var GW;function Aut(r){GW=r.wasm.cwrap(Xi,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 Dut(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=Ju[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,I=0;if(i!=null){let ot=n.dataIdMap.get(i.dataId);if(ot.shape.length!==1)throw new Error(`FusedDepthwiseConv2D only supports rank-1 bias but got rank ${ot.shape.length}.`);if(ot.shape[0]!==w)throw new Error(`FusedDepthwiseConv2D bias shape (${ot.shape}) does not match the number of output channels (${w})`);I=ot.id}let N=h.filterHeight,E=h.filterWidth,A=h.padInfo.top,D=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,K=h.padInfo.type===\"SAME\"?1:0,X=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 nt=n.makeOutput(h.outShape,\"float32\"),st=n.dataIdMap.get(nt.dataId).id,at=a==null?0:n.dataIdMap.get(a.dataId).id;return GW(x,X,Z,et,b,N,E,I,A,D,F,P,K,V,G,W,q,H,w,g,at,d||0,st),nt}var WW={kernelName:Xi,backendName:\"wasm\",setupFunc:Aut,kernelFunc:Dut};var UW;function $ut(r){UW=r.wasm.cwrap(Va,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"array\",\"number\"])}function Rut(r){let{backend:t,inputs:e}=r,{params:n,indices:o}=e,[s,i,a,u]=Dy.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 UW(f,kt[n.dtype],h,i,p,a,g,x),l}var HW={kernelName:Va,backendName:\"wasm\",setupFunc:$ut,kernelFunc:Rut};var qW;function Fut(r){qW=r.wasm.cwrap(\"Gather\",null,[\"number\",\"number\",\"array\",\"number\",\"number\",\"number\",\"array\",\"number\"])}function Out(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=mr({inputs:{x:o},attrs:{shape:[p.batchSize,p.outerSize,p.dimSize,p.sliceSize]},backend:t}),f=y.sizeFromShape(s.shape),d=mr({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),D=new Uint8Array(new Int32Array(y.computeStrides(h)).buffer);return qW(w,kt[o.dtype],A,x,N,p.batchSize,D,E),t.disposeData(m.dataId),t.disposeData(d.dataId),g.shape=p.outputShape,g}var KW={kernelName:Oi,backendName:\"wasm\",setupFunc:Fut,kernelFunc:Out};var Put=!1,jW=ae(Ga,Put,\"bool\");var Mut=!1,XW=ae(xs,Mut,\"bool\");var YW=Ct(ys,\"bool\");var ZW=Ct(bs,\"bool\");var JW=Ct(ws,\"bool\");var QW;function Lut(r){QW=r.wasm.cwrap(Is,null,[\"number\",\"number\",\"number\",\"number\"])}function zut(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;QW(o,kt[t.dtype],e,i)}return s}var tU={kernelName:Is,backendName:\"wasm\",setupFunc:Lut,kernelFunc:zut};var But=!1,eU=ae(Wa,But,\"bool\");var Vut=!1,rU=ae(Ua,Vut,\"bool\");var nU;function Gut(r){nU=r.wasm.cwrap(Ha,null,[\"number\",\"number\",\"number\",\"number\"])}function Wut(r){let{attrs:t,backend:e}=r,{start:n,stop:o,num:s}=t,i=Math.floor(s),a=e.makeOutput([i],\"float32\");return nU(e.dataIdMap.get(a.dataId).id,n,o,i),a}var oU={kernelName:Ha,backendName:\"wasm\",setupFunc:Gut,kernelFunc:Wut};var sU=Ct(Cs);var iU=Ct(vs);var Uut=!1,aU=ae(qa,Uut,\"bool\");var lU=Ct(Ka);var Hut=!1,uU=ae(ja,Hut,\"bool\");var qut=!1,cU=ae(g_,qut,\"bool\");var pU;function Kut(r){pU=r.wasm.cwrap(Ss,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function jut(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{depthRadius:s,bias:i,alpha:a,beta:u}=n;if(o.dtype!==\"float32\")throw new Error(\"LRN error: x must have dtype float32\");let l=e.makeOutput(o.shape,o.dtype);return pU(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(l.dataId).id,o.shape[3],s,i,a,u),l}var mU={kernelName:Ss,backendName:\"wasm\",setupFunc:Kut,kernelFunc:jut};var fU;function Xut(r){fU=r.wasm.cwrap(Xa,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function Yut(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;if(o.dtype!==\"float32\"||s.dtype!==\"float32\"||i.dtype!==\"float32\")throw new Error(\"LRNGrad error: x, y, and dy must have dtype float32\");let p=e.makeOutput(o.shape,o.dtype);return fU(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(i.dataId).id,e.dataIdMap.get(p.dataId).id,i.shape[3],a,u,l,c),p}var dU={kernelName:Xa,backendName:\"wasm\",setupFunc:Xut,kernelFunc:Yut};var hU;function Zut(r){hU=r.wasm.cwrap(Ns,null,[\"number\",\"number\",\"number\",\"number\"])}function Jut(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}=vn(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;hU(u,kt[i.dtype],x,w)}if(f&&t.disposeData(c.dataId),s){let w=S.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var gU={kernelName:Ns,backendName:\"wasm\",setupFunc:Zut,kernelFunc:Jut};var Qut=!1,xU=ae(ks,Qut);var yU;function tct(r){yU=r.wasm.cwrap(Ts,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function ect(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,I=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\"),D=n.dataIdMap.get(A.dataId).id;return yU(s,o.shape[0],o.shape[1],o.shape[2],p,m,f,d,h,g,x,b,w,I,N,E,D),A}var bU={kernelName:Ts,backendName:\"wasm\",setupFunc:tct,kernelFunc:ect};var wU;function rct(r){wU=r.wasm.cwrap(\"MaxPool3D\",null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function nct(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u,dataFormat:l}=n,c=S.computePool3DInfo(o.shape,s,i,1,a,u,l),p=e.makeOutput(c.outShape,o.dtype);return wU(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(p.dataId).id,c.batchSize,c.inChannels,c.inDepth,c.inHeight,c.inWidth,c.outDepth,c.outHeight,c.outWidth,c.strideDepth,c.strideHeight,c.strideWidth,c.dilationDepth,c.dilationHeight,c.dilationWidth,c.effectiveFilterDepth,c.effectiveFilterHeight,c.effectiveFilterWidth,c.padInfo.front,c.padInfo.top,c.padInfo.left),p}var IU={kernelName:Pi,backendName:\"wasm\",setupFunc:rct,kernelFunc:nct};var CU;function oct(r){CU=r.wasm.cwrap(\"MaxPool3DGrad\",null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function sct(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,{filterSize:i,strides:a,pad:u,dimRoundingMode:l}=n,c=S.computePool3DInfo(s.shape,i,a,1,u,l),p=e.makeOutput(s.shape,s.dtype);return CU(e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(p.dataId).id,c.batchSize,c.inChannels,c.inDepth,c.inHeight,c.inWidth,c.outDepth,c.outHeight,c.outWidth,c.strideDepth,c.strideHeight,c.strideWidth,c.dilationDepth,c.dilationHeight,c.dilationWidth,c.effectiveFilterDepth,c.effectiveFilterHeight,c.effectiveFilterWidth,c.padInfo.front,c.padInfo.top,c.padInfo.left),p}var vU={kernelName:nu,backendName:\"wasm\",setupFunc:oct,kernelFunc:sct};var SU;function ict(r){SU=r.wasm.cwrap(_s,null,[\"number, number, number\"])}function act(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}=vn(i,o,t),d=p;if(f){let I=t.dataIdMap.get(c.dataId).id;I!==a&&(l=c,u=I,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=On({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 I=t.dataIdMap.get(w.dataId).id;SU(u,x,I)}if(f&&t.disposeData(c.dataId),s){let I=S.expandShapeToKeepDim(w.shape,m);w.shape=I}return l.dtype!==\"float32\"&&t.disposeData(b.dataId),w}var NU={kernelName:_s,backendName:\"wasm\",setupFunc:ict,kernelFunc:act};var kU;function lct(r){kU=r.wasm.cwrap(Es,null,[\"number\",\"number\",\"number\",\"number\"])}function uct(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}=vn(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;kU(u,kt[i.dtype],x,w)}if(f&&t.disposeData(c.dataId),s){let w=S.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var TU={kernelName:Es,backendName:\"wasm\",setupFunc:lct,kernelFunc:uct};var cct=!1,_U=ae(As,cct);var z1;(function(r){r[r.reflect=0]=\"reflect\",r[r.symmetric=1]=\"symmetric\"})(z1||(z1={}));var EU;function pct(r){EU=r.wasm.cwrap(Ds,null,[\"number\",\"array\",\"number\",\"number\",\"array\",\"array\",\"number\",\"number\"])}function mct(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 EU(i,l,t.shape.length,kt[t.dtype],m,f,z1[o],u),a}var AU={kernelName:Ds,backendName:\"wasm\",kernelFunc:mct,setupFunc:pct};var DU;function fct(r){DU=r.wasm.cwrap(Qs,null,[\"number\",\"number\",\"number\",\"number\"])}function B1(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||DU(o,i,a,u),s}var $U={kernelName:Qs,backendName:\"wasm\",setupFunc:fct,kernelFunc:B1};var RU;function dct(r){RU=r.wasm.cwrap(Za,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function hct(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{numSamples:s,seed:i,normalized:a}=n;if(o.dtype!==\"float32\")throw new Error(`Tensor logits must have dtype float32, got ${o.dtype}`);let u=a?o:B1({inputs:{logits:o},backend:e,attrs:{dim:o.shape.length-1}}),[l,c]=u.shape,p=e.makeOutput([l,s],\"int32\");return RU(e.dataIdMap.get(u.dataId).id,l,c,s,i,e.dataIdMap.get(p.dataId).id),a||e.disposeData(u.dataId),p}var FU={kernelName:Za,backendName:\"wasm\",setupFunc:dct,kernelFunc:hct};var gct=!0,OU=ae($s,gct);var PU=Ct(Mi);function Ud(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 MU;function xct(r){MU=r.wasm.cwrap(Qa,\"number\",[\"number\",\"number\",\"number\",\"number\",\"number\"])}function yct(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=MU(l,c,s,o,i),{pSelectedIndices:m,selectedSize:f,pSelectedScores:d,pValidOutputs:h}=Ud(t,p);return t.wasm._free(d),t.wasm._free(h),t.makeOutput([f],\"int32\",m)}var LU={kernelName:Qa,backendName:\"wasm\",setupFunc:xct,kernelFunc:yct};var zU;function bct(r){zU=r.wasm.cwrap(tl,\"number\",[\"number\",\"number\",\"number\",\"number\",\"number\",\"bool\"])}function wct(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=zU(c,p,s,o,i,a),{pSelectedIndices:f,selectedSize:d,pSelectedScores:h,pValidOutputs:g}=Ud(t,m);t.wasm._free(h);let x=t.makeOutput([d],\"int32\",f),b=t.makeOutput([],\"int32\",g);return[x,b]}var BU={kernelName:tl,backendName:\"wasm\",setupFunc:bct,kernelFunc:wct};var VU;function Ict(r){VU=r.wasm.cwrap(el,\"number\",[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function Cct(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=VU(c,p,s,o,i,a),{pSelectedIndices:f,selectedSize:d,pSelectedScores:h,pValidOutputs:g}=Ud(t,m);t.wasm._free(g);let x=t.makeOutput([d],\"int32\",f),b=t.makeOutput([d],\"float32\",h);return[x,b]}var GU={kernelName:el,backendName:\"wasm\",setupFunc:Ict,kernelFunc:Cct};var vct=!1,WU=ae(Ja,vct,\"bool\");var UU;function Sct(r){UU=r.wasm.cwrap(Rs,null,[\"number\",\"number\",\"number\",\"number\",\"number\"])}function Nct(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 UU(m,i,a,u,c),l}var HU={kernelName:Rs,backendName:\"wasm\",setupFunc:Sct,kernelFunc:Nct};function kct(r){let{inputs:{x:t},backend:e}=r,n=e.makeOutput(t.shape,t.dtype);return e.typedArrayFromHeap(n).fill(1),n}var qU={kernelName:Li,backendName:\"wasm\",kernelFunc:kct};function Tct(r){let{inputs:t,backend:e,attrs:n}=r,{axis:o}=n;if(t.length===1)return NC({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=NC({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=P1({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeData(c.dataId)),l}var KU={kernelName:zi,backendName:\"wasm\",kernelFunc:Tct};var jU;function _ct(r){jU=r.wasm.cwrap(Fs,null,[\"number\",\"array\",\"number\",\"number\",\"array\",\"array\",\"number\",\"number\"])}function Ect(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 L1({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 jU(i,c,t.shape.length,kt[t.dtype],f,d,o,l),a}var kC={kernelName:Fs,backendName:\"wasm\",kernelFunc:Ect,setupFunc:_ct};var Act=!1,XU=ae(Os,Act);var YU;function Dct(r){YU=r.wasm.cwrap(Ps,null,[\"number\",\"number\",\"number\"])}function $ct(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=On({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 YU(a,i,p),u.dtype!==\"float32\"&&e.disposeData(l.dataId),c}var ZU={kernelName:Ps,backendName:\"wasm\",setupFunc:Dct,kernelFunc:$ct};var JU;function Rct(r){JU=r.wasm.cwrap(Ms,null,[\"number\",\"number\",\"number\",\"number\"])}function Fct(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}=vn(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;JU(u,x,kt[b.dtype],w)}if(f&&t.disposeData(c.dataId),s){let w=S.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var QU={kernelName:Ms,backendName:\"wasm\",setupFunc:Rct,kernelFunc:Fct};var Oct=r=>{let{backend:t,attrs:e}=r,{start:n,stop:o,step:s,dtype:i}=e,a=op(n,o,s,i),u=t.makeOutput([a.length],i);return t.typedArrayFromHeap(u).set(a),u},t4={kernelName:ou,backendName:\"wasm\",kernelFunc:Oct};var Pct=!0,e4=ae(cs,Pct);var r4=Ct(Ls);var n4=Ct(zs);var o4=Ct(Gs);var s4;function Mct(r){s4=r.wasm.cwrap(Vs,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function Lct(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=On({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 s4(x,c,p,m,f,u,l,s?1:0,i?1:0,w),g!=null&&t.disposeData(g.dataId),b}var i4={kernelName:Vs,backendName:\"wasm\",setupFunc:Mct,kernelFunc:Lct};var a4;function zct(r){a4=r.wasm.cwrap(nl,null,[\"number\",\"number\",\"number\",\"array\",\"array\",\"boolean\"])}function Bct(r){let{inputs:t,backend:e,attrs:n}=r,{images:o,dy:s}=t,{alignCorners:i}=n,a=e.makeOutput(o.shape,\"float32\"),u=e.dataIdMap.get(o.dataId),l;return u.dtype!==\"float32\"&&(l=On({backend:e,inputs:{x:o},attrs:{dtype:\"float32\"}}),u=e.dataIdMap.get(l.dataId)),a4(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(a.dataId).id,new Uint8Array(new Int32Array(o.shape).buffer),new Uint8Array(new Int32Array(s.shape).buffer),i),l!=null&&e.disposeData(l.dataId),a}var l4={kernelName:nl,backendName:\"wasm\",setupFunc:zct,kernelFunc:Bct};var u4;function Vct(r){u4=r.wasm.cwrap(Bs,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function Gct(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=On({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 u4(b,c,p,m,f,u,l,s?1:0,i?1:0,w),x!=null&&t.disposeData(x.dataId),h}var c4={kernelName:Bs,backendName:\"wasm\",setupFunc:Vct,kernelFunc:Gct};var p4;function Wct(r){p4=r.wasm.cwrap(rl,null,[\"number\",\"number\",\"number\",\"array\",\"array\",\"boolean\"])}function Uct(r){let{inputs:t,backend:e,attrs:n}=r,{images:o,dy:s}=t,{alignCorners:i}=n,a=e.makeOutput(o.shape,\"float32\"),u=e.dataIdMap.get(o.dataId),l;return u.dtype!==\"float32\"&&(l=On({backend:e,inputs:{x:o},attrs:{dtype:\"float32\"}}),u=e.dataIdMap.get(l.dataId)),p4(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(a.dataId).id,new Uint8Array(new Int32Array(o.shape).buffer),new Uint8Array(new Int32Array(s.shape).buffer),i),l!=null&&e.disposeData(l.dataId),a}var m4={kernelName:rl,backendName:\"wasm\",setupFunc:Wct,kernelFunc:Uct};var f4;function Hct(r){f4=r.wasm.cwrap(Ws,null,[\"number\",\"array\",\"number\",\"array\",\"number\",\"number\"])}function qct(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 Cp({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);f4(u,c,i.length,p,o.shape.length,l);let m=mr({inputs:{x:a},attrs:{shape:o.shape},backend:e});return e.disposeData(a.dataId),m}var d4={kernelName:Ws,backendName:\"wasm\",kernelFunc:qct,setupFunc:Hct};var h4;function Kct(r){h4=r.wasm.cwrap(fl,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"array\",\"number\",\"number\"])}function jct(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],I=new Uint8Array(new Int32Array(w).buffer);return h4(l,p,m,f,d,s,h,g,I,w.length,c),u}var g4={kernelName:fl,backendName:\"wasm\",kernelFunc:jct,setupFunc:Kct};var x4=Ct(Us);var y4=Ct(Hs);var b4;function Xct(r){b4=r.wasm.cwrap(ol,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"array\",\"number\",\"number\"])}function Yct(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}=$u.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 b4(d,g,kt[s.dtype],u,l,c,x,m,b),a}var w4={kernelName:ol,backendName:\"wasm\",setupFunc:Xct,kernelFunc:Yct};var I4;function Zct(r){I4=r.wasm.cwrap(il,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"bool\",\"number\"])}function Jct(r){let{inputs:t,backend:e,attrs:n}=r,{sortedSequence:o,values:s}=t,{side:i}=n;if(o.dtype!==s.dtype)throw new Error(`SearchSorted error: sorted_sequence must have the same dtype as values. Got ${o.dtype} and ${s.dtype}`);let a=e.makeOutput(s.shape,\"int32\");function u(l){return e.dataIdMap.get(l.dataId).id}return I4(u(o),u(s),o.shape[0],o.shape[1],s.shape[1],kt[o.dtype],i===\"left\",u(a)),a}var C4={kernelName:il,backendName:\"wasm\",setupFunc:Zct,kernelFunc:Jct};var v4;function Qct(r){v4=r.wasm.cwrap(\"SelectV2\",null,[\"number\",\"number\",\"number\",\"number\",\"number\"])}function tpt(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 v4(i,a,u,f,c),l}var S4={kernelName:Vi,backendName:\"wasm\",kernelFunc:tpt,setupFunc:Qct};var N4=Ct(qs);var k4;function ept(r){k4=r.wasm.cwrap(Xs,null,[\"number\",\"number\"])}function rpt(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||k4(n,s),o}var T4={kernelName:\"Sigmoid\",backendName:\"wasm\",setupFunc:ept,kernelFunc:rpt};var _4=Ct(js);var E4=Ct(Ks);var A4=Ct(Ys);function npt(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;P4(m,kt[o.dtype],o.shape[0],f,d,g,b,t,0);let w=e.readSync(x.dataId),I;switch(w[0]){case 0:{I=S.getSparseSegmentReductionNegativeSegmentIdsErrorMessage();break}case 1:{I=S.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage();break}case 2:I=S.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(w[1],w[2]);break;case 3:I=S.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(w[1],w[2],w[3]);break;default:I=\"\"}if(e.disposeData(x.dataId),I)throw e.disposeData(h.dataId),new Error(I);return h}function lpt(r){return _C(r,!0)}var M4={kernelName:iu,backendName:\"wasm\",setupFunc:TC,kernelFunc:lpt};function upt(r){return _C(r,!1)}var L4={kernelName:au,backendName:\"wasm\",setupFunc:TC,kernelFunc:upt};var z4;function cpt(r){z4=r.wasm.cwrap(ul,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"array\",\"number\",\"number\"])}function ppt(r){let{backend:t,inputs:e,attrs:n}=r,{sparseIndices:o,sparseValues:s,defaultValue:i}=e,{outputShape:a}=n,u=t.makeOutput(a,i.dtype);if(y.sizeFromShape(a)===0)return u;let{sliceRank:l,numUpdates:c,sliceSize:p,strides:m,outputSize:f}=S.calculateShapes(s,o,a),d=t.dataIdMap.get(o.dataId).id,h=t.dataIdMap.get(s.dataId).id,g=t.dataIdMap.get(i.dataId).id,x=new Uint8Array(new Int32Array(m).buffer),b=t.dataIdMap.get(u.dataId).id;return z4(d,h,s.shape.length,g,kt[i.dtype],l,c,p,x,f,b),u}var B4={kernelName:ul,backendName:\"wasm\",setupFunc:cpt,kernelFunc:ppt};function mpt(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=Vo({inputs:{x:o},attrs:{begin:l,size:m},backend:n});return l[a]+=p,f})}var V4={kernelName:Ui,backendName:\"wasm\",kernelFunc:mpt};var G4=Ct(Zs);var W4=Ct(lu);var fpt=!0,U4=ae(ti,fpt);var H4;function dpt(r){H4=r.wasm.cwrap(yo,null,[\"number\",\"number\",\"number\",\"number\"])}function hpt(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 H4(i,o,kt[s.dtype],u),a}var q4={kernelName:yo,backendName:\"wasm\",setupFunc:dpt,kernelFunc:hpt};var K4;function gpt(r){K4=r.wasm.cwrap(cl,null,[\"number\",\"array\",\"number\",\"array\",\"array\",\"array\",\"array\",\"array\",\"number\",\"number\"])}function xpt(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:I}=ze.sliceInfo(o.shape,s,i,a,u,l,c,p,m),N;if(h)N=mr({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=ze.computeOutShape(b,w,I),A=Vo({inputs:{x:o},backend:t,attrs:{begin:b,size:E}});N=mr({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,D=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(I).buffer),G=new Uint8Array(new Int32Array(f).buffer),W=new Uint8Array(new Int32Array(y.computeStrides(f)).buffer),q=t.dataIdMap.get(E.dataId).id;K4(A,D,o.shape.length,F,P,V,G,W,f.length,q),N=mr({inputs:{x:E},backend:t,attrs:{shape:d}}),t.disposeData(E.dataId)}return N}var j4={kernelName:cl,backendName:\"wasm\",setupFunc:gpt,kernelFunc:xpt};function ypt(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]=ip(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 X4={kernelName:uu,backendName:\"wasm\",kernelFunc:ypt};function bpt(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]=ap(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 Y4={kernelName:cu,backendName:\"wasm\",kernelFunc:bpt};function wpt(r){let{backend:t,inputs:e,attrs:n}=r,{input:o}=e,{numBuckets:s}=n,i=t.readSync(o.dataId),a=lp(i,s),u=t.makeOutput(o.shape,\"int32\");return t.typedArrayFromHeap(u).set(a),u}var Z4={kernelName:pu,backendName:\"wasm\",kernelFunc:wpt};var Ipt=!0,J4=ae(ei,Ipt);var Q4;function Cpt(r){Q4=r.wasm.cwrap(Js,null,[\"number\",\"number\",\"number\",\"number\"])}function vpt(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}=vn(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;Q4(u,x,kt[b.dtype],w)}if(f&&t.disposeData(c.dataId),s){let w=S.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var tH={kernelName:Js,backendName:\"wasm\",setupFunc:Cpt,kernelFunc:vpt};var eH=Ct(ri);var rH=Ct(ni);var nH;function Spt(r){nH=r.wasm.cwrap(sl,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"array\",\"number\",\"number\",\"number\"])}function Npt(r){let{backend:t,inputs:e,attrs:n}=r,{tensor:o,indices:s,updates:i}=e,{}=n,a=t.makeOutput(o.shape,o.dtype);if(y.sizeFromShape(o.shape)===0)return a;let{sliceRank:u,numUpdates:l,sliceSize:c,strides:p,outputSize:m}=$u.calculateShapes(i,s,o.shape),d=t.dataIdMap.get(s.dataId).id,g=t.dataIdMap.get(i.dataId).id,b=t.dataIdMap.get(o.dataId).id,w=new Uint8Array(new Int32Array(p).buffer),I=t.dataIdMap.get(a.dataId).id;return nH(d,g,kt[i.dtype],u,l,c,w,m,I,b),a}var oH={kernelName:sl,backendName:\"wasm\",setupFunc:Spt,kernelFunc:Npt};var sH;function kpt(r){sH=r.wasm.cwrap(so,null,[\"number\",\"array\",\"number\",\"array\",\"number\",\"number\"])}function Tpt(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 aH(i,a,n.shape.length,kt[n.dtype],o,s,c,m),[l,p]},lH={kernelName:pl,backendName:\"wasm\",setupFunc:_pt,kernelFunc:Ept};var uH;function Apt(r){uH=r.wasm.cwrap(ml,null,[\"number\",\"number\",\"bool\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"array\",\"number\",\"array\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function Dpt(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),I=t.dataIdMap.get(w.dataId).id,E=t.dataIdMap.get(o.dataId).id,D=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 uH(E,D,s.shape[0]>1,c,d,h,f,m,p,x,o.shape.length-1,b,g.length-1,F,P,u,I),w}var cH={kernelName:ml,backendName:\"wasm\",setupFunc:Apt,kernelFunc:Dpt};function $pt(r){let{inputs:t,attrs:e,backend:n}=r,{axis:o}=e,{x:s}=t,{outputValues:i,outputShape:a,indices:u}=up(n.readSync(s.dataId),o,s.shape,s.dtype);return[n.makeOutput(a,s.dtype,void 0,i),n.makeOutput([u.length],\"int32\",void 0,u)]}var pH={kernelName:mu,backendName:\"wasm\",kernelFunc:$pt};function Rpt(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 mH={kernelName:Hi,backendName:\"wasm\",kernelFunc:Rpt};function Fpt(r){let{inputs:{x:t},backend:e}=r,n=e.makeOutput(t.shape,t.dtype);return e.typedArrayFromHeap(n).fill(0),n}var fH={kernelName:qi,backendName:\"wasm\",kernelFunc:Fpt};var Opt=[lG,uG,cG,pG,mG,dG,bG,IG,CG,vG,SG,NG,kG,TG,_G,AG,$G,FG,MG,zG,VG,GG,WG,UG,qG,KG,XG,ZG,QG,eW,nW,oW,sW,aW,uW,pW,fW,hW,xW,bW,IW,vW,NW,kW,_W,EW,AW,DW,$W,RW,OW,PW,MW,zW,VW,WW,HW,KW,jW,XW,hG,YW,ZW,JW,tU,eU,rU,oU,iU,sU,aU,lU,uU,cU,mU,dU,gU,xU,bU,IU,vU,NU,TU,_U,AU,FU,OU,PU,LU,BU,GU,WU,HU,qU,KU,kC,XU,ZU,QU,t4,e4,r4,n4,o4,OG,i4,l4,c4,m4,d4,g4,x4,y4,w4,C4,S4,N4,T4,_4,E4,LG,$U,A4,D4,R4,O4,M4,L4,B4,V4,G4,W4,U4,q4,j4,X4,Y4,Z4,J4,tH,eH,rH,oH,iH,lH,cH,xG,pH,mH,fH];for(let r of Opt)ic(r);var V1=L();V1.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}});V1.registerFlag(\"WASM_HAS_MULTITHREAD_SUPPORT\",async()=>{if(V1.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 j1=Kl(xH()),vH=Kl(bH()),X1=Kl(wH());var IH=j1.default||j1,Ppt=X1.default||X1,Ig=class extends Wo{constructor(t){super(),this.wasm=t,this.dataIdNextNumber=1,this.wasm.tfjs.initWithThreadsCount(NH),K1=this.wasm.tfjs.getThreadsCount(),this.dataIdMap=new Ta(this,Vn())}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)>>>0;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 Lpt(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,o){let s;if(n==null)s=this.write(o!=null?o:null,t,e);else{let i=this.dataIdNextNumber++;s={id:i},this.dataIdMap.set(s,{id:i,memoryOffset:n,shape:t,dtype:e,refCount:1});let a=y.sizeFromShape(t);this.wasm.tfjs.registerTensor(i,a,n)}return{dataId:s,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 Mpt(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 CH(r,t,e){if(DC!=null)return DC;let n=\"tfjs-backend-wasm.wasm\";return r&&t?n=\"tfjs-backend-wasm-threaded-simd.wasm\":r&&(n=\"tfjs-backend-wasm-simd.wasm\"),bg!=null&&bg[n]!=null?bg[n]:e+n}async function SH(){let[r,t]=await Promise.all([L().getAsync(\"WASM_HAS_SIMD_SUPPORT\"),L().getAsync(\"WASM_HAS_MULTITHREAD_SUPPORT\")]);return new Promise((e,n)=>{let o={};o.locateFile=(a,u)=>{if(a.endsWith(\".worker.js\")){let l=vH.wasmWorkerContents.replace(/\\n/g,\"\\\\n\"),c=new Blob([l],{type:\"application/javascript\"});return URL.createObjectURL(c)}return a.endsWith(\".wasm\")?CH(r,t,yg!=null?yg:u):u+a},Y1&&(o.instantiateWasm=Mpt(CH(r,t,yg!=null?yg:\"\")));let s=!1;o.onAbort=()=>{if(s||wg)return;wg=!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&&DC==null?(o.mainScriptUrlOrBlob=new Blob([\"var WasmBackendModuleThreadedSimd = \"+IH.toString()],{type:\"text/javascript\"}),i=IH(o)):i=Ppt(o),i.then(a=>{s=!0,wg=!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 Lpt(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 zpt=[\"tfjs-backend-wasm.wasm\",\"tfjs-backend-wasm-simd.wasm\",\"tfjs-backend-wasm-threaded-simd.wasm\"],DC=null,yg=null,bg={},wg=!1,Y1=!1;function Bpt(r,t=!1){if(B0(\"setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release.\"),wg)throw new Error(\"The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`\");DC=r,Y1=t}function Vpt(r,t=!1){if(wg)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\")yg=r;else{bg=r;let e=zpt.filter(n=>bg[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.`)}Y1=t}var NH=-1,K1=-1;function Gpt(r){NH=r}function Wpt(){if(K1===-1)throw new Error(\"WASM backend not initialized.\");return K1}var Upt=\"4.5.0\";var Hpt=2;sm(\"wasm\",async()=>{let{wasm:r}=await SH();return new Ig(r)},Hpt);var kH=\"4.5.0\",qpt=\"4.5.0\",Kpt=\"4.5.0\",jpt=\"4.5.0\",Xpt=\"4.5.0\",Ypt={tfjs:kH,\"tfjs-core\":kH,\"tfjs-converter\":qpt,\"tfjs-backend-cpu\":Kpt,\"tfjs-backend-webgl\":jpt,\"tfjs-backend-wasm\":Xpt};export{_i as Abs,Ho as Acos,qo as Acosh,Tc as AdadeltaOptimizer,_c as AdagradOptimizer,Ec as AdamOptimizer,Ac as AdamaxOptimizer,oo as Add,Ko as AddN,Ea as All,Aa as Any,Ei as ArgMax,Ai as ArgMin,jo as Asin,Xo as Asinh,Yo as Atan,Jo as Atan2,Zo as Atanh,Qo as AvgPool,Di as AvgPool3D,Xl as AvgPool3DGrad,Fp as AvgPoolGrad,Ig as BackendWasm,ts as BatchMatMul,$i as BatchToSpaceND,Da as Bincount,nh as BitwiseAnd,Yl as BroadcastArgs,h_ as BroadcastTo,Mb as Callback,Yy as CallbackList,ho as Cast,es as Ceil,go as ClipByValue,Op as Complex,Zl as ComplexAbs,Ri as Concat,rs as Conv2D,Pp as Conv2DBackpropFilter,ns as Conv2DBackpropInput,os as Conv3D,$a as Conv3DBackpropFilterV2,Ra as Conv3DBackpropInputV2,ss as Cos,is as Cosh,Oa as CropAndResize,Fa as Cumprod,as as Cumsum,Jy as CustomCallback,Ta as DataStorage,Jl as DenseBincount,Pa as DepthToSpace,ls as DepthwiseConv2dNative,Mp as DepthwiseConv2dNativeBackpropFilter,Lp as DepthwiseConv2dNativeBackpropInput,Ql as Diag,us as Dilation2D,eu as Dilation2DBackpropFilter,tu as Dilation2DBackpropInput,u0 as ENV,Lb as EarlyStopping,zp as Einsum,ps as Elu,Ma as EluGrad,eh as Environment,za as Equal,La as Erf,ms as Exp,Fi as ExpandDims,fs as Expm1,Bp as FFT,ru as Fill,Ba as FlipLeftRight,ds as Floor,hs as FloorDiv,oh as FromPixels,gs as FusedBatchNorm,ji as FusedConv2D,Xi as FusedDepthwiseConv2D,hp as GPGPUContext,Va as GatherNd,Oi as GatherV2,jh as GraphModel,Ga as Greater,xs as GreaterEqual,Zy as History,Vp as IFFT,xo as Identity,Gp as Imag,Ie as InputSpec,ys as IsFinite,bs as IsInf,ws as IsNan,Wo as KernelBackend,Ss as LRN,Xa as LRNGrad,Dh as LayerVariable,qn as LayersModel,Is as LeakyRelu,Wa as Less,Ua as LessEqual,Ha as LinSpace,Cs as Log,vs as Log1p,x_ as LogSoftmax,qa as LogicalAnd,Ka as LogicalNot,ja as LogicalOr,g_ as LogicalXor,rmt as LowerBound,Uu as MathBackendCPU,ju as MathBackendWebGL,nmt as MatrixBandPart,Ns as Max,Ts as MaxPool,Pi as MaxPool3D,nu as MaxPool3DGrad,Wp as MaxPoolGrad,Up as MaxPoolWithArgmax,ks as Maximum,_s as Mean,Es as Min,As as Minimum,Ds as MirrorPad,Ya as Mod,Dc as MomentumOptimizer,Za as Multinomial,$s as Multiply,Mi as Neg,Qa as NonMaxSuppressionV3,tl as NonMaxSuppressionV4,el as NonMaxSuppressionV5,Ja as NotEqual,A0 as OP_SCOPE_SUFFIX,Rs as OneHot,Li as OnesLike,qr as Optimizer,Nh as OptimizerConstructors,zi as Pack,Fs as PadV2,omt as Pool,Os as Pow,Ps as Prelu,Ms as Prod,$c as RMSPropOptimizer,An as RNN,Hp as RaggedGather,qp as RaggedRange,Kp as RaggedTensorToTensor,ou as Range,w0 as Rank,jp as Real,cs as RealDiv,Ls as Reciprocal,Ze as Reduction,zs as Relu,Gs as Relu6,Bi as Reshape,Vs as ResizeBilinear,nl as ResizeBilinearGrad,Bs as ResizeNearestNeighbor,rl as ResizeNearestNeighborGrad,Ws as Reverse,fl as RotateWithOffset,Us as Round,Hs as Rsqrt,Cl as SGDOptimizer,ol as ScatterNd,il as SearchSorted,Vi as Select,qs as Selu,xa as Sequential,Xs as Sigmoid,js as Sign,Ks as Sin,al as Sinh,Gi as Slice,Qs as Softmax,Ys as Softplus,Wi as SpaceToBatchND,su as SparseFillEmptyRows,ll as SparseReshape,iu as SparseSegmentMean,au as SparseSegmentSum,ul as SparseToDense,Ui as SplitV,Zs as Sqrt,lu as Square,ti as SquaredDifference,sc as StaticRegexReplace,yo as Step,cl as StridedSlice,uu as StringNGrams,cu as StringSplit,pu as StringToHashBucketFast,ei as Sub,Js as Sum,rn as SymbolicTensor,ri as Tan,ni as Tanh,Pt as Tensor,le as TensorBuffer,sl as TensorScatterUpdate,so as Tile,pl as TopK,ml as Transform,io as Transpose,mu as Unique,Hi as Unpack,fu as UnsortedSegmentSum,smt as UpperBound,dl as Variable,qi as ZerosLike,Ki as _FusedMatMul,Ee as abs,dx as acos,hx as acosh,Y as add,fE as addN,am as all,dc as any,ta as argMax,gx as argMin,xx as asin,yx as asinh,bx as atan,wx as atan2,Ix as atanh,bu as avgPool,Cx as avgPool3d,mE as backend,S as backend_util,gE as basicLSTMCell,na as batchNorm,vx as batchNorm2d,Sx as batchNorm3d,Nx as batchNorm4d,wu as batchToSpaceND,kx as bincount,yE as bitwiseAnd,c5 as booleanMaskAsync,bE as broadcastArgs,oa as broadcastTo,Ur as broadcast_util,Ay as browser,bt as buffer,T9 as callbacks,Q as cast,Tx as ceil,vr as clipByValue,un as clone,Nn as complex,se as concat,_x as concat1d,Ex as concat2d,Ax as concat3d,Dx as concat4d,nR as constraints,um as conv1d,kn as conv2d,pm as conv2dTranspose,$x as conv3d,Fx as conv3dTranspose,mmt as copyRegisteredKernels,Iu as cos,mm as cosh,Ih as cosineWindow,gc as cumprod,fm as cumsum,mn as customGrad,VF as data,gh as denseBincount,B0 as deprecationWarn,Ox as depthToSpace,sa as depthwiseConv2d,D9 as deregisterOp,xu as device_util,wE as diag,Px as dilation2d,vdt as disableDeprecationWarnings,Tt as dispose,Sdt as disposeVariables,ct as div,Mx as divNoNan,Lx as dot,nN as dropout,CE as einsum,ia as elu,Cdt as enableDebugMode,Idt as enableProdMode,oN as enclosingPowerOfTwo,Vn as engine,vE as ensureShape,L as env,Rr as equal,zx as erf,Bx as euclideanNorm,ir as exp,ar as expandDims,Vx as expm1,xc as eye,Au as fft,vo as fill,Adt as findBackend,Ddt as findBackendFactory,aa as floor,im as floorDiv,Dz as forceHalfFloat,Ru as fused,la as gather,w5 as gatherND,Dy as gather_util,_dt as getBackend,m0 as getGradient,ih as getKernel,Zg as getKernelsForBackend,Wpt as getThreadsCount,f1 as gpgpu_util,f6 as grad,d6 as grads,Fe as greater,pn as greaterEqual,Il as ifft,Cu as imag,dn as image,v5 as inTopKAsync,oR as initializers,BN as input,Mr as io,km as irfft,Gx as isFinite,Wx as isInf,Ux as isNaN,$e as keep,Kr as kernel_impls,LR as layers,vu as leakyRelu,bl as less,Gn as lessEqual,iN as linalg,kE as linspace,TQ as loadGraphModel,_Q as loadGraphModelSync,SR as loadLayersModel,Hx as localResponseNormalization,Nr as log,Su as log1p,jx as logSigmoid,dm as logSoftmax,hm as logSumExp,Or as logicalAnd,Nu as logicalNot,gm as logicalOr,Xx as logicalXor,S8 as losses,TE as lowerBound,Bt as matMul,y2 as math,Sr as max,ku as maxPool,Zx as maxPool3d,_E as maxPoolWithArgmax,Tn as maximum,ke as mean,fh as memory,EE as meshgrid,zR as metrics,xl as min,uo as minimum,Jx as mirrorPad,Qx as mod,T7 as model,BR as models,yc as moments,f5 as movingAverage,$ as mul,AE as multiRNNCell,DE as multinomial,Ut as neg,kh as nextFrame,yl as norm,li as notEqual,ua as oneHot,dr as ones,Ir as onesLike,k as op,$E as outerProduct,fn as pad,RE as pad1d,FE as pad2d,OE as pad3d,PE as pad4d,ty as pool,cn as pow,_u as prelu,fx as print,ey as prod,Ndt as profile,ME as raggedGather,LE as raggedRange,zE as raggedTensorToTensor,BE as rand,aA as randomGamma,Ic as randomNormal,lA as randomStandardNormal,Wn as randomUniform,uA as randomUniformInt,ca as range,Tdt as ready,wl as real,ay as reciprocal,sm as registerBackend,E7 as registerCallbackConstructor,b_ as registerGradient,ic as registerKernel,A9 as registerOp,VR as regularizers,Pr as relu,xm as relu6,Edt as removeBackend,R as reshape,hr as reverse,cA as reverse1d,pA as reverse2d,mA as reverse3d,fA as reverse4d,Du as rfft,ym as round,bm as rsqrt,ft as scalar,h5 as scatterND,$u as scatter_util,yh as searchSorted,wm as selu,Im as separableConv2d,_7 as sequential,J as serialization,bK as setBackend,$dt as setPlatform,Gpt as setThreadsCount,Bpt as setWasmPath,Vpt as setWasmPaths,TT as setWebGLContext,dA as setdiff1dAsync,Nw as shared,tn as sigmoid,ly as sign,v8 as signal,Cm as sin,vm as sinh,Ot as slice,Sm as slice1d,wh as slice2d,Nm as slice3d,Cc as slice4d,ze as slice_util,Eu as softmax,ai as softplus,Tu as spaceToBatchND,N8 as sparse,y5 as sparseToDense,C8 as spectral,gr as split,Ne as sqrt,Wt as square,Tm as squaredDifference,Un as squeeze,qe as stack,No as step,uy as stridedSlice,k8 as string,lt as sub,pt as sum,mc as sumOutType,cy as tan,ra as tanh,sr as tensor,Ke as tensor1d,ui as tensor2d,py as tensor3d,hA as tensor4d,gA as tensor5d,xA as tensor6d,bA as tensorScatterUpdate,Co as tensor_util,iA as test_util,B as tidy,Fr as tile,kdt as time,my as topk,Fc as train,Vt as transpose,Em as truncatedNormal,fy as unique,pmt as unregisterGradient,cmt as unregisterKernel,Am as unsortedSegmentSum,xr as unstack,ur as upcastType,wA as upperBound,y as util,h6 as valueAndGrad,g6 as valueAndGrads,dy as variable,qx as variableGrads,Ypt as version,IF as version_converter,A2 as version_core,TO as version_cpu,tf as version_layers,Upt as version_wasm,Az as version_webgl,aDe as webgl,Td as webgl_util,be as where,gy as whereAsync,Te as zeros,vt 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", "{\n \"name\": \"@vladmandic/face-api\",\n \"version\": \"1.7.11\",\n \"description\": \"FaceAPI: AI-powered Face Detection & Rotation Tracking, Face Description & Recognition, Age & Gender & Emotion Prediction for Browser and NodeJS using TensorFlow/JS\",\n \"sideEffects\": false,\n \"main\": \"dist/face-api.node.js\",\n \"module\": \"dist/face-api.esm.js\",\n \"browser\": \"dist/face-api.esm.js\",\n \"types\": \"types/face-api.d.ts\",\n \"author\": \"Vladimir Mandic \",\n \"bugs\": {\n \"url\": \"https://github.com/vladmandic/face-api/issues\"\n },\n \"homepage\": \"https://vladmandic.github.io/face-api/demo/webcam.html\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=14.0.0\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/vladmandic/face-api.git\"\n },\n \"scripts\": {\n \"start\": \"node --no-warnings demo/node.js\",\n \"dev\": \"build --profile development\",\n \"build\": \"node build.js\",\n \"lint\": \"eslint src/ demo/\",\n \"test\": \"node --trace-warnings test/test-node.js\",\n \"scan\": \"npx auditjs@latest ossi --dev --quiet\"\n },\n \"keywords\": [\n \"face-api\",\n \"faceapi\",\n \"face-detection\",\n \"age-gender\",\n \"emotion-detection\",\n \"face-recognition\",\n \"face\",\n \"face-description\",\n \"tensorflow\",\n \"tensorflowjs\",\n \"tfjs\"\n ],\n \"devDependencies\": {\n \"@canvas/image\": \"^1.0.1\",\n \"@microsoft/api-extractor\": \"^7.34.8\",\n \"@tensorflow/tfjs\": \"^4.5.0\",\n \"@tensorflow/tfjs-backend-cpu\": \"^4.5.0\",\n \"@tensorflow/tfjs-backend-wasm\": \"^4.5.0\",\n \"@tensorflow/tfjs-backend-webgl\": \"^4.5.0\",\n \"@tensorflow/tfjs-backend-webgpu\": \"0.0.1-alpha.20\",\n \"@tensorflow/tfjs-converter\": \"^4.5.0\",\n \"@tensorflow/tfjs-core\": \"^4.5.0\",\n \"@tensorflow/tfjs-data\": \"^4.5.0\",\n \"@tensorflow/tfjs-layers\": \"^4.5.0\",\n \"@tensorflow/tfjs-node\": \"^4.5.0\",\n \"@tensorflow/tfjs-node-gpu\": \"^4.5.0\",\n \"@types/node\": \"^20.1.0\",\n \"@types/offscreencanvas\": \"^2019.7.0\",\n \"@typescript-eslint/eslint-plugin\": \"^5.59.2\",\n \"@typescript-eslint/parser\": \"^5.59.2\",\n \"@vladmandic/build\": \"^0.9.2\",\n \"@vladmandic/pilogger\": \"^0.4.8\",\n \"esbuild\": \"^0.17.18\",\n \"eslint\": \"^8.40.0\",\n \"eslint-config-airbnb-base\": \"^15.0.0\",\n \"eslint-plugin-import\": \"^2.27.5\",\n \"eslint-plugin-json\": \"^3.1.0\",\n \"eslint-plugin-node\": \"^11.1.0\",\n \"eslint-plugin-promise\": \"^6.1.1\",\n \"rimraf\": \"^5.0.0\",\n \"seedrandom\": \"^3.0.5\",\n \"tslib\": \"^2.5.0\",\n \"typedoc\": \"^0.24.7\",\n \"typescript\": \"5.0.4\"\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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Aa,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,CA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", - "names": ["tfjs_esm_exports", "__export", "_i", "Ho", "qo", "Tc", "_c", "Ec", "Ac", "oo", "Ko", "Ea", "Aa", "Ei", "Ai", "jo", "Xo", "Yo", "Jo", "Zo", "Qo", "Di", "Xl", "Fp", "Ig", "ts", "$i", "Da", "nh", "Yl", "h_", "Mb", "Yy", "ho", "es", "go", "Op", "Zl", "Ri", "rs", "Pp", "ns", "os", "$a", "Ra", "ss", "is", "Oa", "Fa", "as", "Jy", "Ta", "Jl", "Pa", "ls", "Mp", "Lp", "Ql", "us", "eu", "tu", "u0", "Lb", "zp", "ps", "Ma", "eh", "za", "La", "ms", "Fi", "fs", "Bp", "ru", "Ba", "ds", "hs", "oh", "gs", "ji", "Xi", "hp", "Va", "Oi", "jh", "Ga", "xs", "Zy", "Vp", "xo", "Gp", "Ie", "ys", "bs", "ws", "Wo", "Ss", "Xa", "Dh", "qn", "Is", "Wa", "Ua", "Ha", "Cs", "vs", "x_", "qa", "Ka", "ja", "g_", "rmt", "Uu", "ju", "nmt", "Ns", "Ts", "Pi", "nu", "Wp", "Up", "ks", "_s", "Es", "As", "Ds", "Ya", "Dc", "Za", "$s", "Mi", "Qa", "tl", "el", "Ja", "A0", "Rs", "Li", "qr", "Nh", "zi", "Fs", "omt", "Os", "Ps", "Ms", "$c", "An", "Hp", "qp", "Kp", "ou", "w0", "jp", "cs", "Ls", "Ze", "zs", "Gs", "Bi", "Vs", "nl", "Bs", "rl", "Ws", "fl", "Us", "Hs", "Cl", "ol", "il", "Vi", "qs", "xa", "Xs", "js", "Ks", "al", "Gi", "Qs", "Ys", "Wi", "su", "ll", "iu", "au", "ul", "Ui", "Zs", "lu", "ti", "sc", "yo", "cl", "uu", "cu", "pu", "ei", "Js", "rn", "ri", "ni", "Pt", "le", "sl", "so", "pl", "ml", "io", "mu", "Hi", "fu", "smt", "dl", "qi", "Ki", "Ee", "dx", "hx", "Y", "fE", "am", "dc", "ta", "gx", "xx", "yx", "bx", "wx", "Ix", "bu", "Cx", "mE", "S", "gE", "na", "vx", "Sx", "Nx", "wu", "kx", "yE", "c5", "bE", "oa", "Ur", "Ay", "bt", "T9", "Q", "Tx", "vr", "un", "Nn", "se", "_x", "Ex", "Ax", "Dx", "nR", "um", "kn", "pm", "$x", "Fx", "mmt", "Iu", "mm", "Ih", "fm", "mn", "VF", "gh", "B0", "Ox", "sa", "D9", "xu", "wE", "Px", "vdt", "Tt", "Sdt", "ct", "Mx", "Lx", "nN", "CE", "ia", "Cdt", "Idt", "oN", "Vn", "vE", "L", "Rr", "zx", "Bx", "ir", "ar", "Vx", "xc", "Au", "vo", "Adt", "Ddt", "aa", "im", "Dz", "Ru", "la", "w5", "Dy", "_dt", "m0", "ih", "Zg", "Wpt", "f1", "f6", "d6", "Fe", "pn", "Il", "Cu", "dn", "v5", "oR", "BN", "Mr", "km", "Gx", "Wx", "Ux", "$e", "Kr", "LR", "vu", "bl", "Gn", "iN", "kE", "TQ", "_Q", "SR", "Hx", "Nr", "Su", "jx", "dm", "hm", "Or", "Nu", "gm", "Xx", "S8", "TE", "Bt", "y2", "Sr", "ku", "Zx", "_E", "Tn", "ke", "fh", "EE", "zR", "xl", "uo", "Jx", "Qx", "T7", "BR", "yc", "f5", "$", "AE", "DE", "Ut", "kh", "yl", "li", "ua", "dr", "Ir", "k", "$E", "fn", "RE", "FE", "OE", "PE", "ty", "cn", "_u", "fx", "ey", "Ndt", "ME", "LE", "zE", "BE", "aA", "Ic", "lA", "Wn", "uA", "ca", "Tdt", "wl", "ay", "sm", "E7", "b_", "ic", "A9", "VR", "Pr", "xm", "Edt", "R", "hr", "cA", "pA", "mA", "fA", "Du", "ym", "bm", "ft", "h5", "$u", "yh", "wm", "Im", "_7", "J", "bK", "$dt", "Gpt", "Bpt", "Vpt", "TT", "dA", "Nw", "tn", "ly", "v8", "Cm", "vm", "Ot", "Sm", "wh", "Nm", "Cc", "ze", "Eu", "ai", "Tu", "N8", "y5", "C8", "gr", "Ne", "Wt", "Tm", "Un", "qe", "No", "uy", "k8", "lt", "pt", "mc", "cy", "ra", "sr", "Ke", "ui", "py", "hA", "gA", "xA", "bA", "Co", "iA", "B", "Fr", "kdt", "my", "Fc", "Vt", "Em", "fy", "pmt", "cmt", "Am", "xr", "ur", "wA", "y", "h6", "g6", "dy", "qx", "Ypt", "IF", "A2", "TO", "tf", "Upt", "Az", "aDe", "Td", "be", "gy", "Te", "vt", "iq", "r0", "aq", "lq", "uq", "cq", "wr", "r", "Kt", "e", "pq", "n", "o", "Kl", "A_", "hmt", "E_", "Ue", "bo", "t", "Bn", "w_", "I_", "lc", "He", "wo", "ac", "Io", "N_", "__", "v_", "zn", "T_", "Zp", "Qg", "h0", "s", "i", "a", "u", "l", "oi", "C_", "Fq", "S_", "Yp", "k_", "d0", "xt", "c", "p", "m", "f", "d", "cE", "pE", "GE", "VE", "j0", "UE", "WE", "X0", "qE", "HE", "Y0", "jE", "KE", "Z0", "YE", "XE", "J0", "h", "g", "JE", "ZE", "Q0", "QE", "eA", "tA", "ry", "w", "I", "N", "A", "b", "F", "P", "V", "G", "W", "q", "H", "bh", "n1t", "rA", "oX", "sX", "iX", "aX", "lX", "uX", "bc", "wk", "pw", "G1", "dH", "hH", "gH", "xH", "EC", "U1", "W1", "it", "ee", "je", "xe", "fe", "Ae", "Pn", "lr", "Jn", "Br", "M", "U", "x", "E", "D", "tc", "X", "dt", "Sp", "Lt", "Zt", "Yt", "Go", "K", "Z", "et", "nt", "st", "at", "ot", "Qu", "mt", "gt", "It", "Rt", "Dt", "Ht", "yt", "$t", "nr", "ro", "qt", "ce", "ge", "De", "Vr", "Gr", "Qn", "to", "Jr", "Ca", "Ni", "Hd", "jd", "Er", "va", "Z1", "qd", "Ul", "vp", "Sa", "$C", "Cg", "RC", "vg", "Qr", "Sg", "FC", "OC", "Mg", "UC", "Xt", "ka", "J1", "Q1", "Ng", "PC", "QS", "MC", "Kd", "LC", "kg", "Tg", "Hl", "zC", "Eg", "_g", "BC", "Wg", "Xd", "VC", "s_", "Ug", "Np", "GC", "WC", "o_", "HC", "e_", "qC", "Ag", "Dg", "KC", "jC", "XC", "n_", "YC", "ZC", "JC", "ec", "QC", "tv", "$g", "ev", "Yd", "rv", "nv", "ov", "t0", "Hg", "r_", "Zd", "sv", "dv", "iv", "av", "lv", "Rg", "Fg", "uv", "cv", "Og", "Pg", "pv", "mv", "Mn", "Ep", "l_", "a_", "e0", "sq", "fv", "t_", "hv", "gv", "xv", "yv", "bv", "wv", "Iv", "Cv", "vv", "Sv", "Nv", "kv", "Tv", "_v", "Ev", "Av", "Dv", "$v", "Rv", "Fv", "Ov", "Pv", "Mv", "Lv", "zv", "Bv", "Vv", "Gv", "Wv", "Uv", "Hv", "qv", "Kv", "jv", "Xv", "Yv", "Zv", "Jv", "Qv", "tS", "eS", "rS", "nS", "oS", "sS", "iS", "aS", "lS", "uS", "cS", "pS", "mS", "fS", "dS", "hS", "gS", "xS", "yS", "bS", "wS", "IS", "CS", "vS", "SS", "NS", "kS", "TS", "_S", "ES", "AS", "DS", "$S", "RS", "FS", "OS", "PS", "MS", "LS", "zS", "BS", "VS", "GS", "WS", "US", "HS", "qS", "KS", "jS", "Lg", "zg", "Jd", "XS", "YS", "kp", "Bg", "Tp", "_p", "ZS", "j", "ut", "Ft", "pe", "Xe", "Ye", "oe", "re", "br", "eo", "Na", "Vg", "Qd", "JS", "on", "ql", "Gg", "TH", "_H", "EH", "AH", "DH", "$H", "RH", "FH", "OH", "PH", "MH", "LH", "zH", "BH", "VH", "GH", "WH", "UH", "HH", "qH", "KH", "jH", "XH", "YH", "ZH", "JH", "QH", "tq", "eq", "rq", "nq", "qg", "i_", "Kg", "jg", "oq", "bH", "der", "yH", "wH", "AC", "q1", "H1", "Ln", "u_", "Xg", "mq", "Ap", "fq", "dq", "hq", "gq", "_", "Re", "sn", "no", "te", "xq", "n0", "_a", "yq", "bq", "wq", "nc", "Iq", "Cq", "fr", "o0", "s0", "Yg", "i0", "a0", "vq", "Dp", "l0", "Uo", "c_", "p_", "jl", "ki", "$p", "Ti", "m_", "rc", "Sq", "th", "Rp", "Nq", "Me", "kq", "Tq", "oc", "f_", "Eq", "Dq", "Aq", "d_", "c0", "p0", "$q", "rh", "Yi", "Rq", "Xp", "sh", "f0", "Bq", "Qp", "hu", "Gq", "zq", "si", "ah", "or", "Jp", "Jg", "x0", "cc", "$_", "uc", "an", "g0", "R_", "Le", "D_", "Ar", "du", "Oq", "tx", "Pq", "Mq", "Lq", "Vq", "ex", "y0", "Wq", "F_", "O_", "P_", "lh", "b0", "M_", "Uq", "rx", "ch", "uh", "L_", "ii", "tm", "Hq", "z_", "B_", "V_", "O", "N0", "ph", "Kq", "jt", "I0", "C0", "v0", "S0", "qq", "nx", "ox", "G_", "jq", "k0", "sx", "gu", "T", "Xq", "Yq", "T0", "E0", "Qq", "Jq", "Zq", "_0", "Sn", "Wr", "U_", "W_", "v", "hl", "tK", "ln", "mh", "ix", "q_", "eK", "ax", "sK", "D0", "H_", "K_", "j_", "em", "$0", "lx", "R0", "rm", "Zi", "ux", "rK", "nK", "oK", "ve", "X_", "Y_", "Z_", "J_", "F0", "O0", "fc", "yu", "Q_", "P0", "Ji", "tE", "iK", "aK", "cx", "gl", "nm", "eE", "lK", "uK", "cK", "pK", "rE", "nE", "mK", "fK", "Qi", "oE", "dK", "px", "om", "Dr", "mx", "sE", "iE", "aE", "lE", "uE", "M0", "hK", "L0", "z0", "gK", "xK", "yK", "wK", "IK", "CK", "vK", "SK", "NK", "kK", "TK", "_K", "EK", "AK", "DK", "$K", "RK", "FK", "OK", "PK", "MK", "hE", "hc", "G0", "dh", "LK", "V0", "dE", "lm", "VK", "GK", "zK", "W0", "hh", "BK", "ao", "$r", "ea", "Se", "WK", "UK", "HK", "qK", "KK", "jK", "XK", "YK", "ZK", "JK", "xE", "QK", "tj", "ej", "rj", "nj", "oj", "sj", "ij", "aj", "lj", "uj", "cj", "pj", "mj", "fj", "dj", "hj", "cm", "gj", "xj", "yj", "Rx", "bj", "wj", "Ij", "Cj", "vj", "Sj", "Nj", "kj", "Tj", "_j", "Mt", "IE", "ye", "Ej", "Aj", "Dj", "$j", "Rj", "Fj", "Oj", "Pj", "Mj", "U0", "SE", "H0", "So", "Lj", "q0", "xh", "zj", "Bj", "Vj", "Gj", "Wj", "Uj", "Hj", "qj", "NE", "Kj", "jj", "Xj", "Yj", "Zj", "Jj", "Qj", "t6", "e6", "r6", "n6", "o6", "s6", "i6", "a6", "l6", "u6", "c6", "p6", "m6", "Kx", "x6", "y6", "b6", "w6", "I6", "C6", "v6", "S6", "N6", "k6", "Yx", "T6", "_6", "E6", "A6", "D6", "$6", "R6", "F6", "O6", "P6", "M6", "L6", "z6", "B6", "V6", "G6", "W6", "U6", "H6", "q6", "K6", "j6", "X6", "Z6", "Y6", "J6", "Q6", "tX", "eX", "rX", "nX", "iy", "nA", "gX", "sA", "hX", "pX", "fX", "oA", "mX", "dX", "xX", "ny", "cX", "tN", "eN", "wc", "oy", "sy", "yX", "bX", "wX", "IX", "CX", "vX", "SX", "NX", "kX", "TX", "_X", "EX", "AX", "DX", "$X", "RX", "FX", "OX", "PX", "MX", "LX", "zX", "BX", "VX", "GX", "WX", "UX", "HX", "qX", "KX", "jX", "XX", "YX", "ZX", "JX", "QX", "t5", "e5", "yA", "_m", "rN", "r5", "n5", "o5", "s5", "i5", "a5", "hy", "l5", "u5", "p5", "m5", "d5", "IA", "x5", "b5", "CA", "I5", "C5", "vA", "SA", "NA", "S5", "Dm", "vc", "Sc", "Nc", "kc", "N5", "k5", "xy", "T5", "yy", "_5", "E5", "A5", "kA", "D5", "by", "$5", "wy", "R5", "TA", "F5", "_A", "O5", "EA", "P5", "AA", "M5", "DA", "ko", "L5", "$A", "RA", "z5", "V5", "B5", "Iy", "sN", "Cy", "vy", "FA", "G5", "W5", "U5", "OA", "H5", "PA", "q5", "MA", "K5", "LA", "j5", "zA", "X5", "Sy", "Y5", "Ny", "Z5", "J5", "BA", "Q5", "VA", "t8", "GA", "e8", "WA", "r8", "UA", "HA", "n8", "Hr", "o8", "qA", "s8", "KA", "i8", "jA", "a8", "XA", "l8", "YA", "u8", "ZA", "c8", "p8", "JA", "m8", "f8", "QA", "d8", "t2", "h8", "e2", "g8", "r2", "x8", "n2", "y8", "o2", "b8", "s2", "w8", "i2", "I8", "a2", "Ch", "pa", "aN", "T8", "l2", "c2", "f2", "d2", "fN", "_y", "Ty", "p2", "pN", "h2", "g2", "_8", "E8", "A8", "u2", "vl", "lN", "D8", "$8", "ky", "R8", "uN", "cN", "F8", "O8", "vh", "P8", "m2", "Sh", "Ey", "mN", "x2", "M8", "U8", "G8", "W8", "Rc", "b2", "L8", "z8", "B8", "V8", "w2", "q8", "Z8", "j8", "X8", "Y8", "K8", "hN", "J8", "_2", "N2", "E2", "k2", "T2", "C2", "dN", "H8", "v2", "S2", "Q8", "I2", "tY", "hY", "gY", "xY", "yY", "bY", "dY", "$y", "ma", "xN", "gN", "eY", "NY", "DY", "nY", "CY", "vY", "aY", "rY", "EY", "TY", "kY", "JY", "ZY", "SY", "$Y", "AY", "lY", "cY", "sY", "uY", "pY", "oY", "mY", "fY", "PY", "MY", "LY", "VY", "WY", "GY", "zY", "BY", "KY", "UY", "HY", "qY", "RY", "wY", "OY", "bN", "IY", "iY", "yN", "_Y", "D2", "$2", "FY", "YY", "XY", "jY", "Ry", "R2", "F2", "O2", "P2", "M2", "L2", "z2", "B2", "V2", "G2", "W2", "QY", "U2", "H2", "tZ", "q2", "K2", "j2", "X2", "Y2", "Z2", "J2", "Q2", "tD", "eD", "rD", "nD", "eZ", "oD", "sD", "iD", "aD", "lD", "uD", "cD", "pD", "mD", "fD", "dD", "hD", "gD", "xD", "yD", "ID", "bD", "wD", "CD", "vD", "SD", "ND", "kD", "TD", "_D", "ED", "AD", "rZ", "DD", "$D", "Fy", "wN", "RD", "nZ", "FD", "OD", "oZ", "PD", "MD", "LD", "zD", "BD", "VD", "GD", "WD", "UD", "HD", "qD", "KD", "IN", "jD", "XD", "sZ", "iZ", "YD", "ZD", "JD", "QD", "t$", "e$", "r$", "n$", "o$", "s$", "i$", "a$", "l$", "u$", "c$", "p$", "m$", "f$", "d$", "h$", "CN", "vN", "g$", "x$", "y$", "b$", "w$", "I$", "C$", "v$", "S$", "N$", "k$", "T$", "aZ", "_$", "lZ", "_n", "jr", "z", "Nt", "$m", "Th", "_o", "co", "NN", "kr", "we", "Eo", "Sl", "To", "Rm", "SN", "fa", "uZ", "_h", "Ao", "E$", "da", "Oy", "Qe", "A$", "D$", "Py", "cZ", "Ly", "My", "Fu", "$$", "R$", "F$", "O$", "P$", "Fm", "Oe", "L$", "hn", "kN", "Eh", "M$", "pi", "pZ", "zy", "z$", "By", "mZ", "B$", "Do", "Oc", "mi", "gn", "TN", "cr", "xn", "en", "kl", "V$", "Gy", "G$", "W$", "Nl", "_N", "Ah", "Om", "AN", "Pm", "$o", "EN", "Wy", "Pc", "yn", "U$", "H$", "Uy", "q$", "Ou", "K$", "j$", "fZ", "dZ", "bn", "Mm", "Pu", "Lm", "zm", "Bm", "Vm", "Gm", "hZ", "Xr", "Mc", "Lc", "zc", "Bc", "Vc", "Gc", "Wm", "X$", "Y$", "_e", "he", "Hy", "Um", "St", "Gt", "Hm", "J$", "xZ", "$h", "qm", "yZ", "Tl", "bZ", "_t", "wZ", "IZ", "DN", "fi", "qy", "CZ", "Ro", "Ky", "jy", "tR", "Wc", "vZ", "NZ", "Q$", "SZ", "kZ", "TZ", "AZ", "EZ", "_Z", "$N", "Uc", "Km", "jm", "Xm", "Ym", "eR", "Be", "rR", "Ve", "RZ", "BZ", "zZ", "VZ", "GZ", "MZ", "WZ", "UZ", "$Z", "HZ", "OZ", "FZ", "PZ", "LZ", "DZ", "Dl", "uJ", "yJ", "e9", "bJ", "qN", "KN", "jN", "_J", "AJ", "$J", "EJ", "DJ", "RJ", "NJ", "KJ", "i9", "o9", "wJ", "tJ", "eJ", "rJ", "nJ", "oJ", "WJ", "UJ", "iJ", "cJ", "lJ", "SJ", "pJ", "j7", "xJ", "fJ", "t9", "QJ", "FJ", "OJ", "XJ", "YJ", "FR", "OR", "MJ", "LJ", "K7", "kJ", "Y7", "zJ", "BJ", "r9", "ZJ", "JJ", "PR", "MR", "PJ", "IJ", "CJ", "vJ", "gJ", "Z7", "a9", "X7", "dJ", "n9", "hJ", "s9", "HJ", "sJ", "VJ", "GJ", "J7", "mJ", "qJ", "Q7", "jJ", "aJ", "TJ", "ha", "Xy", "sR", "qZ", "_l", "RN", "Qy", "wn", "tb", "In", "Rh", "ga", "Zm", "Mu", "KZ", "jZ", "XZ", "YZ", "ZZ", "Hc", "Jm", "JZ", "Qm", "QZ", "t7", "Oh", "Fh", "eb", "Ph", "Mh", "aR", "e7", "r7", "FN", "lR", "nb", "ob", "n7", "o7", "s7", "i7", "a7", "l7", "Lh", "u7", "ON", "rb", "uR", "zh", "pR", "MN", "PN", "mR", "m7", "sb", "f7", "d7", "p7", "fR", "qc", "ib", "Hn", "h7", "ab", "lb", "dR", "g7", "xR", "hR", "x7", "yR", "gR", "y7", "b7", "bR", "ub", "ef", "cb", "pb", "LN", "Fo", "w7", "zN", "wR", "IR", "I7", "C7", "CR", "v7", "S7", "mb", "vR", "N7", "k7", "nn", "fb", "db", "hb", "gb", "xb", "yb", "bb", "wb", "Ib", "Cb", "rf", "vb", "Sb", "Nb", "di", "VN", "hi", "GN", "kb", "Lu", "TR", "_R", "NR", "me", "kR", "Ce", "nf", "of", "sf", "af", "lf", "uf", "zu", "En", "gi", "Bh", "WN", "D7", "ER", "$7", "Kc", "Bu", "El", "Al", "cf", "pf", "Tb", "mf", "Vu", "ff", "df", "R7", "hf", "UN", "HN", "Yc", "jc", "Rl", "gf", "Xc", "xf", "$l", "yf", "F7", "_b", "Zc", "bf", "Jc", "wf", "If", "Cf", "vf", "Sf", "Nf", "kf", "Tf", "_f", "Fl", "Ef", "Af", "Df", "$f", "Rf", "Ff", "Vh", "O7", "Of", "Pf", "Mf", "Lf", "Gh", "P7", "M7", "L7", "zf", "Bf", "z7", "Vf", "Fb", "AR", "Eb", "Gf", "Wf", "Ab", "Uf", "Hf", "Db", "qf", "Kf", "$b", "jf", "Xf", "Rb", "Yf", "Zf", "Ob", "Jf", "B7", "V7", "Qf", "td", "G7", "W7", "ed", "DR", "rd", "H7", "$R", "nd", "Wh", "Uh", "q7", "RR", "od", "y9", "I9", "l9", "u9", "p9", "m9", "h9", "b9", "g9", "x9", "w9", "C9", "f9", "d9", "c9", "S9", "v9", "N9", "Pb", "GR", "k9", "_9", "po", "WR", "XN", "zb", "C", "pr", "Cn", "Bb", "YN", "xi", "Hh", "yi", "ZN", "$9", "JN", "R9", "QN", "F9", "tk", "O9", "ek", "P9", "rk", "M9", "nk", "L9", "ok", "z9", "sk", "B9", "ik", "V9", "ak", "G9", "lk", "W9", "uk", "U9", "ck", "H9", "pk", "q9", "mk", "K9", "fk", "j9", "dk", "X9", "hk", "Y9", "qh", "Vb", "jb", "Wb", "Kb", "Gb", "Yb", "qb", "Xb", "Ub", "Hb", "UR", "gk", "Z9", "HR", "qR", "Zb", "ie", "KR", "jR", "Kn", "XR", "sd", "Jb", "Qb", "Ol", "YR", "ZR", "JR", "QR", "tF", "eF", "rF", "nF", "xk", "oF", "sF", "iF", "tw", "aF", "lF", "uF", "cF", "pF", "mF", "fF", "dF", "hF", "gF", "xF", "yF", "yk", "Kh", "bk", "Gu", "vQ", "SQ", "bF", "yQ", "bQ", "id", "wF", "wQ", "IQ", "CQ", "Qc", "ew", "NQ", "kQ", "EQ", "ud", "bi", "dd", "ld", "hd", "DF", "PF", "MF", "LF", "BF", "Bk", "zF", "$F", "AF", "TF", "CF", "rw", "Wu", "vF", "Ik", "SF", "nw", "NF", "AQ", "kF", "DQ", "ad", "tp", "Fk", "Ck", "Xh", "vk", "_F", "sw", "EF", "Pl", "$k", "tr", "Ak", "_k", "Ek", "ow", "Dk", "Tk", "kk", "Nk", "iw", "Rk", "Sk", "ep", "Dn", "$Q", "RQ", "aw", "Yh", "RF", "lw", "Ok", "FF", "cd", "pd", "md", "Zh", "Pk", "Mk", "uw", "Lk", "zk", "fd", "OF", "FQ", "cw", "tt", "OQ", "Wk", "yd", "mw", "Uk", "Gk", "Hk", "rp", "qk", "jk", "Yk", "Jk", "Zk", "fw", "dw", "tT", "Qk", "rT", "eT", "hw", "nT", "gw", "oT", "sT", "Jh", "iT", "aT", "lT", "xw", "yw", "bw", "op", "uT", "wi", "yO", "Vk", "sp", "ww", "Iw", "Id", "IO", "pT", "mT", "Cw", "ip", "ap", "lp", "dT", "vw", "Sw", "bd", "up", "PQ", "GF", "Jt", "Cr", "WF", "gd", "Yr", "UF", "Oo", "HF", "Po", "qF", "ne", "xd", "MQ", "ya", "KF", "LQ", "jF", "_r", "At", "$n", "zQ", "XF", "Kk", "YF", "Xk", "ZF", "BQ", "JF", "VQ", "QF", "GQ", "tO", "WQ", "eO", "UQ", "rO", "HQ", "nO", "qQ", "oO", "KQ", "sO", "jQ", "iO", "XQ", "aO", "YQ", "np", "lO", "ZQ", "uO", "JQ", "cO", "Ge", "pO", "QQ", "mO", "ttt", "ett", "rtt", "ntt", "fO", "ott", "stt", "dO", "Mo", "wd", "gO", "hO", "itt", "xO", "cT", "bO", "Lo", "wO", "att", "CO", "ltt", "vO", "utt", "SO", "fT", "ctt", "ptt", "Qh", "NO", "tg", "kO", "hT", "_O", "gT", "EO", "mtt", "xT", "AO", "yT", "DO", "bT", "$O", "cp", "Qt", "RO", "wT", "FO", "ftt", "OO", "dtt", "PO", "htt", "MO", "gtt", "LO", "xtt", "zO", "ytt", "BO", "btt", "VO", "wtt", "GO", "Itt", "WO", "Ctt", "UO", "vtt", "HO", "Stt", "Ntt", "qO", "ktt", "KO", "Cd", "kw", "Tw", "jO", "Ttt", "XO", "_tt", "YO", "Ett", "ZO", "Att", "JO", "Dtt", "QO", "$tt", "tP", "Rtt", "eP", "Ftt", "rP", "Ott", "nP", "Ptt", "oP", "ba", "sP", "Hu", "iP", "IT", "aP", "Mtt", "lP", "Ltt", "uP", "ztt", "cP", "Btt", "pP", "Vtt", "mP", "Gtt", "fP", "Wtt", "dP", "Utt", "hP", "Htt", "gP", "qtt", "xP", "Ktt", "yP", "jtt", "bP", "CT", "wP", "Xtt", "IP", "Ytt", "CP", "Ztt", "vP", "SP", "NP", "kP", "Ml", "TP", "Jtt", "_P", "Qtt", "EP", "tet", "eet", "ret", "net", "oet", "set", "iet", "AP", "vd", "DP", "aet", "eg", "rg", "_w", "uet", "cet", "vT", "pet", "met", "$P", "ng", "fet", "RP", "FP", "det", "OP", "het", "PP", "get", "MP", "xet", "LP", "yet", "zP", "bet", "BP", "wet", "VP", "Iet", "GP", "Cet", "WP", "vet", "UP", "Net", "ket", "HP", "Tet", "qP", "_et", "Eet", "KP", "Aet", "jP", "Det", "XP", "ST", "YP", "$et", "ZP", "Ret", "JP", "Fet", "QP", "Oet", "tM", "eM", "rM", "Pet", "nM", "Met", "oM", "Let", "sM", "zet", "Bet", "iM", "lM", "NT", "aM", "Vet", "uM", "Get", "Wet", "cM", "Uet", "Het", "pM", "qet", "Ket", "mM", "jet", "fM", "og", "dM", "hM", "gM", "kT", "xM", "Xet", "Ew", "Yet", "Zet", "yM", "Jet", "bM", "Qet", "wM", "trt", "IM", "ert", "CM", "rrt", "vM", "nrt", "SM", "ort", "NM", "srt", "kM", "irt", "TM", "art", "_M", "EM", "lrt", "AM", "urt", "DM", "crt", "prt", "$M", "mrt", "RM", "frt", "FM", "drt", "hrt", "grt", "OM", "xrt", "PM", "yrt", "MM", "brt", "LM", "wrt", "zM", "Irt", "BM", "Crt", "VM", "vrt", "GM", "Srt", "WM", "Nrt", "UM", "krt", "HM", "Trt", "qM", "_rt", "KM", "jM", "Ert", "XM", "Art", "YM", "Drt", "ZM", "$rt", "JM", "Rrt", "QM", "Frt", "tL", "Ort", "eL", "Prt", "rL", "Mrt", "nL", "Lrt", "oL", "zrt", "sL", "Urt", "Hrt", "iL", "Brt", "Vrt", "Wrt", "Grt", "sg", "qrt", "aL", "Krt", "lL", "jrt", "uL", "Xrt", "Ii", "ont", "ug", "GT", "fL", "Ow", "ht", "AT", "$T", "zT", "RT", "PT", "OT", "MT", "DT", "zl", "Sd", "dL", "HT", "rnt", "VT", "BT", "Bl", "kd", "WT", "qT", "mL", "UT", "Xn", "KT", "jT", "Ku", "XT", "Mw", "FT", "Fw", "snt", "int", "Pw", "nnt", "Nd", "lg", "LT", "pp", "Aw", "jn", "Zrt", "Yrt", "qu", "Zr", "Lr", "mp", "cL", "ig", "wa", "pL", "ag", "Jrt", "Qrt", "tnt", "Ll", "ent", "hL", "Dw", "$w", "Rw", "ET", "ant", "Et", "We", "Ci", "fp", "lnt", "gL", "_d", "Ed", "Lw", "xL", "yL", "zw", "unt", "mnt", "hnt", "cnt", "dnt", "pnt", "fnt", "bnt", "Dd", "Dnt", "Rnt", "Ont", "Mnt", "znt", "Bnt", "Vnt", "bL", "Ant", "$nt", "Fnt", "Pnt", "Lnt", "Gnt", "Wnt", "wL", "wnt", "_nt", "Cnt", "Snt", "Int", "Ent", "vnt", "Nnt", "knt", "Tnt", "gnt", "xnt", "ynt", "dp", "$d", "Rd", "Fd", "zt", "CL", "YT", "IL", "vL", "SL", "de", "Bw", "Vw", "Gw", "Ww", "qnt", "cg", "Uw", "s1", "l1", "e1", "o1", "t1", "QT", "n1", "r1", "JT", "ZT", "c1", "u1", "m1", "p1", "qw", "Xw", "Hw", "jw", "Kw", "i1", "a1", "pg", "Knt", "NL", "Yw", "kL", "TL", "_L", "EL", "AL", "DL", "$L", "RL", "FL", "OL", "PL", "ML", "LL", "zL", "BL", "VL", "GL", "WL", "UL", "HL", "qL", "KL", "jL", "XL", "YL", "ZL", "JL", "QL", "tz", "ez", "Zw", "rz", "nz", "oz", "Jw", "sz", "iz", "az", "lz", "uz", "cz", "pz", "mz", "fz", "gp", "dz", "d1", "er", "hz", "Qw", "Od", "jnt", "tI", "xz", "yz", "gz", "Xnt", "Ynt", "Znt", "zr", "yr", "bz", "h1", "wz", "Iz", "Cz", "Ia", "vz", "Nz", "kz", "Tz", "_z", "Ez", "Rn", "eI", "Qnt", "tot", "eot", "rI", "rot", "not", "oot", "sot", "iot", "Pd", "mo", "Yn", "zo", "rr", "$z", "Fn", "Rz", "g1", "x1", "aot", "Fz", "y1", "b1", "lot", "Oz", "Bo", "wt", "ue", "Vl", "Md", "w1", "mg", "Pz", "fg", "Mz", "Lz", "rt", "zz", "dg", "nI", "cot", "Zn", "oI", "pot", "sI", "Xu", "Bz", "xp", "Vz", "Pe", "Gz", "I1", "yp", "mot", "Wz", "Uz", "fot", "Hz", "dot", "hot", "qz", "got", "xot", "Kz", "jz", "yot", "Xz", "iI", "aI", "lI", "Yz", "bot", "Zz", "wot", "Jz", "uI", "cI", "Qz", "t3", "pI", "Iot", "e3", "Cot", "r3", "vot", "Sot", "n3", "Not", "kot", "o3", "Tot", "_ot", "s3", "Eot", "Aot", "Dot", "i3", "$ot", "Rot", "a3", "vi", "Yu", "Fot", "l3", "Oot", "u3", "mI", "fI", "Pot", "c3", "Mot", "p3", "Lot", "m3", "dI", "hI", "zot", "f3", "gI", "Bot", "C1", "xI", "Vot", "Si", "d3", "Got", "h3", "Wot", "g3", "Uot", "x3", "Hot", "v1", "y3", "Gl", "b3", "qot", "w3", "S1", "I3", "C3", "Kot", "v3", "yI", "bI", "jot", "S3", "wI", "N3", "Xot", "k3", "II", "vI", "CI", "bp", "T3", "Ld", "Yot", "N1", "_3", "zd", "SI", "Bd", "NI", "kI", "TI", "_I", "Zot", "E3", "EI", "AI", "DI", "$I", "Jot", "A3", "RI", "Qot", "D3", "tst", "$3", "est", "R3", "rst", "F3", "nst", "ost", "sst", "O3", "ist", "ast", "P3", "FI", "lst", "M3", "wp", "hg", "L3", "z3", "OI", "ust", "B3", "cst", "V3", "pst", "G3", "PI", "mst", "W3", "Vd", "Gd", "fst", "U3", "MI", "LI", "dst", "H3", "hst", "q3", "zI", "gst", "K3", "BI", "xst", "j3", "yst", "X3", "bst", "wst", "Ist", "Y3", "Cst", "vst", "Sst", "Z3", "Nst", "kst", "Tst", "J3", "_st", "Est", "Q3", "Ast", "Dst", "k1", "tB", "VI", "eB", "rB", "$st", "nB", "gg", "GI", "Rst", "oB", "WI", "Wl", "sB", "UI", "iB", "aB", "Fst", "lB", "Ost", "Pst", "Mst", "uB", "HI", "qI", "cB", "Lst", "Wd", "T1", "zst", "pB", "Bst", "mB", "KI", "Vst", "fB", "jI", "Gst", "_1", "dB", "Wst", "Ust", "Hst", "hB", "qst", "Kst", "jst", "gB", "Xst", "xB", "Yst", "Zst", "yB", "Jst", "Qst", "bB", "tit", "eit", "wB", "rit", "nit", "oit", "IB", "sit", "iit", "ait", "CB", "lit", "vB", "uit", "cit", "pit", "SB", "mit", "fit", "NB", "dit", "hit", "git", "kB", "xit", "yit", "TB", "bit", "wit", "Iit", "_B", "XI", "YI", "Cit", "EB", "ZI", "vit", "AB", "DB", "E1", "$B", "Sit", "Nit", "kit", "RB", "Tit", "FB", "_it", "OB", "JI", "QI", "Eit", "PB", "Ait", "MB", "LB", "zB", "BB", "VB", "Dit", "GB", "$it", "Rit", "Fit", "WB", "tC", "eC", "Oit", "UB", "Pit", "Mit", "Lit", "HB", "rC", "zit", "Bit", "A1", "qB", "KB", "D1", "jB", "$1", "XB", "Vit", "YB", "Git", "Wit", "Uit", "ZB", "Hit", "qit", "JB", "Kit", "jit", "QB", "Xit", "Yit", "tV", "nC", "Zit", "eV", "xg", "rV", "nV", "oV", "Jit", "sV", "oC", "sC", "R1", "iV", "Qit", "tat", "eat", "aV", "rat", "lV", "nat", "uV", "oat", "cV", "sat", "pV", "F1", "mV", "iat", "aat", "fV", "lat", "uat", "cat", "dV", "pat", "mat", "fat", "hV", "iC", "aC", "dat", "gV", "lC", "hat", "xV", "uC", "cC", "gat", "yV", "pC", "xat", "bV", "mC", "fC", "yat", "wV", "dC", "IV", "bat", "wat", "CV", "Iat", "Cat", "vV", "Zu", "hC", "vat", "SV", "gC", "Sat", "NV", "xC", "Nat", "kV", "kat", "Tat", "TV", "_at", "Eat", "Aat", "_V", "Dat", "$at", "EV", "Rat", "Fat", "Oat", "AV", "Pat", "Mat", "DV", "Lat", "zat", "$V", "Bat", "RV", "Vat", "FV", "Gat", "OV", "Wat", "PV", "Uat", "MV", "Hat", "LV", "qat", "zV", "BV", "Kat", "VV", "jat", "Xat", "GV", "WV", "Yat", "UV", "Zat", "HV", "Jat", "qV", "yC", "Qat", "KV", "tlt", "jV", "elt", "XV", "rlt", "YV", "nlt", "olt", "ZV", "slt", "ilt", "JV", "alt", "QV", "bC", "llt", "O1", "tG", "wC", "IC", "Ip", "eG", "ult", "rG", "CC", "clt", "nG", "plt", "oG", "mlt", "sG", "vC", "flt", "iG", "dlt", "kt", "Ju", "aG", "hlt", "glt", "lG", "Ct", "uG", "cG", "pG", "ae", "xlt", "mG", "fG", "ylt", "blt", "dG", "Cp", "hG", "gG", "wlt", "fo", "Clt", "Ilt", "xG", "vn", "yG", "vlt", "Slt", "bG", "wG", "Nlt", "klt", "IG", "SC", "CG", "vG", "SG", "NG", "kG", "TG", "_G", "EG", "Tlt", "_lt", "AG", "DG", "Elt", "Alt", "$G", "RG", "Dlt", "$lt", "FG", "mr", "OG", "PG", "Rlt", "Flt", "MG", "Vo", "Olt", "Plt", "Mlt", "LG", "Llt", "zG", "BG", "zlt", "Blt", "VG", "Vlt", "GG", "On", "WG", "UG", "HG", "Glt", "Wlt", "qG", "P1", "KG", "jG", "Ult", "Hlt", "XG", "YG", "qlt", "Klt", "ZG", "JG", "jlt", "Xlt", "QG", "tW", "Ylt", "Zlt", "eW", "rW", "Jlt", "Qlt", "nW", "oW", "sW", "M1", "iW", "tut", "eut", "aW", "lW", "rut", "nut", "uW", "cW", "out", "sut", "pW", "mW", "iut", "aut", "fW", "dW", "lut", "uut", "hW", "gW", "cut", "put", "xW", "yW", "mut", "fut", "bW", "wW", "dut", "hut", "IW", "CW", "gut", "xut", "vW", "SW", "yut", "but", "NW", "kW", "TW", "wut", "Iut", "_W", "Cut", "EW", "AW", "NC", "DW", "$W", "L1", "RW", "FW", "vut", "Sut", "OW", "PW", "Nut", "MW", "LW", "kut", "Tut", "zW", "BW", "_ut", "Eut", "VW", "GW", "Aut", "Dut", "WW", "UW", "$ut", "Rut", "HW", "qW", "Fut", "Out", "KW", "Put", "jW", "Mut", "XW", "YW", "ZW", "JW", "QW", "Lut", "zut", "tU", "But", "eU", "Vut", "rU", "nU", "Gut", "Wut", "oU", "sU", "iU", "Uut", "aU", "lU", "Hut", "uU", "qut", "cU", "pU", "Kut", "jut", "mU", "fU", "Xut", "Yut", "dU", "hU", "Zut", "Jut", "gU", "Qut", "xU", "yU", "tct", "ect", "bU", "wU", "rct", "nct", "IU", "CU", "oct", "sct", "vU", "SU", "ict", "act", "NU", "kU", "lct", "uct", "TU", "cct", "_U", "z1", "EU", "pct", "mct", "AU", "DU", "fct", "B1", "$U", "RU", "dct", "hct", "FU", "gct", "OU", "PU", "Ud", "MU", "xct", "yct", "LU", "zU", "bct", "wct", "BU", "VU", "Ict", "Cct", "GU", "vct", "WU", "UU", "Sct", "Nct", "HU", "kct", "qU", "Tct", "KU", "jU", "_ct", "Ect", "kC", "Act", "XU", "YU", "Dct", "$ct", "ZU", "JU", "Rct", "Fct", "QU", "Oct", "t4", "Pct", "e4", "r4", "n4", "o4", "s4", "Mct", "Lct", "i4", "a4", "zct", "Bct", "l4", "u4", "Vct", "Gct", "c4", "p4", "Wct", "Uct", "m4", "f4", "Hct", "qct", "d4", "h4", "Kct", "jct", "g4", "x4", "y4", "b4", "Xct", "Yct", "w4", "I4", "Zct", "Jct", "C4", "v4", "Qct", "tpt", "S4", "N4", "k4", "ept", "rpt", "T4", "_4", "E4", "A4", "npt", "D4", "$4", "opt", "spt", "R4", "F4", "ipt", "apt", "O4", "P4", "TC", "_C", "lpt", "M4", "upt", "L4", "z4", "cpt", "ppt", "B4", "mpt", "V4", "G4", "W4", "fpt", "U4", "H4", "dpt", "hpt", "q4", "K4", "gpt", "xpt", "j4", "ypt", "X4", "bpt", "Y4", "wpt", "Z4", "Ipt", "J4", "Q4", "Cpt", "vpt", "tH", "eH", "rH", "nH", "Spt", "Npt", "oH", "sH", "kpt", "Tpt", "iH", "aH", "_pt", "Ept", "lH", "uH", "Apt", "Dpt", "cH", "$pt", "pH", "Rpt", "mH", "Fpt", "fH", "Opt", "V1", "j1", "vH", "X1", "IH", "Ppt", "NH", "K1", "Lpt", "Mpt", "CH", "DC", "bg", "SH", "yg", "Y1", "wg", "zpt", "Hpt", "kH", "qpt", "Kpt", "jpt", "Xpt", "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", "Pt", "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", "vo", "avg_g", "avg_b", "avg_rgb", "se", "lt", "padToSquare", "imgTensor", "isCenterImage", "B", "height", "width", "dimDiff", "paddingAmount", "paddingAxis", "createPaddingTensor", "paddingAmountLocal", "paddingTensorShape", "vo", "paddingTensorAppend", "remainingPaddingAmount", "tensorsToStack", "t", "Q", "se", "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", "Ay", "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", "Pt", "imgTensor", "ar", "padToSquare", "dn", "Ay", "imageToSquare", "qe", "t", "Q", "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", "Nm", "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", "Mr", "matchDimensions", "input", "reference", "useMediaDimensions", "width", "height", "getMediaDimensions", "NeuralNetwork", "name", "paramPath", "obj", "objProp", "tensor", "param", "dl", "path", "variable", "sr", "throwOnRedispose", "flat", "arr", "weightsOrUrl", "uri", "weightMap", "loadWeightMap", "filePath", "readFile", "env", "manifestUri", "modelBaseUri", "getModelUris", "fetchWeightsFromDisk", "filePaths", "fp", "buf", "loadWeights", "Mr", "manifest", "paramMappings", "params", "weights", "result", "res", "Pt", "depthwiseSeparableConv", "x", "params", "stride", "B", "out", "Im", "Y", "denseBlock3", "x", "denseBlockParams", "isFirstLayer", "B", "out1", "Pr", "Y", "kn", "depthwiseSeparableConv", "out2", "in3", "out3", "denseBlock4", "isScaleDown", "in4", "out4", "convLayer", "x", "params", "padding", "withRelu", "B", "out", "Y", "kn", "Pr", "disposeUnusedWeightTensors", "weightMap", "paramMappings", "path", "pm", "extractConvParamsFactory", "extractWeights", "paramMappings", "channelsIn", "channelsOut", "filterSize", "mappedPrefix", "filters", "hA", "bias", "Ke", "extractFCParamsFactory", "extractWeights", "paramMappings", "channelsIn", "channelsOut", "mappedPrefix", "fc_weights", "ui", "fc_bias", "Ke", "SeparableConvParams", "depthwise_filter", "pointwise_filter", "bias", "extractSeparableConvParamsFactory", "extractWeights", "paramMappings", "channelsIn", "channelsOut", "mappedPrefix", "depthwise_filter", "hA", "pointwise_filter", "bias", "Ke", "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", "Q", "normalized", "normalize", "out", "denseBlock4", "bu", "toNetInput", "weightMap", "extractParamsFromWeightMap", "weights", "extractParams", "fullyConnectedLayer", "x", "params", "B", "Y", "Bt", "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", "Eu", "toNetInput", "netInput", "out", "probabilitesByBatch", "xr", "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", "version", "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", "Y", "kn", "reductionBlock", "isActivateInput", "out", "Pr", "depthwiseSeparableConv", "ku", "mainBlock", "TinyXception", "NeuralNetwork", "numMainBlocks", "input", "B", "batchTensor", "Q", "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", "bu", "age", "fullyConnectedLayer", "gender", "Eu", "toNetInput", "netInput", "out", "ages", "xr", "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", "vo", "getPadding", "batchIdx", "cond", "getPaddingX", "w", "getPaddingY", "_", "input", "out", "toNetInput", "netInput", "landmarkTensors", "xr", "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", "Q", "normalized", "normalize", "out", "denseBlock3", "bu", "toNetInput", "weightMap", "extractParamsFromWeightMapTiny", "weights", "extractParamsTiny", "FaceLandmark68TinyNet", "FaceLandmark68NetBase", "faceFeatureExtractor", "TinyFaceFeatureExtractor", "FaceLandmarkNet", "FaceLandmark68Net", "scale", "x", "params", "Y", "$", "convLayer", "x", "params", "strides", "withRelu", "padding", "filters", "bias", "out", "kn", "Y", "scale", "Pr", "conv", "convNoRelu", "convDown", "extractorsFactory", "extractWeights", "paramMappings", "extractFilterValues", "numFilterValues", "numFilters", "filterSize", "weights", "depth", "isFloat", "B", "Vt", "hA", "extractConvParams", "mappedPrefix", "filters", "bias", "Ke", "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", "ui", "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", "Y", "Pr", "residualDown", "convDown", "pooled", "bu", "zeros", "Te", "isPad", "padShapeX", "zerosW", "se", "padShapeY", "zerosH", "FaceRecognitionNet", "NeuralNetwork", "input", "params", "B", "batchTensor", "Q", "normalized", "normalize", "out", "convDown", "ku", "residual", "residualDown", "globalAvg", "Bt", "toNetInput", "_a", "dim", "netInput", "faceDescriptorTensors", "xr", "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", "hA", "batch_norm_scale", "Ke", "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", "py", "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", "kn", "Y", "vr", "epsilon", "depthwiseConvLayer", "x", "params", "strides", "B", "out", "sa", "na", "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", "xr", "Vt", "sizes", "lt", "centers", "Y", "ct", "decodeBoxesLayer", "x0", "x1", "div0_out", "$", "ir", "add0_out", "div1_out", "add1_out", "qe", "outputLayer", "boxPredictions", "classPredictions", "params", "B", "batchSize", "boxes", "R", "Fr", "scoresAndClasses", "tn", "Ot", "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", "se", "classPredictions", "SsdMobilenetv1Options", "minConfidence", "maxResults", "SsdMobilenetv1", "NeuralNetwork", "input", "params", "B", "batchTensor", "Q", "x", "lt", "ct", "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", "$", "ft", "Y", "Pr", "lt", "convWithBatchNorm", "x", "params", "B", "out", "fn", "kn", "lt", "$", "Y", "leaky", "depthwiseSeparableConv", "x", "params", "B", "out", "fn", "Im", "Y", "leaky", "extractorsFactory", "extractWeights", "paramMappings", "extractConvParams", "extractConvParamsFactory", "extractBatchNormParams", "size", "mappedPrefix", "sub", "Ke", "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", "ku", "convLayer", "leaky", "depthwiseSeparableConv", "input", "inputSize", "B", "batchTensor", "Q", "normalize", "toNetInput", "forwardParams", "scoreThreshold", "TinyYolov2Options", "netInput", "out0", "xr", "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", "Eu", "ft", "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", "Pt", "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", "Pt", "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 Eq=Object.create;var u0=Object.defineProperty;var Aq=Object.getOwnPropertyDescriptor;var Dq=Object.getOwnPropertyNames;var $q=Object.getPrototypeOf,Rq=Object.prototype.hasOwnProperty;var wr=(r,t)=>()=>(t||r((t={exports:{}}).exports,t),t.exports),Kt=(r,t)=>{for(var e in t)u0(r,e,{get:t[e],enumerable:!0})},Fq=(r,t,e,n)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let o of Dq(t))!Rq.call(r,o)&&o!==e&&u0(r,o,{get:()=>t[o],enumerable:!(n=Aq(t,o))||n.enumerable});return r};var Xl=(r,t,e)=>(e=r!=null?Eq($q(r)):{},Fq(t||!r||!r.__esModule?u0(e,\"default\",{value:r,enumerable:!0}):e,r));var M_=wr((Zmt,P_)=>{P_.exports=Ue;var Io=null;try{Io=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 Gn(r){return(r&&r.__isLong__)===!0}Ue.isLong=Gn;var T_={},__={};function fc(r,t){var e,n,o;return t?(r>>>=0,(o=0<=r&&r<256)&&(n=__[r],n)?n:(e=He(r,(r|0)<0?-1:0,!0),o&&(__[r]=e),e)):(r|=0,(o=-128<=r&&r<128)&&(n=T_[r],n)?n:(e=He(r,r<0?-1:0,!1),o&&(T_[r]=e),e))}Ue.fromInt=fc;function Co(r,t){if(isNaN(r))return t?mc:vo;if(t){if(r<0)return mc;if(r>=$_)return O_}else{if(r<=-A_)return Vn;if(r+1>=A_)return F_}return r<0?Co(-r,t).neg():He(r%Qp|0,r/Qp|0,t)}Ue.fromNumber=Co;function He(r,t,e){return new Ue(r,t,e)}Ue.fromBits=He;var tx=Math.pow;function C0(r,t,e){if(r.length===0)throw Error(\"empty string\");if(r===\"NaN\"||r===\"Infinity\"||r===\"+Infinity\"||r===\"-Infinity\")return vo;if(typeof t==\"number\"?(e=t,t=!1):t=!!t,e=e||10,e<2||360)throw Error(\"interior hyphen\");if(n===0)return C0(r.substring(1),t,e).neg();for(var o=Co(tx(e,8)),s=vo,i=0;i>>0:this.low};xt.toNumber=function(){return this.unsigned?(this.high>>>0)*Qp+(this.low>>>0):this.high*Qp+(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(Vn)?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 Gn(t)||(t=li(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(Gn(t)||(t=li(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(Vn)?Vn:this.not().add(Jp)};xt.neg=xt.negate;xt.add=function(t){Gn(t)||(t=li(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 Gn(t)||(t=li(t)),this.add(t.neg())};xt.sub=xt.subtract;xt.multiply=function(t){if(this.isZero())return vo;if(Gn(t)||(t=li(t)),Io){var e=Io.mul(this.low,this.high,t.low,t.high);return He(e,Io.get_high(),this.unsigned)}if(t.isZero())return vo;if(this.eq(Vn))return t.isOdd()?Vn:vo;if(t.eq(Vn))return this.isOdd()?Vn:vo;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(D_)&&t.lt(D_))return Co(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(Gn(t)||(t=li(t)),t.isZero())throw Error(\"division by zero\");if(Io){if(!this.unsigned&&this.high===-2147483648&&t.low===-1&&t.high===-1)return this;var e=(this.unsigned?Io.div_u:Io.div_s)(this.low,this.high,t.low,t.high);return He(e,Io.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?mc:vo;var n,o,s;if(this.unsigned){if(t.unsigned||(t=t.toUnsigned()),t.gt(this))return mc;if(t.gt(this.shru(1)))return R_;s=mc}else{if(this.eq(Vn)){if(t.eq(Jp)||t.eq(I0))return Vn;if(t.eq(Vn))return Jp;var i=this.shr(1);return n=i.div(t).shl(1),n.eq(vo)?t.isNegative()?Jp:I0:(o=this.sub(t.mul(n)),s=n.add(o.div(t)),s)}else if(t.eq(Vn))return this.unsigned?mc:vo;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=vo}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:tx(2,a-48),l=Co(n),c=l.mul(t);c.isNegative()||c.gt(o);)n-=u,l=Co(n,this.unsigned),c=l.mul(t);l.isZero()&&(l=Jp),s=s.add(l),o=o.sub(c)}return s};xt.div=xt.divide;xt.modulo=function(t){if(Gn(t)||(t=li(t)),Io){var e=(this.unsigned?Io.rem_u:Io.rem_s)(this.low,this.high,t.low,t.high);return He(e,Io.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 Gn(t)||(t=li(t)),He(this.low&t.low,this.high&t.high,this.unsigned)};xt.or=function(t){return Gn(t)||(t=li(t)),He(this.low|t.low,this.high|t.high,this.unsigned)};xt.xor=function(t){return Gn(t)||(t=li(t)),He(this.low^t.low,this.high^t.high,this.unsigned)};xt.shiftLeft=function(t){return Gn(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(Gn(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 yE=wr(()=>{});var bE=wr(()=>{});var YE=wr((XE,eN)=>{(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})(XE,typeof eN==\"object\"&&eN,typeof define==\"function\"&&define)});var JE=wr((ZE,rN)=>{(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})(ZE,typeof rN==\"object\"&&rN,typeof define==\"function\"&&define)});var tA=wr((QE,nN)=>{(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})(QE,typeof nN==\"object\"&&nN,typeof define==\"function\"&&define)});var rA=wr((eA,oN)=>{(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})(eA,typeof oN==\"object\"&&oN,typeof define==\"function\"&&define)});var oA=wr((nA,sN)=>{(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})(nA,typeof sN==\"object\"&&sN,typeof define==\"function\"&&define)});var iA=wr((sA,iN)=>{(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})(sA,typeof iN==\"object\"&&iN,typeof define==\"function\"&&define)});var aA=wr(()=>{});var uA=wr((lA,ny)=>{(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,I,N){var E=[];I=I==!0?{entropy:!0}:I||{};var A=g(h(I.entropy?[w,b(t)]:w==null?x():w,3),E),D=new f(E),F=function(){for(var P=D.g(o),V=a,G=0;P=l;)P/=2,V/=2,G>>>=1;return(P+G)/V};return F.int32=function(){return D.g(4)|0},F.quick=function(){return D.g(4)/4294967296},F.double=F,g(b(D.S),t),(I.pass||N||function(P,V,G,W){return W&&(W.S&&d(W,D),P.state=function(){return d(D,{})}),G?(e[i]=P,V):P})(F,A,\"global\"in I?I.global:this==e,I.state)}function f(w){var I,N=w.length,E=this,A=0,D=E.i=E.j=0,F=E.S=[];for(N||(w=[N++]);A{var _X=YE(),EX=JE(),AX=tA(),DX=rA(),$X=oA(),RX=iA(),Sc=uA();Sc.alea=_X;Sc.xor128=EX;Sc.xorwow=AX;Sc.xorshift7=DX;Sc.xor4096=$X;Sc.tychei=RX;cA.exports=Sc});var Tk=wr(()=>{});var pw=wr(()=>{});var X1=wr(()=>{});var MH=wr(()=>{});var LH=wr(()=>{});var zH=wr(()=>{});var BH=wr((EC,Z1)=>{var Y1=(()=>{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 it.buffer!=re&&je(it.buffer),xe}function n(){return it.buffer!=re&&je(it.buffer),fe}function o(){return it.buffer!=re&&je(it.buffer),Ae}function s(){return it.buffer!=re&&je(it.buffer),Ln}function i(){return it.buffer!=re&&je(it.buffer),lr}function a(){return it.buffer!=re&&je(it.buffer),eo}function u(){return it.buffer!=re&&je(it.buffer),Vr}var l=typeof t!=\"undefined\"?t:{},c,p;l.ready=new Promise(function(M,U){c=M,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=(M,U)=>{throw U},x=typeof window==\"object\",b=typeof importScripts==\"function\",w=typeof process==\"object\"&&typeof process.versions==\"object\"&&typeof process.versions.node==\"string\",I=l.ENVIRONMENT_IS_PTHREAD||!1,N=\"\";function E(M){return l.locateFile?l.locateFile(M,N):N+M}var A,D,F,P;function V(M){if(M instanceof sc)return;X(\"exiting due to exception: \"+M)}if(w){var G=pw(),W=X1();b?N=W.dirname(N)+\"/\":N=__dirname+\"/\",A=(U,dt)=>(U=Ep(U)?new URL(U):W.normalize(U),G.readFileSync(U,dt?void 0:\"utf8\")),F=U=>{var dt=A(U,!0);return dt.buffer||(dt=new Uint8Array(dt)),dt},D=(U,dt,Lt)=>{U=Ep(U)?new URL(U):W.normalize(U),G.readFile(U,function(Zt,Yt){Zt?Lt(Zt):dt(Yt.buffer)})},process.argv.length>1&&(h=process.argv[1].replace(/\\\\/g,\"/\")),d=process.argv.slice(2),process.on(\"uncaughtException\",function(U){if(!(U instanceof sc))throw U}),process.on(\"unhandledRejection\",function(U){throw U}),g=(U,dt)=>{if(Wo())throw process.exitCode=U,dt;V(dt),process.exit(U)},l.inspect=function(){return\"[Emscripten Module object]\"};let M;try{M=MH()}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=M.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=M=>{var U=new XMLHttpRequest;return U.open(\"GET\",M,!1),U.send(null),U.responseText},b&&(F=M=>{var U=new XMLHttpRequest;return U.open(\"GET\",M,!1),U.responseType=\"arraybuffer\",U.send(null),new Uint8Array(U.response)}),D=(M,U,dt)=>{var Lt=new XMLHttpRequest;Lt.open(\"GET\",M,!0),Lt.responseType=\"arraybuffer\",Lt.onload=()=>{if(Lt.status==200||Lt.status==0&&Lt.response){U(Lt.response);return}dt()},Lt.onerror=dt,Lt.send(null)}),P=M=>document.title=M);w&&typeof performance==\"undefined\"&&(global.performance=LH().performance);var q=console.log.bind(console),H=console.warn.bind(console);w&&(q=M=>G.writeSync(1,M+`\n`),H=M=>G.writeSync(2,M+`\n`));var K=l.print||q,X=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,nt=Atomics.store,st=Atomics.compareExchange,at;l.wasmBinary&&(at=l.wasmBinary);var ot=l.noExitRuntime||!0;typeof WebAssembly!=\"object\"&&oc(\"no native wasm support detected\");var it,mt,gt=!1,Ct;function Rt(M,U){M||oc(U)}var Dt=typeof TextDecoder!=\"undefined\"?new TextDecoder(\"utf8\"):void 0;function Ht(M,U,dt){U>>>=0;for(var Lt=U+dt,Zt=U;M[Zt]&&!(Zt>=Lt);)++Zt;if(Zt-U>16&&M.buffer&&Dt)return Dt.decode(M.buffer instanceof SharedArrayBuffer?M.slice(U,Zt):M.subarray(U,Zt));for(var Yt=\"\";U>10,56320|so&1023)}}return Yt}function qt(M,U){return M>>>=0,M?Ht(n(),M,U):\"\"}function ce(M,U,dt,Lt){if(dt>>>=0,!(Lt>0))return 0;for(var Zt=dt,Yt=dt+Lt-1,bt=0;bt=55296&&$t<=57343){var nr=M.charCodeAt(++bt);$t=65536+(($t&1023)<<10)|nr&1023}if($t<=127){if(dt>=Yt)break;U[dt++>>>0]=$t}else if($t<=2047){if(dt+1>=Yt)break;U[dt++>>>0]=192|$t>>6,U[dt++>>>0]=128|$t&63}else if($t<=65535){if(dt+2>=Yt)break;U[dt++>>>0]=224|$t>>12,U[dt++>>>0]=128|$t>>6&63,U[dt++>>>0]=128|$t&63}else{if(dt+3>=Yt)break;U[dt++>>>0]=240|$t>>18,U[dt++>>>0]=128|$t>>12&63,U[dt++>>>0]=128|$t>>6&63,U[dt++>>>0]=128|$t&63}}return U[dt>>>0]=0,dt-Zt}function ge(M,U,dt){return ce(M,n(),U,dt)}var re,xe,fe,Ae,De,Ln,lr,eo,Vr;I&&(re=l.buffer);function je(M){re=M,l.HEAP8=xe=new Int8Array(M),l.HEAP16=Ae=new Int16Array(M),l.HEAP32=Ln=new Int32Array(M),l.HEAPU8=fe=new Uint8Array(M),l.HEAPU16=De=new Uint16Array(M),l.HEAPU32=lr=new Uint32Array(M),l.HEAPF32=eo=new Float32Array(M),l.HEAPF64=Vr=new Float64Array(M)}var Gr=l.INITIAL_MEMORY||16777216;if(I)it=l.wasmMemory,re=l.buffer;else if(l.wasmMemory)it=l.wasmMemory;else if(it=new WebAssembly.Memory({initial:Gr/65536,maximum:65536,shared:!0}),!(it.buffer instanceof SharedArrayBuffer))throw X(\"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&&X(\"(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and/or recent version)\"),Error(\"bad memory\");it&&(re=it.buffer),Gr=re.byteLength,je(re);var Wr,ro=[],no=[],Qr=[],ka=!1;function Wo(){return ot}function Ei(){if(l.preRun)for(typeof l.preRun==\"function\"&&(l.preRun=[l.preRun]);l.preRun.length;)qd(l.preRun.shift());Xd(ro)}function Ar(){ka=!0,!I&&Xd(no)}function Ta(){if(!I){if(l.postRun)for(typeof l.postRun==\"function\"&&(l.postRun=[l.postRun]);l.postRun.length;)o_(l.postRun.shift());Xd(Qr)}}function qd(M){ro.unshift(M)}function Kd(M){no.unshift(M)}function o_(M){Qr.unshift(M)}var ql=0,_p=null,_a=null;function $C(M){ql++,l.monitorRunDependencies&&l.monitorRunDependencies(ql)}function Cg(M){if(ql--,l.monitorRunDependencies&&l.monitorRunDependencies(ql),ql==0&&(_p!==null&&(clearInterval(_p),_p=null),_a)){var U=_a;_a=null,U()}}function oc(M){l.onAbort&&l.onAbort(M),M=\"Aborted(\"+M+\")\",X(M),gt=!0,Ct=1,M+=\". Build with -sASSERTIONS for more info.\";var U=new WebAssembly.RuntimeError(M);throw p(U),U}var RC=\"data:application/octet-stream;base64,\";function vg(M){return M.startsWith(RC)}function Ep(M){return M.startsWith(\"file://\")}var tn;tn=\"tfjs-backend-wasm-threaded-simd.wasm\",vg(tn)||(tn=E(tn));function Sg(M){try{if(M==tn&&at)return new Uint8Array(at);if(F)return F(M);throw\"both async and sync fetching of the wasm failed\"}catch(U){oc(U)}}function FC(){if(!at&&(x||b)){if(typeof fetch==\"function\"&&!Ep(tn))return fetch(tn,{credentials:\"same-origin\"}).then(function(M){if(!M.ok)throw\"failed to load wasm binary file at '\"+tn+\"'\";return M.arrayBuffer()}).catch(function(){return Sg(tn)});if(D)return new Promise(function(M,U){D(tn,function(dt){M(new Uint8Array(dt))},U)})}return Promise.resolve().then(function(){return Sg(tn)})}function OC(){var M={env:Mg,wasi_snapshot_preview1:Mg};function U(bt,$t){var nr=bt.exports;if(l.asm=nr,UC(l.asm._emscripten_tls_init),Wr=l.asm.__indirect_function_table,Kd(l.asm.__wasm_call_ctors),mt=$t,!I){var so=Xt.unusedWorkers.length;Xt.unusedWorkers.forEach(function(Aa){Xt.loadWasmModuleToWorker(Aa,function(){--so||Cg(\"wasm-instantiate\")})})}}I||$C(\"wasm-instantiate\");function dt(bt){U(bt.instance,bt.module)}function Lt(bt){return FC().then(function($t){return WebAssembly.instantiate($t,M)}).then(function($t){return $t}).then(bt,function($t){X(\"failed to asynchronously prepare wasm: \"+$t),oc($t)})}function Zt(){return!at&&typeof WebAssembly.instantiateStreaming==\"function\"&&!vg(tn)&&!Ep(tn)&&!w&&typeof fetch==\"function\"?fetch(tn,{credentials:\"same-origin\"}).then(function(bt){var $t=WebAssembly.instantiateStreaming(bt,M);return $t.then(dt,function(nr){return X(\"wasm streaming compile failed: \"+nr),X(\"falling back to ArrayBuffer instantiation\"),Lt(dt)})}):Lt(dt)}if(l.instantiateWasm)try{var Yt=l.instantiateWasm(M,U);return Yt}catch(bt){X(\"Module.instantiateWasm callback failed with error: \"+bt),p(bt)}return Zt().catch(p),{}}var s_,i_,Ng={};function sc(M){this.name=\"ExitStatus\",this.message=\"Program terminated with exit(\"+M+\")\",this.status=M}function PC(M){var U=Xt.pthreads[M];delete Xt.pthreads[M],U.terminate(),i0(M),Xt.runningWorkers.splice(Xt.runningWorkers.indexOf(U),1),U.pthread_ptr=0}function MC(M){var U=Xt.pthreads[M];U.postMessage({cmd:\"cancel\"})}function jd(M){var U=Xt.pthreads[M];Rt(U),Xt.returnWorkerToPool(U)}function LC(M){var U=Xt.getNewWorker();if(!U)return 6;Xt.runningWorkers.push(U),Xt.pthreads[M.pthread_ptr]=U,U.pthread_ptr=M.pthread_ptr;var dt={cmd:\"run\",start_routine:M.startRoutine,arg:M.arg,pthread_ptr:M.pthread_ptr};return U.runPthread=()=>{w&&U.ref(),U.postMessage(dt,M.transferList),delete U.runPthread},U.loaded&&U.runPthread(),0}var kg={varargs:void 0,get:function(){kg.varargs+=4;var M=s()[kg.varargs-4>>>2];return M},getStr:function(M){var U=qt(M);return U}};function Tg(M){if(I)return Kl(1,1,M);Ct=M,Wo()||(Xt.terminateAllThreads(),l.onExit&&l.onExit(M),gt=!0),g(M,new sc(M))}function zC(M,U){if(Ct=M,!U&&I)throw Eg(M),\"unwind\";Tg(M)}var _g=zC;function BC(M){if(M instanceof sc||M==\"unwind\")return Ct;g(1,M)}var Xt={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init:function(){I?Xt.initWorker():Xt.initMainThread()},initMainThread:function(){for(var M=8;M--;)Xt.allocateUnusedWorker()},initWorker:function(){ot=!1},setExitStatus:function(M){Ct=M},terminateAllThreads:function(){for(var M of Object.values(Xt.pthreads))Xt.returnWorkerToPool(M);for(var M of Xt.unusedWorkers)M.terminate();Xt.unusedWorkers=[]},returnWorkerToPool:function(M){var U=M.pthread_ptr;delete Xt.pthreads[U],Xt.unusedWorkers.push(M),Xt.runningWorkers.splice(Xt.runningWorkers.indexOf(M),1),M.pthread_ptr=0,w&&M.unref(),i0(U)},receiveObjectTransfer:function(M){},threadInitTLS:function(){Xt.tlsInitFunctions.forEach(M=>M())},loadWasmModuleToWorker:function(M,U){M.onmessage=Yt=>{var bt=Yt.data,$t=bt.cmd;if(M.pthread_ptr&&(Xt.currentProxiedOperationCallerThread=M.pthread_ptr),bt.targetThread&&bt.targetThread!=Wg()){var nr=Xt.pthreads[bt.targetThread];nr?nr.postMessage(bt,bt.transferList):X('Internal error! Worker sent a message \"'+$t+'\" to target pthread '+bt.targetThread+\", but that thread no longer exists!\"),Xt.currentProxiedOperationCallerThread=void 0;return}$t===\"processProxyingQueue\"?Yd(bt.queue):$t===\"spawnThread\"?LC(bt):$t===\"cleanupThread\"?jd(bt.thread):$t===\"killThread\"?PC(bt.thread):$t===\"cancelThread\"?MC(bt.thread):$t===\"loaded\"?(M.loaded=!0,w&&M.unref(),U&&U(M),M.runPthread&&M.runPthread()):$t===\"print\"?K(\"Thread \"+bt.threadId+\": \"+bt.text):$t===\"printErr\"?X(\"Thread \"+bt.threadId+\": \"+bt.text):$t===\"alert\"?alert(\"Thread \"+bt.threadId+\": \"+bt.text):bt.target===\"setimmediate\"?M.postMessage(bt):$t===\"callHandler\"?l[bt.handler](...bt.args):$t&&X(\"worker sent an unknown command \"+$t),Xt.currentProxiedOperationCallerThread=void 0},M.onerror=Yt=>{var bt=\"worker sent an error!\";throw X(bt+\" \"+Yt.filename+\":\"+Yt.lineno+\": \"+Yt.message),Yt},w&&(M.on(\"message\",function(Yt){M.onmessage({data:Yt})}),M.on(\"error\",function(Yt){M.onerror(Yt)}),M.on(\"detachedExit\",function(){}));var dt=[],Lt=[\"onExit\",\"onAbort\",\"print\",\"printErr\"];for(var Zt of Lt)l.hasOwnProperty(Zt)&&dt.push(Zt);M.postMessage({cmd:\"load\",handlers:dt,urlOrBlob:l.mainScriptUrlOrBlob||r,wasmMemory:it,wasmModule:mt})},allocateUnusedWorker:function(){var M,U=E(\"tfjs-backend-wasm-threaded-simd.worker.js\");M=new Worker(U),Xt.unusedWorkers.push(M)},getNewWorker:function(){return Xt.unusedWorkers.length==0&&(Xt.allocateUnusedWorker(),Xt.loadWasmModuleToWorker(Xt.unusedWorkers[0])),Xt.unusedWorkers.pop()}};l.PThread=Xt;function Xd(M){for(;M.length>0;)M.shift()(l)}function VC(){var M=Wg(),U=s()[M+52>>>2],dt=s()[M+56>>>2],Lt=U-dt;m_(U,Lt),Ug(U)}l.establishStackSpace=VC;function Eg(M){if(I)return Kl(2,0,M);try{_g(M)}catch(U){BC(U)}}var Ap=[];function GC(M){var U=Ap[M];return U||(M>=Ap.length&&(Ap.length=M+1),Ap[M]=U=Wr.get(M)),U}function WC(M,U){var dt=GC(M)(U);Wo()?Xt.setExitStatus(dt):p_(dt)}l.invokeEntryPoint=WC;function UC(M){Xt.tlsInitFunctions.push(M)}function HC(M){l_(M,!b,1,!x),Xt.threadInitTLS()}function qC(M){I?postMessage({cmd:\"cleanupThread\",thread:M}):jd(M)}function Ag(M,U,dt,Lt){return I?Kl(3,1,M,U,dt,Lt):Dg(M,U,dt,Lt)}function Dg(M,U,dt,Lt){if(typeof SharedArrayBuffer==\"undefined\")return X(\"Current environment does not support SharedArrayBuffer, pthreads are not available!\"),6;var Zt=[],Yt=0;if(I&&(Zt.length===0||Yt))return Ag(M,U,dt,Lt);if(Yt)return Yt;var bt={startRoutine:dt,pthread_ptr:M,arg:Lt,transferList:Zt};return I?(bt.cmd=\"spawnThread\",postMessage(bt,Zt),0):LC(bt)}function KC(){return 65536}var jC=!0;function XC(){return jC}function Yd(M){Atomics.store(s(),M>>2,1),Wg()&&c_(M),Atomics.compareExchange(s(),M>>2,1,0)}l.executeNotifiedProxyingQueue=Yd;function YC(M,U,dt,Lt){if(M==U)setTimeout(()=>Yd(Lt));else if(I)postMessage({targetThread:M,cmd:\"processProxyingQueue\",queue:Lt});else{var Zt=Xt.pthreads[M];if(!Zt)return;Zt.postMessage({cmd:\"processProxyingQueue\",queue:Lt})}return 1}function ZC(M,U,dt){return-1}function JC(){oc(\"\")}function ic(M){ic.shown||(ic.shown={}),ic.shown[M]||(ic.shown[M]=1,w&&(M=\"warning: \"+M),X(M))}function QC(){w||b||ic(\"Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread\")}function tv(){return Date.now()}function $g(){return 4294901760}function ev(){return $g()}var Zd;w?Zd=()=>{var M=process.hrtime();return M[0]*1e3+M[1]/1e6}:Zd=()=>performance.timeOrigin+performance.now();function rv(M,U,dt){n().copyWithin(M>>>0,U>>>0,U+dt>>>0)}function nv(){return w?zH().cpus().length:navigator.hardwareConcurrency}function ov(M){var U=a0(),dt=M();return Ug(U),dt}function Kl(M,U){var dt=arguments.length-2,Lt=arguments;return ov(()=>{for(var Zt=dt,Yt=Hg(Zt*8),bt=Yt>>3,$t=0;$t>>0]=nr}return u_(M,Zt,Yt,U)})}var Jd=[];function sv(M,U,dt){Jd.length=U;for(var Lt=dt>>3,Zt=0;Zt>>0];var Yt=M<0,bt=Yt?Ng[-M-1]:dv[M];return bt.apply(null,Jd)}function iv(M){try{return it.grow(M-re.byteLength+65535>>>16),je(it.buffer),1}catch(U){}}function av(M){var U=n().length;if(M=M>>>0,M<=U)return!1;var dt=$g();if(M>dt)return!1;let Lt=(nr,so)=>nr+(so-nr%so)%so;for(var Zt=1;Zt<=4;Zt*=2){var Yt=U*(1+.2/Zt);Yt=Math.min(Yt,M+100663296);var bt=Math.min(dt,Lt(Math.max(M,Yt),65536)),$t=iv(bt);if($t)return!0}return!1}function lv(){throw\"unwind\"}function Rg(M){return I?Kl(4,1,M):52}function Fg(M,U,dt,Lt,Zt){return I?Kl(5,1,M,U,dt,Lt,Zt):70}var uv=[null,[],[]];function cv(M,U){var dt=uv[M];U===0||U===10?((M===1?K:X)(Ht(dt,0)),dt.length=0):dt.push(U)}function Og(M,U,dt,Lt){if(I)return Kl(6,1,M,U,dt,Lt);for(var Zt=0,Yt=0;Yt>>2],$t=i()[U+4>>>2];U+=8;for(var nr=0;nr<$t;nr++)cv(M,n()[bt+nr>>>0]);Zt+=$t}return i()[Lt>>>2]=Zt,0}function Pg(M){var U=l[\"_\"+M];return U}function pv(M,U){e().set(M,U>>>0)}function mv(M,U,dt,Lt,Zt){var Yt={string:zn=>{var Fp=0;if(zn!=null&&zn!==0){var h_=(zn.length<<2)+1;Fp=Hg(h_),ge(zn,Fp,h_)}return Fp},array:zn=>{var Fp=Hg(zn.length);return pv(zn,Fp),Fp}};function bt(zn){return U===\"string\"?qt(zn):U===\"boolean\"?!!zn:zn}var $t=Pg(M),nr=[],so=0;if(Lt)for(var Aa=0;Aabt===\"number\"||bt===\"boolean\"),Yt=U!==\"string\";return Yt&&Zt&&!Lt?Pg(M):function(){return mv(M,U,dt,arguments,Lt)}}Xt.init();var dv=[null,Tg,Eg,Ag,Rg,Fg,Og],Mg={__emscripten_init_main_thread_js:HC,__emscripten_thread_cleanup:qC,__pthread_create_js:Dg,_emscripten_default_pthread_stack_size:KC,_emscripten_get_now_is_monotonic:XC,_emscripten_notify_task_queue:YC,_emscripten_set_offscreencanvas_size:ZC,abort:JC,emscripten_check_blocking_allowed:QC,emscripten_date_now:tv,emscripten_get_heap_max:ev,emscripten_get_now:Zd,emscripten_memcpy_big:rv,emscripten_num_logical_cores:nv,emscripten_receive_on_main_thread_js:sv,emscripten_resize_heap:av,emscripten_unwind_to_js_event_loop:lv,exit:_g,fd_close:Rg,fd_seek:Fg,fd_write:Og,memory:it||l.wasmMemory},a_=OC(),hv=l.___wasm_call_ctors=function(){return(hv=l.___wasm_call_ctors=l.asm.__wasm_call_ctors).apply(null,arguments)},gv=l._init=function(){return(gv=l._init=l.asm.init).apply(null,arguments)},xv=l._init_with_threads_count=function(){return(xv=l._init_with_threads_count=l.asm.init_with_threads_count).apply(null,arguments)},yv=l._get_threads_count=function(){return(yv=l._get_threads_count=l.asm.get_threads_count).apply(null,arguments)},bv=l._register_tensor=function(){return(bv=l._register_tensor=l.asm.register_tensor).apply(null,arguments)},wv=l._dispose_data=function(){return(wv=l._dispose_data=l.asm.dispose_data).apply(null,arguments)},Iv=l._dispose=function(){return(Iv=l._dispose=l.asm.dispose).apply(null,arguments)},Cv=l._Abs=function(){return(Cv=l._Abs=l.asm.Abs).apply(null,arguments)},vv=l._Acos=function(){return(vv=l._Acos=l.asm.Acos).apply(null,arguments)},Sv=l._Acosh=function(){return(Sv=l._Acosh=l.asm.Acosh).apply(null,arguments)},Nv=l._Add=function(){return(Nv=l._Add=l.asm.Add).apply(null,arguments)},kv=l._AddN=function(){return(kv=l._AddN=l.asm.AddN).apply(null,arguments)},Tv=l._All=function(){return(Tv=l._All=l.asm.All).apply(null,arguments)},_v=l._Any=function(){return(_v=l._Any=l.asm.Any).apply(null,arguments)},Ev=l._ArgMax=function(){return(Ev=l._ArgMax=l.asm.ArgMax).apply(null,arguments)},Av=l._ArgMin=function(){return(Av=l._ArgMin=l.asm.ArgMin).apply(null,arguments)},Dv=l._Asin=function(){return(Dv=l._Asin=l.asm.Asin).apply(null,arguments)},$v=l._Asinh=function(){return($v=l._Asinh=l.asm.Asinh).apply(null,arguments)},Rv=l._Atan=function(){return(Rv=l._Atan=l.asm.Atan).apply(null,arguments)},Fv=l._Atan2=function(){return(Fv=l._Atan2=l.asm.Atan2).apply(null,arguments)},Ov=l._Atanh=function(){return(Ov=l._Atanh=l.asm.Atanh).apply(null,arguments)},Pv=l._AvgPool=function(){return(Pv=l._AvgPool=l.asm.AvgPool).apply(null,arguments)},Mv=l._AvgPool3D=function(){return(Mv=l._AvgPool3D=l.asm.AvgPool3D).apply(null,arguments)},Lv=l._AvgPool3DGrad=function(){return(Lv=l._AvgPool3DGrad=l.asm.AvgPool3DGrad).apply(null,arguments)},zv=l._AvgPoolGrad=function(){return(zv=l._AvgPoolGrad=l.asm.AvgPoolGrad).apply(null,arguments)},Bv=l._BatchMatMul=function(){return(Bv=l._BatchMatMul=l.asm.BatchMatMul).apply(null,arguments)},Vv=l._Bincount=function(){return(Vv=l._Bincount=l.asm.Bincount).apply(null,arguments)},Gv=l._BitwiseAnd=function(){return(Gv=l._BitwiseAnd=l.asm.BitwiseAnd).apply(null,arguments)},Wv=l._Ceil=function(){return(Wv=l._Ceil=l.asm.Ceil).apply(null,arguments)},Uv=l._ClipByValue=function(){return(Uv=l._ClipByValue=l.asm.ClipByValue).apply(null,arguments)},Hv=l._Conv2D=function(){return(Hv=l._Conv2D=l.asm.Conv2D).apply(null,arguments)},qv=l._Conv2DBackpropInput=function(){return(qv=l._Conv2DBackpropInput=l.asm.Conv2DBackpropInput).apply(null,arguments)},Kv=l._Conv3D=function(){return(Kv=l._Conv3D=l.asm.Conv3D).apply(null,arguments)},jv=l._Conv3DBackpropFilterV2=function(){return(jv=l._Conv3DBackpropFilterV2=l.asm.Conv3DBackpropFilterV2).apply(null,arguments)},Xv=l._Conv3DBackpropInputV2=function(){return(Xv=l._Conv3DBackpropInputV2=l.asm.Conv3DBackpropInputV2).apply(null,arguments)},Yv=l._Cos=function(){return(Yv=l._Cos=l.asm.Cos).apply(null,arguments)},Zv=l._Cosh=function(){return(Zv=l._Cosh=l.asm.Cosh).apply(null,arguments)},Jv=l._CropAndResize=function(){return(Jv=l._CropAndResize=l.asm.CropAndResize).apply(null,arguments)},Qv=l._Cumprod=function(){return(Qv=l._Cumprod=l.asm.Cumprod).apply(null,arguments)},tS=l._Cumsum=function(){return(tS=l._Cumsum=l.asm.Cumsum).apply(null,arguments)},eS=l._DenseBincount=function(){return(eS=l._DenseBincount=l.asm.DenseBincount).apply(null,arguments)},rS=l._DepthToSpace=function(){return(rS=l._DepthToSpace=l.asm.DepthToSpace).apply(null,arguments)},nS=l._DepthwiseConv2dNative=function(){return(nS=l._DepthwiseConv2dNative=l.asm.DepthwiseConv2dNative).apply(null,arguments)},oS=l._Diag=function(){return(oS=l._Diag=l.asm.Diag).apply(null,arguments)},sS=l._Dilation2D=function(){return(sS=l._Dilation2D=l.asm.Dilation2D).apply(null,arguments)},iS=l._Dilation2DBackpropFilter=function(){return(iS=l._Dilation2DBackpropFilter=l.asm.Dilation2DBackpropFilter).apply(null,arguments)},aS=l._Dilation2DBackpropInput=function(){return(aS=l._Dilation2DBackpropInput=l.asm.Dilation2DBackpropInput).apply(null,arguments)},lS=l._Elu=function(){return(lS=l._Elu=l.asm.Elu).apply(null,arguments)},uS=l._EluGrad=function(){return(uS=l._EluGrad=l.asm.EluGrad).apply(null,arguments)},cS=l._Equal=function(){return(cS=l._Equal=l.asm.Equal).apply(null,arguments)},pS=l._Erf=function(){return(pS=l._Erf=l.asm.Erf).apply(null,arguments)},mS=l._Exp=function(){return(mS=l._Exp=l.asm.Exp).apply(null,arguments)},fS=l._Expm1=function(){return(fS=l._Expm1=l.asm.Expm1).apply(null,arguments)},dS=l._FlipLeftRight=function(){return(dS=l._FlipLeftRight=l.asm.FlipLeftRight).apply(null,arguments)},hS=l._Floor=function(){return(hS=l._Floor=l.asm.Floor).apply(null,arguments)},gS=l._FloorDiv=function(){return(gS=l._FloorDiv=l.asm.FloorDiv).apply(null,arguments)},xS=l._FusedBatchNorm=function(){return(xS=l._FusedBatchNorm=l.asm.FusedBatchNorm).apply(null,arguments)},yS=l._FusedConv2D=function(){return(yS=l._FusedConv2D=l.asm.FusedConv2D).apply(null,arguments)},bS=l._FusedDepthwiseConv2D=function(){return(bS=l._FusedDepthwiseConv2D=l.asm.FusedDepthwiseConv2D).apply(null,arguments)},wS=l._Gather=function(){return(wS=l._Gather=l.asm.Gather).apply(null,arguments)},IS=l._GatherNd=function(){return(IS=l._GatherNd=l.asm.GatherNd).apply(null,arguments)},CS=l._Greater=function(){return(CS=l._Greater=l.asm.Greater).apply(null,arguments)},vS=l._GreaterEqual=function(){return(vS=l._GreaterEqual=l.asm.GreaterEqual).apply(null,arguments)},SS=l._IsFinite=function(){return(SS=l._IsFinite=l.asm.IsFinite).apply(null,arguments)},NS=l._IsInf=function(){return(NS=l._IsInf=l.asm.IsInf).apply(null,arguments)},kS=l._IsNan=function(){return(kS=l._IsNan=l.asm.IsNan).apply(null,arguments)},TS=l._LRN=function(){return(TS=l._LRN=l.asm.LRN).apply(null,arguments)},_S=l._LRNGrad=function(){return(_S=l._LRNGrad=l.asm.LRNGrad).apply(null,arguments)},ES=l._LeakyRelu=function(){return(ES=l._LeakyRelu=l.asm.LeakyRelu).apply(null,arguments)},AS=l._Less=function(){return(AS=l._Less=l.asm.Less).apply(null,arguments)},DS=l._LessEqual=function(){return(DS=l._LessEqual=l.asm.LessEqual).apply(null,arguments)},$S=l._LinSpace=function(){return($S=l._LinSpace=l.asm.LinSpace).apply(null,arguments)},RS=l._Log=function(){return(RS=l._Log=l.asm.Log).apply(null,arguments)},FS=l._Log1p=function(){return(FS=l._Log1p=l.asm.Log1p).apply(null,arguments)},OS=l._LogicalAnd=function(){return(OS=l._LogicalAnd=l.asm.LogicalAnd).apply(null,arguments)},PS=l._LogicalNot=function(){return(PS=l._LogicalNot=l.asm.LogicalNot).apply(null,arguments)},MS=l._LogicalOr=function(){return(MS=l._LogicalOr=l.asm.LogicalOr).apply(null,arguments)},LS=l._LogicalXor=function(){return(LS=l._LogicalXor=l.asm.LogicalXor).apply(null,arguments)},zS=l._Max=function(){return(zS=l._Max=l.asm.Max).apply(null,arguments)},BS=l._MaxPool=function(){return(BS=l._MaxPool=l.asm.MaxPool).apply(null,arguments)},VS=l._MaxPool3D=function(){return(VS=l._MaxPool3D=l.asm.MaxPool3D).apply(null,arguments)},GS=l._MaxPool3DGrad=function(){return(GS=l._MaxPool3DGrad=l.asm.MaxPool3DGrad).apply(null,arguments)},WS=l._MaxPoolGrad=function(){return(WS=l._MaxPoolGrad=l.asm.MaxPoolGrad).apply(null,arguments)},US=l._MaxPoolWithArgmax=function(){return(US=l._MaxPoolWithArgmax=l.asm.MaxPoolWithArgmax).apply(null,arguments)},HS=l._Maximum=function(){return(HS=l._Maximum=l.asm.Maximum).apply(null,arguments)},qS=l._Mean=function(){return(qS=l._Mean=l.asm.Mean).apply(null,arguments)},KS=l._Min=function(){return(KS=l._Min=l.asm.Min).apply(null,arguments)},jS=l._Minimum=function(){return(jS=l._Minimum=l.asm.Minimum).apply(null,arguments)},XS=l._MirrorPad=function(){return(XS=l._MirrorPad=l.asm.MirrorPad).apply(null,arguments)},YS=l._Mod=function(){return(YS=l._Mod=l.asm.Mod).apply(null,arguments)},ZS=l._Multinomial=function(){return(ZS=l._Multinomial=l.asm.Multinomial).apply(null,arguments)},JS=l._Multiply=function(){return(JS=l._Multiply=l.asm.Multiply).apply(null,arguments)},QS=l._Neg=function(){return(QS=l._Neg=l.asm.Neg).apply(null,arguments)},t0=l._NonMaxSuppressionV3=function(){return(t0=l._NonMaxSuppressionV3=l.asm.NonMaxSuppressionV3).apply(null,arguments)},e0=l._NonMaxSuppressionV4=function(){return(e0=l._NonMaxSuppressionV4=l.asm.NonMaxSuppressionV4).apply(null,arguments)},Lg=l._NonMaxSuppressionV5=function(){return(Lg=l._NonMaxSuppressionV5=l.asm.NonMaxSuppressionV5).apply(null,arguments)},zg=l._NotEqual=function(){return(zg=l._NotEqual=l.asm.NotEqual).apply(null,arguments)},Qd=l._OneHot=function(){return(Qd=l._OneHot=l.asm.OneHot).apply(null,arguments)},r0=l._PadV2=function(){return(r0=l._PadV2=l.asm.PadV2).apply(null,arguments)},n0=l._Pow=function(){return(n0=l._Pow=l.asm.Pow).apply(null,arguments)},Dp=l._Prelu=function(){return(Dp=l._Prelu=l.asm.Prelu).apply(null,arguments)},Bg=l._Prod=function(){return(Bg=l._Prod=l.asm.Prod).apply(null,arguments)},$p=l._RealDiv=function(){return($p=l._RealDiv=l.asm.RealDiv).apply(null,arguments)},Rp=l._Reciprocal=function(){return(Rp=l._Reciprocal=l.asm.Reciprocal).apply(null,arguments)},o0=l._Relu=function(){return(o0=l._Relu=l.asm.Relu).apply(null,arguments)},j=l._Relu6=function(){return(j=l._Relu6=l.asm.Relu6).apply(null,arguments)},ut=l._ResizeBilinear=function(){return(ut=l._ResizeBilinear=l.asm.ResizeBilinear).apply(null,arguments)},Ft=l._ResizeBilinearGrad=function(){return(Ft=l._ResizeBilinearGrad=l.asm.ResizeBilinearGrad).apply(null,arguments)},pe=l._ResizeNearestNeighbor=function(){return(pe=l._ResizeNearestNeighbor=l.asm.ResizeNearestNeighbor).apply(null,arguments)},Xe=l._ResizeNearestNeighborGrad=function(){return(Xe=l._ResizeNearestNeighborGrad=l.asm.ResizeNearestNeighborGrad).apply(null,arguments)},Ye=l._Reverse=function(){return(Ye=l._Reverse=l.asm.Reverse).apply(null,arguments)},se=l._RotateWithOffset=function(){return(se=l._RotateWithOffset=l.asm.RotateWithOffset).apply(null,arguments)},ne=l._Round=function(){return(ne=l._Round=l.asm.Round).apply(null,arguments)},br=l._Rsqrt=function(){return(br=l._Rsqrt=l.asm.Rsqrt).apply(null,arguments)},oo=l._ScatterNd=function(){return(oo=l._ScatterNd=l.asm.ScatterNd).apply(null,arguments)},Ea=l._SearchSorted=function(){return(Ea=l._SearchSorted=l.asm.SearchSorted).apply(null,arguments)},Vg=l._SelectV2=function(){return(Vg=l._SelectV2=l.asm.SelectV2).apply(null,arguments)},th=l._Selu=function(){return(th=l._Selu=l.asm.Selu).apply(null,arguments)},s0=l._Sigmoid=function(){return(s0=l._Sigmoid=l.asm.Sigmoid).apply(null,arguments)},sn=l._Sign=function(){return(sn=l._Sign=l.asm.Sign).apply(null,arguments)},jl=l._Sin=function(){return(jl=l._Sin=l.asm.Sin).apply(null,arguments)},Gg=l._Sinh=function(){return(Gg=l._Sinh=l.asm.Sinh).apply(null,arguments)},YH=l._Softmax=function(){return(YH=l._Softmax=l.asm.Softmax).apply(null,arguments)},ZH=l._Softplus=function(){return(ZH=l._Softplus=l.asm.Softplus).apply(null,arguments)},JH=l._SparseFillEmptyRows=function(){return(JH=l._SparseFillEmptyRows=l.asm.SparseFillEmptyRows).apply(null,arguments)},QH=l._SparseReshape=function(){return(QH=l._SparseReshape=l.asm.SparseReshape).apply(null,arguments)},tq=l._SparseSegmentReduction=function(){return(tq=l._SparseSegmentReduction=l.asm.SparseSegmentReduction).apply(null,arguments)},eq=l._SparseToDense=function(){return(eq=l._SparseToDense=l.asm.SparseToDense).apply(null,arguments)},rq=l._Sqrt=function(){return(rq=l._Sqrt=l.asm.Sqrt).apply(null,arguments)},nq=l._Square=function(){return(nq=l._Square=l.asm.Square).apply(null,arguments)},oq=l._SquaredDifference=function(){return(oq=l._SquaredDifference=l.asm.SquaredDifference).apply(null,arguments)},sq=l._Step=function(){return(sq=l._Step=l.asm.Step).apply(null,arguments)},iq=l._StridedSlice=function(){return(iq=l._StridedSlice=l.asm.StridedSlice).apply(null,arguments)},aq=l._Sub=function(){return(aq=l._Sub=l.asm.Sub).apply(null,arguments)},lq=l._Sum=function(){return(lq=l._Sum=l.asm.Sum).apply(null,arguments)},uq=l._Tan=function(){return(uq=l._Tan=l.asm.Tan).apply(null,arguments)},cq=l._Tanh=function(){return(cq=l._Tanh=l.asm.Tanh).apply(null,arguments)},pq=l._TensorScatterUpdate=function(){return(pq=l._TensorScatterUpdate=l.asm.TensorScatterUpdate).apply(null,arguments)},mq=l._Tile=function(){return(mq=l._Tile=l.asm.Tile).apply(null,arguments)},fq=l._TopK=function(){return(fq=l._TopK=l.asm.TopK).apply(null,arguments)},dq=l._Transform=function(){return(dq=l._Transform=l.asm.Transform).apply(null,arguments)},hq=l._Transpose=function(){return(hq=l._Transpose=l.asm.Transpose).apply(null,arguments)},gq=l.__FusedMatMul=function(){return(gq=l.__FusedMatMul=l.asm._FusedMatMul).apply(null,arguments)},xq=l._malloc=function(){return(xq=l._malloc=l.asm.malloc).apply(null,arguments)},yq=l._free=function(){return(yq=l._free=l.asm.free).apply(null,arguments)},bq=l.__emscripten_tls_init=function(){return(bq=l.__emscripten_tls_init=l.asm._emscripten_tls_init).apply(null,arguments)},Wg=l._pthread_self=function(){return(Wg=l._pthread_self=l.asm.pthread_self).apply(null,arguments)},wq=l.___errno_location=function(){return(wq=l.___errno_location=l.asm.__errno_location).apply(null,arguments)},l_=l.__emscripten_thread_init=function(){return(l_=l.__emscripten_thread_init=l.asm._emscripten_thread_init).apply(null,arguments)},Iq=l.__emscripten_thread_crashed=function(){return(Iq=l.__emscripten_thread_crashed=l.asm._emscripten_thread_crashed).apply(null,arguments)},Cq=l._emscripten_main_thread_process_queued_calls=function(){return(Cq=l._emscripten_main_thread_process_queued_calls=l.asm.emscripten_main_thread_process_queued_calls).apply(null,arguments)},vq=l._emscripten_main_browser_thread_id=function(){return(vq=l._emscripten_main_browser_thread_id=l.asm.emscripten_main_browser_thread_id).apply(null,arguments)},u_=l._emscripten_run_in_main_runtime_thread_js=function(){return(u_=l._emscripten_run_in_main_runtime_thread_js=l.asm.emscripten_run_in_main_runtime_thread_js).apply(null,arguments)},Sq=l._emscripten_dispatch_to_thread_=function(){return(Sq=l._emscripten_dispatch_to_thread_=l.asm.emscripten_dispatch_to_thread_).apply(null,arguments)},c_=l.__emscripten_proxy_execute_task_queue=function(){return(c_=l.__emscripten_proxy_execute_task_queue=l.asm._emscripten_proxy_execute_task_queue).apply(null,arguments)},i0=l.__emscripten_thread_free_data=function(){return(i0=l.__emscripten_thread_free_data=l.asm._emscripten_thread_free_data).apply(null,arguments)},p_=l.__emscripten_thread_exit=function(){return(p_=l.__emscripten_thread_exit=l.asm._emscripten_thread_exit).apply(null,arguments)},m_=l._emscripten_stack_set_limits=function(){return(m_=l._emscripten_stack_set_limits=l.asm.emscripten_stack_set_limits).apply(null,arguments)},a0=l.stackSave=function(){return(a0=l.stackSave=l.asm.stackSave).apply(null,arguments)},Ug=l.stackRestore=function(){return(Ug=l.stackRestore=l.asm.stackRestore).apply(null,arguments)},Hg=l.stackAlloc=function(){return(Hg=l.stackAlloc=l.asm.stackAlloc).apply(null,arguments)},Nq=l.dynCall_iijjiiii=function(){return(Nq=l.dynCall_iijjiiii=l.asm.dynCall_iijjiiii).apply(null,arguments)},kq=l.dynCall_jiji=function(){return(kq=l.dynCall_jiji=l.asm.dynCall_jiji).apply(null,arguments)};l.keepRuntimeAlive=Wo,l.wasmMemory=it,l.cwrap=fv,l.ExitStatus=sc,l.PThread=Xt;var qg;_a=function M(){qg||f_(),qg||(_a=M)};function f_(M){if(M=M||d,ql>0)return;if(I){c(l),Ar(),startWorker(l);return}if(Ei(),ql>0)return;function U(){qg||(qg=!0,l.calledRun=!0,!gt&&(Ar(),c(l),l.onRuntimeInitialized&&l.onRuntimeInitialized(),Ta()))}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()();f_();var Kg;m&&(Kg={uncaughtException:process.listeners(\"uncaughtException\").filter(function(M){return!m.uncaughtException.indexOf(M)>-1}),unhandledRejection:process.listeners(\"unhandledRejection\").filter(function(M){return!m.unhandledRejection.indexOf(M)>-1})});var jg;if(typeof WasmBackendModule!=\"undefined\")jg=WasmBackendModule;else if(typeof t!=\"undefined\")jg=t;else throw new Error(\"Could not find wasm module in post.js\");if(Kg){var Tq=jg._dispose;jg._dispose=function(){Tq(),Kg.uncaughtException.forEach(function(M){process.removeListener(\"uncaughtException\",M)}),Kg.unhandledRejection.forEach(function(M){process.removeListener(\"unhandledRejection\",M)})}}return t.ready}})();typeof EC==\"object\"&&typeof Z1==\"object\"?Z1.exports=Y1:typeof define==\"function\"&&define.amd?define([],function(){return Y1}):typeof EC==\"object\"&&(EC.WasmBackendModuleThreadedSimd=Y1)});var GH=wr((Mrr,VH)=>{VH.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\")+\"//# sourceURL=\"+f)},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.startWorker=instance=>{Module=instance;postMessage({\"cmd\":\"loaded\"})};self.onmessage=e=>{try{if(e.data.cmd===\"load\"){Module[\"wasmModule\"]=e.data.wasmModule;for(const handler of e.data.handlers){Module[handler]=function(){postMessage({cmd:\"callHandler\",handler:handler,args:[...arguments]})}}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)}else if(e.data.cmd===\"run\"){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 WH=wr((AC,Q1)=>{var J1=(()=>{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(j,ut){n=j,o=ut});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=(j,ut)=>{throw ut},c=typeof window==\"object\",p=typeof importScripts==\"function\",m=typeof process==\"object\"&&typeof process.versions==\"object\"&&typeof process.versions.node==\"string\",f=\"\";function d(j){return e.locateFile?e.locateFile(j,f):f+j}var h,g,x,b;function w(j){if(j instanceof _p)return;A(\"exiting due to exception: \"+j)}if(m){var I=pw(),N=X1();p?f=N.dirname(f)+\"/\":f=__dirname+\"/\",h=(j,ut)=>(j=Ei(j)?new URL(j):N.normalize(j),I.readFileSync(j,ut?void 0:\"utf8\")),x=j=>{var ut=h(j,!0);return ut.buffer||(ut=new Uint8Array(ut)),ut},g=(j,ut,Ft)=>{j=Ei(j)?new URL(j):N.normalize(j),I.readFile(j,function(pe,Xe){pe?Ft(pe):ut(Xe.buffer)})},process.argv.length>1&&(u=process.argv[1].replace(/\\\\/g,\"/\")),a=process.argv.slice(2),process.on(\"uncaughtException\",function(j){if(!(j instanceof _p))throw j}),process.on(\"unhandledRejection\",function(j){throw j}),l=(j,ut)=>{if(fe())throw process.exitCode=j,ut;w(ut),process.exit(j)},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=j=>{var ut=new XMLHttpRequest;return ut.open(\"GET\",j,!1),ut.send(null),ut.responseText},p&&(x=j=>{var ut=new XMLHttpRequest;return ut.open(\"GET\",j,!1),ut.responseType=\"arraybuffer\",ut.send(null),new Uint8Array(ut.response)}),g=(j,ut,Ft)=>{var pe=new XMLHttpRequest;pe.open(\"GET\",j,!0),pe.responseType=\"arraybuffer\",pe.onload=()=>{if(pe.status==200||pe.status==0&&pe.response){ut(pe.response);return}Ft()},pe.onerror=Ft,pe.send(null)},b=j=>document.title=j);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 D=4,F;e.wasmBinary&&(F=e.wasmBinary);var P=e.noExitRuntime||!0;typeof WebAssembly!=\"object\"&&Qr(\"no native wasm support detected\");var V,G=!1,W;function q(j,ut){j||Qr(ut)}var H=typeof TextDecoder!=\"undefined\"?new TextDecoder(\"utf8\"):void 0;function K(j,ut,Ft){ut>>>=0;for(var pe=ut+Ft,Xe=ut;j[Xe]&&!(Xe>=pe);)++Xe;if(Xe-ut>16&&j.buffer&&H)return H.decode(j.subarray(ut,Xe));for(var Ye=\"\";ut>10,56320|oo&1023)}}return Ye}function X(j,ut){return j>>>=0,j?K(at,j,ut):\"\"}function Z(j,ut,Ft,pe){if(Ft>>>=0,!(pe>0))return 0;for(var Xe=Ft,Ye=Ft+pe-1,se=0;se=55296&&ne<=57343){var br=j.charCodeAt(++se);ne=65536+((ne&1023)<<10)|br&1023}if(ne<=127){if(Ft>=Ye)break;ut[Ft++>>>0]=ne}else if(ne<=2047){if(Ft+1>=Ye)break;ut[Ft++>>>0]=192|ne>>6,ut[Ft++>>>0]=128|ne&63}else if(ne<=65535){if(Ft+2>=Ye)break;ut[Ft++>>>0]=224|ne>>12,ut[Ft++>>>0]=128|ne>>6&63,ut[Ft++>>>0]=128|ne&63}else{if(Ft+3>=Ye)break;ut[Ft++>>>0]=240|ne>>18,ut[Ft++>>>0]=128|ne>>12&63,ut[Ft++>>>0]=128|ne>>6&63,ut[Ft++>>>0]=128|ne&63}}return ut[Ft>>>0]=0,Ft-Xe}function et(j,ut,Ft){return Z(j,at,ut,Ft)}var nt,st,at,ot,it,mt,gt,Ct,Rt;function Dt(j){nt=j,e.HEAP8=st=new Int8Array(j),e.HEAP16=ot=new Int16Array(j),e.HEAP32=mt=new Int32Array(j),e.HEAPU8=at=new Uint8Array(j),e.HEAPU16=it=new Uint16Array(j),e.HEAPU32=gt=new Uint32Array(j),e.HEAPF32=Ct=new Float32Array(j),e.HEAPF64=Rt=new Float64Array(j)}var Ht=e.INITIAL_MEMORY||16777216,qt,ce=[],ge=[],re=[],xe=!1;function fe(){return P}function Ae(){if(e.preRun)for(typeof e.preRun==\"function\"&&(e.preRun=[e.preRun]);e.preRun.length;)lr(e.preRun.shift());_a(ce)}function De(){xe=!0,_a(ge)}function Ln(){if(e.postRun)for(typeof e.postRun==\"function\"&&(e.postRun=[e.postRun]);e.postRun.length;)Vr(e.postRun.shift());_a(re)}function lr(j){ce.unshift(j)}function eo(j){ge.unshift(j)}function Vr(j){re.unshift(j)}var je=0,Gr=null,Wr=null;function ro(j){je++,e.monitorRunDependencies&&e.monitorRunDependencies(je)}function no(j){if(je--,e.monitorRunDependencies&&e.monitorRunDependencies(je),je==0&&(Gr!==null&&(clearInterval(Gr),Gr=null),Wr)){var ut=Wr;Wr=null,ut()}}function Qr(j){e.onAbort&&e.onAbort(j),j=\"Aborted(\"+j+\")\",A(j),G=!0,W=1,j+=\". Build with -sASSERTIONS for more info.\";var ut=new WebAssembly.RuntimeError(j);throw o(ut),ut}var ka=\"data:application/octet-stream;base64,\";function Wo(j){return j.startsWith(ka)}function Ei(j){return j.startsWith(\"file://\")}var Ar;Ar=\"tfjs-backend-wasm.wasm\",Wo(Ar)||(Ar=d(Ar));function Ta(j){try{if(j==Ar&&F)return new Uint8Array(F);if(x)return x(j);throw\"both async and sync fetching of the wasm failed\"}catch(ut){Qr(ut)}}function qd(){if(!F&&(c||p)){if(typeof fetch==\"function\"&&!Ei(Ar))return fetch(Ar,{credentials:\"same-origin\"}).then(function(j){if(!j.ok)throw\"failed to load wasm binary file at '\"+Ar+\"'\";return j.arrayBuffer()}).catch(function(){return Ta(Ar)});if(g)return new Promise(function(j,ut){g(Ar,function(Ft){j(new Uint8Array(Ft))},ut)})}return Promise.resolve().then(function(){return Ta(Ar)})}function Kd(){var j={env:jd,wasi_snapshot_preview1:jd};function ut(se,ne){var br=se.exports;e.asm=br,V=e.asm.memory,Dt(V.buffer),qt=e.asm.__indirect_function_table,eo(e.asm.__wasm_call_ctors),no(\"wasm-instantiate\")}ro(\"wasm-instantiate\");function Ft(se){ut(se.instance)}function pe(se){return qd().then(function(ne){return WebAssembly.instantiate(ne,j)}).then(function(ne){return ne}).then(se,function(ne){A(\"failed to asynchronously prepare wasm: \"+ne),Qr(ne)})}function Xe(){return!F&&typeof WebAssembly.instantiateStreaming==\"function\"&&!Wo(Ar)&&!Ei(Ar)&&!m&&typeof fetch==\"function\"?fetch(Ar,{credentials:\"same-origin\"}).then(function(se){var ne=WebAssembly.instantiateStreaming(se,j);return ne.then(Ft,function(br){return A(\"wasm streaming compile failed: \"+br),A(\"falling back to ArrayBuffer instantiation\"),pe(Ft)})}):pe(Ft)}if(e.instantiateWasm)try{var Ye=e.instantiateWasm(j,ut);return Ye}catch(se){A(\"Module.instantiateWasm callback failed with error: \"+se),o(se)}return Xe().catch(o),{}}var o_,ql;function _p(j){this.name=\"ExitStatus\",this.message=\"Program terminated with exit(\"+j+\")\",this.status=j}function _a(j){for(;j.length>0;)j.shift()(e)}function $C(){Qr(\"\")}function Cg(){return 4294901760}function oc(){return Cg()}function RC(j,ut,Ft){at.copyWithin(j>>>0,ut>>>0,ut+Ft>>>0)}function vg(j){try{return V.grow(j-nt.byteLength+65535>>>16),Dt(V.buffer),1}catch(ut){}}function Ep(j){var ut=at.length;j=j>>>0;var Ft=Cg();if(j>Ft)return!1;let pe=(br,oo)=>br+(oo-br%oo)%oo;for(var Xe=1;Xe<=4;Xe*=2){var Ye=ut*(1+.2/Xe);Ye=Math.min(Ye,j+100663296);var se=Math.min(Ft,pe(Math.max(j,Ye),65536)),ne=vg(se);if(ne)return!0}return!1}var tn={varargs:void 0,get:function(){tn.varargs+=4;var j=mt[tn.varargs-4>>>2];return j},getStr:function(j){var ut=X(j);return ut}};function Sg(j){return 52}function FC(j,ut,Ft,pe,Xe){return 70}var OC=[null,[],[]];function s_(j,ut){var Ft=OC[j];ut===0||ut===10?((j===1?E:A)(K(Ft,0)),Ft.length=0):Ft.push(ut)}function i_(j,ut,Ft,pe){for(var Xe=0,Ye=0;Ye>>2],ne=gt[ut+4>>>2];ut+=8;for(var br=0;br>>0]);Xe+=ne}return gt[pe>>>2]=Xe,0}function Ng(j){var ut=e[\"_\"+j];return ut}function sc(j,ut){st.set(j,ut>>>0)}function PC(j,ut,Ft,pe,Xe){var Ye={string:sn=>{var jl=0;if(sn!=null&&sn!==0){var Gg=(sn.length<<2)+1;jl=Qd(Gg),et(sn,jl,Gg)}return jl},array:sn=>{var jl=Qd(sn.length);return sc(sn,jl),jl}};function se(sn){return ut===\"string\"?X(sn):ut===\"boolean\"?!!sn:sn}var ne=Ng(j),br=[],oo=0;if(pe)for(var Ea=0;Ease===\"number\"||se===\"boolean\"),Ye=ut!==\"string\";return Ye&&Xe&&!pe?Ng(j):function(){return PC(j,ut,Ft,arguments,pe)}}var jd={abort:$C,emscripten_get_heap_max:oc,emscripten_memcpy_big:RC,emscripten_resize_heap:Ep,fd_close:Sg,fd_seek:FC,fd_write:i_},LC=Kd(),kg=e.___wasm_call_ctors=function(){return(kg=e.___wasm_call_ctors=e.asm.__wasm_call_ctors).apply(null,arguments)},Tg=e._init=function(){return(Tg=e._init=e.asm.init).apply(null,arguments)},zC=e._init_with_threads_count=function(){return(zC=e._init_with_threads_count=e.asm.init_with_threads_count).apply(null,arguments)},_g=e._get_threads_count=function(){return(_g=e._get_threads_count=e.asm.get_threads_count).apply(null,arguments)},BC=e._register_tensor=function(){return(BC=e._register_tensor=e.asm.register_tensor).apply(null,arguments)},Xt=e._dispose_data=function(){return(Xt=e._dispose_data=e.asm.dispose_data).apply(null,arguments)},Xd=e._dispose=function(){return(Xd=e._dispose=e.asm.dispose).apply(null,arguments)},VC=e._Abs=function(){return(VC=e._Abs=e.asm.Abs).apply(null,arguments)},Eg=e._Acos=function(){return(Eg=e._Acos=e.asm.Acos).apply(null,arguments)},Ap=e._Acosh=function(){return(Ap=e._Acosh=e.asm.Acosh).apply(null,arguments)},GC=e._Add=function(){return(GC=e._Add=e.asm.Add).apply(null,arguments)},WC=e._AddN=function(){return(WC=e._AddN=e.asm.AddN).apply(null,arguments)},UC=e._All=function(){return(UC=e._All=e.asm.All).apply(null,arguments)},HC=e._Any=function(){return(HC=e._Any=e.asm.Any).apply(null,arguments)},qC=e._ArgMax=function(){return(qC=e._ArgMax=e.asm.ArgMax).apply(null,arguments)},Ag=e._ArgMin=function(){return(Ag=e._ArgMin=e.asm.ArgMin).apply(null,arguments)},Dg=e._Asin=function(){return(Dg=e._Asin=e.asm.Asin).apply(null,arguments)},KC=e._Asinh=function(){return(KC=e._Asinh=e.asm.Asinh).apply(null,arguments)},jC=e._Atan=function(){return(jC=e._Atan=e.asm.Atan).apply(null,arguments)},XC=e._Atan2=function(){return(XC=e._Atan2=e.asm.Atan2).apply(null,arguments)},Yd=e._Atanh=function(){return(Yd=e._Atanh=e.asm.Atanh).apply(null,arguments)},YC=e._AvgPool=function(){return(YC=e._AvgPool=e.asm.AvgPool).apply(null,arguments)},ZC=e._AvgPool3D=function(){return(ZC=e._AvgPool3D=e.asm.AvgPool3D).apply(null,arguments)},JC=e._AvgPool3DGrad=function(){return(JC=e._AvgPool3DGrad=e.asm.AvgPool3DGrad).apply(null,arguments)},ic=e._AvgPoolGrad=function(){return(ic=e._AvgPoolGrad=e.asm.AvgPoolGrad).apply(null,arguments)},QC=e._BatchMatMul=function(){return(QC=e._BatchMatMul=e.asm.BatchMatMul).apply(null,arguments)},tv=e._Bincount=function(){return(tv=e._Bincount=e.asm.Bincount).apply(null,arguments)},$g=e._BitwiseAnd=function(){return($g=e._BitwiseAnd=e.asm.BitwiseAnd).apply(null,arguments)},ev=e._Ceil=function(){return(ev=e._Ceil=e.asm.Ceil).apply(null,arguments)},Zd=e._ClipByValue=function(){return(Zd=e._ClipByValue=e.asm.ClipByValue).apply(null,arguments)},rv=e._Conv2D=function(){return(rv=e._Conv2D=e.asm.Conv2D).apply(null,arguments)},nv=e._Conv2DBackpropInput=function(){return(nv=e._Conv2DBackpropInput=e.asm.Conv2DBackpropInput).apply(null,arguments)},ov=e._Conv3D=function(){return(ov=e._Conv3D=e.asm.Conv3D).apply(null,arguments)},Kl=e._Conv3DBackpropFilterV2=function(){return(Kl=e._Conv3DBackpropFilterV2=e.asm.Conv3DBackpropFilterV2).apply(null,arguments)},Jd=e._Conv3DBackpropInputV2=function(){return(Jd=e._Conv3DBackpropInputV2=e.asm.Conv3DBackpropInputV2).apply(null,arguments)},sv=e._Cos=function(){return(sv=e._Cos=e.asm.Cos).apply(null,arguments)},iv=e._Cosh=function(){return(iv=e._Cosh=e.asm.Cosh).apply(null,arguments)},av=e._CropAndResize=function(){return(av=e._CropAndResize=e.asm.CropAndResize).apply(null,arguments)},lv=e._Cumprod=function(){return(lv=e._Cumprod=e.asm.Cumprod).apply(null,arguments)},Rg=e._Cumsum=function(){return(Rg=e._Cumsum=e.asm.Cumsum).apply(null,arguments)},Fg=e._DenseBincount=function(){return(Fg=e._DenseBincount=e.asm.DenseBincount).apply(null,arguments)},uv=e._DepthToSpace=function(){return(uv=e._DepthToSpace=e.asm.DepthToSpace).apply(null,arguments)},cv=e._DepthwiseConv2dNative=function(){return(cv=e._DepthwiseConv2dNative=e.asm.DepthwiseConv2dNative).apply(null,arguments)},Og=e._Diag=function(){return(Og=e._Diag=e.asm.Diag).apply(null,arguments)},Pg=e._Dilation2D=function(){return(Pg=e._Dilation2D=e.asm.Dilation2D).apply(null,arguments)},pv=e._Dilation2DBackpropFilter=function(){return(pv=e._Dilation2DBackpropFilter=e.asm.Dilation2DBackpropFilter).apply(null,arguments)},mv=e._Dilation2DBackpropInput=function(){return(mv=e._Dilation2DBackpropInput=e.asm.Dilation2DBackpropInput).apply(null,arguments)},fv=e._Elu=function(){return(fv=e._Elu=e.asm.Elu).apply(null,arguments)},dv=e._EluGrad=function(){return(dv=e._EluGrad=e.asm.EluGrad).apply(null,arguments)},Mg=e._Equal=function(){return(Mg=e._Equal=e.asm.Equal).apply(null,arguments)},a_=e._Erf=function(){return(a_=e._Erf=e.asm.Erf).apply(null,arguments)},hv=e._Exp=function(){return(hv=e._Exp=e.asm.Exp).apply(null,arguments)},gv=e._Expm1=function(){return(gv=e._Expm1=e.asm.Expm1).apply(null,arguments)},xv=e._FlipLeftRight=function(){return(xv=e._FlipLeftRight=e.asm.FlipLeftRight).apply(null,arguments)},yv=e._Floor=function(){return(yv=e._Floor=e.asm.Floor).apply(null,arguments)},bv=e._FloorDiv=function(){return(bv=e._FloorDiv=e.asm.FloorDiv).apply(null,arguments)},wv=e._FusedBatchNorm=function(){return(wv=e._FusedBatchNorm=e.asm.FusedBatchNorm).apply(null,arguments)},Iv=e._FusedConv2D=function(){return(Iv=e._FusedConv2D=e.asm.FusedConv2D).apply(null,arguments)},Cv=e._FusedDepthwiseConv2D=function(){return(Cv=e._FusedDepthwiseConv2D=e.asm.FusedDepthwiseConv2D).apply(null,arguments)},vv=e._Gather=function(){return(vv=e._Gather=e.asm.Gather).apply(null,arguments)},Sv=e._GatherNd=function(){return(Sv=e._GatherNd=e.asm.GatherNd).apply(null,arguments)},Nv=e._Greater=function(){return(Nv=e._Greater=e.asm.Greater).apply(null,arguments)},kv=e._GreaterEqual=function(){return(kv=e._GreaterEqual=e.asm.GreaterEqual).apply(null,arguments)},Tv=e._IsFinite=function(){return(Tv=e._IsFinite=e.asm.IsFinite).apply(null,arguments)},_v=e._IsInf=function(){return(_v=e._IsInf=e.asm.IsInf).apply(null,arguments)},Ev=e._IsNan=function(){return(Ev=e._IsNan=e.asm.IsNan).apply(null,arguments)},Av=e._LRN=function(){return(Av=e._LRN=e.asm.LRN).apply(null,arguments)},Dv=e._LRNGrad=function(){return(Dv=e._LRNGrad=e.asm.LRNGrad).apply(null,arguments)},$v=e._LeakyRelu=function(){return($v=e._LeakyRelu=e.asm.LeakyRelu).apply(null,arguments)},Rv=e._Less=function(){return(Rv=e._Less=e.asm.Less).apply(null,arguments)},Fv=e._LessEqual=function(){return(Fv=e._LessEqual=e.asm.LessEqual).apply(null,arguments)},Ov=e._LinSpace=function(){return(Ov=e._LinSpace=e.asm.LinSpace).apply(null,arguments)},Pv=e._Log=function(){return(Pv=e._Log=e.asm.Log).apply(null,arguments)},Mv=e._Log1p=function(){return(Mv=e._Log1p=e.asm.Log1p).apply(null,arguments)},Lv=e._LogicalAnd=function(){return(Lv=e._LogicalAnd=e.asm.LogicalAnd).apply(null,arguments)},zv=e._LogicalNot=function(){return(zv=e._LogicalNot=e.asm.LogicalNot).apply(null,arguments)},Bv=e._LogicalOr=function(){return(Bv=e._LogicalOr=e.asm.LogicalOr).apply(null,arguments)},Vv=e._LogicalXor=function(){return(Vv=e._LogicalXor=e.asm.LogicalXor).apply(null,arguments)},Gv=e._Max=function(){return(Gv=e._Max=e.asm.Max).apply(null,arguments)},Wv=e._MaxPool=function(){return(Wv=e._MaxPool=e.asm.MaxPool).apply(null,arguments)},Uv=e._MaxPool3D=function(){return(Uv=e._MaxPool3D=e.asm.MaxPool3D).apply(null,arguments)},Hv=e._MaxPool3DGrad=function(){return(Hv=e._MaxPool3DGrad=e.asm.MaxPool3DGrad).apply(null,arguments)},qv=e._MaxPoolGrad=function(){return(qv=e._MaxPoolGrad=e.asm.MaxPoolGrad).apply(null,arguments)},Kv=e._MaxPoolWithArgmax=function(){return(Kv=e._MaxPoolWithArgmax=e.asm.MaxPoolWithArgmax).apply(null,arguments)},jv=e._Maximum=function(){return(jv=e._Maximum=e.asm.Maximum).apply(null,arguments)},Xv=e._Mean=function(){return(Xv=e._Mean=e.asm.Mean).apply(null,arguments)},Yv=e._Min=function(){return(Yv=e._Min=e.asm.Min).apply(null,arguments)},Zv=e._Minimum=function(){return(Zv=e._Minimum=e.asm.Minimum).apply(null,arguments)},Jv=e._MirrorPad=function(){return(Jv=e._MirrorPad=e.asm.MirrorPad).apply(null,arguments)},Qv=e._Mod=function(){return(Qv=e._Mod=e.asm.Mod).apply(null,arguments)},tS=e._Multinomial=function(){return(tS=e._Multinomial=e.asm.Multinomial).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._Reciprocal=function(){return(fS=e._Reciprocal=e.asm.Reciprocal).apply(null,arguments)},dS=e._Relu=function(){return(dS=e._Relu=e.asm.Relu).apply(null,arguments)},hS=e._Relu6=function(){return(hS=e._Relu6=e.asm.Relu6).apply(null,arguments)},gS=e._ResizeBilinear=function(){return(gS=e._ResizeBilinear=e.asm.ResizeBilinear).apply(null,arguments)},xS=e._ResizeBilinearGrad=function(){return(xS=e._ResizeBilinearGrad=e.asm.ResizeBilinearGrad).apply(null,arguments)},yS=e._ResizeNearestNeighbor=function(){return(yS=e._ResizeNearestNeighbor=e.asm.ResizeNearestNeighbor).apply(null,arguments)},bS=e._ResizeNearestNeighborGrad=function(){return(bS=e._ResizeNearestNeighborGrad=e.asm.ResizeNearestNeighborGrad).apply(null,arguments)},wS=e._Reverse=function(){return(wS=e._Reverse=e.asm.Reverse).apply(null,arguments)},IS=e._RotateWithOffset=function(){return(IS=e._RotateWithOffset=e.asm.RotateWithOffset).apply(null,arguments)},CS=e._Round=function(){return(CS=e._Round=e.asm.Round).apply(null,arguments)},vS=e._Rsqrt=function(){return(vS=e._Rsqrt=e.asm.Rsqrt).apply(null,arguments)},SS=e._ScatterNd=function(){return(SS=e._ScatterNd=e.asm.ScatterNd).apply(null,arguments)},NS=e._SearchSorted=function(){return(NS=e._SearchSorted=e.asm.SearchSorted).apply(null,arguments)},kS=e._SelectV2=function(){return(kS=e._SelectV2=e.asm.SelectV2).apply(null,arguments)},TS=e._Selu=function(){return(TS=e._Selu=e.asm.Selu).apply(null,arguments)},_S=e._Sigmoid=function(){return(_S=e._Sigmoid=e.asm.Sigmoid).apply(null,arguments)},ES=e._Sign=function(){return(ES=e._Sign=e.asm.Sign).apply(null,arguments)},AS=e._Sin=function(){return(AS=e._Sin=e.asm.Sin).apply(null,arguments)},DS=e._Sinh=function(){return(DS=e._Sinh=e.asm.Sinh).apply(null,arguments)},$S=e._Softmax=function(){return($S=e._Softmax=e.asm.Softmax).apply(null,arguments)},RS=e._Softplus=function(){return(RS=e._Softplus=e.asm.Softplus).apply(null,arguments)},FS=e._SparseFillEmptyRows=function(){return(FS=e._SparseFillEmptyRows=e.asm.SparseFillEmptyRows).apply(null,arguments)},OS=e._SparseReshape=function(){return(OS=e._SparseReshape=e.asm.SparseReshape).apply(null,arguments)},PS=e._SparseSegmentReduction=function(){return(PS=e._SparseSegmentReduction=e.asm.SparseSegmentReduction).apply(null,arguments)},MS=e._SparseToDense=function(){return(MS=e._SparseToDense=e.asm.SparseToDense).apply(null,arguments)},LS=e._Sqrt=function(){return(LS=e._Sqrt=e.asm.Sqrt).apply(null,arguments)},zS=e._Square=function(){return(zS=e._Square=e.asm.Square).apply(null,arguments)},BS=e._SquaredDifference=function(){return(BS=e._SquaredDifference=e.asm.SquaredDifference).apply(null,arguments)},VS=e._Step=function(){return(VS=e._Step=e.asm.Step).apply(null,arguments)},GS=e._StridedSlice=function(){return(GS=e._StridedSlice=e.asm.StridedSlice).apply(null,arguments)},WS=e._Sub=function(){return(WS=e._Sub=e.asm.Sub).apply(null,arguments)},US=e._Sum=function(){return(US=e._Sum=e.asm.Sum).apply(null,arguments)},HS=e._Tan=function(){return(HS=e._Tan=e.asm.Tan).apply(null,arguments)},qS=e._Tanh=function(){return(qS=e._Tanh=e.asm.Tanh).apply(null,arguments)},KS=e._TensorScatterUpdate=function(){return(KS=e._TensorScatterUpdate=e.asm.TensorScatterUpdate).apply(null,arguments)},jS=e._Tile=function(){return(jS=e._Tile=e.asm.Tile).apply(null,arguments)},XS=e._TopK=function(){return(XS=e._TopK=e.asm.TopK).apply(null,arguments)},YS=e._Transform=function(){return(YS=e._Transform=e.asm.Transform).apply(null,arguments)},ZS=e._Transpose=function(){return(ZS=e._Transpose=e.asm.Transpose).apply(null,arguments)},JS=e.__FusedMatMul=function(){return(JS=e.__FusedMatMul=e.asm._FusedMatMul).apply(null,arguments)},QS=e._malloc=function(){return(QS=e._malloc=e.asm.malloc).apply(null,arguments)},t0=e._free=function(){return(t0=e._free=e.asm.free).apply(null,arguments)},e0=e.___errno_location=function(){return(e0=e.___errno_location=e.asm.__errno_location).apply(null,arguments)},Lg=e.stackSave=function(){return(Lg=e.stackSave=e.asm.stackSave).apply(null,arguments)},zg=e.stackRestore=function(){return(zg=e.stackRestore=e.asm.stackRestore).apply(null,arguments)},Qd=e.stackAlloc=function(){return(Qd=e.stackAlloc=e.asm.stackAlloc).apply(null,arguments)},r0=e.dynCall_iijjiiii=function(){return(r0=e.dynCall_iijjiiii=e.asm.dynCall_iijjiiii).apply(null,arguments)},n0=e.dynCall_jiji=function(){return(n0=e.dynCall_jiji=e.asm.dynCall_jiji).apply(null,arguments)};e.cwrap=MC;var Dp;Wr=function j(){Dp||Bg(),Dp||(Wr=j)};function Bg(j){if(j=j||a,je>0||(Ae(),je>0))return;function ut(){Dp||(Dp=!0,e.calledRun=!0,!G&&(De(),n(e),e.onRuntimeInitialized&&e.onRuntimeInitialized(),Ln()))}e.setStatus?(e.setStatus(\"Running...\"),setTimeout(function(){setTimeout(function(){e.setStatus(\"\")},1),ut()},1)):ut()}if(e.preInit)for(typeof e.preInit==\"function\"&&(e.preInit=[e.preInit]);e.preInit.length>0;)e.preInit.pop()();Bg();var $p;s&&($p={uncaughtException:process.listeners(\"uncaughtException\").filter(function(j){return!s.uncaughtException.indexOf(j)>-1}),unhandledRejection:process.listeners(\"unhandledRejection\").filter(function(j){return!s.unhandledRejection.indexOf(j)>-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($p){var o0=Rp._dispose;Rp._dispose=function(){o0(),$p.uncaughtException.forEach(function(j){process.removeListener(\"uncaughtException\",j)}),$p.unhandledRejection.forEach(function(j){process.removeListener(\"unhandledRejection\",j)})}}return t.ready}})();typeof AC==\"object\"&&typeof Q1==\"object\"?Q1.exports=J1:typeof define==\"function\"&&define.amd?define([],function(){return J1}):typeof AC==\"object\"&&(AC.WasmBackendModule=J1)});var Da=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}},Uo=class{refCount(t){return Bn(\"refCount\")}incRef(t){return Bn(\"incRef\")}timerAvailable(){return!0}time(t){return Bn(\"time\")}read(t){return Bn(\"read\")}readSync(t){return Bn(\"readSync\")}readToGPU(t,e){return Bn(\"readToGPU\")}numDataIds(){return Bn(\"numDataIds\")}disposeData(t,e){return Bn(\"disposeData\")}write(t,e,n){return Bn(\"write\")}move(t,e,n,o,s){return Bn(\"move\")}createTensorFromGPUData(t,e,n){return Bn(\"createTensorFromGPUData\")}memory(){return Bn(\"memory\")}floatPrecision(){return Bn(\"floatPrecision\")}epsilon(){return this.floatPrecision()===32?1e-7:1e-4}dispose(){return Bn(\"dispose\")}};function Bn(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 g_(r){let t=r.length,e=0;for(;t>0;)e=Math.random()*t|0,t--,Xg(r,t,e)}function Oq(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--,Xg(r,e,n),Xg(t,e,n)}function Op(r,t,e){return Math.max(r,Math.min(t,e))}function Pq(r){return r%2===0?r:r+1}function Xg(r,t,e){let n=r[t];r[t]=r[e],r[e]=n}function Mq(r){let t=0;for(let e=0;ee+` Shapes ${r} and ${t} must match`)}function io(r){_(r!=null,()=>\"The input to the tensor constructor must be a non-null value.\")}function te(r){if(r.length===0)return 1;let t=r[0];for(let e=1;e0,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 Hq(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 fr(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=>$a(n)),()=>`All values in axis param must be integers but got axis ${r}`),r.map(n=>n<0?e+n:n)}function p0(r,t){let e=[],n=[],o=t!=null&&Array.isArray(t)&&t.length===0,s=t==null||o?null:fr(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 m0(r,t){return Yg(r,t)}function Yg(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 f0(r,t){for(let e=0;et+=e.length),t}function Ho(r){return typeof r==\"string\"||r instanceof String}function x_(r){return typeof r==\"boolean\"}function y_(r){return typeof r==\"number\"}function Yl(r){return Array.isArray(r)?Yl(r[0]):r instanceof Float32Array?\"float32\":r instanceof Int32Array||r instanceof Uint8Array||r instanceof Uint8ClampedArray?\"int32\":y_(r)?\"float32\":Ho(r)?\"string\":x_(r)?\"bool\":\"float32\"}function Ai(r){return!!(r&&r.constructor&&r.call&&r.apply)}function Mp(r,t){for(let e=t;e=0;--n)e[n]=e[n+1]*r[n+1];return e}function b_(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 b_(0,r,t,e)}function Kq(r,t){if(Array.isArray(r))return r;if(t===\"float32\")return r instanceof Float32Array?r:new Float32Array(r);if(t===\"int32\")return r instanceof Int32Array?r:new Int32Array(r);if(t===\"bool\"||t===\"string\")return Uint8Array.from(new Int32Array(r));throw new Error(`Unknown dtype ${t}`)}function eh(r,t){let e=Lp(r,t);for(let n=0;nn*o,1);if(t==null||t===\"float32\")return ac(r,new Float32Array(e));if(t===\"int32\")return ac(r,new Int32Array(e));if(t===\"bool\")return ac(r,new Uint8Array(e));throw new Error(`Unknown data type ${t}`)}function Me(r){r.forEach(t=>{_(Number.isInteger(t)&&t>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${r}].`)})}function Xq(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]=tK(o,s)})}};function Jq(r){let t={};return r.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(e,...n)=>(Qq(t,n[0],n[1]),n.join(\"=\"))),t}function Qq(r,t,e){r[decodeURIComponent(t)]=decodeURIComponent(e||\"\")}function tK(r,t){let e=t.toLowerCase();return e===\"true\"||e===\"false\"?e===\"true\":`${+e}`===e?+e:t}function L(){return g0}var g0=null;function I_(r){g0=r}var x0;function y0(){if(x0==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\");x0=r}return x0}function eK(){let r=y0();return r._tfGlobals==null&&(r._tfGlobals=new Map),r._tfGlobals}function nh(r,t){let e=eK();if(e.has(r))return e.get(r);{let n=t();return e.set(r,n),e.get(r)}}var $i=\"Abs\",qo=\"Acos\",Ko=\"Acosh\",ao=\"Add\",jo=\"AddN\",Ra=\"All\",Fa=\"Any\",Ri=\"ArgMax\",Fi=\"ArgMin\",Xo=\"Asin\",Yo=\"Asinh\",Zo=\"Atan\",Jo=\"Atanh\",Qo=\"Atan2\",ts=\"AvgPool\",Zl=\"AvgPoolGrad\",Oi=\"AvgPool3D\",Jl=\"AvgPool3DGrad\",es=\"BatchMatMul\",Pi=\"BatchToSpaceND\",Oa=\"Bincount\",Pa=\"BitwiseAnd\",C_=\"BroadcastTo\",Ql=\"BroadcastArgs\",xo=\"Cast\",rs=\"Ceil\",yo=\"ClipByValue\",zp=\"Complex\",tu=\"ComplexAbs\",Mi=\"Concat\",ns=\"Conv2D\",Bp=\"Conv2DBackpropFilter\",os=\"Conv2DBackpropInput\",ss=\"Conv3D\",Ma=\"Conv3DBackpropFilterV2\",La=\"Conv3DBackpropInputV2\",is=\"Cos\",as=\"Cosh\",za=\"Cumprod\",ls=\"Cumsum\",Ba=\"CropAndResize\",eu=\"DenseBincount\",Va=\"DepthToSpace\",us=\"DepthwiseConv2dNative\",Vp=\"DepthwiseConv2dNativeBackpropFilter\",Gp=\"DepthwiseConv2dNativeBackpropInput\",ru=\"Diag\",cs=\"Dilation2D\",nu=\"Dilation2DBackpropInput\",ou=\"Dilation2DBackpropFilter\",Zg=\"Draw\",ps=\"RealDiv\",Wp=\"Einsum\",ms=\"Elu\",Ga=\"EluGrad\",fs=\"Erf\",Wa=\"Equal\",ds=\"Exp\",Li=\"ExpandDims\",hs=\"Expm1\",Up=\"FFT\",su=\"Fill\",Ua=\"FlipLeftRight\",gs=\"Floor\",xs=\"FloorDiv\",ys=\"FusedBatchNorm\",zi=\"GatherV2\",Ha=\"GatherNd\",qa=\"Greater\",bs=\"GreaterEqual\",bo=\"Identity\",Hp=\"IFFT\",qp=\"Imag\",ws=\"IsFinite\",Is=\"IsInf\",Cs=\"IsNan\",vs=\"LeakyRelu\",Ka=\"Less\",ja=\"LessEqual\",Xa=\"LinSpace\",Ss=\"Log\",Ns=\"Log1p\",Ya=\"LogicalAnd\",Za=\"LogicalNot\",Ja=\"LogicalOr\",v_=\"LogicalXor\",S_=\"LogSoftmax\",Lmt=\"LowerBound\",ks=\"LRN\",Qa=\"LRNGrad\",zmt=\"MatrixBandPart\",Ts=\"Max\",_s=\"Maximum\",Es=\"MaxPool\",iu=\"MaxPoolGrad\",Bi=\"MaxPool3D\",au=\"MaxPool3DGrad\",lu=\"MaxPoolWithArgmax\",As=\"Mean\",Ds=\"Min\",$s=\"Minimum\",Rs=\"MirrorPad\",Fs=\"Mod\",tl=\"Multinomial\",Os=\"Multiply\",Vi=\"Neg\",el=\"NotEqual\",rl=\"NonMaxSuppressionV3\",nl=\"NonMaxSuppressionV4\",ol=\"NonMaxSuppressionV5\",Gi=\"OnesLike\",Ps=\"OneHot\",Wi=\"Pack\",Ms=\"PadV2\",Bmt=\"Pool\",Ls=\"Pow\",zs=\"Prelu\",Bs=\"Prod\",Kp=\"RaggedGather\",jp=\"RaggedRange\",Xp=\"RaggedTensorToTensor\",uu=\"Range\",Yp=\"Real\",Vs=\"Reciprocal\",Gs=\"Relu\",Ui=\"Reshape\",Ws=\"ResizeNearestNeighbor\",sl=\"ResizeNearestNeighborGrad\",Us=\"ResizeBilinear\",il=\"ResizeBilinearGrad\",Hs=\"Relu6\",qs=\"Reverse\",Ks=\"Round\",js=\"Rsqrt\",al=\"ScatterNd\",ll=\"TensorScatterUpdate\",ul=\"SearchSorted\",Hi=\"Select\",Xs=\"Selu\",qi=\"Slice\",Ys=\"Sin\",Zs=\"Sinh\",Js=\"Sign\",Qs=\"Sigmoid\",ti=\"Softplus\",ei=\"Sqrt\",ri=\"Sum\",Ki=\"SpaceToBatchND\",ji=\"SplitV\",ni=\"Softmax\",cu=\"SparseFillEmptyRows\",cl=\"SparseReshape\",pu=\"SparseSegmentMean\",mu=\"SparseSegmentSum\",pl=\"SparseToDense\",oi=\"SquaredDifference\",fu=\"Square\",cc=\"StaticRegexReplace\",ml=\"StridedSlice\",du=\"StringNGrams\",hu=\"StringSplit\",gu=\"StringToHashBucketFast\",si=\"Sub\",ii=\"Tan\",ai=\"Tanh\",lo=\"Tile\",fl=\"TopK\",dl=\"Transform\",uo=\"Transpose\",xu=\"Unique\",Xi=\"Unpack\",yu=\"UnsortedSegmentSum\",Vmt=\"UpperBound\",Yi=\"ZerosLike\",wo=\"Step\",oh=\"FromPixels\",hl=\"RotateWithOffset\",Zi=\"_FusedMatMul\",Ji=\"FusedConv2D\",Qi=\"FusedDepthwiseConv2D\";function ta(...r){L().getBool(\"IS_TEST\")||L().getBool(\"PROD\")||console.warn(...r)}function rK(...r){L().getBool(\"IS_TEST\")||L().getBool(\"PROD\")||console.log(...r)}var Zp=nh(\"kernelRegistry\",()=>new Map),sh=nh(\"gradRegistry\",()=>new Map);function ih(r,t){let e=w0(r,t);return Zp.get(e)}function b0(r){return sh.get(r)}function Jg(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 pc(r){let{kernelName:t,backendName:e}=r,n=w0(t,e);Zp.has(n)&&ta(`The kernel '${t}' for backend '${e}' is already registered`),Zp.set(n,r)}function k_(r){let{kernelName:t}=r;sh.has(t)&&L().getBool(\"DEBUG\")&&ta(`Overriding the gradient for '${t}'`),sh.set(t,r)}function qmt(r,t){let e=w0(r,t);if(!Zp.has(e))throw new Error(`The kernel '${r}' for backend '${t}' is not registered`);Zp.delete(e)}function Kmt(r){if(!sh.has(r))throw new Error(`The gradient '${r}' for backend is not registered`);sh.delete(r)}function jmt(r,t){Jg(r).forEach(n=>{let o=Object.assign({},n,{backendName:t});pc(o)})}function w0(r,t){return`${t}_${r}`}var y={};Kt(y,{arraysEqual:()=>an,arraysEqualWithNull:()=>c0,assert:()=>_,assertNonNegativeIntegerDimensions:()=>Me,assertNonNull:()=>io,assertShapesMatch:()=>Re,bytesFromStringArray:()=>h0,bytesPerElement:()=>Pp,checkConversionForErrors:()=>f0,clamp:()=>Op,computeStrides:()=>Di,convertBackendValuesAndArrayBuffer:()=>Kq,createScalarValue:()=>uK,createShuffledIndices:()=>Wq,decodeString:()=>em,distSquared:()=>zq,encodeString:()=>wu,fetch:()=>pK,fingerPrint64:()=>lK,flatten:()=>ui,getArrayFromDType:()=>Yg,getTypedArrayFromDType:()=>m0,hasEncodingLoss:()=>qq,hexToLong:()=>ah,indexToLoc:()=>Yq,inferDtype:()=>Yl,inferFromImplicitShape:()=>Hq,isBoolean:()=>x_,isFunction:()=>Ai,isInt:()=>$a,isNumber:()=>y_,isPromise:()=>uc,isScalarShape:()=>Bq,isString:()=>Ho,isTypedArray:()=>or,isValidDtype:()=>d0,locToIndex:()=>Xq,makeOnesTypedArray:()=>eh,makeZerosNestedTypedArray:()=>jq,makeZerosTypedArray:()=>Lp,nearestDivisor:()=>Mp,nearestLargerEven:()=>Pq,now:()=>gc,parseAxisParam:()=>fr,randUniform:()=>Lq,repeatedTry:()=>Uq,rightPad:()=>lc,shuffle:()=>g_,shuffleCombo:()=>Oq,sizeFromShape:()=>te,sizeToSquarishShape:()=>Gq,squeezeShape:()=>p0,sum:()=>Mq,swap:()=>Xg,tanh:()=>Vq,toNestedArray:()=>ac,toTypedArray:()=>tm});function Qg(r){return r instanceof Float32Array||r instanceof Int32Array||r instanceof Uint8Array||r instanceof Uint8ClampedArray}var S0=Xl(M_());var hc=S0.default||S0;function ah(r){return hc.fromString(r,!0,16)}var z_=ah(\"c3a5c85c97cb3127\"),dc=ah(\"b492b66fbe98f273\"),ln=ah(\"9ae16a3b2f90404f\");function v0(r){return r.xor(r.shru(47))}function B_(r,t,e){let n=r.slice(t,t+e);return hc.fromBytes(Array.from(n),!0,!0)}function Le(r,t){return B_(r,t,8)}function L_(r,t){return B_(r,t,4)}function Dr(r,t){return t===0?r:r.shru(t).or(r.shl(64-t))}function bu(r,t,e=ah(\"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 oK(r,t,e,n,o,s){o=o.add(r),s=Dr(s.add(o).add(n),21);let i=o;return o=o.add(t),o=o.add(e),s=s.add(Dr(o,44)),[o.add(n),s.add(i)]}function ex(r,t,e,n){return oK(Le(r,t),Le(r,t+8),Le(r,t+16),Le(r,t+24),e,n)}function sK(r,t=r.length){if(t>=8){let e=ln.add(t*2),n=Le(r,0).add(ln),o=Le(r,t-8),s=Dr(o,37).mul(e).add(n),i=Dr(n,25).add(o).mul(e);return bu(s,i,e)}if(t>=4){let e=ln.add(t*2),n=L_(r,0);return bu(n.shl(3).add(t),L_(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 v0(ln.mul(s).xor(z_.mul(i))).mul(ln)}return ln}function iK(r,t=r.length){let e=ln.add(t*2),n=Le(r,0).mul(dc),o=Le(r,8),s=Le(r,t-8).mul(e),i=Le(r,t-16).mul(ln);return bu(Dr(n.add(o),43).add(Dr(s,30)).add(i),n.add(Dr(o.add(ln),18)).add(s),e)}function aK(r,t=r.length){let e=ln.add(t*2),n=Le(r,0).mul(ln),o=Le(r,8),s=Le(r,t-8).mul(e),i=Le(r,t-16).mul(ln),a=Dr(n.add(o),43).add(Dr(s,30)).add(i),u=bu(a,n.add(Dr(o.add(ln),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 bu(Dr(l.add(c),43).add(Dr(p,30)).add(m),l.add(Dr(c.add(n),18)).add(p),e)}function lK(r,t=r.length){let e=hc.fromNumber(81,!0);if(t<=32)return t<=16?sK(r,t):iK(r,t);if(t<=64)return aK(r,t);let n=e,o=e.mul(dc).add(113),s=v0(o.mul(ln).add(113)).mul(ln),i=[hc.UZERO,hc.UZERO],a=[hc.UZERO,hc.UZERO];n=n.mul(ln).add(Le(r,0));let u=0,l=(t-1>>6)*64,c=l+(t-1&63)-63;do n=Dr(n.add(o).add(i[0]).add(Le(r,u+8)),37).mul(dc),o=Dr(o.add(i[1]).add(Le(r,u+48)),42).mul(dc),n=n.xor(a[1]),o=o.add(i[0]).add(Le(r,u+40)),s=Dr(s.add(a[0]),33).mul(dc),i=ex(r,u,i[1].mul(dc),n.add(a[0])),a=ex(r,u+32,s.add(a[1]),o.add(Le(r,u+16))),[s,n]=[n,s],u+=64;while(u!==l);let p=dc.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=Dr(n.add(o).add(i[0]).add(Le(r,u+8)),37).mul(p),o=Dr(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=Dr(s.add(a[0]),33).mul(p),i=ex(r,u,i[1].mul(p),n.add(a[0])),a=ex(r,u+32,s.add(a[1]),o.add(Le(r,u+16))),[s,n]=[n,s],bu(bu(i[0],a[0],p).add(v0(o).mul(z_)).add(s),bu(i[1],a[1],p).add(n),p)}function uK(r,t){return t===\"string\"?wu(r):tm([r],t)}function cK(r,t){return r instanceof Float32Array&&t===\"float32\"||r instanceof Int32Array&&t===\"int32\"||r instanceof Uint8Array&&t===\"bool\"}function tm(r,t){if(t===\"string\")throw new Error(\"Cannot convert a string[] to a TypedArray\");if(Array.isArray(r)&&(r=ui(r)),L().getBool(\"DEBUG\")&&f0(r,t),cK(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=gc();if(this.backendTimer.timerAvailable())i=this.backendTimer.time(s);else{s();for(let l of o)l.dataSync();i=Promise.resolve({kernelMs:gc()-a})}if(L().getBool(\"CHECK_COMPUTATION_FOR_ERRORS\"))for(let l=0;l{mK(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 mK(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 V_(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(!an(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 W_=20,lh=3,k0=7;function U_(r,t,e,n){let o=Di(t),s=fK(r,t,e,o),i=t.length,a=nx(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 fK(r,t,e,n){let o=te(t),s=n[n.length-1],i=new Array(s).fill(0),a=t.length,u=e===\"complex64\"?ch(r):r;if(a>1)for(let l=0;lW_){let g=lh*i,x=Array.from(r.slice(0,g)),b=Array.from(r.slice((a-lh)*i,a*i));return e===\"complex64\"&&(x=ch(x),b=ch(b)),[\"[\"+x.map((w,I)=>uh(w,o[I],e)).join(\", \")+\", ..., \"+b.map((w,I)=>uh(w,o[a-lh+I],e)).join(\", \")+\"]\"]}return[\"[\"+(e===\"complex64\"?ch(r):Array.from(r)).map((g,x)=>uh(g,o[x],e)).join(\", \")+\"]\"]}let l=t.slice(1),c=n.slice(1),p=n[0]*i,m=[];if(a>W_){for(let h=0;h0?m[0]+f:\"\");for(let h=1;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||Yg(e,this.size),this.strides=Di(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;oem(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(),ci().readToGPU(this.dataId,t)}dataSync(){this.throwIfDisposed();let t=ci().readSync(this.dataId);if(this.dtype===\"string\")try{return t.map(e=>em(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 ci().read(this.dataId);return this.dtype===\"string\"?t:new Uint8Array(t.buffer)}dispose(){this.isDisposed||(ci().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error(\"Tensor is disposed.\")}print(t=!1){return rm.print(this,t)}clone(){return this.throwIfDisposed(),rm.clone(this)}toString(t=!1){let e=this.dataSync();return U_(e,this.shape,this.dtype,t)}cast(t){return this.throwIfDisposed(),rm.cast(this,t)}variable(t=!0,e,n){return this.throwIfDisposed(),ci().makeVariable(this,t,e,n)}};Object.defineProperty(Ot,Symbol.hasInstance,{value:r=>!!r&&r.data!=null&&r.dataSync!=null&&r.throwIfDisposed!=null});function O(){return nh(\"Tensor\",()=>Ot)}O();var gl=class extends Ot{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(!an(t.shape,this.shape))throw new Error(`shape of the new value (${t.shape}) and previous value (${this.shape}) must match`);ci().disposeTensor(this),this.dataId=t.dataId,ci().incRef(this,null)}dispose(){ci().disposeVariable(this),this.isDisposedInternal=!0}};Object.defineProperty(gl,Symbol.hasInstance,{value:r=>r instanceof Ot&&r.assign!=null&&r.assign instanceof Function});var So={};Kt(So,{assertTypesMatch:()=>$0,getTensorsInContainer:()=>ph,isTensorInList:()=>gK,makeTypesMatch:()=>jt});var T0;(function(r){r.R0=\"R0\",r.R1=\"R1\",r.R2=\"R2\",r.R3=\"R3\",r.R4=\"R4\",r.R5=\"R5\",r.R6=\"R6\"})(T0||(T0={}));var _0;(function(r){r.float32=\"float32\",r.int32=\"int32\",r.bool=\"int32\",r.complex64=\"complex64\"})(_0||(_0={}));var E0;(function(r){r.float32=\"float32\",r.int32=\"int32\",r.bool=\"bool\",r.complex64=\"complex64\"})(E0||(E0={}));var A0;(function(r){r.float32=\"float32\",r.int32=\"float32\",r.bool=\"float32\",r.complex64=\"complex64\"})(A0||(A0={}));var D0;(function(r){r.float32=\"complex64\",r.int32=\"complex64\",r.bool=\"complex64\",r.complex64=\"complex64\"})(D0||(D0={}));var hK={float32:A0,int32:_0,bool:E0,complex64:D0};function ur(r,t){if(r===\"string\"||t===\"string\"){if(r===\"string\"&&t===\"string\")return\"string\";throw new Error(`Can not upcast ${r} with ${t}`)}return hK[r][t]}function xc(r){return ur(r,\"int32\")}function ox(r){return r!=null&&typeof r==\"object\"&&\"texture\"in r&&r.texture instanceof WebGLTexture}function sx(r){return typeof GPUBuffer!=\"undefined\"&&r!=null&&typeof r==\"object\"&&\"buffer\"in r&&r.buffer instanceof GPUBuffer}function jt(r,t){if(r.dtype===t.dtype)return[r,t];let e=ur(r.dtype,t.dtype);return[r.cast(e),t.cast(e)]}function $0(r,t){_(r.dtype===t.dtype,()=>`The dtypes of the first(${r.dtype}) and second(${t.dtype}) input must match`)}function gK(r,t){return t.some(e=>e.id===r.id)}function ph(r){let t=[];return X_(r,t,new Set),t}function X_(r,t,e){if(r==null)return;if(r instanceof Ot){t.push(r);return}if(!xK(r))return;let n=r;for(let o in n){let s=n[o];e.has(s)||(e.add(s),X_(s,t,e))}}function xK(r){return Array.isArray(r)||typeof r==\"object\"}function R0(r){return r.kernelName!=null}var ix=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()}},Iu=class{constructor(t){this.ENV=t,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new ix}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){Jg(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 Uo)&&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 Iu.nextTensorId++}nextVariableId(){return Iu.nextVariableId++}clone(t){let e=T.runKernel(bo,{x:t}),n={x:t},o=i=>({x:()=>{let a=\"float32\",u={x:i},l={dtype:a};return T.runKernel(xo,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,!(ih(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=R0(t)?t.kernelName:this.state.activeScope!=null?this.state.activeScope.name:\"\";if(R0(t)){let{kernelName:d,inputs:h,attrs:g}=t;this.backendName==null&&this.backend;let x=ih(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 I=w.map(N=>N.rank!=null?N:this.makeTensorFromTensorInfo(N));if(o){let N=this.getTensorsForGradient(d,h,I);n=this.saveTensorsForBackwardMode(N)}return I}}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=R0(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=b0(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\"&&Ho(t[0])&&(s=t.map(u=>wu(u)));let i=o.write(s,e,n),a=new Ot(e,n,i,this.nextTensorId());if(this.trackTensor(a,o),n===\"string\"){let u=this.state.tensorInfo.get(i),l=h0(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 Ot(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 gl(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*Pp(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 gl||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*Pp(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=b0(t);u!=null&&(o=u.gradFunc),o!=null&&(a.gradient=l=>(l=l.map((c,p)=>{if(c==null){let m=n[p],f=Lp(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=ph(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 Ot,()=>\"The result y returned by f() must be a tensor.\");let i=V_(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?yK(s.shape):n,G_(a,i,l=>this.tidy(l),bK);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 Ot),()=>\"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 Ot,()=>\"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 Ot),()=>\"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=gc(),n=await this.backend.time(t);return n.wallMs=gc()-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 ix;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}};Iu.nextTensorId=0;Iu.nextVariableId=0;function yK(r){let t=eh(te(r),\"float32\");return T.makeTensor(t,r,\"float32\")}function F0(){let r=y0();if(r._tfengine==null){let t=new rh(r);r._tfengine=new Iu(t)}return I_(r._tfengine.ENV),q_(()=>r._tfengine),r._tfengine}var T=F0();function bK(r,t){let e={a:r,b:t};return T.runKernel(ao,e)}var Cu={};Kt(Cu,{isBrowser:()=>P0,isMobile:()=>CK,mockIsMobile:()=>IK});function wK(){return typeof navigator!=\"undefined\"&&navigator!=null}var O0;function IK(r){O0=r}function CK(r){if(O0!==void 0)return O0;if(r||wK()){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 P0(){return typeof window!=\"undefined\"&&window.document!=null||typeof WorkerGlobalScope!=\"undefined\"}var Nn=L();Nn.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.\")});Nn.registerFlag(\"IS_BROWSER\",()=>P0());Nn.registerFlag(\"IS_NODE\",()=>typeof process!=\"undefined\"&&typeof process.versions!=\"undefined\"&&typeof process.versions.node!=\"undefined\");Nn.registerFlag(\"IS_CHROME\",()=>typeof navigator!=\"undefined\"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));Nn.registerFlag(\"IS_SAFARI\",()=>typeof navigator!=\"undefined\"&&navigator!=null&&navigator.userAgent!=null&&/Safari/.test(navigator.userAgent)&&/Apple/.test(navigator.vendor));Nn.registerFlag(\"PROD\",()=>!1);Nn.registerFlag(\"TENSORLIKE_CHECK_SHAPE_CONSISTENCY\",()=>Nn.getBool(\"DEBUG\"));Nn.registerFlag(\"DEPRECATION_WARNINGS_ENABLED\",()=>!0);Nn.registerFlag(\"IS_TEST\",()=>!1);Nn.registerFlag(\"CHECK_COMPUTATION_FOR_ERRORS\",()=>Nn.getBool(\"DEBUG\"));Nn.registerFlag(\"WRAP_TO_IMAGEBITMAP\",()=>!1);Nn.registerFlag(\"CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU\",()=>!1);Nn.registerFlag(\"USE_SETTIMEOUTCUSTOM\",()=>!1);function Ur(r,t){let e=r;if(or(r))return t===\"string\"?[]:[r.length];if(ox(r)){let o=r.channels||\"RGBA\";return[r.height,r.width*o.length]}else if(sx(r))return[r.buffer.size/(t==null?4:Pp(t))];if(!Array.isArray(r))return[];let n=[];for(;Array.isArray(e)||or(e)&&t!==\"string\";)n.push(e.length),e=e[0];return Array.isArray(r)&&L().getBool(\"TENSORLIKE_CHECK_SHAPE_CONSISTENCY\")&&Z_(r,n,[]),n}function Z_(r,t,e){if(e=e||[],!Array.isArray(r)&&!or(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),Y_(n,o,t,e),r==null||!or(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=Ur(r,o);!or(r)&&!Array.isArray(r)&&(r=[r]);let a=o!==\"string\"?tm(r,o):ui(r,[],!0);return T.makeTensor(a,s,o)}function xl(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)=>C(s,`${t}[${i}]`,e,n))}var M0=\"__op\";function k(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+M0;let o=(...s)=>{T.startScope(e);try{let i=n(...s);return uc(i)&&console.error(\"Cannot return a Promise inside of tidy.\"),T.endScope(i),i}catch(i){throw T.endScope(null),i}};return Object.defineProperty(o,\"name\",{value:e,configurable:!0}),o}function vK(r,t){let e=C(r,\"real\",\"complex\"),n=C(t,\"imag\",\"complex\");Re(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 T.runKernel(zp,o)}var kn=k({complex_:vK});function un(r,t,e,n){if(n==null)n=Yl(r);else if(n===\"complex64\")throw new Error(\"Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).\");if(sx(r)||ox(r)){if(n!==\"float32\"&&n!==\"int32\")throw new Error(`Creating tensor from GPU data only supports 'float32'|'int32' dtype, while the dtype is ${n}.`);return T.backend.createTensorFromGPUData(r,t||e,n)}if(!or(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){Me(t);let o=te(t),s=te(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!or(r)&&!Array.isArray(r)&&(r=[r]),t=t||e,r=n!==\"string\"?tm(r,n):ui(r,[],!0),T.makeTensor(r,t,n)}function sr(r,t,e){let n=Ur(r,e);return un(r,t,n,e)}var mh={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8};var vr=class{static join(t){return new vr(t).slice()}constructor(t){if(this.shards=[],this.previousShardIndex=0,t==null||(t instanceof Array||(t=[t]),t=t.map(n=>or(n)?n.buffer:n),t.length===0))return;this.bufferUniformSize=t[0].byteLength;let e=0;for(let n=0;n=this.byteLength)return-1;if(this.bufferUniformSize!=null)return this.previousShardIndex=Math.floor(t/this.bufferUniformSize),this.previousShardIndex;function e(o){return t=o.end?1:0}if(e(this.shards[this.previousShardIndex])===0)return this.previousShardIndex;let n=SK(this.shards,e);return n===-1?-1:(this.previousShardIndex=n,this.previousShardIndex)}};function SK(r,t){let e=0,n=r.length;for(;e<=n;){let o=Math.floor((n-e)/2)+e,s=t(r[o]);if(s===0)return o;s<0?n=o:e=o+1}return-1}var ax=4;async function Q_(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)+ax*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 L0=typeof Buffer!=\"undefined\"&&(typeof Blob==\"undefined\"||typeof atob==\"undefined\"||typeof btoa==\"undefined\");function J_(r){return L0?Buffer.byteLength(r,\"utf8\"):new Blob([r]).size}function tE(r){if(L0)return Buffer.from(r).toString(\"base64\");let t=new Uint8Array(r),e=\"\";for(let n=0,o=t.length;n{let n=e<<13,o=0;for(;!(n&8388608);)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 TK(){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 _K(){let r=new Uint32Array(64);for(let t=0;t<64;t++)r[t]=1024;return r[0]=r[32]=0,r}function EK(){let r=kK(),t=TK(),e=_K();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 ve=class{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return ve.instance==null&&(ve.instance=new ve),ve.instance}static registerSaveRouter(t){ve.getInstance().saveRouters.push(t)}static registerLoadRouter(t){ve.getInstance().loadRouters.push(t)}static getSaveHandlers(t){return ve.getHandlers(t,\"save\")}static getLoadHandlers(t,e){return ve.getHandlers(t,\"load\",e)}static getHandlers(t,e,n){let o=[];return(e===\"load\"?ve.getInstance().loadRouters:ve.getInstance().saveRouters).forEach(i=>{let a=i(t,n);a!==null&&o.push(a)}),o}},nE=r=>ve.registerSaveRouter(r),oE=r=>ve.registerLoadRouter(r),sE=r=>ve.getSaveHandlers(r),iE=(r,t)=>ve.getLoadHandlers(r,t);var V0=\"tensorflowjs\",G0=1,yc=\"models_store\",vu=\"model_info_store\";function aE(){if(!L().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 W0(r){let t=r.result;t.createObjectStore(yc,{keyPath:\"modelPath\"}),t.createObjectStore(vu,{keyPath:\"modelPath\"})}var ra=class{constructor(t){if(this.indexedDB=aE(),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(V0,G0);s.onupgradeneeded=()=>W0(s),s.onsuccess=()=>{let i=s.result;if(e==null){let a=i.transaction(yc,\"readonly\"),l=a.objectStore(yc).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{e.weightData=vr.join(e.weightData);let a=ea(e),u=i.transaction(vu,\"readwrite\"),l=u.objectStore(vu),c;try{c=l.put({modelPath:this.modelPath,modelArtifactsInfo:a})}catch(m){return o(m)}let p;c.onsuccess=()=>{p=i.transaction(yc,\"readwrite\");let m=p.objectStore(yc),f;try{f=m.put({modelPath:this.modelPath,modelArtifacts:e,modelArtifactsInfo:a})}catch(d){return o(d)}f.onsuccess=()=>n({modelArtifactsInfo:a}),f.onerror=d=>{l=u.objectStore(vu);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)})}};ra.URL_SCHEME=\"indexeddb://\";var lE=r=>L().getBool(\"IS_BROWSER\")&&!Array.isArray(r)&&r.startsWith(ra.URL_SCHEME)?AK(r.slice(ra.URL_SCHEME.length)):null;ve.registerSaveRouter(lE);ve.registerLoadRouter(lE);function AK(r){return new ra(r)}function DK(r){return r.startsWith(ra.URL_SCHEME)?r.slice(ra.URL_SCHEME.length):r}var px=class{constructor(){this.indexedDB=aE()}async listModels(){return new Promise((t,e)=>{let n=this.indexedDB.open(V0,G0);n.onupgradeneeded=()=>W0(n),n.onsuccess=()=>{let o=n.result,s=o.transaction(vu,\"readonly\"),a=s.objectStore(vu).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=DK(t),new Promise((e,n)=>{let o=this.indexedDB.open(V0,G0);o.onupgradeneeded=()=>W0(o),o.onsuccess=()=>{let s=o.result,i=s.transaction(vu,\"readwrite\"),a=i.objectStore(vu),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(yc,\"readwrite\");let f=l.objectStore(yc).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 yl=\"/\",om=\"tensorflowjs_models\",uE=\"info\",$K=\"model_topology\",RK=\"weight_specs\",FK=\"weight_data\",OK=\"model_metadata\";function cE(r){return{info:[om,r,uE].join(yl),topology:[om,r,$K].join(yl),weightSpecs:[om,r,RK].join(yl),weightData:[om,r,FK].join(yl),modelMetadata:[om,r,OK].join(yl)}}function pE(r){for(let t of Object.values(r))window.localStorage.removeItem(t)}function PK(r){let t=r.split(yl);if(t.length<3)throw new Error(`Invalid key format: ${r}`);return t.slice(1,t.length-1).join(yl)}function MK(r){return r.startsWith(na.URL_SCHEME)?r.slice(na.URL_SCHEME.length):r}var na=class{constructor(t){if(!L().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=cE(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=ea(t),s=vr.join(t.weightData);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,tE(s));let i={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(i)),{modelArtifactsInfo:o}}catch(i){throw pE(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=eE(i),e}};na.URL_SCHEME=\"localstorage://\";var mE=r=>L().getBool(\"IS_BROWSER\")&&!Array.isArray(r)&&r.startsWith(na.URL_SCHEME)?LK(r.slice(na.URL_SCHEME.length)):null;ve.registerSaveRouter(mE);ve.registerLoadRouter(mE);function LK(r){return new na(r)}var mx=class{constructor(){_(L().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=om+yl,n=yl+uE;for(let o=0;o\"scheme must not be undefined or null.\"),t.endsWith(sm)&&(t=t.slice(0,t.indexOf(sm))),_(t.length>0,()=>\"scheme must not be an empty string.\");let n=$r.getInstance();_(n.managers[t]==null,()=>`A model store manager is already registered for scheme '${t}'.`),n.managers[t]=e}static getManager(t){let e=$r.getInstance().managers[t];if(e==null)throw new Error(`Cannot find model manager for scheme '${t}'`);return e}static getSchemes(){return Object.keys($r.getInstance().managers)}};function fx(r){if(r.indexOf(sm)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${$r.getSchemes().join(\",\")}`);return{scheme:r.split(sm)[0],path:r.split(sm)[1]}}async function fE(r,t,e=!1){_(r!==t,()=>`Old path and new path are the same: '${r}'`);let n=ve.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=ve.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=fx(r).scheme,u=fx(r).path,l=a===fx(r).scheme,c=await o.load();e&&l&&await $r.getManager(a).removeModel(u);let p=await i.save(c);return e&&!l&&await $r.getManager(a).removeModel(u),p.modelArtifactsInfo}async function dE(){let r=$r.getSchemes(),t={};for(let e of r){let n=await $r.getManager(e).listModels();for(let o in n){let s=e+sm+o;t[s]=n[o]}}return t}async function hE(r){let t=fx(r);return $r.getManager(t.scheme).removeModel(t.path)}async function gE(r,t){return fE(r,t,!1)}async function xE(r,t){return fE(r,t,!0)}var U0=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\"||!L().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))}isTypedArray(t){return Qg(t)}};if(L().get(\"IS_BROWSER\")){L().setPlatform(\"browser\",new U0);try{$r.registerManager(na.URL_SCHEME,new mx)}catch(r){}try{$r.registerManager(ra.URL_SCHEME,new px)}catch(r){}}var zK={importFetch:()=>yE()},H0;var q0=class{constructor(){this.util=bE(),this.textEncoder=new this.util.TextEncoder}fetch(t,e){return L().global.fetch!=null?L().global.fetch(t,e):(H0==null&&(H0=zK.importFetch()),H0(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)}isTypedArray(t){return this.util.types.isFloat32Array(t)||this.util.types.isInt32Array(t)||this.util.types.isUint8Array(t)||this.util.types.isUint8ClampedArray(t)}};L().get(\"IS_NODE\")&&!L().get(\"IS_BROWSER\")&&L().setPlatform(\"node\",new q0);function wt(r,t=\"float32\",e){return t=t||\"float32\",Me(r),new le(r,t,e)}function BK(r,t){let e=C(r,\"x\",\"cast\");if(!d0(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 T.runKernel(xo,n,o)}var Q=k({cast_:BK});function VK(r){let e={x:C(r,\"x\",\"clone\",\"string_or_numeric\")};return T.runKernel(bo,e)}var cn=k({clone_:VK});function dx(r,t=!1){console.log(r.toString(t))}F0();var GK={buffer:wt,cast:Q,clone:cn,print:dx};K_(GK);function aht(){L().set(\"PROD\",!0)}function lht(){L().set(\"DEBUG\",!0)}function uht(){L().set(\"DEPRECATION_WARNINGS_ENABLED\",!1),console.warn(\"TensorFlow.js deprecation warnings have been disabled.\")}function K0(r){L().getBool(\"DEPRECATION_WARNINGS_ENABLED\")&&console.warn(r+\" You can disable deprecation warnings with tf.disableDeprecationWarnings().\")}j_(K0);function cht(){T.disposeVariables()}function Wn(){return T}function fh(){return T.memory()}function pht(r){return T.profile(r)}function B(r,t){return T.tidy(r,t)}function Tt(r){ph(r).forEach(e=>e.dispose())}function $e(r){return T.keep(r)}function mht(r){return T.time(r)}function WK(r){return T.setBackend(r)}function fht(){return T.ready()}function dht(){return T.backendName}function hht(r){T.removeBackend(r)}function ght(r){return T.findBackend(r)}function xht(r){return T.findBackendFactory(r)}function im(r,t,e=1){return T.registerBackend(r,t,e)}function wE(){return T.backend}function yht(r,t){L().setPlatform(r,t)}function UK(r,t){let e=C(r,\"a\",\"add\"),n=C(t,\"b\",\"add\");[e,n]=jt(e,n);let o={a:e,b:n};return T.runKernel(ao,o)}var Y=k({add_:UK});function HK(r,t){let e=C(r,\"a\",\"floorDiv\"),n=C(t,\"b\",\"floorDiv\");[e,n]=jt(e,n);let o={a:e,b:n};return T.runKernel(xs,o)}var am=k({floorDiv_:HK});function qK(r,t){let e=C(r,\"a\",\"div\"),n=C(t,\"b\",\"div\");if([e,n]=jt(e,n),e.dtype===\"int32\"&&n.dtype===\"int32\")return am(e,n);let o={a:e,b:n},s={};return T.runKernel(ps,o,s)}var ct=k({div_:qK});function KK(r,t){let e=C(r,\"a\",\"mul\"),n=C(t,\"b\",\"mul\");[e,n]=jt(e,n);let o={a:e,b:n};return T.runKernel(Os,o)}var $=k({mul_:KK});function jK(r){let t=C(r,\"x\",\"abs\");if(t.dtype===\"complex64\"){let e={x:t};return T.runKernel(tu,e)}else{let e={x:t};return T.runKernel($i,e)}}var Ee=k({abs_:jK});function XK(r){let e={x:C(r,\"x\",\"acos\")};return T.runKernel(qo,e)}var hx=k({acos_:XK});function YK(r){let e={x:C(r,\"x\",\"acosh\")};return T.runKernel(Ko,e)}var gx=k({acosh_:YK});function ZK(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)=>C(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(!an(o.shape,e.shape))throw new Error(\"All tensors passed to tf.addN() must have the same shape\")});let n=t;return T.runKernel(jo,n)}var IE=k({addN_:ZK});function JK(r,t=null,e=!1){let o={x:C(r,\"x\",\"all\",\"bool\")},s={axis:t,keepDims:e};return T.runKernel(Ra,o,s)}var lm=k({all_:JK});function QK(r,t=null,e=!1){let o={x:C(r,\"x\",\"any\",\"bool\")},s={axis:t,keepDims:e};return T.runKernel(Fa,o,s)}var bc=k({any_:QK});function tj(r,t=0){let n={x:C(r,\"x\",\"argMax\")},o={axis:t};return T.runKernel(Ri,n,o)}var oa=k({argMax_:tj});function ej(r,t=0){let n={x:C(r,\"x\",\"argMin\")},o={axis:t};return T.runKernel(Fi,n,o)}var xx=k({argMin_:ej});function rj(r){let e={x:C(r,\"x\",\"asin\")};return T.runKernel(Xo,e)}var yx=k({asin_:rj});function nj(r){let e={x:C(r,\"x\",\"asinh\")};return T.runKernel(Yo,e)}var bx=k({asinh_:nj});function oj(r){let e={x:C(r,\"x\",\"atan\")};return T.runKernel(Zo,e)}var wx=k({atan_:oj});function sj(r,t){let e=C(r,\"a\",\"atan2\"),n=C(t,\"b\",\"atan2\");[e,n]=jt(e,n);let o={a:e,b:n};return T.runKernel(Qo,o)}var Ix=k({atan2_:sj});function ij(r){let e={x:C(r,\"x\",\"atanh\")};return T.runKernel(Jo,e)}var Cx=k({atanh_:ij});function aj(r,t,e,n,o=\"NHWC\",s){let i=r[3],a=[...t,i],u=vE(o);return wc(r,a,e,s,n,null,null,u)}function X0(r,t,e,n,o,s,i=\"channelsLast\"){let[a,u]=dh(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 wc(r,l,e,n,o,s,!1,i)}function lj(r,t,e,n,o,s,i=\"NDHWC\"){let[a,u,l]=j0(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 CE(r,c,e,n,o,!1,p,s)}function wc(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]=dh(e),[x,b]=dh(n),w=um(m,x),I=um(f,b),{padInfo:N,outHeight:E,outWidth:A}=pj(o,l,c,h,g,w,I,s,a),D=i?d*p:d,F;return a===\"channelsFirst\"?F=[u,D,E,A]:a===\"channelsLast\"&&(F=[u,E,A,D]),{batchSize:u,dataFormat:a,inHeight:l,inWidth:c,inChannels:p,outHeight:E,outWidth:A,outChannels:D,padInfo:N,strideHeight:h,strideWidth:g,filterHeight:m,filterWidth:f,effectiveFilterHeight:w,effectiveFilterWidth:I,dilationHeight:x,dilationWidth:b,inShape:r,outShape:F,filterShape:t}}function CE(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]=j0(e),[I,N,E]=j0(n),A=um(f,I),D=um(d,N),F=um(h,E),{padInfo:P,outDepth:V,outHeight:G,outWidth:W}=mj(o,l,c,p,x,b,w,A,D,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:D,effectiveFilterWidth:F,dilationDepth:I,dilationHeight:N,dilationWidth:E,inShape:r,outShape:H,filterShape:t}}function uj(r,t,e,n,o){n==null&&(n=Y0(r,t,e));let s=r[0],i=r[1],a=hh((s-t+2*n)/e+1,o),u=hh((i-t+2*n)/e+1,o);return[a,u]}function cj(r,t,e,n,o,s){o==null&&(o=Y0(r,t[0],n[0]));let i=[0,0,0,e];for(let a=0;a<3;a++)r[a]+2*o>=t[a]&&(i[a]=hh((r[a]-t[a]+2*o)/n[a]+1,s));return i}function Y0(r,t,e,n=1){let o=um(t,n);return Math.floor((r[0]*(e-1)-e+o)/2)}function dh(r){return typeof r==\"number\"?[r,r,r]:r.length===2?[r[0],r[1],1]:r}function j0(r){return typeof r==\"number\"?[r,r,r]:r}function um(r,t){return t<=1?r:r+(r-1)*(t-1)}function pj(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=uj([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=hh((t-s+m+f)/n+1,a),p=hh((e-i+d+h)/o+1,a)}else throw Error(`Unknown padding parameter: ${r}`);return{padInfo:l,outHeight:c,outWidth:p}}function mj(r,t,e,n,o,s,i,a,u,l,c){let p,m,f,d;if(r===\"valid\"&&(r=0),typeof r==\"number\"){p={top:r,bottom:r,left:r,right:r,front:r,back:r,type:r===0?\"VALID\":\"NUMBER\"};let g=cj([t,e,n,1],[a,u,l],1,[o,s,i],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,I=Math.floor(g/2),N=g-I,E=Math.floor(x/2),A=x-E;p={top:I,bottom:N,left:E,right:A,front:b,back:w,type:\"SAME\"}}else throw Error(`Unknown padding parameter: ${r}`);return{padInfo:p,outDepth:m,outHeight:f,outWidth:d}}function hh(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 co(r){let[t,e,n]=dh(r);return t===1&&e===1&&n===1}function Rr(r,t){return co(r)||co(t)}function sa(r){return dh(r).every(t=>t>0)}function vE(r){if(r===\"NHWC\")return\"channelsLast\";if(r===\"NCHW\")return\"channelsFirst\";throw new Error(`Unknown dataFormat ${r}`)}function Se(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\")_($a(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=>{_($a(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 fj(r,t){let n={x:C(r,\"x\",\"reshape\",\"string_or_numeric\")},o={shape:t};return T.runKernel(Ui,n,o)}var R=k({reshape_:fj});function dj(r,t,e,n,o){let s=C(r,\"x\",\"avgPool\",\"float32\"),i=1;_(Rr(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}.`),Se(\"avgPool\",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o},p=T.runKernel(ts,l,c);return p=Q(p,s.dtype),u?R(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var Su=k({avgPool_:dj});function hj(r,t,e,n,o,s=\"NDHWC\"){let i=C(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}`),_(typeof e==\"number\"&&e>0||Array.isArray(e)&&e[0]>0&&e[1]>0&&e[2]>0,()=>`Error in avgPool3d: Stride must be > 0, but got '${e}'`),Se(\"avgPool3d\",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o,dataFormat:s},p=T.runKernel(Oi,l,c);return p=Q(p,a.dtype),u?R(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var vx=k({avgPool3d_:hj});function gj(r,t=0){_(r.length>=1,()=>\"Pass at least one tensor to concat\");let e=xl(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 cn(e[0]);let n=e,o={axis:t};return T.runKernel(Mi,n,o)}var ie=k({concat_:gj});function xj(r,t,e=!1,n=!1){let o=C(r,\"a\",\"matMul\"),s=C(t,\"b\",\"matMul\");[o,s]=jt(o,s);let i={a:o,b:s},a={transposeA:e,transposeB:n};return T.runKernel(es,i,a)}var Bt=k({matMul_:xj});function yj(r){let e={x:C(r,\"x\",\"sigmoid\",\"float32\")};return T.runKernel(Qs,e)}var en=k({sigmoid_:yj});function bj(r,t,e){let n=C(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 T.runKernel(qi,o,s)}var Pt=k({slice_:bj});function wj(r){let e={x:C(r,\"x\",\"tanh\",\"float32\")};return T.runKernel(ai,e)}var ia=k({tanh_:wj});function Ij(r,t,e,n,o,s){let i=C(r,\"forgetBias\",\"basicLSTMCell\"),a=C(t,\"lstmKernel\",\"basicLSTMCell\"),u=C(e,\"lstmBias\",\"basicLSTMCell\"),l=C(n,\"data\",\"basicLSTMCell\"),c=C(o,\"c\",\"basicLSTMCell\"),p=C(s,\"h\",\"basicLSTMCell\"),m=ie([l,p],1),f=Bt(m,a),d=Y(f,u),h=d.shape[0],g=d.shape[1]/4,x=[h,g],b=Pt(d,[0,0],x),w=Pt(d,[0,g],x),I=Pt(d,[0,g*2],x),N=Pt(d,[0,g*3],x),E=Y($(en(b),ia(w)),$(c,en(Y(i,I)))),A=$(ia(E),en(N));return[E,A]}var SE=k({basicLSTMCell_:Ij});function Cj(r,t,e){let n=C(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 T.runKernel(Pi,s,i)}var Nu=k({batchToSpaceND_:Cj});function NE(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 vj(r,t,e,n,o,s){s==null&&(s=.001);let i=C(r,\"x\",\"batchNorm\"),a=C(t,\"mean\",\"batchNorm\"),u=C(e,\"variance\",\"batchNorm\"),l;o!=null&&(l=C(o,\"scale\",\"batchNorm\"));let c;n!=null&&(c=C(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:NE(i),scale:l,offset:c,mean:a,variance:u},f={varianceEpsilon:s},d=T.runKernel(ys,m,f);return R(d,i.shape)}var aa=k({batchNorm_:vj});function Sj(r,t,e,n,o,s){let i=C(r,\"x\",\"batchNorm\"),a=C(t,\"mean\",\"batchNorm\"),u=C(e,\"variance\",\"batchNorm\"),l;o!=null&&(l=C(o,\"scale\",\"batchNorm\"));let c;return n!=null&&(c=C(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}.`),aa(i,a,u,c,l,s)}var Sx=k({batchNorm2d_:Sj});function Nj(r,t,e,n,o,s){let i=C(r,\"x\",\"batchNorm\"),a=C(t,\"mean\",\"batchNorm\"),u=C(e,\"variance\",\"batchNorm\"),l;o!=null&&(l=C(o,\"scale\",\"batchNorm\"));let c;return n!=null&&(c=C(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}.`),aa(i,a,u,c,l,s)}var Nx=k({batchNorm3d_:Nj});function kj(r,t,e,n,o,s){let i=C(r,\"x\",\"batchNorm\"),a=C(t,\"mean\",\"batchNorm\"),u=C(e,\"variance\",\"batchNorm\"),l;o!=null&&(l=C(o,\"scale\",\"batchNorm\"));let c;return n!=null&&(c=C(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}.`),aa(i,a,u,c,l,s)}var kx=k({batchNorm4d_:kj});function Tj(r,t,e){let n=C(r,\"x\",\"bincount\"),o=C(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 T.runKernel(Oa,s,i)}var Tx=k({bincount_:Tj});function _j(r,t){let e=C(r,\"x\",\"bitwiseAnd\"),n=C(t,\"y\",\"bitwiseAnd\");if(!an(e.shape,n.shape))throw new Error(`BitwiseAnd: Tensors must have the same shape. x: ${e.shape}, y: ${n.shape}`);if(e.dtype!==\"int32\"||n.dtype!==\"int32\")throw new Error(`BitwiseAnd: Only supports 'int32' values in tensor, found type of x: ${e.dtype} and type of y: ${n.dtype}`);let o={a:e,b:n};return T.runKernel(Pa,o)}var kE=k({bitwiseAnd_:_j});function Ej(r,t){let e=C(r,\"s0\",\"broadcastArgs\",\"int32\"),n=C(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 T.runKernel(Ql,o)}var TE=k({broadcastArgs_:Ej});function Aj(r,t){let e=C(r,\"broadcastTo\",\"x\"),n=e.shape;if(Me(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 cn(e);let a={x:e},u={reps:s};return T.runKernel(lo,a,u)}var la=k({broadcastTo_:Aj});function Dj(r){let e={x:C(r,\"x\",\"ceil\",\"float32\")};return T.runKernel(rs,e)}var _x=k({ceil_:Dj});function No(r,t,e){Me(r),e=e||Yl(t);let n={shape:r,value:t,dtype:e};return T.runKernel(su,{},n)}function $j(r,t,e){let n=C(r,\"x\",\"clipByValue\");if(_(t<=e,()=>`Error in clip: min (${t}) must be less than or equal to max (${e}).`),t===e)return No(n.shape,t,n.dtype);let o={x:n},s={clipValueMin:t,clipValueMax:e};return T.runKernel(yo,o,s)}var Sr=k({clipByValue_:$j});function Rj(r){return ie(r,0)}var Ex=k({concat1d_:Rj});function Fj(r,t){return ie(r,t)}var Ax=k({concat2d_:Fj});function Oj(r,t){return ie(r,t)}var Dx=k({concat3d_:Oj});function Pj(r,t){return ie(r,t)}var $x=k({concat4d_:Pj});function Mj(r,t,e,n,o=\"NHWC\",s=[1,1],i){let a=C(r,\"x\",\"conv2d\",\"float32\"),u=C(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}.`),Se(\"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]}.`),_(Rr(e,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`),_(sa(s),()=>\"Error in conv2D: Dilated rates should be larger than 0.\"),_(sa(e),()=>\"Error in conv2D: Strides should be larger than 0.\");let m={x:l,filter:u},f={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i},d=T.runKernel(ns,m,f);return c?R(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var Tn=k({conv2d_:Mj});function Lj(r,t,e,n,o=\"NWC\",s=1,i){let a=C(r,\"x\",\"conv1d\"),u=C(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}.`),Se(\"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]}.`),_(Rr(e,s),()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${e} and dilation '${s}'`),_(sa(s),()=>\"Error in conv1D: Dilated rates should be larger than 0.\"),_(sa(e),()=>\"Error in conv1D: Stride should be larger than 0.\"),_(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=Tn(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 cm=k({conv1d_:Lj});function zj(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]}.`),Se(\"conv2dDerInput\",o,i);let m={dy:u,filter:e},f={strides:n,pad:o,dataFormat:s,dimRoundingMode:i,inputShape:a},d=T.runKernel(os,m,f);return l?R(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var pm=k({conv2DBackpropInput_:zj});function Bj(r,t,e,n,o,s){let i=C(r,\"x\",\"conv2dTranspose\"),a=C(t,\"filter\",\"conv2dTranspose\");return pm(e,i,a,n,o,\"NHWC\",s)}var mm=k({conv2dTranspose_:Bj});function Vj(r,t,e,n,o=\"NDHWC\",s=[1,1,1]){let i=C(r,\"x\",\"conv3d\"),a=C(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]}.`),_(Rr(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.`),_(sa(s),()=>\"Error in conv3D: Dilated rates should be larger than 0.\"),_(sa(e),()=>\"Error in conv3D: Strides should be larger than 0.\");let c={x:u,filter:a},p={strides:e,pad:n,dataFormat:o,dilations:s},m=T.runKernel(ss,c,p);return l?R(m,[m.shape[1],m.shape[2],m.shape[3],m.shape[4]]):m}var Rx=k({conv3d_:Vj});function Gj(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=T.runKernel(La,c,p);return a?R(m,[m.shape[1],m.shape[2],m.shape[3],m.shape[4]]):m}var Fx=k({conv3DBackpropInput_:Gj});function Wj(r,t,e,n,o){let s=C(r,\"x\",\"conv3dTranspose\"),i=C(t,\"filter\",\"conv3dTranspose\");return Fx(e,s,i,n,o)}var Ox=k({conv3dTranspose_:Wj});function Uj(r){let e={x:C(r,\"x\",\"cos\",\"float32\")};return T.runKernel(is,e)}var ku=k({cos_:Uj});function Hj(r){let e={x:C(r,\"x\",\"cosh\",\"float32\")};return T.runKernel(as,e)}var fm=k({cosh_:Hj});function qj(r,t=0,e=!1,n=!1){let s={x:C(r,\"x\",\"cumprod\")},i={axis:t,exclusive:e,reverse:n};return T.runKernel(za,s,i)}var Ic=k({cumprod_:qj});function Kj(r,t=0,e=!1,n=!1){let s={x:C(r,\"x\",\"cumsum\")},i={axis:t,exclusive:e,reverse:n};return T.runKernel(ls,s,i)}var dm=k({cumsum_:Kj});function jj(r,t,e,n=!1){let o=C(r,\"x\",\"denseBincount\"),s=C(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 T.runKernel(eu,i,a)}var gh=k({denseBincount_:jj});function Xj(r,t,e=\"NHWC\"){let n=C(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 T.runKernel(Va,a,u)}var Px=k({depthToSpace_:Xj});function Yj(r,t,e,n,o=\"NHWC\",s=[1,1],i){let a=C(r,\"x\",\"depthwiseConv2d\",\"float32\"),u=C(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]}.`),Se(\"depthwiseConv2d\",n,i);let m={x:l,filter:u},f={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i},d=T.runKernel(us,m,f);return c?R(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var ua=k({depthwiseConv2d_:Yj});function Zj(r){let e={x:C(r,\"x\",\"diag\")};return T.runKernel(ru,e)}var _E=k({diag_:Zj});function Jj(r,t,e,n,o=[1,1],s=\"NHWC\"){let i=C(r,\"x\",\"dilation2d\"),a=C(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),_(u.shape[3]===a.shape[2],()=>`Error in dilation2d: input and filter must have the same depth: ${u.shape[3]} vs ${a.shape[2]}`);let c={x:u,filter:a},p={strides:e,pad:n,dilations:o},m=T.runKernel(cs,c,p);return l?R(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var Mx=k({dilation2d_:Jj});var Hr={};Kt(Hr,{assertAndGetBroadcastShape:()=>Mt,getBroadcastDims:()=>EE,getReductionAxes:()=>ye});function EE(r,t){let e=r.length,n=[];for(let o=0;o1&&i===1&&n.unshift(s)}return n}function ye(r,t){let e=[];for(let n=0;n1)&&e.unshift(s)}return e}function Mt(r,t){let e=Math.max(r.length,t.length),n=new Array(e);for(let o=0;o`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=Bt(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=Bt(i,a);return R(u,[u.size])}else if(e.rank===2&&n.rank===1){let i=R(n,[-1,1]),a=Bt(e,i);return R(a,[a.size])}else{let i=R(n,[n.shape[0],n.shape[1]]);return Bt(e,i)}}var zx=k({dot_:n6});function o6(r,...t){let e=t.map((o,s)=>C(o,`tensors${s}`,\"einsum\")),n={equation:r};return T.runKernel(Wp,e,n)}var AE=k({einsum_:o6});function s6(r){let e={x:C(r,\"x\",\"elu\",\"float32\")};return T.runKernel(ms,e)}var ca=k({elu_:s6});function i6(r,t){let e=C(r,\"x\",\"ensureShape\",\"string_or_numeric\");if(!c0(e.shape,t))throw new Error(`EnsureShape: Shape of tensor ${e.shape} is not compatible with expected shape ${t}`);return r}var DE=k({ensureShape_:i6});function a6(r){let t=C(r,\"x\",\"erf\");_(t.dtype===\"int32\"||t.dtype===\"float32\",()=>\"Input dtype must be `int32` or `float32`.\"),t.dtype===\"int32\"&&(t=Q(t,\"float32\"));let e={x:t};return T.runKernel(fs,e)}var Bx=k({erf_:a6});function Z0(r,t){for(let e=0;er[s]);return[e,o]}function ko(r,t){let e=t.map(n=>1);return $E(r,e,t)}function l6(r,t,e){_(Z0(t,e),()=>`${r} supports only inner-most axes for now. Got axes ${t} and rank-${e} input.`)}function Q0(r,t){if(Z0(r,t))return null;let e=[];for(let n=0;ne.push(n)),e}function xh(r){return r.map((t,e)=>[e,t]).sort((t,e)=>t[1]-e[1]).map(t=>t[0])}function u6(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 T.runKernel(Li,n,o)}var ar=k({expandDims_:b6});function w6(r){let e={x:C(r,\"x\",\"expm1\")};return T.runKernel(hs,e)}var Gx=k({expm1_:w6});function I6(r,t){let e=C(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 T.runKernel(lo,n,o)}var Or=k({tile_:I6});function C6(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}.`),_($a(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=T.runKernel(ks,u,l);return a?R(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var qx=k({localResponseNormalization_:F6});function O6(r){let e={x:C(r,\"x\",\"log\",\"float32\")};return T.runKernel(Ss,e)}var kr=k({log_:O6});function P6(r){let e={x:C(r,\"x\",\"log1p\")};return T.runKernel(Ns,e)}var Eu=k({log1p_:P6});function M6(r){return _(Ai(r),()=>\"The f passed in grad(f) must be a function\"),(t,e)=>{let n=C(t,\"x\",\"tf.grad\",\"string_or_numeric\"),o=e!=null?C(e,\"dy\",\"tf.grad\"):null;return T.tidy(()=>{let{value:s,grads:i}=T.gradients(()=>r(n),[n],o);return o!=null&&Re(s.shape,o.shape,\"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)\"),jx(i),i[0]})}}function L6(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=xl(t,\"args\",\"tf.grads\",\"string_or_numeric\"),o=e!=null?C(e,\"dy\",\"tf.grads\"):null;return T.tidy(()=>{let{value:s,grads:i}=T.gradients(()=>r(...n),n,o);return o!=null&&Re(s.shape,o.shape,\"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])\"),jx(i),i})}}function z6(r){return _(Ai(r),()=>\"The f passed in valueAndGrad(f) must be a function\"),(t,e)=>{_(t instanceof Ot,()=>\"The x passed in valueAndGrad(f)(x) must be a tensor\"),_(e==null||e instanceof Ot,()=>\"The dy passed in valueAndGrad(f)(x, dy) must be a tensor\");let{grads:n,value:o}=T.gradients(()=>r(t),[t],e);return jx(n),{grad:n[0],value:o}}}function B6(r){return _(Ai(r),()=>\"The f passed in valueAndGrads(f) must be a function\"),(t,e)=>{_(Array.isArray(t)&&t.every(o=>o instanceof Ot),()=>\"The args passed in valueAndGrads(f)(args) must be array of tensors\"),_(e==null||e instanceof Ot,()=>\"The dy passed in valueAndGrads(f)(args, dy) must be a tensor\");let n=T.gradients(()=>r(...t),t,e);return e!=null&&Re(n.value.shape,e.shape,\"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])\"),jx(n.grads),n}}function Kx(r,t){_(Ai(r),()=>\"The f passed in variableGrads(f) must be a function\"),_(t==null||Array.isArray(t)&&t.every(l=>l instanceof gl),()=>\"The varList passed in variableGrads(f, varList) must be an array of variables\");let e=t!=null;if(!e){t=[];for(let l in T.registeredVariables)t.push(T.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}=T.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 fn(r){return T.customGrad(r)}function jx(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 V6(r){let e={x:C(r,\"x\",\"neg\")};return T.runKernel(Vi,e)}var Ut=k({neg_:V6});function G6(r){let e={x:C(r,\"x\",\"softplus\")};return T.runKernel(ti,e)}var pi=k({softplus_:G6});function W6(r){let t=C(r,\"x\",\"logSigmoid\");return fn(n=>({value:Ut(pi(Ut(n))),gradFunc:i=>$(i,en(Ut(n)))}))(t)}var Xx=k({logSigmoid_:W6});function U6(r,t){let e=C(r,\"a\",\"sub\"),n=C(t,\"b\",\"sub\");[e,n]=jt(e,n);let o={a:e,b:n};return T.runKernel(si,o)}var lt=k({sub_:U6});function H6(r,t=-1){let e=C(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 fn((o,s)=>{let a=Nr(o,t,!0),u=lt(o,a),l=lt(Q(u,\"float32\"),kr(pt(ir(u),t,!0)));return s([l]),{value:l,gradFunc:(p,m)=>{let[f]=m,d=!0,h=ir(f);return lt(p,$(pt(p,t,d),h))}}})(e)}var hm=k({logSoftmax_:H6});function q6(r,t=null,e=!1){let n=C(r,\"x\",\"logSumExp\"),o=fr(t,n.shape),s=Nr(n,o,!0),i=lt(n,s),a=ir(i),u=pt(a,o),l=kr(u),c=Y(R(s,l.shape),l);if(e){let p=ko(c.shape,o);return R(c,p)}return c}var gm=k({logSumExp_:q6});function K6(r,t){let e=C(r,\"a\",\"logicalAnd\",\"bool\"),n=C(t,\"b\",\"logicalAnd\",\"bool\");Mt(e.shape,n.shape);let o={a:e,b:n};return T.runKernel(Ya,o)}var Pr=k({logicalAnd_:K6});function j6(r){let e={x:C(r,\"x\",\"logicalNot\",\"bool\")};return T.runKernel(Za,e)}var Au=k({logicalNot_:j6});function X6(r,t){let e=C(r,\"a\",\"logicalOr\",\"bool\"),n=C(t,\"b\",\"logicalOr\",\"bool\");Mt(e.shape,n.shape);let o={a:e,b:n};return T.runKernel(Ja,o)}var xm=k({logicalOr_:X6});function Y6(r,t){let e=C(r,\"a\",\"logicalXor\",\"bool\"),n=C(t,\"b\",\"logicalXor\",\"bool\");return Mt(e.shape,n.shape),Pr(xm(r,t),Au(Pr(r,t)))}var Yx=k({logicalXor_:Y6});var Zx=2147483648;function Z6(r,t,e=\"left\"){let n=C(r,\"sortedSequence\",\"searchSorted\"),o=C(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(te(u.shape)>=Zx)throw new Error(`values tensor size must less than ${Zx}`);if(a.shape[1]>=Zx)throw new Error(`trailing dim_size must less than ${Zx} for int32 output type, was ${a.shape[1]}`);let l={sortedSequence:a,values:u},c={side:e};return T.runKernel(ul,l,c)}var yh=k({searchSorted_:Z6});function OE(r,t){return yh(r,t,\"left\")}function J6(r,t,e,n,o){let s=C(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}.`),_(Rr(e,i),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${e} and dilations '${i}'`),Se(\"maxPool\",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o},p=T.runKernel(Es,l,c);return u?R(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var Du=k({maxPool_:J6});function Q6(r,t=[1,1,1],e,n,o,s=\"NDHWC\"){let i=C(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}`),Se(\"maxPool3d\",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o,dataFormat:s},p=T.runKernel(Bi,l,c);return u?R(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var Jx=k({maxPool3d_:Q6});function tX(r,t,e,n,o=!1){let i={x:C(r,\"x\",\"maxPoolWithArgmax\")},a={filterSize:t,strides:e,pad:n,includeBatchInIndex:o},u=T.runKernel(lu,i,a);return{result:u[0],indexes:u[1]}}var PE=k({maxPoolWithArgmax_:tX});function eX(r,t){let e=C(r,\"a\",\"maximum\"),n=C(t,\"b\",\"maximum\");[e,n]=jt(e,n),e.dtype===\"bool\"&&(e=Q(e,\"int32\"),n=Q(n,\"int32\")),Mt(e.shape,n.shape);let o={a:e,b:n};return T.runKernel(_s,o)}var _n=k({maximum_:eX});function rX(r,t=null,e=!1){let o={x:C(r,\"x\",\"mean\")},s={axis:t,keepDims:e};return T.runKernel(As,o,s)}var ke=k({mean_:rX});function Te(r,t=\"float32\"){if(Me(r),t===\"complex64\"){let n=Te(r,\"float32\"),o=Te(r,\"float32\");return kn(n,o)}let e=Lp(te(r),t);return T.makeTensor(e,r,t)}function dr(r,t=\"float32\"){if(Me(r),t===\"complex64\"){let n=dr(r,\"float32\"),o=Te(r,\"float32\");return kn(n,o)}let e=eh(te(r),t);return T.makeTensor(e,r,t)}function ME(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=C(r,\"x\",\"meshgrid\",r instanceof Ot?r.dtype:\"float32\");if(t===void 0)return[n];let o=C(t,\"y\",\"meshgrid\",t instanceof Ot?t.dtype:\"float32\"),s=te(n.shape),i=te(o.shape);return e===\"xy\"?(n=R(n,[1,-1]),o=R(o,[-1,1]),[Bt(dr([i,1],n.dtype),n),Bt(o,dr([1,s],o.dtype))]):(n=R(n,[-1,1]),o=R(o,[1,-1]),[Bt(n,dr([1,i],n.dtype)),Bt(dr([s,1],o.dtype),o)])}function nX(r,t){let e=C(r,\"a\",\"minimum\"),n=C(t,\"b\",\"minimum\");[e,n]=jt(e,n),e.dtype===\"bool\"&&(e=Q(e,\"int32\"),n=Q(n,\"int32\")),Mt(e.shape,n.shape);let o={a:e,b:n};return T.runKernel($s,o)}var mo=k({minimum_:nX});function oX(r,t,e){_(e===\"reflect\"||e===\"symmetric\",()=>`Invalid mode. Mode must be either reflect or symmetric. Got ${e}.`);let n=C(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 T.runKernel(Rs,i,s)}var Qx=k({mirrorPad_:oX});function sX(r,t){let e=C(r,\"a\",\"mod\"),n=C(t,\"b\",\"mod\");[e,n]=jt(e,n);let o={a:e,b:n};return T.runKernel(Fs,o)}var ty=k({mod_:sX});function iX(r,t=null,e=!1){r=C(r,\"x\",\"moments\");let n=fr(t,r.shape),o=ke(r,n,e),s=o.shape;e||(s=ko(o.shape,n));let i=Wt(lt(Q(r,\"float32\"),R(o,s))),a=ke(i,n,e);return{mean:o,variance:a}}var vc=k({moments_:iX});function aX(r,t,e,n){let o=C(t,\"data\",\"multiRNNCell\"),s=xl(e,\"c\",\"multiRNNCell\"),i=xl(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=T.runKernel(tl,u,l);return i===1?R(c,[c.size]):c}var zE=k({multinomial_:lX});function uX(r,t){let e=C(r,\"a\",\"notEqual\",\"string_or_numeric\"),n=C(t,\"b\",\"notEqual\",\"string_or_numeric\");[e,n]=jt(e,n),Mt(e.shape,n.shape);let o={a:e,b:n};return T.runKernel(el,o)}var mi=k({notEqual_:uX});function cX(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:C(r,\"indices\",\"oneHot\",\"int32\")},a={dtype:o,depth:t,onValue:e,offValue:n};return T.runKernel(Ps,i,a)}var fa=k({oneHot_:cX});function pX(r){let e={x:C(r,\"x\",\"onesLike\")};return T.runKernel(Gi,e)}var Ir=k({onesLike_:pX});function mX(r,t){let e=C(r,\"v1\",\"outerProduct\"),n=C(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 Bt(o,s)}var BE=k({outerProduct_:mX});function fX(r,t,e=0){let n=C(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 T.runKernel(Ms,s,o)}var dn=k({pad_:fX});function dX(r,t,e=0){return _(t.length===2,()=>\"Invalid number of paddings. Must be length of 2.\"),dn(r,[t],e)}var VE=k({pad1d_:dX});function hX(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.\"),dn(r,t,e)}var GE=k({pad2d_:hX});function gX(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.\"),dn(r,t,e)}var WE=k({pad3d_:gX});function xX(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.\"),dn(r,t,e)}var UE=k({pad4d_:xX});function yX(r,t,e){let n=C(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 T.runKernel(Ki,o,s)}var $u=k({spaceToBatchND_:yX});function bX(r,t,e,n,o,s,i){o==null&&(o=[1,1]),s==null&&(s=1),n===0&&(n=\"valid\");let a=C(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]])),_(Rr(s,o),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${o}'`);let c=X0(u.shape,t,s,o,n),p=[c.dilationHeight,c.dilationWidth],m;n===\"same\"?m=IX([c.filterHeight,c.filterWidth],p):m=[[0,0],[0,0]];let f=p[0]===1&&p[1]===1,[d,h]=wX([c.inHeight,c.inWidth],p,m),g=f?n:\"valid\",x=f?u:$u(u,p,d),w=(e===\"avg\"?()=>Su(x,t,s,g,i):()=>Du(x,t,s,g,i))(),I=f?w:Nu(w,p,h);return l?R(I,[I.shape[1],I.shape[2],I.shape[3]]):I}function wX(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 IX(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 ey=k({pool_:bX});function CX(r,t){let e=C(r,\"x\",\"prelu\"),n=C(t,\"alpha\",\"prelu\"),o={x:e,alpha:n};return T.runKernel(zs,o)}var Ru=k({prelu_:CX});function vX(r,t=null,e=!1){let n=C(r,\"x\",\"prod\");n.dtype===\"bool\"&&(n=Q(n,\"int32\"));let o={x:n},s={axis:t,keepDims:e};return T.runKernel(Bs,o,s)}var ry=k({prod_:vX});function SX(r,t,e,n){let o=r.map((c,p)=>C(c,`tensors${p}`,\"raggedGather\",\"int32\")),s=C(t,\"paramsDenseValues\",\"raggedGather\"),i=C(e,\"indices\",\"raggedGather\",\"int32\"),a={paramsNestedSplits:o,paramsDenseValues:s,indices:i},u={outputRaggedRank:n},l=T.runKernel(Kp,a,u);return{outputNestedSplits:l.slice(0,l.length-1),outputDenseValues:l[l.length-1]}}var HE=k({raggedGather_:SX});function NX(r,t,e){let n=C(r,\"starts\",\"raggedRange\"),o=C(t,\"limits\",\"raggedRange\",n.dtype),s=C(e,\"deltas\",\"raggedRange\",n.dtype),i={starts:n,limits:o,deltas:s},a=T.runKernel(jp,i);return{rtNestedSplits:a[0],rtDenseValues:a[1]}}var qE=k({raggedRange_:NX});function kX(r,t,e,n,o){let s=C(r,\"shape\",\"raggedTensorToTensor\",\"int32\"),i=C(t,\"values\",\"raggedTensorToTensor\"),a=C(e,\"defaultValue\",\"raggedTensorToTensor\",i.dtype),u=n.map((p,m)=>C(p,`tensors${m}`,\"raggedTensorToTensor\",\"int32\")),l={shape:s,values:i,defaultValue:a,rowPartitionTensors:u},c={rowPartitionTypes:o};return T.runKernel(Xp,l,c)}var KE=k({raggedTensorToTensor_:kX});function TX(r,t,e){Me(r);let n=te(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;spA,createVideoElement:()=>BX,encodeStrings:()=>fA,expectArrayBuffersEqual:()=>zX,expectArraysClose:()=>OX,expectArraysEqual:()=>MX,expectNumbersClose:()=>mA,expectPromiseToFail:()=>PX,expectValuesInRange:()=>LX,play:()=>VX,testEpsilon:()=>oy});var FX=.001,pA=.1;function OX(r,t,e){return e==null&&(e=oy()),aN(r,t,(n,o)=>lN(n,o,e))}function oy(){return T.backend.floatPrecision()===32?FX:pA}function aN(r,t,e){let n=!0;if((or(r)||or(t))&&(n=!1),or(r)&&or(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=Ur(r),a=Ur(t);if(!an(i,a))throw new Error(`Arrays have different shapes. Actual: [${i}]. Expected: [${a}]`)}let o=or(r)?r:ui(r),s=or(t)?t:ui(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 MX(r,t){let e=typeof t==\"string\"||typeof t==\"number\"||typeof t==\"boolean\"?[t]:t;return Ho(r)||Ho(r[0])||Ho(t)||Ho(t[0])?aN(r,e,(n,o)=>n==o):aN(r,t,(n,o)=>lN(n,o,0))}function mA(r,t,e){if(e==null&&(e=oy()),!lN(r,t,e))throw new Error(`Numbers differ: actual === ${r}, expected === ${t}`);typeof expect!=\"undefined\"&&expect().nothing()}function lN(r,t,e){return!isFinite(r)&&!isFinite(t)?!0:!(isNaN(r)||isNaN(t)||Math.abs(r-t)>e)}function LX(r,t,e){for(let n=0;ne)throw new Error(`Value out of range:${r[n]} low: ${t}, high: ${e}`)}function zX(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 VX(r){await r.play(),\"requestVideoFrameCallback\"in r&&await new Promise(t=>{r.requestVideoFrameCallback(t)})}var Nc=class{constructor(t,e,n,o,s){this.mean=t,this.stdDev=e,this.dtype=n,this.nextVal=NaN,this.truncated=o,this.truncated&&(this.upper=this.mean+this.stdDev*2,this.lower=this.mean-this.stdDev*2);let i=s||Math.random();this.random=ay.alea(i.toString())}nextValue(){if(!isNaN(this.nextVal)){let o=this.nextVal;return this.nextVal=NaN,o}let t,e,n=!1;for(;!n;){let o,s,i;do o=2*this.random()-1,s=2*this.random()-1,i=o*o+s*s;while(i>=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}},sy=class{constructor(t,e,n,o){this.alpha=t,this.beta=1/e,this.dtype=n;let s=o||Math.random();this.randu=ay.alea(s.toString()),this.randn=new Nc(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=ay.alea(o)}convertValue(t){return this.canReturnFloat()?t:Math.round(t)}nextValue(){return this.convertValue(this.min+this.range*this.random())}};function GX(r,t,e=1,n=\"float32\",o){if(Me(r),e==null&&(e=1),n==null&&(n=\"float32\"),n!==\"float32\"&&n!==\"int32\")throw new Error(`Unsupported data type ${n}`);let s=new sy(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}.`),hr(t,0)}var yA=k({reverse1d_:JX});function QX(r,t){let e=C(r,\"x\",\"reverse\");return _(e.rank===2,()=>`Error in reverse2D: x must be rank 2 but got rank ${e.rank}.`),hr(e,t)}var bA=k({reverse2d_:QX});function t5(r,t){let e=C(r,\"x\",\"reverse\");return _(e.rank===3,()=>`Error in reverse3D: x must be rank 3 but got rank ${e.rank}.`),hr(e,t)}var wA=k({reverse3d_:t5});function e5(r,t){let e=C(r,\"x\",\"reverse\");return _(e.rank===4,()=>`Error in reverse4D: x must be rank 4 but got rank ${e.rank}.`),hr(e,t)}var IA=k({reverse4d_:e5});function r5(r){let e={x:C(r,\"x\",\"round\")};return T.runKernel(Ks,e)}var bm=k({round_:r5});function n5(r){let e={x:C(r,\"x\",\"rsqrt\",\"float32\")};return T.runKernel(js,e)}var wm=k({rsqrt_:n5});function o5(r){let e={x:C(r,\"x\",\"selu\")};return T.runKernel(Xs,e)}var Im=k({selu_:o5});function s5(r,t,e,n,o,s=[1,1],i=\"NHWC\"){let a=C(r,\"x\",\"separableConv2d\"),u=C(t,\"depthwiseFilter\",\"separableConv2d\"),l=C(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=ua(c,u,n,o,i,s),g=Tn(d,l,1,\"valid\",i);return p?R(g,[g.shape[1],g.shape[2],g.shape[3]]):g}var Cm=k({separableConv2d_:s5});async function i5(r,t){let e=C(r,\"x\",\"setdiff1d\"),n=C(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`),Pt(n,[t],[e])}var Nm=k({slice1d_:c5});function p5(r,t,e){let n=C(r,\"x\",\"slice2d\");return _(n.rank===2,()=>`slice2d expects a rank-2 tensor, but got a rank-${n.rank} tensor`),Pt(n,t,e)}var wh=k({slice2d_:p5});function m5(r,t,e){let n=C(r,\"x\",\"slice3d\");return _(n.rank===3,()=>`slice3d expects a rank-3 tensor, but got a rank-${n.rank} tensor`),Pt(n,t,e)}var km=k({slice3d_:m5});function f5(r,t,e){let n=C(r,\"x\",\"slice4d\");return _(n.rank===4,()=>`slice4d expects a rank-4 tensor, but got a rank-${n.rank} tensor`),Pt(n,t,e)}var Tc=k({slice4d_:f5});function d5(r,t=-1){let e=C(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 T.runKernel(ni,n,o)}var Fu=k({softmax_:d5});function h5(r){_(r.dtype===\"complex64\",()=>`The dtype for tf.spectral.fft() must be complex64 but got ${r.dtype}.`);let t={input:r};return T.runKernel(Up,t)}var Ou=k({fft_:h5});function g5(r){_(r.dtype===\"complex64\",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${r.dtype}.`);let t={input:r};return T.runKernel(Hp,t)}var vl=k({ifft_:g5});function x5(r){let t=r.shape[r.shape.length-1],e=r.size/t,n;if(t<=2){let o=R(r,[e,t]);n=vl(o)}else{let o=[e,2*(t-1)],s=R(Cl(r),[e,t]),i=R(Tu(r),[e,t]),a=hr(Pt(s,[0,1],[e,t-2]),1),u=$(hr(Pt(i,[0,1],[e,t-2]),1),ft(-1)),l=ie([s,a],1),c=ie([i,u],1),p=R(kn(l,c),[o[0],o[1]]);n=vl(p)}if(n=Cl(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 Tm=k({irfft_:x5});function y5(r,t,e=0){let o={x:C(r,\"x\",\"split\")},s={numOrSizeSplits:t,axis:e};return T.runKernel(ji,o,s)}var gr=k({split_:y5});function b5(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=Pt(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=ie([r,Te(d)],r.shape.length-1),e=t}else o=r;let s=vt(o),i=R(kn(o,s),[n,e]),a=Ou(i),u=Math.floor(e/2)+1,l=Cl(a),c=Tu(a),p=gr(l,[u,e-u],l.shape.length-1),m=gr(c,[u,e-u],c.shape.length-1),f=o.shape.slice();return f[o.shape.length-1]=u,R(kn(p[0],m[0]),f)}var Pu=k({rfft_:b5});function w5(r,t){let e=C(r,\"a\",\"squaredDifference\"),n=C(t,\"b\",\"squaredDifference\");[e,n]=jt(e,n),Mt(e.shape,n.shape);let o={a:e,b:n},s={};return T.runKernel(oi,o,s)}var _m=k({squaredDifference_:w5});function I5(r,t){let e=C(r,\"x\",\"squeeze\",\"string_or_numeric\");return R(e,p0(e.shape,t).newShape)}var qn=k({squeeze_:I5});function C5(r,t=0){let e=xl(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 T.runKernel(Wi,n,o)}var qe=k({stack_:C5});function v5(r,t=0){let n={x:C(r,\"x\",\"step\")},o={alpha:t};return T.runKernel(wo,n,o)}var To=k({step_:v5});function S5(r,t,e,n,o=0,s=0,i=0,a=0,u=0){let c={x:C(r,\"x\",\"stridedSlice\",\"string_or_numeric\")},p={begin:t,end:e,strides:n,beginMask:o,endMask:s,ellipsisMask:i,newAxisMask:a,shrinkAxisMask:u};return T.runKernel(ml,c,p)}var cy=k({stridedSlice_:S5});function N5(r){let e={x:C(r,\"x\",\"tan\",\"float32\")};return T.runKernel(ii,e)}var py=k({tan_:N5});function Ke(r,t){io(r);let e=Ur(r,t);if(e.length!==1)throw new Error(\"tensor1d() requires values to be a flat/TypedArray\");return un(r,null,e,t)}function fi(r,t,e){if(io(r),t!=null&&t.length!==2)throw new Error(\"tensor2d() requires shape to have two numbers\");let n=Ur(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 un(r,t,n,e)}function my(r,t,e){if(io(r),t!=null&&t.length!==3)throw new Error(\"tensor3d() requires shape to have three numbers\");let n=Ur(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 un(r,t,n,e)}function vA(r,t,e){if(io(r),t!=null&&t.length!==4)throw new Error(\"tensor4d() requires shape to have four numbers\");let n=Ur(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 un(r,t,n,e)}function SA(r,t,e){if(io(r),t!=null&&t.length!==5)throw new Error(\"tensor5d() requires shape to have five numbers\");let n=Ur(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 un(r,t,n,e)}function NA(r,t,e){if(io(r),t!=null&&t.length!==6)throw new Error(\"tensor6d() requires shape to have six numbers\");let n=Ur(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,un(r,t,n,e)}var Mu={};Kt(Mu,{calculateShapes:()=>kA,validateInput:()=>Em,validateUpdateShape:()=>uN});function uN(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;p= 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]=T.runKernel(fl,s,i);return{values:a,indices:u}}var fy=k({topk_:T5});function _5(r,t=0,e=1,n,o){if(Me(r),n!=null&&n===\"bool\")throw new Error(\"Unsupported data type $ { dtype }\");let s=new Nc(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]=T.runKernel(xu,n,o);return{values:s,indices:i}}var dy=k({unique_:E5});function A5(r,t,e){let n=C(r,\"x\",\"unsortedSegmentSum\"),o=C(t,\"segmentIds\",\"unsortedSegmentSum\",\"int32\");_($a(e),()=>\"numSegments must be of dtype int\");let s={x:n,segmentIds:o},i={numSegments:e};return T.runKernel(yu,s,i)}var Dm=k({unsortedSegmentSum_:A5});function D5(r,t=0){let e=C(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 T.runKernel(Xi,n,o)}var xr=k({unstack_:D5});function _A(r,t){return yh(r,t,\"right\")}function hy(r,t=!0,e,n){return T.makeVariable(r,t,e,n)}function gy(r,t){let e=[];for(let s=0;s0,()=>\"mask cannot be scalar\"),Re(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;ha).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=Cl(n),a=Tu(n);return i=T.runKernel(uo,{x:i},s),a=T.runKernel(uo,{x:a},s),e&&(a=Ut(a)),kn(i,a)}):T.runKernel(uo,o,s)}var Vt=k({transpose_:O5});function P5(r,t,e,n,o=!0){let s=C(r,\"v\",\"movingAverage\"),i=C(t,\"x\",\"movingAverage\"),a=C(e,\"decay\",\"movingAverage\");$0(s,i),_(an(s.shape,i.shape),()=>\"Shape mismatch in v and x\");let u=ft(1),l=lt(u,a),c=$(lt(i,s),l);if(o){_(n!=null,()=>\"When using zeroDebias: true, step is required.\");let p=C(n,\"step\",\"movingAverage\");c=ct(c,lt(u,pn(a,p)))}return Y(s,c)}var M5=k({movingAverage_:P5});function L5(r,t,e){Me(e);let n=C(r,\"indices\",\"scatterND\",\"int32\"),o=C(t,\"updates\",\"scatterND\");Em(o,n,e);let s={indices:n,updates:o},i={shape:e};return T.runKernel(al,s,i)}var z5=k({scatterND_:L5});function EA(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 V5(r,t,e,n=0){Me(e);let o=C(r,\"sparseIndices\",\"sparseToDense\",\"int32\"),s=C(t,\"sparseValues\",\"sparseToDense\",\"string_or_numeric\"),i=C(n,\"defaultValue\",\"sparseToDense\",s.dtype);EA(o,s,e,i);let a={sparseIndices:o,sparseValues:s,defaultValue:i},u={outputShape:e};return T.runKernel(pl,a,u)}var G5=k({sparseToDense_:V5});function W5(r,t){let e=C(t,\"indices\",\"gatherND\",\"int32\"),o={params:C(r,\"x\",\"gatherND\",\"string_or_numeric\"),indices:e};return T.runKernel(Ha,o)}var U5=k({gatherND_:W5});function AA(r,t){if(t==null)return r.shape.slice();if(an(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 Ot?o.clone():o;let s=AA(o,e),i=1-t,a=ct(pa(Y(Hn(s,0,1,\"float32\",n),i)),i);return $(o,a)}var cN=k({dropout_:H5});function pN(r){return Math.floor(Math.pow(2,Math.ceil(Math.log(r)/Math.log(2))))}function Ih(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}`),Re(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=m0(\"bool\",u);for(let p=0;pg.value-h.value),c[p]=0;for(let h=0;hDA,depthwiseConv2d:()=>$A,matMul:()=>RA});function j5(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]}).`),Se(\"conv2dDerFilter\",o,i);let p={x:a,dy:u},m={strides:n,pad:o,dataFormat:s,dimRoundingMode:i,filterShape:e};return T.runKernel(Bp,p,m)}var $m=k({conv2DBackpropFilter_:j5});function _c(r,t,e){if(e==null||e===\"linear\")return r;if(e===\"relu\")return $(r,To(t));throw new Error(`Cannot compute gradient for fused activation ${e}.`)}function Ec(r,t){let e=t,n=ye(r.shape,t.shape);return n.length>0&&(e=pt(e,n)),R(e,r.shape)}function Ac(r,t,e,n){if(t===\"linear\")return r;if(t===\"relu\")return Mr(r);if(t===\"elu\")return ca(r);if(t===\"relu6\")return ym(r);if(t===\"prelu\")return Ru(r,e);if(t===\"leakyrelu\")return _u(r,n);if(t===\"sigmoid\")return en(r);throw new Error(`Unknown fused activation ${t}.`)}var Dc=(r,t)=>!(r>0)||t===\"linear\";function X5({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\",Dc(T.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=Tn(r,t,e,n,o,s,i);return a!=null&&(E=Y(E,a)),Ac(E,u,l,c)}let p=C(r,\"x\",\"conv2d\",\"float32\"),m=C(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}.`),Se(\"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]}.`),_(Rr(e,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`);let g=wc(f.shape,m.shape,e,s,n,i),x;a!=null&&(x=C(a,\"bias\",\"fused conv2d\"),[x]=jt(x,p),o===\"NHWC\"?Mt(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{Mt(E,g.outShape)}catch(A){let D=`Error in fused conv2d: PReLU activation weights (${E}) is not compatible with the output shape of the conv2d (${g.outShape}).`;throw Error(D)}b=C(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[D,F,P,V]=A,G=_c(E,P,u);_(co(s),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`);let W=pm(F.shape,G,D,e,n),q=$m(F,G,D.shape,e,n),H=[W,q];if(V!=null){let K=Ec(V,G);H.push(K)}return H},I={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?fn((A,D,F)=>{let P=T.runKernel(Ji,I,N);return F([D,A,P]),d&&(P=R(P,[P.shape[1],P.shape[2],P.shape[3]])),{value:P,gradFunc:w}})(f,m):fn((A,D,F,P)=>{let V=T.runKernel(Ji,I,N);return P([D,A,V,F]),d&&(V=R(V,[V.shape[1],V.shape[2],V.shape[3]])),{value:V,gradFunc:w}})(f,m,x)}var DA=k({fusedConv2d_:X5});function Y5(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 T.runKernel(Vp,l,c)}var yy=k({depthwiseConv2dNativeBackpropFilter_:Y5});function Z5(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=T.runKernel(Gp,l,c);return u?R(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var by=k({depthwiseConv2dNativeBackpropInput_:Z5});function J5({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(Dc(T.state.gradientDepth,u)===!1){let N=ua(r,t,e,n,o,s,i);return a!=null&&(N=Y(N,a)),Ac(N,u,l,c)}let p=C(r,\"x\",\"depthwiseConv2d\",\"float32\"),m=C(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]),_(Rr(e,s),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`),Se(\"fused depthwiseConv2d\",n,i);let h=wc(f.shape,m.shape,e,s,n,i,!0),g;a!=null&&(g=C(a,\"bias\",\"fused conv2d\"),[g]=jt(g,p),Mt(h.outShape,g.shape));let x;l!=null&&(x=C(l,\"prelu weights\",\"fused depthwiseConv2d\"));let b=(N,E)=>{_(co(s),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${s}'`);let[A,D,F,P]=E,V=_c(N,F,u),G=by(D.shape,V,A,e,n,s,i),W=yy(D,V,A.shape,e,n,s,i);if(P!=null){let q=Ec(g,V);return[G,W,q]}return[G,W]},w={x:f,filter:m,bias:g,preluActivationWeights:x},I={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i,activation:u,leakyreluAlpha:c};return a==null?fn((E,A,D)=>{let F=T.runKernel(Qi,w,I);return D([A,E,F]),d&&(F=R(F,[F.shape[1],F.shape[2],F.shape[3]])),{value:F,gradFunc:b}})(f,m):fn((E,A,D,F)=>{let P=T.runKernel(Qi,w,I);return F([A,E,P,D]),d&&(P=R(P,[P.shape[1],P.shape[2],P.shape[3]])),{value:P,gradFunc:b}})(f,m,g)}var $A=k({fusedDepthwiseConv2d_:J5});function Q5({a:r,b:t,transposeA:e=!1,transposeB:n=!1,bias:o,activation:s=\"linear\",preluActivationWeights:i,leakyreluAlpha:a=.2}){if(Dc(T.state.gradientDepth,s)===!1){let V=Bt(r,t,e,n);return o!=null&&(V=Y(V,o)),Ac(V,s,i,a)}let u=C(r,\"a\",\"fused matMul\"),l=C(t,\"b\",\"fused matMul\");[u,l]=jt(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=te(d),x=te(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=Mt(u.shape.slice(0,-2),l.shape.slice(0,-2)).concat([m,f]),I=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=C(o,\"bias\",\"fused matMul\"),[E]=jt(E,u),Mt(w,E.shape));let A;i!=null&&(A=C(i,\"prelu weights\",\"fused matMul\"));let D=(V,G)=>{let[W,q,H,K]=G,X=_c(R(V,H.shape),H,s),Z,et;if(!e&&!n?(Z=Bt(X,q,!1,!0),et=Bt(W,X,!0,!1)):!e&&n?(Z=Bt(X,q,!1,!1),et=Bt(X,W,!0,!1)):e&&!n?(Z=Bt(q,X,!1,!0),et=Bt(W,X,!1,!1)):(Z=Bt(q,X,!0,!0),et=Bt(X,W,!0,!0)),o!=null){let nt=Ec(K,X);return[Z,et,nt]}else return[Z,et]},F={a:I,b:N,bias:E,preluActivationWeights:A},P={transposeA:e,transposeB:n,activation:s,leakyreluAlpha:a};return o==null?fn((G,W,q)=>{let H=T.runKernel(Zi,F,P);return q([G,W,H]),{value:R(H,w),gradFunc:D}})(I,N):fn((G,W,q,H)=>{let K=T.runKernel(Zi,F,P);return H([G,W,K,q]),{value:R(K,w),gradFunc:D}})(I,N,E)}var RA=k({fusedMatMul_:Q5});function t8(r){return Ih(r,.54,.46)}var FA=k({hammingWindow_:t8});function e8(r){return Ih(r,.5,.5)}var wy=k({hannWindow_:e8});function r8(r,t,e,n=!1,o=0){let s=0,i=[];for(;s+t<=r.size;)i.push(Pt(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 T.runKernel(Ba,c,p)}var PA=k({cropAndResize_:o8});function s8(r){let t=C(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 T.runKernel(Ua,e,{})}var MA=k({flipLeftRight_:s8});function i8(r){let t=C(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,Or(t,o)}var LA=k({grayscaleToRGB_:i8});function a8(r,t,e=0,n=.5){let o=C(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 T.runKernel(hl,s,i)}var zA=k({rotateWithOffset_:a8});function _o(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 l8(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY){let s=C(r,\"boxes\",\"nonMaxSuppression\",\"float32\"),i=C(t,\"scores\",\"nonMaxSuppression\",\"float32\"),a=_o(s,i,e,n,o);e=a.maxOutputSize,n=a.iouThreshold,o=a.scoreThreshold;let u={maxOutputSize:e,iouThreshold:n,scoreThreshold:o};return T.runKernel(rl,{boxes:s,scores:i},u)}var BA=k({nonMaxSuppression_:l8});function VA(r,t,e){let n=u8(r,t,e),o=n<0?-(n+1):n;r.splice(o,0,t)}function u8(r,t,e){return p8(r,t,e||c8)}function c8(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 Cy(r,t,e,n,o){return mN(r,t,e,n,o,0)}function vy(r,t,e,n,o,s){return mN(r,t,e,n,o,0,!1,s,!0)}function Sy(r,t,e,n,o,s){return mN(r,t,e,n,o,s,!0)}function mN(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(GA);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=m8(r,b,p[N]);if(E>=n){I=!0;break}if(g.score=g.score*f8(n,c,E),g.score<=o)break}g.suppressBeginIndex=p.length,I||(g.score===x?(p.push(b),m.push(g.score)):g.score>o&&VA(l,g,GA))}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 m8(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 f8(r,t,e){let n=Math.exp(t*e*e);return e<=r?n:0}function GA(r,t){return r.score-t.score||r.score===t.score&&t.boxIndex-r.boxIndex}async function d8(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY){let s=C(r,\"boxes\",\"nonMaxSuppressionAsync\"),i=C(t,\"scores\",\"nonMaxSuppressionAsync\"),a=_o(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}=Cy(l,c,e,n,o);return s!==r&&s.dispose(),i!==t&&i.dispose(),Ke(p,\"int32\")}var WA=d8;function h8(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=0){let i=C(r,\"boxes\",\"nonMaxSuppression\"),a=C(t,\"scores\",\"nonMaxSuppression\"),u=_o(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=T.runKernel(ol,l,c);return{selectedIndices:p[0],selectedScores:p[1]}}var UA=k({nonMaxSuppressionWithScore_:h8});async function g8(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=0){let i=C(r,\"boxes\",\"nonMaxSuppressionAsync\"),a=C(t,\"scores\",\"nonMaxSuppressionAsync\"),u=_o(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}=Sy(c,p,e,n,o,s);return i!==r&&i.dispose(),a!==t&&a.dispose(),{selectedIndices:Ke(m,\"int32\"),selectedScores:Ke(f)}}var HA=g8;function x8(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=!1){let i=C(r,\"boxes\",\"nonMaxSuppression\"),a=C(t,\"scores\",\"nonMaxSuppression\"),u=_o(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=T.runKernel(nl,m,f);return{selectedIndices:d[0],validOutputs:d[1]}}var qA=k({nonMaxSuppressionPadded_:x8});async function y8(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=!1){let i=C(r,\"boxes\",\"nonMaxSuppressionAsync\"),a=C(t,\"scores\",\"nonMaxSuppressionAsync\"),u=_o(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}=vy(m,f,l,c,p,s);return i!==r&&i.dispose(),a!==t&&a.dispose(),{selectedIndices:Ke(d,\"int32\"),validOutputs:ft(h,\"int32\")}}var KA=y8;function b8(r,t,e=!1,n=!1){let o=C(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=T.runKernel(Us,a,u);return i?R(l,[l.shape[1],l.shape[2],l.shape[3]]):l}var Ny=k({resizeBilinear_:b8});function w8(r,t,e=!1,n=!1){let o=C(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=T.runKernel(Ws,a,u);return i?R(l,[l.shape[1],l.shape[2],l.shape[3]]):l}var ky=k({resizeNearestNeighbor_:w8});function I8(r,t=\"binary\",e=!1,n=.5){let o=C(r,\"image\",\"threshold\"),s=.2989,i=.587,a=.114,u=o.shape[0]*o.shape[1],l=$(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]=gr(o,[1,1,1],-1);let g=$(c,s),x=$(p,i),b=$(m,a);f=Y(Y(g,x),b)}else f=r;if(t===\"otsu\"){let g=Tx(Q(bm(f),\"int32\"),sr([]),256);l=C8(g,u)}let d=e?Un(f,l):Fe(f,l);return Q($(d,255),\"int32\")}function C8(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 T.runKernel(dl,u,l)}var XA=k({transform_:v8});function S8(r,t,e){let n=C(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),a,u;typeof t==\"number\"?(_(t%1===0,()=>`bandPart(): numLower must be an integer, got ${t}.`),_(t<=s,()=>`bandPart(): numLower (${t}) must not be greater than the number of rows (${s}).`),a=C(t<0?s:t,\"numLower\",\"bandPart\")):(_(t.dtype===\"int32\",()=>\"bandPart(): numLower's dtype must be an int32.\"),a=be(Il(t,0),s,mo(t,s))),typeof e==\"number\"?(_(e%1===0,()=>`bandPart(): numUpper must be an integer, got ${e}.`),_(e<=i,()=>`bandPart(): numUpper (${e}) must not be greater than the number of columns (${i}).`),u=C(e<0?i:e,\"numUpper\",\"bandPart\")):(_(e.dtype===\"int32\",()=>\"bandPart(): numUpper's dtype must be an int32.\"),u=be(Il(e,0),i,mo(e,i)));let l=R(da(0,s,1,\"int32\"),[-1,1]),c=da(0,i,1,\"int32\"),p=lt(l,c),m=Pr(Un(p,a),mn(p,Ut(u))),f=Te([s,i],n.dtype);return R(qe(xr(R(n,[-1,s,i])).map(d=>be(m,d,f))),o)}var YA=k({bandPart_:S8});function N8(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=gr(r,r.shape[0],0).map(o=>qn(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 JA(r,t);{let e=r.shape.slice(0,r.shape.length-2).reduce((u,l)=>u*l),n=xr(R(r,[e,r.shape[r.shape.length-2],r.shape[r.shape.length-1]]),0),o=[],s=[];n.forEach(u=>{let[l,c]=JA(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 JA(r,t=!1){return T.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=Cc(e),s=cn(r),i=fi([[1]],[1,1]),a=cn(i),u=e>=n?n:e;for(let l=0;l{let f=Pt(s,[l,l],[e-l,1]),d=wl(f),h=Pt(s,[l,l],[1,1]),g=be(Fe(h,0),fi([[-1]]),fi([[1]])),x=lt(h,$(g,d)),b=ct(f,x);b.shape[0]===1?a=cn(i):a=ie([i,Pt(b,[1,0],[b.shape[0]-1,b.shape[1]])],0);let w=Ut(ct(Bt(g,x),d)),I=Pt(s,[l,0],[e-l,n]),N=$(w,a),E=Vt(a);if(l===0)s=lt(I,Bt(N,Bt(E,I)));else{let F=lt(I,Bt(N,Bt(E,I)));s=ie([Pt(s,[0,0],[l,n]),F],0)}let A=Vt(N),D=Pt(o,[0,l],[e,o.shape[1]-l]);if(l===0)o=lt(D,Bt(Bt(D,a),A));else{let F=lt(D,Bt(Bt(D,a),A));o=ie([Pt(o,[0,0],[e,l]),F],1)}return[a,s,o]}),Tt([c,p,m])}return!t&&e>n&&(o=Pt(o,[0,0],[e,n]),s=Pt(s,[0,0],[n,n])),[o,s]})}var QA=k({qr_:k8});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 T8(r,t,e=Ze.SUM_BY_NONZERO_WEIGHTS){let n=C(r,\"losses\",\"computeWeightedLoss\"),o=null;t!=null&&(o=C(t,\"weights\",\"computeWeightedLoss\"));let s=o==null?n:$(n,o);if(e===Ze.NONE)return s;if(e===Ze.SUM)return pt(s);if(e===Ze.MEAN){if(o==null)return ke(s);{let i=n.size/o.size,a=ct(pt(s),pt(o));return i>1?ct(a,ft(i)):a}}if(e===Ze.SUM_BY_NONZERO_WEIGHTS){if(o==null)return ct(pt(s),ft(n.size));{let i=$(o,dr(n.shape)),a=Q(pt(mi(i,ft(0))),\"float32\");return ct(pt(s),a)}}throw Error(`Unknown reduction: ${e}`)}var qr=k({computeWeightedLoss_:T8});function _8(r,t,e,n=Ze.SUM_BY_NONZERO_WEIGHTS){let o=C(r,\"labels\",\"absoluteDifference\"),s=C(t,\"predictions\",\"absoluteDifference\"),i=null;e!=null&&(i=C(e,\"weights\",\"absoluteDifference\")),Re(o.shape,s.shape,\"Error in absoluteDifference: \");let a=Ee(lt(o,s));return qr(a,i,n)}var t2=k({absoluteDifference_:_8});function E8(r,t,e,n,o=Ze.SUM_BY_NONZERO_WEIGHTS){let s=C(r,\"labels\",\"cosineDistance\"),i=C(t,\"predictions\",\"cosineDistance\"),a=null;n!=null&&(a=C(n,\"weights\",\"cosineDistance\")),Re(s.shape,i.shape,\"Error in cosineDistance: \");let u=ft(1),l=lt(u,pt($(s,i),e,!0));return qr(l,a,o)}var e2=k({cosineDistance_:E8});function A8(r,t,e,n=Ze.SUM_BY_NONZERO_WEIGHTS){let o=C(r,\"labels\",\"hingeLoss\"),s=C(t,\"predictions\",\"hingeLoss\"),i=null;e!=null&&(i=C(e,\"weights\",\"hingeLoss\")),Re(o.shape,s.shape,\"Error in hingeLoss: \");let a=ft(1);o=lt($(ft(2),o),a);let u=Mr(lt(a,$(o,s)));return qr(u,i,n)}var r2=k({hingeLoss_:A8});function D8(r,t,e,n=1,o=Ze.SUM_BY_NONZERO_WEIGHTS){let s=C(r,\"labels\",\"huberLoss\"),i=C(t,\"predictions\",\"huberLoss\"),a=null;e!=null&&(a=C(e,\"weights\",\"huberLoss\")),Re(s.shape,i.shape,\"Error in huberLoss: \");let u=ft(n),l=Ee(lt(i,s)),c=mo(l,u),p=lt(l,c),m=Y($(ft(.5),Wt(c)),$(u,p));return qr(m,a,o)}var n2=k({huberLoss_:D8});function $8(r,t,e,n=1e-7,o=Ze.SUM_BY_NONZERO_WEIGHTS){let s=C(r,\"labels\",\"logLoss\"),i=C(t,\"predictions\",\"logLoss\"),a=null;e!=null&&(a=C(e,\"weights\",\"logLoss\")),Re(s.shape,i.shape,\"Error in logLoss: \");let u=ft(1),l=ft(n),c=Ut($(s,kr(Y(i,l)))),p=$(lt(u,s),kr(Y(lt(u,i),l))),m=lt(c,p);return qr(m,a,o)}var o2=k({logLoss_:$8});function R8(r,t,e,n=Ze.SUM_BY_NONZERO_WEIGHTS){let o=C(r,\"labels\",\"meanSquaredError\"),s=C(t,\"predictions\",\"meanSquaredError\"),i=null;e!=null&&(i=C(e,\"weights\",\"meanSquaredError\")),Re(o.shape,s.shape,\"Error in meanSquaredError: \");let a=_m(o,s);return qr(a,i,n)}var s2=k({meanSquaredError_:R8});function F8(r,t){let e=C(r,\"labels\",\"sigmoidCrossEntropyWithLogits\"),n=C(t,\"logits\",\"sigmoidCrossEntropyWithLogits\");Re(e.shape,n.shape,\"Error in sigmoidCrossEntropyWithLogits: \");let o=Mr(n),s=$(n,e),i=Eu(ir(Ut(Ee(n))));return Y(lt(o,s),i)}function O8(r,t,e,n=0,o=Ze.SUM_BY_NONZERO_WEIGHTS){let s=C(r,\"multiClassLabels\",\"sigmoidCrossEntropy\"),i=C(t,\"logits\",\"sigmoidCrossEntropy\"),a=null;if(e!=null&&(a=C(e,\"weights\",\"sigmoidCrossEntropy\")),Re(s.shape,i.shape,\"Error in sigmoidCrossEntropy: \"),n>0){let l=ft(n),c=ft(1),p=ft(.5);s=Y($(s,lt(c,l)),$(p,l))}let u=F8(s,i);return qr(u,a,o)}var i2=k({sigmoidCrossEntropy_:O8});function P8(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 fn((o,s,i)=>{let u=gm(s,[e],!0),l=lt(Q(s,\"float32\"),u);i([o,l]);let c=Ut($(l,o));return{value:pt(c,[e]),gradFunc:(f,d)=>{let[h,g]=d,x=ko(f.shape,[e]);return[$(R(f,x),lt(Q(h,\"float32\"),ir(g))),$(R(f,x),lt(ir(g),Q(h,\"float32\")))]}}})(r,t)}function M8(r,t,e,n=0,o=Ze.SUM_BY_NONZERO_WEIGHTS){let s=C(r,\"onehotLabels\",\"softmaxCrossEntropy\"),i=C(t,\"logits\",\"softmaxCrossEntropy\"),a=null;if(e!=null&&(a=C(e,\"weights\",\"softmaxCrossEntropy\")),Re(s.shape,i.shape,\"Error in softmaxCrossEntropy: \"),n>0){let l=ft(n),c=ft(1),p=ft(s.shape[1]);s=Y($(s,lt(c,l)),ct(l,p))}let u=P8(s,i);return qr(u,a,o)}var a2=k({softmaxCrossEntropy_:M8});function L8(r,t,e,n){let o=C(r,\"indices\",\"sparseFillEmptyRows\",\"int32\"),s=C(t,\"values\",\"sparseFillEmptyRows\"),i=C(e,\"denseShape\",\"sparseFillEmptyRows\",\"int32\"),a=C(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=T.runKernel(cu,u);return{outputIndices:l[0],outputValues:l[1],emptyRowIndicator:l[2],reverseIndexMap:l[3]}}var l2=k({sparseFillEmptyRows_:L8});function z8(r,t,e){let n=C(r,\"inputIndices\",\"sparseReshape\",\"int32\"),o=C(t,\"inputShape\",\"sparseReshape\",\"int32\"),s=C(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=T.runKernel(cl,i);return{outputIndices:a[0],outputShape:a[1]}}var u2=k({sparseReshape_:z8});function B8(r,t,e){let n=C(r,\"data\",\"sparseSegmentMean\"),o=C(t,\"indices\",\"sparseSegmentMean\",\"int32\"),s=C(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 T.runKernel(pu,i)}var c2=k({sparseSegmentMean_:B8});function V8(r,t,e){let n=C(r,\"data\",\"sparseSegmentSum\"),o=C(t,\"indices\",\"sparseSegmentSum\",\"int32\"),s=C(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 T.runKernel(mu,i)}var p2=k({sparseSegmentSum_:V8});function G8(r,t,e,n,o,s,i,a){let u=C(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=C(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=T.runKernel(du,p,c);return{nGrams:m[0],nGramsSplits:m[1]}}var m2=k({stringNGrams_:G8});function W8(r,t,e=!0){let n=C(r,\"input\",\"stringSplit\",\"string\"),o=C(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=T.runKernel(hu,i,s);return{indices:a[0],values:a[1],shape:a[2]}}var f2=k({stringSplit_:W8});function U8(r,t){let e=C(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 T.runKernel(gu,o,n)}var d2=k({stringToHashBucketFast_:U8});function H8(r,t,e,n=!0){let o=C(r,\"input\",\"staticRegexReplace\",\"string\"),s={pattern:t,rewrite:e,replaceGlobal:n};return T.runKernel(cc,{x:o},s)}var h2=k({staticRegexReplace_:H8});var q8={fft:Ou,ifft:vl,rfft:Pu,irfft:Tm},K8={hammingWindow:FA,hannWindow:wy,frame:Iy,stft:OA},hn={flipLeftRight:MA,grayscaleToRGB:LA,resizeNearestNeighbor:ky,resizeBilinear:Ny,rotateWithOffset:zA,cropAndResize:PA,nonMaxSuppression:BA,nonMaxSuppressionAsync:WA,nonMaxSuppressionWithScore:UA,nonMaxSuppressionWithScoreAsync:HA,nonMaxSuppressionPadded:qA,nonMaxSuppressionPaddedAsync:KA,threshold:jA,transform:XA},fN={bandPart:YA,gramSchmidt:ZA,qr:QA},j8={absoluteDifference:t2,computeWeightedLoss:qr,cosineDistance:e2,hingeLoss:r2,huberLoss:n2,logLoss:o2,meanSquaredError:s2,sigmoidCrossEntropy:i2,softmaxCrossEntropy:a2},X8={sparseFillEmptyRows:l2,sparseReshape:u2,sparseSegmentMean:c2,sparseSegmentSum:p2},Y8={stringNGrams:m2,stringSplit:f2,stringToHashBucketFast:d2,staticRegexReplace:h2};var J={};Kt(J,{Serializable:()=>Ch,SerializationMap:()=>ha,registerClass:()=>dN});var Ch=class{getClassName(){return this.constructor.className}static fromConfig(t,e){return new t(e)}},ha=class{constructor(){this.classNameMap={}}static getMap(){return ha.instance==null&&(ha.instance=new ha),ha.instance}static register(t){ha.getMap().classNameMap[t.className]=[t,t.fromConfig]}};function dN(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.\"),ha.register(r)}var Kr=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 Tt(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 Kx(t,e)}dispose(){this.iterations_!=null&&Tt(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:\"iter\",tensor:ft(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(Kr,Symbol.hasInstance,{value:r=>r.minimize!=null&&r.computeGradients!=null&&r.applyGradients!=null});var $c=class extends Kr{static get className(){return\"Adadelta\"}constructor(t,e,n=null){super(),this.learningRate=t,this.rho=e,this.epsilon=n,this.accumulatedGrads=[],this.accumulatedUpdates=[],n==null&&(this.epsilon=T.backend.epsilon())}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=T.registeredVariables[n],i=!1;this.accumulatedGrads[o]==null&&(this.accumulatedGrads[o]={originalName:`${n}/accum_grad`,variable:B(()=>vt(s).variable(i))}),this.accumulatedUpdates[o]==null&&(this.accumulatedUpdates[o]={originalName:`${n}/accum_var`,variable:B(()=>vt(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=Y($(u,this.rho),$(Wt(a),1-this.rho)),p=$(ct(Ne(Y(l,this.epsilon)),Ne(Y(u,this.epsilon))),a),m=Y($(l,this.rho),$(Wt(p),1-this.rho));u.assign(c),l.assign(m);let f=Y($(p,-this.learningRate),s);s.assign(f)})}),this.incrementIterations()}dispose(){this.accumulatedUpdates!=null&&(Tt(this.accumulatedGrads.map(t=>t.variable)),Tt(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)}};var Rc=class extends Kr{static get className(){return\"Adagrad\"}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=T.registeredVariables[n];this.accumulatedGrads[o]==null&&(this.accumulatedGrads[o]={originalName:`${n}/accumulator`,variable:B(()=>No(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=Y(a,Wt(i));a.assign(u);let l=Y($(ct(i,Ne(Y(u,T.backend.epsilon()))),-this.learningRate),s);s.assign(l)})}),this.incrementIterations()}dispose(){this.accumulatedGrads!=null&&Tt(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)}};var Fc=class extends Kr{static get className(){return\"Adam\"}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=ft(e).variable(),this.accBeta2=ft(n).variable()}),o==null&&(this.epsilon=T.backend.epsilon())}applyGradients(t){let e=Array.isArray(t)?t.map(n=>n.name):Object.keys(t);B(()=>{let n=lt(1,this.accBeta1),o=lt(1,this.accBeta2);e.forEach((s,i)=>{let a=T.registeredVariables[s],u=!1;this.accumulatedFirstMoment[i]==null&&(this.accumulatedFirstMoment[i]={originalName:`${s}/m`,variable:B(()=>vt(a).variable(u))}),this.accumulatedSecondMoment[i]==null&&(this.accumulatedSecondMoment[i]={originalName:`${s}/v`,variable:B(()=>vt(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=Y($(c,this.beta1),$(l,1-this.beta1)),f=Y($(p,this.beta2),$(Wt(l),1-this.beta2)),d=ct(m,n),h=ct(f,o);c.assign(m),p.assign(f);let g=Y($(ct(d,Y(Ne(h),this.epsilon)),-this.learningRate),a);a.assign(g)}),this.accBeta1.assign($(this.accBeta1,this.beta1)),this.accBeta2.assign($(this.accBeta2,this.beta2))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),this.accumulatedFirstMoment!=null&&Tt(this.accumulatedFirstMoment.map(t=>t.variable)),this.accumulatedSecondMoment!=null&&Tt(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(pn(this.beta1,this.iterations_+1)),this.accBeta2.assign(pn(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)}};var Oc=class extends Kr{static get className(){return\"Adamax\"}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=ft(0).variable(),this.accBeta1=ft(e).variable()}),o==null&&(this.epsilon=T.backend.epsilon())}applyGradients(t){let e=Array.isArray(t)?t.map(n=>n.name):Object.keys(t);B(()=>{let n=lt(1,this.accBeta1),o=ct(-this.learningRate,Y($(this.iteration,this.decay),1));e.forEach((s,i)=>{let a=T.registeredVariables[s],u=!1;this.accumulatedFirstMoment[i]==null&&(this.accumulatedFirstMoment[i]={originalName:`${s}/m`,variable:vt(a).variable(u)}),this.accumulatedWeightedInfNorm[i]==null&&(this.accumulatedWeightedInfNorm[i]={originalName:`${s}/v`,variable:vt(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=Y($(c,this.beta1),$(l,1-this.beta1)),f=$(p,this.beta2),d=Ee(l),h=_n(f,d);c.assign(m),p.assign(h);let g=Y($(ct(o,n),ct(m,Y(h,this.epsilon))),a);a.assign(g)}),this.iteration.assign(Y(this.iteration,1)),this.accBeta1.assign($(this.accBeta1,this.beta1))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),this.accumulatedFirstMoment!=null&&Tt(this.accumulatedFirstMoment.map(t=>t.variable)),this.accumulatedWeightedInfNorm!=null&&Tt(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)}};var Sl=class extends Kr{static get className(){return\"SGD\"}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=T.registeredVariables[n];B(()=>{let a=Y($(this.c,s),i);i.assign(a)})}),this.incrementIterations()}setLearningRate(t){this.learningRate=t,this.c!=null&&this.c.dispose(),this.c=$e(ft(-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)}};var Pc=class extends Sl{static get className(){return\"Momentum\"}constructor(t,e,n=!1){super(t),this.learningRate=t,this.momentum=e,this.useNesterov=n,this.accumulations=[],this.m=ft(this.momentum)}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=T.registeredVariables[n];this.accumulations[o]==null&&(this.accumulations[o]={originalName:`${n}/momentum`,variable:B(()=>vt(s).variable(!1))});let i=this.accumulations[o].variable,a=Array.isArray(t)?t[o].tensor:t[n];a!=null&&B(()=>{let u,l=Y($(this.m,i),a);this.useNesterov?u=Y($(this.c,Y(a,$(l,this.m))),s):u=Y($(this.c,l),s),i.assign(l),s.assign(u)})}),this.incrementIterations()}dispose(){this.m.dispose(),this.accumulations!=null&&Tt(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)}};var Mc=class extends Kr{static get className(){return\"RMSProp\"}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=T.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=T.registeredVariables[n],i=!1;this.accumulatedMeanSquares[o]==null&&(this.accumulatedMeanSquares[o]={originalName:`${n}/rms`,variable:B(()=>vt(s).variable(i))}),this.accumulatedMoments[o]==null&&(this.accumulatedMoments[o]={originalName:`${n}/momentum`,variable:B(()=>vt(s).variable(i))}),this.accumulatedMeanGrads[o]==null&&this.centered&&(this.accumulatedMeanGrads[o]={originalName:`${n}/mg`,variable:B(()=>vt(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=Y($(u,this.decay),$(Wt(a),1-this.decay));if(this.centered){let p=this.accumulatedMeanGrads[o].variable,m=Y($(p,this.decay),$(a,1-this.decay)),f=ct($(a,this.learningRate),Ne(lt(c,Y(Wt(m),this.epsilon)))),d=Y($(l,this.momentum),f);u.assign(c),p.assign(m),l.assign(d);let h=lt(s,d);s.assign(h)}else{let p=Y($(u,this.decay),$(Wt(a),1-this.decay)),m=Y($(l,this.momentum),ct($(a,this.learningRate),Ne(Y(p,this.epsilon))));u.assign(p),l.assign(m);let f=lt(s,m);s.assign(f)}})}),this.incrementIterations()}dispose(){this.accumulatedMeanSquares!=null&&Tt(this.accumulatedMeanSquares.map(t=>t.variable)),this.accumulatedMeanGrads!=null&&this.centered&&Tt(this.accumulatedMeanGrads.map(t=>t.variable)),this.accumulatedMoments!=null&&Tt(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)}};var Z8=[$c,Rc,Fc,Oc,Pc,Mc,Sl];function g2(){for(let r of Z8)dN(r)}var Lr={};Kt(Lr,{CompositeArrayBuffer:()=>vr,browserFiles:()=>y2,browserHTTPRequest:()=>I2,concatenateArrayBuffers:()=>rE,copyModel:()=>gE,decodeWeights:()=>lx,encodeWeights:()=>Q_,fromMemory:()=>C2,fromMemorySync:()=>wN,getLoadHandlers:()=>iE,getModelArtifactsForJSON:()=>nm,getModelArtifactsForJSONSync:()=>B0,getModelArtifactsInfoForJSON:()=>ea,getSaveHandlers:()=>sE,getWeightSpecs:()=>cx,http:()=>_y,isHTTPScheme:()=>Ty,listModels:()=>dE,loadWeights:()=>b2,moveModel:()=>xE,registerLoadRouter:()=>oE,registerSaveRouter:()=>nE,removeModel:()=>hE,weightsLoaderFactory:()=>yN,withSaveHandler:()=>v2,withSaveHandlerSync:()=>S2});var J8=\"model\",Q8=\".json\",tY=\".weights.bin\";function x2(r){return new Promise(t=>setTimeout(t)).then(r)}var Nl=class{constructor(t){if(!L().getBool(\"IS_BROWSER\"))throw new Error(\"browserDownloads() cannot proceed because the current environment is not a browser.\");t.startsWith(Nl.URL_SCHEME)&&(t=t.slice(Nl.URL_SCHEME.length)),(t==null||t.length===0)&&(t=J8),this.modelJsonFileName=t+Q8,this.weightDataFileName=t+tY}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=vr.join(t.weightData),n=window.URL.createObjectURL(new Blob([e],{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 o=[{paths:[\"./\"+this.weightDataFileName],weights:t.weightSpecs}],s=ux(t,o),i=window.URL.createObjectURL(new Blob([JSON.stringify(s)],{type:\"application/json\"})),a=this.modelJsonAnchor==null?document.createElement(\"a\"):this.modelJsonAnchor;if(a.download=this.modelJsonFileName,a.href=i,await x2(()=>a.dispatchEvent(new MouseEvent(\"click\"))),t.weightData!=null){let u=this.weightDataAnchor==null?document.createElement(\"a\"):this.weightDataAnchor;u.download=this.weightDataFileName,u.href=n,await x2(()=>u.dispatchEvent(new MouseEvent(\"click\")))}return{modelArtifactsInfo:ea(t)}}}};Nl.URL_SCHEME=\"downloads://\";var hN=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=nm(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,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=>z0(s.name)),o={};for(let s of t)s.paths.forEach(i=>{let a=z0(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}},eY=r=>L().getBool(\"IS_BROWSER\")&&!Array.isArray(r)&&r.startsWith(Nl.URL_SCHEME)?rY(r.slice(Nl.URL_SCHEME.length)):null;ve.registerSaveRouter(eY);function rY(r=\"model\"){return new Nl(r)}function y2(r){return new hN(r)}function gN(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 xN(r,t){t==null&&(t={});let e=t.fetchFunc==null?L().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 gN(n,t.onProgress,o,s)).map(p=>p.arrayBuffer()),u=.5,l=1;return t.onProgress==null?await Promise.all(a):await gN(a,t.onProgress,u,l)}async function b2(r,t=\"\",e,n){return yN(i=>xN(i,{requestInit:n}))(r,t,e)}function yN(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=mh[x]*te(g.shape),w=()=>{o[d]=!0,s[d]==null&&(s[d]=[]),s[d].push({manifestEntry:g,groupOffset:h,sizeBytes:b})};n!=null?n.forEach((I,N)=>{I===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=new vr(c.slice(m,m+d));s[f].forEach(x=>{let b=h.slice(x.groupOffset,x.groupOffset+x.sizeBytes),w=lx(b,[x.manifestEntry]);for(let I in w)p[I]=w[I]}),m+=d}),p}}var nY=\"application/octet-stream\",oY=\"application/json\",vh=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=L().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=ux(t,n);if(e.body.append(\"model.json\",new Blob([JSON.stringify(o)],{type:oY}),\"model.json\"),t.weightData!=null){let i=vr.join(t.weightData);e.body.append(\"model.weights.bin\",new Blob([i],{type:nY}),\"model.weights.bin\")}let s=await this.fetch(this.path,e);if(s.ok)return{modelArtifactsInfo:ea(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 nm(e,s=>this.loadWeights(s))}async loadWeights(t){let e=Array.isArray(this.path)?this.path[1]:this.path,[n,o]=sY(e),s=this.weightPathPrefix||n,i=cx(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 xN(a,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress});return[i,l]}};vh.URL_SCHEME_REGEX=/^https?:\\/\\//;function sY(r){let t=r.lastIndexOf(\"/\"),e=r.lastIndexOf(\"?\"),n=r.substring(0,t),o=e>t?r.substring(e):\"\";return[n+\"/\",o]}function Ty(r){return r.match(vh.URL_SCHEME_REGEX)!=null}var w2=(r,t)=>{if(typeof fetch==\"undefined\"&&(t==null||t.fetchFunc==null))return null;{let e=!0;if(Array.isArray(r)?e=r.every(n=>Ty(n)):e=Ty(r),e)return _y(r,t)}return null};ve.registerSaveRouter(w2);ve.registerLoadRouter(w2);function _y(r,t){return new vh(r,t)}function I2(r,t){return _y(r,t)}var Sh=class{constructor(t){this.modelArtifacts=t}load(){return this.modelArtifacts}},Ey=class{constructor(t){this.saveHandler=t}save(t){return this.saveHandler(t)}},bN=class{constructor(t){t.load&&(this.load=()=>Promise.resolve(t.load())),t.save&&(this.save=e=>Promise.resolve(t.save(e)))}};function C2(r,t,e,n){let o=arguments;return new bN(wN(...o))}function wN(r,t,e,n){return arguments.length===1?r.modelTopology!=null||r.weightSpecs!=null?new Sh(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 Sh({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 Sh({modelTopology:r,weightSpecs:t,weightData:e,trainingConfig:n}))}function v2(r){return new Ey(r)}function S2(r){return new Ey(r)}var k2={};Kt(k2,{confusionMatrix:()=>N2});function iY(r,t,e){let n=C(r,\"labels\",\"confusionMatrix\"),o=C(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=fa(Q(n,\"int32\"),e),i=fa(Q(o,\"int32\"),e),a=Vt(s),u=Bt(a,i);return Q(u,\"int32\")}var N2=k({confusionMatrix_:iY});var Ay={};Kt(Ay,{draw:()=>dY,fromPixels:()=>hY,fromPixelsAsync:()=>pY,toPixels:()=>fY});var Lc,T2=!1;function _2(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(ih(oh,T.backendName)!=null){let d={pixels:r},h={numChannels:t};return T.runKernel(oh,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(Lc==null)if(typeof document==\"undefined\")if(typeof OffscreenCanvas!=\"undefined\"&&typeof OffscreenCanvasRenderingContext2D!=\"undefined\")Lc=new OffscreenCanvas(1,1).getContext(\"2d\");else throw new Error(\"Cannot parse input in current context. Reason: OffscreenCanvas Context2D rendering is not supported.\");else Lc=document.createElement(\"canvas\").getContext(\"2d\",{willReadFrequently:!0});Lc.canvas.width=l,Lc.canvas.height=c,Lc.drawImage(r,0,0,l,c),p=Lc.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||t===2)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${t}`);if(r.dtype!==\"float32\"&&r.dtype!==\"int32\")throw new Error(`Unsupported type for toPixels: ${r.dtype}. Please use float32 or int32 tensors.`)}function mY(r){let t=(r==null?void 0:r.alpha)||1;if(t>1||t<0)throw new Error(`Alpha value ${t} is suppoed to be in range [0 - 1].`)}async function fY(r,t){let e=C(r,\"img\",\"toPixels\");if(!(r instanceof Ot)){let l=e;e=Q(l,\"int32\"),l.dispose()}E2(e);let[n,o]=e.shape.slice(0,2),s=e.rank===2?1:e.shape[2],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){T2||(console.warn(\"tf.browser.toPixels is not efficient to draw tensor on canvas. Please try tf.browser.draw instead.\"),T2=!0),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}function dY(r,t,e){let n=C(r,\"img\",\"draw\");if(!(r instanceof Ot)){let i=n;n=Q(i,\"int32\"),i.dispose()}E2(n),mY(e==null?void 0:e.imageOptions);let o={image:n},s={canvas:t,options:e};T.runKernel(Zg,o,s)}var hY=k({fromPixels_:_2});var Dy={};Kt(Dy,{prepareAndValidate:()=>A2});function A2(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(te(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 ze={};Kt(ze,{assertParamsValid:()=>xY,computeFlatOffset:()=>CY,computeOutShape:()=>bY,getNormalizedAxes:()=>wY,isSliceContinous:()=>IY,maskToAxes:()=>yY,parseSliceParams:()=>CN,sliceInfo:()=>vY,startForAxis:()=>L2,startIndicesWithElidedDims:()=>O2,stopForAxis:()=>z2,stopIndicesWithElidedDims:()=>P2,stridesForAxis:()=>M2,stridesWithElidedDims:()=>$2});var IN=-2,gY=-1;function xY(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 yY(r){let t=[],e=0;for(;r>0;)r&1&&t.push(e),r/=2,e++;return t}function bY(r,t,e){let n=[];for(let o=0;o0){let f=t[0],d=e+1;c=O2(i,f,d,n,r),p=P2(a,f,d,o,r),m=$2(s,f,d,r)}else for(let f=0;f-1)s[a]=0;else{let u=R2(t,e,a),l=n[u];r&1<-1)s[a]=Number.MAX_SAFE_INTEGER;else{let u=R2(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 z2(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 IY(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 CY(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 vY(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)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(I&&m.strides[w]<=0)throw Error(\"only stride 1 allowed on non-range indexing.\");h=h&&m.strides[w]===1;let D=!!(m.beginMask&1<=N)throw Error(`slice index ${m.begin[w]} of dimension ${w} out of bounds.`)}else m.begin[w]=D2(m.begin[w],0,m.strides[w],N,E,A),m.end[w]=D2(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=d&&(w===0&&m.strides[w]===1||D);let F,P=!1;if(m.beginValid&&m.endValid?(F=m.end[w]-m.begin[w],P=!0):I?(F=1,P=!0):D&&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[I]):I===IN&&x.push(1)}return{finalShapeSparse:x.filter((w,I)=>m.finalShapeGatherIndices[I]!==IN),finalShape:x,isIdentity:f,sliceDim0:d,isSimpleSlice:h,begin:m.begin,end:m.end,strides:m.strides}}function SY(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 B2=\"4.7.0\";var Nh=class{static sgd(t){return new Sl(t)}static momentum(t,e,n=!1){return new Pc(t,e,n)}static rmsprop(t,e=.9,n=0,o=null,s=!1){return new Mc(t,e,n,o,s)}static adam(t=.001,e=.9,n=.999,o=null){return new Fc(t,e,n,o)}static adadelta(t=.001,e=.95,n=null){return new $c(t,e,n)}static adamax(t=.002,e=.9,n=.999,o=null,s=0){return new Oc(t,e,n,o,s)}static adagrad(t,e=.1){return new Rc(t,e)}};var zc=Nh;var NY=(()=>typeof requestAnimationFrame!=\"undefined\"?requestAnimationFrame:typeof setImmediate!=\"undefined\"?setImmediate:r=>r())();function kh(){return new Promise(r=>NY(()=>r()))}var S={};Kt(S,{ERF_A1:()=>BY,ERF_A2:()=>VY,ERF_A3:()=>GY,ERF_A4:()=>WY,ERF_A5:()=>UY,ERF_P:()=>zY,PARALLELIZE_THRESHOLD:()=>$y,RowPartitionType:()=>ga,SELU_SCALE:()=>SN,SELU_SCALEALPHA:()=>vN,applyActivation:()=>Ac,assertAndGetBroadcastShape:()=>Mt,assertAxesAreInnerMostDims:()=>l6,assertParamsConsistent:()=>kY,assignToTypedArray:()=>YY,axesAreInnerMostDims:()=>Z0,calculateShapes:()=>kA,checkEinsumDimSizes:()=>r7,checkPadOnDimRoundingMode:()=>Se,combineLocations:()=>$E,combineRaggedTensorToTensorShapes:()=>_Y,complexWithEvenIndex:()=>KY,complexWithOddIndex:()=>jY,computeConv2DInfo:()=>wc,computeConv3DInfo:()=>CE,computeDefaultPad:()=>Y0,computeDilation2DInfo:()=>aj,computeOptimalWindowSize:()=>$Y,computeOutAndReduceShapes:()=>J0,computeOutShape:()=>TY,computePool2DInfo:()=>X0,computePool3DInfo:()=>lj,convertConv2DDataFormat:()=>vE,decodeEinsumEquation:()=>t7,eitherStridesOrDilationsAreOne:()=>Rr,expandShapeToKeepDim:()=>ko,exponent:()=>JY,exponents:()=>ZY,fromStringArrayToUint8:()=>v7,fromUint8ToStringArray:()=>C7,getAxesPermutation:()=>Q0,getBroadcastDims:()=>EE,getComplexWithIndex:()=>XY,getEinsumComputePath:()=>n7,getEinsumPermutation:()=>e7,getFusedBiasGradient:()=>Ec,getFusedDyActivation:()=>_c,getImageCenter:()=>RY,getInnerMostAxes:()=>u6,getPermuted:()=>OY,getRaggedRank:()=>AY,getReductionAxes:()=>ye,getReshaped:()=>FY,getReshapedPermuted:()=>PY,getRowPartitionTypesHelper:()=>EY,getSliceBeginCoords:()=>MY,getSliceSize:()=>LY,getSparseFillEmptyRowsIndicesDenseShapeMismatch:()=>a7,getSparseFillEmptyRowsNegativeIndexErrorMessage:()=>l7,getSparseFillEmptyRowsOutOfRangeIndexErrorMessage:()=>u7,getSparseReshapeEmptyTensorZeroOutputDimErrorMessage:()=>m7,getSparseReshapeInputOutputMismatchErrorMessage:()=>d7,getSparseReshapeInputOutputMultipleErrorMessage:()=>f7,getSparseReshapeMultipleNegativeOneOutputDimErrorMessage:()=>c7,getSparseReshapeNegativeOutputDimErrorMessage:()=>p7,getSparseSegmentReductionIndicesOutOfRangeErrorMessage:()=>y7,getSparseSegmentReductionNegativeSegmentIdsErrorMessage:()=>h7,getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage:()=>g7,getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage:()=>x7,getUndoAxesPermutation:()=>xh,isIdentityPermutation:()=>o7,log:()=>rK,mergeRealAndImagArrays:()=>HY,prepareAndValidate:()=>A2,prepareSplitSize:()=>i7,segment_util:()=>kN,shouldFuse:()=>Dc,slice_util:()=>ze,splitRealAndImagArrays:()=>qY,stridesOrDilationsArePositive:()=>sa,tupleValuesAreOne:()=>co,upcastType:()=>ur,validateDefaultValueShape:()=>DY,validateInput:()=>Em,validateUpdateShape:()=>uN,warn:()=>ta});function kY(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 TY(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 EY(r){let t={FIRST_DIM_SIZE:ga.FIRST_DIM_SIZE,VALUE_ROWIDS:ga.VALUE_ROWIDS,ROW_LENGTHS:ga.ROW_LENGTHS,ROW_SPLITS:ga.ROW_SPLITS,ROW_LIMITS:ga.ROW_LIMITS,ROW_STARTS:ga.ROW_STARTS},e=[];for(let n of r)if(n in t)e.push(t[n]);else break;return e}function AY(r){return r.length===0?0:r[0]===ga.FIRST_DIM_SIZE?r.length-1:r.length}function DY(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 $y=30;function $Y(r){return r<=$y?r:Mp(r,Math.floor(Math.sqrt(r)))}function RY(r,t,e){let n=e*(typeof r==\"number\"?r:r[0]),o=t*(typeof r==\"number\"?r:r[1]);return[n,o]}function FY(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 PY(r,t,e,n=!0){let o=[];n?o.push(r[0]/e):o.push(r[0]*e);for(let s=1;s\",QY=/->/g,V2=\",\",G2=\"...\";function t7(r,t){r=r.replace(/\\s/g,\"\");let e=(r.length-r.replace(QY,\"\").length)/NN.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 (\"${NN}\").`);let[n,o]=r.split(NN);_(n.indexOf(G2)===-1,()=>`The ellipsis notation (\"${G2}\") is not supported yet.`);let s=n.split(V2),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 r7(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 n7(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 s7(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 a7(r){return`Received SparseTensor with denseShape[0] = 0 but\n indices.shape[0] = ${r}`}function l7(r,t){return`indices(${r}, 0) is invalid: ${t} < 0`}function u7(r,t,e){return`indices(${r}, 0) is invalid: ${t} >= ${e}`}function c7(r,t){return`only one output dimension may be -1, not both ${r} and ${t}`}function p7(r,t){return`size ${r} must be non-negative, not ${t}`}function m7(){return\"reshape cannot infer the missing input size for an empty tensor unless all specified input sizes are non-zero\"}function f7(r,t){let e=te(r),n=te(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 d7(r,t){let e=te(r),n=te(t);return`Input to reshape is a tensor with ${e} dense values, but the requested shape has ${n}. inputShape=${r} outputShape=${t}`}function h7(){return\"segment ids must be >= 0\"}function g7(){return\"segment ids are not increasing\"}function x7(r,t){return`Segment id ${r} out of range [0, ${t}), possibly because segmentIds input is not sorted.`}function y7(r,t,e){return`Bad: indices[${r}] == ${t} out of range [0, ${e})`}var kN={};Kt(kN,{collectGatherOpShapeInfo:()=>I7,computeOutShape:()=>w7,segOpComputeOptimalWindowSize:()=>b7});function b7(r,t){let e=!1,n;for(r<=$y?(n=r,e=!0):n=Mp(r,Math.floor(Math.sqrt(r)));!e;)n>t||n===r?e=!0:n=Mp(r,n+1);return n}function w7(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(eem(t))}catch(t){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${t}`)}}function v7(r){return r.map(t=>wu(t))}var jr={};Kt(jr,{nonMaxSuppressionV3Impl:()=>Cy,nonMaxSuppressionV4Impl:()=>vy,nonMaxSuppressionV5Impl:()=>Sy,whereImpl:()=>gy});g2();var Ry={kernelName:$i,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(r,To(Q(e,\"float32\"),-1))}}};var W2={kernelName:qo,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Wt(Q(e,\"float32\")),o=Ne(lt(ft(1),n));return Ut(ct(r,o))}}}};var U2={kernelName:Ko,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Ne(lt(Wt(Q(e,\"float32\")),1));return ct(r,n)}}}};var H2={kernelName:ao,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=Mt(e.shape,n.shape);return{a:()=>{let a=r,u=ye(e.shape,o);return u.length>0&&(a=pt(a,u)),R(a,e.shape)},b:()=>{let a=r,u=ye(n.shape,o);return u.length>0&&(a=pt(a,u)),R(a,n.shape)}}}};var q2={kernelName:jo,saveAllInputs:!0,gradFunc:(r,t)=>{let e={};return t.forEach((n,o)=>{e[o]=()=>r.clone()}),e}};var K2={kernelName:Ri,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>vt(e)}}};var j2={kernelName:Fi,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>vt(e)}}};var X2={kernelName:Xo,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,Ne(lt(ft(1),Wt(Q(e,\"float32\")))))}}};var Y2={kernelName:Yo,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Ne(Y(ft(1),Wt(Q(e,\"float32\"))));return ct(r,n)}}}};var Z2={kernelName:Qo,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=Mt(e.shape,n.shape);return{a:()=>{let a=Y(Wt(e),Wt(n)),u=$(r,ct(n,a)),l=ye(e.shape,o);return l.length>0&&(u=pt(u,l)),R(u,e.shape)},b:()=>{let a=Y(Wt(e),Wt(n)),u=Ut($(r,ct(e,a))),l=ye(n.shape,o);return l.length>0&&(u=pt(u,l)),R(u,n.shape)}}}};var J2={kernelName:Zo,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,Y(Wt(Q(e,\"float32\")),1))}}};var Q2={kernelName:Jo,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,lt(ft(1),Wt(Q(e,\"float32\"))))}}};function S7(r,t,e,n,o,s){let i=C(r,\"dy\",\"avgPool3dGrad\"),a=C(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}.`),Se(\"avgPool3dGrad\",o,s);let p={dy:u,input:l},m={filterSize:e,strides:n,pad:o,dimRoundingMode:s},f=T.runKernel(Jl,p,m);return c?R(f,[f.shape[1],f.shape[2],f.shape[3],f.shape[4]]):f}var tD=k({avgPool3dGrad_:S7});var eD={kernelName:Oi,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{filterSize:o,strides:s,pad:i,dimRoundingMode:a}=e;return{x:()=>tD(r,n,o,s,i,a)}}};function N7(r,t,e,n,o){let s=C(r,\"dy\",\"avgPoolGrad\"),i=C(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=T.runKernel(Zl,c,p);return l?R(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var rD=k({avgPoolGrad_:N7});var nD={kernelName:ts,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{filterSize:o,strides:s,pad:i}=e;return{x:()=>rD(r,n,o,s,i)}}};var oD={kernelName:es,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t,e)=>{let[n,o]=t,{transposeA:s,transposeB:i}=e;return!s&&!i?{a:()=>Bt(r,o,!1,!0),b:()=>Bt(n,r,!0,!1)}:!s&&i?{a:()=>Bt(r,o,!1,!1),b:()=>Bt(r,n,!0,!1)}:s&&!i?{a:()=>Bt(o,r,!1,!0),b:()=>Bt(n,r,!1,!1)}:{a:()=>Bt(o,r,!0,!0),b:()=>Bt(r,n,!0,!0)}}};var sD={kernelName:Pi,gradFunc:(r,t,e)=>{let{blockShape:n,crops:o}=e;return{x:()=>$u(r,n,o)}}};var iD={kernelName:C_,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:()=>pt(r,a,!0)}}};var aD={kernelName:xo,gradFunc:r=>({x:()=>r.clone()})};var lD={kernelName:rs,gradFunc:r=>({x:()=>vt(r)})};var uD={kernelName:yo,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{clipValueMin:o,clipValueMax:s}=e;return{x:()=>be(Pr(mn(n,o),Un(n,s)),r,vt(r))}}};var cD={kernelName:tu,inputsToSave:[\"x\"],gradFunc:Ry.gradFunc};var pD={kernelName:Mi,saveAllInputs:!0,gradFunc:(r,t,e)=>{let n=t.map(u=>u.shape),{axis:o}=e,s=fr(o,t[0].shape)[0],i=n.map(u=>u[s]);return gr(r,i,s).map(u=>()=>u)}};var mD={kernelName:ns,inputsToSave:[\"x\",\"filter\"],gradFunc:(r,t,e)=>{let[n,o]=t,{dilations:s,strides:i,pad:a,dataFormat:u}=e;return _(co(s),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`),{x:()=>pm(n.shape,r,o,i,a,u),filter:()=>$m(n,r,o.shape,i,a,u)}}};var fD={kernelName:os,inputsToSave:[\"dy\",\"filter\"],gradFunc:(r,t,e)=>{let[n,o]=t,{strides:s,pad:i,dataFormat:a,dimRoundingMode:u}=e;return{dy:()=>Tn(r,o,s,i,a,1,u),filter:()=>$m(r,n,o.shape,s,i,a,u)}}};function k7(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 T.runKernel(Ma,a,u)}var dD=k({conv3DBackpropFilter_:k7});var hD={kernelName:ss,inputsToSave:[\"x\",\"filter\"],gradFunc:(r,t,e)=>{let{dilations:n,strides:o,pad:s}=e;_(co(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:()=>Fx(i.shape,r,a,o,s),filter:()=>dD(i,r,a.shape,o,s)}}};var gD={kernelName:is,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(Ut(vm(Q(e,\"float32\"))),r)}}};var xD={kernelName:as,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(Sm(Q(e,\"float32\")),r)}}};var yD={kernelName:ls,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{axis:o,exclusive:s,reverse:i}=e;return{x:()=>{let a=Q0([o],n.rank),u=dm(r,o,s,!i);return a!=null&&(u=Vt(u,a)),u}}}};var bD={kernelName:us,inputsToSave:[\"x\",\"filter\"],gradFunc:(r,t,e)=>{let{dilations:n,strides:o,pad:s,dimRoundingMode:i}=e,a=n==null?[1,1]:n;_(co(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]}.`),_(Rr(o,a),()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${o} and dilations '${a}'.`),Se(\"depthwiseConv2d\",s,i),{x:()=>by(u.shape,r,l,o,s,a,i),filter:()=>yy(u,r,l.shape,o,s,a,i)}}};var wD={kernelName:cs,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:()=>T.runKernel(nu,s,e),filter:()=>T.runKernel(ou,i,e)}}};var ID={kernelName:ms,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t,n={dy:r,y:e};return{x:()=>T.runKernel(Ga,n)}}};var CD={kernelName:fs,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t,n=$(ir(Ut(Wt(e))),2/Math.sqrt(Math.PI));return{x:()=>$(r,n)}}};var vD={kernelName:ds,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(r,e)}}};var SD={kernelName:Li,inputsToSave:[\"input\"],gradFunc:(r,t)=>{let[e]=t;return{input:()=>R(r,e.shape)}}};var ND={kernelName:hs,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(r,ir(e))}}};var kD={kernelName:gs,gradFunc:r=>({x:()=>vt(r)})};var TD={kernelName:xs,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=Mt(e.shape,n.shape);return{a:()=>{let a=ct(r,Q(n,\"float32\")),u=ye(e.shape,o);return u.length>0?R(pt(a,u),e.shape):a},b:()=>{let a=$(r,Q(e,\"float32\")),u=ye(n.shape,o);u.length>0&&(a=R(pt(a,u),n.shape));let l=Wt(n);return Ut(ct(a,Q(l,\"float32\")))}}}};var _D={kernelName:ys,inputsToSave:[\"x\",\"mean\",\"variance\",\"scale\"],gradFunc:(r,t,e)=>{let{varianceEpsilon:n}=e,[o,s,i,a]=t,u=a==null?ft(1):a,l=ye(s.shape,o.shape),c=[];if(s.rank===1){for(let I=0;Is.rank===1?R($($(r,Or(R(f,[1,1,1,s.shape[0]]),c)),u),o.shape):R($($(r,f),u),o.shape),mean:()=>{let I=$($(f,ft(-1)),m);return s.rank===1&&(I=pt(I,l)),R(I,s.shape)},variance:()=>{let I=$($(d,p),m);return s.rank===1&&(I=pt(I,l)),R(I,s.shape)},scale:()=>{let I=$(p,f),N=$(r,I);return s.rank===1&&(N=pt(N,l)),R(N,s.shape)},offset:()=>{let I=r;return s.rank===1&&(I=pt(I,l)),R(I,s.shape)}}}};var DD={kernelName:zi,inputsToSave:[\"x\",\"indices\"],gradFunc:(r,t,e)=>{let[n,o]=t,{axis:s}=e,i=fr(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=ED(0,p),h=ED(p+1,p+1+f),g=AD([c,[l],m]),x=R(r,g),b=R(o,[l]),w=AD([[p],d,h]),I=Vt(x,w),N=Dm(I,b,n.shape[i]),E=xh(w);return N=Vt(N,E),N},indices:()=>o}}};function ED(r,t){let e=[];for(let n=r;n{let[e,n]=t;return{a:()=>vt(e),b:()=>vt(n)}}};var RD={kernelName:bo,gradFunc:r=>({x:()=>Q(r,\"float32\")})};var FD={kernelName:ws,gradFunc:r=>({x:()=>vt(r)})};var OD={kernelName:Is,gradFunc:r=>({x:()=>vt(r)})};var PD={kernelName:Cs,gradFunc:r=>({x:()=>vt(r)})};var MD={kernelName:vs,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{alpha:o}=e,s=Fe(n,0);return{x:()=>be(s,r,$(r,o))}}};var LD={kernelName:Ns,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,Y(e,1))}}};var zD={kernelName:Ss,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,Q(e,\"float32\"))}}};var BD={kernelName:S_,inputsToSave:[],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n]=t,{axis:o}=e;return{logits:()=>{let i=ir(n);return lt(r,$(pt(r,o,!0),i))}}}};function T7(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 T.runKernel(Qa,a,u)}var VD=k({localResponseNormalizationBackprop_:T7});var GD={kernelName:ks,inputsToSave:[\"x\"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{depthRadius:s,bias:i,alpha:a,beta:u}=e;return{x:()=>VD(n,o,r,s,i,a,u)}}};function Fy(r,t,e,n){return t.rank$(r,Q(Fr(e,t),r.dtype))}}var TN={kernelName:Ts,inputsToSave:[\"x\"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let n=e,{reductionIndices:o}=n,s=t[0],i=t[1],a=fr(o,s.shape),u=Fy(r,i,s,a);return{x:()=>u.x()}}};var WD={kernelName:_s,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t;return{a:()=>$(r,Q(mn(e,n),\"float32\")),b:()=>$(r,Q(Il(e,n),\"float32\"))}}};function _7(r,t,e,n,o,s,i){let a=C(r,\"dy\",\"maxPool3dGrad\"),u=C(t,\"input\",\"maxPool3dGrad\"),l=C(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}.`),Se(\"maxPool3dGrad\",s,i);let d={dy:c,input:p,output:m},h={filterSize:n,strides:o,pad:s,dimRoundingMode:i},g=T.runKernel(au,d,h);return f?R(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}var UD=k({maxPool3dGrad_:_7});var HD={kernelName:Bi,inputsToSave:[\"x\"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u}=e;return{x:()=>UD(r,n,o,s,i,a,u)}}};function E7(r,t,e,n,o,s,i){let a=C(r,\"dy\",\"maxPoolGrad\"),u=C(t,\"input\",\"maxPoolGrad\"),l=C(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}.`),Se(\"maxPoolGrad\",s,i);let c={dy:a,input:u,output:l},p={filterSize:n,strides:o,pad:s,dimRoundingMode:i};return T.runKernel(iu,c,p)}var qD=k({maxPoolGrad_:E7});var KD={kernelName:Es,inputsToSave:[\"x\"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{filterSize:s,strides:i,pad:a}=e;return{x:()=>qD(r,n,o,s,i,a)}}};var jD={kernelName:As,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{axis:o}=e,s=fr(o,n.shape),a=J0(n.shape,s)[1],u=te(a);return{x:()=>{let c=n.shape.slice();s.forEach(f=>{c[f]=1});let p=R(r,c);return ct($(p,dr(n.shape,\"float32\")),u)}}}};var XD={kernelName:Ds,inputsToSave:[\"x\"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let n=e,{axis:o}=n,[s,i]=t,a=fr(o,s.shape),u=Fy(r,i,s,a);return{x:()=>u.x()}}};var YD={kernelName:$s,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t;return{a:()=>$(r,Q(Un(e,n),\"float32\")),b:()=>$(r,Q(Fe(e,n),\"float32\"))}}};var ZD={kernelName:Rs,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let n=t[0],{paddings:o}=e,s=o.map(i=>i[0]);return{x:()=>Pt(r,s,n.shape)}}};var JD={kernelName:Fs,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=Mt(e.shape,n.shape);return{a:()=>{let a=ye(e.shape,o);return a.length>0?R(pt(r,a),e.shape):r},b:()=>{let a=$(r,Ut(pa(ct(e,n)))),u=ye(n.shape,o);return u.length>0?R(pt(a,u),n.shape):a}}}};var QD={kernelName:Os,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=Mt(e.shape,n.shape);return{a:()=>{let a=$(r,Q(n,\"float32\")),u=ye(e.shape,o);return u.length>0?R(pt(a,u),e.shape):a},b:()=>{let a=$(r,Q(e,\"float32\")),u=ye(n.shape,o);return u.length>0?R(pt(a,u),n.shape):a}}}};var t$={kernelName:Vi,gradFunc:r=>({x:()=>Ut(r)})};var e$={kernelName:Ps,inputsToSave:[\"indices\"],gradFunc:(r,t)=>{let e=t[0];return{indices:()=>Te(e.shape,\"float32\")}}};var r$={kernelName:Gi,gradFunc:r=>({x:()=>vt(r)})};var n$={kernelName:Wi,saveAllInputs:!0,gradFunc:(r,t,e)=>{let{axis:n}=e;return xr(r,n).map(s=>()=>s)}};var _N={kernelName:Ms,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let n=t[0],{paddings:o}=e,s=o.map(i=>i[0]);return{x:()=>Pt(r,s,n.shape)}}};var o$={kernelName:Ls,inputsToSave:[\"a\",\"b\"],outputsToSave:[!0],gradFunc:(r,t)=>{let[e,n,o]=t,s=e,i=n,a=Mt(s.shape,i.shape);return{a:()=>{let c=Q(i,\"float32\"),p=$(r,$(c,pn(s,lt(c,ft(1))))),m=ye(s.shape,a);return m.length>0&&(p=pt(p,m)),R(p,s.shape)},b:()=>{let c=Fe(s,0),p=be(c,kr(s),vt(s)),m=$(r,$(o,p)),f=ye(i.shape,a);return f.length>0&&(m=pt(m,f)),R(m,i.shape)}}}};var s$={kernelName:zs,inputsToSave:[\"x\",\"alpha\"],gradFunc:(r,t)=>{let[e,n]=t,o=Fe(e,0);return{x:()=>be(o,r,$(r,n)),alpha:()=>{let s=be(o,vt(r),$(r,e)),i=ye(n.shape,r.shape);return i.length>0&&(s=pt(s,i)),R(s,n.shape)}}}};function A7(r,t,e){let n=r.shape.slice();n[e]=1;let o=R(t,n),s=Ic(r,e,!0,!1),i=Ic(r,e,!0,!0),a=$(s,i);return $(o,a)}function D7(r,t,e){let n=r.shape.length,o=n-e.length,s=S.getAxesPermutation(e,n),i=r;s!=null&&(i=Vt(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=A7(c,t,o);if(p=p.reshape(i.shape),s!=null){let m=S.getUndoAxesPermutation(s);p=Vt(p,m)}return p}var i$={kernelName:Bs,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:()=>D7(n,r,s)}}};var a$={kernelName:ps,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=Mt(e.shape,n.shape);return{a:()=>{let a=ct(r,Q(n,\"float32\")),u=ye(e.shape,o);return u.length>0?R(pt(a,u),e.shape):a},b:()=>{let a=$(r,Q(e,\"float32\")),u=ye(n.shape,o);u.length>0&&(a=R(pt(a,u),n.shape));let l=Wt(n);return Ut(ct(a,Q(l,\"float32\")))}}}};var l$={kernelName:Vs,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,Ut(Wt(e)))}}};var u$={kernelName:Hs,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t,n=$(Un(e,6),To(e));return{x:()=>$(r,Q(n,\"float32\"))}}};var c$={kernelName:Gs,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(r,Q(To(e),\"float32\"))}}};var p$={kernelName:Ui,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>R(r,e.shape)}}};var m$={kernelName:Us,inputsToSave:[\"images\"],gradFunc:(r,t,e)=>{let[n]=t,o={dy:r,images:n};return{images:()=>T.runKernel(il,o,e)}}};var f$={kernelName:Ws,inputsToSave:[\"images\"],gradFunc:(r,t,e)=>{let[n]=t,o={dy:r,images:n};return{images:()=>T.runKernel(sl,o,e)}}};var d$={kernelName:qs,gradFunc:(r,t,e)=>{let{dims:n}=e,o=fr(n,r.shape);return{x:()=>hr(r,o)}}};var h$={kernelName:Ks,gradFunc:r=>({x:()=>vt(r)})};var g$={kernelName:js,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>Ut(ct(r,$(pn(e,1.5),2)))}}};var x$={kernelName:Hi,inputsToSave:[\"condition\"],gradFunc:(r,t)=>{let[e]=t;return{condition:()=>Q(vt(e),\"float32\"),t:()=>$(r,Q(e,r.dtype)),e:()=>$(r,Q(Au(e),r.dtype))}}};var y$={kernelName:Xs,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Fe(e,ft(0)),o=ft(vN),s=ft(SN),i=$(r,s),a=$($(r,o),ir(Q(e,\"float32\")));return be(n,i,a)}}}};var b$={kernelName:Qs,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(r,$(e,lt(ft(1),e)))}}};var w$={kernelName:Js,gradFunc:r=>({x:()=>vt(r)})};var I$={kernelName:Ys,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(ku(Q(e,\"float32\")),r)}}};var C$={kernelName:Zs,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(fm(Q(e,\"float32\")),r)}}};var v$={kernelName:qi,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{begin:o,size:s}=e,i=n.shape,[a,u]=CN(n,o,s),l=[];for(let c=0;cdn(r,l)}}};var S$={kernelName:ni,outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n]=t,{dim:o}=e,s=!0,i=$(r,n);return{logits:()=>lt(i,$(pt(i,[o],s),n))}}};var N$={kernelName:ti,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(r,en(e))}}};var EN={kernelName:Ki,gradFunc:(r,t,e)=>{let{blockShape:n,paddings:o}=e;return{x:()=>Nu(r,n,o)}}};var AN={kernelName:ji,gradFunc:(r,t,e)=>{let{axis:n}=e;return{x:()=>ie(r,n)}}};var k$={kernelName:ei,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,$(Ne(Q(e,\"float32\")),2))}}};var T$={kernelName:fu,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(r,$(Q(e,\"float32\"),2))}}};var _$={kernelName:oi,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=ft(2);return{a:()=>$(r,$(o,lt(e,n))),b:()=>$(r,$(o,lt(n,e)))}}};var E$={kernelName:wo,gradFunc:r=>({x:()=>vt(r)})};var A$={kernelName:si,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=Mt(e.shape,n.shape);return{a:()=>{let a=r,u=ye(e.shape,o);return u.length>0&&(a=pt(a,u)),R(a,e.shape)},b:()=>{let a=r,u=ye(n.shape,o);return u.length>0&&(a=pt(a,u)),R(Ut(a),n.shape)}}}};var D$={kernelName:ri,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,o=n.shape.slice(),{axis:s}=e;fr(s,n.shape).forEach(l=>{o[l]=1});let a=R(r,o),u=$(a,dr(n.shape,\"float32\"));return{x:()=>u}}};var $$={kernelName:ii,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,Wt(ku(e)))}}};var R$={kernelName:ai,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(lt(ft(1),Wt(e)),r)}}};var F$={kernelName:lo,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{reps:o}=e;return{x:()=>{let i=vt(n);if(n.rank===1)for(let a=0;a{let n=e,{perm:o}=n,s=xh(o);return{x:()=>Vt(r,s)}}};var P$={kernelName:Xi,gradFunc:(r,t,e)=>{let n=e,{axis:o}=n;return{value:()=>qe(r,o)}}};var M$={kernelName:yu,inputsToSave:[\"segmentIds\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$7(r,e)}}};function $7(r,t){let e=_n(t,vt(t)),n=ma(r,e),o=mn(t,ft(0,\"int32\")),s=n.rank-o.rank;for(let a=0;a({x:()=>vt(r)})};var R7=[Ry,W2,U2,H2,q2,K2,j2,X2,Y2,Z2,J2,Q2,eD,nD,oD,sD,iD,aD,lD,uD,cD,pD,fD,mD,hD,gD,xD,yD,bD,wD,a$,ID,CD,vD,SD,ND,TD,kD,_D,DD,$D,RD,FD,OD,PD,MD,LD,zD,BD,GD,TN,TN,WD,HD,KD,jD,XD,YD,ZD,JD,QD,t$,e$,r$,n$,_N,_N,o$,s$,i$,l$,u$,c$,p$,m$,f$,d$,h$,g$,x$,y$,b$,w$,I$,C$,v$,S$,N$,EN,EN,AN,AN,k$,_$,T$,E$,A$,D$,$$,R$,F$,O$,P$,M$,L$];for(let r of R7)k_(r);O().prototype.abs=function(){return this.throwIfDisposed(),Ee(this)};O().prototype.acos=function(){return this.throwIfDisposed(),hx(this)};O().prototype.acosh=function(){return this.throwIfDisposed(),gx(this)};O().prototype.add=function(r){return this.throwIfDisposed(),Y(this,r)};O().prototype.all=function(r,t){return this.throwIfDisposed(),lm(this,r,t)};O().prototype.any=function(r,t){return this.throwIfDisposed(),bc(this,r,t)};O().prototype.argMax=function(r){return this.throwIfDisposed(),oa(this,r)};O().prototype.argMin=function(r){return this.throwIfDisposed(),xx(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(),Q(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(),yx(this)};O().prototype.asinh=function(){return this.throwIfDisposed(),bx(this)};O().prototype.atan=function(){return this.throwIfDisposed(),wx(this)};O().prototype.atan2=function(r){return this.throwIfDisposed(),Ix(this,r)};O().prototype.atanh=function(){return this.throwIfDisposed(),Cx(this)};O().prototype.avgPool=function(r,t,e,n){return this.throwIfDisposed(),Su(this,r,t,e,n)};O().prototype.batchToSpaceND=function(r,t){return this.throwIfDisposed(),Nu(this,r,t)};O().prototype.batchNorm=function(r,t,e,n,o){return this.throwIfDisposed(),aa(this,r,t,e,n,o)};O().prototype.broadcastTo=function(r){return this.throwIfDisposed(),la(this,r)};O().prototype.cast=function(r){return this.throwIfDisposed(),Q(this,r)};O().prototype.ceil=function(){return this.throwIfDisposed(),_x(this)};O().prototype.clipByValue=function(r,t){return this.throwIfDisposed(),Sr(this,r,t)};O().prototype.concat=function(r,t){return this.throwIfDisposed(),r instanceof Ot&&(r=[r]),ie([this,...r],t)};O().prototype.conv1d=function(r,t,e,n,o,s){return this.throwIfDisposed(),cm(this,r,t,e,n,o,s)};O().prototype.conv2dTranspose=function(r,t,e,n,o){return this.throwIfDisposed(),mm(this,r,t,e,n,o)};O().prototype.conv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),Tn(this,r,t,e,n,o,s)};O().prototype.cos=function(){return this.throwIfDisposed(),ku(this)};O().prototype.cosh=function(){return this.throwIfDisposed(),fm(this)};O().prototype.cumprod=function(r,t,e){return this.throwIfDisposed(),Ic(this,r,t,e)};O().prototype.cumsum=function(r,t,e){return this.throwIfDisposed(),dm(this,r,t,e)};O().prototype.depthToSpace=function(r,t){return this.throwIfDisposed(),Px(this,r,t)};O().prototype.depthwiseConv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),ua(this,r,t,e,n,o,s)};O().prototype.dilation2d=function(r,t,e,n,o){return this.throwIfDisposed(),Mx(this,r,t,e,n,o)};O().prototype.divNoNan=function(r){return this.throwIfDisposed(),Lx(this,r)};O().prototype.div=function(r){return this.throwIfDisposed(),ct(this,r)};O().prototype.dot=function(r){return this.throwIfDisposed(),zx(this,r)};O().prototype.elu=function(){return this.throwIfDisposed(),ca(this)};O().prototype.equal=function(r){return this.throwIfDisposed(),Fr(this,r)};O().prototype.erf=function(){return this.throwIfDisposed(),Bx(this)};O().prototype.euclideanNorm=function(r,t){return this.throwIfDisposed(),Vx(this,r,t)};O().prototype.exp=function(){return this.throwIfDisposed(),ir(this)};O().prototype.expandDims=function(r){return this.throwIfDisposed(),ar(this,r)};O().prototype.expm1=function(){return this.throwIfDisposed(),Gx(this)};O().prototype.fft=function(){return this.throwIfDisposed(),Ou(this)};O().prototype.flatten=function(){return this.throwIfDisposed(),R(this,[this.size])};O().prototype.floor=function(){return this.throwIfDisposed(),pa(this)};O().prototype.floorDiv=function(r){return this.throwIfDisposed(),am(this,r)};O().prototype.gather=function(r,t,e){return this.throwIfDisposed(),ma(this,r,t,e)};O().prototype.greaterEqual=function(r){return this.throwIfDisposed(),mn(this,r)};O().prototype.greater=function(r){return this.throwIfDisposed(),Fe(this,r)};O().prototype.ifft=function(){return this.throwIfDisposed(),vl(this)};O().prototype.irfft=function(){return this.throwIfDisposed(),Tm(this)};O().prototype.isFinite=function(){return this.throwIfDisposed(),Wx(this)};O().prototype.isInf=function(){return this.throwIfDisposed(),Ux(this)};O().prototype.isNaN=function(){return this.throwIfDisposed(),Hx(this)};O().prototype.leakyRelu=function(r){return this.throwIfDisposed(),_u(this,r)};O().prototype.lessEqual=function(r){return this.throwIfDisposed(),Un(this,r)};O().prototype.less=function(r){return this.throwIfDisposed(),Il(this,r)};O().prototype.localResponseNormalization=function(r,t,e,n){return this.throwIfDisposed(),qx(this,r,t,e,n)};O().prototype.logSigmoid=function(){return this.throwIfDisposed(),Xx(this)};O().prototype.logSoftmax=function(r){return this.throwIfDisposed(),hm(this,r)};O().prototype.logSumExp=function(r,t){return this.throwIfDisposed(),gm(this,r,t)};O().prototype.log=function(){return this.throwIfDisposed(),kr(this)};O().prototype.log1p=function(){return this.throwIfDisposed(),Eu(this)};O().prototype.logicalAnd=function(r){return this.throwIfDisposed(),Pr(this,r)};O().prototype.logicalNot=function(){return this.throwIfDisposed(),Au(this)};O().prototype.logicalOr=function(r){return this.throwIfDisposed(),xm(this,r)};O().prototype.logicalXor=function(r){return this.throwIfDisposed(),Yx(this,r)};O().prototype.matMul=function(r,t,e){return this.throwIfDisposed(),Bt(this,r,t,e)};O().prototype.maxPool=function(r,t,e,n){return this.throwIfDisposed(),Du(this,r,t,e,n)};O().prototype.max=function(r,t){return this.throwIfDisposed(),Nr(this,r,t)};O().prototype.maximum=function(r){return this.throwIfDisposed(),_n(this,r)};O().prototype.mean=function(r,t){return this.throwIfDisposed(),ke(this,r,t)};O().prototype.min=function(r,t){return this.throwIfDisposed(),bl(this,r,t)};O().prototype.minimum=function(r){return this.throwIfDisposed(),mo(this,r)};O().prototype.mirrorPad=function(r,t){return this.throwIfDisposed(),Qx(this,r,t)};O().prototype.mod=function(r){return this.throwIfDisposed(),ty(this,r)};O().prototype.mul=function(r){return this.throwIfDisposed(),$(this,r)};O().prototype.neg=function(){return this.throwIfDisposed(),Ut(this)};O().prototype.norm=function(r,t,e){return this.throwIfDisposed(),wl(this,r,t,e)};O().prototype.notEqual=function(r){return this.throwIfDisposed(),mi(this,r)};O().prototype.oneHot=function(r,t=1,e=0){return this.throwIfDisposed(),fa(this,r,t,e)};O().prototype.onesLike=function(){return this.throwIfDisposed(),Ir(this)};O().prototype.pad=function(r,t){return this.throwIfDisposed(),dn(this,r,t)};O().prototype.pool=function(r,t,e,n,o,s){return this.throwIfDisposed(),ey(this,r,t,e,n,o,s)};O().prototype.pow=function(r){return this.throwIfDisposed(),pn(this,r)};O().prototype.prelu=function(r){return this.throwIfDisposed(),Ru(this,r)};O().prototype.prod=function(r,t){return this.throwIfDisposed(),ry(this,r,t)};O().prototype.reciprocal=function(){return this.throwIfDisposed(),ly(this)};O().prototype.relu=function(){return this.throwIfDisposed(),Mr(this)};O().prototype.relu6=function(){return this.throwIfDisposed(),ym(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(),Ny(this,r,t,e)};O().prototype.resizeNearestNeighbor=function(r,t,e){return this.throwIfDisposed(),ky(this,r,t,e)};O().prototype.reverse=function(r){return this.throwIfDisposed(),hr(this,r)};O().prototype.rfft=function(){return this.throwIfDisposed(),Pu(this)};O().prototype.round=function(){return this.throwIfDisposed(),bm(this)};O().prototype.rsqrt=function(){return this.throwIfDisposed(),wm(this)};O().prototype.selu=function(){return this.throwIfDisposed(),Im(this)};O().prototype.separableConv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),Cm(this,r,t,e,n,o,s)};O().prototype.sigmoid=function(){return this.throwIfDisposed(),en(this)};O().prototype.sign=function(){return this.throwIfDisposed(),uy(this)};O().prototype.sin=function(){return this.throwIfDisposed(),vm(this)};O().prototype.sinh=function(){return this.throwIfDisposed(),Sm(this)};O().prototype.slice=function(r,t){return this.throwIfDisposed(),Pt(this,r,t)};O().prototype.softmax=function(r){return this.throwIfDisposed(),Fu(this,r)};O().prototype.softplus=function(){return this.throwIfDisposed(),pi(this)};O().prototype.spaceToBatchND=function(r,t){return this.throwIfDisposed(),$u(this,r,t)};O().prototype.split=function(r,t){return this.throwIfDisposed(),gr(this,r,t)};O().prototype.sqrt=function(){return this.throwIfDisposed(),Ne(this)};O().prototype.square=function(){return this.throwIfDisposed(),Wt(this)};O().prototype.squaredDifference=function(r){return this.throwIfDisposed(),_m(this,r)};O().prototype.squeeze=function(r){return this.throwIfDisposed(),qn(this,r)};O().prototype.stack=function(r,t){this.throwIfDisposed();let e=r instanceof Ot?[this,r]:[this,...r];return qe(e,t)};O().prototype.step=function(r){return this.throwIfDisposed(),To(this,r)};O().prototype.stridedSlice=function(r,t,e,n,o,s,i,a){return this.throwIfDisposed(),cy(this,r,t,e,n,o,s,i,a)};O().prototype.sub=function(r){return this.throwIfDisposed(),lt(this,r)};O().prototype.sum=function(r,t){return this.throwIfDisposed(),pt(this,r,t)};O().prototype.tan=function(){return this.throwIfDisposed(),py(this)};O().prototype.tanh=function(){return this.throwIfDisposed(),ia(this)};O().prototype.tile=function(r){return this.throwIfDisposed(),Or(this,r)};O().prototype.toBool=function(){return this.throwIfDisposed(),Q(this,\"bool\")};O().prototype.toFloat=function(){return this.throwIfDisposed(),Q(this,\"float32\")};O().prototype.toInt=function(){return this.throwIfDisposed(),Q(this,\"int32\")};O().prototype.topk=function(r,t){return this.throwIfDisposed(),fy(this,r,t)};O().prototype.transpose=function(r){return this.throwIfDisposed(),Vt(this,r)};O().prototype.unique=function(r){return this.throwIfDisposed(),dy(this,r)};O().prototype.unsortedSegmentSum=function(r,t){return this.throwIfDisposed(),Dm(this,r,t)};O().prototype.unstack=function(r){return this.throwIfDisposed(),xr(this,r)};O().prototype.where=function(r,t){return this.throwIfDisposed(),be(r,this,t)};O().prototype.zerosLike=function(){return this.throwIfDisposed(),vt(this)};var En=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,En.prototype)}},Xr=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,Xr.prototype)}},z=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,z.prototype)}},kt=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,kt.prototype)}},Rm=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,Rm.prototype)}};var Th=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 Eo={};function Fm(r){if(r==null)return null;let t={};return t.className=r.getClassName(),t.config=r.getConfig(),t}function DN(r){if(!(r==null||typeof r!=\"object\"))if(Array.isArray(r))r.forEach(t=>DN(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:DN(n))}}}function xa(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 Eo)i=Eo[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 Eo?[a,u]=Eo.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(Eo))l[f]=Eo[f];for(let f of Object.keys(e))l[f]=e[f];let c=s.config;c.customObjects=l;let p=Object.assign({},Eo);for(let f of Object.keys(e))Eo[f]=e[f];DN(s.config);let m=u(a,s.config,e,o);return Eo=Object.assign({},p),m}else{let l=Object.assign({},Eo);for(let p of Object.keys(e))Eo[p]=e[p];let c=new a(s.config);return Eo=Object.assign({},l),c}}}function F7(r,t){return rt?1:0}function _h(r,t){return-1*F7(r,t)}function $o(r){if(r==null)return r;let t=[];for(let e of r)t.indexOf(e)===-1&&t.push(e);return t}function z$(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 ya(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 Oy(r,t,e=0,n=1/0){return fo(e>=0),fo(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 ${B$(r)}.`)}function B$(r){return r===null?\"null\":Array.isArray(r)?\"[\"+r.map(t=>B$(t)).join(\",\")+\"]\":typeof r==\"string\"?`\"${r}\"`:`${r}`}function V$(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 Om.set(e,1),e}else return r}var M7=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\\._\\/]*$/);function X$(r){return!!r.match(M7)}function Y$(r){return r===parseInt(r.toString(),10)}function Ro(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 xn(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=_l(r,1);return Gy(e,[1,t,1])})}function J$(r){let t=[Ro(r.shape)];return R(r,t)}function Q$(r){if(r.rank<=1)throw new z(`batchFlatten requires a minimum rank of 2. Got rank: ${r.rank}.`);let t=[r.shape[0],Ro(r.shape,1)];return R(r,t)}function Tl(r,t,e){return B(()=>{switch(r.rank){case 1:return Nm(r,t,e);case 2:return wh(r,[t,0],[e,r.shape[1]]);case 3:return km(r,[t,0,0],[e,r.shape[1],r.shape[2]]);case 4:return Tc(r,[t,0,0,0],[e,r.shape[1],r.shape[2],r.shape[3]]);case 5:return Pt(r,[t,0,0,0,0],[e,r.shape[1],r.shape[2],r.shape[3],r.shape[4]]);case 6:return Pt(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 ON(r,t,e){return B(()=>{switch(r.rank){case 1:return Nm(r,t,e);case 2:return wh(r,[0,t],[r.shape[0],e]);case 3:return km(r,[0,0,t],[r.shape[0],r.shape[1],e]);case 4:return Tc(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 Ah(r,t,e,n){return B(()=>{switch(r.rank){case 1:return Nm(r,t,e);case 2:switch(n){case 1:return Tl(r,t,e);case 2:return ON(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 Tl(r,t,e);case 2:return km(r,[0,t,0],[r.shape[0],e,r.shape[2]]);case 3:return ON(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 Tl(r,t,e);case 2:return Tc(r,[0,t,0,0],[r.shape[0],e,r.shape[2],r.shape[3]]);case 3:return Tc(r,[0,0,t,0],[r.shape[0],r.shape[1],e,r.shape[3]]);case 4:return ON(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 Pm(r,t=-1){let e;return t<0&&(e=r[0].rank,e!==0?t=e:t=0),t===r[0].rank&&(t=-1),ie(r,t)}function MN(r,t){switch(r.rank){case 1:return Ex([r,t]);case 2:return Ax([r,t],0);case 3:return Dx([r,t],0);case 4:return $x([r,t],0);default:throw new z(`concatAlongFirstAxis() received an unsupported tensor rank: ${r.rank}`)}}function Gy(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 Or(r,t)}function Mm(r,t=0,e=1,n,o){return kc(r,t,e,n,o)}function Fo(r,t,e,n){if(r.rank<2||t.rank<2)throw new kt(`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 kt(`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 Lu.matMul({a:r,b:t,transposeA:!1,transposeB:!1,bias:n?PN(r.rank,n,yn()):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(Vt(t,c),[u,-1]);let p=[...o,...l],m=!1,f=!1;return R(Lu.matMul({a:r,b:t,transposeA:m,transposeB:f,bias:n?PN(r.rank,n,yn()):null,activation:e}),p)}}function Wy(r,t,e){return B(()=>(Array.isArray(t)?t=Ke(t,\"int32\"):t=Q(t,\"int32\"),ma(r,t,e)))}function Vc(r){return $(r,r)}function PN(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 bn(r,t,e){return B(()=>(e==null&&(e=yn()),Oe(e),Y(r,PN(r.rank,t,e))))}function tR(r,t=1){if(t!==1)throw new kt(`Support for alpha values other than 1 (${t}) is not implemented yet.`);return ca(r)}function eR(r){return B(()=>ct(r,Y(Ee(r),1)))}function Uy(r,t,e,n){return B(()=>cN(r,t,e,n))}function rR(r){return B(()=>{let t=Y(.5,$(.2,r));return Sr(t,0,1)})}function Bu(r,t,e=!1){return e?r():t()}var nR=[\"fanIn\",\"fanOut\",\"fanAvg\"],oR=[\"normal\",\"uniform\",\"truncatedNormal\"];function L7(r){ya(nR,\"FanMode\",r)}function z7(r){ya(oR,\"Distribution\",r)}var wn=class extends J.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}},Lm=class extends wn{apply(t,e){return Te(t,e)}};Lm.className=\"Zeros\";J.registerClass(Lm);var Vu=class extends wn{apply(t,e){return dr(t,e)}};Vu.className=\"Ones\";J.registerClass(Vu);var zm=class extends wn{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(()=>$(ft(this.value),dr(t,e)))}getConfig(){return{value:this.value}}};zm.className=\"Constant\";J.registerClass(zm);var Bm=class extends wn{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 Hn(t,this.minval,this.maxval,e,this.seed)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}};Bm.className=\"RandomUniform\";J.registerClass(Bm);var Vm=class extends wn{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 kt(`randomNormal does not support dType ${e}.`);return Mm(t,this.mean,this.stddev,e,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};Vm.className=\"RandomNormal\";J.registerClass(Vm);var Gm=class extends wn{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 kt(`truncatedNormal does not support dType ${e}.`);return Am(t,this.mean,this.stddev,e,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};Gm.className=\"TruncatedNormal\";J.registerClass(Gm);var Wm=class extends wn{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 $(this.gain,Cc(t[0]))})}getConfig(){return{gain:this.gain}}};Wm.className=\"Identity\";J.registerClass(Wm);function B7(r,t=\"channelsLast\"){let e,n;if(Oe(t),r.length===2)e=r[0],n=r[1];else if([3,4,5].indexOf(r.length)!==-1){if(t===\"channelsFirst\"){let o=Ro(r,2);e=r[1]*o,n=r[0]*o}else if(t===\"channelsLast\"){let o=Ro(r,0,r.length-2);e=r[r.length-2]*o,n=r[r.length-1]*o}}else{let o=Ro(r);e=Math.sqrt(o),n=Math.sqrt(o)}return[e,n]}var Yr=class extends wn{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,L7(this.mode),this.distribution=t.distribution==null?\"normal\":t.distribution,z7(this.distribution),this.seed=t.seed}apply(t,e){let n=B7(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 kt(`${this.getClassName()} does not support dType ${e}.`);return Am(t,0,a,e,this.seed)}else{let a=Math.sqrt(3*i);return Hn(t,-a,a,e,this.seed)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}};Yr.className=\"VarianceScaling\";J.registerClass(Yr);var Gc=class extends Yr{constructor(t){super({scale:1,mode:\"fanAvg\",distribution:\"uniform\",seed:t==null?null:t.seed})}getClassName(){return Yr.className}};Gc.className=\"GlorotUniform\";J.registerClass(Gc);var Wc=class extends Yr{constructor(t){super({scale:1,mode:\"fanAvg\",distribution:\"normal\",seed:t==null?null:t.seed})}getClassName(){return Yr.className}};Wc.className=\"GlorotNormal\";J.registerClass(Wc);var Uc=class extends Yr{constructor(t){super({scale:2,mode:\"fanIn\",distribution:\"normal\",seed:t==null?null:t.seed})}getClassName(){return Yr.className}};Uc.className=\"HeNormal\";J.registerClass(Uc);var Hc=class extends Yr{constructor(t){super({scale:2,mode:\"fanIn\",distribution:\"uniform\",seed:t==null?null:t.seed})}getClassName(){return Yr.className}};Hc.className=\"HeUniform\";J.registerClass(Hc);var qc=class extends Yr{constructor(t){super({scale:1,mode:\"fanIn\",distribution:\"normal\",seed:t==null?null:t.seed})}getClassName(){return Yr.className}};qc.className=\"LeCunNormal\";J.registerClass(qc);var Kc=class extends Yr{constructor(t){super({scale:1,mode:\"fanIn\",distribution:\"uniform\",seed:t==null?null:t.seed})}getClassName(){return Yr.className}};Kc.className=\"LeCunUniform\";J.registerClass(Kc);var Um=class extends wn{constructor(t){super(),this.DEFAULT_GAIN=1,this.ELEMENTS_WARN_SLOW=2e3,this.gain=t.gain==null?this.DEFAULT_GAIN:t.gain,this.seed=t.seed}apply(t,e){return B(()=>{if(t.length<2)throw new kt(\"Shape must be at least 2D.\");if(e!==\"int32\"&&e!==\"float32\"&&e!==void 0)throw new TypeError(`Unsupported data type ${e}.`);e=e;let n=y.sizeFromShape(t.slice(0,-1)),o=t[t.length-1],s=n*o;s>this.ELEMENTS_WARN_SLOW&&console.warn(`Orthogonal initializer is being called on a matrix with more than ${this.ELEMENTS_WARN_SLOW} (${s}) elements: Slowness may result.`);let i=[Math.max(o,n),Math.min(o,n)],a=Mm(i,0,1,e,this.seed),u=fN.qr(a,!1),l=u[0],p=u[1].flatten().stridedSlice([0],[Math.min(o,n)*Math.min(o,n)],[Math.min(o,n)+1]);return l=$(l,p.sign()),nn*o);return t}var lR=\"Variable\",Dh=class{constructor(t,e=\"float32\",n=lR,o=!0,s=null){this.dtype=e==null?\"float32\":e,this.shape=t.shape,this.id=Ly(),n=n==null?lR:n,this.originalName=zy(n),this.name=By(this.originalName),this.trainable_=o,this.constraint=s,this.val=hy(t,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(t){return this.assertNotDisposed(),G7(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 G7(r,t){if(r.shape.toString()!==t.shape.toString())throw new Error(\"Shape mismatch: \"+JSON.stringify(r.shape)+\" vs. \"+JSON.stringify(t.shape))}function $h(r){return r.map(t=>t.read())}function Km(r){r.forEach(t=>{t[0].write(t[1])})}var Ie=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||{}}},nn=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=Ly(),i!=null&&(this.originalName=zy(i),this.name=By(this.originalName)),this.rank=e.length}},W7=0,El=class{constructor(t,e){this.callArgs=e,this.id=W7++,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}}},U7=0,_t=class extends J.Serializable{constructor(t={}){super(),this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=U7++,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=Do(n)+\"_\"+zu(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 Xr(`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 En(`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 En(`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 En(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new En(`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=we(t),this.inputSpec==null||this.inputSpec.length===0)return;let e=we(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 we(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=we(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 kt(\"Layer invocation in the presence of activity regularizer(s) is not supported yet.\");return i}else{let i=H7(t),a=this.computeOutputShape(i),u,l=q7(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 nn(l,c,this,we(t),e,this.name,p)):u=new nn(l,a,this,we(t),e,this.name),this.addInboundNode(t,u,null,null,i,a,e),this._refCount++,this.activityRegularizer!=null)throw new kt(\"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 En(`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 En(`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 Xr(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return qm(this.weights)}build(t){this.built=!0}getWeights(t=!1){return $h(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=$h(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=we(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=we(t);e=we(e),n=we(n),o=we(o),s=Hm(s),i=Hm(i);let l=[],c=[],p=[];for(let m of u)l.push(m.sourceLayer),c.push(m.nodeIndex),p.push(m.tensorIndex);new El({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 H7(r){r=we(r);let t=[];for(let e of r)t.push(e.shape);return Tr(t)}function q7(r){return\"float32\"}function LN(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=Ky.get(c),m;if(p==null){let d=j7(i,t);p=d.sorted,m=d.recipientCounts,Ky.put(c,p),jy.put(c,m)}m={},o||Object.assign(m,jy.get(c));let f=new Oo(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=uR(r[0],t);e=o.sorted,n=o.recipientMap}else{let o=new Set;for(let s of r){let{sorted:i,recipientMap:a}=uR(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:X7(n)}}function X7(r){let t={};for(let e in r)t[e]=r[e].size;return t}function uR(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 Y7(r){let t;if(r.sourceLayer.inboundNodes.length===1)t=r.sourceLayer.output;else{let e=null;for(let n=0;n100,cR);var fR={};Kt(fR,{maxNorm:()=>J7,minMaxNorm:()=>eZ,nonNeg:()=>tZ,unitNorm:()=>Q7});function zN(r,t){return B(()=>Ne(pt($(r,r),t,!0)))}var Xc=class extends J.Serializable{getConfig(){return{}}},jm=class extends Xc{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=zN(t,this.axis),n=Sr(e,0,this.maxValue);return $(t,ct(n,Y(cr(),e)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}};jm.className=\"MaxNorm\";J.registerClass(jm);var Xm=class extends Xc{constructor(t){super(),this.defaultAxis=0,this.axis=t.axis!=null?t.axis:this.defaultAxis}apply(t){return B(()=>ct(t,Y(cr(),zN(t,this.axis))))}getConfig(){return{axis:this.axis}}};Xm.className=\"UnitNorm\";J.registerClass(Xm);var Ym=class extends Xc{apply(t){return Mr(t)}};Ym.className=\"NonNeg\";J.registerClass(Ym);var Zm=class extends Xc{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=zN(t,this.axis),n=Y($(this.rate,Sr(e,this.minValue,this.maxValue)),$(1-this.rate,e));return $(t,ct(n,Y(cr(),e)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}};Zm.className=\"MinMaxNorm\";J.registerClass(Zm);var pR={maxNorm:\"MaxNorm\",minMaxNorm:\"MinMaxNorm\",nonNeg:\"NonNeg\",unitNorm:\"UnitNorm\"};function Be(r){return Fm(r)}function mR(r,t={}){return xa(r,J.SerializationMap.getMap().classNameMap,t,\"constraint\")}function Ve(r){if(r==null)return null;if(typeof r==\"string\"){let e={className:r in pR?pR[r]:r,config:{}};return mR(e)}else return r instanceof Xc?r:mR(r)}function J7(r){return new jm(r)}function Q7(r){return new Xm(r)}function tZ(){return new Ym}function eZ(r){return new Zm(r)}var dR={};Kt(dR,{constant:()=>oZ,glorotNormal:()=>pZ,glorotUniform:()=>cZ,heNormal:()=>mZ,heUniform:()=>fZ,identity:()=>lZ,leCunNormal:()=>dZ,leCunUniform:()=>hZ,ones:()=>nZ,orthogonal:()=>gZ,randomNormal:()=>iZ,randomUniform:()=>sZ,truncatedNormal:()=>aZ,varianceScaling:()=>uZ,zeros:()=>rZ});function rZ(){return new Lm}function nZ(){return new Vu}function oZ(r){return new zm(r)}function sZ(r){return new Bm(r)}function iZ(r){return new Vm(r)}function aZ(r){return new Gm(r)}function lZ(r){return new Wm(r)}function uZ(r){return new Yr(r)}function cZ(r){return new Gc(r)}function pZ(r){return new Wc(r)}function mZ(r){return new Uc(r)}function fZ(r){return new Hc(r)}function dZ(r){return new qc(r)}function hZ(r){return new Kc(r)}function gZ(r){return new Um(r)}var jR={};Kt(jR,{Layer:()=>_t,RNN:()=>Dn,RNNCell:()=>Rl,activation:()=>FJ,add:()=>WJ,alphaDropout:()=>k9,average:()=>UJ,averagePooling1d:()=>QN,averagePooling2d:()=>tk,averagePooling3d:()=>ek,avgPool1d:()=>QJ,avgPool2d:()=>e9,avgPool3d:()=>n9,avgPooling1d:()=>t9,avgPooling2d:()=>r9,avgPooling3d:()=>o9,batchNormalization:()=>YJ,bidirectional:()=>y9,categoryEncoding:()=>D9,centerCrop:()=>E9,concatenate:()=>HJ,conv1d:()=>NJ,conv2d:()=>kJ,conv2dTranspose:()=>TJ,conv3d:()=>_J,conv3dTranspose:()=>EJ,convLstm2d:()=>d9,convLstm2dCell:()=>h9,cropping2D:()=>DJ,dense:()=>OJ,depthwiseConv2d:()=>RJ,dot:()=>XJ,dropout:()=>PJ,elu:()=>bJ,embedding:()=>GJ,flatten:()=>LJ,gaussianDropout:()=>N9,gaussianNoise:()=>S9,globalAveragePooling1d:()=>s9,globalAveragePooling2d:()=>i9,globalMaxPool1d:()=>w9,globalMaxPool2d:()=>I9,globalMaxPooling1d:()=>UR,globalMaxPooling2d:()=>HR,gru:()=>l9,gruCell:()=>u9,input:()=>KN,inputLayer:()=>yJ,layerNormalization:()=>ZJ,leakyReLU:()=>IJ,lstm:()=>c9,lstmCell:()=>p9,masking:()=>T9,maxPool1d:()=>C9,maxPool2d:()=>v9,maxPooling1d:()=>qR,maxPooling2d:()=>KR,maxPooling3d:()=>a9,maximum:()=>qJ,minimum:()=>KJ,multiply:()=>jJ,permute:()=>VJ,prelu:()=>CJ,randomWidth:()=>$9,reLU:()=>wJ,repeatVector:()=>zJ,rescaling:()=>_9,reshape:()=>BJ,resizing:()=>A9,rnn:()=>g9,separableConv2d:()=>AJ,simpleRNN:()=>m9,simpleRNNCell:()=>f9,softmax:()=>vJ,spatialDropout1d:()=>MJ,stackedRNNCells:()=>x9,thresholdedReLU:()=>SJ,timeDistributed:()=>b9,upSampling2d:()=>$J,zeroPadding2d:()=>JJ});async function ba(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;sY(this.totals[o],$(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=$(ct(1,this.seen),this.totals[n]);e[n]=o,this.totals[n].dispose(),$e(e[n])}))}},Zy=class extends Al{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 Jy(n,t))}var In=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}`),In.checkForDuplicate(e),In.constructors[t]==null&&(In.constructors[t]=[]),In.constructors[t].push(e)}static checkForDuplicate(t){for(let e in In.constructors)In.constructors[+e].forEach(o=>{if(o===t)throw new z(\"Duplicate callback constructor.\")})}static clear(){In.constructors={}}static createCallbacks(t){let e=[];for(let n in In.constructors){let o=+n;t>=o&&e.push(...In.constructors[o])}return e.map(n=>new n)}};In.constructors={};function tb(r,t,e,n,o,s,i,a,u){let l=new Zy,c=[new BN,...In.createCallbacks(t)];r!=null&&c.push(...r),c.push(l);let p=new Yy(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 Cn(r,t={},e=!1){return xa(r,J.SerializationMap.getMap().classNameMap,t,\"layer\",e)}function Rh(r,t){return B(()=>{r.dtype!==\"float32\"&&(r=Q(r,\"float32\"));let e=pt(Vc(r),t,!0),n=No(e.shape,cr()),o=Ne(_n(e,n));return ct(r,o)})}function wa(r,t){return B(()=>ke(Vc(lt(t,r)),-1))}function Jm(r,t){return B(()=>ke(Ee(lt(t,r)),-1))}function Gu(r,t){return B(()=>{let e=lt(r,t),n=Sr(Ee(r),cr(),Number.MAX_VALUE),o=Ee(ct(e,n));return $(100,ke(o,-1))})}function yZ(r,t){return B(()=>{let e=Sr(t,cr(),Number.MAX_VALUE),n=kr(Y(1,e)),o=Sr(r,cr(),Number.MAX_VALUE),s=kr(Y(1,o));return ke(Vc(lt(n,s)),-1)})}function bZ(r,t){return B(()=>{let e=_n(0,lt(1,$(r,t)));return ke(Vc(e),-1)})}function wZ(r,t){return B(()=>{let e=_n(0,lt(1,$(r,t)));return ke(e,-1)})}function IZ(r,t){return B(()=>{let e=pt($(r,t),-1),n=Nr($(lt(1,r),t),-1);return _n(0,Y(1,lt(n,e)))})}function CZ(r,t){return B(()=>{let e=Math.log(2),n=lt(t,r),o=lt(Y(n,pi($(-2,n))),e);return ke(o,-1)})}function Yc(r,t,e=!1){return B(()=>{if(e)t=Fu(t);else{let n=pt(t,t.shape.length-1,!0);t=ct(t,n)}return t=Sr(t,cr(),1-cr()),Ut(pt($(Q(r,\"float32\"),kr(t)),t.shape.length-1))})}function Qm(r,t,e=!1){return B(()=>{let n=Q(pa(J$(r)),\"int32\");t=Sr(t,cr(),1-cr());let o=t.shape,s=R(fa(n,o[o.length-1]),o);return Yc(s,t,e)})}function vZ(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=Mr(t),n=Ut(Ee(t));return Y(lt(e,$(t,r)),Eu(ir(n)))})}function tf(r,t){return B(()=>{let e;return e=Sr(t,cr(),1-cr()),e=kr(ct(e,lt(1,e))),ke(vZ(r,e),-1)})}function SZ(r,t){return B(()=>{let e=Sr(r,cr(),1),n=Sr(t,cr(),1);return pt($(r,kr(ct(e,n))),-1)})}function NZ(r,t){return B(()=>{let e=kr(Y(cr(),t));return ke(lt(t,$(r,e)),-1)})}function Oh(r,t){return B(()=>{let e=Rh(r,-1),n=Rh(t,-1),o=$(e,n);return Ut(pt(o,-1))})}var Fh={meanSquaredError:wa,meanAbsoluteError:Jm,meanAbsolutePercentageError:Gu,meanSquaredLogarithmicError:yZ,squaredHinge:bZ,hinge:wZ,categoricalHinge:IZ,logcosh:CZ,categoricalCrossentropy:Yc,sparseCategoricalCrossentropy:Qm,binaryCrossentropy:tf,kullbackLeiblerDivergence:SZ,poisson:NZ,cosineProximity:Oh};function eb(r){if(typeof r==\"string\"){if(r in Fh)return Fh[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 Ph(r,t){return B(()=>{let e=$(.5,Ir(t)),n=rn(Fe(t,e),r.dtype);return ke(Fr(r,n),-1)})}function Mh(r,t){return B(()=>rn(Fr(oa(r,-1),oa(t,-1)),\"float32\"))}function xR(r,t){return B(()=>Q(pt(Pr(Fr(r,1),Fr(t,1))),\"float32\"))}function kZ(r,t){return B(()=>Q(pt(Pr(Fr(r,1),Fr(t,0))),\"float32\"))}function TZ(r,t){return B(()=>Q(pt(Pr(Fr(r,0),Fr(t,1))),\"float32\"))}function VN(r,t){return B(()=>{let e=xR(r,t),n=TZ(r,t),o=Y(e,n);return Q(be(Fe(o,0),ct(e,o),0),\"float32\")})}function yR(r,t){return B(()=>{let e=xR(r,t),n=kZ(r,t),o=Y(e,n);return Q(be(Fe(o,0),ct(e,o),0),\"float32\")})}function nb(r,t){return tf(r,t)}function ob(r,t){return r.rank===t.rank&&(r=qn(r,[r.rank-1])),t=oa(t,-1),t.dtype!==r.dtype&&(t=Q(t,r.dtype)),Q(Fr(r,t),\"float32\")}var _Z=wa,EZ=wa,AZ=Jm,DZ=Jm,$Z=Gu,RZ=Gu,Lh=Yc,FZ=Oh,GN=Qm,rb={binaryAccuracy:Ph,categoricalAccuracy:Mh,precision:VN,categoricalCrossentropy:Lh,sparseCategoricalCrossentropy:GN,mse:_Z,MSE:EZ,mae:AZ,MAE:DZ,mape:$Z,MAPE:RZ,cosine:FZ};function bR(r){if(typeof r==\"string\"&&r in rb)return rb[r];if(typeof r!=\"string\"&&r!=null)return r;throw new z(`Unknown metric ${r}`)}function zh(r){if(fo(r!==null,`Unknown LossOrMetricFn ${r}`),typeof r==\"string\")return r;{let t;for(let e of Object.keys(Fh))if(Fh[e]===r){t=e;break}if(t!==void 0)return t;for(let e of Object.keys(rb))if(rb[e]===r){t=e;break}return t!==void 0?t:r.name}}function IR(r){let t={Adagrad:()=>zc.adagrad(.01),Adadelta:()=>zc.adadelta(1,.95,cr()),Adam:()=>zc.adam(.001,.9,.999,cr()),Adamax:()=>zc.adamax(.002,.9,.999,cr(),0),RMSProp:()=>zc.rmsprop(.001,.9,0,cr()),SGD:()=>zc.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 UN(r,t,e=!1){if(r==null||typeof r!=\"object\"||Object.getPrototypeOf(r)!==Object.prototype||!WN(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 WN(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\"||!WN(r[e]))return!1;return!0}else if(Array.isArray(r)){for(let t of r)if(!WN(t))return!1;return!0}else return!1;else{let t=typeof r;return t===\"string\"||t===\"number\"||t===\"boolean\"}}function CR(r,t,e,n=console.log){let o=MZ(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)),sb(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 sb(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 LZ(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()];sb(a,t,e)}function zZ(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)}`);$o(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,I=b.nodeIndex,N=b.tensorIndex;this.outputLayers.push(w),this.outputLayersNodeIndices.push(I),this.outputLayersTensorIndices.push(N)}for(let b of this.inputs){let w=b.sourceLayer,I=b.nodeIndex,N=b.tensorIndex;fo(I===0,\"input layer has >1 nodes\"),fo(N===0,\"input layer has >1 tensors\"),this.inputLayers.push(w),this.inputLayersNodeIndices.push(I),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,I,N,E,A)=>{(N==null||E==null||A==null)&&(N=b.sourceLayer,E=b.nodeIndex,A=b.tensorIndex);let D=N.inboundNodes[E];if(I.indexOf(D)!==-1)throw new Xr(`The tensor ${b.name} at layer \"${N.name}\" is part of a cycle.`);if(w.indexOf(D)!==-1)return;this.containerNodes.add(Kn.nodeKey(N,E)),N.id in i||(i[N.id]=Object.keys(i).length),I.indexOf(D)===-1&&I.push(D);let F=D.inboundLayers.length;for(let P=0;P=0;)I.splice(I.indexOf(D),1);a.push(D)},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],I=o[b.outboundLayer.id]==null?0:o[b.outboundLayer.id];w=Math.max(w,I),o[b.outboundLayer.id]=w,s[b.outboundLayer.id]=b.outboundLayer,e[b.id]=w;for(let N=0;NparseInt(b,10)).sort(_h);this.layers=[];for(let b of d){let w=f[b];w.sort((I,N)=>{let E=i[I.id],A=i[N.id];return EA?1:0});for(let I of w)I instanceof Kn&&this.internalContainerRefs.push(I),this.layers.push(I)}this.layersByDepth=f,d=Object.keys(m).map(b=>parseInt(b,10)).sort(_h);let h=this.inputs.slice(),g=[];for(let b of d)for(let w of m[b]){let I=w.outboundLayer;if(I!=null){for(let N of w.inputTensors)if(h.indexOf(N)===-1)throw new Xr(`Graph disconnected: cannot obtain value for tensor ${N} at layer \"${I.name}\". The following previous layers were accessed without issue: ${g}`);for(let N of w.outputTensors)h.push(N);g.push(I.name)}}this.nodesByDepth=m;let x=this.layers.map(b=>b.name);for(let b of x){let w=x.filter(I=>I===b).length;if(w!==1)throw new Xr(`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 El({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}`)}Km(s)}updatedConfig(){let t=this.getConfig(),e={};return e.className=this.getClassName(),e.config=t,e.kerasVersion=`tfjs-layers ${ef}`,e.backend=\"TensorFlow.js\",e}toJSON(t,e=!0){let n=ib(this.updatedConfig());return e?JSON.stringify(n):n}call(t,e){return B(()=>{t=we(t);let n=new Oo;for(let o=0;o{t=we(t);let n;return e==null?n=Ao(null,t.length):n=we(e),this.runInternalGraph(t,n)[1]})}computeOutputShape(t){let e=Hm(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(_h);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(_h);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[I,N]=d[0];h.mask==null&&(h.mask=N),b=we(p.call(I,h)),w=we(p.computeMask(I,N)),g=[I],x=[N]}else g=d.map(I=>I[0]),x=d.map(I=>I[1]),h.mask==null&&(h.mask=x),b=we(p.call(g,h)),w=we(p.computeMask(g,x));if(p.activityRegularizer)throw new kt(\"LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet.\");for(let I=0;I{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=Cn(g,e.customObjects!=null?e.customObjects:{});b.setFastWeightInitDuringBuild(o),s[x]=b,g.inboundNodes.forEach(I=>{if(!(I instanceof Array))throw new z(`Corrupted configuration, expected array for nodeData: ${I}`);a(b,I)})}let c=e.name,p=e.layers;for(let g of p)l(g);for(;!z$(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];fo(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];fo(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 BZ(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 ab(r,t){return BZ(r,t,\"classWeight\")}async function lb(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 cn(r);if(r.shape.length===2){if(r.shape[1]>1)return oa(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());Tt(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 SR(r,t){return $(r,t)}var VZ=32;function TR(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=NR(\"input\",r.inputNames,e),i=NR(\"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 NR(r,t,e){if(e instanceof Ot)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 GZ(r){if(r.length===3)throw new kt(\"Validation with sample weights is not implemented yet.\");return{xs:r[0],ys:r[1]}}async function _R(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(kR(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=GZ(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=Qy(e.callbacks,e.yieldEvery),p=e.verbose==null?1:e.verbose,{callbackList:m,history:f}=tb(c,p,e.epochs,null,null,WZ(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 I;kR(e.validationData)?I=we(await r.evaluateDataset(e.validationData,{batches:e.validationBatches})):I=we(r.evaluate(s,i,{batchSize:e.validationBatchSize==null?VZ:e.validationBatchSize,verbose:0}));for(let N=0;N0)throw new kt(\"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=UZ(t)?t:await t.iterator(),a=0,u=0;for(;!n||u{if(l.value){let{xs:c,ys:p}=TR(r,l.value),m=c.concat(p),f=B(()=>o(m));if(Tt(m),u===0)for(let h=0;hY(s[h],$(d,g))),u>0&&Tt(x)}Tt(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 rf(r,t,e){return r==null?[null]:Array.isArray(r)?r.map(n=>Tl(n,t,e-t)):Tl(r,t,e-t)}function cb(r,t){return B(()=>r==null?null:Array.isArray(r)?r.map(e=>cb(e,t)):Wy(r,t.dtype===\"int32\"?t:Q(t,\"int32\")))}function pb(r,t){let e=[],n=0,o=null;for(;n=r&&(o=r),e.push([n,o]),n=o;return e}function HN(r){let t=[];r instanceof Ot&&(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 Ot)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 HZ(r){return r instanceof Ot}function qN(r){return Array.isArray(r)}function AR(r){return!HZ(r)&&!qN(r)}function DR(r,t,e,n=!0,o=\"\"){if(t==null||t.length===0){if(r!=null){let i=!1;if(qN(r)&&r.length>0)i=!0;else if(AR(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(AR(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(qN(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=HN(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 qZ(r,t,e){let n=$o(r.map(s=>s.shape[0]));n.sort();let o=$o(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 KZ(r,t,e){let n=[wa,tf,Yc];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 XZ=\"layers-model\",jn=class extends Kn{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).\");CR(this,t,e,n)}compile(t){if(t.loss==null&&(t.loss=[]),this.loss=t.loss,typeof t.optimizer==\"string\")this.optimizer_=IR(t.optimizer),this.isOptimizerOwned=!0;else{if(!(t.optimizer instanceof Kr))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(eb(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=>eb(a))}else{let i=eb(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=jZ(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])};hi(\"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]===tf?[\"accuracy\",\"acc\"].indexOf(d)!==-1?m=Ph:[\"crossentropy\",\"ce\"].indexOf(d)!==-1&&(m=nb):this.lossFunctions[i]===Qm?[\"accuracy\",\"acc\"].indexOf(d)!==-1?m=ob:[\"crossentropy\",\"ce\"].indexOf(d)!==-1&&(m=GN):[\"accuracy\",\"acc\"].indexOf(d)!==-1?m=Mh:[\"crossentropy\",\"ce\"].indexOf(d)!==-1&&(m=Lh);let x;[\"accuracy\",\"acc\"].indexOf(d)!==-1?x=\"acc\":[\"crossentropy\",\"ce\"].indexOf(d)!==-1&&(x=\"ce\"),f=m,p=c+x}else f=bR(d),p=c+zh(d);let h;hi(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;ub(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{Po(i[0],t),Po(i[1],e)}}async evaluateDataset(t,e){return this.makeTestFunction(),ER(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 Oo;if(t instanceof Ot&&(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 kt(\"Verbose predictLoop() is not implemented yet.\");let s=pb(o,e),i=this.outputs.map(a=>[]);for(let a=0;a{let l=s[a][0],c=s[a][1],p=rf(t,l,c),m=[];if(Array.isArray(p))for(let d=0;di[c].push(l));return Tr(i.map(a=>ie(a,0)))})}predict(t,e={}){let n=HN(t);$R(n,this.inputNames,this.feedInputShapes,!1);try{let o=e.batchSize==null?32:e.batchSize;return ub(o),this.predictLoop(n,o)}finally{Po(n,t)}}predictOnBatch(t){$R(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 Xr(\"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=ab(o,this.outputNames);l=[];for(let p=0;p{let i=this.checkNumSamples(e,n,s,\"steps\"),a=[];if(o>0)throw new kt(\"Verbose mode is not implemented yet.\");if(s!=null)throw new kt(\"steps mode in testLoop() is not implemented yet\");{let u=pb(i,n),l=Ke(xn(0,i));for(let c=0;c1){let i=$N(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=Y(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 kt(\"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=rf(o,F,P),i=o,o=rf(o,0,F),p=rf(s,F,P),a=s,s=rf(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(),I=this.getDedupedMetricsNames(),N,E;g?(this.makeTestFunction(),N=this.testFunction,E=I.slice().concat(I.map(F=>\"val_\"+F))):(N=null,x=[],E=I.slice());let A=Qy(n.callbacks,n.yieldEvery);return await this.fitLoop(w,b,I,f,n.epochs,n.verbose,A,N,x,n.shuffle,E,n.initialEpoch,null,null)}finally{this.isTraining=!1,Po(o,t),Po(s,e),Po(i,t),Po(a,e),Po(c,u),Po(p,l),m!=null&&Tt(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=xn(0,g)),i==null&&(i=1);let{callbackList:b,history:w}=tb(a,i,s,m,g,f,o,h,p);b.setModel(this),this.history=w,await b.onTrainBegin(),this.stopTraining_=!1;for(let I=m;I{let P=A[D][0],V=A[D][1],G=Tl(E,P,V-P);F.batch=D,F.size=V-P;let W=cb(e,G),q=t(W);for(let H=0;HDo(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]=Do(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[Do(zh(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(t=>Do(zh(t)));{let t={};for(let e in this.metrics)t[e]=Do(zh(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=Zc(t.optimizer_config),n=Cn(e),o;if(typeof t.loss==\"string\")o=kl(t.loss);else if(Array.isArray(t.loss))o=t.loss.map(i=>kl(i));else if(t.loss!=null){o={};for(let i in t.loss)o[i]=kl(t.loss[i])}let s;if(Array.isArray(t.metrics))s=t.metrics.map(i=>kl(i));else if(t.metrics!=null){s={};for(let i in t.metrics)s[i]=kl(t.metrics[i])}this.compile({loss:o,metrics:s,optimizer:n})}async save(t,e){if(typeof t==\"string\"){let l=Lr.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 Lr.encodeWeights(this.getNamedWeights(e)),o=!1,s=null,a={modelTopology:this.toJSON(s,o),format:XZ,generatedBy:`TensorFlow.js tfjs-layers v${ef}`,convertedBy:null};if((e==null?!1:e.includeOptimizer)&&this.optimizer!=null){a.trainingConfig=this.getTrainingConfig();let l=\"optimizer\",{data:c,specs:p}=await Lr.encodeWeights(await this.optimizer.getWeights(),l);n.specs.push(...p),n.data=Lr.concatenateArrayBuffers([n.data,c])}return this.userDefinedMetadata!=null&&(UN(this.userDefinedMetadata,this.name,!0),a.userDefinedMetadata=this.userDefinedMetadata),a.weightData=n.data,a.weightSpecs=n.specs,t.save(a)}setUserDefinedMetadata(t){UN(t,this.name),this.userDefinedMetadata=t}getUserDefinedMetadata(){return this.userDefinedMetadata}};jn.className=\"Model\";J.registerClass(jn);var mb=class extends jn{};mb.className=\"Functional\";J.registerClass(mb);async function RR(r,t){\"modelTopology\"in r||(r={modelTopology:r}),r=r;let e=r.modelTopology;e.model_config!=null&&(e=e.model_config);let n=Zc(e),o=Cn(n,t);if(r.weightsManifest!=null){let s=await Lr.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),Tt(s)}return o}async function FR(r,t){if(t==null&&(t={}),typeof r==\"string\"){let e=Lr.getLoadHandlers(r,t);if(e.length===0)e.push(Lr.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 YZ(r,void 0,t)}async function YZ(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=Cn(Zc(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}=ZZ(n.weightData,n.weightSpecs);a.loadWeights(l,s),a.optimizer!=null&&c.length>0&&await a.optimizer.setWeights(c),Tt(l),Tt(c.map(p=>p.tensor))}return a}function ZZ(r,t){let e=Lr.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 Ia=class extends jn{constructor(t){if(super({inputs:[],outputs:[]}),t=t||{},this.trainable=!0,this.built=!1,this.name=t.name!=null?t.name:zu(\"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 Ia||t instanceof jn,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=qy({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=LN(this.outputs[0])}this.inboundNodes=[],new El({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:Ao(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(Gt(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 jn({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 Xr(\"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 Xr(\"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 Xr(\"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 Xr(\"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 Ia))throw new kt(`Sequential.fromConfig called on non-Sequential input: ${a}`);for(let u of s){let c=Cn(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}}};Ia.className=\"Sequential\";J.registerClass(Ia);function JZ(r){return new jn(r)}function QZ(r){return new Ia(r)}function KN(r){return qy(r)}function tJ(r,t){In.registerCallbackConstructor(r,t)}var on=class extends J.Serializable{getConfig(){return{}}},fb=class extends on{apply(t,e=1){return tR(t,e)}};fb.className=\"elu\";J.registerClass(fb);var db=class extends on{apply(t){return Im(t)}};db.className=\"selu\";J.registerClass(db);var hb=class extends on{apply(t){return Mr(t)}};hb.className=\"relu\";J.registerClass(hb);var gb=class extends on{apply(t){return B(()=>mo(6,Mr(t)))}};gb.className=\"relu6\";J.registerClass(gb);var xb=class extends on{apply(t){return t}};xb.className=\"linear\";J.registerClass(xb);var yb=class extends on{apply(t){return en(t)}};yb.className=\"sigmoid\";J.registerClass(yb);var bb=class extends on{apply(t){return rR(t)}};bb.className=\"hardSigmoid\";J.registerClass(bb);var wb=class extends on{apply(t){return pi(t)}};wb.className=\"softplus\";J.registerClass(wb);var Ib=class extends on{apply(t){return eR(t)}};Ib.className=\"softsign\";J.registerClass(Ib);var Cb=class extends on{apply(t){return ia(t)}};Cb.className=\"tanh\";J.registerClass(Cb);var nf=class extends on{apply(t,e=-1){return Fu(t,e)}};nf.className=\"softmax\";J.registerClass(nf);var vb=class extends on{apply(t,e=-1){return hm(t,e)}};vb.className=\"logSoftmax\";J.registerClass(vb);var Sb=class extends on{apply(t,e=1){return B(()=>$(en($(t,e)),t))}};Sb.className=\"swish\";J.registerClass(Sb);var Nb=class extends on{apply(t){return B(()=>$(t,ia(pi(t))))}};Nb.className=\"mish\";J.registerClass(Nb);function yi(r){return r.getClassName()}function jN(r,t={}){return xa(r,J.SerializationMap.getMap().classNameMap,t,\"activation\")}function bi(r){if(r==null){let t={};return t.className=\"linear\",t.config={},jN(t)}if(typeof r==\"string\"){let t={};return t.className=r,t.config={},jN(t)}else return r instanceof on?r:jN(r)}function XN(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 kb=class extends J.Serializable{},Wu=class extends kb{constructor(t){super(),XN(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=Te([1]);return this.hasL1&&(e=Y(e,pt($(this.l1,Ee(t))))),this.hasL2&&(e=Y(e,pt($(this.l2,Vc(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\";J.registerClass(Wu);function MR(r){return XN(r),new Wu({l1:r!=null?r.l1:null,l2:0})}function LR(r){return XN(r),new Wu({l2:r!=null?r.l2:null,l1:0})}var OR={l1l2:\"L1L2\"};function me(r){return Fm(r)}function PR(r,t={}){return xa(r,J.SerializationMap.getMap().classNameMap,t,\"regularizer\")}function Ce(r){if(r==null)return null;if(typeof r==\"string\"){let e={className:r in OR?OR[r]:r,config:{}};return PR(e)}else return r instanceof kb?r:PR(r)}var of=class extends _t{constructor(t){super(t==null?{}:t),this.supportsMasking=!0,t!=null&&(this.maxValue=t.maxValue)}call(t,e){t=St(t);let n=Mr(t);return this.maxValue!=null&&(n=Sr(n,0,this.maxValue)),n}computeOutputShape(t){return t}getConfig(){let t={maxValue:this.maxValue},e=super.getConfig();return Object.assign(t,e),t}};of.className=\"ReLU\";J.registerClass(of);var sf=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=St(t);return _u(n,this.alpha)}computeOutputShape(t){return t}getConfig(){let t={alpha:this.alpha},e=super.getConfig();return Object.assign(t,e),t}};sf.className=\"LeakyReLU\";J.registerClass(sf);var af=class extends _t{constructor(t){if(super(t==null?{}:t),this.DEFAULT_ALPHA_INITIALIZER=\"zeros\",t==null&&(t={}),this.supportsMasking=!0,this.alphaInitializer=he(t.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=Ce(t.alphaRegularizer),this.alphaConstraint=Ve(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=Gt(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(Oe(t),t===\"channelsFirst\"?Vt(r,[0,2,3,1]):r))}function YN(r,t){return B(()=>(Oe(t),t===\"channelsFirst\"?Vt(r,[0,2,3,4,1]):r))}function rJ(r,t,e,n=1,o=\"valid\",s,i=1){return B(()=>{if(s==null&&(s=yn()),Oe(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=Vt(r,[0,2,1])),o===\"causal\")throw new kt(\"The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.\");let a=cm(r,t,n,o===\"same\"?\"same\":\"valid\",\"NWC\",i);return e!=null&&(a=bn(a,e)),a})}function zR(r,t,e,n=[1,1],o=\"valid\",s,i,a=null){return B(()=>{if(s==null&&(s=yn()),Oe(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=Bh(r,s);if(o===\"causal\")throw new kt(\"The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.\");return u=Lu.conv2d({x:u,filter:t,strides:n,pad:o===\"same\"?\"same\":\"valid\",dilations:i,dataFormat:\"NHWC\",bias:e,activation:a}),s===\"channelsFirst\"&&(u=Vt(u,[0,3,1,2])),u})}function nJ(r,t,e,n=[1,1,1],o=\"valid\",s,i){return B(()=>{if(s==null&&(s=yn()),Oe(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=YN(r,s);if(o===\"causal\")throw new kt(\"The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.\");return a=Rx(a,t,n,o===\"same\"?\"same\":\"valid\",\"NDHWC\",i),e!=null&&(a=bn(a,e)),s===\"channelsFirst\"&&(a=Vt(a,[0,4,1,2,3])),a})}var Jc=class extends _t{constructor(t,e){if(super(e),this.bias=null,this.DEFAULT_KERNEL_INITIALIZER=\"glorotNormal\",this.DEFAULT_BIAS_INITIALIZER=\"zeros\",Jc.verifyArgs(e),this.rank=t,Qe(this.rank,\"rank\"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new kt(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=Uu(e.kernelSize,t,\"kernelSize\"),this.strides=Uu(e.strides==null?1:e.strides,t,\"strides\"),this.padding=e.padding==null?\"valid\":e.padding,gn(this.padding),this.dataFormat=e.dataFormat==null?\"channelsLast\":e.dataFormat,Oe(this.dataFormat),this.activation=bi(e.activation),this.useBias=e.useBias==null?!0:e.useBias,this.biasInitializer=he(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=Ve(e.biasConstraint),this.biasRegularizer=Ce(e.biasRegularizer),this.activityRegularizer=Ce(e.activityRegularizer),this.dilationRate=Uu(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(fo(\"kernelSize\"in t,\"required key 'kernelSize' not in config\"),typeof t.kernelSize!=\"number\"&&!Oy(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:yi(this.activation),useBias:this.useBias,biasInitializer:_e(this.biasInitializer),biasRegularizer:me(this.biasRegularizer),activityRegularizer:me(this.activityRegularizer),biasConstraint:Be(this.biasConstraint)},e=super.getConfig();return Object.assign(t,e),t}},Hu=class extends Jc{constructor(t,e){super(t,e),this.kernel=null,Hu.verifyArgs(e),this.filters=e.filters,Qe(this.filters,\"filters\"),this.kernelInitializer=he(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=Ve(e.kernelConstraint),this.kernelRegularizer=Ce(e.kernelRegularizer)}build(t){t=Gt(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=Py(this.activation.getClassName());if(s!=null&&this.rank===2)n=zR(t,this.kernel.read(),o,this.strides,this.padding,this.dataFormat,this.dilationRate,s);else{if(this.rank===1)n=rJ(t,this.kernel.read(),o,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)n=zR(t,this.kernel.read(),o,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)n=nJ(t,this.kernel.read(),o,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new kt(\"convolutions greater than 3D are not implemented yet.\");this.activation!=null&&(n=this.activation.apply(n))}return n})}computeOutputShape(t){t=Gt(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)}`)}},Dl=class extends Hu{constructor(t){super(2,t),Dl.verifyArgs(t)}getConfig(){let t=super.getConfig();return delete t.rank,t}static verifyArgs(t){if(typeof t.kernelSize!=\"number\"&&!Oy(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)}.`)}};Dl.className=\"Conv2D\";J.registerClass(Dl);var $l=class extends Hu{constructor(t){super(3,t),$l.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)}.`)}};$l.className=\"Conv3D\";J.registerClass($l);var pf=class extends Dl{constructor(t){if(super(t),this.inputSpec=[new Ie({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=Gt(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 Ie({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=wi(u,m,c,this.padding),h=wi(l,f,p,this.padding),g=[s,d,h,this.filters];this.dataFormat!==\"channelsLast\"&&(n=Vt(n,[0,2,3,1]));let x=mm(n,this.kernel.read(),g,this.strides,this.padding);return this.dataFormat!==\"channelsLast\"&&(x=Vt(x,[0,3,1,2])),this.bias!=null&&(x=bn(x,this.bias.read(),this.dataFormat)),this.activation!=null&&(x=this.activation.apply(x)),x})}computeOutputShape(t){t=Gt(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]=wi(e[o],u,i,this.padding),e[s]=wi(e[s],l,a,this.padding),e}getConfig(){let t=super.getConfig();return delete t.dilationRate,t}};pf.className=\"Conv2DTranspose\";J.registerClass(pf);var mf=class extends $l{constructor(t){if(super(t),this.inputSpec=[new Ie({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=Gt(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 Ie({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=wi(l,h,m,this.padding),w=wi(c,g,f,this.padding),I=wi(p,x,d,this.padding),N=[s,b,w,I,this.filters];this.dataFormat!==\"channelsLast\"&&(n=Vt(n,[0,2,3,4,1]));let E=Ox(n,this.kernel.read(),N,this.strides,this.padding);return this.dataFormat!==\"channelsLast\"&&(E=Vt(E,[0,4,1,2,3])),this.bias!==null&&(E=bn(E,this.bias.read(),this.dataFormat)),this.activation!==null&&(E=this.activation.apply(E)),E})}computeOutputShape(t){t=Gt(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]=wi(e[o],c,a,this.padding),e[s]=wi(e[s],p,u,this.padding),e[i]=wi(e[i],m,l,this.padding),e}getConfig(){let t=super.getConfig();return delete t.dilationRate,t}};mf.className=\"Conv3DTranspose\";J.registerClass(mf);var Tb=class extends Hu{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=he(e.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=Ce(e.depthwiseRegularizer),this.depthwiseConstraint=Ve(e.depthwiseConstraint),this.pointwiseInitializer=he(e.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=Ce(e.pointwiseRegularizer),this.pointwiseConstraint=Ve(e.pointwiseConstraint)}build(t){if(t=Gt(t),t.length{t=St(t);let n;if(this.rank===1)throw new kt(\"1D separable convolution is not implemented yet.\");return this.rank===2&&(this.dataFormat===\"channelsFirst\"&&(t=Vt(t,[0,2,3,1])),n=Cm(t,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,\"NHWC\")),this.useBias&&(n=bn(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),this.dataFormat===\"channelsFirst\"&&(n=Vt(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=_e(this.depthwiseInitializer),t.pointwiseInitializer=_e(this.pointwiseInitializer),t.depthwiseRegularizer=me(this.depthwiseRegularizer),t.pointwiseRegularizer=me(this.pointwiseRegularizer),t.depthwiseConstraint=Be(this.depthwiseConstraint),t.pointwiseConstraint=Be(this.pointwiseConstraint),t}};Tb.className=\"SeparableConv\";var ff=class extends Tb{constructor(t){super(2,t)}};ff.className=\"SeparableConv2D\";J.registerClass(ff);var qu=class extends Hu{constructor(t){super(1,t),qu.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\"&&!Oy(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)}.`)}};qu.className=\"Conv1D\";J.registerClass(qu);var df=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=St(t),this.dataFormat===\"channelsLast\"){let n=Ah(t,this.cropping[0][0],t.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return Ah(n,this.cropping[1][0],t.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{let n=Ah(t,this.cropping[0][0],t.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return Ah(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}};df.className=\"Cropping2D\";J.registerClass(df);var hf=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,Oe(this.dataFormat),this.interpolation=t.interpolation==null?\"nearest\":t.interpolation,j$(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=Vt(n,[0,2,3,1]);let s=this.size[0]*o[2],i=this.size[1]*o[3],a=this.interpolation===\"nearest\"?hn.resizeNearestNeighbor(n,[s,i]):hn.resizeBilinear(n,[s,i]);return Vt(a,[0,3,1,2])}else{let s=this.size[0]*o[1],i=this.size[1]*o[2];return this.interpolation===\"nearest\"?hn.resizeNearestNeighbor(n,[s,i]):hn.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}};hf.className=\"UpSampling2D\";J.registerClass(hf);function oJ(r,t,e=[1,1],n=\"valid\",o,s){return B(()=>{o==null&&(o=yn()),Oe(o);let i=Bh(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=ua(i,t,e,n===\"same\"?\"same\":\"valid\",\"NHWC\",s),o===\"channelsFirst\"&&(i=Vt(i,[0,3,1,2])),i})}var gf=class extends Jc{constructor(t){super(2,t),this.depthwiseKernel=null,this.depthMultiplier=t.depthMultiplier==null?1:t.depthMultiplier,this.depthwiseInitializer=he(t.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=Ve(t.depthwiseConstraint),this.depthwiseRegularizer=Ce(t.depthwiseRegularizer)}build(t){if(t=Gt(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=oJ(t,this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(n=bn(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),n})}computeOutputShape(t){t=Gt(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=An(e,this.kernelSize[0],this.padding,this.strides[0]),i=An(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=_e(this.depthwiseInitializer),t.depthwiseRegularizer=me(this.depthwiseRegularizer),t.depthwiseConstraint=Be(this.depthwiseRegularizer),t}};gf.className=\"DepthwiseConv2D\";J.registerClass(gf);function ZN(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 JN(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(xn(2,u));if(t=Vt(t,l),s!=null)throw new kt(\"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=Q(Q(o,\"bool\"),\"float32\"),o.rank===u-1&&(o=ar(o,-1)),o=Vt(o,l)),n&&(t=hr(t,0),o!=null&&(o=hr(o,0)));let c=[],p,m=e,f=t.shape[0],d=xr(t),h;o!=null&&(h=xr(o));for(let x=0;xr(b,m));if(o==null)p=w[0],m=w[1];else{let I=B(()=>{let N=h[x],E=lt(Ir(N),N),A=Y($(w[0],N),$(m[0],E)),D=m.map((F,P)=>Y($(w[1][P],N),$(F,E)));return{output:A,newStates:D}});p=I.output,m=I.newStates}a&&c.push(p)}let g;return a&&(g=qe(c,1)),[p,g,m]})}var Dn=class extends _t{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 ep({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 Ie({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 xn(0,t).map(e=>null)}else return this.states_}setStates(t){this.states_=t}computeOutputShape(t){Hy(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 Ie({shape:[null,a]}));this.stateful&&this.resetStates()}resetStates(t,e=!1){B(()=>{if(!this.stateful)throw new En(\"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=>Te([n,o])):this.states_=[Te([n,this.cell.stateSize])];else if(t==null)Tt(this.states_),this.keptStates!=null&&(Tt(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(o=>Te([n,o])):this.states_[0]=Te([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()):Tt(this.states_);for(let o=0;o$e(o.clone()))})}apply(t,e){let n=e==null?null:e.initialState,o=e==null?null:e.constants;e==null&&(e={});let s=ZN(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 Ie({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 nn){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=JN((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=Te(t.shape);return e=pt(e,[1,2]),e=_l(e),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(n=>n>1?Gy(e,[1,n]):e):this.cell.stateSize>1?[Gy(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()===Dn.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=Cn(o,n);return new t(Object.assign(e,{cell:s}))}};Dn.className=\"RNN\";J.registerClass(Dn);var Rl=class extends _t{},Qc=class extends Rl{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=bi(t.activation==null?this.DEFAULT_ACTIVATION:t.activation),this.useBias=t.useBias==null?!0:t.useBias,this.kernelInitializer=he(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=he(t.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=he(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Ce(t.kernelRegularizer),this.recurrentRegularizer=Ce(t.recurrentRegularizer),this.biasRegularizer=Ce(t.biasRegularizer),this.kernelConstraint=Ve(t.kernelConstraint),this.recurrentConstraint=Ve(t.recurrentConstraint),this.biasConstraint=Ve(t.biasConstraint),this.dropout=Bc([1,gi([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=Bc([1,gi([0,t.recurrentDropout==null?0:t.recurrentDropout])]),this.dropoutFunc=t.dropoutFunc,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(t){t=Gt(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;0Ir(t),rate:this.dropout,training:o,dropoutFunc:this.dropoutFunc})),0Ir(n),rate:this.recurrentDropout,training:o,dropoutFunc:this.dropoutFunc}));let s,i=this.dropoutMask,a=this.recurrentDropoutMask;i!=null?s=Fo($(t,i),this.kernel.read()):s=Fo(t,this.kernel.read()),this.bias!=null&&(s=bn(s,this.bias.read())),a!=null&&(n=$(n,a));let u=Y(s,Fo(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:yi(this.activation),useBias:this.useBias,kernelInitializer:_e(this.kernelInitializer),recurrentInitializer:_e(this.recurrentInitializer),biasInitializer:_e(this.biasInitializer),kernelRegularizer:me(this.kernelRegularizer),recurrentRegularizer:me(this.recurrentRegularizer),biasRegularizer:me(this.biasRegularizer),activityRegularizer:me(this.activityRegularizer),kernelConstraint:Be(this.kernelConstraint),recurrentConstraint:Be(this.recurrentConstraint),biasConstraint:Be(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign(Object.assign({},t),e)}};Qc.className=\"SimpleRNNCell\";J.registerClass(Qc);var xf=class extends Dn{constructor(t){t.cell=new Qc(t),super(t)}call(t,e){return B(()=>{this.cell.dropoutMask!=null&&(Tt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Tt(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)}};xf.className=\"SimpleRNN\";J.registerClass(xf);var tp=class extends Rl{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=bi(t.activation===void 0?this.DEFAULT_ACTIVATION:t.activation),this.recurrentActivation=bi(t.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:t.recurrentActivation),this.useBias=t.useBias==null?!0:t.useBias,this.kernelInitializer=he(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=he(t.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=he(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Ce(t.kernelRegularizer),this.recurrentRegularizer=Ce(t.recurrentRegularizer),this.biasRegularizer=Ce(t.biasRegularizer),this.kernelConstraint=Ve(t.kernelConstraint),this.recurrentConstraint=Ve(t.recurrentConstraint),this.biasConstraint=Ve(t.biasConstraint),this.dropout=Bc([1,gi([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=Bc([1,gi([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=Gt(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],0Ir(t),rate:this.dropout,training:n,count:3,dropoutFunc:this.dropoutFunc})),0Ir(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&&(Tt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Tt(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)}};yf.className=\"GRU\";J.registerClass(yf);var Fl=class extends Rl{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=bi(t.activation===void 0?this.DEFAULT_ACTIVATION:t.activation),this.recurrentActivation=bi(t.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:t.recurrentActivation),this.useBias=t.useBias==null?!0:t.useBias,this.kernelInitializer=he(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=he(t.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=he(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=t.unitForgetBias,this.kernelRegularizer=Ce(t.kernelRegularizer),this.recurrentRegularizer=Ce(t.recurrentRegularizer),this.biasRegularizer=Ce(t.biasRegularizer),this.kernelConstraint=Ve(t.kernelConstraint),this.recurrentConstraint=Ve(t.recurrentConstraint),this.biasConstraint=Ve(t.biasConstraint),this.dropout=Bc([1,gi([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=Bc([1,gi([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=Gt(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 wn{apply(u,l){let c=s.apply([i]),p=new Vu().apply([i]),m=s.apply([i*2]);return MN(MN(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],0Ir(t),rate:this.dropout,training:n,count:4,dropoutFunc:this.dropoutFunc})),0Ir(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&&(Tt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Tt(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)}};bf.className=\"LSTM\";J.registerClass(bf);var ep=class extends Rl{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{hi(`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(Cn(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 $h(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):Uy(t(),e),a=()=>Bu(i,t,n);return!o||o<=1?$e(a().clone()):Array(o).fill(void 0).map(a).map(l=>$e(l.clone()))}var sJ=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&&(Tt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Tt(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=Te(s);return Array.isArray(e)?Array(e.length).fill(i):[i]})}resetStates(t,e=!1){B(()=>{if(!this.stateful)throw new En(\"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(()=>Te(s)):this.states_=[Te(s)];else if(t==null)Tt(this.states_),this.keptStates!=null&&(Tt(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>Te(s)):this.states_[0]=Te(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()):Tt(this.states_);for(let a=0;a$e(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=An(l,o[0],s,i[0],a[0]),m=An(c,o[1],s,i[1],a[1]);return[...t.slice(0,2),...u?[n,p,m]:[p,m,n]]}};_b.className=\"ConvRNN2D\";var rp=class extends Fl{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=Uu(n,2,\"kernelSize\"),this.kernelSize.forEach(u=>Qe(u,\"kernelSize\")),this.strides=Uu(o||1,2,\"strides\"),this.strides.forEach(u=>Qe(u,\"strides\")),this.padding=s||\"valid\",gn(this.padding),this.dataFormat=i||\"channelsLast\",Oe(this.dataFormat),this.dilationRate=Uu(a||1,2,\"dilationRate\"),this.dilationRate.forEach(u=>Qe(u,\"dilationRate\"))}build(t){var e;t=Gt(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 wn{apply(m,f){let d=l.apply([c]),h=dr([c]),g=l.apply([c*2]);return Pm([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;0Ir(o),rate:this.dropout,training:n,count:a,dropoutFunc:this.dropoutFunc}));let u=this.dropoutMask,l=(nt,st,at)=>!st||!st[at]?nt:$(st[at],nt),c=l(o,u,0),p=l(o,u,1),m=l(o,u,2),f=l(o,u,3);0Ir(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,[I,N,E,A]=gr(this.kernel.read(),a,w),[D,F,P,V]=this.useBias?gr(this.bias.read(),a):[null,null,null,null];c=this.inputConv(c,I,D,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]=gr(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 K=this.recurrentActivation.apply(Y(c,h)),X=this.recurrentActivation.apply(Y(p,g)),Z=Y($(X,i),$(K,this.activation.apply(Y(m,x)))),et=$(this.recurrentActivation.apply(Y(f,b)),this.activation.apply(Z));return[et,et,Z]})}getConfig(){let t=super.getConfig(),{units:e}=t,n=sJ(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=Tn(t,e,this.strides,o||\"valid\",this.dataFormat===\"channelsFirst\"?\"NCHW\":\"NHWC\",this.dilationRate);return n?bn(s,n,this.dataFormat):s}recurrentConv(t,e){return Tn(t,e,1,\"same\",this.dataFormat===\"channelsFirst\"?\"NCHW\":\"NHWC\")}};rp.className=\"ConvLSTM2DCell\";J.registerClass(rp);var wf=class extends _b{constructor(t){let e=new rp(t);super(Object.assign(Object.assign({},t),{cell:e}))}static fromConfig(t,e){return new t(e)}};wf.className=\"ConvLSTM2D\";J.registerClass(wf);var np=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=St(t);if(0Uy(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()}};np.className=\"Dropout\";J.registerClass(np);var If=class extends np{constructor(t){super(t),this.inputSpec=[{ndim:3}]}getNoiseShape(t){let e=t.shape;return[e[0],1,e[2]]}};If.className=\"SpatialDropout1D\";J.registerClass(If);var Cf=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,Qe(this.units,\"units\"),this.activation=bi(t.activation),t.useBias!=null&&(this.useBias=t.useBias),this.kernelInitializer=he(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=he(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=Ve(t.kernelConstraint),this.biasConstraint=Ve(t.biasConstraint),this.kernelRegularizer=Ce(t.kernelRegularizer),this.biasRegularizer=Ce(t.biasRegularizer),this.activityRegularizer=Ce(t.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(t){t=Gt(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=Gt(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=Py(this.activation.getClassName()),s;return o!=null?s=Fo(n,this.kernel.read(),o,this.bias?this.bias.read():null):(s=Fo(n,this.kernel.read()),this.bias!=null&&(s=bn(s,this.bias.read())),this.activation!=null&&(s=this.activation.apply(s))),s})}getConfig(){let t={units:this.units,activation:yi(this.activation),useBias:this.useBias,kernelInitializer:_e(this.kernelInitializer),biasInitializer:_e(this.biasInitializer),kernelRegularizer:me(this.kernelRegularizer),biasRegularizer:me(this.biasRegularizer),activityRegularizer:me(this.activityRegularizer),kernelConstraint:Be(this.kernelConstraint),biasConstraint:Be(this.biasConstraint)},e=super.getConfig();return Object.assign(t,e),t}};Cf.className=\"Dense\";J.registerClass(Cf);var vf=class extends _t{constructor(t){t=t||{},super(t),this.inputSpec=[{minNDim:3}],this.dataFormat=t.dataFormat}computeOutputShape(t){t=Gt(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],Ro(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:yi(this.activation)},e=super.getConfig();return Object.assign(t,e),t}};Sf.className=\"Activation\";J.registerClass(Sf);var Nf=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=St(t),Z$(t,this.n)))}getConfig(){let t={n:this.n},e=super.getConfig();return Object.assign(t,e),t}};Nf.className=\"RepeatVector\";J.registerClass(Nf);var kf=class extends _t{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}};kf.className=\"Reshape\";J.registerClass(kf);var Tf=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=xn(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 Ie({ndim:this.dims.length+1})]}computeOutputShape(t){t=Gt(t);let e=t.slice();return this.dims.forEach((n,o)=>{e[o+1]=t[n]}),e}call(t,e){return Vt(St(t),this.dimsIncludingBatch)}getConfig(){let t={dims:this.dims},e=super.getConfig();return Object.assign(t,e),t}};Tf.className=\"Permute\";J.registerClass(Tf);var _f=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=St(t),o=-1;return bc(mi(n,this.maskValue),o)}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=St(t),o=-1,s=!0,i=bc(mi(n,this.maskValue),o,s);return $(n,Q(i,n.dtype))})}};_f.className=\"Masking\";J.registerClass(_f);var Ef=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(we(t.inputLength))}this.inputDim=t.inputDim,Qe(this.inputDim,\"inputDim\"),this.outputDim=t.outputDim,Qe(this.outputDim,\"outputDim\"),this.embeddingsInitializer=he(t.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=Ce(t.embeddingsRegularizer),this.activityRegularizer=Ce(t.activityRegularizer),this.embeddingsConstraint=Ve(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),mi(t,vt(t))):null)}computeOutputShape(t){if(t=Gt(t),this.inputLength==null)return[...t,this.outputDim];let e=we(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=rn(n,\"int32\"));let o=Wy(this.embeddings.read(),R(n,[n.size]));return R(o,Gt(this.computeOutputShape(n.shape)))})}getConfig(){let t={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:_e(this.embeddingsInitializer),embeddingsRegularizer:me(this.embeddingsRegularizer),activityRegularizer:me(this.activityRegularizer),embeddingsConstraint:Be(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},e=super.getConfig();return Object.assign(t,e),t}};Ef.className=\"Embedding\";J.registerClass(Ef);var Pl=class extends _t{constructor(t){super(t||{}),this.supportsMasking=!0}mergeFunction(t){throw new kt}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&&$o(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=gi(o);for(let i of t){let a=i.rank;for(let u=0;u1){let c=xn(1,l).concat([0]);n.push(Vt(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(Vt(R(i,[-1,c]),[1,0]),p)}else if(a>1){let u=[a-1].concat(xn(0,a-1));i=Vt(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:ar(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(()=>Pm(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 kt(\"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 kt(\"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 kt(\"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)=>Vh(s,t[i].shape.length)):o=[Vh(this.axes,e.shape.length),Vh(this.axes,n.shape.length)],this.normalize&&(e=Rh(e,o[0]),n=Rh(n,o[1])),iJ(e,n,o)}interpretAxes(t,e){let n;return Array.isArray(this.axes)?n=this.axes:n=[Vh(this.axes,t.length),Vh(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 kt(\"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}};Pf.className=\"Dot\";J.registerClass(Pf);var Mf=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=St(t);return Bu(()=>Y(Mm(n.shape,0,this.stddev),n),()=>n,e.training||!1)})}};Mf.className=\"GaussianNoise\";J.registerClass(Mf);var Lf=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=St(t);return this.rate>0&&this.rate<1?Bu(()=>{let s=Math.sqrt(this.rate/(1-this.rate));return $(n,Mm(n.shape,1,s))},()=>n,e.training||!1):n})}};Lf.className=\"GaussianDropout\";J.registerClass(Lf);var zf=class extends _t{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=mn(Hn(n),this.rate);l=rn(l,\"float32\");let c=((1-this.rate)*(1+this.rate*u**2))**-.5,p=-c*u*this.rate,m=Y($(s,l),$(Y(l,-1),u));return Y($(m,c),p)},()=>St(t),e.training||!1)}return t})}};zf.className=\"AlphaDropout\";J.registerClass(zf);function Gh(r,t,e,n,o,s=.001){let i;if(r.rank===2)i=Sx(r,t,e,n,o,s);else if(r.rank===3)i=Nx(r,t,e,n,o,s);else if(r.rank===4)i=kx(r,t,e,n,o,s);else throw new kt(`batchNormalization is not implemented for array of rank ${r.rank} yet`);return i}function aJ(r,t,e,n,o=.001){return B(()=>{let s=vc(r,n),i=s.mean,a=s.variance;return[Gh(r,i,a,e,t,o),i,a]})}function lJ(r,t,e,n,o=.001){return B(()=>{let s=vc(r,n),i=s.mean,a=s.variance,u=[];for(let d of xn(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[Gh(r,l,c,m,p,o),i,a]})}function uJ(r,t,e,n,o=.001){return y.arraysEqual(n.slice().sort(),xn(0,r.rank-1))?aJ(r,t,e,n,o):lJ(r,t,e,n,o)}var Bf=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=he(t.betaInitializer||\"zeros\"),this.gammaInitializer=he(t.gammaInitializer||\"ones\"),this.movingMeanInitializer=he(t.movingMeanInitializer||\"zeros\"),this.movingVarianceInitializer=he(t.movingVarianceInitializer||\"ones\"),this.betaConstraint=Ve(t.betaConstraint),this.gammaConstraint=Ve(t.gammaConstraint),this.betaRegularizer=Ce(t.betaRegularizer),this.gammaRegularizer=Ce(t.gammaRegularizer)}build(t){t=Gt(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 Ie({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=xn(0,i),u=this.axis>=0?this.axis:this.axis+i;a.splice(u,1);let l=Ao(1,i);l[u]=s[u];let c=a.slice();c.sort();let p=!y.arraysEqual(c,xn(0,i).slice(0,i-1)),m=()=>{if(p){let b=R(this.movingMean.read(),l),w=R(this.movingVariance.read(),l),I=this.center?R(this.beta.read(),l):null,N=this.scale?R(this.gamma.read(),l):null;return Gh(o,b,w,I,N,this.epsilon)}else return Gh(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]=uJ(o,this.gamma.read(),this.beta.read(),a,this.epsilon),g=(b,w,I)=>{B(()=>{let N=1-I,E=b.read(),A=$(lt(E,w),N);b.write(lt(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:_e(this.betaInitializer),gammaInitializer:_e(this.gammaInitializer),movingMeanInitializer:_e(this.movingMeanInitializer),movingVarianceInitializer:_e(this.movingVarianceInitializer),betaRegularizer:me(this.betaRegularizer),gammaRegularizer:me(this.gammaRegularizer),betaConstraint:Be(this.betaConstraint),gammaConstraint:Be(this.gammaConstraint)},e=super.getConfig();return Object.assign(t,e),t}};Bf.className=\"BatchNormalization\";J.registerClass(Bf);var Vf=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=he(t.betaInitializer||\"zeros\"),this.gammaInitializer=he(t.gammaInitializer||\"ones\"),this.betaRegularizer=Ce(t.betaRegularizer),this.gammaRegularizer=Ce(t.gammaRegularizer),this.supportsMasking=!0}build(t){t=Gt(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!==$o(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}=vc(n,this.axis,!0),l=Ao(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=yn()),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]],dn(r,n)})}var Gf=class extends _t{constructor(t){if(t==null&&(t={}),super(t),this.dataFormat=t.dataFormat==null?yn():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 Ie({ndim:4})]}computeOutputShape(t){t=Gt(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(()=>cJ(St(t),this.padding,this.dataFormat))}getConfig(){let t={padding:this.padding,dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}};Gf.className=\"ZeroPadding2D\";J.registerClass(Gf);function Fb(r,t,e,n,o,s){return B(()=>{Oe(o),RN(s),gn(n),e==null&&(e=[1,1]),n==null&&(n=\"valid\"),o==null&&(o=yn()),s==null&&(s=\"max\"),r=Bh(r,o);let i,a=n===\"same\"?\"same\":\"valid\";return s===\"max\"?i=Du(r,t,e,a):i=Su(r,t,e,a),o===\"channelsFirst\"&&(i=Vt(i,[0,3,1,2])),i})}function BR(r,t,e,n,o,s){return B(()=>{Oe(o),RN(s),gn(n),e==null&&(e=[1,1,1]),n==null&&(n=\"valid\"),o==null&&(o=yn()),s==null&&(s=\"max\"),r=YN(r,o);let i,a=n===\"same\"?\"same\":\"valid\";return s===\"max\"?i=Jx(r,t,e,a):i=vx(r,t,e,a),o===\"channelsFirst\"&&(i=Vt(i,[0,4,1,2,3])),i})}var Eb=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 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,gn(this.padding),this.inputSpec=[new Ie({ndim:3})]}computeOutputShape(t){t=Gt(t);let e=An(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=_l(St(t),2);let n=this.poolingFunction(St(t),[this.poolSize[0],1],[this.strides[0],1],this.padding,\"channelsLast\");return qn(n,[2])})}getConfig(){let t={poolSize:this.poolSize,padding:this.padding,strides:this.strides},e=super.getConfig();return Object.assign(t,e),t}},Wf=class extends Eb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Oe(s),gn(o),Fb(t,e,n,o,s,\"max\")}};Wf.className=\"MaxPooling1D\";J.registerClass(Wf);var Uf=class extends Eb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Oe(s),gn(o),Fb(t,e,n,o,s,\"avg\")}};Uf.className=\"AveragePooling1D\";J.registerClass(Uf);var Ab=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 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,Oe(this.dataFormat),gn(this.padding),this.inputSpec=[new Ie({ndim:4})]}computeOutputShape(t){t=Gt(t);let e=this.dataFormat===\"channelsFirst\"?t[2]:t[1],n=this.dataFormat===\"channelsFirst\"?t[3]:t[2];return e=An(e,this.poolSize[0],this.padding,this.strides[0]),n=An(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}},Hf=class extends Ab{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Oe(s),gn(o),Fb(t,e,n,o,s,\"max\")}};Hf.className=\"MaxPooling2D\";J.registerClass(Hf);var qf=class extends Ab{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Oe(s),gn(o),Fb(t,e,n,o,s,\"avg\")}};qf.className=\"AveragePooling2D\";J.registerClass(qf);var Db=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 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,Oe(this.dataFormat),gn(this.padding),this.inputSpec=[new Ie({ndim:5})]}computeOutputShape(t){t=Gt(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=An(e,this.poolSize[0],this.padding,this.strides[0]),n=An(n,this.poolSize[1],this.padding,this.strides[1]),o=An(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}},Kf=class extends Db{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Oe(s),gn(o),BR(t,e,n,o,s,\"max\")}};Kf.className=\"MaxPooling3D\";J.registerClass(Kf);var jf=class extends Db{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Oe(s),gn(o),BR(t,e,n,o,s,\"avg\")}};jf.className=\"AveragePooling3D\";J.registerClass(jf);var $b=class extends _t{constructor(t){super(t),this.inputSpec=[new Ie({ndim:3})]}computeOutputShape(t){return[t[0],t[2]]}call(t,e){throw new kt}},Xf=class extends $b{constructor(t){super(t||{})}call(t,e){return B(()=>{let n=St(t);return ke(n,1)})}};Xf.className=\"GlobalAveragePooling1D\";J.registerClass(Xf);var Yf=class extends $b{constructor(t){super(t||{})}call(t,e){return B(()=>{let n=St(t);return Nr(n,1)})}};Yf.className=\"GlobalMaxPooling1D\";J.registerClass(Yf);var Rb=class extends _t{constructor(t){super(t),this.dataFormat=t.dataFormat==null?\"channelsLast\":t.dataFormat,Oe(this.dataFormat),this.inputSpec=[new Ie({ndim:4})]}computeOutputShape(t){return t=t,this.dataFormat===\"channelsLast\"?[t[0],t[3]]:[t[0],t[1]]}call(t,e){throw new kt}getConfig(){let t={dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}},Zf=class extends Rb{call(t,e){return B(()=>{let n=St(t);return this.dataFormat===\"channelsLast\"?ke(n,[1,2]):ke(n,[2,3])})}};Zf.className=\"GlobalAveragePooling2D\";J.registerClass(Zf);var Jf=class extends Rb{call(t,e){return B(()=>{let n=St(t);return this.dataFormat===\"channelsLast\"?Nr(n,[1,2]):Nr(n,[2,3])})}};Jf.className=\"GlobalMaxPooling2D\";J.registerClass(Jf);var Ob=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=Cn(o,n);delete e.layer;let i={layer:s};return Object.assign(i,e),new t(i)}},Qf=class extends Ob{constructor(t){super(t),this.supportsMasking=!0}build(t){if(t=Gt(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=Gt(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),JN((i,a)=>[St(this.layer.call(i,e)),[]],t,[],!1,null,null,!1,!0)[1]))}};Qf.className=\"TimeDistributed\";J.registerClass(Qf);function pJ(r){ya(q$,\"BidirectionalMergeMode\",r)}var mJ=\"concat\",td=class extends Ob{constructor(t){super(t);let e=t.layer.getConfig(),n={};n.className=t.layer.getClassName(),n.config=e,this.forwardLayer=Cn(n),e.goBackwards=e.goBackwards!==!0;let o={};if(o.className=t.layer.getClassName(),o.config=e,this.backwardLayer=Cn(o),this.forwardLayer.name=\"forward_\"+this.forwardLayer.name,this.backwardLayer.name=\"backward_\"+this.backwardLayer.name,this.mergeMode=t.mergeMode===void 0?mJ:t.mergeMode,pJ(this.mergeMode),t.weights)throw new kt(\"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=ZN(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 Ie({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 kt(\"Support for constants in Bidirectional layers is not implemented yet.\");let u=i[0]instanceof nn;for(let l of i)if(l instanceof nn!==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=hr(s,1));let a;return this.mergeMode===\"concat\"?a=Pm([o,s]):this.mergeMode===\"sum\"?a=Y(o,s):this.mergeMode===\"ave\"?a=$(.5,Y(o,s)):this.mergeMode===\"mul\"?a=$(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){hi(this.forwardLayer.name,()=>{this.forwardLayer.build(t)}),hi(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=Cn(e.layer);if(delete e.layer,e.numConstants!=null)throw new kt(\"Deserialization of a Bidirectional layer with numConstants present is not supported yet.\");let o=e;return o.layer=n,new t(o)}};td.className=\"Bidirectional\";J.registerClass(td);var ed=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=St(t),t.dtype!==\"float32\"&&(t=rn(t,\"float32\")),Y($(t,this.scale),this.offset)))}};ed.className=\"Rescaling\";J.registerClass(ed);var{resizeBilinear:fJ,cropAndResize:dJ}=hn,rd=class extends _t{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=fJ(t,[e,n]);return rn(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=Gt(t);let e=t.length-3,n=t.length-2;return t[e]=this.height,t[n]=this.width,t}};rd.className=\"CenterCrop\";J.registerClass(rd);function VR(r,t,e,n){let o=St(r);if(o.dtype!==\"int32\"&&(o=rn(o,\"int32\")),t===\"int\")return o;let s=o.shape;if(o.rank===0&&(o=ar(o,-1)),t===\"oneHot\"&&o.shape[o.shape.length-1]!==1&&(o=ar(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=gh(a,n,e,i):u=gh(a,[],e,i),t!==\"tfIdf\")return u;if(n)return $(u,n);throw new z(\"When outputMode is 'tfIdf', weights must be provided.\")}var nd=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=Gt(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=rn(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=Nr(t),s=bl(t),i=Fe(this.numTokens,o).bufferSync().get(0),a=mn(s,0).bufferSync().get(0);if(!(i&&a))throw new z(`Input values must be between 0 < values <= numTokens with numTokens=${this.numTokens}`);return VR(t,this.outputMode,this.numTokens,n)})}};nd.className=\"CategoryEncoding\";J.registerClass(nd);var gJ=[\"bilinear\",\"nearest\"],GR=new Set(gJ),od=class extends _t{constructor(t){if(super(t),this.height=t.height,this.width=t.width,t.interpolation)if(GR.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=!!t.cropToAspectRatio}computeOutputShape(t){t=Gt(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 hn.resizeBilinear(t,n,!this.cropToAspectRatio);if(this.interpolation===\"nearest\")return hn.resizeNearestNeighbor(t,n,!this.cropToAspectRatio);throw new Error(`Interpolation is ${this.interpolation} but only ${[...GR]} are supported`)})}};od.className=\"Resizing\";J.registerClass(od);var Wh=class{constructor(t){this.seed=t}next(){if(this.seed!==void 0)return this.seed++}};Wh.className=\"RandomSeed\";var Uh=class extends _t{constructor(t){super(t),this.randomGenerator=new Wh(t.seed)}getConfig(){let t={seed:this.randomGenerator.seed},e=super.getConfig();return Object.assign(t,e),t}};Uh.className=\"BaseRandomLayer\";var xJ=[\"bilinear\",\"nearest\"],WR=new Set(xJ),sd=class extends Uh{constructor(t){super(t);let{factor:e,interpolation:n=\"bilinear\"}=t;if(this.factor=e,Array.isArray(this.factor)&&this.factor.length===2)this.widthLower=this.factor[0],this.widthUpper=this.factor[1];else if(!Array.isArray(this.factor)&&this.factor>0)this.widthLower=-this.factor,this.widthUpper=this.factor;else throw new z(`Invalid factor: ${this.factor}. Must be positive number or tuple of 2 numbers`);if(this.widthLower<-1||this.widthUpper<-1)throw new z(`factor must have values larger than -1. Got: ${this.factor}`);if(this.widthUpper{let n=St(t);this.imgHeight=n.shape[n.shape.length-3];let o=n.shape[n.shape.length-2];this.widthFactor=Hn([1],1+this.widthLower,1+this.widthUpper,\"float32\",this.randomGenerator.next());let s=this.widthFactor.dataSync()[0]*o;s=Math.round(s);let i=[this.imgHeight,s];switch(this.interpolation){case\"bilinear\":return hn.resizeBilinear(t,i);case\"nearest\":return hn.resizeNearestNeighbor(t,i);default:throw new Error(`Interpolation is ${this.interpolation}\n but only ${[...WR]} are supported`)}})}};sd.className=\"RandomWidth\";J.registerClass(sd);function yJ(r){return new xi(r)}function bJ(r){return new lf(r)}function wJ(r){return new of(r)}function IJ(r){return new sf(r)}function CJ(r){return new af(r)}function vJ(r){return new cf(r)}function SJ(r){return new uf(r)}function NJ(r){return new qu(r)}function kJ(r){return new Dl(r)}function TJ(r){return new pf(r)}function _J(r){return new $l(r)}function EJ(r){return new mf(r)}function AJ(r){return new ff(r)}function DJ(r){return new df(r)}function $J(r){return new hf(r)}function RJ(r){return new gf(r)}function FJ(r){return new Sf(r)}function OJ(r){return new Cf(r)}function PJ(r){return new np(r)}function MJ(r){return new If(r)}function LJ(r){return new vf(r)}function zJ(r){return new Nf(r)}function BJ(r){return new kf(r)}function VJ(r){return new Tf(r)}function GJ(r){return new Ef(r)}function WJ(r){return new Af(r)}function UJ(r){return new $f(r)}function HJ(r){return new Of(r)}function qJ(r){return new Rf(r)}function KJ(r){return new Ff(r)}function jJ(r){return new Df(r)}function XJ(r){return new Pf(r)}function YJ(r){return new Bf(r)}function ZJ(r){return new Vf(r)}function JJ(r){return new Gf(r)}function QN(r){return new Uf(r)}function QJ(r){return QN(r)}function t9(r){return QN(r)}function tk(r){return new qf(r)}function e9(r){return tk(r)}function r9(r){return tk(r)}function ek(r){return new jf(r)}function n9(r){return ek(r)}function o9(r){return ek(r)}function s9(r){return new Xf(r)}function i9(r){return new Zf(r)}function UR(r){return new Yf(r)}function HR(r){return new Jf(r)}function qR(r){return new Wf(r)}function KR(r){return new Hf(r)}function a9(r){return new Kf(r)}function l9(r){return new yf(r)}function u9(r){return new tp(r)}function c9(r){return new bf(r)}function p9(r){return new Fl(r)}function m9(r){return new xf(r)}function f9(r){return new Qc(r)}function d9(r){return new wf(r)}function h9(r){return new rp(r)}function g9(r){return new Dn(r)}function x9(r){return new ep(r)}function y9(r){return new td(r)}function b9(r){return new Qf(r)}var w9=UR,I9=HR,C9=qR,v9=KR;function S9(r){return new Mf(r)}function N9(r){return new Lf(r)}function k9(r){return new zf(r)}function T9(r){return new _f(r)}function _9(r){return new ed(r)}function E9(r){return new rd(r)}function A9(r){return new od(r)}function D9(r){return new nd(r)}function $9(r){return new sd(r)}var XR={};Kt(XR,{MAPE:()=>W9,MSE:()=>q9,binaryAccuracy:()=>R9,binaryCrossentropy:()=>F9,categoricalAccuracy:()=>P9,categoricalCrossentropy:()=>M9,cosineProximity:()=>B9,mape:()=>U9,meanAbsoluteError:()=>V9,meanAbsolutePercentageError:()=>G9,meanSquaredError:()=>H9,mse:()=>K9,precision:()=>L9,recall:()=>z9,sparseCategoricalAccuracy:()=>O9});function R9(r,t){return Ph(r,t)}function F9(r,t){return nb(r,t)}function O9(r,t){return ob(r,t)}function P9(r,t){return Mh(r,t)}function M9(r,t){return Lh(r,t)}function L9(r,t){return VN(r,t)}function z9(r,t){return yR(r,t)}function B9(r,t){return Oh(r,t)}function V9(r,t){return Jm(r,t)}function G9(r,t){return Gu(r,t)}function W9(r,t){return Gu(r,t)}function U9(r,t){return Gu(r,t)}function H9(r,t){return wa(r,t)}function q9(r,t){return wa(r,t)}function K9(r,t){return wa(r,t)}var YR={};Kt(YR,{modelFromJSON:()=>RR});var ZR={};Kt(ZR,{l1:()=>X9,l1l2:()=>j9,l2:()=>Y9});function j9(r){return new Wu(r)}function X9(r){return MR(r)}function Y9(r){return LR(r)}var Mb=class extends Al{constructor(){super(...arguments),this.model=null}setModel(t){if(!(t instanceof jn))throw new Error(\"model must be a LayersModel, not some other Container\");this.model=t}};function Pb(r,t){return rt}var Lb=class extends Mb{constructor(t){if(super(),t==null&&(t={}),t.restoreBestWeights)throw new kt(\"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=Pb:this.mode===\"max\"?this.monitorFunc=JR:this.monitor.indexOf(\"acc\")!==-1?this.monitorFunc=JR:this.monitorFunc=Pb,this.monitorFunc===Pb&&(this.minDelta*=-1)}async onTrainBegin(t){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===Pb?1/0:-1/0}async onEpochEnd(t,e){await ba(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 Z9(r){return new Lb(r)}var J9={earlyStopping:Z9};var Q9=L();Q9.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 ho;(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\"})(ho||(ho={}));var QR;(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={}))})(QR||(QR={}));var rk={};function eQ(r,t){let e={tfOpName:r,category:\"custom\",inputs:[],attrs:[],customExecutor:t};rk[r]=e}function zb(r){return rk[r]}function rQ(r){delete rk[r]}function v(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,l=a<0?t.inputNames.length+a:a;if(s.type===\"tensor\")return pr(t.inputNames[l],e,n,o);if(s.type===\"tensors\"){let m=t.inputs.slice(a,u);return t.inputNames.slice(a,u).filter((d,h)=>{var g;return((g=m[h])===null||g===void 0?void 0:g.op)!==\"NoOp\"}).map(d=>pr(d,e,n,o))}let c=pr(t.inputNames[l],e,n,o),p=c.dataSync();return s.type===\"number\"?p[0]:y.toNestedArray(c.shape,p)}let i=t.attrParams[r];return i&&i.value}function pr(r,t,e,n){let[o,s]=vn(r,e);if(n!=null){let a=n.getHashTableHandleByName(o);if(a!=null)return a}let i=e.currentContextIds.find(a=>!!t[Bb(o,a)]);return i!==void 0?t[Bb(o,i)][s]:void 0}function nk(r,t,e){return t[Bb(r,e.currentContextId)]}function Ii(r,t){let[e,n,o]=vn(r,t);return[Bb(e,t&&t.currentContextId),n,o]}function Bb(r,t){return t?`${r}-${t}`:r}function vn(r,t){if(r===\"\")return[\"\",0,void 0];let e=t!=null&&t.parseNodeNameCache!=null;if(e){let s=t.parseNodeNameCache.get(r);if(s!=null)return s}let n=r.split(\":\"),o;if(n.length===1)o=[r,0,void 0];else{let s=n[0],i=n.length===3?n[1]:void 0,a=Number(n[n.length-1]);o=[s,a,i]}return e&&t.parseNodeNameCache.set(r,o),o}function Hh(r,t,e){let n=v(\"pad\",r,t,e);if(n===\"explicit\"){n=v(\"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 Ci(r){return r.kept?r:cn(r)}var ok={};Kt(ok,{json:()=>nQ});var nQ=[{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 sk={};Kt(sk,{json:()=>oQ});var oQ=[{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:\"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}]},{tfOpName:\"IsFinite\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"IsInf\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]}];var ik={};Kt(ik,{json:()=>sQ});var sQ=[{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 ak={};Kt(ak,{json:()=>iQ});var iQ=[{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 lk={};Kt(lk,{json:()=>aQ});var aQ=[{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:\"RandomUniformInt\",category:\"creation\",inputs:[{start:0,name:\"shape\",type:\"number[]\"}],attrs:[{tfName:\"minval\",name:\"minval\",type:\"number\"},{tfName:\"maxval\",name:\"maxval\",type:\"number\"},{tfName:\"seed\",name:\"seed\",type:\"number\",defaultValue:0},{tfName:\"seed2\",name:\"seed2\",type:\"number\",defaultValue:0,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 uk={};Kt(uk,{json:()=>lQ});var lQ=[{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 ck={};Kt(ck,{json:()=>uQ});var uQ=[{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 pk={};Kt(pk,{json:()=>cQ});var cQ=[{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 mk={};Kt(mk,{json:()=>pQ});var pQ=[{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 fk={};Kt(fk,{json:()=>mQ});var mQ=[{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 dk={};Kt(dk,{json:()=>fQ});var fQ=[{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}]},{tfOpName:\"BitwiseAnd\",category:\"logical\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"y\",type:\"tensor\"}]}];var hk={};Kt(hk,{json:()=>dQ});var dQ=[{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\"}]},{tfOpName:\"MatrixBandPart\",category:\"matrices\",inputs:[{start:0,name:\"a\",type:\"tensor\"},{start:1,name:\"numLower\",type:\"tensor\"},{start:1,name:\"numUpper\",type:\"tensor\"}]}];var gk={};Kt(gk,{json:()=>hQ});var hQ=[{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\"}]}];var xk={};Kt(xk,{json:()=>gQ});var gQ=[{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\"},{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{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 yk={};Kt(yk,{json:()=>xQ});var xQ=[{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}]},{tfOpName:\"TensorScatterUpdate\",category:\"slice_join\",inputs:[{start:0,name:\"tensor\",type:\"tensor\"},{start:1,name:\"indices\",type:\"tensor\"},{start:2,name:\"values\",type:\"tensor\"}]}];var bk={};Kt(bk,{json:()=>yQ});var yQ=[{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 wk={};Kt(wk,{json:()=>bQ});var bQ=[{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 Ik={};Kt(Ik,{json:()=>wQ});var wQ=[{tfOpName:\"StaticRegexReplace\",category:\"string\",inputs:[{start:0,name:\"input\",type:\"tensor\"}],attrs:[{tfName:\"pattern\",name:\"pattern\",type:\"string\"},{tfName:\"rewrite\",name:\"rewrite\",type:\"string\"},{tfName:\"replace_global\",name:\"replaceGlobal\",type:\"bool\"}]},{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 Ck={};Kt(Ck,{json:()=>IQ});var IQ=[{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:\"EnsureShape\",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 qh=class{static get Instance(){return this._instance||(this._instance=new this)}constructor(){let t=[ok,sk,ik,ak,lk,uk,ck,pk,mk,fk,dk,hk,gk,xk,yk,bk,wk,Ik,Ck],e=[].concat(...t.map(n=>n.json));this.opMappers=e.reduce((n,o)=>(n[o.tfOpName]=o,n),{})}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,,I]=Ii(x),N=a[w];if(N.outputs!=null){let E=N.outputs.indexOf(I);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]=Ii(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]=Ii(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=zb(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=Vb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=Vb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"string[]\":a=jb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=jb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"number\":a=Wb(t.attr,s.tfName,s.defaultValue||0),a===void 0&&s.tfDeprecatedName&&(a=Wb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"number[]\":a=Kb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=Kb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"bool\":a=Gb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=Gb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"bool[]\":a=Yb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=Yb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"shape\":a=qb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=qb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"shape[]\":a=Xb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=Xb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"dtype\":a=Ub(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=Ub(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"dtype[]\":a=Hb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=Hb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"func\":a=tF(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=tF(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]=Ii(p.name),f={name:m,op:\"Placeholder\",inputs:[],inputNames:[],category:\"graph\",inputParams:{},attrParams:{dtype:{value:vk(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]=Ii(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]=Ii(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 CQ(r){let t=L().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 eF(r,t){let e=Array.isArray(r)?String.fromCharCode.apply(null,r):CQ(r);return t?e:e.toLowerCase()}function Vb(r,t,e,n=!1){let o=r[t];return o!=null?eF(o.s,n):e}function Gb(r,t,e){let n=r[t];return n?n.b:e}function Wb(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 vk(r){switch(typeof r==\"string\"&&(r=ho[r]),r){case ho.DT_FLOAT:case ho.DT_HALF:return\"float32\";case ho.DT_INT32:case ho.DT_INT64:case ho.DT_INT8:case ho.DT_UINT8:return\"int32\";case ho.DT_BOOL:return\"bool\";case ho.DT_DOUBLE:return\"float32\";case ho.DT_STRING:return\"string\";default:return null}}function tF(r,t,e){let n=r[t];return n&&n.func?n.func.name:e}function Ub(r,t,e){let n=r[t];return n&&n.type?vk(n.type):e}function Hb(r,t,e){let n=r[t];return n&&n.list&&n.list.type?n.list.type.map(o=>vk(o)):e}function rF(r){if(!r.unknownRank)return r.dim!=null?r.dim.map(t=>typeof t.size==\"number\"?t.size:parseInt(t.size,10)):[]}function qb(r,t,e){let n=r[t];return n&&n.shape?rF(n.shape):e}function Kb(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 jb(r,t,e,n=!1){let o=r[t];return o&&o.list&&o.list.s?o.list.s.map(s=>eF(s,n)):e}function Xb(r,t,e){let n=r[t];return n&&n.list&&n.list.shape?n.list.shape.map(o=>rF(o)):e}function Yb(r,t,e){let n=r[t];return n&&n.list&&n.list.b?n.list.b:e}var Zb=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 pr(t,this.tensorMap,this.context)}getAttr(t,e){let n=this.node.rawAttrs[t];if(n.tensor!=null)return pr(t,this.tensorMap,this.context);if(n.i!=null||n.f!=null)return Wb(this.node.rawAttrs,t,e);if(n.s!=null)return Vb(this.node.rawAttrs,t,e);if(n.b!=null)return Gb(this.node.rawAttrs,t,e);if(n.shape!=null)return qb(this.node.rawAttrs,t,e);if(n.type!=null)return Ub(this.node.rawAttrs,t,e);if(n.list!=null){if(n.list.i!=null||n.list.f!=null)return Kb(this.node.rawAttrs,t,e);if(n.list.s!=null)return jb(this.node.rawAttrs,t,e);if(n.list.shape!=null)return Xb(this.node.rawAttrs,t,e);if(n.list.b!=null)return Yb(this.node.rawAttrs,t,e);if(n.list.type!=null)return Hb(this.node.rawAttrs,t,e)}return e}};var ae={};Kt(ae,{OP_SCOPE_SUFFIX:()=>M0,abs:()=>Ee,acos:()=>hx,acosh:()=>gx,add:()=>Y,addN:()=>IE,all:()=>lm,any:()=>bc,argMax:()=>oa,argMin:()=>xx,asin:()=>yx,asinh:()=>bx,atan:()=>wx,atan2:()=>Ix,atanh:()=>Cx,avgPool:()=>Su,avgPool3d:()=>vx,basicLSTMCell:()=>SE,batchNorm:()=>aa,batchNorm2d:()=>Sx,batchNorm3d:()=>Nx,batchNorm4d:()=>kx,batchToSpaceND:()=>Nu,bincount:()=>Tx,bitwiseAnd:()=>kE,booleanMaskAsync:()=>F5,broadcastArgs:()=>TE,broadcastTo:()=>la,buffer:()=>wt,cast:()=>Q,ceil:()=>_x,clipByValue:()=>Sr,clone:()=>cn,complex:()=>kn,concat:()=>ie,concat1d:()=>Ex,concat2d:()=>Ax,concat3d:()=>Dx,concat4d:()=>$x,conv1d:()=>cm,conv2d:()=>Tn,conv2dTranspose:()=>mm,conv3d:()=>Rx,conv3dTranspose:()=>Ox,cos:()=>ku,cosh:()=>fm,cosineWindow:()=>Ih,cumprod:()=>Ic,cumsum:()=>dm,denseBincount:()=>gh,depthToSpace:()=>Px,depthwiseConv2d:()=>ua,diag:()=>_E,dilation2d:()=>Mx,div:()=>ct,divNoNan:()=>Lx,dot:()=>zx,dropout:()=>cN,einsum:()=>AE,elu:()=>ca,enclosingPowerOfTwo:()=>pN,ensureShape:()=>DE,equal:()=>Fr,erf:()=>Bx,euclideanNorm:()=>Vx,exp:()=>ir,expandDims:()=>ar,expm1:()=>Gx,eye:()=>Cc,fft:()=>Ou,fill:()=>No,floor:()=>pa,floorDiv:()=>am,fused:()=>Lu,gather:()=>ma,gatherND:()=>U5,greater:()=>Fe,greaterEqual:()=>mn,ifft:()=>vl,imag:()=>Tu,image:()=>hn,inTopKAsync:()=>K5,irfft:()=>Tm,isFinite:()=>Wx,isInf:()=>Ux,isNaN:()=>Hx,leakyRelu:()=>_u,less:()=>Il,lessEqual:()=>Un,linalg:()=>fN,linspace:()=>FE,localResponseNormalization:()=>qx,log:()=>kr,log1p:()=>Eu,logSigmoid:()=>Xx,logSoftmax:()=>hm,logSumExp:()=>gm,logicalAnd:()=>Pr,logicalNot:()=>Au,logicalOr:()=>xm,logicalXor:()=>Yx,losses:()=>j8,lowerBound:()=>OE,matMul:()=>Bt,max:()=>Nr,maxPool:()=>Du,maxPool3d:()=>Jx,maxPoolWithArgmax:()=>PE,maximum:()=>_n,mean:()=>ke,meshgrid:()=>ME,min:()=>bl,minimum:()=>mo,mirrorPad:()=>Qx,mod:()=>ty,moments:()=>vc,movingAverage:()=>M5,mul:()=>$,multiRNNCell:()=>LE,multinomial:()=>zE,neg:()=>Ut,norm:()=>wl,notEqual:()=>mi,oneHot:()=>fa,ones:()=>dr,onesLike:()=>Ir,op:()=>k,outerProduct:()=>BE,pad:()=>dn,pad1d:()=>VE,pad2d:()=>GE,pad3d:()=>WE,pad4d:()=>UE,pool:()=>ey,pow:()=>pn,prelu:()=>Ru,print:()=>dx,prod:()=>ry,raggedGather:()=>HE,raggedRange:()=>qE,raggedTensorToTensor:()=>KE,rand:()=>jE,randomGamma:()=>hA,randomNormal:()=>kc,randomStandardNormal:()=>gA,randomUniform:()=>Hn,randomUniformInt:()=>xA,range:()=>da,real:()=>Cl,reciprocal:()=>ly,relu:()=>Mr,relu6:()=>ym,reshape:()=>R,reverse:()=>hr,reverse1d:()=>yA,reverse2d:()=>bA,reverse3d:()=>wA,reverse4d:()=>IA,rfft:()=>Pu,round:()=>bm,rsqrt:()=>wm,scalar:()=>ft,scatterND:()=>z5,searchSorted:()=>yh,selu:()=>Im,separableConv2d:()=>Cm,setdiff1dAsync:()=>CA,sigmoid:()=>en,sign:()=>uy,signal:()=>K8,sin:()=>vm,sinh:()=>Sm,slice:()=>Pt,slice1d:()=>Nm,slice2d:()=>wh,slice3d:()=>km,slice4d:()=>Tc,softmax:()=>Fu,softplus:()=>pi,spaceToBatchND:()=>$u,sparse:()=>X8,sparseToDense:()=>G5,spectral:()=>q8,split:()=>gr,sqrt:()=>Ne,square:()=>Wt,squaredDifference:()=>_m,squeeze:()=>qn,stack:()=>qe,step:()=>To,stridedSlice:()=>cy,string:()=>Y8,sub:()=>lt,sum:()=>pt,tan:()=>py,tanh:()=>ia,tensor:()=>sr,tensor1d:()=>Ke,tensor2d:()=>fi,tensor3d:()=>my,tensor4d:()=>vA,tensor5d:()=>SA,tensor6d:()=>NA,tensorScatterUpdate:()=>TA,tile:()=>Or,topk:()=>fy,transpose:()=>Vt,truncatedNormal:()=>Am,unique:()=>dy,unsortedSegmentSum:()=>Dm,unstack:()=>xr,upperBound:()=>_A,variable:()=>hy,where:()=>be,whereAsync:()=>xy,zeros:()=>Te,zerosLike:()=>vt});var nF=(r,t,e,n=ae)=>{switch(r.op){case\"BiasAdd\":case\"AddV2\":case\"Add\":return[n.add(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"AddN\":return[n.addN(v(\"tensors\",r,t,e))];case\"FloorMod\":case\"Mod\":return[n.mod(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"Mul\":return[n.mul(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"RealDiv\":case\"Div\":return[n.div(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"DivNoNan\":return[n.divNoNan(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"FloorDiv\":return[n.floorDiv(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"Sub\":return[n.sub(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"Minimum\":return[n.minimum(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"Maximum\":return[n.maximum(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"Pow\":return[n.pow(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"SquaredDifference\":return[n.squaredDifference(v(\"a\",r,t,e),v(\"b\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var oF=(r,t,e,n=ae)=>{switch(r.op){case\"Abs\":case\"ComplexAbs\":return[n.abs(v(\"x\",r,t,e))];case\"Acos\":return[n.acos(v(\"x\",r,t,e))];case\"Acosh\":return[n.acosh(v(\"x\",r,t,e))];case\"Asin\":return[n.asin(v(\"x\",r,t,e))];case\"Asinh\":return[n.asinh(v(\"x\",r,t,e))];case\"Atan\":return[n.atan(v(\"x\",r,t,e))];case\"Atan2\":return[n.atan2(v(\"x\",r,t,e),v(\"y\",r,t,e))];case\"Atanh\":return[n.atanh(v(\"x\",r,t,e))];case\"Ceil\":return[n.ceil(v(\"x\",r,t,e))];case\"Complex\":return[n.complex(v(\"real\",r,t,e),v(\"imag\",r,t,e))];case\"Cos\":return[n.cos(v(\"x\",r,t,e))];case\"Cosh\":return[n.cosh(v(\"x\",r,t,e))];case\"Elu\":return[n.elu(v(\"x\",r,t,e))];case\"Erf\":return[n.erf(v(\"x\",r,t,e))];case\"Exp\":return[n.exp(v(\"x\",r,t,e))];case\"Expm1\":return[n.expm1(v(\"x\",r,t,e))];case\"Floor\":return[n.floor(v(\"x\",r,t,e))];case\"Log\":return[n.log(v(\"x\",r,t,e))];case\"Log1p\":return[n.log1p(v(\"x\",r,t,e))];case\"Imag\":return[n.imag(v(\"x\",r,t,e))];case\"Neg\":return[n.neg(v(\"x\",r,t,e))];case\"Reciprocal\":return[n.reciprocal(v(\"x\",r,t,e))];case\"Real\":return[n.real(v(\"x\",r,t,e))];case\"Relu\":return[n.relu(v(\"x\",r,t,e))];case\"Round\":return[n.round(v(\"x\",r,t,e))];case\"Selu\":return[n.selu(v(\"x\",r,t,e))];case\"Sigmoid\":return[n.sigmoid(v(\"x\",r,t,e))];case\"Sin\":return[n.sin(v(\"x\",r,t,e))];case\"Sign\":return[n.sign(v(\"x\",r,t,e))];case\"Sinh\":return[n.sinh(v(\"x\",r,t,e))];case\"Softplus\":return[n.softplus(v(\"x\",r,t,e))];case\"Sqrt\":return[n.sqrt(v(\"x\",r,t,e))];case\"Square\":return[n.square(v(\"x\",r,t,e))];case\"Tanh\":return[n.tanh(v(\"x\",r,t,e))];case\"Tan\":return[n.tan(v(\"x\",r,t,e))];case\"ClipByValue\":return[n.clipByValue(v(\"x\",r,t,e),v(\"clipValueMin\",r,t,e),v(\"clipValueMax\",r,t,e))];case\"Relu6\":return[n.relu6(v(\"x\",r,t,e))];case\"Rsqrt\":return[n.rsqrt(pr(r.inputNames[0],t,e))];case\"LeakyRelu\":return[n.leakyRelu(v(\"x\",r,t,e),v(\"alpha\",r,t,e))];case\"Prelu\":return[n.prelu(v(\"x\",r,t,e),v(\"alpha\",r,t,e))];case\"IsNan\":return[n.isNaN(pr(r.inputNames[0],t,e))];case\"IsInf\":return[n.isInf(pr(r.inputNames[0],t,e))];case\"IsFinite\":return[n.isFinite(pr(r.inputNames[0],t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function Xn(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 sF(r){return!(typeof r==\"number\"||r.some(t=>t<0))}function id(r,t,e){let n=Jb(r,e),o=!sF(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=Jb(s.shape,n)}),!sF(n))throw new Error(`Non-fully-defined elementShape: ${n}`);return n}function Jb(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 Qb=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=ft(0),$e(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),Xn(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,$e(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,xr(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}`);Xn(e,s.shape,\"TensorList shape mismatch: \"),$e(s)}),this.idTensor=ft(0),this.maxNumElements=o,$e(this.idTensor)}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.`);Xn(t,this.elementShape,\"TensorList shape mismatch: \");let o=id(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=id(this.elementShape,this.tensors,t),o=this.tensors.pop();return o.kept=!1,Xn(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(Xn(t.shape,this.elementShape,\"TensorList shape mismatch: \"),this.maxNumElements===this.size())throw new Error(\"Trying to push element into a full list.\");$e(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.`);Xn(this.tensors[t].shape,e,\"TensorList shape mismatch: \");let o=id(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.`);Xn(this.elementShape,e.shape,\"TensorList shape mismatch: \"),$e(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}`);Xn(this.elementShape,n,\"TensorList shape mismatch: \"),t=t.slice(0,this.size());let o=id(this.elementShape,this.tensors,n);return t.length===0?sr([],[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}`);Xn(this.elementShape,e,\"TensorList shape mismatch: \");let n=id(this.elementShape,this.tensors,e);return this.size()===0?sr([],[0].concat(n)):B(()=>{let o=this.tensors.map(s=>R(s,n));return ie(o,0)})}};function iF(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);Xn(o,t,\"TensorList shape mismatch: \");let s=xr(r);return new Ml(s,t,n)}function aF(r,t,e,n){return new Ml([],r,t,n)}function lF(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=xr(r,0);return t.forEach((a,u)=>{s.setItem(a,i[u])}),s}function uF(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=Jb(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=v(\"thenBranch\",r,t,e),o=v(\"elseBranch\",r,t,e),s=v(\"cond\",r,t,e),i=v(\"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=v(\"body\",r,t,e),o=v(\"cond\",r,t,e),s=v(\"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=v(\"pred\",r,t,e);return[Ci(n)]}case\"Switch\":{let n=v(\"pred\",r,t,e),o=v(\"data\",r,t,e);return o.kept||(o=Ci(o)),(await n.data())[0]?[void 0,o]:[o,void 0]}case\"Merge\":{let n=r.inputNames.find(o=>pr(o,t,e)!==void 0);if(n){let o=pr(n,t,e);return[Ci(o)]}return}case\"Enter\":{let n=v(\"frameName\",r,t,e),o=v(\"tensor\",r,t,e);return e.enterFrame(n),[Ci(o)]}case\"Exit\":{let n=v(\"tensor\",r,t,e);return e.exitFrame(),[Ci(n)]}case\"NextIteration\":{let n=v(\"tensor\",r,t,e);return e.nextIteration(),[Ci(n)]}case\"TensorArrayV3\":{let n=v(\"size\",r,t,e),o=v(\"dtype\",r,t,e),s=v(\"elementShape\",r,t,e),i=v(\"dynamicSize\",r,t,e),a=v(\"clearAfterRead\",r,t,e),u=v(\"identicalElementShapes\",r,t,e),l=v(\"name\",r,t,e),c=new Qb(l,o,n,s,u,i,a);return e.addTensorArray(c),[c.idTensor,ft(1)]}case\"TensorArrayWriteV3\":{let n=v(\"tensorArrayId\",r,t,e),o=v(\"index\",r,t,e),s=v(\"tensor\",r,t,e),i=e.getTensorArray(n.id);return i.write(o,s),[i.idTensor]}case\"TensorArrayReadV3\":{let n=v(\"tensorArrayId\",r,t,e),o=v(\"index\",r,t,e);return[e.getTensorArray(n.id).read(o)]}case\"TensorArrayGatherV3\":{let n=v(\"tensorArrayId\",r,t,e),o=v(\"indices\",r,t,e),s=v(\"dtype\",r,t,e);return[e.getTensorArray(n.id).gather(o,s)]}case\"TensorArrayScatterV3\":{let n=v(\"tensorArrayId\",r,t,e),o=v(\"indices\",r,t,e),s=v(\"tensor\",r,t,e),i=e.getTensorArray(n.id);return i.scatter(o,s),[i.idTensor]}case\"TensorArrayConcatV3\":{let n=v(\"tensorArrayId\",r,t,e),o=e.getTensorArray(n.id),s=v(\"dtype\",r,t,e);return[o.concat(s)]}case\"TensorArraySplitV3\":{let n=v(\"tensorArrayId\",r,t,e),o=v(\"tensor\",r,t,e),s=v(\"lengths\",r,t,e),i=e.getTensorArray(n.id);return i.split(s,o),[i.idTensor]}case\"TensorArraySizeV3\":{let n=v(\"tensorArrayId\",r,t,e),o=e.getTensorArray(n.id);return[ft(o.size(),\"int32\")]}case\"TensorArrayCloseV3\":{let n=v(\"tensorArrayId\",r,t,e),o=e.getTensorArray(n.id);return o.clearAndClose(),[o.idTensor]}case\"TensorListSetItem\":{let n=v(\"tensorListId\",r,t,e),o=v(\"index\",r,t,e),s=v(\"tensor\",r,t,e),i=e.getTensorList(n.id);return i.setItem(o,s),[i.idTensor]}case\"TensorListGetItem\":{let n=v(\"tensorListId\",r,t,e),o=v(\"index\",r,t,e),s=v(\"elementShape\",r,t,e),i=v(\"elementDType\",r,t,e);return[e.getTensorList(n.id).getItem(o,s,i)]}case\"TensorListScatterV2\":case\"TensorListScatter\":{let n=v(\"indices\",r,t,e),o=v(\"tensor\",r,t,e),s=v(\"elementShape\",r,t,e),i=v(\"numElements\",r,t,e),a=lF(o,n,s,i);return e.addTensorList(a),[a.idTensor]}case\"TensorListReserve\":case\"EmptyTensorList\":{let n=v(\"elementShape\",r,t,e),o=v(\"elementDType\",r,t,e),s;r.op===\"TensorListReserve\"?s=\"numElements\":s=\"maxNumElements\";let i=v(s,r,t,e),a=r.op===\"TensorListReserve\"?-1:i,u=aF(n,o,i,a);return e.addTensorList(u),[u.idTensor]}case\"TensorListGather\":{let n=v(\"tensorListId\",r,t,e),o=v(\"indices\",r,t,e),s=v(\"elementShape\",r,t,e),i=v(\"elementDType\",r,t,e);return[e.getTensorList(n.id).gather(o,i,s)]}case\"TensorListStack\":{let n=v(\"tensorListId\",r,t,e),o=v(\"elementShape\",r,t,e),s=v(\"elementDType\",r,t,e),i=v(\"numElements\",r,t,e);return[e.getTensorList(n.id).stack(o,s,i)]}case\"TensorListFromTensor\":{let n=v(\"tensor\",r,t,e),o=v(\"elementShape\",r,t,e),s=v(\"elementDType\",r,t,e),i=iF(n,o,s);return e.addTensorList(i),[i.idTensor]}case\"TensorListConcat\":case\"TensorListConcatV2\":{let n=v(\"tensorListId\",r,t,e),o=e.getTensorList(n.id),s=v(\"dtype\",r,t,e),i=v(\"elementShape\",r,t,e);return[o.concat(s,i)]}case\"TensorListPushBack\":{let n=v(\"tensorListId\",r,t,e),o=v(\"tensor\",r,t,e),s=e.getTensorList(n.id);return s.pushBack(o),[s.idTensor]}case\"TensorListPopBack\":{let n=v(\"tensorListId\",r,t,e),o=v(\"elementShape\",r,t,e),s=v(\"elementDType\",r,t,e);return[e.getTensorList(n.id).popBack(o,s)]}case\"TensorListSplit\":{let n=v(\"tensor\",r,t,e),o=v(\"elementShape\",r,t,e),s=v(\"lengths\",r,t,e),i=uF(n,s,o);return e.addTensorList(i),[i.idTensor]}case\"TensorListLength\":{let n=v(\"tensorListId\",r,t,e),o=e.getTensorList(n.id);return[ft(o.size(),\"int32\")]}case\"TensorListResize\":{let n=v(\"tensorListId\",r,t,e),o=v(\"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 pF(r,t,e){let[n,o]=v(\"fusedOps\",r,t,e),s=n===\"biasadd\",i=!s,a=o===\"prelu\",u=n===\"fusedbatchnorm\",l=v(\"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=v(\"strides\",r,t,e),p=Hh(r,t,e),m=v(\"dataFormat\",r,t,e).toUpperCase(),f=v(\"dilations\",r,t,e),[d,h]=v(\"args\",r,t,e);i&&(h=d,d=void 0);let g=v(\"leakyreluAlpha\",r,t,e);return{stride:c,pad:p,dataFormat:m,dilations:f,biasArg:d,preluArg:h,activationFunc:o,leakyreluAlpha:g}}var mF=(r,t,e,n=ae)=>{switch(r.op){case\"Conv1D\":{let o=v(\"stride\",r,t,e),s=v(\"pad\",r,t,e),i=v(\"dataFormat\",r,t,e).toUpperCase(),a=v(\"dilation\",r,t,e);return[n.conv1d(v(\"x\",r,t,e),v(\"filter\",r,t,e),o,s,i,a)]}case\"Conv2D\":{let o=v(\"strides\",r,t,e),s=Hh(r,t,e),i=v(\"dataFormat\",r,t,e).toUpperCase(),a=v(\"dilations\",r,t,e);return[n.conv2d(v(\"x\",r,t,e),v(\"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}=pF(r,t,e);return[n.fused.conv2d({x:v(\"x\",r,t,e),filter:v(\"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}=pF(r,t,e);return[n.fused.depthwiseConv2d({x:v(\"x\",r,t,e),filter:v(\"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=v(\"outputShape\",r,t,e),s=v(\"strides\",r,t,e),i=Hh(r,t,e);return[n.conv2dTranspose(v(\"x\",r,t,e),v(\"filter\",r,t,e),o,[s[1],s[2]],i)]}case\"DepthwiseConv2dNative\":case\"DepthwiseConv2d\":{let o=v(\"strides\",r,t,e),s=Hh(r,t,e),i=v(\"dilations\",r,t,e),a=v(\"dataFormat\",r,t,e).toUpperCase();return[n.depthwiseConv2d(v(\"input\",r,t,e),v(\"filter\",r,t,e),[o[1],o[2]],s,a,[i[1],i[2]])]}case\"Conv3D\":{let o=v(\"strides\",r,t,e),s=v(\"pad\",r,t,e),i=v(\"dataFormat\",r,t,e).toUpperCase(),a=v(\"dilations\",r,t,e);return[n.conv3d(v(\"x\",r,t,e),v(\"filter\",r,t,e),[o[1],o[2],o[3]],s,i,[a[1],a[2],a[3]])]}case\"AvgPool\":{let o=v(\"strides\",r,t,e),s=v(\"pad\",r,t,e),i=v(\"kernelSize\",r,t,e);return[n.avgPool(v(\"x\",r,t,e),[i[1],i[2]],[o[1],o[2]],s)]}case\"MaxPool\":{let o=v(\"strides\",r,t,e),s=v(\"pad\",r,t,e),i=v(\"kernelSize\",r,t,e);return[n.maxPool(v(\"x\",r,t,e),[i[1],i[2]],[o[1],o[2]],s)]}case\"MaxPoolWithArgmax\":{let o=v(\"strides\",r,t,e),s=v(\"pad\",r,t,e),i=v(\"kernelSize\",r,t,e),a=v(\"includeBatchInIndex\",r,t,e),{result:u,indexes:l}=n.maxPoolWithArgmax(v(\"x\",r,t,e),[i[1],i[2]],[o[1],o[2]],s,a);return[u,l]}case\"AvgPool3D\":{let o=v(\"strides\",r,t,e),s=v(\"pad\",r,t,e),i=v(\"kernelSize\",r,t,e);return[n.avgPool3d(v(\"x\",r,t,e),[i[1],i[2],i[3]],[o[1],o[2],o[3]],s)]}case\"MaxPool3D\":{let o=v(\"strides\",r,t,e),s=v(\"pad\",r,t,e),i=v(\"kernelSize\",r,t,e);return[n.maxPool3d(v(\"x\",r,t,e),[i[1],i[2],i[3]],[o[1],o[2],o[3]],s)]}case\"Dilation2D\":{let o=v(\"strides\",r,t,e),s=v(\"pad\",r,t,e),i=v(\"dilations\",r,t,e),a=o[1],u=o[2],l=i[1],c=i[2];return[n.dilation2d(v(\"x\",r,t,e),v(\"filter\",r,t,e),[a,u],s,[l,c],\"NHWC\")]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var fF=(r,t,e,n=ae)=>{switch(r.op){case\"Fill\":{let o=v(\"shape\",r,t,e),s=v(\"dtype\",r,t,e),i=v(\"value\",r,t,e);return[n.fill(o,i,s)]}case\"LinSpace\":{let o=v(\"start\",r,t,e),s=v(\"stop\",r,t,e),i=v(\"num\",r,t,e);return[n.linspace(o,s,i)]}case\"Multinomial\":{let o=v(\"logits\",r,t,e),s=v(\"numSamples\",r,t,e),i=v(\"seed\",r,t,e);return[n.multinomial(o,s,i)]}case\"OneHot\":{let o=v(\"indices\",r,t,e),s=v(\"depth\",r,t,e),i=v(\"onValue\",r,t,e),a=v(\"offValue\",r,t,e),u=v(\"dtype\",r,t,e);return[n.oneHot(o,s,i,a,u)]}case\"Ones\":return[n.ones(v(\"shape\",r,t,e),v(\"dtype\",r,t,e))];case\"OnesLike\":return[n.onesLike(v(\"x\",r,t,e))];case\"RandomStandardNormal\":return[n.randomStandardNormal(v(\"shape\",r,t,e),v(\"dtype\",r,t,e),v(\"seed\",r,t,e))];case\"RandomUniform\":return[n.randomUniform(v(\"shape\",r,t,e),v(\"minval\",r,t,e),v(\"maxval\",r,t,e),v(\"dtype\",r,t,e))];case\"RandomUniformInt\":return[n.randomUniformInt(v(\"shape\",r,t,e),v(\"minval\",r,t,e),v(\"maxval\",r,t,e),v(\"seed\",r,t,e))];case\"Range\":{let o=v(\"start\",r,t,e),s=v(\"stop\",r,t,e),i=v(\"step\",r,t,e);return[n.range(o,s,i,v(\"dtype\",r,t,e))]}case\"TruncatedNormal\":{let o=v(\"shape\",r,t,e),s=v(\"mean\",r,t,e),i=v(\"stdDev\",r,t,e),a=v(\"seed\",r,t,e);return[n.truncatedNormal(o,s,i,v(\"dtype\",r,t,e),a)]}case\"Zeros\":return[n.zeros(v(\"shape\",r,t,e),v(\"dtype\",r,t,e))];case\"ZerosLike\":return[n.zerosLike(v(\"x\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function Sk(r,t,e){let n=v(\"boxes\",r,t,e),o=v(\"scores\",r,t,e),s=v(\"maxOutputSize\",r,t,e),i=v(\"iouThreshold\",r,t,e),a=v(\"scoreThreshold\",r,t,e),u=v(\"softNmsSigma\",r,t,e);return{boxes:n,scores:o,maxOutputSize:s,iouThreshold:i,scoreThreshold:a,softNmsSigma:u}}var dF=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}=Sk(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}=Sk(r,t,e),c=v(\"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}=Sk(r,t,e);return[await o.image.nonMaxSuppressionAsync(s,i,a,u,l)]}case\"Where\":{let s=o.cast(v(\"condition\",r,t,e),\"bool\"),i=[await o.whereAsync(s)];return s.dispose(),i}case\"ListDiff\":return o.setdiff1dAsync(v(\"x\",r,t,e),v(\"y\",r,t,e));default:throw TypeError(`Node type ${r.op} is not implemented`)}};var hF=(r,t,e,n=ae)=>{switch(r.op){case\"LowerBound\":{let o=v(\"sortedSequence\",r,t,e),s=v(\"values\",r,t,e);return[n.lowerBound(o,s)]}case\"TopKV2\":{let o=v(\"x\",r,t,e),s=v(\"k\",r,t,e),i=v(\"sorted\",r,t,e),a=n.topk(o,s,i);return[a.values,a.indices]}case\"UpperBound\":{let o=v(\"sortedSequence\",r,t,e),s=v(\"values\",r,t,e);return[n.upperBound(o,s)]}case\"Unique\":{let o=v(\"x\",r,t,e),s=n.unique(o);return[s.values,s.indices]}case\"UniqueV2\":{let o=v(\"x\",r,t,e),s=v(\"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 gF=(r,t,e,n=ae)=>{switch(r.op){case\"Const\":return t[r.name];case\"PlaceholderWithDefault\":let o=v(\"default\",r,t,e);return[pr(r.name,t,e)||o];case\"Placeholder\":return[pr(r.name,t,e)];case\"Identity\":case\"StopGradient\":case\"FakeQuantWithMinMaxVars\":{let c=v(\"x\",r,t,e);return[Ci(c)]}case\"IdentityN\":return v(\"x\",r,t,e).map(c=>Ci(c));case\"Snapshot\":let s=v(\"x\",r,t,e);return[Ci(s)];case\"Shape\":return[n.tensor1d(v(\"x\",r,t,e).shape,\"int32\")];case\"ShapeN\":return v(\"x\",r,t,e).map(c=>n.tensor1d(c.shape));case\"Size\":return[n.scalar(v(\"x\",r,t,e).size,\"int32\")];case\"Rank\":return[n.scalar(v(\"x\",r,t,e).rank,\"int32\")];case\"NoOp\":return[n.scalar(1)];case\"Print\":let i=v(\"x\",r,t,e),a=v(\"data\",r,t,e),u=v(\"message\",r,t,e),l=v(\"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 ft(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=xr(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=v(\"keyDType\",r,t,e),i=v(\"valueDType\",r,t,e),a=new tw(s,i);return n.addHashTable(r.name,a),[a.handle]}}case\"InitializeTable\":case\"InitializeTableV2\":case\"LookupTableImport\":case\"LookupTableImportV2\":{let o=v(\"tableHandle\",r,t,e,n),s=v(\"keys\",r,t,e),i=v(\"values\",r,t,e);return[await n.getHashTableById(o.id).import(s,i)]}case\"LookupTableFind\":case\"LookupTableFindV2\":{let o=v(\"tableHandle\",r,t,e,n),s=v(\"keys\",r,t,e),i=v(\"defaultValue\",r,t,e);return[await n.getHashTableById(o.id).find(s,i)]}case\"LookupTableSize\":case\"LookupTableSizeV2\":{let o=v(\"tableHandle\",r,t,e,n);return[n.getHashTableById(o.id).tensorSize()]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var yF=(r,t,e,n=ae)=>{switch(r.op){case\"ResizeBilinear\":{let o=v(\"images\",r,t,e),s=v(\"size\",r,t,e),i=v(\"alignCorners\",r,t,e),a=v(\"halfPixelCenters\",r,t,e);return[n.image.resizeBilinear(o,[s[0],s[1]],i,a)]}case\"ResizeNearestNeighbor\":{let o=v(\"images\",r,t,e),s=v(\"size\",r,t,e),i=v(\"alignCorners\",r,t,e),a=v(\"halfPixelCenters\",r,t,e);return[n.image.resizeNearestNeighbor(o,[s[0],s[1]],i,a)]}case\"CropAndResize\":{let o=v(\"image\",r,t,e),s=v(\"boxes\",r,t,e),i=v(\"boxInd\",r,t,e),a=v(\"cropSize\",r,t,e),u=v(\"method\",r,t,e),l=v(\"extrapolationValue\",r,t,e);return[n.image.cropAndResize(o,s,i,a,u,l)]}case\"ImageProjectiveTransformV3\":{let o=v(\"images\",r,t,e),s=v(\"transforms\",r,t,e),i=v(\"outputShape\",r,t,e),a=v(\"fillValue\",r,t,e),u=v(\"interpolation\",r,t,e),l=v(\"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 bF=(r,t,e,n=ae)=>{switch(r.op){case\"Equal\":return[n.equal(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"NotEqual\":return[n.notEqual(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"Greater\":return[n.greater(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"GreaterEqual\":return[n.greaterEqual(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"Less\":return[n.less(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"LessEqual\":return[n.lessEqual(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"LogicalAnd\":return[n.logicalAnd(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"LogicalNot\":return[n.logicalNot(v(\"a\",r,t,e))];case\"LogicalOr\":return[n.logicalOr(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"Select\":case\"SelectV2\":return[n.where(v(\"condition\",r,t,e),v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"BitwiseAnd\":return[n.bitwiseAnd(v(\"a\",r,t,e),v(\"b\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var wF=(r,t,e,n=ae)=>{switch(r.op){case\"BatchMatMul\":case\"BatchMatMulV2\":case\"MatMul\":return[n.matMul(v(\"a\",r,t,e),v(\"b\",r,t,e),v(\"transposeA\",r,t,e),v(\"transposeB\",r,t,e))];case\"Einsum\":return[n.einsum(v(\"equation\",r,t,e),...v(\"tensors\",r,t,e))];case\"Transpose\":return[n.transpose(v(\"x\",r,t,e),v(\"perm\",r,t,e))];case\"_FusedMatMul\":let[o,s]=v(\"fusedOps\",r,t,e),i=o===\"biasadd\",a=s===\"prelu\",u=v(\"numArgs\",r,t,e),l=v(\"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]=v(\"args\",r,t,e);return[n.fused.matMul({a:v(\"a\",r,t,e),b:v(\"b\",r,t,e),transposeA:v(\"transposeA\",r,t,e),transposeB:v(\"transposeB\",r,t,e),bias:c,activation:s,preluActivationWeights:p,leakyreluAlpha:l})];case\"MatrixBandPart\":return[n.linalg.bandPart(v(\"a\",r,t,e),v(\"numLower\",r,t,e),v(\"numUpper\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var IF=(r,t,e,n=ae)=>{switch(r.op){case\"EuclideanNorm\":return[n.euclideanNorm(v(\"x\",r,t,e),v(\"axis\",r,t,e),v(\"keepDims\",r,t,e))];case\"FusedBatchNorm\":case\"FusedBatchNormV2\":return[n.batchNorm(v(\"x\",r,t,e),v(\"mean\",r,t,e),v(\"variance\",r,t,e),v(\"offset\",r,t,e),v(\"scale\",r,t,e),v(\"epsilon\",r,t,e))];case\"FusedBatchNormV3\":return[n.batchNorm(v(\"x\",r,t,e),v(\"mean\",r,t,e),v(\"variance\",r,t,e),v(\"offset\",r,t,e),v(\"scale\",r,t,e),v(\"epsilon\",r,t,e))];case\"LRN\":return[n.localResponseNormalization(v(\"x\",r,t,e),v(\"radius\",r,t,e),v(\"bias\",r,t,e),v(\"alpha\",r,t,e),v(\"beta\",r,t,e))];case\"Softmax\":return[n.softmax(v(\"x\",r,t,e))];case\"LogSoftmax\":return[n.logSoftmax(v(\"x\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var CF=(r,t,e,n=ae)=>{switch(r.op){case\"RaggedGather\":{let{outputNestedSplits:o,outputDenseValues:s}=n.raggedGather(v(\"paramsNestedSplits\",r,t,e),v(\"paramsDenseValues\",r,t,e),v(\"indices\",r,t,e),v(\"outputRaggedRank\",r,t,e));return o.concat(s)}case\"RaggedRange\":{let{rtNestedSplits:o,rtDenseValues:s}=n.raggedRange(v(\"starts\",r,t,e),v(\"limits\",r,t,e),v(\"splits\",r,t,e));return[o,s]}case\"RaggedTensorToTensor\":return[n.raggedTensorToTensor(v(\"shape\",r,t,e),v(\"values\",r,t,e),v(\"defaultValue\",r,t,e),v(\"rowPartitionTensors\",r,t,e),v(\"rowPartitionTypes\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var vF=(r,t,e,n=ae)=>{switch(r.op){case\"Max\":{let a=v(\"axis\",r,t,e),u=v(\"keepDims\",r,t,e);return[n.max(v(\"x\",r,t,e),a,u)]}case\"Mean\":{let a=v(\"axis\",r,t,e),u=v(\"keepDims\",r,t,e);return[n.mean(v(\"x\",r,t,e),a,u)]}case\"Min\":{let a=v(\"axis\",r,t,e),u=v(\"keepDims\",r,t,e);return[n.min(v(\"x\",r,t,e),a,u)]}case\"Sum\":{let a=v(\"axis\",r,t,e),u=v(\"keepDims\",r,t,e);return[n.sum(v(\"x\",r,t,e),a,u)]}case\"All\":{let a=v(\"axis\",r,t,e),u=v(\"keepDims\",r,t,e);return[n.all(v(\"x\",r,t,e),a,u)]}case\"Any\":{let a=v(\"axis\",r,t,e),u=v(\"keepDims\",r,t,e);return[n.any(v(\"x\",r,t,e),a,u)]}case\"ArgMax\":{let a=v(\"axis\",r,t,e);return[n.argMax(v(\"x\",r,t,e),a)]}case\"ArgMin\":{let a=v(\"axis\",r,t,e);return[n.argMin(v(\"x\",r,t,e),a)]}case\"Prod\":{let a=v(\"axis\",r,t,e),u=v(\"keepDims\",r,t,e);return[n.prod(v(\"x\",r,t,e),a,u)]}case\"Cumprod\":{let a=v(\"axis\",r,t,e),u=v(\"exclusive\",r,t,e),l=v(\"reverse\",r,t,e);return[n.cumprod(v(\"x\",r,t,e),a,u,l)]}case\"Cumsum\":{let a=v(\"axis\",r,t,e),u=v(\"exclusive\",r,t,e),l=v(\"reverse\",r,t,e);return[n.cumsum(v(\"x\",r,t,e),a,u,l)]}case\"Bincount\":let o=v(\"x\",r,t,e),s=v(\"weights\",r,t,e),i=v(\"size\",r,t,e);return[n.bincount(o,s,i)];case\"DenseBincount\":{let a=v(\"x\",r,t,e),u=v(\"weights\",r,t,e),l=v(\"size\",r,t,e),c=v(\"binaryOutput\",r,t,e);return[n.denseBincount(a,u,l,c)]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var SF=(r,t,e,n=ae)=>{switch(r.op){case\"ConcatV2\":case\"Concat\":{let o=v(\"n\",r,t,e),s=v(\"axis\",r,t,e),i=v(\"tensors\",r,t,e);return i=i.slice(0,o),[n.concat(i,s)]}case\"Gather\":{let o=v(\"x\",r,t,e),s=v(\"indices\",r,t,e);return[n.gather(o,n.cast(s,\"int32\"),0)]}case\"GatherV2\":{let o=v(\"axis\",r,t,e),s=v(\"batchDims\",r,t,e),i=v(\"x\",r,t,e),a=v(\"indices\",r,t,e);return[n.gather(i,n.cast(a,\"int32\"),o,s)]}case\"Reverse\":{let o=v(\"dims\",r,t,e),s=[];for(let a=0;a{let o=v(\"axis\",r,t,e),s=v(\"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=v(\"axis\",r,t,e),s=v(\"tensor\",r,t,e);return n.unstack(s,o)}case\"Tile\":{let o=v(\"reps\",r,t,e);return[n.tile(v(\"x\",r,t,e),o)]}case\"Split\":case\"SplitV\":{let o=v(\"axis\",r,t,e),s=v(\"numOrSizeSplits\",r,t,e),i=v(\"x\",r,t,e);return n.split(i,s,o)}case\"ScatterNd\":{let o=v(\"indices\",r,t,e),s=v(\"values\",r,t,e),i=v(\"shape\",r,t,e);return[n.scatterND(o,s,i)]}case\"GatherNd\":{let o=v(\"x\",r,t,e),s=v(\"indices\",r,t,e);return[n.gatherND(o,s)]}case\"SparseToDense\":{let o=v(\"sparseIndices\",r,t,e),s=v(\"outputShape\",r,t,e),i=v(\"sparseValues\",r,t,e),a=v(\"defaultValue\",r,t,e);return[n.sparseToDense(o,i,s,i.dtype===a.dtype?a:n.cast(a,i.dtype))]}case\"TensorScatterUpdate\":{let o=v(\"indices\",r,t,e),s=v(\"values\",r,t,e),i=v(\"tensor\",r,t,e);return[n.tensorScatterUpdate(i,o,s)]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var NF=(r,t,e,n=ae)=>{switch(r.op){case\"SparseFillEmptyRows\":{let{outputIndices:o,outputValues:s,emptyRowIndicator:i,reverseIndexMap:a}=n.sparse.sparseFillEmptyRows(v(\"indices\",r,t,e),v(\"values\",r,t,e),v(\"denseShape\",r,t,e),v(\"defaultValue\",r,t,e));return[o,s,i,a]}case\"SparseReshape\":{let{outputIndices:o,outputShape:s}=n.sparse.sparseReshape(v(\"inputIndices\",r,t,e),v(\"inputShape\",r,t,e),v(\"newShape\",r,t,e));return[o,s]}case\"SparseSegmentMean\":return[n.sparse.sparseSegmentMean(v(\"data\",r,t,e),v(\"indices\",r,t,e),v(\"segmentIds\",r,t,e))];case\"SparseSegmentSum\":return[n.sparse.sparseSegmentSum(v(\"data\",r,t,e),v(\"indices\",r,t,e),v(\"segmentIds\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var kF=(r,t,e,n=ae)=>{switch(r.op){case\"FFT\":return[n.fft(v(\"x\",r,t,e))];case\"IFFT\":return[n.ifft(v(\"x\",r,t,e))];case\"RFFT\":return[n.rfft(v(\"x\",r,t,e))];case\"IRFFT\":return[n.irfft(v(\"x\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var TF=(r,t,e,n=ae)=>{switch(r.op){case\"StaticRegexReplace\":return[n.string.staticRegexReplace(v(\"input\",r,t,e),v(\"pattern\",r,t,e),v(\"rewrite\",r,t,e),v(\"replaceGlobal\",r,t,e))];case\"StringNGrams\":{let{nGrams:o,nGramsSplits:s}=n.string.stringNGrams(v(\"data\",r,t,e),v(\"dataSplits\",r,t,e),v(\"separator\",r,t,e),v(\"nGramWidths\",r,t,e),v(\"leftPad\",r,t,e),v(\"rightPad\",r,t,e),v(\"padWidth\",r,t,e),v(\"preserveShortSequences\",r,t,e));return[o,s]}case\"StringSplit\":{let{indices:o,values:s,shape:i}=n.string.stringSplit(v(\"input\",r,t,e),v(\"delimiter\",r,t,e),v(\"skipEmpty\",r,t,e));return[o,s,i]}case\"StringToHashBucketFast\":return[n.string.stringToHashBucketFast(v(\"input\",r,t,e),v(\"numBuckets\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var _F=(r,t,e,n=ae)=>{switch(r.op){case\"Cast\":return[n.cast(v(\"x\",r,t,e),v(\"dtype\",r,t,e))];case\"ExpandDims\":{let o=v(\"axis\",r,t,e);return[n.expandDims(v(\"x\",r,t,e),o)]}case\"Squeeze\":{let o=v(\"axis\",r,t,e);return[n.squeeze(v(\"x\",r,t,e),o)]}case\"Reshape\":return[n.reshape(v(\"x\",r,t,e),v(\"shape\",r,t,e))];case\"EnsureShape\":return[n.ensureShape(v(\"x\",r,t,e),v(\"shape\",r,t,e))];case\"MirrorPad\":return[n.mirrorPad(v(\"x\",r,t,e),v(\"padding\",r,t,e),v(\"mode\",r,t,e))];case\"PadV2\":case\"Pad\":return[n.pad(v(\"x\",r,t,e),v(\"padding\",r,t,e),v(\"constantValue\",r,t,e))];case\"SpaceToBatchND\":{let o=v(\"blockShape\",r,t,e),s=v(\"paddings\",r,t,e);return[n.spaceToBatchND(v(\"x\",r,t,e),o,s)]}case\"BatchToSpaceND\":{let o=v(\"blockShape\",r,t,e),s=v(\"crops\",r,t,e);return[n.batchToSpaceND(v(\"x\",r,t,e),o,s)]}case\"DepthToSpace\":{let o=v(\"blockSize\",r,t,e),s=v(\"dataFormat\",r,t,e).toUpperCase();return[n.depthToSpace(v(\"x\",r,t,e),o,s)]}case\"BroadcastTo\":return[n.broadcastTo(v(\"x\",r,t,e),v(\"shape\",r,t,e))];case\"BroadcastArgs\":return[n.broadcastArgs(v(\"s0\",r,t,e),v(\"s1\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function Nk(r,t,e,n,o=B){let s=((i,a,u)=>{switch(i.category){case\"arithmetic\":return o(()=>nF(i,a,u));case\"basic_math\":return o(()=>oF(i,a,u));case\"control\":return cF(i,a,u);case\"convolution\":return o(()=>mF(i,a,u));case\"creation\":return o(()=>fF(i,a,u));case\"dynamic\":return dF(i,a,u);case\"evaluation\":return o(()=>hF(i,a,u));case\"image\":return o(()=>yF(i,a,u));case\"graph\":return o(()=>gF(i,a,u));case\"logical\":return o(()=>bF(i,a,u));case\"matrices\":return o(()=>wF(i,a,u));case\"normalization\":return o(()=>IF(i,a,u));case\"ragged\":return o(()=>CF(i,a,u));case\"reduction\":return o(()=>vF(i,a,u));case\"slice_join\":return o(()=>SF(i,a,u));case\"sparse\":return o(()=>NF(i,a,u));case\"spectral\":return o(()=>kF(i,a,u));case\"string\":return o(()=>TF(i,a,u));case\"transformation\":return o(()=>_F(i,a,u));case\"hash_table\":return xF(i,a,u,n);case\"custom\":let l=zb(i.op);if(l&&l.customExecutor)return l.customExecutor(new Zb(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 Kh=class{constructor(t={},e={},n={},o={},s){this.weightMap=t,this.tensorArrayMap=e,this.tensorListMap=n,this.functionMap=o,this.parseNodeNameCache=s,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 kk(r,t,e,n){let o=new Set,s=[],i=null,a=null,u=new Set,l=new Set(Object.keys(r).map(m=>vn(m)[0]));n=n||[];let c=new Set(n.map(m=>vn(m.name)[0])),p=[...t];for(;p.length>0;){let m=p.pop();if((Ku(m)||jQ(m)||XQ(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.has(m.name)&&!c.has(m.name)){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 EF(r,t){let{usedNodes:e,inputs:n}=t,o=Object.keys(n).map(g=>vn(g)[0]).map(g=>r.nodes[g]),s=r.initNodes||[],i=g=>e.has(typeof g==\"string\"?g:g.name);function a(g){return[...new Map(g.map(x=>[x.name,x])).values()]}let u=a([...o,...r.weights,...s]).filter(i),l=a([...u,...Object.values(r.nodes)]).filter(i),c=new Map(l.map(g=>[g.name,g])),p={};for(let g of l){p[g.name]=p[g.name]||0;for(let x of g.children)i(x)||(p[x.name]=Number.POSITIVE_INFINITY),p[x.name]=(p[x.name]||0)+1}let m=Object.entries(p).filter(([,g])=>g===0).map(([g])=>g),f=[...m];for(;m.length>0;){let g=m.pop(),x=c.get(g);for(let b of x.children.filter(i))--p[b.name]===0&&(f.push(b.name),m.push(b.name))}let d=f.map(g=>c.get(g)),h=WQ(d,u);return UQ(h,u),h}function WQ(r,t){let e=new Map(r.map(i=>[i.name,i])),n=t.map(i=>i.name),o=new Set(n);for(;n.length>0;){let i=n.pop(),a=e.get(i);for(let u of a.children)!e.has(u.name)||o.has(u.name)||(o.add(u.name),n.push(u.name))}return r.filter(i=>o.has(i.name))}var ad=class extends Error{constructor(t){super(`NodesExecutionOrderError: ${t}`)}};function UQ(r,t){let e=new Map(r.map((a,u)=>[a.name,u])),n=new Set(t.map(a=>a.name)),o=a=>n.has(typeof a==\"string\"?a:a.name),s=new Set(r.map(a=>a.name)),i=a=>s.has(typeof a==\"string\"?a:a.name);for(let a of r){for(let u of a.children.filter(i)){if(!e.has(u.name))throw new ad(`Child ${u.name} of node ${a.name} is unreachable.`);if(e.get(a.name)>e.get(u.name))throw new ad(`Node ${a.name} is scheduled to run after its child ${u.name}.`)}if(!o(a))for(let u of a.inputs){if(!e.has(u.name))throw new ad(`Input ${u.name} of node ${a.name} is unreachable.`);if(e.get(u.name)>e.get(a.name))throw new ad(`Node ${a.name} is scheduled to run before its input ${u.name}.`)}}}function AF(r){let t=new Map(r.map((a,u)=>[a.name,u])),e=Number.MAX_SAFE_INTEGER,n=r.map((a,u)=>Ku(a)?e:u),o=a=>{let u=n[t.get(a.name)];return u==null?-1:u},s=r.map((a,u)=>a.children.map(o).reduce((l,c)=>Math.max(l,c),n[u])),i=new Map;for(let a=0;at[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),{})}constructor(t,e){this.graph=t,this.parent=e,this.compiledMap=new Map,this.parseNodeNameCache=new Map,this._weightMap={},this.SEPARATOR=\",\",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 op(t.functions[n],this)})}getCompilationKey(t,e){let n=t.map(s=>s.name).sort(),o=e.map(s=>s.name).sort();return n.join(this.SEPARATOR)+\"--\"+o.join(this.SEPARATOR)}compile(t,e){let n=kk(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 l=e.map(p=>p.name),c=Object.keys(t);throw new Error(`Cannot compute the outputs [${l}] from the provided inputs [${c}]. Missing the following inputs: [${o}]`)}let a=EF(this.graph,n),u=AF(a);return{orderedNodes:a,nodeLiveUntilMap:u}}cloneAndKeepTensor(t){if(t==null)return null;let e=t.clone();return $e(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(m=>this.graph.nodes[vn(m)[0]]),s=e.map(m=>vn(m)[0]),i=new Set(s),a=s.map(m=>this.graph.nodes[m]);a.length===0&&(a=this._outputs);let u=this.getCompilationKey(o,a),l=this.compiledMap.get(u);l==null&&(l=this.compile(t,a),this.compiledMap.set(u,l));try{this.keepIntermediateTensors=L().getBool(\"KEEP_INTERMEDIATE_TENSORS\")}catch(m){this.keepIntermediateTensors=!1,console.warn(m.message)}let c={},p={};return B(()=>{let m=new Kh(this.weightMap,c,p,this.functionExecutorMap,this.parseNodeNameCache),f=Object.assign({},this.weightMap);this.keepIntermediateTensors&&(this.clonedTensorsMap=this.cloneTensorMap(this.weightMap)),Object.keys(t).forEach(x=>{let[b,w]=vn(x,m),I=[];I[w]=t[x],f[b]=I,this.keepIntermediateTensors&&(this.clonedTensorsMap[b]=this.cloneTensorList(I))});let d=this.getFrozenTensorIds(f),{orderedNodes:h,nodeLiveUntilMap:g}=l;for(let x of h){if(f[x.name])continue;let b=Nk(x,f,m,this._resourceManager);if(y.isPromise(b))throw new Error(`The execution of the op '${x.op}' returned a promise. Please use model.executeAsync() instead.`);f[x.name]=b,this.keepIntermediateTensors&&(this.clonedTensorsMap[x.name]=this.cloneTensorList(b)),this.checkTensorForDisposalWithNodeLiveUntilInfo(x,f,m,d,i,g.get(x.name))}return this.parent==null&&m.dispose(d),e.map(x=>pr(x,f,m))})}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){if(!(Ku(e)||i.has(t))){for(let u of n[t])u!=null&&(a[u.id]=(a[u.id]||0)+e.children.length);for(let u of e.inputs){if(Ku(u))continue;let l=nk(u.name,n,o);if(l!=null)for(let c of l){if(!c||c.kept||s.has(c.id))continue;let p=a[c.id];p===1?(c.dispose(),delete a[c.id]):p!=null&&a[c.id]--}}}}checkTensorForDisposalWithNodeLiveUntilInfo(t,e,n,o,s,i){function a(u){return Ku(u)||s.has(u.name)}if(!(Ku(t)||i==null))for(let u of i){if(a(u))continue;let l=nk(u.name,e,n);for(let c of l)!c||c.kept||o.has(c.id)||c.dispose()}}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=L().getBool(\"KEEP_INTERMEDIATE_TENSORS\")}catch(m){this.keepIntermediateTensors=!1,console.warn(m.message)}let i=new Kh(this.weightMap,o,s,this.functionExecutorMap,this.parseNodeNameCache);this.keepIntermediateTensors&&(this.clonedTensorsMap=this.cloneTensorMap(this.weightMap));let a=await this.executeWithControlFlow(t,i,e,n),u=e.map(m=>pr(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(I=>this.graph.nodes[vn(I)[0]]),a=n.map(I=>vn(I)[0]),u=new Set(a),l=a.map(I=>this.graph.nodes[I]);l.length===0&&(l=this._outputs);let{usedNodes:c,missingInputs:p,dynamicNode:m,syncInputs:f}=kk(t,l,this.weightMap,this._initNodes),d=[...i,...this.graph.weights,...this._initNodes||[]].map(I=>({node:I,contexts:e.currentContext})),h=Object.assign({},this.weightMap);Object.keys(t).forEach(I=>{let[N,E]=vn(I),A=[];A[E]=t[I],h[N]=A});let g={},x=this.getFrozenTensorIds(h),b={};for(;d.length>0;){let I=this.processStack(i,d,e,h,b,x,u,g,c);await Promise.all(I)}m==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 w=l.filter(I=>!Ku(I)&&!pr(I.name,h,e)).map(I=>I.name);if(w.length>0){let I=\"\";throw m!=null&&(I=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${f}]`),new Error(`Cannot compute the outputs [${w}] from the provided inputs [${s}]. Consider providing the following inputs: [${p}]. ${I}`)}return h}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\"&&v(\"isConstant\",p.node,o,n)&&([m]=Ii(p.node.name,n)),o[p.node.name]==null){let f=Nk(p.node,o,n,this._resourceManager);m||([m]=Ii(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]=Ii(a.name,n);s[u]||!i.has(a.name)||(a.op===\"Merge\"?a.inputNames.some(l=>!!pr(l,o,n))&&(s[u]=!0,e.push({contexts:n.currentContext,node:a})):a.inputNames.every(l=>!!pr(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]=vn(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]=vn(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]=vn(e);if(!this.graph.nodes[n])throw new Error(`The output '${e}' is not found in the graph`)})}};var ew=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 YQ=\"?tfjs-format=file\",ZQ=\"model.json\",jh=class{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}constructor(t,e={},n=Lr){this.modelUrl=t,this.loadOptions=e,this.version=\"n/a\",this.io=n,e==null&&(this.loadOptions={}),this.resourceManager=new ew}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 op(qh.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=qh.Instance.transformGraph(t.modelInitializer);this.initializer=new op(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 Ot?[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 Ot)&&!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&&Tt(this.resourceIdToCapturedInput)),this.resourceManager.dispose()}};async function JQ(r,t={},e=Lr){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=ttt(r));let n=new jh(r,t,e);return await n.load(),n}function QQ(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=Lr.getWeightSpecs(n.weightsManifest),i=Lr.getModelArtifactsForJSONSync(n,s,o);t=Lr.fromMemorySync(i)}else if(\"load\"in r)t=r;else if(\"modelTopology\"in r&&\"weightSpecs\"in r&&\"weightData\"in r)t=Lr.fromMemorySync(r);else throw new Error(\"Unknown model format\");let e=new jh(t);return e.load(),e}function ttt(r){return r.endsWith(\"/\")||(r=r+\"/\"),`${r}${ZQ}${YQ}`}var DF=\"4.7.0\";var ZF={};Kt(ZF,{CSVDataset:()=>cd,Dataset:()=>vi,FileDataSource:()=>hd,TextLineDataset:()=>ud,URLDataSource:()=>gd,array:()=>VF,csv:()=>qF,func:()=>KF,generator:()=>jF,microphone:()=>YF,version_data:()=>Kk,webcam:()=>XF,zip:()=>GF});var BF=Xl(bh());var MF=Xl(bh());function $F(r,t){return rw(r,t)}function rw(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(ju(r)){let s=Array.isArray(r)?[]:{};n.add(r);for(let i in r){let a=r[i],u=rw(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 RF(r,t=_k){return FF(r,t)}function FF(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(ju(n)){let s=Array.isArray(n)?[]:{};e.add(n);for(let i in n){let a=r.map(l=>l[i]),u=FF(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 _k(r){return r===null?null:ju(r[0])?{value:null,recurse:!0}:{value:r,recurse:!1}}async function nw(r,t){let e=new Map;rw(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 rw(r,t,e)}function ju(r){let t=!1;if(L().get(\"IS_BROWSER\"))t=r instanceof TextDecoder;else{let{StringDecoder:e}=Tk();t=r instanceof e}return r!=null&&!ArrayBuffer.isView(r)&&(Array.isArray(r)||typeof r==\"object\"&&!(r instanceof Ot)&&!(r instanceof Promise)&&!t)}function OF(r){return r==null||ett(r)||Array.isArray(r)||typeof r==\"object\"&&r instanceof Ot||y.isTypedArray(r)}function ett(r){return r===null||typeof r!=\"object\"&&typeof r!=\"function\"}function PF(r){return $F(r,rtt)}function rtt(r){return r instanceof Ot?{value:r.clone(),recurse:!1}:ju(r)?{value:null,recurse:!0}:{value:r,recurse:!1}}var ld=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 sp=class extends ld{constructor(){super(sp.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 Fk(this,t,e)}columnMajorBatch(t,e=!0,n=_k){return this.rowMajorBatch(t,e).map(s=>RF(s,n))}concatenate(t,e){return new sw(Vk([this,t]),e)}take(t){return t<0||t==null?this:new Rk(this,t)}skip(t){return t<0||t==null?this:new $k(this,t)}prefetch(t){return new iw(this,t)}shuffle(t,e){return new Bk(this,t,e)}serial(){return new Dk(this)}},Ek=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:PF(t),done:!1}}},Ak=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}}},Dk=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()}},$k=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()}},Fk=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}}},Ok=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;Tt(t.value)}}},Pk=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=So.getTensorsInContainer(t.value),n=this.transform(t.value),o=So.getTensorsInContainer(n);for(let s of e)So.isTensorInList(s,o)||s.dispose();return{value:n,done:!1}}},Mk=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}}}},ow=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=So.getTensorsInContainer(t.value),n=await this.transform(t.value),o=So.getTensorsInContainer(n);for(let s of e)So.isTensorInList(s,o)||s.dispose();return{value:n,done:!1}}},ip=class extends tr{constructor(){super(),this.outputQueue=new sp,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}}},Lk=class extends ip{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=So.getTensorsInContainer(t.value),n=this.transform(t.value),o=So.getTensorsInContainer(n);this.outputQueue.pushAll(n);for(let s of e)So.isTensorInList(s,o)||s.dispose();return!0}},sw=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}},Ll;(function(r){r[r.FAIL=0]=\"FAIL\",r[r.SHORTEST=1]=\"SHORTEST\",r[r.LONGEST=2]=\"LONGEST\"})(Ll||(Ll={}));var zk=class extends tr{constructor(t,e=Ll.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 nw(this.iterators,o);if(e===n)return{value:null,done:!0};if(n>0)switch(this.mismatchMode){case Ll.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case Ll.SHORTEST:return{value:null,done:!0};case Ll.LONGEST:default:}return this.count++,{value:s,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}},iw=class extends tr{constructor(t,e){super(),this.upstream=t,this.bufferSize=e,this.buffer=new ld(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()}},Bk=class extends iw{constructor(t,e,n){super(t,e),this.upstream=t,this.windowSize=e,this.upstreamExhausted=!1,this.random=MF.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 vi=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,ntt),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=Xh(async()=>({value:await e.iterator(),done:!1}));return LF(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=BF.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()}};vi.MAX_BUFFER_SIZE=1e4;function $n(r,t=null){return new class extends vi{constructor(){super(...arguments),this.size=t}async iterator(){return r()}}}function VF(r){return $n(async()=>Vk(r),r.length)}function GF(r){if(!ju(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 nw(r,n=>{if(n instanceof vi)return{value:n.iterator(),recurse:!1};if(ju(n))return{value:null,recurse:!0};throw new Error(\"Leaves of the structure passed to zip() must be Datasets, not primitives.\")});return zF(e,Ll.SHORTEST)},t)}function ntt(r){if(r===null)return null;let t=r[0];return OF(t)?{value:ott(r),recurse:!1}:{value:null,recurse:!0}}function ott(r){if(r.length===0)throw new Error(\"Can't make a batch of zero elements.\");return r[0]instanceof Ot?qe(r):sr(r)}var ud=class extends vi{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 aw='\"',Yh=Symbol(\"out\"),WF=Symbol(\"field\"),lw=Symbol(\"quote\"),Gk=Symbol(\"quoteafterquote\"),UF=Symbol(\"quoteinquote\"),cd=class extends vi{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}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 ud(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 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(!L().get(\"IS_BROWSER\"))throw new Error(\"microphone API is only supported in browser environment.\");let e=new pd(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),sr(n,e)}};var md=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=fi([i,s,u,a],[1,4])}else this.cropBox=fi([0,0,1,1],[1,4])}summary(){return\"webcam\"}static async create(t,e={}){if(!L().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 md(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=Ay.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=ar(Q(t,\"float32\"),0),n;n=hn.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 fd=class{};var Zh=class extends tr{split(t){return new Wk(this,t)}},Wk=class extends Zh{constructor(t,e){super(),this.upstream=t,this.impl=new Uk(t,e)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},Uk=class extends ip{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 uw=class extends tr{decodeUTF8(){return new Hk(this)}},Hk=class extends Zh{constructor(t){super(),this.upstream=t,this.impl=new qk(t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},qk=class extends ip{constructor(t){if(super(),this.upstream=t,L().get(\"IS_BROWSER\"))this.decoder=new TextDecoder(\"utf-8\");else{let{StringDecoder:e}=Tk();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 L().get(\"IS_BROWSER\")?n=this.decoder.decode(e,{stream:!0}):n=this.decoder.write(Buffer.from(e.buffer)),this.outputQueue.push(n),!0}};var dd=class extends uw{constructor(t,e={}){super(),this.file=t,this.options=e,y.assert(t instanceof Uint8Array||(L().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 HF(r,t={},e){let n,o;typeof r==\"string\"?n=r:(n=r.url,o=stt(r));let s=await(e||y.fetch)(n,o);if(s.ok){let i=new Uint8Array(await s.arrayBuffer());return new dd(i,t)}else throw new Error(s.statusText)}var stt=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 cw(r){return typeof r==\"string\"&&r.slice(0,7)===\"file://\"}var hd=class extends fd{constructor(t,e={}){super(),this.input=t,this.options=e}async iterator(){if(cw(this.input)&&L().get(\"IS_NODE\")){let t=pw();this.input=t.readFileSync(this.input.slice(7))}return new dd(this.input,this.options)}};var gd=class extends fd{constructor(t,e={}){super(),this.url=t,this.fileOptions=e}async iterator(){return cw(this.url)?new hd(this.url,this.fileOptions).iterator():HF(this.url,this.fileOptions)}};function qF(r,t={}){return new cd(new gd(r),t)}function KF(r){let t=Xh(r);return $n(async()=>t)}function jF(r){return $n(async()=>{let t=await r();return Xh(()=>t.next())})}async function XF(r,t){return md.create(r,t)}async function YF(r){return pd.create(r)}var Kk=\"4.7.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 itt=jr.whereImpl,Xu=class extends Uo{nextDataId(){return Xu.nextDataId++}constructor(){super(),this.blockSize=48,this.firstUse=!0,this.data=new Da(this,Wn())}write(t,e,n){this.firstUse&&(this.firstUse=!1,L().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 y.convertBackendValuesAndArrayBuffer(this.data.get(t).values,e)}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 Wn().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 itt(t.shape,e)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}};Xu.nextDataId=0;var Nw={};Kt(Nw,{addImpl:()=>Yk,bincountImpl:()=>bd,bincountReduceImpl:()=>mw,bitwiseAndImpl:()=>Zk,castImpl:()=>Xk,ceilImpl:()=>Jk,concatImpl:()=>ap,equalImpl:()=>Qk,expImpl:()=>eT,expm1Impl:()=>nT,floorDivImpl:()=>sT,floorImpl:()=>oT,gatherNdImpl:()=>fw,gatherV2Impl:()=>dw,greaterEqualImpl:()=>aT,greaterImpl:()=>iT,lessEqualImpl:()=>uT,lessImpl:()=>lT,linSpaceImpl:()=>hw,logImpl:()=>cT,maxImpl:()=>gw,maximumImpl:()=>pT,minimumImpl:()=>mT,multiplyImpl:()=>Jh,negImpl:()=>fT,notEqualImpl:()=>dT,prodImpl:()=>hT,raggedGatherImpl:()=>xw,raggedRangeImpl:()=>yw,raggedTensorToTensorImpl:()=>bw,rangeImpl:()=>up,rsqrtImpl:()=>gT,scatterImpl:()=>Si,sigmoidImpl:()=>_O,simpleAbsImpl:()=>jk,sliceImpl:()=>cp,sparseFillEmptyRowsImpl:()=>ww,sparseReshapeImpl:()=>Iw,sparseSegmentReductionImpl:()=>Cd,sqrtImpl:()=>DO,squaredDifferenceImpl:()=>yT,staticRegexReplaceImpl:()=>bT,stridedSliceImpl:()=>Cw,stringNGramsImpl:()=>pp,stringSplitImpl:()=>mp,stringToHashBucketFastImpl:()=>fp,subImpl:()=>IT,tileImpl:()=>vw,topKImpl:()=>Sw,transposeImpl:()=>wd,uniqueImpl:()=>dp});function jk(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=jk(o),e.makeOutput(n,t.shape,t.dtype)},JF={kernelName:$i,backendName:\"cpu\",kernelFunc:att};function Jt(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 I=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[I],o[E])}return[c,i]}}function Cr(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 QF={kernelName:zp,backendName:\"cpu\",kernelFunc:Cr};function xd(r,t,e=\"float32\"){if(e===\"complex64\"){let o=xd(r,t,\"float32\"),s=xd(r,t,\"float32\");return Cr({inputs:{real:o,imag:s},backend:r})}let n=y.makeZerosTypedArray(y.sizeFromShape(t),e);return r.makeTensorInfo(t,e,n)}function Zr(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 tO={kernelName:bo,backendName:\"cpu\",kernelFunc:Zr};function Mo(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 eO={kernelName:Yp,backendName:\"cpu\",kernelFunc:Mo};function Xk(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]=Jt((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 Lo(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dtype:s}=n;if(s===\"complex64\"){if(o.dtype===\"complex64\")return Zr({inputs:{x:o},backend:e});let c=xd(e,o.shape,o.dtype),p=Lo({inputs:{x:o},backend:e,attrs:{dtype:\"float32\"}}),m=Cr({inputs:{real:p,imag:c},backend:e});return e.disposeIntermediateTensorInfo(c),e.disposeIntermediateTensorInfo(p),m}if(o.dtype===\"complex64\"){let c=Mo({inputs:{input:o},backend:e}),p=Lo({inputs:{x:c},backend:e,attrs:{dtype:s}});return e.disposeIntermediateTensorInfo(c),p}if(!y.hasEncodingLoss(o.dtype,s)){let c=Zr({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]=Xk(i,o.shape,o.dtype,s);return e.makeTensorInfo(a,u,l)}var rO={kernelName:xo,backendName:\"cpu\",kernelFunc:Lo};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\"?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=Lo({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=Lo({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,I=u.data.get(b.dataId).values,[N,E,A]=e(i.shape,a.shape,f,d,w,I),D=u.makeTensorInfo(A,\"float32\",N),F=u.makeTensorInfo(A,\"float32\",E),P=Cr({inputs:{real:D,imag:F},backend:u});return u.disposeIntermediateTensorInfo(l),u.disposeIntermediateTensorInfo(h),u.disposeIntermediateTensorInfo(D),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 yd(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,I=y.computeStrides(e);if(f.length+d.length===0)for(let N=0;NA[G]=0);let D=y.locToIndex(A,x,b),F=E.slice(-w);d.forEach(G=>F[G]=0);let P=y.locToIndex(F,w,I),V=r(h[D*2],h[D*2+1],g[P*2],g[P*2+1]);p[N]=V.real,m[N]=V.imag}return[p,m,a]}}var Yk=Jt((r,t)=>r+t),ltt=yd((r,t,e,n)=>({real:r+e,imag:t+n})),Ca=oe(ao,Yk,ltt),nO={kernelName:ao,backendName:\"cpu\",kernelFunc:Ca};function bd(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 mw(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}var Zk=Jt((r,t)=>r&t),utt=oe(Pa,Zk),oO={kernelName:Pa,backendName:\"cpu\",kernelFunc:utt};function Er(r){return(t,e,n)=>{let o=y.getArrayFromDType(e,t.length);for(let s=0;s{let{x:i}=n;tt(i,r);let a=s,u=a.data.get(i.dataId).values,l;if(i.dtype===\"string\"){if(!Array.isArray(u))throw new Error(\"String tensor's value was not an instance of Array\");l=S.fromUint8ToStringArray(u)}else l=u;let c=e||i.dtype,p=t(l,c,o);return a.makeTensorInfo(i.shape,c,p)}}var Jk=Er(r=>Math.ceil(r)),ctt=Rn(rs,Jk),sO={kernelName:rs,backendName:\"cpu\",kernelFunc:ctt};function ap(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),tT=oe(Wa,Qk,null,\"bool\"),iO={kernelName:Wa,backendName:\"cpu\",kernelFunc:tT};var eT=Er(r=>Math.exp(r)),rT=Rn(ds,eT,\"float32\"),aO={kernelName:ds,backendName:\"cpu\",kernelFunc:rT};var nT=Er(r=>Math.expm1(r)),ptt=Rn(hs,nT),lO={kernelName:hs,backendName:\"cpu\",kernelFunc:ptt};var oT=Er(r=>Math.floor(r)),mtt=Rn(gs,oT),uO={kernelName:gs,backendName:\"cpu\",kernelFunc:mtt};var sT=Jt((r,t)=>Math.floor(r/t)),ftt=oe(xs,sT,null,\"int32\"),cO={kernelName:xs,backendName:\"cpu\",kernelFunc:ftt};function fw(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),dtt=oe(qa,iT,null,\"bool\"),pO={kernelName:qa,backendName:\"cpu\",kernelFunc:dtt};var aT=Jt((r,t)=>r>=t?1:0),htt=oe(bs,aT,null,\"bool\"),mO={kernelName:bs,backendName:\"cpu\",kernelFunc:htt};var lT=Jt((r,t)=>rr<=t?1:0),xtt=oe(ja,uT,null,\"bool\"),dO={kernelName:ja,backendName:\"cpu\",kernelFunc:xtt};function hw(r,t,e){let n=(t-r)/(e-1),o=y.makeZerosTypedArray(e,\"float32\");o[0]=r;for(let s=1;sMath.log(r)),ytt=Rn(Ss,cT),hO={kernelName:Ss,backendName:\"cpu\",kernelFunc:ytt};function gw(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 pT=Jt((r,t)=>Math.max(r,t)),btt=oe(_s,pT),gO={kernelName:_s,backendName:\"cpu\",kernelFunc:btt};var mT=Jt((r,t)=>Math.min(r,t)),wtt=oe($s,mT),xO={kernelName:$s,backendName:\"cpu\",kernelFunc:wtt};var Jh=Jt((r,t)=>r*t),Itt=yd((r,t,e,n)=>({real:r*e-t*n,imag:r*n+t*e})),lp=oe(Os,Jh,Itt),yO={kernelName:Os,backendName:\"cpu\",kernelFunc:lp};function fT(r,t,e){let n=y.createScalarValue(-1,e);return Jh([],t,n,r,e)}function Ctt(r){let{inputs:t,backend:e}=r,{x:n}=t;tt(n,\"neg\");let o=e.data.get(n.dataId).values,[s,i]=fT(o,n.shape,n.dtype);return e.makeTensorInfo(i,n.dtype,s)}var bO={kernelName:Vi,backendName:\"cpu\",kernelFunc:Ctt};var dT=Jt((r,t)=>r!==t?1:0),vtt=oe(el,dT,null,\"bool\"),wO={kernelName:el,backendName:\"cpu\",kernelFunc:vtt};function wd(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 CO={kernelName:Bs,backendName:\"cpu\",kernelFunc:Stt};function Ntt(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 ktt(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 Ttt(r,t,e,n){let o=[],s=0,i=t.length-1+e.length,a=new Array(i).fill(null).map(()=>[0]);ktt(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 vO(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)I=0;else if(I=Math.ceil(Math.abs((b-x)/w)),I>SO)throw new Error(`Requires ((limit - start) / delta) <= ${SO}`);m[g+1]=m[g]+I}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 zo.VALUE_ROWIDS:return this.calculateOutputIndexValueRowID(s,e,n,o);case zo.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: ${zo[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 zo.FIRST_DIM_SIZE:return t[0];case zo.VALUE_ROWIDS:throw new Error(\"Cannot handle VALUE_ROWIDS in first dimension.\");case zo.ROW_SPLITS:return this.rowPartitionValuesShapes[0][0]-1;default:throw new Error(`Cannot handle type ${zo[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=kO(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=la(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);NO(g,c,u),++f}h<0?(p=d+1,m=f):(p=d,m=f,f=m+1)}}};function NO(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 bw(r,t,e,n,o,s,i,a,u,l){return new Id(r,t,e,n,o,s,i,a,u,l).compute()}function up(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)),Dtt=Rn(js,gT),TO={kernelName:js,backendName:\"cpu\",kernelFunc:Dtt};function Si(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=u instanceof le?u: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))),xT=At(Qs,r=>1/(1+Math.exp(-r))),EO={kernelName:Qs,backendName:\"cpu\",kernelFunc:xT};function cp(r,t,e,n,o){let s=ze.isSliceContinous(n,t,e),i=y.sizeFromShape(e),a=y.computeStrides(n);if(s){let p=ze.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 Bo(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,size:i}=n;tt(o,\"slice\");let[a,u]=ze.parseSliceParams(o,s,i);ze.assertParamsValid(o,a,u);let l=e.data.get(o.dataId).values,c=cp(l,a,u,o.shape,o.dtype);return e.makeTensorInfo(u,o.dtype,c)}var AO={kernelName:qi,backendName:\"cpu\",kernelFunc:Bo};function ww(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,I)=>w*I,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 I=h;I=u[0])throw new Error(S.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(I,n[I],u[0]));for(let E=0;Ea)break}return xMath.sqrt(r)),$tt=At(ei,r=>Math.sqrt(r)),$O={kernelName:ei,backendName:\"cpu\",kernelFunc:$tt};var yT=Jt((r,t)=>{let e=r-t;return e*e}),Rtt=oe(oi,yT),RO={kernelName:oi,backendName:\"cpu\",kernelFunc:Rtt};var bT=Er((r,t)=>{let{pattern:e,replaceGlobal:n,rewrite:o}=t;return r.replace(new RegExp(e,n?\"g\":\"\"),o)}),Ftt=Rn(cc,bT),FO={kernelName:cc,backendName:\"cpu\",kernelFunc:Ftt};function Cw(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 pp(r,t,e,n,o,s,i,a){return new wT(e,n,o,s,i,a).compute(r,t)}function Ott(r,t,e,n){if(!r.length)return;if(t.length===0){for(let s=0;sr-t),Ptt=yd((r,t,e,n)=>({real:r-e,imag:t-n})),Qh=oe(si,IT,Ptt),OO={kernelName:si,backendName:\"cpu\",kernelFunc:Qh};function vw(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 PO(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));PO(r,t,m,f)}let o=r[t],s=e,i=n;for(y.swap(r,e,t),tg(r[n],o)>0&&y.swap(r,e,n);s0;)i=i-1}tg(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 Sw(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 Xu,1);var CT=At(ms,r=>r>=0?r:Math.exp(r)-1),LO={kernelName:ms,backendName:\"cpu\",kernelFunc:CT};function vT(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 ST(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]=Mtt(n.shape,o.shape,s,i,\"float32\");return e.makeTensorInfo(u,\"float32\",a)}var BO={kernelName:zs,backendName:\"cpu\",kernelFunc:ST};var NT=At(Gs,r=>Math.max(0,r)),VO={kernelName:Gs,backendName:\"cpu\",kernelFunc:NT};var kT=At(Hs,r=>Math.min(Math.max(0,r),6)),GO={kernelName:Hs,backendName:\"cpu\",kernelFunc:kT};function hp(r,t,e,n,o){if(e===\"linear\")return Zr({inputs:{x:t},backend:r});if(e===\"relu\")return NT({inputs:{x:t},backend:r});if(e===\"elu\")return CT({inputs:{x:t},backend:r});if(e===\"relu6\")return kT({inputs:{x:t},backend:r});if(e===\"prelu\")return ST({inputs:{x:t,alpha:n},backend:r});if(e===\"leakyrelu\")return vT({inputs:{x:t},backend:r,attrs:{alpha:o}});if(e===\"sigmoid\")return xT({inputs:{x:t},backend:r});throw new Error(`Activation ${e} has not been implemented for the CPU backend.`)}function Qt(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 WO={kernelName:Ui,backendName:\"cpu\",kernelFunc:Qt};function TT(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=Hr.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 I=i?[g,c,m]:[g,m,c],N=a?[x,f,p]:[x,p,f],E=Qt({inputs:{x:o},backend:e,attrs:{shape:I}}),A=Qt({inputs:{x:s},backend:e,attrs:{shape:N}}),D=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),[K,X,Z]=i?[q[0],1,q[1]]:[q[0],q[1],1],[et,nt,st]=a?[1,H[1],H[0]]:[H[1],1,H[0]],at=F*P,ot=wt([V,F,P],E.dtype),it=ot.values,mt=e.blockSize;for(let gt=0;gtMath.acos(r)),qO={kernelName:qo,backendName:\"cpu\",kernelFunc:ztt};var Btt=At(Ko,r=>Math.acosh(r)),KO={kernelName:Ko,backendName:\"cpu\",kernelFunc:Btt};function Vtt(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=I)}f[g]=w}return l.forEach(g=>e.disposeIntermediateTensorInfo(g)),e.makeTensorInfo(c,\"int32\",f)}var ZO={kernelName:Ri,backendName:\"cpu\",kernelFunc:Utt};function Htt(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=Ge({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 JO={kernelName:Fi,backendName:\"cpu\",kernelFunc:Htt};var qtt=At(Xo,r=>Math.asin(r)),QO={kernelName:Xo,backendName:\"cpu\",kernelFunc:qtt};var Ktt=At(Yo,r=>Math.asinh(r)),tP={kernelName:Yo,backendName:\"cpu\",kernelFunc:Ktt};var jtt=At(Zo,r=>Math.atan(r)),eP={kernelName:Zo,backendName:\"cpu\",kernelFunc:jtt};var Xtt=Jt((r,t)=>Math.atan2(r,t)),Ytt=oe(Qo,Xtt),rP={kernelName:Qo,backendName:\"cpu\",kernelFunc:Ytt};var Ztt=At(Jo,r=>Math.atanh(r)),nP={kernelName:Jo,backendName:\"cpu\",kernelFunc:Ztt};function vd(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 I=0;IX?X=mt:s===\"avg\"&&(Z+=mt,et++)}if(isNaN(X))break}let nt=G+W*w+A;g[nt]=s===\"avg\"?Z/et:X}}}return h}function kw(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=K,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 Tw(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),I=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],D=o.outShape[4];for(let F=0;FRt?Rt=De:s===\"avg\"&&(Dt+=De,Ht++),isNaN(Rt))break}if(isNaN(Rt))break}if(isNaN(Rt))break}let qt=Ct+G;I[qt]=s===\"avg\"?Dt/Math.max(Ht,1):Rt}}}}return w}function oP(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=st,q=K*c*p+Z*c+nt)}}}e.set(q,h,x,N,F,g)}}}return e}function Jtt(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=Zr({inputs:{x:o},backend:e});else{let m=e.data.get(o.dataId).values,f=y.computeStrides(o.shape),d=vd(m,o.shape,o.dtype,f,c,\"avg\");p=e.makeTensorInfo(c.outShape,o.dtype,d.values)}return p}var sP={kernelName:ts,backendName:\"cpu\",kernelFunc:Jtt};function Qtt(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=Tw(p,o.shape,o.dtype,y.computeStrides(o.shape),c,\"avg\");return e.makeTensorInfo(m.shape,\"float32\",m.values)}var iP={kernelName:Oi,backendName:\"cpu\",kernelFunc:Qtt};function tet(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,I=c.effectiveFilterDepth,N=c.effectiveFilterHeight,E=c.effectiveFilterWidth,A=I-1-c.padInfo.front,D=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(ot)!==ot))for(let it=0;it=c.outHeight||Math.floor(mt)!==mt))for(let gt=0;gt=c.outWidth||Math.floor(Ct)!==Ct)continue;let Rt=G.get(W,ot,mt,Ct,q);st+=Rt}}}P.set(st*V,W,H,K,X,q)}return e.makeTensorInfo(P.shape,P.dtype,P.values)}var aP={kernelName:Jl,backendName:\"cpu\",kernelFunc:tet};function eet(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,I=x-1-c.padInfo.top,N=wt(i.shape,\"float32\"),E=1/(f*d),A=e.data.get(o.dataId).values,D=wt(o.shape,\"float32\",A);for(let F=0;F=c.outHeight||Math.floor(X)!==X))for(let Z=0;Z=c.outWidth||Math.floor(et)!==et)continue;let nt=D.get(F,X,et,P);H+=nt}}N.set(H*E,F,V,G,P)}return e.makeTensorInfo(N.shape,N.dtype,N.values)}var lP={kernelName:Zl,backendName:\"cpu\",kernelFunc:eet};function ret(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,I=0,N=0,E=0,A=0;for(let D=0;D=g&&(I=0),N>=w&&(N=0),E>=x&&(E=0),A>=b&&(A=0);return e.makeTensorInfo(o.shape,o.dtype,h)}var uP={kernelName:ys,backendName:\"cpu\",kernelFunc:ret};function net(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=Qt({inputs:{x:o},backend:e,attrs:{shape:u}}),d=Ge({inputs:{x:f},backend:e,attrs:{perm:l}}),h=Qt({inputs:{x:d},backend:e,attrs:{shape:c}}),g=Bo({inputs:{x:h},backend:e,attrs:{begin:p,size:m}});return e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(h),g}var cP={kernelName:Pi,backendName:\"cpu\",kernelFunc:net};function oet(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=bd(a,u,s.dtype,s.shape,i);return e.makeTensorInfo([i],s.dtype,l)}var pP={kernelName:Oa,backendName:\"cpu\",kernelFunc:oet};function set(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 mP={kernelName:Ql,backendName:\"cpu\",kernelFunc:set};var iet=At(yo,(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 Zr({inputs:{x:u[0]},backend:e});if(u[0].dtype===\"complex64\"){let h=u.map(I=>Mo({inputs:{input:I},backend:e})),g=u.map(I=>va({inputs:{input:I},backend:e})),x=Yu({inputs:h,backend:e,attrs:{axis:s}}),b=Yu({inputs:g,backend:e,attrs:{axis:s}}),w=Cr({inputs:{real:x,imag:b},backend:e});return h.forEach(I=>e.disposeIntermediateTensorInfo(I)),g.forEach(I=>e.disposeIntermediateTensorInfo(I)),e.disposeIntermediateTensorInfo(x),e.disposeIntermediateTensorInfo(b),w}let l=u.map(h=>{let x=[-1,y.sizeFromShape(h.shape.slice(s))];return Qt({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=ap(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 gP={kernelName:Mi,backendName:\"cpu\",kernelFunc:Yu};function _T(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\",I=new le(m.outShape,o.dtype),N=y.computeStrides(o.shape),E=y.computeStrides(s.shape),A=N[0],D=w?N[1]:N[2],F=w?N[2]:1,P=w?1:N[1],V=I.strides[0],G=w?I.strides[1]:I.strides[2],W=w?I.strides[2]:1,q=w?1:I.strides[1],H=e.data.get(o.dataId).values,K=e.data.get(s.dataId).values,X=I.values;for(let Z=0;Z=m.inHeight)continue;let gt=it*E[0],Ct=et+mt*D;for(let Rt=0;Rt=m.inWidth)continue;let ge=gt+qt*E[1],re=Ct+ce*F,xe=ge;for(let fe=0;fe=l.inDepth)continue;let Z=K*F[0],et=V+X*D[1];for(let nt=0;nt=l.inHeight)continue;let mt=Z+ot*F[1],gt=et+it*D[2];for(let Ct=0;Ct=l.inWidth)continue;let ce=mt+Ht*F[2],ge=gt+qt*l.inChannels,re=ce;for(let xe=0;xeMath.cos(r)),vP={kernelName:is,backendName:\"cpu\",kernelFunc:det};var het=At(as,r=>Math.cosh(r)),SP={kernelName:as,backendName:\"cpu\",kernelFunc:het};function get(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,I=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 K=0;K1?F*(p-1)+K*q:.5*(F+V)*(p-1);if(X<0||X>p-1){for(let Z=0;Z1?P*(m-1)+st*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,I=b.top,N=f.outChannels/f.inChannels,E=new le(f.outShape,o.dtype),A=e.data.get(o.dataId).values,D=e.data.get(s.dataId).values,F=E.values;for(let P=0;P=f.inHeight)continue;let Z=K*p[0],et=V+X*c[1];for(let nt=0;nt=f.inWidth)continue;let mt=Z+ot*p[1],gt=et+it*f.inChannels,Ct=st,Rt=mt;for(let Dt=0;Dt{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:I,strideWidth:N,filterHeight:E,filterWidth:A,dilationHeight:D,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&&it=0&>st&&(st=Dt)}}}let at=y.locToIndex([H,K,Z,nt],G,y.computeStrides(P));W[at]=st}}}return{dataId:u.write(y.toTypedArray(W,n.dtype),P,n.dtype),shape:P,dtype:n.dtype}}};var OP={kernelName:ou,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:I,filterHeight:N,filterWidth:E,dilationHeight:A,dilationWidth:D,outShape:F}=S.computeDilation2DInfo(n.shape,o.shape,i,a,\"NHWC\",u);y.assert(s.rank===F.length,()=>`Error in ${ou}, 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&&ot=0&&mtet&&(et=gt,nt=at,st=it)}}}V[nt][st][Z]+=P[W][q][K][Z]}}}return{dataId:l.write(y.toTypedArray(V,n.dtype),o.shape,o.dtype),shape:o.shape,dtype:o.dtype}}};var PP={kernelName:nu,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:I,filterHeight:N,filterWidth:E,dilationHeight:A,dilationWidth:D,outShape:F}=S.computeDilation2DInfo(n.shape,o.shape,i,a,\"NHWC\",u);y.assert(s.rank===F.length,()=>`Error in ${nu}, 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&&ot=0&&mtet&&(et=gt,nt=ot,st=mt)}}}V[W][nt][st][Z]+=P[W][q][K][Z]}}}return{dataId:l.write(y.toTypedArray(V,n.dtype),n.shape,n.dtype),shape:n.shape,dtype:n.dtype}}};function Net(r){let{inputs:t,backend:e,attrs:n}=r,{image:o}=t,{canvas:s,options:i}=n,{contextOptions:a,imageOptions:u}=i||{},l=(u==null?void 0:u.alpha)||1,c=(a==null?void 0:a.contextType)||\"2d\";if(c!==\"2d\")throw new Error(`Context type ${a.contextType} is not supported by the CPU backend.`);let p=s.getContext(c,(a==null?void 0:a.contextAttributes)||{});if(p==null)throw new Error(`Could not get the context with ${c} type.`);let[m,f]=o.shape.slice(0,2),d=o.shape.length===2?1:o.shape[2],h=e.data.get(o.dataId).values,g=o.dtype===\"float32\"?255:1,x=new Uint8ClampedArray(f*m*4);for(let w=0;w1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${A}.`)}else if(o.dtype===\"int32\"&&(A<0||A>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${A}.`);d===1?(I[0]=A*g,I[1]=A*g,I[2]=A*g):I[E]=A*g}let N=w*4;x[N+0]=Math.round(I[0]),x[N+1]=Math.round(I[1]),x[N+2]=Math.round(I[2]),x[N+3]=Math.round(I[3])}s.width=f,s.height=m;let b=new ImageData(x,f,m);return p.putImageData(b,0,0),o}var MP={kernelName:Zg,backendName:\"cpu\",kernelFunc:Net};function zl(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=Lo({inputs:{x:o},backend:e,attrs:{dtype:\"int32\"}}):a=Zr({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=Ge({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=xd(e,f,h),x=y.sizeFromShape(d),b=e.data.get(g.dataId).values,w=e.data.get(m.dataId).values;for(let I=0;I=0&&(m=zl({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 zP={kernelName:Wp,backendName:\"cpu\",kernelFunc:ket};function Tet(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=0?s[u]=a[u]:s[u]=a[u]*(l+1)}return e.makeTensorInfo(o.shape,\"float32\",s)}var BP={kernelName:Ga,backendName:\"cpu\",kernelFunc:Tet};var _et=S.ERF_P,Eet=S.ERF_A1,Aet=S.ERF_A2,Det=S.ERF_A3,$et=S.ERF_A4,Ret=S.ERF_A5,Fet=At(fs,r=>{let t=Math.sign(r),e=Math.abs(r),n=1/(1+_et*e);return t*(1-((((Ret*n+$et)*n+Det)*n+Aet)*n+Eet)*n*Math.exp(-e*e))}),VP={kernelName:fs,backendName:\"cpu\",kernelFunc:Fet};function Sd(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),Qt({inputs:{x:o},backend:e,attrs:{shape:a}})}var GP={kernelName:Li,backendName:\"cpu\",kernelFunc:Sd};var Oet=Jt((r,t)=>r/t),eg=oe(ps,Oet),rg={kernelName:ps,backendName:\"cpu\",kernelFunc:eg};function _w(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&&w=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=Qt({inputs:{x:o},backend:e,attrs:{shape:[f.batchSize,f.outerSize,f.dimSize,f.sliceSize]}}),h=Qt({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=dw(b,x,g);return e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(h),e.makeTensorInfo(f.outputShape,w.dtype,w.values)}var XP={kernelName:zi,backendName:\"cpu\",kernelFunc:Uet};function Het(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=Qt({inputs:{x:n},backend:e,attrs:{shape:[i,s]}}),u=_w(a,!0,e),l=Qt({inputs:{x:u},backend:e,attrs:{shape:n.shape}});return e.disposeIntermediateTensorInfo(a),e.disposeIntermediateTensorInfo(u),l}var YP={kernelName:Hp,backendName:\"cpu\",kernelFunc:Het};var qet=At(ws,r=>Number.isFinite(r)?1:0,\"bool\"),ZP={kernelName:ws,backendName:\"cpu\",kernelFunc:qet};var Ket=At(Is,r=>Math.abs(r)===1/0?1:0,\"bool\"),JP={kernelName:Is,backendName:\"cpu\",kernelFunc:Ket};var jet=At(Cs,r=>Number.isNaN(r)?1:0,\"bool\"),QP={kernelName:Cs,backendName:\"cpu\",kernelFunc:jet};function Xet(r){let{backend:t,attrs:e}=r,{start:n,stop:o,num:s}=e,i=hw(n,o,s);return t.makeTensorInfo([i.length],\"float32\",i)}var tM={kernelName:Xa,backendName:\"cpu\",kernelFunc:Xet};var Yet=At(Ns,r=>Math.log1p(r)),eM={kernelName:Ns,backendName:\"cpu\",kernelFunc:Yet};var Zet=Jt((r,t)=>r&&t),Jet=oe(Ya,Zet,null,\"bool\"),rM={kernelName:Ya,backendName:\"cpu\",kernelFunc:Jet};var Qet=At(Za,r=>r?0:1,\"bool\"),nM={kernelName:Za,backendName:\"cpu\",kernelFunc:Qet};var trt=Jt((r,t)=>r||t),ert=oe(Ja,trt,null,\"bool\"),oM={kernelName:Ja,backendName:\"cpu\",kernelFunc:ert};function rrt(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 I=p[x];w+=I*I}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=Zr({inputs:{x:o},backend:e});else{let m=e.data.get(o.dataId).values,f=y.computeStrides(o.shape),d=vd(m,o.shape,o.dtype,f,c,\"max\");p=e.makeTensorInfo(c.outShape,o.dtype,d.values)}return p}var lM={kernelName:Es,backendName:\"cpu\",kernelFunc:ort};function srt(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=Tw(p,o.shape,o.dtype,y.computeStrides(o.shape),c,\"max\");return e.makeTensorInfo(m.shape,\"float32\",m.values)}var uM={kernelName:Bi,backendName:\"cpu\",kernelFunc:srt};function irt(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=oP(p,c),f=c.strideDepth,d=c.strideHeight,h=c.strideWidth,g=c.dilationDepth,x=c.dilationHeight,b=c.dilationWidth,w=c.effectiveFilterDepth,I=c.effectiveFilterHeight,N=c.effectiveFilterWidth,E=w-1-c.padInfo.front,A=N-1-c.padInfo.left,D=I-1-c.padInfo.top,F=wt(s.shape,\"float32\"),P=e.bufferSync(o);for(let V=0;V=c.outDepth||Math.floor(st)!==st))for(let at=0;at=c.outHeight||Math.floor(ot)!==ot))for(let it=0;it=c.outWidth||Math.floor(mt)!==mt)continue;let gt=w*I*N-1-m.get(V,st,ot,mt,G),Ct=nt*I*N+at*N+it,Rt=gt===Ct?1:0;if(Rt===0)continue;let Dt=P.get(V,st,ot,mt,G);et+=Dt*Rt}}}F.set(et,V,W,q,H,G)}return e.makeTensorInfo(F.shape,F.dtype,F.values)}var cM={kernelName:au,backendName:\"cpu\",kernelFunc:irt};function art(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,kw(f,a.shape,a.dtype,m).values),h=m.strideHeight,g=m.strideWidth,x=m.dilationHeight,b=m.dilationWidth,w=m.effectiveFilterHeight,I=m.effectiveFilterWidth,N=I-1-m.padInfo.left,E=w-1-m.padInfo.top,A=wt(a.shape,\"float32\"),D=e.data.get(o.dataId).values,F=wt(o.shape,\"float32\",D);for(let P=0;P=m.outHeight||Math.floor(Z)!==Z))for(let et=0;et=m.outWidth||Math.floor(nt)!==nt)continue;let st=w*I-1-d.get(P,Z,nt,V),at=X*I+et,ot=st===at?1:0;if(ot===0)continue;let it=F.get(P,Z,nt,V);K+=it*ot}}A.set(K,P,G,W,V)}return e.makeTensorInfo(A.shape,A.dtype,A.values)}var pM={kernelName:iu,backendName:\"cpu\",kernelFunc:art};function mM(r,t,e,n,o){let s=y.computeStrides(t),i=vd(r,t,e,s,o,\"max\"),a=kw(r,t,e,o,!0,n);return[i.values,a.values]}var fM={kernelName:lu,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]=mM(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 lrt(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=Lo({inputs:{x:o},backend:e,attrs:{dtype:\"float32\"}});p.push(f);let d=eg({inputs:{a:f,b:m},backend:e});p.push(d);let h=zl({inputs:{x:d},backend:e,attrs:{axis:s,keepDims:i}});return p.forEach(g=>e.disposeIntermediateTensorInfo(g)),h}var dM={kernelName:As,backendName:\"cpu\",kernelFunc:lrt};function urt(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=Ge({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[I]+w[1]),u=s.map(w=>w[0]),l=s.map((w,I)=>w[0]+o.shape[I]),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]&&(I[E]=(l[E]-1)*2-I[E]+c);I=I.map((E,A)=>E-u[A]);let N=y.locToIndex(I,m,f);x[w]=p[N]}return{dataId:e.write(x,a,o.dtype),shape:a,dtype:o.dtype}}var gM={kernelName:Rs,backendName:\"cpu\",kernelFunc:crt};var prt=Jt((r,t)=>{let e=r%t;return r<0&&t<0||r>=0&&t>=0?e:(e+t)%t}),mrt=oe(Fs,prt),xM={kernelName:Fs,backendName:\"cpu\",kernelFunc:mrt};var bM=Xl(bh());function $T(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=DT({inputs:{x:o},backend:e,attrs:{reductionIndices:u,keepDims:!1}}),c=S.expandShapeToKeepDim(l.shape,u),p=Qt({inputs:{x:l},backend:e,attrs:{shape:c}}),m=Qh({inputs:{a:o,b:p},backend:e}),f=rT({inputs:{x:m},backend:e}),d=zl({inputs:{x:f},backend:e,attrs:{axis:u,keepDims:!1}}),h=Qt({inputs:{x:d},backend:e,attrs:{shape:c}}),g=eg({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 yM={kernelName:ni,backendName:\"cpu\",kernelFunc:$T};function frt(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:$T({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=Sd({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=Yu({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeIntermediateTensorInfo(c)),l}var _M={kernelName:Wi,backendName:\"cpu\",kernelFunc:RT};function Irt(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(I,d,h);g[N]=l[b]}return{dataId:e.write(g,a,o.dtype),shape:a,dtype:o.dtype}}var Ew={kernelName:Ms,backendName:\"cpu\",kernelFunc:Irt};var Crt=Jt((r,t)=>Math.pow(r,t)),vrt=oe(Ls,Crt),EM={kernelName:Ls,backendName:\"cpu\",kernelFunc:vrt};function Srt(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]=xw(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 AM={kernelName:Kp,backendName:\"cpu\",kernelFunc:Srt};function Nrt(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]=yw(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 DM={kernelName:jp,backendName:\"cpu\",kernelFunc:Nrt};function krt(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]=bw(l,o.shape,c,s.shape,s.dtype,p,i.shape,m,f,u);return e.makeTensorInfo(d,s.dtype,h)}var $M={kernelName:Xp,backendName:\"cpu\",kernelFunc:krt};function Trt(r){let{backend:t,attrs:e}=r,{start:n,stop:o,dtype:s,step:i}=e,a=up(n,o,i,s);return t.makeTensorInfo([a.length],s,a)}var RM={kernelName:uu,backendName:\"cpu\",kernelFunc:Trt};var _rt=At(Vs,r=>1/r),FM={kernelName:Vs,backendName:\"cpu\",kernelFunc:_rt};function Ert(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,I=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,I=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],I=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],I=x[1]/b[1],N=1/w,E=1/I,A=Math.ceil(N)*2+2,D=Math.ceil(E)*2+2;for(let F=0;F=f)continue;let ot=P+at*u[1],it=at*w,mt=Math.min(c-1,i?Math.round(it):Math.floor(it));if(V===mt)for(let gt=0;gt=d)continue;let Rt=ot+Ct*u[2],Dt=Ct*I,Ht=Math.min(p-1,i?Math.round(Dt):Math.floor(Dt));H===Ht&&(nt+=g[Rt+et])}}h[K+et]=nt}}}}return e.makeTensorInfo(o.shape,o.dtype,h)}var LM={kernelName:sl,backendName:\"cpu\",kernelFunc:$rt};function Rrt(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 Zr({inputs:{x:o},backend:e});let u=new le(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 zM={kernelName:qs,backendName:\"cpu\",kernelFunc:Rrt};var BM={kernelName:hl,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 I=0;I=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}),VM={kernelName:Ks,backendName:\"cpu\",kernelFunc:Frt};function Ort(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=Si(f,d,i,p,l,u,a,c,0,m);return e.makeTensorInfo(i,h.dtype,h.values)}var GM={kernelName:al,backendName:\"cpu\",kernelFunc:Ort};function Prt(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?Vrt*r:Brt*(Math.exp(r)-1)),qM={kernelName:Xs,backendName:\"cpu\",kernelFunc:Grt};var Wrt=At(Js,r=>r<0?-1:r>0?1:0),KM={kernelName:Js,backendName:\"cpu\",kernelFunc:Wrt};var Urt=At(Ys,r=>Math.sin(r)),jM={kernelName:Ys,backendName:\"cpu\",kernelFunc:Urt};var Hrt=At(Zs,r=>Math.sinh(r)),XM={kernelName:Zs,backendName:\"cpu\",kernelFunc:Hrt};var qrt=11920928955078125e-23,YM=Math.log(qrt)+2,Krt=At(ti,r=>{let t=r>-YM,e=rNumber(g)))),e.makeTensorInfo([h.length],n.dtype,new Int32Array(h))]}var QM={kernelName:cu,backendName:\"cpu\",kernelFunc:Xrt};function Yrt(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]=Iw(a,n.shape,n.dtype,i,u);return[e.makeTensorInfo(c,n.dtype,l),e.makeTensorInfo([p.length],s.dtype,new Int32Array(p))]}var tL={kernelName:cl,backendName:\"cpu\",kernelFunc:Yrt};function Zrt(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 eL={kernelName:pu,backendName:\"cpu\",kernelFunc:Zrt};function Jrt(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 rL={kernelName:mu,backendName:\"cpu\",kernelFunc:Jrt};function Qrt(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=!!e.data.get(i.dataId).values[0];h=Si(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=Si(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=Si(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=Si(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 nL={kernelName:pl,backendName:\"cpu\",kernelFunc:Qrt};function tnt(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=Bo({inputs:{x:o},backend:e,attrs:{begin:l,size:m}});return l[a]+=p,f})}var oL={kernelName:ji,backendName:\"cpu\",kernelFunc:tnt};var sL={kernelName:fu,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}),iL={kernelName:wo,backendName:\"cpu\",kernelFunc:ent};function rnt(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:I}=ze.sliceInfo(o.shape,s,i,a,u,l,c,p,m),N;if(h)N=Qt({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=ze.computeOutShape(b,w,I),A=Bo({inputs:{x:o},backend:e,attrs:{begin:b,size:E}});N=Qt({inputs:{x:A},backend:e,attrs:{shape:d}}),e.disposeIntermediateTensorInfo(A)}else{let E=e.bufferSync(o),A=Cw(f,E,I,b);N=e.makeTensorInfo(d,A.dtype,A.values)}return N}var aL={kernelName:ml,backendName:\"cpu\",kernelFunc:rnt};function nnt(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]=pp(m,f,o,s,i,a,u,l);return[e.makeTensorInfo([d.length],\"string\",d),e.makeTensorInfo(p.shape,\"int32\",h)]}var lL={kernelName:du,backendName:\"cpu\",kernelFunc:nnt};function ont(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]=mp(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 uL={kernelName:hu,backendName:\"cpu\",kernelFunc:ont};function snt(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=fp(i,o);return e.makeTensorInfo(s.shape,\"int32\",a)}var cL={kernelName:gu,backendName:\"cpu\",kernelFunc:snt};var int=At(ii,r=>Math.tan(r)),pL={kernelName:ii,backendName:\"cpu\",kernelFunc:int};var ant=At(ai,r=>Math.tanh(r)),mL={kernelName:ai,backendName:\"cpu\",kernelFunc:ant};function lnt(r){let{inputs:t,backend:e}=r,{tensor:n,indices:o,updates:s}=t,{sliceRank:i,numUpdates:a,sliceSize:u,strides:l,outputSize:c}=S.calculateShapes(s,o,n.shape),p=!1,m=e.bufferSync(o),f=e.bufferSync(s),d=e.bufferSync(n),h=Si(m,f,n.shape,c,u,a,i,l,d,p);return e.makeTensorInfo(n.shape,h.dtype,h.values)}var fL={kernelName:ll,backendName:\"cpu\",kernelFunc:lnt};function unt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{reps:s}=n;tt(o,\"tile\");let i=vw(e.bufferSync(o),s);return e.makeTensorInfo(i.shape,i.dtype,i.values)}var dL={kernelName:lo,backendName:\"cpu\",kernelFunc:unt};function cnt(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]=Sw(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 hL={kernelName:fl,backendName:\"cpu\",kernelFunc:cnt};function pnt(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],I=x[2],N=y.computeStrides(g),E=N[0],A=N[1],D=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 fnt(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 dnt(r,t){return r}function hnt(r,t){return y.clamp(0,r,t-1)}function sg(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 wL={kernelName:yu,backendName:\"cpu\",kernelFunc:wnt};var Int=[HO,JF,qO,KO,nO,jO,XO,YO,ZO,JO,QO,tP,eP,rP,nP,sP,iP,aP,lP,UO,uP,cP,pP,oO,mP,rO,sO,fP,QF,dP,gP,xP,yP,bP,wP,IP,CP,vP,SP,NP,kP,TP,_P,EP,AP,DP,$P,RP,FP,OP,PP,MP,zP,LO,BP,iO,VP,aO,GP,lO,WP,UP,HP,uO,cO,qP,KP,jP,XP,pO,mO,tO,YP,hP,ZP,JP,QP,zO,fO,dO,tM,hO,eM,rM,nM,oM,sM,iM,aM,gO,lM,uM,cM,pM,fM,dM,hM,xO,gM,xM,wM,yO,bO,IM,CM,vM,wO,SM,TM,_M,Ew,EM,BO,CO,AM,DM,$M,RM,eO,rg,FM,VO,GO,WO,OM,PM,MM,LM,zM,BM,VM,TO,GM,UM,HM,qM,EO,KM,jM,XM,AO,yM,ZM,JM,QM,tL,eL,rL,nL,oL,$O,sL,RO,FO,iL,aL,lL,uL,cL,OO,LP,pL,mL,fL,dL,hL,xL,IO,yL,bL,wL,NM];for(let r of Int)pc(r);var _d={};Kt(_d,{assertNotComplex:()=>Ni,bindCanvasToFramebuffer:()=>Ant,bindColorTextureToFramebuffer:()=>ug,bindTextureToProgramUniformSampler:()=>XT,bindTextureUnit:()=>SL,bindVertexBufferToProgramAttribute:()=>Ow,callAndCheck:()=>ht,canBeRepresented:()=>MT,createFragmentShader:()=>zT,createFramebuffer:()=>qT,createProgram:()=>BT,createStaticIndexBuffer:()=>WT,createStaticVertexBuffer:()=>GT,createTexture:()=>UT,createVertexShader:()=>LT,getBatchDim:()=>Vl,getExtensionOrThrow:()=>Nd,getFramebufferErrorMessage:()=>NL,getMaxTexturesInShader:()=>JT,getNumChannels:()=>_nt,getProgramUniformLocation:()=>jT,getProgramUniformLocationOrThrow:()=>KT,getRowsCols:()=>Gl,getShapeAs3D:()=>Td,getTextureShapeFromLogicalShape:()=>YT,getWebGLDisjointQueryTimerVersion:()=>QT,getWebGLErrorMessage:()=>vL,getWebGLMaxTextureSize:()=>ZT,hasExtension:()=>Zn,isCapableOfRenderingToFloatTexture:()=>t1,isDownloadFloatTextureEnabled:()=>e1,isReshapeFree:()=>Ju,isWebGLFenceEnabled:()=>r1,isWebGLVersionEnabled:()=>Mw,linkProgram:()=>VT,logShaderSourceAndInfoLog:()=>Fw,resetMaxTextureSize:()=>Dnt,resetMaxTexturesInShader:()=>$nt,unbindColorTextureFromFramebuffer:()=>Pw,unbindTextureUnit:()=>Ent,validateFramebuffer:()=>kd,validateProgram:()=>lg,validateTextureSize:()=>HT});var gp={},Aw={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function FT(r,t){gp[r]=t}function Yn(r,t){if(!(r in gp)||t!=null){let n=vnt(r,t);if(n!==null)gp[r]=n;else return console.log(\"Could not get context for WebGL version\",r),null}let e=gp[r];return e==null||e.isContextLost()?(delete gp[r],Yn(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),gp[r])}function Cnt(r){if(!L().getBool(\"IS_SAFARI\")&&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 vnt(r,t){if(r!==1&&r!==2)throw new Error(\"Cannot get WebGL rendering context, WebGL is disabled.\");let e=t==null?Cnt(r):t;return e.addEventListener(\"webglcontextlost\",n=>{n.preventDefault(),delete gp[r]},!1),L().getBool(\"SOFTWARE_WEBGL_ENABLED\")&&(Aw.failIfMajorPerformanceCaveat=!1),r===1?e.getContext(\"webgl\",Aw)||e.getContext(\"experimental-webgl\",Aw):e.getContext(\"webgl2\",Aw)}var Zu;(function(r){r[r.DENSE=0]=\"DENSE\",r[r.SHARED_BATCH=1]=\"SHARED_BATCH\"})(Zu||(Zu={}));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 zr;(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\"})(zr||(zr={}));function xp(r,t){return[t,r]}function IL(r,t){return r*t}function ig(r){let t=y.sizeFromShape(r),e=Math.ceil(t/4);return y.sizeToSquarishShape(e)}function Sa(r,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(r/2))]}function CL(r,t){let[e,n]=Sa(r,t);return e*n*4}function ag(r,t){let e=r,n,o,s,i,a,u,l,c,p,m;return L().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 L().getBool(\"DEBUG\")&&Snt(r),e}function Snt(r){let t=r.getError();if(t!==r.NO_ERROR)throw new Error(\"WebGL Error: \"+vL(r,t))}var Nnt=596e-10,knt=65504;function MT(r){return!!(L().getBool(\"WEBGL_RENDER_FLOAT32_ENABLED\")||r===0||Nntr.getExtension(t),'Extension \"'+t+'\" not supported on this browser.')}function LT(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 zT(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)),L().get(\"ENGINE_COMPILE_ONLY\"))return e;if(r.getShaderParameter(e,r.COMPILE_STATUS)===!1)throw Fw(t,r.getShaderInfoLog(e)),new Error(\"Failed to compile fragment shader.\");return e}var Tnt=/ERROR: [0-9]+:([0-9]+):/g;function Fw(r,t){let e=Tnt.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 VT(r,t){if(ht(r,()=>r.linkProgram(t)),!L().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 lg(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 GT(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 WT(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 _nt(){return L().getNumber(\"WEBGL_VERSION\")===2?1:4}function UT(r){return Bl(r,()=>r.createTexture(),\"Unable to create WebGLTexture.\")}function HT(r,t){let e=L().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 qT(r){return Bl(r,()=>r.createFramebuffer(),\"Unable to create WebGLFramebuffer.\")}function Ow(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 SL(r,t,e){kL(r,e),ht(r,()=>r.activeTexture(r.TEXTURE0+e)),ht(r,()=>r.bindTexture(r.TEXTURE_2D,t))}function Ent(r,t){kL(r,t),ht(r,()=>r.activeTexture(r.TEXTURE0+t)),ht(r,()=>r.bindTexture(r.TEXTURE_2D,null))}function KT(r,t,e){return Bl(r,()=>r.getUniformLocation(t,e),'uniform \"'+e+'\" not present in program.')}function jT(r,t,e){return r.getUniformLocation(t,e)}function XT(r,t,e,n){ht(r,()=>SL(r,t,n)),ht(r,()=>r.uniform1i(e,n))}function Ant(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 ug(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 Pw(r,t){ht(r,()=>r.bindFramebuffer(r.FRAMEBUFFER,t)),ht(r,()=>r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,null,0))}function kd(r){let t=r.checkFramebufferStatus(r.FRAMEBUFFER);if(t!==r.FRAMEBUFFER_COMPLETE)throw new Error(\"Error binding framebuffer: \"+NL(r,t))}function NL(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 kL(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 Vl(r,t=2){return y.sizeFromShape(r.slice(0,r.length-t))}function Gl(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 Td(r){let t=[1,1,1];return r.length===0||r.length===1&&r[0]===1||(t=[Vl(r),...Gl(r)]),t}function YT(r,t=!1){let e=L().getNumber(\"WEBGL_MAX_TEXTURE_SIZE\"),n=L().getNumber(\"WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE\");n===1/0&&L().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=Vl(r),u=2,l=2;r.length&&([u,l]=Gl(r)),o=a*(u/2)*(l/2),s=y.sizeToSquarishShape(o).map(c=>c*2)}else s=y.sizeToSquarishShape(o);return s}function Dw(r){return r%2===0}function Ju(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[r.length-1],n=t[t.length-1];if(e===n||Dw(e)&&Dw(n)&&(r[0]===1||t[0]===1))return!0}return r[1]===t[1]&&Dw(r[0])&&Dw(t[0])}var $w,Rw;function ZT(r){if($w==null){let t=Yn(r);$w=t.getParameter(t.MAX_TEXTURE_SIZE)}return $w}function Dnt(){$w=null}function $nt(){Rw=null}function JT(r){if(Rw==null){let t=Yn(r);Rw=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,Rw)}function QT(r){if(r===0)return 0;let t,e=Yn(r);return Zn(e,\"EXT_disjoint_timer_query_webgl2\")&&r===2?t=2:Zn(e,\"EXT_disjoint_timer_query\")?t=1:t=0,t}function Zn(r,t){return r.getExtension(t)!=null}function Mw(r){try{if(Yn(r)!=null)return!0}catch(t){return console.log(\"Error when getting WebGL context: \",t),!1}return!1}function t1(r){if(r===0)return!1;let t=Yn(r);if(r===1){if(!Zn(t,\"OES_texture_float\"))return!1}else if(!Zn(t,\"EXT_color_buffer_float\"))return!1;return PT(t)}function e1(r){if(r===0)return!1;let t=Yn(r);if(r===1){if(!Zn(t,\"OES_texture_float\")||!Zn(t,\"WEBGL_color_buffer_float\"))return!1}else{if(Zn(t,\"EXT_color_buffer_float\"))return PT(t);let n=\"EXT_color_buffer_half_float\";if(Zn(t,n)){let o=t.getExtension(n);return Rnt(t,o)}return!1}return PT(t)}function PT(r){let t=ag(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 Rnt(r,t){let e=ag(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 r1(r){return r!==2?!1:Yn(r).fenceSync!=null}function Ni(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 Et=L();Et.registerFlag(\"HAS_WEBGL\",()=>Et.getNumber(\"WEBGL_VERSION\")>0);Et.registerFlag(\"WEBGL_VERSION\",()=>Mw(2)?2:Mw(1)?1:0);Et.registerFlag(\"WEBGL_CHECK_NUMERICAL_PROBLEMS\",()=>!1);Et.registerFlag(\"WEBGL_BUFFER_SUPPORTED\",()=>Et.get(\"WEBGL_VERSION\")===2);Et.registerFlag(\"WEBGL_CPU_FORWARD\",()=>!0);Et.registerFlag(\"WEBGL_FORCE_F16_TEXTURES\",()=>!1);Et.registerFlag(\"WEBGL_PACK\",()=>Et.getBool(\"HAS_WEBGL\"));Et.registerFlag(\"WEBGL_PACK_NORMALIZATION\",()=>Et.getBool(\"WEBGL_PACK\"));Et.registerFlag(\"WEBGL_PACK_CLIP\",()=>Et.getBool(\"WEBGL_PACK\"));Et.registerFlag(\"WEBGL_PACK_DEPTHWISECONV\",()=>Et.getBool(\"WEBGL_PACK\"));Et.registerFlag(\"WEBGL_PACK_BINARY_OPERATIONS\",()=>Et.getBool(\"WEBGL_PACK\"));Et.registerFlag(\"WEBGL_PACK_UNARY_OPERATIONS\",()=>Et.getBool(\"WEBGL_PACK\"));Et.registerFlag(\"WEBGL_PACK_ARRAY_OPERATIONS\",()=>Et.getBool(\"WEBGL_PACK\"));Et.registerFlag(\"WEBGL_PACK_IMAGE_OPERATIONS\",()=>Et.getBool(\"WEBGL_PACK\"));Et.registerFlag(\"WEBGL_PACK_REDUCE\",()=>Et.getBool(\"WEBGL_PACK\"));Et.registerFlag(\"WEBGL_LAZILY_UNPACK\",()=>Et.getBool(\"WEBGL_PACK\"));Et.registerFlag(\"WEBGL_CONV_IM2COL\",()=>Et.getBool(\"WEBGL_PACK\"));Et.registerFlag(\"WEBGL_MAX_TEXTURE_SIZE\",()=>ZT(Et.getNumber(\"WEBGL_VERSION\")));Et.registerFlag(\"WEBGL_MAX_TEXTURES_IN_SHADER\",()=>JT(Et.getNumber(\"WEBGL_VERSION\")));Et.registerFlag(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\",()=>{let r=Et.getNumber(\"WEBGL_VERSION\");return r===0?0:QT(r)});Et.registerFlag(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE\",()=>Et.getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\")>0&&!Cu.isMobile());Et.registerFlag(\"WEBGL_RENDER_FLOAT32_CAPABLE\",()=>t1(Et.getNumber(\"WEBGL_VERSION\")));Et.registerFlag(\"WEBGL_RENDER_FLOAT32_ENABLED\",()=>Et.getBool(\"WEBGL_FORCE_F16_TEXTURES\")?!1:Et.getBool(\"WEBGL_RENDER_FLOAT32_CAPABLE\"));Et.registerFlag(\"WEBGL_DOWNLOAD_FLOAT_ENABLED\",()=>e1(Et.getNumber(\"WEBGL_VERSION\")));Et.registerFlag(\"WEBGL_FENCE_API_ENABLED\",()=>r1(Et.getNumber(\"WEBGL_VERSION\")));Et.registerFlag(\"WEBGL_SIZE_UPLOAD_UNIFORM\",()=>Et.getBool(\"WEBGL_RENDER_FLOAT32_ENABLED\")?4:0);Et.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}.`)});Et.registerFlag(\"WEBGL_FLUSH_THRESHOLD\",()=>Cu.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}.`)});Et.registerFlag(\"CPU_HANDOFF_SIZE_THRESHOLD\",()=>128);Et.registerFlag(\"WEBGL_USE_SHAPES_UNIFORMS\",()=>!1);Et.registerFlag(\"TOPK_LAST_DIM_CPU_HANDOFF_SIZE_THRESHOLD\",()=>1e5);Et.registerFlag(\"TOPK_K_CPU_HANDOFF_THRESHOLD\",()=>128);Et.registerFlag(\"WEBGL_EXP_CONV\",()=>!1);Et.registerFlag(\"SOFTWARE_WEBGL_ENABLED\",()=>Et.getBool(\"IS_TEST\"));Et.registerFlag(\"WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE\",()=>1/0);Et.registerFlag(\"WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE\",()=>!1);Et.registerFlag(\"WEBGL2_ISNAN_CUSTOM\",()=>!1);Et.registerFlag(\"ENGINE_COMPILE_ONLY\",()=>!1);function We(){let r,t,e,n,o,s,i,a,u,l;return L().getNumber(\"WEBGL_VERSION\")===2?(r=\"#version 300 es\",t=\"in\",e=\"out\",n=\"in\",o=\"texture\",s=\"outputColor\",i=\"out vec4 outputColor;\",a=L().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 ki(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 yp(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 Fnt(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 TL(r,t,e=\"index\"){let n=r.map((s,i)=>i),o=Fnt(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 Ed(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 Ad(){return`\n int getFlatIndex(ivec3 coords) {\n return coords.x * outShapeStrides[0] + coords.y * outShapeStrides[1] + coords.z;\n }\n`}var Lw=`\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:_L}=S;function EL(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}=zw(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=>Ont(f,t,e.packedInputs,e.enableShapeUniforms)).join(`\n`),i=t.texShape,a=We(),u=Lnt(a),l,c,p=Vnt(a);return t.isPacked?(l=Pnt(t.logicalShape,i,e.enableShapeUniforms),c=Bnt(a)):(l=Mnt(t.logicalShape,i,e.enableShapeUniforms),c=znt(a)),e.packedInputs&&(p+=Hnt),[p,u,c,o,l,s,e.userCode].join(`\n`)}function $d(r,t=!1){let e=r.shapeInfo.logicalShape;switch(e.length){case 0:return not(r,t);case 1:return sot(r,t);case 2:return aot(r,t);case 3:return uot(r,t);case 4:return pot(r,t);case 5:return mot(r);case 6:return fot(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 rot(r);case 1:return oot(r,t);case 2:return iot(r,t);case 3:return lot(r,t);default:return cot(r,t)}}function Ont(r,t,e=!1,n){let o=\"\";e?o+=AL(r,n):o+=$d(r,n);let s=r.shapeInfo.logicalShape,i=t.logicalShape;return s.length<=i.length&&(e?o+=dot(r,t):o+=hot(r,t)),o}function Pnt(r,t,e){switch(r.length){case 0:return DL();case 1:return qnt(r,t,e);case 2:return tot(r,t,e);case 3:return jnt(r,t,e);default:return Ynt(r,t,e)}}function Mnt(r,t,e){switch(r.length){case 0:return DL();case 1:return Knt(r,t,e);case 2:return eot(r,t,e);case 3:return Xnt(r,t,e);case 4:return Znt(r,t,e);case 5:return Jnt(r,t);case 6:return Qnt(r,t);default:throw new Error(`${r.length}-D output sampling is not yet supported`)}}function Lnt(r){return`\n float sampleTexture(sampler2D textureSampler, vec2 uv) {\n return ${r.texture2D}(textureSampler, uv).r;\n }\n `}function znt(r){return`\n void setOutput(float val) {\n ${r.output} = vec4(val, 0, 0, 0);\n }\n `}function Bnt(r){return`\n void setOutput(vec4 val) {\n ${r.output} = val;\n }\n `}function Vnt(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 ${Gnt}\n ${Wnt}\n ${Unt}\n `}var Gnt=`\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`,Wnt=`\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`,Unt=`\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`,Hnt=`\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 DL(){return`\n int getOutputCoords() {\n return 0;\n }\n `}function qnt(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 Knt(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 jnt(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 Xnt(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 ${yp([\"r\",\"c\",\"d\"],r)}\n return ivec3(r, c, d);\n }\n`;let n=ki([\"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 Ynt(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 hot(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=_L(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 zw(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 RL(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=EL(o,i,t),u=zT(r.gl,a),l=r.createProgram(u);return L().get(\"ENGINE_COMPILE_ONLY\")?{program:t,fragmentShader:u,source:a,webGLProgram:l,inShapeInfos:s,outShapeInfo:i,variablesLocations:null,customUniformLocations:null,infLoc:null,nanLoc:null,outShapeLocation:null,outShapeStridesLocation:null,outTexShapeLocation:null}:(r.buildVao(l),Object.assign({program:t,fragmentShader:u,source:a,webGLProgram:l,inShapeInfos:s,outShapeInfo:i},n1(r,t,l)))}function n1(r,t,e){let n=[],o=[],s,i,a,u=null,l=null;l=r.getUniformLocation(e,\"NAN\",!1),L().getNumber(\"WEBGL_VERSION\")===1&&(u=r.getUniformLocation(e,\"INFINITY\",!1));let c=!1;for(let p of t.variableNames){let m={name:p,uniform:r.getUniformLocation(e,p,c),offset:r.getUniformLocation(e,`offset${p}`,c)};t.enableShapeUniforms&&(m.shape=r.getUniformLocation(e,`${p}Shape`,c),m.texShape=r.getUniformLocation(e,`${p}TexShape`,c)),n.push(m)}if(t.enableShapeUniforms&&(s=r.getUniformLocation(e,\"outShape\",c),a=r.getUniformLocation(e,\"outShapeStrides\",c),i=r.getUniformLocation(e,\"outTexShape\",c)),t.customUniforms)for(let p of t.customUniforms)o.push(r.getUniformLocation(e,p.name,c));return{variablesLocations:n,customUniformLocations:o,infLoc:u,nanLoc:l,outShapeLocation:s,outShapeStridesLocation:a,outTexShapeLocation:i}}function $L(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 FL(r,t,e,n,o){t.program.enableShapeUniforms||($L(t.inShapeInfos,e),$L([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),r.bindVertexArray(t.webGLProgram.vao),L().getNumber(\"WEBGL_VERSION\")===1&&t.infLoc!==null&&r.gl.uniform1f(t.infLoc,1/0),t.nanLoc!==null&&r.gl.uniform1f(t.nanLoc,NaN);for(let u=0;u{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}=zw(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),I=r.packedInputs||c.length>2?\"\":`${u[0]>1}_${u[1]>1}`;n+=`${h}_${w}_${l?p:\"\"}_${c.length}_${x}_${b}_${g}_${m}_${f}_${d}_${I}_${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+`${L().getNumber(\"WEBGL_VERSION\")}`,s}function de(r){return L().getBool(\"WEBGL_USE_SHAPES_UNIFORMS\")&&r<=4}var Bw=class{constructor(t){this.variableNames=[\"A\"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=Zu.DENSE,this.customUniforms=[{name:\"texShape\",type:\"ivec2\"}];let e=We();this.outputShape=t,this.enableShapeUniforms=de(this.outputShape.length),this.userCode=`\n ivec3 outCoordsFromFlatIndex(int index) {\n ${this.enableShapeUniforms?yp([\"r\",\"c\",\"d\"],t):ki([\"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 Vw=class{constructor(t){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=Zu.DENSE,this.customUniforms=[{name:\"texShape\",type:\"ivec2\"}];let e=We();this.outputShape=t,this.enableShapeUniforms=de(this.outputShape.length),this.userCode=`\n ivec3 outCoordsFromFlatIndex(int index) {\n ${this.enableShapeUniforms?yp([\"r\",\"c\",\"d\"],t):ki([\"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 Gw=class{constructor(t){this.variableNames=[\"A\"],this.outTexUsage=Jr.DOWNLOAD;let e=We();this.outputShape=t,this.userCode=`\n ${Lw}\n\n void main() {\n float x = getAAtOutCoords();\n ${e.output} = encode_float(x);\n }\n `}};var Ww=class{constructor(t){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=Jr.DOWNLOAD;let e=We();this.outputShape=t,this.userCode=`\n ${Lw}\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 yot={R:0,G:1,B:2,A:3},cg=class{constructor(t,e=!1,n=\"RGBA\"){this.variableNames=[\"A\"],this.customUniforms=[{name:\"texShape\",type:\"ivec2\"}];let o=We();this.outputShape=t,this.enableShapeUniforms=de(this.outputShape.length);let s=\"result\";e&&(s=\"floor(result * 255. + 0.5)\");let i=\"\";for(let a=0;am1,createBufferFromOutputTexture:()=>h1,createFloat16MatrixTexture:()=>l1,createFloat16PackedMatrixTexture:()=>p1,createFloat32MatrixTexture:()=>a1,createIndexBuffer:()=>i1,createPackedMatrixTexture:()=>c1,createUnsignedBytesMatrixTexture:()=>u1,createVertexBuffer:()=>s1,createVertexShader:()=>o1,downloadByteEncodedFloatMatrixFromOutputTexture:()=>x1,downloadFloat32MatrixFromBuffer:()=>g1,downloadMatrixFromPackedOutputTexture:()=>b1,downloadPackedMatrixFromBuffer:()=>y1,getInternalFormatForFloat16MatrixTexture:()=>qw,getInternalFormatForFloat16PackedMatrixTexture:()=>Xw,getInternalFormatForFloat32MatrixTexture:()=>Hw,getInternalFormatForPackedMatrixTexture:()=>jw,getInternalFormatForUnsignedBytesMatrixTexture:()=>Kw,uploadDenseMatrixToTexture:()=>f1,uploadPixelDataToTexture:()=>d1});function o1(r){let t=We(),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 LT(r,e)}function s1(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 GT(r,t)}function i1(r){let t=new Uint16Array([0,1,2,2,1,3]);return WT(r,t)}function pg(r,t,e,n,o,s){HT(t,e);let i=UT(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)),L().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 Hw(r){return r.internalFormatFloat}function a1(r,t,e,n){let[o,s]=xp(t,e);return pg(r,o,s,Hw(n),n.textureFormatFloat,r.FLOAT)}function qw(r){return r.internalFormatHalfFloat}function l1(r,t,e,n){let[o,s]=xp(t,e);return pg(r,o,s,qw(n),n.textureFormatFloat,n.textureTypeHalfFloat)}function Kw(r){return r.downloadTextureFormat}function u1(r,t,e,n){let[o,s]=xp(t,e);return pg(r,o,s,Kw(n),r.RGBA,r.UNSIGNED_BYTE)}function jw(r){return r.internalFormatPackedFloat}function c1(r,t,e,n){let[o,s]=Sa(t,e);return pg(r,o,s,jw(n),r.RGBA,r.FLOAT)}function Xw(r){return r.internalFormatPackedHalfFloat}function p1(r,t,e,n){let[o,s]=Sa(t,e);return pg(r,o,s,Xw(n),r.RGBA,n.textureTypeHalfFloat)}function m1(r,t,e){return ht(r,()=>r.bindBuffer(r.ARRAY_BUFFER,e)),Ow(r,t,\"clipSpacePos\",e,3,20,0)&&Ow(r,t,\"uv\",e,2,20,12)}function f1(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),L().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 d1(r,t,e){ht(r,()=>r.bindTexture(r.TEXTURE_2D,t)),e.data instanceof Uint8Array?L().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)):L().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 h1(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 g1(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 x1(r,t,e,n){let[o,s]=xp(t,e),i=4,a=new Uint8Array(IL(t*e,i));return ht(r,()=>r.readPixels(0,0,o,s,n.downloadTextureFormat,r.UNSIGNED_BYTE,a)),new Float32Array(a.buffer)}function y1(r,t,e,n,o,s,i,a){let u=r,l=new Float32Array(CL(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 b1(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 wp=class{constructor(t){this.outputTexture=null,this.program=null,this.disposed=!1,this.itemsToPoll=[];let e=L().getNumber(\"WEBGL_VERSION\");if(t!=null?(this.gl=t,FT(e,t)):this.gl=Yn(e),t=this.gl,L().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\"),L().getNumber(\"WEBGL_VERSION\")===1){let s=\"OES_texture_float\",i=\"OES_texture_half_float\";if(this.textureFloatExtension=Nd(this.gl,s),Zn(this.gl,i))this.textureHalfFloatExtension=Nd(this.gl,i);else if(L().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),Zn(this.gl,o))this.colorBufferHalfFloatExtension=Nd(this.gl,o);else if(L().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\",Zn(this.gl,n))this.colorBufferFloatExtension=this.gl.getExtension(n);else if(Zn(this.gl,o))this.colorBufferHalfFloatExtension=this.gl.getExtension(o);else throw new Error(\"GL context does not support color renderable floats\");this.vertexBuffer=s1(this.gl),this.indexBuffer=i1(this.gl),this.framebuffer=qT(this.gl),this.textureConfig=ag(this.gl,this.textureHalfFloatExtension)}get debug(){return L().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(),a1(this.gl,t,e,this.textureConfig)}createFloat16MatrixTexture(t,e){return this.throwIfDisposed(),l1(this.gl,t,e,this.textureConfig)}createUnsignedBytesMatrixTexture(t,e){return this.throwIfDisposed(),u1(this.gl,t,e,this.textureConfig)}uploadPixelDataToTexture(t,e){this.throwIfDisposed(),d1(this.gl,t,e)}uploadDenseMatrixToTexture(t,e,n,o){this.throwIfDisposed(),f1(this.gl,t,e,n,o,this.textureConfig)}createFloat16PackedMatrixTexture(t,e){return this.throwIfDisposed(),p1(this.gl,t,e,this.textureConfig)}createPackedMatrixTexture(t,e){return this.throwIfDisposed(),c1(this.gl,t,e,this.textureConfig)}deleteMatrixTexture(t){this.throwIfDisposed(),this.outputTexture===t&&(Pw(this.gl,this.framebuffer),this.outputTexture=null),ht(this.gl,()=>this.gl.deleteTexture(t))}downloadByteEncodedFloatMatrixFromOutputTexture(t,e,n){return this.downloadMatrixDriver(t,()=>x1(this.gl,e,n,this.textureConfig))}downloadPackedMatrixFromBuffer(t,e,n,o,s,i){return y1(this.gl,t,e,n,o,s,i,this.textureConfig)}downloadFloat32MatrixFromBuffer(t,e){return g1(this.gl,t,e)}createBufferFromTexture(t,e,n){this.bindTextureToFrameBuffer(t);let o=h1(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(L().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 L().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\")>0?(e=this.beginQuery(),this.endQuery(),n=()=>this.isQueryAvailable(e,L().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\"))):n=()=>!0;return{query:e,isFencePassed:n}}downloadMatrixFromPackedTexture(t,e,n){return this.downloadMatrixDriver(t,()=>b1(this.gl,e,n))}createProgram(t){this.throwIfDisposed();let e=this.gl;this.vertexShader==null&&(this.vertexShader=o1(e));let n=BT(e);ht(e,()=>e.attachShader(n,this.vertexShader)),ht(e,()=>e.attachShader(n,t)),VT(e,n);let o=Object.assign(n,{vao:this.createVertexArray()});return this.debug&&lg(e,o),o}buildVao(t){this.setProgram(t),this.bindVertexArray(t.vao);let e=this.gl;ht(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,this.indexBuffer)),m1(e,t,this.vertexBuffer)}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.debug&&lg(this.gl,this.program),ht(this.gl,()=>this.gl.useProgram(t))}getUniformLocation(t,e,n=!0){return this.throwIfDisposed(),n?KT(this.gl,t,e):jT(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(),XT(this.gl,t,e,n)}setOutputMatrixTexture(t,e,n){this.setOutputMatrixTextureDriver(t,n,e)}setOutputPackedMatrixTexture(t,e,n){this.throwIfDisposed();let[o,s]=Sa(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&&lg(this.gl,this.program),kd(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=Nd(this.gl,L().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(L().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(L().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,L().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\"))),this.getQueryTime(t,L().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=bot(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 L().platform&&(n=L().platform.setTimeoutCustom.bind(L().platform)),y.repeatedTry(()=>(this.pollItems(),this.itemsToPoll.length===0),()=>0,null,n)}bindTextureToFrameBuffer(t){this.throwIfDisposed(),ug(this.gl,t,this.framebuffer),this.debug&&kd(this.gl)}unbindTextureToFrameBuffer(){this.outputTexture!=null?(ug(this.gl,this.outputTexture,this.framebuffer),this.debug&&kd(this.gl)):Pw(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;ug(o,t,this.framebuffer),this.debug&&kd(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 bot(r){let t=0;for(;t`${r}.${e}`)}function er(r,t){return t===1?[r]:I1(r,t)}function Tz(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 Pd=class{constructor(t,e){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:\"inputShape\",type:\"ivec3\"}],this.outputShape=t,this.enableShapeUniforms=de(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 ${wot(e,this.enableShapeUniforms)}\n ${this.enableShapeUniforms?Ad():Ed(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 wot(r,t){return`\n ivec3 inputCoordsFromReshapedOutCoords(int index) {\n ${t?TL([\"r\",\"c\",\"d\"],\"inputShape\"):ki([\"r\",\"c\",\"d\"],r)}\n return ivec3(r, c, d);\n }\n `}var tI=class{constructor(t){this.gpgpu=t,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0,this.freeTextures={},this.usedTextures={},this.logEnabled=!1}acquireTexture(t,e,n){let o=Ez(e,n),s=Az(t,o,n);s in this.freeTextures||(this.freeTextures[s]=[]),s in this.usedTextures||(this.usedTextures[s]=[]);let i=_z(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].pop();return this.usedTextures[s].push(u),u}let a;return o===zr.PACKED_2X2_FLOAT32?a=this.gpgpu.createPackedMatrixTexture(t[0],t[1]):o===zr.PACKED_2X2_FLOAT16?a=this.gpgpu.createFloat16PackedMatrixTexture(t[0],t[1]):o===zr.UNPACKED_FLOAT32?a=this.gpgpu.createFloat32MatrixTexture(t[0],t[1]):o===zr.UNPACKED_FLOAT16?a=this.gpgpu.createFloat16MatrixTexture(t[0],t[1]):o===zr.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=Ez(n,o),i=Az(e,s,o);i in this.freeTextures||(this.freeTextures[i]=[]);let a=_z(e,s,this.gpgpu.gl,this.gpgpu.textureConfig,o),u=L().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&&l.indexOf(t);if(c==null||c<0)throw new Error(\"Cannot release a texture that was never provided by this texture manager\");l[c]=l[l.length-1],l.pop(),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 Iot(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 _z(r,t,e,n,o){let s=Cot(t,n),i;if(o){let[u,l]=Sa(r[0],r[1]);i=u*l}else{let[u,l]=xp(r[0],r[1]);i=u*l}let a=Iot(e,s);return i*a}function Cot(r,t){switch(r){case zr.PACKED_2X2_FLOAT32:return jw(t);case zr.PACKED_2X2_FLOAT16:return Xw(t);case zr.UNPACKED_FLOAT32:return Hw(t);case zr.UNPACKED_FLOAT16:return qw(t);case zr.PACKED_4X1_UNSIGNED_BYTE:return Kw(t);default:throw new Error(`Unknown physical texture type ${r}`)}}function vot(r){return L().getBool(\"WEBGL_RENDER_FLOAT32_ENABLED\")?r?zr.PACKED_2X2_FLOAT32:zr.UNPACKED_FLOAT32:r?zr.PACKED_2X2_FLOAT16:zr.UNPACKED_FLOAT16}function Ez(r,t){if(r===Jr.UPLOAD)return zr.PACKED_2X2_FLOAT32;if(r===Jr.RENDER||r==null)return vot(t);if(r===Jr.DOWNLOAD||r===Jr.PIXELS)return zr.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknown logical texture type ${r}`)}function Az(r,t,e){return`${r[0]}_${r[1]}_${t}_${e}`}var Br=class{constructor(t,e){this.variableNames=[\"A\"],this.outputShape=t,this.enableShapeUniforms=de(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 `}},yr=\"if (isnan(x)) return x;\",Dz=\"return x;\",C1=\"return abs(x);\";var $z=\"return (x >= 0.0) ? x : (exp(x) - 1.0);\",Rz=yr+`\n return (x < 0.0) ? 0.0 : x;\n`,Fz=yr+`\n return (x < 0.0) ? 0.0 : min(6.0, x);\n`,Na=\"return x;\",Oz=\"return 1.0 / (1.0 + exp(-1.0 * x));\";var Mz=\"return x;\",Lz=`\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`,zz=`\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`,Bz=`\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`,Vz=\"return 1.0 / (1.0 + exp(-1.0 * x));\",Fn=class{constructor(t,e){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t,this.enableShapeUniforms=de(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 eI=class{constructor(t){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=t,this.enableShapeUniforms=de(this.outputShape.length);let e=t.length,n=er(\"rc\",e),o=zt(e),s=Tz(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 Not=jr.whereImpl,kot=1e-7,Tot=1e-4,rI={};function _ot(r){return r in rI||(rI[r]={}),rI[r]}var Eot=L().getNumber(\"CPU_HANDOFF_SIZE_THRESHOLD\"),Aot=600;function Dot(){return L().global.screen==null?1024:L().global.screen.height*L().global.screen.width*window.devicePixelRatio*Aot/1024/1024}var Qu=class extends Uo{nextDataId(){return Qu.nextDataId++}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,!L().getBool(\"HAS_WEBGL\"))throw new Error(\"WebGL is not supported on this device\");let e;if(t!=null){if(t instanceof wp)e=t;else{let n=Yn(L().getNumber(\"WEBGL_VERSION\"),t);e=new wp(n)}this.binaryCache={},this.gpgpuCreatedLocally=!1}else{let n=Yn(L().getNumber(\"WEBGL_VERSION\"));e=new wp(n),this.binaryCache=_ot(L().getNumber(\"WEBGL_VERSION\")),this.gpgpuCreatedLocally=!0}this.gpgpu=e,this.canvas=this.gpgpu.gl.canvas,this.textureManager=new tI(this.gpgpu),this.numMBBeforeWarning=Dot(),this.texData=new Da(this,Wn())}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=Td(e),c=new cg(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((L().getBool(\"WEBGL_CHECK_NUMERICAL_PROBLEMS\")||L().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(L().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 Fn(a,Na):m=new Br(a,Na);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 Fn(o,Na):d=new Br(o,Na);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(L().getBool(\"DEBUG\")&&!L().getBool(\"WEBGL_DOWNLOAD_FLOAT_ENABLED\")&&L().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\"&&L().get(\"WEBGL_BUFFER_SUPPORTED\")){c=this.decode(t);let d=this.texData.get(c.dataId);l=this.gpgpu.createBufferFromTexture(d.texture.texture,...ig(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)&&Wn().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 Fn(s,Na):f=new Br(s,Na);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=Wn().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(L().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 L().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE\")>0?this.gpgpu.beginQuery():{startMs:y.now(),endMs:null}}endTimer(t){return L().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE\")>0?(this.gpgpu.endQuery(),t):(t.endMs=y.now(),t)}async getQueryTime(t){if(L().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=Eot){return L().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 Wn().makeTensorFromTensorInfo(this.makeTensorInfo(t,e,n),this)}unpackTensor(t){let e=new eI(t.shape);return this.runWebGLProgram(e,[t],t.dtype)}packTensor(t){let e=new Qw(t.shape),n=!0;return this.runWebGLProgram(e,[t],t.dtype,null,n)}packedReshape(t,e){let n=[Vl(t.shape),...Gl(t.shape)],o={dtype:t.dtype,shape:n,dataId:t.dataId},s=[Vl(e),...Gl(e)],i=new Pd(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=Td(s),u;o?u=new Vw(a):u=new Bw(a);let l=!0,c=[e!=null?e:ig(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===Zu.DENSE){let x=i!=null?i:ig(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)<=L().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&&!Ju(b.shape,x.shape)){let w=x,I=x.shape;x.shape=b.shape,x=this.packedReshape(x,I),l.push(x),b=this.texData.get(x.dataId),w.shape=I}return{shape:x.shape,texData:b,isUniform:!1}});this.uploadToGPU(a.dataId);let p={shape:a.shape,texData:u,isUniform:!1},m=OL(t,c,p),f=this.getAndSaveBinary(m,()=>RL(this.gpgpu,t,c,p)),d=this.activeTimers!=null,h;d&&(h=this.startTimer()),L().get(\"ENGINE_COMPILE_ONLY\")||FL(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=L().get(\"WEBGL_FLUSH_THRESHOLD\");if(g>0){let x=y.now();x-this.lastGlFlushTime>g&&(this.gpgpu.gl.flush(),this.lastGlFlushTime=x)}if(!L().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||(L().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(!L().get(\"WEBGL_RENDER_FLOAT32_ENABLED\")){let t=L().getBool(\"DEBUG\");L().set(\"DEBUG\",!1);let e=this.abs(ft(1e-8)).dataSync()[0];if(L().set(\"DEBUG\",t),e>0)return 32}return 16})),this.floatPrecisionValue}epsilon(){return this.floatPrecision()===32?kot:Tot}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=YT(n,u),e.texShape=p),s!=null){let m=Td(n),f,d=p[1],h=p[0],g=s instanceof Uint8Array||s instanceof Uint8ClampedArray;(u||!g)&&([d,h]=Sa(p[0],p[1])),u?f=new Uw(m,g):f=new cg(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 I=[[h,d]],N=!0,E=this.runWebGLProgram(f,[b],o,I,N),A=this.texData.get(E.dataId);e.texShape=A.texShape,e.isPacked=A.isPacked,e.usage=A.usage,L().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=$ot(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 kh(),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?(Fw(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.values(this.binaryCache)){this.gpgpu.buildVao(t.webGLProgram);let{variablesLocations:e,customUniformLocations:n,infLoc:o,nanLoc:s,outShapeLocation:i,outShapeStridesLocation:a,outTexShapeLocation:u}=n1(this.gpgpu,t.program,t.webGLProgram);t.variablesLocations=e,t.customUniformLocations=n,t.infLoc=o,t.nanLoc=s,t.outShapeLocation=i,t.outShapeStridesLocation=a,t.outTexShapeLocation=u}}createTensorFromGPUData(t,e,n){t.channels=t.channels||\"RGBA\";let{texture:o,height:s,width:i,channels:a}=t,u=Wn().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 Wn().makeTensorFromDataId(l,e,n,u)}};Qu.nextDataId=0;function $ot(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 Qu,2);var JDe={forceHalfFloat:Wz};var Md=`\n if (isnan(a)) return a;\n if (isnan(b)) return b;\n`;var On=class{constructor(t,e,n){this.variableNames=[\"A\",\"B\"],this.outputShape=S.assertAndGetBroadcastShape(e,n),this.enableShapeUniforms=de(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 Qn=`\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 Jn=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=de(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=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 Uz={kernelName:bo,backendName:\"webgl\",kernelFunc:rr};function Pn(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 Hz={kernelName:zp,backendName:\"webgl\",kernelFunc:Pn};var v1=\"return (a < 0.) ? b * a : a;\",S1=`\n vec4 aLessThanZero = vec4(lessThan(a, vec4(0.)));\n return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a);\n`;function Rot(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{alpha:s}=n,i=e.makeTensorInfo([],\"float32\",y.createScalarValue(s,\"float32\")),a=L().getBool(\"WEBGL_PACK_BINARY_OPERATIONS\")?new Jn(S1,o.shape,i.shape):new On(v1,o.shape,i.shape),u=e.runWebGLProgram(a,[o,i],\"float32\");return e.disposeIntermediateTensorInfo(i),u}var qz={kernelName:vs,backendName:\"webgl\",kernelFunc:Rot};var N1=\"return (a < 0.) ? b * a : a;\",k1=`\n vec4 aLessThanZero = vec4(lessThan(a, vec4(0.)));\n return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a);\n`;function Fot(r){let{inputs:t,backend:e}=r,{x:n,alpha:o}=t,s=L().getBool(\"WEBGL_PACK_BINARY_OPERATIONS\")?new Jn(k1,n.shape,o.shape):new On(N1,n.shape,o.shape);return e.runWebGLProgram(s,[n,o],\"float32\")}var Kz={kernelName:zs,backendName:\"webgl\",kernelFunc:Fot};var Vo=\"if (isnan(x)) return x;\";function It({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=L().getBool(\"WEBGL_PACK_UNARY_OPERATIONS\")&&t!=null,c;return l?c=new Fn(i.shape,t):c=new Br(i.shape,r),a.runWebGLProgram(c,[i],u)}}function ue({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[I,N]=w,E={dataId:I.dataId,dtype:I.dtype,shape:u.shape},A={dataId:N.dataId,dtype:N.dtype,shape:l.shape},D=new On(r,u.shape,l.shape);return c.runWebGLProgram(D,[E,A],ur(I.dtype,N.dtype))}),b=Pn({inputs:{real:g,imag:x},backend:c});return c.disposeIntermediateTensorInfo(g),c.disposeIntermediateTensorInfo(x),b}let p=s||ur(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),I=c.makeTensorInfo(w,p),N=c.texData.get(I.dataId);return N.values=b,I}let m=L().getBool(\"WEBGL_PACK_BINARY_OPERATIONS\")&&t!=null,f;return m?f=new Jn(t,u.shape,l.shape,e):f=new On(r,u.shape,l.shape),c.runWebGLProgram(f,[u,l],p)}}function Wl(r,t=!1){if(r===\"linear\")return t?Mz:Dz;if(r===\"relu\")return t?zz:Rz;if(r===\"elu\")return t?Lz:$z;if(r===\"relu6\")return t?Bz:Fz;if(r===\"prelu\")return t?k1:N1;if(r===\"leakyrelu\")return t?S1:v1;if(r===\"sigmoid\")return t?Vz:Oz;throw new Error(`Activation ${r} has not been implemented for the WebGL backend.`)}var Ld=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=de(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\",I=\"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&&!Ju(o.shape,u)&&!(c.texture!==null&&Ju(c.shape,u))?Yz(o,u,i):(i.incRef(o.dataId),{dataId:o.dataId,shape:u,dtype:o.dtype})}var Zz={kernelName:Ui,backendName:\"webgl\",kernelFunc:rt};var dg=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 nI=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 Pot(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 to(r,t,e,n){let o=Pot(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=I1(\"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=rt({inputs:{x:r},backend:o,attrs:{shape:N}}),D=rt({inputs:{x:t},backend:o,attrs:{shape:E}}),F=[A,D],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?Wl(u,!0):null,K=G||W||q||H!=null,X;if((f===1||d===1)&&V>_1&&K===!1){let et=A,nt=D;e&&(et=Pe({inputs:{x:A},backend:o,attrs:{perm:[0,2,1]}}),F.push(et)),n&&(nt=Pe({inputs:{x:D},backend:o,attrs:{perm:[0,2,1]}}),F.push(nt));let st=d!==1,at=d===1,ot=et;st&&(ot=rt({inputs:{x:et},backend:o,attrs:{shape:[P,V,1]}}),F.push(ot));let it=d===1?2:1,mt=nt;at&&(mt=rt({inputs:{x:nt},backend:o,attrs:{shape:[P,1,V]}}),F.push(mt));let gt=fg({inputs:{a:ot,b:mt},backend:o});X=Cp({inputs:{x:gt},backend:o,attrs:{axis:it,keepDims:!0}}),F.push(gt)}else{let et=ur(r.dtype,t.dtype),nt=new Ld(N,E,[P,f,d],e,n,G,H,W,q),st=[A,D];if(s!=null&&st.push(s),W&&st.push(i),q){let at=o.makeTensorInfo([],\"float32\",y.createScalarValue(a,\"float32\"));st.push(at),F.push(at)}X=o.runWebGLProgram(nt,st,et)}let Z=rt({inputs:{x:X},backend:o,attrs:{shape:I}});F.push(X);for(let et of F)o.disposeIntermediateTensorInfo(et);return Z}function Lot(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 vp({a:o,b:s,transposeA:u,transposeB:l,backend:e,bias:i,preluActivationWeights:a,leakyreluAlpha:p,activation:c})}var e3={kernelName:Zi,backendName:\"webgl\",kernelFunc:Lot};var r3=\"return abs(x);\";function zot(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 L().getBool(\"WEBGL_PACK_UNARY_OPERATIONS\")?o=new Fn(n.shape,r3):o=new Br(n.shape,r3),e.runWebGLProgram(o,[n],n.dtype)}var n3={kernelName:$i,backendName:\"webgl\",kernelFunc:zot};var Bot=yr+`\n if (abs(x) > 1.) {\n return NAN;\n }\n return acos(x);\n`,Vot=It({opSnippet:Bot}),o3={kernelName:qo,backendName:\"webgl\",kernelFunc:Vot};var Got=yr+`\n if (x < 1.0) return NAN;\nreturn log(x + sqrt(x * x - 1.0));`,Wot=It({opSnippet:Got}),s3={kernelName:Ko,backendName:\"webgl\",kernelFunc:Wot};var i3=\"return a + b;\",Uot=ue({opSnippet:i3,packedOpSnippet:i3,supportsComplex:!0,cpuKernelImpl:PL}),a3={kernelName:ao,backendName:\"webgl\",kernelFunc:Uot};var iI=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 aI=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 lI(r){let{inputs:t,backend:e}=r,n=t;if(n.length===1)return rr({inputs:{x:n[0]},backend:e});if(n.length>L().get(\"WEBGL_MAX_TEXTURES_IN_SHADER\")){let u=Math.floor(n.length/2),l=lI({inputs:n.slice(0,u),backend:e}),c=lI({inputs:n.slice(u),backend:e});return lI({inputs:[l,c],backend:e})}let o=n.map(u=>u.dtype).reduce((u,l)=>ur(u,l)),s=n.map(u=>u.shape),a=L().getBool(\"WEBGL_PACK\")?new aI(n[0].shape,s):new iI(n[0].shape,s);return e.runWebGLProgram(a,n,o)}var l3={kernelName:jo,backendName:\"webgl\",kernelFunc:lI};function Hot(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=Pe({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=rt({inputs:{x:p},backend:e,attrs:{shape:[-1,d]}}),g=to(h,h.dtype,\"all\",e),x;if(i){let b=S.expandShapeToKeepDim(m,u);x=rt({inputs:{x:g},backend:e,attrs:{shape:b}})}else x=rt({inputs:{x:g},backend:e,attrs:{shape:m}});return e.disposeIntermediateTensorInfo(h),e.disposeIntermediateTensorInfo(g),c!=null&&e.disposeIntermediateTensorInfo(p),x}var u3={kernelName:Ra,backendName:\"webgl\",kernelFunc:Hot};function qot(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=Pe({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=rt({inputs:{x:p},backend:e,attrs:{shape:[-1,d]}}),g=to(h,h.dtype,\"any\",e),x;if(i){let b=S.expandShapeToKeepDim(m,u);x=rt({inputs:{x:g},backend:e,attrs:{shape:b}})}else x=rt({inputs:{x:g},backend:e,attrs:{shape:m}});return e.disposeIntermediateTensorInfo(h),e.disposeIntermediateTensorInfo(g),c!=null&&e.disposeIntermediateTensorInfo(p),x}var c3={kernelName:Fa,backendName:\"webgl\",kernelFunc:qot};var uI=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 cI=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=er(\"coords\",u),p,m;if(i===1){m=u+1;let D=zt(m);p=`\n ${D} sourceLocR = ${D}(${c.join()}, 0);\n ++${c[u-1]};\n ${D} sourceLocG = ${D}(${c.join()}, 0);\n ++${c[u-2]};\n ${D} sourceLocA = ${D}(${c.join()}, 0);\n --${c[u-1]};\n ${D} sourceLocB = ${D}(${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(D=>\"int \"+D),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\"),I=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(${I}(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 p3(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 uI(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=p3(r,t,e,c);return r.disposeIntermediateTensorInfo(c),p}function m3(r,t,e,n=null){let o=n!=null?n.shape:t.shape,s=o[o.length-1],i=S.computeOptimalWindowSize(s),a=new cI(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=m3(r,t,e,l);return r.disposeIntermediateTensorInfo(l),c}return l}function pI(r,t,e,n){let o=[e];if(S.assertAxesAreInnerMostDims(\"arg\"+n.charAt(0).toUpperCase()+n.slice(1),o,t.shape.length),!L().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=rt({inputs:{x:u},backend:r,attrs:{shape:[-1,p]}});s.push(m);let f=p3(r,m,n);s.push(f);let d=rt({inputs:{x:f},backend:r,attrs:{shape:l}});return s.forEach(h=>r.disposeIntermediateTensorInfo(h)),d}return m3(r,t,n)}function Kot(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=Pe({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=pI(e,u,i[0],\"max\");return l.forEach(p=>e.disposeIntermediateTensorInfo(p)),c}var f3={kernelName:Ri,backendName:\"webgl\",kernelFunc:Kot};function jot(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=Pe({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=pI(e,u,i[0],\"min\");return l.forEach(p=>e.disposeIntermediateTensorInfo(p)),c}var d3={kernelName:Fi,backendName:\"webgl\",kernelFunc:jot};var Xot=yr+`\n if (abs(x) > 1.) {\n return NAN;\n }\n return asin(x);\n`,Yot=It({opSnippet:Xot}),h3={kernelName:Xo,backendName:\"webgl\",kernelFunc:Yot};var Zot=yr+\"return log(x + sqrt(x * x + 1.0));\",Jot=It({opSnippet:Zot}),g3={kernelName:Yo,backendName:\"webgl\",kernelFunc:Jot};var Qot=yr+`\n return atan(x);\n`,tst=It({opSnippet:Qot}),x3={kernelName:Zo,backendName:\"webgl\",kernelFunc:tst};var est=Md+`\n return atan(a, b);\n`,rst=`\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 `+Qn+`\n return result;\n`,nst=ue({opSnippet:est,packedOpSnippet:rst}),y3={kernelName:Qo,backendName:\"webgl\",kernelFunc:nst};var ost=yr+`\n if ((x < -1.0) || (x > 1.0)) return NAN;\nreturn (log(1.0 + x) - log(1.0 - x)) / 2.0;`,sst=It({opSnippet:ost}),b3={kernelName:Jo,backendName:\"webgl\",kernelFunc:sst};var Ti=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 D=\">=\";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 ${D} 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\",I=`${e}(${e}(${e}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;e===\"avg\"&&(I=\"avgValue / max(count, 1.0)\");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(${I});\n }\n `}},ec=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\",I=\"0.0\";if(w||(I=\"-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 / max(count, 1.0)\");let A=Math.floor(i/4)*4,D=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 = ${I};\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(${I});\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 (${D===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 (${D===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 (${D===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 }\n setOutput(${E});\n }\n `}};function ist(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t;Ni(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 Ti(c,\"avg\",!1);return e.runWebGLProgram(p,[o],\"float32\")}var w3={kernelName:ts,backendName:\"webgl\",kernelFunc:ist};function ast(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 ec(p,\"avg\",!1);return e.runWebGLProgram(m,[o],\"float32\")}var I3={kernelName:Oi,backendName:\"webgl\",kernelFunc:ast};var mI=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 `}},fI=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 lst(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 fI(m);return e.runWebGLProgram(f,[o],i.dtype)}var C3={kernelName:Jl,backendName:\"webgl\",kernelFunc:lst};function ust(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,i=s;Ni([o,s],\"avgPoolGrad\");let{filterSize:a,strides:u,pad:l}=n,c=S.computePool2DInfo(i.shape,a,u,1,l),p=new mI(c);return e.runWebGLProgram(p,[o],i.dtype)}var v3={kernelName:Zl,backendName:\"webgl\",kernelFunc:ust};function cst(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s}=t,{transposeA:i,transposeB:a}=n;return vp({a:o,b:s,transposeA:i,transposeB:a,backend:e})}var S3={kernelName:es,backendName:\"webgl\",kernelFunc:cst};var dI=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 hI=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 pst=({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=L().getBool(\"WEBGL_PACK_NORMALIZATION\")?new hI(n.shape,o.shape,s.shape,c,p,u):new dI(n.shape,o.shape,s.shape,c,p,u);return t.runWebGLProgram(m,l,l[0].dtype)},N3={kernelName:ys,backendName:\"webgl\",kernelFunc:pst};var gI=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=mst(this.rank),o,s=t.map((i,a)=>`sourceLoc.${E1[a]} = start[${a}] + coords.${E1[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 `}},E1=[\"x\",\"y\",\"z\",\"w\",\"u\",\"v\"];function mst(r){if(r===1)return\"sourceLoc\";if(r<=6)return E1.slice(0,r).map(t=>\"sourceLoc.\"+t).join(\",\");throw Error(`Slicing for rank ${r} is not yet supported`)}var xI=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=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 fst(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=ze.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 _i(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,size:i}=n,[a,u]=ze.parseSliceParams(o,s,i);if(ze.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=dz(p.values,a,u,o.shape,o.dtype);return e.makeTensorInfo(u,o.dtype,m)}let{isPacked:l}=e.texData.get(o.dataId),c=ze.isSliceContinous(o.shape,a,u);if(l||!c){let p=L().getBool(\"WEBGL_PACK_ARRAY_OPERATIONS\")?new xI(u):new gI(u),m=[a];return e.runWebGLProgram(p,[o],o.dtype,m)}return e.uploadToGPU(o.dataId),fst(o,a,u,e)}var k3={kernelName:qi,backendName:\"webgl\",kernelFunc:_i};var dst=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=rt({inputs:{x:o},backend:e,attrs:{shape:u}}),h=Pe({inputs:{x:d},backend:e,attrs:{perm:l}}),g=rt({inputs:{x:h},backend:e,attrs:{shape:c}}),x=_i({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},T3={kernelName:Pi,backendName:\"webgl\",kernelFunc:dst};function hst(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=Yw(a,u,s.dtype,s.shape,i);return e.makeTensorInfo([i],s.dtype,l)}var _3={kernelName:Oa,backendName:\"webgl\",kernelFunc:hst};var gst=`\n int r = int(a.r) & int(b.r);\n int g = int(a.g) & int(b.g);\n int rb = int(a.b) & int(b.b);\n int ra = int(a.a) & int(b.a);\n return vec4(r, g, rb, ra);\n`,xst=`\n return float(int(a.r) & int(b.r));\n`;function yst(r){let{inputs:t,backend:e}=r,{a:n,b:o}=t,s=L().getBool(\"WEBGL_PACK_BINARY_OPERATIONS\"),i=L().getNumber(\"WEBGL_VERSION\");if(e.shouldExecuteOnCPU([n,o])||i===1){let u=e.texData.get(n.dataId).values,l=e.texData.get(o.dataId).values,[c,p]=LL(n.shape,o.shape,u,l,n.dtype),m=e.makeTensorInfo(p,n.dtype),f=e.texData.get(m.dataId);return f.values=c,m}let a;return s?a=new Jn(gst,n.shape,o.shape,!1):a=new On(xst,n.shape,o.shape),e.runWebGLProgram(a,[n,o],n.dtype)}var E3={kernelName:Pa,backendName:\"webgl\",kernelFunc:yst};function bst(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 A3={kernelName:Ql,backendName:\"webgl\",kernelFunc:bst};var wst=\"return float(a != b);\",A1=ue({opSnippet:wst,cpuKernelImpl:sz,dtype:\"bool\"}),D3={kernelName:el,backendName:\"webgl\",kernelFunc:A1};function Ul(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 $3={kernelName:Yp,backendName:\"webgl\",kernelFunc:Ul};var Ist=\"return float(int(x));\";function R3(r,t){let e=new Br(r.shape,Ist),n=t.runWebGLProgram(e,[r],\"int32\");return{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}function D1(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=Te(o.shape),a=D1({inputs:{x:o},backend:e,attrs:{dtype:\"float32\"}}),u=Pn({inputs:{real:a,imag:i},backend:e});return i.dispose(),e.disposeIntermediateTensorInfo(a),u}if(o.dtype===\"complex64\"){let i=Ul({inputs:{input:o},backend:e}),a=D1({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]=zL(i,o.shape,o.dtype,s);return e.makeTensorInfo(a,u,l)}if(s===\"int32\")return R3(o,e);if(s===\"bool\"){let i=e.makeTensorInfo([],\"bool\",y.getTypedArrayFromDType(\"bool\",1)),u=A1({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 F3={kernelName:xo,backendName:\"webgl\",kernelFunc:D1};var O3=\"return ceil(x);\",Cst=It({opSnippet:O3,packedOpSnippet:O3,cpuKernelImpl:BL}),P3={kernelName:rs,backendName:\"webgl\",kernelFunc:Cst};var yI=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 bI=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 vst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{clipValueMin:s,clipValueMax:i}=n,a;L().getBool(\"WEBGL_PACK_CLIP\")?a=new bI(o.shape):a=new yI(o.shape);let u=[[s],[i]];return e.runWebGLProgram(a,[o],o.dtype,u)}var M3={kernelName:yo,backendName:\"webgl\",kernelFunc:vst};var wI=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 L3(r,t){return{dataId:t.dataId,dtype:t.dtype,shape:r.shape}}function Sst(r){let{inputs:t,backend:e}=r,{x:n}=t,o=e.texData.get(n.dataId),s=new wI(n.shape),i=[L3(n,o.complexTensorInfos.real),L3(n,o.complexTensorInfos.imag)];return e.runWebGLProgram(s,i,i[0].dtype)}var z3={kernelName:tu,backendName:\"webgl\",kernelFunc:Sst};var II=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}(${CI(a,l,g)}),\n vec2(${CI(c,l,g)}));\n }`}let f=u.length,d=u[u.length-1];m+=`\n return getChannel(\n getT${f}(${CI(a,l,d)}),\n vec2(${CI(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 CI(r,t,e){let n=r.indexOf(t);return r.map((s,i)=>i===n?`${s} - ${e}`:s).join()}function Sp(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 B3={kernelName:qp,backendName:\"webgl\",kernelFunc:Sp};function zd(r,t,e){let n=r[0].dtype;if(n===\"complex64\"){let f=r.map(b=>Ul({inputs:{input:b},backend:e})),d=r.map(b=>Sp({inputs:{input:b},backend:e})),h=zd(f,t,e),g=zd(d,t,e),x=Pn({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(I=>{let E=[-1,y.sizeFromShape(I.shape.slice(t))];return rt({inputs:{x:I},backend:e,attrs:{shape:E}})}),d=f.map(I=>({vals:e.readSync(I.dataId),shape:I.shape})),h=S.computeOutShape(f.map(I=>I.shape),1),g=f[0].shape[0]===1,x=VL(d,h,n,g),b=S.computeOutShape(r.map(I=>I.shape),t),w=e.makeTensorInfo(b,n,x);return f.forEach(I=>e.disposeIntermediateTensorInfo(I)),w}let s=r.filter(f=>y.sizeFromShape(f.shape)>0),i=L().getBool(\"WEBGL_PACK_ARRAY_OPERATIONS\")&&s[0].shape.length>1;if(s.length===1){let f=i?new Br(r[0].shape,Na):new Fn(r[0].shape,Na);return e.runWebGLProgram(f,r,n)}let a=L().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}=Nst(s,t,e),c=new II(u.map(f=>f.shape)),p=e.runWebGLProgram(c,u,n);u.forEach(f=>e.disposeIntermediateTensorInfo(f));let m=rt({inputs:{x:p},attrs:{shape:l},backend:e});return e.disposeIntermediateTensorInfo(p),m}function Nst(r,t,e){let n=S.computeOutShape(r.map(s=>s.shape),t);return{tensors2D:r.map(s=>rt({inputs:{x:s},attrs:{shape:[-1,y.sizeFromShape(s.shape.slice(t))]},backend:e})),outShape:n}}function $1(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}):zd(u,s,e)}var V3={kernelName:Mi,backendName:\"webgl\",kernelFunc:$1};var Bd=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,I=\"\",N=\"\";n&&(o?I=`float activation(float a) {\n float b = getPreluActivationWeightsAtOutCoords();\n ${n}\n }`:s?I=`float activation(float a) {\n float b = getLeakyreluAlphaAtOutCoords();\n ${n}\n }`:I=`\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 ${I}\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 `}},SI=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 Vd=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=de(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 kI(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 TI({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 I=kI(s.shape,f);I!=null&&(s=rt({inputs:{x:s},backend:n,attrs:{shape:I}}),x.push(s))}if(o!=null){let I=kI(o.shape,f);I!=null&&(o=rt({inputs:{x:o},backend:n,attrs:{shape:I}}),x.push(o))}if(!((p===1||m===1)&&c>_1)&&l.isPacked&&f&&l.texture!=null&&u[2]%2!==0&&y.arraysEqual(l.shape.slice(-3),u.slice(-3))){let I=u[0]*u[1]*(u[2]+1),N={dataId:r.dataId,shape:[1,I,e.inChannels],dtype:r.dtype},E=l.shape;l.shape=l.shape.slice(),l.shape[l.shape.length-2]++,y.assert(Ju(l.shape,N.shape),()=>`packed reshape ${l.shape} to ${N.shape} isn't free`);let A=rt({inputs:{x:t},backend:n,attrs:{shape:[1,e.inChannels,e.outChannels]}});x.push(A);let D=vp({a:N,b:A,backend:n,transposeA:d,transposeB:h,bias:o,activation:a,preluActivationWeights:s,leakyreluAlpha:i}),F=n.texData.get(D.dataId);y.assert(F.isPacked,()=>\"batchMatMul result is expected to be packed\"),l.shape=E,F.shape=e.outShape,g=rr({inputs:{x:D},backend:n}),g.shape=e.outShape,x.push(D)}else{let I=e.outHeight*e.outWidth,N=rt({inputs:{x:r},backend:n,attrs:{shape:f?[e.batchSize,I,e.inChannels]:[e.batchSize,e.inChannels,I]}}),E=rt({inputs:{x:t},backend:n,attrs:{shape:[1,e.inChannels,e.outChannels]}}),A=vp({a:f?N:E,b:f?E:N,transposeA:!f,transposeB:h,backend:n,bias:o,activation:a,preluActivationWeights:s,leakyreluAlpha:i});g=rt({inputs:{x:A},backend:n,attrs:{shape:e.outShape}}),x.push(N),x.push(E),x.push(A)}for(let I of x)n.disposeIntermediateTensorInfo(I);return g}function _I({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,I=[];if(s!=null){let Z=kI(s.shape,d);Z!=null&&(s=rt({inputs:{x:s},backend:n,attrs:{shape:Z}}),I.push(s))}if(o!=null){let Z=kI(o.shape,d);Z!=null&&(o=rt({inputs:{x:o},backend:n,attrs:{shape:Z}}),I.push(o))}let N=rt({inputs:{x:t},backend:n,attrs:{shape:[1,h,y.sizeFromShape(t.shape)/h]}});I.push(N);let E=new NI(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]],D=n.runWebGLProgram(E,[r],\"float32\",A),F=rt({inputs:{x:D},backend:n,attrs:{shape:x}});I.push(D),I.push(F);let P=o!=null,V=s!=null,G=a===\"leakyrelu\",W=a?Wl(a,!0):null,q=new Ld(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),I.push(Z)}let K=n.runWebGLProgram(q,H,\"float32\"),X=rt({inputs:{x:K},backend:n,attrs:{shape:e.outShape}});I.push(K);for(let Z of I)n.disposeIntermediateTensorInfo(Z);return X}function kst(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=TI({x:o,filter:s,convInfo:m,backend:e});else if(m.strideWidth<=2&&p===\"channelsLast\"&&L().getBool(\"WEBGL_EXP_CONV\")){let h=new Vd(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(L().getBool(\"WEBGL_CONV_IM2COL\"))f=_I({x:o,filter:s,convInfo:m,backend:e});else{let h=new Bd(m);f=e.runWebGLProgram(h,[o,s],\"float32\")}let d=rt({inputs:{x:f},backend:e,attrs:{shape:m.outShape}});return e.disposeIntermediateTensorInfo(f),d}var G3={kernelName:ns,backendName:\"webgl\",kernelFunc:kst};var EI=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 ${i?`float dyValue = getDy(b, yR, yC, d2);\n float xValue = getX(b, xR, xC, d1);\n dotProd += (xValue * dyValue);`:`float dyValue = getDy(b, d2, yR, yC);\n float xValue = getX(b, d1, xR, xC);\n dotProd += (xValue * dyValue);`}\n }\n }\n }\n setOutput(dotProd);\n }\n `}},AI=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 `}},DI=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 `}},$I=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 Tst(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 EI(m);return e.runWebGLProgram(f,[o,s],\"float32\")}var W3={kernelName:Bp,backendName:\"webgl\",kernelFunc:Tst};var RI=class{constructor(t){this.variableNames=[\"dy\",\"W\"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:\"strides\",type:\"vec2\"}],this.outputShape=t.inShape,this.enableShapeUniforms=de(this.outputShape.length);let e=t.filterHeight,n=t.filterWidth,o=e-1-t.padInfo.top,s=n-1-t.padInfo.left;this.userCode=`\n const ivec2 pads = ivec2(${o}, ${s});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d1 = coords[3];\n\n ivec2 dyCorner = ivec2(coords[1], coords[2]) - pads;\n int dyRCorner = dyCorner.x;\n int dyCCorner = dyCorner.y;\n\n vec4 result = vec4(0.);\n for (int wR = 0; wR < ${e}; wR++) {\n float dyR = float(dyRCorner + wR) / strides[0];\n if (dyR < 0.0 || dyR >= ${t.outHeight}.0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n int wRPerm = ${e} - 1 - wR;\n\n for (int wC = 0; wC < ${n}; wC++) {\n int wCPerm = ${n} - 1 - wC;\n\n float dyC = float(dyCCorner + wC) / strides[1];\n bool idyCVal = (dyC >= 0.0) && (dyC < ${t.outWidth}.0)\n && (fract(dyC) == 0.0);\n int idyC = int(dyC);\n\n float dyC2 = float(dyCCorner + wC + 1) / strides[1];\n bool idyCVal2 = (dyC2 >= 0.0) && (dyC2 < ${t.outWidth}.0)\n && (fract(dyC2) == 0.0);\n int idyC2 = int(dyC2);\n\n if (idyCVal && idyCVal2) {\n for (int d2 = 0; d2 < ${t.outChannels}; d2 += 2) {\n vec4 wValue = getW(wRPerm, wCPerm, d1, d2);\n vec4 dySample = getDy(batch, idyR, idyC, d2);\n vec4 dySample2 = (idyC / 2 == idyC2 / 2) ?\n dySample : getDy(batch, idyR, idyC2, d2);\n\n vec2 dyValue = mod(float(idyC), 2.) == 0. ?\n dySample.xy : dySample.zw;\n result.xy += vec2(dot(dyValue, wValue.xy),\n dot(dyValue, wValue.zw));\n\n dyValue = mod(float(idyC2), 2.) == 0. ?\n dySample2.xy : dySample2.zw;\n result.zw += vec2(dot(dyValue, wValue.xy),\n dot(dyValue, wValue.zw));\n }\n } else if (idyCVal) {\n for (int d2 = 0; d2 < ${t.outChannels}; d2 += 2) {\n vec4 wValue = getW(wRPerm, wCPerm, d1, d2);\n vec4 dySample = getDy(batch, idyR, idyC, d2);\n vec2 dyValue = mod(float(idyC), 2.) == 0. ?\n dySample.xy : dySample.zw;\n result.xy += vec2(dot(dyValue, wValue.xy),\n dot(dyValue, wValue.zw));\n }\n } else if (idyCVal2) {\n for (int d2 = 0; d2 < ${t.outChannels}; d2 += 2) {\n vec4 wValue = getW(wRPerm, wCPerm, d1, d2);\n vec4 dySample = getDy(batch, idyR, idyC2, d2);\n vec2 dyValue = mod(float(idyC2), 2.) == 0. ?\n dySample.xy : dySample.zw;\n result.zw += vec2(dot(dyValue, wValue.xy),\n dot(dyValue, wValue.zw));\n }\n }\n }\n }\n setOutput(result);\n }\n `}};function _st(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);if(L().getBool(\"WEBGL_PACK\")&&p===\"channelsLast\"){let f=[[m.strideHeight,m.strideWidth]],d=new RI(m);return e.runWebGLProgram(d,[o,s],\"float32\",f)}else{let f=new AI(m);return e.runWebGLProgram(f,[o,s],\"float32\")}}var U3={kernelName:os,backendName:\"webgl\",kernelFunc:_st};function Est(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 SI(l);return e.runWebGLProgram(c,[o,s],\"float32\")}var H3={kernelName:ss,backendName:\"webgl\",kernelFunc:Est};function Ast(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 DI(l);return e.runWebGLProgram(c,[o,s],\"float32\")}var q3={kernelName:Ma,backendName:\"webgl\",kernelFunc:Ast};function Dst(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 $I(l);return e.runWebGLProgram(c,[o,s],\"float32\")}var K3={kernelName:La,backendName:\"webgl\",kernelFunc:Dst};var $st=Vo+`\n return cos(x);\n`,Rst=`\n vec4 result = cos(x);\n bvec4 isNaN = isnan(x);\n ${Qn}\n return result;\n`,Fst=It({opSnippet:$st,packedOpSnippet:Rst}),j3={kernelName:is,backendName:\"webgl\",kernelFunc:Fst};var Ost=`\n float e2x = exp(-x);\n return (e2x + 1.0 / e2x) / 2.0;\n`,Pst=It({opSnippet:Ost}),X3={kernelName:as,backendName:\"webgl\",kernelFunc:Pst};var FI=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,I,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 = ${I};\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 Mst=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 FI(o.shape,s.shape,a,u,l);return e.runWebGLProgram(c,[o,s,i],\"float32\")},Y3={kernelName:Ba,backendName:\"webgl\",kernelFunc:Mst};var Np;(function(r){r.Prod=\"*\",r.Sum=\"+\"})(Np||(Np={}));var hg=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===Np.Prod?\"1.0\":\"0.0\",a=n?i:`getX(${Z3(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 = ${J3(s,\"coords\",this.op)};\n float val = ${a};\n int pow2 = int(pow(2.0, index));\n if (${l}) {\n int idx = ${c};\n ${J3(s,\"coords\",this.op)} = idx;\n val ${this.op}= getX(${Z3(s,\"coords\",this.op)});\n }\n setOutput(val);\n }\n `}};function Z3(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 J3(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 OI(r,t,e,n,o,s){let i=t.shape.length,a=S.getAxesPermutation([n],i),u=t;a!=null&&(u=Pe({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 hg(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 hg(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=Pe({inputs:{x:p},backend:e,attrs:{perm:m}});return e.disposeIntermediateTensorInfo(p),e.disposeIntermediateTensorInfo(u),f}return p}function Lst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,exclusive:i,reverse:a}=n;return OI(Np.Prod,o,e,s,i,a)}var Q3={kernelName:za,backendName:\"webgl\",kernelFunc:Lst};function zst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,exclusive:i,reverse:a}=n;return OI(Np.Sum,o,e,s,i,a)}var tB={kernelName:ls,backendName:\"webgl\",kernelFunc:zst};function Bst(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=Yw(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=ML(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 eB={kernelName:eu,backendName:\"webgl\",kernelFunc:Bst};var PI=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 Vst(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 PI(d,s,i);return e.runWebGLProgram(h,[o],o.dtype)}var rB={kernelName:Va,backendName:\"webgl\",kernelFunc:Vst};var Gd=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=de(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 Wd=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=de(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;L().getBool(\"WEBGL_PACK_DEPTHWISECONV\")&&p.strideWidth<=2&&p.outChannels/p.inChannels===1?m=new Wd(p):m=new Gd(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 nB={kernelName:us,backendName:\"webgl\",kernelFunc:Gst};var MI=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 `}},LI=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 Wst(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 MI(p);return e.runWebGLProgram(m,[o,s],\"float32\")}var oB={kernelName:Vp,backendName:\"webgl\",kernelFunc:Wst};function Ust(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 LI(p);return e.runWebGLProgram(m,[o,s],\"float32\")}var sB={kernelName:Gp,backendName:\"webgl\",kernelFunc:Ust};var zI=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 Hst(r){let{inputs:t,backend:e}=r,{x:n}=t,o=[...n.shape,...n.shape],s=y.sizeFromShape(n.shape),i=rt({inputs:{x:n},backend:e,attrs:{shape:[s]}}),a=new zI(s),u=e.runWebGLProgram(a,[i],i.dtype),l=rt({inputs:{x:u},backend:e,attrs:{shape:o}});return e.disposeIntermediateTensorInfo(i),e.disposeIntermediateTensorInfo(u),l}var iB={kernelName:ru,backendName:\"webgl\",kernelFunc:Hst};var BI=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 qst(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 BI(l);c=e.runWebGLProgram(p,[o,s],\"float32\");let m=rt({inputs:{x:c},backend:e,attrs:{shape:l.outShape}});return e.disposeIntermediateTensorInfo(c),m}var aB={kernelName:cs,backendName:\"webgl\",kernelFunc:qst};function Kst(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=Cp({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 lB={kernelName:Wp,backendName:\"webgl\",kernelFunc:Kst};var jst=\"return (x >= 0.0) ? x : (exp(x) - 1.0);\",Xst=`\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`,Yst=It({opSnippet:jst,packedOpSnippet:Xst}),uB={kernelName:ms,backendName:\"webgl\",kernelFunc:Yst};var Zst=\"return (b >= 0.0) ? a : a * (b + 1.0);\",Jst=`\n vec4 bGTEZero = vec4(greaterThanEqual(b, vec4(0.)));\n return (bGTEZero * a) + ((vec4(1.0) - bGTEZero) * (a * (b + vec4(1.0))));\n`,Qst=r=>{let{inputs:t,backend:e}=r,{dy:n,y:o}=t,s=L().getBool(\"WEBGL_PACK_BINARY_OPERATIONS\")?new Jn(Jst,n.shape,o.shape):new On(Zst,n.shape,o.shape);return e.runWebGLProgram(s,[n,o],n.dtype)},cB={kernelName:Ga,backendName:\"webgl\",kernelFunc:Qst};var tit=`\n return vec4(equal(a, b));\n`,eit=\"return float(a == b);\",rit=ue({opSnippet:eit,packedOpSnippet:tit,dtype:\"bool\",cpuKernelImpl:GL}),pB={kernelName:Wa,backendName:\"webgl\",kernelFunc:rit};var nit=`\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`,oit=It({opSnippet:nit}),mB={kernelName:fs,backendName:\"webgl\",kernelFunc:oit};var sit=Vo+`\n return exp(x);\n`,iit=`\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`,R1=It({opSnippet:sit,packedOpSnippet:iit,cpuKernelImpl:WL,dtype:\"float32\"}),fB={kernelName:ds,backendName:\"webgl\",kernelFunc:R1};function VI(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),rt({inputs:{x:s},backend:n,attrs:{shape:a}})}var dB={kernelName:Li,backendName:\"webgl\",kernelFunc:VI};var hB=\"return exp(x) - 1.0;\",ait=It({opSnippet:hB,packedOpSnippet:hB,cpuKernelImpl:UL}),gB={kernelName:hs,backendName:\"webgl\",kernelFunc:ait};var gg=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 GI(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=rt({inputs:{x:r},backend:e,attrs:{shape:[i,s]}}),u=a.shape,l=new gg(\"real\",u,t),c=new gg(\"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=Pn({inputs:{real:m,imag:f},backend:e});e.disposeIntermediateTensorInfo(m),e.disposeIntermediateTensorInfo(f);let h=rt({inputs:{x:d},backend:e,attrs:{shape:r.shape}});return e.disposeIntermediateTensorInfo(a),e.disposeIntermediateTensorInfo(d),h}function lit(r){let{inputs:t,backend:e}=r,{input:n}=t;return GI(n,!1,e)}var xB={kernelName:Up,backendName:\"webgl\",kernelFunc:lit};var WI=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 Hl(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 WI(n,o),a=[[o]];return t.runWebGLProgram(i,[],s,a)}}var yB={kernelName:su,backendName:\"webgl\",kernelFunc:Hl};var UI=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 bB={kernelName:Ua,backendName:\"webgl\",kernelFunc:({inputs:r,backend:t})=>{let{image:e}=r,n=t,o=new UI(e.shape);return n.runWebGLProgram(o,[e],e.dtype)}};var wB=\"return floor(x);\",uit=It({opSnippet:wB,packedOpSnippet:wB,cpuKernelImpl:HL}),IB={kernelName:gs,backendName:\"webgl\",kernelFunc:uit};var cit=`\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`,pit=`\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`,mit=ue({opSnippet:cit,packedOpSnippet:pit,dtype:\"int32\"}),CB={kernelName:xs,backendName:\"webgl\",kernelFunc:mit};var HI=class{constructor(t){this.variableNames=[\"A\"];let e=We(),[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 qI=class{constructor(t){this.variableNames=[\"A\"],this.packedInputs=!1,this.packedOutput=!0;let e=We(),[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 vB={kernelName:oh,backendName:\"webgl\",kernelFunc:fit},Ud,F1=L().getBool(\"CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU\");function fit(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=L().getBool(\"CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU\");(Ud==null||h!==F1)&&(F1=h,Ud=document.createElement(\"canvas\").getContext(\"2d\",{willReadFrequently:F1})),Ud.canvas.width=u,Ud.canvas.height=l,Ud.drawImage(o,0,0,u,l),o=Ud.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=L().getBool(\"WEBGL_PACK\")?new qI(p):new HI(p),d=e.runWebGLProgram(f,[m],\"int32\");return e.disposeData(m.dataId),d}function dit(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,I=a!=null,N=f===\"leakyrelu\",E=()=>{let D=[o,s],F=(P,V)=>{if(V===\"NCHW\"&&P.shape.length===1&&P.shape[0]!==1){let G=rt({inputs:{x:P},backend:e,attrs:{shape:[P.shape[0],1,1]}});return b.push(G),G}return P};if(w&&D.push(F(i,c)),I&&D.push(F(a,c)),N){let P=e.makeTensorInfo([],\"float32\",y.createScalarValue(d,\"float32\"));D.push(P),b.push(P)}return D};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=TI({x:o,filter:s,convInfo:g,backend:e,bias:i,activation:f,preluActivationWeights:a,leakyreluAlpha:d});else if(g.strideWidth<=2&&h===\"channelsLast\"&&L().getBool(\"WEBGL_EXP_CONV\")){let D=f?Wl(f,!0):null,F=new Vd(g,w,D,I,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(L().getBool(\"WEBGL_CONV_IM2COL\"))x=_I({x:o,filter:s,convInfo:g,backend:e,bias:i,activation:f,preluActivationWeights:a,leakyreluAlpha:d});else{let D=f?Wl(f,!1):null,F=new Bd(g,w,D,I,N),P=E();x=e.runWebGLProgram(F,P,\"float32\")}let A=rt({inputs:{x},backend:e,attrs:{shape:g.outShape}});return b.push(x),b.forEach(D=>e.disposeIntermediateTensorInfo(D)),A}var SB={kernelName:Ji,backendName:\"webgl\",kernelFunc:dit};function hit(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=L().getBool(\"WEBGL_PACK_DEPTHWISECONV\")&&g.strideWidth<=2&&g.outChannels/g.inChannels===1,b=m?Wl(m,x):null,w=[o,s],I=i!=null,N=a!=null,E=m===\"leakyrelu\";if(I&&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 Wd(g,I,b,N,E):A=new Gd(g,I,b,N,E);let D=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],F=e.runWebGLProgram(A,w,\"float32\",D);return d.forEach(P=>e.disposeIntermediateTensorInfo(P)),F}var NB={kernelName:Qi,backendName:\"webgl\",kernelFunc:hit};var KI=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 git(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=rt({inputs:{x:o},backend:e,attrs:{shape:[l,i]}}),f=rt({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=qL(x,b,n.dtype,l,i,c,p,n.shape,a);return e.makeTensorInfo(u,n.dtype,w.values)}let d=new KI(i,p,[l,c],n.shape),h=e.runWebGLProgram(d,[f,m],f.dtype),g=rt({inputs:{x:h},backend:e,attrs:{shape:u}});return e.disposeIntermediateTensorInfo(m),e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(h),g}var kB={kernelName:Ha,backendName:\"webgl\",kernelFunc:git};var jI=class{constructor(t,e){this.variableNames=[\"A\",\"indices\"],this.outputShape=e,this.rank=e.length;let n=zt(this.rank),o=xit(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 xit(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=rt({inputs:{x:o},backend:e,attrs:{shape:[l.batchSize,l.outerSize,l.dimSize,l.sliceSize]}}),f=rt({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),I=KL(w,b,d);return p.forEach(N=>e.disposeIntermediateTensorInfo(N)),e.makeTensorInfo(l.outputShape,I.dtype,I.values)}let h=new jI(m.shape,d),g=e.runWebGLProgram(h,[m,f],m.dtype);p.push(g);let x=rt({inputs:{x:g},backend:e,attrs:{shape:l.outputShape}});return p.forEach(b=>e.disposeIntermediateTensorInfo(b)),x}var TB={kernelName:zi,backendName:\"webgl\",kernelFunc:O1};var yit=\"return float(a > b);\",bit=`\n return vec4(greaterThan(a, b));\n`,wit=ue({opSnippet:yit,packedOpSnippet:bit,cpuKernelImpl:jL,dtype:\"bool\"}),_B={kernelName:qa,backendName:\"webgl\",kernelFunc:wit};var Iit=\"return float(a >= b);\",Cit=`\n return vec4(greaterThanEqual(a, b));\n`,vit=ue({opSnippet:Iit,packedOpSnippet:Cit,dtype:\"bool\",cpuKernelImpl:XL}),EB={kernelName:bs,backendName:\"webgl\",kernelFunc:vit};function Sit(r){let{inputs:t,backend:e}=r,{input:n}=t;return GI(n,!0,e)}var AB={kernelName:Hp,backendName:\"webgl\",kernelFunc:Sit};var Nit=\"return float(!isnan(x) && !isinf(x));\",kit=It({opSnippet:Nit,dtype:\"bool\"}),DB={kernelName:ws,backendName:\"webgl\",kernelFunc:kit};var Tit=\"return float(isinf(x));\",_it=It({opSnippet:Tit,dtype:\"bool\"}),$B={kernelName:Is,backendName:\"webgl\",kernelFunc:_it};var Eit=\"return float(isnan(x));\",Ait=It({opSnippet:Eit,dtype:\"bool\"}),RB={kernelName:Cs,backendName:\"webgl\",kernelFunc:Ait};var Dit=\"return float(a < b);\",$it=`\n return vec4(lessThan(a, b));\n`,Rit=ue({opSnippet:Dit,packedOpSnippet:$it,cpuKernelImpl:YL,dtype:\"bool\"}),FB={kernelName:Ka,backendName:\"webgl\",kernelFunc:Rit};var Fit=\"return float(a <= b);\",Oit=`\n return vec4(lessThanEqual(a, b));\n`,Pit=ue({opSnippet:Fit,packedOpSnippet:Oit,cpuKernelImpl:ZL,dtype:\"bool\"}),OB={kernelName:ja,backendName:\"webgl\",kernelFunc:Pit};function Mit(r){let{backend:t,attrs:e}=r,{start:n,stop:o,num:s}=e,i=JL(n,o,s);return t.makeTensorInfo([i.length],\"float32\",i)}var PB={kernelName:Xa,backendName:\"webgl\",kernelFunc:Mit};var Lit=Vo+`\n return x < 0.0 ? 0./0. : log(x);\n`,zit=`\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`,Bit=It({opSnippet:Lit,packedOpSnippet:zit,cpuKernelImpl:QL}),MB={kernelName:Ss,backendName:\"webgl\",kernelFunc:Bit};var Vit=Vo+`\n return log(1.0 + x);\n`,Git=It({opSnippet:Vit}),LB={kernelName:Ns,backendName:\"webgl\",kernelFunc:Git};var Wit=\"return float(a >= 1.0 && b >= 1.0);\",Uit=`\n return vec4(\n vec4(greaterThanEqual(a, vec4(1.0))) *\n vec4(greaterThanEqual(b, vec4(1.0))));\n`,Hit=ue({opSnippet:Wit,packedOpSnippet:Uit,dtype:\"bool\"}),zB={kernelName:Ya,backendName:\"webgl\",kernelFunc:Hit};var qit=\"return float(!(x >= 1.0));\",Kit=It({opSnippet:qit}),BB={kernelName:Za,backendName:\"webgl\",kernelFunc:Kit};var jit=\"return float(a >= 1.0 || b >= 1.0);\",Xit=`\n return min(\n vec4(greaterThanEqual(a, vec4(1.0))) +\n vec4(greaterThanEqual(b, vec4(1.0))),\n vec4(1.0));\n`,Yit=ue({opSnippet:jit,packedOpSnippet:Xit,dtype:\"bool\"}),VB={kernelName:Ja,backendName:\"webgl\",kernelFunc:Yit};var XI=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 YI=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 Zit=r=>{let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{depthRadius:s,bias:i,alpha:a,beta:u}=n,l=L().getBool(\"WEBGL_PACK_NORMALIZATION\")?new YI(o.shape,s,i,a,u):new XI(o.shape,s,i,a,u);return e.runWebGLProgram(l,[o],o.dtype)},GB={kernelName:ks,backendName:\"webgl\",kernelFunc:Zit};var ZI=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 Jit=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 ZI(o.shape,a,u,l,c);return e.runWebGLProgram(p,[o,s,i],o.dtype)},WB={kernelName:Qa,backendName:\"webgl\",kernelFunc:Jit};function UB(r,t,e,n){let o=y.sizeFromShape(t),i=y.sizeFromShape(r.shape)/o,a=rt({inputs:{x:r},attrs:{shape:[i,o]},backend:n}),u=to(a,r.dtype,\"max\",n),l=rt({inputs:{x:u},attrs:{shape:e},backend:n});return n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(u),l}function P1(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,I=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 Ti(c,\"max\",!1);return e.runWebGLProgram(p,[o],o.dtype)}var KB={kernelName:Es,backendName:\"webgl\",kernelFunc:rat};function nat(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 ec(p,\"max\",!1);return e.runWebGLProgram(m,[o],o.dtype)}var jB={kernelName:Bi,backendName:\"webgl\",kernelFunc:nat};var JI=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 `}},QI=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 oat(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,\"max\",!0),d=e.runWebGLProgram(f,[i],i.dtype),h=new QI(m),g=e.runWebGLProgram(h,[o,d],i.dtype);return e.disposeIntermediateTensorInfo(d),g}var XB={kernelName:au,backendName:\"webgl\",kernelFunc:oat};function sat(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s,output:i}=t,a=s;Ni([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 Ti(m,\"max\",f),h=e.runWebGLProgram(d,[a],a.dtype),g=new JI(m),x=e.runWebGLProgram(g,[o,h],a.dtype);return e.disposeIntermediateTensorInfo(h),x}var YB={kernelName:iu,backendName:\"webgl\",kernelFunc:sat};function ZB(r,t,e,n){let o=new Ti(e,\"max\",!1),s=n.runWebGLProgram(o,[r],\"float32\");o=new Ti(e,\"max\",!0,!0,t);let i=n.runWebGLProgram(o,[r],\"float32\");return[s,i]}var JB={kernelName:lu,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]=ZB(n,a,c,u);return[p,m]}};function QB(r,t,e,n){let o=y.sizeFromShape(t),i=y.sizeFromShape(r.shape)/o,a=rt({inputs:{x:r},attrs:{shape:[i,o]},backend:n}),u=to(a,\"float32\",\"mean\",n),l=rt({inputs:{x:u},attrs:{shape:e},backend:n});return n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(u),l}var tV={kernelName:As,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 I=i.texData.get(d.dataId).values,N=new Array(a);for(let D=0;Dc[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 eC=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=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 cat=({inputs:r,backend:t,attrs:e})=>{let{x:n}=r,{paddings:o,mode:s}=e,i=L().getBool(\"WEBGL_PACK_ARRAY_OPERATIONS\")?new eC(n.shape,o,s):new tC(n.shape,o,s);return t.runWebGLProgram(i,[n],n.dtype)},nV={kernelName:Rs,backendName:\"webgl\",kernelFunc:cat};var pat=`if (b == 0.0) return NAN;\n return mod(a, b);`,mat=`\n vec4 result = mod(a, b);\n bvec4 isNaN = equal(b, vec4(0.0));\n `+Qn+`\n return result;\n`,fat=ue({opSnippet:pat,packedOpSnippet:mat}),oV={kernelName:Fs,backendName:\"webgl\",kernelFunc:fat};var rC=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 dat=`\nif (a == b) {\n return 1.0;\n};\nreturn a / b;`,hat=`\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`,M1=ue({opSnippet:dat,packedOpSnippet:hat,checkOutOfBounds:!0}),sV={kernelName:ps,backendName:\"webgl\",kernelFunc:M1};var iV=\"return a - b;\",L1=ue({opSnippet:iV,packedOpSnippet:iV,supportsComplex:!0,cpuKernelImpl:vz}),aV={kernelName:si,backendName:\"webgl\",kernelFunc:L1};function z1(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{dim:s}=n,i=y.parseAxisParam([s],o.shape),a=P1({inputs:{x:o},backend:e,attrs:{reductionIndices:i,keepDims:!1}}),u=S.expandShapeToKeepDim(a.shape,i),l=rt({inputs:{x:a},backend:e,attrs:{shape:u}}),c=L1({inputs:{a:o,b:l},backend:e}),p=R1({inputs:{x:c},backend:e}),m=Cp({inputs:{x:p},backend:e,attrs:{axis:i,keepDims:!1}}),f=rt({inputs:{x:m},backend:e,attrs:{shape:u}}),d=M1({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 lV={kernelName:ni,backendName:\"webgl\",kernelFunc:z1};function gat(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{numSamples:s,seed:i,normalized:a}=n,u=a?o:z1({inputs:{logits:o},backend:e,attrs:{dim:o.shape.length-1}}),l=u.shape[0],c=u.shape[1],p=new rC(l,c,s),m=[[i]],f=e.runWebGLProgram(p,[u],\"int32\",m);return a||e.disposeIntermediateTensorInfo(u),f}var uV={kernelName:tl,backendName:\"webgl\",kernelFunc:gat};var xat=yr+`\n return -x;\n`,yat=`\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 bat(r){let{inputs:t,backend:e}=r,{x:n}=t;if(e.shouldExecuteOnCPU([n])){let s=e.texData.get(n.dataId),[i,a]=oz(s.values,n.shape,n.dtype);return e.makeTensorInfo(a,n.dtype,i)}let o;return L().getBool(\"WEBGL_PACK_UNARY_OPERATIONS\")?o=new Fn(n.shape,yat):o=new Br(n.shape,xat),e.runWebGLProgram(o,[n],n.dtype)}var cV={kernelName:Vi,backendName:\"webgl\",kernelFunc:bat};var wat=jr.nonMaxSuppressionV3Impl;function Iat(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}=wat(l,c,i,a,u);return e.makeTensorInfo([p.length],\"int32\",new Int32Array(p))}var pV={kernelName:rl,backendName:\"webgl\",kernelFunc:Iat};var Cat=jr.nonMaxSuppressionV4Impl;function vat(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}=Cat(c,p,i,a,u,l);return[e.makeTensorInfo([m.length],\"int32\",new Int32Array(m)),e.makeTensorInfo([],\"int32\",new Int32Array([f]))]}var mV={kernelName:nl,backendName:\"webgl\",kernelFunc:vat};var Sat=jr.nonMaxSuppressionV5Impl;function Nat(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}=Sat(c,p,m,f,d,h);return[e.makeTensorInfo([g.length],\"int32\",new Int32Array(g)),e.makeTensorInfo([x.length],\"float32\",new Float32Array(x))]}var fV={kernelName:ol,backendName:\"webgl\",kernelFunc:Nat};var nC=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 kat=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 nC(l,i,a,u),p=rt({inputs:{x:o},backend:e,attrs:{shape:[l]}}),m=e.runWebGLProgram(c,[p],s);e.disposeIntermediateTensorInfo(p);let f=[...o.shape,i],d=rt({inputs:{x:m},backend:e,attrs:{shape:f}});return e.disposeIntermediateTensorInfo(m),d},dV={kernelName:Ps,backendName:\"webgl\",kernelFunc:kat};function xg(r){let{inputs:t,backend:e}=r,{x:n}=t;if(n.dtype===\"complex64\"){let o=Ul({inputs:{input:n},backend:e}),s=xg({inputs:{x:o},backend:e}),i=Sp({inputs:{input:n},backend:e}),a=xg({inputs:{x:i},backend:e}),u=Pn({inputs:{real:s,imag:a},backend:e});return e.disposeIntermediateTensorInfo(o),e.disposeIntermediateTensorInfo(s),e.disposeIntermediateTensorInfo(i),e.disposeIntermediateTensorInfo(a),u}else return Hl({attrs:{shape:n.shape,dtype:n.dtype,value:n.dtype===\"string\"?\"\":0},backend:e})}var hV={kernelName:Yi,backendName:\"webgl\",kernelFunc:xg};function gV(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=Ul({inputs:{input:n},backend:e}),s=gV({inputs:{x:o},backend:e}),i=Sp({inputs:{input:n},backend:e}),a=xg({inputs:{x:i},backend:e}),u=Pn({inputs:{real:s,imag:a},backend:e});return e.disposeIntermediateTensorInfo(o),e.disposeIntermediateTensorInfo(s),e.disposeIntermediateTensorInfo(i),e.disposeIntermediateTensorInfo(a),u}else return Hl({attrs:{shape:n.shape,dtype:n.dtype,value:1},backend:e})}var xV={kernelName:Gi,backendName:\"webgl\",kernelFunc:gV};function Tat(r){let{inputs:t,backend:e,attrs:n}=r,{axis:o}=n;if(t.length===1)return VI({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=VI({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=$1({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeIntermediateTensorInfo(c)),l}var yV={kernelName:Wi,backendName:\"webgl\",kernelFunc:Tat};var oC=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 sC=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=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 Hl({backend:e,attrs:{shape:l,value:i,dtype:o.dtype}})}let a=L().getBool(\"WEBGL_PACK_ARRAY_OPERATIONS\")?new sC(o.shape,s,i):new oC(o.shape,s,i),u=[[i]];return e.runWebGLProgram(a,[o],o.dtype,u)},bV={kernelName:Ms,backendName:\"webgl\",kernelFunc:B1};var _at=`\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`,Eat=`\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 `+Qn+`\n return result;\n`,Aat=ue({opSnippet:_at,packedOpSnippet:Eat}),wV={kernelName:Ls,backendName:\"webgl\",kernelFunc:Aat};function Dat(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=Pe({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}=iz(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=rt({inputs:{x:m},backend:e,attrs:{shape:[-1,g]}}),b=xc(o.dtype),w=to(x,b,\"prod\",e);f=rt({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=rt({inputs:{x:f},backend:e,attrs:{shape:d}})}return u.forEach(d=>e.disposeIntermediateTensorInfo(d)),f}var IV={kernelName:Bs,backendName:\"webgl\",kernelFunc:Dat};function $at(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]=az(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 CV={kernelName:Kp,backendName:\"webgl\",kernelFunc:$at};function Rat(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]=lz(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 vV={kernelName:jp,backendName:\"webgl\",kernelFunc:Rat};function Fat(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]=uz(l,o.shape,c,s.shape,s.dtype,p,i.shape,m,f,u);return e.makeTensorInfo(d,s.dtype,h)}var SV={kernelName:Xp,backendName:\"webgl\",kernelFunc:Fat};var V1=r=>{let{backend:t,attrs:e}=r,{start:n,stop:o,step:s,dtype:i}=e,a=cz(n,o,s,i);return t.makeTensorInfo([a.length],i,a)},NV={kernelName:uu,backendName:\"webgl\",kernelFunc:V1};var Oat=\"return 1.0 / x;\",Pat=It({opSnippet:Oat}),kV={kernelName:Vs,backendName:\"webgl\",kernelFunc:Pat};var Mat=yr+`\n return (x < 0.0) ? 0.0 : x;\n`,Lat=`\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`,zat=It({opSnippet:Mat,packedOpSnippet:Lat}),TV={kernelName:Gs,backendName:\"webgl\",kernelFunc:zat};var Bat=yr+`\n return (x < 0.0) ? 0.0 : min(6.0, x);\n`,Vat=`\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`,Gat=It({opSnippet:Bat,packedOpSnippet:Vat}),_V={kernelName:Hs,backendName:\"webgl\",kernelFunc:Gat};var iC=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 aC=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 Wat(r){let{inputs:t,backend:e,attrs:n}=r,{images:o}=t,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,c=L().getBool(\"WEBGL_PACK_IMAGE_OPERATIONS\")?new aC(o.shape,u,l,s,i):new iC(o.shape,u,l,s,i);return e.runWebGLProgram(c,[o],\"float32\")}var EV={kernelName:Us,backendName:\"webgl\",kernelFunc:Wat};var lC=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 Uat(r){let{inputs:t,backend:e,attrs:n}=r,{images:o,dy:s}=t,{alignCorners:i}=n,a=new lC(s.shape,o.shape,i);return e.runWebGLProgram(a,[s],s.dtype)}var AV={kernelName:il,backendName:\"webgl\",kernelFunc:Uat};var uC=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 cC=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 Hat(r){let{inputs:t,backend:e,attrs:n}=r,{images:o}=t,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,c=L().getBool(\"WEBGL_PACK_IMAGE_OPERATIONS\")?new cC(o.shape,u,l,s,i):new uC(o.shape,u,l,s,i);return e.runWebGLProgram(c,[o],o.dtype)}var DV={kernelName:Ws,backendName:\"webgl\",kernelFunc:Hat};var pC=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 qat(r){let{inputs:t,backend:e,attrs:n}=r,{images:o,dy:s}=t,{alignCorners:i}=n,a=new pC(s.shape,o.shape,i);return e.runWebGLProgram(a,[s],s.dtype)}var $V={kernelName:sl,backendName:\"webgl\",kernelFunc:qat};var mC=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 fC=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=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 Kat(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=L().getBool(\"WEBGL_PACK_ARRAY_OPERATIONS\")?new fC(o.shape,a):new mC(o.shape,a);return e.runWebGLProgram(u,[o],o.dtype)}var RV={kernelName:qs,backendName:\"webgl\",kernelFunc:Kat};var dC=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 FV={kernelName:hl,backendName:\"webgl\",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{image:n}=r,{radians:o,fillValue:s,center:i}=t,a=e,u=new dC(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 jat=`\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`,Xat=It({opSnippet:jat}),OV={kernelName:Ks,backendName:\"webgl\",kernelFunc:Xat};var Yat=\"return inversesqrt(x);\",Zat=It({opSnippet:Yat,cpuKernelImpl:pz}),PV={kernelName:js,backendName:\"webgl\",kernelFunc:Zat};var rc=class{constructor(t,e,n,o,s,i,a=!0,u=!1){this.variableNames=[\"updates\",\"indices\",\"defaultValue\"],this.outputShape=i;let l=zt(s.length),c=zt(i.length),p=\"\";n===1?p=\"i\":n===2&&(p=\"i, j\");let m=`getIndices(${p})`,f=\"\";o===1?f=\"i\":o===2&&(f=\"i, coords[1]\");let d=`getUpdates(${f})`,h=\"\";u&&(h=\"coords[0], coords[1]\");let g=`getDefaultValue(${h})`,x=e>1?\"strides[j]\":\"strides\";this.userCode=`\n ${l} strides = ${l}(${s});\n\n void main() {\n ${c} 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(${m});\n flattenedIndex += index * ${x};\n }\n if (flattenedIndex == coords[0]) {\n sum += ${d};\n found = true;\n }\n }\n setOutput(mix(${g}, sum, float(found)));\n }\n `}};var hC=class{constructor(t,e,n,o,s,i,a=!0,u=!1){this.variableNames=[\"updates\",\"indices\",\"defaultValue\"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=i;let l=zt(s.length),c=zt(i.length),p=\"\";n===1?p=\"i\":n===2&&(p=\"i, j\");let m=`getIndices(${p})`,f=\"\";o===1?f=\"i\":o===2&&(f=\"i, coords[1]\");let d=`getUpdates(${f})`,h=\"\";u&&(h=\"coords[0], coords[1]\");let g=`getDefaultValue(${h})`,x=e>1?\"strides[j]\":\"strides\",b=e>1?\"strides[j + 1]\":\"strides\";this.userCode=`\n ${l} strides = ${l}(${s});\n\n void main() {\n ${c} coords = getOutputCoords();\n vec4 sum = vec4(0.);\n vec4 found = vec4(0.);\n for (int i = 0; i < ${t}; i+=2) {\n ivec2 flattenedIndex = ivec2(0);\n for (int j = 0; j < ${e}; j+=2) {\n ivec4 index = round(${m});\n flattenedIndex += index.xz * ${x};\n if (j + 1 < ${e}) {\n flattenedIndex += index.yw * ${b};\n }\n }\n if (flattenedIndex[0] == coords[0] || flattenedIndex[1] == coords[0] ||\n flattenedIndex[0] == coords[0] + 1 || flattenedIndex[1] == coords[0] + 1) {\n vec4 updVals = ${d};\n if (flattenedIndex[0] == coords[0]) {\n sum.xy += updVals.xy;\n found.xy = vec2(1.);\n } else if (flattenedIndex[0] == coords[0] + 1) {\n sum.zw += updVals.xy;\n found.zw = vec2(1.);\n }\n if (flattenedIndex[1] == coords[0]) {\n sum.xy += updVals.zw;\n found.xy = vec2(1.);\n } else if (flattenedIndex[1] == coords[0] + 1) {\n sum.zw += updVals.zw;\n found.zw = vec2(1.);\n }\n }\n }\n setOutput(mix(${g}, sum, found));\n }\n `}};function Jat(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=rt({inputs:{x:o},backend:e,attrs:{shape:[u,a]}}),d=rt({inputs:{x:s},backend:e,attrs:{shape:[u,l]}}),h=e.makeTensorInfo([],\"float32\",new Float32Array([0])),g;L().getBool(\"WEBGL_PACK\")?g=new hC(u,a,f.shape.length,d.shape.length,c,m):g=new rc(u,a,f.shape.length,d.shape.length,c,m);let x=e.runWebGLProgram(g,[d,f,h],d.dtype),b=rt({inputs:{x},backend:e,attrs:{shape:i}});return e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(x),e.disposeIntermediateTensorInfo(h),b}var MV={kernelName:al,backendName:\"webgl\",kernelFunc:Jat};var gC=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=L().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 Qat(r){let{inputs:t,backend:e,attrs:n}=r,{sortedSequence:o,values:s}=t,{side:i}=n,a=new gC(o.shape[0],o.shape[1],s.shape[1],i),u=[[o.shape[1]]];return e.runWebGLProgram(a,[o,s],\"int32\",u)}var LV={kernelName:ul,backendName:\"webgl\",kernelFunc:Qat};var xC=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 tlt(r){let{inputs:t,backend:e}=r,{condition:n,t:o,e:s}=t,i=new xC(n.shape.length,o.shape,o.shape.length);return e.runWebGLProgram(i,[n,o,s],ur(o.dtype,s.dtype))}var zV={kernelName:Hi,backendName:\"webgl\",kernelFunc:tlt};var elt=`\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`,rlt=It({opSnippet:elt}),BV={kernelName:Xs,backendName:\"webgl\",kernelFunc:rlt};var nlt=Vo+`\n return 1.0 / (1.0 + exp(-1.0 * x));\n`,olt=`\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`,slt=It({opSnippet:nlt,packedOpSnippet:olt,cpuKernelImpl:fz}),VV={kernelName:Qs,backendName:\"webgl\",kernelFunc:slt};var ilt=`\n if (isnan(x)) { return 0.0; }\n return sign(x);\n`,alt=It({opSnippet:ilt}),GV={kernelName:Js,backendName:\"webgl\",kernelFunc:alt};var llt=Vo+`\n return sin(x);\n`,ult=`\n vec4 result = sin(x);\n bvec4 isNaN = isnan(x);\n ${Qn}\n return result;\n`,clt=It({opSnippet:llt,packedOpSnippet:ult}),WV={kernelName:Ys,backendName:\"webgl\",kernelFunc:clt};var plt=`\n float e2x = exp(x);\n return (e2x - 1.0 / e2x) / 2.0;\n`,mlt=It({opSnippet:plt}),UV={kernelName:Zs,backendName:\"webgl\",kernelFunc:mlt};var flt=`\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`,dlt=It({opSnippet:flt}),HV={kernelName:ti,backendName:\"webgl\",kernelFunc:dlt};var hlt=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},qV={kernelName:Ki,backendName:\"webgl\",kernelFunc:hlt};function glt(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]=hz(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 KV={kernelName:cu,backendName:\"webgl\",kernelFunc:glt};function xlt(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]=gz(a,n.shape,n.dtype,i,u);return[e.makeTensorInfo(c,n.dtype,l),e.makeTensorInfo([p.length],s.dtype,new Int32Array(p))]}var jV={kernelName:cl,backendName:\"webgl\",kernelFunc:xlt};function ylt(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]=Jw(i,n.shape,n.dtype,a,u,!0);return e.makeTensorInfo(c,n.dtype,l)}var XV={kernelName:pu,backendName:\"webgl\",kernelFunc:ylt};function blt(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]=Jw(i,n.shape,n.dtype,a,u);return e.makeTensorInfo(c,n.dtype,l)}var YV={kernelName:mu,backendName:\"webgl\",kernelFunc:blt};function wlt(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]),I=mz(x,b,a,m,c,l,u,p,w,f);return e.makeTensorInfo(a,I.dtype,I.values)}let d=new rc(l,u,o.shape.length,s.shape.length,p,[m,1],f),h=e.runWebGLProgram(d,[s,o,i],s.dtype),g=rt({inputs:{x:h},backend:e,attrs:{shape:a}});return e.disposeIntermediateTensorInfo(h),g}var ZV={kernelName:pl,backendName:\"webgl\",kernelFunc:wlt};function Ilt(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=_i({inputs:{x:o},backend:e,attrs:{begin:c,size:f}});return c[a]+=m,d})}var JV={kernelName:ji,backendName:\"webgl\",kernelFunc:Ilt};var QV=\"return sqrt(x);\",Clt=It({opSnippet:QV,packedOpSnippet:QV,cpuKernelImpl:xz}),tG={kernelName:ei,backendName:\"webgl\",kernelFunc:Clt};var vlt=\"return x * x;\",Slt=It({opSnippet:vlt}),eG={kernelName:fu,backendName:\"webgl\",kernelFunc:Slt};var rG=\"return (a - b) * (a - b);\",Nlt=ue({opSnippet:rG,packedOpSnippet:rG}),nG={kernelName:oi,backendName:\"webgl\",kernelFunc:Nlt};function klt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t;if(o.dtype!==\"string\")throw new Error(\"Input must be of datatype string\");let s=e.readSync(o.dataId),i=S.fromUint8ToStringArray(s),a=yz(i,\"string\",n);return e.makeTensorInfo(o.shape,\"string\",a)}var oG={kernelName:cc,backendName:\"webgl\",kernelFunc:klt};function Tlt({inputs:r,attrs:t,backend:e}){let{x:n}=r,o=yr+`\n return x > 0.0 ? 1.0 : float(${t.alpha});\n `,s=new Br(n.shape,o);return e.runWebGLProgram(s,[n],n.dtype)}var sG={kernelName:wo,backendName:\"webgl\",kernelFunc:Tlt};var yC=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 _lt(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:I}=ze.sliceInfo(o.shape,s,i,a,u,l,c,p,m),N;if(h)N=rt({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=ze.computeOutShape(b,w,I),D=_i({inputs:{x:o},backend:e,attrs:{begin:b,size:A}});N=rt({inputs:{x:D},backend:e,attrs:{shape:d}}),e.disposeIntermediateTensorInfo(D)}else if(e.shouldExecuteOnCPU([o])){let D=e.readSync(o.dataId),F=wt(o.shape,o.dtype,D),P=bz(f,F,I,b);N=e.makeTensorInfo(d,o.dtype,P.values)}else{let D=new yC(b,I,f);N=e.runWebGLProgram(D,[o],o.dtype)}let E=rt({inputs:{x:N},backend:e,attrs:{shape:d}});return e.disposeIntermediateTensorInfo(N),E}var iG={kernelName:ml,backendName:\"webgl\",kernelFunc:_lt};function Elt(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]=wz(m,f,o,s,i,a,u,l);return[e.makeTensorInfo([d.length],\"string\",d),e.makeTensorInfo(p.shape,\"int32\",h)]}var aG={kernelName:du,backendName:\"webgl\",kernelFunc:Elt};function Alt(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]=Iz(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 lG={kernelName:hu,backendName:\"webgl\",kernelFunc:Alt};function Dlt(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=Cz(i,o);return e.makeTensorInfo(s.shape,\"int32\",a)}var uG={kernelName:gu,backendName:\"webgl\",kernelFunc:Dlt};var $lt=\"return tan(x);\",Rlt=It({opSnippet:$lt}),cG={kernelName:ii,backendName:\"webgl\",kernelFunc:Rlt};var Flt=`\n float e2x = exp(-2.0 * abs(x));\n return sign(x) * (1.0 - e2x) / (1.0 + e2x);\n`,Olt=It({opSnippet:Flt}),pG={kernelName:ai,backendName:\"webgl\",kernelFunc:Olt};function Plt(r){let{inputs:t,backend:e,attrs:n}=r,{tensor:o,indices:s,updates:i}=t,{}=n,{sliceRank:a,numUpdates:u,sliceSize:l,strides:c,outputSize:p}=S.calculateShapes(i,s,o.shape),m=[p/l,l];if(p===0)return e.makeTensorInfo(o.shape,s.dtype);let f=rt({inputs:{x:s},backend:e,attrs:{shape:[u,a]}}),d=rt({inputs:{x:i},backend:e,attrs:{shape:[u,l]}}),h=rt({inputs:{x:o},backend:e,attrs:{shape:m}}),g=new rc(u,a,f.shape.length,d.shape.length,c,m,!1,!0),x=e.runWebGLProgram(g,[d,f,h],h.dtype),b=rt({inputs:{x},backend:e,attrs:{shape:o.shape}});return e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(h),e.disposeIntermediateTensorInfo(x),b}var mG={kernelName:ll,backendName:\"webgl\",kernelFunc:Plt};var bC=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=Sz(c,s);return e.makeTensorInfo(p.shape,p.dtype,p.values)}let i=new bC(o.shape,s);return e.runWebGLProgram(i,[o],o.dtype)}var fG={kernelName:lo,backendName:\"webgl\",kernelFunc:G1};var wC=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 `}},IC=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 kp(r,t){t!==null&&r.disposeIntermediateTensorInfo(t)}function dG(r){let t=1;for(;tu){let P=e.readSync(o.dataId),[V,G]=Nz(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,Hl({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=rt({inputs:{x:f},attrs:{shape:[h,c]},backend:e});m&&kp(e,f);let x=dG(s),b=dG(c),w=null,I=()=>w===null?[g,g]:[g,w],N=(P,V,G)=>{let W=I(),q=new wC(G),K=[[c],[w===null?1:0],[Number.NEGATIVE_INFINITY],[P],[V]],X=w;w=e.runWebGLProgram(q,W,\"int32\",K),kp(e,X)};for(let P=1;P=1;G/=2)N(V,G,[h,b])}for(let P=b;P>x;P/=2){let V=I(),G=new IC([h,P/2]),q=[[c],[w===null?1:0],[x]],H=w;w=e.runWebGLProgram(G,V,\"int32\",q),kp(e,H);let K=x/2,X=K*2;for(let Z=K;Z>=1;Z/=2)N(X,Z,w.shape)}let E=w;w=_i({inputs:{x:w},backend:e,attrs:{begin:0,size:[h,s]}}),kp(e,E);let A=O1({inputs:{x:g,indices:w},backend:e,attrs:{axis:1,batchDims:1}});kp(e,g);let D=l.slice(0,-1);D.push(s),E=w,w=rt({inputs:{x:w},attrs:{shape:D},backend:e}),kp(e,E);let F=A;return A=rt({inputs:{x:A},attrs:{shape:D},backend:e}),kp(e,F),[A,w]}var hG={kernelName:fl,backendName:\"webgl\",kernelFunc:Llt};var CC=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 zlt(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 CC(p,m,i,a,u,g);return e.runWebGLProgram(x,[o,s],\"float32\")}var gG={kernelName:dl,backendName:\"webgl\",kernelFunc:zlt};function Blt(r){let{inputs:t,attrs:e,backend:n}=r,{axis:o}=e,{x:s}=t;Ni(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}=kz(i,o,s.shape,s.dtype);return[n.makeTensorInfo(u,s.dtype,a),n.makeTensorInfo([l.length],\"int32\",l)]}var xG={kernelName:xu,backendName:\"webgl\",kernelFunc:Blt};function Vlt(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 yG={kernelName:Xi,backendName:\"webgl\",kernelFunc:Vlt};var vC=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 Glt(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=Pe({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=rt({inputs:{x:p},backend:e,attrs:{shape:[-1,f]}});u.push(d);let h=xc(o.dtype),g=(I,N,E,A,D)=>{let F=I.shape[0],P=I.shape[1],V=S.segment_util.segOpComputeOptimalWindowSize(P,D),G={windowSize:V,inSize:P,batchSize:F,numSegments:D},W=new vC(G,N),q=e.compileAndRun(W,[I,E],A);if(u.push(q),q.shape[1]===D)return q;let H=V1({backend:e,attrs:{start:0,stop:D,step:1,dtype:\"float32\"}}),K=G1({inputs:{x:H},backend:e,attrs:{reps:[P/V]}});return u.push(H),u.push(K),g(q,N,K,A,D)},x=g(d,\"unsortedSegmentSum\",s,h,i),b=rt({inputs:{x},backend:e,attrs:{shape:m}}),w=b;if(c!=null){u.push(b);let I=S.getUndoAxesPermutation(c);w=Pe({inputs:{x:w},backend:e,attrs:{perm:I}})}return u.forEach(I=>e.disposeIntermediateTensorInfo(I)),w}var bG={kernelName:yu,backendName:\"webgl\",kernelFunc:Glt};var Wlt=[e3,n3,o3,s3,a3,l3,u3,c3,f3,d3,h3,g3,x3,y3,b3,w3,I3,C3,v3,S3,N3,T3,_3,E3,A3,F3,P3,M3,Hz,z3,V3,G3,W3,U3,H3,q3,K3,j3,X3,Y3,Q3,tB,eB,rB,nB,oB,sB,iB,aB,lB,uB,cB,pB,mB,fB,dB,gB,xB,yB,bB,IB,CB,vB,SB,NB,kB,TB,_B,EB,Uz,AB,B3,DB,$B,RB,qz,FB,OB,PB,MB,LB,zB,BB,VB,GB,WB,HB,qB,KB,jB,XB,YB,JB,tV,eV,rV,nV,oV,uV,Xz,cV,pV,mV,fV,D3,dV,xV,yV,bV,wV,Kz,IV,CV,vV,SV,NV,$3,sV,kV,TV,_V,Zz,EV,AV,DV,$V,RV,FV,OV,PV,MV,LV,zV,BV,VV,GV,WV,UV,k3,lV,HV,qV,KV,jV,XV,YV,ZV,JV,tG,eG,nG,oG,sG,iG,aG,lG,uG,aV,Qz,cG,pG,mG,fG,hG,gG,t3,xG,yG,bG,hV];for(let r of Wlt)pc(r);var Nt;(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\"})(Nt||(Nt={}));var nc;(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\"})(nc||(nc={}));var wG;function Ult(r){wG=r.wasm.cwrap(Zi,null,[\"number\",\"array\",\"number\",\"number\",\"array\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function Hlt(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 D=e.dataIdMap.get(i.dataId);if(D.shape.length!==1)throw new Error(`_FusedMatMul only supports rank-1 bias but got rank ${D.shape.length}.`);d=D.id}let h=a==null?0:e.dataIdMap.get(a.dataId).id,g=nc[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=Hr.assertAndGetBroadcastShape(o.shape.slice(0,-2),s.shape.slice(0,-2)),I=e.makeOutput([...w,x,b],o.dtype),N=e.dataIdMap.get(I.dataId).id,E=new Uint8Array(new Int32Array(o.shape).buffer),A=new Uint8Array(new Int32Array(s.shape).buffer);return wG(m,E,o.shape.length,f,A,s.shape.length,u,l,g,d,h,p||0,N),I}var IG={kernelName:Zi,backendName:\"wasm\",setupFunc:Ult,kernelFunc:Hlt};function yt(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,Nt[a.dtype],c),l}return{kernelName:r,backendName:\"wasm\",setupFunc:n,kernelFunc:o}}var CG=yt($i);var vG=yt(qo);var SG=yt(Ko);function ee(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,Nt[l.dtype],b))(),h}return{kernelName:r,backendName:\"wasm\",setupFunc:o,kernelFunc:s}}var qlt=!0,NG=ee(ao,qlt);var kG;function Klt(r){kG=r.wasm.cwrap(jo,null,[\"array\",\"number\",\"number\",\"number\"])}function jlt(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 kG(s,o.length,Nt[n.dtype],i),n}var TG={kernelName:jo,backendName:\"wasm\",setupFunc:Klt,kernelFunc:jlt};function Tp(r){let{inputs:{x:t},backend:e}=r;if(t.dtype===\"string\")return sr(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 _G={kernelName:bo,backendName:\"wasm\",kernelFunc:Tp};var EG;function Xlt(r){EG=r.wasm.cwrap(uo,null,[\"number\",\"array\",\"number\",\"number\",\"number\",\"array\",\"number\"])}function go(r){let{inputs:t,backend:e,attrs:n}=r,[o,s]=Zlt(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 AG={kernelName:uo,backendName:\"wasm\",kernelFunc:go,setupFunc:Xlt};function Sn(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 YG={kernelName:Ui,backendName:\"wasm\",kernelFunc:mr};var ZG;function cut(r){ZG=r.wasm.cwrap(es,null,[\"number\",\"array\",\"number\",\"number\",\"array\",\"number\",\"number\",\"number\",\"number\"])}function put(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=Hr.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 I=i?[g,c,m]:[g,m,c],N=a?[x,f,p]:[x,p,f],E=mr({inputs:{x:o},backend:e,attrs:{shape:I}}),A=mr({inputs:{x:s},backend:e,attrs:{shape:N}}),D=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),K=new Uint8Array(new Int32Array(A.shape).buffer);return ZG(D,H,E.shape.length,F,K,A.shape.length,i,a,q),e.disposeData(E.dataId),e.disposeData(A.dataId),W.shape=w,W}var JG={kernelName:es,backendName:\"wasm\",setupFunc:cut,kernelFunc:put};function Go(r){let{inputs:{x:t},attrs:{begin:e,size:n},backend:o}=r,[s,i]=ze.parseSliceParams(t,e,n),a=ze.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=ze.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=cp(u,s,i,t.shape,t.dtype);return p.stringBytes=d,l}let m=o.typedArrayFromHeap(l),f=t.shape.length;if(f===2)mut(u,c[0],m,s,i);else if(f===3)fut(u,c[0],c[1],m,s,i);else if(f===4)dut(u,c[0],c[1],c[2],m,s,i);else{let d=cp(u,s,i,t.shape,t.dtype);m.set(d)}return l}function mut(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=mr({inputs:{x:o},backend:e,attrs:{shape:u}}),d=go({inputs:{x:f},backend:e,attrs:{perm:l}}),h=mr({inputs:{x:d},backend:e,attrs:{shape:c}}),g=Go({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 tW={kernelName:Pi,backendName:\"wasm\",kernelFunc:hut};var eW;function gut(r){eW=r.wasm.cwrap(Oa,null,[\"number\",\"number\",\"boolean\",\"number\",\"number\",\"number\"])}function xut(r){let{backend:t,inputs:e,attrs:n}=r,{x:o,weights:s}=e,{size:i}=n,a=s.shape.reduce((p,m)=>p*m,1)!==0,u=o.shape.length===1?[i]:[o.shape[0],i],l=t.makeOutput(u,s.dtype);function c(p){return t.dataIdMap.get(p.dataId).id}return eW(c(o),i,a,c(s),Nt[s.dtype],c(l)),l}var rW={kernelName:Oa,backendName:\"wasm\",setupFunc:gut,kernelFunc:xut};var yut=!0,nW=ee(Pa,yut);function but(r){let{inputs:t,backend:e}=r,{s0:n,s1:o}=t,s=e.typedArrayFromHeap(n),i=e.typedArrayFromHeap(o),a=S.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return e.makeOutput([a.length],\"int32\",void 0,new Int32Array(a))}var oW={kernelName:Ql,backendName:\"wasm\",kernelFunc:but};function Mn(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 sW={kernelName:xo,backendName:\"wasm\",kernelFunc:Mn};var iW=yt(rs);var aW;function wut(r){aW=r.wasm.cwrap(yo,null,[\"number\",\"number\",\"number\",\"number\"])}function Iut(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 aW(a,s,i,l),u}var lW={kernelName:yo,backendName:\"wasm\",setupFunc:wut,kernelFunc:Iut};function W1(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 Tp({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 mr({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=ap(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=go({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;SW(d,i?1:0,a?1:0,f,h,Nt[o.dtype]);let g=m;if(l!==null){let x=S.getUndoAxesPermutation(l);g=go({inputs:{x:m},attrs:{perm:x},backend:e}),e.disposeData(c.dataId),e.disposeData(m.dataId)}return g}var NW={kernelName:za,backendName:\"wasm\",setupFunc:Fut,kernelFunc:Out};var kW;function Put(r){kW=r.wasm.cwrap(ls,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function Mut(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=go({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;kW(d,i?1:0,a?1:0,f,h,Nt[o.dtype]);let g=m;if(l!==null){let x=S.getUndoAxesPermutation(l);g=go({inputs:{x:m},attrs:{perm:x},backend:e}),e.disposeData(c.dataId),e.disposeData(m.dataId)}return g}var TW={kernelName:ls,backendName:\"wasm\",setupFunc:Put,kernelFunc:Mut};var _W;function Lut(r){_W=r.wasm.cwrap(\"DenseBincount\",null,[\"number\",\"array\",\"number\",\"number\",\"boolean\",\"number\",\"number\",\"boolean\",\"number\"])}function zut(r){let{backend:t,inputs:e,attrs:n}=r,{x:o,weights:s}=e,{size:i,binaryOutput:a}=n,u=s.shape.reduce((m,f)=>m*f,1)!==0,l=o.shape.length===1?[i]:[o.shape[0],i],c=t.makeOutput(l,s.dtype);function p(m){return t.dataIdMap.get(m.dataId).id}return _W(p(o),new Uint8Array(new Int32Array(o.shape).buffer),o.shape.length,i,u,p(s),Nt[s.dtype],a,p(c)),c}var EW={kernelName:eu,backendName:\"wasm\",setupFunc:Lut,kernelFunc:zut};var AW;function But(r){AW=r.wasm.cwrap(Va,null,[\"number\",\"number\",\"number\",\"array\",\"number\",\"array\",\"array\",\"number\",\"number\"])}function Vut(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),I=new Uint8Array(new Int32Array(y.computeStrides(d)).buffer),N=t.dataIdMap.get(h.dataId).id;return AW(x,s,i===\"NHWC\"?1:0,b,o.shape.length-1,w,I,d.length,N),h}var DW={kernelName:Va,backendName:\"wasm\",setupFunc:But,kernelFunc:Vut};var $W;function Gut(r){$W=r.wasm.cwrap(us,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function Wut(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,I=f.dilationHeight,N=f.dilationWidth,E=f.strideHeight,A=f.strideWidth,D=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 $W(i,o.shape[0],o.shape[1],o.shape[2],a,d,h,g,x,b,w,P,I,N,E,A,D,F,G),V}var RW={kernelName:us,backendName:\"wasm\",setupFunc:Gut,kernelFunc:Wut};var FW;function Uut(r){FW=r.wasm.cwrap(\"Diag\",null,[\"number\",\"number\",\"number\",\"number\"])}function Hut(r){let{inputs:t,backend:e}=r,{x:n}=t,o=y.sizeFromShape(n.shape),s=e.makeOutput([...n.shape,...n.shape],n.dtype);return FW(e.dataIdMap.get(n.dataId).id,Nt[n.dtype],o,e.dataIdMap.get(s.dataId).id),s}var OW={kernelName:ru,backendName:\"wasm\",setupFunc:Uut,kernelFunc:Hut};var PW;function qut(r){PW=r.wasm.cwrap(cs,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function Kut(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dilations:u}=n;if(o.dtype!==s.dtype)throw new Error(`Dilation2D error: x must have the same dtype as filter. Got ${o.dtype} and ${s.dtype}`);let l=S.computeDilation2DInfo(o.shape,s.shape,i,a,\"NHWC\",u),c=e.makeOutput(l.outShape,o.dtype);return PW(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(c.dataId).id,Nt[o.dtype],l.batchSize,l.inChannels,l.inHeight,l.inWidth,l.outHeight,l.outWidth,l.strideHeight,l.strideWidth,l.dilationHeight,l.dilationWidth,l.filterHeight,l.filterWidth,l.padInfo.top,l.padInfo.left),c}var MW={kernelName:cs,backendName:\"wasm\",setupFunc:qut,kernelFunc:Kut};var LW;function jut(r){LW=r.wasm.cwrap(ou,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function Xut(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s,dy:i}=t,{strides:a,pad:u,dilations:l}=n;if(o.dtype!==s.dtype||o.dtype!==i.dtype)throw new Error(`Dilation2DBackpropFilter error: x must have the same dtype as filter and dy. Got ${o.dtype}, ${s.dtype}, and ${i.dtype}`);let c=S.computeDilation2DInfo(o.shape,s.shape,a,u,\"NHWC\",l),p=e.makeOutput(s.shape,s.dtype);return LW(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(i.dataId).id,e.dataIdMap.get(p.dataId).id,Nt[o.dtype],c.batchSize,c.inChannels,c.inHeight,c.inWidth,c.outHeight,c.outWidth,c.strideHeight,c.strideWidth,c.dilationHeight,c.dilationWidth,c.filterHeight,c.filterWidth,c.padInfo.top,c.padInfo.left),p}var zW={kernelName:ou,backendName:\"wasm\",setupFunc:jut,kernelFunc:Xut};var BW;function Yut(r){BW=r.wasm.cwrap(nu,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function Zut(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s,dy:i}=t,{strides:a,pad:u,dilations:l}=n;if(o.dtype!==s.dtype||o.dtype!==i.dtype)throw new Error(`Dilation2DBackpropInput error: x must have the same dtype as filter and dy. Got ${o.dtype}, ${s.dtype}, and ${i.dtype}`);let c=S.computeDilation2DInfo(o.shape,s.shape,a,u,\"NHWC\",l),p=e.makeOutput(o.shape,o.dtype);return BW(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(i.dataId).id,e.dataIdMap.get(p.dataId).id,Nt[o.dtype],c.batchSize,c.inChannels,c.inHeight,c.inWidth,c.outHeight,c.outWidth,c.strideHeight,c.strideWidth,c.dilationHeight,c.dilationWidth,c.filterHeight,c.filterWidth,c.padInfo.top,c.padInfo.left),p}var VW={kernelName:nu,backendName:\"wasm\",setupFunc:Yut,kernelFunc:Zut};var GW=yt(ms);var WW;function Jut(r){WW=r.wasm.cwrap(Ga,null,[\"number\",\"number\",\"number\"])}function Qut(r){let{inputs:t,backend:e}=r,{dy:n,y:o}=t,s=e.makeOutput(o.shape,\"float32\"),i=a=>e.dataIdMap.get(a.dataId).id;return WW(i(o),i(n),i(s)),s}var UW={kernelName:Ga,backendName:\"wasm\",setupFunc:Jut,kernelFunc:Qut};var tct=!1,HW=ee(Wa,tct,\"bool\");var qW=yt(fs);var KW=yt(ds,\"float32\");function NC(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),mr({inputs:{x:o},backend:n,attrs:{shape:a}})}var jW={kernelName:Li,backendName:\"wasm\",kernelFunc:NC};var XW=yt(hs,\"float32\");function H1(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 YW={kernelName:su,backendName:\"wasm\",kernelFunc:H1};var ZW;function ect(r){ZW=r.wasm.cwrap(Ua,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function rct(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 ZW(s,a,u,l,c,i),o}var JW={kernelName:Ua,backendName:\"wasm\",kernelFunc:rct,setupFunc:ect};var QW=yt(gs);var nct=!1,tU=ee(xs,nct);var eU;function oct(r){eU=r.wasm.cwrap(ys,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function sct(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 eU(c,p,m,f,d,o,g),h}var rU={kernelName:ys,backendName:\"wasm\",setupFunc:oct,kernelFunc:sct};var nU;function ict(r){nU=r.wasm.cwrap(Ji,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 act(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=nc[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,I=0;if(i!=null){let ot=n.dataIdMap.get(i.dataId);if(ot.shape.length!==1)throw new Error(`FusedConv2D only supports rank-1 bias but got rank ${ot.shape.length}.`);if(ot.shape[0]!==w)throw new Error(`FusedConv2D bias shape (${ot.shape}) does not match the number of output channels (${w})`);I=ot.id}let N=h.filterHeight,E=h.filterWidth,A=h.padInfo.top,D=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,K=h.padInfo.type===\"SAME\"?1:0,X=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 nt=n.makeOutput(h.outShape,\"float32\"),st=n.dataIdMap.get(nt.dataId).id,at=a==null?0:n.dataIdMap.get(a.dataId).id;return nU(x,X,Z,et,b,N,E,I,A,D,F,P,K,V,G,W,q,H,w,g,at,d||0,st),nt}var oU={kernelName:Ji,backendName:\"wasm\",setupFunc:ict,kernelFunc:act};var sU;function lct(r){sU=r.wasm.cwrap(Qi,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 uct(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=nc[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,I=0;if(i!=null){let ot=n.dataIdMap.get(i.dataId);if(ot.shape.length!==1)throw new Error(`FusedDepthwiseConv2D only supports rank-1 bias but got rank ${ot.shape.length}.`);if(ot.shape[0]!==w)throw new Error(`FusedDepthwiseConv2D bias shape (${ot.shape}) does not match the number of output channels (${w})`);I=ot.id}let N=h.filterHeight,E=h.filterWidth,A=h.padInfo.top,D=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,K=h.padInfo.type===\"SAME\"?1:0,X=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 nt=n.makeOutput(h.outShape,\"float32\"),st=n.dataIdMap.get(nt.dataId).id,at=a==null?0:n.dataIdMap.get(a.dataId).id;return sU(x,X,Z,et,b,N,E,I,A,D,F,P,K,V,G,W,q,H,w,g,at,d||0,st),nt}var iU={kernelName:Qi,backendName:\"wasm\",setupFunc:lct,kernelFunc:uct};var aU;function cct(r){aU=r.wasm.cwrap(Ha,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"array\",\"number\"])}function pct(r){let{backend:t,inputs:e}=r,{params:n,indices:o}=e,[s,i,a,u]=Dy.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 aU(f,Nt[n.dtype],h,i,p,a,g,x),l}var lU={kernelName:Ha,backendName:\"wasm\",setupFunc:cct,kernelFunc:pct};var uU;function mct(r){uU=r.wasm.cwrap(\"Gather\",null,[\"number\",\"number\",\"array\",\"number\",\"number\",\"number\",\"array\",\"number\"])}function fct(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=mr({inputs:{x:o},attrs:{shape:[p.batchSize,p.outerSize,p.dimSize,p.sliceSize]},backend:t}),f=y.sizeFromShape(s.shape),d=mr({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),D=new Uint8Array(new Int32Array(y.computeStrides(h)).buffer);return uU(w,Nt[o.dtype],A,x,N,p.batchSize,D,E),t.disposeData(m.dataId),t.disposeData(d.dataId),g.shape=p.outputShape,g}var cU={kernelName:zi,backendName:\"wasm\",setupFunc:mct,kernelFunc:fct};var dct=!1,pU=ee(qa,dct,\"bool\");var hct=!1,mU=ee(bs,hct,\"bool\");var fU=yt(ws,\"bool\");var dU=yt(Is,\"bool\");var hU=yt(Cs,\"bool\");var gU;function gct(r){gU=r.wasm.cwrap(vs,null,[\"number\",\"number\",\"number\",\"number\"])}function xct(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;gU(o,Nt[t.dtype],e,i)}return s}var xU={kernelName:vs,backendName:\"wasm\",setupFunc:gct,kernelFunc:xct};var yct=!1,yU=ee(Ka,yct,\"bool\");var bct=!1,bU=ee(ja,bct,\"bool\");var wU;function wct(r){wU=r.wasm.cwrap(Xa,null,[\"number\",\"number\",\"number\",\"number\"])}function Ict(r){let{attrs:t,backend:e}=r,{start:n,stop:o,num:s}=t,i=Math.floor(s),a=e.makeOutput([i],\"float32\");return wU(e.dataIdMap.get(a.dataId).id,n,o,i),a}var IU={kernelName:Xa,backendName:\"wasm\",setupFunc:wct,kernelFunc:Ict};var CU=yt(Ss);var vU=yt(Ns);var Cct=!1,SU=ee(Ya,Cct,\"bool\");var NU=yt(Za);var vct=!1,kU=ee(Ja,vct,\"bool\");var Sct=!1,TU=ee(v_,Sct,\"bool\");var _U;function Nct(r){_U=r.wasm.cwrap(ks,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function kct(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{depthRadius:s,bias:i,alpha:a,beta:u}=n;if(o.dtype!==\"float32\")throw new Error(\"LRN error: x must have dtype float32\");let l=e.makeOutput(o.shape,o.dtype);return _U(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(l.dataId).id,o.shape[3],s,i,a,u),l}var EU={kernelName:ks,backendName:\"wasm\",setupFunc:Nct,kernelFunc:kct};var AU;function Tct(r){AU=r.wasm.cwrap(Qa,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function _ct(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;if(o.dtype!==\"float32\"||s.dtype!==\"float32\"||i.dtype!==\"float32\")throw new Error(\"LRNGrad error: x, y, and dy must have dtype float32\");let p=e.makeOutput(o.shape,o.dtype);return AU(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(i.dataId).id,e.dataIdMap.get(p.dataId).id,i.shape[3],a,u,l,c),p}var DU={kernelName:Qa,backendName:\"wasm\",setupFunc:Tct,kernelFunc:_ct};var $U;function Ect(r){$U=r.wasm.cwrap(Ts,null,[\"number\",\"number\",\"number\",\"number\"])}function Act(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}=Sn(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;$U(u,Nt[i.dtype],x,w)}if(f&&t.disposeData(c.dataId),s){let w=S.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var RU={kernelName:Ts,backendName:\"wasm\",setupFunc:Ect,kernelFunc:Act};var Dct=!1,FU=ee(_s,Dct);var OU;function $ct(r){OU=r.wasm.cwrap(Es,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function Rct(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,I=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\"),D=n.dataIdMap.get(A.dataId).id;return OU(s,o.shape[0],o.shape[1],o.shape[2],p,m,f,d,h,g,x,b,w,I,N,E,D),A}var PU={kernelName:Es,backendName:\"wasm\",setupFunc:$ct,kernelFunc:Rct};var MU;function Fct(r){MU=r.wasm.cwrap(\"MaxPool3D\",null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function Oct(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u,dataFormat:l}=n,c=S.computePool3DInfo(o.shape,s,i,1,a,u,l),p=e.makeOutput(c.outShape,o.dtype);return MU(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(p.dataId).id,c.batchSize,c.inChannels,c.inDepth,c.inHeight,c.inWidth,c.outDepth,c.outHeight,c.outWidth,c.strideDepth,c.strideHeight,c.strideWidth,c.dilationDepth,c.dilationHeight,c.dilationWidth,c.effectiveFilterDepth,c.effectiveFilterHeight,c.effectiveFilterWidth,c.padInfo.front,c.padInfo.top,c.padInfo.left),p}var LU={kernelName:Bi,backendName:\"wasm\",setupFunc:Fct,kernelFunc:Oct};var zU;function Pct(r){zU=r.wasm.cwrap(\"MaxPool3DGrad\",null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function Mct(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,{filterSize:i,strides:a,pad:u,dimRoundingMode:l}=n,c=S.computePool3DInfo(s.shape,i,a,1,u,l),p=e.makeOutput(s.shape,s.dtype);return zU(e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(p.dataId).id,c.batchSize,c.inChannels,c.inDepth,c.inHeight,c.inWidth,c.outDepth,c.outHeight,c.outWidth,c.strideDepth,c.strideHeight,c.strideWidth,c.dilationDepth,c.dilationHeight,c.dilationWidth,c.effectiveFilterDepth,c.effectiveFilterHeight,c.effectiveFilterWidth,c.padInfo.front,c.padInfo.top,c.padInfo.left),p}var BU={kernelName:au,backendName:\"wasm\",setupFunc:Pct,kernelFunc:Mct};var VU;function Lct(r){VU=r.wasm.cwrap(\"MaxPoolGrad\",null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function zct(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,{filterSize:i,strides:a,pad:u,dimRoundingMode:l}=n,c=S.computePool2DInfo(s.shape,i,a,1,u,l),p=e.makeOutput(s.shape,s.dtype);return VU(e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(p.dataId).id,c.batchSize,c.inChannels,c.inHeight,c.inWidth,c.outHeight,c.outWidth,c.strideHeight,c.strideWidth,c.dilationHeight,c.dilationWidth,c.effectiveFilterHeight,c.effectiveFilterWidth,c.padInfo.top,c.padInfo.left),p}var GU={kernelName:iu,backendName:\"wasm\",setupFunc:Lct,kernelFunc:zct};var WU;function Bct(r){WU=r.wasm.cwrap(\"MaxPoolWithArgmax\",null,[\"number\",\"number\",\"number\",\"number\",\"boolean\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function Vct(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,includeBatchInIndex:u}=n;y.assert(o.shape.length===4,()=>`Error in maxPool: input must be rank 4 but got rank ${o.shape.length}.`);let l=[1,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,[1,1],a),p=e.makeOutput(c.outShape,o.dtype),m=e.makeOutput(c.outShape,\"int32\");return WU(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(p.dataId).id,e.dataIdMap.get(m.dataId).id,Nt[o.dtype],u,c.batchSize,c.inChannels,c.inHeight,c.inWidth,c.outHeight,c.outWidth,c.strideHeight,c.strideWidth,c.dilationHeight,c.dilationWidth,c.effectiveFilterHeight,c.effectiveFilterWidth,c.padInfo.top,c.padInfo.left),[p,m]}var UU={kernelName:lu,backendName:\"wasm\",setupFunc:Bct,kernelFunc:Vct};var HU;function Gct(r){HU=r.wasm.cwrap(As,null,[\"number, number, number\"])}function Wct(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}=Sn(i,o,t),d=p;if(f){let I=t.dataIdMap.get(c.dataId).id;I!==a&&(l=c,u=I,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=Mn({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 I=t.dataIdMap.get(w.dataId).id;HU(u,x,I)}if(f&&t.disposeData(c.dataId),s){let I=S.expandShapeToKeepDim(w.shape,m);w.shape=I}return l.dtype!==\"float32\"&&t.disposeData(b.dataId),w}var qU={kernelName:As,backendName:\"wasm\",setupFunc:Gct,kernelFunc:Wct};var KU;function Uct(r){KU=r.wasm.cwrap(Ds,null,[\"number\",\"number\",\"number\",\"number\"])}function Hct(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}=Sn(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;KU(u,Nt[i.dtype],x,w)}if(f&&t.disposeData(c.dataId),s){let w=S.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var jU={kernelName:Ds,backendName:\"wasm\",setupFunc:Uct,kernelFunc:Hct};var qct=!1,XU=ee($s,qct);var q1;(function(r){r[r.reflect=0]=\"reflect\",r[r.symmetric=1]=\"symmetric\"})(q1||(q1={}));var YU;function Kct(r){YU=r.wasm.cwrap(Rs,null,[\"number\",\"array\",\"number\",\"number\",\"array\",\"array\",\"number\",\"number\"])}function jct(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 YU(i,l,t.shape.length,Nt[t.dtype],m,f,q1[o],u),a}var ZU={kernelName:Rs,backendName:\"wasm\",kernelFunc:jct,setupFunc:Kct};var JU;function Xct(r){JU=r.wasm.cwrap(ni,null,[\"number\",\"number\",\"number\",\"number\"])}function K1(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||JU(o,i,a,u),s}var QU={kernelName:ni,backendName:\"wasm\",setupFunc:Xct,kernelFunc:K1};var t4;function Yct(r){t4=r.wasm.cwrap(tl,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function Zct(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{numSamples:s,seed:i,normalized:a}=n;if(o.dtype!==\"float32\")throw new Error(`Tensor logits must have dtype float32, got ${o.dtype}`);let u=a?o:K1({inputs:{logits:o},backend:e,attrs:{dim:o.shape.length-1}}),[l,c]=u.shape,p=e.makeOutput([l,s],\"int32\");return t4(e.dataIdMap.get(u.dataId).id,l,c,s,i,e.dataIdMap.get(p.dataId).id),a||e.disposeData(u.dataId),p}var e4={kernelName:tl,backendName:\"wasm\",setupFunc:Yct,kernelFunc:Zct};var r4=ee(Fs,!0);var Jct=!0,n4=ee(Os,Jct);var o4=yt(Vi);function Hd(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 s4;function Qct(r){s4=r.wasm.cwrap(rl,\"number\",[\"number\",\"number\",\"number\",\"number\",\"number\"])}function tpt(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=s4(l,c,s,o,i),{pSelectedIndices:m,selectedSize:f,pSelectedScores:d,pValidOutputs:h}=Hd(t,p);return t.wasm._free(d),t.wasm._free(h),t.makeOutput([f],\"int32\",m)}var i4={kernelName:rl,backendName:\"wasm\",setupFunc:Qct,kernelFunc:tpt};var a4;function ept(r){a4=r.wasm.cwrap(nl,\"number\",[\"number\",\"number\",\"number\",\"number\",\"number\",\"bool\"])}function rpt(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=a4(c,p,s,o,i,a),{pSelectedIndices:f,selectedSize:d,pSelectedScores:h,pValidOutputs:g}=Hd(t,m);t.wasm._free(h);let x=t.makeOutput([d],\"int32\",f),b=t.makeOutput([],\"int32\",g);return[x,b]}var l4={kernelName:nl,backendName:\"wasm\",setupFunc:ept,kernelFunc:rpt};var u4;function npt(r){u4=r.wasm.cwrap(ol,\"number\",[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function opt(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=u4(c,p,s,o,i,a),{pSelectedIndices:f,selectedSize:d,pSelectedScores:h,pValidOutputs:g}=Hd(t,m);t.wasm._free(g);let x=t.makeOutput([d],\"int32\",f),b=t.makeOutput([d],\"float32\",h);return[x,b]}var c4={kernelName:ol,backendName:\"wasm\",setupFunc:npt,kernelFunc:opt};var spt=!1,p4=ee(el,spt,\"bool\");var m4;function ipt(r){m4=r.wasm.cwrap(Ps,null,[\"number\",\"number\",\"number\",\"number\",\"number\"])}function apt(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 m4(m,i,a,u,c),l}var f4={kernelName:Ps,backendName:\"wasm\",setupFunc:ipt,kernelFunc:apt};function lpt(r){let{inputs:{x:t},backend:e}=r,n=e.makeOutput(t.shape,t.dtype);return e.typedArrayFromHeap(n).fill(1),n}var d4={kernelName:Gi,backendName:\"wasm\",kernelFunc:lpt};function upt(r){let{inputs:t,backend:e,attrs:n}=r,{axis:o}=n;if(t.length===1)return NC({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=NC({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=W1({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeData(c.dataId)),l}var h4={kernelName:Wi,backendName:\"wasm\",kernelFunc:upt};var g4;function cpt(r){g4=r.wasm.cwrap(Ms,null,[\"number\",\"array\",\"number\",\"number\",\"array\",\"array\",\"number\",\"number\"])}function ppt(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 H1({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 g4(i,c,t.shape.length,Nt[t.dtype],f,d,o,l),a}var kC={kernelName:Ms,backendName:\"wasm\",kernelFunc:ppt,setupFunc:cpt};var mpt=!1,x4=ee(Ls,mpt);var y4;function fpt(r){y4=r.wasm.cwrap(zs,null,[\"number\",\"number\",\"number\"])}function dpt(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=Mn({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 y4(a,i,p),u.dtype!==\"float32\"&&e.disposeData(l.dataId),c}var b4={kernelName:zs,backendName:\"wasm\",setupFunc:fpt,kernelFunc:dpt};var w4;function hpt(r){w4=r.wasm.cwrap(Bs,null,[\"number\",\"number\",\"number\",\"number\"])}function gpt(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}=Sn(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;w4(u,x,Nt[b.dtype],w)}if(f&&t.disposeData(c.dataId),s){let w=S.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var I4={kernelName:Bs,backendName:\"wasm\",setupFunc:hpt,kernelFunc:gpt};var xpt=r=>{let{backend:t,attrs:e}=r,{start:n,stop:o,step:s,dtype:i}=e,a=up(n,o,s,i),u=t.makeOutput([a.length],i);return t.typedArrayFromHeap(u).set(a),u},C4={kernelName:uu,backendName:\"wasm\",kernelFunc:xpt};var ypt=!0,v4=ee(ps,ypt);var S4=yt(Vs);var N4=yt(Gs);var k4=yt(Hs);var T4;function bpt(r){T4=r.wasm.cwrap(Us,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function wpt(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=Mn({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 T4(x,c,p,m,f,u,l,s?1:0,i?1:0,w),g!=null&&t.disposeData(g.dataId),b}var _4={kernelName:Us,backendName:\"wasm\",setupFunc:bpt,kernelFunc:wpt};var E4;function Ipt(r){E4=r.wasm.cwrap(il,null,[\"number\",\"number\",\"number\",\"array\",\"array\",\"boolean\"])}function Cpt(r){let{inputs:t,backend:e,attrs:n}=r,{images:o,dy:s}=t,{alignCorners:i}=n,a=e.makeOutput(o.shape,\"float32\"),u=e.dataIdMap.get(o.dataId),l;return u.dtype!==\"float32\"&&(l=Mn({backend:e,inputs:{x:o},attrs:{dtype:\"float32\"}}),u=e.dataIdMap.get(l.dataId)),E4(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(a.dataId).id,new Uint8Array(new Int32Array(o.shape).buffer),new Uint8Array(new Int32Array(s.shape).buffer),i),l!=null&&e.disposeData(l.dataId),a}var A4={kernelName:il,backendName:\"wasm\",setupFunc:Ipt,kernelFunc:Cpt};var D4;function vpt(r){D4=r.wasm.cwrap(Ws,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function Spt(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=Mn({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 D4(b,c,p,m,f,u,l,s?1:0,i?1:0,w),x!=null&&t.disposeData(x.dataId),h}var $4={kernelName:Ws,backendName:\"wasm\",setupFunc:vpt,kernelFunc:Spt};var R4;function Npt(r){R4=r.wasm.cwrap(sl,null,[\"number\",\"number\",\"number\",\"array\",\"array\",\"boolean\"])}function kpt(r){let{inputs:t,backend:e,attrs:n}=r,{images:o,dy:s}=t,{alignCorners:i}=n,a=e.makeOutput(o.shape,\"float32\"),u=e.dataIdMap.get(o.dataId),l;return u.dtype!==\"float32\"&&(l=Mn({backend:e,inputs:{x:o},attrs:{dtype:\"float32\"}}),u=e.dataIdMap.get(l.dataId)),R4(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(a.dataId).id,new Uint8Array(new Int32Array(o.shape).buffer),new Uint8Array(new Int32Array(s.shape).buffer),i),l!=null&&e.disposeData(l.dataId),a}var F4={kernelName:sl,backendName:\"wasm\",setupFunc:Npt,kernelFunc:kpt};var O4;function Tpt(r){O4=r.wasm.cwrap(qs,null,[\"number\",\"array\",\"number\",\"array\",\"number\",\"number\"])}function _pt(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 Tp({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);O4(u,c,i.length,p,o.shape.length,l);let m=mr({inputs:{x:a},attrs:{shape:o.shape},backend:e});return e.disposeData(a.dataId),m}var P4={kernelName:qs,backendName:\"wasm\",kernelFunc:_pt,setupFunc:Tpt};var M4;function Ept(r){M4=r.wasm.cwrap(hl,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"array\",\"number\",\"number\"])}function Apt(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],I=new Uint8Array(new Int32Array(w).buffer);return M4(l,p,m,f,d,s,h,g,I,w.length,c),u}var L4={kernelName:hl,backendName:\"wasm\",kernelFunc:Apt,setupFunc:Ept};var z4=yt(Ks);var B4=yt(js);var V4;function Dpt(r){V4=r.wasm.cwrap(al,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"array\",\"number\",\"number\"])}function $pt(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}=Mu.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 V4(d,g,Nt[s.dtype],u,l,c,x,m,b),a}var G4={kernelName:al,backendName:\"wasm\",setupFunc:Dpt,kernelFunc:$pt};var W4;function Rpt(r){W4=r.wasm.cwrap(ul,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"bool\",\"number\"])}function Fpt(r){let{inputs:t,backend:e,attrs:n}=r,{sortedSequence:o,values:s}=t,{side:i}=n;if(o.dtype!==s.dtype)throw new Error(`SearchSorted error: sorted_sequence must have the same dtype as values. Got ${o.dtype} and ${s.dtype}`);let a=e.makeOutput(s.shape,\"int32\");function u(l){return e.dataIdMap.get(l.dataId).id}return W4(u(o),u(s),o.shape[0],o.shape[1],s.shape[1],Nt[o.dtype],i===\"left\",u(a)),a}var U4={kernelName:ul,backendName:\"wasm\",setupFunc:Rpt,kernelFunc:Fpt};var H4;function Opt(r){H4=r.wasm.cwrap(\"SelectV2\",null,[\"number\",\"number\",\"number\",\"number\",\"number\"])}function Ppt(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 H4(i,a,u,f,c),l}var q4={kernelName:Hi,backendName:\"wasm\",kernelFunc:Ppt,setupFunc:Opt};var K4=yt(Xs);var j4;function Mpt(r){j4=r.wasm.cwrap(Qs,null,[\"number\",\"number\"])}function Lpt(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||j4(n,s),o}var X4={kernelName:\"Sigmoid\",backendName:\"wasm\",setupFunc:Mpt,kernelFunc:Lpt};var Y4=yt(Js);var Z4=yt(Ys);var J4=yt(Zs);var Q4=yt(ti);function zpt(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;sH(m,Nt[o.dtype],o.shape[0],f,d,g,b,t,0);let w=e.readSync(x.dataId),I;switch(w[0]){case 0:{I=S.getSparseSegmentReductionNegativeSegmentIdsErrorMessage();break}case 1:{I=S.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage();break}case 2:I=S.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(w[1],w[2]);break;case 3:I=S.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(w[1],w[2],w[3]);break;default:I=\"\"}if(e.disposeData(x.dataId),I)throw e.disposeData(h.dataId),new Error(I);return h}function Upt(r){return _C(r,!0)}var iH={kernelName:pu,backendName:\"wasm\",setupFunc:TC,kernelFunc:Upt};function Hpt(r){return _C(r,!1)}var aH={kernelName:mu,backendName:\"wasm\",setupFunc:TC,kernelFunc:Hpt};var lH;function qpt(r){lH=r.wasm.cwrap(pl,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"array\",\"number\",\"number\"])}function Kpt(r){let{backend:t,inputs:e,attrs:n}=r,{sparseIndices:o,sparseValues:s,defaultValue:i}=e,{outputShape:a}=n,u=t.makeOutput(a,i.dtype);if(y.sizeFromShape(a)===0)return u;let{sliceRank:l,numUpdates:c,sliceSize:p,strides:m,outputSize:f}=S.calculateShapes(s,o,a),d=t.dataIdMap.get(o.dataId).id,h=t.dataIdMap.get(s.dataId).id,g=t.dataIdMap.get(i.dataId).id,x=new Uint8Array(new Int32Array(m).buffer),b=t.dataIdMap.get(u.dataId).id;return lH(d,h,s.shape.length,g,Nt[i.dtype],l,c,p,x,f,b),u}var uH={kernelName:pl,backendName:\"wasm\",setupFunc:qpt,kernelFunc:Kpt};function jpt(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=Go({inputs:{x:o},attrs:{begin:l,size:m},backend:n});return l[a]+=p,f})}var cH={kernelName:ji,backendName:\"wasm\",kernelFunc:jpt};var pH=yt(ei);var mH=yt(fu);var Xpt=!0,fH=ee(oi,Xpt);var dH;function Ypt(r){dH=r.wasm.cwrap(wo,null,[\"number\",\"number\",\"number\",\"number\"])}function Zpt(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 dH(i,o,Nt[s.dtype],u),a}var hH={kernelName:wo,backendName:\"wasm\",setupFunc:Ypt,kernelFunc:Zpt};var gH;function Jpt(r){gH=r.wasm.cwrap(ml,null,[\"number\",\"array\",\"number\",\"array\",\"array\",\"array\",\"array\",\"array\",\"number\",\"number\"])}function Qpt(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:I}=ze.sliceInfo(o.shape,s,i,a,u,l,c,p,m),N;if(h)N=mr({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=ze.computeOutShape(b,w,I),A=Go({inputs:{x:o},backend:t,attrs:{begin:b,size:E}});N=mr({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,D=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(I).buffer),G=new Uint8Array(new Int32Array(f).buffer),W=new Uint8Array(new Int32Array(y.computeStrides(f)).buffer),q=t.dataIdMap.get(E.dataId).id;gH(A,D,o.shape.length,F,P,V,G,W,f.length,q),N=mr({inputs:{x:E},backend:t,attrs:{shape:d}}),t.disposeData(E.dataId)}return N}var xH={kernelName:ml,backendName:\"wasm\",setupFunc:Jpt,kernelFunc:Qpt};function tmt(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]=pp(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 yH={kernelName:du,backendName:\"wasm\",kernelFunc:tmt};function emt(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]=mp(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 bH={kernelName:hu,backendName:\"wasm\",kernelFunc:emt};function rmt(r){let{backend:t,inputs:e,attrs:n}=r,{input:o}=e,{numBuckets:s}=n,i=t.readSync(o.dataId),a=fp(i,s),u=t.makeOutput(o.shape,\"int32\");return t.typedArrayFromHeap(u).set(a),u}var wH={kernelName:gu,backendName:\"wasm\",kernelFunc:rmt};var nmt=!0,IH=ee(si,nmt);var CH;function omt(r){CH=r.wasm.cwrap(ri,null,[\"number\",\"number\",\"number\",\"number\"])}function smt(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}=Sn(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;CH(u,x,Nt[b.dtype],w)}if(f&&t.disposeData(c.dataId),s){let w=S.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var vH={kernelName:ri,backendName:\"wasm\",setupFunc:omt,kernelFunc:smt};var SH=yt(ii);var NH=yt(ai);var kH;function imt(r){kH=r.wasm.cwrap(ll,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"array\",\"number\",\"number\",\"number\"])}function amt(r){let{backend:t,inputs:e,attrs:n}=r,{tensor:o,indices:s,updates:i}=e,{}=n,a=t.makeOutput(o.shape,o.dtype);if(y.sizeFromShape(o.shape)===0)return a;let{sliceRank:u,numUpdates:l,sliceSize:c,strides:p,outputSize:m}=Mu.calculateShapes(i,s,o.shape),d=t.dataIdMap.get(s.dataId).id,g=t.dataIdMap.get(i.dataId).id,b=t.dataIdMap.get(o.dataId).id,w=new Uint8Array(new Int32Array(p).buffer),I=t.dataIdMap.get(a.dataId).id;return kH(d,g,Nt[i.dtype],u,l,c,w,m,I,b),a}var TH={kernelName:ll,backendName:\"wasm\",setupFunc:imt,kernelFunc:amt};var _H;function lmt(r){_H=r.wasm.cwrap(lo,null,[\"number\",\"array\",\"number\",\"array\",\"number\",\"number\"])}function umt(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 AH(i,a,n.shape.length,Nt[n.dtype],o,s,c,m),[l,p]},DH={kernelName:fl,backendName:\"wasm\",setupFunc:cmt,kernelFunc:pmt};var $H;function mmt(r){$H=r.wasm.cwrap(dl,null,[\"number\",\"number\",\"bool\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"array\",\"number\",\"array\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function fmt(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),I=t.dataIdMap.get(w.dataId).id,E=t.dataIdMap.get(o.dataId).id,D=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 $H(E,D,s.shape[0]>1,c,d,h,f,m,p,x,o.shape.length-1,b,g.length-1,F,P,u,I),w}var RH={kernelName:dl,backendName:\"wasm\",setupFunc:mmt,kernelFunc:fmt};function dmt(r){let{inputs:t,attrs:e,backend:n}=r,{axis:o}=e,{x:s}=t,{outputValues:i,outputShape:a,indices:u}=dp(n.readSync(s.dataId),o,s.shape,s.dtype);return[n.makeOutput(a,s.dtype,void 0,i),n.makeOutput([u.length],\"int32\",void 0,u)]}var FH={kernelName:xu,backendName:\"wasm\",kernelFunc:dmt};function hmt(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 OH={kernelName:Xi,backendName:\"wasm\",kernelFunc:hmt};function gmt(r){let{inputs:{x:t},backend:e}=r,n=e.makeOutput(t.shape,t.dtype);return e.typedArrayFromHeap(n).fill(0),n}var PH={kernelName:Yi,backendName:\"wasm\",kernelFunc:gmt};var xmt=[IG,CG,vG,SG,NG,TG,$G,FG,OG,PG,MG,LG,zG,BG,VG,WG,XG,HG,KG,JG,tW,rW,nW,oW,sW,iW,lW,uW,pW,fW,hW,xW,bW,wW,IW,vW,NW,TW,EW,DW,RW,OW,MW,zW,VW,GW,UW,HW,qW,KW,jW,XW,YW,JW,QW,tU,rU,oU,iU,lU,cU,pU,mU,_G,fU,dU,hU,xU,yU,bU,IU,vU,CU,SU,NU,kU,TU,EU,DU,RU,FU,PU,LU,BU,GU,UU,qU,jU,XU,ZU,e4,r4,n4,o4,i4,l4,c4,p4,f4,d4,h4,kC,x4,b4,I4,C4,v4,S4,N4,k4,YG,_4,A4,$4,F4,P4,L4,z4,B4,G4,U4,q4,K4,X4,Y4,Z4,J4,QG,QU,Q4,tH,rH,oH,iH,aH,uH,cH,pH,mH,fH,hH,xH,yH,bH,wH,IH,vH,SH,NH,TH,EH,DH,RH,AG,FH,OH,PH];for(let r of xmt)pc(r);var j1=L();j1.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}});j1.registerFlag(\"WASM_HAS_MULTITHREAD_SUPPORT\",async()=>{if(j1.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 e_=Xl(BH()),qH=Xl(GH()),r_=Xl(WH());var UH=e_.default||e_,ymt=r_.default||r_,Ig=class extends Uo{constructor(t){super(),this.wasm=t,this.dataIdNextNumber=1,this.wasm.tfjs.initWithThreadsCount(jH),t_=this.wasm.tfjs.getThreadsCount(),this.dataIdMap=new Da(this,Wn())}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)>>>0;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 wmt(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,o){let s;if(n==null)s=this.write(o!=null?o:null,t,e);else{let i=this.dataIdNextNumber++;s={id:i},this.dataIdMap.set(s,{id:i,memoryOffset:n,shape:t,dtype:e,refCount:1});let a=y.sizeFromShape(t);this.wasm.tfjs.registerTensor(i,a,n)}return{dataId:s,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 bmt(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 HH(r,t,e){if(DC!=null)return DC;let n=\"tfjs-backend-wasm.wasm\";return r&&t?n=\"tfjs-backend-wasm-threaded-simd.wasm\":r&&(n=\"tfjs-backend-wasm-simd.wasm\"),bg!=null&&bg[n]!=null?bg[n]:e+n}async function KH(){let[r,t]=await Promise.all([L().getAsync(\"WASM_HAS_SIMD_SUPPORT\"),L().getAsync(\"WASM_HAS_MULTITHREAD_SUPPORT\")]);return new Promise((e,n)=>{let o={};o.locateFile=(a,u)=>{if(a.endsWith(\".worker.js\")){let l=qH.wasmWorkerContents.replace(/\\n/g,\"\\\\n\"),c=new Blob([l],{type:\"application/javascript\"});return URL.createObjectURL(c)}return a.endsWith(\".wasm\")?HH(r,t,yg!=null?yg:u):u+a},n_&&(o.instantiateWasm=bmt(HH(r,t,yg!=null?yg:\"\")));let s=!1;o.onAbort=()=>{if(s||wg)return;wg=!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&&DC==null?(o.mainScriptUrlOrBlob=new Blob([\"var WasmBackendModuleThreadedSimd = \"+UH.toString()],{type:\"text/javascript\"}),i=UH(o)):i=ymt(o),i.then(a=>{s=!0,wg=!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 wmt(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 Imt=[\"tfjs-backend-wasm.wasm\",\"tfjs-backend-wasm-simd.wasm\",\"tfjs-backend-wasm-threaded-simd.wasm\"],DC=null,yg=null,bg={},wg=!1,n_=!1;function Cmt(r,t=!1){if(K0(\"setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release.\"),wg)throw new Error(\"The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`\");DC=r,n_=t}function vmt(r,t=!1){if(wg)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\")yg=r;else{bg=r;let e=Imt.filter(n=>bg[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.`)}n_=t}var jH=-1,t_=-1;function Smt(r){jH=r}function Nmt(){if(t_===-1)throw new Error(\"WASM backend not initialized.\");return t_}var kmt=\"4.7.0\";var Tmt=2;im(\"wasm\",async()=>{let{wasm:r}=await KH();return new Ig(r)},Tmt);var XH=\"4.7.0\",_mt=\"4.7.0\",Emt=\"4.7.0\",Amt=\"4.7.0\",Dmt=\"4.7.0\",$mt={tfjs:XH,\"tfjs-core\":XH,\"tfjs-converter\":_mt,\"tfjs-backend-cpu\":Emt,\"tfjs-backend-webgl\":Amt,\"tfjs-backend-wasm\":Dmt};export{$i as Abs,qo as Acos,Ko as Acosh,$c as AdadeltaOptimizer,Rc as AdagradOptimizer,Fc as AdamOptimizer,Oc as AdamaxOptimizer,ao as Add,jo as AddN,Ra as All,Fa as Any,Ri as ArgMax,Fi as ArgMin,Xo as Asin,Yo as Asinh,Zo as Atan,Qo as Atan2,Jo as Atanh,ts as AvgPool,Oi as AvgPool3D,Jl as AvgPool3DGrad,Zl as AvgPoolGrad,Ig as BackendWasm,es as BatchMatMul,Pi as BatchToSpaceND,Oa as Bincount,Pa as BitwiseAnd,Ql as BroadcastArgs,C_ as BroadcastTo,Mb as Callback,Yy as CallbackList,xo as Cast,rs as Ceil,yo as ClipByValue,zp as Complex,tu as ComplexAbs,Mi as Concat,ns as Conv2D,Bp as Conv2DBackpropFilter,os as Conv2DBackpropInput,ss as Conv3D,Ma as Conv3DBackpropFilterV2,La as Conv3DBackpropInputV2,is as Cos,as as Cosh,Ba as CropAndResize,za as Cumprod,ls as Cumsum,Jy as CustomCallback,Da as DataStorage,eu as DenseBincount,Va as DepthToSpace,us as DepthwiseConv2dNative,Vp as DepthwiseConv2dNativeBackpropFilter,Gp as DepthwiseConv2dNativeBackpropInput,ru as Diag,cs as Dilation2D,ou as Dilation2DBackpropFilter,nu as Dilation2DBackpropInput,Zg as Draw,g0 as ENV,Lb as EarlyStopping,Wp as Einsum,ms as Elu,Ga as EluGrad,rh as Environment,Wa as Equal,fs as Erf,ds as Exp,Li as ExpandDims,hs as Expm1,Up as FFT,su as Fill,Ua as FlipLeftRight,gs as Floor,xs as FloorDiv,oh as FromPixels,ys as FusedBatchNorm,Ji as FusedConv2D,Qi as FusedDepthwiseConv2D,wp as GPGPUContext,Ha as GatherNd,zi as GatherV2,jh as GraphModel,qa as Greater,bs as GreaterEqual,Zy as History,Hp as IFFT,bo as Identity,qp as Imag,Ie as InputSpec,ws as IsFinite,Is as IsInf,Cs as IsNan,Uo as KernelBackend,ks as LRN,Qa as LRNGrad,Dh as LayerVariable,jn as LayersModel,vs as LeakyRelu,Ka as Less,ja as LessEqual,Xa as LinSpace,Ss as Log,Ns as Log1p,S_ as LogSoftmax,Ya as LogicalAnd,Za as LogicalNot,Ja as LogicalOr,v_ as LogicalXor,Lmt as LowerBound,Xu as MathBackendCPU,Qu as MathBackendWebGL,zmt as MatrixBandPart,Ts as Max,Es as MaxPool,Bi as MaxPool3D,au as MaxPool3DGrad,iu as MaxPoolGrad,lu as MaxPoolWithArgmax,_s as Maximum,As as Mean,Ds as Min,$s as Minimum,Rs as MirrorPad,Fs as Mod,Pc as MomentumOptimizer,tl as Multinomial,Os as Multiply,Vi as Neg,rl as NonMaxSuppressionV3,nl as NonMaxSuppressionV4,ol as NonMaxSuppressionV5,el as NotEqual,M0 as OP_SCOPE_SUFFIX,Ps as OneHot,Gi as OnesLike,Kr as Optimizer,Nh as OptimizerConstructors,Wi as Pack,Ms as PadV2,Bmt as Pool,Ls as Pow,zs as Prelu,Bs as Prod,Mc as RMSPropOptimizer,Dn as RNN,Kp as RaggedGather,jp as RaggedRange,Xp as RaggedTensorToTensor,uu as Range,T0 as Rank,Yp as Real,ps as RealDiv,Vs as Reciprocal,Ze as Reduction,Gs as Relu,Hs as Relu6,Ui as Reshape,Us as ResizeBilinear,il as ResizeBilinearGrad,Ws as ResizeNearestNeighbor,sl as ResizeNearestNeighborGrad,qs as Reverse,hl as RotateWithOffset,Ks as Round,js as Rsqrt,Sl as SGDOptimizer,al as ScatterNd,ul as SearchSorted,Hi as Select,Xs as Selu,Ia as Sequential,Qs as Sigmoid,Js as Sign,Ys as Sin,Zs as Sinh,qi as Slice,ni as Softmax,ti as Softplus,Ki as SpaceToBatchND,cu as SparseFillEmptyRows,cl as SparseReshape,pu as SparseSegmentMean,mu as SparseSegmentSum,pl as SparseToDense,ji as SplitV,ei as Sqrt,fu as Square,oi as SquaredDifference,cc as StaticRegexReplace,wo as Step,ml as StridedSlice,du as StringNGrams,hu as StringSplit,gu as StringToHashBucketFast,si as Sub,ri as Sum,nn as SymbolicTensor,ii as Tan,ai as Tanh,Ot as Tensor,le as TensorBuffer,ll as TensorScatterUpdate,lo as Tile,fl as TopK,dl as Transform,uo as Transpose,xu as Unique,Xi as Unpack,yu as UnsortedSegmentSum,Vmt as UpperBound,gl as Variable,Yi as ZerosLike,Zi as _FusedMatMul,Ee as abs,hx as acos,gx as acosh,Y as add,IE as addN,lm as all,bc as any,oa as argMax,xx as argMin,yx as asin,bx as asinh,wx as atan,Ix as atan2,Cx as atanh,Su as avgPool,vx as avgPool3d,wE as backend,S as backend_util,SE as basicLSTMCell,aa as batchNorm,Sx as batchNorm2d,Nx as batchNorm3d,kx as batchNorm4d,Nu as batchToSpaceND,Tx as bincount,kE as bitwiseAnd,F5 as booleanMaskAsync,TE as broadcastArgs,la as broadcastTo,Hr as broadcast_util,Ay as browser,wt as buffer,J9 as callbacks,Q as cast,_x as ceil,Sr as clipByValue,cn as clone,kn as complex,ie as concat,Ex as concat1d,Ax as concat2d,Dx as concat3d,$x as concat4d,fR as constraints,cm as conv1d,Tn as conv2d,mm as conv2dTranspose,Rx as conv3d,Ox as conv3dTranspose,jmt as copyRegisteredKernels,ku as cos,fm as cosh,Ih as cosineWindow,Ic as cumprod,dm as cumsum,fn as customGrad,ZF as data,gh as denseBincount,K0 as deprecationWarn,Px as depthToSpace,ua as depthwiseConv2d,rQ as deregisterOp,Cu as device_util,_E as diag,Mx as dilation2d,uht as disableDeprecationWarnings,Tt as dispose,cht as disposeVariables,ct as div,Lx as divNoNan,zx as dot,cN as dropout,AE as einsum,ca as elu,lht as enableDebugMode,aht as enableProdMode,pN as enclosingPowerOfTwo,Wn as engine,DE as ensureShape,L as env,Fr as equal,Bx as erf,Vx as euclideanNorm,ir as exp,ar as expandDims,Gx as expm1,Cc as eye,Ou as fft,No as fill,ght as findBackend,xht as findBackendFactory,pa as floor,am as floorDiv,Wz as forceHalfFloat,Lu as fused,ma as gather,U5 as gatherND,Dy as gather_util,dht as getBackend,b0 as getGradient,ih as getKernel,Jg as getKernelsForBackend,Nmt as getThreadsCount,w1 as gpgpu_util,M6 as grad,L6 as grads,Fe as greater,mn as greaterEqual,vl as ifft,Tu as imag,hn as image,K5 as inTopKAsync,dR as initializers,KN as input,Lr as io,Tm as irfft,Wx as isFinite,Ux as isInf,Hx as isNaN,$e as keep,jr as kernel_impls,jR as layers,_u as leakyRelu,Il as less,Un as lessEqual,fN as linalg,FE as linspace,JQ as loadGraphModel,QQ as loadGraphModelSync,FR as loadLayersModel,qx as localResponseNormalization,kr as log,Eu as log1p,Xx as logSigmoid,hm as logSoftmax,gm as logSumExp,Pr as logicalAnd,Au as logicalNot,xm as logicalOr,Yx as logicalXor,j8 as losses,OE as lowerBound,Bt as matMul,k2 as math,Nr as max,Du as maxPool,Jx as maxPool3d,PE as maxPoolWithArgmax,_n as maximum,ke as mean,fh as memory,ME as meshgrid,XR as metrics,bl as min,mo as minimum,Qx as mirrorPad,ty as mod,JZ as model,YR as models,vc as moments,M5 as movingAverage,$ as mul,LE as multiRNNCell,zE as multinomial,Ut as neg,kh as nextFrame,wl as norm,mi as notEqual,fa as oneHot,dr as ones,Ir as onesLike,k as op,BE as outerProduct,dn as pad,VE as pad1d,GE as pad2d,WE as pad3d,UE as pad4d,ey as pool,pn as pow,Ru as prelu,dx as print,ry as prod,pht as profile,HE as raggedGather,qE as raggedRange,KE as raggedTensorToTensor,jE as rand,hA as randomGamma,kc as randomNormal,gA as randomStandardNormal,Hn as randomUniform,xA as randomUniformInt,da as range,fht as ready,Cl as real,ly as reciprocal,im as registerBackend,tJ as registerCallbackConstructor,k_ as registerGradient,pc as registerKernel,eQ as registerOp,ZR as regularizers,Mr as relu,ym as relu6,hht as removeBackend,R as reshape,hr as reverse,yA as reverse1d,bA as reverse2d,wA as reverse3d,IA as reverse4d,Pu as rfft,bm as round,wm as rsqrt,ft as scalar,z5 as scatterND,Mu as scatter_util,yh as searchSorted,Im as selu,Cm as separableConv2d,QZ as sequential,J as serialization,WK as setBackend,yht as setPlatform,Smt as setThreadsCount,Cmt as setWasmPath,vmt as setWasmPaths,FT as setWebGLContext,CA as setdiff1dAsync,Nw as shared,en as sigmoid,uy as sign,K8 as signal,vm as sin,Sm as sinh,Pt as slice,Nm as slice1d,wh as slice2d,km as slice3d,Tc as slice4d,ze as slice_util,Fu as softmax,pi as softplus,$u as spaceToBatchND,X8 as sparse,G5 as sparseToDense,q8 as spectral,gr as split,Ne as sqrt,Wt as square,_m as squaredDifference,qn as squeeze,qe as stack,To as step,cy as stridedSlice,Y8 as string,lt as sub,pt as sum,xc as sumOutType,py as tan,ia as tanh,sr as tensor,Ke as tensor1d,fi as tensor2d,my as tensor3d,vA as tensor4d,SA as tensor5d,NA as tensor6d,TA as tensorScatterUpdate,So as tensor_util,dA as test_util,B as tidy,Or as tile,mht as time,fy as topk,zc as train,Vt as transpose,Am as truncatedNormal,dy as unique,Kmt as unregisterGradient,qmt as unregisterKernel,Dm as unsortedSegmentSum,xr as unstack,ur as upcastType,_A as upperBound,y as util,z6 as valueAndGrad,B6 as valueAndGrads,hy as variable,Kx as variableGrads,$mt as version,DF as version_converter,B2 as version_core,MO as version_cpu,ef as version_layers,kmt as version_wasm,Gz as version_webgl,JDe as webgl,_d as webgl_util,be as where,xy as whereAsync,Te as zeros,vt 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 if (canvasArg instanceof CanvasRenderingContext2D) return canvasArg;\n const canvas = resolveInput(canvasArg);\n if (!(canvas instanceof Canvas)) throw new Error('resolveContext2d - expected canvas to be of instance of Canvas');\n const ctx = canvas.getContext('2d', { willReadFrequently: true });\n if (!ctx) throw new Error('resolveContext2d - canvas 2d context is null');\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", "{\n \"name\": \"@vladmandic/face-api\",\n \"version\": \"1.7.12\",\n \"description\": \"FaceAPI: AI-powered Face Detection & Rotation Tracking, Face Description & Recognition, Age & Gender & Emotion Prediction for Browser and NodeJS using TensorFlow/JS\",\n \"sideEffects\": false,\n \"main\": \"dist/face-api.node.js\",\n \"module\": \"dist/face-api.esm.js\",\n \"browser\": \"dist/face-api.esm.js\",\n \"types\": \"types/face-api.d.ts\",\n \"author\": \"Vladimir Mandic \",\n \"bugs\": {\n \"url\": \"https://github.com/vladmandic/face-api/issues\"\n },\n \"homepage\": \"https://vladmandic.github.io/face-api/demo/webcam.html\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=14.0.0\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/vladmandic/face-api.git\"\n },\n \"scripts\": {\n \"start\": \"node --no-warnings demo/node.js\",\n \"dev\": \"build --profile development\",\n \"build\": \"node build.js\",\n \"lint\": \"eslint src/ demo/\",\n \"test\": \"node --trace-warnings test/test-node.js\",\n \"scan\": \"npx auditjs@latest ossi --dev --quiet\"\n },\n \"keywords\": [\n \"face-api\",\n \"faceapi\",\n \"face-detection\",\n \"age-gender\",\n \"emotion-detection\",\n \"face-recognition\",\n \"face\",\n \"face-description\",\n \"tensorflow\",\n \"tensorflowjs\",\n \"tfjs\"\n ],\n \"devDependencies\": {\n \"@canvas/image\": \"^1.0.1\",\n \"@microsoft/api-extractor\": \"^7.35.2\",\n \"@tensorflow/tfjs\": \"^4.7.0\",\n \"@tensorflow/tfjs-backend-cpu\": \"^4.7.0\",\n \"@tensorflow/tfjs-backend-wasm\": \"^4.7.0\",\n \"@tensorflow/tfjs-backend-webgl\": \"^4.7.0\",\n \"@tensorflow/tfjs-backend-webgpu\": \"4.7.0\",\n \"@tensorflow/tfjs-converter\": \"^4.7.0\",\n \"@tensorflow/tfjs-core\": \"^4.7.0\",\n \"@tensorflow/tfjs-data\": \"^4.7.0\",\n \"@tensorflow/tfjs-layers\": \"^4.7.0\",\n \"@tensorflow/tfjs-node\": \"^4.7.0\",\n \"@tensorflow/tfjs-node-gpu\": \"^4.7.0\",\n \"@types/node\": \"^20.3.0\",\n \"@types/offscreencanvas\": \"^2019.7.0\",\n \"@typescript-eslint/eslint-plugin\": \"^5.59.9\",\n \"@typescript-eslint/parser\": \"^5.59.9\",\n \"@vladmandic/build\": \"^0.9.2\",\n \"@vladmandic/pilogger\": \"^0.4.8\",\n \"esbuild\": \"^0.18.1\",\n \"eslint\": \"^8.42.0\",\n \"eslint-config-airbnb-base\": \"^15.0.0\",\n \"eslint-plugin-import\": \"^2.27.5\",\n \"eslint-plugin-json\": \"^3.1.0\",\n \"eslint-plugin-node\": \"^11.1.0\",\n \"eslint-plugin-promise\": \"^6.1.1\",\n \"rimraf\": \"^5.0.1\",\n \"seedrandom\": \"^3.0.5\",\n \"tslib\": \"^2.5.3\",\n \"typedoc\": \"^0.24.8\",\n \"typescript\": \"5.1.3\"\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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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,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", + "names": ["tfjs_esm_exports", "__export", "$i", "qo", "Ko", "$c", "Rc", "Fc", "Oc", "ao", "jo", "Ra", "Fa", "Ri", "Fi", "Xo", "Yo", "Zo", "Qo", "Jo", "ts", "Oi", "Jl", "Zl", "Ig", "es", "Pi", "Oa", "Pa", "Ql", "C_", "Mb", "Yy", "xo", "rs", "yo", "zp", "tu", "Mi", "ns", "Bp", "os", "ss", "Ma", "La", "is", "as", "Ba", "za", "ls", "Jy", "Da", "eu", "Va", "us", "Vp", "Gp", "ru", "cs", "ou", "nu", "Zg", "g0", "Lb", "Wp", "ms", "Ga", "rh", "Wa", "fs", "ds", "Li", "hs", "Up", "su", "Ua", "gs", "xs", "oh", "ys", "Ji", "Qi", "wp", "Ha", "zi", "jh", "qa", "bs", "Zy", "Hp", "bo", "qp", "Ie", "ws", "Is", "Cs", "Uo", "ks", "Qa", "Dh", "jn", "vs", "Ka", "ja", "Xa", "Ss", "Ns", "S_", "Ya", "Za", "Ja", "v_", "Lmt", "Xu", "Qu", "zmt", "Ts", "Es", "Bi", "au", "iu", "lu", "_s", "As", "Ds", "$s", "Rs", "Fs", "Pc", "tl", "Os", "Vi", "rl", "nl", "ol", "el", "M0", "Ps", "Gi", "Kr", "Nh", "Wi", "Ms", "Bmt", "Ls", "zs", "Bs", "Mc", "Dn", "Kp", "jp", "Xp", "uu", "T0", "Yp", "ps", "Vs", "Ze", "Gs", "Hs", "Ui", "Us", "il", "Ws", "sl", "qs", "hl", "Ks", "js", "Sl", "al", "ul", "Hi", "Xs", "Ia", "Qs", "Js", "Ys", "Zs", "qi", "ni", "ti", "Ki", "cu", "cl", "pu", "mu", "pl", "ji", "ei", "fu", "oi", "cc", "wo", "ml", "du", "hu", "gu", "si", "ri", "nn", "ii", "ai", "Ot", "le", "ll", "lo", "fl", "dl", "uo", "xu", "Xi", "yu", "Vmt", "gl", "Yi", "Zi", "Ee", "hx", "gx", "Y", "IE", "lm", "bc", "oa", "xx", "yx", "bx", "wx", "Ix", "Cx", "Su", "vx", "wE", "S", "SE", "aa", "Sx", "Nx", "kx", "Nu", "Tx", "kE", "F5", "TE", "la", "Hr", "Ay", "wt", "J9", "Q", "_x", "Sr", "cn", "kn", "ie", "Ex", "Ax", "Dx", "$x", "fR", "cm", "Tn", "mm", "Rx", "Ox", "jmt", "ku", "fm", "Ih", "Ic", "dm", "fn", "ZF", "gh", "K0", "Px", "ua", "rQ", "Cu", "_E", "Mx", "uht", "Tt", "cht", "ct", "Lx", "zx", "cN", "AE", "ca", "lht", "aht", "pN", "Wn", "DE", "L", "Fr", "Bx", "Vx", "ir", "ar", "Gx", "Cc", "Ou", "No", "ght", "xht", "pa", "am", "Wz", "Lu", "ma", "U5", "Dy", "dht", "b0", "ih", "Jg", "Nmt", "w1", "M6", "L6", "Fe", "mn", "vl", "Tu", "hn", "K5", "dR", "KN", "Lr", "Tm", "Wx", "Ux", "Hx", "$e", "jr", "jR", "_u", "Il", "Un", "fN", "FE", "JQ", "QQ", "FR", "qx", "kr", "Eu", "Xx", "hm", "gm", "Pr", "Au", "xm", "Yx", "j8", "OE", "Bt", "k2", "Nr", "Du", "Jx", "PE", "_n", "ke", "fh", "ME", "XR", "bl", "mo", "Qx", "ty", "JZ", "YR", "vc", "M5", "$", "LE", "zE", "Ut", "kh", "wl", "mi", "fa", "dr", "Ir", "k", "BE", "dn", "VE", "GE", "WE", "UE", "ey", "pn", "Ru", "dx", "ry", "pht", "HE", "qE", "KE", "jE", "hA", "kc", "gA", "Hn", "xA", "da", "fht", "Cl", "ly", "im", "tJ", "k_", "pc", "eQ", "ZR", "Mr", "ym", "hht", "R", "hr", "yA", "bA", "wA", "IA", "Pu", "bm", "wm", "ft", "z5", "Mu", "yh", "Im", "Cm", "QZ", "J", "WK", "yht", "Smt", "Cmt", "vmt", "FT", "CA", "Nw", "en", "uy", "K8", "vm", "Sm", "Pt", "Nm", "wh", "km", "Tc", "ze", "Fu", "pi", "$u", "X8", "G5", "q8", "gr", "Ne", "Wt", "_m", "qn", "qe", "To", "cy", "Y8", "lt", "pt", "xc", "py", "ia", "sr", "Ke", "fi", "my", "vA", "SA", "NA", "TA", "So", "dA", "B", "Or", "mht", "fy", "zc", "Vt", "Am", "dy", "Kmt", "qmt", "Dm", "xr", "ur", "_A", "y", "z6", "B6", "hy", "Kx", "$mt", "DF", "B2", "MO", "ef", "kmt", "Gz", "JDe", "_d", "be", "xy", "Te", "vt", "Eq", "u0", "Aq", "Dq", "$q", "Rq", "wr", "r", "Kt", "e", "Fq", "n", "o", "Xl", "M_", "Zmt", "P_", "Ue", "Io", "t", "Gn", "T_", "__", "fc", "He", "Co", "mc", "vo", "$_", "O_", "A_", "Vn", "F_", "Qp", "tx", "C0", "s", "i", "a", "u", "l", "li", "E_", "nK", "D_", "Jp", "R_", "I0", "xt", "c", "p", "m", "f", "d", "yE", "bE", "YE", "XE", "eN", "JE", "ZE", "rN", "tA", "QE", "nN", "rA", "eA", "oN", "oA", "nA", "sN", "h", "g", "iA", "sA", "iN", "aA", "uA", "lA", "ny", "w", "I", "N", "A", "b", "F", "P", "V", "G", "W", "q", "H", "bh", "W1t", "cA", "_X", "EX", "AX", "DX", "$X", "RX", "Sc", "Tk", "pw", "X1", "MH", "LH", "zH", "BH", "EC", "Z1", "Y1", "it", "re", "je", "xe", "fe", "Ae", "Ln", "lr", "eo", "Vr", "M", "U", "x", "E", "D", "sc", "X", "dt", "Ep", "Lt", "Zt", "Yt", "Wo", "K", "Z", "et", "nt", "st", "at", "ot", "oc", "mt", "gt", "Ct", "Rt", "Dt", "Ht", "bt", "$t", "nr", "so", "qt", "ce", "ge", "De", "Gr", "Wr", "ro", "no", "Qr", "ka", "Ei", "qd", "Xd", "Ar", "Ta", "o_", "Kd", "ql", "_p", "_a", "$C", "Cg", "RC", "vg", "tn", "Sg", "FC", "OC", "Mg", "UC", "Xt", "Aa", "s_", "i_", "Ng", "PC", "i0", "MC", "jd", "LC", "kg", "Tg", "Kl", "zC", "Eg", "_g", "BC", "Wg", "Yd", "VC", "m_", "Ug", "Ap", "GC", "WC", "p_", "HC", "l_", "qC", "Ag", "Dg", "KC", "jC", "XC", "c_", "YC", "ZC", "JC", "ic", "QC", "tv", "$g", "ev", "Zd", "rv", "nv", "ov", "a0", "Hg", "u_", "Jd", "sv", "dv", "iv", "av", "lv", "Rg", "Fg", "uv", "cv", "Og", "Pg", "pv", "mv", "zn", "Fp", "h_", "d_", "l0", "_q", "fv", "a_", "hv", "gv", "xv", "yv", "bv", "wv", "Iv", "Cv", "vv", "Sv", "Nv", "kv", "Tv", "_v", "Ev", "Av", "Dv", "$v", "Rv", "Fv", "Ov", "Pv", "Mv", "Lv", "zv", "Bv", "Vv", "Gv", "Wv", "Uv", "Hv", "qv", "Kv", "jv", "Xv", "Yv", "Zv", "Jv", "Qv", "tS", "eS", "rS", "nS", "oS", "sS", "iS", "aS", "lS", "uS", "cS", "pS", "mS", "fS", "dS", "hS", "gS", "xS", "yS", "bS", "wS", "IS", "CS", "vS", "SS", "NS", "kS", "TS", "_S", "ES", "AS", "DS", "$S", "RS", "FS", "OS", "PS", "MS", "LS", "zS", "BS", "VS", "GS", "WS", "US", "HS", "qS", "KS", "jS", "XS", "YS", "ZS", "JS", "QS", "t0", "e0", "Lg", "zg", "Qd", "r0", "n0", "Dp", "Bg", "$p", "Rp", "o0", "j", "ut", "Ft", "pe", "Xe", "Ye", "se", "ne", "br", "oo", "Ea", "Vg", "th", "s0", "sn", "jl", "Gg", "YH", "ZH", "JH", "QH", "tq", "eq", "rq", "nq", "oq", "sq", "iq", "aq", "lq", "uq", "cq", "pq", "mq", "fq", "dq", "hq", "gq", "xq", "yq", "bq", "wq", "Iq", "Cq", "vq", "Sq", "Nq", "kq", "qg", "f_", "Kg", "jg", "Tq", "GH", "Mrr", "VH", "WH", "AC", "Q1", "J1", "Bn", "g_", "Xg", "Oq", "Op", "Pq", "Mq", "Lq", "zq", "_", "Re", "an", "io", "te", "Bq", "c0", "$a", "Vq", "Gq", "Wq", "lc", "Uq", "Hq", "fr", "p0", "m0", "Yg", "f0", "d0", "qq", "Pp", "h0", "Ho", "x_", "y_", "Yl", "Ai", "Mp", "Di", "b_", "ac", "Kq", "eh", "Lp", "jq", "Me", "Xq", "Yq", "uc", "w_", "Jq", "tK", "Qq", "I_", "x0", "y0", "eK", "nh", "ta", "rK", "Zp", "sh", "w0", "uK", "em", "wu", "pK", "lK", "ui", "ah", "or", "gc", "tm", "Qg", "S0", "hc", "z_", "dc", "ln", "v0", "B_", "Le", "L_", "Dr", "bu", "oK", "ex", "sK", "iK", "aK", "cK", "rx", "N0", "mK", "V_", "G_", "W_", "lh", "k0", "U_", "fK", "nx", "ch", "uh", "H_", "ci", "rm", "dK", "q_", "K_", "j_", "O", "$0", "ph", "gK", "jt", "_0", "E0", "A0", "D0", "hK", "ox", "sx", "X_", "xK", "R0", "ix", "Iu", "T", "yK", "bK", "F0", "P0", "CK", "IK", "wK", "O0", "Nn", "Ur", "Z_", "Y_", "C", "xl", "vK", "un", "mh", "vr", "SK", "ax", "Q_", "NK", "lx", "EK", "L0", "J_", "tE", "eE", "rE", "z0", "ux", "B0", "nm", "ea", "cx", "kK", "TK", "_K", "ve", "nE", "oE", "sE", "iE", "V0", "G0", "yc", "vu", "aE", "W0", "ra", "lE", "AK", "DK", "px", "yl", "om", "uE", "$K", "RK", "FK", "OK", "cE", "pE", "PK", "MK", "na", "mE", "LK", "mx", "sm", "$r", "fx", "fE", "dE", "hE", "gE", "xE", "U0", "zK", "H0", "q0", "BK", "VK", "GK", "UK", "HK", "qK", "KK", "jK", "XK", "YK", "ZK", "JK", "QK", "tj", "ej", "rj", "nj", "oj", "sj", "ij", "aj", "vE", "wc", "X0", "dh", "lj", "j0", "CE", "um", "pj", "mj", "uj", "Y0", "hh", "cj", "co", "Rr", "sa", "Se", "fj", "dj", "hj", "gj", "xj", "yj", "bj", "wj", "Ij", "Cj", "NE", "vj", "Sj", "Nj", "kj", "Tj", "_j", "Ej", "Aj", "Dj", "$j", "Rj", "Fj", "Oj", "Pj", "Mj", "Lj", "zj", "pm", "Bj", "Vj", "Gj", "Fx", "Wj", "Uj", "Hj", "qj", "Kj", "jj", "Xj", "Yj", "Zj", "Jj", "Mt", "EE", "ye", "Qj", "t6", "e6", "r6", "n6", "o6", "s6", "i6", "a6", "Z0", "$E", "J0", "ko", "l6", "Q0", "xh", "u6", "c6", "p6", "m6", "f6", "d6", "h6", "g6", "RE", "x6", "y6", "b6", "w6", "I6", "C6", "v6", "S6", "N6", "k6", "T6", "_6", "E6", "A6", "D6", "$6", "R6", "F6", "O6", "P6", "jx", "V6", "G6", "W6", "U6", "H6", "q6", "K6", "j6", "X6", "Y6", "Zx", "Z6", "J6", "Q6", "tX", "eX", "rX", "nX", "oX", "sX", "iX", "aX", "lX", "uX", "cX", "pX", "mX", "fX", "dX", "hX", "gX", "xX", "yX", "bX", "IX", "wX", "CX", "vX", "SX", "NX", "kX", "TX", "ay", "pA", "BX", "fA", "zX", "OX", "MX", "mA", "PX", "LX", "VX", "oy", "FX", "aN", "lN", "Nc", "sy", "iy", "GX", "WX", "UX", "HX", "qX", "KX", "jX", "XX", "YX", "ZX", "JX", "QX", "t5", "e5", "r5", "n5", "o5", "s5", "i5", "a5", "l5", "u5", "c5", "p5", "m5", "f5", "d5", "h5", "g5", "x5", "y5", "b5", "w5", "I5", "C5", "v5", "S5", "N5", "kA", "Em", "uN", "k5", "T5", "_5", "E5", "A5", "D5", "gy", "$5", "R5", "O5", "P5", "L5", "EA", "V5", "W5", "AA", "H5", "q5", "DA", "$A", "RA", "j5", "$m", "_c", "Ec", "Ac", "Dc", "X5", "Y5", "yy", "Z5", "by", "J5", "Q5", "t8", "FA", "e8", "wy", "r8", "Iy", "n8", "OA", "o8", "PA", "s8", "MA", "i8", "LA", "a8", "zA", "_o", "l8", "BA", "VA", "u8", "p8", "c8", "Cy", "mN", "vy", "Sy", "GA", "m8", "f8", "d8", "WA", "h8", "UA", "g8", "HA", "x8", "qA", "y8", "KA", "b8", "Ny", "w8", "ky", "I8", "C8", "jA", "v8", "XA", "S8", "YA", "N8", "ZA", "k8", "JA", "QA", "T8", "qr", "_8", "t2", "E8", "e2", "A8", "r2", "D8", "n2", "$8", "o2", "R8", "s2", "F8", "O8", "i2", "P8", "M8", "a2", "L8", "l2", "z8", "u2", "B8", "c2", "V8", "p2", "G8", "m2", "W8", "f2", "U8", "d2", "H8", "h2", "Ch", "ha", "dN", "Z8", "g2", "y2", "I2", "C2", "wN", "_y", "Ty", "b2", "yN", "v2", "S2", "J8", "Q8", "tY", "x2", "Nl", "hN", "eY", "rY", "gN", "xN", "nY", "oY", "vh", "sY", "w2", "Sh", "Ey", "bN", "N2", "iY", "dY", "hY", "pY", "fY", "Lc", "T2", "_2", "aY", "lY", "uY", "cY", "E2", "mY", "A2", "xY", "CY", "bY", "wY", "IY", "yY", "CN", "vY", "L2", "O2", "z2", "P2", "M2", "$2", "IN", "gY", "R2", "F2", "SY", "D2", "NY", "BY", "VY", "GY", "WY", "UY", "zY", "$y", "ga", "SN", "vN", "kY", "YY", "r7", "_Y", "KY", "jY", "$Y", "TY", "t7", "JY", "ZY", "v7", "C7", "XY", "n7", "e7", "RY", "OY", "AY", "FY", "PY", "EY", "MY", "LY", "a7", "l7", "u7", "m7", "d7", "f7", "c7", "p7", "y7", "h7", "g7", "x7", "o7", "HY", "i7", "kN", "qY", "DY", "NN", "QY", "V2", "G2", "s7", "I7", "w7", "b7", "Ry", "W2", "U2", "H2", "q2", "K2", "j2", "X2", "Y2", "Z2", "J2", "Q2", "S7", "tD", "eD", "N7", "rD", "nD", "oD", "sD", "iD", "aD", "lD", "uD", "cD", "pD", "mD", "fD", "k7", "dD", "hD", "gD", "xD", "yD", "bD", "wD", "ID", "CD", "vD", "SD", "ND", "kD", "TD", "_D", "DD", "ED", "AD", "$D", "RD", "FD", "OD", "PD", "MD", "LD", "zD", "BD", "T7", "VD", "GD", "Fy", "TN", "WD", "_7", "UD", "HD", "E7", "qD", "KD", "jD", "XD", "YD", "ZD", "JD", "QD", "t$", "e$", "r$", "n$", "_N", "o$", "s$", "A7", "D7", "i$", "a$", "l$", "u$", "c$", "p$", "m$", "f$", "d$", "h$", "g$", "x$", "y$", "b$", "w$", "I$", "C$", "v$", "S$", "N$", "EN", "AN", "k$", "T$", "_$", "E$", "A$", "D$", "$$", "R$", "F$", "O$", "P$", "M$", "$7", "L$", "R7", "En", "Xr", "z", "kt", "Rm", "Th", "Ao", "fo", "$N", "Tr", "we", "Do", "kl", "Eo", "Fm", "DN", "xa", "F7", "_h", "$o", "z$", "ya", "Oy", "Qe", "B$", "V$", "Py", "O7", "Ly", "My", "zu", "G$", "W$", "U$", "H$", "q$", "Om", "Oe", "j$", "gn", "RN", "Eh", "K$", "hi", "P7", "zy", "X$", "By", "M7", "Y$", "Ro", "Bc", "gi", "xn", "FN", "cr", "yn", "rn", "_l", "Z$", "Gy", "J$", "Q$", "Tl", "ON", "Ah", "Pm", "MN", "Mm", "Fo", "PN", "Wy", "Vc", "bn", "tR", "eR", "Uy", "rR", "Bu", "nR", "oR", "L7", "z7", "wn", "Lm", "Vu", "zm", "Bm", "Vm", "Gm", "Wm", "B7", "Yr", "Gc", "Wc", "Uc", "Hc", "qc", "Kc", "Um", "sR", "iR", "_e", "he", "Hy", "Hm", "St", "Gt", "qm", "lR", "G7", "$h", "Km", "W7", "El", "U7", "_t", "H7", "q7", "LN", "xi", "qy", "K7", "Oo", "Ky", "jy", "cR", "jc", "j7", "Y7", "uR", "X7", "Z7", "J7", "eZ", "tZ", "Q7", "zN", "Xc", "jm", "Xm", "Ym", "Zm", "pR", "Be", "mR", "Ve", "oZ", "pZ", "cZ", "mZ", "fZ", "lZ", "dZ", "hZ", "nZ", "gZ", "iZ", "sZ", "aZ", "uZ", "rZ", "Rl", "FJ", "WJ", "k9", "UJ", "QN", "tk", "ek", "QJ", "e9", "n9", "t9", "r9", "o9", "YJ", "y9", "D9", "E9", "HJ", "NJ", "kJ", "TJ", "_J", "EJ", "d9", "h9", "DJ", "OJ", "RJ", "XJ", "PJ", "bJ", "GJ", "LJ", "N9", "S9", "s9", "i9", "w9", "I9", "UR", "HR", "l9", "u9", "yJ", "ZJ", "IJ", "c9", "p9", "T9", "C9", "v9", "qR", "KR", "a9", "qJ", "KJ", "jJ", "VJ", "CJ", "$9", "wJ", "zJ", "_9", "BJ", "A9", "g9", "AJ", "m9", "f9", "vJ", "MJ", "x9", "SJ", "b9", "$J", "JJ", "ba", "Xy", "hR", "xZ", "Al", "BN", "Qy", "In", "tb", "Cn", "Rh", "wa", "Jm", "Gu", "yZ", "bZ", "wZ", "IZ", "CZ", "Yc", "Qm", "vZ", "tf", "SZ", "NZ", "Oh", "Fh", "eb", "Ph", "Mh", "xR", "kZ", "TZ", "VN", "yR", "nb", "ob", "_Z", "EZ", "AZ", "DZ", "$Z", "RZ", "Lh", "FZ", "GN", "rb", "bR", "zh", "IR", "UN", "WN", "CR", "MZ", "sb", "LZ", "zZ", "PZ", "vR", "Zc", "ib", "Kn", "BZ", "ab", "lb", "SR", "VZ", "TR", "NR", "GZ", "_R", "kR", "WZ", "UZ", "ER", "ub", "rf", "cb", "pb", "HN", "Po", "HZ", "qN", "AR", "DR", "qZ", "KZ", "$R", "jZ", "XZ", "mb", "RR", "YZ", "ZZ", "on", "fb", "db", "hb", "gb", "xb", "yb", "bb", "wb", "Ib", "Cb", "nf", "vb", "Sb", "Nb", "yi", "jN", "bi", "XN", "kb", "Wu", "MR", "LR", "OR", "me", "PR", "Ce", "of", "sf", "af", "lf", "uf", "cf", "Uu", "An", "wi", "Bh", "YN", "rJ", "zR", "nJ", "Jc", "Hu", "Dl", "$l", "pf", "mf", "Tb", "ff", "qu", "df", "hf", "oJ", "gf", "ZN", "JN", "ep", "Qc", "Ol", "xf", "tp", "yf", "Fl", "bf", "sJ", "_b", "rp", "wf", "np", "If", "Cf", "vf", "Sf", "Nf", "kf", "Tf", "_f", "Ef", "Pl", "Af", "Df", "$f", "Rf", "Ff", "Of", "Vh", "iJ", "Pf", "Mf", "Lf", "zf", "Gh", "aJ", "lJ", "uJ", "Bf", "Vf", "cJ", "Gf", "Fb", "BR", "Eb", "Wf", "Uf", "Ab", "Hf", "qf", "Db", "Kf", "jf", "$b", "Xf", "Yf", "Rb", "Zf", "Jf", "Ob", "Qf", "pJ", "mJ", "td", "ed", "fJ", "dJ", "rd", "VR", "nd", "gJ", "GR", "od", "Wh", "Uh", "xJ", "WR", "sd", "W9", "q9", "R9", "F9", "P9", "M9", "B9", "U9", "V9", "G9", "H9", "K9", "L9", "z9", "O9", "X9", "j9", "Y9", "Pb", "JR", "Z9", "Q9", "ho", "QR", "rk", "zb", "v", "pr", "vn", "Bb", "nk", "Ii", "Hh", "Ci", "ok", "nQ", "sk", "oQ", "ik", "sQ", "ak", "iQ", "lk", "aQ", "uk", "lQ", "ck", "uQ", "pk", "cQ", "mk", "pQ", "fk", "mQ", "dk", "fQ", "hk", "dQ", "gk", "hQ", "xk", "gQ", "yk", "xQ", "bk", "yQ", "wk", "bQ", "Ik", "wQ", "Ck", "IQ", "qh", "Vb", "jb", "Wb", "Kb", "Gb", "Yb", "qb", "Xb", "Ub", "Hb", "tF", "vk", "CQ", "eF", "rF", "Zb", "ae", "nF", "oF", "Xn", "sF", "id", "Jb", "Qb", "Ml", "iF", "aF", "lF", "uF", "cF", "pF", "mF", "fF", "Sk", "dF", "hF", "gF", "tw", "xF", "yF", "bF", "wF", "IF", "CF", "vF", "SF", "NF", "kF", "TF", "_F", "Nk", "Kh", "kk", "Ku", "jQ", "XQ", "EF", "WQ", "UQ", "ad", "AF", "HQ", "qQ", "KQ", "op", "ew", "YQ", "ZQ", "ttt", "cd", "vi", "hd", "ud", "gd", "VF", "qF", "KF", "jF", "YF", "Kk", "XF", "GF", "BF", "MF", "$F", "rw", "ju", "RF", "_k", "FF", "nw", "OF", "ett", "PF", "rtt", "ld", "sp", "Vk", "Ek", "Xh", "Ak", "LF", "sw", "zF", "Ll", "zk", "tr", "Mk", "Ok", "Pk", "ow", "Lk", "Fk", "Rk", "$k", "iw", "Bk", "Dk", "ip", "$n", "ntt", "ott", "aw", "Yh", "WF", "lw", "Gk", "UF", "pd", "md", "fd", "Zh", "Wk", "Uk", "uw", "Hk", "qk", "dd", "HF", "stt", "cw", "tt", "itt", "Yk", "bd", "mw", "Zk", "Xk", "Jk", "ap", "Qk", "eT", "nT", "sT", "oT", "fw", "dw", "aT", "iT", "uT", "lT", "hw", "cT", "gw", "pT", "mT", "Jh", "fT", "dT", "hT", "xw", "yw", "bw", "up", "gT", "Si", "_O", "jk", "cp", "ww", "Iw", "Cd", "DO", "yT", "bT", "Cw", "pp", "mp", "fp", "IT", "vw", "Sw", "wd", "dp", "att", "JF", "Jt", "Cr", "QF", "xd", "Zr", "tO", "Mo", "eO", "Lo", "rO", "oe", "yd", "ltt", "Ca", "nO", "utt", "oO", "Er", "At", "Rn", "ctt", "sO", "tT", "iO", "rT", "aO", "ptt", "lO", "mtt", "uO", "ftt", "cO", "dtt", "pO", "htt", "mO", "gtt", "fO", "xtt", "dO", "ytt", "hO", "btt", "gO", "wtt", "xO", "Itt", "lp", "yO", "Ctt", "bO", "vtt", "wO", "Ge", "IO", "Stt", "CO", "Ntt", "ktt", "Ttt", "_tt", "vO", "Ett", "Att", "SO", "zo", "Id", "kO", "NO", "Dtt", "TO", "xT", "EO", "Bo", "AO", "$tt", "$O", "Rtt", "RO", "Ftt", "FO", "wT", "Ott", "Ptt", "Qh", "OO", "tg", "PO", "CT", "LO", "vT", "zO", "Mtt", "ST", "BO", "NT", "VO", "kT", "GO", "hp", "Qt", "WO", "TT", "UO", "Ltt", "HO", "ztt", "qO", "Btt", "KO", "Vtt", "jO", "Gtt", "XO", "Wtt", "YO", "Utt", "ZO", "Htt", "JO", "qtt", "QO", "Ktt", "tP", "jtt", "eP", "Xtt", "Ytt", "rP", "Ztt", "nP", "vd", "kw", "Tw", "oP", "Jtt", "sP", "Qtt", "iP", "tet", "aP", "eet", "lP", "ret", "uP", "net", "cP", "oet", "pP", "set", "mP", "iet", "fP", "aet", "dP", "va", "hP", "Yu", "gP", "_T", "xP", "uet", "yP", "cet", "bP", "pet", "wP", "met", "IP", "fet", "CP", "det", "vP", "het", "SP", "get", "NP", "xet", "kP", "yet", "TP", "bet", "_P", "wet", "EP", "ET", "AP", "Iet", "DP", "Cet", "$P", "vet", "RP", "FP", "OP", "PP", "Net", "MP", "zl", "LP", "ket", "zP", "Tet", "BP", "_et", "Eet", "Aet", "Det", "$et", "Ret", "Fet", "VP", "Sd", "GP", "Oet", "eg", "rg", "_w", "Pet", "Met", "AT", "Let", "zet", "WP", "ng", "Bet", "UP", "HP", "Vet", "qP", "Get", "KP", "Wet", "jP", "Uet", "XP", "Het", "YP", "qet", "ZP", "Ket", "JP", "jet", "QP", "Xet", "tM", "Yet", "eM", "Zet", "Jet", "rM", "Qet", "nM", "trt", "ert", "oM", "rrt", "sM", "nrt", "iM", "DT", "aM", "ort", "lM", "srt", "uM", "irt", "cM", "art", "pM", "mM", "fM", "lrt", "dM", "urt", "hM", "crt", "gM", "prt", "mrt", "xM", "bM", "$T", "yM", "frt", "wM", "drt", "hrt", "IM", "grt", "xrt", "CM", "yrt", "brt", "vM", "wrt", "SM", "og", "NM", "kM", "TM", "RT", "_M", "Irt", "Ew", "Crt", "vrt", "EM", "Srt", "AM", "Nrt", "DM", "krt", "$M", "Trt", "RM", "_rt", "FM", "Ert", "OM", "Art", "PM", "Drt", "MM", "$rt", "LM", "Rrt", "zM", "BM", "Frt", "VM", "Ort", "GM", "Prt", "Mrt", "WM", "Lrt", "UM", "zrt", "HM", "Brt", "Vrt", "Grt", "qM", "Wrt", "KM", "Urt", "jM", "Hrt", "XM", "qrt", "YM", "Krt", "ZM", "jrt", "JM", "Xrt", "QM", "Yrt", "tL", "Zrt", "eL", "Jrt", "rL", "Qrt", "nL", "tnt", "oL", "sL", "ent", "iL", "rnt", "aL", "nnt", "lL", "ont", "uL", "snt", "cL", "int", "pL", "ant", "mL", "lnt", "fL", "unt", "dL", "cnt", "hL", "pnt", "gL", "gnt", "xnt", "xL", "mnt", "fnt", "hnt", "dnt", "sg", "ynt", "yL", "bnt", "bL", "wnt", "wL", "Int", "Ni", "Ant", "ug", "XT", "SL", "Ow", "ht", "MT", "zT", "qT", "BT", "WT", "GT", "UT", "LT", "Vl", "Nd", "NL", "JT", "_nt", "jT", "KT", "Gl", "Td", "YT", "QT", "vL", "ZT", "Zn", "t1", "e1", "Ju", "r1", "Mw", "VT", "Fw", "Dnt", "$nt", "Pw", "Ent", "kd", "lg", "HT", "gp", "Aw", "Yn", "vnt", "Cnt", "Zu", "Jr", "zr", "xp", "IL", "ig", "Sa", "CL", "ag", "Snt", "Nnt", "knt", "Bl", "Tnt", "kL", "Dw", "$w", "Rw", "PT", "Rnt", "Et", "We", "ki", "yp", "Fnt", "TL", "Ed", "Ad", "Lw", "_L", "EL", "zw", "Ont", "Lnt", "Vnt", "Pnt", "Bnt", "Mnt", "znt", "Hnt", "$d", "not", "sot", "aot", "uot", "pot", "mot", "fot", "AL", "rot", "oot", "iot", "lot", "cot", "dot", "hot", "DL", "qnt", "tot", "jnt", "Ynt", "Knt", "eot", "Xnt", "Znt", "Jnt", "Qnt", "Gnt", "Wnt", "Unt", "bp", "Rd", "Fd", "Od", "zt", "RL", "n1", "$L", "FL", "OL", "de", "Bw", "Vw", "Gw", "Ww", "yot", "cg", "Uw", "m1", "h1", "l1", "p1", "a1", "i1", "c1", "u1", "s1", "o1", "x1", "g1", "b1", "y1", "qw", "Xw", "Hw", "jw", "Kw", "f1", "d1", "pg", "bot", "PL", "Yw", "ML", "LL", "zL", "BL", "VL", "GL", "WL", "UL", "HL", "qL", "KL", "jL", "XL", "YL", "ZL", "JL", "QL", "tz", "ez", "rz", "nz", "oz", "sz", "iz", "az", "lz", "uz", "cz", "pz", "mz", "fz", "Zw", "dz", "hz", "gz", "Jw", "xz", "yz", "bz", "wz", "Iz", "Cz", "vz", "Sz", "Nz", "Ip", "kz", "I1", "er", "Tz", "Qw", "Pd", "wot", "tI", "Ez", "Az", "_z", "Iot", "Cot", "vot", "Br", "yr", "Dz", "C1", "$z", "Rz", "Fz", "Na", "Oz", "Mz", "Lz", "zz", "Bz", "Vz", "Fn", "eI", "Not", "kot", "Tot", "rI", "_ot", "Eot", "Aot", "Dot", "$ot", "Md", "On", "Qn", "Jn", "rr", "Uz", "Pn", "Hz", "v1", "S1", "Rot", "qz", "N1", "k1", "Fot", "Kz", "Vo", "It", "ue", "Wl", "Ld", "T1", "mg", "jz", "fg", "Xz", "Yz", "rt", "Zz", "dg", "nI", "Pot", "to", "oI", "Mot", "sI", "tc", "Jz", "Cp", "Qz", "Pe", "t3", "_1", "vp", "Lot", "e3", "r3", "zot", "n3", "Bot", "Vot", "o3", "Got", "Wot", "s3", "i3", "Uot", "a3", "iI", "aI", "lI", "l3", "Hot", "u3", "qot", "c3", "uI", "cI", "p3", "m3", "pI", "Kot", "f3", "jot", "d3", "Xot", "Yot", "h3", "Zot", "Jot", "g3", "Qot", "tst", "x3", "est", "rst", "nst", "y3", "ost", "sst", "b3", "Ti", "ec", "ist", "w3", "ast", "I3", "mI", "fI", "lst", "C3", "ust", "v3", "cst", "S3", "dI", "hI", "pst", "N3", "gI", "mst", "E1", "xI", "fst", "_i", "k3", "dst", "T3", "hst", "_3", "gst", "xst", "yst", "E3", "bst", "A3", "wst", "A1", "D3", "Ul", "$3", "Ist", "R3", "D1", "F3", "O3", "Cst", "P3", "yI", "bI", "vst", "M3", "wI", "L3", "Sst", "z3", "II", "vI", "CI", "Sp", "B3", "zd", "Nst", "$1", "V3", "Bd", "SI", "Vd", "NI", "kI", "TI", "_I", "kst", "G3", "EI", "AI", "DI", "$I", "Tst", "W3", "RI", "_st", "U3", "Est", "H3", "Ast", "q3", "Dst", "K3", "$st", "Rst", "Fst", "j3", "Ost", "Pst", "X3", "FI", "Mst", "Y3", "Np", "hg", "Z3", "J3", "OI", "Lst", "Q3", "zst", "tB", "Bst", "eB", "PI", "Vst", "rB", "Gd", "Wd", "Gst", "nB", "MI", "LI", "Wst", "oB", "Ust", "sB", "zI", "Hst", "iB", "BI", "qst", "aB", "Kst", "lB", "jst", "Xst", "Yst", "uB", "Zst", "Jst", "Qst", "cB", "tit", "eit", "rit", "pB", "nit", "oit", "mB", "sit", "iit", "R1", "fB", "VI", "dB", "hB", "ait", "gB", "gg", "GI", "lit", "xB", "WI", "Hl", "yB", "UI", "bB", "wB", "uit", "IB", "cit", "pit", "mit", "CB", "HI", "qI", "vB", "fit", "Ud", "F1", "dit", "SB", "hit", "NB", "KI", "git", "kB", "jI", "xit", "O1", "TB", "yit", "bit", "wit", "_B", "Iit", "Cit", "vit", "EB", "Sit", "AB", "Nit", "kit", "DB", "Tit", "_it", "$B", "Eit", "Ait", "RB", "Dit", "$it", "Rit", "FB", "Fit", "Oit", "Pit", "OB", "Mit", "PB", "Lit", "zit", "Bit", "MB", "Vit", "Git", "LB", "Wit", "Uit", "Hit", "zB", "qit", "Kit", "BB", "jit", "Xit", "Yit", "VB", "XI", "YI", "Zit", "GB", "ZI", "Jit", "WB", "UB", "P1", "HB", "Qit", "tat", "eat", "qB", "rat", "KB", "nat", "jB", "JI", "QI", "oat", "XB", "sat", "YB", "ZB", "JB", "QB", "tV", "iat", "eV", "aat", "lat", "uat", "rV", "tC", "eC", "cat", "nV", "pat", "mat", "fat", "oV", "rC", "dat", "hat", "M1", "sV", "iV", "L1", "aV", "z1", "lV", "gat", "uV", "xat", "yat", "bat", "cV", "wat", "Iat", "pV", "Cat", "vat", "mV", "Sat", "Nat", "fV", "nC", "kat", "dV", "xg", "hV", "gV", "xV", "Tat", "yV", "oC", "sC", "B1", "bV", "_at", "Eat", "Aat", "wV", "Dat", "IV", "$at", "CV", "Rat", "vV", "Fat", "SV", "V1", "NV", "Oat", "Pat", "kV", "Mat", "Lat", "zat", "TV", "Bat", "Vat", "Gat", "_V", "iC", "aC", "Wat", "EV", "lC", "Uat", "AV", "uC", "cC", "Hat", "DV", "pC", "qat", "$V", "mC", "fC", "Kat", "RV", "dC", "FV", "jat", "Xat", "OV", "Yat", "Zat", "PV", "rc", "hC", "Jat", "MV", "gC", "Qat", "LV", "xC", "tlt", "zV", "elt", "rlt", "BV", "nlt", "olt", "slt", "VV", "ilt", "alt", "GV", "llt", "ult", "clt", "WV", "plt", "mlt", "UV", "flt", "dlt", "HV", "hlt", "qV", "glt", "KV", "xlt", "jV", "ylt", "XV", "blt", "YV", "wlt", "ZV", "Ilt", "JV", "QV", "Clt", "tG", "vlt", "Slt", "eG", "rG", "Nlt", "nG", "klt", "oG", "Tlt", "sG", "yC", "_lt", "iG", "Elt", "aG", "Alt", "lG", "Dlt", "uG", "$lt", "Rlt", "cG", "Flt", "Olt", "pG", "Plt", "mG", "bC", "Mlt", "G1", "fG", "wC", "IC", "kp", "dG", "Llt", "hG", "CC", "zlt", "gG", "Blt", "xG", "Vlt", "yG", "vC", "Glt", "bG", "Wlt", "Nt", "nc", "wG", "Ult", "Hlt", "IG", "yt", "CG", "vG", "SG", "ee", "qlt", "NG", "kG", "Klt", "jlt", "TG", "Tp", "_G", "EG", "Xlt", "go", "Zlt", "Ylt", "AG", "Sn", "DG", "Jlt", "Qlt", "$G", "RG", "tut", "eut", "FG", "SC", "OG", "PG", "MG", "LG", "zG", "BG", "VG", "GG", "rut", "nut", "WG", "UG", "out", "sut", "HG", "qG", "iut", "aut", "KG", "jG", "lut", "uut", "XG", "mr", "YG", "ZG", "cut", "put", "JG", "Go", "mut", "fut", "dut", "QG", "hut", "tW", "eW", "gut", "xut", "rW", "yut", "nW", "but", "oW", "Mn", "sW", "iW", "aW", "wut", "Iut", "lW", "W1", "uW", "cW", "Cut", "vut", "pW", "mW", "Sut", "Nut", "fW", "dW", "kut", "Tut", "hW", "gW", "_ut", "Eut", "xW", "yW", "Aut", "Dut", "bW", "wW", "IW", "U1", "CW", "$ut", "Rut", "vW", "SW", "Fut", "Out", "NW", "kW", "Put", "Mut", "TW", "_W", "Lut", "zut", "EW", "AW", "But", "Vut", "DW", "$W", "Gut", "Wut", "RW", "FW", "Uut", "Hut", "OW", "PW", "qut", "Kut", "MW", "LW", "jut", "Xut", "zW", "BW", "Yut", "Zut", "VW", "GW", "WW", "Jut", "Qut", "UW", "tct", "HW", "qW", "KW", "NC", "jW", "XW", "H1", "YW", "ZW", "ect", "rct", "JW", "QW", "nct", "tU", "eU", "oct", "sct", "rU", "nU", "ict", "act", "oU", "sU", "lct", "uct", "iU", "aU", "cct", "pct", "lU", "uU", "mct", "fct", "cU", "dct", "pU", "hct", "mU", "fU", "dU", "hU", "gU", "gct", "xct", "xU", "yct", "yU", "bct", "bU", "wU", "wct", "Ict", "IU", "CU", "vU", "Cct", "SU", "NU", "vct", "kU", "Sct", "TU", "_U", "Nct", "kct", "EU", "AU", "Tct", "_ct", "DU", "$U", "Ect", "Act", "RU", "Dct", "FU", "OU", "$ct", "Rct", "PU", "MU", "Fct", "Oct", "LU", "zU", "Pct", "Mct", "BU", "VU", "Lct", "zct", "GU", "WU", "Bct", "Vct", "UU", "HU", "Gct", "Wct", "qU", "KU", "Uct", "Hct", "jU", "qct", "XU", "q1", "YU", "Kct", "jct", "ZU", "JU", "Xct", "K1", "QU", "t4", "Yct", "Zct", "e4", "r4", "Jct", "n4", "o4", "Hd", "s4", "Qct", "tpt", "i4", "a4", "ept", "rpt", "l4", "u4", "npt", "opt", "c4", "spt", "p4", "m4", "ipt", "apt", "f4", "lpt", "d4", "upt", "h4", "g4", "cpt", "ppt", "kC", "mpt", "x4", "y4", "fpt", "dpt", "b4", "w4", "hpt", "gpt", "I4", "xpt", "C4", "ypt", "v4", "S4", "N4", "k4", "T4", "bpt", "wpt", "_4", "E4", "Ipt", "Cpt", "A4", "D4", "vpt", "Spt", "$4", "R4", "Npt", "kpt", "F4", "O4", "Tpt", "_pt", "P4", "M4", "Ept", "Apt", "L4", "z4", "B4", "V4", "Dpt", "$pt", "G4", "W4", "Rpt", "Fpt", "U4", "H4", "Opt", "Ppt", "q4", "K4", "j4", "Mpt", "Lpt", "X4", "Y4", "Z4", "J4", "Q4", "zpt", "tH", "eH", "Bpt", "Vpt", "rH", "nH", "Gpt", "Wpt", "oH", "sH", "TC", "_C", "Upt", "iH", "Hpt", "aH", "lH", "qpt", "Kpt", "uH", "jpt", "cH", "pH", "mH", "Xpt", "fH", "dH", "Ypt", "Zpt", "hH", "gH", "Jpt", "Qpt", "xH", "tmt", "yH", "emt", "bH", "rmt", "wH", "nmt", "IH", "CH", "omt", "smt", "vH", "SH", "NH", "kH", "imt", "amt", "TH", "_H", "lmt", "umt", "EH", "AH", "cmt", "pmt", "DH", "$H", "mmt", "fmt", "RH", "dmt", "FH", "hmt", "OH", "gmt", "PH", "xmt", "j1", "e_", "qH", "r_", "UH", "ymt", "jH", "t_", "wmt", "bmt", "HH", "DC", "bg", "KH", "yg", "n_", "wg", "Imt", "Tmt", "XH", "_mt", "Emt", "Amt", "Dmt", "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", "Ot", "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", "No", "avg_g", "avg_b", "avg_rgb", "ie", "lt", "padToSquare", "imgTensor", "isCenterImage", "B", "height", "width", "dimDiff", "paddingAmount", "paddingAxis", "createPaddingTensor", "paddingAmountLocal", "paddingTensorShape", "No", "paddingTensorAppend", "remainingPaddingAmount", "tensorsToStack", "t", "Q", "ie", "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", "Ay", "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", "Ot", "imgTensor", "ar", "padToSquare", "hn", "Ay", "imageToSquare", "qe", "t", "Q", "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", "km", "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", "Lr", "matchDimensions", "input", "reference", "useMediaDimensions", "width", "height", "getMediaDimensions", "NeuralNetwork", "name", "paramPath", "obj", "objProp", "tensor", "param", "gl", "path", "variable", "sr", "throwOnRedispose", "flat", "arr", "weightsOrUrl", "uri", "weightMap", "loadWeightMap", "filePath", "readFile", "env", "manifestUri", "modelBaseUri", "getModelUris", "fetchWeightsFromDisk", "filePaths", "fp", "buf", "loadWeights", "Lr", "manifest", "paramMappings", "params", "weights", "result", "res", "Ot", "depthwiseSeparableConv", "x", "params", "stride", "B", "out", "Cm", "Y", "denseBlock3", "x", "denseBlockParams", "isFirstLayer", "B", "out1", "Mr", "Y", "Tn", "depthwiseSeparableConv", "out2", "in3", "out3", "denseBlock4", "isScaleDown", "in4", "out4", "convLayer", "x", "params", "padding", "withRelu", "B", "out", "Y", "Tn", "Mr", "disposeUnusedWeightTensors", "weightMap", "paramMappings", "path", "pm", "extractConvParamsFactory", "extractWeights", "paramMappings", "channelsIn", "channelsOut", "filterSize", "mappedPrefix", "filters", "vA", "bias", "Ke", "extractFCParamsFactory", "extractWeights", "paramMappings", "channelsIn", "channelsOut", "mappedPrefix", "fc_weights", "fi", "fc_bias", "Ke", "SeparableConvParams", "depthwise_filter", "pointwise_filter", "bias", "extractSeparableConvParamsFactory", "extractWeights", "paramMappings", "channelsIn", "channelsOut", "mappedPrefix", "depthwise_filter", "vA", "pointwise_filter", "bias", "Ke", "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", "Q", "normalized", "normalize", "out", "denseBlock4", "Su", "toNetInput", "weightMap", "extractParamsFromWeightMap", "weights", "extractParams", "fullyConnectedLayer", "x", "params", "B", "Y", "Bt", "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", "Fu", "toNetInput", "netInput", "out", "probabilitesByBatch", "xr", "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", "version", "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", "Y", "Tn", "reductionBlock", "isActivateInput", "out", "Mr", "depthwiseSeparableConv", "Du", "mainBlock", "TinyXception", "NeuralNetwork", "numMainBlocks", "input", "B", "batchTensor", "Q", "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", "Su", "age", "fullyConnectedLayer", "gender", "Fu", "toNetInput", "netInput", "out", "ages", "xr", "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", "No", "getPadding", "batchIdx", "cond", "getPaddingX", "w", "getPaddingY", "_", "input", "out", "toNetInput", "netInput", "landmarkTensors", "xr", "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", "Q", "normalized", "normalize", "out", "denseBlock3", "Su", "toNetInput", "weightMap", "extractParamsFromWeightMapTiny", "weights", "extractParamsTiny", "FaceLandmark68TinyNet", "FaceLandmark68NetBase", "faceFeatureExtractor", "TinyFaceFeatureExtractor", "FaceLandmarkNet", "FaceLandmark68Net", "scale", "x", "params", "Y", "$", "convLayer", "x", "params", "strides", "withRelu", "padding", "filters", "bias", "out", "Tn", "Y", "scale", "Mr", "conv", "convNoRelu", "convDown", "extractorsFactory", "extractWeights", "paramMappings", "extractFilterValues", "numFilterValues", "numFilters", "filterSize", "weights", "depth", "isFloat", "B", "Vt", "vA", "extractConvParams", "mappedPrefix", "filters", "bias", "Ke", "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", "fi", "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", "Y", "Mr", "residualDown", "convDown", "pooled", "Su", "zeros", "Te", "isPad", "padShapeX", "zerosW", "ie", "padShapeY", "zerosH", "FaceRecognitionNet", "NeuralNetwork", "input", "params", "B", "batchTensor", "Q", "normalized", "normalize", "out", "convDown", "Du", "residual", "residualDown", "globalAvg", "Bt", "toNetInput", "_a", "dim", "netInput", "faceDescriptorTensors", "xr", "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", "vA", "batch_norm_scale", "Ke", "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", "my", "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", "Tn", "Y", "Sr", "epsilon", "depthwiseConvLayer", "x", "params", "strides", "B", "out", "ua", "aa", "Sr", "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", "xr", "Vt", "sizes", "lt", "centers", "Y", "ct", "decodeBoxesLayer", "x0", "x1", "div0_out", "$", "ir", "add0_out", "div1_out", "add1_out", "qe", "outputLayer", "boxPredictions", "classPredictions", "params", "B", "batchSize", "boxes", "R", "Or", "scoresAndClasses", "en", "Pt", "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", "ie", "classPredictions", "SsdMobilenetv1Options", "minConfidence", "maxResults", "SsdMobilenetv1", "NeuralNetwork", "input", "params", "B", "batchTensor", "Q", "x", "lt", "ct", "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", "$", "ft", "Y", "Mr", "lt", "convWithBatchNorm", "x", "params", "B", "out", "dn", "Tn", "lt", "$", "Y", "leaky", "depthwiseSeparableConv", "x", "params", "B", "out", "dn", "Cm", "Y", "leaky", "extractorsFactory", "extractWeights", "paramMappings", "extractConvParams", "extractConvParamsFactory", "extractBatchNormParams", "size", "mappedPrefix", "sub", "Ke", "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", "Du", "convLayer", "leaky", "depthwiseSeparableConv", "input", "inputSize", "B", "batchTensor", "Q", "normalize", "toNetInput", "forwardParams", "scoreThreshold", "TinyYolov2Options", "netInput", "out0", "xr", "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", "Fu", "ft", "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", "Ot", "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", "Ot", "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 7c56fc1..a63f344 100644 --- a/dist/face-api.js +++ b/dist/face-api.js @@ -4,69 +4,69 @@ author: ' */ -"use strict";var faceapi=(()=>{var tx=Object.defineProperty;var OD=Object.getOwnPropertyDescriptor;var LD=Object.getOwnPropertyNames;var zD=Object.prototype.hasOwnProperty;var WD=(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 _h=(e,t)=>{for(var n in t)tx(e,n,{get:t[n],enumerable:!0})},BD=(e,t,n,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of LD(t))!zD.call(e,r)&&r!==n&&tx(e,r,{get:()=>t[r],enumerable:!(a=OD(t,r))||a.enumerable});return e};var VD=e=>BD(tx({},"__esModule",{value:!0}),e);var Sfe={};_h(Sfe,{AgeGenderNet:()=>Ud,BoundingBox:()=>el,Box:()=>ot,ComposableTask:()=>Sa,ComputeAllFaceDescriptorsTask:()=>Kr,ComputeFaceDescriptorsTaskBase:()=>jd,ComputeSingleFaceDescriptorTask:()=>Xr,DetectAllFaceLandmarksTask:()=>Xd,DetectAllFacesTask:()=>Wp,DetectFaceLandmarksTaskBase:()=>Kd,DetectFacesTaskBase:()=>Zd,DetectSingleFaceLandmarksTask:()=>Yd,DetectSingleFaceTask:()=>Jd,Dimensions:()=>wn,FACE_EXPRESSION_LABELS:()=>Ek,FaceDetection:()=>vt,FaceDetectionNet:()=>Pk,FaceExpressionNet:()=>Vd,FaceExpressions:()=>Hr,FaceLandmark68Net:()=>ul,FaceLandmark68TinyNet:()=>Gd,FaceLandmarkNet:()=>Dk,FaceLandmarks:()=>ia,FaceLandmarks5:()=>fk,FaceLandmarks68:()=>nl,FaceMatch:()=>Tp,FaceMatcher:()=>Qd,FaceRecognitionNet:()=>pl,Gender:()=>xg,LabeledBox:()=>Cp,LabeledFaceDescriptors:()=>xr,NetInput:()=>wr,NeuralNetwork:()=>pn,ObjectDetection:()=>Vr,Point:()=>Re,PredictedBox:()=>gk,Rect:()=>tl,SsdMobilenetv1:()=>Os,SsdMobilenetv1Options:()=>Ia,TinyFaceDetector:()=>fl,TinyFaceDetectorOptions:()=>qd,TinyYolov2:()=>hl,TinyYolov2Options:()=>er,allFaces:()=>wfe,allFacesSsdMobilenetv1:()=>nD,allFacesTinyYolov2:()=>vfe,awaitMediaLoaded:()=>Ik,bufferToImage:()=>Sk,computeFaceDescriptor:()=>ife,createCanvas:()=>il,createCanvasFromMedia:()=>Ld,createFaceDetectionNet:()=>Qme,createFaceRecognitionNet:()=>Vme,createSsdMobilenetv1:()=>B$,createTinyFaceDetector:()=>kfe,createTinyYolov2:()=>nfe,detectAllFaces:()=>_g,detectFaceLandmarks:()=>eD,detectFaceLandmarksTiny:()=>sfe,detectLandmarks:()=>yfe,detectSingleFace:()=>xfe,draw:()=>Fk,env:()=>tt,euclideanDistance:()=>zk,extendWithAge:()=>Ig,extendWithFaceDescriptor:()=>kg,extendWithFaceDetection:()=>al,extendWithFaceExpressions:()=>fg,extendWithFaceLandmarks:()=>Pp,extendWithGender:()=>Sg,extractFaceTensors:()=>Ap,extractFaces:()=>Ep,fetchImage:()=>_me,fetchJson:()=>Ck,fetchNetWeights:()=>Eme,fetchOrThrow:()=>Gr,fetchVideo:()=>Ame,getContext2dOrThrow:()=>Hn,getMediaDimensions:()=>sl,imageTensorToCanvas:()=>Nk,imageToSquare:()=>Tk,inverseSigmoid:()=>wme,iou:()=>ck,isMediaElement:()=>og,isMediaLoaded:()=>Od,isWithAge:()=>Ume,isWithFaceDetection:()=>vr,isWithFaceExpressions:()=>Ak,isWithFaceLandmarks:()=>ll,isWithGender:()=>Gme,loadAgeGenderModel:()=>ffe,loadFaceDetectionModel:()=>gfe,loadFaceExpressionModel:()=>mfe,loadFaceLandmarkModel:()=>cfe,loadFaceLandmarkTinyModel:()=>dfe,loadFaceRecognitionModel:()=>hfe,loadSsdMobilenetv1Model:()=>tD,loadTinyFaceDetectorModel:()=>ufe,loadTinyYolov2Model:()=>pfe,loadWeightMap:()=>_k,locateFaces:()=>bfe,matchDimensions:()=>Fme,minBbox:()=>dk,nets:()=>nt,nonMaxSuppression:()=>hk,normalize:()=>Ja,padToSquare:()=>mk,predictAgeAndGender:()=>lfe,recognizeFaceExpressions:()=>ofe,resizeResults:()=>aD,resolveInput:()=>rl,shuffleArray:()=>vme,sigmoid:()=>Rd,ssdMobilenetv1:()=>Q$,tf:()=>Oe,tinyFaceDetector:()=>afe,tinyYolov2:()=>rfe,toNetInput:()=>wt,utils:()=>pk,validateConfig:()=>Ok,version:()=>Ife});var Oe={};_h(Oe,{Abs:()=>ru,Acos:()=>Si,Acosh:()=>Ni,AdadeltaOptimizer:()=>Pw,AdagradOptimizer:()=>Ow,AdamOptimizer:()=>Lw,AdamaxOptimizer:()=>zw,Add:()=>ks,AddN:()=>Ti,All:()=>su,Any:()=>iu,ArgMax:()=>ou,ArgMin:()=>lu,Asin:()=>Ci,Asinh:()=>_i,Atan:()=>Ei,Atan2:()=>Fi,Atanh:()=>Ai,AvgPool:()=>$i,AvgPool3D:()=>uu,AvgPool3DGrad:()=>Rc,AvgPoolGrad:()=>$m,BackendWasm:()=>g$,BatchMatMul:()=>Di,BatchToSpaceND:()=>pu,Bincount:()=>cu,BitwiseAnd:()=>Dm,BroadcastArgs:()=>Mc,BroadcastTo:()=>KS,Callback:()=>IC,CallbackList:()=>N2,Cast:()=>Ri,Ceil:()=>Mi,ClipByValue:()=>Is,Complex:()=>Rm,ComplexAbs:()=>Pc,Concat:()=>du,Conv2D:()=>Pi,Conv2DBackpropFilter:()=>Mm,Conv2DBackpropInput:()=>Oi,Conv3D:()=>Li,Conv3DBackpropFilterV2:()=>hu,Conv3DBackpropInputV2:()=>mu,Cos:()=>zi,Cosh:()=>Wi,CropAndResize:()=>gu,Cumprod:()=>fu,Cumsum:()=>Bi,CustomCallback:()=>C2,DataStorage:()=>Em,DenseBincount:()=>Oc,DepthToSpace:()=>bu,DepthwiseConv2dNative:()=>Vi,DepthwiseConv2dNativeBackpropFilter:()=>Pm,DepthwiseConv2dNativeBackpropInput:()=>Om,Diag:()=>Lc,Dilation2D:()=>Ui,Dilation2DBackpropFilter:()=>Ll,Dilation2DBackpropInput:()=>Ol,ENV:()=>vv,EarlyStopping:()=>SC,Einsum:()=>Lm,Elu:()=>Hi,EluGrad:()=>yu,Environment:()=>qS,Equal:()=>vu,Erf:()=>xu,Exp:()=>qi,ExpandDims:()=>wu,Expm1:()=>ji,FFT:()=>zm,Fill:()=>zc,FlipLeftRight:()=>ku,Floor:()=>Ki,FloorDiv:()=>Xi,FromPixels:()=>tm,FusedBatchNorm:()=>Yi,FusedConv2D:()=>oi,FusedDepthwiseConv2D:()=>li,GPGPUContext:()=>Yh,GatherNd:()=>Su,GatherV2:()=>Iu,GraphModel:()=>S1,Greater:()=>Nu,GreaterEqual:()=>Zi,History:()=>T2,IFFT:()=>Wm,Identity:()=>Ji,Imag:()=>Bm,InputSpec:()=>Bt,IsFinite:()=>Qi,IsInf:()=>eo,IsNan:()=>to,KernelBackend:()=>$c,LRN:()=>so,LRNGrad:()=>$u,LayerVariable:()=>y2,LayersModel:()=>$r,LeakyRelu:()=>no,Less:()=>Tu,LessEqual:()=>Cu,LinSpace:()=>_u,Log:()=>ao,Log1p:()=>ro,LogSoftmax:()=>YS,LogicalAnd:()=>Eu,LogicalNot:()=>Au,LogicalOr:()=>Fu,LogicalXor:()=>XS,LowerBound:()=>DR,MathBackendCPU:()=>Xf,MathBackendWebGL:()=>Jf,MatrixBandPart:()=>RR,Max:()=>io,MaxPool:()=>lo,MaxPool3D:()=>Du,MaxPool3DGrad:()=>Wc,MaxPoolGrad:()=>Vm,MaxPoolWithArgmax:()=>Um,Maximum:()=>oo,Mean:()=>uo,Min:()=>po,Minimum:()=>co,MirrorPad:()=>ho,Mod:()=>Ru,MomentumOptimizer:()=>Ww,Multinomial:()=>Mu,Multiply:()=>mo,Neg:()=>Pu,NonMaxSuppressionV3:()=>Lu,NonMaxSuppressionV4:()=>zu,NonMaxSuppressionV5:()=>Wu,NotEqual:()=>Ou,OP_SCOPE_SUFFIX:()=>Sv,OneHot:()=>fo,OnesLike:()=>Bu,Optimizer:()=>Lr,OptimizerConstructors:()=>t2,Pack:()=>Vu,PadV2:()=>go,Pool:()=>MR,Pow:()=>bo,Prelu:()=>yo,Prod:()=>xo,RMSPropOptimizer:()=>Bw,RNN:()=>gr,RaggedGather:()=>Gm,RaggedRange:()=>Hm,RaggedTensorToTensor:()=>qm,Range:()=>Bc,Rank:()=>vx,Real:()=>jm,RealDiv:()=>Gi,Reciprocal:()=>vo,Reduction:()=>In,Relu:()=>wo,Relu6:()=>So,Reshape:()=>Uu,ResizeBilinear:()=>Io,ResizeBilinearGrad:()=>Hu,ResizeNearestNeighbor:()=>ko,ResizeNearestNeighborGrad:()=>Gu,Reverse:()=>No,RotateWithOffset:()=>op,Round:()=>To,Rsqrt:()=>Co,SGDOptimizer:()=>Ef,ScatterNd:()=>qu,SearchSorted:()=>Ku,Select:()=>Xu,Selu:()=>_o,Sequential:()=>Yl,Sigmoid:()=>Fo,Sign:()=>Ao,Sin:()=>Eo,Sinh:()=>Zu,Slice:()=>Yu,Softmax:()=>Mo,Softplus:()=>$o,SpaceToBatchND:()=>Ju,SparseFillEmptyRows:()=>Vc,SparseReshape:()=>ep,SparseSegmentMean:()=>Uc,SparseSegmentSum:()=>Gc,SparseToDense:()=>tp,SplitV:()=>Qu,Sqrt:()=>Do,Square:()=>Hc,SquaredDifference:()=>Po,StaticRegexReplace:()=>qc,Step:()=>Ns,StridedSlice:()=>np,StringNGrams:()=>jc,StringSplit:()=>Kc,StringToHashBucketFast:()=>Xc,Sub:()=>Oo,Sum:()=>Ro,SymbolicTensor:()=>Va,Tan:()=>Lo,Tanh:()=>zo,Tensor:()=>Ce,TensorBuffer:()=>Vt,TensorScatterUpdate:()=>ju,Tile:()=>Ss,TopK:()=>ap,Transform:()=>rp,Transpose:()=>Fr,Unique:()=>Yc,Unpack:()=>sp,UnsortedSegmentSum:()=>Zc,UpperBound:()=>PR,Variable:()=>ds,ZerosLike:()=>ip,_FusedMatMul:()=>ii,abs:()=>Wt,acos:()=>Av,acosh:()=>Fv,add:()=>X,addN:()=>wN,all:()=>Jm,any:()=>xc,argMax:()=>ci,argMin:()=>$v,asin:()=>Dv,asinh:()=>Rv,atan:()=>Mv,atan2:()=>Pv,atanh:()=>Ov,avgPool:()=>xa,avgPool3d:()=>zv,backend:()=>vN,backend_util:()=>N,basicLSTMCell:()=>NN,batchNorm:()=>Cs,batchNorm2d:()=>Wv,batchNorm3d:()=>Bv,batchNorm4d:()=>Vv,batchToSpaceND:()=>rd,bincount:()=>Uv,bitwiseAnd:()=>TN,booleanMaskAsync:()=>gT,broadcastArgs:()=>CN,broadcastTo:()=>ai,broadcast_util:()=>lp,browser:()=>Uo,buffer:()=>ze,callbacks:()=>yq,cast:()=>ie,ceil:()=>Gv,clipByValue:()=>rn,clone:()=>or,complex:()=>Dr,concat:()=>Qe,concat1d:()=>Hv,concat2d:()=>qv,concat3d:()=>jv,concat4d:()=>Kv,constraints:()=>w2,conv1d:()=>Qm,conv2d:()=>Rt,conv2dTranspose:()=>ef,conv3d:()=>Yv,conv3dTranspose:()=>Zv,copyRegisteredKernels:()=>WR,cos:()=>sd,cosh:()=>tf,cosineWindow:()=>Sf,cumprod:()=>kc,cumsum:()=>nf,customGrad:()=>cr,data:()=>jC,denseBincount:()=>om,deprecationWarn:()=>Ev,depthToSpace:()=>Jv,depthwiseConv2d:()=>_s,deregisterOp:()=>wq,device_util:()=>td,diag:()=>EN,dilation2d:()=>Qv,disableDeprecationWarnings:()=>YM,dispose:()=>_e,disposeVariables:()=>ZM,div:()=>he,divNoNan:()=>ew,dot:()=>tw,dropout:()=>Fw,einsum:()=>FN,elu:()=>up,enableDebugMode:()=>XM,enableProdMode:()=>KM,enclosingPowerOfTwo:()=>$w,engine:()=>Aa,ensureShape:()=>$N,env:()=>G,equal:()=>ta,erf:()=>nw,euclideanNorm:()=>sw,exp:()=>yn,expandDims:()=>tn,expm1:()=>iw,eye:()=>af,fft:()=>md,fill:()=>xn,findBackend:()=>rP,findBackendFactory:()=>sP,floor:()=>cp,floorDiv:()=>Zm,forceHalfFloat:()=>hA,fused:()=>ql,gather:()=>dp,gatherND:()=>vT,gather_util:()=>Gw,getBackend:()=>nP,getGradient:()=>yx,getKernel:()=>nm,getKernelsForBackend:()=>am,getThreadsCount:()=>cme,gpgpu_util:()=>HE,grad:()=>t3,grads:()=>n3,greater:()=>_n,greaterEqual:()=>Pr,ifft:()=>Hl,imag:()=>id,image:()=>ea,inTopKAsync:()=>wT,initializers:()=>k2,input:()=>B2,io:()=>qt,irfft:()=>yf,isFinite:()=>ow,isInf:()=>lw,isNaN:()=>uw,keep:()=>Ht,kernel_impls:()=>fr,layers:()=>I2,leakyRelu:()=>od,less:()=>Bl,lessEqual:()=>Es,linalg:()=>Mw,linspace:()=>ON,loadGraphModel:()=>Cj,loadGraphModelSync:()=>_j,loadLayersModel:()=>mH,localResponseNormalization:()=>pw,log:()=>na,log1p:()=>ld,logSigmoid:()=>cw,logSoftmax:()=>sf,logSumExp:()=>of,logicalAnd:()=>Da,logicalNot:()=>ud,logicalOr:()=>lf,logicalXor:()=>dw,losses:()=>DT,lowerBound:()=>zN,matMul:()=>$e,math:()=>UT,max:()=>ga,maxPool:()=>Mt,maxPool3d:()=>hw,maxPoolWithArgmax:()=>WN,maximum:()=>mr,mean:()=>Et,memory:()=>im,meshgrid:()=>BN,metrics:()=>vC,min:()=>Wl,minimum:()=>ms,mirrorPad:()=>mw,mod:()=>fw,model:()=>bH,models:()=>wC,moments:()=>pd,movingAverage:()=>bT,mul:()=>z,multiRNNCell:()=>VN,multinomial:()=>UN,neg:()=>yt,nextFrame:()=>Hw,norm:()=>pp,notEqual:()=>fi,oneHot:()=>Vl,ones:()=>Qn,onesLike:()=>aa,op:()=>L,outerProduct:()=>GN,pad:()=>va,pad1d:()=>HN,pad2d:()=>qN,pad3d:()=>jN,pad4d:()=>KN,pool:()=>gw,pow:()=>Rr,prelu:()=>dd,print:()=>_v,prod:()=>bw,profile:()=>JM,raggedGather:()=>XN,raggedRange:()=>YN,raggedTensorToTensor:()=>ZN,rand:()=>JN,randomGamma:()=>nT,randomNormal:()=>pf,randomStandardNormal:()=>aT,randomUniform:()=>As,randomUniformInt:()=>rT,range:()=>gi,ready:()=>tP,real:()=>Ul,reciprocal:()=>kw,registerBackend:()=>Ym,registerCallbackConstructor:()=>xH,registerGradient:()=>ZS,registerKernel:()=>Jc,registerOp:()=>vq,regularizers:()=>kC,relu:()=>Ke,relu6:()=>cf,removeBackend:()=>aP,reshape:()=>W,reverse:()=>ya,reverse1d:()=>sT,reverse2d:()=>iT,reverse3d:()=>oT,reverse4d:()=>lT,rfft:()=>fd,round:()=>df,rsqrt:()=>hf,scalar:()=>ve,scatterND:()=>yT,scatter_util:()=>vf,searchSorted:()=>uf,selu:()=>mf,separableConv2d:()=>Fs,sequential:()=>yH,serialization:()=>ne,setBackend:()=>eP,setPlatform:()=>iP,setThreadsCount:()=>pme,setWasmPath:()=>lme,setWasmPaths:()=>ume,setWebGLContext:()=>fE,setdiff1dAsync:()=>uT,shared:()=>_1,sigmoid:()=>fa,sign:()=>Iw,signal:()=>$T,sin:()=>ff,sinh:()=>gf,slice:()=>Ue,slice1d:()=>hd,slice2d:()=>bf,slice3d:()=>Bo,slice4d:()=>Gl,slice_util:()=>Kt,softmax:()=>Xa,softplus:()=>Wo,spaceToBatchND:()=>cd,sparse:()=>RT,sparseToDense:()=>xT,spectral:()=>FT,split:()=>zn,sqrt:()=>mn,square:()=>ut,squaredDifference:()=>xf,squeeze:()=>$s,stack:()=>Dt,step:()=>Vo,stridedSlice:()=>Sw,string:()=>MT,sub:()=>pe,sum:()=>fe,sumOutType:()=>Xm,tan:()=>Nw,tanh:()=>hi,tensor:()=>bn,tensor1d:()=>je,tensor2d:()=>$a,tensor3d:()=>gd,tensor4d:()=>Ma,tensor5d:()=>pT,tensor6d:()=>cT,tensorScatterUpdate:()=>hT,tensor_util:()=>Ua,test_util:()=>QN,tidy:()=>P,tile:()=>Ln,time:()=>QM,topk:()=>Cw,train:()=>Ks,transpose:()=>De,truncatedNormal:()=>kf,unique:()=>_w,unregisterGradient:()=>zR,unregisterKernel:()=>LR,unsortedSegmentSum:()=>If,unstack:()=>ct,upcastType:()=>ba,upperBound:()=>mT,util:()=>v,valueAndGrad:()=>a3,valueAndGrads:()=>r3,variable:()=>Ew,variableGrads:()=>LN,version:()=>yme,version_converter:()=>Aj,version_core:()=>IB,version_cpu:()=>_K,version_layers:()=>h0,version_wasm:()=>dme,version_webgl:()=>mQ,webgl:()=>fQ,webgl_util:()=>mE,where:()=>an,whereAsync:()=>Aw,zeros:()=>Nt,zerosLike:()=>qe});var UD=Object.create,gv=Object.defineProperty,GD=Object.getOwnPropertyDescriptor,HD=Object.getOwnPropertyNames,qD=Object.getPrototypeOf,jD=Object.prototype.hasOwnProperty,Gt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Ee=(e,t)=>{for(var n in t)gv(e,n,{get:t[n],enumerable:!0})},KD=(e,t,n,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of HD(t))!jD.call(e,r)&&r!==n&&gv(e,r,{get:()=>t[r],enumerable:!(a=GD(t,r))||a.enumerable});return e},ws=(e,t,n)=>(n=e!=null?UD(qD(e)):{},KD(t||!e||!e.__esModule?gv(n,"default",{value:e,enumerable:!0}):n,e)),XD=Gt((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,H;return M?(S>>>=0,(H=0<=S&&S<256)&&(U=i[S],U)?U:(B=u(S,(S|0)<0?-1:0,!0),H&&(i[S]=B),B)):(S|=0,(H=-128<=S&&S<128)&&(U=s[S],U)?U:(B=u(S,S<0?-1:0,!1),H&&(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 F}else{if(S<=-b)return D;if(S+1>=b)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 H=l(p(B,8)),j=x,K=0;K>>0:this.low},$.toNumber=function(){return this.unsigned?(this.high>>>0)*f+(this.low>>>0):this.high*f+(this.low>>>0)},$.toString=function(S){if(S=S||10,S<2||36>>0,ee=J.toString(S);if(j=Z,j.isZero())return ee+K;for(;ee.length<6;)ee="0"+ee;K=""+ee+K}},$.getHighBits=function(){return this.high},$.getHighBitsUnsigned=function(){return this.high>>>0},$.getLowBits=function(){return this.low},$.getLowBitsUnsigned=function(){return this.low>>>0},$.getNumBitsAbs=function(){if(this.isNegative())return this.eq(D)?64:this.neg().getNumBitsAbs();for(var S=this.high!=0?this.high:this.low,M=31;M>0&&!(S&1<=0},$.isOdd=function(){return(this.low&1)===1},$.isEven=function(){return(this.low&1)===0},$.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},$.eq=$.equals,$.notEquals=function(S){return!this.eq(S)},$.neq=$.notEquals,$.ne=$.notEquals,$.lessThan=function(S){return this.comp(S)<0},$.lt=$.lessThan,$.lessThanOrEqual=function(S){return this.comp(S)<=0},$.lte=$.lessThanOrEqual,$.le=$.lessThanOrEqual,$.greaterThan=function(S){return this.comp(S)>0},$.gt=$.greaterThan,$.greaterThanOrEqual=function(S){return this.comp(S)>=0},$.gte=$.greaterThanOrEqual,$.ge=$.greaterThanOrEqual,$.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},$.comp=$.compare,$.negate=function(){return!this.unsigned&&this.eq(D)?D:this.not().add(I)},$.neg=$.negate,$.add=function(S){r(S)||(S=c(S));var M=this.high>>>16,B=this.high&65535,U=this.low>>>16,H=this.low&65535,j=S.high>>>16,K=S.high&65535,Z=S.low>>>16,J=S.low&65535,ee=0,ae=0,te=0,re=0;return re+=H+J,te+=re>>>16,re&=65535,te+=U+Z,ae+=te>>>16,te&=65535,ae+=B+K,ee+=ae>>>16,ae&=65535,ee+=M+j,ee&=65535,u(te<<16|re,ee<<16|ae,this.unsigned)},$.subtract=function(S){return r(S)||(S=c(S)),this.add(S.neg())},$.sub=$.subtract,$.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(D))return S.isOdd()?D:x;if(S.eq(D))return this.isOdd()?D: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(y)&&S.lt(y))return l(this.toNumber()*S.toNumber(),this.unsigned);var B=this.high>>>16,U=this.high&65535,H=this.low>>>16,j=this.low&65535,K=S.high>>>16,Z=S.high&65535,J=S.low>>>16,ee=S.low&65535,ae=0,te=0,re=0,se=0;return se+=j*ee,re+=se>>>16,se&=65535,re+=H*ee,te+=re>>>16,re&=65535,re+=j*J,te+=re>>>16,re&=65535,te+=U*ee,ae+=te>>>16,te&=65535,te+=H*J,ae+=te>>>16,te&=65535,te+=j*Z,ae+=te>>>16,te&=65535,ae+=B*ee+U*J+H*Z+j*K,ae&=65535,u(re<<16|se,ae<<16|te,this.unsigned)},$.mul=$.multiply,$.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,H;if(this.unsigned){if(S.unsigned||(S=S.toUnsigned()),S.gt(this))return w;if(S.gt(this.shru(1)))return T;H=w}else{if(this.eq(D)){if(S.eq(I)||S.eq(C))return D;if(S.eq(D))return I;var j=this.shr(1);return B=j.div(S).shl(1),B.eq(x)?S.isNegative()?I:C:(U=this.sub(S.mul(B)),H=B.add(U.div(S)),H)}else if(S.eq(D))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();H=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),H=H.add(J),U=U.sub(ee)}return H},$.div=$.divide,$.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))},$.mod=$.modulo,$.rem=$.modulo,$.not=function(){return u(~this.low,~this.high,this.unsigned)},$.and=function(S){return r(S)||(S=c(S)),u(this.low&S.low,this.high&S.high,this.unsigned)},$.or=function(S){return r(S)||(S=c(S)),u(this.low|S.low,this.high|S.high,this.unsigned)},$.xor=function(S){return r(S)||(S=c(S)),u(this.low^S.low,this.high^S.high,this.unsigned)},$.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)},$.shr=$.shiftRight,$.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)},$.shru=$.shiftRightUnsigned,$.shr_u=$.shiftRightUnsigned,$.toSigned=function(){return this.unsigned?u(this.low,this.high,!1):this},$.toUnsigned=function(){return this.unsigned?this:u(this.low,this.high,!0)},$.toBytes=function(S){return S?this.toBytesLE():this.toBytesBE()},$.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]},$.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)}}),YD=Gt(()=>{}),ZD=Gt(()=>{}),JD=Gt((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)}),QD=Gt((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)}),eR=Gt((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)}),tR=Gt((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)}),nR=Gt((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,b,y=[],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&&(b=b+1640531527|0,h=y[g&127]^=m+b,f=h==0?f+1:0);for(f>=128&&(y[(c&&c.length||0)&127]=-1),f=127,g=4*128;g>0;--g)m=y[f+34&127],h=y[f=f+1&127],m^=m<<13,h^=h<<17,m^=m>>>15,h^=h>>>12,y[f]=m^h;d.w=b,d.X=y,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)}),aR=Gt((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)}),rR=Gt(()=>{}),sR=Gt((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 F=y(b(T.entropy?[I,w(a)]:I==null?x():I,3),E),D=new f(E),$=function(){for(var S=D.g(i),M=u,B=0;S=d;)S/=2,M/=2,B>>>=1;return(S+B)/M};return $.int32=function(){return D.g(4)|0},$.quick=function(){return D.g(4)/4294967296},$.double=$,y(w(D.S),a),(T.pass||C||function(S,M,B,U){return U&&(U.S&&g(U,D),S.state=function(){return g(D,{})}),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,F=0,D=E.i=E.j=0,$=E.S=[];for(C||(I=[C++]);F{var n=JD(),a=QD(),r=eR(),s=tR(),i=nR(),o=aR(),l=sR();l.alea=n,l.xor128=a,l.xorwow=r,l.xorshift7=s,l.xor4096=i,l.tychei=o,t.exports=l}),RS=Gt(()=>{}),bv=Gt(()=>{}),MS=Gt(()=>{}),iR=Gt(()=>{}),oR=Gt(()=>{}),lR=Gt(()=>{}),uR=Gt((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!=Me&<(ue.buffer),ft}function i(){return ue.buffer!=Me&<(ue.buffer),jn}function o(){return ue.buffer!=Me&<(ue.buffer),Lt}function l(){return ue.buffer!=Me&<(ue.buffer),cn}function u(){return ue.buffer!=Me&<(ue.buffer),$n}function p(){return ue.buffer!=Me&<(ue.buffer),ua}function d(){return ue.buffer!=Me&<(ue.buffer),Dn}var c=typeof r!="undefined"?r:{},h,m;c.ready=new Promise(function(R,q){h=R,m=q});var f;typeof process!="undefined"&&process.listeners&&(f={uncaughtException:process.listeners("uncaughtException"),unhandledRejection:process.listeners("unhandledRejection")});var g=Object.assign({},c),b=[],y="./this.program",x=(R,q)=>{throw q},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 F(R){return c.locateFile?c.locateFile(R,E):E+R}var D,$,S,M;function B(R){R instanceof Us||J("exiting due to exception: "+R)}if(T){var U=bv(),H=MS();I?E=H.dirname(E)+"/":E=__dirname+"/",D=(q,le)=>(q=kl(q)?new URL(q):H.normalize(q),U.readFileSync(q,le?void 0:"utf8")),S=q=>{var le=D(q,!0);return le.buffer||(le=new Uint8Array(le)),le},$=(q,le,Ne)=>{q=kl(q)?new URL(q):H.normalize(q),U.readFile(q,function(Pe,Fe){Pe?Ne(Pe):le(Fe.buffer)})},process.argv.length>1&&(y=process.argv[1].replace(/\\/g,"/")),b=process.argv.slice(2),process.on("uncaughtException",function(q){if(!(q instanceof Us))throw q}),process.on("unhandledRejection",function(q){throw q}),x=(q,le)=>{if(Na())throw process.exitCode=q,le;B(le),process.exit(q)},c.inspect=function(){return"[Emscripten Module object]"};let R;try{R=iR()}catch(q){throw console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?'),q}global.Worker=R.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||(D=R=>{var q=new XMLHttpRequest;return q.open("GET",R,!1),q.send(null),q.responseText},I&&(S=R=>{var q=new XMLHttpRequest;return q.open("GET",R,!1),q.responseType="arraybuffer",q.send(null),new Uint8Array(q.response)}),$=(R,q,le)=>{var Ne=new XMLHttpRequest;Ne.open("GET",R,!0),Ne.responseType="arraybuffer",Ne.onload=()=>{if(Ne.status==200||Ne.status==0&&Ne.response){q(Ne.response);return}le()},Ne.onerror=le,Ne.send(null)}),M=R=>document.title=R);T&&typeof performance=="undefined"&&(global.performance=oR().performance);var j=console.log.bind(console),K=console.warn.bind(console);T&&(j=R=>U.writeSync(1,R+` +"use strict";var faceapi=(()=>{var ux=Object.defineProperty;var YD=Object.getOwnPropertyDescriptor;var ZD=Object.getOwnPropertyNames;var JD=Object.prototype.hasOwnProperty;var QD=(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 Dh=(e,t)=>{for(var n in t)ux(e,n,{get:t[n],enumerable:!0})},eR=(e,t,n,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of ZD(t))!JD.call(e,r)&&r!==n&&ux(e,r,{get:()=>t[r],enumerable:!(a=YD(t,r))||a.enumerable});return e};var tR=e=>eR(ux({},"__esModule",{value:!0}),e);var ige={};Dh(ige,{AgeGenderNet:()=>Kd,BoundingBox:()=>sl,Box:()=>ot,ComposableTask:()=>Sa,ComputeAllFaceDescriptorsTask:()=>Xr,ComputeFaceDescriptorsTaskBase:()=>Jd,ComputeSingleFaceDescriptorTask:()=>Yr,DetectAllFaceLandmarksTask:()=>eh,DetectAllFacesTask:()=>Up,DetectFaceLandmarksTaskBase:()=>Qd,DetectFacesTaskBase:()=>nh,DetectSingleFaceLandmarksTask:()=>th,DetectSingleFaceTask:()=>ah,Dimensions:()=>wn,FACE_EXPRESSION_LABELS:()=>Ok,FaceDetection:()=>vt,FaceDetectionNet:()=>Gk,FaceExpressionNet:()=>jd,FaceExpressions:()=>qr,FaceLandmark68Net:()=>ml,FaceLandmark68TinyNet:()=>Xd,FaceLandmarkNet:()=>Bk,FaceLandmarks:()=>ia,FaceLandmarks5:()=>Ik,FaceLandmarks68:()=>ol,FaceMatch:()=>Ep,FaceMatcher:()=>rh,FaceRecognitionNet:()=>fl,Gender:()=>vg,LabeledBox:()=>Ap,LabeledFaceDescriptors:()=>vr,NetInput:()=>kr,NeuralNetwork:()=>pn,ObjectDetection:()=>Ur,Point:()=>Re,PredictedBox:()=>Sk,Rect:()=>il,SsdMobilenetv1:()=>Ls,SsdMobilenetv1Options:()=>Ia,TinyFaceDetector:()=>vl,TinyFaceDetectorOptions:()=>Zd,TinyYolov2:()=>yl,TinyYolov2Options:()=>er,allFaces:()=>age,allFacesSsdMobilenetv1:()=>fD,allFacesTinyYolov2:()=>nge,awaitMediaLoaded:()=>Fk,bufferToImage:()=>$k,computeFaceDescriptor:()=>Vfe,createCanvas:()=>cl,createCanvasFromMedia:()=>Ud,createFaceDetectionNet:()=>Mfe,createFaceRecognitionNet:()=>Sfe,createSsdMobilenetv1:()=>eD,createTinyFaceDetector:()=>rge,createTinyYolov2:()=>Lfe,detectAllFaces:()=>Eg,detectFaceLandmarks:()=>hD,detectFaceLandmarksTiny:()=>Bfe,detectLandmarks:()=>ege,detectSingleFace:()=>tge,draw:()=>zk,env:()=>tt,euclideanDistance:()=>jk,extendWithAge:()=>Sg,extendWithFaceDescriptor:()=>Ig,extendWithFaceDetection:()=>ll,extendWithFaceExpressions:()=>gg,extendWithFaceLandmarks:()=>zp,extendWithGender:()=>Ng,extractFaceTensors:()=>Dp,extractFaces:()=>$p,fetchImage:()=>pfe,fetchJson:()=>Mk,fetchNetWeights:()=>cfe,fetchOrThrow:()=>Hr,fetchVideo:()=>dfe,getContext2dOrThrow:()=>Hn,getMediaDimensions:()=>pl,imageTensorToCanvas:()=>Dk,imageToSquare:()=>Rk,inverseSigmoid:()=>afe,iou:()=>xk,isMediaElement:()=>lg,isMediaLoaded:()=>Vd,isWithAge:()=>Nfe,isWithFaceDetection:()=>wr,isWithFaceExpressions:()=>Lk,isWithFaceLandmarks:()=>hl,isWithGender:()=>Tfe,loadAgeGenderModel:()=>Zfe,loadFaceDetectionModel:()=>Jfe,loadFaceExpressionModel:()=>Yfe,loadFaceLandmarkModel:()=>jfe,loadFaceLandmarkTinyModel:()=>Kfe,loadFaceRecognitionModel:()=>Xfe,loadSsdMobilenetv1Model:()=>mD,loadTinyFaceDetectorModel:()=>Hfe,loadTinyYolov2Model:()=>qfe,loadWeightMap:()=>Pk,locateFaces:()=>Qfe,matchDimensions:()=>hfe,minBbox:()=>vk,nets:()=>nt,nonMaxSuppression:()=>wk,normalize:()=>Ja,padToSquare:()=>kk,predictAgeAndGender:()=>Gfe,recognizeFaceExpressions:()=>Ufe,resizeResults:()=>gD,resolveInput:()=>ul,shuffleArray:()=>nfe,sigmoid:()=>zd,ssdMobilenetv1:()=>dD,tf:()=>Oe,tinyFaceDetector:()=>zfe,tinyYolov2:()=>Wfe,toNetInput:()=>wt,utils:()=>yk,validateConfig:()=>Hk,version:()=>sge});var Oe={};Dh(Oe,{Abs:()=>lu,Acos:()=>Ti,Acosh:()=>Ci,AdadeltaOptimizer:()=>Gw,AdagradOptimizer:()=>Hw,AdamOptimizer:()=>qw,AdamaxOptimizer:()=>jw,Add:()=>Is,AddN:()=>_i,All:()=>uu,Any:()=>pu,ArgMax:()=>cu,ArgMin:()=>du,Asin:()=>Ei,Asinh:()=>Ai,Atan:()=>Fi,Atan2:()=>Di,Atanh:()=>$i,AvgPool:()=>Ri,AvgPool3D:()=>hu,AvgPool3DGrad:()=>Lc,AvgPoolGrad:()=>Oc,BackendWasm:()=>E$,BatchMatMul:()=>Mi,BatchToSpaceND:()=>mu,Bincount:()=>fu,BitwiseAnd:()=>gu,BroadcastArgs:()=>zc,BroadcastTo:()=>aN,Callback:()=>DC,CallbackList:()=>M2,Cast:()=>Pi,Ceil:()=>Oi,ClipByValue:()=>Ss,Complex:()=>Om,ComplexAbs:()=>Wc,Concat:()=>bu,Conv2D:()=>Li,Conv2DBackpropFilter:()=>Lm,Conv2DBackpropInput:()=>zi,Conv3D:()=>Wi,Conv3DBackpropFilterV2:()=>yu,Conv3DBackpropInputV2:()=>xu,Cos:()=>Bi,Cosh:()=>Vi,CropAndResize:()=>wu,Cumprod:()=>vu,Cumsum:()=>Ui,CustomCallback:()=>O2,DataStorage:()=>Rm,DenseBincount:()=>Bc,DepthToSpace:()=>ku,DepthwiseConv2dNative:()=>Gi,DepthwiseConv2dNativeBackpropFilter:()=>zm,DepthwiseConv2dNativeBackpropInput:()=>Wm,Diag:()=>Vc,Dilation2D:()=>Hi,Dilation2DBackpropFilter:()=>Ul,Dilation2DBackpropInput:()=>Vl,Draw:()=>Av,ENV:()=>_v,EarlyStopping:()=>RC,Einsum:()=>Bm,Elu:()=>ji,EluGrad:()=>Iu,Environment:()=>tN,Equal:()=>Su,Erf:()=>Ki,Exp:()=>Xi,ExpandDims:()=>Nu,Expm1:()=>Yi,FFT:()=>Vm,Fill:()=>Uc,FlipLeftRight:()=>Tu,Floor:()=>Zi,FloorDiv:()=>Ji,FromPixels:()=>im,FusedBatchNorm:()=>Qi,FusedConv2D:()=>li,FusedDepthwiseConv2D:()=>ui,GPGPUContext:()=>tm,GatherNd:()=>_u,GatherV2:()=>Cu,GraphModel:()=>$1,Greater:()=>Eu,GreaterEqual:()=>eo,History:()=>P2,IFFT:()=>Um,Identity:()=>to,Imag:()=>Gm,InputSpec:()=>Bt,IsFinite:()=>no,IsInf:()=>ao,IsNan:()=>ro,KernelBackend:()=>Mc,LRN:()=>lo,LRNGrad:()=>Pu,LayerVariable:()=>_2,LayersModel:()=>Dr,LeakyRelu:()=>so,Less:()=>Au,LessEqual:()=>Fu,LinSpace:()=>$u,Log:()=>io,Log1p:()=>oo,LogSoftmax:()=>sN,LogicalAnd:()=>Du,LogicalNot:()=>Ru,LogicalOr:()=>Mu,LogicalXor:()=>rN,LowerBound:()=>qR,MathBackendCPU:()=>Yf,MathBackendWebGL:()=>Qf,MatrixBandPart:()=>jR,Max:()=>uo,MaxPool:()=>co,MaxPool3D:()=>Ou,MaxPool3DGrad:()=>Hc,MaxPoolGrad:()=>Gc,MaxPoolWithArgmax:()=>qc,Maximum:()=>po,Mean:()=>ho,Min:()=>mo,Minimum:()=>fo,MirrorPad:()=>go,Mod:()=>bo,MomentumOptimizer:()=>Kw,Multinomial:()=>Lu,Multiply:()=>yo,Neg:()=>zu,NonMaxSuppressionV3:()=>Bu,NonMaxSuppressionV4:()=>Vu,NonMaxSuppressionV5:()=>Uu,NotEqual:()=>Wu,OP_SCOPE_SUFFIX:()=>Dv,OneHot:()=>xo,OnesLike:()=>Gu,Optimizer:()=>zr,OptimizerConstructors:()=>c2,Pack:()=>Hu,PadV2:()=>vo,Pool:()=>KR,Pow:()=>wo,Prelu:()=>ko,Prod:()=>Io,RMSPropOptimizer:()=>Xw,RNN:()=>br,RaggedGather:()=>Hm,RaggedRange:()=>qm,RaggedTensorToTensor:()=>jm,Range:()=>jc,Rank:()=>_x,Real:()=>Km,RealDiv:()=>qi,Reciprocal:()=>So,Reduction:()=>In,Relu:()=>No,Relu6:()=>_o,Reshape:()=>qu,ResizeBilinear:()=>Co,ResizeBilinearGrad:()=>Ku,ResizeNearestNeighbor:()=>To,ResizeNearestNeighborGrad:()=>ju,Reverse:()=>Eo,RotateWithOffset:()=>up,Round:()=>Ao,Rsqrt:()=>Fo,SGDOptimizer:()=>Af,ScatterNd:()=>Xu,SearchSorted:()=>Zu,Select:()=>Ju,Selu:()=>$o,Sequential:()=>tu,Sigmoid:()=>Po,Sign:()=>Mo,Sin:()=>Do,Sinh:()=>Ro,Slice:()=>Qu,Softmax:()=>Wo,Softplus:()=>Oo,SpaceToBatchND:()=>ep,SparseFillEmptyRows:()=>Kc,SparseReshape:()=>np,SparseSegmentMean:()=>Xc,SparseSegmentSum:()=>Yc,SparseToDense:()=>ap,SplitV:()=>tp,Sqrt:()=>Lo,Square:()=>Zc,SquaredDifference:()=>Bo,StaticRegexReplace:()=>Jc,Step:()=>Ts,StridedSlice:()=>rp,StringNGrams:()=>Qc,StringSplit:()=>ed,StringToHashBucketFast:()=>td,Sub:()=>Vo,Sum:()=>zo,SymbolicTensor:()=>Va,Tan:()=>Uo,Tanh:()=>Go,Tensor:()=>Te,TensorBuffer:()=>Vt,TensorScatterUpdate:()=>Yu,Tile:()=>Ns,TopK:()=>sp,Transform:()=>ip,Transpose:()=>$r,Unique:()=>nd,Unpack:()=>op,UnsortedSegmentSum:()=>ad,UpperBound:()=>XR,Variable:()=>hs,ZerosLike:()=>lp,_FusedMatMul:()=>oi,abs:()=>Wt,acos:()=>Lv,acosh:()=>zv,add:()=>X,addN:()=>AN,all:()=>Qm,any:()=>kc,argMax:()=>di,argMin:()=>Wv,asin:()=>Bv,asinh:()=>Vv,atan:()=>Uv,atan2:()=>Gv,atanh:()=>Hv,avgPool:()=>xa,avgPool3d:()=>jv,backend:()=>EN,backend_util:()=>N,basicLSTMCell:()=>RN,batchNorm:()=>_s,batchNorm2d:()=>Kv,batchNorm3d:()=>Xv,batchNorm4d:()=>Yv,batchToSpaceND:()=>pd,bincount:()=>Zv,bitwiseAnd:()=>MN,booleanMaskAsync:()=>NT,broadcastArgs:()=>PN,broadcastTo:()=>ri,broadcast_util:()=>pp,browser:()=>Ko,buffer:()=>ze,callbacks:()=>Dq,cast:()=>se,ceil:()=>Jv,clipByValue:()=>sn,clone:()=>or,complex:()=>Rr,concat:()=>et,concat1d:()=>Qv,concat2d:()=>ew,concat3d:()=>tw,concat4d:()=>nw,constraints:()=>F2,conv1d:()=>ef,conv2d:()=>Rt,conv2dTranspose:()=>tf,conv3d:()=>rw,conv3dTranspose:()=>sw,copyRegisteredKernels:()=>QR,cos:()=>cd,cosh:()=>nf,cosineWindow:()=>Nf,cumprod:()=>Nc,cumsum:()=>af,customGrad:()=>cr,data:()=>a_,denseBincount:()=>dm,deprecationWarn:()=>Ov,depthToSpace:()=>iw,depthwiseConv2d:()=>Es,deregisterOp:()=>Pq,device_util:()=>od,diag:()=>LN,dilation2d:()=>ow,disableDeprecationWarnings:()=>cP,dispose:()=>_e,disposeVariables:()=>dP,div:()=>he,divNoNan:()=>lw,dot:()=>uw,dropout:()=>zw,einsum:()=>WN,elu:()=>cp,enableDebugMode:()=>pP,enableProdMode:()=>uP,enclosingPowerOfTwo:()=>Ww,engine:()=>Aa,ensureShape:()=>BN,env:()=>G,equal:()=>ta,erf:()=>pw,euclideanNorm:()=>hw,exp:()=>yn,expandDims:()=>nn,expm1:()=>mw,eye:()=>rf,fft:()=>vd,fill:()=>xn,findBackend:()=>xP,findBackendFactory:()=>vP,floor:()=>hp,floorDiv:()=>Jm,forceHalfFloat:()=>IA,fused:()=>Zl,gather:()=>mp,gatherND:()=>ET,gather_util:()=>Jw,getBackend:()=>bP,getGradient:()=>Tx,getKernel:()=>om,getKernelsForBackend:()=>lm,getThreadsCount:()=>jme,gpgpu_util:()=>tA,grad:()=>g3,grads:()=>b3,greater:()=>_n,greaterEqual:()=>Or,ifft:()=>Yl,imag:()=>dd,image:()=>ea,inTopKAsync:()=>AT,initializers:()=>$2,input:()=>Z2,io:()=>jt,irfft:()=>xf,isFinite:()=>fw,isInf:()=>gw,isNaN:()=>bw,keep:()=>qt,kernel_impls:()=>gr,layers:()=>D2,leakyRelu:()=>hd,less:()=>ql,lessEqual:()=>As,linalg:()=>Uw,linspace:()=>qN,loadGraphModel:()=>Vj,loadGraphModelSync:()=>Uj,loadLayersModel:()=>EH,localResponseNormalization:()=>yw,log:()=>na,log1p:()=>md,logSigmoid:()=>xw,logSoftmax:()=>of,logSumExp:()=>lf,logicalAnd:()=>Da,logicalNot:()=>fd,logicalOr:()=>uf,logicalXor:()=>vw,losses:()=>VT,lowerBound:()=>KN,matMul:()=>$e,math:()=>JT,max:()=>ga,maxPool:()=>Mt,maxPool3d:()=>ww,maxPoolWithArgmax:()=>XN,maximum:()=>fr,mean:()=>Et,memory:()=>cm,meshgrid:()=>YN,metrics:()=>AC,min:()=>Hl,minimum:()=>fs,mirrorPad:()=>kw,mod:()=>Iw,model:()=>$H,models:()=>FC,moments:()=>gd,movingAverage:()=>TT,mul:()=>z,multiRNNCell:()=>ZN,multinomial:()=>JN,neg:()=>yt,nextFrame:()=>Qw,norm:()=>dp,notEqual:()=>gi,oneHot:()=>jl,ones:()=>Qn,onesLike:()=>aa,op:()=>L,outerProduct:()=>QN,pad:()=>va,pad1d:()=>eT,pad2d:()=>tT,pad3d:()=>nT,pad4d:()=>aT,pool:()=>Sw,pow:()=>Mr,prelu:()=>yd,print:()=>Pv,prod:()=>Nw,profile:()=>hP,raggedGather:()=>rT,raggedRange:()=>sT,raggedTensorToTensor:()=>iT,rand:()=>oT,randomGamma:()=>cT,randomNormal:()=>cf,randomStandardNormal:()=>dT,randomUniform:()=>Fs,randomUniformInt:()=>hT,range:()=>bi,ready:()=>gP,real:()=>Kl,reciprocal:()=>Aw,registerBackend:()=>Zm,registerCallbackConstructor:()=>RH,registerGradient:()=>iN,registerKernel:()=>rd,registerOp:()=>Mq,regularizers:()=>$C,relu:()=>Ke,relu6:()=>df,removeBackend:()=>yP,reshape:()=>W,reverse:()=>ya,reverse1d:()=>mT,reverse2d:()=>fT,reverse3d:()=>gT,reverse4d:()=>bT,rfft:()=>wd,round:()=>hf,rsqrt:()=>mf,scalar:()=>ve,scatterND:()=>CT,scatter_util:()=>wf,searchSorted:()=>pf,selu:()=>ff,separableConv2d:()=>$s,sequential:()=>DH,serialization:()=>ne,setBackend:()=>fP,setPlatform:()=>wP,setThreadsCount:()=>qme,setWasmPath:()=>Gme,setWasmPaths:()=>Hme,setWebGLContext:()=>NE,setdiff1dAsync:()=>yT,shared:()=>P1,sigmoid:()=>fa,sign:()=>Fw,signal:()=>BT,sin:()=>gf,sinh:()=>bf,slice:()=>Ue,slice1d:()=>xd,slice2d:()=>yf,slice3d:()=>qo,slice4d:()=>Xl,slice_util:()=>Xt,softmax:()=>Xa,softplus:()=>Ho,spaceToBatchND:()=>bd,sparse:()=>UT,sparseToDense:()=>_T,spectral:()=>WT,split:()=>zn,sqrt:()=>mn,square:()=>ut,squaredDifference:()=>vf,squeeze:()=>Ds,stack:()=>Dt,step:()=>jo,stridedSlice:()=>$w,string:()=>GT,sub:()=>pe,sum:()=>fe,sumOutType:()=>Ym,tan:()=>Dw,tanh:()=>mi,tensor:()=>bn,tensor1d:()=>je,tensor2d:()=>$a,tensor3d:()=>kd,tensor4d:()=>Ma,tensor5d:()=>xT,tensor6d:()=>vT,tensorScatterUpdate:()=>kT,tensor_util:()=>Ua,test_util:()=>lT,tidy:()=>P,tile:()=>Ln,time:()=>mP,topk:()=>Mw,train:()=>Xs,transpose:()=>De,truncatedNormal:()=>If,unique:()=>Pw,unregisterGradient:()=>JR,unregisterKernel:()=>ZR,unsortedSegmentSum:()=>Sf,unstack:()=>ct,upcastType:()=>ba,upperBound:()=>IT,util:()=>w,valueAndGrad:()=>y3,valueAndGrads:()=>x3,variable:()=>Ow,variableGrads:()=>jN,version:()=>efe,version_converter:()=>Hj,version_core:()=>LB,version_cpu:()=>UK,version_layers:()=>w0,version_wasm:()=>Kme,version_webgl:()=>$Q,webgl:()=>DQ,webgl_util:()=>SE,where:()=>rn,whereAsync:()=>Lw,zeros:()=>Nt,zerosLike:()=>qe});var nR=Object.create,Sv=Object.defineProperty,aR=Object.getOwnPropertyDescriptor,rR=Object.getOwnPropertyNames,sR=Object.getPrototypeOf,iR=Object.prototype.hasOwnProperty,Gt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Ee=(e,t)=>{for(var n in t)Sv(e,n,{get:t[n],enumerable:!0})},oR=(e,t,n,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of rR(t))!iR.call(e,r)&&r!==n&&Sv(e,r,{get:()=>t[r],enumerable:!(a=aR(t,r))||a.enumerable});return e},ks=(e,t,n)=>(n=e!=null?nR(sR(e)):{},oR(t||!e||!e.__esModule?Sv(n,"default",{value:e,enumerable:!0}):n,e)),lR=Gt((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,H;return M?(S>>>=0,(H=0<=S&&S<256)&&(U=i[S],U)?U:(B=u(S,(S|0)<0?-1:0,!0),H&&(i[S]=B),B)):(S|=0,(H=-128<=S&&S<128)&&(U=s[S],U)?U:(B=u(S,S<0?-1:0,!1),H&&(s[S]=B),B))}a.fromInt=o;function l(S,M){if(isNaN(S))return M?v:x;if(M){if(S<0)return v;if(S>=g)return F}else{if(S<=-b)return D;if(S+1>=b)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 H=l(p(B,8)),j=x,K=0;K>>0:this.low},$.toNumber=function(){return this.unsigned?(this.high>>>0)*f+(this.low>>>0):this.high*f+(this.low>>>0)},$.toString=function(S){if(S=S||10,S<2||36>>0,ee=J.toString(S);if(j=Z,j.isZero())return ee+K;for(;ee.length<6;)ee="0"+ee;K=""+ee+K}},$.getHighBits=function(){return this.high},$.getHighBitsUnsigned=function(){return this.high>>>0},$.getLowBits=function(){return this.low},$.getLowBitsUnsigned=function(){return this.low>>>0},$.getNumBitsAbs=function(){if(this.isNegative())return this.eq(D)?64:this.neg().getNumBitsAbs();for(var S=this.high!=0?this.high:this.low,M=31;M>0&&!(S&1<=0},$.isOdd=function(){return(this.low&1)===1},$.isEven=function(){return(this.low&1)===0},$.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},$.eq=$.equals,$.notEquals=function(S){return!this.eq(S)},$.neq=$.notEquals,$.ne=$.notEquals,$.lessThan=function(S){return this.comp(S)<0},$.lt=$.lessThan,$.lessThanOrEqual=function(S){return this.comp(S)<=0},$.lte=$.lessThanOrEqual,$.le=$.lessThanOrEqual,$.greaterThan=function(S){return this.comp(S)>0},$.gt=$.greaterThan,$.greaterThanOrEqual=function(S){return this.comp(S)>=0},$.gte=$.greaterThanOrEqual,$.ge=$.greaterThanOrEqual,$.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},$.comp=$.compare,$.negate=function(){return!this.unsigned&&this.eq(D)?D:this.not().add(I)},$.neg=$.negate,$.add=function(S){r(S)||(S=c(S));var M=this.high>>>16,B=this.high&65535,U=this.low>>>16,H=this.low&65535,j=S.high>>>16,K=S.high&65535,Z=S.low>>>16,J=S.low&65535,ee=0,ae=0,te=0,re=0;return re+=H+J,te+=re>>>16,re&=65535,te+=U+Z,ae+=te>>>16,te&=65535,ae+=B+K,ee+=ae>>>16,ae&=65535,ee+=M+j,ee&=65535,u(te<<16|re,ee<<16|ae,this.unsigned)},$.subtract=function(S){return r(S)||(S=c(S)),this.add(S.neg())},$.sub=$.subtract,$.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(D))return S.isOdd()?D:x;if(S.eq(D))return this.isOdd()?D: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(y)&&S.lt(y))return l(this.toNumber()*S.toNumber(),this.unsigned);var B=this.high>>>16,U=this.high&65535,H=this.low>>>16,j=this.low&65535,K=S.high>>>16,Z=S.high&65535,J=S.low>>>16,ee=S.low&65535,ae=0,te=0,re=0,ie=0;return ie+=j*ee,re+=ie>>>16,ie&=65535,re+=H*ee,te+=re>>>16,re&=65535,re+=j*J,te+=re>>>16,re&=65535,te+=U*ee,ae+=te>>>16,te&=65535,te+=H*J,ae+=te>>>16,te&=65535,te+=j*Z,ae+=te>>>16,te&=65535,ae+=B*ee+U*J+H*Z+j*K,ae&=65535,u(re<<16|ie,ae<<16|te,this.unsigned)},$.mul=$.multiply,$.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?v:x;var B,U,H;if(this.unsigned){if(S.unsigned||(S=S.toUnsigned()),S.gt(this))return v;if(S.gt(this.shru(1)))return T;H=v}else{if(this.eq(D)){if(S.eq(I)||S.eq(C))return D;if(S.eq(D))return I;var j=this.shr(1);return B=j.div(S).shl(1),B.eq(x)?S.isNegative()?I:C:(U=this.sub(S.mul(B)),H=B.add(U.div(S)),H)}else if(S.eq(D))return this.unsigned?v: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();H=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),H=H.add(J),U=U.sub(ee)}return H},$.div=$.divide,$.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))},$.mod=$.modulo,$.rem=$.modulo,$.not=function(){return u(~this.low,~this.high,this.unsigned)},$.and=function(S){return r(S)||(S=c(S)),u(this.low&S.low,this.high&S.high,this.unsigned)},$.or=function(S){return r(S)||(S=c(S)),u(this.low|S.low,this.high|S.high,this.unsigned)},$.xor=function(S){return r(S)||(S=c(S)),u(this.low^S.low,this.high^S.high,this.unsigned)},$.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)},$.shr=$.shiftRight,$.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)},$.shru=$.shiftRightUnsigned,$.shr_u=$.shiftRightUnsigned,$.toSigned=function(){return this.unsigned?u(this.low,this.high,!1):this},$.toUnsigned=function(){return this.unsigned?this:u(this.low,this.high,!0)},$.toBytes=function(S){return S?this.toBytesLE():this.toBytesBE()},$.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]},$.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)}}),uR=Gt(()=>{}),pR=Gt(()=>{}),cR=Gt((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)}),dR=Gt((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)}),hR=Gt((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)}),mR=Gt((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)}),fR=Gt((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,b,y=[],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&&(b=b+1640531527|0,h=y[g&127]^=m+b,f=h==0?f+1:0);for(f>=128&&(y[(c&&c.length||0)&127]=-1),f=127,g=4*128;g>0;--g)m=y[f+34&127],h=y[f=f+1&127],m^=m<<13,h^=h<<17,m^=m>>>15,h^=h>>>12,y[f]=m^h;d.w=b,d.X=y,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)}),gR=Gt((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)}),bR=Gt(()=>{}),yR=Gt((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 F=y(b(T.entropy?[I,v(a)]:I==null?x():I,3),E),D=new f(E),$=function(){for(var S=D.g(i),M=u,B=0;S=d;)S/=2,M/=2,B>>>=1;return(S+B)/M};return $.int32=function(){return D.g(4)|0},$.quick=function(){return D.g(4)/4294967296},$.double=$,y(v(D.S),a),(T.pass||C||function(S,M,B,U){return U&&(U.S&&g(U,D),S.state=function(){return g(D,{})}),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,F=0,D=E.i=E.j=0,$=E.S=[];for(C||(I=[C++]);F{var n=cR(),a=dR(),r=hR(),s=mR(),i=fR(),o=gR(),l=yR();l.alea=n,l.xor128=a,l.xorwow=r,l.xorshift7=s,l.xor4096=i,l.tychei=o,t.exports=l}),US=Gt(()=>{}),Nv=Gt(()=>{}),GS=Gt(()=>{}),xR=Gt(()=>{}),vR=Gt(()=>{}),wR=Gt(()=>{}),kR=Gt((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!=Me&<(ue.buffer),ft}function i(){return ue.buffer!=Me&<(ue.buffer),jn}function o(){return ue.buffer!=Me&<(ue.buffer),Lt}function l(){return ue.buffer!=Me&<(ue.buffer),cn}function u(){return ue.buffer!=Me&<(ue.buffer),$n}function p(){return ue.buffer!=Me&<(ue.buffer),ua}function d(){return ue.buffer!=Me&<(ue.buffer),Dn}var c=typeof r!="undefined"?r:{},h,m;c.ready=new Promise(function(R,q){h=R,m=q});var f;typeof process!="undefined"&&process.listeners&&(f={uncaughtException:process.listeners("uncaughtException"),unhandledRejection:process.listeners("unhandledRejection")});var g=Object.assign({},c),b=[],y="./this.program",x=(R,q)=>{throw q},v=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 F(R){return c.locateFile?c.locateFile(R,E):E+R}var D,$,S,M;function B(R){R instanceof Gs||J("exiting due to exception: "+R)}if(T){var U=Nv(),H=GS();I?E=H.dirname(E)+"/":E=__dirname+"/",D=(q,le)=>(q=Cl(q)?new URL(q):H.normalize(q),U.readFileSync(q,le?void 0:"utf8")),S=q=>{var le=D(q,!0);return le.buffer||(le=new Uint8Array(le)),le},$=(q,le,Ne)=>{q=Cl(q)?new URL(q):H.normalize(q),U.readFile(q,function(Pe,Fe){Pe?Ne(Pe):le(Fe.buffer)})},process.argv.length>1&&(y=process.argv[1].replace(/\\/g,"/")),b=process.argv.slice(2),process.on("uncaughtException",function(q){if(!(q instanceof Gs))throw q}),process.on("unhandledRejection",function(q){throw q}),x=(q,le)=>{if(Na())throw process.exitCode=q,le;B(le),process.exit(q)},c.inspect=function(){return"[Emscripten Module object]"};let R;try{R=xR()}catch(q){throw console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?'),q}global.Worker=R.Worker}else(v||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||(D=R=>{var q=new XMLHttpRequest;return q.open("GET",R,!1),q.send(null),q.responseText},I&&(S=R=>{var q=new XMLHttpRequest;return q.open("GET",R,!1),q.responseType="arraybuffer",q.send(null),new Uint8Array(q.response)}),$=(R,q,le)=>{var Ne=new XMLHttpRequest;Ne.open("GET",R,!0),Ne.responseType="arraybuffer",Ne.onload=()=>{if(Ne.status==200||Ne.status==0&&Ne.response){q(Ne.response);return}le()},Ne.onerror=le,Ne.send(null)}),M=R=>document.title=R);T&&typeof performance=="undefined"&&(global.performance=vR().performance);var j=console.log.bind(console),K=console.warn.bind(console);T&&(j=R=>U.writeSync(1,R+` `),K=R=>U.writeSync(2,R+` -`));var Z=c.print||j,J=c.printErr||K;Object.assign(c,g),g=null,c.arguments&&(b=c.arguments),c.thisProgram&&(y=c.thisProgram),c.quit&&(x=c.quit);var ee=4,ae=Atomics.load,te=Atomics.store,re=Atomics.compareExchange,se;c.wasmBinary&&(se=c.wasmBinary);var ye=c.noExitRuntime||!0;typeof WebAssembly!="object"&&Vs("no native wasm support detected");var ue,be,ke=!1,Se;function We(R,q){R||Vs(q)}var Ge=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function ht(R,q,le){q>>>=0;for(var Ne=q+le,Pe=q;R[Pe]&&!(Pe>=Ne);)++Pe;if(Pe-q>16&&R.buffer&&Ge)return Ge.decode(R.buffer instanceof SharedArrayBuffer?R.slice(q,Pe):R.subarray(q,Pe));for(var Fe="";q>10,56320|ca&1023)}}return Fe}function st(R,q){return R>>>=0,R?ht(i(),R,q):""}function at(R,q,le,Ne){if(le>>>=0,!(Ne>0))return 0;for(var Pe=le,Fe=le+Ne-1,me=0;me=55296&&we<=57343){var _t=R.charCodeAt(++me);we=65536+((we&1023)<<10)|_t&1023}if(we<=127){if(le>=Fe)break;q[le++>>>0]=we}else if(we<=2047){if(le+1>=Fe)break;q[le++>>>0]=192|we>>6,q[le++>>>0]=128|we&63}else if(we<=65535){if(le+2>=Fe)break;q[le++>>>0]=224|we>>12,q[le++>>>0]=128|we>>6&63,q[le++>>>0]=128|we&63}else{if(le+3>=Fe)break;q[le++>>>0]=240|we>>18,q[le++>>>0]=128|we>>12&63,q[le++>>>0]=128|we>>6&63,q[le++>>>0]=128|we&63}}return q[le>>>0]=0,le-Pe}function rt(R,q,le){return at(R,i(),q,le)}var Me,ft,jn,Lt,la,cn,$n,ua,Dn;C&&(Me=c.buffer);function lt(R){Me=R,c.HEAP8=ft=new Int8Array(R),c.HEAP16=Lt=new Int16Array(R),c.HEAP32=cn=new Int32Array(R),c.HEAPU8=jn=new Uint8Array(R),c.HEAPU16=la=new Uint16Array(R),c.HEAPU32=$n=new Uint32Array(R),c.HEAPF32=ua=new Float32Array(R),c.HEAPF64=Dn=new Float64Array(R)}var Rn=c.INITIAL_MEMORY||16777216;if(C)ue=c.wasmMemory,Me=c.buffer;else if(c.wasmMemory)ue=c.wasmMemory;else if(ue=new WebAssembly.Memory({initial:Rn/65536,maximum:65536,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&&J("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and/or recent version)"),Error("bad memory");ue&&(Me=ue.buffer),Rn=Me.byteLength,lt(Me);var Kn,kr=[],vl=[],tr=[],Bp=!1;function Na(){return ye}function Yr(){if(c.preRun)for(typeof c.preRun=="function"&&(c.preRun=[c.preRun]);c.preRun.length;)Eg(c.preRun.shift());Up(kr)}function Jt(){Bp=!0,!C&&Up(vl)}function eh(){if(!C){if(c.postRun)for(typeof c.postRun=="function"&&(c.postRun=[c.postRun]);c.postRun.length;)Wk(c.postRun.shift());Up(tr)}}function Eg(R){kr.unshift(R)}function Ag(R){vl.unshift(R)}function Wk(R){tr.unshift(R)}var Zr=0,wl=null,Ir=null;function Fg(R){Zr++,c.monitorRunDependencies&&c.monitorRunDependencies(Zr)}function th(R){if(Zr--,c.monitorRunDependencies&&c.monitorRunDependencies(Zr),Zr==0&&(wl!==null&&(clearInterval(wl),wl=null),Ir)){var q=Ir;Ir=null,q()}}function Vs(R){c.onAbort&&c.onAbort(R),R="Aborted("+R+")",J(R),ke=!0,Se=1,R+=". Build with -sASSERTIONS for more info.";var q=new WebAssembly.RuntimeError(R);throw m(q),q}var $g="data:application/octet-stream;base64,";function nh(R){return R.startsWith($g)}function kl(R){return R.startsWith("file://")}var gn;gn="tfjs-backend-wasm-threaded-simd.wasm",nh(gn)||(gn=F(gn));function ah(R){try{if(R==gn&&se)return new Uint8Array(se);if(S)return S(R);throw"both async and sync fetching of the wasm failed"}catch(q){Vs(q)}}function Dg(){if(!se&&(w||I)){if(typeof fetch=="function"&&!kl(gn))return fetch(gn,{credentials:"same-origin"}).then(function(R){if(!R.ok)throw"failed to load wasm binary file at '"+gn+"'";return R.arrayBuffer()}).catch(function(){return ah(gn)});if($)return new Promise(function(R,q){$(gn,function(le){R(new Uint8Array(le))},q)})}return Promise.resolve().then(function(){return ah(gn)})}function Rg(){var R={env:gh,wasi_snapshot_preview1:gh};function q(me,we){var _t=me.exports;if(c.asm=_t,Ug(c.asm._emscripten_tls_init),Kn=c.asm.__indirect_function_table,Ag(c.asm.__wasm_call_ctors),be=we,!C){var ca=Ae.unusedWorkers.length;Ae.unusedWorkers.forEach(function(Nr){Ae.loadWasmModuleToWorker(Nr,function(){--ca||th("wasm-instantiate")})})}}C||Fg("wasm-instantiate");function le(me){q(me.instance,me.module)}function Ne(me){return Dg().then(function(we){return WebAssembly.instantiate(we,R)}).then(function(we){return we}).then(me,function(we){J("failed to asynchronously prepare wasm: "+we),Vs(we)})}function Pe(){return!se&&typeof WebAssembly.instantiateStreaming=="function"&&!nh(gn)&&!kl(gn)&&!T&&typeof fetch=="function"?fetch(gn,{credentials:"same-origin"}).then(function(me){var we=WebAssembly.instantiateStreaming(me,R);return we.then(le,function(_t){return J("wasm streaming compile failed: "+_t),J("falling back to ArrayBuffer instantiation"),Ne(le)})}):Ne(le)}if(c.instantiateWasm)try{var Fe=c.instantiateWasm(R,q);return Fe}catch(me){J("Module.instantiateWasm callback failed with error: "+me),m(me)}return Pe().catch(m),{}}var Bk,Vk,rh={};function Us(R){this.name="ExitStatus",this.message="Program terminated with exit("+R+")",this.status=R}function Mg(R){var q=Ae.pthreads[R];delete Ae.pthreads[R],q.terminate(),Jy(R),Ae.runningWorkers.splice(Ae.runningWorkers.indexOf(q),1),q.pthread_ptr=0}function Pg(R){var q=Ae.pthreads[R];q.postMessage({cmd:"cancel"})}function Vp(R){var q=Ae.pthreads[R];We(q),Ae.returnWorkerToPool(q)}function Og(R){var q=Ae.getNewWorker();if(!q)return 6;Ae.runningWorkers.push(q),Ae.pthreads[R.pthread_ptr]=q,q.pthread_ptr=R.pthread_ptr;var le={cmd:"run",start_routine:R.startRoutine,arg:R.arg,pthread_ptr:R.pthread_ptr};return q.runPthread=()=>{T&&q.ref(),q.postMessage(le,R.transferList),delete q.runPthread},q.loaded&&q.runPthread(),0}var sh={varargs:void 0,get:function(){sh.varargs+=4;var R=l()[sh.varargs-4>>>2];return R},getStr:function(R){var q=st(R);return q}};function ih(R){if(C)return Jr(1,1,R);Se=R,Na()||(Ae.terminateAllThreads(),c.onExit&&c.onExit(R),ke=!0),x(R,new Us(R))}function Lg(R,q){if(Se=R,!q&&C)throw lh(R),"unwind";ih(R)}var oh=Lg;function zg(R){if(R instanceof Us||R=="unwind")return Se;x(1,R)}var Ae={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init:function(){C?Ae.initWorker():Ae.initMainThread()},initMainThread:function(){for(var R=8;R--;)Ae.allocateUnusedWorker()},initWorker:function(){ye=!1},setExitStatus:function(R){Se=R},terminateAllThreads:function(){for(var R of Object.values(Ae.pthreads))Ae.returnWorkerToPool(R);for(var R of Ae.unusedWorkers)R.terminate();Ae.unusedWorkers=[]},returnWorkerToPool:function(R){var q=R.pthread_ptr;delete Ae.pthreads[q],Ae.unusedWorkers.push(R),Ae.runningWorkers.splice(Ae.runningWorkers.indexOf(R),1),R.pthread_ptr=0,T&&R.unref(),Jy(q)},receiveObjectTransfer:function(R){},threadInitTLS:function(){Ae.tlsInitFunctions.forEach(R=>R())},loadWasmModuleToWorker:function(R,q){R.onmessage=Fe=>{var me=Fe.data,we=me.cmd;if(R.pthread_ptr&&(Ae.currentProxiedOperationCallerThread=R.pthread_ptr),me.targetThread&&me.targetThread!=kh()){var _t=Ae.pthreads[me.targetThread];_t?_t.postMessage(me,me.transferList):J('Internal error! Worker sent a message "'+we+'" to target pthread '+me.targetThread+", but that thread no longer exists!"),Ae.currentProxiedOperationCallerThread=void 0;return}we==="processProxyingQueue"?Gp(me.queue):we==="spawnThread"?Og(me):we==="cleanupThread"?Vp(me.thread):we==="killThread"?Mg(me.thread):we==="cancelThread"?Pg(me.thread):we==="loaded"?(R.loaded=!0,T&&R.unref(),q&&q(R),R.runPthread&&R.runPthread()):we==="print"?Z("Thread "+me.threadId+": "+me.text):we==="printErr"?J("Thread "+me.threadId+": "+me.text):we==="alert"?alert("Thread "+me.threadId+": "+me.text):me.target==="setimmediate"?R.postMessage(me):we==="callHandler"?c[me.handler](...me.args):we&&J("worker sent an unknown command "+we),Ae.currentProxiedOperationCallerThread=void 0},R.onerror=Fe=>{var me="worker sent an error!";throw J(me+" "+Fe.filename+":"+Fe.lineno+": "+Fe.message),Fe},T&&(R.on("message",function(Fe){R.onmessage({data:Fe})}),R.on("error",function(Fe){R.onerror(Fe)}),R.on("detachedExit",function(){}));var le=[],Ne=["onExit","onAbort","print","printErr"];for(var Pe of Ne)c.hasOwnProperty(Pe)&&le.push(Pe);R.postMessage({cmd:"load",handlers:le,urlOrBlob:c.mainScriptUrlOrBlob||a,wasmMemory:ue,wasmModule:be})},allocateUnusedWorker:function(){var R,q=F("tfjs-backend-wasm-threaded-simd.worker.js");R=new Worker(q),Ae.unusedWorkers.push(R)},getNewWorker:function(){return Ae.unusedWorkers.length==0&&(Ae.allocateUnusedWorker(),Ae.loadWasmModuleToWorker(Ae.unusedWorkers[0])),Ae.unusedWorkers.pop()}};c.PThread=Ae;function Up(R){for(;R.length>0;)R.shift()(c)}function Wg(){var R=kh(),q=l()[R+52>>>2],le=l()[R+56>>>2],Ne=q-le;Kk(q,Ne),Ih(q)}c.establishStackSpace=Wg;function lh(R){if(C)return Jr(2,0,R);try{oh(R)}catch(q){zg(q)}}var Il=[];function Bg(R){var q=Il[R];return q||(R>=Il.length&&(Il.length=R+1),Il[R]=q=Kn.get(R)),q}function Vg(R,q){var le=Bg(R)(q);Na()?Ae.setExitStatus(le):jk(le)}c.invokeEntryPoint=Vg;function Ug(R){Ae.tlsInitFunctions.push(R)}function Gg(R){Gk(R,!I,1,!w),Ae.threadInitTLS()}function Hg(R){C?postMessage({cmd:"cleanupThread",thread:R}):Vp(R)}function uh(R,q,le,Ne){return C?Jr(3,1,R,q,le,Ne):ph(R,q,le,Ne)}function ph(R,q,le,Ne){if(typeof SharedArrayBuffer=="undefined")return J("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;var Pe=[],Fe=0;if(C&&(Pe.length===0||Fe))return uh(R,q,le,Ne);if(Fe)return Fe;var me={startRoutine:le,pthread_ptr:R,arg:Ne,transferList:Pe};return C?(me.cmd="spawnThread",postMessage(me,Pe),0):Og(me)}function qg(){return 65536}var jg=!0;function Kg(){return jg}function Gp(R){Atomics.store(l(),R>>2,1),kh()&&qk(R),Atomics.compareExchange(l(),R>>2,1,0)}c.executeNotifiedProxyingQueue=Gp;function Xg(R,q,le,Ne){if(R==q)setTimeout(()=>Gp(Ne));else if(C)postMessage({targetThread:R,cmd:"processProxyingQueue",queue:Ne});else{var Pe=Ae.pthreads[R];if(!Pe)return;Pe.postMessage({cmd:"processProxyingQueue",queue:Ne})}return 1}function Yg(R,q,le){return-1}function Zg(){Vs("")}function Gs(R){Gs.shown||(Gs.shown={}),Gs.shown[R]||(Gs.shown[R]=1,T&&(R="warning: "+R),J(R))}function Jg(){T||I||Gs("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function Qg(){return Date.now()}function ch(){return 4294901760}function eb(){return ch()}var Hp;T?Hp=()=>{var R=process.hrtime();return R[0]*1e3+R[1]/1e6}:Hp=()=>performance.timeOrigin+performance.now();function tb(R,q,le){i().copyWithin(R>>>0,q>>>0,q+le>>>0)}function nb(){return T?lR().cpus().length:navigator.hardwareConcurrency}function ab(R){var q=Qy(),le=R();return Ih(q),le}function Jr(R,q){var le=arguments.length-2,Ne=arguments;return ab(()=>{for(var Pe=le,Fe=Sh(Pe*8),me=Fe>>3,we=0;we>>0]=_t}return Hk(R,Pe,Fe,q)})}var qp=[];function rb(R,q,le){qp.length=q;for(var Ne=le>>3,Pe=0;Pe>>0];var Fe=R<0,me=Fe?rh[-R-1]:hb[R];return me.apply(null,qp)}function sb(R){try{return ue.grow(R-Me.byteLength+65535>>>16),lt(ue.buffer),1}catch(q){}}function ib(R){var q=i().length;if(R=R>>>0,R<=q)return!1;var le=ch();if(R>le)return!1;let Ne=(_t,ca)=>_t+(ca-_t%ca)%ca;for(var Pe=1;Pe<=4;Pe*=2){var Fe=q*(1+.2/Pe);Fe=Math.min(Fe,R+100663296);var me=Math.min(le,Ne(Math.max(R,Fe),65536)),we=sb(me);if(we)return!0}return!1}function ob(){throw"unwind"}function dh(R){return C?Jr(4,1,R):52}function hh(R,q,le,Ne,Pe){return C?Jr(5,1,R,q,le,Ne,Pe):70}var lb=[null,[],[]];function ub(R,q){var le=lb[R];q===0||q===10?((R===1?Z:J)(ht(le,0)),le.length=0):le.push(q)}function mh(R,q,le,Ne){if(C)return Jr(6,1,R,q,le,Ne);for(var Pe=0,Fe=0;Fe>>2],we=u()[q+4>>>2];q+=8;for(var _t=0;_t>>0]);Pe+=we}return u()[Ne>>>2]=Pe,0}function fh(R){var q=c["_"+R];return q}function pb(R,q){s().set(R,q>>>0)}function cb(R,q,le,Ne,Pe){var Fe={string:da=>{var Cl=0;if(da!=null&&da!==0){var Zk=(da.length<<2)+1;Cl=Sh(Zk),rt(da,Cl,Zk)}return Cl},array:da=>{var Cl=Sh(da.length);return pb(da,Cl),Cl}};function me(da){return q==="string"?st(da):q==="boolean"?!!da:da}var we=fh(R),_t=[],ca=0;if(Ne)for(var Nr=0;Nrme==="number"||me==="boolean"),Fe=q!=="string";return Fe&&Pe&&!Ne?fh(R):function(){return cb(R,q,le,arguments,Ne)}}Ae.init();var hb=[null,ih,lh,uh,dh,hh,mh],gh={__emscripten_init_main_thread_js:Gg,__emscripten_thread_cleanup:Hg,__pthread_create_js:ph,_emscripten_default_pthread_stack_size:qg,_emscripten_get_now_is_monotonic:Kg,_emscripten_notify_task_queue:Xg,_emscripten_set_offscreencanvas_size:Yg,abort:Zg,emscripten_check_blocking_allowed:Jg,emscripten_date_now:Qg,emscripten_get_heap_max:eb,emscripten_get_now:Hp,emscripten_memcpy_big:tb,emscripten_num_logical_cores:nb,emscripten_receive_on_main_thread_js:rb,emscripten_resize_heap:ib,emscripten_unwind_to_js_event_loop:ob,exit:oh,fd_close:dh,fd_seek:hh,fd_write:mh,memory:ue||c.wasmMemory},Uk=Rg(),mb=c.___wasm_call_ctors=function(){return(mb=c.___wasm_call_ctors=c.asm.__wasm_call_ctors).apply(null,arguments)},fb=c._init=function(){return(fb=c._init=c.asm.init).apply(null,arguments)},gb=c._init_with_threads_count=function(){return(gb=c._init_with_threads_count=c.asm.init_with_threads_count).apply(null,arguments)},bb=c._get_threads_count=function(){return(bb=c._get_threads_count=c.asm.get_threads_count).apply(null,arguments)},yb=c._register_tensor=function(){return(yb=c._register_tensor=c.asm.register_tensor).apply(null,arguments)},xb=c._dispose_data=function(){return(xb=c._dispose_data=c.asm.dispose_data).apply(null,arguments)},vb=c._dispose=function(){return(vb=c._dispose=c.asm.dispose).apply(null,arguments)},wb=c._Abs=function(){return(wb=c._Abs=c.asm.Abs).apply(null,arguments)},kb=c._Acos=function(){return(kb=c._Acos=c.asm.Acos).apply(null,arguments)},Ib=c._Acosh=function(){return(Ib=c._Acosh=c.asm.Acosh).apply(null,arguments)},Sb=c._Add=function(){return(Sb=c._Add=c.asm.Add).apply(null,arguments)},Nb=c._AddN=function(){return(Nb=c._AddN=c.asm.AddN).apply(null,arguments)},Tb=c._All=function(){return(Tb=c._All=c.asm.All).apply(null,arguments)},Cb=c._Any=function(){return(Cb=c._Any=c.asm.Any).apply(null,arguments)},_b=c._ArgMax=function(){return(_b=c._ArgMax=c.asm.ArgMax).apply(null,arguments)},Eb=c._ArgMin=function(){return(Eb=c._ArgMin=c.asm.ArgMin).apply(null,arguments)},Ab=c._Asin=function(){return(Ab=c._Asin=c.asm.Asin).apply(null,arguments)},Fb=c._Asinh=function(){return(Fb=c._Asinh=c.asm.Asinh).apply(null,arguments)},$b=c._Atan=function(){return($b=c._Atan=c.asm.Atan).apply(null,arguments)},Db=c._Atan2=function(){return(Db=c._Atan2=c.asm.Atan2).apply(null,arguments)},Rb=c._Atanh=function(){return(Rb=c._Atanh=c.asm.Atanh).apply(null,arguments)},Mb=c._AvgPool=function(){return(Mb=c._AvgPool=c.asm.AvgPool).apply(null,arguments)},Pb=c._AvgPool3D=function(){return(Pb=c._AvgPool3D=c.asm.AvgPool3D).apply(null,arguments)},Ob=c._AvgPool3DGrad=function(){return(Ob=c._AvgPool3DGrad=c.asm.AvgPool3DGrad).apply(null,arguments)},Lb=c._BatchMatMul=function(){return(Lb=c._BatchMatMul=c.asm.BatchMatMul).apply(null,arguments)},zb=c._Bincount=function(){return(zb=c._Bincount=c.asm.Bincount).apply(null,arguments)},Wb=c._Ceil=function(){return(Wb=c._Ceil=c.asm.Ceil).apply(null,arguments)},Bb=c._ClipByValue=function(){return(Bb=c._ClipByValue=c.asm.ClipByValue).apply(null,arguments)},Vb=c._Conv2D=function(){return(Vb=c._Conv2D=c.asm.Conv2D).apply(null,arguments)},Ub=c._Conv2DBackpropInput=function(){return(Ub=c._Conv2DBackpropInput=c.asm.Conv2DBackpropInput).apply(null,arguments)},Gb=c._Conv3D=function(){return(Gb=c._Conv3D=c.asm.Conv3D).apply(null,arguments)},Hb=c._Conv3DBackpropFilterV2=function(){return(Hb=c._Conv3DBackpropFilterV2=c.asm.Conv3DBackpropFilterV2).apply(null,arguments)},qb=c._Conv3DBackpropInputV2=function(){return(qb=c._Conv3DBackpropInputV2=c.asm.Conv3DBackpropInputV2).apply(null,arguments)},jb=c._Cos=function(){return(jb=c._Cos=c.asm.Cos).apply(null,arguments)},Kb=c._Cosh=function(){return(Kb=c._Cosh=c.asm.Cosh).apply(null,arguments)},Xb=c._CropAndResize=function(){return(Xb=c._CropAndResize=c.asm.CropAndResize).apply(null,arguments)},Yb=c._Cumprod=function(){return(Yb=c._Cumprod=c.asm.Cumprod).apply(null,arguments)},Zb=c._Cumsum=function(){return(Zb=c._Cumsum=c.asm.Cumsum).apply(null,arguments)},Jb=c._DenseBincount=function(){return(Jb=c._DenseBincount=c.asm.DenseBincount).apply(null,arguments)},Qb=c._DepthToSpace=function(){return(Qb=c._DepthToSpace=c.asm.DepthToSpace).apply(null,arguments)},ey=c._DepthwiseConv2dNative=function(){return(ey=c._DepthwiseConv2dNative=c.asm.DepthwiseConv2dNative).apply(null,arguments)},ty=c._Diag=function(){return(ty=c._Diag=c.asm.Diag).apply(null,arguments)},ny=c._Dilation2D=function(){return(ny=c._Dilation2D=c.asm.Dilation2D).apply(null,arguments)},ay=c._Dilation2DBackpropFilter=function(){return(ay=c._Dilation2DBackpropFilter=c.asm.Dilation2DBackpropFilter).apply(null,arguments)},ry=c._Dilation2DBackpropInput=function(){return(ry=c._Dilation2DBackpropInput=c.asm.Dilation2DBackpropInput).apply(null,arguments)},sy=c._Elu=function(){return(sy=c._Elu=c.asm.Elu).apply(null,arguments)},iy=c._EluGrad=function(){return(iy=c._EluGrad=c.asm.EluGrad).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)},uy=c._Expm1=function(){return(uy=c._Expm1=c.asm.Expm1).apply(null,arguments)},py=c._FlipLeftRight=function(){return(py=c._FlipLeftRight=c.asm.FlipLeftRight).apply(null,arguments)},cy=c._Floor=function(){return(cy=c._Floor=c.asm.Floor).apply(null,arguments)},dy=c._FloorDiv=function(){return(dy=c._FloorDiv=c.asm.FloorDiv).apply(null,arguments)},hy=c._FusedBatchNorm=function(){return(hy=c._FusedBatchNorm=c.asm.FusedBatchNorm).apply(null,arguments)},my=c._FusedConv2D=function(){return(my=c._FusedConv2D=c.asm.FusedConv2D).apply(null,arguments)},fy=c._FusedDepthwiseConv2D=function(){return(fy=c._FusedDepthwiseConv2D=c.asm.FusedDepthwiseConv2D).apply(null,arguments)},gy=c._Gather=function(){return(gy=c._Gather=c.asm.Gather).apply(null,arguments)},by=c._GatherNd=function(){return(by=c._GatherNd=c.asm.GatherNd).apply(null,arguments)},yy=c._Greater=function(){return(yy=c._Greater=c.asm.Greater).apply(null,arguments)},xy=c._GreaterEqual=function(){return(xy=c._GreaterEqual=c.asm.GreaterEqual).apply(null,arguments)},vy=c._IsFinite=function(){return(vy=c._IsFinite=c.asm.IsFinite).apply(null,arguments)},wy=c._IsInf=function(){return(wy=c._IsInf=c.asm.IsInf).apply(null,arguments)},ky=c._IsNan=function(){return(ky=c._IsNan=c.asm.IsNan).apply(null,arguments)},Iy=c._LRN=function(){return(Iy=c._LRN=c.asm.LRN).apply(null,arguments)},Sy=c._LRNGrad=function(){return(Sy=c._LRNGrad=c.asm.LRNGrad).apply(null,arguments)},Ny=c._LeakyRelu=function(){return(Ny=c._LeakyRelu=c.asm.LeakyRelu).apply(null,arguments)},Ty=c._Less=function(){return(Ty=c._Less=c.asm.Less).apply(null,arguments)},Cy=c._LessEqual=function(){return(Cy=c._LessEqual=c.asm.LessEqual).apply(null,arguments)},_y=c._LinSpace=function(){return(_y=c._LinSpace=c.asm.LinSpace).apply(null,arguments)},Ey=c._Log=function(){return(Ey=c._Log=c.asm.Log).apply(null,arguments)},Ay=c._Log1p=function(){return(Ay=c._Log1p=c.asm.Log1p).apply(null,arguments)},Fy=c._LogicalAnd=function(){return(Fy=c._LogicalAnd=c.asm.LogicalAnd).apply(null,arguments)},$y=c._LogicalNot=function(){return($y=c._LogicalNot=c.asm.LogicalNot).apply(null,arguments)},Dy=c._LogicalOr=function(){return(Dy=c._LogicalOr=c.asm.LogicalOr).apply(null,arguments)},Ry=c._LogicalXor=function(){return(Ry=c._LogicalXor=c.asm.LogicalXor).apply(null,arguments)},My=c._Max=function(){return(My=c._Max=c.asm.Max).apply(null,arguments)},Py=c._MaxPool=function(){return(Py=c._MaxPool=c.asm.MaxPool).apply(null,arguments)},Oy=c._MaxPool3D=function(){return(Oy=c._MaxPool3D=c.asm.MaxPool3D).apply(null,arguments)},Ly=c._MaxPool3DGrad=function(){return(Ly=c._MaxPool3DGrad=c.asm.MaxPool3DGrad).apply(null,arguments)},zy=c._Maximum=function(){return(zy=c._Maximum=c.asm.Maximum).apply(null,arguments)},Wy=c._Mean=function(){return(Wy=c._Mean=c.asm.Mean).apply(null,arguments)},By=c._Min=function(){return(By=c._Min=c.asm.Min).apply(null,arguments)},Vy=c._Minimum=function(){return(Vy=c._Minimum=c.asm.Minimum).apply(null,arguments)},Uy=c._MirrorPad=function(){return(Uy=c._MirrorPad=c.asm.MirrorPad).apply(null,arguments)},Gy=c._Multinomial=function(){return(Gy=c._Multinomial=c.asm.Multinomial).apply(null,arguments)},Hy=c._Multiply=function(){return(Hy=c._Multiply=c.asm.Multiply).apply(null,arguments)},qy=c._Neg=function(){return(qy=c._Neg=c.asm.Neg).apply(null,arguments)},jy=c._NonMaxSuppressionV3=function(){return(jy=c._NonMaxSuppressionV3=c.asm.NonMaxSuppressionV3).apply(null,arguments)},bh=c._NonMaxSuppressionV4=function(){return(bh=c._NonMaxSuppressionV4=c.asm.NonMaxSuppressionV4).apply(null,arguments)},yh=c._NonMaxSuppressionV5=function(){return(yh=c._NonMaxSuppressionV5=c.asm.NonMaxSuppressionV5).apply(null,arguments)},jp=c._NotEqual=function(){return(jp=c._NotEqual=c.asm.NotEqual).apply(null,arguments)},Ky=c._OneHot=function(){return(Ky=c._OneHot=c.asm.OneHot).apply(null,arguments)},Xy=c._PadV2=function(){return(Xy=c._PadV2=c.asm.PadV2).apply(null,arguments)},Sl=c._Pow=function(){return(Sl=c._Pow=c.asm.Pow).apply(null,arguments)},xh=c._Prelu=function(){return(xh=c._Prelu=c.asm.Prelu).apply(null,arguments)},Nl=c._Prod=function(){return(Nl=c._Prod=c.asm.Prod).apply(null,arguments)},Tl=c._RealDiv=function(){return(Tl=c._RealDiv=c.asm.RealDiv).apply(null,arguments)},Yy=c._Reciprocal=function(){return(Yy=c._Reciprocal=c.asm.Reciprocal).apply(null,arguments)},Y=c._Relu=function(){return(Y=c._Relu=c.asm.Relu).apply(null,arguments)},oe=c._Relu6=function(){return(oe=c._Relu6=c.asm.Relu6).apply(null,arguments)},Ie=c._ResizeBilinear=function(){return(Ie=c._ResizeBilinear=c.asm.ResizeBilinear).apply(null,arguments)},Xe=c._ResizeBilinearGrad=function(){return(Xe=c._ResizeBilinearGrad=c.asm.ResizeBilinearGrad).apply(null,arguments)},It=c._ResizeNearestNeighbor=function(){return(It=c._ResizeNearestNeighbor=c.asm.ResizeNearestNeighbor).apply(null,arguments)},St=c._ResizeNearestNeighborGrad=function(){return(St=c._ResizeNearestNeighborGrad=c.asm.ResizeNearestNeighborGrad).apply(null,arguments)},He=c._Reverse=function(){return(He=c._Reverse=c.asm.Reverse).apply(null,arguments)},Ve=c._RotateWithOffset=function(){return(Ve=c._RotateWithOffset=c.asm.RotateWithOffset).apply(null,arguments)},zt=c._Round=function(){return(zt=c._Round=c.asm.Round).apply(null,arguments)},pa=c._Rsqrt=function(){return(pa=c._Rsqrt=c.asm.Rsqrt).apply(null,arguments)},Sr=c._ScatterNd=function(){return(Sr=c._ScatterNd=c.asm.ScatterNd).apply(null,arguments)},vh=c._SearchSorted=function(){return(vh=c._SearchSorted=c.asm.SearchSorted).apply(null,arguments)},Kp=c._SelectV2=function(){return(Kp=c._SelectV2=c.asm.SelectV2).apply(null,arguments)},Zy=c._Selu=function(){return(Zy=c._Selu=c.asm.Selu).apply(null,arguments)},Mn=c._Sigmoid=function(){return(Mn=c._Sigmoid=c.asm.Sigmoid).apply(null,arguments)},Qr=c._Sign=function(){return(Qr=c._Sign=c.asm.Sign).apply(null,arguments)},wh=c._Sin=function(){return(wh=c._Sin=c.asm.Sin).apply(null,arguments)},rD=c._Softmax=function(){return(rD=c._Softmax=c.asm.Softmax).apply(null,arguments)},sD=c._Softplus=function(){return(sD=c._Softplus=c.asm.Softplus).apply(null,arguments)},iD=c._SparseFillEmptyRows=function(){return(iD=c._SparseFillEmptyRows=c.asm.SparseFillEmptyRows).apply(null,arguments)},oD=c._SparseReshape=function(){return(oD=c._SparseReshape=c.asm.SparseReshape).apply(null,arguments)},lD=c._SparseSegmentReduction=function(){return(lD=c._SparseSegmentReduction=c.asm.SparseSegmentReduction).apply(null,arguments)},uD=c._SparseToDense=function(){return(uD=c._SparseToDense=c.asm.SparseToDense).apply(null,arguments)},pD=c._Sqrt=function(){return(pD=c._Sqrt=c.asm.Sqrt).apply(null,arguments)},cD=c._Square=function(){return(cD=c._Square=c.asm.Square).apply(null,arguments)},dD=c._SquaredDifference=function(){return(dD=c._SquaredDifference=c.asm.SquaredDifference).apply(null,arguments)},hD=c._Step=function(){return(hD=c._Step=c.asm.Step).apply(null,arguments)},mD=c._StridedSlice=function(){return(mD=c._StridedSlice=c.asm.StridedSlice).apply(null,arguments)},fD=c._Sub=function(){return(fD=c._Sub=c.asm.Sub).apply(null,arguments)},gD=c._Sum=function(){return(gD=c._Sum=c.asm.Sum).apply(null,arguments)},bD=c._Tan=function(){return(bD=c._Tan=c.asm.Tan).apply(null,arguments)},yD=c._Tanh=function(){return(yD=c._Tanh=c.asm.Tanh).apply(null,arguments)},xD=c._TensorScatterUpdate=function(){return(xD=c._TensorScatterUpdate=c.asm.TensorScatterUpdate).apply(null,arguments)},vD=c._Tile=function(){return(vD=c._Tile=c.asm.Tile).apply(null,arguments)},wD=c._TopK=function(){return(wD=c._TopK=c.asm.TopK).apply(null,arguments)},kD=c._Transform=function(){return(kD=c._Transform=c.asm.Transform).apply(null,arguments)},ID=c._Transpose=function(){return(ID=c._Transpose=c.asm.Transpose).apply(null,arguments)},SD=c.__FusedMatMul=function(){return(SD=c.__FusedMatMul=c.asm._FusedMatMul).apply(null,arguments)},ND=c._malloc=function(){return(ND=c._malloc=c.asm.malloc).apply(null,arguments)},TD=c._free=function(){return(TD=c._free=c.asm.free).apply(null,arguments)},CD=c.__emscripten_tls_init=function(){return(CD=c.__emscripten_tls_init=c.asm._emscripten_tls_init).apply(null,arguments)},kh=c._pthread_self=function(){return(kh=c._pthread_self=c.asm.pthread_self).apply(null,arguments)},_D=c.___errno_location=function(){return(_D=c.___errno_location=c.asm.__errno_location).apply(null,arguments)},Gk=c.__emscripten_thread_init=function(){return(Gk=c.__emscripten_thread_init=c.asm._emscripten_thread_init).apply(null,arguments)},ED=c.__emscripten_thread_crashed=function(){return(ED=c.__emscripten_thread_crashed=c.asm._emscripten_thread_crashed).apply(null,arguments)},AD=c._emscripten_main_thread_process_queued_calls=function(){return(AD=c._emscripten_main_thread_process_queued_calls=c.asm.emscripten_main_thread_process_queued_calls).apply(null,arguments)},FD=c._emscripten_main_browser_thread_id=function(){return(FD=c._emscripten_main_browser_thread_id=c.asm.emscripten_main_browser_thread_id).apply(null,arguments)},Hk=c._emscripten_run_in_main_runtime_thread_js=function(){return(Hk=c._emscripten_run_in_main_runtime_thread_js=c.asm.emscripten_run_in_main_runtime_thread_js).apply(null,arguments)},$D=c._emscripten_dispatch_to_thread_=function(){return($D=c._emscripten_dispatch_to_thread_=c.asm.emscripten_dispatch_to_thread_).apply(null,arguments)},qk=c.__emscripten_proxy_execute_task_queue=function(){return(qk=c.__emscripten_proxy_execute_task_queue=c.asm._emscripten_proxy_execute_task_queue).apply(null,arguments)},Jy=c.__emscripten_thread_free_data=function(){return(Jy=c.__emscripten_thread_free_data=c.asm._emscripten_thread_free_data).apply(null,arguments)},jk=c.__emscripten_thread_exit=function(){return(jk=c.__emscripten_thread_exit=c.asm._emscripten_thread_exit).apply(null,arguments)},Kk=c._emscripten_stack_set_limits=function(){return(Kk=c._emscripten_stack_set_limits=c.asm.emscripten_stack_set_limits).apply(null,arguments)},Qy=c.stackSave=function(){return(Qy=c.stackSave=c.asm.stackSave).apply(null,arguments)},Ih=c.stackRestore=function(){return(Ih=c.stackRestore=c.asm.stackRestore).apply(null,arguments)},Sh=c.stackAlloc=function(){return(Sh=c.stackAlloc=c.asm.stackAlloc).apply(null,arguments)},DD=c.dynCall_iijjiiii=function(){return(DD=c.dynCall_iijjiiii=c.asm.dynCall_iijjiiii).apply(null,arguments)},RD=c.dynCall_jiji=function(){return(RD=c.dynCall_jiji=c.asm.dynCall_jiji).apply(null,arguments)};c.keepRuntimeAlive=Na,c.wasmMemory=ue,c.cwrap=db,c.ExitStatus=Us,c.PThread=Ae;var Nh;Ir=function R(){Nh||Xk(),Nh||(Ir=R)};function Xk(R){if(R=R||b,Zr>0)return;if(C){h(c),Jt(),startWorker(c);return}if(Yr(),Zr>0)return;function q(){Nh||(Nh=!0,c.calledRun=!0,!ke&&(Jt(),h(c),c.onRuntimeInitialized&&c.onRuntimeInitialized(),eh()))}c.setStatus?(c.setStatus("Running..."),setTimeout(function(){setTimeout(function(){c.setStatus("")},1),q()},1)):q()}if(c.preInit)for(typeof c.preInit=="function"&&(c.preInit=[c.preInit]);c.preInit.length>0;)c.preInit.pop()();Xk();var Th;f&&(Th={uncaughtException:process.listeners("uncaughtException").filter(function(R){return!f.uncaughtException.indexOf(R)>-1}),unhandledRejection:process.listeners("unhandledRejection").filter(function(R){return!f.unhandledRejection.indexOf(R)>-1})});var Ch;if(typeof WasmBackendModule!="undefined")Ch=WasmBackendModule;else if(typeof r!="undefined")Ch=r;else throw new Error("Could not find wasm module in post.js");if(Th){var MD=Ch._dispose;Ch._dispose=function(){MD(),Th.uncaughtException.forEach(function(R){process.removeListener("uncaughtException",R)}),Th.unhandledRejection.forEach(function(R){process.removeListener("unhandledRejection",R)})}}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)}),pR=Gt((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")+"//# sourceURL="+f)},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.startWorker=instance=>{Module=instance;postMessage({"cmd":"loaded"})};self.onmessage=e=>{try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;for(const handler of e.data.handlers){Module[handler]=function(){postMessage({cmd:"callHandler",handler:handler,args:[...arguments]})}}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)}else if(e.data.cmd==="run"){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}};`}),cR=Gt((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(Y,oe){i=Y,o=oe});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=(Y,oe)=>{throw oe},h=typeof window=="object",m=typeof importScripts=="function",f=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",g="";function b(Y){return s.locateFile?s.locateFile(Y,g):g+Y}var y,x,w,I;function T(Y){Y instanceof wl||D("exiting due to exception: "+Y)}if(f){var C=bv(),E=MS();m?g=E.dirname(g)+"/":g=__dirname+"/",y=(Y,oe)=>(Y=Yr(Y)?new URL(Y):E.normalize(Y),C.readFileSync(Y,oe?void 0:"utf8")),w=Y=>{var oe=y(Y,!0);return oe.buffer||(oe=new Uint8Array(oe)),oe},x=(Y,oe,Ie)=>{Y=Yr(Y)?new URL(Y):E.normalize(Y),C.readFile(Y,function(Xe,It){Xe?Ie(Xe):oe(It.buffer)})},process.argv.length>1&&(d=process.argv[1].replace(/\\/g,"/")),p=process.argv.slice(2),process.on("uncaughtException",function(Y){if(!(Y instanceof wl))throw Y}),process.on("unhandledRejection",function(Y){throw Y}),c=(Y,oe)=>{if(jn())throw process.exitCode=Y,oe;T(oe),process.exit(Y)},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="",y=Y=>{var oe=new XMLHttpRequest;return oe.open("GET",Y,!1),oe.send(null),oe.responseText},m&&(w=Y=>{var oe=new XMLHttpRequest;return oe.open("GET",Y,!1),oe.responseType="arraybuffer",oe.send(null),new Uint8Array(oe.response)}),x=(Y,oe,Ie)=>{var Xe=new XMLHttpRequest;Xe.open("GET",Y,!0),Xe.responseType="arraybuffer",Xe.onload=()=>{if(Xe.status==200||Xe.status==0&&Xe.response){oe(Xe.response);return}Ie()},Xe.onerror=Ie,Xe.send(null)},I=Y=>document.title=Y);var F=s.print||console.log.bind(console),D=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 $=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,H;function j(Y,oe){Y||tr(oe)}var K=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function Z(Y,oe,Ie){oe>>>=0;for(var Xe=oe+Ie,It=oe;Y[It]&&!(It>=Xe);)++It;if(It-oe>16&&Y.buffer&&K)return K.decode(Y.subarray(oe,It));for(var St="";oe>10,56320|pa&1023)}}return St}function J(Y,oe){return Y>>>=0,Y?Z(se,Y,oe):""}function ee(Y,oe,Ie,Xe){if(Ie>>>=0,!(Xe>0))return 0;for(var It=Ie,St=Ie+Xe-1,He=0;He=55296&&Ve<=57343){var zt=Y.charCodeAt(++He);Ve=65536+((Ve&1023)<<10)|zt&1023}if(Ve<=127){if(Ie>=St)break;oe[Ie++>>>0]=Ve}else if(Ve<=2047){if(Ie+1>=St)break;oe[Ie++>>>0]=192|Ve>>6,oe[Ie++>>>0]=128|Ve&63}else if(Ve<=65535){if(Ie+2>=St)break;oe[Ie++>>>0]=224|Ve>>12,oe[Ie++>>>0]=128|Ve>>6&63,oe[Ie++>>>0]=128|Ve&63}else{if(Ie+3>=St)break;oe[Ie++>>>0]=240|Ve>>18,oe[Ie++>>>0]=128|Ve>>12&63,oe[Ie++>>>0]=128|Ve>>6&63,oe[Ie++>>>0]=128|Ve&63}}return oe[Ie>>>0]=0,Ie-It}function ae(Y,oe,Ie){return ee(Y,se,oe,Ie)}var te,re,se,ye,ue,be,ke,Se,We;function Ge(Y){te=Y,s.HEAP8=re=new Int8Array(Y),s.HEAP16=ye=new Int16Array(Y),s.HEAP32=be=new Int32Array(Y),s.HEAPU8=se=new Uint8Array(Y),s.HEAPU16=ue=new Uint16Array(Y),s.HEAPU32=ke=new Uint32Array(Y),s.HEAPF32=Se=new Float32Array(Y),s.HEAPF64=We=new Float64Array(Y)}var ht=s.INITIAL_MEMORY||16777216,st,at=[],rt=[],Me=[],ft=!1;function jn(){return M}function Lt(){if(s.preRun)for(typeof s.preRun=="function"&&(s.preRun=[s.preRun]);s.preRun.length;)$n(s.preRun.shift());Ir(at)}function la(){ft=!0,Ir(rt)}function cn(){if(s.postRun)for(typeof s.postRun=="function"&&(s.postRun=[s.postRun]);s.postRun.length;)Dn(s.postRun.shift());Ir(Me)}function $n(Y){at.unshift(Y)}function ua(Y){rt.unshift(Y)}function Dn(Y){Me.unshift(Y)}var lt=0,Rn=null,Kn=null;function kr(Y){lt++,s.monitorRunDependencies&&s.monitorRunDependencies(lt)}function vl(Y){if(lt--,s.monitorRunDependencies&&s.monitorRunDependencies(lt),lt==0&&(Rn!==null&&(clearInterval(Rn),Rn=null),Kn)){var oe=Kn;Kn=null,oe()}}function tr(Y){s.onAbort&&s.onAbort(Y),Y="Aborted("+Y+")",D(Y),U=!0,H=1,Y+=". Build with -sASSERTIONS for more info.";var oe=new WebAssembly.RuntimeError(Y);throw o(oe),oe}var Bp="data:application/octet-stream;base64,";function Na(Y){return Y.startsWith(Bp)}function Yr(Y){return Y.startsWith("file://")}var Jt;Jt="tfjs-backend-wasm.wasm",Na(Jt)||(Jt=b(Jt));function eh(Y){try{if(Y==Jt&&S)return new Uint8Array(S);if(w)return w(Y);throw"both async and sync fetching of the wasm failed"}catch(oe){tr(oe)}}function Eg(){if(!S&&(h||m)){if(typeof fetch=="function"&&!Yr(Jt))return fetch(Jt,{credentials:"same-origin"}).then(function(Y){if(!Y.ok)throw"failed to load wasm binary file at '"+Jt+"'";return Y.arrayBuffer()}).catch(function(){return eh(Jt)});if(x)return new Promise(function(Y,oe){x(Jt,function(Ie){Y(new Uint8Array(Ie))},oe)})}return Promise.resolve().then(function(){return eh(Jt)})}function Ag(){var Y={env:Vp,wasi_snapshot_preview1:Vp};function oe(He,Ve){var zt=He.exports;s.asm=zt,B=s.asm.memory,Ge(B.buffer),st=s.asm.__indirect_function_table,ua(s.asm.__wasm_call_ctors),vl("wasm-instantiate")}kr("wasm-instantiate");function Ie(He){oe(He.instance)}function Xe(He){return Eg().then(function(Ve){return WebAssembly.instantiate(Ve,Y)}).then(function(Ve){return Ve}).then(He,function(Ve){D("failed to asynchronously prepare wasm: "+Ve),tr(Ve)})}function It(){return!S&&typeof WebAssembly.instantiateStreaming=="function"&&!Na(Jt)&&!Yr(Jt)&&!f&&typeof fetch=="function"?fetch(Jt,{credentials:"same-origin"}).then(function(He){var Ve=WebAssembly.instantiateStreaming(He,Y);return Ve.then(Ie,function(zt){return D("wasm streaming compile failed: "+zt),D("falling back to ArrayBuffer instantiation"),Xe(Ie)})}):Xe(Ie)}if(s.instantiateWasm)try{var St=s.instantiateWasm(Y,oe);return St}catch(He){D("Module.instantiateWasm callback failed with error: "+He),o(He)}return It().catch(o),{}}var Wk,Zr;function wl(Y){this.name="ExitStatus",this.message="Program terminated with exit("+Y+")",this.status=Y}function Ir(Y){for(;Y.length>0;)Y.shift()(s)}function Fg(){tr("")}function th(){return 4294901760}function Vs(){return th()}function $g(Y,oe,Ie){se.copyWithin(Y>>>0,oe>>>0,oe+Ie>>>0)}function nh(Y){try{return B.grow(Y-te.byteLength+65535>>>16),Ge(B.buffer),1}catch(oe){}}function kl(Y){var oe=se.length;Y=Y>>>0;var Ie=th();if(Y>Ie)return!1;let Xe=(zt,pa)=>zt+(pa-zt%pa)%pa;for(var It=1;It<=4;It*=2){var St=oe*(1+.2/It);St=Math.min(St,Y+100663296);var He=Math.min(Ie,Xe(Math.max(Y,St),65536)),Ve=nh(He);if(Ve)return!0}return!1}var gn={varargs:void 0,get:function(){gn.varargs+=4;var Y=be[gn.varargs-4>>>2];return Y},getStr:function(Y){var oe=J(Y);return oe}};function ah(Y){return 52}function Dg(Y,oe,Ie,Xe,It){return 70}var Rg=[null,[],[]];function Bk(Y,oe){var Ie=Rg[Y];oe===0||oe===10?((Y===1?F:D)(Z(Ie,0)),Ie.length=0):Ie.push(oe)}function Vk(Y,oe,Ie,Xe){for(var It=0,St=0;St>>2],Ve=ke[oe+4>>>2];oe+=8;for(var zt=0;zt>>0]);It+=Ve}return ke[Xe>>>2]=It,0}function rh(Y){var oe=s["_"+Y];return oe}function Us(Y,oe){re.set(Y,oe>>>0)}function Mg(Y,oe,Ie,Xe,It){var St={string:Mn=>{var Qr=0;if(Mn!=null&&Mn!==0){var wh=(Mn.length<<2)+1;Qr=jp(wh),ae(Mn,Qr,wh)}return Qr},array:Mn=>{var Qr=jp(Mn.length);return Us(Mn,Qr),Qr}};function He(Mn){return oe==="string"?J(Mn):oe==="boolean"?!!Mn:Mn}var Ve=rh(Y),zt=[],pa=0;if(Xe)for(var Sr=0;SrHe==="number"||He==="boolean"),St=oe!=="string";return St&&It&&!Xe?rh(Y):function(){return Mg(Y,oe,Ie,arguments,Xe)}}var Vp={abort:Fg,emscripten_get_heap_max:Vs,emscripten_memcpy_big:$g,emscripten_resize_heap:kl,fd_close:ah,fd_seek:Dg,fd_write:Vk},Og=Ag(),sh=s.___wasm_call_ctors=function(){return(sh=s.___wasm_call_ctors=s.asm.__wasm_call_ctors).apply(null,arguments)},ih=s._init=function(){return(ih=s._init=s.asm.init).apply(null,arguments)},Lg=s._init_with_threads_count=function(){return(Lg=s._init_with_threads_count=s.asm.init_with_threads_count).apply(null,arguments)},oh=s._get_threads_count=function(){return(oh=s._get_threads_count=s.asm.get_threads_count).apply(null,arguments)},zg=s._register_tensor=function(){return(zg=s._register_tensor=s.asm.register_tensor).apply(null,arguments)},Ae=s._dispose_data=function(){return(Ae=s._dispose_data=s.asm.dispose_data).apply(null,arguments)},Up=s._dispose=function(){return(Up=s._dispose=s.asm.dispose).apply(null,arguments)},Wg=s._Abs=function(){return(Wg=s._Abs=s.asm.Abs).apply(null,arguments)},lh=s._Acos=function(){return(lh=s._Acos=s.asm.Acos).apply(null,arguments)},Il=s._Acosh=function(){return(Il=s._Acosh=s.asm.Acosh).apply(null,arguments)},Bg=s._Add=function(){return(Bg=s._Add=s.asm.Add).apply(null,arguments)},Vg=s._AddN=function(){return(Vg=s._AddN=s.asm.AddN).apply(null,arguments)},Ug=s._All=function(){return(Ug=s._All=s.asm.All).apply(null,arguments)},Gg=s._Any=function(){return(Gg=s._Any=s.asm.Any).apply(null,arguments)},Hg=s._ArgMax=function(){return(Hg=s._ArgMax=s.asm.ArgMax).apply(null,arguments)},uh=s._ArgMin=function(){return(uh=s._ArgMin=s.asm.ArgMin).apply(null,arguments)},ph=s._Asin=function(){return(ph=s._Asin=s.asm.Asin).apply(null,arguments)},qg=s._Asinh=function(){return(qg=s._Asinh=s.asm.Asinh).apply(null,arguments)},jg=s._Atan=function(){return(jg=s._Atan=s.asm.Atan).apply(null,arguments)},Kg=s._Atan2=function(){return(Kg=s._Atan2=s.asm.Atan2).apply(null,arguments)},Gp=s._Atanh=function(){return(Gp=s._Atanh=s.asm.Atanh).apply(null,arguments)},Xg=s._AvgPool=function(){return(Xg=s._AvgPool=s.asm.AvgPool).apply(null,arguments)},Yg=s._AvgPool3D=function(){return(Yg=s._AvgPool3D=s.asm.AvgPool3D).apply(null,arguments)},Zg=s._AvgPool3DGrad=function(){return(Zg=s._AvgPool3DGrad=s.asm.AvgPool3DGrad).apply(null,arguments)},Gs=s._BatchMatMul=function(){return(Gs=s._BatchMatMul=s.asm.BatchMatMul).apply(null,arguments)},Jg=s._Bincount=function(){return(Jg=s._Bincount=s.asm.Bincount).apply(null,arguments)},Qg=s._Ceil=function(){return(Qg=s._Ceil=s.asm.Ceil).apply(null,arguments)},ch=s._ClipByValue=function(){return(ch=s._ClipByValue=s.asm.ClipByValue).apply(null,arguments)},eb=s._Conv2D=function(){return(eb=s._Conv2D=s.asm.Conv2D).apply(null,arguments)},Hp=s._Conv2DBackpropInput=function(){return(Hp=s._Conv2DBackpropInput=s.asm.Conv2DBackpropInput).apply(null,arguments)},tb=s._Conv3D=function(){return(tb=s._Conv3D=s.asm.Conv3D).apply(null,arguments)},nb=s._Conv3DBackpropFilterV2=function(){return(nb=s._Conv3DBackpropFilterV2=s.asm.Conv3DBackpropFilterV2).apply(null,arguments)},ab=s._Conv3DBackpropInputV2=function(){return(ab=s._Conv3DBackpropInputV2=s.asm.Conv3DBackpropInputV2).apply(null,arguments)},Jr=s._Cos=function(){return(Jr=s._Cos=s.asm.Cos).apply(null,arguments)},qp=s._Cosh=function(){return(qp=s._Cosh=s.asm.Cosh).apply(null,arguments)},rb=s._CropAndResize=function(){return(rb=s._CropAndResize=s.asm.CropAndResize).apply(null,arguments)},sb=s._Cumprod=function(){return(sb=s._Cumprod=s.asm.Cumprod).apply(null,arguments)},ib=s._Cumsum=function(){return(ib=s._Cumsum=s.asm.Cumsum).apply(null,arguments)},ob=s._DenseBincount=function(){return(ob=s._DenseBincount=s.asm.DenseBincount).apply(null,arguments)},dh=s._DepthToSpace=function(){return(dh=s._DepthToSpace=s.asm.DepthToSpace).apply(null,arguments)},hh=s._DepthwiseConv2dNative=function(){return(hh=s._DepthwiseConv2dNative=s.asm.DepthwiseConv2dNative).apply(null,arguments)},lb=s._Diag=function(){return(lb=s._Diag=s.asm.Diag).apply(null,arguments)},ub=s._Dilation2D=function(){return(ub=s._Dilation2D=s.asm.Dilation2D).apply(null,arguments)},mh=s._Dilation2DBackpropFilter=function(){return(mh=s._Dilation2DBackpropFilter=s.asm.Dilation2DBackpropFilter).apply(null,arguments)},fh=s._Dilation2DBackpropInput=function(){return(fh=s._Dilation2DBackpropInput=s.asm.Dilation2DBackpropInput).apply(null,arguments)},pb=s._Elu=function(){return(pb=s._Elu=s.asm.Elu).apply(null,arguments)},cb=s._EluGrad=function(){return(cb=s._EluGrad=s.asm.EluGrad).apply(null,arguments)},db=s._Equal=function(){return(db=s._Equal=s.asm.Equal).apply(null,arguments)},hb=s._Exp=function(){return(hb=s._Exp=s.asm.Exp).apply(null,arguments)},gh=s._Expm1=function(){return(gh=s._Expm1=s.asm.Expm1).apply(null,arguments)},Uk=s._FlipLeftRight=function(){return(Uk=s._FlipLeftRight=s.asm.FlipLeftRight).apply(null,arguments)},mb=s._Floor=function(){return(mb=s._Floor=s.asm.Floor).apply(null,arguments)},fb=s._FloorDiv=function(){return(fb=s._FloorDiv=s.asm.FloorDiv).apply(null,arguments)},gb=s._FusedBatchNorm=function(){return(gb=s._FusedBatchNorm=s.asm.FusedBatchNorm).apply(null,arguments)},bb=s._FusedConv2D=function(){return(bb=s._FusedConv2D=s.asm.FusedConv2D).apply(null,arguments)},yb=s._FusedDepthwiseConv2D=function(){return(yb=s._FusedDepthwiseConv2D=s.asm.FusedDepthwiseConv2D).apply(null,arguments)},xb=s._Gather=function(){return(xb=s._Gather=s.asm.Gather).apply(null,arguments)},vb=s._GatherNd=function(){return(vb=s._GatherNd=s.asm.GatherNd).apply(null,arguments)},wb=s._Greater=function(){return(wb=s._Greater=s.asm.Greater).apply(null,arguments)},kb=s._GreaterEqual=function(){return(kb=s._GreaterEqual=s.asm.GreaterEqual).apply(null,arguments)},Ib=s._IsFinite=function(){return(Ib=s._IsFinite=s.asm.IsFinite).apply(null,arguments)},Sb=s._IsInf=function(){return(Sb=s._IsInf=s.asm.IsInf).apply(null,arguments)},Nb=s._IsNan=function(){return(Nb=s._IsNan=s.asm.IsNan).apply(null,arguments)},Tb=s._LRN=function(){return(Tb=s._LRN=s.asm.LRN).apply(null,arguments)},Cb=s._LRNGrad=function(){return(Cb=s._LRNGrad=s.asm.LRNGrad).apply(null,arguments)},_b=s._LeakyRelu=function(){return(_b=s._LeakyRelu=s.asm.LeakyRelu).apply(null,arguments)},Eb=s._Less=function(){return(Eb=s._Less=s.asm.Less).apply(null,arguments)},Ab=s._LessEqual=function(){return(Ab=s._LessEqual=s.asm.LessEqual).apply(null,arguments)},Fb=s._LinSpace=function(){return(Fb=s._LinSpace=s.asm.LinSpace).apply(null,arguments)},$b=s._Log=function(){return($b=s._Log=s.asm.Log).apply(null,arguments)},Db=s._Log1p=function(){return(Db=s._Log1p=s.asm.Log1p).apply(null,arguments)},Rb=s._LogicalAnd=function(){return(Rb=s._LogicalAnd=s.asm.LogicalAnd).apply(null,arguments)},Mb=s._LogicalNot=function(){return(Mb=s._LogicalNot=s.asm.LogicalNot).apply(null,arguments)},Pb=s._LogicalOr=function(){return(Pb=s._LogicalOr=s.asm.LogicalOr).apply(null,arguments)},Ob=s._LogicalXor=function(){return(Ob=s._LogicalXor=s.asm.LogicalXor).apply(null,arguments)},Lb=s._Max=function(){return(Lb=s._Max=s.asm.Max).apply(null,arguments)},zb=s._MaxPool=function(){return(zb=s._MaxPool=s.asm.MaxPool).apply(null,arguments)},Wb=s._MaxPool3D=function(){return(Wb=s._MaxPool3D=s.asm.MaxPool3D).apply(null,arguments)},Bb=s._MaxPool3DGrad=function(){return(Bb=s._MaxPool3DGrad=s.asm.MaxPool3DGrad).apply(null,arguments)},Vb=s._Maximum=function(){return(Vb=s._Maximum=s.asm.Maximum).apply(null,arguments)},Ub=s._Mean=function(){return(Ub=s._Mean=s.asm.Mean).apply(null,arguments)},Gb=s._Min=function(){return(Gb=s._Min=s.asm.Min).apply(null,arguments)},Hb=s._Minimum=function(){return(Hb=s._Minimum=s.asm.Minimum).apply(null,arguments)},qb=s._MirrorPad=function(){return(qb=s._MirrorPad=s.asm.MirrorPad).apply(null,arguments)},jb=s._Multinomial=function(){return(jb=s._Multinomial=s.asm.Multinomial).apply(null,arguments)},Kb=s._Multiply=function(){return(Kb=s._Multiply=s.asm.Multiply).apply(null,arguments)},Xb=s._Neg=function(){return(Xb=s._Neg=s.asm.Neg).apply(null,arguments)},Yb=s._NonMaxSuppressionV3=function(){return(Yb=s._NonMaxSuppressionV3=s.asm.NonMaxSuppressionV3).apply(null,arguments)},Zb=s._NonMaxSuppressionV4=function(){return(Zb=s._NonMaxSuppressionV4=s.asm.NonMaxSuppressionV4).apply(null,arguments)},Jb=s._NonMaxSuppressionV5=function(){return(Jb=s._NonMaxSuppressionV5=s.asm.NonMaxSuppressionV5).apply(null,arguments)},Qb=s._NotEqual=function(){return(Qb=s._NotEqual=s.asm.NotEqual).apply(null,arguments)},ey=s._OneHot=function(){return(ey=s._OneHot=s.asm.OneHot).apply(null,arguments)},ty=s._PadV2=function(){return(ty=s._PadV2=s.asm.PadV2).apply(null,arguments)},ny=s._Pow=function(){return(ny=s._Pow=s.asm.Pow).apply(null,arguments)},ay=s._Prelu=function(){return(ay=s._Prelu=s.asm.Prelu).apply(null,arguments)},ry=s._Prod=function(){return(ry=s._Prod=s.asm.Prod).apply(null,arguments)},sy=s._RealDiv=function(){return(sy=s._RealDiv=s.asm.RealDiv).apply(null,arguments)},iy=s._Reciprocal=function(){return(iy=s._Reciprocal=s.asm.Reciprocal).apply(null,arguments)},oy=s._Relu=function(){return(oy=s._Relu=s.asm.Relu).apply(null,arguments)},ly=s._Relu6=function(){return(ly=s._Relu6=s.asm.Relu6).apply(null,arguments)},uy=s._ResizeBilinear=function(){return(uy=s._ResizeBilinear=s.asm.ResizeBilinear).apply(null,arguments)},py=s._ResizeBilinearGrad=function(){return(py=s._ResizeBilinearGrad=s.asm.ResizeBilinearGrad).apply(null,arguments)},cy=s._ResizeNearestNeighbor=function(){return(cy=s._ResizeNearestNeighbor=s.asm.ResizeNearestNeighbor).apply(null,arguments)},dy=s._ResizeNearestNeighborGrad=function(){return(dy=s._ResizeNearestNeighborGrad=s.asm.ResizeNearestNeighborGrad).apply(null,arguments)},hy=s._Reverse=function(){return(hy=s._Reverse=s.asm.Reverse).apply(null,arguments)},my=s._RotateWithOffset=function(){return(my=s._RotateWithOffset=s.asm.RotateWithOffset).apply(null,arguments)},fy=s._Round=function(){return(fy=s._Round=s.asm.Round).apply(null,arguments)},gy=s._Rsqrt=function(){return(gy=s._Rsqrt=s.asm.Rsqrt).apply(null,arguments)},by=s._ScatterNd=function(){return(by=s._ScatterNd=s.asm.ScatterNd).apply(null,arguments)},yy=s._SearchSorted=function(){return(yy=s._SearchSorted=s.asm.SearchSorted).apply(null,arguments)},xy=s._SelectV2=function(){return(xy=s._SelectV2=s.asm.SelectV2).apply(null,arguments)},vy=s._Selu=function(){return(vy=s._Selu=s.asm.Selu).apply(null,arguments)},wy=s._Sigmoid=function(){return(wy=s._Sigmoid=s.asm.Sigmoid).apply(null,arguments)},ky=s._Sign=function(){return(ky=s._Sign=s.asm.Sign).apply(null,arguments)},Iy=s._Sin=function(){return(Iy=s._Sin=s.asm.Sin).apply(null,arguments)},Sy=s._Softmax=function(){return(Sy=s._Softmax=s.asm.Softmax).apply(null,arguments)},Ny=s._Softplus=function(){return(Ny=s._Softplus=s.asm.Softplus).apply(null,arguments)},Ty=s._SparseFillEmptyRows=function(){return(Ty=s._SparseFillEmptyRows=s.asm.SparseFillEmptyRows).apply(null,arguments)},Cy=s._SparseReshape=function(){return(Cy=s._SparseReshape=s.asm.SparseReshape).apply(null,arguments)},_y=s._SparseSegmentReduction=function(){return(_y=s._SparseSegmentReduction=s.asm.SparseSegmentReduction).apply(null,arguments)},Ey=s._SparseToDense=function(){return(Ey=s._SparseToDense=s.asm.SparseToDense).apply(null,arguments)},Ay=s._Sqrt=function(){return(Ay=s._Sqrt=s.asm.Sqrt).apply(null,arguments)},Fy=s._Square=function(){return(Fy=s._Square=s.asm.Square).apply(null,arguments)},$y=s._SquaredDifference=function(){return($y=s._SquaredDifference=s.asm.SquaredDifference).apply(null,arguments)},Dy=s._Step=function(){return(Dy=s._Step=s.asm.Step).apply(null,arguments)},Ry=s._StridedSlice=function(){return(Ry=s._StridedSlice=s.asm.StridedSlice).apply(null,arguments)},My=s._Sub=function(){return(My=s._Sub=s.asm.Sub).apply(null,arguments)},Py=s._Sum=function(){return(Py=s._Sum=s.asm.Sum).apply(null,arguments)},Oy=s._Tan=function(){return(Oy=s._Tan=s.asm.Tan).apply(null,arguments)},Ly=s._Tanh=function(){return(Ly=s._Tanh=s.asm.Tanh).apply(null,arguments)},zy=s._TensorScatterUpdate=function(){return(zy=s._TensorScatterUpdate=s.asm.TensorScatterUpdate).apply(null,arguments)},Wy=s._Tile=function(){return(Wy=s._Tile=s.asm.Tile).apply(null,arguments)},By=s._TopK=function(){return(By=s._TopK=s.asm.TopK).apply(null,arguments)},Vy=s._Transform=function(){return(Vy=s._Transform=s.asm.Transform).apply(null,arguments)},Uy=s._Transpose=function(){return(Uy=s._Transpose=s.asm.Transpose).apply(null,arguments)},Gy=s.__FusedMatMul=function(){return(Gy=s.__FusedMatMul=s.asm._FusedMatMul).apply(null,arguments)},Hy=s._malloc=function(){return(Hy=s._malloc=s.asm.malloc).apply(null,arguments)},qy=s._free=function(){return(qy=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)},bh=s.stackSave=function(){return(bh=s.stackSave=s.asm.stackSave).apply(null,arguments)},yh=s.stackRestore=function(){return(yh=s.stackRestore=s.asm.stackRestore).apply(null,arguments)},jp=s.stackAlloc=function(){return(jp=s.stackAlloc=s.asm.stackAlloc).apply(null,arguments)},Ky=s.dynCall_iijjiiii=function(){return(Ky=s.dynCall_iijjiiii=s.asm.dynCall_iijjiiii).apply(null,arguments)},Xy=s.dynCall_jiji=function(){return(Xy=s.dynCall_jiji=s.asm.dynCall_jiji).apply(null,arguments)};s.cwrap=Pg;var Sl;Kn=function Y(){Sl||xh(),Sl||(Kn=Y)};function xh(Y){if(Y=Y||p,lt>0||(Lt(),lt>0))return;function oe(){Sl||(Sl=!0,s.calledRun=!0,!U&&(la(),i(s),s.onRuntimeInitialized&&s.onRuntimeInitialized(),cn()))}s.setStatus?(s.setStatus("Running..."),setTimeout(function(){setTimeout(function(){s.setStatus("")},1),oe()},1)):oe()}if(s.preInit)for(typeof s.preInit=="function"&&(s.preInit=[s.preInit]);s.preInit.length>0;)s.preInit.pop()();xh();var Nl;l&&(Nl={uncaughtException:process.listeners("uncaughtException").filter(function(Y){return!l.uncaughtException.indexOf(Y)>-1}),unhandledRejection:process.listeners("unhandledRejection").filter(function(Y){return!l.unhandledRejection.indexOf(Y)>-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(Nl){var Yy=Tl._dispose;Tl._dispose=function(){Yy(),Nl.uncaughtException.forEach(function(Y){process.removeListener("uncaughtException",Y)}),Nl.unhandledRejection.forEach(function(Y){process.removeListener("unhandledRejection",Y)})}}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)}),Em=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}},$c=class{refCount(e){return Xn("refCount")}incRef(e){return Xn("incRef")}timerAvailable(){return!0}time(e){return Xn("time")}read(e){return Xn("read")}readSync(e){return Xn("readSync")}readToGPU(e,t){return Xn("readToGPU")}numDataIds(){return Xn("numDataIds")}disposeData(e,t){return Xn("disposeData")}write(e,t,n){return Xn("write")}move(e,t,n,a,r){return Xn("move")}createTensorFromGPUData(e,t,n){return Xn("createTensorFromGPUData")}memory(){return Xn("memory")}floatPrecision(){return Xn("floatPrecision")}epsilon(){return this.floatPrecision()===32?1e-7:1e-4}dispose(){return Xn("dispose")}};function Xn(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 PS(e){let t=e.length,n=0;for(;t>0;)n=Math.random()*t|0,t--,Jh(e,t,n)}function dR(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--,Jh(e,n,a),Jh(t,n,a)}function mc(e,t,n){return Math.max(e,Math.min(t,n))}function hR(e){return e%2===0?e:e+1}function Jh(e,t,n){let a=e[t];e[t]=e[n],e[n]=a}function mR(e){let t=0;for(let n=0;nn+` Shapes ${e} and ${t} must match`)}function Ii(e){A(e!=null,()=>"The input to the tensor constructor must be a non-null value.")}function bt(e){if(e.length===0)return 1;let t=e[0];for(let n=1;n0,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 kR(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=>Pl(a)),()=>`All values in axis param must be integers but got axis ${e}`),e.map(a=>a<0?n+a:a)}function LS(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 zS(e,t){return yv(e,t)}function yv(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 WS(e,t){for(let n=0;nt+=n.length),t}function as(e){return typeof e=="string"||e instanceof String}function US(e){return typeof e=="boolean"}function GS(e){return typeof e=="number"}function Dc(e){return Array.isArray(e)?Dc(e[0]):e instanceof Float32Array?"float32":e instanceof Int32Array||e instanceof Uint8Array||e instanceof Uint8ClampedArray?"int32":GS(e)?"float32":as(e)?"string":US(e)?"bool":"float32"}function ps(e){return!!(e&&e.constructor&&e.call&&e.apply)}function em(e,t){for(let n=t;n=0;--a)n[a]=n[a+1]*e[a+1];return n}function HS(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 HS(0,e,t,n)}function SR(e,t){if(Array.isArray(e))return e;if(t==="float32")return e instanceof Float32Array?e:new Float32Array(e);if(t==="int32")return e instanceof Int32Array?e:new Int32Array(e);if(t==="bool"||t==="string")return Uint8Array.from(new Int32Array(e));throw new Error(`Unknown dtype ${t}`)}function xv(e,t){let n=Am(e,t);for(let a=0;aa*r,1);if(t==null||t==="float32")return $l(e,new Float32Array(n));if(t==="int32")return $l(e,new Int32Array(n));if(t==="bool")return $l(e,new Uint8Array(n));throw new Error(`Unknown data type ${t}`)}function sa(e){e.forEach(t=>{A(Number.isInteger(t)&&t>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${e}].`)})}function TR(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]=AR(n,a)})}};function _R(e){let t={};return e.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(n,...a)=>(ER(t,a[0],a[1]),a.join("="))),t}function ER(e,t,n){e[decodeURIComponent(t)]=decodeURIComponent(n||"")}function AR(e,t){let n=t.toLowerCase();return n==="true"||n==="false"?n==="true":`${+n}`===n?+n:t}function G(){return vv}var vv=null;function FR(e){vv=e}var nx;function jS(){if(nx==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");nx=e}return nx}function $R(){let e=jS();return e._tfGlobals==null&&(e._tfGlobals=new Map),e._tfGlobals}function wv(e,t){let n=$R();if(n.has(e))return n.get(e);{let a=t();return n.set(e,a),n.get(e)}}var ru="Abs",Si="Acos",Ni="Acosh",ks="Add",Ti="AddN",su="All",iu="Any",ou="ArgMax",lu="ArgMin",Ci="Asin",_i="Asinh",Ei="Atan",Ai="Atanh",Fi="Atan2",$i="AvgPool",$m="AvgPoolGrad",uu="AvgPool3D",Rc="AvgPool3DGrad",Di="BatchMatMul",pu="BatchToSpaceND",cu="Bincount",Dm="BitwiseAnd",KS="BroadcastTo",Mc="BroadcastArgs",Ri="Cast",Mi="Ceil",Is="ClipByValue",Rm="Complex",Pc="ComplexAbs",du="Concat",Pi="Conv2D",Mm="Conv2DBackpropFilter",Oi="Conv2DBackpropInput",Li="Conv3D",hu="Conv3DBackpropFilterV2",mu="Conv3DBackpropInputV2",zi="Cos",Wi="Cosh",fu="Cumprod",Bi="Cumsum",gu="CropAndResize",Oc="DenseBincount",bu="DepthToSpace",Vi="DepthwiseConv2dNative",Pm="DepthwiseConv2dNativeBackpropFilter",Om="DepthwiseConv2dNativeBackpropInput",Lc="Diag",Ui="Dilation2D",Ol="Dilation2DBackpropInput",Ll="Dilation2DBackpropFilter",Gi="RealDiv",Lm="Einsum",Hi="Elu",yu="EluGrad",xu="Erf",vu="Equal",qi="Exp",wu="ExpandDims",ji="Expm1",zm="FFT",zc="Fill",ku="FlipLeftRight",Ki="Floor",Xi="FloorDiv",Yi="FusedBatchNorm",Iu="GatherV2",Su="GatherNd",Nu="Greater",Zi="GreaterEqual",Ji="Identity",Wm="IFFT",Bm="Imag",Qi="IsFinite",eo="IsInf",to="IsNan",no="LeakyRelu",Tu="Less",Cu="LessEqual",_u="LinSpace",ao="Log",ro="Log1p",Eu="LogicalAnd",Au="LogicalNot",Fu="LogicalOr",XS="LogicalXor",YS="LogSoftmax",DR="LowerBound",so="LRN",$u="LRNGrad",RR="MatrixBandPart",io="Max",oo="Maximum",lo="MaxPool",Vm="MaxPoolGrad",Du="MaxPool3D",Wc="MaxPool3DGrad",Um="MaxPoolWithArgmax",uo="Mean",po="Min",co="Minimum",ho="MirrorPad",Ru="Mod",Mu="Multinomial",mo="Multiply",Pu="Neg",Ou="NotEqual",Lu="NonMaxSuppressionV3",zu="NonMaxSuppressionV4",Wu="NonMaxSuppressionV5",Bu="OnesLike",fo="OneHot",Vu="Pack",go="PadV2",MR="Pool",bo="Pow",yo="Prelu",xo="Prod",Gm="RaggedGather",Hm="RaggedRange",qm="RaggedTensorToTensor",Bc="Range",jm="Real",vo="Reciprocal",wo="Relu",Uu="Reshape",ko="ResizeNearestNeighbor",Gu="ResizeNearestNeighborGrad",Io="ResizeBilinear",Hu="ResizeBilinearGrad",So="Relu6",No="Reverse",To="Round",Co="Rsqrt",qu="ScatterNd",ju="TensorScatterUpdate",Ku="SearchSorted",Xu="Select",_o="Selu",Yu="Slice",Eo="Sin",Zu="Sinh",Ao="Sign",Fo="Sigmoid",$o="Softplus",Do="Sqrt",Ro="Sum",Ju="SpaceToBatchND",Qu="SplitV",Mo="Softmax",Vc="SparseFillEmptyRows",ep="SparseReshape",Uc="SparseSegmentMean",Gc="SparseSegmentSum",tp="SparseToDense",Po="SquaredDifference",Hc="Square",qc="StaticRegexReplace",np="StridedSlice",jc="StringNGrams",Kc="StringSplit",Xc="StringToHashBucketFast",Oo="Sub",Lo="Tan",zo="Tanh",Ss="Tile",ap="TopK",rp="Transform",Fr="Transpose",Yc="Unique",sp="Unpack",Zc="UnsortedSegmentSum",PR="UpperBound",ip="ZerosLike",Ns="Step",tm="FromPixels",op="RotateWithOffset",ii="_FusedMatMul",oi="FusedConv2D",li="FusedDepthwiseConv2D";function ns(...e){G().getBool("IS_TEST")||G().getBool("PROD")||console.warn(...e)}function OR(...e){G().getBool("IS_TEST")||G().getBool("PROD")||console.log(...e)}var zl=wv("kernelRegistry",()=>new Map),fc=wv("gradRegistry",()=>new Map);function nm(e,t){let n=kv(e,t);return zl.get(n)}function yx(e){return fc.get(e)}function am(e){let t=zl.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 Jc(e){let{kernelName:t,backendName:n}=e,a=kv(t,n);zl.has(a)&&ns(`The kernel '${t}' for backend '${n}' is already registered`),zl.set(a,e)}function ZS(e){let{kernelName:t}=e;fc.has(t)&&G().getBool("DEBUG")&&ns(`Overriding the gradient for '${t}'`),fc.set(t,e)}function LR(e,t){let n=kv(e,t);if(!zl.has(n))throw new Error(`The kernel '${e}' for backend '${t}' is not registered`);zl.delete(n)}function zR(e){if(!fc.has(e))throw new Error(`The gradient '${e}' for backend is not registered`);fc.delete(e)}function WR(e,t){am(e).forEach(n=>{let a=Object.assign({},n,{backendName:t});Jc(a)})}function kv(e,t){return`${t}_${e}`}var v={};Ee(v,{arraysEqual:()=>Mr,arraysEqualWithNull:()=>OS,assert:()=>A,assertNonNegativeIntegerDimensions:()=>sa,assertNonNull:()=>Ii,assertShapesMatch:()=>Tn,bytesFromStringArray:()=>VS,bytesPerElement:()=>Qh,checkConversionForErrors:()=>WS,clamp:()=>mc,computeStrides:()=>au,convertBackendValuesAndArrayBuffer:()=>SR,createScalarValue:()=>qR,createShuffledIndices:()=>vR,decodeString:()=>rm,distSquared:()=>gR,encodeString:()=>ed,fetch:()=>KR,fingerPrint64:()=>HR,flatten:()=>cs,getArrayFromDType:()=>yv,getTypedArrayFromDType:()=>zS,hasEncodingLoss:()=>IR,hexToLong:()=>Qc,indexToLoc:()=>CR,inferDtype:()=>Dc,inferFromImplicitShape:()=>kR,isBoolean:()=>US,isFunction:()=>ps,isInt:()=>Pl,isNumber:()=>GS,isPromise:()=>Fm,isScalarShape:()=>bR,isString:()=>as,isTypedArray:()=>en,isValidDtype:()=>BS,locToIndex:()=>TR,makeOnesTypedArray:()=>xv,makeZerosNestedTypedArray:()=>NR,makeZerosTypedArray:()=>Am,nearestDivisor:()=>em,nearestLargerEven:()=>hR,now:()=>gc,parseAxisParam:()=>Ra,randUniform:()=>fR,repeatedTry:()=>wR,rightPad:()=>pc,shuffle:()=>PS,shuffleCombo:()=>dR,sizeFromShape:()=>bt,sizeToSquarishShape:()=>xR,squeezeShape:()=>LS,sum:()=>mR,swap:()=>Jh,tanh:()=>yR,toNestedArray:()=>$l,toTypedArray:()=>Km});function JS(e){return e instanceof Float32Array||e instanceof Int32Array||e instanceof Uint8Array||e instanceof Uint8ClampedArray}var Qk=ws(XD()),Xs=Qk.default||Qk;function Qc(e){return Xs.fromString(e,!0,16)}var QS=Qc("c3a5c85c97cb3127"),js=Qc("b492b66fbe98f273"),kn=Qc("9ae16a3b2f90404f");function xx(e){return e.xor(e.shru(47))}function eN(e,t,n){let a=e.slice(t,t+n);return Xs.fromBytes(Array.from(a),!0,!0)}function gt(e,t){return eN(e,t,8)}function eI(e,t){return eN(e,t,4)}function Qt(e,t){return t===0?e:e.shru(t).or(e.shl(64-t))}function os(e,t,n=Qc("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 BR(e,t,n,a,r,s){r=r.add(e),s=Qt(s.add(r).add(a),21);let i=r;return r=r.add(t),r=r.add(n),s=s.add(Qt(r,44)),[r.add(a),s.add(i)]}function Eh(e,t,n,a){return BR(gt(e,t),gt(e,t+8),gt(e,t+16),gt(e,t+24),n,a)}function VR(e,t=e.length){if(t>=8){let n=kn.add(t*2),a=gt(e,0).add(kn),r=gt(e,t-8),s=Qt(r,37).mul(n).add(a),i=Qt(a,25).add(r).mul(n);return os(s,i,n)}if(t>=4){let n=kn.add(t*2),a=eI(e,0);return os(a.shl(3).add(t),eI(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 xx(kn.mul(s).xor(QS.mul(i))).mul(kn)}return kn}function UR(e,t=e.length){let n=kn.add(t*2),a=gt(e,0).mul(js),r=gt(e,8),s=gt(e,t-8).mul(n),i=gt(e,t-16).mul(kn);return os(Qt(a.add(r),43).add(Qt(s,30)).add(i),a.add(Qt(r.add(kn),18)).add(s),n)}function GR(e,t=e.length){let n=kn.add(t*2),a=gt(e,0).mul(kn),r=gt(e,8),s=gt(e,t-8).mul(n),i=gt(e,t-16).mul(kn),o=Qt(a.add(r),43).add(Qt(s,30)).add(i),l=os(o,a.add(Qt(r.add(kn),18)).add(s),n),u=gt(e,16).mul(n),p=gt(e,24),d=o.add(gt(e,t-32)).mul(n),c=l.add(gt(e,t-24)).mul(n);return os(Qt(u.add(p),43).add(Qt(d,30)).add(c),u.add(Qt(p.add(a),18)).add(d),n)}function HR(e,t=e.length){let n=Xs.fromNumber(81,!0);if(t<=32)return t<=16?VR(e,t):UR(e,t);if(t<=64)return GR(e,t);let a=n,r=n.mul(js).add(113),s=xx(r.mul(kn).add(113)).mul(kn),i=[Xs.UZERO,Xs.UZERO],o=[Xs.UZERO,Xs.UZERO];a=a.mul(kn).add(gt(e,0));let l=0,u=(t-1>>6)*64,p=u+(t-1&63)-63;do a=Qt(a.add(r).add(i[0]).add(gt(e,l+8)),37).mul(js),r=Qt(r.add(i[1]).add(gt(e,l+48)),42).mul(js),a=a.xor(o[1]),r=r.add(i[0]).add(gt(e,l+40)),s=Qt(s.add(o[0]),33).mul(js),i=Eh(e,l,i[1].mul(js),a.add(o[0])),o=Eh(e,l+32,s.add(o[1]),r.add(gt(e,l+16))),[s,a]=[a,s],l+=64;while(l!==u);let d=js.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=Qt(a.add(r).add(i[0]).add(gt(e,l+8)),37).mul(d),r=Qt(r.add(i[1]).add(gt(e,l+48)),42).mul(d),a=a.xor(o[1].mul(9)),r=r.add(i[0].mul(9).add(gt(e,l+40))),s=Qt(s.add(o[0]),33).mul(d),i=Eh(e,l,i[1].mul(d),a.add(o[0])),o=Eh(e,l+32,s.add(o[1]),r.add(gt(e,l+16))),[s,a]=[a,s],os(os(i[0],o[0],d).add(xx(r).mul(QS)).add(s),os(i[1],o[1],d).add(a),d)}function qR(e,t){return t==="string"?ed(e):Km([e],t)}function jR(e,t){return e instanceof Float32Array&&t==="float32"||e instanceof Int32Array&&t==="int32"||e instanceof Uint8Array&&t==="bool"}function Km(e,t){if(t==="string")throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(e)&&(e=cs(e)),G().getBool("DEBUG")&&WS(e,t),jR(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=gc();if(this.backendTimer.timerAvailable())s=this.backendTimer.time(r);else{r();for(let o of a)o.dataSync();s=Promise.resolve({kernelMs:gc()-i})}if(G().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let o=0;o{YR(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 YR(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 JR(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(!Mr(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 tI=20,Xp=3,ax=7;function eM(e,t,n,a){let r=au(t),s=tM(e,t,n,r),i=t.length,o=Uh(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||j,J=c.printErr||K;Object.assign(c,g),g=null,c.arguments&&(b=c.arguments),c.thisProgram&&(y=c.thisProgram),c.quit&&(x=c.quit);var ee=4,ae=Atomics.load,te=Atomics.store,re=Atomics.compareExchange,ie;c.wasmBinary&&(ie=c.wasmBinary);var ye=c.noExitRuntime||!0;typeof WebAssembly!="object"&&Us("no native wasm support detected");var ue,be,ke=!1,Se;function We(R,q){R||Us(q)}var Ge=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function ht(R,q,le){q>>>=0;for(var Ne=q+le,Pe=q;R[Pe]&&!(Pe>=Ne);)++Pe;if(Pe-q>16&&R.buffer&&Ge)return Ge.decode(R.buffer instanceof SharedArrayBuffer?R.slice(q,Pe):R.subarray(q,Pe));for(var Fe="";q>10,56320|ca&1023)}}return Fe}function st(R,q){return R>>>=0,R?ht(i(),R,q):""}function at(R,q,le,Ne){if(le>>>=0,!(Ne>0))return 0;for(var Pe=le,Fe=le+Ne-1,me=0;me=55296&&we<=57343){var _t=R.charCodeAt(++me);we=65536+((we&1023)<<10)|_t&1023}if(we<=127){if(le>=Fe)break;q[le++>>>0]=we}else if(we<=2047){if(le+1>=Fe)break;q[le++>>>0]=192|we>>6,q[le++>>>0]=128|we&63}else if(we<=65535){if(le+2>=Fe)break;q[le++>>>0]=224|we>>12,q[le++>>>0]=128|we>>6&63,q[le++>>>0]=128|we&63}else{if(le+3>=Fe)break;q[le++>>>0]=240|we>>18,q[le++>>>0]=128|we>>12&63,q[le++>>>0]=128|we>>6&63,q[le++>>>0]=128|we&63}}return q[le>>>0]=0,le-Pe}function rt(R,q,le){return at(R,i(),q,le)}var Me,ft,jn,Lt,la,cn,$n,ua,Dn;C&&(Me=c.buffer);function lt(R){Me=R,c.HEAP8=ft=new Int8Array(R),c.HEAP16=Lt=new Int16Array(R),c.HEAP32=cn=new Int32Array(R),c.HEAPU8=jn=new Uint8Array(R),c.HEAPU16=la=new Uint16Array(R),c.HEAPU32=$n=new Uint32Array(R),c.HEAPF32=ua=new Float32Array(R),c.HEAPF64=Dn=new Float64Array(R)}var Rn=c.INITIAL_MEMORY||16777216;if(C)ue=c.wasmMemory,Me=c.buffer;else if(c.wasmMemory)ue=c.wasmMemory;else if(ue=new WebAssembly.Memory({initial:Rn/65536,maximum:65536,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&&J("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and/or recent version)"),Error("bad memory");ue&&(Me=ue.buffer),Rn=Me.byteLength,lt(Me);var Kn,Ir=[],Nl=[],tr=[],Gp=!1;function Na(){return ye}function Zr(){if(c.preRun)for(typeof c.preRun=="function"&&(c.preRun=[c.preRun]);c.preRun.length;)Ag(c.preRun.shift());qp(Ir)}function Qt(){Gp=!0,!C&&qp(Nl)}function sh(){if(!C){if(c.postRun)for(typeof c.postRun=="function"&&(c.postRun=[c.postRun]);c.postRun.length;)Kk(c.postRun.shift());qp(tr)}}function Ag(R){Ir.unshift(R)}function Fg(R){Nl.unshift(R)}function Kk(R){tr.unshift(R)}var Jr=0,Tl=null,Sr=null;function $g(R){Jr++,c.monitorRunDependencies&&c.monitorRunDependencies(Jr)}function ih(R){if(Jr--,c.monitorRunDependencies&&c.monitorRunDependencies(Jr),Jr==0&&(Tl!==null&&(clearInterval(Tl),Tl=null),Sr)){var q=Sr;Sr=null,q()}}function Us(R){c.onAbort&&c.onAbort(R),R="Aborted("+R+")",J(R),ke=!0,Se=1,R+=". Build with -sASSERTIONS for more info.";var q=new WebAssembly.RuntimeError(R);throw m(q),q}var Dg="data:application/octet-stream;base64,";function oh(R){return R.startsWith(Dg)}function Cl(R){return R.startsWith("file://")}var gn;gn="tfjs-backend-wasm-threaded-simd.wasm",oh(gn)||(gn=F(gn));function lh(R){try{if(R==gn&&ie)return new Uint8Array(ie);if(S)return S(R);throw"both async and sync fetching of the wasm failed"}catch(q){Us(q)}}function Rg(){if(!ie&&(v||I)){if(typeof fetch=="function"&&!Cl(gn))return fetch(gn,{credentials:"same-origin"}).then(function(R){if(!R.ok)throw"failed to load wasm binary file at '"+gn+"'";return R.arrayBuffer()}).catch(function(){return lh(gn)});if($)return new Promise(function(R,q){$(gn,function(le){R(new Uint8Array(le))},q)})}return Promise.resolve().then(function(){return lh(gn)})}function Mg(){var R={env:wh,wasi_snapshot_preview1:wh};function q(me,we){var _t=me.exports;if(c.asm=_t,Gg(c.asm._emscripten_tls_init),Kn=c.asm.__indirect_function_table,Fg(c.asm.__wasm_call_ctors),be=we,!C){var ca=Ae.unusedWorkers.length;Ae.unusedWorkers.forEach(function(Tr){Ae.loadWasmModuleToWorker(Tr,function(){--ca||ih("wasm-instantiate")})})}}C||$g("wasm-instantiate");function le(me){q(me.instance,me.module)}function Ne(me){return Rg().then(function(we){return WebAssembly.instantiate(we,R)}).then(function(we){return we}).then(me,function(we){J("failed to asynchronously prepare wasm: "+we),Us(we)})}function Pe(){return!ie&&typeof WebAssembly.instantiateStreaming=="function"&&!oh(gn)&&!Cl(gn)&&!T&&typeof fetch=="function"?fetch(gn,{credentials:"same-origin"}).then(function(me){var we=WebAssembly.instantiateStreaming(me,R);return we.then(le,function(_t){return J("wasm streaming compile failed: "+_t),J("falling back to ArrayBuffer instantiation"),Ne(le)})}):Ne(le)}if(c.instantiateWasm)try{var Fe=c.instantiateWasm(R,q);return Fe}catch(me){J("Module.instantiateWasm callback failed with error: "+me),m(me)}return Pe().catch(m),{}}var Xk,Yk,uh={};function Gs(R){this.name="ExitStatus",this.message="Program terminated with exit("+R+")",this.status=R}function Pg(R){var q=Ae.pthreads[R];delete Ae.pthreads[R],q.terminate(),ix(R),Ae.runningWorkers.splice(Ae.runningWorkers.indexOf(q),1),q.pthread_ptr=0}function Og(R){var q=Ae.pthreads[R];q.postMessage({cmd:"cancel"})}function Hp(R){var q=Ae.pthreads[R];We(q),Ae.returnWorkerToPool(q)}function Lg(R){var q=Ae.getNewWorker();if(!q)return 6;Ae.runningWorkers.push(q),Ae.pthreads[R.pthread_ptr]=q,q.pthread_ptr=R.pthread_ptr;var le={cmd:"run",start_routine:R.startRoutine,arg:R.arg,pthread_ptr:R.pthread_ptr};return q.runPthread=()=>{T&&q.ref(),q.postMessage(le,R.transferList),delete q.runPthread},q.loaded&&q.runPthread(),0}var ph={varargs:void 0,get:function(){ph.varargs+=4;var R=l()[ph.varargs-4>>>2];return R},getStr:function(R){var q=st(R);return q}};function ch(R){if(C)return Qr(1,1,R);Se=R,Na()||(Ae.terminateAllThreads(),c.onExit&&c.onExit(R),ke=!0),x(R,new Gs(R))}function zg(R,q){if(Se=R,!q&&C)throw hh(R),"unwind";ch(R)}var dh=zg;function Wg(R){if(R instanceof Gs||R=="unwind")return Se;x(1,R)}var Ae={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init:function(){C?Ae.initWorker():Ae.initMainThread()},initMainThread:function(){for(var R=8;R--;)Ae.allocateUnusedWorker()},initWorker:function(){ye=!1},setExitStatus:function(R){Se=R},terminateAllThreads:function(){for(var R of Object.values(Ae.pthreads))Ae.returnWorkerToPool(R);for(var R of Ae.unusedWorkers)R.terminate();Ae.unusedWorkers=[]},returnWorkerToPool:function(R){var q=R.pthread_ptr;delete Ae.pthreads[q],Ae.unusedWorkers.push(R),Ae.runningWorkers.splice(Ae.runningWorkers.indexOf(R),1),R.pthread_ptr=0,T&&R.unref(),ix(q)},receiveObjectTransfer:function(R){},threadInitTLS:function(){Ae.tlsInitFunctions.forEach(R=>R())},loadWasmModuleToWorker:function(R,q){R.onmessage=Fe=>{var me=Fe.data,we=me.cmd;if(R.pthread_ptr&&(Ae.currentProxiedOperationCallerThread=R.pthread_ptr),me.targetThread&&me.targetThread!=Ch()){var _t=Ae.pthreads[me.targetThread];_t?_t.postMessage(me,me.transferList):J('Internal error! Worker sent a message "'+we+'" to target pthread '+me.targetThread+", but that thread no longer exists!"),Ae.currentProxiedOperationCallerThread=void 0;return}we==="processProxyingQueue"?jp(me.queue):we==="spawnThread"?Lg(me):we==="cleanupThread"?Hp(me.thread):we==="killThread"?Pg(me.thread):we==="cancelThread"?Og(me.thread):we==="loaded"?(R.loaded=!0,T&&R.unref(),q&&q(R),R.runPthread&&R.runPthread()):we==="print"?Z("Thread "+me.threadId+": "+me.text):we==="printErr"?J("Thread "+me.threadId+": "+me.text):we==="alert"?alert("Thread "+me.threadId+": "+me.text):me.target==="setimmediate"?R.postMessage(me):we==="callHandler"?c[me.handler](...me.args):we&&J("worker sent an unknown command "+we),Ae.currentProxiedOperationCallerThread=void 0},R.onerror=Fe=>{var me="worker sent an error!";throw J(me+" "+Fe.filename+":"+Fe.lineno+": "+Fe.message),Fe},T&&(R.on("message",function(Fe){R.onmessage({data:Fe})}),R.on("error",function(Fe){R.onerror(Fe)}),R.on("detachedExit",function(){}));var le=[],Ne=["onExit","onAbort","print","printErr"];for(var Pe of Ne)c.hasOwnProperty(Pe)&&le.push(Pe);R.postMessage({cmd:"load",handlers:le,urlOrBlob:c.mainScriptUrlOrBlob||a,wasmMemory:ue,wasmModule:be})},allocateUnusedWorker:function(){var R,q=F("tfjs-backend-wasm-threaded-simd.worker.js");R=new Worker(q),Ae.unusedWorkers.push(R)},getNewWorker:function(){return Ae.unusedWorkers.length==0&&(Ae.allocateUnusedWorker(),Ae.loadWasmModuleToWorker(Ae.unusedWorkers[0])),Ae.unusedWorkers.pop()}};c.PThread=Ae;function qp(R){for(;R.length>0;)R.shift()(c)}function Bg(){var R=Ch(),q=l()[R+52>>>2],le=l()[R+56>>>2],Ne=q-le;nI(q,Ne),_h(q)}c.establishStackSpace=Bg;function hh(R){if(C)return Qr(2,0,R);try{dh(R)}catch(q){Wg(q)}}var _l=[];function Vg(R){var q=_l[R];return q||(R>=_l.length&&(_l.length=R+1),_l[R]=q=Kn.get(R)),q}function Ug(R,q){var le=Vg(R)(q);Na()?Ae.setExitStatus(le):tI(le)}c.invokeEntryPoint=Ug;function Gg(R){Ae.tlsInitFunctions.push(R)}function Hg(R){Jk(R,!I,1,!v),Ae.threadInitTLS()}function qg(R){C?postMessage({cmd:"cleanupThread",thread:R}):Hp(R)}function mh(R,q,le,Ne){return C?Qr(3,1,R,q,le,Ne):fh(R,q,le,Ne)}function fh(R,q,le,Ne){if(typeof SharedArrayBuffer=="undefined")return J("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;var Pe=[],Fe=0;if(C&&(Pe.length===0||Fe))return mh(R,q,le,Ne);if(Fe)return Fe;var me={startRoutine:le,pthread_ptr:R,arg:Ne,transferList:Pe};return C?(me.cmd="spawnThread",postMessage(me,Pe),0):Lg(me)}function jg(){return 65536}var Kg=!0;function Xg(){return Kg}function jp(R){Atomics.store(l(),R>>2,1),Ch()&&eI(R),Atomics.compareExchange(l(),R>>2,1,0)}c.executeNotifiedProxyingQueue=jp;function Yg(R,q,le,Ne){if(R==q)setTimeout(()=>jp(Ne));else if(C)postMessage({targetThread:R,cmd:"processProxyingQueue",queue:Ne});else{var Pe=Ae.pthreads[R];if(!Pe)return;Pe.postMessage({cmd:"processProxyingQueue",queue:Ne})}return 1}function Zg(R,q,le){return-1}function Jg(){Us("")}function Hs(R){Hs.shown||(Hs.shown={}),Hs.shown[R]||(Hs.shown[R]=1,T&&(R="warning: "+R),J(R))}function Qg(){T||I||Hs("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function eb(){return Date.now()}function gh(){return 4294901760}function tb(){return gh()}var Kp;T?Kp=()=>{var R=process.hrtime();return R[0]*1e3+R[1]/1e6}:Kp=()=>performance.timeOrigin+performance.now();function nb(R,q,le){i().copyWithin(R>>>0,q>>>0,q+le>>>0)}function ab(){return T?wR().cpus().length:navigator.hardwareConcurrency}function rb(R){var q=ox(),le=R();return _h(q),le}function Qr(R,q){var le=arguments.length-2,Ne=arguments;return rb(()=>{for(var Pe=le,Fe=Eh(Pe*8),me=Fe>>3,we=0;we>>0]=_t}return Qk(R,Pe,Fe,q)})}var Xp=[];function sb(R,q,le){Xp.length=q;for(var Ne=le>>3,Pe=0;Pe>>0];var Fe=R<0,me=Fe?uh[-R-1]:mb[R];return me.apply(null,Xp)}function ib(R){try{return ue.grow(R-Me.byteLength+65535>>>16),lt(ue.buffer),1}catch(q){}}function ob(R){var q=i().length;if(R=R>>>0,R<=q)return!1;var le=gh();if(R>le)return!1;let Ne=(_t,ca)=>_t+(ca-_t%ca)%ca;for(var Pe=1;Pe<=4;Pe*=2){var Fe=q*(1+.2/Pe);Fe=Math.min(Fe,R+100663296);var me=Math.min(le,Ne(Math.max(R,Fe),65536)),we=ib(me);if(we)return!0}return!1}function lb(){throw"unwind"}function bh(R){return C?Qr(4,1,R):52}function yh(R,q,le,Ne,Pe){return C?Qr(5,1,R,q,le,Ne,Pe):70}var ub=[null,[],[]];function pb(R,q){var le=ub[R];q===0||q===10?((R===1?Z:J)(ht(le,0)),le.length=0):le.push(q)}function xh(R,q,le,Ne){if(C)return Qr(6,1,R,q,le,Ne);for(var Pe=0,Fe=0;Fe>>2],we=u()[q+4>>>2];q+=8;for(var _t=0;_t>>0]);Pe+=we}return u()[Ne>>>2]=Pe,0}function vh(R){var q=c["_"+R];return q}function cb(R,q){s().set(R,q>>>0)}function db(R,q,le,Ne,Pe){var Fe={string:da=>{var $l=0;if(da!=null&&da!==0){var sI=(da.length<<2)+1;$l=Eh(sI),rt(da,$l,sI)}return $l},array:da=>{var $l=Eh(da.length);return cb(da,$l),$l}};function me(da){return q==="string"?st(da):q==="boolean"?!!da:da}var we=vh(R),_t=[],ca=0;if(Ne)for(var Tr=0;Trme==="number"||me==="boolean"),Fe=q!=="string";return Fe&&Pe&&!Ne?vh(R):function(){return db(R,q,le,arguments,Ne)}}Ae.init();var mb=[null,ch,hh,mh,bh,yh,xh],wh={__emscripten_init_main_thread_js:Hg,__emscripten_thread_cleanup:qg,__pthread_create_js:fh,_emscripten_default_pthread_stack_size:jg,_emscripten_get_now_is_monotonic:Xg,_emscripten_notify_task_queue:Yg,_emscripten_set_offscreencanvas_size:Zg,abort:Jg,emscripten_check_blocking_allowed:Qg,emscripten_date_now:eb,emscripten_get_heap_max:tb,emscripten_get_now:Kp,emscripten_memcpy_big:nb,emscripten_num_logical_cores:ab,emscripten_receive_on_main_thread_js:sb,emscripten_resize_heap:ob,emscripten_unwind_to_js_event_loop:lb,exit:dh,fd_close:bh,fd_seek:yh,fd_write:xh,memory:ue||c.wasmMemory},Zk=Mg(),fb=c.___wasm_call_ctors=function(){return(fb=c.___wasm_call_ctors=c.asm.__wasm_call_ctors).apply(null,arguments)},gb=c._init=function(){return(gb=c._init=c.asm.init).apply(null,arguments)},bb=c._init_with_threads_count=function(){return(bb=c._init_with_threads_count=c.asm.init_with_threads_count).apply(null,arguments)},yb=c._get_threads_count=function(){return(yb=c._get_threads_count=c.asm.get_threads_count).apply(null,arguments)},xb=c._register_tensor=function(){return(xb=c._register_tensor=c.asm.register_tensor).apply(null,arguments)},vb=c._dispose_data=function(){return(vb=c._dispose_data=c.asm.dispose_data).apply(null,arguments)},wb=c._dispose=function(){return(wb=c._dispose=c.asm.dispose).apply(null,arguments)},kb=c._Abs=function(){return(kb=c._Abs=c.asm.Abs).apply(null,arguments)},Ib=c._Acos=function(){return(Ib=c._Acos=c.asm.Acos).apply(null,arguments)},Sb=c._Acosh=function(){return(Sb=c._Acosh=c.asm.Acosh).apply(null,arguments)},Nb=c._Add=function(){return(Nb=c._Add=c.asm.Add).apply(null,arguments)},Tb=c._AddN=function(){return(Tb=c._AddN=c.asm.AddN).apply(null,arguments)},Cb=c._All=function(){return(Cb=c._All=c.asm.All).apply(null,arguments)},_b=c._Any=function(){return(_b=c._Any=c.asm.Any).apply(null,arguments)},Eb=c._ArgMax=function(){return(Eb=c._ArgMax=c.asm.ArgMax).apply(null,arguments)},Ab=c._ArgMin=function(){return(Ab=c._ArgMin=c.asm.ArgMin).apply(null,arguments)},Fb=c._Asin=function(){return(Fb=c._Asin=c.asm.Asin).apply(null,arguments)},$b=c._Asinh=function(){return($b=c._Asinh=c.asm.Asinh).apply(null,arguments)},Db=c._Atan=function(){return(Db=c._Atan=c.asm.Atan).apply(null,arguments)},Rb=c._Atan2=function(){return(Rb=c._Atan2=c.asm.Atan2).apply(null,arguments)},Mb=c._Atanh=function(){return(Mb=c._Atanh=c.asm.Atanh).apply(null,arguments)},Pb=c._AvgPool=function(){return(Pb=c._AvgPool=c.asm.AvgPool).apply(null,arguments)},Ob=c._AvgPool3D=function(){return(Ob=c._AvgPool3D=c.asm.AvgPool3D).apply(null,arguments)},Lb=c._AvgPool3DGrad=function(){return(Lb=c._AvgPool3DGrad=c.asm.AvgPool3DGrad).apply(null,arguments)},zb=c._AvgPoolGrad=function(){return(zb=c._AvgPoolGrad=c.asm.AvgPoolGrad).apply(null,arguments)},Wb=c._BatchMatMul=function(){return(Wb=c._BatchMatMul=c.asm.BatchMatMul).apply(null,arguments)},Bb=c._Bincount=function(){return(Bb=c._Bincount=c.asm.Bincount).apply(null,arguments)},Vb=c._BitwiseAnd=function(){return(Vb=c._BitwiseAnd=c.asm.BitwiseAnd).apply(null,arguments)},Ub=c._Ceil=function(){return(Ub=c._Ceil=c.asm.Ceil).apply(null,arguments)},Gb=c._ClipByValue=function(){return(Gb=c._ClipByValue=c.asm.ClipByValue).apply(null,arguments)},Hb=c._Conv2D=function(){return(Hb=c._Conv2D=c.asm.Conv2D).apply(null,arguments)},qb=c._Conv2DBackpropInput=function(){return(qb=c._Conv2DBackpropInput=c.asm.Conv2DBackpropInput).apply(null,arguments)},jb=c._Conv3D=function(){return(jb=c._Conv3D=c.asm.Conv3D).apply(null,arguments)},Kb=c._Conv3DBackpropFilterV2=function(){return(Kb=c._Conv3DBackpropFilterV2=c.asm.Conv3DBackpropFilterV2).apply(null,arguments)},Xb=c._Conv3DBackpropInputV2=function(){return(Xb=c._Conv3DBackpropInputV2=c.asm.Conv3DBackpropInputV2).apply(null,arguments)},Yb=c._Cos=function(){return(Yb=c._Cos=c.asm.Cos).apply(null,arguments)},Zb=c._Cosh=function(){return(Zb=c._Cosh=c.asm.Cosh).apply(null,arguments)},Jb=c._CropAndResize=function(){return(Jb=c._CropAndResize=c.asm.CropAndResize).apply(null,arguments)},Qb=c._Cumprod=function(){return(Qb=c._Cumprod=c.asm.Cumprod).apply(null,arguments)},ey=c._Cumsum=function(){return(ey=c._Cumsum=c.asm.Cumsum).apply(null,arguments)},ty=c._DenseBincount=function(){return(ty=c._DenseBincount=c.asm.DenseBincount).apply(null,arguments)},ny=c._DepthToSpace=function(){return(ny=c._DepthToSpace=c.asm.DepthToSpace).apply(null,arguments)},ay=c._DepthwiseConv2dNative=function(){return(ay=c._DepthwiseConv2dNative=c.asm.DepthwiseConv2dNative).apply(null,arguments)},ry=c._Diag=function(){return(ry=c._Diag=c.asm.Diag).apply(null,arguments)},sy=c._Dilation2D=function(){return(sy=c._Dilation2D=c.asm.Dilation2D).apply(null,arguments)},iy=c._Dilation2DBackpropFilter=function(){return(iy=c._Dilation2DBackpropFilter=c.asm.Dilation2DBackpropFilter).apply(null,arguments)},oy=c._Dilation2DBackpropInput=function(){return(oy=c._Dilation2DBackpropInput=c.asm.Dilation2DBackpropInput).apply(null,arguments)},ly=c._Elu=function(){return(ly=c._Elu=c.asm.Elu).apply(null,arguments)},uy=c._EluGrad=function(){return(uy=c._EluGrad=c.asm.EluGrad).apply(null,arguments)},py=c._Equal=function(){return(py=c._Equal=c.asm.Equal).apply(null,arguments)},cy=c._Erf=function(){return(cy=c._Erf=c.asm.Erf).apply(null,arguments)},dy=c._Exp=function(){return(dy=c._Exp=c.asm.Exp).apply(null,arguments)},hy=c._Expm1=function(){return(hy=c._Expm1=c.asm.Expm1).apply(null,arguments)},my=c._FlipLeftRight=function(){return(my=c._FlipLeftRight=c.asm.FlipLeftRight).apply(null,arguments)},fy=c._Floor=function(){return(fy=c._Floor=c.asm.Floor).apply(null,arguments)},gy=c._FloorDiv=function(){return(gy=c._FloorDiv=c.asm.FloorDiv).apply(null,arguments)},by=c._FusedBatchNorm=function(){return(by=c._FusedBatchNorm=c.asm.FusedBatchNorm).apply(null,arguments)},yy=c._FusedConv2D=function(){return(yy=c._FusedConv2D=c.asm.FusedConv2D).apply(null,arguments)},xy=c._FusedDepthwiseConv2D=function(){return(xy=c._FusedDepthwiseConv2D=c.asm.FusedDepthwiseConv2D).apply(null,arguments)},vy=c._Gather=function(){return(vy=c._Gather=c.asm.Gather).apply(null,arguments)},wy=c._GatherNd=function(){return(wy=c._GatherNd=c.asm.GatherNd).apply(null,arguments)},ky=c._Greater=function(){return(ky=c._Greater=c.asm.Greater).apply(null,arguments)},Iy=c._GreaterEqual=function(){return(Iy=c._GreaterEqual=c.asm.GreaterEqual).apply(null,arguments)},Sy=c._IsFinite=function(){return(Sy=c._IsFinite=c.asm.IsFinite).apply(null,arguments)},Ny=c._IsInf=function(){return(Ny=c._IsInf=c.asm.IsInf).apply(null,arguments)},Ty=c._IsNan=function(){return(Ty=c._IsNan=c.asm.IsNan).apply(null,arguments)},Cy=c._LRN=function(){return(Cy=c._LRN=c.asm.LRN).apply(null,arguments)},_y=c._LRNGrad=function(){return(_y=c._LRNGrad=c.asm.LRNGrad).apply(null,arguments)},Ey=c._LeakyRelu=function(){return(Ey=c._LeakyRelu=c.asm.LeakyRelu).apply(null,arguments)},Ay=c._Less=function(){return(Ay=c._Less=c.asm.Less).apply(null,arguments)},Fy=c._LessEqual=function(){return(Fy=c._LessEqual=c.asm.LessEqual).apply(null,arguments)},$y=c._LinSpace=function(){return($y=c._LinSpace=c.asm.LinSpace).apply(null,arguments)},Dy=c._Log=function(){return(Dy=c._Log=c.asm.Log).apply(null,arguments)},Ry=c._Log1p=function(){return(Ry=c._Log1p=c.asm.Log1p).apply(null,arguments)},My=c._LogicalAnd=function(){return(My=c._LogicalAnd=c.asm.LogicalAnd).apply(null,arguments)},Py=c._LogicalNot=function(){return(Py=c._LogicalNot=c.asm.LogicalNot).apply(null,arguments)},Oy=c._LogicalOr=function(){return(Oy=c._LogicalOr=c.asm.LogicalOr).apply(null,arguments)},Ly=c._LogicalXor=function(){return(Ly=c._LogicalXor=c.asm.LogicalXor).apply(null,arguments)},zy=c._Max=function(){return(zy=c._Max=c.asm.Max).apply(null,arguments)},Wy=c._MaxPool=function(){return(Wy=c._MaxPool=c.asm.MaxPool).apply(null,arguments)},By=c._MaxPool3D=function(){return(By=c._MaxPool3D=c.asm.MaxPool3D).apply(null,arguments)},Vy=c._MaxPool3DGrad=function(){return(Vy=c._MaxPool3DGrad=c.asm.MaxPool3DGrad).apply(null,arguments)},Uy=c._MaxPoolGrad=function(){return(Uy=c._MaxPoolGrad=c.asm.MaxPoolGrad).apply(null,arguments)},Gy=c._MaxPoolWithArgmax=function(){return(Gy=c._MaxPoolWithArgmax=c.asm.MaxPoolWithArgmax).apply(null,arguments)},Hy=c._Maximum=function(){return(Hy=c._Maximum=c.asm.Maximum).apply(null,arguments)},qy=c._Mean=function(){return(qy=c._Mean=c.asm.Mean).apply(null,arguments)},jy=c._Min=function(){return(jy=c._Min=c.asm.Min).apply(null,arguments)},Ky=c._Minimum=function(){return(Ky=c._Minimum=c.asm.Minimum).apply(null,arguments)},Xy=c._MirrorPad=function(){return(Xy=c._MirrorPad=c.asm.MirrorPad).apply(null,arguments)},Yy=c._Mod=function(){return(Yy=c._Mod=c.asm.Mod).apply(null,arguments)},Zy=c._Multinomial=function(){return(Zy=c._Multinomial=c.asm.Multinomial).apply(null,arguments)},Jy=c._Multiply=function(){return(Jy=c._Multiply=c.asm.Multiply).apply(null,arguments)},Qy=c._Neg=function(){return(Qy=c._Neg=c.asm.Neg).apply(null,arguments)},ex=c._NonMaxSuppressionV3=function(){return(ex=c._NonMaxSuppressionV3=c.asm.NonMaxSuppressionV3).apply(null,arguments)},tx=c._NonMaxSuppressionV4=function(){return(tx=c._NonMaxSuppressionV4=c.asm.NonMaxSuppressionV4).apply(null,arguments)},kh=c._NonMaxSuppressionV5=function(){return(kh=c._NonMaxSuppressionV5=c.asm.NonMaxSuppressionV5).apply(null,arguments)},Ih=c._NotEqual=function(){return(Ih=c._NotEqual=c.asm.NotEqual).apply(null,arguments)},Yp=c._OneHot=function(){return(Yp=c._OneHot=c.asm.OneHot).apply(null,arguments)},nx=c._PadV2=function(){return(nx=c._PadV2=c.asm.PadV2).apply(null,arguments)},ax=c._Pow=function(){return(ax=c._Pow=c.asm.Pow).apply(null,arguments)},El=c._Prelu=function(){return(El=c._Prelu=c.asm.Prelu).apply(null,arguments)},Sh=c._Prod=function(){return(Sh=c._Prod=c.asm.Prod).apply(null,arguments)},Al=c._RealDiv=function(){return(Al=c._RealDiv=c.asm.RealDiv).apply(null,arguments)},Fl=c._Reciprocal=function(){return(Fl=c._Reciprocal=c.asm.Reciprocal).apply(null,arguments)},rx=c._Relu=function(){return(rx=c._Relu=c.asm.Relu).apply(null,arguments)},Y=c._Relu6=function(){return(Y=c._Relu6=c.asm.Relu6).apply(null,arguments)},oe=c._ResizeBilinear=function(){return(oe=c._ResizeBilinear=c.asm.ResizeBilinear).apply(null,arguments)},Ie=c._ResizeBilinearGrad=function(){return(Ie=c._ResizeBilinearGrad=c.asm.ResizeBilinearGrad).apply(null,arguments)},Ye=c._ResizeNearestNeighbor=function(){return(Ye=c._ResizeNearestNeighbor=c.asm.ResizeNearestNeighbor).apply(null,arguments)},It=c._ResizeNearestNeighborGrad=function(){return(It=c._ResizeNearestNeighborGrad=c.asm.ResizeNearestNeighborGrad).apply(null,arguments)},St=c._Reverse=function(){return(St=c._Reverse=c.asm.Reverse).apply(null,arguments)},He=c._RotateWithOffset=function(){return(He=c._RotateWithOffset=c.asm.RotateWithOffset).apply(null,arguments)},Ve=c._Round=function(){return(Ve=c._Round=c.asm.Round).apply(null,arguments)},zt=c._Rsqrt=function(){return(zt=c._Rsqrt=c.asm.Rsqrt).apply(null,arguments)},pa=c._ScatterNd=function(){return(pa=c._ScatterNd=c.asm.ScatterNd).apply(null,arguments)},Nr=c._SearchSorted=function(){return(Nr=c._SearchSorted=c.asm.SearchSorted).apply(null,arguments)},Nh=c._SelectV2=function(){return(Nh=c._SelectV2=c.asm.SelectV2).apply(null,arguments)},Zp=c._Selu=function(){return(Zp=c._Selu=c.asm.Selu).apply(null,arguments)},sx=c._Sigmoid=function(){return(sx=c._Sigmoid=c.asm.Sigmoid).apply(null,arguments)},Mn=c._Sign=function(){return(Mn=c._Sign=c.asm.Sign).apply(null,arguments)},es=c._Sin=function(){return(es=c._Sin=c.asm.Sin).apply(null,arguments)},Th=c._Sinh=function(){return(Th=c._Sinh=c.asm.Sinh).apply(null,arguments)},bD=c._Softmax=function(){return(bD=c._Softmax=c.asm.Softmax).apply(null,arguments)},yD=c._Softplus=function(){return(yD=c._Softplus=c.asm.Softplus).apply(null,arguments)},xD=c._SparseFillEmptyRows=function(){return(xD=c._SparseFillEmptyRows=c.asm.SparseFillEmptyRows).apply(null,arguments)},vD=c._SparseReshape=function(){return(vD=c._SparseReshape=c.asm.SparseReshape).apply(null,arguments)},wD=c._SparseSegmentReduction=function(){return(wD=c._SparseSegmentReduction=c.asm.SparseSegmentReduction).apply(null,arguments)},kD=c._SparseToDense=function(){return(kD=c._SparseToDense=c.asm.SparseToDense).apply(null,arguments)},ID=c._Sqrt=function(){return(ID=c._Sqrt=c.asm.Sqrt).apply(null,arguments)},SD=c._Square=function(){return(SD=c._Square=c.asm.Square).apply(null,arguments)},ND=c._SquaredDifference=function(){return(ND=c._SquaredDifference=c.asm.SquaredDifference).apply(null,arguments)},TD=c._Step=function(){return(TD=c._Step=c.asm.Step).apply(null,arguments)},CD=c._StridedSlice=function(){return(CD=c._StridedSlice=c.asm.StridedSlice).apply(null,arguments)},_D=c._Sub=function(){return(_D=c._Sub=c.asm.Sub).apply(null,arguments)},ED=c._Sum=function(){return(ED=c._Sum=c.asm.Sum).apply(null,arguments)},AD=c._Tan=function(){return(AD=c._Tan=c.asm.Tan).apply(null,arguments)},FD=c._Tanh=function(){return(FD=c._Tanh=c.asm.Tanh).apply(null,arguments)},$D=c._TensorScatterUpdate=function(){return($D=c._TensorScatterUpdate=c.asm.TensorScatterUpdate).apply(null,arguments)},DD=c._Tile=function(){return(DD=c._Tile=c.asm.Tile).apply(null,arguments)},RD=c._TopK=function(){return(RD=c._TopK=c.asm.TopK).apply(null,arguments)},MD=c._Transform=function(){return(MD=c._Transform=c.asm.Transform).apply(null,arguments)},PD=c._Transpose=function(){return(PD=c._Transpose=c.asm.Transpose).apply(null,arguments)},OD=c.__FusedMatMul=function(){return(OD=c.__FusedMatMul=c.asm._FusedMatMul).apply(null,arguments)},LD=c._malloc=function(){return(LD=c._malloc=c.asm.malloc).apply(null,arguments)},zD=c._free=function(){return(zD=c._free=c.asm.free).apply(null,arguments)},WD=c.__emscripten_tls_init=function(){return(WD=c.__emscripten_tls_init=c.asm._emscripten_tls_init).apply(null,arguments)},Ch=c._pthread_self=function(){return(Ch=c._pthread_self=c.asm.pthread_self).apply(null,arguments)},BD=c.___errno_location=function(){return(BD=c.___errno_location=c.asm.__errno_location).apply(null,arguments)},Jk=c.__emscripten_thread_init=function(){return(Jk=c.__emscripten_thread_init=c.asm._emscripten_thread_init).apply(null,arguments)},VD=c.__emscripten_thread_crashed=function(){return(VD=c.__emscripten_thread_crashed=c.asm._emscripten_thread_crashed).apply(null,arguments)},UD=c._emscripten_main_thread_process_queued_calls=function(){return(UD=c._emscripten_main_thread_process_queued_calls=c.asm.emscripten_main_thread_process_queued_calls).apply(null,arguments)},GD=c._emscripten_main_browser_thread_id=function(){return(GD=c._emscripten_main_browser_thread_id=c.asm.emscripten_main_browser_thread_id).apply(null,arguments)},Qk=c._emscripten_run_in_main_runtime_thread_js=function(){return(Qk=c._emscripten_run_in_main_runtime_thread_js=c.asm.emscripten_run_in_main_runtime_thread_js).apply(null,arguments)},HD=c._emscripten_dispatch_to_thread_=function(){return(HD=c._emscripten_dispatch_to_thread_=c.asm.emscripten_dispatch_to_thread_).apply(null,arguments)},eI=c.__emscripten_proxy_execute_task_queue=function(){return(eI=c.__emscripten_proxy_execute_task_queue=c.asm._emscripten_proxy_execute_task_queue).apply(null,arguments)},ix=c.__emscripten_thread_free_data=function(){return(ix=c.__emscripten_thread_free_data=c.asm._emscripten_thread_free_data).apply(null,arguments)},tI=c.__emscripten_thread_exit=function(){return(tI=c.__emscripten_thread_exit=c.asm._emscripten_thread_exit).apply(null,arguments)},nI=c._emscripten_stack_set_limits=function(){return(nI=c._emscripten_stack_set_limits=c.asm.emscripten_stack_set_limits).apply(null,arguments)},ox=c.stackSave=function(){return(ox=c.stackSave=c.asm.stackSave).apply(null,arguments)},_h=c.stackRestore=function(){return(_h=c.stackRestore=c.asm.stackRestore).apply(null,arguments)},Eh=c.stackAlloc=function(){return(Eh=c.stackAlloc=c.asm.stackAlloc).apply(null,arguments)},qD=c.dynCall_iijjiiii=function(){return(qD=c.dynCall_iijjiiii=c.asm.dynCall_iijjiiii).apply(null,arguments)},jD=c.dynCall_jiji=function(){return(jD=c.dynCall_jiji=c.asm.dynCall_jiji).apply(null,arguments)};c.keepRuntimeAlive=Na,c.wasmMemory=ue,c.cwrap=hb,c.ExitStatus=Gs,c.PThread=Ae;var Ah;Sr=function R(){Ah||aI(),Ah||(Sr=R)};function aI(R){if(R=R||b,Jr>0)return;if(C){h(c),Qt(),startWorker(c);return}if(Zr(),Jr>0)return;function q(){Ah||(Ah=!0,c.calledRun=!0,!ke&&(Qt(),h(c),c.onRuntimeInitialized&&c.onRuntimeInitialized(),sh()))}c.setStatus?(c.setStatus("Running..."),setTimeout(function(){setTimeout(function(){c.setStatus("")},1),q()},1)):q()}if(c.preInit)for(typeof c.preInit=="function"&&(c.preInit=[c.preInit]);c.preInit.length>0;)c.preInit.pop()();aI();var Fh;f&&(Fh={uncaughtException:process.listeners("uncaughtException").filter(function(R){return!f.uncaughtException.indexOf(R)>-1}),unhandledRejection:process.listeners("unhandledRejection").filter(function(R){return!f.unhandledRejection.indexOf(R)>-1})});var $h;if(typeof WasmBackendModule!="undefined")$h=WasmBackendModule;else if(typeof r!="undefined")$h=r;else throw new Error("Could not find wasm module in post.js");if(Fh){var KD=$h._dispose;$h._dispose=function(){KD(),Fh.uncaughtException.forEach(function(R){process.removeListener("uncaughtException",R)}),Fh.unhandledRejection.forEach(function(R){process.removeListener("unhandledRejection",R)})}}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)}),IR=Gt((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")+"//# sourceURL="+f)},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.startWorker=instance=>{Module=instance;postMessage({"cmd":"loaded"})};self.onmessage=e=>{try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;for(const handler of e.data.handlers){Module[handler]=function(){postMessage({cmd:"callHandler",handler:handler,args:[...arguments]})}}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)}else if(e.data.cmd==="run"){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}};`}),SR=Gt((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(Y,oe){i=Y,o=oe});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=(Y,oe)=>{throw oe},h=typeof window=="object",m=typeof importScripts=="function",f=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",g="";function b(Y){return s.locateFile?s.locateFile(Y,g):g+Y}var y,x,v,I;function T(Y){Y instanceof Tl||D("exiting due to exception: "+Y)}if(f){var C=Nv(),E=GS();m?g=E.dirname(g)+"/":g=__dirname+"/",y=(Y,oe)=>(Y=Zr(Y)?new URL(Y):E.normalize(Y),C.readFileSync(Y,oe?void 0:"utf8")),v=Y=>{var oe=y(Y,!0);return oe.buffer||(oe=new Uint8Array(oe)),oe},x=(Y,oe,Ie)=>{Y=Zr(Y)?new URL(Y):E.normalize(Y),C.readFile(Y,function(Ye,It){Ye?Ie(Ye):oe(It.buffer)})},process.argv.length>1&&(d=process.argv[1].replace(/\\/g,"/")),p=process.argv.slice(2),process.on("uncaughtException",function(Y){if(!(Y instanceof Tl))throw Y}),process.on("unhandledRejection",function(Y){throw Y}),c=(Y,oe)=>{if(jn())throw process.exitCode=Y,oe;T(oe),process.exit(Y)},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="",y=Y=>{var oe=new XMLHttpRequest;return oe.open("GET",Y,!1),oe.send(null),oe.responseText},m&&(v=Y=>{var oe=new XMLHttpRequest;return oe.open("GET",Y,!1),oe.responseType="arraybuffer",oe.send(null),new Uint8Array(oe.response)}),x=(Y,oe,Ie)=>{var Ye=new XMLHttpRequest;Ye.open("GET",Y,!0),Ye.responseType="arraybuffer",Ye.onload=()=>{if(Ye.status==200||Ye.status==0&&Ye.response){oe(Ye.response);return}Ie()},Ye.onerror=Ie,Ye.send(null)},I=Y=>document.title=Y);var F=s.print||console.log.bind(console),D=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 $=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,H;function j(Y,oe){Y||tr(oe)}var K=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function Z(Y,oe,Ie){oe>>>=0;for(var Ye=oe+Ie,It=oe;Y[It]&&!(It>=Ye);)++It;if(It-oe>16&&Y.buffer&&K)return K.decode(Y.subarray(oe,It));for(var St="";oe>10,56320|pa&1023)}}return St}function J(Y,oe){return Y>>>=0,Y?Z(ie,Y,oe):""}function ee(Y,oe,Ie,Ye){if(Ie>>>=0,!(Ye>0))return 0;for(var It=Ie,St=Ie+Ye-1,He=0;He=55296&&Ve<=57343){var zt=Y.charCodeAt(++He);Ve=65536+((Ve&1023)<<10)|zt&1023}if(Ve<=127){if(Ie>=St)break;oe[Ie++>>>0]=Ve}else if(Ve<=2047){if(Ie+1>=St)break;oe[Ie++>>>0]=192|Ve>>6,oe[Ie++>>>0]=128|Ve&63}else if(Ve<=65535){if(Ie+2>=St)break;oe[Ie++>>>0]=224|Ve>>12,oe[Ie++>>>0]=128|Ve>>6&63,oe[Ie++>>>0]=128|Ve&63}else{if(Ie+3>=St)break;oe[Ie++>>>0]=240|Ve>>18,oe[Ie++>>>0]=128|Ve>>12&63,oe[Ie++>>>0]=128|Ve>>6&63,oe[Ie++>>>0]=128|Ve&63}}return oe[Ie>>>0]=0,Ie-It}function ae(Y,oe,Ie){return ee(Y,ie,oe,Ie)}var te,re,ie,ye,ue,be,ke,Se,We;function Ge(Y){te=Y,s.HEAP8=re=new Int8Array(Y),s.HEAP16=ye=new Int16Array(Y),s.HEAP32=be=new Int32Array(Y),s.HEAPU8=ie=new Uint8Array(Y),s.HEAPU16=ue=new Uint16Array(Y),s.HEAPU32=ke=new Uint32Array(Y),s.HEAPF32=Se=new Float32Array(Y),s.HEAPF64=We=new Float64Array(Y)}var ht=s.INITIAL_MEMORY||16777216,st,at=[],rt=[],Me=[],ft=!1;function jn(){return M}function Lt(){if(s.preRun)for(typeof s.preRun=="function"&&(s.preRun=[s.preRun]);s.preRun.length;)$n(s.preRun.shift());Sr(at)}function la(){ft=!0,Sr(rt)}function cn(){if(s.postRun)for(typeof s.postRun=="function"&&(s.postRun=[s.postRun]);s.postRun.length;)Dn(s.postRun.shift());Sr(Me)}function $n(Y){at.unshift(Y)}function ua(Y){rt.unshift(Y)}function Dn(Y){Me.unshift(Y)}var lt=0,Rn=null,Kn=null;function Ir(Y){lt++,s.monitorRunDependencies&&s.monitorRunDependencies(lt)}function Nl(Y){if(lt--,s.monitorRunDependencies&&s.monitorRunDependencies(lt),lt==0&&(Rn!==null&&(clearInterval(Rn),Rn=null),Kn)){var oe=Kn;Kn=null,oe()}}function tr(Y){s.onAbort&&s.onAbort(Y),Y="Aborted("+Y+")",D(Y),U=!0,H=1,Y+=". Build with -sASSERTIONS for more info.";var oe=new WebAssembly.RuntimeError(Y);throw o(oe),oe}var Gp="data:application/octet-stream;base64,";function Na(Y){return Y.startsWith(Gp)}function Zr(Y){return Y.startsWith("file://")}var Qt;Qt="tfjs-backend-wasm.wasm",Na(Qt)||(Qt=b(Qt));function sh(Y){try{if(Y==Qt&&S)return new Uint8Array(S);if(v)return v(Y);throw"both async and sync fetching of the wasm failed"}catch(oe){tr(oe)}}function Ag(){if(!S&&(h||m)){if(typeof fetch=="function"&&!Zr(Qt))return fetch(Qt,{credentials:"same-origin"}).then(function(Y){if(!Y.ok)throw"failed to load wasm binary file at '"+Qt+"'";return Y.arrayBuffer()}).catch(function(){return sh(Qt)});if(x)return new Promise(function(Y,oe){x(Qt,function(Ie){Y(new Uint8Array(Ie))},oe)})}return Promise.resolve().then(function(){return sh(Qt)})}function Fg(){var Y={env:Hp,wasi_snapshot_preview1:Hp};function oe(He,Ve){var zt=He.exports;s.asm=zt,B=s.asm.memory,Ge(B.buffer),st=s.asm.__indirect_function_table,ua(s.asm.__wasm_call_ctors),Nl("wasm-instantiate")}Ir("wasm-instantiate");function Ie(He){oe(He.instance)}function Ye(He){return Ag().then(function(Ve){return WebAssembly.instantiate(Ve,Y)}).then(function(Ve){return Ve}).then(He,function(Ve){D("failed to asynchronously prepare wasm: "+Ve),tr(Ve)})}function It(){return!S&&typeof WebAssembly.instantiateStreaming=="function"&&!Na(Qt)&&!Zr(Qt)&&!f&&typeof fetch=="function"?fetch(Qt,{credentials:"same-origin"}).then(function(He){var Ve=WebAssembly.instantiateStreaming(He,Y);return Ve.then(Ie,function(zt){return D("wasm streaming compile failed: "+zt),D("falling back to ArrayBuffer instantiation"),Ye(Ie)})}):Ye(Ie)}if(s.instantiateWasm)try{var St=s.instantiateWasm(Y,oe);return St}catch(He){D("Module.instantiateWasm callback failed with error: "+He),o(He)}return It().catch(o),{}}var Kk,Jr;function Tl(Y){this.name="ExitStatus",this.message="Program terminated with exit("+Y+")",this.status=Y}function Sr(Y){for(;Y.length>0;)Y.shift()(s)}function $g(){tr("")}function ih(){return 4294901760}function Us(){return ih()}function Dg(Y,oe,Ie){ie.copyWithin(Y>>>0,oe>>>0,oe+Ie>>>0)}function oh(Y){try{return B.grow(Y-te.byteLength+65535>>>16),Ge(B.buffer),1}catch(oe){}}function Cl(Y){var oe=ie.length;Y=Y>>>0;var Ie=ih();if(Y>Ie)return!1;let Ye=(zt,pa)=>zt+(pa-zt%pa)%pa;for(var It=1;It<=4;It*=2){var St=oe*(1+.2/It);St=Math.min(St,Y+100663296);var He=Math.min(Ie,Ye(Math.max(Y,St),65536)),Ve=oh(He);if(Ve)return!0}return!1}var gn={varargs:void 0,get:function(){gn.varargs+=4;var Y=be[gn.varargs-4>>>2];return Y},getStr:function(Y){var oe=J(Y);return oe}};function lh(Y){return 52}function Rg(Y,oe,Ie,Ye,It){return 70}var Mg=[null,[],[]];function Xk(Y,oe){var Ie=Mg[Y];oe===0||oe===10?((Y===1?F:D)(Z(Ie,0)),Ie.length=0):Ie.push(oe)}function Yk(Y,oe,Ie,Ye){for(var It=0,St=0;St>>2],Ve=ke[oe+4>>>2];oe+=8;for(var zt=0;zt>>0]);It+=Ve}return ke[Ye>>>2]=It,0}function uh(Y){var oe=s["_"+Y];return oe}function Gs(Y,oe){re.set(Y,oe>>>0)}function Pg(Y,oe,Ie,Ye,It){var St={string:Mn=>{var es=0;if(Mn!=null&&Mn!==0){var Th=(Mn.length<<2)+1;es=Yp(Th),ae(Mn,es,Th)}return es},array:Mn=>{var es=Yp(Mn.length);return Gs(Mn,es),es}};function He(Mn){return oe==="string"?J(Mn):oe==="boolean"?!!Mn:Mn}var Ve=uh(Y),zt=[],pa=0;if(Ye)for(var Nr=0;NrHe==="number"||He==="boolean"),St=oe!=="string";return St&&It&&!Ye?uh(Y):function(){return Pg(Y,oe,Ie,arguments,Ye)}}var Hp={abort:$g,emscripten_get_heap_max:Us,emscripten_memcpy_big:Dg,emscripten_resize_heap:Cl,fd_close:lh,fd_seek:Rg,fd_write:Yk},Lg=Fg(),ph=s.___wasm_call_ctors=function(){return(ph=s.___wasm_call_ctors=s.asm.__wasm_call_ctors).apply(null,arguments)},ch=s._init=function(){return(ch=s._init=s.asm.init).apply(null,arguments)},zg=s._init_with_threads_count=function(){return(zg=s._init_with_threads_count=s.asm.init_with_threads_count).apply(null,arguments)},dh=s._get_threads_count=function(){return(dh=s._get_threads_count=s.asm.get_threads_count).apply(null,arguments)},Wg=s._register_tensor=function(){return(Wg=s._register_tensor=s.asm.register_tensor).apply(null,arguments)},Ae=s._dispose_data=function(){return(Ae=s._dispose_data=s.asm.dispose_data).apply(null,arguments)},qp=s._dispose=function(){return(qp=s._dispose=s.asm.dispose).apply(null,arguments)},Bg=s._Abs=function(){return(Bg=s._Abs=s.asm.Abs).apply(null,arguments)},hh=s._Acos=function(){return(hh=s._Acos=s.asm.Acos).apply(null,arguments)},_l=s._Acosh=function(){return(_l=s._Acosh=s.asm.Acosh).apply(null,arguments)},Vg=s._Add=function(){return(Vg=s._Add=s.asm.Add).apply(null,arguments)},Ug=s._AddN=function(){return(Ug=s._AddN=s.asm.AddN).apply(null,arguments)},Gg=s._All=function(){return(Gg=s._All=s.asm.All).apply(null,arguments)},Hg=s._Any=function(){return(Hg=s._Any=s.asm.Any).apply(null,arguments)},qg=s._ArgMax=function(){return(qg=s._ArgMax=s.asm.ArgMax).apply(null,arguments)},mh=s._ArgMin=function(){return(mh=s._ArgMin=s.asm.ArgMin).apply(null,arguments)},fh=s._Asin=function(){return(fh=s._Asin=s.asm.Asin).apply(null,arguments)},jg=s._Asinh=function(){return(jg=s._Asinh=s.asm.Asinh).apply(null,arguments)},Kg=s._Atan=function(){return(Kg=s._Atan=s.asm.Atan).apply(null,arguments)},Xg=s._Atan2=function(){return(Xg=s._Atan2=s.asm.Atan2).apply(null,arguments)},jp=s._Atanh=function(){return(jp=s._Atanh=s.asm.Atanh).apply(null,arguments)},Yg=s._AvgPool=function(){return(Yg=s._AvgPool=s.asm.AvgPool).apply(null,arguments)},Zg=s._AvgPool3D=function(){return(Zg=s._AvgPool3D=s.asm.AvgPool3D).apply(null,arguments)},Jg=s._AvgPool3DGrad=function(){return(Jg=s._AvgPool3DGrad=s.asm.AvgPool3DGrad).apply(null,arguments)},Hs=s._AvgPoolGrad=function(){return(Hs=s._AvgPoolGrad=s.asm.AvgPoolGrad).apply(null,arguments)},Qg=s._BatchMatMul=function(){return(Qg=s._BatchMatMul=s.asm.BatchMatMul).apply(null,arguments)},eb=s._Bincount=function(){return(eb=s._Bincount=s.asm.Bincount).apply(null,arguments)},gh=s._BitwiseAnd=function(){return(gh=s._BitwiseAnd=s.asm.BitwiseAnd).apply(null,arguments)},tb=s._Ceil=function(){return(tb=s._Ceil=s.asm.Ceil).apply(null,arguments)},Kp=s._ClipByValue=function(){return(Kp=s._ClipByValue=s.asm.ClipByValue).apply(null,arguments)},nb=s._Conv2D=function(){return(nb=s._Conv2D=s.asm.Conv2D).apply(null,arguments)},ab=s._Conv2DBackpropInput=function(){return(ab=s._Conv2DBackpropInput=s.asm.Conv2DBackpropInput).apply(null,arguments)},rb=s._Conv3D=function(){return(rb=s._Conv3D=s.asm.Conv3D).apply(null,arguments)},Qr=s._Conv3DBackpropFilterV2=function(){return(Qr=s._Conv3DBackpropFilterV2=s.asm.Conv3DBackpropFilterV2).apply(null,arguments)},Xp=s._Conv3DBackpropInputV2=function(){return(Xp=s._Conv3DBackpropInputV2=s.asm.Conv3DBackpropInputV2).apply(null,arguments)},sb=s._Cos=function(){return(sb=s._Cos=s.asm.Cos).apply(null,arguments)},ib=s._Cosh=function(){return(ib=s._Cosh=s.asm.Cosh).apply(null,arguments)},ob=s._CropAndResize=function(){return(ob=s._CropAndResize=s.asm.CropAndResize).apply(null,arguments)},lb=s._Cumprod=function(){return(lb=s._Cumprod=s.asm.Cumprod).apply(null,arguments)},bh=s._Cumsum=function(){return(bh=s._Cumsum=s.asm.Cumsum).apply(null,arguments)},yh=s._DenseBincount=function(){return(yh=s._DenseBincount=s.asm.DenseBincount).apply(null,arguments)},ub=s._DepthToSpace=function(){return(ub=s._DepthToSpace=s.asm.DepthToSpace).apply(null,arguments)},pb=s._DepthwiseConv2dNative=function(){return(pb=s._DepthwiseConv2dNative=s.asm.DepthwiseConv2dNative).apply(null,arguments)},xh=s._Diag=function(){return(xh=s._Diag=s.asm.Diag).apply(null,arguments)},vh=s._Dilation2D=function(){return(vh=s._Dilation2D=s.asm.Dilation2D).apply(null,arguments)},cb=s._Dilation2DBackpropFilter=function(){return(cb=s._Dilation2DBackpropFilter=s.asm.Dilation2DBackpropFilter).apply(null,arguments)},db=s._Dilation2DBackpropInput=function(){return(db=s._Dilation2DBackpropInput=s.asm.Dilation2DBackpropInput).apply(null,arguments)},hb=s._Elu=function(){return(hb=s._Elu=s.asm.Elu).apply(null,arguments)},mb=s._EluGrad=function(){return(mb=s._EluGrad=s.asm.EluGrad).apply(null,arguments)},wh=s._Equal=function(){return(wh=s._Equal=s.asm.Equal).apply(null,arguments)},Zk=s._Erf=function(){return(Zk=s._Erf=s.asm.Erf).apply(null,arguments)},fb=s._Exp=function(){return(fb=s._Exp=s.asm.Exp).apply(null,arguments)},gb=s._Expm1=function(){return(gb=s._Expm1=s.asm.Expm1).apply(null,arguments)},bb=s._FlipLeftRight=function(){return(bb=s._FlipLeftRight=s.asm.FlipLeftRight).apply(null,arguments)},yb=s._Floor=function(){return(yb=s._Floor=s.asm.Floor).apply(null,arguments)},xb=s._FloorDiv=function(){return(xb=s._FloorDiv=s.asm.FloorDiv).apply(null,arguments)},vb=s._FusedBatchNorm=function(){return(vb=s._FusedBatchNorm=s.asm.FusedBatchNorm).apply(null,arguments)},wb=s._FusedConv2D=function(){return(wb=s._FusedConv2D=s.asm.FusedConv2D).apply(null,arguments)},kb=s._FusedDepthwiseConv2D=function(){return(kb=s._FusedDepthwiseConv2D=s.asm.FusedDepthwiseConv2D).apply(null,arguments)},Ib=s._Gather=function(){return(Ib=s._Gather=s.asm.Gather).apply(null,arguments)},Sb=s._GatherNd=function(){return(Sb=s._GatherNd=s.asm.GatherNd).apply(null,arguments)},Nb=s._Greater=function(){return(Nb=s._Greater=s.asm.Greater).apply(null,arguments)},Tb=s._GreaterEqual=function(){return(Tb=s._GreaterEqual=s.asm.GreaterEqual).apply(null,arguments)},Cb=s._IsFinite=function(){return(Cb=s._IsFinite=s.asm.IsFinite).apply(null,arguments)},_b=s._IsInf=function(){return(_b=s._IsInf=s.asm.IsInf).apply(null,arguments)},Eb=s._IsNan=function(){return(Eb=s._IsNan=s.asm.IsNan).apply(null,arguments)},Ab=s._LRN=function(){return(Ab=s._LRN=s.asm.LRN).apply(null,arguments)},Fb=s._LRNGrad=function(){return(Fb=s._LRNGrad=s.asm.LRNGrad).apply(null,arguments)},$b=s._LeakyRelu=function(){return($b=s._LeakyRelu=s.asm.LeakyRelu).apply(null,arguments)},Db=s._Less=function(){return(Db=s._Less=s.asm.Less).apply(null,arguments)},Rb=s._LessEqual=function(){return(Rb=s._LessEqual=s.asm.LessEqual).apply(null,arguments)},Mb=s._LinSpace=function(){return(Mb=s._LinSpace=s.asm.LinSpace).apply(null,arguments)},Pb=s._Log=function(){return(Pb=s._Log=s.asm.Log).apply(null,arguments)},Ob=s._Log1p=function(){return(Ob=s._Log1p=s.asm.Log1p).apply(null,arguments)},Lb=s._LogicalAnd=function(){return(Lb=s._LogicalAnd=s.asm.LogicalAnd).apply(null,arguments)},zb=s._LogicalNot=function(){return(zb=s._LogicalNot=s.asm.LogicalNot).apply(null,arguments)},Wb=s._LogicalOr=function(){return(Wb=s._LogicalOr=s.asm.LogicalOr).apply(null,arguments)},Bb=s._LogicalXor=function(){return(Bb=s._LogicalXor=s.asm.LogicalXor).apply(null,arguments)},Vb=s._Max=function(){return(Vb=s._Max=s.asm.Max).apply(null,arguments)},Ub=s._MaxPool=function(){return(Ub=s._MaxPool=s.asm.MaxPool).apply(null,arguments)},Gb=s._MaxPool3D=function(){return(Gb=s._MaxPool3D=s.asm.MaxPool3D).apply(null,arguments)},Hb=s._MaxPool3DGrad=function(){return(Hb=s._MaxPool3DGrad=s.asm.MaxPool3DGrad).apply(null,arguments)},qb=s._MaxPoolGrad=function(){return(qb=s._MaxPoolGrad=s.asm.MaxPoolGrad).apply(null,arguments)},jb=s._MaxPoolWithArgmax=function(){return(jb=s._MaxPoolWithArgmax=s.asm.MaxPoolWithArgmax).apply(null,arguments)},Kb=s._Maximum=function(){return(Kb=s._Maximum=s.asm.Maximum).apply(null,arguments)},Xb=s._Mean=function(){return(Xb=s._Mean=s.asm.Mean).apply(null,arguments)},Yb=s._Min=function(){return(Yb=s._Min=s.asm.Min).apply(null,arguments)},Zb=s._Minimum=function(){return(Zb=s._Minimum=s.asm.Minimum).apply(null,arguments)},Jb=s._MirrorPad=function(){return(Jb=s._MirrorPad=s.asm.MirrorPad).apply(null,arguments)},Qb=s._Mod=function(){return(Qb=s._Mod=s.asm.Mod).apply(null,arguments)},ey=s._Multinomial=function(){return(ey=s._Multinomial=s.asm.Multinomial).apply(null,arguments)},ty=s._Multiply=function(){return(ty=s._Multiply=s.asm.Multiply).apply(null,arguments)},ny=s._Neg=function(){return(ny=s._Neg=s.asm.Neg).apply(null,arguments)},ay=s._NonMaxSuppressionV3=function(){return(ay=s._NonMaxSuppressionV3=s.asm.NonMaxSuppressionV3).apply(null,arguments)},ry=s._NonMaxSuppressionV4=function(){return(ry=s._NonMaxSuppressionV4=s.asm.NonMaxSuppressionV4).apply(null,arguments)},sy=s._NonMaxSuppressionV5=function(){return(sy=s._NonMaxSuppressionV5=s.asm.NonMaxSuppressionV5).apply(null,arguments)},iy=s._NotEqual=function(){return(iy=s._NotEqual=s.asm.NotEqual).apply(null,arguments)},oy=s._OneHot=function(){return(oy=s._OneHot=s.asm.OneHot).apply(null,arguments)},ly=s._PadV2=function(){return(ly=s._PadV2=s.asm.PadV2).apply(null,arguments)},uy=s._Pow=function(){return(uy=s._Pow=s.asm.Pow).apply(null,arguments)},py=s._Prelu=function(){return(py=s._Prelu=s.asm.Prelu).apply(null,arguments)},cy=s._Prod=function(){return(cy=s._Prod=s.asm.Prod).apply(null,arguments)},dy=s._RealDiv=function(){return(dy=s._RealDiv=s.asm.RealDiv).apply(null,arguments)},hy=s._Reciprocal=function(){return(hy=s._Reciprocal=s.asm.Reciprocal).apply(null,arguments)},my=s._Relu=function(){return(my=s._Relu=s.asm.Relu).apply(null,arguments)},fy=s._Relu6=function(){return(fy=s._Relu6=s.asm.Relu6).apply(null,arguments)},gy=s._ResizeBilinear=function(){return(gy=s._ResizeBilinear=s.asm.ResizeBilinear).apply(null,arguments)},by=s._ResizeBilinearGrad=function(){return(by=s._ResizeBilinearGrad=s.asm.ResizeBilinearGrad).apply(null,arguments)},yy=s._ResizeNearestNeighbor=function(){return(yy=s._ResizeNearestNeighbor=s.asm.ResizeNearestNeighbor).apply(null,arguments)},xy=s._ResizeNearestNeighborGrad=function(){return(xy=s._ResizeNearestNeighborGrad=s.asm.ResizeNearestNeighborGrad).apply(null,arguments)},vy=s._Reverse=function(){return(vy=s._Reverse=s.asm.Reverse).apply(null,arguments)},wy=s._RotateWithOffset=function(){return(wy=s._RotateWithOffset=s.asm.RotateWithOffset).apply(null,arguments)},ky=s._Round=function(){return(ky=s._Round=s.asm.Round).apply(null,arguments)},Iy=s._Rsqrt=function(){return(Iy=s._Rsqrt=s.asm.Rsqrt).apply(null,arguments)},Sy=s._ScatterNd=function(){return(Sy=s._ScatterNd=s.asm.ScatterNd).apply(null,arguments)},Ny=s._SearchSorted=function(){return(Ny=s._SearchSorted=s.asm.SearchSorted).apply(null,arguments)},Ty=s._SelectV2=function(){return(Ty=s._SelectV2=s.asm.SelectV2).apply(null,arguments)},Cy=s._Selu=function(){return(Cy=s._Selu=s.asm.Selu).apply(null,arguments)},_y=s._Sigmoid=function(){return(_y=s._Sigmoid=s.asm.Sigmoid).apply(null,arguments)},Ey=s._Sign=function(){return(Ey=s._Sign=s.asm.Sign).apply(null,arguments)},Ay=s._Sin=function(){return(Ay=s._Sin=s.asm.Sin).apply(null,arguments)},Fy=s._Sinh=function(){return(Fy=s._Sinh=s.asm.Sinh).apply(null,arguments)},$y=s._Softmax=function(){return($y=s._Softmax=s.asm.Softmax).apply(null,arguments)},Dy=s._Softplus=function(){return(Dy=s._Softplus=s.asm.Softplus).apply(null,arguments)},Ry=s._SparseFillEmptyRows=function(){return(Ry=s._SparseFillEmptyRows=s.asm.SparseFillEmptyRows).apply(null,arguments)},My=s._SparseReshape=function(){return(My=s._SparseReshape=s.asm.SparseReshape).apply(null,arguments)},Py=s._SparseSegmentReduction=function(){return(Py=s._SparseSegmentReduction=s.asm.SparseSegmentReduction).apply(null,arguments)},Oy=s._SparseToDense=function(){return(Oy=s._SparseToDense=s.asm.SparseToDense).apply(null,arguments)},Ly=s._Sqrt=function(){return(Ly=s._Sqrt=s.asm.Sqrt).apply(null,arguments)},zy=s._Square=function(){return(zy=s._Square=s.asm.Square).apply(null,arguments)},Wy=s._SquaredDifference=function(){return(Wy=s._SquaredDifference=s.asm.SquaredDifference).apply(null,arguments)},By=s._Step=function(){return(By=s._Step=s.asm.Step).apply(null,arguments)},Vy=s._StridedSlice=function(){return(Vy=s._StridedSlice=s.asm.StridedSlice).apply(null,arguments)},Uy=s._Sub=function(){return(Uy=s._Sub=s.asm.Sub).apply(null,arguments)},Gy=s._Sum=function(){return(Gy=s._Sum=s.asm.Sum).apply(null,arguments)},Hy=s._Tan=function(){return(Hy=s._Tan=s.asm.Tan).apply(null,arguments)},qy=s._Tanh=function(){return(qy=s._Tanh=s.asm.Tanh).apply(null,arguments)},jy=s._TensorScatterUpdate=function(){return(jy=s._TensorScatterUpdate=s.asm.TensorScatterUpdate).apply(null,arguments)},Ky=s._Tile=function(){return(Ky=s._Tile=s.asm.Tile).apply(null,arguments)},Xy=s._TopK=function(){return(Xy=s._TopK=s.asm.TopK).apply(null,arguments)},Yy=s._Transform=function(){return(Yy=s._Transform=s.asm.Transform).apply(null,arguments)},Zy=s._Transpose=function(){return(Zy=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)},ex=s._free=function(){return(ex=s._free=s.asm.free).apply(null,arguments)},tx=s.___errno_location=function(){return(tx=s.___errno_location=s.asm.__errno_location).apply(null,arguments)},kh=s.stackSave=function(){return(kh=s.stackSave=s.asm.stackSave).apply(null,arguments)},Ih=s.stackRestore=function(){return(Ih=s.stackRestore=s.asm.stackRestore).apply(null,arguments)},Yp=s.stackAlloc=function(){return(Yp=s.stackAlloc=s.asm.stackAlloc).apply(null,arguments)},nx=s.dynCall_iijjiiii=function(){return(nx=s.dynCall_iijjiiii=s.asm.dynCall_iijjiiii).apply(null,arguments)},ax=s.dynCall_jiji=function(){return(ax=s.dynCall_jiji=s.asm.dynCall_jiji).apply(null,arguments)};s.cwrap=Og;var El;Kn=function Y(){El||Sh(),El||(Kn=Y)};function Sh(Y){if(Y=Y||p,lt>0||(Lt(),lt>0))return;function oe(){El||(El=!0,s.calledRun=!0,!U&&(la(),i(s),s.onRuntimeInitialized&&s.onRuntimeInitialized(),cn()))}s.setStatus?(s.setStatus("Running..."),setTimeout(function(){setTimeout(function(){s.setStatus("")},1),oe()},1)):oe()}if(s.preInit)for(typeof s.preInit=="function"&&(s.preInit=[s.preInit]);s.preInit.length>0;)s.preInit.pop()();Sh();var Al;l&&(Al={uncaughtException:process.listeners("uncaughtException").filter(function(Y){return!l.uncaughtException.indexOf(Y)>-1}),unhandledRejection:process.listeners("unhandledRejection").filter(function(Y){return!l.unhandledRejection.indexOf(Y)>-1})});var Fl;if(typeof r!="undefined")Fl=r;else if(typeof WasmBackendModuleThreadedSimd!="undefined")Fl=WasmBackendModuleThreadedSimd;else throw new Error("Could not find wasm module in post.js");if(Al){var rx=Fl._dispose;Fl._dispose=function(){rx(),Al.uncaughtException.forEach(function(Y){process.removeListener("uncaughtException",Y)}),Al.unhandledRejection.forEach(function(Y){process.removeListener("unhandledRejection",Y)})}}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)}),Rm=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}},Mc=class{refCount(e){return Xn("refCount")}incRef(e){return Xn("incRef")}timerAvailable(){return!0}time(e){return Xn("time")}read(e){return Xn("read")}readSync(e){return Xn("readSync")}readToGPU(e,t){return Xn("readToGPU")}numDataIds(){return Xn("numDataIds")}disposeData(e,t){return Xn("disposeData")}write(e,t,n){return Xn("write")}move(e,t,n,a,r){return Xn("move")}createTensorFromGPUData(e,t,n){return Xn("createTensorFromGPUData")}memory(){return Xn("memory")}floatPrecision(){return Xn("floatPrecision")}epsilon(){return this.floatPrecision()===32?1e-7:1e-4}dispose(){return Xn("dispose")}};function Xn(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 HS(e){let t=e.length,n=0;for(;t>0;)n=Math.random()*t|0,t--,am(e,t,n)}function NR(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--,am(e,n,a),am(t,n,a)}function bc(e,t,n){return Math.max(e,Math.min(t,n))}function TR(e){return e%2===0?e:e+1}function am(e,t,n){let a=e[t];e[t]=e[n],e[n]=a}function CR(e){let t=0;for(let n=0;nn+` Shapes ${e} and ${t} must match`)}function Ni(e){A(e!=null,()=>"The input to the tensor constructor must be a non-null value.")}function bt(e){if(e.length===0)return 1;let t=e[0];for(let n=1;n0,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 MR(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=>Bl(a)),()=>`All values in axis param must be integers but got axis ${e}`),e.map(a=>a<0?n+a:a)}function jS(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 KS(e,t){return Tv(e,t)}function Tv(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 XS(e,t){for(let n=0;nt+=n.length),t}function rs(e){return typeof e=="string"||e instanceof String}function JS(e){return typeof e=="boolean"}function QS(e){return typeof e=="number"}function Pc(e){return Array.isArray(e)?Pc(e[0]):e instanceof Float32Array?"float32":e instanceof Int32Array||e instanceof Uint8Array||e instanceof Uint8ClampedArray?"int32":QS(e)?"float32":rs(e)?"string":JS(e)?"bool":"float32"}function cs(e){return!!(e&&e.constructor&&e.call&&e.apply)}function sm(e,t){for(let n=t;n=0;--a)n[a]=n[a+1]*e[a+1];return n}function eN(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 eN(0,e,t,n)}function OR(e,t){if(Array.isArray(e))return e;if(t==="float32")return e instanceof Float32Array?e:new Float32Array(e);if(t==="int32")return e instanceof Int32Array?e:new Int32Array(e);if(t==="bool"||t==="string")return Uint8Array.from(new Int32Array(e));throw new Error(`Unknown dtype ${t}`)}function Cv(e,t){let n=Mm(e,t);for(let a=0;aa*r,1);if(t==null||t==="float32")return Ol(e,new Float32Array(n));if(t==="int32")return Ol(e,new Int32Array(n));if(t==="bool")return Ol(e,new Uint8Array(n));throw new Error(`Unknown data type ${t}`)}function sa(e){e.forEach(t=>{A(Number.isInteger(t)&&t>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${e}].`)})}function zR(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]=UR(n,a)})}};function BR(e){let t={};return e.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(n,...a)=>(VR(t,a[0],a[1]),a.join("="))),t}function VR(e,t,n){e[decodeURIComponent(t)]=decodeURIComponent(n||"")}function UR(e,t){let n=t.toLowerCase();return n==="true"||n==="false"?n==="true":`${+n}`===n?+n:t}function G(){return _v}var _v=null;function GR(e){_v=e}var px;function nN(){if(px==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");px=e}return px}function HR(){let e=nN();return e._tfGlobals==null&&(e._tfGlobals=new Map),e._tfGlobals}function Ev(e,t){let n=HR();if(n.has(e))return n.get(e);{let a=t();return n.set(e,a),n.get(e)}}var lu="Abs",Ti="Acos",Ci="Acosh",Is="Add",_i="AddN",uu="All",pu="Any",cu="ArgMax",du="ArgMin",Ei="Asin",Ai="Asinh",Fi="Atan",$i="Atanh",Di="Atan2",Ri="AvgPool",Oc="AvgPoolGrad",hu="AvgPool3D",Lc="AvgPool3DGrad",Mi="BatchMatMul",mu="BatchToSpaceND",fu="Bincount",gu="BitwiseAnd",aN="BroadcastTo",zc="BroadcastArgs",Pi="Cast",Oi="Ceil",Ss="ClipByValue",Om="Complex",Wc="ComplexAbs",bu="Concat",Li="Conv2D",Lm="Conv2DBackpropFilter",zi="Conv2DBackpropInput",Wi="Conv3D",yu="Conv3DBackpropFilterV2",xu="Conv3DBackpropInputV2",Bi="Cos",Vi="Cosh",vu="Cumprod",Ui="Cumsum",wu="CropAndResize",Bc="DenseBincount",ku="DepthToSpace",Gi="DepthwiseConv2dNative",zm="DepthwiseConv2dNativeBackpropFilter",Wm="DepthwiseConv2dNativeBackpropInput",Vc="Diag",Hi="Dilation2D",Vl="Dilation2DBackpropInput",Ul="Dilation2DBackpropFilter",Av="Draw",qi="RealDiv",Bm="Einsum",ji="Elu",Iu="EluGrad",Ki="Erf",Su="Equal",Xi="Exp",Nu="ExpandDims",Yi="Expm1",Vm="FFT",Uc="Fill",Tu="FlipLeftRight",Zi="Floor",Ji="FloorDiv",Qi="FusedBatchNorm",Cu="GatherV2",_u="GatherNd",Eu="Greater",eo="GreaterEqual",to="Identity",Um="IFFT",Gm="Imag",no="IsFinite",ao="IsInf",ro="IsNan",so="LeakyRelu",Au="Less",Fu="LessEqual",$u="LinSpace",io="Log",oo="Log1p",Du="LogicalAnd",Ru="LogicalNot",Mu="LogicalOr",rN="LogicalXor",sN="LogSoftmax",qR="LowerBound",lo="LRN",Pu="LRNGrad",jR="MatrixBandPart",uo="Max",po="Maximum",co="MaxPool",Gc="MaxPoolGrad",Ou="MaxPool3D",Hc="MaxPool3DGrad",qc="MaxPoolWithArgmax",ho="Mean",mo="Min",fo="Minimum",go="MirrorPad",bo="Mod",Lu="Multinomial",yo="Multiply",zu="Neg",Wu="NotEqual",Bu="NonMaxSuppressionV3",Vu="NonMaxSuppressionV4",Uu="NonMaxSuppressionV5",Gu="OnesLike",xo="OneHot",Hu="Pack",vo="PadV2",KR="Pool",wo="Pow",ko="Prelu",Io="Prod",Hm="RaggedGather",qm="RaggedRange",jm="RaggedTensorToTensor",jc="Range",Km="Real",So="Reciprocal",No="Relu",qu="Reshape",To="ResizeNearestNeighbor",ju="ResizeNearestNeighborGrad",Co="ResizeBilinear",Ku="ResizeBilinearGrad",_o="Relu6",Eo="Reverse",Ao="Round",Fo="Rsqrt",Xu="ScatterNd",Yu="TensorScatterUpdate",Zu="SearchSorted",Ju="Select",$o="Selu",Qu="Slice",Do="Sin",Ro="Sinh",Mo="Sign",Po="Sigmoid",Oo="Softplus",Lo="Sqrt",zo="Sum",ep="SpaceToBatchND",tp="SplitV",Wo="Softmax",Kc="SparseFillEmptyRows",np="SparseReshape",Xc="SparseSegmentMean",Yc="SparseSegmentSum",ap="SparseToDense",Bo="SquaredDifference",Zc="Square",Jc="StaticRegexReplace",rp="StridedSlice",Qc="StringNGrams",ed="StringSplit",td="StringToHashBucketFast",Vo="Sub",Uo="Tan",Go="Tanh",Ns="Tile",sp="TopK",ip="Transform",$r="Transpose",nd="Unique",op="Unpack",ad="UnsortedSegmentSum",XR="UpperBound",lp="ZerosLike",Ts="Step",im="FromPixels",up="RotateWithOffset",oi="_FusedMatMul",li="FusedConv2D",ui="FusedDepthwiseConv2D";function as(...e){G().getBool("IS_TEST")||G().getBool("PROD")||console.warn(...e)}function YR(...e){G().getBool("IS_TEST")||G().getBool("PROD")||console.log(...e)}var Gl=Ev("kernelRegistry",()=>new Map),yc=Ev("gradRegistry",()=>new Map);function om(e,t){let n=Fv(e,t);return Gl.get(n)}function Tx(e){return yc.get(e)}function lm(e){let t=Gl.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 rd(e){let{kernelName:t,backendName:n}=e,a=Fv(t,n);Gl.has(a)&&as(`The kernel '${t}' for backend '${n}' is already registered`),Gl.set(a,e)}function iN(e){let{kernelName:t}=e;yc.has(t)&&G().getBool("DEBUG")&&as(`Overriding the gradient for '${t}'`),yc.set(t,e)}function ZR(e,t){let n=Fv(e,t);if(!Gl.has(n))throw new Error(`The kernel '${e}' for backend '${t}' is not registered`);Gl.delete(n)}function JR(e){if(!yc.has(e))throw new Error(`The gradient '${e}' for backend is not registered`);yc.delete(e)}function QR(e,t){lm(e).forEach(n=>{let a=Object.assign({},n,{backendName:t});rd(a)})}function Fv(e,t){return`${t}_${e}`}var w={};Ee(w,{arraysEqual:()=>Pr,arraysEqualWithNull:()=>qS,assert:()=>A,assertNonNegativeIntegerDimensions:()=>sa,assertNonNull:()=>Ni,assertShapesMatch:()=>Tn,bytesFromStringArray:()=>ZS,bytesPerElement:()=>rm,checkConversionForErrors:()=>XS,clamp:()=>bc,computeStrides:()=>ou,convertBackendValuesAndArrayBuffer:()=>OR,createScalarValue:()=>sM,createShuffledIndices:()=>DR,decodeString:()=>um,distSquared:()=>ER,encodeString:()=>id,fetch:()=>oM,fingerPrint64:()=>rM,flatten:()=>ds,getArrayFromDType:()=>Tv,getTypedArrayFromDType:()=>KS,hasEncodingLoss:()=>PR,hexToLong:()=>sd,indexToLoc:()=>WR,inferDtype:()=>Pc,inferFromImplicitShape:()=>MR,isBoolean:()=>JS,isFunction:()=>cs,isInt:()=>Bl,isNumber:()=>QS,isPromise:()=>Pm,isScalarShape:()=>AR,isString:()=>rs,isTypedArray:()=>tn,isValidDtype:()=>YS,locToIndex:()=>zR,makeOnesTypedArray:()=>Cv,makeZerosNestedTypedArray:()=>LR,makeZerosTypedArray:()=>Mm,nearestDivisor:()=>sm,nearestLargerEven:()=>TR,now:()=>xc,parseAxisParam:()=>Ra,randUniform:()=>_R,repeatedTry:()=>RR,rightPad:()=>hc,shuffle:()=>HS,shuffleCombo:()=>NR,sizeFromShape:()=>bt,sizeToSquarishShape:()=>$R,squeezeShape:()=>jS,sum:()=>CR,swap:()=>am,tanh:()=>FR,toNestedArray:()=>Ol,toTypedArray:()=>Xm});function oN(e){return e instanceof Float32Array||e instanceof Int32Array||e instanceof Uint8Array||e instanceof Uint8ClampedArray}var oI=ks(lR()),Ys=oI.default||oI;function sd(e){return Ys.fromString(e,!0,16)}var lN=sd("c3a5c85c97cb3127"),Ks=sd("b492b66fbe98f273"),kn=sd("9ae16a3b2f90404f");function Cx(e){return e.xor(e.shru(47))}function uN(e,t,n){let a=e.slice(t,t+n);return Ys.fromBytes(Array.from(a),!0,!0)}function gt(e,t){return uN(e,t,8)}function lI(e,t){return uN(e,t,4)}function en(e,t){return t===0?e:e.shru(t).or(e.shl(64-t))}function ls(e,t,n=sd("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 eM(e,t,n,a,r,s){r=r.add(e),s=en(s.add(r).add(a),21);let i=r;return r=r.add(t),r=r.add(n),s=s.add(en(r,44)),[r.add(a),s.add(i)]}function Rh(e,t,n,a){return eM(gt(e,t),gt(e,t+8),gt(e,t+16),gt(e,t+24),n,a)}function tM(e,t=e.length){if(t>=8){let n=kn.add(t*2),a=gt(e,0).add(kn),r=gt(e,t-8),s=en(r,37).mul(n).add(a),i=en(a,25).add(r).mul(n);return ls(s,i,n)}if(t>=4){let n=kn.add(t*2),a=lI(e,0);return ls(a.shl(3).add(t),lI(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 Cx(kn.mul(s).xor(lN.mul(i))).mul(kn)}return kn}function nM(e,t=e.length){let n=kn.add(t*2),a=gt(e,0).mul(Ks),r=gt(e,8),s=gt(e,t-8).mul(n),i=gt(e,t-16).mul(kn);return ls(en(a.add(r),43).add(en(s,30)).add(i),a.add(en(r.add(kn),18)).add(s),n)}function aM(e,t=e.length){let n=kn.add(t*2),a=gt(e,0).mul(kn),r=gt(e,8),s=gt(e,t-8).mul(n),i=gt(e,t-16).mul(kn),o=en(a.add(r),43).add(en(s,30)).add(i),l=ls(o,a.add(en(r.add(kn),18)).add(s),n),u=gt(e,16).mul(n),p=gt(e,24),d=o.add(gt(e,t-32)).mul(n),c=l.add(gt(e,t-24)).mul(n);return ls(en(u.add(p),43).add(en(d,30)).add(c),u.add(en(p.add(a),18)).add(d),n)}function rM(e,t=e.length){let n=Ys.fromNumber(81,!0);if(t<=32)return t<=16?tM(e,t):nM(e,t);if(t<=64)return aM(e,t);let a=n,r=n.mul(Ks).add(113),s=Cx(r.mul(kn).add(113)).mul(kn),i=[Ys.UZERO,Ys.UZERO],o=[Ys.UZERO,Ys.UZERO];a=a.mul(kn).add(gt(e,0));let l=0,u=(t-1>>6)*64,p=u+(t-1&63)-63;do a=en(a.add(r).add(i[0]).add(gt(e,l+8)),37).mul(Ks),r=en(r.add(i[1]).add(gt(e,l+48)),42).mul(Ks),a=a.xor(o[1]),r=r.add(i[0]).add(gt(e,l+40)),s=en(s.add(o[0]),33).mul(Ks),i=Rh(e,l,i[1].mul(Ks),a.add(o[0])),o=Rh(e,l+32,s.add(o[1]),r.add(gt(e,l+16))),[s,a]=[a,s],l+=64;while(l!==u);let d=Ks.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=en(a.add(r).add(i[0]).add(gt(e,l+8)),37).mul(d),r=en(r.add(i[1]).add(gt(e,l+48)),42).mul(d),a=a.xor(o[1].mul(9)),r=r.add(i[0].mul(9).add(gt(e,l+40))),s=en(s.add(o[0]),33).mul(d),i=Rh(e,l,i[1].mul(d),a.add(o[0])),o=Rh(e,l+32,s.add(o[1]),r.add(gt(e,l+16))),[s,a]=[a,s],ls(ls(i[0],o[0],d).add(Cx(r).mul(lN)).add(s),ls(i[1],o[1],d).add(a),d)}function sM(e,t){return t==="string"?id(e):Xm([e],t)}function iM(e,t){return e instanceof Float32Array&&t==="float32"||e instanceof Int32Array&&t==="int32"||e instanceof Uint8Array&&t==="bool"}function Xm(e,t){if(t==="string")throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(e)&&(e=ds(e)),G().getBool("DEBUG")&&XS(e,t),iM(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=xc();if(this.backendTimer.timerAvailable())s=this.backendTimer.time(r);else{r();for(let o of a)o.dataSync();s=Promise.resolve({kernelMs:xc()-i})}if(G().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let o=0;o{uM(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 uM(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 cM(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(!Pr(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 uI=20,Jp=3,cx=7;function hM(e,t,n,a){let r=ou(t),s=mM(e,t,n,r),i=t.length,o=Kh(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 tM(e,t,n,a){let r=bt(t),s=a[a.length-1],i=new Array(s).fill(0),o=t.length,l=n==="complex64"?tc(e):e;if(o>1)for(let u=0;utI){let f=Xp*i,g=Array.from(e.slice(0,f)),b=Array.from(e.slice((o-Xp)*i,o*i));return n==="complex64"&&(g=tc(g),b=tc(b)),["["+g.map((y,x)=>ec(y,r[x],n)).join(", ")+", ..., "+b.map((y,x)=>ec(y,r[o-Xp+x],n)).join(", ")+"]"]}return["["+(n==="complex64"?tc(e):Array.from(e)).map((f,g)=>ec(f,r[g],n)).join(", ")+"]"]}let u=t.slice(1),p=a.slice(1),d=a[0]*i,c=[];if(o>tI){for(let f=0;f0?c[0]+h:"");for(let f=1;f1)for(let u=0;uuI){let f=Jp*i,g=Array.from(e.slice(0,f)),b=Array.from(e.slice((o-Jp)*i,o*i));return n==="complex64"&&(g=rc(g),b=rc(b)),["["+g.map((y,x)=>ac(y,r[x],n)).join(", ")+", ..., "+b.map((y,x)=>ac(y,r[o-Jp+x],n)).join(", ")+"]"]}return["["+(n==="complex64"?rc(e):Array.from(e)).map((f,g)=>ac(f,r[g],n)).join(", ")+"]"]}let u=t.slice(1),p=a.slice(1),d=a[0]*i,c=[];if(o>uI){for(let f=0;f0?c[0]+h:"");for(let f=1;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||yv(t,this.size),this.strides=au(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;arm(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=>rm(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 Al.print(this,e)}clone(){return this.throwIfDisposed(),Al.clone(this)}toString(e=!1){let t=this.dataSync();return eM(t,this.shape,this.dtype,e)}cast(e){return this.throwIfDisposed(),Al.cast(this,e)}variable(e=!0,t,n){return this.throwIfDisposed(),Wa().makeVariable(this,e,t,n)}};Object.defineProperty(Ce,Symbol.hasInstance,{value:e=>!!e&&e.data!=null&&e.dataSync!=null&&e.throwIfDisposed!=null});function Q(){return wv("Tensor",()=>Ce)}Q();var ds=class extends Ce{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(!Mr(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(ds,Symbol.hasInstance,{value:e=>e instanceof Ce&&e.assign!=null&&e.assign instanceof Function});var Ua={};Ee(Ua,{assertTypesMatch:()=>rN,getTensorsInContainer:()=>Iv,isTensorInList:()=>oM,makeTypesMatch:()=>Ft});var vx;(function(e){e.R0="R0",e.R1="R1",e.R2="R2",e.R3="R3",e.R4="R4",e.R5="R5",e.R6="R6"})(vx||(vx={}));var wx;(function(e){e.float32="float32",e.int32="int32",e.bool="int32",e.complex64="complex64"})(wx||(wx={}));var kx;(function(e){e.float32="float32",e.int32="int32",e.bool="bool",e.complex64="complex64"})(kx||(kx={}));var Ix;(function(e){e.float32="float32",e.int32="float32",e.bool="float32",e.complex64="complex64"})(Ix||(Ix={}));var Sx;(function(e){e.float32="complex64",e.int32="complex64",e.bool="complex64",e.complex64="complex64"})(Sx||(Sx={}));var iM={float32:Ix,int32:wx,bool:kx,complex64:Sx};function ba(e,t){if(e==="string"||t==="string"){if(e==="string"&&t==="string")return"string";throw new Error(`Can not upcast ${e} with ${t}`)}return iM[e][t]}function Xm(e){return ba(e,"int32")}function nN(e){return e!=null&&typeof e=="object"&&"texture"in e&&e.texture instanceof WebGLTexture}function aN(e){return typeof GPUBuffer!="undefined"&&e!=null&&typeof e=="object"&&"buffer"in e&&e.buffer instanceof GPUBuffer}function Ft(e,t){if(e.dtype===t.dtype)return[e,t];let n=ba(e.dtype,t.dtype);return[e.cast(n),t.cast(n)]}function rN(e,t){A(e.dtype===t.dtype,()=>`The dtypes of the first(${e.dtype}) and second(${t.dtype}) input must match`)}function oM(e,t){return t.some(n=>n.id===e.id)}function Iv(e){let t=[];return sN(e,t,new Set),t}function sN(e,t,n){if(e==null)return;if(e instanceof Ce){t.push(e);return}if(!lM(e))return;let a=e;for(let r in a){let s=a[r];n.has(s)||(n.add(s),sN(s,t,n))}}function lM(e){return Array.isArray(e)||typeof e=="object"}function rx(e){return e.kernelName!=null}var nI=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()}},bc=class{constructor(e){this.ENV=e,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new nI}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){am(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 $c)&&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 bc.nextTensorId++}nextVariableId(){return bc.nextVariableId++}clone(e){let t=O.runKernel(Ji,{x:e}),n={x:e},a=s=>({x:()=>{let i="float32",o={x:s},l={dtype:i};return O.runKernel(Ri,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,nm(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=rx(e)?e.kernelName:this.state.activeScope!=null?this.state.activeScope.name:"";if(rx(e)){let{kernelName:h,inputs:m,attrs:f}=e;this.backendName==null&&this.backend;let g=nm(h,this.backendName);A(g!=null,()=>`Cannot find registered kernel '${h}' for backend '${this.backendName}'`),i=()=>{let b=this.backend.numDataIds();o=g.kernelFunc({inputs:m,attrs:f,backend:this.backend});let y=Array.isArray(o)?o:[o];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(h,b,y);let x=y.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=rx(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=yx(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"&&as(e[0])&&(r=e.map(o=>ed(o)));let s=a.write(r,t,n),i=new Ce(t,n,s,this.nextTensorId());if(this.trackTensor(i,a),n==="string"){let o=this.state.tensorInfo.get(s),l=VS(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 Ce(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 ds(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*Qh(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 ds||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*Qh(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=yx(e);o!=null&&(a=o.gradFunc),a!=null&&(i.gradient=l=>(l=l.map((u,p)=>{if(u==null){let d=n[p],c=Am(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=Iv(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 Ce,()=>"The result y returned by f() must be a tensor.");let s=JR(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?uM(r.shape):n,QR(i,s,l=>this.tidy(l),pM);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(ps(e),()=>"The f passed in customGrad(f) must be a function."),(...t)=>{A(t.every(i=>i instanceof Ce),()=>"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 Ce,()=>"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor"),A(ps(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 Ce),()=>"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=gc(),n=await this.backend.time(e);return n.wallMs=gc()-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 nI;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}};bc.nextTensorId=0;bc.nextVariableId=0;function uM(e){let t=xv(bt(e),"float32");return O.makeTensor(t,e,"float32")}function iN(){let e=jS();if(e._tfengine==null){let t=new qS(e);e._tfengine=new bc(t)}return FR(e._tfengine.ENV),aM(()=>e._tfengine),e._tfengine}var O=iN();function pM(e,t){let n={a:e,b:t};return O.runKernel(ks,n)}var td={};Ee(td,{isBrowser:()=>oN,isMobile:()=>hM,mockIsMobile:()=>dM});function cM(){return typeof navigator!="undefined"&&navigator!=null}var Nx;function dM(e){Nx=e}function hM(e){if(Nx!==void 0)return Nx;if(e||cM()){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 oN(){return typeof window!="undefined"&&window.document!=null||typeof WorkerGlobalScope!="undefined"}var Bn=G();Bn.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.")});Bn.registerFlag("IS_BROWSER",()=>oN());Bn.registerFlag("IS_NODE",()=>typeof process!="undefined"&&typeof process.versions!="undefined"&&typeof process.versions.node!="undefined");Bn.registerFlag("IS_CHROME",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));Bn.registerFlag("IS_SAFARI",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Safari/.test(navigator.userAgent)&&/Apple/.test(navigator.vendor));Bn.registerFlag("PROD",()=>!1);Bn.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",()=>Bn.getBool("DEBUG"));Bn.registerFlag("DEPRECATION_WARNINGS_ENABLED",()=>!0);Bn.registerFlag("IS_TEST",()=>!1);Bn.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",()=>Bn.getBool("DEBUG"));Bn.registerFlag("WRAP_TO_IMAGEBITMAP",()=>!1);Bn.registerFlag("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU",()=>!1);Bn.registerFlag("USE_SETTIMEOUTCUSTOM",()=>!1);function pr(e,t){let n=e;if(en(e))return t==="string"?[]:[e.length];if(nN(e)){let r=e.channels||"RGBA";return[e.height,e.width*r.length]}else if(aN(e))return[e.buffer.size/(t==null?4:Qh(t))];if(!Array.isArray(e))return[];let a=[];for(;Array.isArray(n)||en(n)&&t!=="string";)a.push(n.length),n=n[0];return Array.isArray(e)&&G().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&lN(e,a,[]),a}function lN(e,t,n){if(n=n||[],!Array.isArray(e)&&!en(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),aI(a,r,t,n),e==null||!en(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);!en(e)&&!Array.isArray(e)&&(e=[e]);let i=r!=="string"?Km(e,r):cs(e,[],!0);return O.makeTensor(i,s,r)}function yc(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 Sv="__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+Sv;let r=(...s)=>{O.startScope(n);try{let i=a(...s);return Fm(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 mM(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(Rm,r)}var Dr=L({complex_:mM});function Ts(e,t,n,a){if(a==null)a=Dc(e);else if(a==="complex64")throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(aN(e)||nN(e)){if(a!=="float32"&&a!=="int32")throw new Error(`Creating tensor from GPU data only supports 'float32'|'int32' dtype, while the dtype is ${a}.`);return O.backend.createTensorFromGPUData(e,t||n,a)}if(!en(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){sa(t);let r=bt(t),s=bt(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!en(e)&&!Array.isArray(e)&&(e=[e]),t=t||n,e=a!=="string"?Km(e,a):cs(e,[],!0),O.makeTensor(e,t,a)}function bn(e,t,n){let a=pr(e,n);return Ts(e,t,a,n)}var Tx={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8},sm=4;async function fM(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,b)=>g+b.length,0)+sm*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 Nv=typeof Buffer!="undefined"&&(typeof Blob=="undefined"||typeof atob=="undefined"||typeof btoa=="undefined");function rI(e){return Nv?Buffer.byteLength(e):new Blob([e]).size}function bM(e){if(Nv)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 sI(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 pN(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 cN(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 Cv(e,t){let n,a;return e.weightsManifest!=null&&([n,a]=await t(e.weightsManifest)),cN(e,n,a)}function nd(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:rI(JSON.stringify(e.modelTopology)),weightSpecsBytes:e.weightSpecs==null?0:rI(JSON.stringify(e.weightSpecs)),weightDataBytes:e.weightData==null?0:e.weightData.byteLength}}function dN(e){let t=[];for(let n of e)t.push(...n.weights);return t}function xM(){let e=n=>{let a=n<<13,r=0;for(;!(a&8388608);)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 vM(){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 wM(){let e=new Uint32Array(64);for(let t=0;t<64;t++)e[t]=1024;return e[0]=e[32]=0,e}function kM(){let e=xM(),t=vM(),n=wM();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}},IM=e=>$t.registerSaveRouter(e),SM=e=>$t.registerLoadRouter(e),NM=e=>$t.getSaveHandlers(e),TM=(e,t)=>$t.getLoadHandlers(e,t),Cx="tensorflowjs",_x=1,ei="models_store",rs="model_info_store";function hN(){if(!G().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 Ex(e){let t=e.result;t.createObjectStore(ei,{keyPath:"modelPath"}),t.createObjectStore(rs,{keyPath:"modelPath"})}var ui=class{constructor(e){if(this.indexedDB=hN(),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(Cx,_x);r.onupgradeneeded=()=>Ex(r),r.onsuccess=()=>{let s=r.result;if(t==null){let i=s.transaction(ei,"readonly"),o=i.objectStore(ei).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=nd(t),o=s.transaction(rs,"readwrite"),l=o.objectStore(rs),u;try{u=l.put({modelPath:this.modelPath,modelArtifactsInfo:i})}catch(d){return a(d)}let p;u.onsuccess=()=>{p=s.transaction(ei,"readwrite");let d=p.objectStore(ei),c;try{c=d.put({modelPath:this.modelPath,modelArtifacts:t,modelArtifactsInfo:i})}catch(h){return a(h)}c.onsuccess=()=>n({modelArtifactsInfo:i}),c.onerror=h=>{l=o.objectStore(rs);let m=l.delete(this.modelPath);m.onsuccess=()=>(s.close(),a(c.error)),m.onerror=f=>(s.close(),a(c.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)})}};ui.URL_SCHEME="indexeddb://";var mN=e=>G().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(ui.URL_SCHEME)?CM(e.slice(ui.URL_SCHEME.length)):null;$t.registerSaveRouter(mN);$t.registerLoadRouter(mN);function CM(e){return new ui(e)}function _M(e){return e.startsWith(ui.URL_SCHEME)?e.slice(ui.URL_SCHEME.length):e}var EM=class{constructor(){this.indexedDB=hN()}async listModels(){return new Promise((e,t)=>{let n=this.indexedDB.open(Cx,_x);n.onupgradeneeded=()=>Ex(n),n.onsuccess=()=>{let a=n.result,r=a.transaction(rs,"readonly"),s=r.objectStore(rs).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=_M(e),new Promise((t,n)=>{let a=this.indexedDB.open(Cx,_x);a.onupgradeneeded=()=>Ex(a),a.onsuccess=()=>{let r=a.result,s=r.transaction(rs,"readwrite"),i=s.objectStore(rs),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(ei,"readwrite");let d=l.objectStore(ei).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)})}},Ar="/",Fl="tensorflowjs_models",fN="info",AM="model_topology",FM="weight_specs",$M="weight_data",DM="model_metadata";function gN(e){return{info:[Fl,e,fN].join(Ar),topology:[Fl,e,AM].join(Ar),weightSpecs:[Fl,e,FM].join(Ar),weightData:[Fl,e,$M].join(Ar),modelMetadata:[Fl,e,DM].join(Ar)}}function bN(e){for(let t of Object.values(e))window.localStorage.removeItem(t)}function RM(e){let t=e.split(Ar);if(t.length<3)throw new Error(`Invalid key format: ${e}`);return t.slice(1,t.length-1).join(Ar)}function MM(e){return e.startsWith(pi.URL_SCHEME)?e.slice(pi.URL_SCHEME.length):e}var pi=class{constructor(e){if(!G().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=gN(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=nd(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,bM(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 bN(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=yM(s),t}};pi.URL_SCHEME="localstorage://";var yN=e=>G().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(pi.URL_SCHEME)?PM(e.slice(pi.URL_SCHEME.length)):null;$t.registerSaveRouter(yN);$t.registerLoadRouter(yN);function PM(e){return new pi(e)}var OM=class{constructor(){A(G().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=Fl+Ar,n=Ar+fN;for(let a=0;a"scheme must not be undefined or null."),e.endsWith(Dl)&&(e=e.slice(0,e.indexOf(Dl))),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 Gh(e){if(e.indexOf(Dl)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${Pn.getSchemes().join(",")}`);return{scheme:e.split(Dl)[0],path:e.split(Dl)[1]}}async function xN(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=Gh(e).scheme,l=Gh(e).path,u=o===Gh(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 LM(){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+Dl+r;t[s]=a[r]}}return t}async function zM(e){let t=Gh(e);return Pn.getManager(t.scheme).removeModel(t.path)}async function WM(e,t){return xN(e,t,!1)}async function BM(e,t){return xN(e,t,!0)}var VM=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"||!G().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))}isTypedArray(e){return JS(e)}};if(G().get("IS_BROWSER")){G().setPlatform("browser",new VM);try{Pn.registerManager(pi.URL_SCHEME,new OM)}catch(e){}try{Pn.registerManager(ui.URL_SCHEME,new EM)}catch(e){}}var UM={importFetch:()=>YD()},sx,GM=class{constructor(){this.util=ZD(),this.textEncoder=new this.util.TextEncoder}fetch(e,t){return G().global.fetch!=null?G().global.fetch(e,t):(sx==null&&(sx=UM.importFetch()),sx(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)}isTypedArray(e){return this.util.types.isFloat32Array(e)||this.util.types.isInt32Array(e)||this.util.types.isUint8Array(e)||this.util.types.isUint8ClampedArray(e)}};G().get("IS_NODE")&&!G().get("IS_BROWSER")&&G().setPlatform("node",new GM);function ze(e,t="float32",n){return t=t||"float32",sa(e),new Vt(e,t,n)}function HM(e,t){let n=_(e,"x","cast");if(!BS(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(Ri,a,r)}var ie=L({cast_:HM});function qM(e){let t={x:_(e,"x","clone","string_or_numeric")};return O.runKernel(Ji,t)}var or=L({clone_:qM});function _v(e,t=!1){console.log(e.toString(t))}iN();var jM={buffer:ze,cast:ie,clone:or,print:_v};rM(jM);function KM(){G().set("PROD",!0)}function XM(){G().set("DEBUG",!0)}function YM(){G().set("DEPRECATION_WARNINGS_ENABLED",!1),console.warn("TensorFlow.js deprecation warnings have been disabled.")}function Ev(e){G().getBool("DEPRECATION_WARNINGS_ENABLED")&&console.warn(e+" You can disable deprecation warnings with tf.disableDeprecationWarnings().")}sM(Ev);function ZM(){O.disposeVariables()}function Aa(){return O}function im(){return O.memory()}function JM(e){return O.profile(e)}function P(e,t){return O.tidy(e,t)}function _e(e){Iv(e).forEach(t=>t.dispose())}function Ht(e){return O.keep(e)}function QM(e){return O.time(e)}function eP(e){return O.setBackend(e)}function tP(){return O.ready()}function nP(){return O.backendName}function aP(e){O.removeBackend(e)}function rP(e){return O.findBackend(e)}function sP(e){return O.findBackendFactory(e)}function Ym(e,t,n=1){return O.registerBackend(e,t,n)}function vN(){return O.backend}function iP(e,t){G().setPlatform(e,t)}function oP(e,t){let n=_(e,"a","add"),a=_(t,"b","add");[n,a]=Ft(n,a);let r={a:n,b:a};return O.runKernel(ks,r)}var X=L({add_:oP});function lP(e,t){let n=_(e,"a","floorDiv"),a=_(t,"b","floorDiv");[n,a]=Ft(n,a);let r={a:n,b:a};return O.runKernel(Xi,r)}var Zm=L({floorDiv_:lP});function uP(e,t){let n=_(e,"a","div"),a=_(t,"b","div");if([n,a]=Ft(n,a),n.dtype==="int32"&&a.dtype==="int32")return Zm(n,a);let r={a:n,b:a},s={};return O.runKernel(Gi,r,s)}var he=L({div_:uP});function pP(e,t){let n=_(e,"a","mul"),a=_(t,"b","mul");[n,a]=Ft(n,a);let r={a:n,b:a};return O.runKernel(mo,r)}var z=L({mul_:pP});function cP(e){let t=_(e,"x","abs");if(t.dtype==="complex64"){let n={x:t};return O.runKernel(Pc,n)}else{let n={x:t};return O.runKernel(ru,n)}}var Wt=L({abs_:cP});function dP(e){let t={x:_(e,"x","acos")};return O.runKernel(Si,t)}var Av=L({acos_:dP});function hP(e){let t={x:_(e,"x","acosh")};return O.runKernel(Ni,t)}var Fv=L({acosh_:hP});function mP(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(!Mr(r.shape,n.shape))throw new Error("All tensors passed to tf.addN() must have the same shape")});let a=t;return O.runKernel(Ti,a)}var wN=L({addN_:mP});function fP(e,t=null,n=!1){let a={x:_(e,"x","all","bool")},r={axis:t,keepDims:n};return O.runKernel(su,a,r)}var Jm=L({all_:fP});function gP(e,t=null,n=!1){let a={x:_(e,"x","any","bool")},r={axis:t,keepDims:n};return O.runKernel(iu,a,r)}var xc=L({any_:gP});function bP(e,t=0){let n={x:_(e,"x","argMax")},a={axis:t};return O.runKernel(ou,n,a)}var ci=L({argMax_:bP});function yP(e,t=0){let n={x:_(e,"x","argMin")},a={axis:t};return O.runKernel(lu,n,a)}var $v=L({argMin_:yP});function xP(e){let t={x:_(e,"x","asin")};return O.runKernel(Ci,t)}var Dv=L({asin_:xP});function vP(e){let t={x:_(e,"x","asinh")};return O.runKernel(_i,t)}var Rv=L({asinh_:vP});function wP(e){let t={x:_(e,"x","atan")};return O.runKernel(Ei,t)}var Mv=L({atan_:wP});function kP(e,t){let n=_(e,"a","atan2"),a=_(t,"b","atan2");[n,a]=Ft(n,a);let r={a:n,b:a};return O.runKernel(Fi,r)}var Pv=L({atan2_:kP});function IP(e){let t={x:_(e,"x","atanh")};return O.runKernel(Ai,t)}var Ov=L({atanh_:IP});function SP(e,t,n,a,r="NHWC",s){let i=e[3],o=[...t,i],l=SN(r);return ad(e,o,n,s,a,null,null,l)}function kN(e,t,n,a,r,s,i="channelsLast"){let[o,l]=vc(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 ad(e,u,n,a,r,s,!1,i)}function NP(e,t,n,a,r,s,i="NDHWC"){let[o,l,u]=Ax(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 IN(e,p,n,a,r,!1,d,s)}function ad(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]=vc(n),[b,y]=vc(a),x=Rl(c,b),w=Rl(h,y),{padInfo:I,outHeight:T,outWidth:C}=_P(r,u,p,f,g,x,w,s,o),E=i?m*d:m,F;return o==="channelsFirst"?F=[l,E,T,C]:o==="channelsLast"&&(F=[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:b,dilationWidth:y,inShape:e,outShape:F,filterShape:t}}function IN(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,[b,y,x]=Ax(n),[w,I,T]=Ax(a),C=Rl(h,w),E=Rl(m,I),F=Rl(f,T),{padInfo:D,outDepth:$,outHeight:S,outWidth:M}=EP(r,u,p,d,b,y,x,C,E,F,o),B=s?g*c:g,U;return i==="channelsFirst"?U=[l,B,$,S,M]:i==="channelsLast"&&(U=[l,$,S,M,B]),{batchSize:l,dataFormat:i,inDepth:u,inHeight:p,inWidth:d,inChannels:c,outDepth:$,outHeight:S,outWidth:M,outChannels:B,padInfo:D,strideDepth:b,strideHeight:y,strideWidth:x,filterDepth:h,filterHeight:m,filterWidth:f,effectiveFilterDepth:C,effectiveFilterHeight:E,effectiveFilterWidth:F,dilationDepth:w,dilationHeight:I,dilationWidth:T,inShape:e,outShape:U,filterShape:t}}function TP(e,t,n,a,r){a==null&&(a=Lv(e,t,n));let s=e[0],i=e[1],o=wc((s-t+2*a)/n+1,r),l=wc((i-t+2*a)/n+1,r);return[o,l]}function CP(e,t,n,a,r,s){r==null&&(r=Lv(e,t[0],a[0]));let i=[0,0,0,n];for(let o=0;o<3;o++)e[o]+2*r>=t[o]&&(i[o]=wc((e[o]-t[o]+2*r)/a[o]+1,s));return i}function Lv(e,t,n,a=1){let r=Rl(t,a);return Math.floor((e[0]*(n-1)-n+r)/2)}function vc(e){return typeof e=="number"?[e,e,e]:e.length===2?[e[0],e[1],1]:e}function Ax(e){return typeof e=="number"?[e,e,e]:e}function Rl(e,t){return t<=1?e:e+(e-1)*(t-1)}function _P(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=TP([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),b=h-g;u={top:m,bottom:f,left:g,right:b,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=wc((t-s+c+h)/a+1,o),d=wc((n-i+m+f)/r+1,o)}else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:u,outHeight:p,outWidth:d}}function EP(e,t,n,a,r,s,i,o,l,u,p){let d,c,h,m;if(e==="valid"&&(e=0),typeof e=="number"){d={top:e,bottom:e,left:e,right:e,front:e,back:e,type:e===0?"VALID":"NUMBER"};let f=CP([t,n,a,1],[o,l,u],1,[r,s,i],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,b=(m-1)*i+u-a,y=Math.floor(f/2),x=f-y,w=Math.floor(g/2),I=g-w,T=Math.floor(b/2),C=b-T;d={top:w,bottom:I,left:T,right:C,front:y,back:x,type:"SAME"}}else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:d,outDepth:c,outHeight:h,outWidth:m}}function wc(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 hs(e){let[t,n,a]=vc(e);return t===1&&n===1&&a===1}function hr(e,t){return hs(e)||hs(t)}function di(e){return vc(e).every(t=>t>0)}function SN(e){if(e==="NHWC")return"channelsLast";if(e==="NCHW")return"channelsFirst";throw new Error(`Unknown dataFormat ${e}`)}function Cn(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(Pl(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(Pl(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 AP(e,t){let n={x:_(e,"x","reshape","string_or_numeric")},a={shape:t};return O.runKernel(Uu,n,a)}var W=L({reshape_:AP});function FP(e,t,n,a,r){let s=_(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}.`),Cn("avgPool",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r},d=O.runKernel($i,u,p);return d=ie(d,s.dtype),l?W(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var xa=L({avgPool_:FP});function $P(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}`),A(typeof n=="number"&&n>0||Array.isArray(n)&&n[0]>0&&n[1]>0&&n[2]>0,()=>`Error in avgPool3d: Stride must be > 0, but got '${n}'`),Cn("avgPool3d",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r,dataFormat:s},d=O.runKernel(uu,u,p);return d=ie(d,o.dtype),l?W(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}var zv=L({avgPool3d_:$P});function DP(e,t=0){A(e.length>=1,()=>"Pass at least one tensor to concat");let n=yc(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(du,a,r)}var Qe=L({concat_:DP});function RP(e,t,n=!1,a=!1){let r=_(e,"a","matMul"),s=_(t,"b","matMul");[r,s]=Ft(r,s);let i={a:r,b:s},o={transposeA:n,transposeB:a};return O.runKernel(Di,i,o)}var $e=L({matMul_:RP});function MP(e){let t={x:_(e,"x","sigmoid","float32")};return O.runKernel(Fo,t)}var fa=L({sigmoid_:MP});function PP(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(Yu,r,s)}var Ue=L({slice_:PP});function OP(e){let t={x:_(e,"x","tanh","float32")};return O.runKernel(zo,t)}var hi=L({tanh_:OP});function LP(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=Qe([u,d],1),h=$e(c,o),m=X(h,l),f=m.shape[0],g=m.shape[1]/4,b=[f,g],y=Ue(m,[0,0],b),x=Ue(m,[0,g],b),w=Ue(m,[0,g*2],b),I=Ue(m,[0,g*3],b),T=X(z(fa(y),hi(x)),z(p,fa(X(i,w)))),C=z(hi(T),fa(I));return[T,C]}var NN=L({basicLSTMCell_:LP});function zP(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(pu,s,i)}var rd=L({batchToSpaceND_:zP});function WP(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 BP(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:WP(i),scale:u,offset:p,mean:o,variance:l},c={varianceEpsilon:s},h=O.runKernel(Yi,d,c);return W(h,i.shape)}var Cs=L({batchNorm_:BP});function VP(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}.`),Cs(i,o,l,p,u,s)}var Wv=L({batchNorm2d_:VP});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===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}.`),Cs(i,o,l,p,u,s)}var Bv=L({batchNorm3d_:UP});function GP(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}.`),Cs(i,o,l,p,u,s)}var Vv=L({batchNorm4d_:GP});function HP(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(cu,s,i)}var Uv=L({bincount_:HP});function qP(e,t){let n=_(e,"x","bitwiseAnd"),a=_(t,"y","bitwiseAnd");if(!Mr(n.shape,a.shape))throw new Error(`BitwiseAnd: Tensors must have the same shape. x: ${n.shape}, y: ${a.shape}`);if(n.dtype!=="int32"||a.dtype!=="int32")throw new Error(`BitwiseAnd: Only supports 'int32' values in tensor, found type of x: ${n.dtype} and type of y: ${a.dtype}`);let r={a:n,b:a};return O.runKernel(Dm,r)}var TN=L({bitwiseAnd_:qP});function jP(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(Mc,r)}var CN=L({broadcastArgs_:jP});function KP(e,t){let n=_(e,"broadcastTo","x"),a=n.shape;if(sa(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(Ss,i,o)}var ai=L({broadcastTo_:KP});function XP(e){let t={x:_(e,"x","ceil","float32")};return O.runKernel(Mi,t)}var Gv=L({ceil_:XP});function xn(e,t,n){sa(e),n=n||Dc(t);let a={shape:e,value:t,dtype:n};return O.runKernel(zc,{},a)}function YP(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 xn(a.shape,t,a.dtype);let r={x:a},s={clipValueMin:t,clipValueMax:n};return O.runKernel(Is,r,s)}var rn=L({clipByValue_:YP});function ZP(e){return Qe(e,0)}var Hv=L({concat1d_:ZP});function JP(e,t){return Qe(e,t)}var qv=L({concat2d_:JP});function QP(e,t){return Qe(e,t)}var jv=L({concat3d_:QP});function eO(e,t){return Qe(e,t)}var Kv=L({concat4d_:eO});function tO(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}.`),Cn("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}'`),A(di(s),()=>"Error in conv2D: Dilated rates should be larger than 0."),A(di(n),()=>"Error in conv2D: Strides should be larger than 0.");let c={x:u,filter:l},h={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i},m=O.runKernel(Pi,c,h);return p?W(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var Rt=L({conv2d_:tO});function nO(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}.`),Cn("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(di(s),()=>"Error in conv1D: Dilated rates should be larger than 0."),A(di(n),()=>"Error in conv1D: Stride should be larger than 0."),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=Rt(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_:nO});function aO(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]}.`),Cn("conv2dDerInput",r,i);let c={dy:l,filter:n},h={strides:a,pad:r,dataFormat:s,dimRoundingMode:i,inputShape:o},m=O.runKernel(Oi,c,h);return u?W(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var Xv=L({conv2DBackpropInput_:aO});function rO(e,t,n,a,r,s){let i=_(e,"x","conv2dTranspose"),o=_(t,"filter","conv2dTranspose");return Xv(n,i,o,a,r,"NHWC",s)}var ef=L({conv2dTranspose_:rO});function sO(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(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.`),A(di(s),()=>"Error in conv3D: Dilated rates should be larger than 0."),A(di(n),()=>"Error in conv3D: Strides should be larger than 0.");let p={x:l,filter:o},d={strides:n,pad:a,dataFormat:r,dilations:s},c=O.runKernel(Li,p,d);return u?W(c,[c.shape[1],c.shape[2],c.shape[3],c.shape[4]]):c}var Yv=L({conv3d_:sO});function iO(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(mu,p,d);return o?W(c,[c.shape[1],c.shape[2],c.shape[3],c.shape[4]]):c}var _N=L({conv3DBackpropInput_:iO});function oO(e,t,n,a,r){let s=_(e,"x","conv3dTranspose"),i=_(t,"filter","conv3dTranspose");return _N(n,s,i,a,r)}var Zv=L({conv3dTranspose_:oO});function lO(e){let t={x:_(e,"x","cos","float32")};return O.runKernel(zi,t)}var sd=L({cos_:lO});function uO(e){let t={x:_(e,"x","cosh","float32")};return O.runKernel(Wi,t)}var tf=L({cosh_:uO});function pO(e,t=0,n=!1,a=!1){let r={x:_(e,"x","cumprod")},s={axis:t,exclusive:n,reverse:a};return O.runKernel(fu,r,s)}var kc=L({cumprod_:pO});function cO(e,t=0,n=!1,a=!1){let r={x:_(e,"x","cumsum")},s={axis:t,exclusive:n,reverse:a};return O.runKernel(Bi,r,s)}var nf=L({cumsum_:cO});function dO(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(Oc,i,o)}var om=L({denseBincount_:dO});function hO(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 +`;return c[c.length-1]=" "+c[c.length-1]+"]"+(s?"":m),c}function rc(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||Tv(t,this.size),this.strides=ou(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;aum(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=>um(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 Ml.print(this,e)}clone(){return this.throwIfDisposed(),Ml.clone(this)}toString(e=!1){let t=this.dataSync();return hM(t,this.shape,this.dtype,e)}cast(e){return this.throwIfDisposed(),Ml.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 Ev("Tensor",()=>Te)}Q();var hs=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(!Pr(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(hs,Symbol.hasInstance,{value:e=>e instanceof Te&&e.assign!=null&&e.assign instanceof Function});var Ua={};Ee(Ua,{assertTypesMatch:()=>hN,getTensorsInContainer:()=>$v,isTensorInList:()=>vM,makeTypesMatch:()=>Ft});var _x;(function(e){e.R0="R0",e.R1="R1",e.R2="R2",e.R3="R3",e.R4="R4",e.R5="R5",e.R6="R6"})(_x||(_x={}));var Ex;(function(e){e.float32="float32",e.int32="int32",e.bool="int32",e.complex64="complex64"})(Ex||(Ex={}));var Ax;(function(e){e.float32="float32",e.int32="int32",e.bool="bool",e.complex64="complex64"})(Ax||(Ax={}));var Fx;(function(e){e.float32="float32",e.int32="float32",e.bool="float32",e.complex64="complex64"})(Fx||(Fx={}));var $x;(function(e){e.float32="complex64",e.int32="complex64",e.bool="complex64",e.complex64="complex64"})($x||($x={}));var xM={float32:Fx,int32:Ex,bool:Ax,complex64:$x};function ba(e,t){if(e==="string"||t==="string"){if(e==="string"&&t==="string")return"string";throw new Error(`Can not upcast ${e} with ${t}`)}return xM[e][t]}function Ym(e){return ba(e,"int32")}function cN(e){return e!=null&&typeof e=="object"&&"texture"in e&&e.texture instanceof WebGLTexture}function dN(e){return typeof GPUBuffer!="undefined"&&e!=null&&typeof e=="object"&&"buffer"in e&&e.buffer instanceof GPUBuffer}function Ft(e,t){if(e.dtype===t.dtype)return[e,t];let n=ba(e.dtype,t.dtype);return[e.cast(n),t.cast(n)]}function hN(e,t){A(e.dtype===t.dtype,()=>`The dtypes of the first(${e.dtype}) and second(${t.dtype}) input must match`)}function vM(e,t){return t.some(n=>n.id===e.id)}function $v(e){let t=[];return mN(e,t,new Set),t}function mN(e,t,n){if(e==null)return;if(e instanceof Te){t.push(e);return}if(!wM(e))return;let a=e;for(let r in a){let s=a[r];n.has(s)||(n.add(s),mN(s,t,n))}}function wM(e){return Array.isArray(e)||typeof e=="object"}function dx(e){return e.kernelName!=null}var pI=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()}},vc=class{constructor(e){this.ENV=e,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new pI}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){lm(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 Mc)&&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 vc.nextTensorId++}nextVariableId(){return vc.nextVariableId++}clone(e){let t=O.runKernel(to,{x:e}),n={x:e},a=s=>({x:()=>{let i="float32",o={x:s},l={dtype:i};return O.runKernel(Pi,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,om(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=dx(e)?e.kernelName:this.state.activeScope!=null?this.state.activeScope.name:"";if(dx(e)){let{kernelName:h,inputs:m,attrs:f}=e;this.backendName==null&&this.backend;let g=om(h,this.backendName);A(g!=null,()=>`Cannot find registered kernel '${h}' for backend '${this.backendName}'`),i=()=>{let b=this.backend.numDataIds();o=g.kernelFunc({inputs:m,attrs:f,backend:this.backend});let y=Array.isArray(o)?o:[o];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(h,b,y);let x=y.map(v=>v.rank!=null?v:this.makeTensorFromTensorInfo(v));if(a){let v=this.getTensorsForGradient(h,m,x);n=this.saveTensorsForBackwardMode(v)}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=dx(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=Tx(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"&&rs(e[0])&&(r=e.map(o=>id(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=ZS(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 hs(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*rm(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 hs||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*rm(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=Tx(e);o!=null&&(a=o.gradFunc),a!=null&&(i.gradient=l=>(l=l.map((u,p)=>{if(u==null){let d=n[p],c=Mm(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=$v(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=cM(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?kM(r.shape):n,dM(i,s,l=>this.tidy(l),IM);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(cs(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(cs(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=xc(),n=await this.backend.time(e);return n.wallMs=xc()-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 pI;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}};vc.nextTensorId=0;vc.nextVariableId=0;function kM(e){let t=Cv(bt(e),"float32");return O.makeTensor(t,e,"float32")}function fN(){let e=nN();if(e._tfengine==null){let t=new tN(e);e._tfengine=new vc(t)}return GR(e._tfengine.ENV),gM(()=>e._tfengine),e._tfengine}var O=fN();function IM(e,t){let n={a:e,b:t};return O.runKernel(Is,n)}var od={};Ee(od,{isBrowser:()=>gN,isMobile:()=>TM,mockIsMobile:()=>NM});function SM(){return typeof navigator!="undefined"&&navigator!=null}var Dx;function NM(e){Dx=e}function TM(e){if(Dx!==void 0)return Dx;if(e||SM()){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 gN(){return typeof window!="undefined"&&window.document!=null||typeof WorkerGlobalScope!="undefined"}var Bn=G();Bn.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.")});Bn.registerFlag("IS_BROWSER",()=>gN());Bn.registerFlag("IS_NODE",()=>typeof process!="undefined"&&typeof process.versions!="undefined"&&typeof process.versions.node!="undefined");Bn.registerFlag("IS_CHROME",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));Bn.registerFlag("IS_SAFARI",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Safari/.test(navigator.userAgent)&&/Apple/.test(navigator.vendor));Bn.registerFlag("PROD",()=>!1);Bn.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",()=>Bn.getBool("DEBUG"));Bn.registerFlag("DEPRECATION_WARNINGS_ENABLED",()=>!0);Bn.registerFlag("IS_TEST",()=>!1);Bn.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",()=>Bn.getBool("DEBUG"));Bn.registerFlag("WRAP_TO_IMAGEBITMAP",()=>!1);Bn.registerFlag("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU",()=>!1);Bn.registerFlag("USE_SETTIMEOUTCUSTOM",()=>!1);function pr(e,t){let n=e;if(tn(e))return t==="string"?[]:[e.length];if(cN(e)){let r=e.channels||"RGBA";return[e.height,e.width*r.length]}else if(dN(e))return[e.buffer.size/(t==null?4:rm(t))];if(!Array.isArray(e))return[];let a=[];for(;Array.isArray(n)||tn(n)&&t!=="string";)a.push(n.length),n=n[0];return Array.isArray(e)&&G().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&bN(e,a,[]),a}function bN(e,t,n){if(n=n||[],!Array.isArray(e)&&!tn(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),cI(a,r,t,n),e==null||!tn(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);!tn(e)&&!Array.isArray(e)&&(e=[e]);let i=r!=="string"?Xm(e,r):ds(e,[],!0);return O.makeTensor(i,s,r)}function wc(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 Dv="__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+Dv;let r=(...s)=>{O.startScope(n);try{let i=a(...s);return Pm(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 CM(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(Om,r)}var Rr=L({complex_:CM});function Cs(e,t,n,a){if(a==null)a=Pc(e);else if(a==="complex64")throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(dN(e)||cN(e)){if(a!=="float32"&&a!=="int32")throw new Error(`Creating tensor from GPU data only supports 'float32'|'int32' dtype, while the dtype is ${a}.`);return O.backend.createTensorFromGPUData(e,t||n,a)}if(!tn(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){sa(t);let r=bt(t),s=bt(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!tn(e)&&!Array.isArray(e)&&(e=[e]),t=t||n,e=a!=="string"?Xm(e,a):ds(e,[],!0),O.makeTensor(e,t,a)}function bn(e,t,n){let a=pr(e,n);return Cs(e,t,a,n)}var Rx={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8},hr=class{static join(e){return new hr(e).slice()}constructor(e){if(this.shards=[],this.previousShardIndex=0,e==null||(e instanceof Array||(e=[e]),e=e.map(n=>tn(n)?n.buffer:n),e.length===0))return;this.bufferUniformSize=e[0].byteLength;let t=0;for(let n=0;n=this.byteLength)return-1;if(this.bufferUniformSize!=null)return this.previousShardIndex=Math.floor(e/this.bufferUniformSize),this.previousShardIndex;function t(a){return e=a.end?1:0}if(t(this.shards[this.previousShardIndex])===0)return this.previousShardIndex;let n=_M(this.shards,t);return n===-1?-1:(this.previousShardIndex=n,this.previousShardIndex)}};function _M(e,t){let n=0,a=e.length;for(;n<=a;){let r=Math.floor((a-n)/2)+n,s=t(e[r]);if(s===0)return r;s<0?a=r:n=r+1}return-1}var pm=4;async function EM(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,b)=>g+b.length,0)+pm*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 Rv=typeof Buffer!="undefined"&&(typeof Blob=="undefined"||typeof atob=="undefined"||typeof btoa=="undefined");function dI(e){return Rv?Buffer.byteLength(e,"utf8"):new Blob([e]).size}function FM(e){if(Rv)return Buffer.from(e).toString("base64");let t=new Uint8Array(e),n="";for(let a=0,r=t.length;a{let a=n<<13,r=0;for(;!(a&8388608);)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 MM(){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 PM(){let e=new Uint32Array(64);for(let t=0;t<64;t++)e[t]=1024;return e[0]=e[32]=0,e}function OM(){let e=RM(),t=MM(),n=PM();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}},LM=e=>$t.registerSaveRouter(e),zM=e=>$t.registerLoadRouter(e),WM=e=>$t.getSaveHandlers(e),BM=(e,t)=>$t.getLoadHandlers(e,t),Mx="tensorflowjs",Px=1,ti="models_store",ss="model_info_store";function kN(){if(!G().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 Ox(e){let t=e.result;t.createObjectStore(ti,{keyPath:"modelPath"}),t.createObjectStore(ss,{keyPath:"modelPath"})}var pi=class{constructor(e){if(this.indexedDB=kN(),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(Mx,Px);r.onupgradeneeded=()=>Ox(r),r.onsuccess=()=>{let s=r.result;if(t==null){let i=s.transaction(ti,"readonly"),o=i.objectStore(ti).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{t.weightData=hr.join(t.weightData);let i=ld(t),o=s.transaction(ss,"readwrite"),l=o.objectStore(ss),u;try{u=l.put({modelPath:this.modelPath,modelArtifactsInfo:i})}catch(d){return a(d)}let p;u.onsuccess=()=>{p=s.transaction(ti,"readwrite");let d=p.objectStore(ti),c;try{c=d.put({modelPath:this.modelPath,modelArtifacts:t,modelArtifactsInfo:i})}catch(h){return a(h)}c.onsuccess=()=>n({modelArtifactsInfo:i}),c.onerror=h=>{l=o.objectStore(ss);let m=l.delete(this.modelPath);m.onsuccess=()=>(s.close(),a(c.error)),m.onerror=f=>(s.close(),a(c.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)})}};pi.URL_SCHEME="indexeddb://";var IN=e=>G().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(pi.URL_SCHEME)?VM(e.slice(pi.URL_SCHEME.length)):null;$t.registerSaveRouter(IN);$t.registerLoadRouter(IN);function VM(e){return new pi(e)}function UM(e){return e.startsWith(pi.URL_SCHEME)?e.slice(pi.URL_SCHEME.length):e}var GM=class{constructor(){this.indexedDB=kN()}async listModels(){return new Promise((e,t)=>{let n=this.indexedDB.open(Mx,Px);n.onupgradeneeded=()=>Ox(n),n.onsuccess=()=>{let a=n.result,r=a.transaction(ss,"readonly"),s=r.objectStore(ss).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=UM(e),new Promise((t,n)=>{let a=this.indexedDB.open(Mx,Px);a.onupgradeneeded=()=>Ox(a),a.onsuccess=()=>{let r=a.result,s=r.transaction(ss,"readwrite"),i=s.objectStore(ss),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(ti,"readwrite");let d=l.objectStore(ti).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)})}},Fr="/",Pl="tensorflowjs_models",SN="info",HM="model_topology",qM="weight_specs",jM="weight_data",KM="model_metadata";function NN(e){return{info:[Pl,e,SN].join(Fr),topology:[Pl,e,HM].join(Fr),weightSpecs:[Pl,e,qM].join(Fr),weightData:[Pl,e,jM].join(Fr),modelMetadata:[Pl,e,KM].join(Fr)}}function TN(e){for(let t of Object.values(e))window.localStorage.removeItem(t)}function XM(e){let t=e.split(Fr);if(t.length<3)throw new Error(`Invalid key format: ${e}`);return t.slice(1,t.length-1).join(Fr)}function YM(e){return e.startsWith(ci.URL_SCHEME)?e.slice(ci.URL_SCHEME.length):e}var ci=class{constructor(e){if(!G().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=NN(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=ld(e),r=hr.join(e.weightData);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,FM(r));let s={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(s)),{modelArtifactsInfo:a}}catch(s){throw TN(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=$M(s),t}};ci.URL_SCHEME="localstorage://";var CN=e=>G().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(ci.URL_SCHEME)?ZM(e.slice(ci.URL_SCHEME.length)):null;$t.registerSaveRouter(CN);$t.registerLoadRouter(CN);function ZM(e){return new ci(e)}var JM=class{constructor(){A(G().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=Pl+Fr,n=Fr+SN;for(let a=0;a"scheme must not be undefined or null."),e.endsWith(Ll)&&(e=e.slice(0,e.indexOf(Ll))),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(Ll)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${Pn.getSchemes().join(",")}`);return{scheme:e.split(Ll)[0],path:e.split(Ll)[1]}}async function _N(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 QM(){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+Ll+r;t[s]=a[r]}}return t}async function eP(e){let t=Xh(e);return Pn.getManager(t.scheme).removeModel(t.path)}async function tP(e,t){return _N(e,t,!1)}async function nP(e,t){return _N(e,t,!0)}var aP=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"||!G().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))}isTypedArray(e){return oN(e)}};if(G().get("IS_BROWSER")){G().setPlatform("browser",new aP);try{Pn.registerManager(ci.URL_SCHEME,new JM)}catch(e){}try{Pn.registerManager(pi.URL_SCHEME,new GM)}catch(e){}}var rP={importFetch:()=>uR()},hx,sP=class{constructor(){this.util=pR(),this.textEncoder=new this.util.TextEncoder}fetch(e,t){return G().global.fetch!=null?G().global.fetch(e,t):(hx==null&&(hx=rP.importFetch()),hx(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)}isTypedArray(e){return this.util.types.isFloat32Array(e)||this.util.types.isInt32Array(e)||this.util.types.isUint8Array(e)||this.util.types.isUint8ClampedArray(e)}};G().get("IS_NODE")&&!G().get("IS_BROWSER")&&G().setPlatform("node",new sP);function ze(e,t="float32",n){return t=t||"float32",sa(e),new Vt(e,t,n)}function iP(e,t){let n=_(e,"x","cast");if(!YS(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(Pi,a,r)}var se=L({cast_:iP});function oP(e){let t={x:_(e,"x","clone","string_or_numeric")};return O.runKernel(to,t)}var or=L({clone_:oP});function Pv(e,t=!1){console.log(e.toString(t))}fN();var lP={buffer:ze,cast:se,clone:or,print:Pv};bM(lP);function uP(){G().set("PROD",!0)}function pP(){G().set("DEBUG",!0)}function cP(){G().set("DEPRECATION_WARNINGS_ENABLED",!1),console.warn("TensorFlow.js deprecation warnings have been disabled.")}function Ov(e){G().getBool("DEPRECATION_WARNINGS_ENABLED")&&console.warn(e+" You can disable deprecation warnings with tf.disableDeprecationWarnings().")}yM(Ov);function dP(){O.disposeVariables()}function Aa(){return O}function cm(){return O.memory()}function hP(e){return O.profile(e)}function P(e,t){return O.tidy(e,t)}function _e(e){$v(e).forEach(t=>t.dispose())}function qt(e){return O.keep(e)}function mP(e){return O.time(e)}function fP(e){return O.setBackend(e)}function gP(){return O.ready()}function bP(){return O.backendName}function yP(e){O.removeBackend(e)}function xP(e){return O.findBackend(e)}function vP(e){return O.findBackendFactory(e)}function Zm(e,t,n=1){return O.registerBackend(e,t,n)}function EN(){return O.backend}function wP(e,t){G().setPlatform(e,t)}function kP(e,t){let n=_(e,"a","add"),a=_(t,"b","add");[n,a]=Ft(n,a);let r={a:n,b:a};return O.runKernel(Is,r)}var X=L({add_:kP});function IP(e,t){let n=_(e,"a","floorDiv"),a=_(t,"b","floorDiv");[n,a]=Ft(n,a);let r={a:n,b:a};return O.runKernel(Ji,r)}var Jm=L({floorDiv_:IP});function SP(e,t){let n=_(e,"a","div"),a=_(t,"b","div");if([n,a]=Ft(n,a),n.dtype==="int32"&&a.dtype==="int32")return Jm(n,a);let r={a:n,b:a},s={};return O.runKernel(qi,r,s)}var he=L({div_:SP});function NP(e,t){let n=_(e,"a","mul"),a=_(t,"b","mul");[n,a]=Ft(n,a);let r={a:n,b:a};return O.runKernel(yo,r)}var z=L({mul_:NP});function TP(e){let t=_(e,"x","abs");if(t.dtype==="complex64"){let n={x:t};return O.runKernel(Wc,n)}else{let n={x:t};return O.runKernel(lu,n)}}var Wt=L({abs_:TP});function CP(e){let t={x:_(e,"x","acos")};return O.runKernel(Ti,t)}var Lv=L({acos_:CP});function _P(e){let t={x:_(e,"x","acosh")};return O.runKernel(Ci,t)}var zv=L({acosh_:_P});function EP(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(!Pr(r.shape,n.shape))throw new Error("All tensors passed to tf.addN() must have the same shape")});let a=t;return O.runKernel(_i,a)}var AN=L({addN_:EP});function AP(e,t=null,n=!1){let a={x:_(e,"x","all","bool")},r={axis:t,keepDims:n};return O.runKernel(uu,a,r)}var Qm=L({all_:AP});function FP(e,t=null,n=!1){let a={x:_(e,"x","any","bool")},r={axis:t,keepDims:n};return O.runKernel(pu,a,r)}var kc=L({any_:FP});function $P(e,t=0){let n={x:_(e,"x","argMax")},a={axis:t};return O.runKernel(cu,n,a)}var di=L({argMax_:$P});function DP(e,t=0){let n={x:_(e,"x","argMin")},a={axis:t};return O.runKernel(du,n,a)}var Wv=L({argMin_:DP});function RP(e){let t={x:_(e,"x","asin")};return O.runKernel(Ei,t)}var Bv=L({asin_:RP});function MP(e){let t={x:_(e,"x","asinh")};return O.runKernel(Ai,t)}var Vv=L({asinh_:MP});function PP(e){let t={x:_(e,"x","atan")};return O.runKernel(Fi,t)}var Uv=L({atan_:PP});function OP(e,t){let n=_(e,"a","atan2"),a=_(t,"b","atan2");[n,a]=Ft(n,a);let r={a:n,b:a};return O.runKernel(Di,r)}var Gv=L({atan2_:OP});function LP(e){let t={x:_(e,"x","atanh")};return O.runKernel($i,t)}var Hv=L({atanh_:LP});function zP(e,t,n,a,r="NHWC",s){let i=e[3],o=[...t,i],l=DN(r);return ud(e,o,n,s,a,null,null,l)}function FN(e,t,n,a,r,s,i="channelsLast"){let[o,l]=Ic(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 ud(e,u,n,a,r,s,!1,i)}function WP(e,t,n,a,r,s,i="NDHWC"){let[o,l,u]=Lx(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 $N(e,p,n,a,r,!1,d,s)}function ud(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]=Ic(n),[b,y]=Ic(a),x=zl(c,b),v=zl(h,y),{padInfo:I,outHeight:T,outWidth:C}=UP(r,u,p,f,g,x,v,s,o),E=i?m*d:m,F;return o==="channelsFirst"?F=[l,E,T,C]:o==="channelsLast"&&(F=[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:v,dilationHeight:b,dilationWidth:y,inShape:e,outShape:F,filterShape:t}}function $N(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,[b,y,x]=Lx(n),[v,I,T]=Lx(a),C=zl(h,v),E=zl(m,I),F=zl(f,T),{padInfo:D,outDepth:$,outHeight:S,outWidth:M}=GP(r,u,p,d,b,y,x,C,E,F,o),B=s?g*c:g,U;return i==="channelsFirst"?U=[l,B,$,S,M]:i==="channelsLast"&&(U=[l,$,S,M,B]),{batchSize:l,dataFormat:i,inDepth:u,inHeight:p,inWidth:d,inChannels:c,outDepth:$,outHeight:S,outWidth:M,outChannels:B,padInfo:D,strideDepth:b,strideHeight:y,strideWidth:x,filterDepth:h,filterHeight:m,filterWidth:f,effectiveFilterDepth:C,effectiveFilterHeight:E,effectiveFilterWidth:F,dilationDepth:v,dilationHeight:I,dilationWidth:T,inShape:e,outShape:U,filterShape:t}}function BP(e,t,n,a,r){a==null&&(a=qv(e,t,n));let s=e[0],i=e[1],o=Sc((s-t+2*a)/n+1,r),l=Sc((i-t+2*a)/n+1,r);return[o,l]}function VP(e,t,n,a,r,s){r==null&&(r=qv(e,t[0],a[0]));let i=[0,0,0,n];for(let o=0;o<3;o++)e[o]+2*r>=t[o]&&(i[o]=Sc((e[o]-t[o]+2*r)/a[o]+1,s));return i}function qv(e,t,n,a=1){let r=zl(t,a);return Math.floor((e[0]*(n-1)-n+r)/2)}function Ic(e){return typeof e=="number"?[e,e,e]:e.length===2?[e[0],e[1],1]:e}function Lx(e){return typeof e=="number"?[e,e,e]:e}function zl(e,t){return t<=1?e:e+(e-1)*(t-1)}function UP(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=BP([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),b=h-g;u={top:m,bottom:f,left:g,right:b,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=Sc((t-s+c+h)/a+1,o),d=Sc((n-i+m+f)/r+1,o)}else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:u,outHeight:p,outWidth:d}}function GP(e,t,n,a,r,s,i,o,l,u,p){let d,c,h,m;if(e==="valid"&&(e=0),typeof e=="number"){d={top:e,bottom:e,left:e,right:e,front:e,back:e,type:e===0?"VALID":"NUMBER"};let f=VP([t,n,a,1],[o,l,u],1,[r,s,i],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,b=(m-1)*i+u-a,y=Math.floor(f/2),x=f-y,v=Math.floor(g/2),I=g-v,T=Math.floor(b/2),C=b-T;d={top:v,bottom:I,left:T,right:C,front:y,back:x,type:"SAME"}}else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:d,outDepth:c,outHeight:h,outWidth:m}}function Sc(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 ms(e){let[t,n,a]=Ic(e);return t===1&&n===1&&a===1}function mr(e,t){return ms(e)||ms(t)}function hi(e){return Ic(e).every(t=>t>0)}function DN(e){if(e==="NHWC")return"channelsLast";if(e==="NCHW")return"channelsFirst";throw new Error(`Unknown dataFormat ${e}`)}function Cn(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(Bl(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(Bl(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 HP(e,t){let n={x:_(e,"x","reshape","string_or_numeric")},a={shape:t};return O.runKernel(qu,n,a)}var W=L({reshape_:HP});function qP(e,t,n,a,r){let s=_(e,"x","avgPool","float32"),i=1;A(mr(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}.`),Cn("avgPool",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r},d=O.runKernel(Ri,u,p);return d=se(d,s.dtype),l?W(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var xa=L({avgPool_:qP});function jP(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}`),A(typeof n=="number"&&n>0||Array.isArray(n)&&n[0]>0&&n[1]>0&&n[2]>0,()=>`Error in avgPool3d: Stride must be > 0, but got '${n}'`),Cn("avgPool3d",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r,dataFormat:s},d=O.runKernel(hu,u,p);return d=se(d,o.dtype),l?W(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}var jv=L({avgPool3d_:jP});function KP(e,t=0){A(e.length>=1,()=>"Pass at least one tensor to concat");let n=wc(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(bu,a,r)}var et=L({concat_:KP});function XP(e,t,n=!1,a=!1){let r=_(e,"a","matMul"),s=_(t,"b","matMul");[r,s]=Ft(r,s);let i={a:r,b:s},o={transposeA:n,transposeB:a};return O.runKernel(Mi,i,o)}var $e=L({matMul_:XP});function YP(e){let t={x:_(e,"x","sigmoid","float32")};return O.runKernel(Po,t)}var fa=L({sigmoid_:YP});function ZP(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(Qu,r,s)}var Ue=L({slice_:ZP});function JP(e){let t={x:_(e,"x","tanh","float32")};return O.runKernel(Go,t)}var mi=L({tanh_:JP});function QP(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=et([u,d],1),h=$e(c,o),m=X(h,l),f=m.shape[0],g=m.shape[1]/4,b=[f,g],y=Ue(m,[0,0],b),x=Ue(m,[0,g],b),v=Ue(m,[0,g*2],b),I=Ue(m,[0,g*3],b),T=X(z(fa(y),mi(x)),z(p,fa(X(i,v)))),C=z(mi(T),fa(I));return[T,C]}var RN=L({basicLSTMCell_:QP});function eO(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(mu,s,i)}var pd=L({batchToSpaceND_:eO});function tO(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 nO(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:tO(i),scale:u,offset:p,mean:o,variance:l},c={varianceEpsilon:s},h=O.runKernel(Qi,d,c);return W(h,i.shape)}var _s=L({batchNorm_:nO});function aO(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}.`),_s(i,o,l,p,u,s)}var Kv=L({batchNorm2d_:aO});function rO(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}.`),_s(i,o,l,p,u,s)}var Xv=L({batchNorm3d_:rO});function sO(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}.`),_s(i,o,l,p,u,s)}var Yv=L({batchNorm4d_:sO});function iO(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(fu,s,i)}var Zv=L({bincount_:iO});function oO(e,t){let n=_(e,"x","bitwiseAnd"),a=_(t,"y","bitwiseAnd");if(!Pr(n.shape,a.shape))throw new Error(`BitwiseAnd: Tensors must have the same shape. x: ${n.shape}, y: ${a.shape}`);if(n.dtype!=="int32"||a.dtype!=="int32")throw new Error(`BitwiseAnd: Only supports 'int32' values in tensor, found type of x: ${n.dtype} and type of y: ${a.dtype}`);let r={a:n,b:a};return O.runKernel(gu,r)}var MN=L({bitwiseAnd_:oO});function lO(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(zc,r)}var PN=L({broadcastArgs_:lO});function uO(e,t){let n=_(e,"broadcastTo","x"),a=n.shape;if(sa(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(Ns,i,o)}var ri=L({broadcastTo_:uO});function pO(e){let t={x:_(e,"x","ceil","float32")};return O.runKernel(Oi,t)}var Jv=L({ceil_:pO});function xn(e,t,n){sa(e),n=n||Pc(t);let a={shape:e,value:t,dtype:n};return O.runKernel(Uc,{},a)}function cO(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 xn(a.shape,t,a.dtype);let r={x:a},s={clipValueMin:t,clipValueMax:n};return O.runKernel(Ss,r,s)}var sn=L({clipByValue_:cO});function dO(e){return et(e,0)}var Qv=L({concat1d_:dO});function hO(e,t){return et(e,t)}var ew=L({concat2d_:hO});function mO(e,t){return et(e,t)}var tw=L({concat3d_:mO});function fO(e,t){return et(e,t)}var nw=L({concat4d_:fO});function gO(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}.`),Cn("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(mr(n,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),A(hi(s),()=>"Error in conv2D: Dilated rates should be larger than 0."),A(hi(n),()=>"Error in conv2D: Strides should be larger than 0.");let c={x:u,filter:l},h={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i},m=O.runKernel(Li,c,h);return p?W(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var Rt=L({conv2d_:gO});function bO(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}.`),Cn("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(mr(n,s),()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${n} and dilation '${s}'`),A(hi(s),()=>"Error in conv1D: Dilated rates should be larger than 0."),A(hi(n),()=>"Error in conv1D: Stride should be larger than 0."),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=Rt(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 ef=L({conv1d_:bO});function yO(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]}.`),Cn("conv2dDerInput",r,i);let c={dy:l,filter:n},h={strides:a,pad:r,dataFormat:s,dimRoundingMode:i,inputShape:o},m=O.runKernel(zi,c,h);return u?W(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var aw=L({conv2DBackpropInput_:yO});function xO(e,t,n,a,r,s){let i=_(e,"x","conv2dTranspose"),o=_(t,"filter","conv2dTranspose");return aw(n,i,o,a,r,"NHWC",s)}var tf=L({conv2dTranspose_:xO});function vO(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(mr(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.`),A(hi(s),()=>"Error in conv3D: Dilated rates should be larger than 0."),A(hi(n),()=>"Error in conv3D: Strides should be larger than 0.");let p={x:l,filter:o},d={strides:n,pad:a,dataFormat:r,dilations:s},c=O.runKernel(Wi,p,d);return u?W(c,[c.shape[1],c.shape[2],c.shape[3],c.shape[4]]):c}var rw=L({conv3d_:vO});function wO(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(xu,p,d);return o?W(c,[c.shape[1],c.shape[2],c.shape[3],c.shape[4]]):c}var ON=L({conv3DBackpropInput_:wO});function kO(e,t,n,a,r){let s=_(e,"x","conv3dTranspose"),i=_(t,"filter","conv3dTranspose");return ON(n,s,i,a,r)}var sw=L({conv3dTranspose_:kO});function IO(e){let t={x:_(e,"x","cos","float32")};return O.runKernel(Bi,t)}var cd=L({cos_:IO});function SO(e){let t={x:_(e,"x","cosh","float32")};return O.runKernel(Vi,t)}var nf=L({cosh_:SO});function NO(e,t=0,n=!1,a=!1){let r={x:_(e,"x","cumprod")},s={axis:t,exclusive:n,reverse:a};return O.runKernel(vu,r,s)}var Nc=L({cumprod_:NO});function TO(e,t=0,n=!1,a=!1){let r={x:_(e,"x","cumsum")},s={axis:t,exclusive:n,reverse:a};return O.runKernel(Ui,r,s)}var af=L({cumsum_:TO});function CO(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(Bc,i,o)}var dm=L({denseBincount_:CO});function _O(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 ${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(bu,o,l)}var Jv=L({depthToSpace_:hO});function mO(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]}.`),Cn("depthwiseConv2d",a,i);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 _s=L({depthwiseConv2d_:mO});function fO(e){let t={x:_(e,"x","diag")};return O.runKernel(Lc,t)}var EN=L({diag_:fO});function gO(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),A(l.shape[3]===o.shape[2],()=>`Error in dilation2d: input and filter must have the same depth: ${l.shape[3]} vs ${o.shape[2]}`);let p={x:l,filter:o},d={strides:n,pad:a,dilations:r},c=O.runKernel(Ui,p,d);return u?W(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var Qv=L({dilation2d_:gO}),lp={};Ee(lp,{assertAndGetBroadcastShape:()=>pt,getBroadcastDims:()=>AN,getReductionAxes:()=>Ut});function AN(e,t){let n=e.length,a=[];for(let r=0;r1&&i===1&&a.unshift(s)}return a}function Ut(e,t){let n=[];for(let a=0;a1)&&n.unshift(s)}return n}function pt(e,t){let n=Math.max(e.length,t.length),a=new Array(n);for(let r=0;r`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=$e(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=$e(i,o);return W(l,[l.size])}else if(n.rank===2&&a.rank===1){let i=W(a,[-1,1]),o=$e(n,i);return W(o,[o.size])}else{let i=W(a,[a.shape[0],a.shape[1]]);return $e(n,i)}}var tw=L({dot_:wO});function kO(e,...t){let n=t.map((r,s)=>_(r,`tensors${s}`,"einsum")),a={equation:e};return O.runKernel(Lm,n,a)}var FN=L({einsum_:kO});function IO(e){let t={x:_(e,"x","elu","float32")};return O.runKernel(Hi,t)}var up=L({elu_:IO});function SO(e,t){let n=_(e,"x","ensureShape","string_or_numeric");if(!OS(n.shape,t))throw new Error(`EnsureShape: Shape of tensor ${n.shape} is not compatible with expected shape ${t}`);return e}var $N=L({ensureShape_:SO});function NO(e){let t=_(e,"x","erf");A(t.dtype==="int32"||t.dtype==="float32",()=>"Input dtype must be `int32` or `float32`."),t.dtype==="int32"&&(t=ie(t,"float32"));let n={x:t};return O.runKernel(xu,n)}var nw=L({erf_:NO});function aw(e,t){for(let n=0;ne[s]);return[n,r]}function mi(e,t){let n=t.map(a=>1);return DN(e,n,t)}function TO(e,t,n){A(aw(t,n),()=>`${e} supports only inner-most axes for now. Got axes ${t} and rank-${n} input.`)}function MN(e,t){if(aw(e,t))return null;let n=[];for(let a=0;an.push(a)),n}function rw(e){return e.map((t,n)=>[n,t]).sort((t,n)=>t[1]-n[1]).map(t=>t[0])}function CO(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(wu,a,r)}var tn=L({expandDims_:OO});function LO(e){let t={x:_(e,"x","expm1")};return O.runKernel(ji,t)}var iw=L({expm1_:LO});function zO(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(Ss,a,r)}var Ln=L({tile_:zO});function WO(e,t,n,a="float32"){t==null&&(t=e);let r=ze([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(Pl(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(so,l,u);return o?W(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var pw=L({localResponseNormalization_:JO});function QO(e){let t={x:_(e,"x","log","float32")};return O.runKernel(ao,t)}var na=L({log_:QO});function e3(e){let t={x:_(e,"x","log1p")};return O.runKernel(ro,t)}var ld=L({log1p_:e3});function t3(e){return A(ps(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)"),rf(i),i[0]})}}function n3(e){return A(ps(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=yc(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,...])"),rf(i),i})}}function a3(e){return A(ps(e),()=>"The f passed in valueAndGrad(f) must be a function"),(t,n)=>{A(t instanceof Ce,()=>"The x passed in valueAndGrad(f)(x) must be a tensor"),A(n==null||n instanceof Ce,()=>"The dy passed in valueAndGrad(f)(x, dy) must be a tensor");let{grads:a,value:r}=O.gradients(()=>e(t),[t],n);return rf(a),{grad:a[0],value:r}}}function r3(e){return A(ps(e),()=>"The f passed in valueAndGrads(f) must be a function"),(t,n)=>{A(Array.isArray(t)&&t.every(r=>r instanceof Ce),()=>"The args passed in valueAndGrads(f)(args) must be array of tensors"),A(n==null||n instanceof Ce,()=>"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,...])"),rf(a.grads),a}}function LN(e,t){A(ps(e),()=>"The f passed in variableGrads(f) must be a function"),A(t==null||Array.isArray(t)&&t.every(u=>u instanceof ds),()=>"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 rf(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 s3(e){let t={x:_(e,"x","neg")};return O.runKernel(Pu,t)}var yt=L({neg_:s3});function i3(e){let t={x:_(e,"x","softplus")};return O.runKernel($o,t)}var Wo=L({softplus_:i3});function o3(e){let t=_(e,"x","logSigmoid");return cr(n=>({value:yt(Wo(yt(n))),gradFunc:a=>z(a,fa(yt(n)))}))(t)}var cw=L({logSigmoid_:o3});function l3(e,t){let n=_(e,"a","sub"),a=_(t,"b","sub");[n,a]=Ft(n,a);let r={a:n,b:a};return O.runKernel(Oo,r)}var pe=L({sub_:l3});function u3(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 cr((a,r)=>{let s=ga(a,t,!0),i=pe(a,s),o=pe(ie(i,"float32"),na(fe(yn(i),t,!0)));return r([o]),{value:o,gradFunc:(l,u)=>{let[p]=u,d=!0,c=yn(p);return pe(l,z(fe(l,t,d),c))}}})(n)}var sf=L({logSoftmax_:u3});function p3(e,t=null,n=!1){let a=_(e,"x","logSumExp"),r=Ra(t,a.shape),s=ga(a,r,!0),i=pe(a,s),o=yn(i),l=fe(o,r),u=na(l),p=X(W(s,u.shape),u);if(n){let d=mi(p.shape,r);return W(p,d)}return p}var of=L({logSumExp_:p3});function c3(e,t){let n=_(e,"a","logicalAnd","bool"),a=_(t,"b","logicalAnd","bool");pt(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(Eu,r)}var Da=L({logicalAnd_:c3});function d3(e){let t={x:_(e,"x","logicalNot","bool")};return O.runKernel(Au,t)}var ud=L({logicalNot_:d3});function h3(e,t){let n=_(e,"a","logicalOr","bool"),a=_(t,"b","logicalOr","bool");pt(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(Fu,r)}var lf=L({logicalOr_:h3});function m3(e,t){let n=_(e,"a","logicalXor","bool"),a=_(t,"b","logicalXor","bool");return pt(n.shape,a.shape),Da(lf(e,t),ud(Da(e,t)))}var dw=L({logicalXor_:m3}),Ah=2147483648;function f3(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(bt(l.shape)>=Ah)throw new Error(`values tensor size must less than ${Ah}`);if(o.shape[1]>=Ah)throw new Error(`trailing dim_size must less than ${Ah} for int32 output type, was ${o.shape[1]}`);let u={sortedSequence:o,values:l},p={side:n};return O.runKernel(Ku,u,p)}var uf=L({searchSorted_:f3});function zN(e,t){return uf(e,t,"left")}function g3(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(hr(n,i),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`),Cn("maxPool",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r},d=O.runKernel(lo,u,p);return l?W(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var Mt=L({maxPool_:g3});function b3(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}`),Cn("maxPool3d",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r,dataFormat:s},d=O.runKernel(Du,u,p);return l?W(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}var hw=L({maxPool3d_:b3});function y3(e,t,n,a,r=!1){let s={x:_(e,"x","maxPoolWithArgmax")},i={filterSize:t,strides:n,pad:a,includeBatchInIndex:r},o=O.runKernel(Um,s,i);return{result:o[0],indexes:o[1]}}var WN=L({maxPoolWithArgmax_:y3});function x3(e,t){let n=_(e,"a","maximum"),a=_(t,"b","maximum");[n,a]=Ft(n,a),n.dtype==="bool"&&(n=ie(n,"int32"),a=ie(a,"int32")),pt(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(oo,r)}var mr=L({maximum_:x3});function v3(e,t=null,n=!1){let a={x:_(e,"x","mean")},r={axis:t,keepDims:n};return O.runKernel(uo,a,r)}var Et=L({mean_:v3});function Nt(e,t="float32"){if(sa(e),t==="complex64"){let a=Nt(e,"float32"),r=Nt(e,"float32");return Dr(a,r)}let n=Am(bt(e),t);return O.makeTensor(n,e,t)}function Qn(e,t="float32"){if(sa(e),t==="complex64"){let a=Qn(e,"float32"),r=Nt(e,"float32");return Dr(a,r)}let n=xv(bt(e),t);return O.makeTensor(n,e,t)}function BN(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 Ce?e.dtype:"float32");if(t===void 0)return[a];let r=_(t,"y","meshgrid",t instanceof Ce?t.dtype:"float32"),s=bt(a.shape),i=bt(r.shape);return n==="xy"?(a=W(a,[1,-1]),r=W(r,[-1,1]),[$e(Qn([i,1],a.dtype),a),$e(r,Qn([1,s],r.dtype))]):(a=W(a,[-1,1]),r=W(r,[1,-1]),[$e(a,Qn([1,i],a.dtype)),$e(Qn([s,1],r.dtype),r)])}function w3(e,t){let n=_(e,"a","minimum"),a=_(t,"b","minimum");[n,a]=Ft(n,a),n.dtype==="bool"&&(n=ie(n,"int32"),a=ie(a,"int32")),pt(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(co,r)}var ms=L({minimum_:w3});function k3(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(ho,i,s)}var mw=L({mirrorPad_:k3});function I3(e,t){let n=_(e,"a","mod"),a=_(t,"b","mod");[n,a]=Ft(n,a);let r={a:n,b:a};return O.runKernel(Ru,r)}var fw=L({mod_:I3});function S3(e,t=null,n=!1){e=_(e,"x","moments");let a=Ra(t,e.shape),r=Et(e,a,n),s=r.shape;n||(s=mi(r.shape,a));let i=ut(pe(ie(e,"float32"),W(r,s))),o=Et(i,a,n);return{mean:r,variance:o}}var pd=L({moments_:S3});function N3(e,t,n,a){let r=_(t,"data","multiRNNCell"),s=yc(n,"c","multiRNNCell"),i=yc(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(Mu,o,l);return i===1?W(u,[u.size]):u}var UN=L({multinomial_:T3});function C3(e,t){let n=_(e,"a","notEqual","string_or_numeric"),a=_(t,"b","notEqual","string_or_numeric");[n,a]=Ft(n,a),pt(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(Ou,r)}var fi=L({notEqual_:C3});function _3(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(fo,s,i)}var Vl=L({oneHot_:_3});function E3(e){let t={x:_(e,"x","onesLike")};return O.runKernel(Bu,t)}var aa=L({onesLike_:E3});function A3(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 $e(r,s)}var GN=L({outerProduct_:A3});function F3(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(go,s,r)}var va=L({pad_:F3});function $3(e,t,n=0){return A(t.length===2,()=>"Invalid number of paddings. Must be length of 2."),va(e,[t],n)}var HN=L({pad1d_:$3});function D3(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."),va(e,t,n)}var qN=L({pad2d_:D3});function R3(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."),va(e,t,n)}var jN=L({pad3d_:R3});function M3(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."),va(e,t,n)}var KN=L({pad4d_:M3});function P3(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(Ju,r,s)}var cd=L({spaceToBatchND_:P3});function O3(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(hr(s,r),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${r}'`);let p=kN(l.shape,t,s,r,a),d=[p.dilationHeight,p.dilationWidth],c;a==="same"?c=z3([p.filterHeight,p.filterWidth],d):c=[[0,0],[0,0]];let h=d[0]===1&&d[1]===1,[m,f]=L3([p.inHeight,p.inWidth],d,c),g=h?a:"valid",b=h?l:cd(l,d,m),y=(n==="avg"?()=>xa(b,t,s,g,i):()=>Mt(b,t,s,g,i))(),x=h?y:rd(y,d,f);return u?W(x,[x.shape[1],x.shape[2],x.shape[3]]):x}function L3(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 z3(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 gw=L({pool_:O3});function W3(e,t){let n=_(e,"x","prelu"),a=_(t,"alpha","prelu"),r={x:n,alpha:a};return O.runKernel(yo,r)}var dd=L({prelu_:W3});function B3(e,t=null,n=!1){let a=_(e,"x","prod");a.dtype==="bool"&&(a=ie(a,"int32"));let r={x:a},s={axis:t,keepDims:n};return O.runKernel(xo,r,s)}var bw=L({prod_:B3});function V3(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(Gm,o,l);return{outputNestedSplits:u.slice(0,u.length-1),outputDenseValues:u[u.length-1]}}var XN=L({raggedGather_:V3});function U3(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(Hm,i);return{rtNestedSplits:o[0],rtDenseValues:o[1]}}var YN=L({raggedRange_:U3});function G3(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(qm,u,p)}var ZN=L({raggedTensorToTensor_:G3});function H3(e,t,n){sa(e);let a=bt(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;seT,createVideoElement:()=>Q3,encodeStrings:()=>tT,expectArrayBuffersEqual:()=>J3,expectArraysClose:()=>j3,expectArraysEqual:()=>X3,expectNumbersClose:()=>Y3,expectPromiseToFail:()=>K3,expectValuesInRange:()=>Z3,play:()=>eL,testEpsilon:()=>xw});var q3=.001,eT=.1;function j3(e,t,n){return n==null&&(n=xw()),Fx(e,t,(a,r)=>vw(a,r,n))}function xw(){return O.backend.floatPrecision()===32?q3:eT}function Fx(e,t,n){let a=!0;if((en(e)||en(t))&&(a=!1),en(e)&&en(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(!Mr(i,o))throw new Error(`Arrays have different shapes. Actual: [${i}]. Expected: [${o}]`)}let r=en(e)?e:cs(e),s=en(t)?t:cs(t);if(r.length!==s.length)throw new Error(`Arrays have different lengths actual: ${r.length} vs expected: ${s.length}. + ${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(ku,o,l)}var iw=L({depthToSpace_:_O});function EO(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]}.`),Cn("depthwiseConv2d",a,i);let c={x:u,filter:l},h={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i},m=O.runKernel(Gi,c,h);return p?W(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var Es=L({depthwiseConv2d_:EO});function AO(e){let t={x:_(e,"x","diag")};return O.runKernel(Vc,t)}var LN=L({diag_:AO});function FO(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),A(l.shape[3]===o.shape[2],()=>`Error in dilation2d: input and filter must have the same depth: ${l.shape[3]} vs ${o.shape[2]}`);let p={x:l,filter:o},d={strides:n,pad:a,dilations:r},c=O.runKernel(Hi,p,d);return u?W(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var ow=L({dilation2d_:FO}),pp={};Ee(pp,{assertAndGetBroadcastShape:()=>pt,getBroadcastDims:()=>zN,getReductionAxes:()=>Ut});function zN(e,t){let n=e.length,a=[];for(let r=0;r1&&i===1&&a.unshift(s)}return a}function Ut(e,t){let n=[];for(let a=0;a1)&&n.unshift(s)}return n}function pt(e,t){let n=Math.max(e.length,t.length),a=new Array(n);for(let r=0;r`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=$e(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=$e(i,o);return W(l,[l.size])}else if(n.rank===2&&a.rank===1){let i=W(a,[-1,1]),o=$e(n,i);return W(o,[o.size])}else{let i=W(a,[a.shape[0],a.shape[1]]);return $e(n,i)}}var uw=L({dot_:PO});function OO(e,...t){let n=t.map((r,s)=>_(r,`tensors${s}`,"einsum")),a={equation:e};return O.runKernel(Bm,n,a)}var WN=L({einsum_:OO});function LO(e){let t={x:_(e,"x","elu","float32")};return O.runKernel(ji,t)}var cp=L({elu_:LO});function zO(e,t){let n=_(e,"x","ensureShape","string_or_numeric");if(!qS(n.shape,t))throw new Error(`EnsureShape: Shape of tensor ${n.shape} is not compatible with expected shape ${t}`);return e}var BN=L({ensureShape_:zO});function WO(e){let t=_(e,"x","erf");A(t.dtype==="int32"||t.dtype==="float32",()=>"Input dtype must be `int32` or `float32`."),t.dtype==="int32"&&(t=se(t,"float32"));let n={x:t};return O.runKernel(Ki,n)}var pw=L({erf_:WO});function cw(e,t){for(let n=0;ne[s]);return[n,r]}function fi(e,t){let n=t.map(a=>1);return VN(e,n,t)}function BO(e,t,n){A(cw(t,n),()=>`${e} supports only inner-most axes for now. Got axes ${t} and rank-${n} input.`)}function GN(e,t){if(cw(e,t))return null;let n=[];for(let a=0;an.push(a)),n}function dw(e){return e.map((t,n)=>[n,t]).sort((t,n)=>t[1]-n[1]).map(t=>t[0])}function VO(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(Nu,a,r)}var nn=L({expandDims_:JO});function QO(e){let t={x:_(e,"x","expm1")};return O.runKernel(Yi,t)}var mw=L({expm1_:QO});function e3(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(Ns,a,r)}var Ln=L({tile_:e3});function t3(e,t,n,a="float32"){t==null&&(t=e);let r=ze([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(Bl(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(lo,l,u);return o?W(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var yw=L({localResponseNormalization_:h3});function m3(e){let t={x:_(e,"x","log","float32")};return O.runKernel(io,t)}var na=L({log_:m3});function f3(e){let t={x:_(e,"x","log1p")};return O.runKernel(oo,t)}var md=L({log1p_:f3});function g3(e){return A(cs(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)"),sf(i),i[0]})}}function b3(e){return A(cs(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=wc(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,...])"),sf(i),i})}}function y3(e){return A(cs(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 sf(a),{grad:a[0],value:r}}}function x3(e){return A(cs(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,...])"),sf(a.grads),a}}function jN(e,t){A(cs(e),()=>"The f passed in variableGrads(f) must be a function"),A(t==null||Array.isArray(t)&&t.every(u=>u instanceof hs),()=>"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 sf(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 v3(e){let t={x:_(e,"x","neg")};return O.runKernel(zu,t)}var yt=L({neg_:v3});function w3(e){let t={x:_(e,"x","softplus")};return O.runKernel(Oo,t)}var Ho=L({softplus_:w3});function k3(e){let t=_(e,"x","logSigmoid");return cr(n=>({value:yt(Ho(yt(n))),gradFunc:a=>z(a,fa(yt(n)))}))(t)}var xw=L({logSigmoid_:k3});function I3(e,t){let n=_(e,"a","sub"),a=_(t,"b","sub");[n,a]=Ft(n,a);let r={a:n,b:a};return O.runKernel(Vo,r)}var pe=L({sub_:I3});function S3(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 cr((a,r)=>{let s=ga(a,t,!0),i=pe(a,s),o=pe(se(i,"float32"),na(fe(yn(i),t,!0)));return r([o]),{value:o,gradFunc:(l,u)=>{let[p]=u,d=!0,c=yn(p);return pe(l,z(fe(l,t,d),c))}}})(n)}var of=L({logSoftmax_:S3});function N3(e,t=null,n=!1){let a=_(e,"x","logSumExp"),r=Ra(t,a.shape),s=ga(a,r,!0),i=pe(a,s),o=yn(i),l=fe(o,r),u=na(l),p=X(W(s,u.shape),u);if(n){let d=fi(p.shape,r);return W(p,d)}return p}var lf=L({logSumExp_:N3});function T3(e,t){let n=_(e,"a","logicalAnd","bool"),a=_(t,"b","logicalAnd","bool");pt(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(Du,r)}var Da=L({logicalAnd_:T3});function C3(e){let t={x:_(e,"x","logicalNot","bool")};return O.runKernel(Ru,t)}var fd=L({logicalNot_:C3});function _3(e,t){let n=_(e,"a","logicalOr","bool"),a=_(t,"b","logicalOr","bool");pt(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(Mu,r)}var uf=L({logicalOr_:_3});function E3(e,t){let n=_(e,"a","logicalXor","bool"),a=_(t,"b","logicalXor","bool");return pt(n.shape,a.shape),Da(uf(e,t),fd(Da(e,t)))}var vw=L({logicalXor_:E3}),Mh=2147483648;function A3(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(bt(l.shape)>=Mh)throw new Error(`values tensor size must less than ${Mh}`);if(o.shape[1]>=Mh)throw new Error(`trailing dim_size must less than ${Mh} for int32 output type, was ${o.shape[1]}`);let u={sortedSequence:o,values:l},p={side:n};return O.runKernel(Zu,u,p)}var pf=L({searchSorted_:A3});function KN(e,t){return pf(e,t,"left")}function F3(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(mr(n,i),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`),Cn("maxPool",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r},d=O.runKernel(co,u,p);return l?W(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var Mt=L({maxPool_:F3});function $3(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}`),Cn("maxPool3d",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r,dataFormat:s},d=O.runKernel(Ou,u,p);return l?W(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}var ww=L({maxPool3d_:$3});function D3(e,t,n,a,r=!1){let s={x:_(e,"x","maxPoolWithArgmax")},i={filterSize:t,strides:n,pad:a,includeBatchInIndex:r},o=O.runKernel(qc,s,i);return{result:o[0],indexes:o[1]}}var XN=L({maxPoolWithArgmax_:D3});function R3(e,t){let n=_(e,"a","maximum"),a=_(t,"b","maximum");[n,a]=Ft(n,a),n.dtype==="bool"&&(n=se(n,"int32"),a=se(a,"int32")),pt(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(po,r)}var fr=L({maximum_:R3});function M3(e,t=null,n=!1){let a={x:_(e,"x","mean")},r={axis:t,keepDims:n};return O.runKernel(ho,a,r)}var Et=L({mean_:M3});function Nt(e,t="float32"){if(sa(e),t==="complex64"){let a=Nt(e,"float32"),r=Nt(e,"float32");return Rr(a,r)}let n=Mm(bt(e),t);return O.makeTensor(n,e,t)}function Qn(e,t="float32"){if(sa(e),t==="complex64"){let a=Qn(e,"float32"),r=Nt(e,"float32");return Rr(a,r)}let n=Cv(bt(e),t);return O.makeTensor(n,e,t)}function YN(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=bt(a.shape),i=bt(r.shape);return n==="xy"?(a=W(a,[1,-1]),r=W(r,[-1,1]),[$e(Qn([i,1],a.dtype),a),$e(r,Qn([1,s],r.dtype))]):(a=W(a,[-1,1]),r=W(r,[1,-1]),[$e(a,Qn([1,i],a.dtype)),$e(Qn([s,1],r.dtype),r)])}function P3(e,t){let n=_(e,"a","minimum"),a=_(t,"b","minimum");[n,a]=Ft(n,a),n.dtype==="bool"&&(n=se(n,"int32"),a=se(a,"int32")),pt(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(fo,r)}var fs=L({minimum_:P3});function O3(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(go,i,s)}var kw=L({mirrorPad_:O3});function L3(e,t){let n=_(e,"a","mod"),a=_(t,"b","mod");[n,a]=Ft(n,a);let r={a:n,b:a};return O.runKernel(bo,r)}var Iw=L({mod_:L3});function z3(e,t=null,n=!1){e=_(e,"x","moments");let a=Ra(t,e.shape),r=Et(e,a,n),s=r.shape;n||(s=fi(r.shape,a));let i=ut(pe(se(e,"float32"),W(r,s))),o=Et(i,a,n);return{mean:r,variance:o}}var gd=L({moments_:z3});function W3(e,t,n,a){let r=_(t,"data","multiRNNCell"),s=wc(n,"c","multiRNNCell"),i=wc(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(Lu,o,l);return i===1?W(u,[u.size]):u}var JN=L({multinomial_:B3});function V3(e,t){let n=_(e,"a","notEqual","string_or_numeric"),a=_(t,"b","notEqual","string_or_numeric");[n,a]=Ft(n,a),pt(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(Wu,r)}var gi=L({notEqual_:V3});function U3(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(xo,s,i)}var jl=L({oneHot_:U3});function G3(e){let t={x:_(e,"x","onesLike")};return O.runKernel(Gu,t)}var aa=L({onesLike_:G3});function H3(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 $e(r,s)}var QN=L({outerProduct_:H3});function q3(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(vo,s,r)}var va=L({pad_:q3});function j3(e,t,n=0){return A(t.length===2,()=>"Invalid number of paddings. Must be length of 2."),va(e,[t],n)}var eT=L({pad1d_:j3});function K3(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."),va(e,t,n)}var tT=L({pad2d_:K3});function X3(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."),va(e,t,n)}var nT=L({pad3d_:X3});function Y3(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."),va(e,t,n)}var aT=L({pad4d_:Y3});function Z3(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(ep,r,s)}var bd=L({spaceToBatchND_:Z3});function J3(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(mr(s,r),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${r}'`);let p=FN(l.shape,t,s,r,a),d=[p.dilationHeight,p.dilationWidth],c;a==="same"?c=eL([p.filterHeight,p.filterWidth],d):c=[[0,0],[0,0]];let h=d[0]===1&&d[1]===1,[m,f]=Q3([p.inHeight,p.inWidth],d,c),g=h?a:"valid",b=h?l:bd(l,d,m),y=(n==="avg"?()=>xa(b,t,s,g,i):()=>Mt(b,t,s,g,i))(),x=h?y:pd(y,d,f);return u?W(x,[x.shape[1],x.shape[2],x.shape[3]]):x}function Q3(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 eL(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 Sw=L({pool_:J3});function tL(e,t){let n=_(e,"x","prelu"),a=_(t,"alpha","prelu"),r={x:n,alpha:a};return O.runKernel(ko,r)}var yd=L({prelu_:tL});function nL(e,t=null,n=!1){let a=_(e,"x","prod");a.dtype==="bool"&&(a=se(a,"int32"));let r={x:a},s={axis:t,keepDims:n};return O.runKernel(Io,r,s)}var Nw=L({prod_:nL});function aL(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(Hm,o,l);return{outputNestedSplits:u.slice(0,u.length-1),outputDenseValues:u[u.length-1]}}var rT=L({raggedGather_:aL});function rL(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(qm,i);return{rtNestedSplits:o[0],rtDenseValues:o[1]}}var sT=L({raggedRange_:rL});function sL(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(jm,u,p)}var iT=L({raggedTensorToTensor_:sL});function iL(e,t,n){sa(e);let a=bt(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;suT,createVideoElement:()=>mL,encodeStrings:()=>pT,expectArrayBuffersEqual:()=>hL,expectArraysClose:()=>lL,expectArraysEqual:()=>pL,expectNumbersClose:()=>cL,expectPromiseToFail:()=>uL,expectValuesInRange:()=>dL,play:()=>fL,testEpsilon:()=>Cw});var oL=.001,uT=.1;function lL(e,t,n){return n==null&&(n=Cw()),zx(e,t,(a,r)=>_w(a,r,n))}function Cw(){return O.backend.floatPrecision()===32?oL:uT}function zx(e,t,n){let a=!0;if((tn(e)||tn(t))&&(a=!1),tn(e)&&tn(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(!Pr(i,o))throw new Error(`Arrays have different shapes. Actual: [${i}]. Expected: [${o}]`)}let r=tn(e)?e:ds(e),s=tn(t)?t:ds(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 X3(e,t){let n=typeof t=="string"||typeof t=="number"||typeof t=="boolean"?[t]:t;return as(e)||as(e[0])||as(t)||as(t[0])?Fx(e,n,(a,r)=>a==r):Fx(e,t,(a,r)=>vw(a,r,0))}function Y3(e,t,n){if(n==null&&(n=xw()),!vw(e,t,n))throw new Error(`Numbers differ: actual === ${e}, expected === ${t}`);typeof expect!="undefined"&&expect().nothing()}function vw(e,t,n){return!isFinite(e)&&!isFinite(t)?!0:!(isNaN(e)||isNaN(t)||Math.abs(e-t)>n)}function Z3(e,t,n){for(let a=0;an)throw new Error(`Value out of range:${e[a]} low: ${t}, high: ${n}`)}function J3(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 eL(e){await e.play(),"requestVideoFrameCallback"in e&&await new Promise(t=>{e.requestVideoFrameCallback(t)})}var ww=class{constructor(e,t,n,a,r){this.mean=e,this.stdDev=t,this.dtype=n,this.nextVal=NaN,this.truncated=a,this.truncated&&(this.upper=this.mean+this.stdDev*2,this.lower=this.mean-this.stdDev*2);let s=r||Math.random();this.random=yw.alea(s.toString())}nextValue(){if(!isNaN(this.nextVal)){let a=this.nextVal;return this.nextVal=NaN,a}let e,t,n=!1;for(;!n;){let a,r,s;do a=2*this.random()-1,r=2*this.random()-1,s=a*a+r*r;while(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}},tL=class{constructor(e,t,n,a){this.alpha=e,this.beta=1/t,this.dtype=n;let r=a||Math.random();this.randu=yw.alea(r.toString()),this.randn=new ww(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=yw.alea(a)}convertValue(e){return this.canReturnFloat()?e:Math.round(e)}nextValue(){return this.convertValue(this.min+this.range*this.random())}};function aL(e,t,n=1,a="float32",r){if(sa(e),n==null&&(n=1),a==null&&(a="float32"),a!=="float32"&&a!=="int32")throw new Error(`Unsupported data type ${a}`);let s=new tL(t,n,a,r),i=ze(e,a);for(let o=0;o`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`),ya(t,0)}var sT=L({reverse1d_:hL});function mL(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}.`),ya(n,t)}var iT=L({reverse2d_:mL});function fL(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}.`),ya(n,t)}var oT=L({reverse3d_:fL});function gL(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}.`),ya(n,t)}var lT=L({reverse4d_:gL});function bL(e){let t={x:_(e,"x","round")};return O.runKernel(To,t)}var df=L({round_:bL});function yL(e){let t={x:_(e,"x","rsqrt","float32")};return O.runKernel(Co,t)}var hf=L({rsqrt_:yL});function xL(e){let t={x:_(e,"x","selu")};return O.runKernel(_o,t)}var mf=L({selu_:xL});function vL(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=_s(p,l,a,r,i,s),f=Rt(m,u,1,"valid",i);return d?W(f,[f.shape[1],f.shape[2],f.shape[3]]):f}var Fs=L({separableConv2d_:vL});async function wL(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`),Ue(a,[t],[n])}var hd=L({slice1d_:NL});function TL(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`),Ue(a,t,n)}var bf=L({slice2d_:TL});function CL(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`),Ue(a,t,n)}var Bo=L({slice3d_:CL});function _L(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`),Ue(a,t,n)}var Gl=L({slice4d_:_L});function EL(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(Mo,a,r)}var Xa=L({softmax_:EL});function AL(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(zm,t)}var md=L({fft_:AL});function FL(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(Wm,t)}var Hl=L({ifft_:FL});function $L(e){let t=e.shape[e.shape.length-1],n=e.size/t,a;if(t<=2){let r=W(e,[n,t]);a=Hl(r)}else{let r=[n,2*(t-1)],s=W(Ul(e),[n,t]),i=W(id(e),[n,t]),o=ya(Ue(s,[0,1],[n,t-2]),1),l=z(ya(Ue(i,[0,1],[n,t-2]),1),ve(-1)),u=Qe([s,o],1),p=Qe([i,l],1),d=W(Dr(u,p),[r[0],r[1]]);a=Hl(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 yf=L({irfft_:$L});function DL(e,t,n=0){let a={x:_(e,"x","split")},r={numOrSizeSplits:t,axis:n};return O.runKernel(Qu,a,r)}var zn=L({split_:DL});function RL(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=Ue(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=Qe([e,Nt(m)],e.shape.length-1),n=t}else r=e;let s=qe(r),i=W(Dr(r,s),[a,n]),o=md(i),l=Math.floor(n/2)+1,u=Ul(o),p=id(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(Dr(d[0],c[0]),h)}var fd=L({rfft_:RL});function ML(e,t){let n=_(e,"a","squaredDifference"),a=_(t,"b","squaredDifference");[n,a]=Ft(n,a),pt(n.shape,a.shape);let r={a:n,b:a},s={};return O.runKernel(Po,r,s)}var xf=L({squaredDifference_:ML});function PL(e,t){let n=_(e,"x","squeeze","string_or_numeric");return W(n,LS(n.shape,t).newShape)}var $s=L({squeeze_:PL});function OL(e,t=0){let n=yc(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 Dt=L({stack_:OL});function LL(e,t=0){let n={x:_(e,"x","step")},a={alpha:t};return O.runKernel(Ns,n,a)}var Vo=L({step_:LL});function zL(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(np,u,p)}var Sw=L({stridedSlice_:zL});function WL(e){let t={x:_(e,"x","tan","float32")};return O.runKernel(Lo,t)}var Nw=L({tan_:WL});function je(e,t){Ii(e);let n=pr(e,t);if(n.length!==1)throw new Error("tensor1d() requires values to be a flat/TypedArray");return Ts(e,null,n,t)}function $a(e,t,n){if(Ii(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 Ts(e,t,a,n)}function gd(e,t,n){if(Ii(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 Ts(e,t,a,n)}function Ma(e,t,n){if(Ii(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 Ts(e,t,a,n)}function pT(e,t,n){if(Ii(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 Ts(e,t,a,n)}function cT(e,t,n){if(Ii(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,Ts(e,t,a,n)}var vf={};Ee(vf,{calculateShapes:()=>dT,validateInput:()=>wf,validateUpdateShape:()=>Tw});function Tw(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;d= 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(ap,s,i);return{values:o,indices:l}}var Cw=L({topk_:VL});function UL(e,t=0,n=1,a,r){if(sa(e),a!=null&&a==="bool")throw new Error("Unsupported data type $ { dtype }");let s=new ww(t,n,a,!0,r),i=ze(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(Yc,a,r);return{values:s,indices:i}}var _w=L({unique_:GL});function HL(e,t,n){let a=_(e,"x","unsortedSegmentSum"),r=_(t,"segmentIds","unsortedSegmentSum","int32");A(Pl(n),()=>"numSegments must be of dtype int");let s={x:a,segmentIds:r},i={numSegments:n};return O.runKernel(Zc,s,i)}var If=L({unsortedSegmentSum_:HL});function qL(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(sp,a,r)}var ct=L({unstack_:qL});function mT(e,t){return uf(e,t,"right")}function Ew(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"),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;fo).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=id(a);return i=O.runKernel(Fr,{x:i},s),o=O.runKernel(Fr,{x:o},s),n&&(o=yt(o)),Dr(i,o)}):O.runKernel(Fr,r,s)}var De=L({transpose_:XL});function YL(e,t,n,a,r=!0){let s=_(e,"v","movingAverage"),i=_(t,"x","movingAverage"),o=_(n,"decay","movingAverage");rN(s,i),A(Mr(s.shape,i.shape),()=>"Shape mismatch in v and x");let l=ve(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,Rr(o,d)))}return X(s,p)}var bT=L({movingAverage_:YL});function ZL(e,t,n){sa(n);let a=_(e,"indices","scatterND","int32"),r=_(t,"updates","scatterND");wf(r,a,n);let s={indices:a,updates:r},i={shape:n};return O.runKernel(qu,s,i)}var yT=L({scatterND_:ZL});function JL(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 QL(e,t,n,a=0){sa(n);let r=_(e,"sparseIndices","sparseToDense","int32"),s=_(t,"sparseValues","sparseToDense","string_or_numeric"),i=_(a,"defaultValue","sparseToDense",s.dtype);JL(r,s,n,i);let o={sparseIndices:r,sparseValues:s,defaultValue:i},l={outputShape:n};return O.runKernel(tp,o,l)}var xT=L({sparseToDense_:QL});function ez(e,t){let n=_(t,"indices","gatherND","int32"),a={params:_(e,"x","gatherND","string_or_numeric"),indices:n};return O.runKernel(Su,a)}var vT=L({gatherND_:ez});function tz(e,t){if(t==null)return e.shape.slice();if(Mr(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 Ce?r.clone():r;let s=tz(r,n),i=1-t,o=he(cp(X(As(s,0,1,"float32",a),i)),i);return z(r,o)}var Fw=L({dropout_:nz});function $w(e){return Math.floor(Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))))}function Sf(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=zS("bool",l);for(let d=0;dg.value-f.value),p[d]=0;for(let f=0;fiz,depthwiseConv2d:()=>pz,matMul:()=>dz});function rz(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]}).`),Cn("conv2dDerFilter",r,i);let d={x:o,dy:l},c={strides:a,pad:r,dataFormat:s,dimRoundingMode:i,filterShape:n};return O.runKernel(Mm,d,c)}var Dw=L({conv2DBackpropFilter_:rz});function Nf(e,t,n){if(n==null||n==="linear")return e;if(n==="relu")return z(e,Vo(t));throw new Error(`Cannot compute gradient for fused activation ${n}.`)}function Tf(e,t){let n=t,a=Ut(e.shape,t.shape);return a.length>0&&(n=fe(n,a)),W(n,e.shape)}function Cf(e,t,n,a){if(t==="linear")return e;if(t==="relu")return Ke(e);if(t==="elu")return up(e);if(t==="relu6")return cf(e);if(t==="prelu")return dd(e,n);if(t==="leakyrelu")return od(e,a);if(t==="sigmoid")return fa(e);throw new Error(`Unknown fused activation ${t}.`)}var _f=(e,t)=>!(e>0)||t==="linear";function sz({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",_f(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=Rt(e,t,n,a,r,s,i);return o!=null&&(T=X(T,o)),Cf(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}.`),Cn("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=ad(h.shape,c.shape,n,s,a,i),b;o!=null&&(b=_(o,"bias","fused conv2d"),[b]=Ft(b,d),r==="NHWC"?pt(g.outShape,b.shape):(A(b.shape.length<=1,()=>`Error in fused conv2d: only supports scalar or 1-D Tensor bias for NCHW format but got the bias of rank-${b.shape.length}.`),A(b.shape.length===0||b.shape[0]===g.outChannels||b.shape[0]===1,()=>`Error in fused conv2d: bias shape (${b.shape}) is not compatible with the number of output channels (${g.outChannels})`)));let y;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{pt(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)}y=_(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,F,D,$]=C,S=Nf(T,D,l);A(hs(s),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`);let M=Xv(F.shape,S,E,n,a),B=Dw(F,S,E.shape,n,a),U=[M,B];if($!=null){let H=Tf($,S);U.push(H)}return U},w={x:h,filter:c,bias:b,preluActivationWeights:y},I={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:p};return o==null?cr((T,C,E)=>{let F=O.runKernel(oi,w,I);return E([C,T,F]),m&&(F=W(F,[F.shape[1],F.shape[2],F.shape[3]])),{value:F,gradFunc:x}})(h,c):cr((T,C,E,F)=>{let D=O.runKernel(oi,w,I);return F([C,T,D,E]),m&&(D=W(D,[D.shape[1],D.shape[2],D.shape[3]])),{value:D,gradFunc:x}})(h,c,b)}var iz=L({fusedConv2d_:sz});function oz(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(Pm,u,p)}var kT=L({depthwiseConv2dNativeBackpropFilter_:oz});function lz(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(Om,u,p);return l?W(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var IT=L({depthwiseConv2dNativeBackpropInput_:lz});function uz({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(_f(O.state.gradientDepth,l)===!1){let I=_s(e,t,n,a,r,s,i);return o!=null&&(I=X(I,o)),Cf(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(hr(n,s),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),Cn("fused depthwiseConv2d",a,i);let f=ad(h.shape,c.shape,n,s,a,i,!0),g;o!=null&&(g=_(o,"bias","fused conv2d"),[g]=Ft(g,d),pt(f.outShape,g.shape));let b;u!=null&&(b=_(u,"prelu weights","fused depthwiseConv2d"));let y=(I,T)=>{A(hs(s),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${s}'`);let[C,E,F,D]=T,$=Nf(I,F,l),S=IT(E.shape,$,C,n,a,s,i),M=kT(E,$,C.shape,n,a,s,i);if(D!=null){let B=Tf(g,$);return[S,M,B]}return[S,M]},x={x:h,filter:c,bias:g,preluActivationWeights:b},w={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:p};return o==null?cr((I,T,C)=>{let E=O.runKernel(li,x,w);return C([T,I,E]),m&&(E=W(E,[E.shape[1],E.shape[2],E.shape[3]])),{value:E,gradFunc:y}})(h,c):cr((I,T,C,E)=>{let F=O.runKernel(li,x,w);return E([T,I,F,C]),m&&(F=W(F,[F.shape[1],F.shape[2],F.shape[3]])),{value:F,gradFunc:y}})(h,c,g)}var pz=L({fusedDepthwiseConv2d_:uz});function cz({a:e,b:t,transposeA:n=!1,transposeB:a=!1,bias:r,activation:s="linear",preluActivationWeights:i,leakyreluAlpha:o=.2}){if(_f(O.state.gradientDepth,s)===!1){let D=$e(e,t,n,a);return r!=null&&(D=X(D,r)),Cf(D,s,i,o)}let l=_(e,"a","fused matMul"),u=_(t,"b","fused matMul");[l,u]=Ft(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=bt(m),b=bt(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 y=pt(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,[b,h,d]):W(u,[b,d,h]),I;r!=null&&(I=_(r,"bias","fused matMul"),[I]=Ft(I,l),pt(y,I.shape));let T;i!=null&&(T=_(i,"prelu weights","fused matMul"));let C=(D,$)=>{let[S,M,B,U]=$,H=Nf(W(D,B.shape),B,s),j,K;if(!n&&!a?(j=$e(H,M,!1,!0),K=$e(S,H,!0,!1)):!n&&a?(j=$e(H,M,!1,!1),K=$e(H,S,!0,!1)):n&&!a?(j=$e(M,H,!1,!0),K=$e(S,H,!1,!1)):(j=$e(M,H,!0,!0),K=$e(H,S,!0,!0)),r!=null){let Z=Tf(U,H);return[j,K,Z]}else return[j,K]},E={a:x,b:w,bias:I,preluActivationWeights:T},F={transposeA:n,transposeB:a,activation:s,leakyreluAlpha:o};return r==null?cr((D,$,S)=>{let M=O.runKernel(ii,E,F);return S([D,$,M]),{value:W(M,y),gradFunc:C}})(x,w):cr((D,$,S,M)=>{let B=O.runKernel(ii,E,F);return M([D,$,B,S]),{value:W(B,y),gradFunc:C}})(x,w,I)}var dz=L({fusedMatMul_:cz});function hz(e){return Sf(e,.54,.46)}var mz=L({hammingWindow_:hz});function fz(e){return Sf(e,.5,.5)}var ST=L({hannWindow_:fz});function gz(e,t,n,a=!1,r=0){let s=0,i=[];for(;s+t<=e.size;)i.push(Ue(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(gu,p,d)}var vz=L({cropAndResize_:xz});function wz(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(ku,n,{})}var kz=L({flipLeftRight_:wz});function Iz(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 Sz=L({grayscaleToRGB_:Iz});function Nz(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(op,s,i)}var Tz=L({rotateWithOffset_:Nz});function hp(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 Cz(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY){let s=_(e,"boxes","nonMaxSuppression","float32"),i=_(t,"scores","nonMaxSuppression","float32"),o=hp(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(Lu,{boxes:s,scores:i},l)}var _z=L({nonMaxSuppression_:Cz});function Ez(e,t,n){let a=Az(e,t,n),r=a<0?-(a+1):a;e.splice(r,0,t)}function Az(e,t,n){return $z(e,t,n||Fz)}function Fz(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 TT(e,t,n,a,r){return Rw(e,t,n,a,r,0)}function CT(e,t,n,a,r,s){return Rw(e,t,n,a,r,0,!1,s,!0)}function _T(e,t,n,a,r,s){return Rw(e,t,n,a,r,s,!0)}function Rw(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(iI);let p=s>0?-.5/s:0,d=[],c=[];for(;d.length0;){let g=u.pop(),{score:b,boxIndex:y,suppressBeginIndex:x}=g;if(b=x;--I){let T=Dz(e,y,d[I]);if(T>=a){w=!0;break}if(g.score=g.score*Rz(a,p,T),g.score<=r)break}g.suppressBeginIndex=d.length,w||(g.score===b?(d.push(y),c.push(g.score)):g.score>r&&Ez(u,g,iI))}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 Dz(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),b=Math.min(o,d),y=Math.min(l,c),x=Math.max(b-f,0)*Math.max(y-g,0);return x/(h+m-x)}function Rz(e,t,n){let a=Math.exp(t*n*n);return n<=e?a:0}function iI(e,t){return e.score-t.score||e.score===t.score&&t.boxIndex-e.boxIndex}async function Mz(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY){let s=_(e,"boxes","nonMaxSuppressionAsync"),i=_(t,"scores","nonMaxSuppressionAsync"),o=hp(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}=TT(u,p,n,a,r);return s!==e&&s.dispose(),i!==t&&i.dispose(),je(d,"int32")}var Pz=Mz;function Oz(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=0){let i=_(e,"boxes","nonMaxSuppression"),o=_(t,"scores","nonMaxSuppression"),l=hp(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(Wu,u,p);return{selectedIndices:d[0],selectedScores:d[1]}}var Lz=L({nonMaxSuppressionWithScore_:Oz});async function zz(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=0){let i=_(e,"boxes","nonMaxSuppressionAsync"),o=_(t,"scores","nonMaxSuppressionAsync"),l=hp(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}=_T(p,d,n,a,r,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:je(c,"int32"),selectedScores:je(h)}}var Wz=zz;function Bz(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=!1){let i=_(e,"boxes","nonMaxSuppression"),o=_(t,"scores","nonMaxSuppression"),l=hp(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(zu,c,h);return{selectedIndices:m[0],validOutputs:m[1]}}var Vz=L({nonMaxSuppressionPadded_:Bz});async function Uz(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=!1){let i=_(e,"boxes","nonMaxSuppressionAsync"),o=_(t,"scores","nonMaxSuppressionAsync"),l=hp(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:je(m,"int32"),validOutputs:ve(f,"int32")}}var Gz=Uz;function Hz(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(Io,o,l);return i?W(u,[u.shape[1],u.shape[2],u.shape[3]]):u}var ET=L({resizeBilinear_:Hz});function qz(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(ko,o,l);return i?W(u,[u.shape[1],u.shape[2],u.shape[3]]):u}var AT=L({resizeNearestNeighbor_:qz});function jz(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(je([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),b=z(c,o);h=X(X(f,g),b)}else h=e;if(t==="otsu"){let f=Uv(ie(df(h),"int32"),bn([]),256);u=Kz(f,l)}let m=n?Es(h,u):_n(h,u);return ie(z(m,255),"int32")}function Kz(e,t){let n=je([-1]),a=je([0]),r=je([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(rp,l,u)}var Zz=L({transform_:Yz});function Jz(e,t,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),o,l;typeof t=="number"?(A(t%1===0,()=>`bandPart(): numLower must be an integer, got ${t}.`),A(t<=s,()=>`bandPart(): numLower (${t}) must not be greater than the number of rows (${s}).`),o=_(t<0?s:t,"numLower","bandPart")):(A(t.dtype==="int32",()=>"bandPart(): numLower's dtype must be an int32."),o=an(Bl(t,0),s,ms(t,s))),typeof n=="number"?(A(n%1===0,()=>`bandPart(): numUpper must be an integer, got ${n}.`),A(n<=i,()=>`bandPart(): numUpper (${n}) must not be greater than the number of columns (${i}).`),l=_(n<0?i:n,"numUpper","bandPart")):(A(n.dtype==="int32",()=>"bandPart(): numUpper's dtype must be an int32."),l=an(Bl(n,0),i,ms(n,i)));let u=W(gi(0,s,1,"int32"),[-1,1]),p=gi(0,i,1,"int32"),d=pe(u,p),c=Da(Es(d,o),Pr(d,yt(l))),h=Nt([s,i],a.dtype);return W(Dt(ct(W(a,[-1,s,i])).map(m=>an(c,m,h))),r)}var Qz=L({bandPart_:Jz});function eW(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=>$s(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 oI(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]=oI(l,t);r.push(u),s.push(p)});let i=W(Dt(r,0),e.shape),o=W(Dt(s,0),e.shape);return[i,o]}}function oI(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=af(n),s=or(e),i=$a([[1]],[1,1]),o=or(i),l=n>=a?a:n;for(let u=0;u{let h=Ue(s,[u,u],[n-u,1]),m=pp(h),f=Ue(s,[u,u],[1,1]),g=an(_n(f,0),$a([[-1]]),$a([[1]])),b=pe(f,z(g,m)),y=he(h,b);y.shape[0]===1?o=or(i):o=Qe([i,Ue(y,[1,0],[y.shape[0]-1,y.shape[1]])],0);let x=yt(he($e(g,b),m)),w=Ue(s,[u,0],[n-u,a]),I=z(x,o),T=De(o);if(u===0)s=pe(w,$e(I,$e(T,w)));else{let F=pe(w,$e(I,$e(T,w)));s=Qe([Ue(s,[0,0],[u,a]),F],0)}let C=De(I),E=Ue(r,[0,u],[n,r.shape[1]-u]);if(u===0)r=pe(E,$e($e(E,o),C));else{let F=pe(E,$e($e(E,o),C));r=Qe([Ue(r,[0,0],[n,u]),F],1)}return[o,s,r]}),_e([p,d,c])}return!t&&n>a&&(r=Ue(r,[0,0],[n,a]),s=Ue(s,[0,0],[a,a])),[r,s]})}var aW=L({qr_:nW}),In;(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"})(In||(In={}));function rW(e,t,n=In.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===In.NONE)return s;if(n===In.SUM)return fe(s);if(n===In.MEAN){if(r==null)return Et(s);{let i=a.size/r.size,o=he(fe(s),fe(r));return i>1?he(o,ve(i)):o}}if(n===In.SUM_BY_NONZERO_WEIGHTS){if(r==null)return he(fe(s),ve(a.size));{let i=z(r,Qn(a.shape)),o=ie(fe(fi(i,ve(0))),"float32");return he(fe(s),o)}}throw Error(`Unknown reduction: ${n}`)}var Or=L({computeWeightedLoss_:rW});function sW(e,t,n,a=In.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=Wt(pe(r,s));return Or(o,i,a)}var iW=L({absoluteDifference_:sW});function oW(e,t,n,a,r=In.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=ve(1),u=pe(l,fe(z(s,i),n,!0));return Or(u,o,r)}var lW=L({cosineDistance_:oW});function uW(e,t,n,a=In.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=ve(1);r=pe(z(ve(2),r),o);let l=Ke(pe(o,z(r,s)));return Or(l,i,a)}var pW=L({hingeLoss_:uW});function cW(e,t,n,a=1,r=In.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=ve(a),u=Wt(pe(i,s)),p=ms(u,l),d=pe(u,p),c=X(z(ve(.5),ut(p)),z(l,d));return Or(c,o,r)}var dW=L({huberLoss_:cW});function hW(e,t,n,a=1e-7,r=In.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=ve(1),u=ve(a),p=yt(z(s,na(X(i,u)))),d=z(pe(l,s),na(X(pe(l,i),u))),c=pe(p,d);return Or(c,o,r)}var mW=L({logLoss_:hW});function fW(e,t,n,a=In.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=xf(r,s);return Or(o,i,a)}var gW=L({meanSquaredError_:fW});function bW(e,t){let n=_(e,"labels","sigmoidCrossEntropyWithLogits"),a=_(t,"logits","sigmoidCrossEntropyWithLogits");Tn(n.shape,a.shape,"Error in sigmoidCrossEntropyWithLogits: ");let r=Ke(a),s=z(a,n),i=ld(yn(yt(Wt(a))));return X(pe(r,s),i)}function yW(e,t,n,a=0,r=In.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=ve(a),p=ve(1),d=ve(.5);s=X(z(s,pe(p,u)),z(d,u))}let l=bW(s,i);return Or(l,o,r)}var xW=L({sigmoidCrossEntropy_:yW});function vW(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=of(r,[n],!0),o=pe(ie(r,"float32"),i);s([a,o]);let l=yt(z(o,a));return{value:fe(l,[n]),gradFunc:(u,p)=>{let[d,c]=p,h=mi(u.shape,[n]);return[z(W(u,h),pe(ie(d,"float32"),yn(c))),z(W(u,h),pe(yn(c),ie(d,"float32")))]}}})(e,t)}function wW(e,t,n,a=0,r=In.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=ve(a),p=ve(1),d=ve(s.shape[1]);s=X(z(s,pe(p,u)),he(u,d))}let l=vW(s,i);return Or(l,o,r)}var kW=L({softmaxCrossEntropy_:wW});function IW(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 SW=L({sparseFillEmptyRows_:IW});function NW(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(ep,i);return{outputIndices:o[0],outputShape:o[1]}}var TW=L({sparseReshape_:NW});function CW(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 +Expected: ${s}.`)}typeof expect!="undefined"&&expect().nothing()}function uL(e,t){e().then(()=>t.fail(),()=>t()),typeof expect!="undefined"&&expect().nothing()}function pL(e,t){let n=typeof t=="string"||typeof t=="number"||typeof t=="boolean"?[t]:t;return rs(e)||rs(e[0])||rs(t)||rs(t[0])?zx(e,n,(a,r)=>a==r):zx(e,t,(a,r)=>_w(a,r,0))}function cL(e,t,n){if(n==null&&(n=Cw()),!_w(e,t,n))throw new Error(`Numbers differ: actual === ${e}, expected === ${t}`);typeof expect!="undefined"&&expect().nothing()}function _w(e,t,n){return!isFinite(e)&&!isFinite(t)?!0:!(isNaN(e)||isNaN(t)||Math.abs(e-t)>n)}function dL(e,t,n){for(let a=0;an)throw new Error(`Value out of range:${e[a]} low: ${t}, high: ${n}`)}function hL(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 fL(e){await e.play(),"requestVideoFrameCallback"in e&&await new Promise(t=>{e.requestVideoFrameCallback(t)})}var Ew=class{constructor(e,t,n,a,r){this.mean=e,this.stdDev=t,this.dtype=n,this.nextVal=NaN,this.truncated=a,this.truncated&&(this.upper=this.mean+this.stdDev*2,this.lower=this.mean-this.stdDev*2);let s=r||Math.random();this.random=Tw.alea(s.toString())}nextValue(){if(!isNaN(this.nextVal)){let a=this.nextVal;return this.nextVal=NaN,a}let e,t,n=!1;for(;!n;){let a,r,s;do a=2*this.random()-1,r=2*this.random()-1,s=a*a+r*r;while(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}},gL=class{constructor(e,t,n,a){this.alpha=e,this.beta=1/t,this.dtype=n;let r=a||Math.random();this.randu=Tw.alea(r.toString()),this.randn=new Ew(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=Tw.alea(a)}convertValue(e){return this.canReturnFloat()?e:Math.round(e)}nextValue(){return this.convertValue(this.min+this.range*this.random())}};function yL(e,t,n=1,a="float32",r){if(sa(e),n==null&&(n=1),a==null&&(a="float32"),a!=="float32"&&a!=="int32")throw new Error(`Unsupported data type ${a}`);let s=new gL(t,n,a,r),i=ze(e,a);for(let o=0;o`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`),ya(t,0)}var mT=L({reverse1d_:_L});function EL(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}.`),ya(n,t)}var fT=L({reverse2d_:EL});function AL(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}.`),ya(n,t)}var gT=L({reverse3d_:AL});function FL(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}.`),ya(n,t)}var bT=L({reverse4d_:FL});function $L(e){let t={x:_(e,"x","round")};return O.runKernel(Ao,t)}var hf=L({round_:$L});function DL(e){let t={x:_(e,"x","rsqrt","float32")};return O.runKernel(Fo,t)}var mf=L({rsqrt_:DL});function RL(e){let t={x:_(e,"x","selu")};return O.runKernel($o,t)}var ff=L({selu_:RL});function ML(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=Es(p,l,a,r,i,s),f=Rt(m,u,1,"valid",i);return d?W(f,[f.shape[1],f.shape[2],f.shape[3]]):f}var $s=L({separableConv2d_:ML});async function PL(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`),Ue(a,[t],[n])}var xd=L({slice1d_:WL});function BL(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`),Ue(a,t,n)}var yf=L({slice2d_:BL});function VL(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`),Ue(a,t,n)}var qo=L({slice3d_:VL});function UL(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`),Ue(a,t,n)}var Xl=L({slice4d_:UL});function GL(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(Wo,a,r)}var Xa=L({softmax_:GL});function HL(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(Vm,t)}var vd=L({fft_:HL});function qL(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(Um,t)}var Yl=L({ifft_:qL});function jL(e){let t=e.shape[e.shape.length-1],n=e.size/t,a;if(t<=2){let r=W(e,[n,t]);a=Yl(r)}else{let r=[n,2*(t-1)],s=W(Kl(e),[n,t]),i=W(dd(e),[n,t]),o=ya(Ue(s,[0,1],[n,t-2]),1),l=z(ya(Ue(i,[0,1],[n,t-2]),1),ve(-1)),u=et([s,o],1),p=et([i,l],1),d=W(Rr(u,p),[r[0],r[1]]);a=Yl(d)}if(a=Kl(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 xf=L({irfft_:jL});function KL(e,t,n=0){let a={x:_(e,"x","split")},r={numOrSizeSplits:t,axis:n};return O.runKernel(tp,a,r)}var zn=L({split_:KL});function XL(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=Ue(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=et([e,Nt(m)],e.shape.length-1),n=t}else r=e;let s=qe(r),i=W(Rr(r,s),[a,n]),o=vd(i),l=Math.floor(n/2)+1,u=Kl(o),p=dd(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(Rr(d[0],c[0]),h)}var wd=L({rfft_:XL});function YL(e,t){let n=_(e,"a","squaredDifference"),a=_(t,"b","squaredDifference");[n,a]=Ft(n,a),pt(n.shape,a.shape);let r={a:n,b:a},s={};return O.runKernel(Bo,r,s)}var vf=L({squaredDifference_:YL});function ZL(e,t){let n=_(e,"x","squeeze","string_or_numeric");return W(n,jS(n.shape,t).newShape)}var Ds=L({squeeze_:ZL});function JL(e,t=0){let n=wc(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(Hu,a,r)}var Dt=L({stack_:JL});function QL(e,t=0){let n={x:_(e,"x","step")},a={alpha:t};return O.runKernel(Ts,n,a)}var jo=L({step_:QL});function ez(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(rp,u,p)}var $w=L({stridedSlice_:ez});function tz(e){let t={x:_(e,"x","tan","float32")};return O.runKernel(Uo,t)}var Dw=L({tan_:tz});function je(e,t){Ni(e);let n=pr(e,t);if(n.length!==1)throw new Error("tensor1d() requires values to be a flat/TypedArray");return Cs(e,null,n,t)}function $a(e,t,n){if(Ni(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 Cs(e,t,a,n)}function kd(e,t,n){if(Ni(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 Cs(e,t,a,n)}function Ma(e,t,n){if(Ni(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 Cs(e,t,a,n)}function xT(e,t,n){if(Ni(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 Cs(e,t,a,n)}function vT(e,t,n){if(Ni(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,Cs(e,t,a,n)}var wf={};Ee(wf,{calculateShapes:()=>wT,validateInput:()=>kf,validateUpdateShape:()=>Rw});function Rw(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;d= 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(sp,s,i);return{values:o,indices:l}}var Mw=L({topk_:az});function rz(e,t=0,n=1,a,r){if(sa(e),a!=null&&a==="bool")throw new Error("Unsupported data type $ { dtype }");let s=new Ew(t,n,a,!0,r),i=ze(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(nd,a,r);return{values:s,indices:i}}var Pw=L({unique_:sz});function iz(e,t,n){let a=_(e,"x","unsortedSegmentSum"),r=_(t,"segmentIds","unsortedSegmentSum","int32");A(Bl(n),()=>"numSegments must be of dtype int");let s={x:a,segmentIds:r},i={numSegments:n};return O.runKernel(ad,s,i)}var Sf=L({unsortedSegmentSum_:iz});function oz(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(op,a,r)}var ct=L({unstack_:oz});function IT(e,t){return pf(e,t,"right")}function Ow(e,t=!0,n,a){return O.makeVariable(e,t,n,a)}function ST(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;fo).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=Kl(a),o=dd(a);return i=O.runKernel($r,{x:i},s),o=O.runKernel($r,{x:o},s),n&&(o=yt(o)),Rr(i,o)}):O.runKernel($r,r,s)}var De=L({transpose_:pz});function cz(e,t,n,a,r=!0){let s=_(e,"v","movingAverage"),i=_(t,"x","movingAverage"),o=_(n,"decay","movingAverage");hN(s,i),A(Pr(s.shape,i.shape),()=>"Shape mismatch in v and x");let l=ve(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,Mr(o,d)))}return X(s,p)}var TT=L({movingAverage_:cz});function dz(e,t,n){sa(n);let a=_(e,"indices","scatterND","int32"),r=_(t,"updates","scatterND");kf(r,a,n);let s={indices:a,updates:r},i={shape:n};return O.runKernel(Xu,s,i)}var CT=L({scatterND_:dz});function hz(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 mz(e,t,n,a=0){sa(n);let r=_(e,"sparseIndices","sparseToDense","int32"),s=_(t,"sparseValues","sparseToDense","string_or_numeric"),i=_(a,"defaultValue","sparseToDense",s.dtype);hz(r,s,n,i);let o={sparseIndices:r,sparseValues:s,defaultValue:i},l={outputShape:n};return O.runKernel(ap,o,l)}var _T=L({sparseToDense_:mz});function fz(e,t){let n=_(t,"indices","gatherND","int32"),a={params:_(e,"x","gatherND","string_or_numeric"),indices:n};return O.runKernel(_u,a)}var ET=L({gatherND_:fz});function gz(e,t){if(t==null)return e.shape.slice();if(Pr(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=gz(r,n),i=1-t,o=he(hp(X(Fs(s,0,1,"float32",a),i)),i);return z(r,o)}var zw=L({dropout_:bz});function Ww(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}`),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=KS("bool",l);for(let d=0;dg.value-f.value),p[d]=0;for(let f=0;fwz,depthwiseConv2d:()=>Nz,matMul:()=>Cz});function xz(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]}).`),Cn("conv2dDerFilter",r,i);let d={x:o,dy:l},c={strides:a,pad:r,dataFormat:s,dimRoundingMode:i,filterShape:n};return O.runKernel(Lm,d,c)}var Bw=L({conv2DBackpropFilter_:xz});function Tf(e,t,n){if(n==null||n==="linear")return e;if(n==="relu")return z(e,jo(t));throw new Error(`Cannot compute gradient for fused activation ${n}.`)}function Cf(e,t){let n=t,a=Ut(e.shape,t.shape);return a.length>0&&(n=fe(n,a)),W(n,e.shape)}function _f(e,t,n,a){if(t==="linear")return e;if(t==="relu")return Ke(e);if(t==="elu")return cp(e);if(t==="relu6")return df(e);if(t==="prelu")return yd(e,n);if(t==="leakyrelu")return hd(e,a);if(t==="sigmoid")return fa(e);throw new Error(`Unknown fused activation ${t}.`)}var Ef=(e,t)=>!(e>0)||t==="linear";function vz({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",Ef(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=Rt(e,t,n,a,r,s,i);return o!=null&&(T=X(T,o)),_f(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}.`),Cn("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(mr(n,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`);let g=ud(h.shape,c.shape,n,s,a,i),b;o!=null&&(b=_(o,"bias","fused conv2d"),[b]=Ft(b,d),r==="NHWC"?pt(g.outShape,b.shape):(A(b.shape.length<=1,()=>`Error in fused conv2d: only supports scalar or 1-D Tensor bias for NCHW format but got the bias of rank-${b.shape.length}.`),A(b.shape.length===0||b.shape[0]===g.outChannels||b.shape[0]===1,()=>`Error in fused conv2d: bias shape (${b.shape}) is not compatible with the number of output channels (${g.outChannels})`)));let y;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{pt(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)}y=_(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,F,D,$]=C,S=Tf(T,D,l);A(ms(s),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`);let M=aw(F.shape,S,E,n,a),B=Bw(F,S,E.shape,n,a),U=[M,B];if($!=null){let H=Cf($,S);U.push(H)}return U},v={x:h,filter:c,bias:b,preluActivationWeights:y},I={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:p};return o==null?cr((T,C,E)=>{let F=O.runKernel(li,v,I);return E([C,T,F]),m&&(F=W(F,[F.shape[1],F.shape[2],F.shape[3]])),{value:F,gradFunc:x}})(h,c):cr((T,C,E,F)=>{let D=O.runKernel(li,v,I);return F([C,T,D,E]),m&&(D=W(D,[D.shape[1],D.shape[2],D.shape[3]])),{value:D,gradFunc:x}})(h,c,b)}var wz=L({fusedConv2d_:vz});function kz(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(zm,u,p)}var FT=L({depthwiseConv2dNativeBackpropFilter_:kz});function Iz(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 $T=L({depthwiseConv2dNativeBackpropInput_:Iz});function Sz({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(Ef(O.state.gradientDepth,l)===!1){let I=Es(e,t,n,a,r,s,i);return o!=null&&(I=X(I,o)),_f(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(mr(n,s),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),Cn("fused depthwiseConv2d",a,i);let f=ud(h.shape,c.shape,n,s,a,i,!0),g;o!=null&&(g=_(o,"bias","fused conv2d"),[g]=Ft(g,d),pt(f.outShape,g.shape));let b;u!=null&&(b=_(u,"prelu weights","fused depthwiseConv2d"));let y=(I,T)=>{A(ms(s),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${s}'`);let[C,E,F,D]=T,$=Tf(I,F,l),S=$T(E.shape,$,C,n,a,s,i),M=FT(E,$,C.shape,n,a,s,i);if(D!=null){let B=Cf(g,$);return[S,M,B]}return[S,M]},x={x:h,filter:c,bias:g,preluActivationWeights:b},v={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:p};return o==null?cr((I,T,C)=>{let E=O.runKernel(ui,x,v);return C([T,I,E]),m&&(E=W(E,[E.shape[1],E.shape[2],E.shape[3]])),{value:E,gradFunc:y}})(h,c):cr((I,T,C,E)=>{let F=O.runKernel(ui,x,v);return E([T,I,F,C]),m&&(F=W(F,[F.shape[1],F.shape[2],F.shape[3]])),{value:F,gradFunc:y}})(h,c,g)}var Nz=L({fusedDepthwiseConv2d_:Sz});function Tz({a:e,b:t,transposeA:n=!1,transposeB:a=!1,bias:r,activation:s="linear",preluActivationWeights:i,leakyreluAlpha:o=.2}){if(Ef(O.state.gradientDepth,s)===!1){let D=$e(e,t,n,a);return r!=null&&(D=X(D,r)),_f(D,s,i,o)}let l=_(e,"a","fused matMul"),u=_(t,"b","fused matMul");[l,u]=Ft(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=bt(m),b=bt(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 y=pt(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]),v=a?W(u,[b,h,d]):W(u,[b,d,h]),I;r!=null&&(I=_(r,"bias","fused matMul"),[I]=Ft(I,l),pt(y,I.shape));let T;i!=null&&(T=_(i,"prelu weights","fused matMul"));let C=(D,$)=>{let[S,M,B,U]=$,H=Tf(W(D,B.shape),B,s),j,K;if(!n&&!a?(j=$e(H,M,!1,!0),K=$e(S,H,!0,!1)):!n&&a?(j=$e(H,M,!1,!1),K=$e(H,S,!0,!1)):n&&!a?(j=$e(M,H,!1,!0),K=$e(S,H,!1,!1)):(j=$e(M,H,!0,!0),K=$e(H,S,!0,!0)),r!=null){let Z=Cf(U,H);return[j,K,Z]}else return[j,K]},E={a:x,b:v,bias:I,preluActivationWeights:T},F={transposeA:n,transposeB:a,activation:s,leakyreluAlpha:o};return r==null?cr((D,$,S)=>{let M=O.runKernel(oi,E,F);return S([D,$,M]),{value:W(M,y),gradFunc:C}})(x,v):cr((D,$,S,M)=>{let B=O.runKernel(oi,E,F);return M([D,$,B,S]),{value:W(B,y),gradFunc:C}})(x,v,I)}var Cz=L({fusedMatMul_:Tz});function _z(e){return Nf(e,.54,.46)}var Ez=L({hammingWindow_:_z});function Az(e){return Nf(e,.5,.5)}var DT=L({hannWindow_:Az});function Fz(e,t,n,a=!1,r=0){let s=0,i=[];for(;s+t<=e.size;)i.push(Ue(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(wu,p,d)}var Mz=L({cropAndResize_:Rz});function Pz(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(Tu,n,{})}var Oz=L({flipLeftRight_:Pz});function Lz(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 zz=L({grayscaleToRGB_:Lz});function Wz(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(up,s,i)}var Bz=L({rotateWithOffset_:Wz});function fp(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 Vz(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY){let s=_(e,"boxes","nonMaxSuppression","float32"),i=_(t,"scores","nonMaxSuppression","float32"),o=fp(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(Bu,{boxes:s,scores:i},l)}var Uz=L({nonMaxSuppression_:Vz});function Gz(e,t,n){let a=Hz(e,t,n),r=a<0?-(a+1):a;e.splice(r,0,t)}function Hz(e,t,n){return jz(e,t,n||qz)}function qz(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 MT(e,t,n,a,r){return Vw(e,t,n,a,r,0)}function PT(e,t,n,a,r,s){return Vw(e,t,n,a,r,0,!1,s,!0)}function OT(e,t,n,a,r,s){return Vw(e,t,n,a,r,s,!0)}function Vw(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(mI);let p=s>0?-.5/s:0,d=[],c=[];for(;d.length0;){let g=u.pop(),{score:b,boxIndex:y,suppressBeginIndex:x}=g;if(b=x;--I){let T=Kz(e,y,d[I]);if(T>=a){v=!0;break}if(g.score=g.score*Xz(a,p,T),g.score<=r)break}g.suppressBeginIndex=d.length,v||(g.score===b?(d.push(y),c.push(g.score)):g.score>r&&Gz(u,g,mI))}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 Kz(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),b=Math.min(o,d),y=Math.min(l,c),x=Math.max(b-f,0)*Math.max(y-g,0);return x/(h+m-x)}function Xz(e,t,n){let a=Math.exp(t*n*n);return n<=e?a:0}function mI(e,t){return e.score-t.score||e.score===t.score&&t.boxIndex-e.boxIndex}async function Yz(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY){let s=_(e,"boxes","nonMaxSuppressionAsync"),i=_(t,"scores","nonMaxSuppressionAsync"),o=fp(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}=MT(u,p,n,a,r);return s!==e&&s.dispose(),i!==t&&i.dispose(),je(d,"int32")}var Zz=Yz;function Jz(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=0){let i=_(e,"boxes","nonMaxSuppression"),o=_(t,"scores","nonMaxSuppression"),l=fp(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(Uu,u,p);return{selectedIndices:d[0],selectedScores:d[1]}}var Qz=L({nonMaxSuppressionWithScore_:Jz});async function eW(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=0){let i=_(e,"boxes","nonMaxSuppressionAsync"),o=_(t,"scores","nonMaxSuppressionAsync"),l=fp(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}=OT(p,d,n,a,r,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:je(c,"int32"),selectedScores:je(h)}}var tW=eW;function nW(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=!1){let i=_(e,"boxes","nonMaxSuppression"),o=_(t,"scores","nonMaxSuppression"),l=fp(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(Vu,c,h);return{selectedIndices:m[0],validOutputs:m[1]}}var aW=L({nonMaxSuppressionPadded_:nW});async function rW(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=!1){let i=_(e,"boxes","nonMaxSuppressionAsync"),o=_(t,"scores","nonMaxSuppressionAsync"),l=fp(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}=PT(c,h,u,p,d,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:je(m,"int32"),validOutputs:ve(f,"int32")}}var sW=rW;function iW(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(Co,o,l);return i?W(u,[u.shape[1],u.shape[2],u.shape[3]]):u}var LT=L({resizeBilinear_:iW});function oW(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(To,o,l);return i?W(u,[u.shape[1],u.shape[2],u.shape[3]]):u}var zT=L({resizeNearestNeighbor_:oW});function lW(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(je([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),b=z(c,o);h=X(X(f,g),b)}else h=e;if(t==="otsu"){let f=Zv(se(hf(h),"int32"),bn([]),256);u=uW(f,l)}let m=n?As(h,u):_n(h,u);return se(z(m,255),"int32")}function uW(e,t){let n=je([-1]),a=je([0]),r=je([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(ip,l,u)}var dW=L({transform_:cW});function hW(e,t,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),o,l;typeof t=="number"?(A(t%1===0,()=>`bandPart(): numLower must be an integer, got ${t}.`),A(t<=s,()=>`bandPart(): numLower (${t}) must not be greater than the number of rows (${s}).`),o=_(t<0?s:t,"numLower","bandPart")):(A(t.dtype==="int32",()=>"bandPart(): numLower's dtype must be an int32."),o=rn(ql(t,0),s,fs(t,s))),typeof n=="number"?(A(n%1===0,()=>`bandPart(): numUpper must be an integer, got ${n}.`),A(n<=i,()=>`bandPart(): numUpper (${n}) must not be greater than the number of columns (${i}).`),l=_(n<0?i:n,"numUpper","bandPart")):(A(n.dtype==="int32",()=>"bandPart(): numUpper's dtype must be an int32."),l=rn(ql(n,0),i,fs(n,i)));let u=W(bi(0,s,1,"int32"),[-1,1]),p=bi(0,i,1,"int32"),d=pe(u,p),c=Da(As(d,o),Or(d,yt(l))),h=Nt([s,i],a.dtype);return W(Dt(ct(W(a,[-1,s,i])).map(m=>rn(c,m,h))),r)}var mW=L({bandPart_:hW});function fW(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=>Ds(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 fI(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]=fI(l,t);r.push(u),s.push(p)});let i=W(Dt(r,0),e.shape),o=W(Dt(s,0),e.shape);return[i,o]}}function fI(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=rf(n),s=or(e),i=$a([[1]],[1,1]),o=or(i),l=n>=a?a:n;for(let u=0;u{let h=Ue(s,[u,u],[n-u,1]),m=dp(h),f=Ue(s,[u,u],[1,1]),g=rn(_n(f,0),$a([[-1]]),$a([[1]])),b=pe(f,z(g,m)),y=he(h,b);y.shape[0]===1?o=or(i):o=et([i,Ue(y,[1,0],[y.shape[0]-1,y.shape[1]])],0);let x=yt(he($e(g,b),m)),v=Ue(s,[u,0],[n-u,a]),I=z(x,o),T=De(o);if(u===0)s=pe(v,$e(I,$e(T,v)));else{let F=pe(v,$e(I,$e(T,v)));s=et([Ue(s,[0,0],[u,a]),F],0)}let C=De(I),E=Ue(r,[0,u],[n,r.shape[1]-u]);if(u===0)r=pe(E,$e($e(E,o),C));else{let F=pe(E,$e($e(E,o),C));r=et([Ue(r,[0,0],[n,u]),F],1)}return[o,s,r]}),_e([p,d,c])}return!t&&n>a&&(r=Ue(r,[0,0],[n,a]),s=Ue(s,[0,0],[a,a])),[r,s]})}var yW=L({qr_:bW}),In;(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"})(In||(In={}));function xW(e,t,n=In.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===In.NONE)return s;if(n===In.SUM)return fe(s);if(n===In.MEAN){if(r==null)return Et(s);{let i=a.size/r.size,o=he(fe(s),fe(r));return i>1?he(o,ve(i)):o}}if(n===In.SUM_BY_NONZERO_WEIGHTS){if(r==null)return he(fe(s),ve(a.size));{let i=z(r,Qn(a.shape)),o=se(fe(gi(i,ve(0))),"float32");return he(fe(s),o)}}throw Error(`Unknown reduction: ${n}`)}var Lr=L({computeWeightedLoss_:xW});function vW(e,t,n,a=In.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=Wt(pe(r,s));return Lr(o,i,a)}var wW=L({absoluteDifference_:vW});function kW(e,t,n,a,r=In.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=ve(1),u=pe(l,fe(z(s,i),n,!0));return Lr(u,o,r)}var IW=L({cosineDistance_:kW});function SW(e,t,n,a=In.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=ve(1);r=pe(z(ve(2),r),o);let l=Ke(pe(o,z(r,s)));return Lr(l,i,a)}var NW=L({hingeLoss_:SW});function TW(e,t,n,a=1,r=In.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=ve(a),u=Wt(pe(i,s)),p=fs(u,l),d=pe(u,p),c=X(z(ve(.5),ut(p)),z(l,d));return Lr(c,o,r)}var CW=L({huberLoss_:TW});function _W(e,t,n,a=1e-7,r=In.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=ve(1),u=ve(a),p=yt(z(s,na(X(i,u)))),d=z(pe(l,s),na(X(pe(l,i),u))),c=pe(p,d);return Lr(c,o,r)}var EW=L({logLoss_:_W});function AW(e,t,n,a=In.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=vf(r,s);return Lr(o,i,a)}var FW=L({meanSquaredError_:AW});function $W(e,t){let n=_(e,"labels","sigmoidCrossEntropyWithLogits"),a=_(t,"logits","sigmoidCrossEntropyWithLogits");Tn(n.shape,a.shape,"Error in sigmoidCrossEntropyWithLogits: ");let r=Ke(a),s=z(a,n),i=md(yn(yt(Wt(a))));return X(pe(r,s),i)}function DW(e,t,n,a=0,r=In.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=ve(a),p=ve(1),d=ve(.5);s=X(z(s,pe(p,u)),z(d,u))}let l=$W(s,i);return Lr(l,o,r)}var RW=L({sigmoidCrossEntropy_:DW});function MW(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=lf(r,[n],!0),o=pe(se(r,"float32"),i);s([a,o]);let l=yt(z(o,a));return{value:fe(l,[n]),gradFunc:(u,p)=>{let[d,c]=p,h=fi(u.shape,[n]);return[z(W(u,h),pe(se(d,"float32"),yn(c))),z(W(u,h),pe(yn(c),se(d,"float32")))]}}})(e,t)}function PW(e,t,n,a=0,r=In.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=ve(a),p=ve(1),d=ve(s.shape[1]);s=X(z(s,pe(p,u)),he(u,d))}let l=MW(s,i);return Lr(l,o,r)}var OW=L({softmaxCrossEntropy_:PW});function LW(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(Kc,l);return{outputIndices:u[0],outputValues:u[1],emptyRowIndicator:u[2],reverseIndexMap:u[3]}}var zW=L({sparseFillEmptyRows_:LW});function WW(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(np,i);return{outputIndices:o[0],outputShape:o[1]}}var BW=L({sparseReshape_:WW});function VW(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 ${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(Uc,i)}var _W=L({sparseSegmentMean_:CW});function EW(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(Xc,i)}var UW=L({sparseSegmentMean_:VW});function GW(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 ${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 AW=L({sparseSegmentSum_:EW});function FW(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(jc,d,p);return{nGrams:c[0],nGramsSplits:c[1]}}var $W=L({stringNGrams_:FW});function DW(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(Kc,i,s);return{indices:o[0],values:o[1],shape:o[2]}}var RW=L({stringSplit_:DW});function MW(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(Xc,r,a)}var PW=L({stringToHashBucketFast_:MW});function OW(e,t,n,a=!0){let r=_(e,"input","staticRegexReplace","string"),s={pattern:t,rewrite:n,replaceGlobal:a};return O.runKernel(qc,{x:r},s)}var LW=L({staticRegexReplace_:OW}),FT={fft:md,ifft:Hl,rfft:fd,irfft:yf},$T={hammingWindow:mz,hannWindow:ST,frame:NT,stft:yz},ea={flipLeftRight:kz,grayscaleToRGB:Sz,resizeNearestNeighbor:AT,resizeBilinear:ET,rotateWithOffset:Tz,cropAndResize:vz,nonMaxSuppression:_z,nonMaxSuppressionAsync:Pz,nonMaxSuppressionWithScore:Lz,nonMaxSuppressionWithScoreAsync:Wz,nonMaxSuppressionPadded:Vz,nonMaxSuppressionPaddedAsync:Gz,threshold:Xz,transform:Zz},Mw={bandPart:Qz,gramSchmidt:tW,qr:aW},DT={absoluteDifference:iW,computeWeightedLoss:Or,cosineDistance:lW,hingeLoss:pW,huberLoss:dW,logLoss:mW,meanSquaredError:gW,sigmoidCrossEntropy:xW,softmaxCrossEntropy:kW},RT={sparseFillEmptyRows:SW,sparseReshape:TW,sparseSegmentMean:_W,sparseSegmentSum:AW},MT={stringNGrams:$W,stringSplit:RW,stringToHashBucketFast:PW,staticRegexReplace:LW},ne={};Ee(ne,{Serializable:()=>PT,SerializationMap:()=>Ys,registerClass:()=>OT});var PT=class{getClassName(){return this.constructor.className}static fromConfig(e,t){return new e(t)}},Ys=class{constructor(){this.classNameMap={}}static getMap(){return Ys.instance==null&&(Ys.instance=new Ys),Ys.instance}static register(e){Ys.getMap().classNameMap[e.className]=[e,e.fromConfig]}};function OT(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."),Ys.register(e)}var Lr=class extends PT{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 LN(e,t)}dispose(){this.iterations_!=null&&_e(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:"iter",tensor:ve(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(Lr,Symbol.hasInstance,{value:e=>e.minimize!=null&&e.computeGradients!=null&&e.applyGradients!=null});var Pw=class extends Lr{static get className(){return"Adadelta"}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=X(z(i,this.rho),z(ut(s),1-this.rho)),u=z(he(mn(X(o,this.epsilon)),mn(X(i,this.epsilon))),s),p=X(z(o,this.rho),z(ut(u),1-this.rho));i.assign(l),o.assign(p);let d=X(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)}},Ow=class extends Lr{static get className(){return"Adagrad"}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(()=>xn(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=X(s,ut(r));s.assign(i);let o=X(z(he(r,mn(X(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)}},Lw=class extends Lr{static get className(){return"Adam"}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=ve(t).variable(),this.accBeta2=ve(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=X(z(u,this.beta1),z(l,1-this.beta1)),c=X(z(p,this.beta2),z(ut(l),1-this.beta2)),h=he(d,n),m=he(c,a);u.assign(d),p.assign(c);let f=X(z(he(h,X(mn(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(Rr(this.beta1,this.iterations_+1)),this.accBeta2.assign(Rr(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)}},zw=class extends Lr{static get className(){return"Adamax"}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=ve(0).variable(),this.accBeta1=ve(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,X(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=X(z(u,this.beta1),z(l,1-this.beta1)),c=z(p,this.beta2),h=Wt(l),m=mr(c,h);u.assign(d),p.assign(m);let f=X(z(he(a,n),he(d,X(m,this.epsilon))),i);i.assign(f)}),this.iteration.assign(X(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)}},Ef=class extends Lr{static get className(){return"SGD"}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=X(z(this.c,a),r);r.assign(s)})}),this.incrementIterations()}setLearningRate(e){this.learningRate=e,this.c!=null&&this.c.dispose(),this.c=Ht(ve(-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)}},Ww=class extends Ef{static get className(){return"Momentum"}constructor(e,t,n=!1){super(e),this.learningRate=e,this.momentum=t,this.useNesterov=n,this.accumulations=[],this.m=ve(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=X(z(this.m,r),s);this.useNesterov?i=X(z(this.c,X(s,z(o,this.m))),a):i=X(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)}},Bw=class extends Lr{static get className(){return"RMSProp"}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=X(z(i,this.decay),z(ut(s),1-this.decay));if(this.centered){let u=this.accumulatedMeanGrads[n].variable,p=X(z(u,this.decay),z(s,1-this.decay)),d=he(z(s,this.learningRate),mn(pe(l,X(ut(p),this.epsilon)))),c=X(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=X(z(i,this.decay),z(ut(s),1-this.decay)),p=X(z(o,this.momentum),he(z(s,this.learningRate),mn(X(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)}},zW=[Pw,Ow,Lw,zw,Ww,Bw,Ef];function WW(){for(let e of zW)OT(e)}var qt={};Ee(qt,{browserFiles:()=>jW,browserHTTPRequest:()=>eB,concatenateArrayBuffers:()=>Tv,copyModel:()=>WM,decodeWeights:()=>uN,encodeWeights:()=>fM,fromMemory:()=>nB,fromMemorySync:()=>VT,getLoadHandlers:()=>TM,getModelArtifactsForJSON:()=>Cv,getModelArtifactsForJSONSync:()=>cN,getModelArtifactsInfoForJSON:()=>nd,getSaveHandlers:()=>NM,getWeightSpecs:()=>dN,http:()=>Uw,isHTTPScheme:()=>$x,listModels:()=>LM,loadWeights:()=>YW,moveModel:()=>BM,registerLoadRouter:()=>SM,registerSaveRouter:()=>IM,removeModel:()=>zM,weightsLoaderFactory:()=>zT,withSaveHandler:()=>aB,withSaveHandlerSync:()=>rB});var BW="model",VW=".json",UW=".weights.bin";function lI(e){return new Promise(t=>setTimeout(t)).then(e)}var jl=class{constructor(e){if(!G().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");e.startsWith(jl.URL_SCHEME)&&(e=e.slice(jl.URL_SCHEME.length)),(e==null||e.length===0)&&(e=BW),this.modelJsonFileName=e+VW,this.weightDataFileName=e+UW}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=pN(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 lI(()=>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 lI(()=>i.dispatchEvent(new MouseEvent("click")))}return{modelArtifactsInfo:nd(e)}}}};jl.URL_SCHEME="downloads://";var GW=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=Cv(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,Tv(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=>sI(r.name)),a={};for(let r of e)r.paths.forEach(s=>{let i=sI(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}},HW=e=>G().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(jl.URL_SCHEME)?qW(e.slice(jl.URL_SCHEME.length)):null;$t.registerSaveRouter(HW);function qW(e="model"){return new jl(e)}function jW(e){return new GW(e)}var KW=class{constructor(e){if(this.shards=[],this.previousShardIndex=0,e instanceof Array||(e=[e]),e=e.map(n=>en(n)?n.buffer:n),e.length===0)return;this.bufferUniformSize=e[0].byteLength;let t=0;for(let n=0;n=this.byteLength)return-1;if(this.bufferUniformSize!=null)return this.previousShardIndex=Math.floor(e/this.bufferUniformSize),this.previousShardIndex;function t(a){return e=a.end?1:0}if(t(this.shards[this.previousShardIndex])===0)return this.previousShardIndex;let n=XW(this.shards,t);return n===-1?-1:(this.previousShardIndex=n,this.previousShardIndex)}};function XW(e,t){let n=0,a=e.length;for(;n<=a;){let r=Math.floor((a-n)/2)+n,s=t(e[r]);if(s===0)return r;s<0?a=r:n=r+1}return-1}function uI(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 LT(e,t){t==null&&(t={});let n=t.fetchFunc==null?G().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 uI(a,t.onProgress,r,s)).map(u=>u.arrayBuffer()),o=.5,l=1;return t.onProgress==null?await Promise.all(i):await uI(i,t.onProgress,o,l)}async function YW(e,t="",n,a){return zT(r=>LT(r,{requestInit:a}))(e,t,n)}function zT(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 b="quantization"in g?g.quantization.dtype:g.dtype,y=Tx[b]*bt(g.shape),x=()=>{r[m]=!0,s[m]==null&&(s[m]=[]),s[m].push({manifestEntry:g,groupOffset:f,sizeBytes:y})};a!=null?a.forEach((w,I)=>{w===g.name&&(x(),i[I]=!0)}):x(),o.push(g.name),f+=y})}),!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=new KW(p.slice(c,c+m));s[h].forEach(g=>{let b=f.slice(g.groupOffset,g.groupOffset+g.sizeBytes),y=uN(b,[g.manifestEntry]);for(let x in y)d[x]=y[x]}),c+=m}),d}}var ZW="application/octet-stream",JW="application/json",Vw=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=G().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=pN(e,n);t.body.append("model.json",new Blob([JSON.stringify(a)],{type:JW}),"model.json"),e.weightData!=null&&t.body.append("model.weights.bin",new Blob([e.weightData],{type:ZW}),"model.weights.bin");let r=await this.fetch(this.path,t);if(r.ok)return{modelArtifactsInfo:nd(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 Cv(t,r=>this.loadWeights(r))}async loadWeights(e){let t=Array.isArray(this.path)?this.path[1]:this.path,[n,a]=QW(t),r=this.weightPathPrefix||n,s=dN(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 LT(i,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress});return[s,Tv(l)]}};Vw.URL_SCHEME_REGEX=/^https?:\/\//;function QW(e){let t=e.lastIndexOf("/"),n=e.lastIndexOf("?"),a=e.substring(0,t),r=n>t?e.substring(n):"";return[a+"/",r]}function $x(e){return e.match(Vw.URL_SCHEME_REGEX)!=null}var WT=(e,t)=>{if(typeof fetch=="undefined"&&(t==null||t.fetchFunc==null))return null;{let n=!0;if(Array.isArray(e)?n=e.every(a=>$x(a)):n=$x(e),n)return Uw(e,t)}return null};$t.registerSaveRouter(WT);$t.registerLoadRouter(WT);function Uw(e,t){return new Vw(e,t)}function eB(e,t){return Uw(e,t)}var ix=class{constructor(e){this.modelArtifacts=e}load(){return this.modelArtifacts}},BT=class{constructor(e){this.saveHandler=e}save(e){return this.saveHandler(e)}},tB=class{constructor(e){e.load&&(this.load=()=>Promise.resolve(e.load())),e.save&&(this.save=t=>Promise.resolve(e.save(t)))}};function nB(e,t,n,a){let r=arguments;return new tB(VT(...r))}function VT(e,t,n,a){return arguments.length===1?e.modelTopology!=null||e.weightSpecs!=null?new ix(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 ix({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 ix({modelTopology:e,weightSpecs:t,weightData:n,trainingConfig:a}))}function aB(e){return new BT(e)}function rB(e){return new BT(e)}var UT={};Ee(UT,{confusionMatrix:()=>iB});function sB(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=Vl(ie(a,"int32"),n),i=Vl(ie(r,"int32"),n),o=De(s),l=$e(o,i);return ie(l,"int32")}var iB=L({confusionMatrix_:sB}),Uo={};Ee(Uo,{fromPixels:()=>hB,fromPixelsAsync:()=>cB,toPixels:()=>dB});var Hs;function GT(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(nm(tm,O.backendName)!=null){let c={pixels:e},h={numChannels:t};return O.runKernel(tm,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(Hs==null)if(typeof document=="undefined")if(typeof OffscreenCanvas!="undefined"&&typeof OffscreenCanvasRenderingContext2D!="undefined")Hs=new OffscreenCanvas(1,1).getContext("2d");else throw new Error("Cannot parse input in current context. Reason: OffscreenCanvas Context2D rendering is not supported.");else Hs=document.createElement("canvas").getContext("2d",{willReadFrequently:!0});Hs.canvas.width=l,Hs.canvas.height=u,Hs.drawImage(e,0,0,l,u),p=Hs.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 hB=L({fromPixels_:GT}),Gw={};Ee(Gw,{prepareAndValidate:()=>HT});function HT(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(bt(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 Kt={};Ee(Kt,{assertParamsValid:()=>fB,computeFlatOffset:()=>vB,computeOutShape:()=>bB,getNormalizedAxes:()=>yB,isSliceContinous:()=>xB,maskToAxes:()=>gB,parseSliceParams:()=>e2,sliceInfo:()=>wB,startForAxis:()=>JT,startIndicesWithElidedDims:()=>XT,stopForAxis:()=>QT,stopIndicesWithElidedDims:()=>YT,stridesForAxis:()=>ZT,stridesWithElidedDims:()=>qT});var Dx=-2,mB=-1;function fB(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 gB(e){let t=[],n=0;for(;e>0;)e&1&&t.push(n),e/=2,n++;return t}function bB(e,t,n){let a=[];for(let r=0;r0){let h=t[0],m=n+1;p=XT(i,h,m,a,e),d=YT(o,h,m,r,e),c=qT(s,h,m,e)}else for(let h=0;h-1)s[o]=0;else{let l=jT(t,n,o),u=a[l];e&1<-1)s[o]=Number.MAX_SAFE_INTEGER;else{let l=jT(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=mc(0,i,l-1),i}function QT(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=mc(0,i,l):i=mc(-1,i,l-1),i}function xB(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 vB(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 wB(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)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 y=0;y0?0:-1,c.strides[y]>0?w:w-1];if(x&&c.strides[y]<=0)throw Error("only stride 1 allowed on non-range indexing.");f=f&&c.strides[y]===1;let C=!!(c.beginMask&1<=w)throw Error(`slice index ${c.begin[y]} of dimension ${y} out of bounds.`)}else c.begin[y]=pI(c.begin[y],0,c.strides[y],w,I,T),c.end[y]=pI(c.end[y],1,c.strides[y],w,I,T);let D=c.strides[y]===1&&c.begin[y]===0&&c.end[y]===w;h=h&&D,m=m&&(y===0&&c.strides[y]===1||D)}else h=h&&c.strides[y]===1&&C,m=m&&(y===0&&c.strides[y]===1||C);let E,F=!1;if(c.beginValid&&c.endValid?(E=c.end[y]-c.begin[y],F=!0):x?(E=1,F=!0):C&&w>=0&&(c.strides[y]<0?E=-w:E=w,F=!0),F){let D;E===0||E<0!=c.strides[y]<0?D=0:D=Math.trunc(E/c.strides[y])+(E%c.strides[y]!==0?1:0),g.push(D)}else g.push(-1)}for(let y=0;y=0?b.push(g[x]):x===Dx&&b.push(1)}return{finalShapeSparse:b.filter((y,x)=>c.finalShapeGatherIndices[x]!==Dx),finalShape:b,isIdentity:h,sliceDim0:m,isSimpleSlice:f,begin:c.begin,end:c.end,strides:c.strides}}function kB(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 IB="4.5.0",t2=class{static sgd(e){return new Ef(e)}static momentum(e,t,n=!1){return new Ww(e,t,n)}static rmsprop(e,t=.9,n=0,a=null,r=!1){return new Bw(e,t,n,a,r)}static adam(e=.001,t=.9,n=.999,a=null){return new Lw(e,t,n,a)}static adadelta(e=.001,t=.95,n=null){return new Pw(e,t,n)}static adamax(e=.002,t=.9,n=.999,a=null,r=0){return new zw(e,t,n,a,r)}static adagrad(e,t=.1){return new Ow(e,t)}},Ks=t2,SB=(()=>typeof requestAnimationFrame!="undefined"?requestAnimationFrame:typeof setImmediate!="undefined"?setImmediate:e=>e())();function Hw(){return new Promise(e=>SB(()=>e()))}var N={};Ee(N,{ERF_A1:()=>zB,ERF_A2:()=>WB,ERF_A3:()=>BB,ERF_A4:()=>VB,ERF_A5:()=>UB,ERF_P:()=>LB,PARALLELIZE_THRESHOLD:()=>qw,RowPartitionType:()=>ar,SELU_SCALE:()=>a2,SELU_SCALEALPHA:()=>n2,applyActivation:()=>Cf,assertAndGetBroadcastShape:()=>pt,assertAxesAreInnerMostDims:()=>TO,assertParamsConsistent:()=>NB,assignToTypedArray:()=>XB,axesAreInnerMostDims:()=>aw,calculateShapes:()=>dT,checkEinsumDimSizes:()=>t4,checkPadOnDimRoundingMode:()=>Cn,combineLocations:()=>DN,combineRaggedTensorToTensorShapes:()=>CB,complexWithEvenIndex:()=>qB,complexWithOddIndex:()=>jB,computeConv2DInfo:()=>ad,computeConv3DInfo:()=>IN,computeDefaultPad:()=>Lv,computeDilation2DInfo:()=>SP,computeOptimalWindowSize:()=>FB,computeOutAndReduceShapes:()=>RN,computeOutShape:()=>TB,computePool2DInfo:()=>kN,computePool3DInfo:()=>NP,convertConv2DDataFormat:()=>SN,decodeEinsumEquation:()=>QB,eitherStridesOrDilationsAreOne:()=>hr,expandShapeToKeepDim:()=>mi,exponent:()=>ZB,exponents:()=>YB,fromStringArrayToUint8:()=>k4,fromUint8ToStringArray:()=>w4,getAxesPermutation:()=>MN,getBroadcastDims:()=>AN,getComplexWithIndex:()=>KB,getEinsumComputePath:()=>n4,getEinsumPermutation:()=>e4,getFusedBiasGradient:()=>Tf,getFusedDyActivation:()=>Nf,getImageCenter:()=>$B,getInnerMostAxes:()=>CO,getPermuted:()=>RB,getRaggedRank:()=>EB,getReductionAxes:()=>Ut,getReshaped:()=>DB,getReshapedPermuted:()=>MB,getRowPartitionTypesHelper:()=>_B,getSliceBeginCoords:()=>PB,getSliceSize:()=>OB,getSparseFillEmptyRowsIndicesDenseShapeMismatch:()=>i4,getSparseFillEmptyRowsNegativeIndexErrorMessage:()=>o4,getSparseFillEmptyRowsOutOfRangeIndexErrorMessage:()=>l4,getSparseReshapeEmptyTensorZeroOutputDimErrorMessage:()=>c4,getSparseReshapeInputOutputMismatchErrorMessage:()=>h4,getSparseReshapeInputOutputMultipleErrorMessage:()=>d4,getSparseReshapeMultipleNegativeOneOutputDimErrorMessage:()=>u4,getSparseReshapeNegativeOutputDimErrorMessage:()=>p4,getSparseSegmentReductionIndicesOutOfRangeErrorMessage:()=>b4,getSparseSegmentReductionNegativeSegmentIdsErrorMessage:()=>m4,getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage:()=>f4,getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage:()=>g4,getUndoAxesPermutation:()=>rw,isIdentityPermutation:()=>a4,log:()=>OR,mergeRealAndImagArrays:()=>GB,prepareAndValidate:()=>HT,prepareSplitSize:()=>s4,segment_util:()=>r2,shouldFuse:()=>_f,slice_util:()=>Kt,splitRealAndImagArrays:()=>HB,stridesOrDilationsArePositive:()=>di,tupleValuesAreOne:()=>hs,upcastType:()=>ba,validateDefaultValueShape:()=>AB,validateInput:()=>wf,validateUpdateShape:()=>Tw,warn:()=>ns});function NB(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 TB(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 _B(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 EB(e){return e.length===0?0:e[0]===ar.FIRST_DIM_SIZE?e.length-1:e.length}function AB(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 qw=30;function FB(e){return e<=qw?e:em(e,Math.floor(Math.sqrt(e)))}function $B(e,t,n){let a=n*(typeof e=="number"?e:e[0]),r=t*(typeof e=="number"?e:e[1]);return[a,r]}function DB(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 MB(e,t,n,a=!0){let r=[];a?r.push(e[0]/n):r.push(e[0]*n);for(let s=1;s/g,cI=",",dI="...";function QB(e,t){e=e.replace(/\s/g,"");let n=(e.length-e.replace(JB,"").length)/ox.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 ("${ox}").`);let[a,r]=e.split(ox);A(a.indexOf(dI)===-1,()=>`The ellipsis notation ("${dI}") is not supported yet.`);let s=a.split(cI),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 t4(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 n4(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 r4(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 i4(e){return`Received SparseTensor with denseShape[0] = 0 but - indices.shape[0] = ${e}`}function o4(e,t){return`indices(${e}, 0) is invalid: ${t} < 0`}function l4(e,t,n){return`indices(${e}, 0) is invalid: ${t} >= ${n}`}function u4(e,t){return`only one output dimension may be -1, not both ${e} and ${t}`}function p4(e,t){return`size ${e} must be non-negative, not ${t}`}function c4(){return"reshape cannot infer the missing input size for an empty tensor unless all specified input sizes are non-zero"}function d4(e,t){let n=bt(e),a=bt(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 h4(e,t){let n=bt(e),a=bt(t);return`Input to reshape is a tensor with ${n} dense values, but the requested shape has ${a}. inputShape=${e} outputShape=${t}`}function m4(){return"segment ids must be >= 0"}function f4(){return"segment ids are not increasing"}function g4(e,t){return`Segment id ${e} out of range [0, ${t}), possibly because segmentIds input is not sorted.`}function b4(e,t,n){return`Bad: indices[${e}] == ${t} out of range [0, ${n})`}var r2={};Ee(r2,{collectGatherOpShapeInfo:()=>v4,computeOutShape:()=>x4,segOpComputeOptimalWindowSize:()=>y4});function y4(e,t){let n=!1,a;for(e<=qw?(a=e,n=!0):a=em(e,Math.floor(Math.sqrt(e)));!n;)a>t||a===e?n=!0:a=em(e,a+1);return a}function x4(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(nrm(t))}catch(t){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${t}`)}}function k4(e){return e.map(t=>ed(t))}var fr={};Ee(fr,{nonMaxSuppressionV3Impl:()=>TT,nonMaxSuppressionV4Impl:()=>CT,nonMaxSuppressionV5Impl:()=>_T,whereImpl:()=>fT});WW();var s2={kernelName:ru,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,Vo(ie(n,"float32"),-1))}}},I4={kernelName:Si,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=ut(ie(n,"float32")),r=mn(pe(ve(1),a));return yt(he(e,r))}}}},S4={kernelName:Ni,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=mn(pe(ut(ie(n,"float32")),1));return he(e,a)}}}},N4={kernelName:ks,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=pt(n.shape,a.shape);return{a:()=>{let s=e,i=Ut(n.shape,r);return i.length>0&&(s=fe(s,i)),W(s,n.shape)},b:()=>{let s=e,i=Ut(a.shape,r);return i.length>0&&(s=fe(s,i)),W(s,a.shape)}}}},T4={kernelName:Ti,saveAllInputs:!0,gradFunc:(e,t)=>{let n={};return t.forEach((a,r)=>{n[r]=()=>e.clone()}),n}},C4={kernelName:ou,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>qe(n)}}},_4={kernelName:lu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>qe(n)}}},E4={kernelName:Ci,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,mn(pe(ve(1),ut(ie(n,"float32")))))}}},A4={kernelName:_i,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=mn(X(ve(1),ut(ie(n,"float32"))));return he(e,a)}}}},F4={kernelName:Fi,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=pt(n.shape,a.shape);return{a:()=>{let s=X(ut(n),ut(a)),i=z(e,he(a,s)),o=Ut(n.shape,r);return o.length>0&&(i=fe(i,o)),W(i,n.shape)},b:()=>{let s=X(ut(n),ut(a)),i=yt(z(e,he(n,s))),o=Ut(a.shape,r);return o.length>0&&(i=fe(i,o)),W(i,a.shape)}}}},$4={kernelName:Ei,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,X(ut(ie(n,"float32")),1))}}},D4={kernelName:Ai,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,pe(ve(1),ut(ie(n,"float32"))))}}};function R4(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}.`),Cn("avgPool3dGrad",r,s);let d={dy:l,input:u},c={filterSize:n,strides:a,pad:r,dimRoundingMode:s},h=O.runKernel(Rc,d,c);return p?W(h,[h.shape[1],h.shape[2],h.shape[3],h.shape[4]]):h}var M4=L({avgPool3dGrad_:R4}),P4={kernelName:uu,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{filterSize:r,strides:s,pad:i,dimRoundingMode:o}=n;return{x:()=>M4(e,a,r,s,i,o)}}};function O4(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($m,p,d);return u?W(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var L4=L({avgPoolGrad_:O4}),z4={kernelName:$i,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{filterSize:r,strides:s,pad:i}=n;return{x:()=>L4(e,a,r,s,i)}}},W4={kernelName:Di,inputsToSave:["a","b"],gradFunc:(e,t,n)=>{let[a,r]=t,{transposeA:s,transposeB:i}=n;return!s&&!i?{a:()=>$e(e,r,!1,!0),b:()=>$e(a,e,!0,!1)}:!s&&i?{a:()=>$e(e,r,!1,!1),b:()=>$e(e,a,!0,!1)}:s&&!i?{a:()=>$e(r,e,!1,!0),b:()=>$e(a,e,!1,!1)}:{a:()=>$e(r,e,!0,!0),b:()=>$e(e,a,!0,!0)}}},B4={kernelName:pu,gradFunc:(e,t,n)=>{let{blockShape:a,crops:r}=n;return{x:()=>cd(e,a,r)}}},V4={kernelName:KS,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)}}},U4={kernelName:Ri,gradFunc:e=>({x:()=>e.clone()})},G4={kernelName:Mi,gradFunc:e=>({x:()=>qe(e)})},H4={kernelName:Is,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{clipValueMin:r,clipValueMax:s}=n;return{x:()=>an(Da(Pr(a,r),Es(a,s)),e,qe(e))}}},q4={kernelName:Pc,inputsToSave:["x"],gradFunc:s2.gradFunc},j4={kernelName:du,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)}},K4={kernelName:Pi,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,{dilations:s,strides:i,pad:o,dataFormat:l}=n;return A(hs(s),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`),{x:()=>Xv(a.shape,e,r,i,o,l),filter:()=>Dw(a,e,r.shape,i,o,l)}}},X4={kernelName:Oi,inputsToSave:["dy","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,{strides:s,pad:i,dataFormat:o,dimRoundingMode:l}=n;return{dy:()=>Rt(e,r,s,i,o,1,l),filter:()=>Dw(e,a,r.shape,s,i,o,l)}}};function Y4(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(hu,o,l)}var Z4=L({conv3DBackpropFilter_:Y4}),J4={kernelName:Li,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let{dilations:a,strides:r,pad:s}=n;A(hs(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:()=>_N(i.shape,e,o,r,s),filter:()=>Z4(i,e,o.shape,r,s)}}},Q4={kernelName:zi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(yt(ff(ie(n,"float32"))),e)}}},eV={kernelName:Wi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(gf(ie(n,"float32")),e)}}},tV={kernelName:Bi,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r,exclusive:s,reverse:i}=n;return{x:()=>{let o=MN([r],a.rank),l=nf(e,r,s,!i);return o!=null&&(l=De(l,o)),l}}}},nV={kernelName:Vi,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let{dilations:a,strides:r,pad:s,dimRoundingMode:i}=n,o=a==null?[1,1]:a;A(hs(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}'.`),Cn("depthwiseConv2d",s,i),{x:()=>IT(l.shape,e,u,r,s,o,i),filter:()=>kT(l,e,u.shape,r,s,o,i)}}},aV={kernelName:Ui,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(Ol,s,n),filter:()=>O.runKernel(Ll,i,n)}}},rV={kernelName:Hi,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t,a={dy:e,y:n};return{x:()=>O.runKernel(yu,a)}}},sV={kernelName:xu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t,a=z(yn(yt(ut(n))),2/Math.sqrt(Math.PI));return{x:()=>z(e,a)}}},iV={kernelName:qi,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,n)}}},oV={kernelName:wu,inputsToSave:["input"],gradFunc:(e,t)=>{let[n]=t;return{input:()=>W(e,n.shape)}}},lV={kernelName:ji,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,yn(n))}}},uV={kernelName:Ki,gradFunc:e=>({x:()=>qe(e)})},pV={kernelName:Xi,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=pt(n.shape,a.shape);return{a:()=>{let s=he(e,ie(a,"float32")),i=Ut(n.shape,r);return i.length>0?W(fe(s,i),n.shape):s},b:()=>{let s=z(e,ie(n,"float32")),i=Ut(a.shape,r);i.length>0&&(s=W(fe(s,i),a.shape));let o=ut(a);return yt(he(s,ie(o,"float32")))}}}},cV={kernelName:Yi,inputsToSave:["x","mean","variance","scale"],gradFunc:(e,t,n)=>{let{varianceEpsilon:a}=n,[r,s,i,o]=t,l=o==null?ve(1):o,u=Ut(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,ve(-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)}}}},dV={kernelName:Iu,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=hI(0,p),m=hI(p+1,p+1+c),f=mI([u,[l],d]),g=W(e,f),b=W(r,[l]),y=mI([[p],h,m]),x=De(g,y),w=If(x,b,a.shape[i]),I=rw(y);return w=De(w,I),w},indices:()=>r}}};function hI(e,t){let n=[];for(let a=e;a{let[n,a]=t;return{a:()=>qe(n),b:()=>qe(a)}}},mV={kernelName:Ji,gradFunc:e=>({x:()=>ie(e,"float32")})},fV={kernelName:Qi,gradFunc:e=>({x:()=>qe(e)})},gV={kernelName:eo,gradFunc:e=>({x:()=>qe(e)})},bV={kernelName:to,gradFunc:e=>({x:()=>qe(e)})},yV={kernelName:no,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{alpha:r}=n,s=_n(a,0);return{x:()=>an(s,e,z(e,r))}}},xV={kernelName:ro,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,X(n,1))}}},vV={kernelName:ao,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,ie(n,"float32"))}}},wV={kernelName:YS,inputsToSave:[],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n;return{logits:()=>{let s=yn(a);return pe(e,z(fe(e,r,!0),s))}}}};function kV(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($u,o,l)}var IV=L({localResponseNormalizationBackprop_:kV}),SV={kernelName:so,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{depthRadius:s,bias:i,alpha:o,beta:l}=n;return{x:()=>IV(a,r,e,s,i,o,l)}}};function i2(e,t,n,a){return t.rankz(e,ie(ta(n,t),e.dtype))}}var fI={kernelName:io,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=i2(e,i,s,o);return{x:()=>l.x()}}},NV={kernelName:oo,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t;return{a:()=>z(e,ie(Pr(n,a),"float32")),b:()=>z(e,ie(Bl(n,a),"float32"))}}};function TV(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}.`),Cn("maxPool3dGrad",s,i);let m={dy:p,input:d,output:c},f={filterSize:a,strides:r,pad:s,dimRoundingMode:i},g=O.runKernel(Wc,m,f);return h?W(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}var CV=L({maxPool3dGrad_:TV}),_V={kernelName:Du,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=n;return{x:()=>CV(e,a,r,s,i,o,l)}}};function EV(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}.`),Cn("maxPoolGrad",s,i);let p={dy:o,input:l,output:u},d={filterSize:a,strides:r,pad:s,dimRoundingMode:i};return O.runKernel(Vm,p,d)}var AV=L({maxPoolGrad_:EV}),FV={kernelName:lo,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{filterSize:s,strides:i,pad:o}=n;return{x:()=>AV(e,a,r,s,i,o)}}},$V={kernelName:uo,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n,s=Ra(r,a.shape),i=RN(a.shape,s)[1],o=bt(i);return{x:()=>{let l=a.shape.slice();s.forEach(p=>{l[p]=1});let u=W(e,l);return he(z(u,Qn(a.shape,"float32")),o)}}}},DV={kernelName:po,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let a=n,{axis:r}=a,[s,i]=t,o=Ra(r,s.shape),l=i2(e,i,s,o);return{x:()=>l.x()}}},RV={kernelName:co,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t;return{a:()=>z(e,ie(Es(n,a),"float32")),b:()=>z(e,ie(_n(n,a),"float32"))}}},MV={kernelName:ho,inputsToSave:["x"],gradFunc:(e,t,n)=>{let a=t[0],{paddings:r}=n,s=r.map(i=>i[0]);return{x:()=>Ue(e,s,a.shape)}}},PV={kernelName:Ru,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=pt(n.shape,a.shape);return{a:()=>{let s=Ut(n.shape,r);return s.length>0?W(fe(e,s),n.shape):e},b:()=>{let s=z(e,yt(cp(he(n,a)))),i=Ut(a.shape,r);return i.length>0?W(fe(s,i),a.shape):s}}}},OV={kernelName:mo,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=pt(n.shape,a.shape);return{a:()=>{let s=z(e,ie(a,"float32")),i=Ut(n.shape,r);return i.length>0?W(fe(s,i),n.shape):s},b:()=>{let s=z(e,ie(n,"float32")),i=Ut(a.shape,r);return i.length>0?W(fe(s,i),a.shape):s}}}},LV={kernelName:Pu,gradFunc:e=>({x:()=>yt(e)})},zV={kernelName:fo,inputsToSave:["indices"],gradFunc:(e,t)=>{let n=t[0];return{indices:()=>Nt(n.shape,"float32")}}},WV={kernelName:Bu,gradFunc:e=>({x:()=>qe(e)})},BV={kernelName:Vu,saveAllInputs:!0,gradFunc:(e,t,n)=>{let{axis:a}=n;return ct(e,a).map(r=>()=>r)}},gI={kernelName:go,inputsToSave:["x"],gradFunc:(e,t,n)=>{let a=t[0],{paddings:r}=n,s=r.map(i=>i[0]);return{x:()=>Ue(e,s,a.shape)}}},VV={kernelName:bo,inputsToSave:["a","b"],outputsToSave:[!0],gradFunc:(e,t)=>{let[n,a,r]=t,s=n,i=a,o=pt(s.shape,i.shape);return{a:()=>{let l=ie(i,"float32"),u=z(e,z(l,Rr(s,pe(l,ve(1))))),p=Ut(s.shape,o);return p.length>0&&(u=fe(u,p)),W(u,s.shape)},b:()=>{let l=_n(s,0),u=an(l,na(s),qe(s)),p=z(e,z(r,u)),d=Ut(i.shape,o);return d.length>0&&(p=fe(p,d)),W(p,i.shape)}}}},UV={kernelName:yo,inputsToSave:["x","alpha"],gradFunc:(e,t)=>{let[n,a]=t,r=_n(n,0);return{x:()=>an(r,e,z(e,a)),alpha:()=>{let s=an(r,qe(e),z(e,n)),i=Ut(a.shape,e.shape);return i.length>0&&(s=fe(s,i)),W(s,a.shape)}}}};function GV(e,t,n){let a=e.shape.slice();a[n]=1;let r=W(t,a),s=kc(e,n,!0,!1),i=kc(e,n,!0,!0),o=z(s,i);return z(r,o)}function HV(e,t,n){let a=e.shape.length,r=a-n.length,s=N.getAxesPermutation(n,a),i=e;s!=null&&(i=De(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=GV(u,t,r);if(p=p.reshape(i.shape),s!=null){let d=N.getUndoAxesPermutation(s);p=De(p,d)}return p}var qV={kernelName:xo,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:()=>HV(a,e,s)}}},jV={kernelName:Gi,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=pt(n.shape,a.shape);return{a:()=>{let s=he(e,ie(a,"float32")),i=Ut(n.shape,r);return i.length>0?W(fe(s,i),n.shape):s},b:()=>{let s=z(e,ie(n,"float32")),i=Ut(a.shape,r);i.length>0&&(s=W(fe(s,i),a.shape));let o=ut(a);return yt(he(s,ie(o,"float32")))}}}},KV={kernelName:vo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,yt(ut(n)))}}},XV={kernelName:So,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t,a=z(Es(n,6),Vo(n));return{x:()=>z(e,ie(a,"float32"))}}},YV={kernelName:wo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,ie(Vo(n),"float32"))}}},ZV={kernelName:Uu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>W(e,n.shape)}}},JV={kernelName:Io,inputsToSave:["images"],gradFunc:(e,t,n)=>{let[a]=t,r={dy:e,images:a};return{images:()=>O.runKernel(Hu,r,n)}}},QV={kernelName:ko,inputsToSave:["images"],gradFunc:(e,t,n)=>{let[a]=t,r={dy:e,images:a};return{images:()=>O.runKernel(Gu,r,n)}}},eU={kernelName:No,gradFunc:(e,t,n)=>{let{dims:a}=n,r=Ra(a,e.shape);return{x:()=>ya(e,r)}}},tU={kernelName:To,gradFunc:e=>({x:()=>qe(e)})},nU={kernelName:Co,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>yt(he(e,z(Rr(n,1.5),2)))}}},aU={kernelName:Xu,inputsToSave:["condition"],gradFunc:(e,t)=>{let[n]=t;return{condition:()=>ie(qe(n),"float32"),t:()=>z(e,ie(n,e.dtype)),e:()=>z(e,ie(ud(n),e.dtype))}}},rU={kernelName:_o,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=_n(n,ve(0)),r=ve(n2),s=ve(a2),i=z(e,s),o=z(z(e,r),yn(ie(n,"float32")));return an(a,i,o)}}}},sU={kernelName:Fo,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,z(n,pe(ve(1),n)))}}},iU={kernelName:Ao,gradFunc:e=>({x:()=>qe(e)})},oU={kernelName:Eo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(sd(ie(n,"float32")),e)}}},lU={kernelName:Zu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(tf(ie(n,"float32")),e)}}},uU={kernelName:Yu,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{begin:r,size:s}=n,i=a.shape,[o,l]=e2(a,r,s),u=[];for(let p=0;pva(e,u)}}},pU={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))}}},cU={kernelName:$o,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,fa(n))}}},bI={kernelName:Ju,gradFunc:(e,t,n)=>{let{blockShape:a,paddings:r}=n;return{x:()=>rd(e,a,r)}}},yI={kernelName:Qu,gradFunc:(e,t,n)=>{let{axis:a}=n;return{x:()=>Qe(e,a)}}},dU={kernelName:Do,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,z(mn(ie(n,"float32")),2))}}},hU={kernelName:Hc,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,z(ie(n,"float32"),2))}}},mU={kernelName:Po,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ve(2);return{a:()=>z(e,z(r,pe(n,a))),b:()=>z(e,z(r,pe(a,n)))}}},fU={kernelName:Ns,gradFunc:e=>({x:()=>qe(e)})},gU={kernelName:Oo,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=pt(n.shape,a.shape);return{a:()=>{let s=e,i=Ut(n.shape,r);return i.length>0&&(s=fe(s,i)),W(s,n.shape)},b:()=>{let s=e,i=Ut(a.shape,r);return i.length>0&&(s=fe(s,i)),W(yt(s),a.shape)}}}},bU={kernelName:Ro,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,Qn(a.shape,"float32"));return{x:()=>o}}},yU={kernelName:Lo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,ut(sd(n)))}}},xU={kernelName:zo,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(pe(ve(1),ut(n)),e)}}},vU={kernelName:Ss,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=rw(r);return{x:()=>De(e,s)}}},kU={kernelName:sp,gradFunc:(e,t,n)=>{let a=n,{axis:r}=a;return{value:()=>Dt(e,r)}}},IU={kernelName:Zc,inputsToSave:["segmentIds"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>SU(e,n)}}};function SU(e,t){let n=mr(t,qe(t)),a=dp(e,n),r=Pr(t,ve(0,"int32")),s=a.rank-r.rank;for(let o=0;o({x:()=>qe(e)})},TU=[s2,I4,S4,N4,T4,C4,_4,E4,A4,F4,$4,D4,P4,z4,W4,B4,V4,U4,G4,H4,q4,j4,X4,K4,J4,Q4,eV,tV,nV,aV,jV,rV,sV,iV,oV,lV,pV,uV,cV,dV,hV,mV,fV,gV,bV,yV,xV,vV,wV,SV,fI,fI,NV,_V,FV,$V,DV,RV,MV,PV,OV,LV,zV,WV,BV,gI,gI,VV,UV,qV,KV,XV,YV,ZV,JV,QV,eU,tU,nU,aU,rU,sU,iU,oU,lU,uU,pU,cU,bI,bI,yI,yI,dU,mU,hU,fU,gU,bU,yU,xU,vU,wU,kU,IU,NU];for(let e of TU)ZS(e);Q().prototype.abs=function(){return this.throwIfDisposed(),Wt(this)};Q().prototype.acos=function(){return this.throwIfDisposed(),Av(this)};Q().prototype.acosh=function(){return this.throwIfDisposed(),Fv(this)};Q().prototype.add=function(e){return this.throwIfDisposed(),X(this,e)};Q().prototype.all=function(e,t){return this.throwIfDisposed(),Jm(this,e,t)};Q().prototype.any=function(e,t){return this.throwIfDisposed(),xc(this,e,t)};Q().prototype.argMax=function(e){return this.throwIfDisposed(),ci(this,e)};Q().prototype.argMin=function(e){return this.throwIfDisposed(),$v(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(),ie(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(),Dv(this)};Q().prototype.asinh=function(){return this.throwIfDisposed(),Rv(this)};Q().prototype.atan=function(){return this.throwIfDisposed(),Mv(this)};Q().prototype.atan2=function(e){return this.throwIfDisposed(),Pv(this,e)};Q().prototype.atanh=function(){return this.throwIfDisposed(),Ov(this)};Q().prototype.avgPool=function(e,t,n,a){return this.throwIfDisposed(),xa(this,e,t,n,a)};Q().prototype.batchToSpaceND=function(e,t){return this.throwIfDisposed(),rd(this,e,t)};Q().prototype.batchNorm=function(e,t,n,a,r){return this.throwIfDisposed(),Cs(this,e,t,n,a,r)};Q().prototype.broadcastTo=function(e){return this.throwIfDisposed(),ai(this,e)};Q().prototype.cast=function(e){return this.throwIfDisposed(),ie(this,e)};Q().prototype.ceil=function(){return this.throwIfDisposed(),Gv(this)};Q().prototype.clipByValue=function(e,t){return this.throwIfDisposed(),rn(this,e,t)};Q().prototype.concat=function(e,t){return this.throwIfDisposed(),e instanceof Ce&&(e=[e]),Qe([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(),ef(this,e,t,n,a,r)};Q().prototype.conv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),Rt(this,e,t,n,a,r,s)};Q().prototype.cos=function(){return this.throwIfDisposed(),sd(this)};Q().prototype.cosh=function(){return this.throwIfDisposed(),tf(this)};Q().prototype.cumprod=function(e,t,n){return this.throwIfDisposed(),kc(this,e,t,n)};Q().prototype.cumsum=function(e,t,n){return this.throwIfDisposed(),nf(this,e,t,n)};Q().prototype.depthToSpace=function(e,t){return this.throwIfDisposed(),Jv(this,e,t)};Q().prototype.depthwiseConv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),_s(this,e,t,n,a,r,s)};Q().prototype.dilation2d=function(e,t,n,a,r){return this.throwIfDisposed(),Qv(this,e,t,n,a,r)};Q().prototype.divNoNan=function(e){return this.throwIfDisposed(),ew(this,e)};Q().prototype.div=function(e){return this.throwIfDisposed(),he(this,e)};Q().prototype.dot=function(e){return this.throwIfDisposed(),tw(this,e)};Q().prototype.elu=function(){return this.throwIfDisposed(),up(this)};Q().prototype.equal=function(e){return this.throwIfDisposed(),ta(this,e)};Q().prototype.erf=function(){return this.throwIfDisposed(),nw(this)};Q().prototype.euclideanNorm=function(e,t){return this.throwIfDisposed(),sw(this,e,t)};Q().prototype.exp=function(){return this.throwIfDisposed(),yn(this)};Q().prototype.expandDims=function(e){return this.throwIfDisposed(),tn(this,e)};Q().prototype.expm1=function(){return this.throwIfDisposed(),iw(this)};Q().prototype.fft=function(){return this.throwIfDisposed(),md(this)};Q().prototype.flatten=function(){return this.throwIfDisposed(),W(this,[this.size])};Q().prototype.floor=function(){return this.throwIfDisposed(),cp(this)};Q().prototype.floorDiv=function(e){return this.throwIfDisposed(),Zm(this,e)};Q().prototype.gather=function(e,t,n){return this.throwIfDisposed(),dp(this,e,t,n)};Q().prototype.greaterEqual=function(e){return this.throwIfDisposed(),Pr(this,e)};Q().prototype.greater=function(e){return this.throwIfDisposed(),_n(this,e)};Q().prototype.ifft=function(){return this.throwIfDisposed(),Hl(this)};Q().prototype.irfft=function(){return this.throwIfDisposed(),yf(this)};Q().prototype.isFinite=function(){return this.throwIfDisposed(),ow(this)};Q().prototype.isInf=function(){return this.throwIfDisposed(),lw(this)};Q().prototype.isNaN=function(){return this.throwIfDisposed(),uw(this)};Q().prototype.leakyRelu=function(e){return this.throwIfDisposed(),od(this,e)};Q().prototype.lessEqual=function(e){return this.throwIfDisposed(),Es(this,e)};Q().prototype.less=function(e){return this.throwIfDisposed(),Bl(this,e)};Q().prototype.localResponseNormalization=function(e,t,n,a){return this.throwIfDisposed(),pw(this,e,t,n,a)};Q().prototype.logSigmoid=function(){return this.throwIfDisposed(),cw(this)};Q().prototype.logSoftmax=function(e){return this.throwIfDisposed(),sf(this,e)};Q().prototype.logSumExp=function(e,t){return this.throwIfDisposed(),of(this,e,t)};Q().prototype.log=function(){return this.throwIfDisposed(),na(this)};Q().prototype.log1p=function(){return this.throwIfDisposed(),ld(this)};Q().prototype.logicalAnd=function(e){return this.throwIfDisposed(),Da(this,e)};Q().prototype.logicalNot=function(){return this.throwIfDisposed(),ud(this)};Q().prototype.logicalOr=function(e){return this.throwIfDisposed(),lf(this,e)};Q().prototype.logicalXor=function(e){return this.throwIfDisposed(),dw(this,e)};Q().prototype.matMul=function(e,t,n){return this.throwIfDisposed(),$e(this,e,t,n)};Q().prototype.maxPool=function(e,t,n,a){return this.throwIfDisposed(),Mt(this,e,t,n,a)};Q().prototype.max=function(e,t){return this.throwIfDisposed(),ga(this,e,t)};Q().prototype.maximum=function(e){return this.throwIfDisposed(),mr(this,e)};Q().prototype.mean=function(e,t){return this.throwIfDisposed(),Et(this,e,t)};Q().prototype.min=function(e,t){return this.throwIfDisposed(),Wl(this,e,t)};Q().prototype.minimum=function(e){return this.throwIfDisposed(),ms(this,e)};Q().prototype.mirrorPad=function(e,t){return this.throwIfDisposed(),mw(this,e,t)};Q().prototype.mod=function(e){return this.throwIfDisposed(),fw(this,e)};Q().prototype.mul=function(e){return this.throwIfDisposed(),z(this,e)};Q().prototype.neg=function(){return this.throwIfDisposed(),yt(this)};Q().prototype.norm=function(e,t,n){return this.throwIfDisposed(),pp(this,e,t,n)};Q().prototype.notEqual=function(e){return this.throwIfDisposed(),fi(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(),aa(this)};Q().prototype.pad=function(e,t){return this.throwIfDisposed(),va(this,e,t)};Q().prototype.pool=function(e,t,n,a,r,s){return this.throwIfDisposed(),gw(this,e,t,n,a,r,s)};Q().prototype.pow=function(e){return this.throwIfDisposed(),Rr(this,e)};Q().prototype.prelu=function(e){return this.throwIfDisposed(),dd(this,e)};Q().prototype.prod=function(e,t){return this.throwIfDisposed(),bw(this,e,t)};Q().prototype.reciprocal=function(){return this.throwIfDisposed(),kw(this)};Q().prototype.relu=function(){return this.throwIfDisposed(),Ke(this)};Q().prototype.relu6=function(){return this.throwIfDisposed(),cf(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(),ET(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(),ya(this,e)};Q().prototype.rfft=function(){return this.throwIfDisposed(),fd(this)};Q().prototype.round=function(){return this.throwIfDisposed(),df(this)};Q().prototype.rsqrt=function(){return this.throwIfDisposed(),hf(this)};Q().prototype.selu=function(){return this.throwIfDisposed(),mf(this)};Q().prototype.separableConv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),Fs(this,e,t,n,a,r,s)};Q().prototype.sigmoid=function(){return this.throwIfDisposed(),fa(this)};Q().prototype.sign=function(){return this.throwIfDisposed(),Iw(this)};Q().prototype.sin=function(){return this.throwIfDisposed(),ff(this)};Q().prototype.sinh=function(){return this.throwIfDisposed(),gf(this)};Q().prototype.slice=function(e,t){return this.throwIfDisposed(),Ue(this,e,t)};Q().prototype.softmax=function(e){return this.throwIfDisposed(),Xa(this,e)};Q().prototype.softplus=function(){return this.throwIfDisposed(),Wo(this)};Q().prototype.spaceToBatchND=function(e,t){return this.throwIfDisposed(),cd(this,e,t)};Q().prototype.split=function(e,t){return this.throwIfDisposed(),zn(this,e,t)};Q().prototype.sqrt=function(){return this.throwIfDisposed(),mn(this)};Q().prototype.square=function(){return this.throwIfDisposed(),ut(this)};Q().prototype.squaredDifference=function(e){return this.throwIfDisposed(),xf(this,e)};Q().prototype.squeeze=function(e){return this.throwIfDisposed(),$s(this,e)};Q().prototype.stack=function(e,t){this.throwIfDisposed();let n=e instanceof Ce?[this,e]:[this,...e];return Dt(n,t)};Q().prototype.step=function(e){return this.throwIfDisposed(),Vo(this,e)};Q().prototype.stridedSlice=function(e,t,n,a,r,s,i,o){return this.throwIfDisposed(),Sw(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(),Nw(this)};Q().prototype.tanh=function(){return this.throwIfDisposed(),hi(this)};Q().prototype.tile=function(e){return this.throwIfDisposed(),Ln(this,e)};Q().prototype.toBool=function(){return this.throwIfDisposed(),ie(this,"bool")};Q().prototype.toFloat=function(){return this.throwIfDisposed(),ie(this,"float32")};Q().prototype.toInt=function(){return this.throwIfDisposed(),ie(this,"int32")};Q().prototype.topk=function(e,t){return this.throwIfDisposed(),Cw(this,e,t)};Q().prototype.transpose=function(e){return this.throwIfDisposed(),De(this,e)};Q().prototype.unique=function(e){return this.throwIfDisposed(),_w(this,e)};Q().prototype.unsortedSegmentSum=function(e,t){return this.throwIfDisposed(),If(this,e,t)};Q().prototype.unstack=function(e){return this.throwIfDisposed(),ct(this,e)};Q().prototype.where=function(e,t){return this.throwIfDisposed(),an(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)}},Le=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Le.prototype)}},o2=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,o2.prototype)}},l2=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 jw(e){if(e==null)return null;let t={};return t.className=e.getClassName(),t.config=e.getConfig(),t}function Rx(e){if(!(e==null||typeof e!="object"))if(Array.isArray(e))e.forEach(t=>Rx(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:Rx(a))}}}function bd(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: + ${s.shape}`);let i={data:a,indices:r,segmentIds:s};return O.runKernel(Yc,i)}var HW=L({sparseSegmentSum_:GW});function qW(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(Qc,d,p);return{nGrams:c[0],nGramsSplits:c[1]}}var jW=L({stringNGrams_:qW});function KW(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(ed,i,s);return{indices:o[0],values:o[1],shape:o[2]}}var XW=L({stringSplit_:KW});function YW(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(td,r,a)}var ZW=L({stringToHashBucketFast_:YW});function JW(e,t,n,a=!0){let r=_(e,"input","staticRegexReplace","string"),s={pattern:t,rewrite:n,replaceGlobal:a};return O.runKernel(Jc,{x:r},s)}var QW=L({staticRegexReplace_:JW}),WT={fft:vd,ifft:Yl,rfft:wd,irfft:xf},BT={hammingWindow:Ez,hannWindow:DT,frame:RT,stft:Dz},ea={flipLeftRight:Oz,grayscaleToRGB:zz,resizeNearestNeighbor:zT,resizeBilinear:LT,rotateWithOffset:Bz,cropAndResize:Mz,nonMaxSuppression:Uz,nonMaxSuppressionAsync:Zz,nonMaxSuppressionWithScore:Qz,nonMaxSuppressionWithScoreAsync:tW,nonMaxSuppressionPadded:aW,nonMaxSuppressionPaddedAsync:sW,threshold:pW,transform:dW},Uw={bandPart:mW,gramSchmidt:gW,qr:yW},VT={absoluteDifference:wW,computeWeightedLoss:Lr,cosineDistance:IW,hingeLoss:NW,huberLoss:CW,logLoss:EW,meanSquaredError:FW,sigmoidCrossEntropy:RW,softmaxCrossEntropy:OW},UT={sparseFillEmptyRows:zW,sparseReshape:BW,sparseSegmentMean:UW,sparseSegmentSum:HW},GT={stringNGrams:jW,stringSplit:XW,stringToHashBucketFast:ZW,staticRegexReplace:QW},ne={};Ee(ne,{Serializable:()=>HT,SerializationMap:()=>Zs,registerClass:()=>qT});var HT=class{getClassName(){return this.constructor.className}static fromConfig(e,t){return new e(t)}},Zs=class{constructor(){this.classNameMap={}}static getMap(){return Zs.instance==null&&(Zs.instance=new Zs),Zs.instance}static register(e){Zs.getMap().classNameMap[e.className]=[e,e.fromConfig]}};function qT(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."),Zs.register(e)}var zr=class extends HT{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 jN(e,t)}dispose(){this.iterations_!=null&&_e(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:"iter",tensor:ve(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(zr,Symbol.hasInstance,{value:e=>e.minimize!=null&&e.computeGradients!=null&&e.applyGradients!=null});var Gw=class extends zr{static get className(){return"Adadelta"}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=X(z(i,this.rho),z(ut(s),1-this.rho)),u=z(he(mn(X(o,this.epsilon)),mn(X(i,this.epsilon))),s),p=X(z(o,this.rho),z(ut(u),1-this.rho));i.assign(l),o.assign(p);let d=X(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)}},Hw=class extends zr{static get className(){return"Adagrad"}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(()=>xn(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=X(s,ut(r));s.assign(i);let o=X(z(he(r,mn(X(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)}},qw=class extends zr{static get className(){return"Adam"}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=ve(t).variable(),this.accBeta2=ve(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=X(z(u,this.beta1),z(l,1-this.beta1)),c=X(z(p,this.beta2),z(ut(l),1-this.beta2)),h=he(d,n),m=he(c,a);u.assign(d),p.assign(c);let f=X(z(he(h,X(mn(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(Mr(this.beta1,this.iterations_+1)),this.accBeta2.assign(Mr(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)}},jw=class extends zr{static get className(){return"Adamax"}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=ve(0).variable(),this.accBeta1=ve(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,X(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=X(z(u,this.beta1),z(l,1-this.beta1)),c=z(p,this.beta2),h=Wt(l),m=fr(c,h);u.assign(d),p.assign(m);let f=X(z(he(a,n),he(d,X(m,this.epsilon))),i);i.assign(f)}),this.iteration.assign(X(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)}},Af=class extends zr{static get className(){return"SGD"}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=X(z(this.c,a),r);r.assign(s)})}),this.incrementIterations()}setLearningRate(e){this.learningRate=e,this.c!=null&&this.c.dispose(),this.c=qt(ve(-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)}},Kw=class extends Af{static get className(){return"Momentum"}constructor(e,t,n=!1){super(e),this.learningRate=e,this.momentum=t,this.useNesterov=n,this.accumulations=[],this.m=ve(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=X(z(this.m,r),s);this.useNesterov?i=X(z(this.c,X(s,z(o,this.m))),a):i=X(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)}},Xw=class extends zr{static get className(){return"RMSProp"}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=X(z(i,this.decay),z(ut(s),1-this.decay));if(this.centered){let u=this.accumulatedMeanGrads[n].variable,p=X(z(u,this.decay),z(s,1-this.decay)),d=he(z(s,this.learningRate),mn(pe(l,X(ut(p),this.epsilon)))),c=X(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=X(z(i,this.decay),z(ut(s),1-this.decay)),p=X(z(o,this.momentum),he(z(s,this.learningRate),mn(X(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)}},eB=[Gw,Hw,qw,jw,Kw,Xw,Af];function tB(){for(let e of eB)qT(e)}var jt={};Ee(jt,{CompositeArrayBuffer:()=>hr,browserFiles:()=>lB,browserHTTPRequest:()=>hB,concatenateArrayBuffers:()=>DM,copyModel:()=>tP,decodeWeights:()=>yN,encodeWeights:()=>EM,fromMemory:()=>fB,fromMemorySync:()=>ZT,getLoadHandlers:()=>BM,getModelArtifactsForJSON:()=>Mv,getModelArtifactsForJSONSync:()=>vN,getModelArtifactsInfoForJSON:()=>ld,getSaveHandlers:()=>WM,getWeightSpecs:()=>wN,http:()=>Zw,isHTTPScheme:()=>Wx,listModels:()=>QM,loadWeights:()=>uB,moveModel:()=>nP,registerLoadRouter:()=>zM,registerSaveRouter:()=>LM,removeModel:()=>eP,weightsLoaderFactory:()=>KT,withSaveHandler:()=>gB,withSaveHandlerSync:()=>bB});var nB="model",aB=".json",rB=".weights.bin";function gI(e){return new Promise(t=>setTimeout(t)).then(e)}var Jl=class{constructor(e){if(!G().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");e.startsWith(Jl.URL_SCHEME)&&(e=e.slice(Jl.URL_SCHEME.length)),(e==null||e.length===0)&&(e=nB),this.modelJsonFileName=e+aB,this.weightDataFileName=e+rB}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=hr.join(e.weightData),n=window.URL.createObjectURL(new Blob([t],{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 a=[{paths:["./"+this.weightDataFileName],weights:e.weightSpecs}],r=xN(e,a),s=window.URL.createObjectURL(new Blob([JSON.stringify(r)],{type:"application/json"})),i=this.modelJsonAnchor==null?document.createElement("a"):this.modelJsonAnchor;if(i.download=this.modelJsonFileName,i.href=s,await gI(()=>i.dispatchEvent(new MouseEvent("click"))),e.weightData!=null){let o=this.weightDataAnchor==null?document.createElement("a"):this.weightDataAnchor;o.download=this.weightDataFileName,o.href=n,await gI(()=>o.dispatchEvent(new MouseEvent("click")))}return{modelArtifactsInfo:ld(e)}}}};Jl.URL_SCHEME="downloads://";var sB=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=Mv(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,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=>hI(r.name)),a={};for(let r of e)r.paths.forEach(s=>{let i=hI(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}},iB=e=>G().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(Jl.URL_SCHEME)?oB(e.slice(Jl.URL_SCHEME.length)):null;$t.registerSaveRouter(iB);function oB(e="model"){return new Jl(e)}function lB(e){return new sB(e)}function bI(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 jT(e,t){t==null&&(t={});let n=t.fetchFunc==null?G().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 bI(a,t.onProgress,r,s)).map(u=>u.arrayBuffer()),o=.5,l=1;return t.onProgress==null?await Promise.all(i):await bI(i,t.onProgress,o,l)}async function uB(e,t="",n,a){return KT(r=>jT(r,{requestInit:a}))(e,t,n)}function KT(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 b="quantization"in g?g.quantization.dtype:g.dtype,y=Rx[b]*bt(g.shape),x=()=>{r[m]=!0,s[m]==null&&(s[m]=[]),s[m].push({manifestEntry:g,groupOffset:f,sizeBytes:y})};a!=null?a.forEach((v,I)=>{v===g.name&&(x(),i[I]=!0)}):x(),o.push(g.name),f+=y})}),!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=new hr(p.slice(c,c+m));s[h].forEach(g=>{let b=f.slice(g.groupOffset,g.groupOffset+g.sizeBytes),y=yN(b,[g.manifestEntry]);for(let x in y)d[x]=y[x]}),c+=m}),d}}var pB="application/octet-stream",cB="application/json",Yw=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=G().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=xN(e,n);if(t.body.append("model.json",new Blob([JSON.stringify(a)],{type:cB}),"model.json"),e.weightData!=null){let s=hr.join(e.weightData);t.body.append("model.weights.bin",new Blob([s],{type:pB}),"model.weights.bin")}let r=await this.fetch(this.path,t);if(r.ok)return{modelArtifactsInfo:ld(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 Mv(t,r=>this.loadWeights(r))}async loadWeights(e){let t=Array.isArray(this.path)?this.path[1]:this.path,[n,a]=dB(t),r=this.weightPathPrefix||n,s=wN(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 jT(i,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress});return[s,l]}};Yw.URL_SCHEME_REGEX=/^https?:\/\//;function dB(e){let t=e.lastIndexOf("/"),n=e.lastIndexOf("?"),a=e.substring(0,t),r=n>t?e.substring(n):"";return[a+"/",r]}function Wx(e){return e.match(Yw.URL_SCHEME_REGEX)!=null}var XT=(e,t)=>{if(typeof fetch=="undefined"&&(t==null||t.fetchFunc==null))return null;{let n=!0;if(Array.isArray(e)?n=e.every(a=>Wx(a)):n=Wx(e),n)return Zw(e,t)}return null};$t.registerSaveRouter(XT);$t.registerLoadRouter(XT);function Zw(e,t){return new Yw(e,t)}function hB(e,t){return Zw(e,t)}var mx=class{constructor(e){this.modelArtifacts=e}load(){return this.modelArtifacts}},YT=class{constructor(e){this.saveHandler=e}save(e){return this.saveHandler(e)}},mB=class{constructor(e){e.load&&(this.load=()=>Promise.resolve(e.load())),e.save&&(this.save=t=>Promise.resolve(e.save(t)))}};function fB(e,t,n,a){let r=arguments;return new mB(ZT(...r))}function ZT(e,t,n,a){return arguments.length===1?e.modelTopology!=null||e.weightSpecs!=null?new mx(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 mx({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 mx({modelTopology:e,weightSpecs:t,weightData:n,trainingConfig:a}))}function gB(e){return new YT(e)}function bB(e){return new YT(e)}var JT={};Ee(JT,{confusionMatrix:()=>xB});function yB(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=jl(se(a,"int32"),n),i=jl(se(r,"int32"),n),o=De(s),l=$e(o,i);return se(l,"int32")}var xB=L({confusionMatrix_:yB}),Ko={};Ee(Ko,{draw:()=>CB,fromPixels:()=>_B,fromPixelsAsync:()=>SB,toPixels:()=>TB});var qs,yI=!1;function QT(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(om(im,O.backendName)!=null){let c={pixels:e},h={numChannels:t};return O.runKernel(im,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(qs==null)if(typeof document=="undefined")if(typeof OffscreenCanvas!="undefined"&&typeof OffscreenCanvasRenderingContext2D!="undefined")qs=new OffscreenCanvas(1,1).getContext("2d");else throw new Error("Cannot parse input in current context. Reason: OffscreenCanvas Context2D rendering is not supported.");else qs=document.createElement("canvas").getContext("2d",{willReadFrequently:!0});qs.canvas.width=l,qs.canvas.height=u,qs.drawImage(e,0,0,l,u),p=qs.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||t===2)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${t}`);if(e.dtype!=="float32"&&e.dtype!=="int32")throw new Error(`Unsupported type for toPixels: ${e.dtype}. Please use float32 or int32 tensors.`)}function NB(e){let t=(e==null?void 0:e.alpha)||1;if(t>1||t<0)throw new Error(`Alpha value ${t} is suppoed to be in range [0 - 1].`)}async function TB(e,t){let n=_(e,"img","toPixels");if(!(e instanceof Te)){let u=n;n=se(u,"int32"),u.dispose()}e2(n);let[a,r]=n.shape.slice(0,2),s=n.rank===2?1:n.shape[2],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){yI||(console.warn("tf.browser.toPixels is not efficient to draw tensor on canvas. Please try tf.browser.draw instead."),yI=!0),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}function CB(e,t,n){let a=_(e,"img","draw");if(!(e instanceof Te)){let i=a;a=se(i,"int32"),i.dispose()}e2(a),NB(n==null?void 0:n.imageOptions);let r={image:a},s={canvas:t,options:n};O.runKernel(Av,r,s)}var _B=L({fromPixels_:QT}),Jw={};Ee(Jw,{prepareAndValidate:()=>t2});function t2(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(bt(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 Xt={};Ee(Xt,{assertParamsValid:()=>AB,computeFlatOffset:()=>MB,computeOutShape:()=>$B,getNormalizedAxes:()=>DB,isSliceContinous:()=>RB,maskToAxes:()=>FB,parseSliceParams:()=>p2,sliceInfo:()=>PB,startForAxis:()=>l2,startIndicesWithElidedDims:()=>s2,stopForAxis:()=>u2,stopIndicesWithElidedDims:()=>i2,stridesForAxis:()=>o2,stridesWithElidedDims:()=>n2});var Bx=-2,EB=-1;function AB(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 FB(e){let t=[],n=0;for(;e>0;)e&1&&t.push(n),e/=2,n++;return t}function $B(e,t,n){let a=[];for(let r=0;r0){let h=t[0],m=n+1;p=s2(i,h,m,a,e),d=i2(o,h,m,r,e),c=n2(s,h,m,e)}else for(let h=0;h-1)s[o]=0;else{let l=a2(t,n,o),u=a[l];e&1<-1)s[o]=Number.MAX_SAFE_INTEGER;else{let l=a2(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=bc(0,i,l-1),i}function u2(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=bc(0,i,l):i=bc(-1,i,l-1),i}function RB(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 MB(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 PB(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)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 y=0;y0?0:-1,c.strides[y]>0?v:v-1];if(x&&c.strides[y]<=0)throw Error("only stride 1 allowed on non-range indexing.");f=f&&c.strides[y]===1;let C=!!(c.beginMask&1<=v)throw Error(`slice index ${c.begin[y]} of dimension ${y} out of bounds.`)}else c.begin[y]=xI(c.begin[y],0,c.strides[y],v,I,T),c.end[y]=xI(c.end[y],1,c.strides[y],v,I,T);let D=c.strides[y]===1&&c.begin[y]===0&&c.end[y]===v;h=h&&D,m=m&&(y===0&&c.strides[y]===1||D)}else h=h&&c.strides[y]===1&&C,m=m&&(y===0&&c.strides[y]===1||C);let E,F=!1;if(c.beginValid&&c.endValid?(E=c.end[y]-c.begin[y],F=!0):x?(E=1,F=!0):C&&v>=0&&(c.strides[y]<0?E=-v:E=v,F=!0),F){let D;E===0||E<0!=c.strides[y]<0?D=0:D=Math.trunc(E/c.strides[y])+(E%c.strides[y]!==0?1:0),g.push(D)}else g.push(-1)}for(let y=0;y=0?b.push(g[x]):x===Bx&&b.push(1)}return{finalShapeSparse:b.filter((y,x)=>c.finalShapeGatherIndices[x]!==Bx),finalShape:b,isIdentity:h,sliceDim0:m,isSimpleSlice:f,begin:c.begin,end:c.end,strides:c.strides}}function OB(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 LB="4.7.0",c2=class{static sgd(e){return new Af(e)}static momentum(e,t,n=!1){return new Kw(e,t,n)}static rmsprop(e,t=.9,n=0,a=null,r=!1){return new Xw(e,t,n,a,r)}static adam(e=.001,t=.9,n=.999,a=null){return new qw(e,t,n,a)}static adadelta(e=.001,t=.95,n=null){return new Gw(e,t,n)}static adamax(e=.002,t=.9,n=.999,a=null,r=0){return new jw(e,t,n,a,r)}static adagrad(e,t=.1){return new Hw(e,t)}},Xs=c2,zB=(()=>typeof requestAnimationFrame!="undefined"?requestAnimationFrame:typeof setImmediate!="undefined"?setImmediate:e=>e())();function Qw(){return new Promise(e=>zB(()=>e()))}var N={};Ee(N,{ERF_A1:()=>e4,ERF_A2:()=>t4,ERF_A3:()=>n4,ERF_A4:()=>a4,ERF_A5:()=>r4,ERF_P:()=>QB,PARALLELIZE_THRESHOLD:()=>e0,RowPartitionType:()=>ar,SELU_SCALE:()=>h2,SELU_SCALEALPHA:()=>d2,applyActivation:()=>_f,assertAndGetBroadcastShape:()=>pt,assertAxesAreInnerMostDims:()=>BO,assertParamsConsistent:()=>WB,assignToTypedArray:()=>p4,axesAreInnerMostDims:()=>cw,calculateShapes:()=>wT,checkEinsumDimSizes:()=>g4,checkPadOnDimRoundingMode:()=>Cn,combineLocations:()=>VN,combineRaggedTensorToTensorShapes:()=>VB,complexWithEvenIndex:()=>o4,complexWithOddIndex:()=>l4,computeConv2DInfo:()=>ud,computeConv3DInfo:()=>$N,computeDefaultPad:()=>qv,computeDilation2DInfo:()=>zP,computeOptimalWindowSize:()=>qB,computeOutAndReduceShapes:()=>UN,computeOutShape:()=>BB,computePool2DInfo:()=>FN,computePool3DInfo:()=>WP,convertConv2DDataFormat:()=>DN,decodeEinsumEquation:()=>m4,eitherStridesOrDilationsAreOne:()=>mr,expandShapeToKeepDim:()=>fi,exponent:()=>d4,exponents:()=>c4,fromStringArrayToUint8:()=>O4,fromUint8ToStringArray:()=>P4,getAxesPermutation:()=>GN,getBroadcastDims:()=>zN,getComplexWithIndex:()=>u4,getEinsumComputePath:()=>b4,getEinsumPermutation:()=>f4,getFusedBiasGradient:()=>Cf,getFusedDyActivation:()=>Tf,getImageCenter:()=>jB,getInnerMostAxes:()=>VO,getPermuted:()=>XB,getRaggedRank:()=>GB,getReductionAxes:()=>Ut,getReshaped:()=>KB,getReshapedPermuted:()=>YB,getRowPartitionTypesHelper:()=>UB,getSliceBeginCoords:()=>ZB,getSliceSize:()=>JB,getSparseFillEmptyRowsIndicesDenseShapeMismatch:()=>w4,getSparseFillEmptyRowsNegativeIndexErrorMessage:()=>k4,getSparseFillEmptyRowsOutOfRangeIndexErrorMessage:()=>I4,getSparseReshapeEmptyTensorZeroOutputDimErrorMessage:()=>T4,getSparseReshapeInputOutputMismatchErrorMessage:()=>_4,getSparseReshapeInputOutputMultipleErrorMessage:()=>C4,getSparseReshapeMultipleNegativeOneOutputDimErrorMessage:()=>S4,getSparseReshapeNegativeOutputDimErrorMessage:()=>N4,getSparseSegmentReductionIndicesOutOfRangeErrorMessage:()=>$4,getSparseSegmentReductionNegativeSegmentIdsErrorMessage:()=>E4,getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage:()=>A4,getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage:()=>F4,getUndoAxesPermutation:()=>dw,isIdentityPermutation:()=>y4,log:()=>YR,mergeRealAndImagArrays:()=>s4,prepareAndValidate:()=>t2,prepareSplitSize:()=>v4,segment_util:()=>m2,shouldFuse:()=>Ef,slice_util:()=>Xt,splitRealAndImagArrays:()=>i4,stridesOrDilationsArePositive:()=>hi,tupleValuesAreOne:()=>ms,upcastType:()=>ba,validateDefaultValueShape:()=>HB,validateInput:()=>kf,validateUpdateShape:()=>Rw,warn:()=>as});function WB(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 BB(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 UB(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 GB(e){return e.length===0?0:e[0]===ar.FIRST_DIM_SIZE?e.length-1:e.length}function HB(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 e0=30;function qB(e){return e<=e0?e:sm(e,Math.floor(Math.sqrt(e)))}function jB(e,t,n){let a=n*(typeof e=="number"?e:e[0]),r=t*(typeof e=="number"?e:e[1]);return[a,r]}function KB(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 YB(e,t,n,a=!0){let r=[];a?r.push(e[0]/n):r.push(e[0]*n);for(let s=1;s/g,vI=",",wI="...";function m4(e,t){e=e.replace(/\s/g,"");let n=(e.length-e.replace(h4,"").length)/fx.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 ("${fx}").`);let[a,r]=e.split(fx);A(a.indexOf(wI)===-1,()=>`The ellipsis notation ("${wI}") is not supported yet.`);let s=a.split(vI),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 g4(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 b4(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 x4(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 w4(e){return`Received SparseTensor with denseShape[0] = 0 but + indices.shape[0] = ${e}`}function k4(e,t){return`indices(${e}, 0) is invalid: ${t} < 0`}function I4(e,t,n){return`indices(${e}, 0) is invalid: ${t} >= ${n}`}function S4(e,t){return`only one output dimension may be -1, not both ${e} and ${t}`}function N4(e,t){return`size ${e} must be non-negative, not ${t}`}function T4(){return"reshape cannot infer the missing input size for an empty tensor unless all specified input sizes are non-zero"}function C4(e,t){let n=bt(e),a=bt(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 _4(e,t){let n=bt(e),a=bt(t);return`Input to reshape is a tensor with ${n} dense values, but the requested shape has ${a}. inputShape=${e} outputShape=${t}`}function E4(){return"segment ids must be >= 0"}function A4(){return"segment ids are not increasing"}function F4(e,t){return`Segment id ${e} out of range [0, ${t}), possibly because segmentIds input is not sorted.`}function $4(e,t,n){return`Bad: indices[${e}] == ${t} out of range [0, ${n})`}var m2={};Ee(m2,{collectGatherOpShapeInfo:()=>M4,computeOutShape:()=>R4,segOpComputeOptimalWindowSize:()=>D4});function D4(e,t){let n=!1,a;for(e<=e0?(a=e,n=!0):a=sm(e,Math.floor(Math.sqrt(e)));!n;)a>t||a===e?n=!0:a=sm(e,a+1);return a}function R4(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(num(t))}catch(t){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${t}`)}}function O4(e){return e.map(t=>id(t))}var gr={};Ee(gr,{nonMaxSuppressionV3Impl:()=>MT,nonMaxSuppressionV4Impl:()=>PT,nonMaxSuppressionV5Impl:()=>OT,whereImpl:()=>ST});tB();var f2={kernelName:lu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,jo(se(n,"float32"),-1))}}},L4={kernelName:Ti,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=ut(se(n,"float32")),r=mn(pe(ve(1),a));return yt(he(e,r))}}}},z4={kernelName:Ci,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=mn(pe(ut(se(n,"float32")),1));return he(e,a)}}}},W4={kernelName:Is,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=pt(n.shape,a.shape);return{a:()=>{let s=e,i=Ut(n.shape,r);return i.length>0&&(s=fe(s,i)),W(s,n.shape)},b:()=>{let s=e,i=Ut(a.shape,r);return i.length>0&&(s=fe(s,i)),W(s,a.shape)}}}},B4={kernelName:_i,saveAllInputs:!0,gradFunc:(e,t)=>{let n={};return t.forEach((a,r)=>{n[r]=()=>e.clone()}),n}},V4={kernelName:cu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>qe(n)}}},U4={kernelName:du,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>qe(n)}}},G4={kernelName:Ei,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,mn(pe(ve(1),ut(se(n,"float32")))))}}},H4={kernelName:Ai,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=mn(X(ve(1),ut(se(n,"float32"))));return he(e,a)}}}},q4={kernelName:Di,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=pt(n.shape,a.shape);return{a:()=>{let s=X(ut(n),ut(a)),i=z(e,he(a,s)),o=Ut(n.shape,r);return o.length>0&&(i=fe(i,o)),W(i,n.shape)},b:()=>{let s=X(ut(n),ut(a)),i=yt(z(e,he(n,s))),o=Ut(a.shape,r);return o.length>0&&(i=fe(i,o)),W(i,a.shape)}}}},j4={kernelName:Fi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,X(ut(se(n,"float32")),1))}}},K4={kernelName:$i,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,pe(ve(1),ut(se(n,"float32"))))}}};function X4(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}.`),Cn("avgPool3dGrad",r,s);let d={dy:l,input:u},c={filterSize:n,strides:a,pad:r,dimRoundingMode:s},h=O.runKernel(Lc,d,c);return p?W(h,[h.shape[1],h.shape[2],h.shape[3],h.shape[4]]):h}var Y4=L({avgPool3dGrad_:X4}),Z4={kernelName:hu,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{filterSize:r,strides:s,pad:i,dimRoundingMode:o}=n;return{x:()=>Y4(e,a,r,s,i,o)}}};function J4(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(Oc,p,d);return u?W(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var Q4=L({avgPoolGrad_:J4}),eV={kernelName:Ri,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{filterSize:r,strides:s,pad:i}=n;return{x:()=>Q4(e,a,r,s,i)}}},tV={kernelName:Mi,inputsToSave:["a","b"],gradFunc:(e,t,n)=>{let[a,r]=t,{transposeA:s,transposeB:i}=n;return!s&&!i?{a:()=>$e(e,r,!1,!0),b:()=>$e(a,e,!0,!1)}:!s&&i?{a:()=>$e(e,r,!1,!1),b:()=>$e(e,a,!0,!1)}:s&&!i?{a:()=>$e(r,e,!1,!0),b:()=>$e(a,e,!1,!1)}:{a:()=>$e(r,e,!0,!0),b:()=>$e(e,a,!0,!0)}}},nV={kernelName:mu,gradFunc:(e,t,n)=>{let{blockShape:a,crops:r}=n;return{x:()=>bd(e,a,r)}}},aV={kernelName:aN,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)}}},rV={kernelName:Pi,gradFunc:e=>({x:()=>e.clone()})},sV={kernelName:Oi,gradFunc:e=>({x:()=>qe(e)})},iV={kernelName:Ss,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{clipValueMin:r,clipValueMax:s}=n;return{x:()=>rn(Da(Or(a,r),As(a,s)),e,qe(e))}}},oV={kernelName:Wc,inputsToSave:["x"],gradFunc:f2.gradFunc},lV={kernelName:bu,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)}},uV={kernelName:Li,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,{dilations:s,strides:i,pad:o,dataFormat:l}=n;return A(ms(s),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`),{x:()=>aw(a.shape,e,r,i,o,l),filter:()=>Bw(a,e,r.shape,i,o,l)}}},pV={kernelName:zi,inputsToSave:["dy","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,{strides:s,pad:i,dataFormat:o,dimRoundingMode:l}=n;return{dy:()=>Rt(e,r,s,i,o,1,l),filter:()=>Bw(e,a,r.shape,s,i,o,l)}}};function cV(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(yu,o,l)}var dV=L({conv3DBackpropFilter_:cV}),hV={kernelName:Wi,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let{dilations:a,strides:r,pad:s}=n;A(ms(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:()=>ON(i.shape,e,o,r,s),filter:()=>dV(i,e,o.shape,r,s)}}},mV={kernelName:Bi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(yt(gf(se(n,"float32"))),e)}}},fV={kernelName:Vi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(bf(se(n,"float32")),e)}}},gV={kernelName:Ui,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r,exclusive:s,reverse:i}=n;return{x:()=>{let o=GN([r],a.rank),l=af(e,r,s,!i);return o!=null&&(l=De(l,o)),l}}}},bV={kernelName:Gi,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let{dilations:a,strides:r,pad:s,dimRoundingMode:i}=n,o=a==null?[1,1]:a;A(ms(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(mr(r,o),()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${r} and dilations '${o}'.`),Cn("depthwiseConv2d",s,i),{x:()=>$T(l.shape,e,u,r,s,o,i),filter:()=>FT(l,e,u.shape,r,s,o,i)}}},yV={kernelName:Hi,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(Vl,s,n),filter:()=>O.runKernel(Ul,i,n)}}},xV={kernelName:ji,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t,a={dy:e,y:n};return{x:()=>O.runKernel(Iu,a)}}},vV={kernelName:Ki,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t,a=z(yn(yt(ut(n))),2/Math.sqrt(Math.PI));return{x:()=>z(e,a)}}},wV={kernelName:Xi,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,n)}}},kV={kernelName:Nu,inputsToSave:["input"],gradFunc:(e,t)=>{let[n]=t;return{input:()=>W(e,n.shape)}}},IV={kernelName:Yi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,yn(n))}}},SV={kernelName:Zi,gradFunc:e=>({x:()=>qe(e)})},NV={kernelName:Ji,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=pt(n.shape,a.shape);return{a:()=>{let s=he(e,se(a,"float32")),i=Ut(n.shape,r);return i.length>0?W(fe(s,i),n.shape):s},b:()=>{let s=z(e,se(n,"float32")),i=Ut(a.shape,r);i.length>0&&(s=W(fe(s,i),a.shape));let o=ut(a);return yt(he(s,se(o,"float32")))}}}},TV={kernelName:Qi,inputsToSave:["x","mean","variance","scale"],gradFunc:(e,t,n)=>{let{varianceEpsilon:a}=n,[r,s,i,o]=t,l=o==null?ve(1):o,u=Ut(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,ve(-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)}}}},CV={kernelName:Cu,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=kI(0,p),m=kI(p+1,p+1+c),f=II([u,[l],d]),g=W(e,f),b=W(r,[l]),y=II([[p],h,m]),x=De(g,y),v=Sf(x,b,a.shape[i]),I=dw(y);return v=De(v,I),v},indices:()=>r}}};function kI(e,t){let n=[];for(let a=e;a{let[n,a]=t;return{a:()=>qe(n),b:()=>qe(a)}}},EV={kernelName:to,gradFunc:e=>({x:()=>se(e,"float32")})},AV={kernelName:no,gradFunc:e=>({x:()=>qe(e)})},FV={kernelName:ao,gradFunc:e=>({x:()=>qe(e)})},$V={kernelName:ro,gradFunc:e=>({x:()=>qe(e)})},DV={kernelName:so,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{alpha:r}=n,s=_n(a,0);return{x:()=>rn(s,e,z(e,r))}}},RV={kernelName:oo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,X(n,1))}}},MV={kernelName:io,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,se(n,"float32"))}}},PV={kernelName:sN,inputsToSave:[],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n;return{logits:()=>{let s=yn(a);return pe(e,z(fe(e,r,!0),s))}}}};function OV(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(Pu,o,l)}var LV=L({localResponseNormalizationBackprop_:OV}),zV={kernelName:lo,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{depthRadius:s,bias:i,alpha:o,beta:l}=n;return{x:()=>LV(a,r,e,s,i,o,l)}}};function g2(e,t,n,a){return t.rankz(e,se(ta(n,t),e.dtype))}}var SI={kernelName:uo,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=g2(e,i,s,o);return{x:()=>l.x()}}},WV={kernelName:po,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t;return{a:()=>z(e,se(Or(n,a),"float32")),b:()=>z(e,se(ql(n,a),"float32"))}}};function BV(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}.`),Cn("maxPool3dGrad",s,i);let m={dy:p,input:d,output:c},f={filterSize:a,strides:r,pad:s,dimRoundingMode:i},g=O.runKernel(Hc,m,f);return h?W(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}var VV=L({maxPool3dGrad_:BV}),UV={kernelName:Ou,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=n;return{x:()=>VV(e,a,r,s,i,o,l)}}};function GV(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}.`),Cn("maxPoolGrad",s,i);let p={dy:o,input:l,output:u},d={filterSize:a,strides:r,pad:s,dimRoundingMode:i};return O.runKernel(Gc,p,d)}var HV=L({maxPoolGrad_:GV}),qV={kernelName:co,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{filterSize:s,strides:i,pad:o}=n;return{x:()=>HV(e,a,r,s,i,o)}}},jV={kernelName:ho,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n,s=Ra(r,a.shape),i=UN(a.shape,s)[1],o=bt(i);return{x:()=>{let l=a.shape.slice();s.forEach(p=>{l[p]=1});let u=W(e,l);return he(z(u,Qn(a.shape,"float32")),o)}}}},KV={kernelName:mo,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let a=n,{axis:r}=a,[s,i]=t,o=Ra(r,s.shape),l=g2(e,i,s,o);return{x:()=>l.x()}}},XV={kernelName:fo,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t;return{a:()=>z(e,se(As(n,a),"float32")),b:()=>z(e,se(_n(n,a),"float32"))}}},YV={kernelName:go,inputsToSave:["x"],gradFunc:(e,t,n)=>{let a=t[0],{paddings:r}=n,s=r.map(i=>i[0]);return{x:()=>Ue(e,s,a.shape)}}},ZV={kernelName:bo,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=pt(n.shape,a.shape);return{a:()=>{let s=Ut(n.shape,r);return s.length>0?W(fe(e,s),n.shape):e},b:()=>{let s=z(e,yt(hp(he(n,a)))),i=Ut(a.shape,r);return i.length>0?W(fe(s,i),a.shape):s}}}},JV={kernelName:yo,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=pt(n.shape,a.shape);return{a:()=>{let s=z(e,se(a,"float32")),i=Ut(n.shape,r);return i.length>0?W(fe(s,i),n.shape):s},b:()=>{let s=z(e,se(n,"float32")),i=Ut(a.shape,r);return i.length>0?W(fe(s,i),a.shape):s}}}},QV={kernelName:zu,gradFunc:e=>({x:()=>yt(e)})},eU={kernelName:xo,inputsToSave:["indices"],gradFunc:(e,t)=>{let n=t[0];return{indices:()=>Nt(n.shape,"float32")}}},tU={kernelName:Gu,gradFunc:e=>({x:()=>qe(e)})},nU={kernelName:Hu,saveAllInputs:!0,gradFunc:(e,t,n)=>{let{axis:a}=n;return ct(e,a).map(r=>()=>r)}},NI={kernelName:vo,inputsToSave:["x"],gradFunc:(e,t,n)=>{let a=t[0],{paddings:r}=n,s=r.map(i=>i[0]);return{x:()=>Ue(e,s,a.shape)}}},aU={kernelName:wo,inputsToSave:["a","b"],outputsToSave:[!0],gradFunc:(e,t)=>{let[n,a,r]=t,s=n,i=a,o=pt(s.shape,i.shape);return{a:()=>{let l=se(i,"float32"),u=z(e,z(l,Mr(s,pe(l,ve(1))))),p=Ut(s.shape,o);return p.length>0&&(u=fe(u,p)),W(u,s.shape)},b:()=>{let l=_n(s,0),u=rn(l,na(s),qe(s)),p=z(e,z(r,u)),d=Ut(i.shape,o);return d.length>0&&(p=fe(p,d)),W(p,i.shape)}}}},rU={kernelName:ko,inputsToSave:["x","alpha"],gradFunc:(e,t)=>{let[n,a]=t,r=_n(n,0);return{x:()=>rn(r,e,z(e,a)),alpha:()=>{let s=rn(r,qe(e),z(e,n)),i=Ut(a.shape,e.shape);return i.length>0&&(s=fe(s,i)),W(s,a.shape)}}}};function sU(e,t,n){let a=e.shape.slice();a[n]=1;let r=W(t,a),s=Nc(e,n,!0,!1),i=Nc(e,n,!0,!0),o=z(s,i);return z(r,o)}function iU(e,t,n){let a=e.shape.length,r=a-n.length,s=N.getAxesPermutation(n,a),i=e;s!=null&&(i=De(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=sU(u,t,r);if(p=p.reshape(i.shape),s!=null){let d=N.getUndoAxesPermutation(s);p=De(p,d)}return p}var oU={kernelName:Io,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:()=>iU(a,e,s)}}},lU={kernelName:qi,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=pt(n.shape,a.shape);return{a:()=>{let s=he(e,se(a,"float32")),i=Ut(n.shape,r);return i.length>0?W(fe(s,i),n.shape):s},b:()=>{let s=z(e,se(n,"float32")),i=Ut(a.shape,r);i.length>0&&(s=W(fe(s,i),a.shape));let o=ut(a);return yt(he(s,se(o,"float32")))}}}},uU={kernelName:So,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,yt(ut(n)))}}},pU={kernelName:_o,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t,a=z(As(n,6),jo(n));return{x:()=>z(e,se(a,"float32"))}}},cU={kernelName:No,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,se(jo(n),"float32"))}}},dU={kernelName:qu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>W(e,n.shape)}}},hU={kernelName:Co,inputsToSave:["images"],gradFunc:(e,t,n)=>{let[a]=t,r={dy:e,images:a};return{images:()=>O.runKernel(Ku,r,n)}}},mU={kernelName:To,inputsToSave:["images"],gradFunc:(e,t,n)=>{let[a]=t,r={dy:e,images:a};return{images:()=>O.runKernel(ju,r,n)}}},fU={kernelName:Eo,gradFunc:(e,t,n)=>{let{dims:a}=n,r=Ra(a,e.shape);return{x:()=>ya(e,r)}}},gU={kernelName:Ao,gradFunc:e=>({x:()=>qe(e)})},bU={kernelName:Fo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>yt(he(e,z(Mr(n,1.5),2)))}}},yU={kernelName:Ju,inputsToSave:["condition"],gradFunc:(e,t)=>{let[n]=t;return{condition:()=>se(qe(n),"float32"),t:()=>z(e,se(n,e.dtype)),e:()=>z(e,se(fd(n),e.dtype))}}},xU={kernelName:$o,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=_n(n,ve(0)),r=ve(d2),s=ve(h2),i=z(e,s),o=z(z(e,r),yn(se(n,"float32")));return rn(a,i,o)}}}},vU={kernelName:Po,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,z(n,pe(ve(1),n)))}}},wU={kernelName:Mo,gradFunc:e=>({x:()=>qe(e)})},kU={kernelName:Do,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(cd(se(n,"float32")),e)}}},IU={kernelName:Ro,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(nf(se(n,"float32")),e)}}},SU={kernelName:Qu,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{begin:r,size:s}=n,i=a.shape,[o,l]=p2(a,r,s),u=[];for(let p=0;pva(e,u)}}},NU={kernelName:Wo,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))}}},TU={kernelName:Oo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,fa(n))}}},TI={kernelName:ep,gradFunc:(e,t,n)=>{let{blockShape:a,paddings:r}=n;return{x:()=>pd(e,a,r)}}},CI={kernelName:tp,gradFunc:(e,t,n)=>{let{axis:a}=n;return{x:()=>et(e,a)}}},CU={kernelName:Lo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,z(mn(se(n,"float32")),2))}}},_U={kernelName:Zc,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,z(se(n,"float32"),2))}}},EU={kernelName:Bo,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ve(2);return{a:()=>z(e,z(r,pe(n,a))),b:()=>z(e,z(r,pe(a,n)))}}},AU={kernelName:Ts,gradFunc:e=>({x:()=>qe(e)})},FU={kernelName:Vo,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=pt(n.shape,a.shape);return{a:()=>{let s=e,i=Ut(n.shape,r);return i.length>0&&(s=fe(s,i)),W(s,n.shape)},b:()=>{let s=e,i=Ut(a.shape,r);return i.length>0&&(s=fe(s,i)),W(yt(s),a.shape)}}}},$U={kernelName:zo,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,Qn(a.shape,"float32"));return{x:()=>o}}},DU={kernelName:Uo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,ut(cd(n)))}}},RU={kernelName:Go,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(pe(ve(1),ut(n)),e)}}},MU={kernelName:Ns,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=dw(r);return{x:()=>De(e,s)}}},OU={kernelName:op,gradFunc:(e,t,n)=>{let a=n,{axis:r}=a;return{value:()=>Dt(e,r)}}},LU={kernelName:ad,inputsToSave:["segmentIds"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>zU(e,n)}}};function zU(e,t){let n=fr(t,qe(t)),a=mp(e,n),r=Or(t,ve(0,"int32")),s=a.rank-r.rank;for(let o=0;o({x:()=>qe(e)})},BU=[f2,L4,z4,W4,B4,V4,U4,G4,H4,q4,j4,K4,Z4,eV,tV,nV,aV,rV,sV,iV,oV,lV,pV,uV,hV,mV,fV,gV,bV,yV,lU,xV,vV,wV,kV,IV,NV,SV,TV,CV,_V,EV,AV,FV,$V,DV,RV,MV,PV,zV,SI,SI,WV,UV,qV,jV,KV,XV,YV,ZV,JV,QV,eU,tU,nU,NI,NI,aU,rU,oU,uU,pU,cU,dU,hU,mU,fU,gU,bU,yU,xU,vU,wU,kU,IU,SU,NU,TU,TI,TI,CI,CI,CU,EU,_U,AU,FU,$U,DU,RU,MU,PU,OU,LU,WU];for(let e of BU)iN(e);Q().prototype.abs=function(){return this.throwIfDisposed(),Wt(this)};Q().prototype.acos=function(){return this.throwIfDisposed(),Lv(this)};Q().prototype.acosh=function(){return this.throwIfDisposed(),zv(this)};Q().prototype.add=function(e){return this.throwIfDisposed(),X(this,e)};Q().prototype.all=function(e,t){return this.throwIfDisposed(),Qm(this,e,t)};Q().prototype.any=function(e,t){return this.throwIfDisposed(),kc(this,e,t)};Q().prototype.argMax=function(e){return this.throwIfDisposed(),di(this,e)};Q().prototype.argMin=function(e){return this.throwIfDisposed(),Wv(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(),se(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(),Bv(this)};Q().prototype.asinh=function(){return this.throwIfDisposed(),Vv(this)};Q().prototype.atan=function(){return this.throwIfDisposed(),Uv(this)};Q().prototype.atan2=function(e){return this.throwIfDisposed(),Gv(this,e)};Q().prototype.atanh=function(){return this.throwIfDisposed(),Hv(this)};Q().prototype.avgPool=function(e,t,n,a){return this.throwIfDisposed(),xa(this,e,t,n,a)};Q().prototype.batchToSpaceND=function(e,t){return this.throwIfDisposed(),pd(this,e,t)};Q().prototype.batchNorm=function(e,t,n,a,r){return this.throwIfDisposed(),_s(this,e,t,n,a,r)};Q().prototype.broadcastTo=function(e){return this.throwIfDisposed(),ri(this,e)};Q().prototype.cast=function(e){return this.throwIfDisposed(),se(this,e)};Q().prototype.ceil=function(){return this.throwIfDisposed(),Jv(this)};Q().prototype.clipByValue=function(e,t){return this.throwIfDisposed(),sn(this,e,t)};Q().prototype.concat=function(e,t){return this.throwIfDisposed(),e instanceof Te&&(e=[e]),et([this,...e],t)};Q().prototype.conv1d=function(e,t,n,a,r,s){return this.throwIfDisposed(),ef(this,e,t,n,a,r,s)};Q().prototype.conv2dTranspose=function(e,t,n,a,r){return this.throwIfDisposed(),tf(this,e,t,n,a,r)};Q().prototype.conv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),Rt(this,e,t,n,a,r,s)};Q().prototype.cos=function(){return this.throwIfDisposed(),cd(this)};Q().prototype.cosh=function(){return this.throwIfDisposed(),nf(this)};Q().prototype.cumprod=function(e,t,n){return this.throwIfDisposed(),Nc(this,e,t,n)};Q().prototype.cumsum=function(e,t,n){return this.throwIfDisposed(),af(this,e,t,n)};Q().prototype.depthToSpace=function(e,t){return this.throwIfDisposed(),iw(this,e,t)};Q().prototype.depthwiseConv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),Es(this,e,t,n,a,r,s)};Q().prototype.dilation2d=function(e,t,n,a,r){return this.throwIfDisposed(),ow(this,e,t,n,a,r)};Q().prototype.divNoNan=function(e){return this.throwIfDisposed(),lw(this,e)};Q().prototype.div=function(e){return this.throwIfDisposed(),he(this,e)};Q().prototype.dot=function(e){return this.throwIfDisposed(),uw(this,e)};Q().prototype.elu=function(){return this.throwIfDisposed(),cp(this)};Q().prototype.equal=function(e){return this.throwIfDisposed(),ta(this,e)};Q().prototype.erf=function(){return this.throwIfDisposed(),pw(this)};Q().prototype.euclideanNorm=function(e,t){return this.throwIfDisposed(),hw(this,e,t)};Q().prototype.exp=function(){return this.throwIfDisposed(),yn(this)};Q().prototype.expandDims=function(e){return this.throwIfDisposed(),nn(this,e)};Q().prototype.expm1=function(){return this.throwIfDisposed(),mw(this)};Q().prototype.fft=function(){return this.throwIfDisposed(),vd(this)};Q().prototype.flatten=function(){return this.throwIfDisposed(),W(this,[this.size])};Q().prototype.floor=function(){return this.throwIfDisposed(),hp(this)};Q().prototype.floorDiv=function(e){return this.throwIfDisposed(),Jm(this,e)};Q().prototype.gather=function(e,t,n){return this.throwIfDisposed(),mp(this,e,t,n)};Q().prototype.greaterEqual=function(e){return this.throwIfDisposed(),Or(this,e)};Q().prototype.greater=function(e){return this.throwIfDisposed(),_n(this,e)};Q().prototype.ifft=function(){return this.throwIfDisposed(),Yl(this)};Q().prototype.irfft=function(){return this.throwIfDisposed(),xf(this)};Q().prototype.isFinite=function(){return this.throwIfDisposed(),fw(this)};Q().prototype.isInf=function(){return this.throwIfDisposed(),gw(this)};Q().prototype.isNaN=function(){return this.throwIfDisposed(),bw(this)};Q().prototype.leakyRelu=function(e){return this.throwIfDisposed(),hd(this,e)};Q().prototype.lessEqual=function(e){return this.throwIfDisposed(),As(this,e)};Q().prototype.less=function(e){return this.throwIfDisposed(),ql(this,e)};Q().prototype.localResponseNormalization=function(e,t,n,a){return this.throwIfDisposed(),yw(this,e,t,n,a)};Q().prototype.logSigmoid=function(){return this.throwIfDisposed(),xw(this)};Q().prototype.logSoftmax=function(e){return this.throwIfDisposed(),of(this,e)};Q().prototype.logSumExp=function(e,t){return this.throwIfDisposed(),lf(this,e,t)};Q().prototype.log=function(){return this.throwIfDisposed(),na(this)};Q().prototype.log1p=function(){return this.throwIfDisposed(),md(this)};Q().prototype.logicalAnd=function(e){return this.throwIfDisposed(),Da(this,e)};Q().prototype.logicalNot=function(){return this.throwIfDisposed(),fd(this)};Q().prototype.logicalOr=function(e){return this.throwIfDisposed(),uf(this,e)};Q().prototype.logicalXor=function(e){return this.throwIfDisposed(),vw(this,e)};Q().prototype.matMul=function(e,t,n){return this.throwIfDisposed(),$e(this,e,t,n)};Q().prototype.maxPool=function(e,t,n,a){return this.throwIfDisposed(),Mt(this,e,t,n,a)};Q().prototype.max=function(e,t){return this.throwIfDisposed(),ga(this,e,t)};Q().prototype.maximum=function(e){return this.throwIfDisposed(),fr(this,e)};Q().prototype.mean=function(e,t){return this.throwIfDisposed(),Et(this,e,t)};Q().prototype.min=function(e,t){return this.throwIfDisposed(),Hl(this,e,t)};Q().prototype.minimum=function(e){return this.throwIfDisposed(),fs(this,e)};Q().prototype.mirrorPad=function(e,t){return this.throwIfDisposed(),kw(this,e,t)};Q().prototype.mod=function(e){return this.throwIfDisposed(),Iw(this,e)};Q().prototype.mul=function(e){return this.throwIfDisposed(),z(this,e)};Q().prototype.neg=function(){return this.throwIfDisposed(),yt(this)};Q().prototype.norm=function(e,t,n){return this.throwIfDisposed(),dp(this,e,t,n)};Q().prototype.notEqual=function(e){return this.throwIfDisposed(),gi(this,e)};Q().prototype.oneHot=function(e,t=1,n=0){return this.throwIfDisposed(),jl(this,e,t,n)};Q().prototype.onesLike=function(){return this.throwIfDisposed(),aa(this)};Q().prototype.pad=function(e,t){return this.throwIfDisposed(),va(this,e,t)};Q().prototype.pool=function(e,t,n,a,r,s){return this.throwIfDisposed(),Sw(this,e,t,n,a,r,s)};Q().prototype.pow=function(e){return this.throwIfDisposed(),Mr(this,e)};Q().prototype.prelu=function(e){return this.throwIfDisposed(),yd(this,e)};Q().prototype.prod=function(e,t){return this.throwIfDisposed(),Nw(this,e,t)};Q().prototype.reciprocal=function(){return this.throwIfDisposed(),Aw(this)};Q().prototype.relu=function(){return this.throwIfDisposed(),Ke(this)};Q().prototype.relu6=function(){return this.throwIfDisposed(),df(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(),LT(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(),wd(this)};Q().prototype.round=function(){return this.throwIfDisposed(),hf(this)};Q().prototype.rsqrt=function(){return this.throwIfDisposed(),mf(this)};Q().prototype.selu=function(){return this.throwIfDisposed(),ff(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(),fa(this)};Q().prototype.sign=function(){return this.throwIfDisposed(),Fw(this)};Q().prototype.sin=function(){return this.throwIfDisposed(),gf(this)};Q().prototype.sinh=function(){return this.throwIfDisposed(),bf(this)};Q().prototype.slice=function(e,t){return this.throwIfDisposed(),Ue(this,e,t)};Q().prototype.softmax=function(e){return this.throwIfDisposed(),Xa(this,e)};Q().prototype.softplus=function(){return this.throwIfDisposed(),Ho(this)};Q().prototype.spaceToBatchND=function(e,t){return this.throwIfDisposed(),bd(this,e,t)};Q().prototype.split=function(e,t){return this.throwIfDisposed(),zn(this,e,t)};Q().prototype.sqrt=function(){return this.throwIfDisposed(),mn(this)};Q().prototype.square=function(){return this.throwIfDisposed(),ut(this)};Q().prototype.squaredDifference=function(e){return this.throwIfDisposed(),vf(this,e)};Q().prototype.squeeze=function(e){return this.throwIfDisposed(),Ds(this,e)};Q().prototype.stack=function(e,t){this.throwIfDisposed();let n=e instanceof Te?[this,e]:[this,...e];return Dt(n,t)};Q().prototype.step=function(e){return this.throwIfDisposed(),jo(this,e)};Q().prototype.stridedSlice=function(e,t,n,a,r,s,i,o){return this.throwIfDisposed(),$w(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(),Dw(this)};Q().prototype.tanh=function(){return this.throwIfDisposed(),mi(this)};Q().prototype.tile=function(e){return this.throwIfDisposed(),Ln(this,e)};Q().prototype.toBool=function(){return this.throwIfDisposed(),se(this,"bool")};Q().prototype.toFloat=function(){return this.throwIfDisposed(),se(this,"float32")};Q().prototype.toInt=function(){return this.throwIfDisposed(),se(this,"int32")};Q().prototype.topk=function(e,t){return this.throwIfDisposed(),Mw(this,e,t)};Q().prototype.transpose=function(e){return this.throwIfDisposed(),De(this,e)};Q().prototype.unique=function(e){return this.throwIfDisposed(),Pw(this,e)};Q().prototype.unsortedSegmentSum=function(e,t){return this.throwIfDisposed(),Sf(this,e,t)};Q().prototype.unstack=function(e){return this.throwIfDisposed(),ct(this,e)};Q().prototype.where=function(e,t){return this.throwIfDisposed(),rn(e,this,t)};Q().prototype.zerosLike=function(){return this.throwIfDisposed(),qe(this)};var Cr=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Cr.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)}},Le=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Le.prototype)}},b2=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,b2.prototype)}},y2=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 t0(e){if(e==null)return null;let t={};return t.className=e.getClassName(),t.config=e.getConfig(),t}function Vx(e){if(!(e==null||typeof e!="object"))if(Array.isArray(e))e.forEach(t=>Vx(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:Vx(a))}}}function Id(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 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(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];Rx(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 CU(e,t){return et?1:0}function Fh(e,t){return-1*CU(e,t)}function ls(e){if(e==null)return e;let t=[];for(let n of e)t.indexOf(n)===-1&&t.push(n);return t}function _U(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 Kw(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 nn(e,t){Array.isArray(e)?(v.assert(e.length>0,()=>`${t} is unexpectedly an empty array.`),e.forEach((n,a)=>nn(n,`element ${a+1} of ${t}`))):v.assert(Number.isInteger(e)&&e>0,()=>`Expected ${t} to be a positive integer, but got ${u2(e)}.`)}function u2(e){return e===null?"null":Array.isArray(e)?"["+e.map(t=>u2(t)).join(",")+"]":typeof e=="string"?`"${e}"`:`${e}`}function EU(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 _l.set(n,1),n}else return e}var LU=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function f2(e){return!!e.match(LU)}function zU(e){return e===parseInt(e.toString(),10)}function us(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 qa(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=yd(e,1);return Mx(n,[1,t,1])})}function BU(e){let t=[us(e.shape)];return W(e,t)}function VU(e){if(e.rank<=1)throw new V(`batchFlatten requires a minimum rank of 2. Got rank: ${e.rank}.`);let t=[e.shape[0],us(e.shape,1)];return W(e,t)}function si(e,t,n){return P(()=>{switch(e.rank){case 1:return hd(e,t,n);case 2:return bf(e,[t,0],[n,e.shape[1]]);case 3:return Bo(e,[t,0,0],[n,e.shape[1],e.shape[2]]);case 4:return Gl(e,[t,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3]]);case 5:return Ue(e,[t,0,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3],e.shape[4]]);case 6:return Ue(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 ux(e,t,n){return P(()=>{switch(e.rank){case 1:return hd(e,t,n);case 2:return bf(e,[0,t],[e.shape[0],n]);case 3:return Bo(e,[0,0,t],[e.shape[0],e.shape[1],n]);case 4:return Gl(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 Dh(e,t,n,a){return P(()=>{switch(e.rank){case 1:return hd(e,t,n);case 2:switch(a){case 1:return si(e,t,n);case 2:return ux(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 si(e,t,n);case 2:return Bo(e,[0,t,0],[e.shape[0],n,e.shape[2]]);case 3:return ux(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 si(e,t,n);case 2:return Gl(e,[0,t,0,0],[e.shape[0],n,e.shape[2],e.shape[3]]);case 3:return Gl(e,[0,0,t,0],[e.shape[0],e.shape[1],n,e.shape[3]]);case 4:return ux(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 Xw(e,t=-1){let n;return t<0&&(n=e[0].rank,n!==0?t=n:t=0),t===e[0].rank&&(t=-1),Qe(e,t)}function wI(e,t){switch(e.rank){case 1:return Hv([e,t]);case 2:return qv([e,t],0);case 3:return jv([e,t],0);case 4:return Kv([e,t],0);default:throw new V(`concatAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}}function Mx(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 pf(e,t,n,a,r)}function ur(e,t,n,a){if(e.rank<2||t.rank<2)throw new Le(`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 Le(`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 ql.matMul({a:e,b:t,transposeA:!1,transposeB:!1,bias:a?Px(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(De(t,p),[l,-1]);let d=[...r,...u],c=!1,h=!1;return W(ql.matMul({a:e,b:t,transposeA:c,transposeB:h,bias:a?Px(e.rank,a,ja()):null,activation:n}),d)}}function g2(e,t,n){return P(()=>(Array.isArray(t)?t=je(t,"int32"):t=ie(t,"int32"),dp(e,t,n)))}function xd(e){return z(e,e)}function Px(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=ja()),Pt(n),X(e,Px(e.rank,t,n))))}function UU(e,t=1){if(t!==1)throw new Le(`Support for alpha values other than 1 (${t}) is not implemented yet.`);return up(e)}function GU(e){return P(()=>he(e,X(Wt(e),1)))}function b2(e,t,n,a){return P(()=>Fw(e,t,n,a))}function HU(e){return P(()=>{let t=X(.5,z(.2,e));return rn(t,0,1)})}function vd(e,t,n=!1){return n?e():t()}var qU=["fanIn","fanOut","fanAvg"],jU=["normal","uniform","truncatedNormal"];function KU(e){Go(qU,"FanMode",e)}function XU(e){Go(jU,"Distribution",e)}var Pa=class extends ne.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}},Yw=class extends Pa{apply(e,t){return Nt(e,t)}};Yw.className="Zeros";ne.registerClass(Yw);var $f=class extends Pa{apply(e,t){return Qn(e,t)}};$f.className="Ones";ne.registerClass($f);var Zw=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(ve(this.value),Qn(e,t)))}getConfig(){return{value:this.value}}};Zw.className="Constant";ne.registerClass(Zw);var Jw=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 As(e,this.minval,this.maxval,t,this.seed)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}};Jw.className="RandomUniform";ne.registerClass(Jw);var Qw=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 Le(`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}}};Qw.className="RandomNormal";ne.registerClass(Qw);var e0=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 Le(`truncatedNormal does not support dType ${t}.`);return kf(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};e0.className="TruncatedNormal";ne.registerClass(e0);var t0=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,af(e[0]))})}getConfig(){return{gain:this.gain}}};t0.className="Identity";ne.registerClass(t0);function YU(e,t="channelsLast"){let n,a;if(Pt(t),e.length===2)n=e[0],a=e[1];else if([3,4,5].indexOf(e.length)!==-1){if(t==="channelsFirst"){let r=us(e,2);n=e[1]*r,a=e[0]*r}else if(t==="channelsLast"){let r=us(e,0,e.length-2);n=e[e.length-2]*r,a=e[e.length-1]*r}}else{let r=us(e);n=Math.sqrt(r),a=Math.sqrt(r)}return[n,a]}var Vn=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,KU(this.mode),this.distribution=e.distribution==null?"normal":e.distribution,XU(this.distribution),this.seed=e.seed}apply(e,t){let n=YU(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 Le(`${this.getClassName()} does not support dType ${t}.`);return kf(e,0,i,t,this.seed)}else{let i=Math.sqrt(3*s);return As(e,-i,i,t,this.seed)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}};Vn.className="VarianceScaling";ne.registerClass(Vn);var Df=class extends Vn{constructor(e){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Vn.className}};Df.className="GlorotUniform";ne.registerClass(Df);var Rf=class extends Vn{constructor(e){super({scale:1,mode:"fanAvg",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Vn.className}};Rf.className="GlorotNormal";ne.registerClass(Rf);var Mf=class extends Vn{constructor(e){super({scale:2,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Vn.className}};Mf.className="HeNormal";ne.registerClass(Mf);var Pf=class extends Vn{constructor(e){super({scale:2,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Vn.className}};Pf.className="HeUniform";ne.registerClass(Pf);var Of=class extends Vn{constructor(e){super({scale:1,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Vn.className}};Of.className="LeCunNormal";ne.registerClass(Of);var Lf=class extends Vn{constructor(e){super({scale:1,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Vn.className}};Lf.className="LeCunUniform";ne.registerClass(Lf);var n0=class extends Pa{constructor(e){super(),this.DEFAULT_GAIN=1,this.ELEMENTS_WARN_SLOW=2e3,this.gain=e.gain==null?this.DEFAULT_GAIN:e.gain,this.seed=e.seed}apply(e,t){return P(()=>{if(e.length<2)throw new Le("Shape must be at least 2D.");if(t!=="int32"&&t!=="float32"&&t!==void 0)throw new TypeError(`Unsupported data type ${t}.`);t=t;let n=v.sizeFromShape(e.slice(0,-1)),a=e[e.length-1],r=n*a;r>this.ELEMENTS_WARN_SLOW&&console.warn(`Orthogonal initializer is being called on a matrix with more than ${this.ELEMENTS_WARN_SLOW} (${r}) elements: Slowness may result.`);let s=[Math.max(a,n),Math.min(a,n)],i=Ff(s,0,1,t,this.seed),o=Mw.qr(i,!1),l=o[0],u=o[1].flatten().stridedSlice([0],[Math.min(a,n)*Math.min(a,n)],[Math.min(a,n)+1]);return l=z(l,u.sign()),na*r);return t}var SI="Variable",y2=class{constructor(e,t="float32",n=SI,a=!0,r=null){this.dtype=t==null?"float32":t,this.shape=e.shape,this.id=c2(),n=n==null?SI:n,this.originalName=h2(n),this.name=m2(this.originalName),this.trainable_=a,this.constraint=r,this.val=Ew(e,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(e){return this.assertNotDisposed(),ZU(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 ZU(e,t){if(e.shape.toString()!==t.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(e.shape)+" vs. "+JSON.stringify(t.shape))}function Lx(e){return e.map(t=>t.read())}function a0(e){e.forEach(t=>{t[0].write(t[1])})}var Bt=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=c2(),s!=null&&(this.originalName=h2(s),this.name=m2(this.originalName)),this.rank=t.length}},JU=0,zf=class{constructor(e,t){this.callArgs=t,this.id=JU++,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}}},QU=0,Be=class extends ne.Serializable{constructor(e={}){super(),this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=QU++,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=Cr(n)+"_"+Af(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=kt(e),this.inputSpec==null||this.inputSpec.length===0)return;let t=kt(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 kt(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=kt(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 Le("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return s}else{let s=eG(e),i=this.computeOutputShape(s),o,l=tG(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,kt(e),t,this.name,p)):o=new Va(l,i,this,kt(e),t,this.name),this.addInboundNode(e,o,null,null,s,i,t),this._refCount++,this.activityRegularizer!=null)throw new Le("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 um(this.weights)}build(e){this.built=!0}getWeights(e=!1){return Lx(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=Lx(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=kt(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=kt(e);t=kt(t),n=kt(n),a=kt(a),r=lm(r),s=lm(s);let l=[],u=[],p=[];for(let d of o)l.push(d.sourceLayer),u.push(d.nodeIndex),p.push(d.tensorIndex);new zf({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 eG(e){e=kt(e);let t=[];for(let n of e)t.push(n.shape);return On(t)}function tG(e){return"float32"}function x2(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=pm.get(p),c;if(d==null){let m=rG(i,t);d=m.sorted,c=m.recipientCounts,pm.put(p,d),cm.put(p,c)}c={},r||Object.assign(c,cm.get(p));let h=new ti(t);for(let m=0;ma.maxNumTensors&&(a.maxNumTensors=F),F0,()=>"Expected at least one fetch, got none");let n=[],a={};if(e.length===1){let r=NI(e[0],t);n=r.sorted,a=r.recipientMap}else{let r=new Set;for(let s of e){let{sorted:i,recipientMap:o}=NI(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:sG(a)}}function sG(e){let t={};for(let n in e)t[n]=e[n].size;return t}function NI(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 iG(e){let t;if(e.sourceLayer.inboundNodes.length===1)t=e.sourceLayer.output;else{let n=null;for(let a=0;a100,aG);var w2={};Ee(w2,{maxNorm:()=>lG,minMaxNorm:()=>cG,nonNeg:()=>pG,unitNorm:()=>uG});function r0(e,t){return P(()=>mn(fe(z(e,e),t,!0)))}var wd=class extends ne.Serializable{getConfig(){return{}}},s0=class extends wd{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=r0(e,this.axis),n=rn(t,0,this.maxValue);return z(e,he(n,X(jt(),t)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}};s0.className="MaxNorm";ne.registerClass(s0);var i0=class extends wd{constructor(e){super(),this.defaultAxis=0,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return P(()=>he(e,X(jt(),r0(e,this.axis))))}getConfig(){return{axis:this.axis}}};i0.className="UnitNorm";ne.registerClass(i0);var o0=class extends wd{apply(e){return Ke(e)}};o0.className="NonNeg";ne.registerClass(o0);var l0=class extends wd{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=r0(e,this.axis),n=X(z(this.rate,rn(t,this.minValue,this.maxValue)),z(1-this.rate,t));return z(e,he(n,X(jt(),t)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}};l0.className="MinMaxNorm";ne.registerClass(l0);var TI={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function Xt(e){return jw(e)}function CI(e,t={}){return bd(e,ne.SerializationMap.getMap().classNameMap,t,"constraint")}function Yt(e){if(e==null)return null;if(typeof e=="string"){let t={className:e in TI?TI[e]:e,config:{}};return CI(t)}else return e instanceof wd?e:CI(e)}function lG(e){return new s0(e)}function uG(e){return new i0(e)}function pG(){return new o0}function cG(e){return new l0(e)}var k2={};Ee(k2,{constant:()=>mG,glorotNormal:()=>wG,glorotUniform:()=>vG,heNormal:()=>kG,heUniform:()=>IG,identity:()=>yG,leCunNormal:()=>SG,leCunUniform:()=>NG,ones:()=>hG,orthogonal:()=>TG,randomNormal:()=>gG,randomUniform:()=>fG,truncatedNormal:()=>bG,varianceScaling:()=>xG,zeros:()=>dG});function dG(){return new Yw}function hG(){return new $f}function mG(e){return new Zw(e)}function fG(e){return new Jw(e)}function gG(e){return new Qw(e)}function bG(e){return new e0(e)}function yG(e){return new t0(e)}function xG(e){return new Vn(e)}function vG(e){return new Df(e)}function wG(e){return new Rf(e)}function kG(e){return new Mf(e)}function IG(e){return new Pf(e)}function SG(e){return new Of(e)}function NG(e){return new Lf(e)}function TG(e){return new n0(e)}var I2={};Ee(I2,{Layer:()=>Be,RNN:()=>gr,RNNCell:()=>Td,activation:()=>e6,add:()=>u6,alphaDropout:()=>q6,average:()=>p6,averagePooling1d:()=>x1,averagePooling2d:()=>v1,averagePooling3d:()=>w1,avgPool1d:()=>x6,avgPool2d:()=>w6,avgPool3d:()=>I6,avgPooling1d:()=>v6,avgPooling2d:()=>k6,avgPooling3d:()=>S6,batchNormalization:()=>g6,bidirectional:()=>L6,categoryEncoding:()=>Z6,centerCrop:()=>X6,concatenate:()=>c6,conv1d:()=>HH,conv2d:()=>qH,conv2dTranspose:()=>jH,conv3d:()=>KH,conv3dTranspose:()=>XH,convLstm2d:()=>R6,convLstm2dCell:()=>M6,cropping2D:()=>ZH,dense:()=>t6,depthwiseConv2d:()=>QH,dot:()=>f6,dropout:()=>n6,elu:()=>zH,embedding:()=>l6,flatten:()=>r6,gaussianDropout:()=>H6,gaussianNoise:()=>G6,globalAveragePooling1d:()=>N6,globalAveragePooling2d:()=>T6,globalMaxPool1d:()=>W6,globalMaxPool2d:()=>B6,globalMaxPooling1d:()=>gC,globalMaxPooling2d:()=>bC,gru:()=>_6,gruCell:()=>E6,input:()=>B2,inputLayer:()=>LH,layerNormalization:()=>b6,leakyReLU:()=>BH,lstm:()=>A6,lstmCell:()=>F6,masking:()=>j6,maxPool1d:()=>V6,maxPool2d:()=>U6,maxPooling1d:()=>yC,maxPooling2d:()=>xC,maxPooling3d:()=>C6,maximum:()=>d6,minimum:()=>h6,multiply:()=>m6,permute:()=>o6,prelu:()=>VH,randomWidth:()=>J6,reLU:()=>WH,repeatVector:()=>s6,rescaling:()=>K6,reshape:()=>i6,resizing:()=>Y6,rnn:()=>P6,separableConv2d:()=>YH,simpleRNN:()=>$6,simpleRNNCell:()=>D6,softmax:()=>UH,spatialDropout1d:()=>a6,stackedRNNCells:()=>O6,thresholdedReLU:()=>GH,timeDistributed:()=>z6,upSampling2d:()=>JH,zeroPadding2d:()=>y6});async function es(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;sX(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(),Ht(t[n])}))}},T2=class extends Xl{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 C2(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 E2(e,t,n,a,r,s,i,o,l){let u=new T2,p=[new _G,...Ea.createCallbacks(t)];e!=null&&p.push(...e),p.push(u);let d=new N2(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 bd(e,ne.SerializationMap.getMap().classNameMap,t,"layer",n)}function dm(e,t){return P(()=>{e.dtype!=="float32"&&(e=ie(e,"float32"));let n=fe(xd(e),t,!0),a=xn(n.shape,jt()),r=mn(mr(n,a));return he(e,r)})}function Ho(e,t){return P(()=>Et(xd(pe(t,e)),-1))}function Wf(e,t){return P(()=>Et(Wt(pe(t,e)),-1))}function fp(e,t){return P(()=>{let n=pe(e,t),a=rn(Wt(e),jt(),Number.MAX_VALUE),r=Wt(he(n,a));return z(100,Et(r,-1))})}function EG(e,t){return P(()=>{let n=rn(t,jt(),Number.MAX_VALUE),a=na(X(1,n)),r=rn(e,jt(),Number.MAX_VALUE),s=na(X(1,r));return Et(xd(pe(a,s)),-1)})}function AG(e,t){return P(()=>{let n=mr(0,pe(1,z(e,t)));return Et(xd(n),-1)})}function FG(e,t){return P(()=>{let n=mr(0,pe(1,z(e,t)));return Et(n,-1)})}function $G(e,t){return P(()=>{let n=fe(z(e,t),-1),a=ga(z(pe(1,e),t),-1);return mr(0,X(1,pe(a,n)))})}function DG(e,t){return P(()=>{let n=Math.log(2),a=pe(t,e),r=pe(X(a,Wo(z(-2,a))),n);return Et(r,-1)})}function Ic(e,t,n=!1){return P(()=>{if(n)t=Xa(t);else{let a=fe(t,t.shape.length-1,!0);t=he(t,a)}return t=rn(t,jt(),1-jt()),yt(fe(z(ie(e,"float32"),na(t)),t.shape.length-1))})}function hm(e,t,n=!1){return P(()=>{let a=ie(cp(BU(e)),"int32");t=rn(t,jt(),1-jt());let r=t.shape,s=W(Vl(a,r[r.length-1]),r);return Ic(s,t,n)})}function RG(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=Ke(t),a=yt(Wt(t));return X(pe(n,z(t,e)),ld(yn(a)))})}function Bf(e,t){return P(()=>{let n;return n=rn(t,jt(),1-jt()),n=na(he(n,pe(1,n))),Et(RG(e,n),-1)})}function MG(e,t){return P(()=>{let n=rn(e,jt(),1),a=rn(t,jt(),1);return fe(z(e,na(he(n,a))),-1)})}function PG(e,t){return P(()=>{let n=na(X(jt(),t));return Et(pe(t,z(e,n)),-1)})}function u0(e,t){return P(()=>{let n=dm(e,-1),a=dm(t,-1),r=z(n,a);return yt(fe(r,-1))})}var mm={meanSquaredError:Ho,meanAbsoluteError:Wf,meanAbsolutePercentageError:fp,meanSquaredLogarithmicError:EG,squaredHinge:AG,hinge:FG,categoricalHinge:$G,logcosh:DG,categoricalCrossentropy:Ic,sparseCategoricalCrossentropy:hm,binaryCrossentropy:Bf,kullbackLeiblerDivergence:MG,poisson:PG,cosineProximity:u0};function px(e){if(typeof e=="string"){if(e in mm)return mm[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 p0(e,t){return P(()=>{let n=z(.5,aa(t)),a=lr(_n(t,n),e.dtype);return Et(ta(e,a),-1)})}function c0(e,t){return P(()=>lr(ta(ci(e,-1),ci(t,-1)),"float32"))}function A2(e,t){return P(()=>ie(fe(Da(ta(e,1),ta(t,1))),"float32"))}function OG(e,t){return P(()=>ie(fe(Da(ta(e,1),ta(t,0))),"float32"))}function LG(e,t){return P(()=>ie(fe(Da(ta(e,0),ta(t,1))),"float32"))}function F2(e,t){return P(()=>{let n=A2(e,t),a=LG(e,t),r=X(n,a);return ie(an(_n(r,0),he(n,r),0),"float32")})}function zG(e,t){return P(()=>{let n=A2(e,t),a=OG(e,t),r=X(n,a);return ie(an(_n(r,0),he(n,r),0),"float32")})}function $2(e,t){return Bf(e,t)}function D2(e,t){return e.rank===t.rank&&(e=$s(e,[e.rank-1])),t=ci(t,-1),t.dtype!==e.dtype&&(t=ie(t,e.dtype)),ie(ta(e,t),"float32")}var WG=Ho,BG=Ho,VG=Wf,UG=Wf,GG=fp,HG=fp,d0=Ic,qG=u0,R2=hm,fm={binaryAccuracy:p0,categoricalAccuracy:c0,precision:F2,categoricalCrossentropy:d0,sparseCategoricalCrossentropy:R2,mse:WG,MSE:BG,mae:VG,MAE:UG,mape:GG,MAPE:HG,cosine:qG};function jG(e){if(typeof e=="string"&&e in fm)return fm[e];if(typeof e!="string"&&e!=null)return e;throw new V(`Unknown metric ${e}`)}function Rh(e){if(rr(e!==null,`Unknown LossOrMetricFn ${e}`),typeof e=="string")return e;{let t;for(let n of Object.keys(mm))if(mm[n]===e){t=n;break}if(t!==void 0)return t;for(let n of Object.keys(fm))if(fm[n]===e){t=n;break}return t!==void 0?t:e.name}}function KG(e){let t={Adagrad:()=>Ks.adagrad(.01),Adadelta:()=>Ks.adadelta(1,.95,jt()),Adam:()=>Ks.adam(.001,.9,.999,jt()),Adamax:()=>Ks.adamax(.002,.9,.999,jt(),0),RMSProp:()=>Ks.rmsprop(.001,.9,0,jt()),SGD:()=>Ks.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 EI(e,t,n=!1){if(e==null||typeof e!="object"||Object.getPrototypeOf(e)!==Object.prototype||!zx(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 zx(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"||!zx(e[n]))return!1;return!0}else if(Array.isArray(e)){for(let t of e)if(!zx(t))return!1;return!0}else return!1;else{let t=typeof e;return t==="string"||t==="number"||t==="boolean"}}function XG(e,t,n,a=console.log){let r=ZG(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)),gm(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 gm(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 JG(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()];gm(o,t,n)}function QG(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;cb.name)}`);ls(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 y=b.sourceLayer,x=b.nodeIndex,w=b.tensorIndex;this.outputLayers.push(y),this.outputLayersNodeIndices.push(x),this.outputLayersTensorIndices.push(w)}for(let b of this.inputs){let y=b.sourceLayer,x=b.nodeIndex,w=b.tensorIndex;rr(x===0,"input layer has >1 nodes"),rr(w===0,"input layer has >1 tensors"),this.inputLayers.push(y),this.inputLayersNodeIndices.push(x),this.inputLayersTensorIndices.push(w)}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 t={},n={},a={},r={},s={},i=[],o=(b,y,x,w,I,T)=>{(w==null||I==null||T==null)&&(w=b.sourceLayer,I=b.nodeIndex,T=b.tensorIndex);let C=w.inboundNodes[I];if(x.indexOf(C)!==-1)throw new Ba(`The tensor ${b.name} at layer "${w.name}" is part of a cycle.`);if(y.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 E=C.inboundLayers.length;for(let F=0;F=0;)x.splice(x.indexOf(C),1);i.push(C)},l=[],u=[];for(let b of this.outputs)o(b,l,u);let p=i.slice().reverse();for(let b of p){n[b.id]=b,b.id in t||(t[b.id]=0);let y=t[b.id],x=a[b.outboundLayer.id]==null?0:a[b.outboundLayer.id];y=Math.max(y,x),a[b.outboundLayer.id]=y,r[b.outboundLayer.id]=b.outboundLayer,t[b.id]=y;for(let w=0;wparseInt(b,10)).sort(Fh);this.layers=[];for(let b of h){let y=c[b];y.sort((x,w)=>{let I=s[x.id],T=s[w.id];return IT?1:0});for(let x of y)x instanceof nr&&this.internalContainerRefs.push(x),this.layers.push(x)}this.layersByDepth=c,h=Object.keys(d).map(b=>parseInt(b,10)).sort(Fh);let m=this.inputs.slice(),f=[];for(let b of h)for(let y of d[b]){let x=y.outboundLayer;if(x!=null){for(let w of y.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 y.outputTensors)m.push(w);f.push(x.name)}}this.nodesByDepth=d;let g=this.layers.map(b=>b.name);for(let b of g){let y=g.filter(x=>x===b).length;if(y!==1)throw new Ba(`The name "${b}" is used ${y} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(g))}this.outboundNodes=[],this.inboundNodes=[],new zf({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 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}`)}a0(r)}updatedConfig(){let e=this.getConfig(),t={};return t.className=this.getClassName(),t.config=e,t.kerasVersion=`tfjs-layers ${h0}`,t.backend="TensorFlow.js",t}toJSON(e,t=!0){let n=Wx(this.updatedConfig());return t?JSON.stringify(n):n}call(e,t){return P(()=>{e=kt(e);let n=new ti;for(let a=0;a{e=kt(e);let n;return t==null?n=bi(null,e.length):n=kt(t),this.runInternalGraph(e,n)[1]})}computeOutputShape(e){let t=lm(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(Fh);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(Fh);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,b,y;if(u.callArgs!=null&&(m=u.callArgs),h.length===1){let[x,w]=h[0];m.mask==null&&(m.mask=w),b=kt(p.call(x,m)),y=kt(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),b=kt(p.call(f,m)),y=kt(p.computeMask(f,g));if(p.activityRegularizer)throw new Le("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(b),y)}function l(f){let g=f.name,b=Ga(f,t.customObjects!=null?t.customObjects:{});b.setFastWeightInitDuringBuild(a),r[g]=b,f.inboundNodes.forEach(y=>{if(!(y instanceof Array))throw new V(`Corrupted configuration, expected array for nodeData: ${y}`);i(b,y)})}let u=t.name,p=t.layers;for(let f of p)l(f);for(;!_U(s);)for(let f of p){let g=r[f.name];if(g.name in s){let b=s[g.name];delete s[g.name];for(let y of b)o(g,y)}}let d=[],c=[],h=t.inputLayers;for(let f of h){let g=f[0],b=f[1],y=f[2];rr(g in r);let x=r[g].inboundNodes[b].outputTensors;d.push(x[y])}let m=t.outputLayers;for(let f of m){let g=f[0],b=f[1],y=f[2];rr(g in r);let x=r[g].inboundNodes[b].outputTensors;c.push(x[y])}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 eH(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 P2(e,t){return eH(e,t,"classWeight")}async function O2(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 ci(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])}),je(i,"float32")}else return null}function tH(e,t){return z(e,t)}var nH=32;function L2(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=AI("input",e.inputNames,n),i=AI("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 AI(e,t,n){if(n instanceof Ce)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 aH(e){if(e.length===3)throw new Le("Validation with sample weights is not implemented yet.");return{xs:e[0],ys:e[1]}}async function rH(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(FI(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=aH(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=_2(n.callbacks,n.yieldEvery),d=n.verbose==null?1:n.verbose,{callbackList:c,history:h}=E2(p,d,n.epochs,null,null,sH(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;FI(n.validationData)?w=kt(await e.evaluateDataset(n.validationData,{batches:n.validationBatches})):w=kt(e.evaluate(s,i,{batchSize:n.validationBatchSize==null?nH:n.validationBatchSize,verbose:0}));for(let I=0;I0)throw new Le("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=iH(t)?t:await t.iterator(),o=0,l=0;for(;!a||l{if(u.value){let{xs:p,ys:d}=L2(e,u.value),c=p.concat(d),h=P(()=>r(c));if(_e(c),l===0)for(let f=0;fX(s[f],z(m,g))),l>0&&_e(b)}_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 Yp(e,t,n){return e==null?[null]:Array.isArray(e)?e.map(a=>si(a,t,n-t)):si(e,t,n-t)}function Bx(e,t){return P(()=>e==null?null:Array.isArray(e)?e.map(n=>Bx(n,t)):g2(e,t.dtype==="int32"?t:ie(t,"int32")))}function dx(e,t){let n=[],a=0,r=null;for(;a=e&&(r=e),n.push([a,r]),a=r;return n}function z2(e){let t=[];e instanceof Ce&&(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 Ce)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 lH(e){return e instanceof Ce}function Vx(e){return Array.isArray(e)}function $I(e){return!lH(e)&&!Vx(e)}function DI(e,t,n,a=!0,r=""){if(t==null||t.length===0){if(e!=null){let i=!1;if(Vx(e)&&e.length>0)i=!0;else if($I(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($I(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(Vx(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=z2(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 uH(e,t,n){let a=ls(e.map(s=>s.shape[0]));a.sort();let r=ls(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 pH(e,t,n){let a=[Ho,Bf,Ic];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 dH="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).");XG(this,e,t,n)}compile(e){if(e.loss==null&&(e.loss=[]),this.loss=e.loss,typeof e.optimizer=="string")this.optimizer_=KG(e.optimizer),this.isOptimizerOwned=!0;else{if(!(e.optimizer instanceof Lr))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(px(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=>px(s))}else{let s=px(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=cH(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])};ri("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]===Bf?["accuracy","acc"].indexOf(c)!==-1?p=p0:["crossentropy","ce"].indexOf(c)!==-1&&(p=$2):this.lossFunctions[s]===hm?["accuracy","acc"].indexOf(c)!==-1?p=D2:["crossentropy","ce"].indexOf(c)!==-1&&(p=R2):["accuracy","acc"].indexOf(c)!==-1?p=c0:["crossentropy","ce"].indexOf(c)!==-1&&(p=d0);let f;["accuracy","acc"].indexOf(c)!==-1?f="acc":["crossentropy","ce"].indexOf(c)!==-1&&(f="ce"),d=p,u=l+f}else d=jG(c),u=l+Rh(c);let h;ri(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;cx(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(),oH(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 ti;if(e instanceof Ce&&(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 Le("Verbose predictLoop() is not implemented yet.");let r=dx(a,t),s=this.outputs.map(i=>[]);for(let i=0;i{let o=r[i][0],l=r[i][1],u=Yp(e,o,l),p=[];if(Array.isArray(u))for(let c=0;cs[l].push(o));return On(s.map(i=>Qe(i,0)))})}predict(e,t={}){let n=z2(e);RI(n,this.inputNames,this.feedInputShapes,!1);try{let a=t.batchSize==null?32:t.batchSize;return cx(a),this.predictLoop(n,a)}finally{za(n,e)}}predictOnBatch(e){RI(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=P2(a,this.outputNames);l=[];for(let p=0;p{let s=this.checkNumSamples(t,n,r,"steps"),i=[];if(a>0)throw new Le("Verbose mode is not implemented yet.");if(r!=null)throw new Le("steps mode in testLoop() is not implemented yet");{let o=dx(s,n),l=je(qa(0,s));for(let u=0;u1){let s=xI(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=X(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 Le("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,E=await this.standardizeUserData(o,l,null,null,C,c);u=E[0],p=E[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)),E=a[0].shape[0];u=Yp(a,C,E),s=a,a=Yp(a,0,C),p=Yp(r,C,E),i=r,r=Yp(r,0,C),g=u.concat(p)}else n.validationSteps!=null&&(f=!0);let b=a.concat(r).concat(d);this.checkTrainableWeightsConsistency();let y=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=_2(n.callbacks,n.yieldEvery);return await this.fitLoop(y,b,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&&_e(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=qa(0,f)),s==null&&(s=1);let{callbackList:b,history:y}=E2(i,s,r,d,f,c,a,m,p);b.setModel(this),this.history=y,await b.onTrainBegin(),this.stopTraining_=!1;for(let x=d;x{let F=T[C][0],D=T[C][1],$=si(I,F,D-F);E.batch=C,E.size=D-F;let S=Bx(t,$),M=e(S);for(let B=0;BCr(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]=Cr(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[Cr(Rh(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(e=>Cr(Rh(e)));{let e={};for(let t in this.metrics)e[t]=Cr(Rh(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=Sc(e.optimizer_config),n=Ga(t),a;if(typeof e.loss=="string")a=Zs(e.loss);else if(Array.isArray(e.loss))a=e.loss.map(s=>Zs(s));else if(e.loss!=null){a={};for(let s in e.loss)a[s]=Zs(e.loss[s])}let r;if(Array.isArray(e.metrics))r=e.metrics.map(s=>Zs(s));else if(e.metrics!=null){r={};for(let s in e.metrics)r[s]=Zs(e.metrics[s])}this.compile({loss:a,metrics:r,optimizer:n})}async save(e,t){if(typeof e=="string"){let i=qt.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 qt.encodeWeights(this.getNamedWeights(t)),a=!1,r=null,s={modelTopology:this.toJSON(r,a),format:dH,generatedBy:`TensorFlow.js tfjs-layers v${h0}`,convertedBy:null};if(t!=null&&t.includeOptimizer&&this.optimizer!=null){s.trainingConfig=this.getTrainingConfig();let i="optimizer",{data:o,specs:l}=await qt.encodeWeights(await this.optimizer.getWeights(),i);n.specs.push(...l),n.data=qt.concatenateArrayBuffers([n.data,o])}return this.userDefinedMetadata!=null&&(EI(this.userDefinedMetadata,this.name,!0),s.userDefinedMetadata=this.userDefinedMetadata),s.weightData=n.data,s.weightSpecs=n.specs,e.save(s)}setUserDefinedMetadata(e){EI(e,this.name),this.userDefinedMetadata=e}getUserDefinedMetadata(){return this.userDefinedMetadata}};$r.className="Model";ne.registerClass($r);var W2=class extends $r{};W2.className="Functional";ne.registerClass(W2);async function hH(e,t){"modelTopology"in e||(e={modelTopology:e}),e=e;let n=e.modelTopology;n.model_config!=null&&(n=n.model_config);let a=Sc(n),r=Ga(a,t);if(e.weightsManifest!=null){let s=await qt.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 mH(e,t){if(t==null&&(t={}),typeof e=="string"){let n=qt.getLoadHandlers(e,t);if(n.length===0)n.push(qt.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 fH(e,void 0,t)}async function fH(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(Sc(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}=gH(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 gH(e,t){let n=qt.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 Yl=class extends $r{constructor(e){if(super({inputs:[],outputs:[]}),e=e||{},this.trainable=!0,this.built=!1,this.name=e.name!=null?e.name:Af("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 Yl||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=v2({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=x2(this.outputs[0])}this.inboundNodes=[],new zf({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:bi(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(Ze(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 Yl))throw new Le(`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}}};Yl.className="Sequential";ne.registerClass(Yl);function bH(e){return new $r(e)}function yH(e){return new Yl(e)}function B2(e){return v2(e)}function xH(e,t){Ea.registerCallbackConstructor(e,t)}var Gn=class extends ne.Serializable{getConfig(){return{}}},V2=class extends Gn{apply(e,t=1){return UU(e,t)}};V2.className="elu";ne.registerClass(V2);var U2=class extends Gn{apply(e){return mf(e)}};U2.className="selu";ne.registerClass(U2);var G2=class extends Gn{apply(e){return Ke(e)}};G2.className="relu";ne.registerClass(G2);var H2=class extends Gn{apply(e){return P(()=>ms(6,Ke(e)))}};H2.className="relu6";ne.registerClass(H2);var q2=class extends Gn{apply(e){return e}};q2.className="linear";ne.registerClass(q2);var j2=class extends Gn{apply(e){return fa(e)}};j2.className="sigmoid";ne.registerClass(j2);var K2=class extends Gn{apply(e){return HU(e)}};K2.className="hardSigmoid";ne.registerClass(K2);var X2=class extends Gn{apply(e){return Wo(e)}};X2.className="softplus";ne.registerClass(X2);var Y2=class extends Gn{apply(e){return GU(e)}};Y2.className="softsign";ne.registerClass(Y2);var Z2=class extends Gn{apply(e){return hi(e)}};Z2.className="tanh";ne.registerClass(Z2);var m0=class extends Gn{apply(e,t=-1){return Xa(e,t)}};m0.className="softmax";ne.registerClass(m0);var J2=class extends Gn{apply(e,t=-1){return sf(e,t)}};J2.className="logSoftmax";ne.registerClass(J2);var Q2=class extends Gn{apply(e,t=1){return P(()=>z(fa(z(e,t)),e))}};Q2.className="swish";ne.registerClass(Q2);var eC=class extends Gn{apply(e){return P(()=>z(e,hi(Wo(e))))}};eC.className="mish";ne.registerClass(eC);function gs(e){return e.getClassName()}function hx(e,t={}){return bd(e,ne.SerializationMap.getMap().classNameMap,t,"activation")}function bs(e){if(e==null){let t={};return t.className="linear",t.config={},hx(t)}if(typeof e=="string"){let t={};return t.className=e,t.config={},hx(t)}else return e instanceof Gn?e:hx(e)}function f0(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 tC=class extends ne.Serializable{},kd=class extends tC{constructor(e){super(),f0(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=Nt([1]);return this.hasL1&&(t=X(t,fe(z(this.l1,Wt(e))))),this.hasL2&&(t=X(t,fe(z(this.l2,xd(e))))),W(t,[])})}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(e,t){return new e({l1:t.l1,l2:t.l2})}};kd.className="L1L2";ne.registerClass(kd);function vH(e){return f0(e),new kd({l1:e!=null?e.l1:null,l2:0})}function wH(e){return f0(e),new kd({l2:e!=null?e.l2:null,l1:0})}var MI={l1l2:"L1L2"};function mt(e){return jw(e)}function PI(e,t={}){return bd(e,ne.SerializationMap.getMap().classNameMap,t,"regularizer")}function Ct(e){if(e==null)return null;if(typeof e=="string"){let t={className:e in MI?MI[e]:e,config:{}};return PI(t)}else return e instanceof tC?e:PI(e)}var g0=class extends Be{constructor(e){super(e==null?{}:e),this.supportsMasking=!0,e!=null&&(this.maxValue=e.maxValue)}call(e,t){e=Te(e);let n=Ke(e);return this.maxValue!=null&&(n=rn(n,0,this.maxValue)),n}computeOutputShape(e){return e}getConfig(){let e={maxValue:this.maxValue},t=super.getConfig();return Object.assign(e,t),e}};g0.className="ReLU";ne.registerClass(g0);var b0=class extends Be{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=Te(e);return od(n,this.alpha)}computeOutputShape(e){return e}getConfig(){let e={alpha:this.alpha},t=super.getConfig();return Object.assign(e,t),e}};b0.className="LeakyReLU";ne.registerClass(b0);var y0=class extends Be{constructor(e){if(super(e==null?{}:e),this.DEFAULT_ALPHA_INITIALIZER="zeros",e==null&&(e={}),this.supportsMasking=!0,this.alphaInitializer=Tt(e.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=Ct(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=Ze(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(Pt(t),t==="channelsFirst"?De(e,[0,2,3,1]):e))}function nC(e,t){return P(()=>(Pt(t),t==="channelsFirst"?De(e,[0,2,3,4,1]):e))}function kH(e,t,n,a=1,r="valid",s,i=1){return P(()=>{if(s==null&&(s=ja()),Pt(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=De(e,[0,2,1])),r==="causal")throw new Le("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=Ya(o,n)),o})}function OI(e,t,n,a=[1,1],r="valid",s,i,o=null){return P(()=>{if(s==null&&(s=ja()),Pt(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=k0(e,s);if(r==="causal")throw new Le("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return l=ql.conv2d({x:l,filter:t,strides:a,pad:r==="same"?"same":"valid",dilations:i,dataFormat:"NHWC",bias:n,activation:o}),s==="channelsFirst"&&(l=De(l,[0,3,1,2])),l})}function IH(e,t,n,a=[1,1,1],r="valid",s,i){return P(()=>{if(s==null&&(s=ja()),Pt(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=nC(e,s);if(r==="causal")throw new Le("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return o=Yv(o,t,a,r==="same"?"same":"valid","NDHWC",i),n!=null&&(o=Ya(o,n)),s==="channelsFirst"&&(o=De(o,[0,4,1,2,3])),o})}var I0=class extends Be{constructor(e,t){if(super(t),this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",I0.verifyArgs(t),this.rank=e,nn(this.rank,"rank"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new Le(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=Ml(t.kernelSize,e,"kernelSize"),this.strides=Ml(t.strides==null?1:t.strides,e,"strides"),this.padding=t.padding==null?"valid":t.padding,wa(this.padding),this.dataFormat=t.dataFormat==null?"channelsLast":t.dataFormat,Pt(this.dataFormat),this.activation=bs(t.activation),this.useBias=t.useBias==null?!0:t.useBias,this.biasInitializer=Tt(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=Yt(t.biasConstraint),this.biasRegularizer=Ct(t.biasRegularizer),this.activityRegularizer=Ct(t.activityRegularizer),this.dilationRate=Ml(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"&&!Kw(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:gs(this.activation),useBias:this.useBias,biasInitializer:At(this.biasInitializer),biasRegularizer:mt(this.biasRegularizer),activityRegularizer:mt(this.activityRegularizer),biasConstraint:Xt(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}},Id=class extends I0{constructor(e,t){super(e,t),this.kernel=null,Id.verifyArgs(t),this.filters=t.filters,nn(this.filters,"filters"),this.kernelInitializer=Tt(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=Yt(t.kernelConstraint),this.kernelRegularizer=Ct(t.kernelRegularizer)}build(e){e=Ze(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=Te(e);let n,a=this.bias==null?null:this.bias.read(),r=p2(this.activation.getClassName());if(r!=null&&this.rank===2)n=OI(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate,r);else{if(this.rank===1)n=kH(e,this.kernel.read(),a,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)n=OI(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)n=IH(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new Le("convolutions greater than 3D are not implemented yet.");this.activation!=null&&(n=this.activation.apply(n))}return n})}computeOutputShape(e){e=Ze(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)}`)}},Sd=class extends Id{constructor(e){super(2,e),Sd.verifyArgs(e)}getConfig(){let e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!Kw(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)}.`)}};Sd.className="Conv2D";ne.registerClass(Sd);var Nd=class extends Id{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 S0=class extends Sd{constructor(e){if(super(e),this.inputSpec=[new Bt({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=Ze(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 Bt({ndim:4,axes:{[t]:n}})],this.built=!0}call(e,t){return P(()=>{let n=Te(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=De(n,[0,2,3,1]));let g=ef(n,this.kernel.read(),f,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(g=De(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=Ze(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}};S0.className="Conv2DTranspose";ne.registerClass(S0);var N0=class extends Nd{constructor(e){if(super(e),this.inputSpec=[new Bt({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=Ze(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 Bt({ndim:5,axes:{[t]:n}})],this.built=!0}call(e,t){return P(()=>{let n=Te(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],b=sr(l,m,d,this.padding),y=sr(u,f,c,this.padding),x=sr(p,g,h,this.padding),w=[r,b,y,x,this.filters];this.dataFormat!=="channelsLast"&&(n=De(n,[0,2,3,4,1]));let I=Zv(n,this.kernel.read(),w,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(I=De(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=Ze(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}};N0.className="Conv3DTranspose";ne.registerClass(N0);var aC=class extends Id{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=Tt(t.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=Ct(t.depthwiseRegularizer),this.depthwiseConstraint=Yt(t.depthwiseConstraint),this.pointwiseInitializer=Tt(t.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=Ct(t.pointwiseRegularizer),this.pointwiseConstraint=Yt(t.pointwiseConstraint)}build(e){if(e=Ze(e),e.length{e=Te(e);let n;if(this.rank===1)throw new Le("1D separable convolution is not implemented yet.");return this.rank===2&&(this.dataFormat==="channelsFirst"&&(e=De(e,[0,2,3,1])),n=Fs(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=De(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=At(this.depthwiseInitializer),e.pointwiseInitializer=At(this.pointwiseInitializer),e.depthwiseRegularizer=mt(this.depthwiseRegularizer),e.pointwiseRegularizer=mt(this.pointwiseRegularizer),e.depthwiseConstraint=Xt(this.depthwiseConstraint),e.pointwiseConstraint=Xt(this.pointwiseConstraint),e}};aC.className="SeparableConv";var T0=class extends aC{constructor(e){super(2,e)}};T0.className="SeparableConv2D";ne.registerClass(T0);var Vf=class extends Id{constructor(e){super(1,e),Vf.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"&&!Kw(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)}.`)}};Vf.className="Conv1D";ne.registerClass(Vf);var C0=class extends Be{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=Te(e),this.dataFormat==="channelsLast"){let n=Dh(e,this.cropping[0][0],e.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return Dh(n,this.cropping[1][0],e.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{let n=Dh(e,this.cropping[0][0],e.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return Dh(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}};C0.className="Cropping2D";ne.registerClass(C0);var _0=class extends Be{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,Pt(this.dataFormat),this.interpolation=e.interpolation==null?"nearest":e.interpolation,PU(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=Te(e),a=n.shape;if(this.dataFormat==="channelsFirst"){n=De(n,[0,2,3,1]);let r=this.size[0]*a[2],s=this.size[1]*a[3],i=this.interpolation==="nearest"?ea.resizeNearestNeighbor(n,[r,s]):ea.resizeBilinear(n,[r,s]);return De(i,[0,3,1,2])}else{let r=this.size[0]*a[1],s=this.size[1]*a[2];return this.interpolation==="nearest"?ea.resizeNearestNeighbor(n,[r,s]):ea.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}};_0.className="UpSampling2D";ne.registerClass(_0);function SH(e,t,n=[1,1],a="valid",r,s){return P(()=>{r==null&&(r=ja()),Pt(r);let i=k0(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=_s(i,t,n,a==="same"?"same":"valid","NHWC",s),r==="channelsFirst"&&(i=De(i,[0,3,1,2])),i})}var E0=class extends I0{constructor(e){super(2,e),this.depthwiseKernel=null,this.depthMultiplier=e.depthMultiplier==null?1:e.depthMultiplier,this.depthwiseInitializer=Tt(e.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=Yt(e.depthwiseConstraint),this.depthwiseRegularizer=Ct(e.depthwiseRegularizer)}build(e){if(e=Ze(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=Te(e);let n=SH(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=Ze(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=At(this.depthwiseInitializer),e.depthwiseRegularizer=mt(this.depthwiseRegularizer),e.depthwiseConstraint=Xt(this.depthwiseRegularizer),e}};E0.className="DepthwiseConv2D";ne.registerClass(E0);function rC(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 sC(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(qa(2,l));if(t=De(t,u),s!=null)throw new Le("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=ie(ie(r,"bool"),"float32"),r.rank===l-1&&(r=tn(r,-1)),r=De(r,u)),a&&(t=ya(t,0),r!=null&&(r=ya(r,0)));let p=[],d,c=n,h=t.shape[0],m=ct(t),f;r!=null&&(f=ct(r));for(let b=0;be(y,c));if(r==null)d=x[0],c=x[1];else{let w=P(()=>{let I=f[b],T=pe(aa(I),I),C=X(z(x[0],I),z(c[0],T)),E=c.map((F,D)=>X(z(x[1][D],I),z(F,T)));return{output:C,newStates:E}});d=w.output,c=w.newStates}o&&p.push(d)}let g;return o&&(g=Dt(p,1)),[d,g,c]})}var gr=class extends Be{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 Hf({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 Bt({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 qa(0,e).map(t=>null)}else return this.states_}setStates(e){this.states_=e}computeOutputShape(e){Ox(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 Bt({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=>Nt([n,a])):this.states_=[Nt([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=>Nt([n,a])):this.states_[0]=Nt([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;aHt(a.clone()))})}apply(e,t){let n=t==null?null:t.initialState,a=t==null?null:t.constants;t==null&&(t={});let r=rC(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 Bt({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=Te(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=sC((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=Nt(e.shape);return t=fe(t,[1,2]),t=yd(t),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(n=>n>1?Mx(t,[1,n]):t):this.cell.stateSize>1?[Mx(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 Td=class extends Be{},Uf=class extends Td{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,nn(this.units,"units"),this.activation=bs(e.activation==null?this.DEFAULT_ACTIVATION:e.activation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=Tt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=Tt(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=Tt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Ct(e.kernelRegularizer),this.recurrentRegularizer=Ct(e.recurrentRegularizer),this.biasRegularizer=Ct(e.biasRegularizer),this.kernelConstraint=Yt(e.kernelConstraint),this.recurrentConstraint=Yt(e.recurrentConstraint),this.biasConstraint=Yt(e.biasConstraint),this.dropout=Kl([1,fs([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=Kl([1,fs([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.dropoutFunc=e.dropoutFunc,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=Ze(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;0aa(e),rate:this.dropout,training:a,dropoutFunc:this.dropoutFunc})),0aa(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=X(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:gs(this.activation),useBias:this.useBias,kernelInitializer:At(this.kernelInitializer),recurrentInitializer:At(this.recurrentInitializer),biasInitializer:At(this.biasInitializer),kernelRegularizer:mt(this.kernelRegularizer),recurrentRegularizer:mt(this.recurrentRegularizer),biasRegularizer:mt(this.biasRegularizer),activityRegularizer:mt(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)}};Uf.className="SimpleRNNCell";ne.registerClass(Uf);var A0=class extends gr{constructor(e){e.cell=new Uf(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)}};A0.className="SimpleRNN";ne.registerClass(A0);var Gf=class extends Td{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,nn(this.units,"units"),this.activation=bs(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=bs(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=Tt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=Tt(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=Tt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Ct(e.kernelRegularizer),this.recurrentRegularizer=Ct(e.recurrentRegularizer),this.biasRegularizer=Ct(e.biasRegularizer),this.kernelConstraint=Yt(e.kernelConstraint),this.recurrentConstraint=Yt(e.recurrentConstraint),this.biasConstraint=Yt(e.biasConstraint),this.dropout=Kl([1,fs([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=Kl([1,fs([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=Ze(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],0aa(e),rate:this.dropout,training:n,count:3,dropoutFunc:this.dropoutFunc})),0aa(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)}};F0.className="GRU";ne.registerClass(F0);var Cd=class extends Td{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,nn(this.units,"units"),this.activation=bs(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=bs(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=Tt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=Tt(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=Tt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=e.unitForgetBias,this.kernelRegularizer=Ct(e.kernelRegularizer),this.recurrentRegularizer=Ct(e.recurrentRegularizer),this.biasRegularizer=Ct(e.biasRegularizer),this.kernelConstraint=Yt(e.kernelConstraint),this.recurrentConstraint=Yt(e.recurrentConstraint),this.biasConstraint=Yt(e.biasConstraint),this.dropout=Kl([1,fs([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=Kl([1,fs([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=Ze(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 wI(wI(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],0aa(e),rate:this.dropout,training:n,count:4,dropoutFunc:this.dropoutFunc})),0aa(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)}};$0.className="LSTM";ne.registerClass($0);var Hf=class extends Td{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{ri(`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 Lx(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):b2(t(),n),o=()=>vd(i,t,a);return!r||r<=1?Ht(o().clone()):Array(r).fill(void 0).map(o).map(l=>Ht(l.clone()))}var NH=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=Nt(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(()=>Nt(r)):this.states_=[Nt(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(()=>Nt(r)):this.states_[0]=Nt(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;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]]}};iC.className="ConvRNN2D";var qf=class extends Cd{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,nn(this.filters,"filters"),this.kernelSize=Ml(n,2,"kernelSize"),this.kernelSize.forEach(o=>nn(o,"kernelSize")),this.strides=Ml(a||1,2,"strides"),this.strides.forEach(o=>nn(o,"strides")),this.padding=r||"valid",wa(this.padding),this.dataFormat=s||"channelsLast",Pt(this.dataFormat),this.dilationRate=Ml(i||1,2,"dilationRate"),this.dilationRate.forEach(o=>nn(o,"dilationRate"))}build(e){var t;e=Ze(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=Qn([u]),m=l.apply([u*2]);return Xw([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;0aa(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);0aa(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),b=l(r,h,3),y=3,[x,w,I,T]=zn(this.kernel.read(),i,y),[C,E,F,D]=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,F,this.padding),c=this.inputConv(c,T,D,this.padding);let[$,S,M,B]=zn(this.recurrentKernel.read(),i,y);m=this.recurrentConv(m,$),f=this.recurrentConv(f,S),g=this.recurrentConv(g,M),b=this.recurrentConv(b,B);let U=this.recurrentActivation.apply(X(u,m)),H=this.recurrentActivation.apply(X(p,f)),j=X(z(H,s),z(U,this.activation.apply(X(d,g)))),K=z(this.recurrentActivation.apply(X(c,b)),this.activation.apply(j));return[K,K,j]})}getConfig(){let e=super.getConfig(),{units:t}=e,n=NH(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=Rt(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 Rt(e,t,1,"same",this.dataFormat==="channelsFirst"?"NCHW":"NHWC")}};qf.className="ConvLSTM2DCell";ne.registerClass(qf);var D0=class extends iC{constructor(e){let t=new qf(e);super(Object.assign(Object.assign({},e),{cell:t}))}static fromConfig(e,t){return new e(t)}};D0.className="ConvLSTM2D";ne.registerClass(D0);var jf=class extends Be{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=Te(e);if(0b2(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 R0=class extends jf{constructor(e){super(e),this.inputSpec=[{ndim:3}]}getNoiseShape(e){let t=e.shape;return[t[0],1,t[2]]}};R0.className="SpatialDropout1D";ne.registerClass(R0);var M0=class extends Be{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,nn(this.units,"units"),this.activation=bs(e.activation),e.useBias!=null&&(this.useBias=e.useBias),this.kernelInitializer=Tt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=Tt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=Yt(e.kernelConstraint),this.biasConstraint=Yt(e.biasConstraint),this.kernelRegularizer=Ct(e.kernelRegularizer),this.biasRegularizer=Ct(e.biasRegularizer),this.activityRegularizer=Ct(e.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(e){e=Ze(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=Ze(e);let t=e.slice();return t[t.length-1]=this.units,t}call(e,t){return P(()=>{this.invokeCallHook(e,t);let n=Te(e),a=p2(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:gs(this.activation),useBias:this.useBias,kernelInitializer:At(this.kernelInitializer),biasInitializer:At(this.biasInitializer),kernelRegularizer:mt(this.kernelRegularizer),biasRegularizer:mt(this.biasRegularizer),activityRegularizer:mt(this.activityRegularizer),kernelConstraint:Xt(this.kernelConstraint),biasConstraint:Xt(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}};M0.className="Dense";ne.registerClass(M0);var P0=class extends Be{constructor(e){e=e||{},super(e),this.inputSpec=[{minNDim:3}],this.dataFormat=e.dataFormat}computeOutputShape(e){e=Ze(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],us(e,1)]}call(e,t){return P(()=>{this.invokeCallHook(e,t);let n=Te(e);if(this.dataFormat==="channelsFirst"&&n.rank>1){let a=[0];for(let r=2;r{this.invokeCallHook(e,t);let n=Te(e);return this.activation.apply(n)})}getConfig(){let e={activation:gs(this.activation)},t=super.getConfig();return Object.assign(e,t),e}};O0.className="Activation";ne.registerClass(O0);var L0=class extends Be{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=Te(e),WU(e,this.n)))}getConfig(){let e={n:this.n},t=super.getConfig();return Object.assign(e,t),e}};L0.className="RepeatVector";ne.registerClass(L0);var z0=class extends Be{constructor(e){super(e),this.targetShape=e.targetShape;for(let t=0;t{this.invokeCallHook(e,t);let n=Te(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}};z0.className="Reshape";ne.registerClass(z0);var W0=class extends Be{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=qa(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 Bt({ndim:this.dims.length+1})]}computeOutputShape(e){e=Ze(e);let t=e.slice();return this.dims.forEach((n,a)=>{t[a+1]=e[n]}),t}call(e,t){return De(Te(e),this.dimsIncludingBatch)}getConfig(){let e={dims:this.dims},t=super.getConfig();return Object.assign(e,t),e}};W0.className="Permute";ne.registerClass(W0);var B0=class extends Be{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=Te(e),a=-1;return xc(fi(n,this.maskValue),a)}call(e,t){return P(()=>{this.invokeCallHook(e,t);let n=Te(e),a=-1,r=!0,s=xc(fi(n,this.maskValue),a,r);return z(n,ie(s,n.dtype))})}};B0.className="Masking";ne.registerClass(B0);var V0=class extends Be{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(kt(e.inputLength))}this.inputDim=e.inputDim,nn(this.inputDim,"inputDim"),this.outputDim=e.outputDim,nn(this.outputDim,"outputDim"),this.embeddingsInitializer=Tt(e.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=Ct(e.embeddingsRegularizer),this.activityRegularizer=Ct(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=Te(e),fi(e,qe(e))):null)}computeOutputShape(e){if(e=Ze(e),this.inputLength==null)return[...e,this.outputDim];let t=kt(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=Te(e);n.dtype!=="int32"&&(n=lr(n,"int32"));let a=g2(this.embeddings.read(),W(n,[n.size]));return W(a,Ze(this.computeOutputShape(n.shape)))})}getConfig(){let e={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:At(this.embeddingsInitializer),embeddingsRegularizer:mt(this.embeddingsRegularizer),activityRegularizer:mt(this.activityRegularizer),embeddingsConstraint:Xt(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},t=super.getConfig();return Object.assign(e,t),e}};V0.className="Embedding";ne.registerClass(V0);var qo=class extends Be{constructor(e){super(e||{}),this.supportsMasking=!0}mergeFunction(e){throw new Le}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&&ls(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=fs(a);for(let s of e){let i=s.rank;for(let o=0;o1){let u=qa(1,l).concat([0]);n.push(De(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(De(W(s,[-1,u]),[1,0]),p)}else if(i>1){let o=[i-1].concat(qa(0,i-1));s=De(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:tn(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(()=>Xw(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 Le("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 Le("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 Le("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)=>Zp(r,e[s].shape.length)):a=[Zp(this.axes,t.shape.length),Zp(this.axes,n.shape.length)],this.normalize&&(t=dm(t,a[0]),n=dm(n,a[1])),TH(t,n,a)}interpretAxes(e,t){let n;return Array.isArray(this.axes)?n=this.axes:n=[Zp(this.axes,e.length),Zp(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 Le("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}};X0.className="Dot";ne.registerClass(X0);var Y0=class extends Be{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=Te(e);return vd(()=>X(Ff(n.shape,0,this.stddev),n),()=>n,t.training||!1)})}};Y0.className="GaussianNoise";ne.registerClass(Y0);var Z0=class extends Be{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=Te(e);return this.rate>0&&this.rate<1?vd(()=>{let a=Math.sqrt(this.rate/(1-this.rate));return z(n,Ff(n.shape,1,a))},()=>n,t.training||!1):n})}};Z0.className="GaussianDropout";ne.registerClass(Z0);var J0=class extends Be{constructor(e){super(e),this.supportsMasking=!0,this.rate=e.rate,this.noiseShape=e.noiseShape}_getNoiseShape(e){return this.noiseShape||Te(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 vd(()=>{let a=Te(e),r=1.6732632423543772,s=1.0507009873554805,i=-r*s,o=Pr(As(n),this.rate);o=lr(o,"float32");let l=((1-this.rate)*(1+this.rate*i**2))**-.5,u=-l*i*this.rate,p=X(z(a,o),z(X(o,-1),i));return X(z(p,l),u)},()=>Te(e),t.training||!1)}return e})}};J0.className="AlphaDropout";ne.registerClass(J0);function Nc(e,t,n,a,r,s=.001){let i;if(e.rank===2)i=Wv(e,t,n,a,r,s);else if(e.rank===3)i=Bv(e,t,n,a,r,s);else if(e.rank===4)i=Vv(e,t,n,a,r,s);else throw new Le(`batchNormalization is not implemented for array of rank ${e.rank} yet`);return i}function CH(e,t,n,a,r=.001){return P(()=>{let s=pd(e,a),i=s.mean,o=s.variance;return[Nc(e,i,o,n,t,r),i,o]})}function _H(e,t,n,a,r=.001){return P(()=>{let s=pd(e,a),i=s.mean,o=s.variance,l=[];for(let h of qa(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[Nc(e,u,p,c,d,r),i,o]})}function EH(e,t,n,a,r=.001){return v.arraysEqual(a.slice().sort(),qa(0,e.rank-1))?CH(e,t,n,a,r):_H(e,t,n,a,r)}var Q0=class extends Be{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=Tt(e.betaInitializer||"zeros"),this.gammaInitializer=Tt(e.gammaInitializer||"ones"),this.movingMeanInitializer=Tt(e.movingMeanInitializer||"zeros"),this.movingVarianceInitializer=Tt(e.movingVarianceInitializer||"ones"),this.betaConstraint=Yt(e.betaConstraint),this.gammaConstraint=Yt(e.gammaConstraint),this.betaRegularizer=Ct(e.betaRegularizer),this.gammaRegularizer=Ct(e.gammaRegularizer)}build(e){e=Ze(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 Bt({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=Te(e),r=a.shape,s=r.length,i=qa(0,s),o=this.axis>=0?this.axis:this.axis+s;i.splice(o,1);let l=bi(1,s);l[o]=r[o];let u=i.slice();u.sort();let p=!v.arraysEqual(u,qa(0,s).slice(0,s-1)),d=()=>{if(p){let g=W(this.movingMean.read(),l),b=W(this.movingVariance.read(),l),y=this.center?W(this.beta.read(),l):null,x=this.scale?W(this.gamma.read(),l):null;return Nc(a,g,b,y,x,this.epsilon)}else return Nc(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]=EH(a,this.gamma.read(),this.beta.read(),i,this.epsilon),f=(g,b,y)=>{P(()=>{let x=1-y,w=g.read(),I=z(pe(w,b),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:At(this.betaInitializer),gammaInitializer:At(this.gammaInitializer),movingMeanInitializer:At(this.movingMeanInitializer),movingVarianceInitializer:At(this.movingVarianceInitializer),betaRegularizer:mt(this.betaRegularizer),gammaRegularizer:mt(this.gammaRegularizer),betaConstraint:Xt(this.betaConstraint),gammaConstraint:Xt(this.gammaConstraint)},t=super.getConfig();return Object.assign(e,t),e}};Q0.className="BatchNormalization";ne.registerClass(Q0);var e1=class extends Be{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=Tt(e.betaInitializer||"zeros"),this.gammaInitializer=Tt(e.gammaInitializer||"ones"),this.betaRegularizer=Ct(e.betaRegularizer),this.gammaRegularizer=Ct(e.gammaRegularizer),this.supportsMasking=!0}build(e){e=Ze(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!==ls(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=Te(e),a=n.shape,r=a.length;return P(()=>{let{mean:s,variance:i}=pd(n,this.axis,!0),o=bi(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]],va(e,a)})}var t1=class extends Be{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 Bt({ndim:4})]}computeOutputShape(e){e=Ze(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(()=>AH(Te(e),this.padding,this.dataFormat))}getConfig(){let e={padding:this.padding,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};t1.className="ZeroPadding2D";ne.registerClass(t1);function Kf(e,t,n,a,r,s){return P(()=>{Pt(r),d2(s),wa(a),n==null&&(n=[1,1]),a==null&&(a="valid"),r==null&&(r=ja()),s==null&&(s="max"),e=k0(e,r);let i,o=a==="same"?"same":"valid";return s==="max"?i=Mt(e,t,n,o):i=xa(e,t,n,o),r==="channelsFirst"&&(i=De(i,[0,3,1,2])),i})}function oC(e,t,n,a,r,s){return P(()=>{Pt(r),d2(s),wa(a),n==null&&(n=[1,1,1]),a==null&&(a="valid"),r==null&&(r=ja()),s==null&&(s="max"),e=nC(e,r);let i,o=a==="same"?"same":"valid";return s==="max"?i=hw(e,t,n,o):i=zv(e,t,n,o),r==="channelsFirst"&&(i=De(i,[0,4,1,2,3])),i})}var lC=class extends Be{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(nn(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)}`);nn(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,wa(this.padding),this.inputSpec=[new Bt({ndim:3})]}computeOutputShape(e){e=Ze(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=yd(Te(e),2);let n=this.poolingFunction(Te(e),[this.poolSize[0],1],[this.strides[0],1],this.padding,"channelsLast");return $s(n,[2])})}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides},t=super.getConfig();return Object.assign(e,t),e}},n1=class extends lC{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Pt(r),wa(a),Kf(e,t,n,a,r,"max")}};n1.className="MaxPooling1D";ne.registerClass(n1);var a1=class extends lC{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Pt(r),wa(a),Kf(e,t,n,a,r,"avg")}};a1.className="AveragePooling1D";ne.registerClass(a1);var uC=class extends Be{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];nn(this.poolSize,"poolSize"),nn(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Pt(this.dataFormat),wa(this.padding),this.inputSpec=[new Bt({ndim:4})]}computeOutputShape(e){e=Ze(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(Te(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}},r1=class extends uC{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Pt(r),wa(a),Kf(e,t,n,a,r,"max")}};r1.className="MaxPooling2D";ne.registerClass(r1);var s1=class extends uC{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Pt(r),wa(a),Kf(e,t,n,a,r,"avg")}};s1.className="AveragePooling2D";ne.registerClass(s1);var pC=class extends Be{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];nn(this.poolSize,"poolSize"),nn(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Pt(this.dataFormat),wa(this.padding),this.inputSpec=[new Bt({ndim:5})]}computeOutputShape(e){e=Ze(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(Te(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}},i1=class extends pC{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Pt(r),wa(a),oC(e,t,n,a,r,"max")}};i1.className="MaxPooling3D";ne.registerClass(i1);var o1=class extends pC{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Pt(r),wa(a),oC(e,t,n,a,r,"avg")}};o1.className="AveragePooling3D";ne.registerClass(o1);var cC=class extends Be{constructor(e){super(e),this.inputSpec=[new Bt({ndim:3})]}computeOutputShape(e){return[e[0],e[2]]}call(e,t){throw new Le}},l1=class extends cC{constructor(e){super(e||{})}call(e,t){return P(()=>{let n=Te(e);return Et(n,1)})}};l1.className="GlobalAveragePooling1D";ne.registerClass(l1);var u1=class extends cC{constructor(e){super(e||{})}call(e,t){return P(()=>{let n=Te(e);return ga(n,1)})}};u1.className="GlobalMaxPooling1D";ne.registerClass(u1);var dC=class extends Be{constructor(e){super(e),this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Pt(this.dataFormat),this.inputSpec=[new Bt({ndim:4})]}computeOutputShape(e){return e=e,this.dataFormat==="channelsLast"?[e[0],e[3]]:[e[0],e[1]]}call(e,t){throw new Le}getConfig(){let e={dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},p1=class extends dC{call(e,t){return P(()=>{let n=Te(e);return this.dataFormat==="channelsLast"?Et(n,[1,2]):Et(n,[2,3])})}};p1.className="GlobalAveragePooling2D";ne.registerClass(p1);var c1=class extends dC{call(e,t){return P(()=>{let n=Te(e);return this.dataFormat==="channelsLast"?ga(n,[1,2]):ga(n,[2,3])})}};c1.className="GlobalMaxPooling2D";ne.registerClass(c1);var hC=class extends Be{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)}},d1=class extends hC{constructor(e){super(e),this.supportsMasking=!0}build(e){if(e=Ze(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=Ze(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=Te(e),sC((n,a)=>[Te(this.layer.call(n,t)),[]],e,[],!1,null,null,!1,!0)[1]))}};d1.className="TimeDistributed";ne.registerClass(d1);function FH(e){Go(MU,"BidirectionalMergeMode",e)}var $H="concat",h1=class extends hC{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?$H:e.mergeMode,FH(this.mergeMode),e.weights)throw new Le("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=rC(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 Bt({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 Le("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=Xw([a,r]):this.mergeMode==="sum"?i=X(a,r):this.mergeMode==="ave"?i=z(.5,X(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){ri(this.forwardLayer.name,()=>{this.forwardLayer.build(e)}),ri(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 Le("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");let a=t;return a.layer=n,new e(a)}};h1.className="Bidirectional";ne.registerClass(h1);var m1=class extends Be{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=Te(e),e.dtype!=="float32"&&(e=lr(e,"float32")),X(z(e,this.scale),this.offset)))}};m1.className="Rescaling";ne.registerClass(m1);var{resizeBilinear:DH,cropAndResize:RH}=ea,f1=class extends Be{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=Dt([e])):l=e;for(let x=0;x{let r=DH(e,[t,n]);return lr(r,a)})}call(e,t){return P(()=>{let n=Te(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=Ze(e);let t=e.length-3,n=e.length-2;return e[t]=this.height,e[n]=this.width,e}};f1.className="CenterCrop";ne.registerClass(f1);function MH(e,t,n,a){let r=Te(e);if(r.dtype!=="int32"&&(r=lr(r,"int32")),t==="int")return r;let s=r.shape;if(r.rank===0&&(r=tn(r,-1)),t==="oneHot"&&r.shape[r.shape.length-1]!==1&&(r=tn(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=om(o,a,n,i):l=om(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 g1=class extends Be{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=Ze(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=Te(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=Te(t.countWeights)}let a=ga(e),r=Wl(e),s=_n(this.numTokens,a).bufferSync().get(0),i=Pr(r,0).bufferSync().get(0);if(!(s&&i))throw new V(`Input values must be between 0 < values <= numTokens with numTokens=${this.numTokens}`);return MH(e,this.outputMode,this.numTokens,n)})}};g1.className="CategoryEncoding";ne.registerClass(g1);var PH=["bilinear","nearest"],LI=new Set(PH),b1=class extends Be{constructor(e){if(super(e),this.height=e.height,this.width=e.width,e.interpolation)if(LI.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=!!e.cropToAspectRatio}computeOutputShape(e){e=Ze(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 ea.resizeBilinear(e,n,!this.cropToAspectRatio);if(this.interpolation==="nearest")return ea.resizeNearestNeighbor(e,n,!this.cropToAspectRatio);throw new Error(`Interpolation is ${this.interpolation} but only ${[...LI]} are supported`)})}};b1.className="Resizing";ne.registerClass(b1);var mC=class{constructor(e){this.seed=e}next(){if(this.seed!==void 0)return this.seed++}};mC.className="RandomSeed";var fC=class extends Be{constructor(e){super(e),this.randomGenerator=new mC(e.seed)}getConfig(){let e={seed:this.randomGenerator.seed},t=super.getConfig();return Object.assign(e,t),e}};fC.className="BaseRandomLayer";var OH=["bilinear","nearest"],zI=new Set(OH),y1=class extends fC{constructor(e){super(e);let{factor:t,interpolation:n="bilinear"}=e;if(this.factor=t,Array.isArray(this.factor)&&this.factor.length===2)this.widthLower=this.factor[0],this.widthUpper=this.factor[1];else if(!Array.isArray(this.factor)&&this.factor>0)this.widthLower=-this.factor,this.widthUpper=this.factor;else throw new V(`Invalid factor: ${this.factor}. Must be positive number or tuple of 2 numbers`);if(this.widthLower<-1||this.widthUpper<-1)throw new V(`factor must have values larger than -1. Got: ${this.factor}`);if(this.widthUppert?1:0}function Ph(e,t){return-1*VU(e,t)}function us(e){if(e==null)return e;let t=[];for(let n of e)t.indexOf(n)===-1&&t.push(n);return t}function UU(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 Xo(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 n0(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 an(e,t){Array.isArray(e)?(w.assert(e.length>0,()=>`${t} is unexpectedly an empty array.`),e.forEach((n,a)=>an(n,`element ${a+1} of ${t}`))):w.assert(Number.isInteger(e)&&e>0,()=>`Expected ${t} to be a positive integer, but got ${x2(e)}.`)}function x2(e){return e===null?"null":Array.isArray(e)?"["+e.map(t=>x2(t)).join(",")+"]":typeof e=="string"?`"${e}"`:`${e}`}function GU(e,t,n){let a=n!=null?n():w.now(),r;return(...s)=>{let i=n!=null?n():w.now();return i-a0){let n=`${e}_${t}`;return Dl.set(n,1),n}else return e}var QU=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function N2(e){return!!e.match(QU)}function eG(e){return e===parseInt(e.toString(),10)}function ps(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 qa(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=Sd(e,1);return Ux(n,[1,t,1])})}function nG(e){let t=[ps(e.shape)];return W(e,t)}function aG(e){if(e.rank<=1)throw new V(`batchFlatten requires a minimum rank of 2. Got rank: ${e.rank}.`);let t=[e.shape[0],ps(e.shape,1)];return W(e,t)}function ii(e,t,n){return P(()=>{switch(e.rank){case 1:return xd(e,t,n);case 2:return yf(e,[t,0],[n,e.shape[1]]);case 3:return qo(e,[t,0,0],[n,e.shape[1],e.shape[2]]);case 4:return Xl(e,[t,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3]]);case 5:return Ue(e,[t,0,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3],e.shape[4]]);case 6:return Ue(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 bx(e,t,n){return P(()=>{switch(e.rank){case 1:return xd(e,t,n);case 2:return yf(e,[0,t],[e.shape[0],n]);case 3:return qo(e,[0,0,t],[e.shape[0],e.shape[1],n]);case 4:return Xl(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 Lh(e,t,n,a){return P(()=>{switch(e.rank){case 1:return xd(e,t,n);case 2:switch(a){case 1:return ii(e,t,n);case 2:return bx(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 ii(e,t,n);case 2:return qo(e,[0,t,0],[e.shape[0],n,e.shape[2]]);case 3:return bx(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 ii(e,t,n);case 2:return Xl(e,[0,t,0,0],[e.shape[0],n,e.shape[2],e.shape[3]]);case 3:return Xl(e,[0,0,t,0],[e.shape[0],e.shape[1],n,e.shape[3]]);case 4:return bx(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 a0(e,t=-1){let n;return t<0&&(n=e[0].rank,n!==0?t=n:t=0),t===e[0].rank&&(t=-1),et(e,t)}function AI(e,t){switch(e.rank){case 1:return Qv([e,t]);case 2:return ew([e,t],0);case 3:return tw([e,t],0);case 4:return nw([e,t],0);default:throw new V(`concatAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}}function Ux(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 $f(e,t=0,n=1,a,r){return cf(e,t,n,a,r)}function ur(e,t,n,a){if(e.rank<2||t.rank<2)throw new Le(`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 Le(`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 Zl.matMul({a:e,b:t,transposeA:!1,transposeB:!1,bias:a?Gx(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(De(t,p),[l,-1]);let d=[...r,...u],c=!1,h=!1;return W(Zl.matMul({a:e,b:t,transposeA:c,transposeB:h,bias:a?Gx(e.rank,a,ja()):null,activation:n}),d)}}function T2(e,t,n){return P(()=>(Array.isArray(t)?t=je(t,"int32"):t=se(t,"int32"),mp(e,t,n)))}function Nd(e){return z(e,e)}function Gx(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=ja()),Pt(n),X(e,Gx(e.rank,t,n))))}function rG(e,t=1){if(t!==1)throw new Le(`Support for alpha values other than 1 (${t}) is not implemented yet.`);return cp(e)}function sG(e){return P(()=>he(e,X(Wt(e),1)))}function C2(e,t,n,a){return P(()=>zw(e,t,n,a))}function iG(e){return P(()=>{let t=X(.5,z(.2,e));return sn(t,0,1)})}function Td(e,t,n=!1){return n?e():t()}var oG=["fanIn","fanOut","fanAvg"],lG=["normal","uniform","truncatedNormal"];function uG(e){Xo(oG,"FanMode",e)}function pG(e){Xo(lG,"Distribution",e)}var Pa=class extends ne.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}},r0=class extends Pa{apply(e,t){return Nt(e,t)}};r0.className="Zeros";ne.registerClass(r0);var Df=class extends Pa{apply(e,t){return Qn(e,t)}};Df.className="Ones";ne.registerClass(Df);var s0=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(ve(this.value),Qn(e,t)))}getConfig(){return{value:this.value}}};s0.className="Constant";ne.registerClass(s0);var i0=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 Fs(e,this.minval,this.maxval,t,this.seed)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}};i0.className="RandomUniform";ne.registerClass(i0);var o0=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 Le(`randomNormal does not support dType ${t}.`);return $f(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};o0.className="RandomNormal";ne.registerClass(o0);var l0=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 Le(`truncatedNormal does not support dType ${t}.`);return If(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};l0.className="TruncatedNormal";ne.registerClass(l0);var u0=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,rf(e[0]))})}getConfig(){return{gain:this.gain}}};u0.className="Identity";ne.registerClass(u0);function cG(e,t="channelsLast"){let n,a;if(Pt(t),e.length===2)n=e[0],a=e[1];else if([3,4,5].indexOf(e.length)!==-1){if(t==="channelsFirst"){let r=ps(e,2);n=e[1]*r,a=e[0]*r}else if(t==="channelsLast"){let r=ps(e,0,e.length-2);n=e[e.length-2]*r,a=e[e.length-1]*r}}else{let r=ps(e);n=Math.sqrt(r),a=Math.sqrt(r)}return[n,a]}var Vn=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,uG(this.mode),this.distribution=e.distribution==null?"normal":e.distribution,pG(this.distribution),this.seed=e.seed}apply(e,t){let n=cG(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 Le(`${this.getClassName()} does not support dType ${t}.`);return If(e,0,i,t,this.seed)}else{let i=Math.sqrt(3*s);return Fs(e,-i,i,t,this.seed)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}};Vn.className="VarianceScaling";ne.registerClass(Vn);var Rf=class extends Vn{constructor(e){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Vn.className}};Rf.className="GlorotUniform";ne.registerClass(Rf);var Mf=class extends Vn{constructor(e){super({scale:1,mode:"fanAvg",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Vn.className}};Mf.className="GlorotNormal";ne.registerClass(Mf);var Pf=class extends Vn{constructor(e){super({scale:2,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Vn.className}};Pf.className="HeNormal";ne.registerClass(Pf);var Of=class extends Vn{constructor(e){super({scale:2,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Vn.className}};Of.className="HeUniform";ne.registerClass(Of);var Lf=class extends Vn{constructor(e){super({scale:1,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Vn.className}};Lf.className="LeCunNormal";ne.registerClass(Lf);var zf=class extends Vn{constructor(e){super({scale:1,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Vn.className}};zf.className="LeCunUniform";ne.registerClass(zf);var p0=class extends Pa{constructor(e){super(),this.DEFAULT_GAIN=1,this.ELEMENTS_WARN_SLOW=2e3,this.gain=e.gain==null?this.DEFAULT_GAIN:e.gain,this.seed=e.seed}apply(e,t){return P(()=>{if(e.length<2)throw new Le("Shape must be at least 2D.");if(t!=="int32"&&t!=="float32"&&t!==void 0)throw new TypeError(`Unsupported data type ${t}.`);t=t;let n=w.sizeFromShape(e.slice(0,-1)),a=e[e.length-1],r=n*a;r>this.ELEMENTS_WARN_SLOW&&console.warn(`Orthogonal initializer is being called on a matrix with more than ${this.ELEMENTS_WARN_SLOW} (${r}) elements: Slowness may result.`);let s=[Math.max(a,n),Math.min(a,n)],i=$f(s,0,1,t,this.seed),o=Uw.qr(i,!1),l=o[0],u=o[1].flatten().stridedSlice([0],[Math.min(a,n)*Math.min(a,n)],[Math.min(a,n)+1]);return l=z(l,u.sign()),na*r);return t}var DI="Variable",_2=class{constructor(e,t="float32",n=DI,a=!0,r=null){this.dtype=t==null?"float32":t,this.shape=e.shape,this.id=w2(),n=n==null?DI:n,this.originalName=I2(n),this.name=S2(this.originalName),this.trainable_=a,this.constraint=r,this.val=Ow(e,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(e){return this.assertNotDisposed(),dG(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 dG(e,t){if(e.shape.toString()!==t.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(e.shape)+" vs. "+JSON.stringify(t.shape))}function qx(e){return e.map(t=>t.read())}function c0(e){e.forEach(t=>{t[0].write(t[1])})}var Bt=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=w2(),s!=null&&(this.originalName=I2(s),this.name=S2(this.originalName)),this.rank=t.length}},hG=0,Wf=class{constructor(e,t){this.callArgs=t,this.id=hG++,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}}},mG=0,Be=class extends ne.Serializable{constructor(e={}){super(),this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=mG++,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=_r(n)+"_"+Ff(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 Cr(`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 Cr(`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 Cr(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new Cr(`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=kt(e),this.inputSpec==null||this.inputSpec.length===0)return;let t=kt(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 kt(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=kt(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 Le("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return s}else{let s=fG(e),i=this.computeOutputShape(s),o,l=gG(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,kt(e),t,this.name,p)):o=new Va(l,i,this,kt(e),t,this.name),this.addInboundNode(e,o,null,null,s,i,t),this._refCount++,this.activityRegularizer!=null)throw new Le("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 Cr(`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 Cr(`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 mm(this.weights)}build(e){this.built=!0}getWeights(e=!1){return qx(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=qx(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=kt(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=kt(e);t=kt(t),n=kt(n),a=kt(a),r=hm(r),s=hm(s);let l=[],u=[],p=[];for(let d of o)l.push(d.sourceLayer),u.push(d.nodeIndex),p.push(d.tensorIndex);new Wf({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 fG(e){e=kt(e);let t=[];for(let n of e)t.push(n.shape);return On(t)}function gG(e){return"float32"}function E2(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=fm.get(p),c;if(d==null){let m=xG(i,t);d=m.sorted,c=m.recipientCounts,fm.put(p,d),gm.put(p,c)}c={},r||Object.assign(c,gm.get(p));let h=new ni(t);for(let m=0;ma.maxNumTensors&&(a.maxNumTensors=F),F0,()=>"Expected at least one fetch, got none");let n=[],a={};if(e.length===1){let r=RI(e[0],t);n=r.sorted,a=r.recipientMap}else{let r=new Set;for(let s of e){let{sorted:i,recipientMap:o}=RI(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:vG(a)}}function vG(e){let t={};for(let n in e)t[n]=e[n].size;return t}function RI(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 wG(e){let t;if(e.sourceLayer.inboundNodes.length===1)t=e.sourceLayer.output;else{let n=null;for(let a=0;a100,yG);var F2={};Ee(F2,{maxNorm:()=>IG,minMaxNorm:()=>TG,nonNeg:()=>NG,unitNorm:()=>SG});function d0(e,t){return P(()=>mn(fe(z(e,e),t,!0)))}var Cd=class extends ne.Serializable{getConfig(){return{}}},h0=class extends Cd{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=d0(e,this.axis),n=sn(t,0,this.maxValue);return z(e,he(n,X(Kt(),t)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}};h0.className="MaxNorm";ne.registerClass(h0);var m0=class extends Cd{constructor(e){super(),this.defaultAxis=0,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return P(()=>he(e,X(Kt(),d0(e,this.axis))))}getConfig(){return{axis:this.axis}}};m0.className="UnitNorm";ne.registerClass(m0);var f0=class extends Cd{apply(e){return Ke(e)}};f0.className="NonNeg";ne.registerClass(f0);var g0=class extends Cd{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=d0(e,this.axis),n=X(z(this.rate,sn(t,this.minValue,this.maxValue)),z(1-this.rate,t));return z(e,he(n,X(Kt(),t)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}};g0.className="MinMaxNorm";ne.registerClass(g0);var MI={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function Yt(e){return t0(e)}function PI(e,t={}){return Id(e,ne.SerializationMap.getMap().classNameMap,t,"constraint")}function Zt(e){if(e==null)return null;if(typeof e=="string"){let t={className:e in MI?MI[e]:e,config:{}};return PI(t)}else return e instanceof Cd?e:PI(e)}function IG(e){return new h0(e)}function SG(e){return new m0(e)}function NG(){return new f0}function TG(e){return new g0(e)}var $2={};Ee($2,{constant:()=>EG,glorotNormal:()=>PG,glorotUniform:()=>MG,heNormal:()=>OG,heUniform:()=>LG,identity:()=>DG,leCunNormal:()=>zG,leCunUniform:()=>WG,ones:()=>_G,orthogonal:()=>BG,randomNormal:()=>FG,randomUniform:()=>AG,truncatedNormal:()=>$G,varianceScaling:()=>RG,zeros:()=>CG});function CG(){return new r0}function _G(){return new Df}function EG(e){return new s0(e)}function AG(e){return new i0(e)}function FG(e){return new o0(e)}function $G(e){return new l0(e)}function DG(e){return new u0(e)}function RG(e){return new Vn(e)}function MG(e){return new Rf(e)}function PG(e){return new Mf(e)}function OG(e){return new Pf(e)}function LG(e){return new Of(e)}function zG(e){return new Lf(e)}function WG(e){return new zf(e)}function BG(e){return new p0(e)}var D2={};Ee(D2,{Layer:()=>Be,RNN:()=>br,RNNCell:()=>$d,activation:()=>f6,add:()=>S6,alphaDropout:()=>oq,average:()=>N6,averagePooling1d:()=>C1,averagePooling2d:()=>_1,averagePooling3d:()=>E1,avgPool1d:()=>R6,avgPool2d:()=>P6,avgPool3d:()=>L6,avgPooling1d:()=>M6,avgPooling2d:()=>O6,avgPooling3d:()=>z6,batchNormalization:()=>F6,bidirectional:()=>Q6,categoryEncoding:()=>dq,centerCrop:()=>pq,concatenate:()=>T6,conv1d:()=>i6,conv2d:()=>o6,conv2dTranspose:()=>l6,conv3d:()=>u6,conv3dTranspose:()=>p6,convLstm2d:()=>X6,convLstm2dCell:()=>Y6,cropping2D:()=>d6,dense:()=>g6,depthwiseConv2d:()=>m6,dot:()=>A6,dropout:()=>b6,elu:()=>e6,embedding:()=>I6,flatten:()=>x6,gaussianDropout:()=>iq,gaussianNoise:()=>sq,globalAveragePooling1d:()=>W6,globalAveragePooling2d:()=>B6,globalMaxPool1d:()=>tq,globalMaxPool2d:()=>nq,globalMaxPooling1d:()=>TC,globalMaxPooling2d:()=>CC,gru:()=>U6,gruCell:()=>G6,input:()=>Z2,inputLayer:()=>QH,layerNormalization:()=>$6,leakyReLU:()=>n6,lstm:()=>H6,lstmCell:()=>q6,masking:()=>lq,maxPool1d:()=>aq,maxPool2d:()=>rq,maxPooling1d:()=>_C,maxPooling2d:()=>EC,maxPooling3d:()=>V6,maximum:()=>C6,minimum:()=>_6,multiply:()=>E6,permute:()=>k6,prelu:()=>a6,randomWidth:()=>hq,reLU:()=>t6,repeatVector:()=>v6,rescaling:()=>uq,reshape:()=>w6,resizing:()=>cq,rnn:()=>Z6,separableConv2d:()=>c6,simpleRNN:()=>j6,simpleRNNCell:()=>K6,softmax:()=>r6,spatialDropout1d:()=>y6,stackedRNNCells:()=>J6,thresholdedReLU:()=>s6,timeDistributed:()=>eq,upSampling2d:()=>h6,zeroPadding2d:()=>D6});async function ts(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;sX(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(),qt(t[n])}))}},P2=class extends eu{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 O2(n,t))}var Ea=class{constructor(){}static registerCallbackConstructor(e,t){w.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 z2(e,t,n,a,r,s,i,o,l){let u=new P2,p=[new UG,...Ea.createCallbacks(t)];e!=null&&p.push(...e),p.push(u);let d=new M2(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 Id(e,ne.SerializationMap.getMap().classNameMap,t,"layer",n)}function bm(e,t){return P(()=>{e.dtype!=="float32"&&(e=se(e,"float32"));let n=fe(Nd(e),t,!0),a=xn(n.shape,Kt()),r=mn(fr(n,a));return he(e,r)})}function Yo(e,t){return P(()=>Et(Nd(pe(t,e)),-1))}function Bf(e,t){return P(()=>Et(Wt(pe(t,e)),-1))}function bp(e,t){return P(()=>{let n=pe(e,t),a=sn(Wt(e),Kt(),Number.MAX_VALUE),r=Wt(he(n,a));return z(100,Et(r,-1))})}function GG(e,t){return P(()=>{let n=sn(t,Kt(),Number.MAX_VALUE),a=na(X(1,n)),r=sn(e,Kt(),Number.MAX_VALUE),s=na(X(1,r));return Et(Nd(pe(a,s)),-1)})}function HG(e,t){return P(()=>{let n=fr(0,pe(1,z(e,t)));return Et(Nd(n),-1)})}function qG(e,t){return P(()=>{let n=fr(0,pe(1,z(e,t)));return Et(n,-1)})}function jG(e,t){return P(()=>{let n=fe(z(e,t),-1),a=ga(z(pe(1,e),t),-1);return fr(0,X(1,pe(a,n)))})}function KG(e,t){return P(()=>{let n=Math.log(2),a=pe(t,e),r=pe(X(a,Ho(z(-2,a))),n);return Et(r,-1)})}function Tc(e,t,n=!1){return P(()=>{if(n)t=Xa(t);else{let a=fe(t,t.shape.length-1,!0);t=he(t,a)}return t=sn(t,Kt(),1-Kt()),yt(fe(z(se(e,"float32"),na(t)),t.shape.length-1))})}function ym(e,t,n=!1){return P(()=>{let a=se(hp(nG(e)),"int32");t=sn(t,Kt(),1-Kt());let r=t.shape,s=W(jl(a,r[r.length-1]),r);return Tc(s,t,n)})}function XG(e,t){if(!w.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=Ke(t),a=yt(Wt(t));return X(pe(n,z(t,e)),md(yn(a)))})}function Vf(e,t){return P(()=>{let n;return n=sn(t,Kt(),1-Kt()),n=na(he(n,pe(1,n))),Et(XG(e,n),-1)})}function YG(e,t){return P(()=>{let n=sn(e,Kt(),1),a=sn(t,Kt(),1);return fe(z(e,na(he(n,a))),-1)})}function ZG(e,t){return P(()=>{let n=na(X(Kt(),t));return Et(pe(t,z(e,n)),-1)})}function b0(e,t){return P(()=>{let n=bm(e,-1),a=bm(t,-1),r=z(n,a);return yt(fe(r,-1))})}var xm={meanSquaredError:Yo,meanAbsoluteError:Bf,meanAbsolutePercentageError:bp,meanSquaredLogarithmicError:GG,squaredHinge:HG,hinge:qG,categoricalHinge:jG,logcosh:KG,categoricalCrossentropy:Tc,sparseCategoricalCrossentropy:ym,binaryCrossentropy:Vf,kullbackLeiblerDivergence:YG,poisson:ZG,cosineProximity:b0};function yx(e){if(typeof e=="string"){if(e in xm)return xm[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 y0(e,t){return P(()=>{let n=z(.5,aa(t)),a=lr(_n(t,n),e.dtype);return Et(ta(e,a),-1)})}function x0(e,t){return P(()=>lr(ta(di(e,-1),di(t,-1)),"float32"))}function W2(e,t){return P(()=>se(fe(Da(ta(e,1),ta(t,1))),"float32"))}function JG(e,t){return P(()=>se(fe(Da(ta(e,1),ta(t,0))),"float32"))}function QG(e,t){return P(()=>se(fe(Da(ta(e,0),ta(t,1))),"float32"))}function B2(e,t){return P(()=>{let n=W2(e,t),a=QG(e,t),r=X(n,a);return se(rn(_n(r,0),he(n,r),0),"float32")})}function eH(e,t){return P(()=>{let n=W2(e,t),a=JG(e,t),r=X(n,a);return se(rn(_n(r,0),he(n,r),0),"float32")})}function V2(e,t){return Vf(e,t)}function U2(e,t){return e.rank===t.rank&&(e=Ds(e,[e.rank-1])),t=di(t,-1),t.dtype!==e.dtype&&(t=se(t,e.dtype)),se(ta(e,t),"float32")}var tH=Yo,nH=Yo,aH=Bf,rH=Bf,sH=bp,iH=bp,v0=Tc,oH=b0,G2=ym,vm={binaryAccuracy:y0,categoricalAccuracy:x0,precision:B2,categoricalCrossentropy:v0,sparseCategoricalCrossentropy:G2,mse:tH,MSE:nH,mae:aH,MAE:rH,mape:sH,MAPE:iH,cosine:oH};function lH(e){if(typeof e=="string"&&e in vm)return vm[e];if(typeof e!="string"&&e!=null)return e;throw new V(`Unknown metric ${e}`)}function zh(e){if(rr(e!==null,`Unknown LossOrMetricFn ${e}`),typeof e=="string")return e;{let t;for(let n of Object.keys(xm))if(xm[n]===e){t=n;break}if(t!==void 0)return t;for(let n of Object.keys(vm))if(vm[n]===e){t=n;break}return t!==void 0?t:e.name}}function uH(e){let t={Adagrad:()=>Xs.adagrad(.01),Adadelta:()=>Xs.adadelta(1,.95,Kt()),Adam:()=>Xs.adam(.001,.9,.999,Kt()),Adamax:()=>Xs.adamax(.002,.9,.999,Kt(),0),RMSProp:()=>Xs.rmsprop(.001,.9,0,Kt()),SGD:()=>Xs.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 LI(e,t,n=!1){if(e==null||typeof e!="object"||Object.getPrototypeOf(e)!==Object.prototype||!jx(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 jx(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"||!jx(e[n]))return!1;return!0}else if(Array.isArray(e)){for(let t of e)if(!jx(t))return!1;return!0}else return!1;else{let t=typeof e;return t==="string"||t==="number"||t==="boolean"}}function pH(e,t,n,a=console.log){let r=dH(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)),wm(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 wm(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 hH(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()];wm(o,t,n)}function mH(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;cb.name)}`);us(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 y=b.sourceLayer,x=b.nodeIndex,v=b.tensorIndex;this.outputLayers.push(y),this.outputLayersNodeIndices.push(x),this.outputLayersTensorIndices.push(v)}for(let b of this.inputs){let y=b.sourceLayer,x=b.nodeIndex,v=b.tensorIndex;rr(x===0,"input layer has >1 nodes"),rr(v===0,"input layer has >1 tensors"),this.inputLayers.push(y),this.inputLayersNodeIndices.push(x),this.inputLayersTensorIndices.push(v)}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 t={},n={},a={},r={},s={},i=[],o=(b,y,x,v,I,T)=>{(v==null||I==null||T==null)&&(v=b.sourceLayer,I=b.nodeIndex,T=b.tensorIndex);let C=v.inboundNodes[I];if(x.indexOf(C)!==-1)throw new Ba(`The tensor ${b.name} at layer "${v.name}" is part of a cycle.`);if(y.indexOf(C)!==-1)return;this.containerNodes.add(nr.nodeKey(v,I)),v.id in s||(s[v.id]=Object.keys(s).length),x.indexOf(C)===-1&&x.push(C);let E=C.inboundLayers.length;for(let F=0;F=0;)x.splice(x.indexOf(C),1);i.push(C)},l=[],u=[];for(let b of this.outputs)o(b,l,u);let p=i.slice().reverse();for(let b of p){n[b.id]=b,b.id in t||(t[b.id]=0);let y=t[b.id],x=a[b.outboundLayer.id]==null?0:a[b.outboundLayer.id];y=Math.max(y,x),a[b.outboundLayer.id]=y,r[b.outboundLayer.id]=b.outboundLayer,t[b.id]=y;for(let v=0;vparseInt(b,10)).sort(Ph);this.layers=[];for(let b of h){let y=c[b];y.sort((x,v)=>{let I=s[x.id],T=s[v.id];return IT?1:0});for(let x of y)x instanceof nr&&this.internalContainerRefs.push(x),this.layers.push(x)}this.layersByDepth=c,h=Object.keys(d).map(b=>parseInt(b,10)).sort(Ph);let m=this.inputs.slice(),f=[];for(let b of h)for(let y of d[b]){let x=y.outboundLayer;if(x!=null){for(let v of y.inputTensors)if(m.indexOf(v)===-1)throw new Ba(`Graph disconnected: cannot obtain value for tensor ${v} at layer "${x.name}". The following previous layers were accessed without issue: ${f}`);for(let v of y.outputTensors)m.push(v);f.push(x.name)}}this.nodesByDepth=d;let g=this.layers.map(b=>b.name);for(let b of g){let y=g.filter(x=>x===b).length;if(y!==1)throw new Ba(`The name "${b}" is used ${y} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(g))}this.outboundNodes=[],this.inboundNodes=[],new Wf({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 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}`)}c0(r)}updatedConfig(){let e=this.getConfig(),t={};return t.className=this.getClassName(),t.config=e,t.kerasVersion=`tfjs-layers ${w0}`,t.backend="TensorFlow.js",t}toJSON(e,t=!0){let n=Kx(this.updatedConfig());return t?JSON.stringify(n):n}call(e,t){return P(()=>{e=kt(e);let n=new ni;for(let a=0;a{e=kt(e);let n;return t==null?n=yi(null,e.length):n=kt(t),this.runInternalGraph(e,n)[1]})}computeOutputShape(e){let t=hm(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(Ph);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(Ph);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,b,y;if(u.callArgs!=null&&(m=u.callArgs),h.length===1){let[x,v]=h[0];m.mask==null&&(m.mask=v),b=kt(p.call(x,m)),y=kt(p.computeMask(x,v)),f=[x],g=[v]}else f=h.map(x=>x[0]),g=h.map(x=>x[1]),m.mask==null&&(m.mask=g),b=kt(p.call(f,m)),y=kt(p.computeMask(f,g));if(p.activityRegularizer)throw new Le("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(b),y)}function l(f){let g=f.name,b=Ga(f,t.customObjects!=null?t.customObjects:{});b.setFastWeightInitDuringBuild(a),r[g]=b,f.inboundNodes.forEach(y=>{if(!(y instanceof Array))throw new V(`Corrupted configuration, expected array for nodeData: ${y}`);i(b,y)})}let u=t.name,p=t.layers;for(let f of p)l(f);for(;!UU(s);)for(let f of p){let g=r[f.name];if(g.name in s){let b=s[g.name];delete s[g.name];for(let y of b)o(g,y)}}let d=[],c=[],h=t.inputLayers;for(let f of h){let g=f[0],b=f[1],y=f[2];rr(g in r);let x=r[g].inboundNodes[b].outputTensors;d.push(x[y])}let m=t.outputLayers;for(let f of m){let g=f[0],b=f[1],y=f[2];rr(g in r);let x=r[g].inboundNodes[b].outputTensors;c.push(x[y])}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 fH(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 q2(e,t){return fH(e,t,"classWeight")}async function j2(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 di(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])}),je(i,"float32")}else return null}function gH(e,t){return z(e,t)}var bH=32;function K2(e,t){let n,a,r=t;n=r.xs,a=r.ys,w.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=zI("input",e.inputNames,n),i=zI("output",e.outputNames,a),o=s[0].shape[0];w.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)})`),w.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 zI(e,t,n){if(n instanceof Te)return[n];if(Array.isArray(n))return w.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 yH(e){if(e.length===3)throw new Le("Validation with sample weights is not implemented yet.");return{xs:e[0],ys:e[1]}}async function xH(e,t,n){let a=n.batchesPerEpoch!=null;if(w.assert(e.optimizer!=null,()=>"You must compile a model before training/testing. Use LayersModel.compile(modelCompileConfig)."),w.assert(n!=null,()=>"For fitDataset(), the 2nd argument (config) is required, but it is not provided in this call."),w.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}`),w.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}`),w.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(WI(n.validationData))w.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=yH(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=L2(n.callbacks,n.yieldEvery),d=n.verbose==null?1:n.verbose,{callbackList:c,history:h}=z2(p,d,n.epochs,null,null,vH(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 v;WI(n.validationData)?v=kt(await e.evaluateDataset(n.validationData,{batches:n.validationBatches})):v=kt(e.evaluate(s,i,{batchSize:n.validationBatchSize==null?bH:n.validationBatchSize,verbose:0}));for(let I=0;I0)throw new Le("Verbose mode is not implemented yet.");w.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=wH(t)?t:await t.iterator(),o=0,l=0;for(;!a||l{if(u.value){let{xs:p,ys:d}=K2(e,u.value),c=p.concat(d),h=P(()=>r(c));if(_e(c),l===0)for(let f=0;fX(s[f],z(m,g))),l>0&&_e(b)}_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 Qp(e,t,n){return e==null?[null]:Array.isArray(e)?e.map(a=>ii(a,t,n-t)):ii(e,t,n-t)}function Xx(e,t){return P(()=>e==null?null:Array.isArray(e)?e.map(n=>Xx(n,t)):T2(e,t.dtype==="int32"?t:se(t,"int32")))}function vx(e,t){let n=[],a=0,r=null;for(;a=e&&(r=e),n.push([a,r]),a=r;return n}function X2(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 IH(e){return e instanceof Te}function Yx(e){return Array.isArray(e)}function BI(e){return!IH(e)&&!Yx(e)}function VI(e,t,n,a=!0,r=""){if(t==null||t.length===0){if(e!=null){let i=!1;if(Yx(e)&&e.length>0)i=!0;else if(BI(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(BI(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(Yx(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=X2(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 SH(e,t,n){let a=us(e.map(s=>s.shape[0]));a.sort();let r=us(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&&!w.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 NH(e,t,n){let a=[Yo,Vf,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 CH="layers-model",Dr=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).");pH(this,e,t,n)}compile(e){if(e.loss==null&&(e.loss=[]),this.loss=e.loss,typeof e.optimizer=="string")this.optimizer_=uH(e.optimizer),this.isOptimizerOwned=!0;else{if(!(e.optimizer instanceof zr))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(yx(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=>yx(s))}else{let s=yx(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=TH(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])};si("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]===Vf?["accuracy","acc"].indexOf(c)!==-1?p=y0:["crossentropy","ce"].indexOf(c)!==-1&&(p=V2):this.lossFunctions[s]===ym?["accuracy","acc"].indexOf(c)!==-1?p=U2:["crossentropy","ce"].indexOf(c)!==-1&&(p=G2):["accuracy","acc"].indexOf(c)!==-1?p=x0:["crossentropy","ce"].indexOf(c)!==-1&&(p=v0);let f;["accuracy","acc"].indexOf(c)!==-1?f="acc":["crossentropy","ce"].indexOf(c)!==-1&&(f="ce"),d=p,u=l+f}else d=lH(c),u=l+zh(c);let h;si(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;xx(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(),kH(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 ni;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 Le("Verbose predictLoop() is not implemented yet.");let r=vx(a,t),s=this.outputs.map(i=>[]);for(let i=0;i{let o=r[i][0],l=r[i][1],u=Qp(e,o,l),p=[];if(Array.isArray(u))for(let c=0;cs[l].push(o));return On(s.map(i=>et(i,0)))})}predict(e,t={}){let n=X2(e);UI(n,this.inputNames,this.feedInputShapes,!1);try{let a=t.batchSize==null?32:t.batchSize;return xx(a),this.predictLoop(n,a)}finally{za(n,e)}}predictOnBatch(e){UI(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=q2(a,this.outputNames);l=[];for(let p=0;p{let s=this.checkNumSamples(t,n,r,"steps"),i=[];if(a>0)throw new Le("Verbose mode is not implemented yet.");if(r!=null)throw new Le("steps mode in testLoop() is not implemented yet");{let o=vx(s,n),l=je(qa(0,s));for(let u=0;u1){let s=_I(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=X(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 Le("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,E=await this.standardizeUserData(o,l,null,null,C,c);u=E[0],p=E[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)),E=a[0].shape[0];u=Qp(a,C,E),s=a,a=Qp(a,0,C),p=Qp(r,C,E),i=r,r=Qp(r,0,C),g=u.concat(p)}else n.validationSteps!=null&&(f=!0);let b=a.concat(r).concat(d);this.checkTrainableWeightsConsistency();let y=this.makeTrainFunction(),x=this.getDedupedMetricsNames(),v,I;f?(this.makeTestFunction(),v=this.testFunction,I=x.slice().concat(x.map(C=>"val_"+C))):(v=null,g=[],I=x.slice());let T=L2(n.callbacks,n.yieldEvery);return await this.fitLoop(y,b,x,c,n.epochs,n.verbose,T,v,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&&_e(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=qa(0,f)),s==null&&(s=1);let{callbackList:b,history:y}=z2(i,s,r,d,f,c,a,m,p);b.setModel(this),this.history=y,await b.onTrainBegin(),this.stopTraining_=!1;for(let x=d;x{let F=T[C][0],D=T[C][1],$=ii(I,F,D-F);E.batch=C,E.size=D-F;let S=Xx(t,$),M=e(S);for(let B=0;B_r(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]=_r(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[_r(zh(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(e=>_r(zh(e)));{let e={};for(let t in this.metrics)e[t]=_r(zh(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=Cc(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=jt.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 jt.encodeWeights(this.getNamedWeights(t)),a=!1,r=null,s={modelTopology:this.toJSON(r,a),format:CH,generatedBy:`TensorFlow.js tfjs-layers v${w0}`,convertedBy:null};if(t!=null&&t.includeOptimizer&&this.optimizer!=null){s.trainingConfig=this.getTrainingConfig();let i="optimizer",{data:o,specs:l}=await jt.encodeWeights(await this.optimizer.getWeights(),i);n.specs.push(...l),n.data=jt.concatenateArrayBuffers([n.data,o])}return this.userDefinedMetadata!=null&&(LI(this.userDefinedMetadata,this.name,!0),s.userDefinedMetadata=this.userDefinedMetadata),s.weightData=n.data,s.weightSpecs=n.specs,e.save(s)}setUserDefinedMetadata(e){LI(e,this.name),this.userDefinedMetadata=e}getUserDefinedMetadata(){return this.userDefinedMetadata}};Dr.className="Model";ne.registerClass(Dr);var Y2=class extends Dr{};Y2.className="Functional";ne.registerClass(Y2);async function _H(e,t){"modelTopology"in e||(e={modelTopology:e}),e=e;let n=e.modelTopology;n.model_config!=null&&(n=n.model_config);let a=Cc(n),r=Ga(a,t);if(e.weightsManifest!=null){let s=await jt.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 EH(e,t){if(t==null&&(t={}),typeof e=="string"){let n=jt.getLoadHandlers(e,t);if(n.length===0)n.push(jt.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 AH(e,void 0,t)}async function AH(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(Cc(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}=FH(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 FH(e,t){let n=jt.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 tu=class extends Dr{constructor(e){if(super({inputs:[],outputs:[]}),e=e||{},this.trainable=!0,this.built=!1,this.name=e.name!=null?e.name:Ff("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 tu||e instanceof Dr,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=A2({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=E2(this.outputs[0])}this.inboundNodes=[],new Wf({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:yi(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 Dr({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 w.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 tu))throw new Le(`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}}};tu.className="Sequential";ne.registerClass(tu);function $H(e){return new Dr(e)}function DH(e){return new tu(e)}function Z2(e){return A2(e)}function RH(e,t){Ea.registerCallbackConstructor(e,t)}var Gn=class extends ne.Serializable{getConfig(){return{}}},J2=class extends Gn{apply(e,t=1){return rG(e,t)}};J2.className="elu";ne.registerClass(J2);var Q2=class extends Gn{apply(e){return ff(e)}};Q2.className="selu";ne.registerClass(Q2);var eC=class extends Gn{apply(e){return Ke(e)}};eC.className="relu";ne.registerClass(eC);var tC=class extends Gn{apply(e){return P(()=>fs(6,Ke(e)))}};tC.className="relu6";ne.registerClass(tC);var nC=class extends Gn{apply(e){return e}};nC.className="linear";ne.registerClass(nC);var aC=class extends Gn{apply(e){return fa(e)}};aC.className="sigmoid";ne.registerClass(aC);var rC=class extends Gn{apply(e){return iG(e)}};rC.className="hardSigmoid";ne.registerClass(rC);var sC=class extends Gn{apply(e){return Ho(e)}};sC.className="softplus";ne.registerClass(sC);var iC=class extends Gn{apply(e){return sG(e)}};iC.className="softsign";ne.registerClass(iC);var oC=class extends Gn{apply(e){return mi(e)}};oC.className="tanh";ne.registerClass(oC);var k0=class extends Gn{apply(e,t=-1){return Xa(e,t)}};k0.className="softmax";ne.registerClass(k0);var lC=class extends Gn{apply(e,t=-1){return of(e,t)}};lC.className="logSoftmax";ne.registerClass(lC);var uC=class extends Gn{apply(e,t=1){return P(()=>z(fa(z(e,t)),e))}};uC.className="swish";ne.registerClass(uC);var pC=class extends Gn{apply(e){return P(()=>z(e,mi(Ho(e))))}};pC.className="mish";ne.registerClass(pC);function bs(e){return e.getClassName()}function wx(e,t={}){return Id(e,ne.SerializationMap.getMap().classNameMap,t,"activation")}function ys(e){if(e==null){let t={};return t.className="linear",t.config={},wx(t)}if(typeof e=="string"){let t={};return t.className=e,t.config={},wx(t)}else return e instanceof Gn?e:wx(e)}function I0(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 cC=class extends ne.Serializable{},_d=class extends cC{constructor(e){super(),I0(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=Nt([1]);return this.hasL1&&(t=X(t,fe(z(this.l1,Wt(e))))),this.hasL2&&(t=X(t,fe(z(this.l2,Nd(e))))),W(t,[])})}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(e,t){return new e({l1:t.l1,l2:t.l2})}};_d.className="L1L2";ne.registerClass(_d);function MH(e){return I0(e),new _d({l1:e!=null?e.l1:null,l2:0})}function PH(e){return I0(e),new _d({l2:e!=null?e.l2:null,l1:0})}var GI={l1l2:"L1L2"};function mt(e){return t0(e)}function HI(e,t={}){return Id(e,ne.SerializationMap.getMap().classNameMap,t,"regularizer")}function Ct(e){if(e==null)return null;if(typeof e=="string"){let t={className:e in GI?GI[e]:e,config:{}};return HI(t)}else return e instanceof cC?e:HI(e)}var S0=class extends Be{constructor(e){super(e==null?{}:e),this.supportsMasking=!0,e!=null&&(this.maxValue=e.maxValue)}call(e,t){e=Ce(e);let n=Ke(e);return this.maxValue!=null&&(n=sn(n,0,this.maxValue)),n}computeOutputShape(e){return e}getConfig(){let e={maxValue:this.maxValue},t=super.getConfig();return Object.assign(e,t),e}};S0.className="ReLU";ne.registerClass(S0);var N0=class extends Be{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=Ce(e);return hd(n,this.alpha)}computeOutputShape(e){return e}getConfig(){let e={alpha:this.alpha},t=super.getConfig();return Object.assign(e,t),e}};N0.className="LeakyReLU";ne.registerClass(N0);var T0=class extends Be{constructor(e){if(super(e==null?{}:e),this.DEFAULT_ALPHA_INITIALIZER="zeros",e==null&&(e={}),this.supportsMasking=!0,this.alphaInitializer=Tt(e.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=Ct(e.alphaRegularizer),this.alphaConstraint=Zt(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(Pt(t),t==="channelsFirst"?De(e,[0,2,3,1]):e))}function dC(e,t){return P(()=>(Pt(t),t==="channelsFirst"?De(e,[0,2,3,4,1]):e))}function OH(e,t,n,a=1,r="valid",s,i=1){return P(()=>{if(s==null&&(s=ja()),Pt(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=De(e,[0,2,1])),r==="causal")throw new Le("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");let o=ef(e,t,a,r==="same"?"same":"valid","NWC",i);return n!=null&&(o=Ya(o,n)),o})}function qI(e,t,n,a=[1,1],r="valid",s,i,o=null){return P(()=>{if(s==null&&(s=ja()),Pt(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=A0(e,s);if(r==="causal")throw new Le("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return l=Zl.conv2d({x:l,filter:t,strides:a,pad:r==="same"?"same":"valid",dilations:i,dataFormat:"NHWC",bias:n,activation:o}),s==="channelsFirst"&&(l=De(l,[0,3,1,2])),l})}function LH(e,t,n,a=[1,1,1],r="valid",s,i){return P(()=>{if(s==null&&(s=ja()),Pt(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=dC(e,s);if(r==="causal")throw new Le("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return o=rw(o,t,a,r==="same"?"same":"valid","NDHWC",i),n!=null&&(o=Ya(o,n)),s==="channelsFirst"&&(o=De(o,[0,4,1,2,3])),o})}var F0=class extends Be{constructor(e,t){if(super(t),this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",F0.verifyArgs(t),this.rank=e,an(this.rank,"rank"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new Le(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=Wl(t.kernelSize,e,"kernelSize"),this.strides=Wl(t.strides==null?1:t.strides,e,"strides"),this.padding=t.padding==null?"valid":t.padding,wa(this.padding),this.dataFormat=t.dataFormat==null?"channelsLast":t.dataFormat,Pt(this.dataFormat),this.activation=ys(t.activation),this.useBias=t.useBias==null?!0:t.useBias,this.biasInitializer=Tt(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=Zt(t.biasConstraint),this.biasRegularizer=Ct(t.biasRegularizer),this.activityRegularizer=Ct(t.activityRegularizer),this.dilationRate=Wl(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"&&!n0(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:bs(this.activation),useBias:this.useBias,biasInitializer:At(this.biasInitializer),biasRegularizer:mt(this.biasRegularizer),activityRegularizer:mt(this.activityRegularizer),biasConstraint:Yt(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}},Ed=class extends F0{constructor(e,t){super(e,t),this.kernel=null,Ed.verifyArgs(t),this.filters=t.filters,an(this.filters,"filters"),this.kernelInitializer=Tt(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=Zt(t.kernelConstraint),this.kernelRegularizer=Ct(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=Ce(e);let n,a=this.bias==null?null:this.bias.read(),r=v2(this.activation.getClassName());if(r!=null&&this.rank===2)n=qI(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate,r);else{if(this.rank===1)n=OH(e,this.kernel.read(),a,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)n=qI(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)n=LH(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new Le("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)}`)}},Ad=class extends Ed{constructor(e){super(2,e),Ad.verifyArgs(e)}getConfig(){let e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!n0(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)}.`)}};Ad.className="Conv2D";ne.registerClass(Ad);var Fd=class extends Ed{constructor(e){super(3,e),Fd.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)}.`)}};Fd.className="Conv3D";ne.registerClass(Fd);var $0=class extends Ad{constructor(e){if(super(e),this.inputSpec=[new Bt({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 Bt({ndim:4,axes:{[t]:n}})],this.built=!0}call(e,t){return P(()=>{let n=Ce(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=De(n,[0,2,3,1]));let g=tf(n,this.kernel.read(),f,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(g=De(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}};$0.className="Conv2DTranspose";ne.registerClass($0);var D0=class extends Fd{constructor(e){if(super(e),this.inputSpec=[new Bt({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 Bt({ndim:5,axes:{[t]:n}})],this.built=!0}call(e,t){return P(()=>{let n=Ce(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],b=sr(l,m,d,this.padding),y=sr(u,f,c,this.padding),x=sr(p,g,h,this.padding),v=[r,b,y,x,this.filters];this.dataFormat!=="channelsLast"&&(n=De(n,[0,2,3,4,1]));let I=sw(n,this.kernel.read(),v,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(I=De(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}};D0.className="Conv3DTranspose";ne.registerClass(D0);var hC=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=Tt(t.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=Ct(t.depthwiseRegularizer),this.depthwiseConstraint=Zt(t.depthwiseConstraint),this.pointwiseInitializer=Tt(t.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=Ct(t.pointwiseRegularizer),this.pointwiseConstraint=Zt(t.pointwiseConstraint)}build(e){if(e=Je(e),e.length{e=Ce(e);let n;if(this.rank===1)throw new Le("1D separable convolution is not implemented yet.");return this.rank===2&&(this.dataFormat==="channelsFirst"&&(e=De(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=De(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=At(this.depthwiseInitializer),e.pointwiseInitializer=At(this.pointwiseInitializer),e.depthwiseRegularizer=mt(this.depthwiseRegularizer),e.pointwiseRegularizer=mt(this.pointwiseRegularizer),e.depthwiseConstraint=Yt(this.depthwiseConstraint),e.pointwiseConstraint=Yt(this.pointwiseConstraint),e}};hC.className="SeparableConv";var R0=class extends hC{constructor(e){super(2,e)}};R0.className="SeparableConv2D";ne.registerClass(R0);var Uf=class extends Ed{constructor(e){super(1,e),Uf.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"&&!n0(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)}.`)}};Uf.className="Conv1D";ne.registerClass(Uf);var M0=class extends Be{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=Ce(e),this.dataFormat==="channelsLast"){let n=Lh(e,this.cropping[0][0],e.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return Lh(n,this.cropping[1][0],e.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{let n=Lh(e,this.cropping[0][0],e.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return Lh(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}};M0.className="Cropping2D";ne.registerClass(M0);var P0=class extends Be{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,Pt(this.dataFormat),this.interpolation=e.interpolation==null?"nearest":e.interpolation,ZU(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=Ce(e),a=n.shape;if(this.dataFormat==="channelsFirst"){n=De(n,[0,2,3,1]);let r=this.size[0]*a[2],s=this.size[1]*a[3],i=this.interpolation==="nearest"?ea.resizeNearestNeighbor(n,[r,s]):ea.resizeBilinear(n,[r,s]);return De(i,[0,3,1,2])}else{let r=this.size[0]*a[1],s=this.size[1]*a[2];return this.interpolation==="nearest"?ea.resizeNearestNeighbor(n,[r,s]):ea.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}};P0.className="UpSampling2D";ne.registerClass(P0);function zH(e,t,n=[1,1],a="valid",r,s){return P(()=>{r==null&&(r=ja()),Pt(r);let i=A0(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=Es(i,t,n,a==="same"?"same":"valid","NHWC",s),r==="channelsFirst"&&(i=De(i,[0,3,1,2])),i})}var O0=class extends F0{constructor(e){super(2,e),this.depthwiseKernel=null,this.depthMultiplier=e.depthMultiplier==null?1:e.depthMultiplier,this.depthwiseInitializer=Tt(e.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=Zt(e.depthwiseConstraint),this.depthwiseRegularizer=Ct(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=Ce(e);let n=zH(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=At(this.depthwiseInitializer),e.depthwiseRegularizer=mt(this.depthwiseRegularizer),e.depthwiseConstraint=Yt(this.depthwiseRegularizer),e}};O0.className="DepthwiseConv2D";ne.registerClass(O0);function mC(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 fC(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(qa(2,l));if(t=De(t,u),s!=null)throw new Le("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=se(se(r,"bool"),"float32"),r.rank===l-1&&(r=nn(r,-1)),r=De(r,u)),a&&(t=ya(t,0),r!=null&&(r=ya(r,0)));let p=[],d,c=n,h=t.shape[0],m=ct(t),f;r!=null&&(f=ct(r));for(let b=0;be(y,c));if(r==null)d=x[0],c=x[1];else{let v=P(()=>{let I=f[b],T=pe(aa(I),I),C=X(z(x[0],I),z(c[0],T)),E=c.map((F,D)=>X(z(x[1][D],I),z(F,T)));return{output:C,newStates:E}});d=v.output,c=v.newStates}o&&p.push(d)}let g;return o&&(g=Dt(p,1)),[d,g,c]})}var br=class extends Be{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 qf({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 Bt({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 qa(0,e).map(t=>null)}else return this.states_}setStates(e){this.states_=e}computeOutputShape(e){Hx(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 Bt({shape:[null,s]}));this.stateful&&this.resetStates()}resetStates(e,t=!1){P(()=>{if(!this.stateful)throw new Cr("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=>Nt([n,a])):this.states_=[Nt([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=>Nt([n,a])):this.states_[0]=Nt([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;aqt(a.clone()))})}apply(e,t){let n=t==null?null:t.initialState,a=t==null?null:t.constants;t==null&&(t={});let r=mC(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 Bt({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=Ce(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=fC((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=Nt(e.shape);return t=fe(t,[1,2]),t=Sd(t),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(n=>n>1?Ux(t,[1,n]):t):this.cell.stateSize>1?[Ux(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()===br.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}))}};br.className="RNN";ne.registerClass(br);var $d=class extends Be{},Gf=class extends $d{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,an(this.units,"units"),this.activation=ys(e.activation==null?this.DEFAULT_ACTIVATION:e.activation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=Tt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=Tt(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=Tt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Ct(e.kernelRegularizer),this.recurrentRegularizer=Ct(e.recurrentRegularizer),this.biasRegularizer=Ct(e.biasRegularizer),this.kernelConstraint=Zt(e.kernelConstraint),this.recurrentConstraint=Zt(e.recurrentConstraint),this.biasConstraint=Zt(e.biasConstraint),this.dropout=Ql([1,gs([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=Ql([1,gs([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;0aa(e),rate:this.dropout,training:a,dropoutFunc:this.dropoutFunc})),0aa(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=X(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:bs(this.activation),useBias:this.useBias,kernelInitializer:At(this.kernelInitializer),recurrentInitializer:At(this.recurrentInitializer),biasInitializer:At(this.biasInitializer),kernelRegularizer:mt(this.kernelRegularizer),recurrentRegularizer:mt(this.recurrentRegularizer),biasRegularizer:mt(this.biasRegularizer),activityRegularizer:mt(this.activityRegularizer),kernelConstraint:Yt(this.kernelConstraint),recurrentConstraint:Yt(this.recurrentConstraint),biasConstraint:Yt(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign(Object.assign({},e),t)}};Gf.className="SimpleRNNCell";ne.registerClass(Gf);var L0=class extends br{constructor(e){e.cell=new Gf(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)}};L0.className="SimpleRNN";ne.registerClass(L0);var Hf=class extends $d{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,an(this.units,"units"),this.activation=ys(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=ys(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=Tt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=Tt(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=Tt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Ct(e.kernelRegularizer),this.recurrentRegularizer=Ct(e.recurrentRegularizer),this.biasRegularizer=Ct(e.biasRegularizer),this.kernelConstraint=Zt(e.kernelConstraint),this.recurrentConstraint=Zt(e.recurrentConstraint),this.biasConstraint=Zt(e.biasConstraint),this.dropout=Ql([1,gs([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=Ql([1,gs([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],0aa(e),rate:this.dropout,training:n,count:3,dropoutFunc:this.dropoutFunc})),0aa(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)}};z0.className="GRU";ne.registerClass(z0);var Dd=class extends $d{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,an(this.units,"units"),this.activation=ys(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=ys(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=Tt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=Tt(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=Tt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=e.unitForgetBias,this.kernelRegularizer=Ct(e.kernelRegularizer),this.recurrentRegularizer=Ct(e.recurrentRegularizer),this.biasRegularizer=Ct(e.biasRegularizer),this.kernelConstraint=Zt(e.kernelConstraint),this.recurrentConstraint=Zt(e.recurrentConstraint),this.biasConstraint=Zt(e.biasConstraint),this.dropout=Ql([1,gs([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=Ql([1,gs([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 Df().apply([s]),p=r.apply([s*2]);return AI(AI(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],0aa(e),rate:this.dropout,training:n,count:4,dropoutFunc:this.dropoutFunc})),0aa(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)}};W0.className="LSTM";ne.registerClass(W0);var qf=class extends $d{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{si(`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 qx(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):C2(t(),n),o=()=>Td(i,t,a);return!r||r<=1?qt(o().clone()):Array(r).fill(void 0).map(o).map(l=>qt(l.clone()))}var WH=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=Nt(r);return Array.isArray(t)?Array(t.length).fill(s):[s]})}resetStates(e,t=!1){P(()=>{if(!this.stateful)throw new Cr("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(()=>Nt(r)):this.states_=[Nt(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(()=>Nt(r)):this.states_[0]=Nt(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;sqt(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]]}};gC.className="ConvRNN2D";var jf=class extends Dd{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,an(this.filters,"filters"),this.kernelSize=Wl(n,2,"kernelSize"),this.kernelSize.forEach(o=>an(o,"kernelSize")),this.strides=Wl(a||1,2,"strides"),this.strides.forEach(o=>an(o,"strides")),this.padding=r||"valid",wa(this.padding),this.dataFormat=s||"channelsLast",Pt(this.dataFormat),this.dilationRate=Wl(i||1,2,"dilationRate"),this.dilationRate.forEach(o=>an(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=Qn([u]),m=l.apply([u*2]);return a0([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;0aa(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);0aa(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),b=l(r,h,3),y=3,[x,v,I,T]=zn(this.kernel.read(),i,y),[C,E,F,D]=this.useBias?zn(this.bias.read(),i):[null,null,null,null];u=this.inputConv(u,x,C,this.padding),p=this.inputConv(p,v,E,this.padding),d=this.inputConv(d,I,F,this.padding),c=this.inputConv(c,T,D,this.padding);let[$,S,M,B]=zn(this.recurrentKernel.read(),i,y);m=this.recurrentConv(m,$),f=this.recurrentConv(f,S),g=this.recurrentConv(g,M),b=this.recurrentConv(b,B);let U=this.recurrentActivation.apply(X(u,m)),H=this.recurrentActivation.apply(X(p,f)),j=X(z(H,s),z(U,this.activation.apply(X(d,g)))),K=z(this.recurrentActivation.apply(X(c,b)),this.activation.apply(j));return[K,K,j]})}getConfig(){let e=super.getConfig(),{units:t}=e,n=WH(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=Rt(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 Rt(e,t,1,"same",this.dataFormat==="channelsFirst"?"NCHW":"NHWC")}};jf.className="ConvLSTM2DCell";ne.registerClass(jf);var B0=class extends gC{constructor(e){let t=new jf(e);super(Object.assign(Object.assign({},e),{cell:t}))}static fromConfig(e,t){return new e(t)}};B0.className="ConvLSTM2D";ne.registerClass(B0);var Kf=class extends Be{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=Ce(e);if(0C2(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()}};Kf.className="Dropout";ne.registerClass(Kf);var V0=class extends Kf{constructor(e){super(e),this.inputSpec=[{ndim:3}]}getNoiseShape(e){let t=e.shape;return[t[0],1,t[2]]}};V0.className="SpatialDropout1D";ne.registerClass(V0);var U0=class extends Be{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,an(this.units,"units"),this.activation=ys(e.activation),e.useBias!=null&&(this.useBias=e.useBias),this.kernelInitializer=Tt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=Tt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=Zt(e.kernelConstraint),this.biasConstraint=Zt(e.biasConstraint),this.kernelRegularizer=Ct(e.kernelRegularizer),this.biasRegularizer=Ct(e.biasRegularizer),this.activityRegularizer=Ct(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=Ce(e),a=v2(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:bs(this.activation),useBias:this.useBias,kernelInitializer:At(this.kernelInitializer),biasInitializer:At(this.biasInitializer),kernelRegularizer:mt(this.kernelRegularizer),biasRegularizer:mt(this.biasRegularizer),activityRegularizer:mt(this.activityRegularizer),kernelConstraint:Yt(this.kernelConstraint),biasConstraint:Yt(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}};U0.className="Dense";ne.registerClass(U0);var G0=class extends Be{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],ps(e,1)]}call(e,t){return P(()=>{this.invokeCallHook(e,t);let n=Ce(e);if(this.dataFormat==="channelsFirst"&&n.rank>1){let a=[0];for(let r=2;r{this.invokeCallHook(e,t);let n=Ce(e);return this.activation.apply(n)})}getConfig(){let e={activation:bs(this.activation)},t=super.getConfig();return Object.assign(e,t),e}};H0.className="Activation";ne.registerClass(H0);var q0=class extends Be{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=Ce(e),tG(e,this.n)))}getConfig(){let e={n:this.n},t=super.getConfig();return Object.assign(e,t),e}};q0.className="RepeatVector";ne.registerClass(q0);var j0=class extends Be{constructor(e){super(e),this.targetShape=e.targetShape;for(let t=0;t{this.invokeCallHook(e,t);let n=Ce(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}};j0.className="Reshape";ne.registerClass(j0);var K0=class extends Be{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=qa(1,e.dims.length+1);if(!w.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 Bt({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 De(Ce(e),this.dimsIncludingBatch)}getConfig(){let e={dims:this.dims},t=super.getConfig();return Object.assign(e,t),e}};K0.className="Permute";ne.registerClass(K0);var X0=class extends Be{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=Ce(e),a=-1;return kc(gi(n,this.maskValue),a)}call(e,t){return P(()=>{this.invokeCallHook(e,t);let n=Ce(e),a=-1,r=!0,s=kc(gi(n,this.maskValue),a,r);return z(n,se(s,n.dtype))})}};X0.className="Masking";ne.registerClass(X0);var Y0=class extends Be{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(kt(e.inputLength))}this.inputDim=e.inputDim,an(this.inputDim,"inputDim"),this.outputDim=e.outputDim,an(this.outputDim,"outputDim"),this.embeddingsInitializer=Tt(e.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=Ct(e.embeddingsRegularizer),this.activityRegularizer=Ct(e.activityRegularizer),this.embeddingsConstraint=Zt(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=Ce(e),gi(e,qe(e))):null)}computeOutputShape(e){if(e=Je(e),this.inputLength==null)return[...e,this.outputDim];let t=kt(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=Ce(e);n.dtype!=="int32"&&(n=lr(n,"int32"));let a=T2(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:At(this.embeddingsInitializer),embeddingsRegularizer:mt(this.embeddingsRegularizer),activityRegularizer:mt(this.activityRegularizer),embeddingsConstraint:Yt(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},t=super.getConfig();return Object.assign(e,t),e}};Y0.className="Embedding";ne.registerClass(Y0);var Zo=class extends Be{constructor(e){super(e||{}),this.supportsMasking=!0}mergeFunction(e){throw new Le}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&&us(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=gs(a);for(let s of e){let i=s.rank;for(let o=0;o1){let u=qa(1,l).concat([0]);n.push(De(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(De(W(s,[-1,u]),[1,0]),p)}else if(i>1){let o=[i-1].concat(qa(0,i-1));s=De(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:nn(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(()=>a0(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 Le("batchDot is not implemented for tensors of 4D or higher rank yet");if(w.assert(e.shape.length>=2,()=>`batchDot requires the rank of x to be >= 2, but got ${e.shape.length}`),w.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 Le("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 Le("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)=>ec(r,e[s].shape.length)):a=[ec(this.axes,t.shape.length),ec(this.axes,n.shape.length)],this.normalize&&(t=bm(t,a[0]),n=bm(n,a[1])),BH(t,n,a)}interpretAxes(e,t){let n;return Array.isArray(this.axes)?n=this.axes:n=[ec(this.axes,e.length),ec(this.axes,t.length)],n}computeOutputShape(e){w.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 Le("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}};a1.className="Dot";ne.registerClass(a1);var r1=class extends Be{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=Ce(e);return Td(()=>X($f(n.shape,0,this.stddev),n),()=>n,t.training||!1)})}};r1.className="GaussianNoise";ne.registerClass(r1);var s1=class extends Be{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=Ce(e);return this.rate>0&&this.rate<1?Td(()=>{let a=Math.sqrt(this.rate/(1-this.rate));return z(n,$f(n.shape,1,a))},()=>n,t.training||!1):n})}};s1.className="GaussianDropout";ne.registerClass(s1);var i1=class extends Be{constructor(e){super(e),this.supportsMasking=!0,this.rate=e.rate,this.noiseShape=e.noiseShape}_getNoiseShape(e){return this.noiseShape||Ce(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 Td(()=>{let a=Ce(e),r=1.6732632423543772,s=1.0507009873554805,i=-r*s,o=Or(Fs(n),this.rate);o=lr(o,"float32");let l=((1-this.rate)*(1+this.rate*i**2))**-.5,u=-l*i*this.rate,p=X(z(a,o),z(X(o,-1),i));return X(z(p,l),u)},()=>Ce(e),t.training||!1)}return e})}};i1.className="AlphaDropout";ne.registerClass(i1);function _c(e,t,n,a,r,s=.001){let i;if(e.rank===2)i=Kv(e,t,n,a,r,s);else if(e.rank===3)i=Xv(e,t,n,a,r,s);else if(e.rank===4)i=Yv(e,t,n,a,r,s);else throw new Le(`batchNormalization is not implemented for array of rank ${e.rank} yet`);return i}function VH(e,t,n,a,r=.001){return P(()=>{let s=gd(e,a),i=s.mean,o=s.variance;return[_c(e,i,o,n,t,r),i,o]})}function UH(e,t,n,a,r=.001){return P(()=>{let s=gd(e,a),i=s.mean,o=s.variance,l=[];for(let h of qa(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[_c(e,u,p,c,d,r),i,o]})}function GH(e,t,n,a,r=.001){return w.arraysEqual(a.slice().sort(),qa(0,e.rank-1))?VH(e,t,n,a,r):UH(e,t,n,a,r)}var o1=class extends Be{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=Tt(e.betaInitializer||"zeros"),this.gammaInitializer=Tt(e.gammaInitializer||"ones"),this.movingMeanInitializer=Tt(e.movingMeanInitializer||"zeros"),this.movingVarianceInitializer=Tt(e.movingVarianceInitializer||"ones"),this.betaConstraint=Zt(e.betaConstraint),this.gammaConstraint=Zt(e.gammaConstraint),this.betaRegularizer=Ct(e.betaRegularizer),this.gammaRegularizer=Ct(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 Bt({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=Ce(e),r=a.shape,s=r.length,i=qa(0,s),o=this.axis>=0?this.axis:this.axis+s;i.splice(o,1);let l=yi(1,s);l[o]=r[o];let u=i.slice();u.sort();let p=!w.arraysEqual(u,qa(0,s).slice(0,s-1)),d=()=>{if(p){let g=W(this.movingMean.read(),l),b=W(this.movingVariance.read(),l),y=this.center?W(this.beta.read(),l):null,x=this.scale?W(this.gamma.read(),l):null;return _c(a,g,b,y,x,this.epsilon)}else return _c(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]=GH(a,this.gamma.read(),this.beta.read(),i,this.epsilon),f=(g,b,y)=>{P(()=>{let x=1-y,v=g.read(),I=z(pe(v,b),x);g.write(pe(v,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:At(this.betaInitializer),gammaInitializer:At(this.gammaInitializer),movingMeanInitializer:At(this.movingMeanInitializer),movingVarianceInitializer:At(this.movingVarianceInitializer),betaRegularizer:mt(this.betaRegularizer),gammaRegularizer:mt(this.gammaRegularizer),betaConstraint:Yt(this.betaConstraint),gammaConstraint:Yt(this.gammaConstraint)},t=super.getConfig();return Object.assign(e,t),e}};o1.className="BatchNormalization";ne.registerClass(o1);var l1=class extends Be{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=Tt(e.betaInitializer||"zeros"),this.gammaInitializer=Tt(e.gammaInitializer||"ones"),this.betaRegularizer=Ct(e.betaRegularizer),this.gammaRegularizer=Ct(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!==us(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=Ce(e),a=n.shape,r=a.length;return P(()=>{let{mean:s,variance:i}=gd(n,this.axis,!0),o=yi(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]],va(e,a)})}var u1=class extends Be{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 Bt({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(()=>HH(Ce(e),this.padding,this.dataFormat))}getConfig(){let e={padding:this.padding,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};u1.className="ZeroPadding2D";ne.registerClass(u1);function Xf(e,t,n,a,r,s){return P(()=>{Pt(r),k2(s),wa(a),n==null&&(n=[1,1]),a==null&&(a="valid"),r==null&&(r=ja()),s==null&&(s="max"),e=A0(e,r);let i,o=a==="same"?"same":"valid";return s==="max"?i=Mt(e,t,n,o):i=xa(e,t,n,o),r==="channelsFirst"&&(i=De(i,[0,3,1,2])),i})}function bC(e,t,n,a,r,s){return P(()=>{Pt(r),k2(s),wa(a),n==null&&(n=[1,1,1]),a==null&&(a="valid"),r==null&&(r=ja()),s==null&&(s="max"),e=dC(e,r);let i,o=a==="same"?"same":"valid";return s==="max"?i=ww(e,t,n,o):i=jv(e,t,n,o),r==="channelsFirst"&&(i=De(i,[0,4,1,2,3])),i})}var yC=class extends Be{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(an(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)}`);an(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,wa(this.padding),this.inputSpec=[new Bt({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=Sd(Ce(e),2);let n=this.poolingFunction(Ce(e),[this.poolSize[0],1],[this.strides[0],1],this.padding,"channelsLast");return Ds(n,[2])})}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides},t=super.getConfig();return Object.assign(e,t),e}},p1=class extends yC{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Pt(r),wa(a),Xf(e,t,n,a,r,"max")}};p1.className="MaxPooling1D";ne.registerClass(p1);var c1=class extends yC{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Pt(r),wa(a),Xf(e,t,n,a,r,"avg")}};c1.className="AveragePooling1D";ne.registerClass(c1);var xC=class extends Be{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];an(this.poolSize,"poolSize"),an(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Pt(this.dataFormat),wa(this.padding),this.inputSpec=[new Bt({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(Ce(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}},d1=class extends xC{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Pt(r),wa(a),Xf(e,t,n,a,r,"max")}};d1.className="MaxPooling2D";ne.registerClass(d1);var h1=class extends xC{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Pt(r),wa(a),Xf(e,t,n,a,r,"avg")}};h1.className="AveragePooling2D";ne.registerClass(h1);var vC=class extends Be{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];an(this.poolSize,"poolSize"),an(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Pt(this.dataFormat),wa(this.padding),this.inputSpec=[new Bt({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(Ce(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}},m1=class extends vC{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Pt(r),wa(a),bC(e,t,n,a,r,"max")}};m1.className="MaxPooling3D";ne.registerClass(m1);var f1=class extends vC{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Pt(r),wa(a),bC(e,t,n,a,r,"avg")}};f1.className="AveragePooling3D";ne.registerClass(f1);var wC=class extends Be{constructor(e){super(e),this.inputSpec=[new Bt({ndim:3})]}computeOutputShape(e){return[e[0],e[2]]}call(e,t){throw new Le}},g1=class extends wC{constructor(e){super(e||{})}call(e,t){return P(()=>{let n=Ce(e);return Et(n,1)})}};g1.className="GlobalAveragePooling1D";ne.registerClass(g1);var b1=class extends wC{constructor(e){super(e||{})}call(e,t){return P(()=>{let n=Ce(e);return ga(n,1)})}};b1.className="GlobalMaxPooling1D";ne.registerClass(b1);var kC=class extends Be{constructor(e){super(e),this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Pt(this.dataFormat),this.inputSpec=[new Bt({ndim:4})]}computeOutputShape(e){return e=e,this.dataFormat==="channelsLast"?[e[0],e[3]]:[e[0],e[1]]}call(e,t){throw new Le}getConfig(){let e={dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},y1=class extends kC{call(e,t){return P(()=>{let n=Ce(e);return this.dataFormat==="channelsLast"?Et(n,[1,2]):Et(n,[2,3])})}};y1.className="GlobalAveragePooling2D";ne.registerClass(y1);var x1=class extends kC{call(e,t){return P(()=>{let n=Ce(e);return this.dataFormat==="channelsLast"?ga(n,[1,2]):ga(n,[2,3])})}};x1.className="GlobalMaxPooling2D";ne.registerClass(x1);var IC=class extends Be{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)}},v1=class extends IC{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=Ce(e),fC((n,a)=>[Ce(this.layer.call(n,t)),[]],e,[],!1,null,null,!1,!0)[1]))}};v1.className="TimeDistributed";ne.registerClass(v1);function qH(e){Xo(YU,"BidirectionalMergeMode",e)}var jH="concat",w1=class extends IC{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?jH:e.mergeMode,qH(this.mergeMode),e.weights)throw new Le("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=mC(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 Bt({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 Le("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=a0([a,r]):this.mergeMode==="sum"?i=X(a,r):this.mergeMode==="ave"?i=z(.5,X(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){si(this.forwardLayer.name,()=>{this.forwardLayer.build(e)}),si(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 Le("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");let a=t;return a.layer=n,new e(a)}};w1.className="Bidirectional";ne.registerClass(w1);var k1=class extends Be{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=Ce(e),e.dtype!=="float32"&&(e=lr(e,"float32")),X(z(e,this.scale),this.offset)))}};k1.className="Rescaling";ne.registerClass(k1);var{resizeBilinear:KH,cropAndResize:XH}=ea,I1=class extends Be{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=Dt([e])):l=e;for(let x=0;x{let r=KH(e,[t,n]);return lr(r,a)})}call(e,t){return P(()=>{let n=Ce(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}};I1.className="CenterCrop";ne.registerClass(I1);function YH(e,t,n,a){let r=Ce(e);if(r.dtype!=="int32"&&(r=lr(r,"int32")),t==="int")return r;let s=r.shape;if(r.rank===0&&(r=nn(r,-1)),t==="oneHot"&&r.shape[r.shape.length-1]!==1&&(r=nn(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=dm(o,a,n,i):l=dm(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 S1=class extends Be{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=Ce(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=Ce(t.countWeights)}let a=ga(e),r=Hl(e),s=_n(this.numTokens,a).bufferSync().get(0),i=Or(r,0).bufferSync().get(0);if(!(s&&i))throw new V(`Input values must be between 0 < values <= numTokens with numTokens=${this.numTokens}`);return YH(e,this.outputMode,this.numTokens,n)})}};S1.className="CategoryEncoding";ne.registerClass(S1);var ZH=["bilinear","nearest"],jI=new Set(ZH),N1=class extends Be{constructor(e){if(super(e),this.height=e.height,this.width=e.width,e.interpolation)if(jI.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=!!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 ea.resizeBilinear(e,n,!this.cropToAspectRatio);if(this.interpolation==="nearest")return ea.resizeNearestNeighbor(e,n,!this.cropToAspectRatio);throw new Error(`Interpolation is ${this.interpolation} but only ${[...jI]} are supported`)})}};N1.className="Resizing";ne.registerClass(N1);var SC=class{constructor(e){this.seed=e}next(){if(this.seed!==void 0)return this.seed++}};SC.className="RandomSeed";var NC=class extends Be{constructor(e){super(e),this.randomGenerator=new SC(e.seed)}getConfig(){let e={seed:this.randomGenerator.seed},t=super.getConfig();return Object.assign(e,t),e}};NC.className="BaseRandomLayer";var JH=["bilinear","nearest"],KI=new Set(JH),T1=class extends NC{constructor(e){super(e);let{factor:t,interpolation:n="bilinear"}=e;if(this.factor=t,Array.isArray(this.factor)&&this.factor.length===2)this.widthLower=this.factor[0],this.widthUpper=this.factor[1];else if(!Array.isArray(this.factor)&&this.factor>0)this.widthLower=-this.factor,this.widthUpper=this.factor;else throw new V(`Invalid factor: ${this.factor}. Must be positive number or tuple of 2 numbers`);if(this.widthLower<-1||this.widthUpper<-1)throw new V(`factor must have values larger than -1. Got: ${this.factor}`);if(this.widthUpper{let n=Te(e);this.imgHeight=n.shape[n.shape.length-3];let a=n.shape[n.shape.length-2];this.widthFactor=As([1],1+this.widthLower,1+this.widthUpper,"float32",this.randomGenerator.next());let r=this.widthFactor.dataSync()[0]*a;r=Math.round(r);let s=[this.imgHeight,r];switch(this.interpolation){case"bilinear":return ea.resizeBilinear(e,s);case"nearest":return ea.resizeNearestNeighbor(e,s);default:throw new Error(`Interpolation is ${this.interpolation} - but only ${[...zI]} are supported`)}})}};y1.className="RandomWidth";ne.registerClass(y1);function LH(e){return new mp(e)}function zH(e){return new x0(e)}function WH(e){return new g0(e)}function BH(e){return new b0(e)}function VH(e){return new y0(e)}function UH(e){return new w0(e)}function GH(e){return new v0(e)}function HH(e){return new Vf(e)}function qH(e){return new Sd(e)}function jH(e){return new S0(e)}function KH(e){return new Nd(e)}function XH(e){return new N0(e)}function YH(e){return new T0(e)}function ZH(e){return new C0(e)}function JH(e){return new _0(e)}function QH(e){return new E0(e)}function e6(e){return new O0(e)}function t6(e){return new M0(e)}function n6(e){return new jf(e)}function a6(e){return new R0(e)}function r6(e){return new P0(e)}function s6(e){return new L0(e)}function i6(e){return new z0(e)}function o6(e){return new W0(e)}function l6(e){return new V0(e)}function u6(e){return new U0(e)}function p6(e){return new H0(e)}function c6(e){return new K0(e)}function d6(e){return new q0(e)}function h6(e){return new j0(e)}function m6(e){return new G0(e)}function f6(e){return new X0(e)}function g6(e){return new Q0(e)}function b6(e){return new e1(e)}function y6(e){return new t1(e)}function x1(e){return new a1(e)}function x6(e){return x1(e)}function v6(e){return x1(e)}function v1(e){return new s1(e)}function w6(e){return v1(e)}function k6(e){return v1(e)}function w1(e){return new o1(e)}function I6(e){return w1(e)}function S6(e){return w1(e)}function N6(e){return new l1(e)}function T6(e){return new p1(e)}function gC(e){return new u1(e)}function bC(e){return new c1(e)}function yC(e){return new n1(e)}function xC(e){return new r1(e)}function C6(e){return new i1(e)}function _6(e){return new F0(e)}function E6(e){return new Gf(e)}function A6(e){return new $0(e)}function F6(e){return new Cd(e)}function $6(e){return new A0(e)}function D6(e){return new Uf(e)}function R6(e){return new D0(e)}function M6(e){return new qf(e)}function P6(e){return new gr(e)}function O6(e){return new Hf(e)}function L6(e){return new h1(e)}function z6(e){return new d1(e)}var W6=gC,B6=bC,V6=yC,U6=xC;function G6(e){return new Y0(e)}function H6(e){return new Z0(e)}function q6(e){return new J0(e)}function j6(e){return new B0(e)}function K6(e){return new m1(e)}function X6(e){return new f1(e)}function Y6(e){return new b1(e)}function Z6(e){return new g1(e)}function J6(e){return new y1(e)}var vC={};Ee(vC,{MAPE:()=>uq,MSE:()=>dq,binaryAccuracy:()=>Q6,binaryCrossentropy:()=>eq,categoricalAccuracy:()=>nq,categoricalCrossentropy:()=>aq,cosineProximity:()=>iq,mape:()=>pq,meanAbsoluteError:()=>oq,meanAbsolutePercentageError:()=>lq,meanSquaredError:()=>cq,mse:()=>hq,precision:()=>rq,recall:()=>sq,sparseCategoricalAccuracy:()=>tq});function Q6(e,t){return p0(e,t)}function eq(e,t){return $2(e,t)}function tq(e,t){return D2(e,t)}function nq(e,t){return c0(e,t)}function aq(e,t){return d0(e,t)}function rq(e,t){return F2(e,t)}function sq(e,t){return zG(e,t)}function iq(e,t){return u0(e,t)}function oq(e,t){return Wf(e,t)}function lq(e,t){return fp(e,t)}function uq(e,t){return fp(e,t)}function pq(e,t){return fp(e,t)}function cq(e,t){return Ho(e,t)}function dq(e,t){return Ho(e,t)}function hq(e,t){return Ho(e,t)}var wC={};Ee(wC,{modelFromJSON:()=>hH});var kC={};Ee(kC,{l1:()=>fq,l1l2:()=>mq,l2:()=>gq});function mq(e){return new kd(e)}function fq(e){return vH(e)}function gq(e){return wH(e)}var IC=class extends Xl{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 Mh(e,t){return et}var SC=class extends IC{constructor(e){if(super(),e==null&&(e={}),e.restoreBestWeights)throw new Le("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=Mh:this.mode==="max"?this.monitorFunc=WI:this.monitor.indexOf("acc")!==-1?this.monitorFunc=WI:this.monitorFunc=Mh,this.monitorFunc===Mh&&(this.minDelta*=-1)}async onTrainBegin(e){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===Mh?1/0:-1/0}async onEpochEnd(e,t){await es(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 bq(e){return new SC(e)}var yq={earlyStopping:bq},xq=G();xq.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 _a;(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"})(_a||(_a={}));var BI;(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={}))})(BI||(BI={}));var k1={};function vq(e,t){let n={tfOpName:e,category:"custom",inputs:[],attrs:[],customExecutor:t};k1[e]=n}function NC(e){return k1[e]}function wq(e){delete k1[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,u=o<0?t.inputNames.length+o:o;if(s.type==="tensor")return dn(t.inputNames[u],n,a,r);if(s.type==="tensors"){let c=t.inputs.slice(o,l);return t.inputNames.slice(o,l).filter((h,m)=>{var f;return((f=c[m])===null||f===void 0?void 0:f.op)!=="NoOp"}).map(h=>dn(h,n,a,r))}let p=dn(t.inputNames[u],n,a,r),d=p.dataSync();return s.type==="number"?d[0]:v.toNestedArray(p.shape,d)}let i=t.attrParams[e];return i&&i.value}function dn(e,t,n,a){let[r,s]=Zn(e,n);if(a!=null){let o=a.getHashTableHandleByName(r);if(o!=null)return o}let i=n.currentContextIds.find(o=>!!t[bm(r,o)]);return i!==void 0?t[bm(r,i)][s]:void 0}function VI(e,t,n){return t[bm(e,n.currentContextId)]}function _r(e,t){let[n,a,r]=Zn(e,t);return[bm(n,t&&t.currentContextId),a,r]}function bm(e,t){return t?`${e}-${t}`:e}function Zn(e,t){if(e==="")return["",0,void 0];let n=t!=null&&t.parseNodeNameCache!=null;if(n){let s=t.parseNodeNameCache.get(e);if(s!=null)return s}let a=e.split(":"),r;if(a.length===1)r=[e,0,void 0];else{let s=a[0],i=a.length===3?a[1]:void 0,o=Number(a[a.length-1]);r=[s,o,i]}return n&&t.parseNodeNameCache.set(e,r),r}function Hh(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 TC={};Ee(TC,{json:()=>kq});var kq=[{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}]}],CC={};Ee(CC,{json:()=>Iq});var Iq=[{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:"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}]},{tfOpName:"IsFinite",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"IsInf",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],_C={};Ee(_C,{json:()=>Sq});var Sq=[{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"}]}],EC={};Ee(EC,{json:()=>Nq});var Nq=[{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"}]}],AC={};Ee(AC,{json:()=>Tq});var Tq=[{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:"RandomUniformInt",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"minval",name:"minval",type:"number"},{tfName:"maxval",name:"maxval",type:"number"},{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,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"}]}],FC={};Ee(FC,{json:()=>Cq});var Cq=[{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}]}],$C={};Ee($C,{json:()=>_q});var _q=[{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"}]}],DC={};Ee(DC,{json:()=>Eq});var Eq=[{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"}]}],RC={};Ee(RC,{json:()=>Aq});var Aq=[{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"}]}],MC={};Ee(MC,{json:()=>Fq});var Fq=[{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"}]}],PC={};Ee(PC,{json:()=>$q});var $q=[{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}]},{tfOpName:"BitwiseAnd",category:"logical",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}]}],OC={};Ee(OC,{json:()=>Dq});var Dq=[{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"}]},{tfOpName:"MatrixBandPart",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"numLower",type:"tensor"},{start:1,name:"numUpper",type:"tensor"}]}],LC={};Ee(LC,{json:()=>Rq});var Rq=[{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"}]}],zC={};Ee(zC,{json:()=>Mq});var Mq=[{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"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{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"}]}],WC={};Ee(WC,{json:()=>Pq});var Pq=[{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}]},{tfOpName:"TensorScatterUpdate",category:"slice_join",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"values",type:"tensor"}]}],BC={};Ee(BC,{json:()=>Oq});var Oq=[{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"}]}],VC={};Ee(VC,{json:()=>Lq});var Lq=[{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}]}],UC={};Ee(UC,{json:()=>zq});var zq=[{tfOpName:"StaticRegexReplace",category:"string",inputs:[{start:0,name:"input",type:"tensor"}],attrs:[{tfName:"pattern",name:"pattern",type:"string"},{tfName:"rewrite",name:"rewrite",type:"string"},{tfName:"replace_global",name:"replaceGlobal",type:"bool"}]},{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"}]}],GC={};Ee(GC,{json:()=>Wq});var Wq=[{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:"EnsureShape",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:[]}],UI=class{static get Instance(){return this._instance||(this._instance=new this)}constructor(){let e=[TC,CC,_C,EC,AC,FC,$C,DC,RC,MC,PC,OC,LC,zC,WC,BC,VC,UC,GC],t=[].concat(...e.map(n=>n.json));this.opMappers=t.reduce((n,a)=>(n[a.tfOpName]=a,n),{})}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,b)=>{let[y,,x]=_r(g),w=i[y];if(w.outputs!=null){let I=w.outputs.indexOf(x);if(I!==-1){let T=`${y}:${I}`;f.inputNames[b]=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]=_r(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]=_r(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=NC(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=Ux(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=Ux(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"string[]":i=Yx(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=Yx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"number":i=Hx(e.attr,r.tfName,r.defaultValue||0),i===void 0&&r.tfDeprecatedName&&(i=Hx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"number[]":i=Xx(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=Xx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"bool":i=Gx(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=Gx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"bool[]":i=Jx(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=Jx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"shape":i=Kx(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=Kx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"shape[]":i=Zx(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=Zx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"dtype":i=qx(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=qx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"dtype[]":i=jx(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=jx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"func":i=GI(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=GI(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]=_r(u.name),d={name:p,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:I1(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]=_r(d),f=r[h];if(f.outputs!=null){let g=f.outputs.indexOf(m);if(g!==-1){let b=`${h}:${g}`;p.inputNames[c]=b}}p.inputs.push(f),f.children.push(p)})});let o=e.ret;e.signature.outputArg.forEach(u=>{let[p,d]=_r(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 Bq(e){let t=G().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 HC(e,t){let n=Array.isArray(e)?String.fromCharCode.apply(null,e):Bq(e);return t?n:n.toLowerCase()}function Ux(e,t,n,a=!1){let r=e[t];return r!=null?HC(r.s,a):n}function Gx(e,t,n){let a=e[t];return a?a.b:n}function Hx(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 I1(e){switch(typeof e=="string"&&(e=_a[e]),e){case _a.DT_FLOAT:case _a.DT_HALF:return"float32";case _a.DT_INT32:case _a.DT_INT64:case _a.DT_INT8:case _a.DT_UINT8:return"int32";case _a.DT_BOOL:return"bool";case _a.DT_DOUBLE:return"float32";case _a.DT_STRING:return"string";default:return null}}function GI(e,t,n){let a=e[t];return a&&a.func?a.func.name:n}function qx(e,t,n){let a=e[t];return a&&a.type?I1(a.type):n}function jx(e,t,n){let a=e[t];return a&&a.list&&a.list.type?a.list.type.map(r=>I1(r)):n}function qC(e){if(!e.unknownRank)return e.dim!=null?e.dim.map(t=>typeof t.size=="number"?t.size:parseInt(t.size,10)):[]}function Kx(e,t,n){let a=e[t];return a&&a.shape?qC(a.shape):n}function Xx(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 Yx(e,t,n,a=!1){let r=e[t];return r&&r.list&&r.list.s?r.list.s.map(s=>HC(s,a)):n}function Zx(e,t,n){let a=e[t];return a&&a.list&&a.list.shape?a.list.shape.map(r=>qC(r)):n}function Jx(e,t,n){let a=e[t];return a&&a.list&&a.list.b?a.list.b:n}var Vq=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 dn(e,this.tensorMap,this.context)}getAttr(e,t){let n=this.node.rawAttrs[e];if(n.tensor!=null)return dn(e,this.tensorMap,this.context);if(n.i!=null||n.f!=null)return Hx(this.node.rawAttrs,e,t);if(n.s!=null)return Ux(this.node.rawAttrs,e,t);if(n.b!=null)return Gx(this.node.rawAttrs,e,t);if(n.shape!=null)return Kx(this.node.rawAttrs,e,t);if(n.type!=null)return qx(this.node.rawAttrs,e,t);if(n.list!=null){if(n.list.i!=null||n.list.f!=null)return Xx(this.node.rawAttrs,e,t);if(n.list.s!=null)return Yx(this.node.rawAttrs,e,t);if(n.list.shape!=null)return Zx(this.node.rawAttrs,e,t);if(n.list.b!=null)return Jx(this.node.rawAttrs,e,t);if(n.list.type!=null)return jx(this.node.rawAttrs,e,t)}return t}},on={};Ee(on,{OP_SCOPE_SUFFIX:()=>Sv,abs:()=>Wt,acos:()=>Av,acosh:()=>Fv,add:()=>X,addN:()=>wN,all:()=>Jm,any:()=>xc,argMax:()=>ci,argMin:()=>$v,asin:()=>Dv,asinh:()=>Rv,atan:()=>Mv,atan2:()=>Pv,atanh:()=>Ov,avgPool:()=>xa,avgPool3d:()=>zv,basicLSTMCell:()=>NN,batchNorm:()=>Cs,batchNorm2d:()=>Wv,batchNorm3d:()=>Bv,batchNorm4d:()=>Vv,batchToSpaceND:()=>rd,bincount:()=>Uv,bitwiseAnd:()=>TN,booleanMaskAsync:()=>gT,broadcastArgs:()=>CN,broadcastTo:()=>ai,buffer:()=>ze,cast:()=>ie,ceil:()=>Gv,clipByValue:()=>rn,clone:()=>or,complex:()=>Dr,concat:()=>Qe,concat1d:()=>Hv,concat2d:()=>qv,concat3d:()=>jv,concat4d:()=>Kv,conv1d:()=>Qm,conv2d:()=>Rt,conv2dTranspose:()=>ef,conv3d:()=>Yv,conv3dTranspose:()=>Zv,cos:()=>sd,cosh:()=>tf,cosineWindow:()=>Sf,cumprod:()=>kc,cumsum:()=>nf,denseBincount:()=>om,depthToSpace:()=>Jv,depthwiseConv2d:()=>_s,diag:()=>EN,dilation2d:()=>Qv,div:()=>he,divNoNan:()=>ew,dot:()=>tw,dropout:()=>Fw,einsum:()=>FN,elu:()=>up,enclosingPowerOfTwo:()=>$w,ensureShape:()=>$N,equal:()=>ta,erf:()=>nw,euclideanNorm:()=>sw,exp:()=>yn,expandDims:()=>tn,expm1:()=>iw,eye:()=>af,fft:()=>md,fill:()=>xn,floor:()=>cp,floorDiv:()=>Zm,fused:()=>ql,gather:()=>dp,gatherND:()=>vT,greater:()=>_n,greaterEqual:()=>Pr,ifft:()=>Hl,imag:()=>id,image:()=>ea,inTopKAsync:()=>wT,irfft:()=>yf,isFinite:()=>ow,isInf:()=>lw,isNaN:()=>uw,leakyRelu:()=>od,less:()=>Bl,lessEqual:()=>Es,linalg:()=>Mw,linspace:()=>ON,localResponseNormalization:()=>pw,log:()=>na,log1p:()=>ld,logSigmoid:()=>cw,logSoftmax:()=>sf,logSumExp:()=>of,logicalAnd:()=>Da,logicalNot:()=>ud,logicalOr:()=>lf,logicalXor:()=>dw,losses:()=>DT,lowerBound:()=>zN,matMul:()=>$e,max:()=>ga,maxPool:()=>Mt,maxPool3d:()=>hw,maxPoolWithArgmax:()=>WN,maximum:()=>mr,mean:()=>Et,meshgrid:()=>BN,min:()=>Wl,minimum:()=>ms,mirrorPad:()=>mw,mod:()=>fw,moments:()=>pd,movingAverage:()=>bT,mul:()=>z,multiRNNCell:()=>VN,multinomial:()=>UN,neg:()=>yt,norm:()=>pp,notEqual:()=>fi,oneHot:()=>Vl,ones:()=>Qn,onesLike:()=>aa,op:()=>L,outerProduct:()=>GN,pad:()=>va,pad1d:()=>HN,pad2d:()=>qN,pad3d:()=>jN,pad4d:()=>KN,pool:()=>gw,pow:()=>Rr,prelu:()=>dd,print:()=>_v,prod:()=>bw,raggedGather:()=>XN,raggedRange:()=>YN,raggedTensorToTensor:()=>ZN,rand:()=>JN,randomGamma:()=>nT,randomNormal:()=>pf,randomStandardNormal:()=>aT,randomUniform:()=>As,randomUniformInt:()=>rT,range:()=>gi,real:()=>Ul,reciprocal:()=>kw,relu:()=>Ke,relu6:()=>cf,reshape:()=>W,reverse:()=>ya,reverse1d:()=>sT,reverse2d:()=>iT,reverse3d:()=>oT,reverse4d:()=>lT,rfft:()=>fd,round:()=>df,rsqrt:()=>hf,scalar:()=>ve,scatterND:()=>yT,searchSorted:()=>uf,selu:()=>mf,separableConv2d:()=>Fs,setdiff1dAsync:()=>uT,sigmoid:()=>fa,sign:()=>Iw,signal:()=>$T,sin:()=>ff,sinh:()=>gf,slice:()=>Ue,slice1d:()=>hd,slice2d:()=>bf,slice3d:()=>Bo,slice4d:()=>Gl,softmax:()=>Xa,softplus:()=>Wo,spaceToBatchND:()=>cd,sparse:()=>RT,sparseToDense:()=>xT,spectral:()=>FT,split:()=>zn,sqrt:()=>mn,square:()=>ut,squaredDifference:()=>xf,squeeze:()=>$s,stack:()=>Dt,step:()=>Vo,stridedSlice:()=>Sw,string:()=>MT,sub:()=>pe,sum:()=>fe,tan:()=>Nw,tanh:()=>hi,tensor:()=>bn,tensor1d:()=>je,tensor2d:()=>$a,tensor3d:()=>gd,tensor4d:()=>Ma,tensor5d:()=>pT,tensor6d:()=>cT,tensorScatterUpdate:()=>hT,tile:()=>Ln,topk:()=>Cw,transpose:()=>De,truncatedNormal:()=>kf,unique:()=>_w,unsortedSegmentSum:()=>If,unstack:()=>ct,upperBound:()=>mT,variable:()=>Ew,where:()=>an,whereAsync:()=>Aw,zeros:()=>Nt,zerosLike:()=>qe});var Uq=(e,t,n,a=on)=>{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`)}},Gq=(e,t,n,a=on)=>{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(dn(e.inputNames[0],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(dn(e.inputNames[0],t,n))];case"IsInf":return[a.isInf(dn(e.inputNames[0],t,n))];case"IsFinite":return[a.isFinite(dn(e.inputNames[0],t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function Fa(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 HI(e){return!(typeof e=="number"||e.some(t=>t<0))}function Jp(e,t,n){let a=Qx(e,n),r=!HI(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=Qx(s.shape,a)}),!HI(a))throw new Error(`Non-fully-defined elementShape: ${a}`);return a}function Qx(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 Hq=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=ve(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),Fa(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,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 + `);if(n)if(KI.has(n))this.interpolation=n;else throw new V(`Invalid interpolation parameter: ${n} is not implemented`)}getConfig(){let e={factor:this.factor,interpolation:this.interpolation},t=super.getConfig();return Object.assign(e,t),e}computeOutputShape(e){e=Je(e);let t=e[2];return[this.imgHeight,-1,t]}call(e,t){return P(()=>{let n=Ce(e);this.imgHeight=n.shape[n.shape.length-3];let a=n.shape[n.shape.length-2];this.widthFactor=Fs([1],1+this.widthLower,1+this.widthUpper,"float32",this.randomGenerator.next());let r=this.widthFactor.dataSync()[0]*a;r=Math.round(r);let s=[this.imgHeight,r];switch(this.interpolation){case"bilinear":return ea.resizeBilinear(e,s);case"nearest":return ea.resizeNearestNeighbor(e,s);default:throw new Error(`Interpolation is ${this.interpolation} + but only ${[...KI]} are supported`)}})}};T1.className="RandomWidth";ne.registerClass(T1);function QH(e){return new gp(e)}function e6(e){return new C0(e)}function t6(e){return new S0(e)}function n6(e){return new N0(e)}function a6(e){return new T0(e)}function r6(e){return new E0(e)}function s6(e){return new _0(e)}function i6(e){return new Uf(e)}function o6(e){return new Ad(e)}function l6(e){return new $0(e)}function u6(e){return new Fd(e)}function p6(e){return new D0(e)}function c6(e){return new R0(e)}function d6(e){return new M0(e)}function h6(e){return new P0(e)}function m6(e){return new O0(e)}function f6(e){return new H0(e)}function g6(e){return new U0(e)}function b6(e){return new Kf(e)}function y6(e){return new V0(e)}function x6(e){return new G0(e)}function v6(e){return new q0(e)}function w6(e){return new j0(e)}function k6(e){return new K0(e)}function I6(e){return new Y0(e)}function S6(e){return new Z0(e)}function N6(e){return new Q0(e)}function T6(e){return new n1(e)}function C6(e){return new e1(e)}function _6(e){return new t1(e)}function E6(e){return new J0(e)}function A6(e){return new a1(e)}function F6(e){return new o1(e)}function $6(e){return new l1(e)}function D6(e){return new u1(e)}function C1(e){return new c1(e)}function R6(e){return C1(e)}function M6(e){return C1(e)}function _1(e){return new h1(e)}function P6(e){return _1(e)}function O6(e){return _1(e)}function E1(e){return new f1(e)}function L6(e){return E1(e)}function z6(e){return E1(e)}function W6(e){return new g1(e)}function B6(e){return new y1(e)}function TC(e){return new b1(e)}function CC(e){return new x1(e)}function _C(e){return new p1(e)}function EC(e){return new d1(e)}function V6(e){return new m1(e)}function U6(e){return new z0(e)}function G6(e){return new Hf(e)}function H6(e){return new W0(e)}function q6(e){return new Dd(e)}function j6(e){return new L0(e)}function K6(e){return new Gf(e)}function X6(e){return new B0(e)}function Y6(e){return new jf(e)}function Z6(e){return new br(e)}function J6(e){return new qf(e)}function Q6(e){return new w1(e)}function eq(e){return new v1(e)}var tq=TC,nq=CC,aq=_C,rq=EC;function sq(e){return new r1(e)}function iq(e){return new s1(e)}function oq(e){return new i1(e)}function lq(e){return new X0(e)}function uq(e){return new k1(e)}function pq(e){return new I1(e)}function cq(e){return new N1(e)}function dq(e){return new S1(e)}function hq(e){return new T1(e)}var AC={};Ee(AC,{MAPE:()=>Sq,MSE:()=>Cq,binaryAccuracy:()=>mq,binaryCrossentropy:()=>fq,categoricalAccuracy:()=>bq,categoricalCrossentropy:()=>yq,cosineProximity:()=>wq,mape:()=>Nq,meanAbsoluteError:()=>kq,meanAbsolutePercentageError:()=>Iq,meanSquaredError:()=>Tq,mse:()=>_q,precision:()=>xq,recall:()=>vq,sparseCategoricalAccuracy:()=>gq});function mq(e,t){return y0(e,t)}function fq(e,t){return V2(e,t)}function gq(e,t){return U2(e,t)}function bq(e,t){return x0(e,t)}function yq(e,t){return v0(e,t)}function xq(e,t){return B2(e,t)}function vq(e,t){return eH(e,t)}function wq(e,t){return b0(e,t)}function kq(e,t){return Bf(e,t)}function Iq(e,t){return bp(e,t)}function Sq(e,t){return bp(e,t)}function Nq(e,t){return bp(e,t)}function Tq(e,t){return Yo(e,t)}function Cq(e,t){return Yo(e,t)}function _q(e,t){return Yo(e,t)}var FC={};Ee(FC,{modelFromJSON:()=>_H});var $C={};Ee($C,{l1:()=>Aq,l1l2:()=>Eq,l2:()=>Fq});function Eq(e){return new _d(e)}function Aq(e){return MH(e)}function Fq(e){return PH(e)}var DC=class extends eu{constructor(){super(...arguments),this.model=null}setModel(e){if(!(e instanceof Dr))throw new Error("model must be a LayersModel, not some other Container");this.model=e}};function Wh(e,t){return et}var RC=class extends DC{constructor(e){if(super(),e==null&&(e={}),e.restoreBestWeights)throw new Le("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=Wh:this.mode==="max"?this.monitorFunc=XI:this.monitor.indexOf("acc")!==-1?this.monitorFunc=XI:this.monitorFunc=Wh,this.monitorFunc===Wh&&(this.minDelta*=-1)}async onTrainBegin(e){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===Wh?1/0:-1/0}async onEpochEnd(e,t){await ts(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 $q(e){return new RC(e)}var Dq={earlyStopping:$q},Rq=G();Rq.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 _a;(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"})(_a||(_a={}));var YI;(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={}))})(YI||(YI={}));var A1={};function Mq(e,t){let n={tfOpName:e,category:"custom",inputs:[],attrs:[],customExecutor:t};A1[e]=n}function MC(e){return A1[e]}function Pq(e){delete A1[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,u=o<0?t.inputNames.length+o:o;if(s.type==="tensor")return dn(t.inputNames[u],n,a,r);if(s.type==="tensors"){let c=t.inputs.slice(o,l);return t.inputNames.slice(o,l).filter((h,m)=>{var f;return((f=c[m])===null||f===void 0?void 0:f.op)!=="NoOp"}).map(h=>dn(h,n,a,r))}let p=dn(t.inputNames[u],n,a,r),d=p.dataSync();return s.type==="number"?d[0]:w.toNestedArray(p.shape,d)}let i=t.attrParams[e];return i&&i.value}function dn(e,t,n,a){let[r,s]=Zn(e,n);if(a!=null){let o=a.getHashTableHandleByName(r);if(o!=null)return o}let i=n.currentContextIds.find(o=>!!t[km(r,o)]);return i!==void 0?t[km(r,i)][s]:void 0}function ZI(e,t,n){return t[km(e,n.currentContextId)]}function Er(e,t){let[n,a,r]=Zn(e,t);return[km(n,t&&t.currentContextId),a,r]}function km(e,t){return t?`${e}-${t}`:e}function Zn(e,t){if(e==="")return["",0,void 0];let n=t!=null&&t.parseNodeNameCache!=null;if(n){let s=t.parseNodeNameCache.get(e);if(s!=null)return s}let a=e.split(":"),r;if(a.length===1)r=[e,0,void 0];else{let s=a[0],i=a.length===3?a[1]:void 0,o=Number(a[a.length-1]);r=[s,o,i]}return n&&t.parseNodeNameCache.set(e,r),r}function Yh(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 Ar(e){return e.kept?e:or(e)}var PC={};Ee(PC,{json:()=>Oq});var Oq=[{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}]}],OC={};Ee(OC,{json:()=>Lq});var Lq=[{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:"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}]},{tfOpName:"IsFinite",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"IsInf",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],LC={};Ee(LC,{json:()=>zq});var zq=[{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"}]}],zC={};Ee(zC,{json:()=>Wq});var Wq=[{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"}]}],WC={};Ee(WC,{json:()=>Bq});var Bq=[{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:"RandomUniformInt",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"minval",name:"minval",type:"number"},{tfName:"maxval",name:"maxval",type:"number"},{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,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"}]}],BC={};Ee(BC,{json:()=>Vq});var Vq=[{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}]}],VC={};Ee(VC,{json:()=>Uq});var Uq=[{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"}]}],UC={};Ee(UC,{json:()=>Gq});var Gq=[{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"}]}],GC={};Ee(GC,{json:()=>Hq});var Hq=[{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"}]}],HC={};Ee(HC,{json:()=>qq});var qq=[{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"}]}],qC={};Ee(qC,{json:()=>jq});var jq=[{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}]},{tfOpName:"BitwiseAnd",category:"logical",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}]}],jC={};Ee(jC,{json:()=>Kq});var Kq=[{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"}]},{tfOpName:"MatrixBandPart",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"numLower",type:"tensor"},{start:1,name:"numUpper",type:"tensor"}]}],KC={};Ee(KC,{json:()=>Xq});var Xq=[{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"}]}],XC={};Ee(XC,{json:()=>Yq});var Yq=[{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"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{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"}]}],YC={};Ee(YC,{json:()=>Zq});var Zq=[{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}]},{tfOpName:"TensorScatterUpdate",category:"slice_join",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"values",type:"tensor"}]}],ZC={};Ee(ZC,{json:()=>Jq});var Jq=[{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"}]}],JC={};Ee(JC,{json:()=>Qq});var Qq=[{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}]}],QC={};Ee(QC,{json:()=>ej});var ej=[{tfOpName:"StaticRegexReplace",category:"string",inputs:[{start:0,name:"input",type:"tensor"}],attrs:[{tfName:"pattern",name:"pattern",type:"string"},{tfName:"rewrite",name:"rewrite",type:"string"},{tfName:"replace_global",name:"replaceGlobal",type:"bool"}]},{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"}]}],e_={};Ee(e_,{json:()=>tj});var tj=[{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:"EnsureShape",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:[]}],JI=class{static get Instance(){return this._instance||(this._instance=new this)}constructor(){let e=[PC,OC,LC,zC,WC,BC,VC,UC,GC,HC,qC,jC,KC,XC,YC,ZC,JC,QC,e_],t=[].concat(...e.map(n=>n.json));this.opMappers=t.reduce((n,a)=>(n[a.tfOpName]=a,n),{})}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,b)=>{let[y,,x]=Er(g),v=i[y];if(v.outputs!=null){let I=v.outputs.indexOf(x);if(I!==-1){let T=`${y}:${I}`;f.inputNames[b]=T}}f.inputs.push(v),v.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]=Er(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]=Er(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=MC(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=Zx(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=Zx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"string[]":i=rv(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=rv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"number":i=Qx(e.attr,r.tfName,r.defaultValue||0),i===void 0&&r.tfDeprecatedName&&(i=Qx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"number[]":i=av(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=av(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"bool":i=Jx(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=Jx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"bool[]":i=iv(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=iv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"shape":i=nv(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=nv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"shape[]":i=sv(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=sv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"dtype":i=ev(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=ev(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"dtype[]":i=tv(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=tv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"func":i=QI(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=QI(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]=Er(u.name),d={name:p,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:F1(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]=Er(d),f=r[h];if(f.outputs!=null){let g=f.outputs.indexOf(m);if(g!==-1){let b=`${h}:${g}`;p.inputNames[c]=b}}p.inputs.push(f),f.children.push(p)})});let o=e.ret;e.signature.outputArg.forEach(u=>{let[p,d]=Er(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 nj(e){let t=G().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 t_(e,t){let n=Array.isArray(e)?String.fromCharCode.apply(null,e):nj(e);return t?n:n.toLowerCase()}function Zx(e,t,n,a=!1){let r=e[t];return r!=null?t_(r.s,a):n}function Jx(e,t,n){let a=e[t];return a?a.b:n}function Qx(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 F1(e){switch(typeof e=="string"&&(e=_a[e]),e){case _a.DT_FLOAT:case _a.DT_HALF:return"float32";case _a.DT_INT32:case _a.DT_INT64:case _a.DT_INT8:case _a.DT_UINT8:return"int32";case _a.DT_BOOL:return"bool";case _a.DT_DOUBLE:return"float32";case _a.DT_STRING:return"string";default:return null}}function QI(e,t,n){let a=e[t];return a&&a.func?a.func.name:n}function ev(e,t,n){let a=e[t];return a&&a.type?F1(a.type):n}function tv(e,t,n){let a=e[t];return a&&a.list&&a.list.type?a.list.type.map(r=>F1(r)):n}function n_(e){if(!e.unknownRank)return e.dim!=null?e.dim.map(t=>typeof t.size=="number"?t.size:parseInt(t.size,10)):[]}function nv(e,t,n){let a=e[t];return a&&a.shape?n_(a.shape):n}function av(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 rv(e,t,n,a=!1){let r=e[t];return r&&r.list&&r.list.s?r.list.s.map(s=>t_(s,a)):n}function sv(e,t,n){let a=e[t];return a&&a.list&&a.list.shape?a.list.shape.map(r=>n_(r)):n}function iv(e,t,n){let a=e[t];return a&&a.list&&a.list.b?a.list.b:n}var aj=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 dn(e,this.tensorMap,this.context)}getAttr(e,t){let n=this.node.rawAttrs[e];if(n.tensor!=null)return dn(e,this.tensorMap,this.context);if(n.i!=null||n.f!=null)return Qx(this.node.rawAttrs,e,t);if(n.s!=null)return Zx(this.node.rawAttrs,e,t);if(n.b!=null)return Jx(this.node.rawAttrs,e,t);if(n.shape!=null)return nv(this.node.rawAttrs,e,t);if(n.type!=null)return ev(this.node.rawAttrs,e,t);if(n.list!=null){if(n.list.i!=null||n.list.f!=null)return av(this.node.rawAttrs,e,t);if(n.list.s!=null)return rv(this.node.rawAttrs,e,t);if(n.list.shape!=null)return sv(this.node.rawAttrs,e,t);if(n.list.b!=null)return iv(this.node.rawAttrs,e,t);if(n.list.type!=null)return tv(this.node.rawAttrs,e,t)}return t}},ln={};Ee(ln,{OP_SCOPE_SUFFIX:()=>Dv,abs:()=>Wt,acos:()=>Lv,acosh:()=>zv,add:()=>X,addN:()=>AN,all:()=>Qm,any:()=>kc,argMax:()=>di,argMin:()=>Wv,asin:()=>Bv,asinh:()=>Vv,atan:()=>Uv,atan2:()=>Gv,atanh:()=>Hv,avgPool:()=>xa,avgPool3d:()=>jv,basicLSTMCell:()=>RN,batchNorm:()=>_s,batchNorm2d:()=>Kv,batchNorm3d:()=>Xv,batchNorm4d:()=>Yv,batchToSpaceND:()=>pd,bincount:()=>Zv,bitwiseAnd:()=>MN,booleanMaskAsync:()=>NT,broadcastArgs:()=>PN,broadcastTo:()=>ri,buffer:()=>ze,cast:()=>se,ceil:()=>Jv,clipByValue:()=>sn,clone:()=>or,complex:()=>Rr,concat:()=>et,concat1d:()=>Qv,concat2d:()=>ew,concat3d:()=>tw,concat4d:()=>nw,conv1d:()=>ef,conv2d:()=>Rt,conv2dTranspose:()=>tf,conv3d:()=>rw,conv3dTranspose:()=>sw,cos:()=>cd,cosh:()=>nf,cosineWindow:()=>Nf,cumprod:()=>Nc,cumsum:()=>af,denseBincount:()=>dm,depthToSpace:()=>iw,depthwiseConv2d:()=>Es,diag:()=>LN,dilation2d:()=>ow,div:()=>he,divNoNan:()=>lw,dot:()=>uw,dropout:()=>zw,einsum:()=>WN,elu:()=>cp,enclosingPowerOfTwo:()=>Ww,ensureShape:()=>BN,equal:()=>ta,erf:()=>pw,euclideanNorm:()=>hw,exp:()=>yn,expandDims:()=>nn,expm1:()=>mw,eye:()=>rf,fft:()=>vd,fill:()=>xn,floor:()=>hp,floorDiv:()=>Jm,fused:()=>Zl,gather:()=>mp,gatherND:()=>ET,greater:()=>_n,greaterEqual:()=>Or,ifft:()=>Yl,imag:()=>dd,image:()=>ea,inTopKAsync:()=>AT,irfft:()=>xf,isFinite:()=>fw,isInf:()=>gw,isNaN:()=>bw,leakyRelu:()=>hd,less:()=>ql,lessEqual:()=>As,linalg:()=>Uw,linspace:()=>qN,localResponseNormalization:()=>yw,log:()=>na,log1p:()=>md,logSigmoid:()=>xw,logSoftmax:()=>of,logSumExp:()=>lf,logicalAnd:()=>Da,logicalNot:()=>fd,logicalOr:()=>uf,logicalXor:()=>vw,losses:()=>VT,lowerBound:()=>KN,matMul:()=>$e,max:()=>ga,maxPool:()=>Mt,maxPool3d:()=>ww,maxPoolWithArgmax:()=>XN,maximum:()=>fr,mean:()=>Et,meshgrid:()=>YN,min:()=>Hl,minimum:()=>fs,mirrorPad:()=>kw,mod:()=>Iw,moments:()=>gd,movingAverage:()=>TT,mul:()=>z,multiRNNCell:()=>ZN,multinomial:()=>JN,neg:()=>yt,norm:()=>dp,notEqual:()=>gi,oneHot:()=>jl,ones:()=>Qn,onesLike:()=>aa,op:()=>L,outerProduct:()=>QN,pad:()=>va,pad1d:()=>eT,pad2d:()=>tT,pad3d:()=>nT,pad4d:()=>aT,pool:()=>Sw,pow:()=>Mr,prelu:()=>yd,print:()=>Pv,prod:()=>Nw,raggedGather:()=>rT,raggedRange:()=>sT,raggedTensorToTensor:()=>iT,rand:()=>oT,randomGamma:()=>cT,randomNormal:()=>cf,randomStandardNormal:()=>dT,randomUniform:()=>Fs,randomUniformInt:()=>hT,range:()=>bi,real:()=>Kl,reciprocal:()=>Aw,relu:()=>Ke,relu6:()=>df,reshape:()=>W,reverse:()=>ya,reverse1d:()=>mT,reverse2d:()=>fT,reverse3d:()=>gT,reverse4d:()=>bT,rfft:()=>wd,round:()=>hf,rsqrt:()=>mf,scalar:()=>ve,scatterND:()=>CT,searchSorted:()=>pf,selu:()=>ff,separableConv2d:()=>$s,setdiff1dAsync:()=>yT,sigmoid:()=>fa,sign:()=>Fw,signal:()=>BT,sin:()=>gf,sinh:()=>bf,slice:()=>Ue,slice1d:()=>xd,slice2d:()=>yf,slice3d:()=>qo,slice4d:()=>Xl,softmax:()=>Xa,softplus:()=>Ho,spaceToBatchND:()=>bd,sparse:()=>UT,sparseToDense:()=>_T,spectral:()=>WT,split:()=>zn,sqrt:()=>mn,square:()=>ut,squaredDifference:()=>vf,squeeze:()=>Ds,stack:()=>Dt,step:()=>jo,stridedSlice:()=>$w,string:()=>GT,sub:()=>pe,sum:()=>fe,tan:()=>Dw,tanh:()=>mi,tensor:()=>bn,tensor1d:()=>je,tensor2d:()=>$a,tensor3d:()=>kd,tensor4d:()=>Ma,tensor5d:()=>xT,tensor6d:()=>vT,tensorScatterUpdate:()=>kT,tile:()=>Ln,topk:()=>Mw,transpose:()=>De,truncatedNormal:()=>If,unique:()=>Pw,unsortedSegmentSum:()=>Sf,unstack:()=>ct,upperBound:()=>IT,variable:()=>Ow,where:()=>rn,whereAsync:()=>Lw,zeros:()=>Nt,zerosLike:()=>qe});var rj=(e,t,n,a=ln)=>{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`)}},sj=(e,t,n,a=ln)=>{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(dn(e.inputNames[0],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(dn(e.inputNames[0],t,n))];case"IsInf":return[a.isInf(dn(e.inputNames[0],t,n))];case"IsFinite":return[a.isFinite(dn(e.inputNames[0],t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function Fa(e,t,n=""){if(!(typeof e=="number"||typeof t=="number")){w.assert(e.length===t.length,()=>n+` Shapes ${e} and ${t} must match`);for(let a=0;an+` Shapes ${e} and ${t} must match`)}}}function eS(e){return!(typeof e=="number"||e.some(t=>t<0))}function tc(e,t,n){let a=ov(e,n),r=!eS(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=ov(s.shape,a)}),!eS(a))throw new Error(`Non-fully-defined elementShape: ${a}`);return a}function ov(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 ij=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=ve(0),qt(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),Fa(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,qt(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 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}`);Fa(t,r.shape,"TensorList shape mismatch: "),Ht(r)}),this.idTensor=ve(0),this.maxNumElements=a,Ht(this.idTensor)}copy(){return new Zl([...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.`);Fa(e,this.elementShape,"TensorList shape mismatch: ");let a=Jp(this.elementShape,this.tensors,e);return P(()=>{let r=this.tensors.map(s=>W(s,a));return Dt(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=Jp(this.elementShape,this.tensors,e),a=this.tensors.pop();return a.kept=!1,Fa(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(Fa(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 Zl([],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.`);Fa(this.tensors[e].shape,t,"TensorList shape mismatch: ");let a=Jp(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.`);Fa(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}`);Fa(this.elementShape,n,"TensorList shape mismatch: "),e=e.slice(0,this.size());let a=Jp(this.elementShape,this.tensors,n);return e.length===0?bn([],[0].concat(a)):P(()=>{let r=e.map(s=>W(this.tensors[s],a));return Dt(r,0)})}concat(e,t){if(e&&e!==this.elementDtype)throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${e}`);Fa(this.elementShape,t,"TensorList shape mismatch: ");let n=Jp(this.elementShape,this.tensors,t);return this.size()===0?bn([],[0].concat(n)):P(()=>{let a=this.tensors.map(r=>W(r,n));return Qe(a,0)})}};function qq(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);Fa(r,t,"TensorList shape mismatch: ");let s=ct(e);return new Zl(s,t,a)}function jq(e,t,n,a){return new Zl([],e,t,a)}function Kq(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 Zl([],n,e.dtype,a),i=ct(e,0);return t.forEach((o,l)=>{s.setItem(o,i[l])}),s}function Xq(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}`);Fa(t,r.shape,"TensorList shape mismatch: "),qt(r)}),this.idTensor=ve(0),this.maxNumElements=a,qt(this.idTensor)}copy(){return new nu([...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.`);Fa(e,this.elementShape,"TensorList shape mismatch: ");let a=tc(this.elementShape,this.tensors,e);return P(()=>{let r=this.tensors.map(s=>W(s,a));return Dt(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=tc(this.elementShape,this.tensors,e),a=this.tensors.pop();return a.kept=!1,Fa(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(Fa(e.shape,this.elementShape,"TensorList shape mismatch: "),this.maxNumElements===this.size())throw new Error("Trying to push element into a full list.");qt(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 nu([],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.`);Fa(this.tensors[e].shape,t,"TensorList shape mismatch: ");let a=tc(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.`);Fa(this.elementShape,t.shape,"TensorList shape mismatch: "),qt(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}`);Fa(this.elementShape,n,"TensorList shape mismatch: "),e=e.slice(0,this.size());let a=tc(this.elementShape,this.tensors,n);return e.length===0?bn([],[0].concat(a)):P(()=>{let r=e.map(s=>W(this.tensors[s],a));return Dt(r,0)})}concat(e,t){if(e&&e!==this.elementDtype)throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${e}`);Fa(this.elementShape,t,"TensorList shape mismatch: ");let n=tc(this.elementShape,this.tensors,t);return this.size()===0?bn([],[0].concat(n)):P(()=>{let a=this.tensors.map(r=>W(r,n));return et(a,0)})}};function oj(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);Fa(r,t,"TensorList shape mismatch: ");let s=ct(e);return new nu(s,t,a)}function lj(e,t,n,a){return new nu([],e,t,a)}function uj(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 nu([],n,e.dtype,a),i=ct(e,0);return t.forEach((o,l)=>{s.setItem(o,i[l])}),s}function pj(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=Qx(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=>dn(r,t,n)!==void 0);if(a){let r=dn(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 Hq(u,r,a,s,l,i,o);return n.addTensorArray(p),[p.idTensor,ve(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[ve(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=Kq(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=jq(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=qq(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=Xq(a,s,r);return n.addTensorList(i),[i.idTensor]}case"TensorListLength":{let a=k("tensorListId",e,t,n),r=n.getTensorList(a.id);return[ve(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 qI(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=Hh(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 Zq=(e,t,n,a=on)=>{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=Hh(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}=qI(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}=qI(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=Hh(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=Hh(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`)}},Jq=(e,t,n,a=on)=>{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"RandomUniformInt":return[a.randomUniformInt(k("shape",e,t,n),k("minval",e,t,n),k("maxval",e,t,n),k("seed",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 mx(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 Qq=async(e,t,n,a,r=on)=>{switch(e.op){case"NonMaxSuppressionV5":{let{boxes:s,scores:i,maxOutputSize:o,iouThreshold:l,scoreThreshold:u,softNmsSigma:p}=mx(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}=mx(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}=mx(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`)}},ej=(e,t,n,a=on)=>{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`)}},tj=(e,t,n,a=on)=>{switch(e.op){case"Const":return t[e.name];case"PlaceholderWithDefault":let r=k("default",e,t,n);return[dn(e.name,t,n)||r];case"Placeholder":return[dn(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 ve(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 nj(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`)}},rj=(e,t,n,a=on)=>{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`)}},sj=(e,t,n,a=on)=>{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))];case"BitwiseAnd":return[a.bitwiseAnd(k("a",e,t,n),k("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},ij=(e,t,n,a=on)=>{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})];case"MatrixBandPart":return[a.linalg.bandPart(k("a",e,t,n),k("numLower",e,t,n),k("numUpper",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},oj=(e,t,n,a=on)=>{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))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},lj=(e,t,n,a=on)=>{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`)}},uj=(e,t,n,a=on)=>{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`)}},pj=(e,t,n,a=on)=>{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))]}case"TensorScatterUpdate":{let r=k("indices",e,t,n),s=k("values",e,t,n),i=k("tensor",e,t,n);return[a.tensorScatterUpdate(i,r,s)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},cj=(e,t,n,a=on)=>{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`)}},dj=(e,t,n,a=on)=>{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`)}},hj=(e,t,n,a=on)=>{switch(e.op){case"StaticRegexReplace":return[a.string.staticRegexReplace(k("input",e,t,n),k("pattern",e,t,n),k("rewrite",e,t,n),k("replaceGlobal",e,t,n))];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`)}},mj=(e,t,n,a=on)=>{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"EnsureShape":return[a.ensureShape(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 jI(e,t,n,a,r=P){let s=((i,o,l)=>{switch(i.category){case"arithmetic":return r(()=>Uq(i,o,l));case"basic_math":return r(()=>Gq(i,o,l));case"control":return Yq(i,o,l);case"convolution":return r(()=>Zq(i,o,l));case"creation":return r(()=>Jq(i,o,l));case"dynamic":return Qq(i,o,l);case"evaluation":return r(()=>ej(i,o,l));case"image":return r(()=>rj(i,o,l));case"graph":return r(()=>tj(i,o,l));case"logical":return r(()=>sj(i,o,l));case"matrices":return r(()=>ij(i,o,l));case"normalization":return r(()=>oj(i,o,l));case"ragged":return r(()=>lj(i,o,l));case"reduction":return r(()=>uj(i,o,l));case"slice_join":return r(()=>pj(i,o,l));case"sparse":return r(()=>cj(i,o,l));case"spectral":return r(()=>dj(i,o,l));case"string":return r(()=>hj(i,o,l));case"transformation":return r(()=>mj(i,o,l));case"hash_table":return aj(i,o,l,a);case"custom":let u=NC(i.op);if(u&&u.customExecutor)return u.customExecutor(new Vq(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 KI=class{constructor(e={},t={},n={},a={},r){this.weightMap=e,this.tensorArrayMap=t,this.tensorListMap=n,this.functionMap=a,this.parseNodeNameCache=r,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 XI(e,t,n,a){let r=new Set,s=[],i=null,o=null,l=new Set,u=new Set(Object.keys(e).map(c=>Zn(c)[0]));a=a||[];let p=new Set(a.map(c=>Zn(c.name)[0])),d=[...t];for(;d.length>0;){let c=d.pop();if((Js(c)||kj(c)||Ij(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.has(c.name)&&!p.has(c.name)){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 fj(e,t){let{usedNodes:n,inputs:a}=t,r=Object.keys(a).map(g=>Zn(g)[0]).map(g=>e.nodes[g]),s=e.initNodes||[],i=g=>n.has(typeof g=="string"?g:g.name);function o(g){return[...new Map(g.map(b=>[b.name,b])).values()]}let l=o([...r,...e.weights,...s]).filter(i),u=o([...l,...Object.values(e.nodes)]).filter(i),p=new Map(u.map(g=>[g.name,g])),d={};for(let g of u){d[g.name]=d[g.name]||0;for(let b of g.children)i(b)||(d[b.name]=Number.POSITIVE_INFINITY),d[b.name]=(d[b.name]||0)+1}let c=Object.entries(d).filter(([,g])=>g===0).map(([g])=>g),h=[...c];for(;c.length>0;){let g=c.pop(),b=p.get(g);for(let y of b.children.filter(i))--d[y.name]===0&&(h.push(y.name),c.push(y.name))}let m=h.map(g=>p.get(g)),f=gj(m,l);return bj(f,l),f}function gj(e,t){let n=new Map(e.map(s=>[s.name,s])),a=t.map(s=>s.name),r=new Set(a);for(;a.length>0;){let s=a.pop(),i=n.get(s);for(let o of i.children)!n.has(o.name)||r.has(o.name)||(r.add(o.name),a.push(o.name))}return e.filter(s=>r.has(s.name))}var Ph=class extends Error{constructor(e){super(`NodesExecutionOrderError: ${e}`)}};function bj(e,t){let n=new Map(e.map((o,l)=>[o.name,l])),a=new Set(t.map(o=>o.name)),r=o=>a.has(typeof o=="string"?o:o.name),s=new Set(e.map(o=>o.name)),i=o=>s.has(typeof o=="string"?o:o.name);for(let o of e){for(let l of o.children.filter(i)){if(!n.has(l.name))throw new Ph(`Child ${l.name} of node ${o.name} is unreachable.`);if(n.get(o.name)>n.get(l.name))throw new Ph(`Node ${o.name} is scheduled to run after its child ${l.name}.`)}if(!r(o))for(let l of o.inputs){if(!n.has(l.name))throw new Ph(`Input ${l.name} of node ${o.name} is unreachable.`);if(n.get(l.name)>n.get(o.name))throw new Ph(`Node ${o.name} is scheduled to run before its input ${l.name}.`)}}}function yj(e){let t=new Map(e.map((o,l)=>[o.name,l])),n=Number.MAX_SAFE_INTEGER,a=e.map((o,l)=>Js(o)?n:l),r=o=>{let l=a[t.get(o.name)];return l==null?-1:l},s=e.map((o,l)=>o.children.map(r).reduce((u,p)=>Math.max(u,p),a[l])),i=new Map;for(let o=0;oe[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),{})}constructor(e,t){this.graph=e,this.parent=t,this.compiledMap=new Map,this.parseNodeNameCache=new Map,this._weightMap={},this.SEPARATOR=",",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 ev(e.functions[n],this)})}getCompilationKey(e,t){let n=e.map(r=>r.name).sort(),a=t.map(r=>r.name).sort();return n.join(this.SEPARATOR)+"--"+a.join(this.SEPARATOR)}compile(e,t){let n=XI(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 l=t.map(p=>p.name),u=Object.keys(e);throw new Error(`Cannot compute the outputs [${l}] from the provided inputs [${u}]. Missing the following inputs: [${a}]`)}let i=fj(this.graph,n),o=yj(i);return{orderedNodes:i,nodeLiveUntilMap:o}}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(d=>this.graph.nodes[Zn(d)[0]]),r=t.map(d=>Zn(d)[0]),s=new Set(r),i=r.map(d=>this.graph.nodes[d]);i.length===0&&(i=this._outputs);let o=this.getCompilationKey(a,i),l=this.compiledMap.get(o);l==null&&(l=this.compile(e,i),this.compiledMap.set(o,l));try{this.keepIntermediateTensors=G().getBool("KEEP_INTERMEDIATE_TENSORS")}catch(d){this.keepIntermediateTensors=!1,console.warn(d.message)}let u={},p={};return P(()=>{let d=new KI(this.weightMap,u,p,this.functionExecutorMap,this.parseNodeNameCache),c=Object.assign({},this.weightMap);this.keepIntermediateTensors&&(this.clonedTensorsMap=this.cloneTensorMap(this.weightMap)),Object.keys(e).forEach(g=>{let[b,y]=Zn(g,d),x=[];x[y]=e[g],c[b]=x,this.keepIntermediateTensors&&(this.clonedTensorsMap[b]=this.cloneTensorList(x))});let h=this.getFrozenTensorIds(c),{orderedNodes:m,nodeLiveUntilMap:f}=l;for(let g of m){if(c[g.name])continue;let b=jI(g,c,d,this._resourceManager);if(v.isPromise(b))throw new Error(`The execution of the op '${g.op}' returned a promise. Please use model.executeAsync() instead.`);c[g.name]=b,this.keepIntermediateTensors&&(this.clonedTensorsMap[g.name]=this.cloneTensorList(b)),this.checkTensorForDisposalWithNodeLiveUntilInfo(g,c,d,h,s,f.get(g.name))}return this.parent==null&&d.dispose(h),t.map(g=>dn(g,c,d))})}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){if(!(Js(t)||s.has(e))){for(let o of n[e])o!=null&&(i[o.id]=(i[o.id]||0)+t.children.length);for(let o of t.inputs){if(Js(o))continue;let l=VI(o.name,n,a);if(l!=null)for(let u of l){if(!u||u.kept||r.has(u.id))continue;let p=i[u.id];p===1?(u.dispose(),delete i[u.id]):p!=null&&i[u.id]--}}}}checkTensorForDisposalWithNodeLiveUntilInfo(e,t,n,a,r,s){function i(o){return Js(o)||r.has(o.name)}if(!(Js(e)||s==null))for(let o of s){if(i(o))continue;let l=VI(o.name,t,n);for(let u of l)!u||u.kept||a.has(u.id)||u.dispose()}}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=G().getBool("KEEP_INTERMEDIATE_TENSORS")}catch(d){this.keepIntermediateTensors=!1,console.warn(d.message)}let s=new KI(this.weightMap,a,r,this.functionExecutorMap,this.parseNodeNameCache);this.keepIntermediateTensors&&(this.clonedTensorsMap=this.cloneTensorMap(this.weightMap));let i=await this.executeWithControlFlow(e,s,t,n),o=t.map(d=>dn(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(x=>this.graph.nodes[Zn(x)[0]]),i=n.map(x=>Zn(x)[0]),o=new Set(i),l=i.map(x=>this.graph.nodes[x]);l.length===0&&(l=this._outputs);let{usedNodes:u,missingInputs:p,dynamicNode:d,syncInputs:c}=XI(e,l,this.weightMap,this._initNodes),h=[...s,...this.graph.weights,...this._initNodes||[]].map(x=>({node:x,contexts:t.currentContext})),m=Object.assign({},this.weightMap);Object.keys(e).forEach(x=>{let[w,I]=Zn(x),T=[];T[I]=e[x],m[w]=T});let f={},g=this.getFrozenTensorIds(m),b={};for(;h.length>0;){let x=this.processStack(s,h,t,m,b,g,o,f,u);await Promise.all(x)}d==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=l.filter(x=>!Js(x)&&!dn(x.name,m,t)).map(x=>x.name);if(y.length>0){let x="";throw d!=null&&(x=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${c}]`),new Error(`Cannot compute the outputs [${y}] from the provided inputs [${r}]. Consider providing the following inputs: [${p}]. ${x}`)}return m}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]=_r(p.node.name,n)),a[p.node.name]==null){let c=jI(p.node,a,n,this._resourceManager);d||([d]=_r(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]=_r(i.name,n);r[o]||!s.has(i.name)||(i.op==="Merge"?i.inputNames.some(l=>!!dn(l,a,n))&&(r[o]=!0,t.push({contexts:n.currentContext,node:i})):i.inputNames.every(l=>!!dn(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]=Zn(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]=Zn(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]=Zn(t);if(!this.graph.nodes[n])throw new Error(`The output '${t}' is not found in the graph`)})}},Sj=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]}},Nj="?tfjs-format=file",Tj="model.json",S1=class{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}constructor(e,t={},n=qt){this.modelUrl=e,this.loadOptions=t,this.version="n/a",this.io=n,t==null&&(this.loadOptions={}),this.resourceManager=new Sj}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 ev(UI.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=UI.Instance.transformGraph(e.modelInitializer);this.initializer=new ev(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 Ce?[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 Ce)&&!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&&_e(this.resourceIdToCapturedInput)),this.resourceManager.dispose()}};async function Cj(e,t={},n=qt){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=Ej(e));let a=new S1(e,t,n);return await a.load(),a}function _j(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=qt.getWeightSpecs(a.weightsManifest),i=qt.getModelArtifactsForJSONSync(a,s,r);t=qt.fromMemorySync(i)}else if("load"in e)t=e;else if("modelTopology"in e&&"weightSpecs"in e&&"weightData"in e)t=qt.fromMemorySync(e);else throw new Error("Unknown model format");let n=new S1(t);return n.load(),n}function Ej(e){return e.endsWith("/")||(e=e+"/"),`${e}${Tj}${Nj}`}var Aj="4.5.0",jC={};Ee(jC,{CSVDataset:()=>n_,Dataset:()=>gp,FileDataSource:()=>u_,TextLineDataset:()=>t_,URLDataSource:()=>p_,array:()=>Qj,csv:()=>p5,func:()=>c5,generator:()=>d5,microphone:()=>m5,version_data:()=>f5,webcam:()=>h5,zip:()=>e5});var Fj=ws(_m()),$j=ws(_m());function Dj(e,t){return ym(e,t)}function ym(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(Jl(e)){let s=Array.isArray(e)?[]:{};a.add(e);for(let i in e){let o=e[i],l=ym(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 Rj(e,t=XC){return KC(e,t)}function KC(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(Jl(a)){let s=Array.isArray(a)?[]:{};n.add(a);for(let i in a){let o=e.map(u=>u[i]),l=KC(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 XC(e){return e===null?null:Jl(e[0])?{value:null,recurse:!0}:{value:e,recurse:!1}}async function YC(e,t){let n=new Map;ym(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 ym(e,t,n)}function Jl(e){let t=!1;if(G().get("IS_BROWSER"))t=e instanceof TextDecoder;else{let{StringDecoder:n}=RS();t=e instanceof n}return e!=null&&!ArrayBuffer.isView(e)&&(Array.isArray(e)||typeof e=="object"&&!(e instanceof Ce)&&!(e instanceof Promise)&&!t)}function Mj(e){return e==null||Pj(e)||Array.isArray(e)||typeof e=="object"&&e instanceof Ce||v.isTypedArray(e)}function Pj(e){return e===null||typeof e!="object"&&typeof e!="function"}function Oj(e){return Dj(e,Lj)}function Lj(e){return e instanceof Ce?{value:e.clone(),recurse:!1}:Jl(e)?{value:null,recurse:!0}:{value:e,recurse:!1}}var ZC=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}},N1=class extends ZC{constructor(){super(N1.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 qj(this,e,t)}columnMajorBatch(e,t=!0,n=XC){return this.rowMajorBatch(e,t).map(a=>Rj(a,n))}concatenate(e,t){return new QC(JC([this,e]),t)}take(e){return e<0||e==null?this:new Hj(this,e)}skip(e){return e<0||e==null?this:new Gj(this,e)}prefetch(e){return new e_(this,e)}shuffle(e,t){return new Jj(this,e,t)}serial(){return new Uj(this)}},Bj=class extends sn{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:Oj(e),done:!1}}},Vj=class extends sn{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}}},Uj=class extends sn{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()}},Gj=class extends sn{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()}},qj=class extends sn{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}}},jj=class extends sn{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)}}},Kj=class extends sn{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}}},Xj=class extends sn{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}}}},YI=class extends sn{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}}},C1=class extends sn{constructor(){super(),this.outputQueue=new N1,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}}},Yj=class extends C1{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}},QC=class extends sn{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}},ss;(function(e){e[e.FAIL=0]="FAIL",e[e.SHORTEST=1]="SHORTEST",e[e.LONGEST=2]="LONGEST"})(ss||(ss={}));var Zj=class extends sn{constructor(e,t=ss.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 sn?{value:s.next().then(i=>(t++,i.done&&n++,i.value)),recurse:!1}:{value:null,recurse:!0}}let r=await YC(this.iterators,a);if(t===n)return{value:null,done:!0};if(n>0)switch(this.mismatchMode){case ss.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case ss.SHORTEST:return{value:null,done:!0};case ss.LONGEST:default:}return this.count++,{value:r,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}},e_=class extends sn{constructor(e,t){super(),this.upstream=e,this.bufferSize=t,this.buffer=new ZC(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()}},Jj=class extends e_{constructor(e,t,n){super(e,t),this.upstream=e,this.windowSize=t,this.upstreamExhausted=!1,this.random=$j.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}}},gp=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),Yn(async()=>(await n.iterator()).columnMajorBatch(e,t,t5),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,Yn(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,Yn(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 Yn(async()=>(await t.iterator()).map(n=>P(()=>e(n))),this.size)}mapAsync(e){let t=this;return Yn(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 Yn(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,Yn(async()=>{let a=T1(async()=>({value:await t.iterator(),done:!1}));return zj(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=Fj.alea(t||v.now().toString());return Yn(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,Yn(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()}};gp.MAX_BUFFER_SIZE=1e4;function Yn(e,t=null){return new class extends gp{constructor(){super(...arguments),this.size=t}async iterator(){return e()}}}function Qj(e){return Yn(async()=>JC(e),e.length)}function e5(e){if(!Jl(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 YC(e,a=>{if(a instanceof gp)return{value:a.iterator(),recurse:!1};if(Jl(a))return{value:null,recurse:!0};throw new Error("Leaves of the structure passed to zip() must be Datasets, not primitives.")});return Wj(n,ss.SHORTEST)},t)}function t5(e){if(e===null)return null;let t=e[0];return Mj(t)?{value:n5(e),recurse:!1}:{value:null,recurse:!0}}function n5(e){if(e.length===0)throw new Error("Can't make a batch of zero elements.");return e[0]instanceof Ce?Dt(e):bn(e)}var t_=class extends gp{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))}},Oh='"',Qp=Symbol("out"),ZI=Symbol("field"),Lh=Symbol("quote"),fx=Symbol("quoteafterquote"),JI=Symbol("quoteinquote"),n_=class extends gp{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}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 t_(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 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(!G().get("IS_BROWSER"))throw new Error("microphone API is only supported in browser environment.");let t=new a_(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),bn(n,t)}},r_=class extends sn{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=je([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(!G().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 r_(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=Uo.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=tn(ie(e,"float32"),0),n;n=ea.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.")}},s_=class{},i_=class extends sn{split(e){return new a5(this,e)}},a5=class extends i_{constructor(e,t){super(),this.upstream=e,this.impl=new r5(e,t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},r5=class extends C1{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}},s5=class extends sn{decodeUTF8(){return new i5(this)}},i5=class extends i_{constructor(e){super(),this.upstream=e,this.impl=new o5(e)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},o5=class extends C1{constructor(e){if(super(),this.upstream=e,G().get("IS_BROWSER"))this.decoder=new TextDecoder("utf-8");else{let{StringDecoder:t}=RS();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 G().get("IS_BROWSER")?n=this.decoder.decode(t,{stream:!0}):n=this.decoder.write(Buffer.from(t.buffer)),this.outputQueue.push(n),!0}},o_=class extends s5{constructor(e,t={}){super(),this.file=e,this.options=t,v.assert(e instanceof Uint8Array||(G().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 l5(e,t={},n){let a,r;typeof e=="string"?a=e:(a=e.url,r=u5(e));let s=await(n||v.fetch)(a,r);if(s.ok){let i=new Uint8Array(await s.arrayBuffer());return new o_(i,t)}else throw new Error(s.statusText)}var u5=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 l_(e){return typeof e=="string"&&e.slice(0,7)==="file://"}var u_=class extends s_{constructor(e,t={}){super(),this.input=e,this.options=t}async iterator(){if(l_(this.input)&&G().get("IS_NODE")){let e=bv();this.input=e.readFileSync(this.input.slice(7))}return new o_(this.input,this.options)}},p_=class extends s_{constructor(e,t={}){super(),this.url=e,this.fileOptions=t}async iterator(){return l_(this.url)?new u_(this.url,this.fileOptions).iterator():l5(this.url,this.fileOptions)}};function p5(e,t={}){return new n_(new p_(e),t)}function c5(e){let t=T1(e);return Yn(async()=>t)}function d5(e){return Yn(async()=>{let t=await e();return T1(()=>t.next())})}async function h5(e,t){return r_.create(e,t)}async function m5(e){return a_.create(e)}var f5="4.5.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 g5=fr.whereImpl,Xf=class extends $c{nextDataId(){return Xf.nextDataId++}constructor(){super(),this.blockSize=48,this.firstUse=!0,this.data=new Em(this,Aa())}write(e,t,n){this.firstUse&&(this.firstUse=!1,G().get("IS_NODE")&&N.warn(` + ${a}, and tensor's shape is: ${e.shape}`);let s=e.shape.slice(1),i=ov(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[Ar(a)]}case"Switch":{let a=k("pred",e,t,n),r=k("data",e,t,n);return r.kept||(r=Ar(r)),(await a.data())[0]?[void 0,r]:[r,void 0]}case"Merge":{let a=e.inputNames.find(r=>dn(r,t,n)!==void 0);if(a){let r=dn(a,t,n);return[Ar(r)]}return}case"Enter":{let a=k("frameName",e,t,n),r=k("tensor",e,t,n);return n.enterFrame(a),[Ar(r)]}case"Exit":{let a=k("tensor",e,t,n);return n.exitFrame(),[Ar(a)]}case"NextIteration":{let a=k("tensor",e,t,n);return n.nextIteration(),[Ar(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 ij(u,r,a,s,l,i,o);return n.addTensorArray(p),[p.idTensor,ve(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[ve(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=uj(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=lj(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=oj(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=pj(a,s,r);return n.addTensorList(i),[i.idTensor]}case"TensorListLength":{let a=k("tensorListId",e,t,n),r=n.getTensorList(a.id);return[ve(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 tS(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=Yh(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 dj=(e,t,n,a=ln)=>{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=Yh(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}=tS(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}=tS(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=Yh(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=Yh(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`)}},hj=(e,t,n,a=ln)=>{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"RandomUniformInt":return[a.randomUniformInt(k("shape",e,t,n),k("minval",e,t,n),k("maxval",e,t,n),k("seed",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 kx(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 mj=async(e,t,n,a,r=ln)=>{switch(e.op){case"NonMaxSuppressionV5":{let{boxes:s,scores:i,maxOutputSize:o,iouThreshold:l,scoreThreshold:u,softNmsSigma:p}=kx(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}=kx(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}=kx(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`)}},fj=(e,t,n,a=ln)=>{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`)}},gj=(e,t,n,a=ln)=>{switch(e.op){case"Const":return t[e.name];case"PlaceholderWithDefault":let r=k("default",e,t,n);return[dn(e.name,t,n)||r];case"Placeholder":return[dn(e.name,t,n)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":{let p=k("x",e,t,n);return[Ar(p)]}case"IdentityN":return k("x",e,t,n).map(p=>Ar(p));case"Snapshot":let s=k("x",e,t,n);return[Ar(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 ve(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;w.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 bj(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`)}},xj=(e,t,n,a=ln)=>{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`)}},vj=(e,t,n,a=ln)=>{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))];case"BitwiseAnd":return[a.bitwiseAnd(k("a",e,t,n),k("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},wj=(e,t,n,a=ln)=>{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})];case"MatrixBandPart":return[a.linalg.bandPart(k("a",e,t,n),k("numLower",e,t,n),k("numUpper",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},kj=(e,t,n,a=ln)=>{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))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},Ij=(e,t,n,a=ln)=>{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`)}},Sj=(e,t,n,a=ln)=>{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`)}},Nj=(e,t,n,a=ln)=>{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=w.arraysEqual(u.shape,i);if(!p&&!w.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))]}case"TensorScatterUpdate":{let r=k("indices",e,t,n),s=k("values",e,t,n),i=k("tensor",e,t,n);return[a.tensorScatterUpdate(i,r,s)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},Tj=(e,t,n,a=ln)=>{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`)}},Cj=(e,t,n,a=ln)=>{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`)}},_j=(e,t,n,a=ln)=>{switch(e.op){case"StaticRegexReplace":return[a.string.staticRegexReplace(k("input",e,t,n),k("pattern",e,t,n),k("rewrite",e,t,n),k("replaceGlobal",e,t,n))];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`)}},Ej=(e,t,n,a=ln)=>{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"EnsureShape":return[a.ensureShape(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 nS(e,t,n,a,r=P){let s=((i,o,l)=>{switch(i.category){case"arithmetic":return r(()=>rj(i,o,l));case"basic_math":return r(()=>sj(i,o,l));case"control":return cj(i,o,l);case"convolution":return r(()=>dj(i,o,l));case"creation":return r(()=>hj(i,o,l));case"dynamic":return mj(i,o,l);case"evaluation":return r(()=>fj(i,o,l));case"image":return r(()=>xj(i,o,l));case"graph":return r(()=>gj(i,o,l));case"logical":return r(()=>vj(i,o,l));case"matrices":return r(()=>wj(i,o,l));case"normalization":return r(()=>kj(i,o,l));case"ragged":return r(()=>Ij(i,o,l));case"reduction":return r(()=>Sj(i,o,l));case"slice_join":return r(()=>Nj(i,o,l));case"sparse":return r(()=>Tj(i,o,l));case"spectral":return r(()=>Cj(i,o,l));case"string":return r(()=>_j(i,o,l));case"transformation":return r(()=>Ej(i,o,l));case"hash_table":return yj(i,o,l,a);case"custom":let u=MC(i.op);if(u&&u.customExecutor)return u.customExecutor(new aj(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 w.isPromise(s)?s.then(i=>[].concat(i)):[].concat(s)}var aS=class{constructor(e={},t={},n={},a={},r){this.weightMap=e,this.tensorArrayMap=t,this.tensorListMap=n,this.functionMap=a,this.parseNodeNameCache=r,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 rS(e,t,n,a){let r=new Set,s=[],i=null,o=null,l=new Set,u=new Set(Object.keys(e).map(c=>Zn(c)[0]));a=a||[];let p=new Set(a.map(c=>Zn(c.name)[0])),d=[...t];for(;d.length>0;){let c=d.pop();if((Qs(c)||Oj(c)||Lj(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.has(c.name)&&!p.has(c.name)){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 Aj(e,t){let{usedNodes:n,inputs:a}=t,r=Object.keys(a).map(g=>Zn(g)[0]).map(g=>e.nodes[g]),s=e.initNodes||[],i=g=>n.has(typeof g=="string"?g:g.name);function o(g){return[...new Map(g.map(b=>[b.name,b])).values()]}let l=o([...r,...e.weights,...s]).filter(i),u=o([...l,...Object.values(e.nodes)]).filter(i),p=new Map(u.map(g=>[g.name,g])),d={};for(let g of u){d[g.name]=d[g.name]||0;for(let b of g.children)i(b)||(d[b.name]=Number.POSITIVE_INFINITY),d[b.name]=(d[b.name]||0)+1}let c=Object.entries(d).filter(([,g])=>g===0).map(([g])=>g),h=[...c];for(;c.length>0;){let g=c.pop(),b=p.get(g);for(let y of b.children.filter(i))--d[y.name]===0&&(h.push(y.name),c.push(y.name))}let m=h.map(g=>p.get(g)),f=Fj(m,l);return $j(f,l),f}function Fj(e,t){let n=new Map(e.map(s=>[s.name,s])),a=t.map(s=>s.name),r=new Set(a);for(;a.length>0;){let s=a.pop(),i=n.get(s);for(let o of i.children)!n.has(o.name)||r.has(o.name)||(r.add(o.name),a.push(o.name))}return e.filter(s=>r.has(s.name))}var Bh=class extends Error{constructor(e){super(`NodesExecutionOrderError: ${e}`)}};function $j(e,t){let n=new Map(e.map((o,l)=>[o.name,l])),a=new Set(t.map(o=>o.name)),r=o=>a.has(typeof o=="string"?o:o.name),s=new Set(e.map(o=>o.name)),i=o=>s.has(typeof o=="string"?o:o.name);for(let o of e){for(let l of o.children.filter(i)){if(!n.has(l.name))throw new Bh(`Child ${l.name} of node ${o.name} is unreachable.`);if(n.get(o.name)>n.get(l.name))throw new Bh(`Node ${o.name} is scheduled to run after its child ${l.name}.`)}if(!r(o))for(let l of o.inputs){if(!n.has(l.name))throw new Bh(`Input ${l.name} of node ${o.name} is unreachable.`);if(n.get(l.name)>n.get(o.name))throw new Bh(`Node ${o.name} is scheduled to run before its input ${l.name}.`)}}}function Dj(e){let t=new Map(e.map((o,l)=>[o.name,l])),n=Number.MAX_SAFE_INTEGER,a=e.map((o,l)=>Qs(o)?n:l),r=o=>{let l=a[t.get(o.name)];return l==null?-1:l},s=e.map((o,l)=>o.children.map(r).reduce((u,p)=>Math.max(u,p),a[l])),i=new Map;for(let o=0;oe[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),{})}constructor(e,t){this.graph=e,this.parent=t,this.compiledMap=new Map,this.parseNodeNameCache=new Map,this._weightMap={},this.SEPARATOR=",",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 lv(e.functions[n],this)})}getCompilationKey(e,t){let n=e.map(r=>r.name).sort(),a=t.map(r=>r.name).sort();return n.join(this.SEPARATOR)+"--"+a.join(this.SEPARATOR)}compile(e,t){let n=rS(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 l=t.map(p=>p.name),u=Object.keys(e);throw new Error(`Cannot compute the outputs [${l}] from the provided inputs [${u}]. Missing the following inputs: [${a}]`)}let i=Aj(this.graph,n),o=Dj(i);return{orderedNodes:i,nodeLiveUntilMap:o}}cloneAndKeepTensor(e){if(e==null)return null;let t=e.clone();return qt(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(d=>this.graph.nodes[Zn(d)[0]]),r=t.map(d=>Zn(d)[0]),s=new Set(r),i=r.map(d=>this.graph.nodes[d]);i.length===0&&(i=this._outputs);let o=this.getCompilationKey(a,i),l=this.compiledMap.get(o);l==null&&(l=this.compile(e,i),this.compiledMap.set(o,l));try{this.keepIntermediateTensors=G().getBool("KEEP_INTERMEDIATE_TENSORS")}catch(d){this.keepIntermediateTensors=!1,console.warn(d.message)}let u={},p={};return P(()=>{let d=new aS(this.weightMap,u,p,this.functionExecutorMap,this.parseNodeNameCache),c=Object.assign({},this.weightMap);this.keepIntermediateTensors&&(this.clonedTensorsMap=this.cloneTensorMap(this.weightMap)),Object.keys(e).forEach(g=>{let[b,y]=Zn(g,d),x=[];x[y]=e[g],c[b]=x,this.keepIntermediateTensors&&(this.clonedTensorsMap[b]=this.cloneTensorList(x))});let h=this.getFrozenTensorIds(c),{orderedNodes:m,nodeLiveUntilMap:f}=l;for(let g of m){if(c[g.name])continue;let b=nS(g,c,d,this._resourceManager);if(w.isPromise(b))throw new Error(`The execution of the op '${g.op}' returned a promise. Please use model.executeAsync() instead.`);c[g.name]=b,this.keepIntermediateTensors&&(this.clonedTensorsMap[g.name]=this.cloneTensorList(b)),this.checkTensorForDisposalWithNodeLiveUntilInfo(g,c,d,h,s,f.get(g.name))}return this.parent==null&&d.dispose(h),t.map(g=>dn(g,c,d))})}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){if(!(Qs(t)||s.has(e))){for(let o of n[e])o!=null&&(i[o.id]=(i[o.id]||0)+t.children.length);for(let o of t.inputs){if(Qs(o))continue;let l=ZI(o.name,n,a);if(l!=null)for(let u of l){if(!u||u.kept||r.has(u.id))continue;let p=i[u.id];p===1?(u.dispose(),delete i[u.id]):p!=null&&i[u.id]--}}}}checkTensorForDisposalWithNodeLiveUntilInfo(e,t,n,a,r,s){function i(o){return Qs(o)||r.has(o.name)}if(!(Qs(e)||s==null))for(let o of s){if(i(o))continue;let l=ZI(o.name,t,n);for(let u of l)!u||u.kept||a.has(u.id)||u.dispose()}}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=G().getBool("KEEP_INTERMEDIATE_TENSORS")}catch(d){this.keepIntermediateTensors=!1,console.warn(d.message)}let s=new aS(this.weightMap,a,r,this.functionExecutorMap,this.parseNodeNameCache);this.keepIntermediateTensors&&(this.clonedTensorsMap=this.cloneTensorMap(this.weightMap));let i=await this.executeWithControlFlow(e,s,t,n),o=t.map(d=>dn(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(x=>this.graph.nodes[Zn(x)[0]]),i=n.map(x=>Zn(x)[0]),o=new Set(i),l=i.map(x=>this.graph.nodes[x]);l.length===0&&(l=this._outputs);let{usedNodes:u,missingInputs:p,dynamicNode:d,syncInputs:c}=rS(e,l,this.weightMap,this._initNodes),h=[...s,...this.graph.weights,...this._initNodes||[]].map(x=>({node:x,contexts:t.currentContext})),m=Object.assign({},this.weightMap);Object.keys(e).forEach(x=>{let[v,I]=Zn(x),T=[];T[I]=e[x],m[v]=T});let f={},g=this.getFrozenTensorIds(m),b={};for(;h.length>0;){let x=this.processStack(s,h,t,m,b,g,o,f,u);await Promise.all(x)}d==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=l.filter(x=>!Qs(x)&&!dn(x.name,m,t)).map(x=>x.name);if(y.length>0){let x="";throw d!=null&&(x=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${c}]`),new Error(`Cannot compute the outputs [${y}] from the provided inputs [${r}]. Consider providing the following inputs: [${p}]. ${x}`)}return m}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]=Er(p.node.name,n)),a[p.node.name]==null){let c=nS(p.node,a,n,this._resourceManager);d||([d]=Er(p.node.name,n));let h=n.currentContext;w.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]=Er(i.name,n);r[o]||!s.has(i.name)||(i.op==="Merge"?i.inputNames.some(l=>!!dn(l,a,n))&&(r[o]=!0,t.push({contexts:n.currentContext,node:i})):i.inputNames.every(l=>!!dn(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]=Zn(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);w.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&&w.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]=Zn(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]=Zn(t);if(!this.graph.nodes[n])throw new Error(`The output '${t}' is not found in the graph`)})}},zj=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]}},Wj="?tfjs-format=file",Bj="model.json",$1=class{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}constructor(e,t={},n=jt){this.modelUrl=e,this.loadOptions=t,this.version="n/a",this.io=n,t==null&&(this.loadOptions={}),this.resourceManager=new zj}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 w.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 lv(JI.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=JI.Instance.transformGraph(e.modelInitializer);this.initializer=new lv(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&&_e(this.resourceIdToCapturedInput)),this.resourceManager.dispose()}};async function Vj(e,t={},n=jt){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=Gj(e));let a=new $1(e,t,n);return await a.load(),a}function Uj(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=jt.getWeightSpecs(a.weightsManifest),i=jt.getModelArtifactsForJSONSync(a,s,r);t=jt.fromMemorySync(i)}else if("load"in e)t=e;else if("modelTopology"in e&&"weightSpecs"in e&&"weightData"in e)t=jt.fromMemorySync(e);else throw new Error("Unknown model format");let n=new $1(t);return n.load(),n}function Gj(e){return e.endsWith("/")||(e=e+"/"),`${e}${Bj}${Wj}`}var Hj="4.7.0",a_={};Ee(a_,{CSVDataset:()=>d_,Dataset:()=>yp,FileDataSource:()=>x_,TextLineDataset:()=>c_,URLDataSource:()=>v_,array:()=>m5,csv:()=>N5,func:()=>T5,generator:()=>C5,microphone:()=>E5,version_data:()=>A5,webcam:()=>_5,zip:()=>f5});var qj=ks(Dm()),jj=ks(Dm());function Kj(e,t){return Im(e,t)}function Im(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(au(e)){let s=Array.isArray(e)?[]:{};a.add(e);for(let i in e){let o=e[i],l=Im(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 Xj(e,t=s_){return r_(e,t)}function r_(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(au(a)){let s=Array.isArray(a)?[]:{};n.add(a);for(let i in a){let o=e.map(u=>u[i]),l=r_(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 s_(e){return e===null?null:au(e[0])?{value:null,recurse:!0}:{value:e,recurse:!1}}async function i_(e,t){let n=new Map;Im(e,t,n);for(let a of Array.from(n.keys())){let r=n.get(a);if(w.isPromise(r)){let s=await r;n.set(a,s)}}return Im(e,t,n)}function au(e){let t=!1;if(G().get("IS_BROWSER"))t=e instanceof TextDecoder;else{let{StringDecoder:n}=US();t=e instanceof n}return e!=null&&!ArrayBuffer.isView(e)&&(Array.isArray(e)||typeof e=="object"&&!(e instanceof Te)&&!(e instanceof Promise)&&!t)}function Yj(e){return e==null||Zj(e)||Array.isArray(e)||typeof e=="object"&&e instanceof Te||w.isTypedArray(e)}function Zj(e){return e===null||typeof e!="object"&&typeof e!="function"}function Jj(e){return Kj(e,Qj)}function Qj(e){return e instanceof Te?{value:e.clone(),recurse:!1}:au(e)?{value:null,recurse:!0}:{value:e,recurse:!1}}var o_=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}},D1=class extends o_{constructor(){super(D1.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 o5(this,e,t)}columnMajorBatch(e,t=!0,n=s_){return this.rowMajorBatch(e,t).map(a=>Xj(a,n))}concatenate(e,t){return new u_(l_([this,e]),t)}take(e){return e<0||e==null?this:new i5(this,e)}skip(e){return e<0||e==null?this:new s5(this,e)}prefetch(e){return new p_(this,e)}shuffle(e,t){return new h5(this,e,t)}serial(){return new r5(this)}},n5=class extends on{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:Jj(e),done:!1}}},a5=class extends on{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}}},r5=class extends on{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()}},s5=class extends on{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()}},o5=class extends on{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}}},l5=class extends on{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)}}},u5=class extends on{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}}},p5=class extends on{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}}}},sS=class extends on{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}}},M1=class extends on{constructor(){super(),this.outputQueue=new D1,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}}},c5=class extends M1{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}},u_=class extends on{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}},is;(function(e){e[e.FAIL=0]="FAIL",e[e.SHORTEST=1]="SHORTEST",e[e.LONGEST=2]="LONGEST"})(is||(is={}));var d5=class extends on{constructor(e,t=is.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 on?{value:s.next().then(i=>(t++,i.done&&n++,i.value)),recurse:!1}:{value:null,recurse:!0}}let r=await i_(this.iterators,a);if(t===n)return{value:null,done:!0};if(n>0)switch(this.mismatchMode){case is.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case is.SHORTEST:return{value:null,done:!0};case is.LONGEST:default:}return this.count++,{value:r,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}},p_=class extends on{constructor(e,t){super(),this.upstream=e,this.bufferSize=t,this.buffer=new o_(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()}},h5=class extends p_{constructor(e,t,n){super(e,t),this.upstream=e,this.windowSize=t,this.upstreamExhausted=!1,this.random=jj.alea(n||w.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}}},yp=class{constructor(){this.size=null}batch(e,t=!0){let n=this;w.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),Yn(async()=>(await n.iterator()).columnMajorBatch(e,t,g5),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,Yn(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,Yn(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 Yn(async()=>(await t.iterator()).map(n=>P(()=>e(n))),this.size)}mapAsync(e){let t=this;return Yn(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 Yn(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,Yn(async()=>{let a=R1(async()=>({value:await t.iterator(),done:!1}));return e5(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=qj.alea(t||w.now().toString());return Yn(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,Yn(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()}};yp.MAX_BUFFER_SIZE=1e4;function Yn(e,t=null){return new class extends yp{constructor(){super(...arguments),this.size=t}async iterator(){return e()}}}function m5(e){return Yn(async()=>l_(e),e.length)}function f5(e){if(!au(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 i_(e,a=>{if(a instanceof yp)return{value:a.iterator(),recurse:!1};if(au(a))return{value:null,recurse:!0};throw new Error("Leaves of the structure passed to zip() must be Datasets, not primitives.")});return t5(n,is.SHORTEST)},t)}function g5(e){if(e===null)return null;let t=e[0];return Yj(t)?{value:b5(e),recurse:!1}:{value:null,recurse:!0}}function b5(e){if(e.length===0)throw new Error("Can't make a batch of zero elements.");return e[0]instanceof Te?Dt(e):bn(e)}var c_=class extends yp{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))}},Vh='"',nc=Symbol("out"),iS=Symbol("field"),Uh=Symbol("quote"),Ix=Symbol("quoteafterquote"),oS=Symbol("quoteinquote"),d_=class extends yp{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&&w.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(w.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}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 c_(e),t||(t={}),this.hasHeader=t.hasHeader!==!1,this.fullColumnNames=t.columnNames,this.columnConfigs=t.columnConfigs,this.configuredColumnsOnly=t.configuredColumnsOnly,t.delimWhitespace?(w.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 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(!G().get("IS_BROWSER"))throw new Error("microphone API is only supported in browser environment.");let t=new h_(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(w.sizeFromShape(t));return n.set(e,n.length-e.length),bn(n,t)}},m_=class extends on{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=je([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(!G().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 m_(e,t);return await n.start(),n}async start(){this.webcamConfig.facingMode&&w.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=Ko.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=nn(se(e,"float32"),0),n;n=ea.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.")}},f_=class{},g_=class extends on{split(e){return new y5(this,e)}},y5=class extends g_{constructor(e,t){super(),this.upstream=e,this.impl=new x5(e,t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},x5=class extends M1{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}},v5=class extends on{decodeUTF8(){return new w5(this)}},w5=class extends g_{constructor(e){super(),this.upstream=e,this.impl=new k5(e)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},k5=class extends M1{constructor(e){if(super(),this.upstream=e,G().get("IS_BROWSER"))this.decoder=new TextDecoder("utf-8");else{let{StringDecoder:t}=US();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 G().get("IS_BROWSER")?n=this.decoder.decode(t,{stream:!0}):n=this.decoder.write(Buffer.from(t.buffer)),this.outputQueue.push(n),!0}},b_=class extends v5{constructor(e,t={}){super(),this.file=e,this.options=t,w.assert(e instanceof Uint8Array||(G().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 I5(e,t={},n){let a,r;typeof e=="string"?a=e:(a=e.url,r=S5(e));let s=await(n||w.fetch)(a,r);if(s.ok){let i=new Uint8Array(await s.arrayBuffer());return new b_(i,t)}else throw new Error(s.statusText)}var S5=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 y_(e){return typeof e=="string"&&e.slice(0,7)==="file://"}var x_=class extends f_{constructor(e,t={}){super(),this.input=e,this.options=t}async iterator(){if(y_(this.input)&&G().get("IS_NODE")){let e=Nv();this.input=e.readFileSync(this.input.slice(7))}return new b_(this.input,this.options)}},v_=class extends f_{constructor(e,t={}){super(),this.url=e,this.fileOptions=t}async iterator(){return y_(this.url)?new x_(this.url,this.fileOptions).iterator():I5(this.url,this.fileOptions)}};function N5(e,t={}){return new d_(new v_(e),t)}function T5(e){let t=R1(e);return Yn(async()=>t)}function C5(e){return Yn(async()=>{let t=await e();return R1(()=>t.next())})}async function _5(e,t){return m_.create(e,t)}async function E5(e){return h_.create(e)}var A5="4.7.0";function ge(e,t){Array.isArray(e)||(e=[e]),e.forEach(n=>{n!=null&&w.assert(n.dtype!=="complex64",()=>`${t} does not support complex64 tensors in the CPU backend.`)})}var F5=gr.whereImpl,Yf=class extends Mc{nextDataId(){return Yf.nextDataId++}constructor(){super(),this.blockSize=48,this.firstUse=!0,this.data=new Rm(this,Aa())}write(e,t,n){this.firstUse&&(this.firstUse=!1,G().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 v.convertBackendValuesAndArrayBuffer(this.data.get(e).values,t)}bufferSync(e){let t=this.readSync(e.dataId);if(e.dtype==="string")try{let n=t.map(a=>v.decodeString(a));return ze(e.shape,e.dtype,n)}catch(n){throw new Error("Failed to decode encoded string bytes into utf-8")}return ze(e.shape,e.dtype,t)}makeOutput(e,t,n){return Aa().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 g5(e.shape,t)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}};Xf.nextDataId=0;var _1={};Ee(_1,{addImpl:()=>h_,bincountImpl:()=>A1,bincountReduceImpl:()=>m_,bitwiseAndImpl:()=>f_,castImpl:()=>d_,ceilImpl:()=>g_,concatImpl:()=>F1,equalImpl:()=>b_,expImpl:()=>x_,expm1Impl:()=>w_,floorDivImpl:()=>I_,floorImpl:()=>k_,gatherNdImpl:()=>S_,gatherV2Impl:()=>N_,greaterEqualImpl:()=>C_,greaterImpl:()=>T_,lessEqualImpl:()=>E_,lessImpl:()=>__,linSpaceImpl:()=>A_,logImpl:()=>F_,maxImpl:()=>$_,maximumImpl:()=>D_,minimumImpl:()=>R_,multiplyImpl:()=>$1,negImpl:()=>M_,notEqualImpl:()=>P_,prodImpl:()=>O_,raggedGatherImpl:()=>L_,raggedRangeImpl:()=>z_,raggedTensorToTensorImpl:()=>W_,rangeImpl:()=>R1,rsqrtImpl:()=>B_,scatterImpl:()=>ni,sigmoidImpl:()=>mK,simpleAbsImpl:()=>c_,sliceImpl:()=>vm,sparseFillEmptyRowsImpl:()=>U_,sparseReshapeImpl:()=>G_,sparseSegmentReductionImpl:()=>M1,sqrtImpl:()=>bK,squaredDifferenceImpl:()=>H_,staticRegexReplaceImpl:()=>q_,stridedSliceImpl:()=>j_,stringNGramsImpl:()=>P1,stringSplitImpl:()=>O1,stringToHashBucketFastImpl:()=>L1,subImpl:()=>K_,tileImpl:()=>X_,topKImpl:()=>Z_,transposeImpl:()=>D1,uniqueImpl:()=>W1});function c_(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=c_(r),n.makeOutput(a,t.shape,t.dtype)},y5={kernelName:ru,backendName:"cpu",kernelFunc:b5};function Ot(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 b=0;bx[C]=0);let w=v.locToIndex(x,d,h),I=y.slice(-c);g.forEach(C=>I[C]=0);let T=v.locToIndex(I,c,m);p[b]=e(a[w],r[T])}return[p,i]}}function Jn(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 x5={kernelName:Rm,backendName:"cpu",kernelFunc:Jn};function xm(e,t,n="float32"){if(n==="complex64"){let r=xm(e,t,"float32"),s=xm(e,t,"float32");return Jn({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 v5={kernelName:Ji,backendName:"cpu",kernelFunc:dr};function yi(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 w5={kernelName:jm,backendName:"cpu",kernelFunc:yi};function d_(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]=Ot((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 xs(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=xm(n,r.shape,r.dtype),d=xs({inputs:{x:r},backend:n,attrs:{dtype:"float32"}}),c=Jn({inputs:{real:d,imag:p},backend:n});return n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(d),c}if(r.dtype==="complex64"){let p=yi({inputs:{input:r},backend:n}),d=xs({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]=d_(i,r.shape,r.dtype,s);return n.makeTensorInfo(o,l,u)}var k5={kernelName:Ri,backendName:"cpu",kernelFunc:xs};function Zt(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=xs({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=xs({inputs:{x:o},backend:l,attrs:{dtype:"complex64"}}),g=l.data.get(f.dataId),b=g.complexTensorInfos.real,y=g.complexTensorInfos.imag,x=l.data.get(b.dataId).values,w=l.data.get(y.dataId).values,[I,T,C]=n(i.shape,o.shape,h,m,x,w),E=l.makeTensorInfo(C,"float32",I),F=l.makeTensorInfo(C,"float32",T),D=Jn({inputs:{real:E,imag:F},backend:l});return l.disposeIntermediateTensorInfo(u),l.disposeIntermediateTensorInfo(f),l.disposeIntermediateTensorInfo(E),l.disposeIntermediateTensorInfo(F),D}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 E1(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),b=t.length,y=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,b,y),F=T.slice(-x);m.forEach(S=>F[S]=0);let D=v.locToIndex(F,x,w),$=e(f[E*2],f[E*2+1],g[D*2],g[D*2+1]);d[I]=$.real,c[I]=$.imag}return[d,c,o]}}var h_=Ot((e,t)=>e+t),I5=E1((e,t,n,a)=>({real:e+n,imag:t+a})),Ql=Zt(ks,h_,I5),S5={kernelName:ks,backendName:"cpu",kernelFunc:Ql};function A1(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 m_(e,t,n,a=!1){let r=e.shape[0],s=e.shape[1],i=ze([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}var f_=Ot((e,t)=>e&t),N5=Zt(Dm,f_),T5={kernelName:Dm,backendName:"cpu",kernelFunc:N5};function br(e){return(t,n,a)=>{let r=v.getArrayFromDType(n,t.length);for(let s=0;s{let{x:i}=a;ge(i,e);let o=s,l=o.data.get(i.dataId).values,u;if(i.dtype==="string"){if(!Array.isArray(l))throw new Error("String tensor's value was not an instance of Array");u=N.fromUint8ToStringArray(l)}else u=l;let p=n||i.dtype,d=t(u,p,r);return o.makeTensorInfo(i.shape,p,d)}}var g_=br(e=>Math.ceil(e)),C5=Ds(Mi,g_),_5={kernelName:Mi,backendName:"cpu",kernelFunc:C5};function F1(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),y_=Zt(vu,b_,null,"bool"),E5={kernelName:vu,backendName:"cpu",kernelFunc:y_},x_=br(e=>Math.exp(e)),v_=Ds(qi,x_,"float32"),A5={kernelName:qi,backendName:"cpu",kernelFunc:v_},w_=br(e=>Math.expm1(e)),F5=Ds(ji,w_),$5={kernelName:ji,backendName:"cpu",kernelFunc:F5},k_=br(e=>Math.floor(e)),D5=Ds(Ki,k_),R5={kernelName:Ki,backendName:"cpu",kernelFunc:D5},I_=Ot((e,t)=>Math.floor(e/t)),M5=Zt(Xi,I_,null,"int32"),P5={kernelName:Xi,backendName:"cpu",kernelFunc:M5};function S_(e,t,n,a,r,s,i,o,l){let u=ze([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),O5=Zt(Nu,T_,null,"bool"),L5={kernelName:Nu,backendName:"cpu",kernelFunc:O5},C_=Ot((e,t)=>e>=t?1:0),z5=Zt(Zi,C_,null,"bool"),W5={kernelName:Zi,backendName:"cpu",kernelFunc:z5},__=Ot((e,t)=>ee<=t?1:0),U5=Zt(Cu,E_,null,"bool"),G5={kernelName:Cu,backendName:"cpu",kernelFunc:U5};function A_(e,t,n){let a=(t-e)/(n-1),r=v.makeZerosTypedArray(n,"float32");r[0]=e;for(let s=1;sMath.log(e)),H5=Ds(ao,F_),q5={kernelName:ao,backendName:"cpu",kernelFunc:H5};function $_(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 D_=Ot((e,t)=>Math.max(e,t)),j5=Zt(oo,D_),K5={kernelName:oo,backendName:"cpu",kernelFunc:j5},R_=Ot((e,t)=>Math.min(e,t)),X5=Zt(co,R_),Y5={kernelName:co,backendName:"cpu",kernelFunc:X5},$1=Ot((e,t)=>e*t),Z5=E1((e,t,n,a)=>({real:e*n-t*a,imag:e*a+t*n})),Yf=Zt(mo,$1,Z5),J5={kernelName:mo,backendName:"cpu",kernelFunc:Yf};function M_(e,t,n){let a=v.createScalarValue(-1,n);return $1([],t,a,e,n)}function Q5(e){let{inputs:t,backend:n}=e,{x:a}=t;ge(a,"neg");let r=n.data.get(a.dataId).values,[s,i]=M_(r,a.shape,a.dtype);return n.makeTensorInfo(i,a.dtype,s)}var eK={kernelName:Pu,backendName:"cpu",kernelFunc:Q5},P_=Ot((e,t)=>e!==t?1:0),tK=Zt(Ou,P_,null,"bool"),nK={kernelName:Ou,backendName:"cpu",kernelFunc:tK};function D1(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(y)),n.makeTensorInfo(b,g,m)}var sK={kernelName:xo,backendName:"cpu",kernelFunc:rK};function iK(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 oK(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 lK(e,t,n,a){let r=[],s=0,i=t.length-1+n.length,o=new Array(i).fill(null).map(()=>[0]);oK(n,a);let l=1;for(let u=0;u=0){let f=o[m],g=f[f.length-1]-h[p];for(let b=p;br[i]=s)}return t}function QI(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&&yb)w=0;else if(w=Math.ceil(Math.abs((y-b)/x)),w>eS)throw new Error(`Requires ((limit - start) / delta) <= ${eS}`);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 Ca.VALUE_ROWIDS:return this.calculateOutputIndexValueRowID(r,t,n,a);case Ca.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: ${Ca[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 Ca.FIRST_DIM_SIZE:return e[0];case Ca.VALUE_ROWIDS:throw new Error("Cannot handle VALUE_ROWIDS in first dimension.");case Ca.ROW_SPLITS:return this.rowPartitionValuesShapes[0][0]-1;default:throw new Error(`Cannot handle type ${Ca[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=nS(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=ai(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);tS(f,u,o),++c}m<0?(p=h+1,d=c):(p=h,d=c,c=d+1)}}};function tS(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 W_(e,t,n,a,r,s,i,o,l,u){return new tv(e,t,n,a,r,s,i,o,l,u).compute()}function R1(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)),dK=Ds(Co,B_),hK={kernelName:Co,backendName:"cpu",kernelFunc:dK};function ni(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 ze(n,t.dtype);let h=l instanceof Vt?l:ze(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 b=0;b1/(1+Math.exp(-e))),V_=it(Fo,e=>1/(1+Math.exp(-e))),fK={kernelName:Fo,backendName:"cpu",kernelFunc:V_};function vm(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=ze(a,r,l),p=ze(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 xi(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=vm(u,o,l,r.shape,r.dtype);return n.makeTensorInfo(l,r.dtype,p)}var gK={kernelName:Yu,backendName:"cpu",kernelFunc:xi};function U_(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),b=v.getArrayFromDType(r,0);return[g,[0,d],b,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,b,l));++m[b],c=c&&b>=h,h=b}let f=!0;for(let g=0;g0&&(m[g]+=m[g-1])}if(f&&c){let g=e,b=a;for(let y=0;y0){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((y,x)=>y*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,b=r[m];for(;;){let y=0;if(f=y)throw new Error(N.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage())}if(b<0||b>=p)throw new Error(N.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(b,p));b>g&&h.fill(i,g*u,b*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)),yK=it(Do,e=>Math.sqrt(e)),xK={kernelName:Do,backendName:"cpu",kernelFunc:yK},H_=Ot((e,t)=>{let n=e-t;return n*n}),vK=Zt(Po,H_),wK={kernelName:Po,backendName:"cpu",kernelFunc:vK},q_=br((e,t)=>{let{pattern:n,replaceGlobal:a,rewrite:r}=t;return e.replace(new RegExp(n,a?"g":""),r)}),kK=Ds(qc,q_),IK={kernelName:qc,backendName:"cpu",kernelFunc:kK};function j_(e,t,n,a){let r=ze(e,t.dtype);for(let s=0;s0?0:i-o),c=0;c+=l*this.leftPad.length;for(let b=0;bb.forEach(y=>m[f++]=y);for(let b=0;b0){g(e[d+p-1]);for(let b=0;b0){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 P1(e,t,n,a,r,s,i,o){return new SK(n,a,r,s,i,o).compute(e,t)}function NK(e,t,n,a){if(!e.length)return;if(t.length===0){for(let s=0;se-t),TK=E1((e,t,n,a)=>({real:e-n,imag:t-a})),z1=Zt(Oo,K_,TK),CK={kernelName:Oo,backendName:"cpu",kernelFunc:z1};function X_(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 Y_(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));Y_(e,t,c,h)}let r=e[t],s=n,i=a;for(v.swap(e,n,t),ac(e[a],r)>0&&v.swap(e,n,a);s0;)i=i-1}ac(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 Z_(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:y,index:x}),a{for(let g=0;gnew Xf,1);var J_=it(Hi,e=>e>=0?e:Math.exp(e)-1),EK={kernelName:Hi,backendName:"cpu",kernelFunc:J_};function Q_(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 eE(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]=FK(a.shape,r.shape,s,i,"float32");return n.makeTensorInfo(l,"float32",o)}var $K={kernelName:yo,backendName:"cpu",kernelFunc:eE},tE=it(wo,e=>Math.max(0,e)),DK={kernelName:wo,backendName:"cpu",kernelFunc:tE},nE=it(So,e=>Math.min(Math.max(0,e),6)),RK={kernelName:So,backendName:"cpu",kernelFunc:nE};function wm(e,t,n,a,r){if(n==="linear")return dr({inputs:{x:t},backend:e});if(n==="relu")return tE({inputs:{x:t},backend:e});if(n==="elu")return J_({inputs:{x:t},backend:e});if(n==="relu6")return nE({inputs:{x:t},backend:e});if(n==="prelu")return eE({inputs:{x:t,alpha:a},backend:e});if(n==="leakyrelu")return Q_({inputs:{x:t},backend:e,attrs:{alpha:r}});if(n==="sigmoid")return V_({inputs:{x:t},backend:e});throw new Error(`Activation ${n} has not been implemented for the CPU backend.`)}function xt(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 MK={kernelName:Uu,backendName:"cpu",kernelFunc:xt};function aE(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),b=v.sizeFromShape(f),y=lp.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?[b,h,d]:[b,d,h],I=xt({inputs:{x:r},backend:n,attrs:{shape:x}}),T=xt({inputs:{x:s},backend:n,attrs:{shape:w}}),C=i?I.shape[1]:I.shape[2],E=i?I.shape[2]:I.shape[1],F=o?T.shape[1]:T.shape[2],D=Math.max(g,b),$=n.data.get(I.dataId).values,S=n.data.get(T.dataId).values,M=v.computeStrides(I.shape),B=v.computeStrides(T.shape),[U,H,j]=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*F,ae=ze([D,E,F],I.dtype),te=ae.values,re=n.blockSize;for(let se=0;seMath.acos(e)),WK={kernelName:Si,backendName:"cpu",kernelFunc:zK},BK=it(Ni,e=>Math.acosh(e)),VK={kernelName:Ni,backendName:"cpu",kernelFunc:BK};function UK(e){let{inputs:t,backend:n}=e,a=t;ge(t,"addN");let r=a.map(o=>n.data.get(o.dataId).values),s=ze(a[0].shape,a[0].dtype),i=s.values;for(let o=0;oy&&(y=I,x=w)}h[g]=x}return u.forEach(g=>n.disposeIntermediateTensorInfo(g)),n.makeTensorInfo(p,"int32",h)}var YK={kernelName:ou,backendName:"cpu",kernelFunc:XK};function ZK(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=Un({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 JK={kernelName:lu,backendName:"cpu",kernelFunc:ZK},QK=it(Ci,e=>Math.asin(e)),e8={kernelName:Ci,backendName:"cpu",kernelFunc:QK},t8=it(_i,e=>Math.asinh(e)),n8={kernelName:_i,backendName:"cpu",kernelFunc:t8},a8=it(Ei,e=>Math.atan(e)),r8={kernelName:Ei,backendName:"cpu",kernelFunc:a8},s8=Ot((e,t)=>Math.atan2(e,t)),i8=Zt(Fi,s8),o8={kernelName:Fi,backendName:"cpu",kernelFunc:i8},l8=it(Ai,e=>Math.atanh(e)),u8={kernelName:Ai,backendName:"cpu",kernelFunc:l8};function B1(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=ze(r.outShape,n),g=f.values,b=r.outShape[1]*r.outShape[2]*r.outShape[3],y=r.outShape[2]*r.outShape[3],x=r.outShape[3];for(let w=0;wj?j=se:s==="avg"&&(K+=se,Z++)}if(isNaN(j))break}let J=S+M*x+C;g[J]=s==="avg"?K/Z:j}}}return f}function rE(e,t,n,a,r=!1,s=!1){let i=ze(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=ze(t,n,e);for(let g=0;gD&&(D=H,r?$=s?((g*a.inHeight+S)*a.inWidth+B)*a.inChannels+b:(S*a.inWidth+B)*a.inChannels+b:$=M*c+U)}}i.set($,g,y,T,b)}}return i}function sE(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,b=r.padInfo.left,y=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,x=ze(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 F=0;Fbe?be=ft:s==="avg"&&(ke+=ft,Se++),isNaN(be))break}if(isNaN(be))break}if(isNaN(be))break}let We=ue+S;w[We]=s==="avg"?ke/Math.max(Se,1):be}}}}return x}function p8(e,t){let n=ze(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=H*p*d+K*p+J)}}}n.set(B,f,b,I,F,g)}}}return n}function c8(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=B1(c,r.shape,r.dtype,h,p,"avg");d=n.makeTensorInfo(p.outShape,r.dtype,m.values)}return d}var d8={kernelName:$i,backendName:"cpu",kernelFunc:c8};function h8(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=sE(d,r.shape,r.dtype,v.computeStrides(r.shape),p,"avg");return n.makeTensorInfo(c.shape,"float32",c.values)}var m8={kernelName:uu,backendName:"cpu",kernelFunc:h8};function f8(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,b=p.dilationDepth,y=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,F=I-1-p.padInfo.top,D=ze(s.shape,"float32"),$=1/(m*f*g),S=n.bufferSync(r);for(let M=0;M=p.outDepth||Math.floor(te)!==te))for(let re=0;re=p.outHeight||Math.floor(se)!==se))for(let ye=0;ye=p.outWidth||Math.floor(ue)!==ue)continue;let be=S.get(M,te,se,ue,B);ee+=be}}}D.set(ee*$,M,U,H,j,B)}return n.makeTensorInfo(D.shape,D.dtype,D.values)}var g8={kernelName:Rc,backendName:"cpu",kernelFunc:f8};function b8(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,b=p.effectiveFilterHeight,y=p.effectiveFilterWidth,x=y-1-p.padInfo.left,w=b-1-p.padInfo.top,I=ze(i.shape,"float32"),T=1/(h*m),C=n.data.get(r.dataId).values,E=ze(r.shape,"float32",C);for(let F=0;F=p.outHeight||Math.floor(j)!==j))for(let K=0;K=p.outWidth||Math.floor(Z)!==Z)continue;let J=E.get(F,j,Z,D);U+=J}}I.set(U*T,F,$,S,D)}return n.makeTensorInfo(I.shape,I.dtype,I.values)}var y8={kernelName:$m,backendName:"cpu",kernelFunc:b8};function x8(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,b=h.length,y=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>=b&&(T=0),C>=y&&(C=0);return n.makeTensorInfo(r.shape,r.dtype,f)}var v8={kernelName:Yi,backendName:"cpu",kernelFunc:x8};function w8(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,crops:i}=a;ge([r],"batchToSpaceND");let o=s.reduce((b,y)=>b*y),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=xt({inputs:{x:r},backend:n,attrs:{shape:l}}),m=Un({inputs:{x:h},backend:n,attrs:{perm:u}}),f=xt({inputs:{x:m},backend:n,attrs:{shape:p}}),g=xi({inputs:{x:f},backend:n,attrs:{begin:d,size:c}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),g}var k8={kernelName:pu,backendName:"cpu",kernelFunc:w8};function I8(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=A1(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,u)}var S8={kernelName:cu,backendName:"cpu",kernelFunc:I8};function N8(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 T8={kernelName:Mc,backendName:"cpu",kernelFunc:N8},C8=it(Is,(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=>yi({inputs:{input:w},backend:n})),g=l.map(w=>eu({inputs:{input:w},backend:n})),b=tu({inputs:f,backend:n,attrs:{axis:s}}),y=tu({inputs:g,backend:n,attrs:{axis:s}}),x=Jn({inputs:{real:b,imag:y},backend:n});return f.forEach(w=>n.disposeIntermediateTensorInfo(w)),g.forEach(w=>n.disposeIntermediateTensorInfo(w)),n.disposeIntermediateTensorInfo(b),n.disposeIntermediateTensorInfo(y),x}let u=l.map(f=>{let g=[-1,v.sizeFromShape(f.shape.slice(s))];return xt({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=F1(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 $8={kernelName:du,backendName:"cpu",kernelFunc:tu};function iE(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,b=c.padInfo.left,y=c.padInfo.top,x=c.dataFormat==="channelsLast",w=new Vt(c.outShape,r.dtype),I=v.computeStrides(r.shape),T=v.computeStrides(s.shape),C=I[0],E=x?I[1]:I[2],F=x?I[2]:1,D=x?1:I[1],$=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,H=n.data.get(s.dataId).values,j=w.values;for(let K=0;K=c.inHeight)continue;let ye=re*T[0],ue=Z+se*E;for(let be=0;be=c.inWidth)continue;let ht=ye+We*T[1],st=ue+Ge*F,at=ht;for(let rt=0;rt=u.inDepth)continue;let K=H*F[0],Z=$+j*E[1];for(let J=0;J=u.inHeight)continue;let se=K+te*F[1],ye=Z+re*E[2];for(let ue=0;ue=u.inWidth)continue;let Ge=se+Se*F[2],ht=ye+We*u.inChannels,st=Ge;for(let at=0;atMath.cos(e)),H8={kernelName:zi,backendName:"cpu",kernelFunc:G8},q8=it(Wi,e=>Math.cosh(e)),j8={kernelName:Wi,backendName:"cpu",kernelFunc:q8};function K8(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,b=ze([m,f,g,h],"float32"),y=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(b.shape);for(let C=0;C=p)continue;let B=f>1?($-F)*(d-1)/(f-1):0,U=g>1?(S-D)*(c-1)/(g-1):0;for(let H=0;H1?F*(d-1)+H*B:.5*(F+$)*(d-1);if(j<0||j>d-1){for(let K=0;K1?D*(c-1)+ee*U:.5*(D+S)*(c-1);if(ae<0||ae>c-1){for(let ye=0;ye1?D*(c-1)+K*U:.5*(D+S)*(c-1);if(Z<0||Z>c-1){for(let ae=0;aeb+m-y-1:(b,y)=>b+y;for(let b=0;bb+m-y-1:(b,y)=>b+y;for(let b=0;b`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 b=0;b`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:b,padInfo:y}=h,x=y.left,w=y.top,I=h.outChannels/h.inChannels,T=new Vt(h.outShape,r.dtype),C=n.data.get(r.dataId).values,E=n.data.get(s.dataId).values,F=T.values;for(let D=0;D=h.inHeight)continue;let K=H*d[0],Z=$+j*p[1];for(let J=0;J=h.inWidth)continue;let se=K+te*d[1],ye=Z+re*h.inChannels,ue=ee,be=se;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:b,outWidth:y,padInfo:x,strideHeight:w,strideWidth:I,filterHeight:T,filterWidth:C,dilationHeight:E,dilationWidth:F,outShape:D}=N.computeDilation2DInfo(a.shape,r.shape,s,i,"NHWC",o),$=v.sizeFromShape(D),S=D.length,M=v.getArrayFromDType(a.dtype,$);for(let B=0;B=0&&te=0&&seJ&&(J=be)}}}let ee=v.locToIndex([B,U,j,Z],S,v.computeStrides(D));M[ee]=J}}}return{dataId:l.write(v.toTypedArray(M,a.dtype),D,a.dtype),shape:D,dtype:a.dtype}}},dX={kernelName:Ll,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:b,padInfo:y,strideHeight:x,strideWidth:w,filterHeight:I,filterWidth:T,dilationHeight:C,dilationWidth:E,outShape:F}=N.computeDilation2DInfo(a.shape,r.shape,i,o,"NHWC",l);v.assert(s.rank===F.length,()=>`Error in ${Ll}, dy must have the same rank as output ${F.length}, but got ${s.rank}`);let D=v.toNestedArray(F,u.data.get(s.dataId).values),$=v.makeZerosNestedTypedArray(r.shape,r.dtype);for(let S=0;S=0&&ae=0&&reK&&(K=se,Z=ee,J=te)}}}$[Z][J][j]+=D[S][M][U][j]}}}return{dataId:u.write(v.toTypedArray($,a.dtype),r.shape,r.dtype),shape:r.shape,dtype:r.dtype}}},hX={kernelName:Ol,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:b,padInfo:y,strideHeight:x,strideWidth:w,filterHeight:I,filterWidth:T,dilationHeight:C,dilationWidth:E,outShape:F}=N.computeDilation2DInfo(a.shape,r.shape,i,o,"NHWC",l);v.assert(s.rank===F.length,()=>`Error in ${Ol}, dy must have the same rank as output ${F.length}, but got ${s.rank}`);let D=v.toNestedArray(F,u.data.get(s.dataId).values),$=v.makeZerosNestedTypedArray(a.shape,a.dtype);for(let S=0;S=0&&ae=0&&reK&&(K=se,Z=ae,J=re)}}}$[S][Z][J][j]+=D[S][M][U][j]}}}return{dataId:u.write(v.toTypedArray($,a.dtype),a.shape,a.dtype),shape:a.shape,dtype:a.dtype}}};function _d(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=xs({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=Un({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=xm(n,h,f),b=v.sizeFromShape(m),y=n.data.get(g.dataId).values,x=n.data.get(c.dataId).values;for(let w=0;w=0&&(c=_d({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 gX={kernelName:Lm,backendName:"cpu",kernelFunc:fX};function bX(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=0?s[l]=o[l]:s[l]=o[l]*(u+1)}return n.makeTensorInfo(r.shape,"float32",s)}var yX={kernelName:yu,backendName:"cpu",kernelFunc:bX},xX=N.ERF_P,vX=N.ERF_A1,wX=N.ERF_A2,kX=N.ERF_A3,IX=N.ERF_A4,SX=N.ERF_A5,NX=it(xu,e=>{let t=Math.sign(e),n=Math.abs(e),a=1/(1+xX*n);return t*(1-((((SX*a+IX)*a+kX)*a+wX)*a+vX)*a*Math.exp(-n*n))}),TX={kernelName:xu,backendName:"cpu",kernelFunc:NX};function km(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),xt({inputs:{x:r},backend:n,attrs:{shape:o}})}var CX={kernelName:wu,backendName:"cpu",kernelFunc:km},_X=Ot((e,t)=>e/t),V1=Zt(Gi,_X),nv={kernelName:Gi,backendName:"cpu",kernelFunc:V1};function lE(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&&y=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=xt({inputs:{x:r},backend:n,attrs:{shape:[h.batchSize,h.outerSize,h.dimSize,h.sliceSize]}}),f=xt({inputs:{x:s},backend:n,attrs:{shape:[h.batchSize,c/h.batchSize]}}),g=[h.batchSize,h.outerSize,c/h.batchSize,h.sliceSize],b=n.bufferSync(f),y=n.bufferSync(m),x=N_(y,b,g);return n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),n.makeTensorInfo(h.outputShape,x.dtype,x.values)}var GX={kernelName:Iu,backendName:"cpu",kernelFunc:UX};function HX(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=xt({inputs:{x:a},backend:n,attrs:{shape:[i,s]}}),l=lE(o,!0,n),u=xt({inputs:{x:l},backend:n,attrs:{shape:a.shape}});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(l),u}var qX={kernelName:Wm,backendName:"cpu",kernelFunc:HX},jX=it(Qi,e=>Number.isFinite(e)?1:0,"bool"),KX={kernelName:Qi,backendName:"cpu",kernelFunc:jX},XX=it(eo,e=>Math.abs(e)===1/0?1:0,"bool"),YX={kernelName:eo,backendName:"cpu",kernelFunc:XX},ZX=it(to,e=>Number.isNaN(e)?1:0,"bool"),JX={kernelName:to,backendName:"cpu",kernelFunc:ZX};function QX(e){let{backend:t,attrs:n}=e,{start:a,stop:r,num:s}=n,i=A_(a,r,s);return t.makeTensorInfo([i.length],"float32",i)}var eY={kernelName:_u,backendName:"cpu",kernelFunc:QX},tY=it(ro,e=>Math.log1p(e)),nY={kernelName:ro,backendName:"cpu",kernelFunc:tY},aY=Ot((e,t)=>e&&t),rY=Zt(Eu,aY,null,"bool"),sY={kernelName:Eu,backendName:"cpu",kernelFunc:rY},iY=it(Au,e=>e?0:1,"bool"),oY={kernelName:Au,backendName:"cpu",kernelFunc:iY},lY=Ot((e,t)=>e||t),uY=Zt(Fu,lY,null,"bool"),pY={kernelName:Fu,backendName:"cpu",kernelFunc:uY};function cY(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,b=f-g+Math.max(0,g-s),y=f-g+Math.min(g+s,p),x=0;for(;b<=y;b++){let w=d[b];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=B1(c,r.shape,r.dtype,h,p,"max");d=n.makeTensorInfo(p.outShape,r.dtype,m.values)}return d}var bY={kernelName:lo,backendName:"cpu",kernelFunc:gY};function yY(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=sE(d,r.shape,r.dtype,v.computeStrides(r.shape),p,"max");return n.makeTensorInfo(c.shape,"float32",c.values)}var xY={kernelName:Du,backendName:"cpu",kernelFunc:yY};function vY(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=p8(d,p),h=p.strideDepth,m=p.strideHeight,f=p.strideWidth,g=p.dilationDepth,b=p.dilationHeight,y=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,F=ze(s.shape,"float32"),D=n.bufferSync(r);for(let $=0;$=p.outDepth||Math.floor(ee)!==ee))for(let ae=0;ae=p.outHeight||Math.floor(te)!==te))for(let re=0;re=p.outWidth||Math.floor(se)!==se)continue;let ye=x*w*I-1-c.get($,ee,te,se,S),ue=J*w*I+ae*I+re,be=ye===ue?1:0;if(be===0)continue;let ke=D.get($,ee,te,se,S);Z+=ke*be}}}F.set(Z,$,M,B,U,S)}return n.makeTensorInfo(F.shape,F.dtype,F.values)}var wY={kernelName:Wc,backendName:"cpu",kernelFunc:vY};function kY(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=ze(c.outShape,o.dtype,rE(h,o.shape,o.dtype,c).values),f=c.strideHeight,g=c.strideWidth,b=c.dilationHeight,y=c.dilationWidth,x=c.effectiveFilterHeight,w=c.effectiveFilterWidth,I=w-1-c.padInfo.left,T=x-1-c.padInfo.top,C=ze(o.shape,"float32"),E=n.data.get(r.dataId).values,F=ze(r.shape,"float32",E);for(let D=0;D=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(D,K,J,$),ae=j*w+Z,te=ee===ae?1:0;if(te===0)continue;let re=F.get(D,K,J,$);H+=re*te}}C.set(H,D,S,M,$)}return n.makeTensorInfo(C.shape,C.dtype,C.values)}var IY={kernelName:Vm,backendName:"cpu",kernelFunc:kY};function SY(e,t,n,a,r){let s=v.computeStrides(t),i=B1(e,t,n,s,r,"max"),o=rE(e,t,n,r,!0,a);return[i.values,o.values]}var NY={kernelName:Um,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]=SY(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 TY(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=xs({inputs:{x:r},backend:n,attrs:{dtype:"float32"}});p.push(c);let h=V1({inputs:{a:c,b:d},backend:n});p.push(h);let m=_d({inputs:{x:h},backend:n,attrs:{axis:s,keepDims:i}});return p.forEach(f=>n.disposeIntermediateTensorInfo(f)),m}var CY={kernelName:uo,backendName:"cpu",kernelFunc:TY};function _Y(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=Un({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 b=0;by[0]+r.shape[x]+y[1]),l=s.map(y=>y[0]),u=s.map((y,x)=>y[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),b=v.getTypedArrayFromDType(r.dtype,m);for(let y=0;y=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);b[y]=d[w]}return{dataId:n.write(b,o,r.dtype),shape:o,dtype:r.dtype}}var FY={kernelName:ho,backendName:"cpu",kernelFunc:AY},$Y=Ot((e,t)=>{let n=e%t;return e<0&&t<0||e>=0&&t>=0?n:(n+t)%t}),DY=Zt(Ru,$Y),RY={kernelName:Ru,backendName:"cpu",kernelFunc:DY},MY=ws(_m());function pE(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=uE({inputs:{x:r},backend:n,attrs:{reductionIndices:l,keepDims:!1}}),p=N.expandShapeToKeepDim(u.shape,l),d=xt({inputs:{x:u},backend:n,attrs:{shape:p}}),c=z1({inputs:{a:r,b:d},backend:n}),h=v_({inputs:{x:c},backend:n}),m=_d({inputs:{x:h},backend:n,attrs:{axis:l,keepDims:!1}}),f=xt({inputs:{x:m},backend:n,attrs:{shape:p}}),g=V1({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 PY={kernelName:Mo,backendName:"cpu",kernelFunc:pE};function OY(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:pE({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=km({inputs:{input:p},backend:n,attrs:{dim:r}});return o.push(d),d}),u=tu({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(p=>n.disposeIntermediateTensorInfo(p)),u}var JY={kernelName:Vu,backendName:"cpu",kernelFunc:dE};function QY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{paddings:s,constantValue:i}=a;ge(r,"pad");let o=s.map((b,y)=>b[0]+r.shape[y]+b[1]),l=s.map(b=>b[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 b=0;bw+l[I]),x=v.locToIndex(y,m,f);g[x]=u[b]}return{dataId:n.write(g,o,r.dtype),shape:o,dtype:r.dtype}}var hE={kernelName:go,backendName:"cpu",kernelFunc:QY},e7=Ot((e,t)=>Math.pow(e,t)),t7=Zt(bo,e7),n7={kernelName:bo,backendName:"cpu",kernelFunc:t7};function a7(e){let{inputs:t,backend:n,attrs:a}=e,{paramsNestedSplits:r,paramsDenseValues:s,indices:i}=t,{outputRaggedRank:o}=a,l=r.map(b=>n.data.get(b.dataId).values),u=r.map(b=>b.shape),p=n.data.get(s.dataId).values,d=n.data.get(i.dataId).values,[c,h,m]=L_(l,u,p,s.shape,s.dtype,d,i.shape,o),f=c.map(b=>n.makeTensorInfo([b.length],"int32",b)),g=n.makeTensorInfo(m,s.dtype,h);return f.concat([g])}var r7={kernelName:Gm,backendName:"cpu",kernelFunc:a7};function s7(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]=z_(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 i7={kernelName:Hm,backendName:"cpu",kernelFunc:s7};function o7(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]=W_(u,r.shape,p,s.shape,s.dtype,d,i.shape,c,h,l);return n.makeTensorInfo(m,s.dtype,f)}var l7={kernelName:qm,backendName:"cpu",kernelFunc:o7};function u7(e){let{backend:t,attrs:n}=e,{start:a,stop:r,dtype:s,step:i}=n,o=R1(a,r,i,s);return t.makeTensorInfo([o.length],s,o)}var p7={kernelName:Bc,backendName:"cpu",kernelFunc:u7},c7=it(vo,e=>1/e),d7={kernelName:vo,backendName:"cpu",kernelFunc:c7};function h7(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])),b=[s&&u>1?c-1:c,s&&p>1?h-1:h],y=[s&&u>1?u-1:u,s&&p>1?p-1:p],x=0,w=b[0]/y[0],I=b[1]/y[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],b=f[0]/g[0],y=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],y=[s&&u>1?u-1:u,s&&p>1?p-1:p],x=b[0]/y[0],w=b[1]/y[1],I=0;for(let T=0;T1?p-1:p,i&&m>1?d-1:d],y=[i&&h>1?h-1:h,i&&m>1?m-1:m],x=b[0]/y[0],w=b[1]/y[1],I=1/x,T=1/w,C=Math.ceil(I)*2+2,E=Math.ceil(T)*2+2;for(let F=0;F=h)continue;let te=D+ae*l[1],re=ae*x,se=Math.min(p-1,i?Math.round(re):Math.floor(re));if($===se)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[H+Z]=J}}}}return n.makeTensorInfo(r.shape,r.dtype,f)}var v7={kernelName:Gu,backendName:"cpu",kernelFunc:x7};function w7(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 Vt(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 k7={kernelName:No,backendName:"cpu",kernelFunc:w7},I7={kernelName:op,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),b=Math.cos(r),y=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}),N7={kernelName:To,backendName:"cpu",kernelFunc:S7};function T7(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=ni(h,m,i,d,u,l,o,p,0,c);return n.makeTensorInfo(i,f.dtype,f.values)}var C7={kernelName:qu,backendName:"cpu",kernelFunc:T7};function _7(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?P7*e:M7*(Math.exp(e)-1)),L7={kernelName:_o,backendName:"cpu",kernelFunc:O7},z7=it(Ao,e=>e<0?-1:e>0?1:0),W7={kernelName:Ao,backendName:"cpu",kernelFunc:z7},B7=it(Eo,e=>Math.sin(e)),V7={kernelName:Eo,backendName:"cpu",kernelFunc:B7},U7=it(Zu,e=>Math.sinh(e)),G7={kernelName:Zu,backendName:"cpu",kernelFunc:U7},H7=11920928955078125e-23,aS=Math.log(H7)+2,q7=it($o,e=>{let t=e>-aS,n=e0&&w.isString(n[0])){let r=n.map(s=>w.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 w.convertBackendValuesAndArrayBuffer(this.data.get(e).values,t)}bufferSync(e){let t=this.readSync(e.dataId);if(e.dtype==="string")try{let n=t.map(a=>w.decodeString(a));return ze(e.shape,e.dtype,n)}catch(n){throw new Error("Failed to decode encoded string bytes into utf-8")}return ze(e.shape,e.dtype,t)}makeOutput(e,t,n){return Aa().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=w.now();return e(),{kernelMs:w.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 F5(e.shape,t)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}};Yf.nextDataId=0;var P1={};Ee(P1,{addImpl:()=>I_,bincountImpl:()=>L1,bincountReduceImpl:()=>S_,bitwiseAndImpl:()=>N_,castImpl:()=>k_,ceilImpl:()=>T_,concatImpl:()=>z1,equalImpl:()=>C_,expImpl:()=>E_,expm1Impl:()=>F_,floorDivImpl:()=>D_,floorImpl:()=>$_,gatherNdImpl:()=>R_,gatherV2Impl:()=>M_,greaterEqualImpl:()=>O_,greaterImpl:()=>P_,lessEqualImpl:()=>z_,lessImpl:()=>L_,linSpaceImpl:()=>W_,logImpl:()=>B_,maxImpl:()=>V_,maximumImpl:()=>U_,minimumImpl:()=>G_,multiplyImpl:()=>W1,negImpl:()=>H_,notEqualImpl:()=>q_,prodImpl:()=>j_,raggedGatherImpl:()=>K_,raggedRangeImpl:()=>X_,raggedTensorToTensorImpl:()=>Y_,rangeImpl:()=>V1,rsqrtImpl:()=>Z_,scatterImpl:()=>ai,sigmoidImpl:()=>EK,simpleAbsImpl:()=>w_,sliceImpl:()=>Nm,sparseFillEmptyRowsImpl:()=>Q_,sparseReshapeImpl:()=>eE,sparseSegmentReductionImpl:()=>U1,sqrtImpl:()=>$K,squaredDifferenceImpl:()=>tE,staticRegexReplaceImpl:()=>nE,stridedSliceImpl:()=>aE,stringNGramsImpl:()=>G1,stringSplitImpl:()=>H1,stringToHashBucketFastImpl:()=>q1,subImpl:()=>rE,tileImpl:()=>sE,topKImpl:()=>oE,transposeImpl:()=>B1,uniqueImpl:()=>K1});function w_(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(w.sizeFromShape(t.shape)),r=n.data.get(t.dataId).values;return a=w_(r),n.makeOutput(a,t.shape,t.dtype)},D5={kernelName:lu,backendName:"cpu",kernelFunc:$5};function Ot(e){return(t,n,a,r,s)=>{let i=N.assertAndGetBroadcastShape(t,n),o=i.length,l=w.computeStrides(i),u=w.sizeFromShape(i),p=w.getTypedArrayFromDType(s,u),d=t.length,c=n.length,h=w.computeStrides(t),m=w.computeStrides(n),f=N.getBroadcastDims(t,i),g=N.getBroadcastDims(n,i);if(f.length+g.length===0)for(let b=0;bx[C]=0);let v=w.locToIndex(x,d,h),I=y.slice(-c);g.forEach(C=>I[C]=0);let T=w.locToIndex(I,c,m);p[b]=e(a[v],r[T])}return[p,i]}}function Jn(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 R5={kernelName:Om,backendName:"cpu",kernelFunc:Jn};function Sm(e,t,n="float32"){if(n==="complex64"){let r=Sm(e,t,"float32"),s=Sm(e,t,"float32");return Jn({inputs:{real:r,imag:s},backend:e})}let a=w.makeZerosTypedArray(w.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 M5={kernelName:to,backendName:"cpu",kernelFunc:dr};function xi(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 P5={kernelName:Km,backendName:"cpu",kernelFunc:xi};function k_(e,t,n,a){if(a==="int32"){let r=Int32Array.from(e);return[t,"int32",r]}if(a==="bool"){let r=w.toTypedArray([0],n),[s,i]=Ot((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 vs(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=Sm(n,r.shape,r.dtype),d=vs({inputs:{x:r},backend:n,attrs:{dtype:"float32"}}),c=Jn({inputs:{real:d,imag:p},backend:n});return n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(d),c}if(r.dtype==="complex64"){let p=xi({inputs:{input:r},backend:n}),d=vs({inputs:{x:p},backend:n,attrs:{dtype:s}});return n.disposeIntermediateTensorInfo(p),d}if(!w.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]=k_(i,r.shape,r.dtype,s);return n.makeTensorInfo(o,l,u)}var O5={kernelName:Pi,backendName:"cpu",kernelFunc:vs};function Jt(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=vs({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=vs({inputs:{x:o},backend:l,attrs:{dtype:"complex64"}}),g=l.data.get(f.dataId),b=g.complexTensorInfos.real,y=g.complexTensorInfos.imag,x=l.data.get(b.dataId).values,v=l.data.get(y.dataId).values,[I,T,C]=n(i.shape,o.shape,h,m,x,v),E=l.makeTensorInfo(C,"float32",I),F=l.makeTensorInfo(C,"float32",T),D=Jn({inputs:{real:E,imag:F},backend:l});return l.disposeIntermediateTensorInfo(u),l.disposeIntermediateTensorInfo(f),l.disposeIntermediateTensorInfo(E),l.disposeIntermediateTensorInfo(F),D}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 O1(e){return(t,n,a,r,s,i)=>{let o=N.assertAndGetBroadcastShape(t,n),l=w.sizeFromShape(o),u=o.length,p=w.computeStrides(o),d=w.getTypedArrayFromDType("float32",l),c=w.getTypedArrayFromDType("float32",l),h=N.getBroadcastDims(t,o),m=N.getBroadcastDims(n,o),f=N.mergeRealAndImagArrays(a,r),g=N.mergeRealAndImagArrays(s,i),b=t.length,y=w.computeStrides(t),x=n.length,v=w.computeStrides(n);if(h.length+m.length===0)for(let I=0;IC[S]=0);let E=w.locToIndex(C,b,y),F=T.slice(-x);m.forEach(S=>F[S]=0);let D=w.locToIndex(F,x,v),$=e(f[E*2],f[E*2+1],g[D*2],g[D*2+1]);d[I]=$.real,c[I]=$.imag}return[d,c,o]}}var I_=Ot((e,t)=>e+t),L5=O1((e,t,n,a)=>({real:e+n,imag:t+a})),ru=Jt(Is,I_,L5),z5={kernelName:Is,backendName:"cpu",kernelFunc:ru};function L1(e,t,n,a,r){let s=w.sizeFromShape(a),i=w.makeZerosTypedArray(r,n);for(let o=0;o=r||(s>0?i[l]+=t[o]:i[l]+=1)}return i}function S_(e,t,n,a=!1){let r=e.shape[0],s=e.shape[1],i=ze([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}var N_=Ot((e,t)=>e&t),W5=Jt(gu,N_),B5={kernelName:gu,backendName:"cpu",kernelFunc:W5};function yr(e){return(t,n,a)=>{let r=w.getArrayFromDType(n,t.length);for(let s=0;s{let{x:i}=a;ge(i,e);let o=s,l=o.data.get(i.dataId).values,u;if(i.dtype==="string"){if(!Array.isArray(l))throw new Error("String tensor's value was not an instance of Array");u=N.fromUint8ToStringArray(l)}else u=l;let p=n||i.dtype,d=t(u,p,r);return o.makeTensorInfo(i.shape,p,d)}}var T_=yr(e=>Math.ceil(e)),V5=Rs(Oi,T_),U5={kernelName:Oi,backendName:"cpu",kernelFunc:V5};function z1(e,t,n,a){let r=w.getArrayFromDType(n,w.sizeFromShape(t));if(a&&n!=="string"){let s=0;e.forEach(i=>{let o=w.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),__=Jt(Su,C_,null,"bool"),G5={kernelName:Su,backendName:"cpu",kernelFunc:__},E_=yr(e=>Math.exp(e)),A_=Rs(Xi,E_,"float32"),H5={kernelName:Xi,backendName:"cpu",kernelFunc:A_},F_=yr(e=>Math.expm1(e)),q5=Rs(Yi,F_),j5={kernelName:Yi,backendName:"cpu",kernelFunc:q5},$_=yr(e=>Math.floor(e)),K5=Rs(Zi,$_),X5={kernelName:Zi,backendName:"cpu",kernelFunc:K5},D_=Ot((e,t)=>Math.floor(e/t)),Y5=Jt(Ji,D_,null,"int32"),Z5={kernelName:Ji,backendName:"cpu",kernelFunc:Y5};function R_(e,t,n,a,r,s,i,o,l){let u=ze([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),J5=Jt(Eu,P_,null,"bool"),Q5={kernelName:Eu,backendName:"cpu",kernelFunc:J5},O_=Ot((e,t)=>e>=t?1:0),eK=Jt(eo,O_,null,"bool"),tK={kernelName:eo,backendName:"cpu",kernelFunc:eK},L_=Ot((e,t)=>ee<=t?1:0),rK=Jt(Fu,z_,null,"bool"),sK={kernelName:Fu,backendName:"cpu",kernelFunc:rK};function W_(e,t,n){let a=(t-e)/(n-1),r=w.makeZerosTypedArray(n,"float32");r[0]=e;for(let s=1;sMath.log(e)),iK=Rs(io,B_),oK={kernelName:io,backendName:"cpu",kernelFunc:iK};function V_(e,t,n,a){let r=w.getTypedArrayFromDType(a,w.sizeFromShape(n));for(let s=0;so)&&(o=u)}r[s]=o}return r}var U_=Ot((e,t)=>Math.max(e,t)),lK=Jt(po,U_),uK={kernelName:po,backendName:"cpu",kernelFunc:lK},G_=Ot((e,t)=>Math.min(e,t)),pK=Jt(fo,G_),cK={kernelName:fo,backendName:"cpu",kernelFunc:pK},W1=Ot((e,t)=>e*t),dK=O1((e,t,n,a)=>({real:e*n-t*a,imag:e*a+t*n})),Zf=Jt(yo,W1,dK),hK={kernelName:yo,backendName:"cpu",kernelFunc:Zf};function H_(e,t,n){let a=w.createScalarValue(-1,n);return W1([],t,a,e,n)}function mK(e){let{inputs:t,backend:n}=e,{x:a}=t;ge(a,"neg");let r=n.data.get(a.dataId).values,[s,i]=H_(r,a.shape,a.dtype);return n.makeTensorInfo(i,a.dtype,s)}var fK={kernelName:zu,backendName:"cpu",kernelFunc:mK},q_=Ot((e,t)=>e!==t?1:0),gK=Jt(Wu,q_,null,"bool"),bK={kernelName:Wu,backendName:"cpu",kernelFunc:gK};function B1(e,t,n,a,r){let s=t.length,i=w.sizeFromShape(t),o=w.computeStrides(t),l=w.computeStrides(r),u=w.getTypedArrayFromDType(n,w.sizeFromShape(r));for(let p=0;pn.disposeIntermediateTensorInfo(y)),n.makeTensorInfo(b,g,m)}var vK={kernelName:Io,backendName:"cpu",kernelFunc:xK};function wK(e,t,n){e.forEach((a,r)=>{if(a<0||a>=n){let s=w.indexToLoc(r,t.length,w.computeStrides(t)).join(",");throw new Error(`indices[${s}] = ${a} is not in [0, ${n})`)}})}function kK(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 IK(e,t,n,a){let r=[],s=0,i=t.length-1+n.length,o=new Array(i).fill(null).map(()=>[0]);kK(n,a);let l=1;for(let u=0;u=0){let f=o[m],g=f[f.length-1]-h[p];for(let b=p;br[i]=s)}return t}function lS(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&&yb)v=0;else if(v=Math.ceil(Math.abs((y-b)/x)),v>uS)throw new Error(`Requires ((limit - start) / delta) <= ${uS}`);c[g+1]=c[g]+v}let h=c[d],m=w.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 Ca.VALUE_ROWIDS:return this.calculateOutputIndexValueRowID(r,t,n,a);case Ca.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: ${Ca[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 Ca.FIRST_DIM_SIZE:return e[0];case Ca.VALUE_ROWIDS:throw new Error("Cannot handle VALUE_ROWIDS in first dimension.");case Ca.ROW_SPLITS:return this.rowPartitionValuesShapes[0][0]-1;default:throw new Error(`Cannot handle type ${Ca[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=cS(t,!1),r=w.getArrayFromDType(this.valuesDType,w.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=w.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=ri(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);pS(f,u,o),++c}m<0?(p=h+1,d=c):(p=h,d=c,c=d+1)}}};function pS(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 Y_(e,t,n,a,r,s,i,o,l,u){return new uv(e,t,n,a,r,s,i,o,l,u).compute()}function V1(e,t,n,a){let r=e===t,s=e1;if(r||s||i)return w.makeZerosTypedArray(0,a);let o=Math.abs(Math.ceil((t-e)/n)),l=w.makeZerosTypedArray(o,a);t1/Math.sqrt(e)),CK=Rs(Fo,Z_),_K={kernelName:Fo,backendName:"cpu",kernelFunc:CK};function ai(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 ze(n,t.dtype);let h=l instanceof Vt?l:ze(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 b=0;b1/(1+Math.exp(-e))),J_=it(Po,e=>1/(1+Math.exp(-e))),AK={kernelName:Po,backendName:"cpu",kernelFunc:J_};function Nm(e,t,n,a,r){let s=Xt.isSliceContinous(a,t,n),i=w.sizeFromShape(n),o=w.computeStrides(a);if(s){let d=Xt.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=ze(a,r,l),p=ze(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 vi(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,size:i}=a;ge(r,"slice");let[o,l]=Xt.parseSliceParams(r,s,i);Xt.assertParamsValid(r,o,l);let u=n.data.get(r.dataId).values,p=Nm(u,o,l,r.shape,r.dtype);return n.makeTensorInfo(l,r.dtype,p)}var FK={kernelName:Qu,backendName:"cpu",kernelFunc:vi};function Q_(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=w.getArrayFromDType(n,0),b=w.getArrayFromDType(r,0);return[g,[0,d],b,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,b,l));++m[b],c=c&&b>=h,h=b}let f=!0;for(let g=0;g0&&(m[g]+=m[g-1])}if(f&&c){let g=e,b=a;for(let y=0;y0){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=w.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((y,x)=>y*x,1),h=w.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,b=r[m];for(;;){let y=0;if(f=y)throw new Error(N.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage())}if(b<0||b>=p)throw new Error(N.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(b,p));b>g&&h.fill(i,g*u,b*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)),DK=it(Lo,e=>Math.sqrt(e)),RK={kernelName:Lo,backendName:"cpu",kernelFunc:DK},tE=Ot((e,t)=>{let n=e-t;return n*n}),MK=Jt(Bo,tE),PK={kernelName:Bo,backendName:"cpu",kernelFunc:MK},nE=yr((e,t)=>{let{pattern:n,replaceGlobal:a,rewrite:r}=t;return e.replace(new RegExp(n,a?"g":""),r)}),OK=Rs(Jc,nE),LK={kernelName:Jc,backendName:"cpu",kernelFunc:OK};function aE(e,t,n,a){let r=ze(e,t.dtype);for(let s=0;s0?0:i-o),c=0;c+=l*this.leftPad.length;for(let b=0;bb.forEach(y=>m[f++]=y);for(let b=0;b0){g(e[d+p-1]);for(let b=0;b0){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=w.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 G1(e,t,n,a,r,s,i,o){return new zK(n,a,r,s,i,o).compute(e,t)}function WK(e,t,n,a){if(!e.length)return;if(t.length===0){for(let s=0;se-t),BK=O1((e,t,n,a)=>({real:e-n,imag:t-a})),j1=Jt(Vo,rE,BK),VK={kernelName:Vo,backendName:"cpu",kernelFunc:j1};function sE(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 iE(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));iE(e,t,c,h)}let r=e[t],s=n,i=a;for(w.swap(e,n,t),ic(e[a],r)>0&&w.swap(e,n,a);s0;)i=i-1}ic(e[n],r)===0?w.swap(e,n,i):(i=i+1,w.swap(e,i,a)),i<=t&&(n=i+1),t<=i&&(a=i-1)}}function oE(e,t,n,a,r){let s=t[t.length-1],[i,o]=[e.length/s,s],l=w.getTypedArrayFromDType(n,i*a),u=w.getTypedArrayFromDType("int32",i*a);for(let d=0;dm[x]={value:y,index:x}),a{for(let g=0;gnew Yf,1);var lE=it(ji,e=>e>=0?e:Math.exp(e)-1),GK={kernelName:ji,backendName:"cpu",kernelFunc:lE};function uE(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{alpha:s}=a;ge([r],"leakyRelu");let i=w.sizeFromShape(r.shape),o=n.data.get(r.dataId).values,l=w.getTypedArrayFromDType("float32",i);for(let u=0;ue<0?t*e:e);function pE(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]=qK(a.shape,r.shape,s,i,"float32");return n.makeTensorInfo(l,"float32",o)}var jK={kernelName:ko,backendName:"cpu",kernelFunc:pE},cE=it(No,e=>Math.max(0,e)),KK={kernelName:No,backendName:"cpu",kernelFunc:cE},dE=it(_o,e=>Math.min(Math.max(0,e),6)),XK={kernelName:_o,backendName:"cpu",kernelFunc:dE};function Tm(e,t,n,a,r){if(n==="linear")return dr({inputs:{x:t},backend:e});if(n==="relu")return cE({inputs:{x:t},backend:e});if(n==="elu")return lE({inputs:{x:t},backend:e});if(n==="relu6")return dE({inputs:{x:t},backend:e});if(n==="prelu")return pE({inputs:{x:t,alpha:a},backend:e});if(n==="leakyrelu")return uE({inputs:{x:t},backend:e,attrs:{alpha:r}});if(n==="sigmoid")return J_({inputs:{x:t},backend:e});throw new Error(`Activation ${n} has not been implemented for the CPU backend.`)}function xt(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{shape:s}=a,i=w.sizeFromShape(r.shape),o=w.inferFromImplicitShape(s,i),l=w.sizeFromShape(o);w.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 YK={kernelName:qu,backendName:"cpu",kernelFunc:xt};function hE(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=w.sizeFromShape(m),b=w.sizeFromShape(f),y=pp.assertAndGetBroadcastShape(r.shape.slice(0,-2),s.shape.slice(0,-2)).concat([c,h]);w.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],v=o?[b,h,d]:[b,d,h],I=xt({inputs:{x:r},backend:n,attrs:{shape:x}}),T=xt({inputs:{x:s},backend:n,attrs:{shape:v}}),C=i?I.shape[1]:I.shape[2],E=i?I.shape[2]:I.shape[1],F=o?T.shape[1]:T.shape[2],D=Math.max(g,b),$=n.data.get(I.dataId).values,S=n.data.get(T.dataId).values,M=w.computeStrides(I.shape),B=w.computeStrides(T.shape),[U,H,j]=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*F,ae=ze([D,E,F],I.dtype),te=ae.values,re=n.blockSize;for(let ie=0;ieMath.acos(e)),t8={kernelName:Ti,backendName:"cpu",kernelFunc:e8},n8=it(Ci,e=>Math.acosh(e)),a8={kernelName:Ci,backendName:"cpu",kernelFunc:n8};function r8(e){let{inputs:t,backend:n}=e,a=t;ge(t,"addN");let r=a.map(o=>n.data.get(o.dataId).values),s=ze(a[0].shape,a[0].dtype),i=s.values;for(let o=0;oy&&(y=I,x=v)}h[g]=x}return u.forEach(g=>n.disposeIntermediateTensorInfo(g)),n.makeTensorInfo(p,"int32",h)}var c8={kernelName:cu,backendName:"cpu",kernelFunc:p8};function d8(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a;ge(r,"argMin");let i=w.parseAxisParam(s,r.shape),o=N.getAxesPermutation(i,r.shape.length),l=r,u=[];o!=null&&(l=Un({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=w.sizeFromShape(p),h=w.makeZerosTypedArray(c,"int32"),m=w.sizeFromShape(d),f=n.data.get(l.dataId).values;for(let g=0;gn.disposeIntermediateTensorInfo(g)),n.makeTensorInfo(p,"int32",h)}var h8={kernelName:du,backendName:"cpu",kernelFunc:d8},m8=it(Ei,e=>Math.asin(e)),f8={kernelName:Ei,backendName:"cpu",kernelFunc:m8},g8=it(Ai,e=>Math.asinh(e)),b8={kernelName:Ai,backendName:"cpu",kernelFunc:g8},y8=it(Fi,e=>Math.atan(e)),x8={kernelName:Fi,backendName:"cpu",kernelFunc:y8},v8=Ot((e,t)=>Math.atan2(e,t)),w8=Jt(Di,v8),k8={kernelName:Di,backendName:"cpu",kernelFunc:w8},I8=it($i,e=>Math.atanh(e)),S8={kernelName:$i,backendName:"cpu",kernelFunc:I8};function X1(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=ze(r.outShape,n),g=f.values,b=r.outShape[1]*r.outShape[2]*r.outShape[3],y=r.outShape[2]*r.outShape[3],x=r.outShape[3];for(let v=0;vj?j=ie:s==="avg"&&(K+=ie,Z++)}if(isNaN(j))break}let J=S+M*x+C;g[J]=s==="avg"?K/Z:j}}}return f}function mE(e,t,n,a,r=!1,s=!1){let i=ze(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=ze(t,n,e);for(let g=0;gD&&(D=H,r?$=s?((g*a.inHeight+S)*a.inWidth+B)*a.inChannels+b:(S*a.inWidth+B)*a.inChannels+b:$=M*c+U)}}i.set($,g,y,T,b)}}return i}function fE(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,b=r.padInfo.left,y=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,x=ze(r.outShape,n),v=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 F=0;Fbe?be=ft:s==="avg"&&(ke+=ft,Se++),isNaN(be))break}if(isNaN(be))break}if(isNaN(be))break}let We=ue+S;v[We]=s==="avg"?ke/Math.max(Se,1):be}}}}return x}function N8(e,t){let n=ze(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=H*p*d+K*p+J)}}}n.set(B,f,b,I,F,g)}}}return n}function T8(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;w.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&&w.arraysEqual(p.inShape,p.outShape))d=dr({inputs:{x:r},backend:n});else{let c=n.data.get(r.dataId).values,h=w.computeStrides(r.shape),m=X1(c,r.shape,r.dtype,h,p,"avg");d=n.makeTensorInfo(p.outShape,r.dtype,m.values)}return d}var C8={kernelName:Ri,backendName:"cpu",kernelFunc:T8};function _8(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=fE(d,r.shape,r.dtype,w.computeStrides(r.shape),p,"avg");return n.makeTensorInfo(c.shape,"float32",c.values)}var E8={kernelName:hu,backendName:"cpu",kernelFunc:_8};function A8(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,b=p.dilationDepth,y=p.dilationHeight,x=p.dilationWidth,v=p.effectiveFilterDepth,I=p.effectiveFilterHeight,T=p.effectiveFilterWidth,C=v-1-p.padInfo.front,E=T-1-p.padInfo.left,F=I-1-p.padInfo.top,D=ze(s.shape,"float32"),$=1/(m*f*g),S=n.bufferSync(r);for(let M=0;M=p.outDepth||Math.floor(te)!==te))for(let re=0;re=p.outHeight||Math.floor(ie)!==ie))for(let ye=0;ye=p.outWidth||Math.floor(ue)!==ue)continue;let be=S.get(M,te,ie,ue,B);ee+=be}}}D.set(ee*$,M,U,H,j,B)}return n.makeTensorInfo(D.shape,D.dtype,D.values)}var F8={kernelName:Lc,backendName:"cpu",kernelFunc:A8};function $8(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,b=p.effectiveFilterHeight,y=p.effectiveFilterWidth,x=y-1-p.padInfo.left,v=b-1-p.padInfo.top,I=ze(i.shape,"float32"),T=1/(h*m),C=n.data.get(r.dataId).values,E=ze(r.shape,"float32",C);for(let F=0;F=p.outHeight||Math.floor(j)!==j))for(let K=0;K=p.outWidth||Math.floor(Z)!==Z)continue;let J=E.get(F,j,Z,D);U+=J}}I.set(U*T,F,$,S,D)}return n.makeTensorInfo(I.shape,I.dtype,I.values)}var D8={kernelName:Oc,backendName:"cpu",kernelFunc:$8};function R8(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,scale:s,offset:i,mean:o,variance:l}=t;w.assert(o.shape.length===l.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),w.assert(i==null||o.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),w.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,b=h.length,y=c.length,x=d.length,v=0,I=0,T=0,C=0;for(let E=0;E=g&&(v=0),I>=x&&(I=0),T>=b&&(T=0),C>=y&&(C=0);return n.makeTensorInfo(r.shape,r.dtype,f)}var M8={kernelName:Qi,backendName:"cpu",kernelFunc:R8};function P8(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,crops:i}=a;ge([r],"batchToSpaceND");let o=s.reduce((b,y)=>b*y),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=xt({inputs:{x:r},backend:n,attrs:{shape:l}}),m=Un({inputs:{x:h},backend:n,attrs:{perm:u}}),f=xt({inputs:{x:m},backend:n,attrs:{shape:p}}),g=vi({inputs:{x:f},backend:n,attrs:{begin:d,size:c}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),g}var O8={kernelName:mu,backendName:"cpu",kernelFunc:P8};function L8(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=L1(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,u)}var z8={kernelName:fu,backendName:"cpu",kernelFunc:L8};function W8(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 B8={kernelName:zc,backendName:"cpu",kernelFunc:W8},V8=it(Ss,(e,t)=>{let n=t;return e>n.clipValueMax?n.clipValueMax:e{let{x:t}=e.inputs,n=e.backend,a=new Float32Array(w.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(w.sizeFromShape(o)===0)return n.makeTensorInfo(o,t[0].dtype,[]);let l=t.filter(f=>w.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(v=>xi({inputs:{input:v},backend:n})),g=l.map(v=>su({inputs:{input:v},backend:n})),b=iu({inputs:f,backend:n,attrs:{axis:s}}),y=iu({inputs:g,backend:n,attrs:{axis:s}}),x=Jn({inputs:{real:b,imag:y},backend:n});return f.forEach(v=>n.disposeIntermediateTensorInfo(v)),g.forEach(v=>n.disposeIntermediateTensorInfo(v)),n.disposeIntermediateTensorInfo(b),n.disposeIntermediateTensorInfo(y),x}let u=l.map(f=>{let g=[-1,w.sizeFromShape(f.shape.slice(s))];return xt({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=z1(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 j8={kernelName:bu,backendName:"cpu",kernelFunc:iu};function gE(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,b=c.padInfo.left,y=c.padInfo.top,x=c.dataFormat==="channelsLast",v=new Vt(c.outShape,r.dtype),I=w.computeStrides(r.shape),T=w.computeStrides(s.shape),C=I[0],E=x?I[1]:I[2],F=x?I[2]:1,D=x?1:I[1],$=v.strides[0],S=x?v.strides[1]:v.strides[2],M=x?v.strides[2]:1,B=x?1:v.strides[1],U=n.data.get(r.dataId).values,H=n.data.get(s.dataId).values,j=v.values;for(let K=0;K=c.inHeight)continue;let ye=re*T[0],ue=Z+ie*E;for(let be=0;be=c.inWidth)continue;let ht=ye+We*T[1],st=ue+Ge*F,at=ht;for(let rt=0;rt=u.inDepth)continue;let K=H*F[0],Z=$+j*E[1];for(let J=0;J=u.inHeight)continue;let ie=K+te*F[1],ye=Z+re*E[2];for(let ue=0;ue=u.inWidth)continue;let Ge=ie+Se*F[2],ht=ye+We*u.inChannels,st=Ge;for(let at=0;atMath.cos(e)),iX={kernelName:Bi,backendName:"cpu",kernelFunc:sX},oX=it(Vi,e=>Math.cosh(e)),lX={kernelName:Vi,backendName:"cpu",kernelFunc:oX};function uX(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,b=ze([m,f,g,h],"float32"),y=n.data.get(s.dataId).values,x=n.data.get(i.dataId).values,v=n.data.get(r.dataId).values,I=w.computeStrides(r.shape),T=w.computeStrides(b.shape);for(let C=0;C=p)continue;let B=f>1?($-F)*(d-1)/(f-1):0,U=g>1?(S-D)*(c-1)/(g-1):0;for(let H=0;H1?F*(d-1)+H*B:.5*(F+$)*(d-1);if(j<0||j>d-1){for(let K=0;K1?D*(c-1)+ee*U:.5*(D+S)*(c-1);if(ae<0||ae>c-1){for(let ye=0;ye1?D*(c-1)+K*U:.5*(D+S)*(c-1);if(Z<0||Z>c-1){for(let ae=0;aeb+m-y-1:(b,y)=>b+y;for(let b=0;bb+m-y-1:(b,y)=>b+y;for(let b=0;b`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 b=0;b`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:b,padInfo:y}=h,x=y.left,v=y.top,I=h.outChannels/h.inChannels,T=new Vt(h.outShape,r.dtype),C=n.data.get(r.dataId).values,E=n.data.get(s.dataId).values,F=T.values;for(let D=0;D=h.inHeight)continue;let K=H*d[0],Z=$+j*p[1];for(let J=0;J=h.inWidth)continue;let ie=K+te*d[1],ye=Z+re*h.inChannels,ue=ee,be=ie;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:b,outWidth:y,padInfo:x,strideHeight:v,strideWidth:I,filterHeight:T,filterWidth:C,dilationHeight:E,dilationWidth:F,outShape:D}=N.computeDilation2DInfo(a.shape,r.shape,s,i,"NHWC",o),$=w.sizeFromShape(D),S=D.length,M=w.getArrayFromDType(a.dtype,$);for(let B=0;B=0&&te=0&&ieJ&&(J=be)}}}let ee=w.locToIndex([B,U,j,Z],S,w.computeStrides(D));M[ee]=J}}}return{dataId:l.write(w.toTypedArray(M,a.dtype),D,a.dtype),shape:D,dtype:a.dtype}}},CX={kernelName:Ul,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=w.toNestedArray(a.shape,u.data.get(a.dataId).values),d=w.toNestedArray(r.shape,u.data.get(r.dataId).values),{batchSize:c,inHeight:h,inWidth:m,inChannels:f,outHeight:g,outWidth:b,padInfo:y,strideHeight:x,strideWidth:v,filterHeight:I,filterWidth:T,dilationHeight:C,dilationWidth:E,outShape:F}=N.computeDilation2DInfo(a.shape,r.shape,i,o,"NHWC",l);w.assert(s.rank===F.length,()=>`Error in ${Ul}, dy must have the same rank as output ${F.length}, but got ${s.rank}`);let D=w.toNestedArray(F,u.data.get(s.dataId).values),$=w.makeZerosNestedTypedArray(r.shape,r.dtype);for(let S=0;S=0&&ae=0&&reK&&(K=ie,Z=ee,J=te)}}}$[Z][J][j]+=D[S][M][U][j]}}}return{dataId:u.write(w.toTypedArray($,a.dtype),r.shape,r.dtype),shape:r.shape,dtype:r.dtype}}},_X={kernelName:Vl,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=w.toNestedArray(a.shape,u.data.get(a.dataId).values),d=w.toNestedArray(r.shape,u.data.get(r.dataId).values),{batchSize:c,inHeight:h,inWidth:m,inChannels:f,outHeight:g,outWidth:b,padInfo:y,strideHeight:x,strideWidth:v,filterHeight:I,filterWidth:T,dilationHeight:C,dilationWidth:E,outShape:F}=N.computeDilation2DInfo(a.shape,r.shape,i,o,"NHWC",l);w.assert(s.rank===F.length,()=>`Error in ${Vl}, dy must have the same rank as output ${F.length}, but got ${s.rank}`);let D=w.toNestedArray(F,u.data.get(s.dataId).values),$=w.makeZerosNestedTypedArray(a.shape,a.dtype);for(let S=0;S=0&&ae=0&&reK&&(K=ie,Z=ae,J=re)}}}$[S][Z][J][j]+=D[S][M][U][j]}}}return{dataId:u.write(w.toTypedArray($,a.dtype),a.shape,a.dtype),shape:a.shape,dtype:a.dtype}}};function EX(e){let{inputs:t,backend:n,attrs:a}=e,{image:r}=t,{canvas:s,options:i}=a,{contextOptions:o,imageOptions:l}=i||{},u=(l==null?void 0:l.alpha)||1,p=(o==null?void 0:o.contextType)||"2d";if(p!=="2d")throw new Error(`Context type ${o.contextType} is not supported by the CPU backend.`);let d=s.getContext(p,(o==null?void 0:o.contextAttributes)||{});if(d==null)throw new Error(`Could not get the context with ${p} type.`);let[c,h]=r.shape.slice(0,2),m=r.shape.length===2?1:r.shape[2],f=n.data.get(r.dataId).values,g=r.dtype==="float32"?255:1,b=new Uint8ClampedArray(h*c*4);for(let x=0;x1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${C}.`)}else if(r.dtype==="int32"&&(C<0||C>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${C}.`);m===1?(v[0]=C*g,v[1]=C*g,v[2]=C*g):v[T]=C*g}let I=x*4;b[I+0]=Math.round(v[0]),b[I+1]=Math.round(v[1]),b[I+2]=Math.round(v[2]),b[I+3]=Math.round(v[3])}s.width=h,s.height=c;let y=new ImageData(b,h,c);return d.putImageData(y,0,0),r}var AX={kernelName:Av,backendName:"cpu",kernelFunc:EX};function Rd(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=vs({inputs:{x:r},backend:n,attrs:{dtype:"int32"}}):o=dr({inputs:{x:r},backend:n});let l=o.shape.length,u=w.parseAxisParam(s,o.shape),p=N.getAxesPermutation(u,l),d=u,c=o;p!=null&&(c=Un({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=Sm(n,h,f),b=w.sizeFromShape(m),y=n.data.get(g.dataId).values,x=n.data.get(c.dataId).values;for(let v=0;v=0&&(c=Rd({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 DX={kernelName:Bm,backendName:"cpu",kernelFunc:$X};function RX(e){let{inputs:t,backend:n}=e,{dy:a,y:r}=t;ge([a,r],"eluGrad");let s=new Float32Array(w.sizeFromShape(r.shape)),i=n.data.get(r.dataId).values,o=n.data.get(a.dataId).values;for(let l=0;l=0?s[l]=o[l]:s[l]=o[l]*(u+1)}return n.makeTensorInfo(r.shape,"float32",s)}var MX={kernelName:Iu,backendName:"cpu",kernelFunc:RX},PX=N.ERF_P,OX=N.ERF_A1,LX=N.ERF_A2,zX=N.ERF_A3,WX=N.ERF_A4,BX=N.ERF_A5,VX=it(Ki,e=>{let t=Math.sign(e),n=Math.abs(e),a=1/(1+PX*n);return t*(1-((((BX*a+WX)*a+zX)*a+LX)*a+OX)*a*Math.exp(-n*n))}),UX={kernelName:Ki,backendName:"cpu",kernelFunc:VX};function Cm(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&&(w.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),l=i+s+1),o.splice(l,0,1),xt({inputs:{x:r},backend:n,attrs:{shape:o}})}var GX={kernelName:Nu,backendName:"cpu",kernelFunc:Cm},HX=Ot((e,t)=>e/t),Y1=Jt(qi,HX),pv={kernelName:qi,backendName:"cpu",kernelFunc:Y1};function yE(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=w.sizeFromShape(u),d=w.getTypedArrayFromDType("float32",p),c=w.getTypedArrayFromDType("float32",p);for(let g=0;g{let{image:a}=e,r=n,s=w.getTypedArrayFromDType(a.dtype,w.sizeFromShape(a.shape)),[i,o,l,u]=a.shape,p=r.data.get(a.dataId).values;for(let d=0;d=0&&y=0,()=>`GatherV2: the index value ${I} is not in [0, ${p-1}]`)}let d=o;o==null&&(d=0);let c=w.sizeFromShape(s.shape),h=N.segment_util.collectGatherOpShapeInfo(r,s,l,d),m=xt({inputs:{x:r},backend:n,attrs:{shape:[h.batchSize,h.outerSize,h.dimSize,h.sliceSize]}}),f=xt({inputs:{x:s},backend:n,attrs:{shape:[h.batchSize,c/h.batchSize]}}),g=[h.batchSize,h.outerSize,c/h.batchSize,h.sliceSize],b=n.bufferSync(f),y=n.bufferSync(m),x=M_(y,b,g);return n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),n.makeTensorInfo(h.outputShape,x.dtype,x.values)}var oY={kernelName:Cu,backendName:"cpu",kernelFunc:iY};function lY(e){let{inputs:t,backend:n}=e,{input:a}=t,r=w.sizeFromShape(a.shape),s=a.shape[a.shape.length-1],i=r/s,o=xt({inputs:{x:a},backend:n,attrs:{shape:[i,s]}}),l=yE(o,!0,n),u=xt({inputs:{x:l},backend:n,attrs:{shape:a.shape}});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(l),u}var uY={kernelName:Um,backendName:"cpu",kernelFunc:lY},pY=it(no,e=>Number.isFinite(e)?1:0,"bool"),cY={kernelName:no,backendName:"cpu",kernelFunc:pY},dY=it(ao,e=>Math.abs(e)===1/0?1:0,"bool"),hY={kernelName:ao,backendName:"cpu",kernelFunc:dY},mY=it(ro,e=>Number.isNaN(e)?1:0,"bool"),fY={kernelName:ro,backendName:"cpu",kernelFunc:mY};function gY(e){let{backend:t,attrs:n}=e,{start:a,stop:r,num:s}=n,i=W_(a,r,s);return t.makeTensorInfo([i.length],"float32",i)}var bY={kernelName:$u,backendName:"cpu",kernelFunc:gY},yY=it(oo,e=>Math.log1p(e)),xY={kernelName:oo,backendName:"cpu",kernelFunc:yY},vY=Ot((e,t)=>e&&t),wY=Jt(Du,vY,null,"bool"),kY={kernelName:Du,backendName:"cpu",kernelFunc:wY},IY=it(Ru,e=>e?0:1,"bool"),SY={kernelName:Ru,backendName:"cpu",kernelFunc:IY},NY=Ot((e,t)=>e||t),TY=Jt(Mu,NY,null,"bool"),CY={kernelName:Mu,backendName:"cpu",kernelFunc:TY};function _Y(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=w.sizeFromShape(r.shape),h=new Float32Array(c);function m(f){let g=f%u,b=f-g+Math.max(0,g-s),y=f-g+Math.min(g+s,p),x=0;for(;b<=y;b++){let v=d[b];x+=v*v}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&&w.arraysEqual(p.inShape,p.outShape))d=dr({inputs:{x:r},backend:n});else{let c=n.data.get(r.dataId).values,h=w.computeStrides(r.shape),m=X1(c,r.shape,r.dtype,h,p,"max");d=n.makeTensorInfo(p.outShape,r.dtype,m.values)}return d}var RY={kernelName:co,backendName:"cpu",kernelFunc:DY};function MY(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=fE(d,r.shape,r.dtype,w.computeStrides(r.shape),p,"max");return n.makeTensorInfo(c.shape,"float32",c.values)}var PY={kernelName:Ou,backendName:"cpu",kernelFunc:MY};function OY(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=N8(d,p),h=p.strideDepth,m=p.strideHeight,f=p.strideWidth,g=p.dilationDepth,b=p.dilationHeight,y=p.dilationWidth,x=p.effectiveFilterDepth,v=p.effectiveFilterHeight,I=p.effectiveFilterWidth,T=x-1-p.padInfo.front,C=I-1-p.padInfo.left,E=v-1-p.padInfo.top,F=ze(s.shape,"float32"),D=n.bufferSync(r);for(let $=0;$=p.outDepth||Math.floor(ee)!==ee))for(let ae=0;ae=p.outHeight||Math.floor(te)!==te))for(let re=0;re=p.outWidth||Math.floor(ie)!==ie)continue;let ye=x*v*I-1-c.get($,ee,te,ie,S),ue=J*v*I+ae*I+re,be=ye===ue?1:0;if(be===0)continue;let ke=D.get($,ee,te,ie,S);Z+=ke*be}}}F.set(Z,$,M,B,U,S)}return n.makeTensorInfo(F.shape,F.dtype,F.values)}var LY={kernelName:Hc,backendName:"cpu",kernelFunc:OY};function zY(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=ze(c.outShape,o.dtype,mE(h,o.shape,o.dtype,c).values),f=c.strideHeight,g=c.strideWidth,b=c.dilationHeight,y=c.dilationWidth,x=c.effectiveFilterHeight,v=c.effectiveFilterWidth,I=v-1-c.padInfo.left,T=x-1-c.padInfo.top,C=ze(o.shape,"float32"),E=n.data.get(r.dataId).values,F=ze(r.shape,"float32",E);for(let D=0;D=c.outHeight||Math.floor(K)!==K))for(let Z=0;Z=c.outWidth||Math.floor(J)!==J)continue;let ee=x*v-1-m.get(D,K,J,$),ae=j*v+Z,te=ee===ae?1:0;if(te===0)continue;let re=F.get(D,K,J,$);H+=re*te}}C.set(H,D,S,M,$)}return n.makeTensorInfo(C.shape,C.dtype,C.values)}var WY={kernelName:Gc,backendName:"cpu",kernelFunc:zY};function BY(e,t,n,a,r){let s=w.computeStrides(t),i=X1(e,t,n,s,r,"max"),o=mE(e,t,n,r,!0,a);return[i.values,o.values]}var VY={kernelName:qc,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]=BY(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 UY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=w.parseAxisParam(s,r.shape),l=N.computeOutAndReduceShapes(r.shape,o)[1],u=w.sizeFromShape(l),p=[],d=n.makeTensorInfo([],"float32",new Float32Array([u]));p.push(d);let c=vs({inputs:{x:r},backend:n,attrs:{dtype:"float32"}});p.push(c);let h=Y1({inputs:{a:c,b:d},backend:n});p.push(h);let m=Rd({inputs:{x:h},backend:n,attrs:{axis:s,keepDims:i}});return p.forEach(f=>n.disposeIntermediateTensorInfo(f)),m}var GY={kernelName:ho,backendName:"cpu",kernelFunc:UY};function HY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;ge(r,"min");let o=w.parseAxisParam(s,r.shape),l=o,u=N.getAxesPermutation(l,r.shape.length),p=r;u!=null&&(p=Un({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=w.sizeFromShape(c),m=w.makeZerosTypedArray(w.sizeFromShape(d),p.dtype),f=n.data.get(p.dataId).values;for(let b=0;by[0]+r.shape[x]+y[1]),l=s.map(y=>y[0]),u=s.map((y,x)=>y[0]+r.shape[x]),p=i==="reflect"?0:1,d=n.data.get(r.dataId).values,c=r.shape.length,h=w.computeStrides(r.shape),m=w.sizeFromShape(o),f=o.length,g=w.computeStrides(o),b=w.getTypedArrayFromDType(r.dtype,m);for(let y=0;y=u[I]&&(x[I]=(u[I]-1)*2-x[I]+p);x=x.map((I,T)=>I-l[T]);let v=w.locToIndex(x,c,h);b[y]=d[v]}return{dataId:n.write(b,o,r.dtype),shape:o,dtype:r.dtype}}var KY={kernelName:go,backendName:"cpu",kernelFunc:jY},XY=Ot((e,t)=>{let n=e%t;return e<0&&t<0||e>=0&&t>=0?n:(n+t)%t}),YY=Jt(bo,XY),ZY={kernelName:bo,backendName:"cpu",kernelFunc:YY},JY=ks(Dm());function vE(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=w.parseAxisParam([o],r.shape),u=xE({inputs:{x:r},backend:n,attrs:{reductionIndices:l,keepDims:!1}}),p=N.expandShapeToKeepDim(u.shape,l),d=xt({inputs:{x:u},backend:n,attrs:{shape:p}}),c=j1({inputs:{a:r,b:d},backend:n}),h=A_({inputs:{x:c},backend:n}),m=Rd({inputs:{x:h},backend:n,attrs:{axis:l,keepDims:!1}}),f=xt({inputs:{x:m},backend:n,attrs:{shape:p}}),g=Y1({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 QY={kernelName:Wo,backendName:"cpu",kernelFunc:vE};function e7(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:vE({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=w.makeZerosTypedArray(w.sizeFromShape(c),"int32");for(let m=0;m=0&&d[c]{w.assertShapesMatch(s,p.shape,"All tensors passed to stack must have matching shapes"),w.assert(i===p.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=[],l=t.map(p=>{let d=Cm({inputs:{input:p},backend:n,attrs:{dim:r}});return o.push(d),d}),u=iu({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(p=>n.disposeIntermediateTensorInfo(p)),u}var f7={kernelName:Hu,backendName:"cpu",kernelFunc:kE};function g7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{paddings:s,constantValue:i}=a;ge(r,"pad");let o=s.map((b,y)=>b[0]+r.shape[y]+b[1]),l=s.map(b=>b[0]),u=n.data.get(r.dataId).values,p=w.sizeFromShape(r.shape),d=r.shape.length,c=w.computeStrides(r.shape),h=w.sizeFromShape(o),m=o.length,f=w.computeStrides(o),g=w.getTypedArrayFromDType(r.dtype,h);i!==0&&g.fill(i);for(let b=0;bv+l[I]),x=w.locToIndex(y,m,f);g[x]=u[b]}return{dataId:n.write(g,o,r.dtype),shape:o,dtype:r.dtype}}var IE={kernelName:vo,backendName:"cpu",kernelFunc:g7},b7=Ot((e,t)=>Math.pow(e,t)),y7=Jt(wo,b7),x7={kernelName:wo,backendName:"cpu",kernelFunc:y7};function v7(e){let{inputs:t,backend:n,attrs:a}=e,{paramsNestedSplits:r,paramsDenseValues:s,indices:i}=t,{outputRaggedRank:o}=a,l=r.map(b=>n.data.get(b.dataId).values),u=r.map(b=>b.shape),p=n.data.get(s.dataId).values,d=n.data.get(i.dataId).values,[c,h,m]=K_(l,u,p,s.shape,s.dtype,d,i.shape,o),f=c.map(b=>n.makeTensorInfo([b.length],"int32",b)),g=n.makeTensorInfo(m,s.dtype,h);return f.concat([g])}var w7={kernelName:Hm,backendName:"cpu",kernelFunc:v7};function k7(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]=X_(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 I7={kernelName:qm,backendName:"cpu",kernelFunc:k7};function S7(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]=Y_(u,r.shape,p,s.shape,s.dtype,d,i.shape,c,h,l);return n.makeTensorInfo(m,s.dtype,f)}var N7={kernelName:jm,backendName:"cpu",kernelFunc:S7};function T7(e){let{backend:t,attrs:n}=e,{start:a,stop:r,dtype:s,step:i}=n,o=V1(a,r,i,s);return t.makeTensorInfo([o.length],s,o)}var C7={kernelName:jc,backendName:"cpu",kernelFunc:T7},_7=it(So,e=>1/e),E7={kernelName:So,backendName:"cpu",kernelFunc:_7};function A7(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a;ge(r,"resizeBilinear");let l=w.computeStrides(r.shape),[u,p]=o,[d,c,h,m]=r.shape,f=n.data.get(r.dataId).values,g=new Float32Array(w.sizeFromShape([d,u,p,m])),b=[s&&u>1?c-1:c,s&&p>1?h-1:h],y=[s&&u>1?u-1:u,s&&p>1?p-1:p],x=0,v=b[0]/y[0],I=b[1]/y[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],b=f[0]/g[0],y=f[1]/g[1],x=n.data.get(s.dataId).values,v=0;for(let I=0;I1?c-1:c,s&&p>1?h-1:h],y=[s&&u>1?u-1:u,s&&p>1?p-1:p],x=b[0]/y[0],v=b[1]/y[1],I=0;for(let T=0;T1?p-1:p,i&&m>1?d-1:d],y=[i&&h>1?h-1:h,i&&m>1?m-1:m],x=b[0]/y[0],v=b[1]/y[1],I=1/x,T=1/v,C=Math.ceil(I)*2+2,E=Math.ceil(T)*2+2;for(let F=0;F=h)continue;let te=D+ae*l[1],re=ae*x,ie=Math.min(p-1,i?Math.round(re):Math.floor(re));if($===ie)for(let ye=0;ye=m)continue;let be=te+ue*l[2],ke=ue*v,Se=Math.min(d-1,i?Math.round(ke):Math.floor(ke));U===Se&&(J+=g[be+Z])}}f[H+Z]=J}}}}return n.makeTensorInfo(r.shape,r.dtype,f)}var O7={kernelName:ju,backendName:"cpu",kernelFunc:P7};function L7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a;ge(r,"reverse");let i=r.shape.length,o=w.parseAxisParam(s,r.shape);if(i===0)return dr({inputs:{x:r},backend:n});let l=new Vt(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 z7={kernelName:Eo,backendName:"cpu",kernelFunc:L7},W7={kernelName:up,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{image:a}=e,{radians:r,fillValue:s,center:i}=t,o=n,l=w.getTypedArrayFromDType(a.dtype,w.sizeFromShape(a.shape)),[u,p,d,c]=a.shape,[h,m]=N.getImageCenter(i,p,d),f=255,g=Math.sin(r),b=Math.cos(r),y=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}),V7={kernelName:Ao,backendName:"cpu",kernelFunc:B7};function U7(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=ai(h,m,i,d,u,l,o,p,0,c);return n.makeTensorInfo(i,f.dtype,f.values)}var G7={kernelName:Xu,backendName:"cpu",kernelFunc:U7};function H7(e,t){let n=0,a=e.length,r=0;for(;n1||r.shape.length===1?1:w.sizeFromShape(r.shape.slice(1));for(let m=0;me>=0?Q7*e:J7*(Math.exp(e)-1)),tZ={kernelName:$o,backendName:"cpu",kernelFunc:eZ},nZ=it(Mo,e=>e<0?-1:e>0?1:0),aZ={kernelName:Mo,backendName:"cpu",kernelFunc:nZ},rZ=it(Do,e=>Math.sin(e)),sZ={kernelName:Do,backendName:"cpu",kernelFunc:rZ},iZ=it(Ro,e=>Math.sinh(e)),oZ={kernelName:Ro,backendName:"cpu",kernelFunc:iZ},lZ=11920928955078125e-23,dS=Math.log(lZ)+2,uZ=it(Oo,e=>{let t=e>-dS,n=eNumber(g)))),n.makeTensorInfo([f.length],a.dtype,new Int32Array(f))]}var Z7={kernelName:Vc,backendName:"cpu",kernelFunc:Y7};function J7(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]=Q_(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 mZ={kernelName:Kc,backendName:"cpu",kernelFunc:hZ};function fZ(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]=G_(o,a.shape,a.dtype,i,l);return[n.makeTensorInfo(p,a.dtype,u),n.makeTensorInfo([d.length],s.dtype,new Int32Array(d))]}var Q7={kernelName:ep,backendName:"cpu",kernelFunc:J7};function eZ(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]=eE(o,a.shape,a.dtype,i,l);return[n.makeTensorInfo(p,a.dtype,u),n.makeTensorInfo([d.length],s.dtype,new Int32Array(d))]}var gZ={kernelName:np,backendName:"cpu",kernelFunc:fZ};function bZ(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]=M1(i,a.shape,a.dtype,o,l,!0);return n.makeTensorInfo(p,a.dtype,u)}var tZ={kernelName:Uc,backendName:"cpu",kernelFunc:eZ};function nZ(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]=U1(i,a.shape,a.dtype,o,l,!0);return n.makeTensorInfo(p,a.dtype,u)}var yZ={kernelName:Xc,backendName:"cpu",kernelFunc:bZ};function xZ(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]=M1(i,a.shape,a.dtype,o,l);return n.makeTensorInfo(p,a.dtype,u)}var aZ={kernelName:Gc,backendName:"cpu",kernelFunc:nZ};function rZ(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),b=!!n.data.get(i.dataId).values[0];f=ni(m,g,o,c,p,u,l,d,b,h);break}case"float32":{let g=n.bufferSync(s),b=n.data.get(i.dataId).values[0];f=ni(m,g,o,c,p,u,l,d,b,h);break}case"int32":{let g=n.bufferSync(s),b=n.data.get(i.dataId).values[0];f=ni(m,g,o,c,p,u,l,d,b,h);break}case"string":{let g=n.bufferSync(s),b=v.decodeString(n.data.get(i.dataId).values[0]);f=ni(m,g,o,c,p,u,l,d,b,h);break}default:throw new Error(`Unsupported type ${s.dtype}`)}return n.makeTensorInfo(o,f.dtype,f.values)}var sZ={kernelName:tp,backendName:"cpu",kernelFunc:rZ};function iZ(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=xi({inputs:{x:r},backend:n,attrs:{begin:u,size:c}});return u[o]+=d,h})}var oZ={kernelName:Qu,backendName:"cpu",kernelFunc:iZ},lZ={kernelName:Hc,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}),pZ={kernelName:Ns,backendName:"cpu",kernelFunc:uZ};function cZ(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:b,begin:y,end:x,strides:w}=Kt.sliceInfo(r.shape,s,i,o,l,u,p,d,c),I;if(f)I=xt({inputs:{x:r},backend:n,attrs:{shape:m}});else if(g||b){v.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let T=Kt.computeOutShape(y,x,w),C=xi({inputs:{x:r},backend:n,attrs:{begin:y,size:T}});I=xt({inputs:{x:C},backend:n,attrs:{shape:m}}),n.disposeIntermediateTensorInfo(C)}else{let T=n.bufferSync(r),C=j_(h,T,w,y);I=n.makeTensorInfo(m,C.dtype,C.values)}return I}var dZ={kernelName:np,backendName:"cpu",kernelFunc:cZ};function hZ(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]=P1(c,h,r,s,i,o,l,u);return[n.makeTensorInfo([m.length],"string",m),n.makeTensorInfo(d.shape,"int32",f)]}var mZ={kernelName:jc,backendName:"cpu",kernelFunc:hZ};function fZ(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]=O1(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 gZ={kernelName:Kc,backendName:"cpu",kernelFunc:fZ};function bZ(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=L1(i,r);return n.makeTensorInfo(s.shape,"int32",o)}var yZ={kernelName:Xc,backendName:"cpu",kernelFunc:bZ},xZ=it(Lo,e=>Math.tan(e)),vZ={kernelName:Lo,backendName:"cpu",kernelFunc:xZ},wZ=it(zo,e=>Math.tanh(e)),kZ={kernelName:zo,backendName:"cpu",kernelFunc:wZ};function IZ(e){let{inputs:t,backend:n}=e,{tensor:a,indices:r,updates:s}=t,{sliceRank:i,numUpdates:o,sliceSize:l,strides:u,outputSize:p}=N.calculateShapes(s,r,a.shape),d=!1,c=n.bufferSync(r),h=n.bufferSync(s),m=n.bufferSync(a),f=ni(c,h,a.shape,p,l,o,i,u,m,d);return n.makeTensorInfo(a.shape,f.dtype,f.values)}var SZ={kernelName:ju,backendName:"cpu",kernelFunc:IZ};function NZ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{reps:s}=a;ge(r,"tile");let i=X_(n.bufferSync(r),s);return n.makeTensorInfo(i.shape,i.dtype,i.values)}var TZ={kernelName:Ss,backendName:"cpu",kernelFunc:NZ};function CZ(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]=Z_(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 _Z={kernelName:ap,backendName:"cpu",kernelFunc:CZ};function EZ(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],b=v.computeStrides(r.shape),y=b[0],x=b[1],w=b[2],I=v.computeStrides(g),T=I[0],C=I[1],E=I[2],F=v.getTypedArrayFromDType(r.dtype,v.sizeFromShape(g));F.fill(l);let D=a.data.get(r.dataId).values,$=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 $Z(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 DZ(e,t){return e}function RZ(e,t){return v.clamp(0,e,t-1)}function rc(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 VZ={kernelName:Zc,backendName:"cpu",kernelFunc:BZ},UZ=[LK,y5,WK,VK,S5,GK,qK,KK,YK,JK,e8,n8,r8,o8,u8,d8,m8,g8,y8,PK,v8,k8,S8,T5,T8,k5,_5,_8,x5,A8,$8,D8,M8,O8,z8,B8,U8,H8,j8,X8,Z8,Q8,tX,aX,rX,iX,lX,pX,cX,dX,hX,gX,EK,yX,E5,TX,A5,CX,$5,DX,RX,PX,R5,P5,LX,WX,VX,GX,L5,W5,v5,qX,F8,KX,YX,JX,AK,V5,G5,eY,q5,nY,sY,oY,pY,dY,mY,fY,K5,bY,xY,wY,IY,NY,CY,EY,Y5,FY,RY,LY,J5,eK,BY,GY,jY,nK,XY,ZY,JY,hE,n7,$K,sK,r7,i7,l7,p7,w5,nv,d7,DK,RK,MK,m7,g7,y7,v7,k7,I7,N7,hK,C7,$7,R7,L7,fK,W7,V7,G7,gK,PY,j7,X7,Z7,Q7,tZ,aZ,sZ,oZ,xK,lZ,wK,IK,pZ,dZ,mZ,gZ,yZ,CK,mX,vZ,kZ,SZ,TZ,_Z,AZ,aK,LZ,WZ,VZ,YY];for(let e of UZ)Jc(e);var mE={};Ee(mE,{assertNotComplex:()=>yp,bindCanvasToFramebuffer:()=>eJ,bindColorTextureToFramebuffer:()=>jh,bindTextureToProgramUniformSampler:()=>AE,bindTextureUnit:()=>CE,bindVertexBufferToProgramAttribute:()=>rv,callAndCheck:()=>de,canBeRepresented:()=>gE,createFragmentShader:()=>xE,createFramebuffer:()=>TE,createProgram:()=>vE,createStaticIndexBuffer:()=>IE,createStaticVertexBuffer:()=>kE,createTexture:()=>SE,createVertexShader:()=>yE,getBatchDim:()=>vi,getExtensionOrThrow:()=>sc,getFramebufferErrorMessage:()=>FE,getMaxTexturesInShader:()=>ME,getNumChannels:()=>JZ,getProgramUniformLocation:()=>EE,getProgramUniformLocationOrThrow:()=>_E,getRowsCols:()=>wi,getShapeAs3D:()=>oc,getTextureShapeFromLogicalShape:()=>DE,getWebGLDisjointQueryTimerVersion:()=>PE,getWebGLErrorMessage:()=>bE,getWebGLMaxTextureSize:()=>RE,hasExtension:()=>ma,isCapableOfRenderingToFloatTexture:()=>OE,isDownloadFloatTextureEnabled:()=>LE,isReshapeFree:()=>Cc,isWebGLFenceEnabled:()=>zE,isWebGLVersionEnabled:()=>iv,linkProgram:()=>wE,logShaderSourceAndInfoLog:()=>H1,resetMaxTextureSize:()=>tJ,resetMaxTexturesInShader:()=>nJ,unbindColorTextureFromFramebuffer:()=>sv,unbindTextureUnit:()=>QZ,validateFramebuffer:()=>ic,validateProgram:()=>qh,validateTextureSize:()=>NE});var Qs={},zh={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function fE(e,t){Qs[e]=t}function Ka(e,t){if(!(e in Qs)||t!=null){let a=HZ(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 GZ(e){if(!G().getBool("IS_SAFARI")&&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 HZ(e,t){if(e!==1&&e!==2)throw new Error("Cannot get WebGL rendering context, WebGL is disabled.");let n=t==null?GZ(e):t;return n.addEventListener("webglcontextlost",a=>{a.preventDefault(),delete Qs[e]},!1),G().getBool("SOFTWARE_WEBGL_ENABLED")&&(zh.failIfMajorPerformanceCaveat=!1),e===1?n.getContext("webgl",zh)||n.getContext("experimental-webgl",zh):n.getContext("webgl2",zh)}var Tc;(function(e){e[e.DENSE=0]="DENSE",e[e.SHARED_BATCH=1]="SHARED_BATCH"})(Tc||(Tc={}));var ha;(function(e){e[e.RENDER=0]="RENDER",e[e.UPLOAD=1]="UPLOAD",e[e.PIXELS=2]="PIXELS",e[e.DOWNLOAD=3]="DOWNLOAD"})(ha||(ha={}));var hn;(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"})(hn||(hn={}));function Ed(e,t){return[t,e]}function qZ(e,t){return e*t}function Wh(e){let t=v.sizeFromShape(e),n=Math.ceil(t/4);return v.sizeToSquarishShape(n)}function bp(e,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(e/2))]}function jZ(e,t){let[n,a]=bp(e,t);return n*a*4}function G1(e,t){let n=e,a,r,s,i,o,l,u,p,d,c;return G().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 de(e,t){let n=t();return G().getBool("DEBUG")&&KZ(e),n}function KZ(e){let t=e.getError();if(t!==e.NO_ERROR)throw new Error("WebGL Error: "+bE(e,t))}var XZ=596e-10,YZ=65504;function gE(e){return!!(G().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||e===0||XZe.getExtension(t),'Extension "'+t+'" not supported on this browser.')}function yE(e,t){let n=zr(e,()=>e.createShader(e.VERTEX_SHADER),"Unable to create vertex WebGLShader.");if(de(e,()=>e.shaderSource(n,t)),de(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 xE(e,t){let n=zr(e,()=>e.createShader(e.FRAGMENT_SHADER),"Unable to create fragment WebGLShader.");if(de(e,()=>e.shaderSource(n,t)),de(e,()=>e.compileShader(n)),G().get("ENGINE_COMPILE_ONLY"))return n;if(e.getShaderParameter(n,e.COMPILE_STATUS)===!1)throw H1(t,e.getShaderInfoLog(n)),new Error("Failed to compile fragment shader.");return n}var ZZ=/ERROR: [0-9]+:([0-9]+):/g;function H1(e,t){let n=ZZ.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;d{let c=[...p];c[o]=d;let h=vi({inputs:{x:r},backend:n,attrs:{begin:u,size:c}});return u[o]+=d,h})}var SZ={kernelName:tp,backendName:"cpu",kernelFunc:IZ},NZ={kernelName:Zc,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}),CZ={kernelName:Ts,backendName:"cpu",kernelFunc:TZ};function _Z(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:b,begin:y,end:x,strides:v}=Xt.sliceInfo(r.shape,s,i,o,l,u,p,d,c),I;if(f)I=xt({inputs:{x:r},backend:n,attrs:{shape:m}});else if(g||b){w.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let T=Xt.computeOutShape(y,x,v),C=vi({inputs:{x:r},backend:n,attrs:{begin:y,size:T}});I=xt({inputs:{x:C},backend:n,attrs:{shape:m}}),n.disposeIntermediateTensorInfo(C)}else{let T=n.bufferSync(r),C=aE(h,T,v,y);I=n.makeTensorInfo(m,C.dtype,C.values)}return I}var EZ={kernelName:rp,backendName:"cpu",kernelFunc:_Z};function AZ(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]=G1(c,h,r,s,i,o,l,u);return[n.makeTensorInfo([m.length],"string",m),n.makeTensorInfo(d.shape,"int32",f)]}var FZ={kernelName:Qc,backendName:"cpu",kernelFunc:AZ};function $Z(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]=H1(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 DZ={kernelName:ed,backendName:"cpu",kernelFunc:$Z};function RZ(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=q1(i,r);return n.makeTensorInfo(s.shape,"int32",o)}var MZ={kernelName:td,backendName:"cpu",kernelFunc:RZ},PZ=it(Uo,e=>Math.tan(e)),OZ={kernelName:Uo,backendName:"cpu",kernelFunc:PZ},LZ=it(Go,e=>Math.tanh(e)),zZ={kernelName:Go,backendName:"cpu",kernelFunc:LZ};function WZ(e){let{inputs:t,backend:n}=e,{tensor:a,indices:r,updates:s}=t,{sliceRank:i,numUpdates:o,sliceSize:l,strides:u,outputSize:p}=N.calculateShapes(s,r,a.shape),d=!1,c=n.bufferSync(r),h=n.bufferSync(s),m=n.bufferSync(a),f=ai(c,h,a.shape,p,l,o,i,u,m,d);return n.makeTensorInfo(a.shape,f.dtype,f.values)}var BZ={kernelName:Yu,backendName:"cpu",kernelFunc:WZ};function VZ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{reps:s}=a;ge(r,"tile");let i=sE(n.bufferSync(r),s);return n.makeTensorInfo(i.shape,i.dtype,i.values)}var UZ={kernelName:Ns,backendName:"cpu",kernelFunc:VZ};function GZ(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]=oE(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 HZ={kernelName:sp,backendName:"cpu",kernelFunc:GZ};function qZ(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],b=w.computeStrides(r.shape),y=b[0],x=b[1],v=b[2],I=w.computeStrides(g),T=I[0],C=I[1],E=I[2],F=w.getTypedArrayFromDType(r.dtype,w.sizeFromShape(g));F.fill(l);let D=a.data.get(r.dataId).values,$=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 w.clamp(0,n,t-1)}function XZ(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 w.clamp(0,n,t-1)}function YZ(e,t){return e}function ZZ(e,t){return w.clamp(0,e,t-1)}function oc(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 sJ={kernelName:ad,backendName:"cpu",kernelFunc:rJ},iJ=[QK,D5,t8,a8,z5,s8,o8,u8,c8,h8,f8,b8,x8,k8,S8,C8,E8,F8,D8,ZK,M8,O8,z8,B5,B8,O5,U5,U8,R5,H8,j8,K8,Y8,J8,eX,nX,rX,iX,lX,pX,dX,mX,gX,yX,xX,wX,IX,NX,TX,CX,_X,AX,DX,GK,MX,G5,UX,H5,GX,j5,YX,ZX,QX,X5,Z5,tY,aY,sY,oY,Q5,tK,M5,uY,q8,cY,hY,fY,HK,aK,sK,bY,oK,xY,kY,SY,CY,EY,FY,$Y,uK,RY,PY,LY,WY,VY,GY,qY,cK,KY,ZY,t7,hK,fK,r7,o7,p7,bK,d7,m7,f7,IE,x7,jK,vK,w7,I7,N7,C7,P5,pv,E7,KK,XK,YK,F7,D7,M7,O7,z7,W7,V7,_K,G7,X7,Z7,tZ,AK,aZ,sZ,oZ,FK,QY,pZ,dZ,mZ,gZ,yZ,vZ,kZ,SZ,RK,NZ,PK,LK,CZ,EZ,FZ,DZ,MZ,VK,FX,OZ,zZ,BZ,UZ,HZ,jZ,yK,tJ,aJ,sJ,h7];for(let e of iJ)rd(e);var SE={};Ee(SE,{assertNotComplex:()=>vp,bindCanvasToFramebuffer:()=>bJ,bindColorTextureToFramebuffer:()=>Jh,bindTextureToProgramUniformSampler:()=>WE,bindTextureUnit:()=>OE,bindVertexBufferToProgramAttribute:()=>dv,callAndCheck:()=>de,canBeRepresented:()=>TE,createFragmentShader:()=>EE,createFramebuffer:()=>PE,createProgram:()=>AE,createStaticIndexBuffer:()=>DE,createStaticVertexBuffer:()=>$E,createTexture:()=>RE,createVertexShader:()=>_E,getBatchDim:()=>wi,getExtensionOrThrow:()=>lc,getFramebufferErrorMessage:()=>BE,getMaxTexturesInShader:()=>HE,getNumChannels:()=>fJ,getProgramUniformLocation:()=>zE,getProgramUniformLocationOrThrow:()=>LE,getRowsCols:()=>ki,getShapeAs3D:()=>pc,getTextureShapeFromLogicalShape:()=>UE,getWebGLDisjointQueryTimerVersion:()=>qE,getWebGLErrorMessage:()=>CE,getWebGLMaxTextureSize:()=>GE,hasExtension:()=>ma,isCapableOfRenderingToFloatTexture:()=>jE,isDownloadFloatTextureEnabled:()=>KE,isReshapeFree:()=>Ac,isWebGLFenceEnabled:()=>XE,isWebGLVersionEnabled:()=>mv,linkProgram:()=>FE,logShaderSourceAndInfoLog:()=>Q1,resetMaxTextureSize:()=>yJ,resetMaxTexturesInShader:()=>xJ,unbindColorTextureFromFramebuffer:()=>hv,unbindTextureUnit:()=>gJ,validateFramebuffer:()=>uc,validateProgram:()=>Zh,validateTextureSize:()=>ME});var ei={},Gh={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function NE(e,t){ei[e]=t}function Ka(e,t){if(!(e in ei)||t!=null){let a=lJ(e,t);if(a!==null)ei[e]=a;else return console.log("Could not get context for WebGL version",e),null}let n=ei[e];return n==null||n.isContextLost()?(delete ei[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),ei[e])}function oJ(e){if(!G().getBool("IS_SAFARI")&&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 lJ(e,t){if(e!==1&&e!==2)throw new Error("Cannot get WebGL rendering context, WebGL is disabled.");let n=t==null?oJ(e):t;return n.addEventListener("webglcontextlost",a=>{a.preventDefault(),delete ei[e]},!1),G().getBool("SOFTWARE_WEBGL_ENABLED")&&(Gh.failIfMajorPerformanceCaveat=!1),e===1?n.getContext("webgl",Gh)||n.getContext("experimental-webgl",Gh):n.getContext("webgl2",Gh)}var Ec;(function(e){e[e.DENSE=0]="DENSE",e[e.SHARED_BATCH=1]="SHARED_BATCH"})(Ec||(Ec={}));var ha;(function(e){e[e.RENDER=0]="RENDER",e[e.UPLOAD=1]="UPLOAD",e[e.PIXELS=2]="PIXELS",e[e.DOWNLOAD=3]="DOWNLOAD"})(ha||(ha={}));var hn;(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"})(hn||(hn={}));function Md(e,t){return[t,e]}function uJ(e,t){return e*t}function Hh(e){let t=w.sizeFromShape(e),n=Math.ceil(t/4);return w.sizeToSquarishShape(n)}function xp(e,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(e/2))]}function pJ(e,t){let[n,a]=xp(e,t);return n*a*4}function J1(e,t){let n=e,a,r,s,i,o,l,u,p,d,c;return G().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 de(e,t){let n=t();return G().getBool("DEBUG")&&cJ(e),n}function cJ(e){let t=e.getError();if(t!==e.NO_ERROR)throw new Error("WebGL Error: "+CE(e,t))}var dJ=596e-10,hJ=65504;function TE(e){return!!(G().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||e===0||dJe.getExtension(t),'Extension "'+t+'" not supported on this browser.')}function _E(e,t){let n=Wr(e,()=>e.createShader(e.VERTEX_SHADER),"Unable to create vertex WebGLShader.");if(de(e,()=>e.shaderSource(n,t)),de(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 EE(e,t){let n=Wr(e,()=>e.createShader(e.FRAGMENT_SHADER),"Unable to create fragment WebGLShader.");if(de(e,()=>e.shaderSource(n,t)),de(e,()=>e.compileShader(n)),G().get("ENGINE_COMPILE_ONLY"))return n;if(e.getShaderParameter(n,e.COMPILE_STATUS)===!1)throw Q1(t,e.getShaderInfoLog(n)),new Error("Failed to compile fragment shader.");return n}var mJ=/ERROR: [0-9]+:([0-9]+):/g;function Q1(e,t){let n=mJ.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)=>w.rightPad((c+1).toString(),s)+d),o=0;for(let d=0;de.createProgram(),"Unable to create WebGLProgram.")}function wE(e,t){if(de(e,()=>e.linkProgram(t)),!G().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 qh(e,t){if(de(e,()=>e.validateProgram(t)),e.getProgramParameter(t,e.VALIDATE_STATUS)===!1)throw console.log(e.getProgramInfoLog(t)),new Error("Shader program validation failed.")}function kE(e,t){let n=zr(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return de(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),de(e,()=>e.bufferData(e.ARRAY_BUFFER,t,e.STATIC_DRAW)),n}function IE(e,t){let n=zr(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return de(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,n)),de(e,()=>e.bufferData(e.ELEMENT_ARRAY_BUFFER,t,e.STATIC_DRAW)),n}function JZ(){return G().getNumber("WEBGL_VERSION")===2?1:4}function SE(e){return zr(e,()=>e.createTexture(),"Unable to create WebGLTexture.")}function NE(e,t){let n=G().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 zr(e,()=>e.createFramebuffer(),"Unable to create WebGLFramebuffer.")}function rv(e,t,n,a,r,s,i){let o=e.getAttribLocation(t,n);return o===-1?!1:(de(e,()=>e.bindBuffer(e.ARRAY_BUFFER,a)),de(e,()=>e.vertexAttribPointer(o,r,e.FLOAT,!1,s,i)),de(e,()=>e.enableVertexAttribArray(o)),!0)}function CE(e,t,n){$E(e,n),de(e,()=>e.activeTexture(e.TEXTURE0+n)),de(e,()=>e.bindTexture(e.TEXTURE_2D,t))}function QZ(e,t){$E(e,t),de(e,()=>e.activeTexture(e.TEXTURE0+t)),de(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function _E(e,t,n){return zr(e,()=>e.getUniformLocation(t,n),'uniform "'+n+'" not present in program.')}function EE(e,t,n){return e.getUniformLocation(t,n)}function AE(e,t,n,a){de(e,()=>CE(e,t,a)),de(e,()=>e.uniform1i(n,a))}function eJ(e){de(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),de(e,()=>e.viewport(0,0,e.canvas.width,e.canvas.height)),de(e,()=>e.scissor(0,0,e.canvas.width,e.canvas.height))}function jh(e,t,n){de(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,n)),de(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t,0))}function sv(e,t){de(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,t)),de(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,null,0))}function ic(e){let t=e.checkFramebufferStatus(e.FRAMEBUFFER);if(t!==e.FRAMEBUFFER_COMPLETE)throw new Error("Error binding framebuffer: "+FE(e,t))}function FE(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 zr(e,t,n){let a=de(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 vi(e,t=2){return v.sizeFromShape(e.slice(0,e.length-t))}function wi(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 oc(e){let t=[1,1,1];return e.length===0||e.length===1&&e[0]===1||(t=[vi(e),...wi(e)]),t}function DE(e,t=!1){let n=G().getNumber("WEBGL_MAX_TEXTURE_SIZE"),a=G().getNumber("WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE");a===1/0&&G().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=vi(e),l=2,u=2;e.length&&([l,u]=wi(e)),r=o*(l/2)*(u/2),s=v.sizeToSquarishShape(r).map(p=>p*2)}else s=v.sizeToSquarishShape(r);return s}function Bh(e){return e%2===0}function Cc(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[e.length-1],a=t[t.length-1];if(n===a||Bh(n)&&Bh(a)&&(e[0]===1||t[0]===1))return!0}return e[1]===t[1]&&Bh(e[0])&&Bh(t[0])}var Kh,Xh;function RE(e){if(Kh==null){let t=Ka(e);Kh=t.getParameter(t.MAX_TEXTURE_SIZE)}return Kh}function tJ(){Kh=null}function nJ(){Xh=null}function ME(e){if(Xh==null){let t=Ka(e);Xh=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,Xh)}function PE(e){if(e===0)return 0;let t,n=Ka(e);return ma(n,"EXT_disjoint_timer_query_webgl2")&&e===2?t=2:ma(n,"EXT_disjoint_timer_query")?t=1:t=0,t}function ma(e,t){return e.getExtension(t)!=null}function iv(e){try{if(Ka(e)!=null)return!0}catch(t){return console.log("Error when getting WebGL context: ",t),!1}return!1}function OE(e){if(e===0)return!1;let t=Ka(e);if(e===1){if(!ma(t,"OES_texture_float"))return!1}else if(!ma(t,"EXT_color_buffer_float"))return!1;return ov(t)}function LE(e){if(e===0)return!1;let t=Ka(e);if(e===1){if(!ma(t,"OES_texture_float")||!ma(t,"WEBGL_color_buffer_float"))return!1}else{if(ma(t,"EXT_color_buffer_float"))return ov(t);let n="EXT_color_buffer_half_float";if(ma(t,n)){let a=t.getExtension(n);return aJ(t,a)}return!1}return ov(t)}function ov(e){let t=G1(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 aJ(e,t){let n=G1(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 zE(e){return e!==2?!1:Ka(e).fenceSync!=null}function yp(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 xe=G();xe.registerFlag("HAS_WEBGL",()=>xe.getNumber("WEBGL_VERSION")>0);xe.registerFlag("WEBGL_VERSION",()=>iv(2)?2:iv(1)?1:0);xe.registerFlag("WEBGL_CHECK_NUMERICAL_PROBLEMS",()=>!1);xe.registerFlag("WEBGL_BUFFER_SUPPORTED",()=>xe.get("WEBGL_VERSION")===2);xe.registerFlag("WEBGL_CPU_FORWARD",()=>!0);xe.registerFlag("WEBGL_FORCE_F16_TEXTURES",()=>!1);xe.registerFlag("WEBGL_PACK",()=>xe.getBool("HAS_WEBGL"));xe.registerFlag("WEBGL_PACK_NORMALIZATION",()=>xe.getBool("WEBGL_PACK"));xe.registerFlag("WEBGL_PACK_CLIP",()=>xe.getBool("WEBGL_PACK"));xe.registerFlag("WEBGL_PACK_DEPTHWISECONV",()=>xe.getBool("WEBGL_PACK"));xe.registerFlag("WEBGL_PACK_BINARY_OPERATIONS",()=>xe.getBool("WEBGL_PACK"));xe.registerFlag("WEBGL_PACK_UNARY_OPERATIONS",()=>xe.getBool("WEBGL_PACK"));xe.registerFlag("WEBGL_PACK_ARRAY_OPERATIONS",()=>xe.getBool("WEBGL_PACK"));xe.registerFlag("WEBGL_PACK_IMAGE_OPERATIONS",()=>xe.getBool("WEBGL_PACK"));xe.registerFlag("WEBGL_PACK_REDUCE",()=>xe.getBool("WEBGL_PACK"));xe.registerFlag("WEBGL_LAZILY_UNPACK",()=>xe.getBool("WEBGL_PACK"));xe.registerFlag("WEBGL_CONV_IM2COL",()=>xe.getBool("WEBGL_PACK"));xe.registerFlag("WEBGL_MAX_TEXTURE_SIZE",()=>RE(xe.getNumber("WEBGL_VERSION")));xe.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER",()=>ME(xe.getNumber("WEBGL_VERSION")));xe.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",()=>{let e=xe.getNumber("WEBGL_VERSION");return e===0?0:PE(e)});xe.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",()=>xe.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&!td.isMobile());xe.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE",()=>OE(xe.getNumber("WEBGL_VERSION")));xe.registerFlag("WEBGL_RENDER_FLOAT32_ENABLED",()=>xe.getBool("WEBGL_FORCE_F16_TEXTURES")?!1:xe.getBool("WEBGL_RENDER_FLOAT32_CAPABLE"));xe.registerFlag("WEBGL_DOWNLOAD_FLOAT_ENABLED",()=>LE(xe.getNumber("WEBGL_VERSION")));xe.registerFlag("WEBGL_FENCE_API_ENABLED",()=>zE(xe.getNumber("WEBGL_VERSION")));xe.registerFlag("WEBGL_SIZE_UPLOAD_UNIFORM",()=>xe.getBool("WEBGL_RENDER_FLOAT32_ENABLED")?4:0);xe.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}.`)});xe.registerFlag("WEBGL_FLUSH_THRESHOLD",()=>td.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}.`)});xe.registerFlag("CPU_HANDOFF_SIZE_THRESHOLD",()=>128);xe.registerFlag("WEBGL_USE_SHAPES_UNIFORMS",()=>!1);xe.registerFlag("TOPK_LAST_DIM_CPU_HANDOFF_SIZE_THRESHOLD",()=>1e5);xe.registerFlag("TOPK_K_CPU_HANDOFF_THRESHOLD",()=>128);xe.registerFlag("WEBGL_EXP_CONV",()=>!1);xe.registerFlag("SOFTWARE_WEBGL_ENABLED",()=>xe.getBool("IS_TEST"));xe.registerFlag("WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE",()=>1/0);xe.registerFlag("WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE",()=>!1);xe.registerFlag("WEBGL2_ISNAN_CUSTOM",()=>!1);xe.registerFlag("ENGINE_COMPILE_ONLY",()=>!1);function En(){let e,t,n,a,r,s,i,o,l,u;return G().getNumber("WEBGL_VERSION")===2?(e="#version 300 es",t="in",n="out",a="in",r="texture",s="outputColor",i="out vec4 outputColor;",o=G().getBool("WEBGL2_ISNAN_CUSTOM")?` +`)[0]),console.log(`%c ${w.rightPad(u[0],o)}`,"border:1px solid red; background-color:#e3d2d2; color:#a61717"),console.log(p.join(` +`))}function AE(e){return Wr(e,()=>e.createProgram(),"Unable to create WebGLProgram.")}function FE(e,t){if(de(e,()=>e.linkProgram(t)),!G().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 Zh(e,t){if(de(e,()=>e.validateProgram(t)),e.getProgramParameter(t,e.VALIDATE_STATUS)===!1)throw console.log(e.getProgramInfoLog(t)),new Error("Shader program validation failed.")}function $E(e,t){let n=Wr(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return de(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),de(e,()=>e.bufferData(e.ARRAY_BUFFER,t,e.STATIC_DRAW)),n}function DE(e,t){let n=Wr(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return de(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,n)),de(e,()=>e.bufferData(e.ELEMENT_ARRAY_BUFFER,t,e.STATIC_DRAW)),n}function fJ(){return G().getNumber("WEBGL_VERSION")===2?1:4}function RE(e){return Wr(e,()=>e.createTexture(),"Unable to create WebGLTexture.")}function ME(e,t){let n=G().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 PE(e){return Wr(e,()=>e.createFramebuffer(),"Unable to create WebGLFramebuffer.")}function dv(e,t,n,a,r,s,i){let o=e.getAttribLocation(t,n);return o===-1?!1:(de(e,()=>e.bindBuffer(e.ARRAY_BUFFER,a)),de(e,()=>e.vertexAttribPointer(o,r,e.FLOAT,!1,s,i)),de(e,()=>e.enableVertexAttribArray(o)),!0)}function OE(e,t,n){VE(e,n),de(e,()=>e.activeTexture(e.TEXTURE0+n)),de(e,()=>e.bindTexture(e.TEXTURE_2D,t))}function gJ(e,t){VE(e,t),de(e,()=>e.activeTexture(e.TEXTURE0+t)),de(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function LE(e,t,n){return Wr(e,()=>e.getUniformLocation(t,n),'uniform "'+n+'" not present in program.')}function zE(e,t,n){return e.getUniformLocation(t,n)}function WE(e,t,n,a){de(e,()=>OE(e,t,a)),de(e,()=>e.uniform1i(n,a))}function bJ(e){de(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),de(e,()=>e.viewport(0,0,e.canvas.width,e.canvas.height)),de(e,()=>e.scissor(0,0,e.canvas.width,e.canvas.height))}function Jh(e,t,n){de(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,n)),de(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t,0))}function hv(e,t){de(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,t)),de(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,null,0))}function uc(e){let t=e.checkFramebufferStatus(e.FRAMEBUFFER);if(t!==e.FRAMEBUFFER_COMPLETE)throw new Error("Error binding framebuffer: "+BE(e,t))}function BE(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 Wr(e,t,n){let a=de(e,()=>t());if(a==null)throw new Error(n);return a}function VE(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 wi(e,t=2){return w.sizeFromShape(e.slice(0,e.length-t))}function ki(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 pc(e){let t=[1,1,1];return e.length===0||e.length===1&&e[0]===1||(t=[wi(e),...ki(e)]),t}function UE(e,t=!1){let n=G().getNumber("WEBGL_MAX_TEXTURE_SIZE"),a=G().getNumber("WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE");a===1/0&&G().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?w.nearestLargerEven(e[l]):e[l]),e.length===1&&(e=[2,e[0]])),e.length!==2&&(e=w.squeezeShape(e).newShape);let r=w.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=wi(e),l=2,u=2;e.length&&([l,u]=ki(e)),r=o*(l/2)*(u/2),s=w.sizeToSquarishShape(r).map(p=>p*2)}else s=w.sizeToSquarishShape(r);return s}function qh(e){return e%2===0}function Ac(e,t){if(e=e.slice(-2),t=t.slice(-2),w.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[e.length-1],a=t[t.length-1];if(n===a||qh(n)&&qh(a)&&(e[0]===1||t[0]===1))return!0}return e[1]===t[1]&&qh(e[0])&&qh(t[0])}var Qh,em;function GE(e){if(Qh==null){let t=Ka(e);Qh=t.getParameter(t.MAX_TEXTURE_SIZE)}return Qh}function yJ(){Qh=null}function xJ(){em=null}function HE(e){if(em==null){let t=Ka(e);em=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,em)}function qE(e){if(e===0)return 0;let t,n=Ka(e);return ma(n,"EXT_disjoint_timer_query_webgl2")&&e===2?t=2:ma(n,"EXT_disjoint_timer_query")?t=1:t=0,t}function ma(e,t){return e.getExtension(t)!=null}function mv(e){try{if(Ka(e)!=null)return!0}catch(t){return console.log("Error when getting WebGL context: ",t),!1}return!1}function jE(e){if(e===0)return!1;let t=Ka(e);if(e===1){if(!ma(t,"OES_texture_float"))return!1}else if(!ma(t,"EXT_color_buffer_float"))return!1;return fv(t)}function KE(e){if(e===0)return!1;let t=Ka(e);if(e===1){if(!ma(t,"OES_texture_float")||!ma(t,"WEBGL_color_buffer_float"))return!1}else{if(ma(t,"EXT_color_buffer_float"))return fv(t);let n="EXT_color_buffer_half_float";if(ma(t,n)){let a=t.getExtension(n);return vJ(t,a)}return!1}return fv(t)}function fv(e){let t=J1(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 vJ(e,t){let n=J1(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 XE(e){return e!==2?!1:Ka(e).fenceSync!=null}function vp(e,t){Array.isArray(e)||(e=[e]),e.forEach(n=>{n!=null&&w.assert(n.dtype!=="complex64",()=>`${t} does not support complex64 tensors in the WebGL backend.`)})}var xe=G();xe.registerFlag("HAS_WEBGL",()=>xe.getNumber("WEBGL_VERSION")>0);xe.registerFlag("WEBGL_VERSION",()=>mv(2)?2:mv(1)?1:0);xe.registerFlag("WEBGL_CHECK_NUMERICAL_PROBLEMS",()=>!1);xe.registerFlag("WEBGL_BUFFER_SUPPORTED",()=>xe.get("WEBGL_VERSION")===2);xe.registerFlag("WEBGL_CPU_FORWARD",()=>!0);xe.registerFlag("WEBGL_FORCE_F16_TEXTURES",()=>!1);xe.registerFlag("WEBGL_PACK",()=>xe.getBool("HAS_WEBGL"));xe.registerFlag("WEBGL_PACK_NORMALIZATION",()=>xe.getBool("WEBGL_PACK"));xe.registerFlag("WEBGL_PACK_CLIP",()=>xe.getBool("WEBGL_PACK"));xe.registerFlag("WEBGL_PACK_DEPTHWISECONV",()=>xe.getBool("WEBGL_PACK"));xe.registerFlag("WEBGL_PACK_BINARY_OPERATIONS",()=>xe.getBool("WEBGL_PACK"));xe.registerFlag("WEBGL_PACK_UNARY_OPERATIONS",()=>xe.getBool("WEBGL_PACK"));xe.registerFlag("WEBGL_PACK_ARRAY_OPERATIONS",()=>xe.getBool("WEBGL_PACK"));xe.registerFlag("WEBGL_PACK_IMAGE_OPERATIONS",()=>xe.getBool("WEBGL_PACK"));xe.registerFlag("WEBGL_PACK_REDUCE",()=>xe.getBool("WEBGL_PACK"));xe.registerFlag("WEBGL_LAZILY_UNPACK",()=>xe.getBool("WEBGL_PACK"));xe.registerFlag("WEBGL_CONV_IM2COL",()=>xe.getBool("WEBGL_PACK"));xe.registerFlag("WEBGL_MAX_TEXTURE_SIZE",()=>GE(xe.getNumber("WEBGL_VERSION")));xe.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER",()=>HE(xe.getNumber("WEBGL_VERSION")));xe.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",()=>{let e=xe.getNumber("WEBGL_VERSION");return e===0?0:qE(e)});xe.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",()=>xe.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&!od.isMobile());xe.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE",()=>jE(xe.getNumber("WEBGL_VERSION")));xe.registerFlag("WEBGL_RENDER_FLOAT32_ENABLED",()=>xe.getBool("WEBGL_FORCE_F16_TEXTURES")?!1:xe.getBool("WEBGL_RENDER_FLOAT32_CAPABLE"));xe.registerFlag("WEBGL_DOWNLOAD_FLOAT_ENABLED",()=>KE(xe.getNumber("WEBGL_VERSION")));xe.registerFlag("WEBGL_FENCE_API_ENABLED",()=>XE(xe.getNumber("WEBGL_VERSION")));xe.registerFlag("WEBGL_SIZE_UPLOAD_UNIFORM",()=>xe.getBool("WEBGL_RENDER_FLOAT32_ENABLED")?4:0);xe.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}.`)});xe.registerFlag("WEBGL_FLUSH_THRESHOLD",()=>od.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}.`)});xe.registerFlag("CPU_HANDOFF_SIZE_THRESHOLD",()=>128);xe.registerFlag("WEBGL_USE_SHAPES_UNIFORMS",()=>!1);xe.registerFlag("TOPK_LAST_DIM_CPU_HANDOFF_SIZE_THRESHOLD",()=>1e5);xe.registerFlag("TOPK_K_CPU_HANDOFF_THRESHOLD",()=>128);xe.registerFlag("WEBGL_EXP_CONV",()=>!1);xe.registerFlag("SOFTWARE_WEBGL_ENABLED",()=>xe.getBool("IS_TEST"));xe.registerFlag("WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE",()=>1/0);xe.registerFlag("WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE",()=>!1);xe.registerFlag("WEBGL2_ISNAN_CUSTOM",()=>!1);xe.registerFlag("ENGINE_COMPILE_ONLY",()=>!1);function En(){let e,t,n,a,r,s,i,o,l,u;return G().getNumber("WEBGL_VERSION")===2?(e="#version 300 es",t="in",n="out",a="in",r="texture",s="outputColor",i="out vec4 outputColor;",o=G().getBool("WEBGL2_ISNAN_CUSTOM")?` bool isnan_custom(float val) { uint floatToUint = floatBitsToUint(val); return (floatToUint & 0x7fffffffu) > 0x7f800000u; @@ -112,15 +112,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 jo(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 Zf(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 rJ(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 sJ(e,t,n="index"){let a=e.map((s,i)=>i),r=rJ(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 q1(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 Jo(e,t,n="index"){let a=w.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 Jf(e,t,n="index"){let a=w.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 wJ(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 kJ(e,t,n="index"){let a=e.map((s,i)=>i),r=wJ(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 ek(e){let t=w.computeStrides(e).map(n=>n.toString());return` int getFlatIndex(ivec3 coords) { return coords.x * ${t[0]} + coords.y * ${t[1]} + coords.z; } -`}function j1(){return` +`}function tk(){return` int getFlatIndex(ivec3 coords) { return coords.x * outShapeStrides[0] + coords.y * outShapeStrides[1] + coords.z; } -`}var WE=` +`}var YE=` const float FLOAT_MAX = 1.70141184e38; const float FLOAT_MIN = 1.17549435e-38; @@ -159,22 +159,22 @@ Hi, looks like you are running TensorFlow.js in Node.js. To speed things up dram return c / 255.0; } -`,{getBroadcastDims:BE}=N;function iJ(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}=K1(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=>oJ(c,t,n.packedInputs,n.enableShapeUniforms)).join(` -`),i=t.texShape,o=En(),l=pJ(o),u,p,d=hJ(o);return t.isPacked?(u=lJ(t.logicalShape,i,n.enableShapeUniforms),p=dJ(o)):(u=uJ(t.logicalShape,i,n.enableShapeUniforms),p=cJ(o)),n.packedInputs&&(d+=bJ),[d,l,p,r,u,s,n.userCode].join(` -`)}function xp(e,t=!1){let n=e.shapeInfo.logicalShape;switch(n.length){case 0:return EJ(e,t);case 1:return FJ(e,t);case 2:return DJ(e,t);case 3:return MJ(e,t);case 4:return OJ(e,t);case 5:return LJ(e);case 6:return zJ(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 _J(e);case 1:return AJ(e,t);case 2:return $J(e,t);case 3:return RJ(e,t);default:return PJ(e,t)}}function oJ(e,t,n=!1,a){let r="";n?r+=VE(e,a):r+=xp(e,a);let s=e.shapeInfo.logicalShape,i=t.logicalShape;return s.length<=i.length&&(n?r+=WJ(e,t):r+=BJ(e,t)),r}function lJ(e,t,n){switch(e.length){case 0:return UE();case 1:return yJ(e,t,n);case 2:return TJ(e,t,n);case 3:return vJ(e,t,n);default:return kJ(e,t,n)}}function uJ(e,t,n){switch(e.length){case 0:return UE();case 1:return xJ(e,t,n);case 2:return CJ(e,t,n);case 3:return wJ(e,t,n);case 4:return IJ(e,t,n);case 5:return SJ(e,t);case 6:return NJ(e,t);default:throw new Error(`${e.length}-D output sampling is not yet supported`)}}function pJ(e){return` +`,{getBroadcastDims:ZE}=N;function IJ(e,t,n){let a=[];if(e.forEach(c=>{let h=w.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}=nk(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=>SJ(c,t,n.packedInputs,n.enableShapeUniforms)).join(` +`),i=t.texShape,o=En(),l=CJ(o),u,p,d=AJ(o);return t.isPacked?(u=NJ(t.logicalShape,i,n.enableShapeUniforms),p=EJ(o)):(u=TJ(t.logicalShape,i,n.enableShapeUniforms),p=_J(o)),n.packedInputs&&(d+=RJ),[d,l,p,r,u,s,n.userCode].join(` +`)}function wp(e,t=!1){let n=e.shapeInfo.logicalShape;switch(n.length){case 0:return qJ(e,t);case 1:return KJ(e,t);case 2:return YJ(e,t);case 3:return JJ(e,t);case 4:return e9(e,t);case 5:return t9(e);case 6:return n9(e);default:throw new Error(`${n.length}-D input sampling is not yet supported`)}}function JE(e,t){switch(e.shapeInfo.logicalShape.length){case 0:return HJ(e);case 1:return jJ(e,t);case 2:return XJ(e,t);case 3:return ZJ(e,t);default:return QJ(e,t)}}function SJ(e,t,n=!1,a){let r="";n?r+=JE(e,a):r+=wp(e,a);let s=e.shapeInfo.logicalShape,i=t.logicalShape;return s.length<=i.length&&(n?r+=a9(e,t):r+=r9(e,t)),r}function NJ(e,t,n){switch(e.length){case 0:return QE();case 1:return MJ(e,t,n);case 2:return UJ(e,t,n);case 3:return OJ(e,t,n);default:return zJ(e,t,n)}}function TJ(e,t,n){switch(e.length){case 0:return QE();case 1:return PJ(e,t,n);case 2:return GJ(e,t,n);case 3:return LJ(e,t,n);case 4:return WJ(e,t,n);case 5:return BJ(e,t);case 6:return VJ(e,t);default:throw new Error(`${e.length}-D output sampling is not yet supported`)}}function CJ(e){return` float sampleTexture(sampler2D textureSampler, vec2 uv) { return ${e.texture2D}(textureSampler, uv).r; } - `}function cJ(e){return` + `}function _J(e){return` void setOutput(float val) { ${e.output} = vec4(val, 0, 0, 0); } - `}function dJ(e){return` + `}function EJ(e){return` void setOutput(vec4 val) { ${e.output} = val; } - `}function hJ(e){return`${e.version} + `}function AJ(e){return`${e.version} precision highp float; precision highp int; precision highp sampler2D; @@ -229,10 +229,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); } - ${mJ} - ${fJ} - ${gJ} - `}var mJ=` + ${FJ} + ${$J} + ${DJ} + `}var FJ=` vec2 uvFromFlat(int texNumR, int texNumC, int index) { int texR = index / texNumC; int texC = index - texR * texNumC; @@ -244,7 +244,7 @@ vec2 packedUVfrom1D(int texNumR, int texNumC, int index) { int texC = texelIndex - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } -`,fJ=` +`,$J=` vec2 packedUVfrom2D(int texelsInLogicalRow, int texNumR, int texNumC, int row, int col) { int texelIndex = (row / 2) * texelsInLogicalRow + (col / 2); @@ -252,7 +252,7 @@ vec2 packedUVfrom2D(int texelsInLogicalRow, int texNumR, int texC = texelIndex - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } -`,gJ=` +`,DJ=` vec2 packedUVfrom3D(int texNumR, int texNumC, int texelsInBatch, int texelsInLogicalRow, int b, int row, int col) { @@ -261,7 +261,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, int texC = index - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } -`,bJ=` +`,RJ=` float getChannel(vec4 frag, vec2 innerDims) { vec2 modCoord = mod(innerDims, 2.); return modCoord.x == 0. ? @@ -272,11 +272,11 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, float modCoord = mod(float(dim), 2.); return modCoord == 0. ? frag.r : frag.g; } -`;function UE(){return` +`;function QE(){return` int getOutputCoords() { return 0; } - `}function yJ(e,t,n){let a=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];return a[0]===1?n?` + `}function MJ(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)); } @@ -305,7 +305,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2(${a[0]}, ${a[1]})); return 2 * (resTexRC.x * ${a[1]} + resTexRC.y); } - `}function xJ(e,t,n){return t[0]===1?n?` + `}function PJ(e,t,n){return t[0]===1?n?` int getOutputCoords() { return int(resultUV.x * float(outTexShape[1])); } @@ -333,7 +333,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2(${t[0]}, ${t[1]})); return resTexRC.x * ${t[1]} + resTexRC.y; } - `}function vJ(e,t,n){if(n)return` + `}function OJ(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)); @@ -364,15 +364,15 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, return ivec3(b, r, c); } - `}function wJ(e,t,n){if(n)return` + `}function LJ(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; - ${Zf(["r","c","d"],e)} + ${Jf(["r","c","d"],e)} return ivec3(r, c, d); } -`;let a=jo(["r","c","d"],e);return` +`;let a=Jo(["r","c","d"],e);return` ivec3 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${t[0]}, ${t[1]})); @@ -380,7 +380,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${a} return ivec3(r, c, d); } - `}function kJ(e,t,n){if(n)return` + `}function zJ(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 * @@ -421,15 +421,15 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, return ivec${e.length}(${l}); } - `}function IJ(e,t,n){if(n)return` + `}function WJ(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; - ${Zf(["r","c","d","d2"],e)} + ${Jf(["r","c","d","d2"],e)} return ivec4(r, c, d, d2); } - `;let a=jo(["r","c","d","d2"],e);return` + `;let a=Jo(["r","c","d","d2"],e);return` ivec4 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${t[0]}, ${t[1]})); @@ -437,7 +437,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${a} return ivec4(r, c, d, d2); } - `}function SJ(e,t){let n=jo(["r","c","d","d2","d3"],e);return` + `}function BJ(e,t){let n=Jo(["r","c","d","d2","d3"],e);return` ivec5 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${t[0]}, ${t[1]})); @@ -449,7 +449,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ivec5 outShape = ivec5(r, c, d, d2, d3); return outShape; } - `}function NJ(e,t){let n=jo(["r","c","d","d2","d3","d4"],e);return` + `}function VJ(e,t){let n=Jo(["r","c","d","d2","d3","d4"],e);return` ivec6 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${t[0]}, ${t[1]})); @@ -460,7 +460,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ivec6 result = ivec6(r, c, d, d2, d3, d4); return result; } - `}function TJ(e,t,n){let a=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];if(v.arraysEqual(e,t))return n?` + `}function UJ(e,t,n){let a=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];if(w.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])); @@ -493,7 +493,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, return ivec2(r, c); } - `}function CJ(e,t,n){return v.arraysEqual(e,t)?n?` + `}function GJ(e,t,n){return w.arraysEqual(e,t)?n?` ivec2 getOutputCoords() { return ivec2(resultUV.yx * vec2(outTexShape[0], outTexShape[1])); } @@ -547,15 +547,15 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, int c = index - r * ${e[1]}; return ivec2(r, c); } - `}function Ko(e){return`offset${e}`}function _J(e){let t=e.name,n="get"+t.charAt(0).toUpperCase()+t.slice(1),a=En();return` + `}function Qo(e){return`offset${e}`}function HJ(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 EJ(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 qJ(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=Qo(n);if(t)return` float ${a}() { vec2 uv = uvFromFlat(${n}TexShape[0], ${n}TexShape[1], ${i}); return sampleTexture(${n}, uv); @@ -565,7 +565,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2 uv = uvFromFlat(${o}, ${l}, ${i}); return sampleTexture(${n}, uv); } - `}function AJ(e,t){let n=e.name,a="get"+n.charAt(0).toUpperCase()+n.slice(1),r=e.shapeInfo.texShape,s=En();if(t)return` + `}function jJ(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( @@ -578,15 +578,15 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${i[0]}, ${i[1]}, index); return ${s.texture2D}(${n}, uv); } - `}function FJ(e,t){let n=e.name,a="get"+n.charAt(0).toUpperCase()+n.slice(1);if(e.shapeInfo.isUniform)return` + `}function KJ(e,t){let n=e.name,a="get"+n.charAt(0).toUpperCase()+n.slice(1);if(e.shapeInfo.isUniform)return` float ${a}(int index) { - ${vp(e)} + ${kp(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=Qo(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); @@ -616,7 +616,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2 uv = uvFromFlat(${s}, ${i}, index + ${o}); return sampleTexture(${n}, uv); } - `}function $J(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?` + `}function XJ(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&&w.arraysEqual(n,s))return t?` vec4 ${r}(int row, int col) { vec2 uv = (vec2(col, row) + halfCR) / vec2(${a}TexShape[1], ${a}TexShape[0]); @@ -640,7 +640,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2 uv = packedUVfrom2D(${p}, ${u[0]}, ${u[1]}, row, col); return ${l.texture2D}(${a}, uv); } - `}function DJ(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 YJ(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&&w.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); @@ -650,17 +650,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(` -`);let c="";i<2&&s>0?c="coords":c=e.shapeInfo.logicalShape.map((g,b)=>`coords.${d[b+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=` + `}function a9(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=ZE(e.shapeInfo.logicalShape,t.logicalShape),l=dt(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,b)=>`coords.${d[b+u]}`).join(", ");let h="return outputValue;",m=w.sizeFromShape(e.shapeInfo.logicalShape)===1,f=w.sizeFromShape(t.logicalShape)===1;if(s===1&&!m&&!f)h=` return vec4(outputValue.xy, outputValue.xy); `;else if(m&&!f)i===1?h=` return vec4(outputValue.x, outputValue.x, 0., 0.); @@ -977,20 +977,20 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec4 outputValue = get${a}(${c}); ${h} } - `}function BJ(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 r9(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&&w.arraysEqual(i,s))return` float ${r}() { return sampleTexture(${n}, resultUV); } - `;let u=dt(l),p=BE(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=dt(l),p=ZE(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 dt(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 K1(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 VJ(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=iJ(r,i,t),l=xE(e.gl,o),u=e.createProgram(l);return G().get("ENGINE_COMPILE_ONLY")?{program:t,fragmentShader:l,source:o,webGLProgram:u,inShapeInfos:s,outShapeInfo:i,variablesLocations:null,customUniformLocations:null,infLoc:null,nanLoc:null,outShapeLocation:null,outShapeStridesLocation:null,outTexShapeLocation:null}:(e.buildVao(u),Object.assign({program:t,fragmentShader:l,source:o,webGLProgram:u,inShapeInfos:s,outShapeInfo:i},GE(e,t,u)))}function GE(e,t,n){let a=[],r=[],s,i,o,l=null,u=null;u=e.getUniformLocation(n,"NAN",!1),G().getNumber("WEBGL_VERSION")===1&&(l=e.getUniformLocation(n,"INFINITY",!1));let p=!1;for(let d of t.variableNames){let c={name:d,uniform:e.getUniformLocation(n,d,p),offset:e.getUniformLocation(n,`offset${d}`,p)};t.enableShapeUniforms&&(c.shape=e.getUniformLocation(n,`${d}Shape`,p),c.texShape=e.getUniformLocation(n,`${d}TexShape`,p)),a.push(c)}if(t.enableShapeUniforms&&(s=e.getUniformLocation(n,"outShape",p),o=e.getUniformLocation(n,"outShapeStrides",p),i=e.getUniformLocation(n,"outTexShape",p)),t.customUniforms)for(let d of t.customUniforms)r.push(e.getUniformLocation(n,d.name,p));return{variablesLocations:a,customUniformLocations:r,infLoc:l,nanLoc:u,outShapeLocation:s,outShapeStridesLocation:o,outTexShapeLocation:i}}function sS(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 UJ(e,t,n,a,r){t.program.enableShapeUniforms||(sS(t.inShapeInfos,n),sS([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),e.bindVertexArray(t.webGLProgram.vao),G().getNumber("WEBGL_VERSION")===1&&t.infLoc!==null&&e.gl.uniform1f(t.infLoc,1/0),t.nanLoc!==null&&e.gl.uniform1f(t.nanLoc,NaN);for(let l=0;l{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}=K1(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),b=v.sizeFromShape(i.shape)===1,y=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}_${b}_${y}_${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+`${G().getNumber("WEBGL_VERSION")}`,s}function vn(e){return G().getBool("WEBGL_USE_SHAPES_UNIFORMS")&&e<=4}var HJ=class{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=Tc.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];let t=En();this.outputShape=e,this.enableShapeUniforms=vn(this.outputShape.length),this.userCode=` + `}function dt(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 nk(e,t,n){let{newShape:a,keptDims:r}=w.squeezeShape(t),s=t.length,i=e&&s===3&&t[0]===1,o=i?t.slice(1):a,l=!e&&s>1&&!w.arraysEqual(t,n)&&a.lengthe[n]).join(", ")}function s9(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=IJ(r,i,t),l=EE(e.gl,o),u=e.createProgram(l);return G().get("ENGINE_COMPILE_ONLY")?{program:t,fragmentShader:l,source:o,webGLProgram:u,inShapeInfos:s,outShapeInfo:i,variablesLocations:null,customUniformLocations:null,infLoc:null,nanLoc:null,outShapeLocation:null,outShapeStridesLocation:null,outTexShapeLocation:null}:(e.buildVao(u),Object.assign({program:t,fragmentShader:l,source:o,webGLProgram:u,inShapeInfos:s,outShapeInfo:i},eA(e,t,u)))}function eA(e,t,n){let a=[],r=[],s,i,o,l=null,u=null;u=e.getUniformLocation(n,"NAN",!1),G().getNumber("WEBGL_VERSION")===1&&(l=e.getUniformLocation(n,"INFINITY",!1));let p=!1;for(let d of t.variableNames){let c={name:d,uniform:e.getUniformLocation(n,d,p),offset:e.getUniformLocation(n,`offset${d}`,p)};t.enableShapeUniforms&&(c.shape=e.getUniformLocation(n,`${d}Shape`,p),c.texShape=e.getUniformLocation(n,`${d}TexShape`,p)),a.push(c)}if(t.enableShapeUniforms&&(s=e.getUniformLocation(n,"outShape",p),o=e.getUniformLocation(n,"outShapeStrides",p),i=e.getUniformLocation(n,"outTexShape",p)),t.customUniforms)for(let d of t.customUniforms)r.push(e.getUniformLocation(n,d.name,p));return{variablesLocations:a,customUniformLocations:r,infLoc:l,nanLoc:u,outShapeLocation:s,outShapeStridesLocation:o,outTexShapeLocation:i}}function mS(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(!w.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(!w.arraysEqual(o,l))throw Error(`Binary was compiled with different texture shapes than the current args. Shape ${o} and ${l} must match`)})}function i9(e,t,n,a,r){t.program.enableShapeUniforms||(mS(t.inShapeInfos,n),mS([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),e.bindVertexArray(t.webGLProgram.vao),G().getNumber("WEBGL_VERSION")===1&&t.infLoc!==null&&e.gl.uniform1f(t.infLoc,1/0),t.nanLoc!==null&&e.gl.uniform1f(t.nanLoc,NaN);for(let l=0;l{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}=nk(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=w.computeStrides(p);m=`${I[0]===l[1]}_${I[I.length-1]===l[1]}`}let f=i.shape.length,g=p.length===2&&w.arraysEqual(i.shape,l),b=w.sizeFromShape(i.shape)===1,y=N.getBroadcastDims(i.shape,n.shape),x=!e.packedInputs&&f===n.shape.length&&w.arraysEqual(l,n.texData.texShape),v=e.packedInputs||p.length>2?"":`${l[0]>1}_${l[1]>1}`;a+=`${f}_${x}_${u?d:""}_${p.length}_${b}_${y}_${g}_${c}_${h}_${m}_${v}_${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+`${G().getNumber("WEBGL_VERSION")}`,s}function vn(e){return G().getBool("WEBGL_USE_SHAPES_UNIFORMS")&&e<=4}var l9=class{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=Ec.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];let t=En();this.outputShape=e,this.enableShapeUniforms=vn(this.outputShape.length),this.userCode=` ivec3 outCoordsFromFlatIndex(int index) { - ${this.enableShapeUniforms?Zf(["r","c","d"],e):jo(["r","c","d"],e)} + ${this.enableShapeUniforms?Jf(["r","c","d"],e):Jo(["r","c","d"],e)} return ivec3(r, c, d); } @@ -1008,9 +1008,9 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${t.output} = result; } - `}},qJ=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=Tc.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];let t=En();this.outputShape=e,this.enableShapeUniforms=vn(this.outputShape.length),this.userCode=` + `}},u9=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=Ec.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];let t=En();this.outputShape=e,this.enableShapeUniforms=vn(this.outputShape.length),this.userCode=` ivec3 outCoordsFromFlatIndex(int index) { - ${this.enableShapeUniforms?Zf(["r","c","d"],e):jo(["r","c","d"],e)} + ${this.enableShapeUniforms?Jf(["r","c","d"],e):Jo(["r","c","d"],e)} return ivec3(r, c, d); } @@ -1028,26 +1028,26 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${t.output} = result; } - `}},jJ=class{constructor(e){this.variableNames=["A"],this.outTexUsage=ha.DOWNLOAD;let t=En();this.outputShape=e,this.userCode=` - ${WE} + `}},p9=class{constructor(e){this.variableNames=["A"],this.outTexUsage=ha.DOWNLOAD;let t=En();this.outputShape=e,this.userCode=` + ${YE} void main() { float x = getAAtOutCoords(); ${t.output} = encode_float(x); } - `}},KJ=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=ha.DOWNLOAD;let t=En();this.outputShape=e,this.userCode=` - ${WE} + `}},c9=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=ha.DOWNLOAD;let t=En();this.outputShape=e,this.userCode=` + ${YE} void main() { ivec3 coords = getOutputCoords(); float x = getChannel(getAAtOutCoords(), vec2(coords.y, coords.z)); ${t.output} = encode_float(x); } - `}},XJ={R:0,G:1,B:2,A:3},iS=class{constructor(e,t=!1,n="RGBA"){this.variableNames=["A"],this.customUniforms=[{name:"texShape",type:"ivec2"}];let a=En();this.outputShape=e,this.enableShapeUniforms=vn(this.outputShape.length);let r="result";t&&(r="floor(result * 255. + 0.5)");let s="";for(let i=0;ieA,createBufferFromOutputTexture:()=>aA,createFloat16MatrixTexture:()=>YE,createFloat16PackedMatrixTexture:()=>QE,createFloat32MatrixTexture:()=>XE,createIndexBuffer:()=>KE,createPackedMatrixTexture:()=>JE,createUnsignedBytesMatrixTexture:()=>ZE,createVertexBuffer:()=>jE,createVertexShader:()=>qE,downloadByteEncodedFloatMatrixFromOutputTexture:()=>sA,downloadFloat32MatrixFromBuffer:()=>rA,downloadMatrixFromPackedOutputTexture:()=>oA,downloadPackedMatrixFromBuffer:()=>iA,getInternalFormatForFloat16MatrixTexture:()=>Y1,getInternalFormatForFloat16PackedMatrixTexture:()=>Q1,getInternalFormatForFloat32MatrixTexture:()=>X1,getInternalFormatForPackedMatrixTexture:()=>J1,getInternalFormatForUnsignedBytesMatrixTexture:()=>Z1,uploadDenseMatrixToTexture:()=>tA,uploadPixelDataToTexture:()=>nA});function qE(e){let t=En(),n=`${t.version} + `}},tA={};Ee(tA,{bindVertexProgramAttributeStreams:()=>pA,createBufferFromOutputTexture:()=>hA,createFloat16MatrixTexture:()=>iA,createFloat16PackedMatrixTexture:()=>uA,createFloat32MatrixTexture:()=>sA,createIndexBuffer:()=>rA,createPackedMatrixTexture:()=>lA,createUnsignedBytesMatrixTexture:()=>oA,createVertexBuffer:()=>aA,createVertexShader:()=>nA,downloadByteEncodedFloatMatrixFromOutputTexture:()=>fA,downloadFloat32MatrixFromBuffer:()=>mA,downloadMatrixFromPackedOutputTexture:()=>bA,downloadPackedMatrixFromBuffer:()=>gA,getInternalFormatForFloat16MatrixTexture:()=>rk,getInternalFormatForFloat16PackedMatrixTexture:()=>ok,getInternalFormatForFloat32MatrixTexture:()=>ak,getInternalFormatForPackedMatrixTexture:()=>ik,getInternalFormatForUnsignedBytesMatrixTexture:()=>sk,uploadDenseMatrixToTexture:()=>cA,uploadPixelDataToTexture:()=>dA});function nA(e){let t=En(),n=`${t.version} precision highp float; ${t.attribute} vec3 clipSpacePos; ${t.attribute} vec2 uv; @@ -1119,7 +1119,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, void main() { gl_Position = vec4(clipSpacePos, 1); resultUV = uv; - }`;return yE(e,n)}function jE(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 kE(e,t)}function KE(e){let t=new Uint16Array([0,1,2,2,1,3]);return IE(e,t)}function Ad(e,t,n,a,r,s){NE(t,n);let i=SE(e),o=e.TEXTURE_2D;return de(e,()=>e.bindTexture(o,i)),de(e,()=>e.texParameteri(o,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE)),de(e,()=>e.texParameteri(o,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),de(e,()=>e.texParameteri(o,e.TEXTURE_MIN_FILTER,e.NEAREST)),de(e,()=>e.texParameteri(o,e.TEXTURE_MAG_FILTER,e.NEAREST)),G().getNumber("WEBGL_VERSION")===1?de(e,()=>e.texImage2D(o,0,a,t,n,0,r,s,null)):de(e,()=>e.texStorage2D(o,1,a,t,n)),de(e,()=>e.bindTexture(e.TEXTURE_2D,null)),{texture:i,texShape:[n,t]}}function X1(e){return e.internalFormatFloat}function XE(e,t,n,a){let[r,s]=Ed(t,n);return Ad(e,r,s,X1(a),a.textureFormatFloat,e.FLOAT)}function Y1(e){return e.internalFormatHalfFloat}function YE(e,t,n,a){let[r,s]=Ed(t,n);return Ad(e,r,s,Y1(a),a.textureFormatFloat,a.textureTypeHalfFloat)}function Z1(e){return e.downloadTextureFormat}function ZE(e,t,n,a){let[r,s]=Ed(t,n);return Ad(e,r,s,Z1(a),e.RGBA,e.UNSIGNED_BYTE)}function J1(e){return e.internalFormatPackedFloat}function JE(e,t,n,a){let[r,s]=bp(t,n);return Ad(e,r,s,J1(a),e.RGBA,e.FLOAT)}function Q1(e){return e.internalFormatPackedHalfFloat}function QE(e,t,n,a){let[r,s]=bp(t,n);return Ad(e,r,s,Q1(a),e.RGBA,a.textureTypeHalfFloat)}function eA(e,t,n){return de(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),rv(e,t,"clipSpacePos",n,3,20,0)&&rv(e,t,"uv",n,2,20,12)}function tA(e,t,n,a,r,s){de(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),G().getNumber("WEBGL_VERSION")===2?de(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,n,a,e.RGBA,o,i)):de(e,()=>e.texImage2D(e.TEXTURE_2D,0,l,n,a,0,e.RGBA,o,i)),de(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function nA(e,t,n){de(e,()=>e.bindTexture(e.TEXTURE_2D,t)),n.data instanceof Uint8Array?G().getNumber("WEBGL_VERSION")===2?de(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,n.width,n.height,e.RGBA,e.UNSIGNED_BYTE,n.data)):de(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,n.width,n.height,0,e.RGBA,e.UNSIGNED_BYTE,n.data)):G().getNumber("WEBGL_VERSION")===2?de(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,e.RGBA,e.UNSIGNED_BYTE,n)):de(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,n)),de(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function aA(e,t,n,a){let r=e.createBuffer();de(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,r));let s=4*4*t*n;return de(e,()=>e.bufferData(e.PIXEL_PACK_BUFFER,s,e.STREAM_READ)),de(e,()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,0)),de(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,null)),r}function rA(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 sA(e,t,n,a){let[r,s]=Ed(t,n),i=4,o=new Uint8Array(qZ(t*n,i));return de(e,()=>e.readPixels(0,0,r,s,a.downloadTextureFormat,e.UNSIGNED_BYTE,o)),new Float32Array(o.buffer)}function iA(e,t,n,a,r,s,i,o){let l=e,u=new Float32Array(jZ(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 oA(e,t,n){let a=new Float32Array(t*n*4);return de(e,()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,a)),a}var Yh=class{constructor(e){this.outputTexture=null,this.program=null,this.disposed=!1,this.itemsToPoll=[];let t=G().getNumber("WEBGL_VERSION");if(e!=null?(this.gl=e,fE(t,e)):this.gl=Ka(t),e=this.gl,G().getNumber("WEBGL_VERSION")===2){let r=e;this.createVertexArray=()=>de(r,()=>r.createVertexArray()),this.bindVertexArray=s=>de(r,()=>r.bindVertexArray(s)),this.deleteVertexArray=s=>de(r,()=>r.deleteVertexArray(s)),this.getVertexArray=()=>de(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=()=>de(e,()=>r.createVertexArrayOES()),this.bindVertexArray=s=>de(e,()=>r.bindVertexArrayOES(s)),this.deleteVertexArray=s=>de(e,()=>r.deleteVertexArrayOES(s)),this.getVertexArray=()=>de(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"),G().getNumber("WEBGL_VERSION")===1){let r="OES_texture_float",s="OES_texture_half_float";if(this.textureFloatExtension=sc(this.gl,r),ma(this.gl,s))this.textureHalfFloatExtension=sc(this.gl,s);else if(G().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),ma(this.gl,a))this.colorBufferHalfFloatExtension=sc(this.gl,a);else if(G().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",ma(this.gl,n))this.colorBufferFloatExtension=this.gl.getExtension(n);else if(ma(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=KE(this.gl),this.framebuffer=TE(this.gl),this.textureConfig=G1(this.gl,this.textureHalfFloatExtension)}get debug(){return G().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;de(e,()=>e.finish()),de(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),de(e,()=>e.deleteFramebuffer(this.framebuffer)),de(e,()=>e.bindBuffer(e.ARRAY_BUFFER,null)),de(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null)),de(e,()=>e.deleteBuffer(this.indexBuffer)),this.disposed=!0}createFloat32MatrixTexture(e,t){return this.throwIfDisposed(),XE(this.gl,e,t,this.textureConfig)}createFloat16MatrixTexture(e,t){return this.throwIfDisposed(),YE(this.gl,e,t,this.textureConfig)}createUnsignedBytesMatrixTexture(e,t){return this.throwIfDisposed(),ZE(this.gl,e,t,this.textureConfig)}uploadPixelDataToTexture(e,t){this.throwIfDisposed(),nA(this.gl,e,t)}uploadDenseMatrixToTexture(e,t,n,a){this.throwIfDisposed(),tA(this.gl,e,t,n,a,this.textureConfig)}createFloat16PackedMatrixTexture(e,t){return this.throwIfDisposed(),QE(this.gl,e,t,this.textureConfig)}createPackedMatrixTexture(e,t){return this.throwIfDisposed(),JE(this.gl,e,t,this.textureConfig)}deleteMatrixTexture(e){this.throwIfDisposed(),this.outputTexture===e&&(sv(this.gl,this.framebuffer),this.outputTexture=null),de(this.gl,()=>this.gl.deleteTexture(e))}downloadByteEncodedFloatMatrixFromOutputTexture(e,t,n){return this.downloadMatrixDriver(e,()=>sA(this.gl,t,n,this.textureConfig))}downloadPackedMatrixFromBuffer(e,t,n,a,r,s){return iA(this.gl,e,t,n,a,r,s,this.textureConfig)}downloadFloat32MatrixFromBuffer(e,t){return rA(this.gl,e,t)}createBufferFromTexture(e,t,n){this.bindTextureToFrameBuffer(e);let a=aA(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(G().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 G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(t=this.beginQuery(),this.endQuery(),n=()=>this.isQueryAvailable(t,G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))):n=()=>!0;return{query:t,isFencePassed:n}}downloadMatrixFromPackedTexture(e,t,n){return this.downloadMatrixDriver(e,()=>oA(this.gl,t,n))}createProgram(e){this.throwIfDisposed();let t=this.gl;this.vertexShader==null&&(this.vertexShader=qE(t));let n=vE(t);de(t,()=>t.attachShader(n,this.vertexShader)),de(t,()=>t.attachShader(n,e)),wE(t,n);let a=Object.assign(n,{vao:this.createVertexArray()});return this.debug&&qh(t,a),a}buildVao(e){this.setProgram(e),this.bindVertexArray(e.vao);let t=this.gl;de(t,()=>t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer)),eA(t,e,this.vertexBuffer)}deleteProgram(e){this.throwIfDisposed(),e===this.program&&(this.program=null),e!=null&&(de(this.gl,()=>this.gl.deleteProgram(e)),this.deleteVertexArray(e.vao))}setProgram(e){this.throwIfDisposed(),this.program=e,this.program!=null&&this.debug&&qh(this.gl,this.program),de(this.gl,()=>this.gl.useProgram(e))}getUniformLocation(e,t,n=!0){return this.throwIfDisposed(),n?_E(this.gl,e,t):EE(this.gl,e,t)}getAttributeLocation(e,t){return this.throwIfDisposed(),de(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(),AE(this.gl,e,t,n)}setOutputMatrixTexture(e,t,n){this.setOutputMatrixTextureDriver(e,n,t)}setOutputPackedMatrixTexture(e,t,n){this.throwIfDisposed();let[a,r]=bp(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&&qh(this.gl,this.program),ic(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()}de(e,()=>e.drawElements(e.TRIANGLES,6,e.UNSIGNED_SHORT,0))}blockUntilAllProgramsCompleted(){this.throwIfDisposed(),de(this.gl,()=>this.gl.finish())}getQueryTimerExtension(){return this.disjointQueryTimerExtension==null&&(this.disjointQueryTimerExtension=sc(this.gl,G().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(G().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(G().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,G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))),this.getQueryTime(e,G().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=ZJ(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 G().platform&&(n=G().platform.setTimeoutCustom.bind(G().platform)),v.repeatedTry(()=>(this.pollItems(),this.itemsToPoll.length===0),()=>0,null,n)}bindTextureToFrameBuffer(e){this.throwIfDisposed(),jh(this.gl,e,this.framebuffer),this.debug&&ic(this.gl)}unbindTextureToFrameBuffer(){this.outputTexture!=null?(jh(this.gl,this.outputTexture,this.framebuffer),this.debug&&ic(this.gl)):sv(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;jh(a,e,this.framebuffer),this.debug&&ic(a),this.outputTexture=e,de(a,()=>a.viewport(0,0,t,n)),de(a,()=>a.scissor(0,0,t,n))}setOutputMatrixWriteRegionDriver(e,t,n,a){this.throwIfDisposed(),de(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 ZJ(e){let t=0;for(;t`${e}.${n}`)}function Sn(e,t){return t===1?[e]:cA(e,t)}function V9(e,t){if(e===1)return"rc";let n="";for(let a=0;ae.bindTexture(o,i)),de(e,()=>e.texParameteri(o,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE)),de(e,()=>e.texParameteri(o,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),de(e,()=>e.texParameteri(o,e.TEXTURE_MIN_FILTER,e.NEAREST)),de(e,()=>e.texParameteri(o,e.TEXTURE_MAG_FILTER,e.NEAREST)),G().getNumber("WEBGL_VERSION")===1?de(e,()=>e.texImage2D(o,0,a,t,n,0,r,s,null)):de(e,()=>e.texStorage2D(o,1,a,t,n)),de(e,()=>e.bindTexture(e.TEXTURE_2D,null)),{texture:i,texShape:[n,t]}}function ak(e){return e.internalFormatFloat}function sA(e,t,n,a){let[r,s]=Md(t,n);return Pd(e,r,s,ak(a),a.textureFormatFloat,e.FLOAT)}function rk(e){return e.internalFormatHalfFloat}function iA(e,t,n,a){let[r,s]=Md(t,n);return Pd(e,r,s,rk(a),a.textureFormatFloat,a.textureTypeHalfFloat)}function sk(e){return e.downloadTextureFormat}function oA(e,t,n,a){let[r,s]=Md(t,n);return Pd(e,r,s,sk(a),e.RGBA,e.UNSIGNED_BYTE)}function ik(e){return e.internalFormatPackedFloat}function lA(e,t,n,a){let[r,s]=xp(t,n);return Pd(e,r,s,ik(a),e.RGBA,e.FLOAT)}function ok(e){return e.internalFormatPackedHalfFloat}function uA(e,t,n,a){let[r,s]=xp(t,n);return Pd(e,r,s,ok(a),e.RGBA,a.textureTypeHalfFloat)}function pA(e,t,n){return de(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),dv(e,t,"clipSpacePos",n,3,20,0)&&dv(e,t,"uv",n,2,20,12)}function cA(e,t,n,a,r,s){de(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),G().getNumber("WEBGL_VERSION")===2?de(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,n,a,e.RGBA,o,i)):de(e,()=>e.texImage2D(e.TEXTURE_2D,0,l,n,a,0,e.RGBA,o,i)),de(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function dA(e,t,n){de(e,()=>e.bindTexture(e.TEXTURE_2D,t)),n.data instanceof Uint8Array?G().getNumber("WEBGL_VERSION")===2?de(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,n.width,n.height,e.RGBA,e.UNSIGNED_BYTE,n.data)):de(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,n.width,n.height,0,e.RGBA,e.UNSIGNED_BYTE,n.data)):G().getNumber("WEBGL_VERSION")===2?de(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,e.RGBA,e.UNSIGNED_BYTE,n)):de(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,n)),de(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function hA(e,t,n,a){let r=e.createBuffer();de(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,r));let s=4*4*t*n;return de(e,()=>e.bufferData(e.PIXEL_PACK_BUFFER,s,e.STREAM_READ)),de(e,()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,0)),de(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,null)),r}function mA(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 fA(e,t,n,a){let[r,s]=Md(t,n),i=4,o=new Uint8Array(uJ(t*n,i));return de(e,()=>e.readPixels(0,0,r,s,a.downloadTextureFormat,e.UNSIGNED_BYTE,o)),new Float32Array(o.buffer)}function gA(e,t,n,a,r,s,i,o){let l=e,u=new Float32Array(pJ(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 bA(e,t,n){let a=new Float32Array(t*n*4);return de(e,()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,a)),a}var tm=class{constructor(e){this.outputTexture=null,this.program=null,this.disposed=!1,this.itemsToPoll=[];let t=G().getNumber("WEBGL_VERSION");if(e!=null?(this.gl=e,NE(t,e)):this.gl=Ka(t),e=this.gl,G().getNumber("WEBGL_VERSION")===2){let r=e;this.createVertexArray=()=>de(r,()=>r.createVertexArray()),this.bindVertexArray=s=>de(r,()=>r.bindVertexArray(s)),this.deleteVertexArray=s=>de(r,()=>r.deleteVertexArray(s)),this.getVertexArray=()=>de(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=()=>de(e,()=>r.createVertexArrayOES()),this.bindVertexArray=s=>de(e,()=>r.bindVertexArrayOES(s)),this.deleteVertexArray=s=>de(e,()=>r.deleteVertexArrayOES(s)),this.getVertexArray=()=>de(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"),G().getNumber("WEBGL_VERSION")===1){let r="OES_texture_float",s="OES_texture_half_float";if(this.textureFloatExtension=lc(this.gl,r),ma(this.gl,s))this.textureHalfFloatExtension=lc(this.gl,s);else if(G().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),ma(this.gl,a))this.colorBufferHalfFloatExtension=lc(this.gl,a);else if(G().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",ma(this.gl,n))this.colorBufferFloatExtension=this.gl.getExtension(n);else if(ma(this.gl,a))this.colorBufferHalfFloatExtension=this.gl.getExtension(a);else throw new Error("GL context does not support color renderable floats");this.vertexBuffer=aA(this.gl),this.indexBuffer=rA(this.gl),this.framebuffer=PE(this.gl),this.textureConfig=J1(this.gl,this.textureHalfFloatExtension)}get debug(){return G().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;de(e,()=>e.finish()),de(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),de(e,()=>e.deleteFramebuffer(this.framebuffer)),de(e,()=>e.bindBuffer(e.ARRAY_BUFFER,null)),de(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null)),de(e,()=>e.deleteBuffer(this.indexBuffer)),this.disposed=!0}createFloat32MatrixTexture(e,t){return this.throwIfDisposed(),sA(this.gl,e,t,this.textureConfig)}createFloat16MatrixTexture(e,t){return this.throwIfDisposed(),iA(this.gl,e,t,this.textureConfig)}createUnsignedBytesMatrixTexture(e,t){return this.throwIfDisposed(),oA(this.gl,e,t,this.textureConfig)}uploadPixelDataToTexture(e,t){this.throwIfDisposed(),dA(this.gl,e,t)}uploadDenseMatrixToTexture(e,t,n,a){this.throwIfDisposed(),cA(this.gl,e,t,n,a,this.textureConfig)}createFloat16PackedMatrixTexture(e,t){return this.throwIfDisposed(),uA(this.gl,e,t,this.textureConfig)}createPackedMatrixTexture(e,t){return this.throwIfDisposed(),lA(this.gl,e,t,this.textureConfig)}deleteMatrixTexture(e){this.throwIfDisposed(),this.outputTexture===e&&(hv(this.gl,this.framebuffer),this.outputTexture=null),de(this.gl,()=>this.gl.deleteTexture(e))}downloadByteEncodedFloatMatrixFromOutputTexture(e,t,n){return this.downloadMatrixDriver(e,()=>fA(this.gl,t,n,this.textureConfig))}downloadPackedMatrixFromBuffer(e,t,n,a,r,s){return gA(this.gl,e,t,n,a,r,s,this.textureConfig)}downloadFloat32MatrixFromBuffer(e,t){return mA(this.gl,e,t)}createBufferFromTexture(e,t,n){this.bindTextureToFrameBuffer(e);let a=hA(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(G().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 G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(t=this.beginQuery(),this.endQuery(),n=()=>this.isQueryAvailable(t,G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))):n=()=>!0;return{query:t,isFencePassed:n}}downloadMatrixFromPackedTexture(e,t,n){return this.downloadMatrixDriver(e,()=>bA(this.gl,t,n))}createProgram(e){this.throwIfDisposed();let t=this.gl;this.vertexShader==null&&(this.vertexShader=nA(t));let n=AE(t);de(t,()=>t.attachShader(n,this.vertexShader)),de(t,()=>t.attachShader(n,e)),FE(t,n);let a=Object.assign(n,{vao:this.createVertexArray()});return this.debug&&Zh(t,a),a}buildVao(e){this.setProgram(e),this.bindVertexArray(e.vao);let t=this.gl;de(t,()=>t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer)),pA(t,e,this.vertexBuffer)}deleteProgram(e){this.throwIfDisposed(),e===this.program&&(this.program=null),e!=null&&(de(this.gl,()=>this.gl.deleteProgram(e)),this.deleteVertexArray(e.vao))}setProgram(e){this.throwIfDisposed(),this.program=e,this.program!=null&&this.debug&&Zh(this.gl,this.program),de(this.gl,()=>this.gl.useProgram(e))}getUniformLocation(e,t,n=!0){return this.throwIfDisposed(),n?LE(this.gl,e,t):zE(this.gl,e,t)}getAttributeLocation(e,t){return this.throwIfDisposed(),de(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(),WE(this.gl,e,t,n)}setOutputMatrixTexture(e,t,n){this.setOutputMatrixTextureDriver(e,n,t)}setOutputPackedMatrixTexture(e,t,n){this.throwIfDisposed();let[a,r]=xp(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&&Zh(this.gl,this.program),uc(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()}de(e,()=>e.drawElements(e.TRIANGLES,6,e.UNSIGNED_SHORT,0))}blockUntilAllProgramsCompleted(){this.throwIfDisposed(),de(this.gl,()=>this.gl.finish())}getQueryTimerExtension(){return this.disjointQueryTimerExtension==null&&(this.disjointQueryTimerExtension=lc(this.gl,G().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(G().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(G().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 w.repeatedTry(()=>this.disposed||this.isQueryAvailable(e,G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))),this.getQueryTime(e,G().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=m9(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 G().platform&&(n=G().platform.setTimeoutCustom.bind(G().platform)),w.repeatedTry(()=>(this.pollItems(),this.itemsToPoll.length===0),()=>0,null,n)}bindTextureToFrameBuffer(e){this.throwIfDisposed(),Jh(this.gl,e,this.framebuffer),this.debug&&uc(this.gl)}unbindTextureToFrameBuffer(){this.outputTexture!=null?(Jh(this.gl,this.outputTexture,this.framebuffer),this.debug&&uc(this.gl)):hv(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;Jh(a,e,this.framebuffer),this.debug&&uc(a),this.outputTexture=e,de(a,()=>a.viewport(0,0,t,n)),de(a,()=>a.scissor(0,0,t,n))}setOutputMatrixWriteRegionDriver(e,t,n,a){this.throwIfDisposed(),de(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 m9(e){let t=0;for(;t`${e}.${n}`)}function Sn(e,t){return t===1?[e]:wA(e,t)}function iQ(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]})`}},dA=class{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"inputShape",type:"ivec3"}],this.outputShape=e,this.enableShapeUniforms=vn(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]})`}},kA=class{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"inputShape",type:"ivec3"}],this.outputShape=e,this.enableShapeUniforms=vn(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); @@ -1158,8 +1158,8 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, getChannel(getA(inputRC.x, inputRC.y, inputRC.z), inputRCInnerDims); ${a>0?"}":""} `}this.userCode=` - ${G9(t,this.enableShapeUniforms)} - ${this.enableShapeUniforms?j1():q1(e)} + ${lQ(t,this.enableShapeUniforms)} + ${this.enableShapeUniforms?tk():ek(e)} void main() { ivec3 rc = getOutputCoords(); @@ -1174,12 +1174,12 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(result); } - `}};function G9(e,t){return` + `}};function lQ(e,t){return` ivec3 inputCoordsFromReshapedOutCoords(int index) { - ${t?sJ(["r","c","d"],"inputShape"):jo(["r","c","d"],e)} + ${t?kJ(["r","c","d"],"inputShape"):Jo(["r","c","d"],e)} return ivec3(r, c, d); } - `}var H9=class{constructor(e){this.gpgpu=e,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0,this.freeTextures={},this.usedTextures={},this.logEnabled=!1}acquireTexture(e,t,n){let a=lS(t,n),r=uS(e,a,n);r in this.freeTextures||(this.freeTextures[r]=[]),r in this.usedTextures||(this.usedTextures[r]=[]);let s=oS(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].pop();return this.usedTextures[r].push(o),o}let i;return a===hn.PACKED_2X2_FLOAT32?i=this.gpgpu.createPackedMatrixTexture(e[0],e[1]):a===hn.PACKED_2X2_FLOAT16?i=this.gpgpu.createFloat16PackedMatrixTexture(e[0],e[1]):a===hn.UNPACKED_FLOAT32?i=this.gpgpu.createFloat32MatrixTexture(e[0],e[1]):a===hn.UNPACKED_FLOAT16?i=this.gpgpu.createFloat16MatrixTexture(e[0],e[1]):a===hn.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=lS(n,a),s=uS(t,r,a);s in this.freeTextures||(this.freeTextures[s]=[]);let i=oS(t,r,this.gpgpu.gl,this.gpgpu.textureConfig,a),o=G().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&&l.indexOf(e);if(u==null||u<0)throw new Error("Cannot release a texture that was never provided by this texture manager");l[u]=l[l.length-1],l.pop(),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 q9(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 oS(e,t,n,a,r){let s=j9(t,a),i;if(r){let[l,u]=bp(e[0],e[1]);i=l*u}else{let[l,u]=Ed(e[0],e[1]);i=l*u}let o=q9(n,s);return i*o}function j9(e,t){switch(e){case hn.PACKED_2X2_FLOAT32:return J1(t);case hn.PACKED_2X2_FLOAT16:return Q1(t);case hn.UNPACKED_FLOAT32:return X1(t);case hn.UNPACKED_FLOAT16:return Y1(t);case hn.PACKED_4X1_UNSIGNED_BYTE:return Z1(t);default:throw new Error(`Unknown physical texture type ${e}`)}}function K9(e){return G().getBool("WEBGL_RENDER_FLOAT32_ENABLED")?e?hn.PACKED_2X2_FLOAT32:hn.UNPACKED_FLOAT32:e?hn.PACKED_2X2_FLOAT16:hn.UNPACKED_FLOAT16}function lS(e,t){if(e===ha.UPLOAD)return hn.PACKED_2X2_FLOAT32;if(e===ha.RENDER||e==null)return K9(t);if(e===ha.DOWNLOAD||e===ha.PIXELS)return hn.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknown logical texture type ${e}`)}function uS(e,t,n){return`${e[0]}_${e[1]}_${t}_${n}`}var ir=class{constructor(e,t){this.variableNames=["A"],this.outputShape=e,this.enableShapeUniforms=vn(this.outputShape.length),this.userCode=` + `}var uQ=class{constructor(e){this.gpgpu=e,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0,this.freeTextures={},this.usedTextures={},this.logEnabled=!1}acquireTexture(e,t,n){let a=bS(t,n),r=yS(e,a,n);r in this.freeTextures||(this.freeTextures[r]=[]),r in this.usedTextures||(this.usedTextures[r]=[]);let s=gS(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].pop();return this.usedTextures[r].push(o),o}let i;return a===hn.PACKED_2X2_FLOAT32?i=this.gpgpu.createPackedMatrixTexture(e[0],e[1]):a===hn.PACKED_2X2_FLOAT16?i=this.gpgpu.createFloat16PackedMatrixTexture(e[0],e[1]):a===hn.UNPACKED_FLOAT32?i=this.gpgpu.createFloat32MatrixTexture(e[0],e[1]):a===hn.UNPACKED_FLOAT16?i=this.gpgpu.createFloat16MatrixTexture(e[0],e[1]):a===hn.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=bS(n,a),s=yS(t,r,a);s in this.freeTextures||(this.freeTextures[s]=[]);let i=gS(t,r,this.gpgpu.gl,this.gpgpu.textureConfig,a),o=G().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&&l.indexOf(e);if(u==null||u<0)throw new Error("Cannot release a texture that was never provided by this texture manager");l[u]=l[l.length-1],l.pop(),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 pQ(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 gS(e,t,n,a,r){let s=cQ(t,a),i;if(r){let[l,u]=xp(e[0],e[1]);i=l*u}else{let[l,u]=Md(e[0],e[1]);i=l*u}let o=pQ(n,s);return i*o}function cQ(e,t){switch(e){case hn.PACKED_2X2_FLOAT32:return ik(t);case hn.PACKED_2X2_FLOAT16:return ok(t);case hn.UNPACKED_FLOAT32:return ak(t);case hn.UNPACKED_FLOAT16:return rk(t);case hn.PACKED_4X1_UNSIGNED_BYTE:return sk(t);default:throw new Error(`Unknown physical texture type ${e}`)}}function dQ(e){return G().getBool("WEBGL_RENDER_FLOAT32_ENABLED")?e?hn.PACKED_2X2_FLOAT32:hn.UNPACKED_FLOAT32:e?hn.PACKED_2X2_FLOAT16:hn.UNPACKED_FLOAT16}function bS(e,t){if(e===ha.UPLOAD)return hn.PACKED_2X2_FLOAT32;if(e===ha.RENDER||e==null)return dQ(t);if(e===ha.DOWNLOAD||e===ha.PIXELS)return hn.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknown logical texture type ${e}`)}function yS(e,t,n){return`${e[0]}_${e[1]}_${t}_${n}`}var ir=class{constructor(e,t){this.variableNames=["A"],this.outputShape=e,this.enableShapeUniforms=vn(this.outputShape.length),this.userCode=` float unaryOperation(float x) { ${t} } @@ -1190,11 +1190,11 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(y); } - `}},Oa="if (isnan(x)) return x;",X9="return x;",pS="return abs(x);",Y9="return (x >= 0.0) ? x : (exp(x) - 1.0);",Z9=Oa+` + `}},Oa="if (isnan(x)) return x;",hQ="return x;",xS="return abs(x);",mQ="return (x >= 0.0) ? x : (exp(x) - 1.0);",fQ=Oa+` return (x < 0.0) ? 0.0 : x; -`,J9=Oa+` +`,gQ=Oa+` return (x < 0.0) ? 0.0 : min(6.0, x); -`,ts="return x;",Q9="return 1.0 / (1.0 + exp(-1.0 * x));",eQ="return x;",tQ=` +`,ns="return x;",bQ="return 1.0 / (1.0 + exp(-1.0 * x));",yQ="return x;",xQ=` vec4 result; result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0); @@ -1203,7 +1203,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0); return result; -`,nQ=` +`,vQ=` vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -1213,7 +1213,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.a = isNaN.a ? x.a : result.a; return result; -`,aQ=` +`,wQ=` vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -1223,7 +1223,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.a = isNaN.a ? x.a : result.a; return result; -`,rQ="return 1.0 / (1.0 + exp(-1.0 * x));",is=class{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.enableShapeUniforms=vn(this.outputShape.length),this.userCode=` +`,kQ="return 1.0 / (1.0 + exp(-1.0 * x));",os=class{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.enableShapeUniforms=vn(this.outputShape.length),this.userCode=` vec4 unaryOperation(vec4 x) { ${t} } @@ -1234,17 +1234,17 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(y); } - `}},sQ=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=e,this.enableShapeUniforms=vn(this.outputShape.length);let t=e.length,n=Sn("rc",t),a=dt(t),r=V9(t,n),s=n.slice(-2),i=t<=1?"rc":`vec2(${s.join(",")})`;this.userCode=` + `}},IQ=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=e,this.enableShapeUniforms=vn(this.outputShape.length);let t=e.length,n=Sn("rc",t),a=dt(t),r=iQ(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})); } - `}},iQ=fr.whereImpl,oQ=1e-7,lQ=1e-4,gx={};function uQ(e){return e in gx||(gx[e]={}),gx[e]}var pQ=G().getNumber("CPU_HANDOFF_SIZE_THRESHOLD"),cQ=600;function dQ(){return G().global.screen==null?1024:G().global.screen.height*G().global.screen.width*window.devicePixelRatio*cQ/1024/1024}var Jf=class extends $c{nextDataId(){return Jf.nextDataId++}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,!G().getBool("HAS_WEBGL"))throw new Error("WebGL is not supported on this device");let t;if(e!=null){if(e instanceof Yh)t=e;else{let n=Ka(G().getNumber("WEBGL_VERSION"),e);t=new Yh(n)}this.binaryCache={},this.gpgpuCreatedLocally=!1}else{let n=Ka(G().getNumber("WEBGL_VERSION"));t=new Yh(n),this.binaryCache=uQ(G().getNumber("WEBGL_VERSION")),this.gpgpuCreatedLocally=!0}this.gpgpu=t,this.canvas=this.gpgpu.gl.canvas,this.textureManager=new H9(this.gpgpu),this.numMBBeforeWarning=dQ(),this.texData=new Em(this,Aa())}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=oc(t),u=new iS(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((G().getBool("WEBGL_CHECK_NUMERICAL_PROBLEMS")||G().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:ha.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(G().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:ha.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 is(i,ts):d=new ir(i,ts);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 is(a,ts):h=new ir(a,ts);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(G().getBool("DEBUG")&&!G().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&G().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"&&G().get("WEBGL_BUFFER_SUPPORTED")){u=this.decode(e);let h=this.texData.get(u.dataId);l=this.gpgpu.createBufferFromTexture(h.texture.texture,...Wh(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;de(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)&&Aa().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 is(r,ts):c=new ir(r,ts);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=Aa().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 ze(e.shape,e.dtype,n)}catch(n){throw new Error("Failed to decode encoded string bytes into utf-8")}return ze(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(G().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 G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.beginQuery():{startMs:v.now(),endMs:null}}endTimer(e){return G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?(this.gpgpu.endQuery(),e):(e.endMs=v.now(),e)}async getQueryTime(e){if(G().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=pQ){return G().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 Aa().makeTensorFromTensorInfo(this.makeTensorInfo(e,t,n),this)}unpackTensor(e){let t=new sQ(e.shape);return this.runWebGLProgram(t,[e],e.dtype)}packTensor(e){let t=new U9(e.shape),n=!0;return this.runWebGLProgram(t,[e],e.dtype,null,n)}packedReshape(e,t){let n=[vi(e.shape),...wi(e.shape)],a={dtype:e.dtype,shape:n,dataId:e.dataId},r=[vi(t),...wi(t)],s=new dA(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=oc(r),o;a?o=new qJ(i):o=new HJ(i);let l=!0,u=[t!=null?t:Wh(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===Tc.DENSE){let g=s!=null?s:Wh(e.outputShape);o.texShape=g.map(b=>b*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 b=this.texData.get(g.dataId);if(b.texture==null){if(!e.packedInputs&&v.sizeFromShape(g.shape)<=G().getNumber("WEBGL_SIZE_UPLOAD_UNIFORM"))return{shape:g.shape,texData:null,isUniform:!0,uniformValues:b.values};e.packedInputs&&(b.isPacked=!0,b.shape=g.shape)}if(this.uploadToGPU(g.dataId),!!b.isPacked!=!!e.packedInputs)g=b.isPacked?this.unpackTensor(g):this.packTensor(g),l.push(g),b=this.texData.get(g.dataId);else if(b.isPacked&&!Cc(b.shape,g.shape)){let y=g,x=g.shape;g.shape=b.shape,g=this.packedReshape(g,x),l.push(g),b=this.texData.get(g.dataId),y.shape=x}return{shape:g.shape,texData:b,isUniform:!1}});this.uploadToGPU(i.dataId);let p={shape:i.shape,texData:o,isUniform:!1},d=GJ(e,u,p),c=this.getAndSaveBinary(d,()=>VJ(this.gpgpu,e,u,p)),h=this.activeTimers!=null,m;h&&(m=this.startTimer()),G().get("ENGINE_COMPILE_ONLY")||UJ(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=G().get("WEBGL_FLUSH_THRESHOLD");if(f>0){let g=v.now();g-this.lastGlFlushTime>f&&(this.gpgpu.gl.flush(),this.lastGlFlushTime=g)}if(!G().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||(G().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(!G().get("WEBGL_RENDER_FLOAT32_ENABLED")){let e=G().getBool("DEBUG");G().set("DEBUG",!1);let t=this.abs(ve(1e-8)).dataSync()[0];if(G().set("DEBUG",e),t>0)return 32}return 16})),this.floatPrecisionValue}epsilon(){return this.floatPrecision()===32?oQ:lQ}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=DE(n,o),t.texShape=p),r!=null){let d=oc(n),c,h=p[1],m=p[0],f=r instanceof Uint8Array||r instanceof Uint8ClampedArray;(o||!f)&&([h,m]=bp(p[0],p[1])),o?c=new YJ(d,f):c=new iS(d,f);let g=f?[m,h]:p,b=this.makeTensorInfo(g,a),y=this.texData.get(b.dataId);f?y.usage=ha.PIXELS:y.usage=ha.UPLOAD,y.texShape=g,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(b.dataId),h,m,r);let x=[[m,h]],w=!0,I=this.runWebGLProgram(c,[b],a,x,w),T=this.texData.get(I.dataId);t.texShape=T.texShape,t.isPacked=T.isPacked,t.usage=T.usage,G().get("ENGINE_COMPILE_ONLY")?this.disposeData(I.dataId):(t.texture=T.texture,t.values=null,this.texData.delete(I.dataId)),this.disposeIntermediateTensorInfo(b),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=hQ(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 Hw(),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?(H1(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.values(this.binaryCache)){this.gpgpu.buildVao(e.webGLProgram);let{variablesLocations:t,customUniformLocations:n,infLoc:a,nanLoc:r,outShapeLocation:s,outShapeStridesLocation:i,outTexShapeLocation:o}=GE(this.gpgpu,e.program,e.webGLProgram);e.variablesLocations=t,e.customUniformLocations=n,e.infLoc=a,e.nanLoc=r,e.outShapeLocation=s,e.outShapeStridesLocation=i,e.outTexShapeLocation=o}}createTensorFromGPUData(e,t,n){e.channels=e.channels||"RGBA";let{texture:a,height:r,width:s,channels:i}=e,o=Aa().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 Aa().makeTensorFromDataId(l,t,n,o)}};Jf.nextDataId=0;function hQ(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 Jf,2);var fQ={forceHalfFloat:hA},tk=` + `}},SQ=gr.whereImpl,NQ=1e-7,TQ=1e-4,Sx={};function CQ(e){return e in Sx||(Sx[e]={}),Sx[e]}var _Q=G().getNumber("CPU_HANDOFF_SIZE_THRESHOLD"),EQ=600;function AQ(){return G().global.screen==null?1024:G().global.screen.height*G().global.screen.width*window.devicePixelRatio*EQ/1024/1024}var Qf=class extends Mc{nextDataId(){return Qf.nextDataId++}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,!G().getBool("HAS_WEBGL"))throw new Error("WebGL is not supported on this device");let t;if(e!=null){if(e instanceof tm)t=e;else{let n=Ka(G().getNumber("WEBGL_VERSION"),e);t=new tm(n)}this.binaryCache={},this.gpgpuCreatedLocally=!1}else{let n=Ka(G().getNumber("WEBGL_VERSION"));t=new tm(n),this.binaryCache=CQ(G().getNumber("WEBGL_VERSION")),this.gpgpuCreatedLocally=!0}this.gpgpu=t,this.canvas=this.gpgpu.gl.canvas,this.textureManager=new uQ(this.gpgpu),this.numMBBeforeWarning=AQ(),this.texData=new Rm(this,Aa())}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=pc(t),u=new fS(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((G().getBool("WEBGL_CHECK_NUMERICAL_PROBLEMS")||G().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:ha.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(G().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:ha.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 os(i,ns):d=new ir(i,ns);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=w.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+=w.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 os(a,ns):h=new ir(a,ns);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(G().getBool("DEBUG")&&!G().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&G().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"&&G().get("WEBGL_BUFFER_SUPPORTED")){u=this.decode(e);let h=this.texData.get(u.dataId);l=this.gpgpu.createBufferFromTexture(h.texture.texture,...Hh(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=w.sizeFromShape(a);p=this.gpgpu.downloadFloat32MatrixFromBuffer(l,h)}if(u!=null&&this.disposeIntermediateTensorInfo(u),l!=null){let h=this.gpgpu.gl;de(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)&&Aa().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 os(r,ns):c=new ir(r,ns);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=Aa().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=>w.decodeString(a));return ze(e.shape,e.dtype,n)}catch(n){throw new Error("Failed to decode encoded string bytes into utf-8")}return ze(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=w.flatten(this.activeTimers.map(o=>o.query)).filter(o=>o!=null),s=w.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(G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0){let o=await Promise.all(r);i.kernelMs=w.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 G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.beginQuery():{startMs:w.now(),endMs:null}}endTimer(e){return G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?(this.gpgpu.endQuery(),e):(e.endMs=w.now(),e)}async getQueryTime(e){if(G().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=_Q){return G().getBool("WEBGL_CPU_FORWARD")&&e.every(n=>this.texData.get(n.dataId).texture==null&&w.sizeFromShape(n.shape)0&&w.isString(n[0])){let r=n.map(s=>w.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 Aa().makeTensorFromTensorInfo(this.makeTensorInfo(e,t,n),this)}unpackTensor(e){let t=new IQ(e.shape);return this.runWebGLProgram(t,[e],e.dtype)}packTensor(e){let t=new oQ(e.shape),n=!0;return this.runWebGLProgram(t,[e],e.dtype,null,n)}packedReshape(e,t){let n=[wi(e.shape),...ki(e.shape)],a={dtype:e.dtype,shape:n,dataId:e.dataId},r=[wi(t),...ki(t)],s=new kA(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=w.sizeFromShape(r),c=t[0]*t[1]*4;w.assert(d<=c,()=>"customTexShape is too small. Row * Column * 4 should be equal or larger than the size of the tensor data.")}let i=pc(r),o;a?o=new u9(i):o=new l9(i);let l=!0,u=[t!=null?t:Hh(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===Ec.DENSE){let g=s!=null?s:Hh(e.outputShape);o.texShape=g.map(b=>b*2)}if(e.outTexUsage!=null&&(o.usage=e.outTexUsage),w.sizeFromShape(i.shape)===0)return o.values=w.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 b=this.texData.get(g.dataId);if(b.texture==null){if(!e.packedInputs&&w.sizeFromShape(g.shape)<=G().getNumber("WEBGL_SIZE_UPLOAD_UNIFORM"))return{shape:g.shape,texData:null,isUniform:!0,uniformValues:b.values};e.packedInputs&&(b.isPacked=!0,b.shape=g.shape)}if(this.uploadToGPU(g.dataId),!!b.isPacked!=!!e.packedInputs)g=b.isPacked?this.unpackTensor(g):this.packTensor(g),l.push(g),b=this.texData.get(g.dataId);else if(b.isPacked&&!Ac(b.shape,g.shape)){let y=g,x=g.shape;g.shape=b.shape,g=this.packedReshape(g,x),l.push(g),b=this.texData.get(g.dataId),y.shape=x}return{shape:g.shape,texData:b,isUniform:!1}});this.uploadToGPU(i.dataId);let p={shape:i.shape,texData:o,isUniform:!1},d=o9(e,u,p),c=this.getAndSaveBinary(d,()=>s9(this.gpgpu,e,u,p)),h=this.activeTimers!=null,m;h&&(m=this.startTimer()),G().get("ENGINE_COMPILE_ONLY")||i9(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=G().get("WEBGL_FLUSH_THRESHOLD");if(f>0){let g=w.now();g-this.lastGlFlushTime>f&&(this.gpgpu.gl.flush(),this.lastGlFlushTime=g)}if(!G().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||(G().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(!G().get("WEBGL_RENDER_FLOAT32_ENABLED")){let e=G().getBool("DEBUG");G().set("DEBUG",!1);let t=this.abs(ve(1e-8)).dataSync()[0];if(G().set("DEBUG",e),t>0)return 32}return 16})),this.floatPrecisionValue}epsilon(){return this.floatPrecision()===32?NQ:TQ}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=w.now());let p=t.texShape;if(p==null&&(p=UE(n,o),t.texShape=p),r!=null){let d=pc(n),c,h=p[1],m=p[0],f=r instanceof Uint8Array||r instanceof Uint8ClampedArray;(o||!f)&&([h,m]=xp(p[0],p[1])),o?c=new h9(d,f):c=new fS(d,f);let g=f?[m,h]:p,b=this.makeTensorInfo(g,a),y=this.texData.get(b.dataId);f?y.usage=ha.PIXELS:y.usage=ha.UPLOAD,y.texShape=g,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(b.dataId),h,m,r);let x=[[m,h]],v=!0,I=this.runWebGLProgram(c,[b],a,x,v),T=this.texData.get(I.dataId);t.texShape=T.texShape,t.isPacked=T.isPacked,t.usage=T.usage,G().get("ENGINE_COMPILE_ONLY")?this.disposeData(I.dataId):(t.texture=T.texture,t.values=null,this.texData.delete(I.dataId)),this.disposeIntermediateTensorInfo(b),l&&(this.uploadWaitMs+=w.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=FQ(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]*w.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 Qw(),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?(Q1(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.values(this.binaryCache)){this.gpgpu.buildVao(e.webGLProgram);let{variablesLocations:t,customUniformLocations:n,infLoc:a,nanLoc:r,outShapeLocation:s,outShapeStridesLocation:i,outTexShapeLocation:o}=eA(this.gpgpu,e.program,e.webGLProgram);e.variablesLocations=t,e.customUniformLocations=n,e.infLoc=a,e.nanLoc=r,e.outShapeLocation=s,e.outShapeStridesLocation=i,e.outTexShapeLocation=o}}createTensorFromGPUData(e,t,n){e.channels=e.channels||"RGBA";let{texture:a,height:r,width:s,channels:i}=e,o=Aa().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 Aa().makeTensorFromDataId(l,t,n,o)}};Qf.nextDataId=0;function FQ(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 Qf,2);var DQ={forceHalfFloat:IA},uk=` if (isnan(a)) return a; if (isnan(b)) return b; -`,nu=class{constructor(e,t,n){this.variableNames=["A","B"],this.outputShape=N.assertAndGetBroadcastShape(t,n),this.enableShapeUniforms=vn(this.outputShape.length),this.userCode=` +`,Ii=class{constructor(e,t,n){this.variableNames=["A","B"],this.outputShape=N.assertAndGetBroadcastShape(t,n),this.enableShapeUniforms=vn(this.outputShape.length),this.userCode=` float binaryOperation(float a, float b) { ${e} } @@ -1254,12 +1254,12 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, float b = getBAtOutCoords(); setOutput(binaryOperation(a, b)); } - `}},Xo=` + `}},el=` 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; -`,Fd=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=vn(r);let s="";if(a)if(r===0||v.sizeFromShape(this.outputShape)===1)s=` +`,Np=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=vn(r);let s="";if(a)if(r===0||w.sizeFromShape(this.outputShape)===1)s=` result.y = 0.; result.z = 0.; result.w = 0.; @@ -1303,13 +1303,13 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(result); } - `}};function ra(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 gQ={kernelName:Ji,backendName:"webgl",kernelFunc:ra};function Rs(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=ra({inputs:{x:a},backend:n}),l=ra({inputs:{x:r},backend:n});return i.complexTensorInfos={real:o,imag:l},s}var bQ={kernelName:Rm,backendName:"webgl",kernelFunc:Rs},mA="return (a < 0.) ? b * a : a;",fA=` + `}};function ra(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 RQ={kernelName:to,backendName:"webgl",kernelFunc:ra};function Ms(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=ra({inputs:{x:a},backend:n}),l=ra({inputs:{x:r},backend:n});return i.complexTensorInfos={real:o,imag:l},s}var MQ={kernelName:Om,backendName:"webgl",kernelFunc:Ms},SA="return (a < 0.) ? b * a : a;",NA=` vec4 aLessThanZero = vec4(lessThan(a, vec4(0.))); return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a); -`;function yQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{alpha:s}=a,i=n.makeTensorInfo([],"float32",v.createScalarValue(s,"float32")),o=G().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Fd(fA,r.shape,i.shape):new nu(mA,r.shape,i.shape),l=n.runWebGLProgram(o,[r,i],"float32");return n.disposeIntermediateTensorInfo(i),l}var xQ={kernelName:no,backendName:"webgl",kernelFunc:yQ},gA="return (a < 0.) ? b * a : a;",bA=` +`;function PQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{alpha:s}=a,i=n.makeTensorInfo([],"float32",w.createScalarValue(s,"float32")),o=G().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Np(NA,r.shape,i.shape):new Ii(SA,r.shape,i.shape),l=n.runWebGLProgram(o,[r,i],"float32");return n.disposeIntermediateTensorInfo(i),l}var OQ={kernelName:so,backendName:"webgl",kernelFunc:PQ},TA="return (a < 0.) ? b * a : a;",CA=` vec4 aLessThanZero = vec4(lessThan(a, vec4(0.))); return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a); -`;function vQ(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t,s=G().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Fd(bA,a.shape,r.shape):new nu(gA,a.shape,r.shape);return n.runWebGLProgram(s,[a,r],"float32")}var wQ={kernelName:yo,backendName:"webgl",kernelFunc:vQ},Ip="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=G().getBool("WEBGL_PACK_UNARY_OPERATIONS")&&t!=null,p;return u?p=new is(i.shape,t):p=new ir(i.shape,e),o.runWebGLProgram(p,[i],l)}}function fn({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,b]=[[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 nu(e,l.shape,u.shape);return p.runWebGLProgram(E,[T,C],ba(w.dtype,I.dtype))}),y=Rs({inputs:{real:g,imag:b},backend:p});return p.disposeIntermediateTensorInfo(g),p.disposeIntermediateTensorInfo(b),y}let d=s||ba(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,b=l.dtype==="string"?N.fromUint8ToStringArray(f):f,[y,x]=r(l.shape,u.shape,g,b,d),w=p.makeTensorInfo(x,d),I=p.texData.get(w.dataId);return I.values=y,w}let c=G().getBool("WEBGL_PACK_BINARY_OPERATIONS")&&t!=null,h;return c?h=new Fd(t,l.shape,u.shape,n):h=new nu(e,l.shape,u.shape),p.runWebGLProgram(h,[l,u],d)}}function _c(e,t=!1){if(e==="linear")return t?eQ:X9;if(e==="relu")return t?nQ:Z9;if(e==="elu")return t?tQ:Y9;if(e==="relu6")return t?aQ:J9;if(e==="prelu")return t?bA:gA;if(e==="leakyrelu")return t?fA:mA;if(e==="sigmoid")return t?rQ:Q9;throw new Error(`Activation ${e} has not been implemented for the WebGL backend.`)}var yA=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=vn(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 LQ(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t,s=G().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Np(CA,a.shape,r.shape):new Ii(TA,a.shape,r.shape);return n.runWebGLProgram(s,[a,r],"float32")}var zQ={kernelName:ko,backendName:"webgl",kernelFunc:LQ},Tp="if (isnan(x)) return x;";function Ze({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=G().getBool("WEBGL_PACK_UNARY_OPERATIONS")&&t!=null,p;return u?p=new os(i.shape,t):p=new ir(i.shape,e),o.runWebGLProgram(p,[i],l)}}function fn({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,b]=[[m.complexTensorInfos.real,f.complexTensorInfos.real],[m.complexTensorInfos.imag,f.complexTensorInfos.imag]].map(x=>{let[v,I]=x,T={dataId:v.dataId,dtype:v.dtype,shape:l.shape},C={dataId:I.dataId,dtype:I.dtype,shape:u.shape},E=new Ii(e,l.shape,u.shape);return p.runWebGLProgram(E,[T,C],ba(v.dtype,I.dtype))}),y=Ms({inputs:{real:g,imag:b},backend:p});return p.disposeIntermediateTensorInfo(g),p.disposeIntermediateTensorInfo(b),y}let d=s||ba(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,b=l.dtype==="string"?N.fromUint8ToStringArray(f):f,[y,x]=r(l.shape,u.shape,g,b,d),v=p.makeTensorInfo(x,d),I=p.texData.get(v.dataId);return I.values=y,v}let c=G().getBool("WEBGL_PACK_BINARY_OPERATIONS")&&t!=null,h;return c?h=new Np(t,l.shape,u.shape,n):h=new Ii(e,l.shape,u.shape),p.runWebGLProgram(h,[l,u],d)}}function Fc(e,t=!1){if(e==="linear")return t?yQ:hQ;if(e==="relu")return t?vQ:fQ;if(e==="elu")return t?xQ:mQ;if(e==="relu6")return t?wQ:gQ;if(e==="prelu")return t?CA:TA;if(e==="leakyrelu")return t?NA:SA;if(e==="sigmoid")return t?kQ:bQ;throw new Error(`Activation ${e} has not been implemented for the WebGL backend.`)}var _A=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=vn(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) { @@ -1348,7 +1348,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(result); } - `}},cS={REAL:"return areal * breal - aimag * bimag;",IMAG:"return areal * bimag + aimag * breal;"},dS=class{constructor(e,t,n){this.variableNames=["AReal","AImag","BReal","BImag"],this.outputShape=N.assertAndGetBroadcastShape(t,n),this.userCode=` + `}},vS={REAL:"return areal * breal - aimag * bimag;",IMAG:"return areal * bimag + aimag * breal;"},wS=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} @@ -1361,7 +1361,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, float bimag = getBImagAtOutCoords(); setOutput(binaryOpComplex(areal, aimag, breal, bimag)); } - `}},hS="return a * b;";function nk(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 dS(cS.REAL,a.shape,r.shape),p=new dS(cS.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=Rs({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]=y9(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 G().getBool("WEBGL_PACK_BINARY_OPERATIONS")?i=new Fd(hS,a.shape,r.shape):i=new nu(hS,a.shape,r.shape),n.runWebGLProgram(i,[a,r],s)}var kQ={kernelName:mo,backendName:"webgl",kernelFunc:nk};function IQ(e,t,n){let a=[vi(e.shape),...wi(e.shape)],r={dtype:e.dtype,shape:a,dataId:e.dataId},s=[vi(t),...wi(t)],i=new dA(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 ce(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&&!Cc(r.shape,l)&&!(p.texture!==null&&Cc(p.shape,l))?IQ(r,l,i):(i.incRef(r.dataId),{dataId:r.dataId,shape:l,dtype:r.dtype})}var SQ={kernelName:Uu,backendName:"webgl",kernelFunc:ce},mS=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=` + `}},kS="return a * b;";function pk(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 wS(vS.REAL,a.shape,r.shape),p=new wS(vS.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=Ms({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]=P9(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 G().getBool("WEBGL_PACK_BINARY_OPERATIONS")?i=new Np(kS,a.shape,r.shape):i=new Ii(kS,a.shape,r.shape),n.runWebGLProgram(i,[a,r],s)}var WQ={kernelName:yo,backendName:"webgl",kernelFunc:pk};function BQ(e,t,n){let a=[wi(e.shape),...ki(e.shape)],r={dtype:e.dtype,shape:a,dataId:e.dataId},s=[wi(t),...ki(t)],i=new kA(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 ce(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{shape:s}=a,i=n,o=w.sizeFromShape(r.shape),l=w.inferFromImplicitShape(s,o),u=w.sizeFromShape(l);w.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&&!Ac(r.shape,l)&&!(p.texture!==null&&Ac(p.shape,l))?BQ(r,l,i):(i.incRef(r.dataId),{dataId:r.dataId,shape:l,dtype:r.dtype})}var VQ={kernelName:qu,backendName:"webgl",kernelFunc:ce},IS=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 * ${w.isInt(p)?p.toPrecision(2):p}, ones);`}let u="";r%n>0&&(u=` if (inIdx < 0 || inIdx >= ${r}) { return 0.0; } @@ -1414,7 +1414,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, } setOutput(sumValue); } - `}},NQ=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=` + `}},UQ=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"}) { @@ -1506,12 +1506,12 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, } setOutput(${l}); } - `}};function TQ(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 Yo(e,t,n,a){let r=TQ(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=dt(this.rank),r=cA("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=dt(this.rank),r=wA("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?[b,d,h]:[b,h,d],I=a?[y,m,c]:[y,c,m],T=ce({inputs:{x:e},backend:r,attrs:{shape:w}}),C=ce({inputs:{x:t},backend:r,attrs:{shape:I}}),E=[T,C],F=Math.max(b,y),D=n?T.shape[1]:T.shape[2],$=s!=null,S=i!=null,M=l==="leakyrelu",B=l!=null?_c(l,!0):null,U=$||S||M||B!=null,H;if((h===1||m===1)&&D>xA&&U===!1){let K=T,Z=C;n&&(K=Nn({inputs:{x:T},backend:r,attrs:{perm:[0,2,1]}}),E.push(K)),a&&(Z=Nn({inputs:{x:C},backend:r,attrs:{perm:[0,2,1]}}),E.push(Z));let J=m!==1,ee=m===1,ae=K;J&&(ae=ce({inputs:{x:K},backend:r,attrs:{shape:[F,D,1]}}),E.push(ae));let te=m===1?2:1,re=Z;ee&&(re=ce({inputs:{x:Z},backend:r,attrs:{shape:[F,1,D]}}),E.push(re));let se=nk({inputs:{a:ae,b:re},backend:r});H=eg({inputs:{x:se},backend:r,attrs:{axis:te,keepDims:!0}}),E.push(se)}else{let K=ba(e.dtype,t.dtype),Z=new yA(w,I,[F,h,m],n,a,$,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)}H=r.runWebGLProgram(Z,J,K)}let j=ce({inputs:{x:H},backend:r,attrs:{shape:x}});E.push(H);for(let K of E)r.disposeIntermediateTensorInfo(K);return j}function DQ(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 Sm({a:r,b:s,transposeA:l,transposeB:u,backend:n,bias:i,preluActivationWeights:o,leakyreluAlpha:d,activation:p})}var RQ={kernelName:ii,backendName:"webgl",kernelFunc:DQ},fS="return abs(x);";function MQ(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=uA(s.values);return n.makeTensorInfo(a.shape,a.dtype,i)}let r;return G().getBool("WEBGL_PACK_UNARY_OPERATIONS")?r=new is(a.shape,fS):r=new ir(a.shape,fS),n.runWebGLProgram(r,[a],a.dtype)}var PQ={kernelName:ru,backendName:"webgl",kernelFunc:MQ},OQ=Oa+` + `}};function eg(e,t,n){let a=G().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new jQ(e.shape,t):new HQ(e.shape,t);return n.runWebGLProgram(a,[e],e.dtype)}function KQ(e,t,n,a){let r=t,s=e.shape.length,i=w.parseAxisParam(r,e.shape),o=i,l=N.getAxesPermutation(o,s),u=l!=null,p=e;u&&(p=eg(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=w.sizeFromShape(c),f=w.sizeFromShape(e.shape)/m,g=ce({inputs:{x:p},attrs:{shape:[f,m]},backend:a}),b=Ym(e.dtype),y=tl(g,b,"sum",a),x=ce({inputs:{x:y},attrs:{shape:h},backend:a});return a.disposeIntermediateTensorInfo(g),a.disposeIntermediateTensorInfo(y),u&&a.disposeIntermediateTensorInfo(p),x}function tg(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;return KQ(r,s,i,n)}var XQ={kernelName:zo,backendName:"webgl",kernelFunc:tg};function Nn(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 v=n?[b,d,h]:[b,h,d],I=a?[y,m,c]:[y,c,m],T=ce({inputs:{x:e},backend:r,attrs:{shape:v}}),C=ce({inputs:{x:t},backend:r,attrs:{shape:I}}),E=[T,C],F=Math.max(b,y),D=n?T.shape[1]:T.shape[2],$=s!=null,S=i!=null,M=l==="leakyrelu",B=l!=null?Fc(l,!0):null,U=$||S||M||B!=null,H;if((h===1||m===1)&&D>EA&&U===!1){let K=T,Z=C;n&&(K=Nn({inputs:{x:T},backend:r,attrs:{perm:[0,2,1]}}),E.push(K)),a&&(Z=Nn({inputs:{x:C},backend:r,attrs:{perm:[0,2,1]}}),E.push(Z));let J=m!==1,ee=m===1,ae=K;J&&(ae=ce({inputs:{x:K},backend:r,attrs:{shape:[F,D,1]}}),E.push(ae));let te=m===1?2:1,re=Z;ee&&(re=ce({inputs:{x:Z},backend:r,attrs:{shape:[F,1,D]}}),E.push(re));let ie=pk({inputs:{a:ae,b:re},backend:r});H=tg({inputs:{x:ie},backend:r,attrs:{axis:te,keepDims:!0}}),E.push(ie)}else{let K=ba(e.dtype,t.dtype),Z=new _A(v,I,[F,h,m],n,a,$,B,S,M),J=[T,C];if(s!=null&&J.push(s),S&&J.push(i),M){let ee=r.makeTensorInfo([],"float32",w.createScalarValue(o,"float32"));J.push(ee),E.push(ee)}H=r.runWebGLProgram(Z,J,K)}let j=ce({inputs:{x:H},backend:r,attrs:{shape:x}});E.push(H);for(let K of E)r.disposeIntermediateTensorInfo(K);return j}function ZQ(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 Em({a:r,b:s,transposeA:l,transposeB:u,backend:n,bias:i,preluActivationWeights:o,leakyreluAlpha:d,activation:p})}var JQ={kernelName:oi,backendName:"webgl",kernelFunc:ZQ},SS="return abs(x);";function QQ(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=xA(s.values);return n.makeTensorInfo(a.shape,a.dtype,i)}let r;return G().getBool("WEBGL_PACK_UNARY_OPERATIONS")?r=new os(a.shape,SS):r=new ir(a.shape,SS),n.runWebGLProgram(r,[a],a.dtype)}var eee={kernelName:lu,backendName:"webgl",kernelFunc:QQ},tee=Oa+` if (abs(x) > 1.) { return NAN; } return acos(x); -`,LQ=Ye({opSnippet:OQ}),zQ={kernelName:Si,backendName:"webgl",kernelFunc:LQ},WQ=Oa+` +`,nee=Ze({opSnippet:tee}),aee={kernelName:Ti,backendName:"webgl",kernelFunc:nee},ree=Oa+` if (x < 1.0) return NAN; -return log(x + sqrt(x * x - 1.0));`,BQ=Ye({opSnippet:WQ}),VQ={kernelName:Ni,backendName:"webgl",kernelFunc:BQ},gS="return a + b;",UQ=fn({opSnippet:gS,packedOpSnippet:gS,supportsComplex:!0,cpuKernelImpl:JJ}),GQ={kernelName:ks,backendName:"webgl",kernelFunc:UQ},HQ=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));`,see=Ze({opSnippet:ree}),iee={kernelName:Ci,backendName:"webgl",kernelFunc:see},NS="return a + b;",oee=fn({opSnippet:NS,packedOpSnippet:NS,supportsComplex:!0,cpuKernelImpl:f9}),lee={kernelName:Is,backendName:"webgl",kernelFunc:oee},uee=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(` `)} @@ -1543,7 +1543,7 @@ return log(x + sqrt(x * x - 1.0));`,BQ=Ye({opSnippet:WQ}),VQ={kernelName:Ni,back float result = ${a}; setOutput(result); } - `}},qQ=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=` + `}},pee=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(` `)} @@ -1551,7 +1551,7 @@ return log(x + sqrt(x * x - 1.0));`,BQ=Ye({opSnippet:WQ}),VQ={kernelName:Ni,back vec4 result = ${a}; setOutput(result); } - `}};function Zh(e){let{inputs:t,backend:n}=e,a=t;if(a.length===1)return ra({inputs:{x:a[0]},backend:n});if(a.length>G().get("WEBGL_MAX_TEXTURES_IN_SHADER")){let o=Math.floor(a.length/2),l=Zh({inputs:a.slice(0,o),backend:n}),u=Zh({inputs:a.slice(o),backend:n});return Zh({inputs:[l,u],backend:n})}let r=a.map(o=>o.dtype).reduce((o,l)=>ba(o,l)),s=a.map(o=>o.shape),i=G().getBool("WEBGL_PACK")?new qQ(a[0].shape,s):new HQ(a[0].shape,s);return n.runWebGLProgram(i,a,r)}var jQ={kernelName:Ti,backendName:"webgl",kernelFunc:Zh};function KQ(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=Nn({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=ce({inputs:{x:d},backend:n,attrs:{shape:[-1,m]}}),g=Yo(f,f.dtype,"all",n),b;if(i){let y=N.expandShapeToKeepDim(c,l);b=ce({inputs:{x:g},backend:n,attrs:{shape:y}})}else b=ce({inputs:{x:g},backend:n,attrs:{shape:c}});return n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(g),p!=null&&n.disposeIntermediateTensorInfo(d),b}var XQ={kernelName:su,backendName:"webgl",kernelFunc:KQ};function YQ(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=Nn({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=ce({inputs:{x:d},backend:n,attrs:{shape:[-1,m]}}),g=Yo(f,f.dtype,"any",n),b;if(i){let y=N.expandShapeToKeepDim(c,l);b=ce({inputs:{x:g},backend:n,attrs:{shape:y}})}else b=ce({inputs:{x:g},backend:n,attrs:{shape:c}});return n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(g),p!=null&&n.disposeIntermediateTensorInfo(d),b}var ZQ={kernelName:iu,backendName:"webgl",kernelFunc:YQ},JQ=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 nm(e){let{inputs:t,backend:n}=e,a=t;if(a.length===1)return ra({inputs:{x:a[0]},backend:n});if(a.length>G().get("WEBGL_MAX_TEXTURES_IN_SHADER")){let o=Math.floor(a.length/2),l=nm({inputs:a.slice(0,o),backend:n}),u=nm({inputs:a.slice(o),backend:n});return nm({inputs:[l,u],backend:n})}let r=a.map(o=>o.dtype).reduce((o,l)=>ba(o,l)),s=a.map(o=>o.shape),i=G().getBool("WEBGL_PACK")?new pee(a[0].shape,s):new uee(a[0].shape,s);return n.runWebGLProgram(i,a,r)}var cee={kernelName:_i,backendName:"webgl",kernelFunc:nm};function dee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=r.shape.length,l=w.parseAxisParam(s,r.shape),u=l,p=N.getAxesPermutation(u,o),d=r;p!=null&&(d=Nn({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=w.sizeFromShape(h),f=ce({inputs:{x:d},backend:n,attrs:{shape:[-1,m]}}),g=tl(f,f.dtype,"all",n),b;if(i){let y=N.expandShapeToKeepDim(c,l);b=ce({inputs:{x:g},backend:n,attrs:{shape:y}})}else b=ce({inputs:{x:g},backend:n,attrs:{shape:c}});return n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(g),p!=null&&n.disposeIntermediateTensorInfo(d),b}var hee={kernelName:uu,backendName:"webgl",kernelFunc:dee};function mee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=r.shape.length,l=w.parseAxisParam(s,r.shape),u=l,p=N.getAxesPermutation(u,o),d=r;p!=null&&(d=Nn({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=w.sizeFromShape(h),f=ce({inputs:{x:d},backend:n,attrs:{shape:[-1,m]}}),g=tl(f,f.dtype,"any",n),b;if(i){let y=N.expandShapeToKeepDim(c,l);b=ce({inputs:{x:g},backend:n,attrs:{shape:y}})}else b=ce({inputs:{x:g},backend:n,attrs:{shape:c}});return n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(g),p!=null&&n.disposeIntermediateTensorInfo(d),b}var fee={kernelName:pu,backendName:"webgl",kernelFunc:mee},gee=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]; @@ -1571,7 +1571,7 @@ return log(x + sqrt(x * x - 1.0));`,BQ=Ye({opSnippet:WQ}),VQ={kernelName:Ni,back } setOutput(float(bestIndex)); } - `}},QQ=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=dt(o),u=Sn("coords",o),p,d;if(s===1){d=o+1;let C=dt(d);p=` + `}},bee=class{constructor(e,t,n,a){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,w.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=dt(o),u=Sn("coords",o),p,d;if(s===1){d=o+1;let C=dt(d);p=` ${C} sourceLocR = ${C}(${u.join()}, 0); ++${u[o-1]}; ${C} sourceLocG = ${C}(${u.join()}, 0); @@ -1587,7 +1587,7 @@ return log(x + sqrt(x * x - 1.0));`,BQ=Ye({opSnippet:WQ}),VQ={kernelName:Ni,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=Sn("sourceLocR",d-1).concat("inIdx.r"),g=Sn("sourceLocG",d-1).concat("inIdx.g"),b=Sn("sourceLocB",d-1).concat("inIdx.b"),y=Sn("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=Sn("sourceLocR",d-1).concat("inIdx.r"),g=Sn("sourceLocG",d-1).concat("inIdx.g"),b=Sn("sourceLocB",d-1).concat("inIdx.b"),y=Sn("sourceLocA",d-1).concat("inIdx.a"),x=n==="max"?"greaterThan":"lessThan",v=a?"":` inIdx = round(vec4(getBestIndicesAChannel(${f.join()}), getBestIndicesAChannel(${g.join()}), getBestIndicesAChannel(${b.join()}), @@ -1618,7 +1618,7 @@ return log(x + sqrt(x * x - 1.0));`,BQ=Ye({opSnippet:WQ}),VQ={kernelName:Ni,back for (int i = 0; i < ${t}; i++) { inIdx = srcIdx; - ${w} + ${v} vec4 candidate = ${I}; bvec4 nan = isnan(candidate); bvec4 replace = bvec4( @@ -1633,25 +1633,25 @@ return log(x + sqrt(x * x - 1.0));`,BQ=Ye({opSnippet:WQ}),VQ={kernelName:Ni,back } setOutput(bestIndex); } - `}};function vA(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 JQ(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=vA(e,t,n,p);return e.disposeIntermediateTensorInfo(p),d}function wA(e,t,n,a=null){let r=a!=null?a.shape:t.shape,s=r[r.length-1],i=N.computeOptimalWindowSize(s),o=new QQ(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=wA(e,t,n,u);return e.disposeIntermediateTensorInfo(u),p}return u}function kA(e,t,n,a){let r=[n];if(N.assertAxesAreInnerMostDims("arg"+a.charAt(0).toUpperCase()+a.slice(1),r,t.shape.length),!G().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=ce({inputs:{x:l},backend:e,attrs:{shape:[-1,d]}});s.push(c);let h=vA(e,c,a);s.push(h);let m=ce({inputs:{x:h},backend:e,attrs:{shape:u}});return s.forEach(f=>e.disposeIntermediateTensorInfo(f)),m}return wA(e,t,a)}function eee(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=Nn({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=kA(n,l,i[0],"max");return u.forEach(d=>n.disposeIntermediateTensorInfo(d)),p}var tee={kernelName:ou,backendName:"webgl",kernelFunc:eee};function nee(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=Nn({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=kA(n,l,i[0],"min");return u.forEach(d=>n.disposeIntermediateTensorInfo(d)),p}var aee={kernelName:lu,backendName:"webgl",kernelFunc:nee},ree=Oa+` + `}};function AA(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 gee(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=AA(e,t,n,p);return e.disposeIntermediateTensorInfo(p),d}function FA(e,t,n,a=null){let r=a!=null?a.shape:t.shape,s=r[r.length-1],i=N.computeOptimalWindowSize(s),o=new bee(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=FA(e,t,n,u);return e.disposeIntermediateTensorInfo(u),p}return u}function $A(e,t,n,a){let r=[n];if(N.assertAxesAreInnerMostDims("arg"+a.charAt(0).toUpperCase()+a.slice(1),r,t.shape.length),!G().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=w.sizeFromShape(p),c=ce({inputs:{x:l},backend:e,attrs:{shape:[-1,d]}});s.push(c);let h=AA(e,c,a);s.push(h);let m=ce({inputs:{x:h},backend:e,attrs:{shape:u}});return s.forEach(f=>e.disposeIntermediateTensorInfo(f)),m}return FA(e,t,a)}function yee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a,i=w.parseAxisParam(s,r.shape),o=N.getAxesPermutation(i,r.shape.length),l=r,u=[];o!=null&&(l=Nn({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=$A(n,l,i[0],"max");return u.forEach(d=>n.disposeIntermediateTensorInfo(d)),p}var xee={kernelName:cu,backendName:"webgl",kernelFunc:yee};function vee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a,i=w.parseAxisParam(s,r.shape),o=N.getAxesPermutation(i,r.shape.length),l=r,u=[];o!=null&&(l=Nn({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=$A(n,l,i[0],"min");return u.forEach(d=>n.disposeIntermediateTensorInfo(d)),p}var wee={kernelName:du,backendName:"webgl",kernelFunc:vee},kee=Oa+` if (abs(x) > 1.) { return NAN; } return asin(x); -`,see=Ye({opSnippet:ree}),iee={kernelName:Ci,backendName:"webgl",kernelFunc:see},oee=Oa+"return log(x + sqrt(x * x + 1.0));",lee=Ye({opSnippet:oee}),uee={kernelName:_i,backendName:"webgl",kernelFunc:lee},pee=Oa+` +`,Iee=Ze({opSnippet:kee}),See={kernelName:Ei,backendName:"webgl",kernelFunc:Iee},Nee=Oa+"return log(x + sqrt(x * x + 1.0));",Tee=Ze({opSnippet:Nee}),Cee={kernelName:Ai,backendName:"webgl",kernelFunc:Tee},_ee=Oa+` return atan(x); -`,cee=Ye({opSnippet:pee}),dee={kernelName:Ei,backendName:"webgl",kernelFunc:cee},hee=tk+` +`,Eee=Ze({opSnippet:_ee}),Aee={kernelName:Fi,backendName:"webgl",kernelFunc:Eee},Fee=uk+` return atan(a, b); -`,mee=` +`,$ee=` 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); - `+Xo+` + `+el+` return result; -`,fee=fn({opSnippet:hee,packedOpSnippet:mee}),gee={kernelName:Fi,backendName:"webgl",kernelFunc:fee},bee=Oa+` +`,Dee=fn({opSnippet:Fee,packedOpSnippet:$ee}),Ree={kernelName:Di,backendName:"webgl",kernelFunc:Dee},Mee=Oa+` if ((x < -1.0) || (x > 1.0)) return NAN; -return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,yee=Ye({opSnippet:bee}),xee={kernelName:Ai,backendName:"webgl",kernelFunc:yee},Ec=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`,b="0.0";if(m||(b="-1.0 / 1e-20"),n){let C=">=";this.userCode=` +return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Pee=Ze({opSnippet:Mee}),Oee={kernelName:$i,backendName:"webgl",kernelFunc:Pee},$c=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`,b="0.0";if(m||(b="-1.0 / 1e-20"),n){let C=">=";this.userCode=` const ivec2 strides = ivec2(${i}, ${o}); const ivec2 pads = ivec2(${c}, ${h}); @@ -1702,7 +1702,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,yee=Ye({opSnippet:bee}),xee={kernel } setOutput(float(minMaxPosition)); } - `;return}let y="max",x=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="avg"&&(x="avgValue / max(count, 1.0)");let w=Math.floor(s/4)*4,I=s%4,T=` + `;return}let y="max",x=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="avg"&&(x="avgValue / max(count, 1.0)");let v=Math.floor(s/4)*4,I=s%4,T=` if (${m}) { avgValue += dot(values, ones); } else { @@ -1747,7 +1747,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,yee=Ye({opSnippet:bee}),xee={kernel continue; } - for (int wC = 0; wC < ${w}; wC += 4) { + for (int wC = 0; wC < ${v}; wC += 4) { int xC = xCCorner + wC * ${u}; vec4 values = vec4( @@ -1760,7 +1760,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,yee=Ye({opSnippet:bee}),xee={kernel ${T} } - int xC = xCCorner + ${w}; + int xC = xCCorner + ${v}; if (${I===1}) { vec4 values = vec4( getValue(batch, xR, xC, d), @@ -1792,7 +1792,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,yee=Ye({opSnippet:bee}),xee={kernel } setOutput(${x}); } - `}},ak=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,b=e.padInfo.left;this.outputShape=e.outShape;let y=t==="avg",x="0.0";if(y||(x="-1.0 / 1e-20"),n){let F=">=";this.userCode=` + `}},ck=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,b=e.padInfo.left;this.outputShape=e.outShape;let y=t==="avg",x="0.0";if(y||(x="-1.0 / 1e-20"),n){let F=">=";this.userCode=` const ivec3 strides = ivec3(${i}, ${o}, ${l}); const ivec3 pads = ivec3(${f}, ${g}, ${b}); @@ -1854,11 +1854,11 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,yee=Ye({opSnippet:bee}),xee={kernel } setOutput(float(minMaxPosition)); } - `;return}let w="max",I=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="avg"&&(I="avgValue / max(count, 1.0)");let T=Math.floor(s/4)*4,C=s%4,E=` + `;return}let v="max",I=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="avg"&&(I="avgValue / max(count, 1.0)");let T=Math.floor(s/4)*4,C=s%4,E=` if (${y}) { avgValue += dot(values, ones); } else { - minMaxValue = ${w}(values, minMaxValue); + minMaxValue = ${v}(values, minMaxValue); } `;this.userCode=` const ivec3 strides = @@ -1955,7 +1955,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,yee=Ye({opSnippet:bee}),xee={kernel } setOutput(${I}); } - `}};function vee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;yp(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 ra({inputs:{x:r},backend:n});let d=new Ec(p,"avg",!1);return n.runWebGLProgram(d,[r],"float32")}var wee={kernelName:$i,backendName:"webgl",kernelFunc:vee};function kee(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 ak(d,"avg",!1);return n.runWebGLProgram(c,[r],"float32")}var Iee={kernelName:uu,backendName:"webgl",kernelFunc:kee},See=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 Lee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;vp(r,"avgPool");let{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=a,u=1;w.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&&w.arraysEqual(p.inShape,p.outShape))return ra({inputs:{x:r},backend:n});let d=new $c(p,"avg",!1);return n.runWebGLProgram(d,[r],"float32")}var zee={kernelName:Ri,backendName:"webgl",kernelFunc:Lee};function Wee(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 ck(d,"avg",!1);return n.runWebGLProgram(c,[r],"float32")}var Bee={kernelName:hu,backendName:"webgl",kernelFunc:Wee},Vee=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}); @@ -1997,7 +1997,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,yee=Ye({opSnippet:bee}),xee={kernel } setOutput(dotProd); } - `}},Nee=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=` + `}},Uee=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}); @@ -2053,7 +2053,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,yee=Ye({opSnippet:bee}),xee={kernel } setOutput(dotProd); } - `}};function Tee(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 Nee(c);return n.runWebGLProgram(h,[r],i.dtype)}var Cee={kernelName:Rc,backendName:"webgl",kernelFunc:Tee};function _ee(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s;yp([r,s],"avgPoolGrad");let{filterSize:o,strides:l,pad:u}=a,p=N.computePool2DInfo(i.shape,o,l,1,u),d=new See(p);return n.runWebGLProgram(d,[r],i.dtype)}var Eee={kernelName:$m,backendName:"webgl",kernelFunc:_ee};function Aee(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;return Sm({a:r,b:s,transposeA:i,transposeB:o,backend:n})}var Fee={kernelName:Di,backendName:"webgl",kernelFunc:Aee},$ee=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 Gee(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 Uee(c);return n.runWebGLProgram(h,[r],i.dtype)}var Hee={kernelName:Lc,backendName:"webgl",kernelFunc:Gee};function qee(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s;vp([r,s],"avgPoolGrad");let{filterSize:o,strides:l,pad:u}=a,p=N.computePool2DInfo(i.shape,o,l,1,u),d=new Vee(p);return n.runWebGLProgram(d,[r],i.dtype)}var jee={kernelName:Oc,backendName:"webgl",kernelFunc:qee};function Kee(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;return Em({a:r,b:s,transposeA:i,transposeB:o,backend:n})}var Xee={kernelName:Mi,backendName:"webgl",kernelFunc:Kee},Yee=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(); @@ -2063,7 +2063,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,yee=Ye({opSnippet:bee}),xee={kernel float inv = scale * inversesqrt(variance + float(${s})); setOutput(dot(vec3(x, -mean, offset), vec3(inv, inv, 1))); } - `}},Dee=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=` + `}},Zee=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}; @@ -2076,7 +2076,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,yee=Ye({opSnippet:bee}),xee={kernel setOutput((x - mean) * inv + offset); } - `}},Ree=({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=G().getBool("WEBGL_PACK_NORMALIZATION")?new Dee(a.shape,r.shape,s.shape,p,d,l):new $ee(a.shape,r.shape,s.shape,p,d,l);return t.runWebGLProgram(c,u,u[0].dtype)},Mee={kernelName:Yi,backendName:"webgl",kernelFunc:Ree},Pee=class{constructor(e){this.variableNames=["source"],this.outputShape=e,this.rank=e.length;let t=dt(this.rank);this.customUniforms=[{name:"start",arrayIndex:this.rank,type:"int"}];let n=Oee(this.rank),a,r=e.map((s,i)=>`sourceLoc.${lv[i]} = start[${i}] + coords.${lv[i]};`);a=` + `}},Jee=({inputs:e,backend:t,attrs:n})=>{let{x:a,mean:r,variance:s,offset:i,scale:o}=e;w.assert(r.shape.length===s.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),w.assert(i==null||r.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),w.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=G().getBool("WEBGL_PACK_NORMALIZATION")?new Zee(a.shape,r.shape,s.shape,p,d,l):new Yee(a.shape,r.shape,s.shape,p,d,l);return t.runWebGLProgram(c,u,u[0].dtype)},Qee={kernelName:Qi,backendName:"webgl",kernelFunc:Jee},ete=class{constructor(e){this.variableNames=["source"],this.outputShape=e,this.rank=e.length;let t=dt(this.rank);this.customUniforms=[{name:"start",arrayIndex:this.rank,type:"int"}];let n=tte(this.rank),a,r=e.map((s,i)=>`sourceLoc.${gv[i]} = start[${i}] + coords.${gv[i]};`);a=` ${t} sourceLoc; ${t} coords = getOutputCoords(); ${r.join(` @@ -2086,7 +2086,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,yee=Ye({opSnippet:bee}),xee={kernel ${a} setOutput(getSource(${n})); } - `}},lv=["x","y","z","w","u","v"];function Oee(e){if(e===1)return"sourceLoc";if(e<=6)return lv.slice(0,e).map(t=>"sourceLoc."+t).join(",");throw Error(`Slicing for rank ${e} is not yet supported`)}var Lee=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=dt(this.rank),n=Sn("coords",this.rank),a=Sn("sourceLoc",this.rank),r=this.rank===1?"sourceLoc":`vec2(${a.slice(-2).join()})`,s=`getChannel(getSource(${a.join()}), ${r})`,i=` + `}},gv=["x","y","z","w","u","v"];function tte(e){if(e===1)return"sourceLoc";if(e<=6)return gv.slice(0,e).map(t=>"sourceLoc."+t).join(",");throw Error(`Slicing for rank ${e} is not yet supported`)}var nte=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=dt(this.rank),n=Sn("coords",this.rank),a=Sn("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]}; @@ -2115,7 +2115,15 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,yee=Ye({opSnippet:bee}),xee={kernel ${o} setOutput(result); } - `}};function zee(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 Sp(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=E9(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=G().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new Lee(l):new Pee(l),c=[o];return n.runWebGLProgram(d,[r],r.dtype,c)}return n.uploadToGPU(r.dataId),zee(r,o,l,n)}var Wee={kernelName:Yu,backendName:"webgl",kernelFunc:Sp},Bee=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((y,x)=>y*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=ce({inputs:{x:r},backend:n,attrs:{shape:l}}),f=Nn({inputs:{x:m},backend:n,attrs:{perm:u}}),g=ce({inputs:{x:f},backend:n,attrs:{shape:p}}),b=Sp({inputs:{x:g},backend:n,attrs:{begin:d,size:c}});return h.push(m),h.push(f),h.push(g),h.forEach(y=>n.disposeIntermediateTensorInfo(y)),b},Vee={kernelName:pu,backendName:"webgl",kernelFunc:Bee};function Uee(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=lA(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,u)}var Gee={kernelName:cu,backendName:"webgl",kernelFunc:Uee};function Hee(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 qee={kernelName:Mc,backendName:"webgl",kernelFunc:Hee},jee="return float(a != b);",IA=fn({opSnippet:jee,cpuKernelImpl:v9,dtype:"bool"}),Kee={kernelName:Ou,backendName:"webgl",kernelFunc:IA};function $d(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.texData.get(a.dataId);return ra({inputs:{x:r.complexTensorInfos.real},backend:n})}var Xee={kernelName:jm,backendName:"webgl",kernelFunc:$d},Yee="return float(int(x));";function Zee(e,t){let n=new ir(e.shape,Yee),a=t.runWebGLProgram(n,[e],"int32");return{dataId:a.dataId,shape:a.shape,dtype:a.dtype}}function uv(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dtype:s}=a;if(s==="complex64"){if(r.dtype==="complex64")return ra({inputs:{x:r},backend:n});let i=Nt(r.shape),o=uv({inputs:{x:r},backend:n,attrs:{dtype:"float32"}}),l=Rs({inputs:{real:o,imag:i},backend:n});return i.dispose(),n.disposeIntermediateTensorInfo(o),l}if(r.dtype==="complex64"){let i=$d({inputs:{input:r},backend:n}),o=uv({inputs:{x:i},backend:n,attrs:{dtype:s}});return n.disposeIntermediateTensorInfo(i),o}if(!v.hasEncodingLoss(r.dtype,s)){let i=ra({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]=e9(i,r.shape,r.dtype,s);return n.makeTensorInfo(o,l,u)}if(s==="int32")return Zee(r,n);if(s==="bool"){let i=n.makeTensorInfo([],"bool",v.getTypedArrayFromDType("bool",1)),o=IA({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 Jee={kernelName:Ri,backendName:"webgl",kernelFunc:uv},bS="return ceil(x);",Qee=Ye({opSnippet:bS,packedOpSnippet:bS,cpuKernelImpl:t9}),ete={kernelName:Mi,backendName:"webgl",kernelFunc:Qee},tte=class{constructor(e){this.variableNames=["A"],this.customUniforms=[{name:"minVal",type:"float"},{name:"maxVal",type:"float"}],this.outputShape=e,this.userCode=` + `}};function ate(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=Xt.computeFlatOffset(t,w.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 Cp(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,size:i}=a,[o,l]=Xt.parseSliceParams(r,s,i);if(Xt.assertParamsValid(r,o,l),w.sizeFromShape(l)===0)return n.makeTensorInfo(l,r.dtype,[]);if(n.shouldExecuteOnCPU([r])||r.dtype==="string"){let d=n.texData.get(r.dataId),c=j9(d.values,o,l,r.shape,r.dtype);return n.makeTensorInfo(l,r.dtype,c)}let{isPacked:u}=n.texData.get(r.dataId),p=Xt.isSliceContinous(r.shape,o,l);if(u||!p){let d=G().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new nte(l):new ete(l),c=[o];return n.runWebGLProgram(d,[r],r.dtype,c)}return n.uploadToGPU(r.dataId),ate(r,o,l,n)}var rte={kernelName:Qu,backendName:"webgl",kernelFunc:Cp},ste=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,crops:i}=a;w.assert(r.shape.length<=4,()=>"batchToSpaceND for rank > 4 with a WebGL backend not implemented yet");let o=s.reduce((y,x)=>y*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=ce({inputs:{x:r},backend:n,attrs:{shape:l}}),f=Nn({inputs:{x:m},backend:n,attrs:{perm:u}}),g=ce({inputs:{x:f},backend:n,attrs:{shape:p}}),b=Cp({inputs:{x:g},backend:n,attrs:{begin:d,size:c}});return h.push(m),h.push(f),h.push(g),h.forEach(y=>n.disposeIntermediateTensorInfo(y)),b},ite={kernelName:mu,backendName:"webgl",kernelFunc:ste};function ote(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=yA(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,u)}var lte={kernelName:fu,backendName:"webgl",kernelFunc:ote},ute=` + int r = int(a.r) & int(b.r); + int g = int(a.g) & int(b.g); + int rb = int(a.b) & int(b.b); + int ra = int(a.a) & int(b.a); + return vec4(r, g, rb, ra); +`,pte=` + return float(int(a.r) & int(b.r)); +`;function cte(e){let{inputs:t,backend:n}=e,{a,b:r}=t,s=G().getBool("WEBGL_PACK_BINARY_OPERATIONS"),i=G().getNumber("WEBGL_VERSION");if(n.shouldExecuteOnCPU([a,r])||i===1){let l=n.texData.get(a.dataId).values,u=n.texData.get(r.dataId).values,[p,d]=b9(a.shape,r.shape,l,u,a.dtype),c=n.makeTensorInfo(d,a.dtype),h=n.texData.get(c.dataId);return h.values=p,c}let o;return s?o=new Np(ute,a.shape,r.shape,!1):o=new Ii(pte,a.shape,r.shape),n.runWebGLProgram(o,[a,r],a.dtype)}var dte={kernelName:gu,backendName:"webgl",kernelFunc:cte};function hte(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 mte={kernelName:zc,backendName:"webgl",kernelFunc:hte},fte="return float(a != b);",DA=fn({opSnippet:fte,cpuKernelImpl:L9,dtype:"bool"}),gte={kernelName:Wu,backendName:"webgl",kernelFunc:DA};function Od(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.texData.get(a.dataId);return ra({inputs:{x:r.complexTensorInfos.real},backend:n})}var bte={kernelName:Km,backendName:"webgl",kernelFunc:Od},yte="return float(int(x));";function xte(e,t){let n=new ir(e.shape,yte),a=t.runWebGLProgram(n,[e],"int32");return{dataId:a.dataId,shape:a.shape,dtype:a.dtype}}function bv(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dtype:s}=a;if(s==="complex64"){if(r.dtype==="complex64")return ra({inputs:{x:r},backend:n});let i=Nt(r.shape),o=bv({inputs:{x:r},backend:n,attrs:{dtype:"float32"}}),l=Ms({inputs:{real:o,imag:i},backend:n});return i.dispose(),n.disposeIntermediateTensorInfo(o),l}if(r.dtype==="complex64"){let i=Od({inputs:{input:r},backend:n}),o=bv({inputs:{x:i},backend:n,attrs:{dtype:s}});return n.disposeIntermediateTensorInfo(i),o}if(!w.hasEncodingLoss(r.dtype,s)){let i=ra({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]=y9(i,r.shape,r.dtype,s);return n.makeTensorInfo(o,l,u)}if(s==="int32")return xte(r,n);if(s==="bool"){let i=n.makeTensorInfo([],"bool",w.getTypedArrayFromDType("bool",1)),o=DA({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 vte={kernelName:Pi,backendName:"webgl",kernelFunc:bv},TS="return ceil(x);",wte=Ze({opSnippet:TS,packedOpSnippet:TS,cpuKernelImpl:x9}),kte={kernelName:Oi,backendName:"webgl",kernelFunc:wte},Ite=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(); @@ -2126,7 +2134,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,yee=Ye({opSnippet:bee}),xee={kernel setOutput(clamp(value, minVal, maxVal)); } - `}},nte=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=` + `}},Ste=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(); @@ -2137,7 +2145,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,yee=Ye({opSnippet:bee}),xee={kernel setOutput(clamp(value, vec4(minVal), vec4(maxVal))); } - `}};function ate(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{clipValueMin:s,clipValueMax:i}=a,o;G().getBool("WEBGL_PACK_CLIP")?o=new nte(r.shape):o=new tte(r.shape);let l=[[s],[i]];return n.runWebGLProgram(o,[r],r.dtype,l)}var rte={kernelName:Is,backendName:"webgl",kernelFunc:ate},ste=class{constructor(e){this.variableNames=["real","imag"],this.outputShape=e,this.userCode=` + `}};function Nte(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{clipValueMin:s,clipValueMax:i}=a,o;G().getBool("WEBGL_PACK_CLIP")?o=new Ste(r.shape):o=new Ite(r.shape);let l=[[s],[i]];return n.runWebGLProgram(o,[r],r.dtype,l)}var Tte={kernelName:Ss,backendName:"webgl",kernelFunc:Nte},Cte=class{constructor(e){this.variableNames=["real","imag"],this.outputShape=e,this.userCode=` void main() { float re = abs(getRealAtOutCoords()); float im = abs(getImagAtOutCoords()); @@ -2150,7 +2158,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,yee=Ye({opSnippet:bee}),xee={kernel mx == 0.0 ? 0.0 : mx * length(vec2(1, min(re, im)/mx)) ); } - `}};function yS(e,t){return{dataId:t.dataId,dtype:t.dtype,shape:e.shape}}function ite(e){let{inputs:t,backend:n}=e,{x:a}=t,r=n.texData.get(a.dataId),s=new ste(a.shape),i=[yS(a,r.complexTensorInfos.real),yS(a,r.complexTensorInfos.imag)];return n.runWebGLProgram(s,i,i[0].dtype)}var ote={kernelName:Pc,backendName:"webgl",kernelFunc:ite},lte=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}(${Vh(i,l,f)}), - vec2(${Vh(u,l,f)})); + getT${m}(${jh(i,l,f)}), + vec2(${jh(u,l,f)})); }`}let c=o.length,h=o[o.length-1];d+=` return getChannel( - getT${c}(${Vh(i,l,h)}), - vec2(${Vh(u,l,h)}));`,this.userCode=` + getT${c}(${jh(i,l,h)}), + vec2(${jh(u,l,h)}));`,this.userCode=` float getValue(${i.map(m=>"int "+m)}) { ${d} } @@ -2196,7 +2204,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,yee=Ye({opSnippet:bee}),xee={kernel } setOutput(result); } - `}};function Vh(e,t,n){let a=e.indexOf(t);return e.map((r,s)=>s===a?`${r} - ${n}`:r).join()}function tg(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.texData.get(a.dataId);return ra({inputs:{x:r.complexTensorInfos.imag},backend:n})}var pte={kernelName:Bm,backendName:"webgl",kernelFunc:tg};function lc(e,t,n){let a=e[0].dtype;if(a==="complex64"){let h=e.map(y=>$d({inputs:{input:y},backend:n})),m=e.map(y=>tg({inputs:{input:y},backend:n})),f=lc(h,t,n),g=lc(m,t,n),b=Rs({inputs:{real:f,imag:g},backend:n});return h.forEach(y=>n.disposeIntermediateTensorInfo(y)),m.forEach(y=>n.disposeIntermediateTensorInfo(y)),n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(g),b}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 ce({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,b=n9(m,f,a,g),y=N.computeOutShape(e.map(w=>w.shape),t),x=n.makeTensorInfo(y,a,b);return h.forEach(w=>n.disposeIntermediateTensorInfo(w)),x}let s=e.filter(h=>v.sizeFromShape(h.shape)>0),i=G().getBool("WEBGL_PACK_ARRAY_OPERATIONS")&&s[0].shape.length>1;if(s.length===1){let h=i?new ir(e[0].shape,ts):new is(e[0].shape,ts);return n.runWebGLProgram(h,e,a)}let o=G().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}=cte(s,t,n),p=new lte(l.map(h=>h.shape)),d=n.runWebGLProgram(p,l,a);l.forEach(h=>n.disposeIntermediateTensorInfo(h));let c=ce({inputs:{x:d},attrs:{shape:u},backend:n});return n.disposeIntermediateTensorInfo(d),c}function cte(e,t,n){let a=N.computeOutShape(e.map(r=>r.shape),t);return{tensors2D:e.map(r=>ce({inputs:{x:r},attrs:{shape:[-1,v.sizeFromShape(r.shape.slice(t))]},backend:n})),outShape:a}}function SA(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?ra({inputs:{x:l[0]},backend:n}):lc(l,s,n)}var dte={kernelName:du,backendName:"webgl",kernelFunc:SA},NA=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,b=f?2:3,y=f?3:1,x="",w="";n&&(a?x=`float activation(float a) { + `}};function jh(e,t,n){let a=e.indexOf(t);return e.map((r,s)=>s===a?`${r} - ${n}`:r).join()}function ng(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.texData.get(a.dataId);return ra({inputs:{x:r.complexTensorInfos.imag},backend:n})}var $te={kernelName:Gm,backendName:"webgl",kernelFunc:ng};function cc(e,t,n){let a=e[0].dtype;if(a==="complex64"){let h=e.map(y=>Od({inputs:{input:y},backend:n})),m=e.map(y=>ng({inputs:{input:y},backend:n})),f=cc(h,t,n),g=cc(m,t,n),b=Ms({inputs:{real:f,imag:g},backend:n});return h.forEach(y=>n.disposeIntermediateTensorInfo(y)),m.forEach(y=>n.disposeIntermediateTensorInfo(y)),n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(g),b}let r=n.shouldExecuteOnCPU(e);if(a==="string"&&(r=!0),r){let h=e.map(v=>{let I=[-1,w.sizeFromShape(v.shape.slice(t))];return ce({inputs:{x:v},backend:n,attrs:{shape:I}})}),m=h.map(v=>({vals:n.readSync(v.dataId),shape:v.shape})),f=N.computeOutShape(h.map(v=>v.shape),1),g=h[0].shape[0]===1,b=v9(m,f,a,g),y=N.computeOutShape(e.map(v=>v.shape),t),x=n.makeTensorInfo(y,a,b);return h.forEach(v=>n.disposeIntermediateTensorInfo(v)),x}let s=e.filter(h=>w.sizeFromShape(h.shape)>0),i=G().getBool("WEBGL_PACK_ARRAY_OPERATIONS")&&s[0].shape.length>1;if(s.length===1){let h=i?new ir(e[0].shape,ns):new os(e[0].shape,ns);return n.runWebGLProgram(h,e,a)}let o=G().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}=Dte(s,t,n),p=new Ate(l.map(h=>h.shape)),d=n.runWebGLProgram(p,l,a);l.forEach(h=>n.disposeIntermediateTensorInfo(h));let c=ce({inputs:{x:d},attrs:{shape:u},backend:n});return n.disposeIntermediateTensorInfo(d),c}function Dte(e,t,n){let a=N.computeOutShape(e.map(r=>r.shape),t);return{tensors2D:e.map(r=>ce({inputs:{x:r},attrs:{shape:[-1,w.sizeFromShape(r.shape.slice(t))]},backend:n})),outShape:a}}function RA(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a,s=w.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(w.sizeFromShape(o)===0)return n.makeTensorInfo(o,t[0].dtype,[]);let l=t.filter(u=>w.sizeFromShape(u.shape)>0);return l.length===1?ra({inputs:{x:l[0]},backend:n}):cc(l,s,n)}var Rte={kernelName:bu,backendName:"webgl",kernelFunc:RA},MA=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,b=f?2:3,y=f?3:1,x="",v="";n&&(a?x=`float activation(float a) { float b = getPreluActivationWeightsAtOutCoords(); ${n} }`:r?x=`float activation(float a) { @@ -2206,7 +2214,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,yee=Ye({opSnippet:bee}),xee={kernel float activation(float x) { ${n} } - `,w="result = activation(result);");let I=t?"result += getBiasAtOutCoords();":"";t&&this.variableNames.push("bias"),a&&this.variableNames.push("preluActivationWeights"),r&&this.variableNames.push("leakyreluAlpha"),this.userCode=` + `,v="result = activation(result);");let I=t?"result += getBiasAtOutCoords();":"";t&&this.variableNames.push("bias"),a&&this.variableNames.push("preluActivationWeights"),r&&this.variableNames.push("leakyreluAlpha"),this.userCode=` ${x} const ivec2 strides = ivec2(${o}, ${l}); @@ -2327,10 +2335,10 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,yee=Ye({opSnippet:bee}),xee={kernel float result = dotProd; ${I} - ${w} + ${v} setOutput(result); } - `}},hte=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=` + `}},Mte=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}); @@ -2418,7 +2426,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,yee=Ye({opSnippet:bee}),xee={kernel } setOutput(dotProd); } - `}},TA=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=vn(this.outputShape.length);let s=e.padInfo.left,i=e.strideWidth,o=e.dilationWidth,l=e.filterHeight,u=e.filterWidth,p=u,d=` + `}},PA=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=vn(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= 0 && xCOffset < inDims[1] && xTexelC${g+1}Ready == 0) { @@ -2614,7 +2622,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,yee=Ye({opSnippet:bee}),xee={kernel ${h} setOutput(result); } - `}},mte=class{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"inputShape",type:"ivec4"},{name:"pad",type:"ivec2"},{name:"stride",type:"ivec2"},{name:"dilation",type:"ivec2"},{name:"inChannels",type:"int"},{name:"itemsPerBlockRow",type:"int"},{name:"outWidth",type:"int"}],this.outputShape=e,this.enableShapeUniforms=vn(this.outputShape.length);let{dataFormat:n}=t,a=En(),r=n==="channelsLast",s=r?1:2,i=r?2:3,o=this.enableShapeUniforms?"if(blockIndex < outShape[2] && pos < outShape[1]) {":`if(blockIndex < ${e[2]} && pos < ${e[1]}) {`,l="";for(let u=0;u<=1;u++)for(let p=0;p<=1;p++)l+=` + `}},Pte=class{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"inputShape",type:"ivec4"},{name:"pad",type:"ivec2"},{name:"stride",type:"ivec2"},{name:"dilation",type:"ivec2"},{name:"inChannels",type:"int"},{name:"itemsPerBlockRow",type:"int"},{name:"outWidth",type:"int"}],this.outputShape=e,this.enableShapeUniforms=vn(this.outputShape.length);let{dataFormat:n}=t,a=En(),r=n==="channelsLast",s=r?1:2,i=r?2:3,o=this.enableShapeUniforms?"if(blockIndex < outShape[2] && pos < outShape[1]) {":`if(blockIndex < ${e[2]} && pos < ${e[1]}) {`,l="";for(let u=0;u<=1;u++)for(let p=0;p<=1;p++)l+=` blockIndex = rc.z + ${p}; pos = rc.y + ${u}; @@ -2661,7 +2669,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,yee=Ye({opSnippet:bee}),xee={kernel ${a.output} = result; } - `}};function Nm(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 CA({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,b=[];if(s!=null){let y=Nm(s.shape,h);y!=null&&(s=ce({inputs:{x:s},backend:a,attrs:{shape:y}}),b.push(s))}if(r!=null){let y=Nm(r.shape,h);y!=null&&(r=ce({inputs:{x:r},backend:a,attrs:{shape:y}}),b.push(r))}if(!((d===1||c===1)&&p>xA)&&u.isPacked&&h&&u.texture!=null&&l[2]%2!==0&&v.arraysEqual(u.shape.slice(-3),l.slice(-3))){let y=l[0]*l[1]*(l[2]+1),x={dataId:e.dataId,shape:[1,y,n.inChannels],dtype:e.dtype},w=u.shape;u.shape=u.shape.slice(),u.shape[u.shape.length-2]++,v.assert(Cc(u.shape,x.shape),()=>`packed reshape ${u.shape} to ${x.shape} isn't free`);let I=ce({inputs:{x:t},backend:a,attrs:{shape:[1,n.inChannels,n.outChannels]}});b.push(I);let T=Sm({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=ra({inputs:{x:T},backend:a}),g.shape=n.outShape,b.push(T)}else{let y=n.outHeight*n.outWidth,x=ce({inputs:{x:e},backend:a,attrs:{shape:h?[n.batchSize,y,n.inChannels]:[n.batchSize,n.inChannels,y]}}),w=ce({inputs:{x:t},backend:a,attrs:{shape:[1,n.inChannels,n.outChannels]}}),I=Sm({a:h?x:w,b:h?w:x,transposeA:!h,transposeB:f,backend:a,bias:r,activation:o,preluActivationWeights:s,leakyreluAlpha:i});g=ce({inputs:{x:I},backend:a,attrs:{shape:n.outShape}}),b.push(x),b.push(w),b.push(I)}for(let y of b)a.disposeIntermediateTensorInfo(y);return g}function _A({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,b=[n.batchSize,f,g],y=!0,x=!1,w=[];if(s!=null){let K=Nm(s.shape,m);K!=null&&(s=ce({inputs:{x:s},backend:a,attrs:{shape:K}}),w.push(s))}if(r!=null){let K=Nm(r.shape,m);K!=null&&(r=ce({inputs:{x:r},backend:a,attrs:{shape:K}}),w.push(r))}let I=ce({inputs:{x:t},backend:a,attrs:{shape:[1,f,v.sizeFromShape(t.shape)/f]}});w.push(I);let T=new mte(b,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),F=ce({inputs:{x:E},backend:a,attrs:{shape:b}});w.push(E),w.push(F);let D=r!=null,$=s!=null,S=o==="leakyrelu",M=o?_c(o,!0):null,B=new yA(m?F.shape:I.shape,m?I.shape:F.shape,m?[n.batchSize,g,n.outChannels]:[n.batchSize,n.outChannels,g],y,x,D,M,$,S),U=m?[F,I]:[I,F];if(r&&U.push(r),$&&U.push(s),S){let K=a.makeTensorInfo([],"float32",v.createScalarValue(i,"float32"));U.push(K),w.push(K)}let H=a.runWebGLProgram(B,U,"float32"),j=ce({inputs:{x:H},backend:a,attrs:{shape:n.outShape}});w.push(H);for(let K of w)a.disposeIntermediateTensorInfo(K);return j}function fte(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=CA({x:r,filter:s,convInfo:c,backend:n});else if(c.strideWidth<=2&&d==="channelsLast"&&G().getBool("WEBGL_EXP_CONV")){let f=new TA(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(G().getBool("WEBGL_CONV_IM2COL"))h=_A({x:r,filter:s,convInfo:c,backend:n});else{let f=new NA(c);h=n.runWebGLProgram(f,[r,s],"float32")}let m=ce({inputs:{x:h},backend:n,attrs:{shape:c.outShape}});return n.disposeIntermediateTensorInfo(h),m}var gte={kernelName:Pi,backendName:"webgl",kernelFunc:fte},bte=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 Am(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 OA({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,b=[];if(s!=null){let y=Am(s.shape,h);y!=null&&(s=ce({inputs:{x:s},backend:a,attrs:{shape:y}}),b.push(s))}if(r!=null){let y=Am(r.shape,h);y!=null&&(r=ce({inputs:{x:r},backend:a,attrs:{shape:y}}),b.push(r))}if(!((d===1||c===1)&&p>EA)&&u.isPacked&&h&&u.texture!=null&&l[2]%2!==0&&w.arraysEqual(u.shape.slice(-3),l.slice(-3))){let y=l[0]*l[1]*(l[2]+1),x={dataId:e.dataId,shape:[1,y,n.inChannels],dtype:e.dtype},v=u.shape;u.shape=u.shape.slice(),u.shape[u.shape.length-2]++,w.assert(Ac(u.shape,x.shape),()=>`packed reshape ${u.shape} to ${x.shape} isn't free`);let I=ce({inputs:{x:t},backend:a,attrs:{shape:[1,n.inChannels,n.outChannels]}});b.push(I);let T=Em({a:x,b:I,backend:a,transposeA:m,transposeB:f,bias:r,activation:o,preluActivationWeights:s,leakyreluAlpha:i}),C=a.texData.get(T.dataId);w.assert(C.isPacked,()=>"batchMatMul result is expected to be packed"),u.shape=v,C.shape=n.outShape,g=ra({inputs:{x:T},backend:a}),g.shape=n.outShape,b.push(T)}else{let y=n.outHeight*n.outWidth,x=ce({inputs:{x:e},backend:a,attrs:{shape:h?[n.batchSize,y,n.inChannels]:[n.batchSize,n.inChannels,y]}}),v=ce({inputs:{x:t},backend:a,attrs:{shape:[1,n.inChannels,n.outChannels]}}),I=Em({a:h?x:v,b:h?v:x,transposeA:!h,transposeB:f,backend:a,bias:r,activation:o,preluActivationWeights:s,leakyreluAlpha:i});g=ce({inputs:{x:I},backend:a,attrs:{shape:n.outShape}}),b.push(x),b.push(v),b.push(I)}for(let y of b)a.disposeIntermediateTensorInfo(y);return g}function LA({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,b=[n.batchSize,f,g],y=!0,x=!1,v=[];if(s!=null){let K=Am(s.shape,m);K!=null&&(s=ce({inputs:{x:s},backend:a,attrs:{shape:K}}),v.push(s))}if(r!=null){let K=Am(r.shape,m);K!=null&&(r=ce({inputs:{x:r},backend:a,attrs:{shape:K}}),v.push(r))}let I=ce({inputs:{x:t},backend:a,attrs:{shape:[1,f,w.sizeFromShape(t.shape)/f]}});v.push(I);let T=new Pte(b,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),F=ce({inputs:{x:E},backend:a,attrs:{shape:b}});v.push(E),v.push(F);let D=r!=null,$=s!=null,S=o==="leakyrelu",M=o?Fc(o,!0):null,B=new _A(m?F.shape:I.shape,m?I.shape:F.shape,m?[n.batchSize,g,n.outChannels]:[n.batchSize,n.outChannels,g],y,x,D,M,$,S),U=m?[F,I]:[I,F];if(r&&U.push(r),$&&U.push(s),S){let K=a.makeTensorInfo([],"float32",w.createScalarValue(i,"float32"));U.push(K),v.push(K)}let H=a.runWebGLProgram(B,U,"float32"),j=ce({inputs:{x:H},backend:a,attrs:{shape:n.outShape}});v.push(H);for(let K of v)a.disposeIntermediateTensorInfo(K);return j}function Ote(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=OA({x:r,filter:s,convInfo:c,backend:n});else if(c.strideWidth<=2&&d==="channelsLast"&&G().getBool("WEBGL_EXP_CONV")){let f=new PA(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(G().getBool("WEBGL_CONV_IM2COL"))h=LA({x:r,filter:s,convInfo:c,backend:n});else{let f=new MA(c);h=n.runWebGLProgram(f,[r,s],"float32")}let m=ce({inputs:{x:h},backend:n,attrs:{shape:c.outShape}});return n.disposeIntermediateTensorInfo(h),m}var Lte={kernelName:Li,backendName:"webgl",kernelFunc:Ote},zte=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; @@ -2698,7 +2706,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,yee=Ye({opSnippet:bee}),xee={kernel } setOutput(dotProd); } - `}},yte=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=` + `}},Wte=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() { @@ -2751,7 +2759,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,yee=Ye({opSnippet:bee}),xee={kernel } setOutput(dotProd); } - `}},xte=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=` + `}},Bte=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; @@ -2793,7 +2801,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,yee=Ye({opSnippet:bee}),xee={kernel } setOutput(dotProd); } - `}},vte=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=` + `}},Vte=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() { @@ -2850,7 +2858,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,yee=Ye({opSnippet:bee}),xee={kernel } setOutput(dotProd); } - `}};function wte(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 bte(c);return n.runWebGLProgram(h,[r,s],"float32")}var kte={kernelName:Mm,backendName:"webgl",kernelFunc:wte},Ite=class{constructor(e){this.variableNames=["dy","W"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"strides",type:"vec2"}],this.outputShape=e.inShape,this.enableShapeUniforms=vn(this.outputShape.length);let t=e.filterHeight,n=e.filterWidth,a=t-1-e.padInfo.top,r=n-1-e.padInfo.left;this.userCode=` + `}};function Ute(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 zte(c);return n.runWebGLProgram(h,[r,s],"float32")}var Gte={kernelName:Lm,backendName:"webgl",kernelFunc:Ute},Hte=class{constructor(e){this.variableNames=["dy","W"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"strides",type:"vec2"}],this.outputShape=e.inShape,this.enableShapeUniforms=vn(this.outputShape.length);let t=e.filterHeight,n=e.filterWidth,a=t-1-e.padInfo.top,r=n-1-e.padInfo.left;this.userCode=` const ivec2 pads = ivec2(${a}, ${r}); void main() { @@ -2924,17 +2932,17 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,yee=Ye({opSnippet:bee}),xee={kernel } setOutput(result); } - `}};function Ste(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);if(G().getBool("WEBGL_PACK")&&d==="channelsLast"){let h=[[c.strideHeight,c.strideWidth]],m=new Ite(c);return n.runWebGLProgram(m,[r,s],"float32",h)}else{let h=new yte(c);return n.runWebGLProgram(h,[r,s],"float32")}}var Nte={kernelName:Oi,backendName:"webgl",kernelFunc:Ste};function Tte(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 hte(u);return n.runWebGLProgram(p,[r,s],"float32")}var Cte={kernelName:Li,backendName:"webgl",kernelFunc:Tte};function _te(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 xte(u);return n.runWebGLProgram(p,[r,s],"float32")}var Ete={kernelName:hu,backendName:"webgl",kernelFunc:_te};function Ate(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 vte(u);return n.runWebGLProgram(p,[r,s],"float32")}var Fte={kernelName:mu,backendName:"webgl",kernelFunc:Ate},$te=Ip+` + `}};function qte(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);if(G().getBool("WEBGL_PACK")&&d==="channelsLast"){let h=[[c.strideHeight,c.strideWidth]],m=new Hte(c);return n.runWebGLProgram(m,[r,s],"float32",h)}else{let h=new Wte(c);return n.runWebGLProgram(h,[r,s],"float32")}}var jte={kernelName:zi,backendName:"webgl",kernelFunc:qte};function Kte(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 Mte(u);return n.runWebGLProgram(p,[r,s],"float32")}var Xte={kernelName:Wi,backendName:"webgl",kernelFunc:Kte};function Yte(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 Bte(u);return n.runWebGLProgram(p,[r,s],"float32")}var Zte={kernelName:yu,backendName:"webgl",kernelFunc:Yte};function Jte(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 Vte(u);return n.runWebGLProgram(p,[r,s],"float32")}var Qte={kernelName:xu,backendName:"webgl",kernelFunc:Jte},ene=Tp+` return cos(x); -`,Dte=` +`,tne=` vec4 result = cos(x); bvec4 isNaN = isnan(x); - ${Xo} + ${el} return result; -`,Rte=Ye({opSnippet:$te,packedOpSnippet:Dte}),Mte={kernelName:zi,backendName:"webgl",kernelFunc:Rte},Pte=` +`,nne=Ze({opSnippet:ene,packedOpSnippet:tne}),ane={kernelName:Bi,backendName:"webgl",kernelFunc:nne},rne=` float e2x = exp(-x); return (e2x + 1.0 / e2x) / 2.0; -`,Ote=Ye({opSnippet:Pte}),Lte={kernelName:Wi,backendName:"webgl",kernelFunc:Ote},zte=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,b]=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}`],[y,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=` +`,sne=Ze({opSnippet:rne}),ine={kernelName:Vi,backendName:"webgl",kernelFunc:sne},one=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,b]=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}`],[y,x,v]=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(${y}); void main() { @@ -2964,7 +2972,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,yee=Ye({opSnippet:bee}),xee={kernel setOutput(float(${r})); return; } - float in_x = ${w}; + float in_x = ${v}; if( in_x < 0.0 || in_x > ${m} ) { setOutput(float(${r})); return; @@ -2995,20 +3003,20 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,yee=Ye({opSnippet:bee}),xee={kernel setOutput(newValue); } } - `}},Wte=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 zte(r.shape,s.shape,o,l,u);return n.runWebGLProgram(p,[r,s,i],"float32")},Bte={kernelName:gu,backendName:"webgl",kernelFunc:Wte},Ac;(function(e){e.Prod="*",e.Sum="+"})(Ac||(Ac={}));var xS=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(${vS(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=` + `}},lne=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 one(r.shape,s.shape,o,l,u);return n.runWebGLProgram(p,[r,s,i],"float32")},une={kernelName:wu,backendName:"webgl",kernelFunc:lne},Dc;(function(e){e.Prod="*",e.Sum="+"})(Dc||(Dc={}));var _S=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===Dc.Prod?"1.0":"0.0",i=n?s:`getX(${ES(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() { ${dt(r)} coords = getOutputCoords(); - int end = ${wS(r,"coords",this.op)}; + int end = ${AS(r,"coords",this.op)}; float val = ${i}; int pow2 = int(pow(2.0, index)); if (${l}) { int idx = ${u}; - ${wS(r,"coords",this.op)} = idx; - val ${this.op}= getX(${vS(r,"coords",this.op)}); + ${AS(r,"coords",this.op)} = idx; + val ${this.op}= getX(${ES(r,"coords",this.op)}); } setOutput(val); } - `}};function vS(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 wS(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 EA(e,t,n,a,r,s){let i=t.shape.length,o=N.getAxesPermutation([a],i),l=t;o!=null&&(l=Nn({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=ra({inputs:{x:l},backend:n});for(let c=0;c<=Math.ceil(Math.log2(p))-1;c++){let h=new xS(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 xS(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=Nn({inputs:{x:d},backend:n,attrs:{perm:c}});return n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(l),h}return d}function Vte(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,exclusive:i,reverse:o}=a;return EA(Ac.Prod,r,n,s,i,o)}var Ute={kernelName:fu,backendName:"webgl",kernelFunc:Vte};function Gte(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,exclusive:i,reverse:o}=a;return EA(Ac.Sum,r,n,s,i,o)}var Hte={kernelName:Bi,backendName:"webgl",kernelFunc:Gte};function qte(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=lA(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=QJ(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 jte={kernelName:Oc,backendName:"webgl",kernelFunc:qte},Kte=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=[],this.outputShape=e,this.blockSize=t,this.dataFormat=n,this.userCode=` + `}};function ES(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 AS(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 zA(e,t,n,a,r,s){let i=t.shape.length,o=N.getAxesPermutation([a],i),l=t;o!=null&&(l=Nn({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=ra({inputs:{x:l},backend:n});for(let c=0;c<=Math.ceil(Math.log2(p))-1;c++){let h=new _S(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 _S(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=Nn({inputs:{x:d},backend:n,attrs:{perm:c}});return n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(l),h}return d}function pne(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,exclusive:i,reverse:o}=a;return zA(Dc.Prod,r,n,s,i,o)}var cne={kernelName:vu,backendName:"webgl",kernelFunc:pne};function dne(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,exclusive:i,reverse:o}=a;return zA(Dc.Sum,r,n,s,i,o)}var hne={kernelName:Ui,backendName:"webgl",kernelFunc:dne};function mne(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=yA(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=g9(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 fne={kernelName:Bc,backendName:"webgl",kernelFunc:mne},gne=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]; @@ -3027,7 +3035,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,yee=Ye({opSnippet:bee}),xee={kernel 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 Xte(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 Kte(m,s,i);return n.runWebGLProgram(f,[r],r.dtype)}var Yte={kernelName:bu,backendName:"webgl",kernelFunc:Xte},AA=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=vn(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 bne(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 gne(m,s,i);return n.runWebGLProgram(f,[r],r.dtype)}var yne={kernelName:ku,backendName:"webgl",kernelFunc:bne},WA=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=vn(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) { @@ -3080,7 +3088,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,yee=Ye({opSnippet:bee}),xee={kernel ${u} setOutput(result); } - `}},FA=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=vn(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=` + `}},BA=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=vn(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= 0 && xCOffset < inDims[1] && xTexelC${b+1}Ready == 0) { @@ -3269,7 +3277,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,yee=Ye({opSnippet:bee}),xee={kernel ${m} setOutput(result); } - `}};function Zte(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;G().getBool("WEBGL_PACK_DEPTHWISECONV")&&d.strideWidth<=2&&d.outChannels/d.inChannels===1?c=new FA(d):c=new AA(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 Jte={kernelName:Vi,backendName:"webgl",kernelFunc:Zte},Qte=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 xne(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]),w.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;G().getBool("WEBGL_PACK_DEPTHWISECONV")&&d.strideWidth<=2&&d.outChannels/d.inChannels===1?c=new BA(d):c=new WA(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 vne={kernelName:Gi,backendName:"webgl",kernelFunc:xne},wne=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; @@ -3304,7 +3312,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,yee=Ye({opSnippet:bee}),xee={kernel } setOutput(dotProd); } - `}},ene=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=` + `}},kne=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() { @@ -3349,13 +3357,13 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,yee=Ye({opSnippet:bee}),xee={kernel } setOutput(dotProd); } - `}};function tne(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 Qte(d);return n.runWebGLProgram(c,[r,s],"float32")}var nne={kernelName:Pm,backendName:"webgl",kernelFunc:tne};function ane(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 ene(d);return n.runWebGLProgram(c,[r,s],"float32")}var rne={kernelName:Om,backendName:"webgl",kernelFunc:ane},sne=class{constructor(e){this.variableNames=["X"],this.outputShape=[e,e],this.userCode=` + `}};function Ine(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 wne(d);return n.runWebGLProgram(c,[r,s],"float32")}var Sne={kernelName:zm,backendName:"webgl",kernelFunc:Ine};function Nne(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 kne(d);return n.runWebGLProgram(c,[r,s],"float32")}var Tne={kernelName:Wm,backendName:"webgl",kernelFunc:Nne},Cne=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 ine(e){let{inputs:t,backend:n}=e,{x:a}=t,r=[...a.shape,...a.shape],s=v.sizeFromShape(a.shape),i=ce({inputs:{x:a},backend:n,attrs:{shape:[s]}}),o=new sne(s),l=n.runWebGLProgram(o,[i],i.dtype),u=ce({inputs:{x:l},backend:n,attrs:{shape:r}});return n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(l),u}var one={kernelName:Lc,backendName:"webgl",kernelFunc:ine},lne=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 _ne(e){let{inputs:t,backend:n}=e,{x:a}=t,r=[...a.shape,...a.shape],s=w.sizeFromShape(a.shape),i=ce({inputs:{x:a},backend:n,attrs:{shape:[s]}}),o=new Cne(s),l=n.runWebGLProgram(o,[i],i.dtype),u=ce({inputs:{x:l},backend:n,attrs:{shape:r}});return n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(l),u}var Ene={kernelName:Vc,backendName:"webgl",kernelFunc:_ne},Ane=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; @@ -3393,7 +3401,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,yee=Ye({opSnippet:bee}),xee={kernel float result = curVal; setOutput(result); } - `}};function une(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 lne(u);p=n.runWebGLProgram(d,[r,s],"float32");let c=ce({inputs:{x:p},backend:n,attrs:{shape:u.outShape}});return n.disposeIntermediateTensorInfo(p),c}var pne={kernelName:Ui,backendName:"webgl",kernelFunc:une};function cne(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=eg({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 dne={kernelName:Lm,backendName:"webgl",kernelFunc:cne},hne="return (x >= 0.0) ? x : (exp(x) - 1.0);",mne=` + `}};function Fne(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 Ane(u);p=n.runWebGLProgram(d,[r,s],"float32");let c=ce({inputs:{x:p},backend:n,attrs:{shape:u.outShape}});return n.disposeIntermediateTensorInfo(p),c}var $ne={kernelName:Hi,backendName:"webgl",kernelFunc:Fne};function Dne(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=tg({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 Rne={kernelName:Bm,backendName:"webgl",kernelFunc:Dne},Mne="return (x >= 0.0) ? x : (exp(x) - 1.0);",Pne=` vec4 result; result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0); @@ -3402,12 +3410,12 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,yee=Ye({opSnippet:bee}),xee={kernel result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0); return result; -`,fne=Ye({opSnippet:hne,packedOpSnippet:mne}),gne={kernelName:Hi,backendName:"webgl",kernelFunc:fne},bne="return (b >= 0.0) ? a : a * (b + 1.0);",yne=` +`,One=Ze({opSnippet:Mne,packedOpSnippet:Pne}),Lne={kernelName:ji,backendName:"webgl",kernelFunc:One},zne="return (b >= 0.0) ? a : a * (b + 1.0);",Wne=` vec4 bGTEZero = vec4(greaterThanEqual(b, vec4(0.))); return (bGTEZero * a) + ((vec4(1.0) - bGTEZero) * (a * (b + vec4(1.0)))); -`,xne=e=>{let{inputs:t,backend:n}=e,{dy:a,y:r}=t,s=G().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Fd(yne,a.shape,r.shape):new nu(bne,a.shape,r.shape);return n.runWebGLProgram(s,[a,r],a.dtype)},vne={kernelName:yu,backendName:"webgl",kernelFunc:xne},wne=` +`,Bne=e=>{let{inputs:t,backend:n}=e,{dy:a,y:r}=t,s=G().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Np(Wne,a.shape,r.shape):new Ii(zne,a.shape,r.shape);return n.runWebGLProgram(s,[a,r],a.dtype)},Vne={kernelName:Iu,backendName:"webgl",kernelFunc:Bne},Une=` return vec4(equal(a, b)); -`,kne="return float(a == b);",Ine=fn({opSnippet:kne,packedOpSnippet:wne,dtype:"bool",cpuKernelImpl:a9}),Sne={kernelName:vu,backendName:"webgl",kernelFunc:Ine},Nne=` +`,Gne="return float(a == b);",Hne=fn({opSnippet:Gne,packedOpSnippet:Une,dtype:"bool",cpuKernelImpl:w9}),qne={kernelName:Su,backendName:"webgl",kernelFunc:Hne},jne=` // Error function is calculated approximately with elementary function. // See "Handbook of Mathematical Functions with Formulas, // Graphs, and Mathematical Tables", Abramowitz and Stegun. @@ -3422,9 +3430,9 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,yee=Ye({opSnippet:bee}),xee={kernel 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)); -`,Tne=Ye({opSnippet:Nne}),Cne={kernelName:xu,backendName:"webgl",kernelFunc:Tne},_ne=Ip+` +`,Kne=Ze({opSnippet:jne}),Xne={kernelName:Ki,backendName:"webgl",kernelFunc:Kne},Yne=Tp+` return exp(x); -`,Ene=` +`,Zne=` vec4 result = exp(x); bvec4 isNaN = isnan(x); result.r = isNaN.r ? x.r : result.r; @@ -3433,7 +3441,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,yee=Ye({opSnippet:bee}),xee={kernel result.a = isNaN.a ? x.a : result.a; return result; -`,$A=Ye({opSnippet:_ne,packedOpSnippet:Ene,cpuKernelImpl:r9,dtype:"float32"}),Ane={kernelName:qi,backendName:"webgl",kernelFunc:$A};function pv(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),ce({inputs:{x:s},backend:a,attrs:{shape:o}})}var Fne={kernelName:wu,backendName:"webgl",kernelFunc:pv},kS="return exp(x) - 1.0;",$ne=Ye({opSnippet:kS,packedOpSnippet:kS,cpuKernelImpl:s9}),Dne={kernelName:ji,backendName:"webgl",kernelFunc:$ne},IS=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=` +`,VA=Ze({opSnippet:Yne,packedOpSnippet:Zne,cpuKernelImpl:k9,dtype:"float32"}),Jne={kernelName:Xi,backendName:"webgl",kernelFunc:VA};function yv(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&&(w.assert(-(i+1)<=r,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),l=i+r+1),o.splice(l,0,1),ce({inputs:{x:s},backend:a,attrs:{shape:o}})}var Qne={kernelName:Nu,backendName:"webgl",kernelFunc:yv},FS="return exp(x) - 1.0;",eae=Ze({opSnippet:FS,packedOpSnippet:FS,cpuKernelImpl:I9}),tae={kernelName:Yi,backendName:"webgl",kernelFunc:eae},$S=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) { @@ -3466,12 +3474,12 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,yee=Ye({opSnippet:bee}),xee={kernel ivec2 coords = getOutputCoords(); setOutput(mulMatDFT(coords[0], coords[1])); } - `}};function DA(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=ce({inputs:{x:e},backend:n,attrs:{shape:[i,s]}}),l=o.shape,u=new IS("real",l,t),p=new IS("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=Rs({inputs:{real:c,imag:h},backend:n});n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h);let f=ce({inputs:{x:m},backend:n,attrs:{shape:e.shape}});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(m),f}function Rne(e){let{inputs:t,backend:n}=e,{input:a}=t;return DA(a,!1,n)}var Mne={kernelName:zm,backendName:"webgl",kernelFunc:Rne},Pne=class{constructor(e,t){this.outputShape=[],this.customUniforms=[{name:"value",type:"float"}],this.variableNames=["x"],this.outputShape=e,this.userCode=` + `}};function UA(e,t,n){let a=n.texData.get(e.dataId),r=w.sizeFromShape(e.shape),s=e.shape[e.shape.length-1],i=r/s,o=ce({inputs:{x:e},backend:n,attrs:{shape:[i,s]}}),l=o.shape,u=new $S("real",l,t),p=new $S("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=Ms({inputs:{real:c,imag:h},backend:n});n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h);let f=ce({inputs:{x:m},backend:n,attrs:{shape:e.shape}});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(m),f}function nae(e){let{inputs:t,backend:n}=e,{input:a}=t;return UA(a,!1,n)}var aae={kernelName:Vm,backendName:"webgl",kernelFunc:nae},rae=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 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 Pne(a,r),o=[[r]];return t.runWebGLProgram(i,[],s,o)}}var One={kernelName:zc,backendName:"webgl",kernelFunc:Dd},Lne=class{constructor(e){this.variableNames=["Image"],this.outputShape=[];let t=e[2];this.outputShape=e,this.userCode=` + `}};function Ld(e){let{backend:t,attrs:n}=e,{shape:a,value:r}=n,{dtype:s}=n;if(s=s||w.inferDtype(r),s==="string"){let i=w.getArrayFromDType(s,w.sizeFromShape(a));return i.fill(r),t.makeTensorInfo(a,s,i)}else{let i=new rae(a,r),o=[[r]];return t.runWebGLProgram(i,[],s,o)}}var sae={kernelName:Uc,backendName:"webgl",kernelFunc:Ld},iae=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]; @@ -3485,7 +3493,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,yee=Ye({opSnippet:bee}),xee={kernel } setOutput(outputValue); } - `}},zne={kernelName:ku,backendName:"webgl",kernelFunc:({inputs:e,backend:t})=>{let{image:n}=e,a=t,r=new Lne(n.shape);return a.runWebGLProgram(r,[n],n.dtype)}},SS="return floor(x);",Wne=Ye({opSnippet:SS,packedOpSnippet:SS,cpuKernelImpl:i9}),Bne={kernelName:Ki,backendName:"webgl",kernelFunc:Wne},Vne=` + `}},oae={kernelName:Tu,backendName:"webgl",kernelFunc:({inputs:e,backend:t})=>{let{image:n}=e,a=t,r=new iae(n.shape);return a.runWebGLProgram(r,[n],n.dtype)}},DS="return floor(x);",lae=Ze({opSnippet:DS,packedOpSnippet:DS,cpuKernelImpl:S9}),uae={kernelName:Zi,backendName:"webgl",kernelFunc:lae},pae=` float s = sign(a) * sign(b); int ia = round(a); int ib = round(b); @@ -3495,7 +3503,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,yee=Ye({opSnippet:bee}),xee={kernel } else { return NAN; } -`,Une=` +`,cae=` ivec4 ia = round(a); ivec4 ib = round(b); bvec4 cond = notEqual(ib, ivec4(0)); @@ -3516,7 +3524,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,yee=Ye({opSnippet:bee}),xee={kernel result[3] = idiv(ia[3], ib[3], s[3]); } return vec4(result); -`,Gne=fn({opSnippet:Vne,packedOpSnippet:Une,dtype:"int32"}),Hne={kernelName:Xi,backendName:"webgl",kernelFunc:Gne},qne=class{constructor(e){this.variableNames=["A"];let t=En(),[n,a]=e;this.outputShape=e,this.userCode=` +`,dae=fn({opSnippet:pae,packedOpSnippet:cae,dtype:"int32"}),hae={kernelName:Ji,backendName:"webgl",kernelFunc:dae},mae=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]; @@ -3538,7 +3546,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,yee=Ye({opSnippet:bee}),xee={kernel setOutput(floor(value * 255.0 + 0.5)); } - `}},jne=class{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;let t=En(),[n,a]=e;this.outputShape=e,this.userCode=` + `}},fae=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]; @@ -3572,7 +3580,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,yee=Ye({opSnippet:bee}),xee={kernel ${t.output} = result; } - `}},Kne={kernelName:tm,backendName:"webgl",kernelFunc:Xne},El,bx=G().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");function Xne(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=G().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");(El==null||f!==bx)&&(bx=f,El=document.createElement("canvas").getContext("2d",{willReadFrequently:bx})),El.canvas.width=l,El.canvas.height=u,El.drawImage(r,0,0,l,u),r=El.canvas}let c=n.makeTensorInfo(p,"int32");n.texData.get(c.dataId).usage=ha.PIXELS,n.gpgpu.uploadPixelDataToTexture(n.getTexture(c.dataId),r);let h=G().getBool("WEBGL_PACK")?new jne(d):new qne(d),m=n.runWebGLProgram(h,[c],"int32");return n.disposeData(c.dataId),m}function Yne(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),b,y=[],x=i!=null,w=o!=null,I=h==="leakyrelu",T=()=>{let E=[r,s],F=(D,$)=>{if($==="NCHW"&&D.shape.length===1&&D.shape[0]!==1){let S=ce({inputs:{x:D},backend:n,attrs:{shape:[D.shape[0],1,1]}});return y.push(S),S}return D};if(x&&E.push(F(i,p)),w&&E.push(F(o,p)),I){let D=n.makeTensorInfo([],"float32",v.createScalarValue(m,"float32"));E.push(D),y.push(D)}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"))b=CA({x:r,filter:s,convInfo:g,backend:n,bias:i,activation:h,preluActivationWeights:o,leakyreluAlpha:m});else if(g.strideWidth<=2&&f==="channelsLast"&&G().getBool("WEBGL_EXP_CONV")){let E=h?_c(h,!0):null,F=new TA(g,x,E,w,I),D=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],$=T();b=n.runWebGLProgram(F,$,"float32",D)}else if(G().getBool("WEBGL_CONV_IM2COL"))b=_A({x:r,filter:s,convInfo:g,backend:n,bias:i,activation:h,preluActivationWeights:o,leakyreluAlpha:m});else{let E=h?_c(h,!1):null,F=new NA(g,x,E,w,I),D=T();b=n.runWebGLProgram(F,D,"float32")}let C=ce({inputs:{x:b},backend:n,attrs:{shape:g.outShape}});return y.push(b),y.forEach(E=>n.disposeIntermediateTensorInfo(E)),C}var Zne={kernelName:oi,backendName:"webgl",kernelFunc:Yne};function Jne(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),b=G().getBool("WEBGL_PACK_DEPTHWISECONV")&&g.strideWidth<=2&&g.outChannels/g.inChannels===1,y=c?_c(c,b):null,x=[r,s],w=i!=null,I=o!=null,T=c==="leakyrelu";if(w&&x.push(i),I&&x.push(o),T){let D=n.makeTensorInfo([],"float32",v.createScalarValue(h,"float32"));x.push(D),m.push(D)}let C;b?C=new FA(g,w,y,I,T):C=new AA(g,w,y,I,T);let E=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],F=n.runWebGLProgram(C,x,"float32",E);return m.forEach(D=>n.disposeIntermediateTensorInfo(D)),F}var Qne={kernelName:li,backendName:"webgl",kernelFunc:Jne},eae=class{constructor(e,t,n,a){this.sliceDim=e,this.strides=t,this.paramsShape=a,this.variableNames=["x","indices"],this.outputShape=n;let r=dt(n.length),s=` + `}},gae={kernelName:im,backendName:"webgl",kernelFunc:bae},Rl,Nx=G().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");function bae(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=G().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");(Rl==null||f!==Nx)&&(Nx=f,Rl=document.createElement("canvas").getContext("2d",{willReadFrequently:Nx})),Rl.canvas.width=l,Rl.canvas.height=u,Rl.drawImage(r,0,0,l,u),r=Rl.canvas}let c=n.makeTensorInfo(p,"int32");n.texData.get(c.dataId).usage=ha.PIXELS,n.gpgpu.uploadPixelDataToTexture(n.getTexture(c.dataId),r);let h=G().getBool("WEBGL_PACK")?new fae(d):new mae(d),m=n.runWebGLProgram(h,[c],"int32");return n.disposeData(c.dataId),m}function yae(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),b,y=[],x=i!=null,v=o!=null,I=h==="leakyrelu",T=()=>{let E=[r,s],F=(D,$)=>{if($==="NCHW"&&D.shape.length===1&&D.shape[0]!==1){let S=ce({inputs:{x:D},backend:n,attrs:{shape:[D.shape[0],1,1]}});return y.push(S),S}return D};if(x&&E.push(F(i,p)),v&&E.push(F(o,p)),I){let D=n.makeTensorInfo([],"float32",w.createScalarValue(m,"float32"));E.push(D),y.push(D)}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"))b=OA({x:r,filter:s,convInfo:g,backend:n,bias:i,activation:h,preluActivationWeights:o,leakyreluAlpha:m});else if(g.strideWidth<=2&&f==="channelsLast"&&G().getBool("WEBGL_EXP_CONV")){let E=h?Fc(h,!0):null,F=new PA(g,x,E,v,I),D=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],$=T();b=n.runWebGLProgram(F,$,"float32",D)}else if(G().getBool("WEBGL_CONV_IM2COL"))b=LA({x:r,filter:s,convInfo:g,backend:n,bias:i,activation:h,preluActivationWeights:o,leakyreluAlpha:m});else{let E=h?Fc(h,!1):null,F=new MA(g,x,E,v,I),D=T();b=n.runWebGLProgram(F,D,"float32")}let C=ce({inputs:{x:b},backend:n,attrs:{shape:g.outShape}});return y.push(b),y.forEach(E=>n.disposeIntermediateTensorInfo(E)),C}var xae={kernelName:li,backendName:"webgl",kernelFunc:yae};function vae(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]),w.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),b=G().getBool("WEBGL_PACK_DEPTHWISECONV")&&g.strideWidth<=2&&g.outChannels/g.inChannels===1,y=c?Fc(c,b):null,x=[r,s],v=i!=null,I=o!=null,T=c==="leakyrelu";if(v&&x.push(i),I&&x.push(o),T){let D=n.makeTensorInfo([],"float32",w.createScalarValue(h,"float32"));x.push(D),m.push(D)}let C;b?C=new BA(g,v,y,I,T):C=new WA(g,v,y,I,T);let E=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],F=n.runWebGLProgram(C,x,"float32",E);return m.forEach(D=>n.disposeIntermediateTensorInfo(D)),F}var wae={kernelName:ui,backendName:"webgl",kernelFunc:vae},kae=class{constructor(e,t,n,a){this.sliceDim=e,this.strides=t,this.paramsShape=a,this.variableNames=["x","indices"],this.outputShape=n;let r=dt(n.length),s=` int index;`;for(let i=0;i= 0) && (index < ${e[2]}) ? 1.0 : 0.0; setOutput(inBounds * getA(${a})); } - `}};function rae(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=ce({inputs:{x:r},backend:n,attrs:{shape:[u.batchSize,u.outerSize,u.dimSize,u.sliceSize]}}),h=ce({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 y=n.bufferSync(h),x=n.bufferSync(c),w=l9(x,y,m);return d.forEach(I=>n.disposeIntermediateTensorInfo(I)),n.makeTensorInfo(u.outputShape,w.dtype,w.values)}let f=new aae(c.shape,m),g=n.runWebGLProgram(f,[c,h],c.dtype);d.push(g);let b=ce({inputs:{x:g},backend:n,attrs:{shape:u.outputShape}});return d.forEach(y=>n.disposeIntermediateTensorInfo(y)),b}var sae={kernelName:Iu,backendName:"webgl",kernelFunc:RA},iae="return float(a > b);",oae=` + `}};function Tae(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=w.sizeFromShape(s.shape),d=[],c=ce({inputs:{x:r},backend:n,attrs:{shape:[u.batchSize,u.outerSize,u.dimSize,u.sliceSize]}}),h=ce({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 y=n.bufferSync(h),x=n.bufferSync(c),v=T9(x,y,m);return d.forEach(I=>n.disposeIntermediateTensorInfo(I)),n.makeTensorInfo(u.outputShape,v.dtype,v.values)}let f=new Nae(c.shape,m),g=n.runWebGLProgram(f,[c,h],c.dtype);d.push(g);let b=ce({inputs:{x:g},backend:n,attrs:{shape:u.outputShape}});return d.forEach(y=>n.disposeIntermediateTensorInfo(y)),b}var Cae={kernelName:Cu,backendName:"webgl",kernelFunc:GA},_ae="return float(a > b);",Eae=` return vec4(greaterThan(a, b)); -`,lae=fn({opSnippet:iae,packedOpSnippet:oae,cpuKernelImpl:u9,dtype:"bool"}),uae={kernelName:Nu,backendName:"webgl",kernelFunc:lae},pae="return float(a >= b);",cae=` +`,Aae=fn({opSnippet:_ae,packedOpSnippet:Eae,cpuKernelImpl:C9,dtype:"bool"}),Fae={kernelName:Eu,backendName:"webgl",kernelFunc:Aae},$ae="return float(a >= b);",Dae=` return vec4(greaterThanEqual(a, b)); -`,dae=fn({opSnippet:pae,packedOpSnippet:cae,dtype:"bool",cpuKernelImpl:p9}),hae={kernelName:Zi,backendName:"webgl",kernelFunc:dae};function mae(e){let{inputs:t,backend:n}=e,{input:a}=t;return DA(a,!0,n)}var fae={kernelName:Wm,backendName:"webgl",kernelFunc:mae},gae="return float(!isnan(x) && !isinf(x));",bae=Ye({opSnippet:gae,dtype:"bool"}),yae={kernelName:Qi,backendName:"webgl",kernelFunc:bae},xae="return float(isinf(x));",vae=Ye({opSnippet:xae,dtype:"bool"}),wae={kernelName:eo,backendName:"webgl",kernelFunc:vae},kae="return float(isnan(x));",Iae=Ye({opSnippet:kae,dtype:"bool"}),Sae={kernelName:to,backendName:"webgl",kernelFunc:Iae},Nae="return float(a < b);",Tae=` +`,Rae=fn({opSnippet:$ae,packedOpSnippet:Dae,dtype:"bool",cpuKernelImpl:_9}),Mae={kernelName:eo,backendName:"webgl",kernelFunc:Rae};function Pae(e){let{inputs:t,backend:n}=e,{input:a}=t;return UA(a,!0,n)}var Oae={kernelName:Um,backendName:"webgl",kernelFunc:Pae},Lae="return float(!isnan(x) && !isinf(x));",zae=Ze({opSnippet:Lae,dtype:"bool"}),Wae={kernelName:no,backendName:"webgl",kernelFunc:zae},Bae="return float(isinf(x));",Vae=Ze({opSnippet:Bae,dtype:"bool"}),Uae={kernelName:ao,backendName:"webgl",kernelFunc:Vae},Gae="return float(isnan(x));",Hae=Ze({opSnippet:Gae,dtype:"bool"}),qae={kernelName:ro,backendName:"webgl",kernelFunc:Hae},jae="return float(a < b);",Kae=` return vec4(lessThan(a, b)); -`,Cae=fn({opSnippet:Nae,packedOpSnippet:Tae,cpuKernelImpl:c9,dtype:"bool"}),_ae={kernelName:Tu,backendName:"webgl",kernelFunc:Cae},Eae="return float(a <= b);",Aae=` +`,Xae=fn({opSnippet:jae,packedOpSnippet:Kae,cpuKernelImpl:E9,dtype:"bool"}),Yae={kernelName:Au,backendName:"webgl",kernelFunc:Xae},Zae="return float(a <= b);",Jae=` return vec4(lessThanEqual(a, b)); -`,Fae=fn({opSnippet:Eae,packedOpSnippet:Aae,cpuKernelImpl:d9,dtype:"bool"}),$ae={kernelName:Cu,backendName:"webgl",kernelFunc:Fae};function Dae(e){let{backend:t,attrs:n}=e,{start:a,stop:r,num:s}=n,i=h9(a,r,s);return t.makeTensorInfo([i.length],"float32",i)}var Rae={kernelName:_u,backendName:"webgl",kernelFunc:Dae},Mae=Ip+` +`,Qae=fn({opSnippet:Zae,packedOpSnippet:Jae,cpuKernelImpl:A9,dtype:"bool"}),ere={kernelName:Fu,backendName:"webgl",kernelFunc:Qae};function tre(e){let{backend:t,attrs:n}=e,{start:a,stop:r,num:s}=n,i=F9(a,r,s);return t.makeTensorInfo([i.length],"float32",i)}var nre={kernelName:$u,backendName:"webgl",kernelFunc:tre},are=Tp+` return x < 0.0 ? 0./0. : log(x); -`,Pae=` +`,rre=` vec4 result = log(x); bvec4 isNaN = isnan(x); result.r = isNaN.r ? x.r : (x.r < 0.0 ? 0./0. : result.r); @@ -3612,18 +3620,18 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,yee=Ye({opSnippet:bee}),xee={kernel 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; -`,Oae=Ye({opSnippet:Mae,packedOpSnippet:Pae,cpuKernelImpl:m9}),Lae={kernelName:ao,backendName:"webgl",kernelFunc:Oae},zae=Ip+` +`,sre=Ze({opSnippet:are,packedOpSnippet:rre,cpuKernelImpl:$9}),ire={kernelName:io,backendName:"webgl",kernelFunc:sre},ore=Tp+` return log(1.0 + x); -`,Wae=Ye({opSnippet:zae}),Bae={kernelName:ro,backendName:"webgl",kernelFunc:Wae},Vae="return float(a >= 1.0 && b >= 1.0);",Uae=` +`,lre=Ze({opSnippet:ore}),ure={kernelName:oo,backendName:"webgl",kernelFunc:lre},pre="return float(a >= 1.0 && b >= 1.0);",cre=` return vec4( vec4(greaterThanEqual(a, vec4(1.0))) * vec4(greaterThanEqual(b, vec4(1.0)))); -`,Gae=fn({opSnippet:Vae,packedOpSnippet:Uae,dtype:"bool"}),Hae={kernelName:Eu,backendName:"webgl",kernelFunc:Gae},qae="return float(!(x >= 1.0));",jae=Ye({opSnippet:qae}),Kae={kernelName:Au,backendName:"webgl",kernelFunc:jae},Xae="return float(a >= 1.0 || b >= 1.0);",Yae=` +`,dre=fn({opSnippet:pre,packedOpSnippet:cre,dtype:"bool"}),hre={kernelName:Du,backendName:"webgl",kernelFunc:dre},mre="return float(!(x >= 1.0));",fre=Ze({opSnippet:mre}),gre={kernelName:Ru,backendName:"webgl",kernelFunc:fre},bre="return float(a >= 1.0 || b >= 1.0);",yre=` return min( vec4(greaterThanEqual(a, vec4(1.0))) + vec4(greaterThanEqual(b, vec4(1.0))), vec4(1.0)); -`,Zae=fn({opSnippet:Xae,packedOpSnippet:Yae,dtype:"bool"}),Jae={kernelName:Fu,backendName:"webgl",kernelFunc:Zae},Qae=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=` +`,xre=fn({opSnippet:bre,packedOpSnippet:yre,dtype:"bool"}),vre={kernelName:Mu,backendName:"webgl",kernelFunc:xre},wre=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]; @@ -3642,7 +3650,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,yee=Ye({opSnippet:bee}),xee={kernel float val = x * ${o}; setOutput(val); } - `}},ere=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=` + `}},kre=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; @@ -3704,7 +3712,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,yee=Ye({opSnippet:bee}),xee={kernel vec4 result = xAtOutputCoords * ${o}; setOutput(result); } - `}},tre=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=a,u=G().getBool("WEBGL_PACK_NORMALIZATION")?new ere(r.shape,s,i,o,l):new Qae(r.shape,s,i,o,l);return n.runWebGLProgram(u,[r],r.dtype)},nre={kernelName:so,backendName:"webgl",kernelFunc:tre},are=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=` + `}},Ire=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=a,u=G().getBool("WEBGL_PACK_NORMALIZATION")?new kre(r.shape,s,i,o,l):new wre(r.shape,s,i,o,l);return n.runWebGLProgram(u,[r],r.dtype)},Sre={kernelName:lo,backendName:"webgl",kernelFunc:Ire},Nre=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]; @@ -3759,16 +3767,16 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,yee=Ye({opSnippet:bee}),xee={kernel } setOutput(result); } - `}},rre=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 are(r.shape,o,l,u,p);return n.runWebGLProgram(d,[r,s,i],r.dtype)},sre={kernelName:$u,backendName:"webgl",kernelFunc:rre};function ire(e,t,n,a){let r=v.sizeFromShape(t),s=v.sizeFromShape(e.shape)/r,i=ce({inputs:{x:e},attrs:{shape:[s,r]},backend:a}),o=Yo(i,e.dtype,"max",a),l=ce({inputs:{x:o},attrs:{shape:n},backend:a});return a.disposeIntermediateTensorInfo(i),a.disposeIntermediateTensorInfo(o),l}function MA(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 y=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 Nre(r.shape,o,l,u,p);return n.runWebGLProgram(d,[r,s,i],r.dtype)},Cre={kernelName:Pu,backendName:"webgl",kernelFunc:Tre};function _re(e,t,n,a){let r=w.sizeFromShape(t),s=w.sizeFromShape(e.shape)/r,i=ce({inputs:{x:e},attrs:{shape:[s,r]},backend:a}),o=tl(i,e.dtype,"max",a),l=ce({inputs:{x:o},attrs:{shape:n},backend:a});return a.disposeIntermediateTensorInfo(i),a.disposeIntermediateTensorInfo(o),l}function HA(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{reductionIndices:s,keepDims:i}=a,o=r.shape.length,l=w.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 y=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 ra({inputs:{x:r},backend:n});let d=new Ec(p,"max",!1);return n.runWebGLProgram(d,[r],r.dtype)}var hre={kernelName:lo,backendName:"webgl",kernelFunc:dre};function mre(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 ak(d,"max",!1);return n.runWebGLProgram(c,[r],r.dtype)}var fre={kernelName:Du,backendName:"webgl",kernelFunc:mre},gre=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=` +`,$re=fn({opSnippet:Are,packedOpSnippet:Fre,cpuKernelImpl:R9}),Dre={kernelName:po,backendName:"webgl",kernelFunc:$re};function Rre(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;vp(r,"maxPool");let{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=a,u=1;w.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&&w.arraysEqual(p.inShape,p.outShape))return ra({inputs:{x:r},backend:n});let d=new $c(p,"max",!1);return n.runWebGLProgram(d,[r],r.dtype)}var Mre={kernelName:co,backendName:"webgl",kernelFunc:Rre};function Pre(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 ck(d,"max",!1);return n.runWebGLProgram(c,[r],r.dtype)}var Ore={kernelName:Ou,backendName:"webgl",kernelFunc:Pre},Lre=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() { @@ -3814,7 +3822,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,yee=Ye({opSnippet:bee}),xee={kernel } setOutput(dotProd); } - `}},bre=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=` + `}},zre=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() { @@ -3878,16 +3886,16 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,yee=Ye({opSnippet:bee}),xee={kernel } setOutput(dotProd); } - `}};function yre(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 ak(c,"max",!0),m=n.runWebGLProgram(h,[i],i.dtype),f=new bre(c),g=n.runWebGLProgram(f,[r,m],i.dtype);return n.disposeIntermediateTensorInfo(m),g}var xre={kernelName:Wc,backendName:"webgl",kernelFunc:yre};function vre(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s,output:i}=t,o=s;yp([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 Ec(c,"max",h),f=n.runWebGLProgram(m,[o],o.dtype),g=new gre(c),b=n.runWebGLProgram(g,[r,f],o.dtype);return n.disposeIntermediateTensorInfo(f),b}var wre={kernelName:Vm,backendName:"webgl",kernelFunc:vre};function kre(e,t,n,a){let r=new Ec(n,"max",!1),s=a.runWebGLProgram(r,[e],"float32");r=new Ec(n,"max",!0,!0,t);let i=a.runWebGLProgram(r,[e],"float32");return[s,i]}var Ire={kernelName:Um,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]=kre(a,o,p,l);return[d,c]}};function Sre(e,t,n,a){let r=v.sizeFromShape(t),s=v.sizeFromShape(e.shape)/r,i=ce({inputs:{x:e},attrs:{shape:[s,r]},backend:a}),o=Yo(i,"float32","mean",a),l=ce({inputs:{x:o},attrs:{shape:n},backend:a});return a.disposeIntermediateTensorInfo(i),a.disposeIntermediateTensorInfo(o),l}var Nre={kernelName:uo,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;w.assert(a.shape.length===4,()=>`Error in maxPool: input must be rank 4 but got rank ${a.shape.length}.`);let u=[1,1];w.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]=Gre(a,o,p,l);return[d,c]}};function qre(e,t,n,a){let r=w.sizeFromShape(t),s=w.sizeFromShape(e.shape)/r,i=ce({inputs:{x:e},attrs:{shape:[s,r]},backend:a}),o=tl(i,"float32","mean",a),l=ce({inputs:{x:o},attrs:{shape:n},backend:a});return a.disposeIntermediateTensorInfo(i),a.disposeIntermediateTensorInfo(o),l}var jre={kernelName:ho,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=w.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,v=new Array(o);for(let C=0;Cu[0]+e[p]+u[1]);let a=e.length,r=dt(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=` +`,Jre=fn({opSnippet:Yre,packedOpSnippet:Zre,cpuKernelImpl:M9}),Qre={kernelName:fo,backendName:"webgl",kernelFunc:Jre},ese=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=dt(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}; @@ -3916,7 +3924,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,yee=Ye({opSnippet:bee}),xee={kernel ${r} coords = outC - start; setOutput(getX(${o})); } - `}},Dre=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=dt(a),s=t.map(h=>h[0]).join(","),i=t.map((h,m)=>h[0]+e[m]).join(","),o=Sn("rc",a),l=Sn("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=` + `}},tse=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=dt(a),s=t.map(h=>h[0]).join(","),i=t.map((h,m)=>h[0]+e[m]).join(","),o=Sn("rc",a),l=Sn("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}; @@ -3972,13 +3980,13 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,yee=Ye({opSnippet:bee}),xee={kernel ${c} setOutput(result); } - `}},Rre=({inputs:e,backend:t,attrs:n})=>{let{x:a}=e,{paddings:r,mode:s}=n,i=G().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new Dre(a.shape,r,s):new $re(a.shape,r,s);return t.runWebGLProgram(i,[a],a.dtype)},Mre={kernelName:ho,backendName:"webgl",kernelFunc:Rre},Pre=`if (b == 0.0) return NAN; - return mod(a, b);`,Ore=` + `}},nse=({inputs:e,backend:t,attrs:n})=>{let{x:a}=e,{paddings:r,mode:s}=n,i=G().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new tse(a.shape,r,s):new ese(a.shape,r,s);return t.runWebGLProgram(i,[a],a.dtype)},ase={kernelName:go,backendName:"webgl",kernelFunc:nse},rse=`if (b == 0.0) return NAN; + return mod(a, b);`,sse=` vec4 result = mod(a, b); bvec4 isNaN = equal(b, vec4(0.0)); - `+Xo+` + `+el+` return result; -`,Lre=fn({opSnippet:Pre,packedOpSnippet:Ore}),zre={kernelName:Ru,backendName:"webgl",kernelFunc:Lre},Wre=class{constructor(e,t,n){this.variableNames=["probs"],this.customUniforms=[{name:"seed",type:"float"}],this.outputShape=[e,n],this.userCode=` +`,ise=fn({opSnippet:rse,packedOpSnippet:sse}),ose={kernelName:bo,backendName:"webgl",kernelFunc:ise},lse=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]; @@ -3998,11 +4006,11 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,yee=Ye({opSnippet:bee}),xee={kernel // If no other event happened, last event happened. setOutput(float(${t-1})); } - `}},Bre=` + `}},use=` if (a == b) { return 1.0; }; -return a / b;`,Vre=` +return a / b;`,pse=` // vec4 one = vec4(equal(a, b)); // return one + (vec4(1.0) - one) * a / b; vec4 result = a / b; @@ -4020,9 +4028,9 @@ return a / b;`,Vre=` } return result; -`,PA=fn({opSnippet:Bre,packedOpSnippet:Vre,checkOutOfBounds:!0}),Ure={kernelName:Gi,backendName:"webgl",kernelFunc:PA},NS="return a - b;",OA=fn({opSnippet:NS,packedOpSnippet:NS,supportsComplex:!0,cpuKernelImpl:L9}),Gre={kernelName:Oo,backendName:"webgl",kernelFunc:OA};function LA(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{dim:s}=a,i=v.parseAxisParam([s],r.shape),o=MA({inputs:{x:r},backend:n,attrs:{reductionIndices:i,keepDims:!1}}),l=N.expandShapeToKeepDim(o.shape,i),u=ce({inputs:{x:o},backend:n,attrs:{shape:l}}),p=OA({inputs:{a:r,b:u},backend:n}),d=$A({inputs:{x:p},backend:n}),c=eg({inputs:{x:d},backend:n,attrs:{axis:i,keepDims:!1}}),h=ce({inputs:{x:c},backend:n,attrs:{shape:l}}),m=PA({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 Hre={kernelName:Mo,backendName:"webgl",kernelFunc:LA};function qre(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{numSamples:s,seed:i,normalized:o}=a,l=o?r:LA({inputs:{logits:r},backend:n,attrs:{dim:r.shape.length-1}}),u=l.shape[0],p=l.shape[1],d=new Wre(u,p,s),c=[[i]],h=n.runWebGLProgram(d,[l],"int32",c);return o||n.disposeIntermediateTensorInfo(l),h}var jre={kernelName:Mu,backendName:"webgl",kernelFunc:qre},Kre=Oa+` +`,qA=fn({opSnippet:use,packedOpSnippet:pse,checkOutOfBounds:!0}),cse={kernelName:qi,backendName:"webgl",kernelFunc:qA},RS="return a - b;",jA=fn({opSnippet:RS,packedOpSnippet:RS,supportsComplex:!0,cpuKernelImpl:nQ}),dse={kernelName:Vo,backendName:"webgl",kernelFunc:jA};function KA(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{dim:s}=a,i=w.parseAxisParam([s],r.shape),o=HA({inputs:{x:r},backend:n,attrs:{reductionIndices:i,keepDims:!1}}),l=N.expandShapeToKeepDim(o.shape,i),u=ce({inputs:{x:o},backend:n,attrs:{shape:l}}),p=jA({inputs:{a:r,b:u},backend:n}),d=VA({inputs:{x:p},backend:n}),c=tg({inputs:{x:d},backend:n,attrs:{axis:i,keepDims:!1}}),h=ce({inputs:{x:c},backend:n,attrs:{shape:l}}),m=qA({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 hse={kernelName:Wo,backendName:"webgl",kernelFunc:KA};function mse(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{numSamples:s,seed:i,normalized:o}=a,l=o?r:KA({inputs:{logits:r},backend:n,attrs:{dim:r.shape.length-1}}),u=l.shape[0],p=l.shape[1],d=new lse(u,p,s),c=[[i]],h=n.runWebGLProgram(d,[l],"int32",c);return o||n.disposeIntermediateTensorInfo(l),h}var fse={kernelName:Lu,backendName:"webgl",kernelFunc:mse},gse=Oa+` return -x; -`,Xre=` +`,bse=` vec4 result = -x; bvec4 isNaN = isnan(x); @@ -4032,14 +4040,14 @@ return a / b;`,Vre=` result.a = isNaN.a ? x.a : result.a; return result; -`;function Yre(e){let{inputs:t,backend:n}=e,{x:a}=t;if(n.shouldExecuteOnCPU([a])){let s=n.texData.get(a.dataId),[i,o]=x9(s.values,a.shape,a.dtype);return n.makeTensorInfo(o,a.dtype,i)}let r;return G().getBool("WEBGL_PACK_UNARY_OPERATIONS")?r=new is(a.shape,Xre):r=new ir(a.shape,Kre),n.runWebGLProgram(r,[a],a.dtype)}var Zre={kernelName:Pu,backendName:"webgl",kernelFunc:Yre},Jre=fr.nonMaxSuppressionV3Impl;function Qre(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}=Jre(u,p,i,o,l);return n.makeTensorInfo([d.length],"int32",new Int32Array(d))}var ese={kernelName:Lu,backendName:"webgl",kernelFunc:Qre},tse=fr.nonMaxSuppressionV4Impl;function nse(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}=tse(p,d,i,o,l,u);return[n.makeTensorInfo([c.length],"int32",new Int32Array(c)),n.makeTensorInfo([],"int32",new Int32Array([h]))]}var ase={kernelName:zu,backendName:"webgl",kernelFunc:nse},rse=fr.nonMaxSuppressionV5Impl;function sse(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:b}=rse(p,d,c,h,m,f);return[n.makeTensorInfo([g.length],"int32",new Int32Array(g)),n.makeTensorInfo([b.length],"float32",new Float32Array(b))]}var ise={kernelName:Wu,backendName:"webgl",kernelFunc:sse},ose=class{constructor(e,t,n,a){this.variableNames=["indices"],this.outputShape=[e,t],this.userCode=` +`;function yse(e){let{inputs:t,backend:n}=e,{x:a}=t;if(n.shouldExecuteOnCPU([a])){let s=n.texData.get(a.dataId),[i,o]=O9(s.values,a.shape,a.dtype);return n.makeTensorInfo(o,a.dtype,i)}let r;return G().getBool("WEBGL_PACK_UNARY_OPERATIONS")?r=new os(a.shape,bse):r=new ir(a.shape,gse),n.runWebGLProgram(r,[a],a.dtype)}var xse={kernelName:zu,backendName:"webgl",kernelFunc:yse},vse=gr.nonMaxSuppressionV3Impl;function wse(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}=vse(u,p,i,o,l);return n.makeTensorInfo([d.length],"int32",new Int32Array(d))}var kse={kernelName:Bu,backendName:"webgl",kernelFunc:wse},Ise=gr.nonMaxSuppressionV4Impl;function Sse(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}=Ise(p,d,i,o,l,u);return[n.makeTensorInfo([c.length],"int32",new Int32Array(c)),n.makeTensorInfo([],"int32",new Int32Array([h]))]}var Nse={kernelName:Vu,backendName:"webgl",kernelFunc:Sse},Tse=gr.nonMaxSuppressionV5Impl;function Cse(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:b}=Tse(p,d,c,h,m,f);return[n.makeTensorInfo([g.length],"int32",new Int32Array(g)),n.makeTensorInfo([b.length],"float32",new Float32Array(b))]}var _se={kernelName:Uu,backendName:"webgl",kernelFunc:Cse},Ese=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))); } - `}},lse=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 ose(u,i,o,l),d=ce({inputs:{x:r},backend:n,attrs:{shape:[u]}}),c=n.runWebGLProgram(p,[d],s);n.disposeIntermediateTensorInfo(d);let h=[...r.shape,i],m=ce({inputs:{x:c},backend:n,attrs:{shape:h}});return n.disposeIntermediateTensorInfo(c),m},use={kernelName:fo,backendName:"webgl",kernelFunc:lse};function Tm(e){let{inputs:t,backend:n}=e,{x:a}=t;if(a.dtype==="complex64"){let r=$d({inputs:{input:a},backend:n}),s=Tm({inputs:{x:r},backend:n}),i=tg({inputs:{input:a},backend:n}),o=Tm({inputs:{x:i},backend:n}),l=Rs({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 pse={kernelName:ip,backendName:"webgl",kernelFunc:Tm};function zA(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=$d({inputs:{input:a},backend:n}),s=zA({inputs:{x:r},backend:n}),i=tg({inputs:{input:a},backend:n}),o=Tm({inputs:{x:i},backend:n}),l=Rs({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 cse={kernelName:Bu,backendName:"webgl",kernelFunc:zA};function dse(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a;if(t.length===1)return pv({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=pv({inputs:{input:p},backend:n,attrs:{dim:r}});return o.push(d),d}),u=SA({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(p=>n.disposeIntermediateTensorInfo(p)),u}var hse={kernelName:Vu,backendName:"webgl",kernelFunc:dse},mse=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=dt(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=` + `}},Ase=e=>{let{inputs:t,backend:n,attrs:a}=e,{indices:r}=t,{dtype:s,depth:i,onValue:o,offValue:l}=a,u=w.sizeFromShape(r.shape),p=new Ese(u,i,o,l),d=ce({inputs:{x:r},backend:n,attrs:{shape:[u]}}),c=n.runWebGLProgram(p,[d],s);n.disposeIntermediateTensorInfo(d);let h=[...r.shape,i],m=ce({inputs:{x:c},backend:n,attrs:{shape:h}});return n.disposeIntermediateTensorInfo(c),m},Fse={kernelName:xo,backendName:"webgl",kernelFunc:Ase};function Fm(e){let{inputs:t,backend:n}=e,{x:a}=t;if(a.dtype==="complex64"){let r=Od({inputs:{input:a},backend:n}),s=Fm({inputs:{x:r},backend:n}),i=ng({inputs:{input:a},backend:n}),o=Fm({inputs:{x:i},backend:n}),l=Ms({inputs:{real:s,imag:o},backend:n});return n.disposeIntermediateTensorInfo(r),n.disposeIntermediateTensorInfo(s),n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}else return Ld({attrs:{shape:a.shape,dtype:a.dtype,value:a.dtype==="string"?"":0},backend:n})}var $se={kernelName:lp,backendName:"webgl",kernelFunc:Fm};function XA(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=Od({inputs:{input:a},backend:n}),s=XA({inputs:{x:r},backend:n}),i=ng({inputs:{input:a},backend:n}),o=Fm({inputs:{x:i},backend:n}),l=Ms({inputs:{real:s,imag:o},backend:n});return n.disposeIntermediateTensorInfo(r),n.disposeIntermediateTensorInfo(s),n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}else return Ld({attrs:{shape:a.shape,dtype:a.dtype,value:1},backend:n})}var Dse={kernelName:Gu,backendName:"webgl",kernelFunc:XA};function Rse(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a;if(t.length===1)return yv({inputs:{input:t[0]},backend:n,attrs:{dim:r}});let s=t[0].shape,i=t[0].dtype;t.forEach(p=>{w.assertShapesMatch(s,p.shape,"All tensors passed to stack must have matching shapes"),w.assert(i===p.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=[],l=t.map(p=>{let d=yv({inputs:{input:p},backend:n,attrs:{dim:r}});return o.push(d),d}),u=RA({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(p=>n.disposeIntermediateTensorInfo(p)),u}var Mse={kernelName:Hu,backendName:"webgl",kernelFunc:Rse},Pse=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=dt(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}; @@ -4064,7 +4072,7 @@ return a / b;`,Vre=` setOutput(getX(${o})); } } - `}},fse=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=dt(a),s=t.map(m=>m[0]).join(","),i=t.map((m,f)=>m[0]+e[f]).join(","),o=Sn("rc",a),l=Sn("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; + `}},Ose=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=dt(a),s=t.map(m=>m[0]).join(","),i=t.map((m,f)=>m[0]+e[f]).join(","),o=Sn("rc",a),l=Sn("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; @@ -4088,7 +4096,7 @@ return a / b;`,Vre=` ${h} setOutput(result); } - `}},WA=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=G().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new fse(r.shape,s,i):new mse(r.shape,s,i),l=[[i]];return n.runWebGLProgram(o,[r],r.dtype,l)},gse={kernelName:go,backendName:"webgl",kernelFunc:WA},bse=` + `}},YA=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{paddings:s,constantValue:i}=a;if(w.sizeFromShape(r.shape)===0){let u=s.map((p,d)=>p[0]+r.shape[d]+p[1]);return Ld({backend:n,attrs:{shape:u,value:i,dtype:r.dtype}})}let o=G().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new Ose(r.shape,s,i):new Pse(r.shape,s,i),l=[[i]];return n.runWebGLProgram(o,[r],r.dtype,l)},Lse={kernelName:vo,backendName:"webgl",kernelFunc:YA},zse=` if(a < 0.0 && floor(b) < b){ return NAN; } @@ -4097,7 +4105,7 @@ return a / b;`,Vre=` } return (round(mod(b, 2.0)) != 1) ? pow(abs(a), b) : sign(a) * pow(abs(a), b); -`,yse=` +`,Wse=` // 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); @@ -4113,11 +4121,11 @@ return a / b;`,Vre=` 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); - `+Xo+` + `+el+` return result; -`,xse=fn({opSnippet:bse,packedOpSnippet:yse}),vse={kernelName:bo,backendName:"webgl",kernelFunc:xse};function wse(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=Nn({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:b}=w9(c.shape,c.dtype,m,p);h=n.makeTensorInfo(g,b,f)}else{let[m,f]=N.computeOutAndReduceShapes(c.shape,p),g=v.sizeFromShape(f),b=ce({inputs:{x:c},backend:n,attrs:{shape:[-1,g]}}),y=Xm(r.dtype),x=Yo(b,y,"prod",n);h=ce({inputs:{x},backend:n,attrs:{shape:m}}),l.push(b),l.push(x)}if(i){l.push(h);let m=N.expandShapeToKeepDim(h.shape,u);h=ce({inputs:{x:h},backend:n,attrs:{shape:m}})}return l.forEach(m=>n.disposeIntermediateTensorInfo(m)),h}var kse={kernelName:xo,backendName:"webgl",kernelFunc:wse};function Ise(e){let{inputs:t,backend:n,attrs:a}=e,{paramsNestedSplits:r,paramsDenseValues:s,indices:i}=t,{outputRaggedRank:o}=a,l=r.map(b=>n.readSync(b.dataId)),u=r.map(b=>b.shape),p=n.readSync(s.dataId),d=n.readSync(i.dataId),[c,h,m]=k9(l,u,p,s.shape,s.dtype,d,i.shape,o),f=c.map(b=>n.makeTensorInfo([b.length],"int32",b)),g=n.makeTensorInfo(m,s.dtype,h);return f.concat([g])}var Sse={kernelName:Gm,backendName:"webgl",kernelFunc:Ise};function Nse(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]=I9(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 Tse={kernelName:Hm,backendName:"webgl",kernelFunc:Nse};function Cse(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]=S9(u,r.shape,p,s.shape,s.dtype,d,i.shape,c,h,l);return n.makeTensorInfo(m,s.dtype,f)}var _se={kernelName:qm,backendName:"webgl",kernelFunc:Cse},BA=e=>{let{backend:t,attrs:n}=e,{start:a,stop:r,step:s,dtype:i}=n,o=N9(a,r,s,i);return t.makeTensorInfo([o.length],i,o)},Ese={kernelName:Bc,backendName:"webgl",kernelFunc:BA},Ase="return 1.0 / x;",Fse=Ye({opSnippet:Ase}),$se={kernelName:vo,backendName:"webgl",kernelFunc:Fse},Dse=Oa+` +`,Bse=fn({opSnippet:zse,packedOpSnippet:Wse}),Vse={kernelName:wo,backendName:"webgl",kernelFunc:Bse};function Use(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=r.shape.length,l=[],u=w.parseAxisParam(s,r.shape),p=u,d=N.getAxesPermutation(p,o),c=r;d!=null&&(c=Nn({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:b}=z9(c.shape,c.dtype,m,p);h=n.makeTensorInfo(g,b,f)}else{let[m,f]=N.computeOutAndReduceShapes(c.shape,p),g=w.sizeFromShape(f),b=ce({inputs:{x:c},backend:n,attrs:{shape:[-1,g]}}),y=Ym(r.dtype),x=tl(b,y,"prod",n);h=ce({inputs:{x},backend:n,attrs:{shape:m}}),l.push(b),l.push(x)}if(i){l.push(h);let m=N.expandShapeToKeepDim(h.shape,u);h=ce({inputs:{x:h},backend:n,attrs:{shape:m}})}return l.forEach(m=>n.disposeIntermediateTensorInfo(m)),h}var Gse={kernelName:Io,backendName:"webgl",kernelFunc:Use};function Hse(e){let{inputs:t,backend:n,attrs:a}=e,{paramsNestedSplits:r,paramsDenseValues:s,indices:i}=t,{outputRaggedRank:o}=a,l=r.map(b=>n.readSync(b.dataId)),u=r.map(b=>b.shape),p=n.readSync(s.dataId),d=n.readSync(i.dataId),[c,h,m]=W9(l,u,p,s.shape,s.dtype,d,i.shape,o),f=c.map(b=>n.makeTensorInfo([b.length],"int32",b)),g=n.makeTensorInfo(m,s.dtype,h);return f.concat([g])}var qse={kernelName:Hm,backendName:"webgl",kernelFunc:Hse};function jse(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]=B9(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 Kse={kernelName:qm,backendName:"webgl",kernelFunc:jse};function Xse(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]=V9(u,r.shape,p,s.shape,s.dtype,d,i.shape,c,h,l);return n.makeTensorInfo(m,s.dtype,f)}var Yse={kernelName:jm,backendName:"webgl",kernelFunc:Xse},ZA=e=>{let{backend:t,attrs:n}=e,{start:a,stop:r,step:s,dtype:i}=n,o=U9(a,r,s,i);return t.makeTensorInfo([o.length],i,o)},Zse={kernelName:jc,backendName:"webgl",kernelFunc:ZA},Jse="return 1.0 / x;",Qse=Ze({opSnippet:Jse}),eie={kernelName:So,backendName:"webgl",kernelFunc:Qse},tie=Oa+` return (x < 0.0) ? 0.0 : x; -`,Rse=` +`,nie=` vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -4127,9 +4135,9 @@ return a / b;`,Vre=` result.a = isNaN.a ? x.a : result.a; return result; -`,Mse=Ye({opSnippet:Dse,packedOpSnippet:Rse}),Pse={kernelName:wo,backendName:"webgl",kernelFunc:Mse},Ose=Oa+` +`,aie=Ze({opSnippet:tie,packedOpSnippet:nie}),rie={kernelName:No,backendName:"webgl",kernelFunc:aie},sie=Oa+` return (x < 0.0) ? 0.0 : min(6.0, x); -`,Lse=` +`,iie=` vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -4139,7 +4147,7 @@ return a / b;`,Vre=` result.a = isNaN.a ? x.a : result.a; return result; -`,zse=Ye({opSnippet:Ose,packedOpSnippet:Lse}),Wse={kernelName:So,backendName:"webgl",kernelFunc:zse},Bse=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=` +`,oie=Ze({opSnippet:sie,packedOpSnippet:iie}),lie={kernelName:_o,backendName:"webgl",kernelFunc:oie},uie=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]}); @@ -4172,7 +4180,7 @@ return a / b;`,Vre=` setOutput(newValue); } - `}},Vse=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=` + `}},pie=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]}, @@ -4249,7 +4257,7 @@ return a / b;`,Vre=` setOutput(newValue); } - `}};function Use(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,p=G().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new Vse(r.shape,l,u,s,i):new Bse(r.shape,l,u,s,i);return n.runWebGLProgram(p,[r],"float32")}var Gse={kernelName:Io,backendName:"webgl",kernelFunc:Use},Hse=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 cie(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,p=G().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new pie(r.shape,l,u,s,i):new uie(r.shape,l,u,s,i);return n.runWebGLProgram(p,[r],"float32")}var die={kernelName:Co,backendName:"webgl",kernelFunc:cie},hie=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]; @@ -4330,7 +4338,7 @@ return a / b;`,Vre=` setOutput(accumulator); } - `}};function qse(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=new Hse(s.shape,r.shape,i);return n.runWebGLProgram(o,[s],s.dtype)}var jse={kernelName:Hu,backendName:"webgl",kernelFunc:qse},Kse=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 mie(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=new hie(s.shape,r.shape,i);return n.runWebGLProgram(o,[s],s.dtype)}var fie={kernelName:Ku,backendName:"webgl",kernelFunc:mie},gie=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]}); @@ -4352,7 +4360,7 @@ return a / b;`,Vre=` setOutput(newValue); } - `}},Xse=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=` + `}},bie=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]}, @@ -4393,7 +4401,7 @@ return a / b;`,Vre=` setOutput(newValue); } - `}};function Yse(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,p=G().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new Xse(r.shape,l,u,s,i):new Kse(r.shape,l,u,s,i);return n.runWebGLProgram(p,[r],r.dtype)}var Zse={kernelName:ko,backendName:"webgl",kernelFunc:Yse},Jse=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 yie(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,p=G().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new bie(r.shape,l,u,s,i):new gie(r.shape,l,u,s,i);return n.runWebGLProgram(p,[r],r.dtype)}var xie={kernelName:To,backendName:"webgl",kernelFunc:yie},vie=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]; @@ -4463,7 +4471,7 @@ return a / b;`,Vre=` setOutput(accumulator); } - `}};function Qse(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=new Jse(s.shape,r.shape,i);return n.runWebGLProgram(o,[s],s.dtype)}var eie={kernelName:Gu,backendName:"webgl",kernelFunc:Qse},tie=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 wie(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=new vie(s.shape,r.shape,i);return n.runWebGLProgram(o,[s],s.dtype)}var kie={kernelName:ju,backendName:"webgl",kernelFunc:wie},Iie=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)); @@ -4473,7 +4481,7 @@ return a / b;`,Vre=` ${s} coords = getOutputCoords(); setOutput(getX(${r})); } - `}},nie=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=Sn("rc",n),r=`${a[n-1]} + 1 < ${this.outputShape[n-1]}`,s=`${a[n-2]} + 1 < ${this.outputShape[n-2]}`,i=dt(n);n===1?this.userCode=` + `}},Sie=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=Sn("rc",n),r=`${a[n-1]} + 1 < ${this.outputShape[n-1]}`,s=`${a[n-2]} + 1 < ${this.outputShape[n-2]}`,i=dt(n);n===1?this.userCode=` void main(){ int rc = getOutputCoords(); vec4 result = vec4(0.); @@ -4501,7 +4509,7 @@ return a / b;`,Vre=` } 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((b,y)=>c(y,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 aie(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 ra({inputs:{x:r},backend:n});let l=G().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new nie(r.shape,o):new tie(r.shape,o);return n.runWebGLProgram(l,[r],r.dtype)}var rie={kernelName:No,backendName:"webgl",kernelFunc:aie},sie=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((b,y)=>c(y,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 Nie(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a,i=r.shape.length,o=w.parseAxisParam(s,r.shape);if(i===0)return ra({inputs:{x:r},backend:n});let l=G().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new Sie(r.shape,o):new Iie(r.shape,o);return n.runWebGLProgram(l,[r],r.dtype)}var Tie={kernelName:Eo,backendName:"webgl",kernelFunc:Nie},Cie=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() { @@ -4520,7 +4528,7 @@ return a / b;`,Vre=` } setOutput(outputValue); } - `}},iie={kernelName:op,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{image:a}=e,{radians:r,fillValue:s,center:i}=t,o=n,l=new sie(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)}},oie=` + `}},_ie={kernelName:up,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{image:a}=e,{radians:r,fillValue:s,center:i}=t,o=n,l=new Cie(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)}},Eie=` // OpenGL ES does not support round function. // The algorithm is based on banker's rounding. float base = floor(x); @@ -4535,7 +4543,7 @@ return a / b;`,Vre=` return base + 1.0; } } -`,lie=Ye({opSnippet:oie}),uie={kernelName:To,backendName:"webgl",kernelFunc:lie},pie="return inversesqrt(x);",cie=Ye({opSnippet:pie,cpuKernelImpl:T9}),die={kernelName:Co,backendName:"webgl",kernelFunc:cie},rk=class{constructor(e,t,n,a,r,s,i=!0,o=!1){this.variableNames=["updates","indices","defaultValue"],this.outputShape=s;let l=dt(r.length),u=dt(s.length),p="";n===1?p="i":n===2&&(p="i, j");let d=`getIndices(${p})`,c="";a===1?c="i":a===2&&(c="i, coords[1]");let h=`getUpdates(${c})`,m="";o&&(m="coords[0], coords[1]");let f=`getDefaultValue(${m})`,g=t>1?"strides[j]":"strides";this.userCode=` +`,Aie=Ze({opSnippet:Eie}),Fie={kernelName:Ao,backendName:"webgl",kernelFunc:Aie},$ie="return inversesqrt(x);",Die=Ze({opSnippet:$ie,cpuKernelImpl:G9}),Rie={kernelName:Fo,backendName:"webgl",kernelFunc:Die},dk=class{constructor(e,t,n,a,r,s,i=!0,o=!1){this.variableNames=["updates","indices","defaultValue"],this.outputShape=s;let l=dt(r.length),u=dt(s.length),p="";n===1?p="i":n===2&&(p="i, j");let d=`getIndices(${p})`,c="";a===1?c="i":a===2&&(c="i, coords[1]");let h=`getUpdates(${c})`,m="";o&&(m="coords[0], coords[1]");let f=`getDefaultValue(${m})`,g=t>1?"strides[j]":"strides";this.userCode=` ${l} strides = ${l}(${r}); void main() { @@ -4555,7 +4563,7 @@ return a / b;`,Vre=` } setOutput(mix(${f}, sum, float(found))); } - `}},hie=class{constructor(e,t,n,a,r,s,i=!0,o=!1){this.variableNames=["updates","indices","defaultValue"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=s;let l=dt(r.length),u=dt(s.length),p="";n===1?p="i":n===2&&(p="i, j");let d=`getIndices(${p})`,c="";a===1?c="i":a===2&&(c="i, coords[1]");let h=`getUpdates(${c})`,m="";o&&(m="coords[0], coords[1]");let f=`getDefaultValue(${m})`,g=t>1?"strides[j]":"strides",b=t>1?"strides[j + 1]":"strides";this.userCode=` + `}},Mie=class{constructor(e,t,n,a,r,s,i=!0,o=!1){this.variableNames=["updates","indices","defaultValue"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=s;let l=dt(r.length),u=dt(s.length),p="";n===1?p="i":n===2&&(p="i, j");let d=`getIndices(${p})`,c="";a===1?c="i":a===2&&(c="i, coords[1]");let h=`getUpdates(${c})`,m="";o&&(m="coords[0], coords[1]");let f=`getDefaultValue(${m})`,g=t>1?"strides[j]":"strides",b=t>1?"strides[j + 1]":"strides";this.userCode=` ${l} strides = ${l}(${r}); void main() { @@ -4592,7 +4600,7 @@ return a / b;`,Vre=` } setOutput(mix(${f}, sum, found)); } - `}};function mie(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=ce({inputs:{x:r},backend:n,attrs:{shape:[l,o]}}),m=ce({inputs:{x:s},backend:n,attrs:{shape:[l,u]}}),f=n.makeTensorInfo([],"float32",new Float32Array([0])),g;G().getBool("WEBGL_PACK")?g=new hie(l,o,h.shape.length,m.shape.length,p,c):g=new rk(l,o,h.shape.length,m.shape.length,p,c);let b=n.runWebGLProgram(g,[m,h,f],m.dtype),y=ce({inputs:{x:b},backend:n,attrs:{shape:i}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(b),n.disposeIntermediateTensorInfo(f),y}var fie={kernelName:qu,backendName:"webgl",kernelFunc:mie},gie=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=G().getNumber("WEBGL_VERSION")===2?r:s,o=a==="left"?"<":"<=";this.userCode=` + `}};function Pie(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=ce({inputs:{x:r},backend:n,attrs:{shape:[l,o]}}),m=ce({inputs:{x:s},backend:n,attrs:{shape:[l,u]}}),f=n.makeTensorInfo([],"float32",new Float32Array([0])),g;G().getBool("WEBGL_PACK")?g=new Mie(l,o,h.shape.length,m.shape.length,p,c):g=new dk(l,o,h.shape.length,m.shape.length,p,c);let b=n.runWebGLProgram(g,[m,h,f],m.dtype),y=ce({inputs:{x:b},backend:n,attrs:{shape:i}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(b),n.disposeIntermediateTensorInfo(f),y}var Oie={kernelName:Xu,backendName:"webgl",kernelFunc:Pie},Lie=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=G().getNumber("WEBGL_VERSION")===2?r:s,o=a==="left"?"<":"<=";this.userCode=` int findBound(int batch, float value) { int left = 0; int right = numInputs; @@ -4617,7 +4625,7 @@ return a / b;`,Vre=` setOutput(float(findBound(batch, value))); } - `}};function bie(e){let{inputs:t,backend:n,attrs:a}=e,{sortedSequence:r,values:s}=t,{side:i}=a,o=new gie(r.shape[0],r.shape[1],s.shape[1],i),l=[[r.shape[1]]];return n.runWebGLProgram(o,[r,s],"int32",l)}var yie={kernelName:Ku,backendName:"webgl",kernelFunc:bie},xie=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); -`,Iie=Ye({opSnippet:kie}),Sie={kernelName:_o,backendName:"webgl",kernelFunc:Iie},Nie=Ip+` +`,Hie=Ze({opSnippet:Gie}),qie={kernelName:$o,backendName:"webgl",kernelFunc:Hie},jie=Tp+` return 1.0 / (1.0 + exp(-1.0 * x)); -`,Tie=` +`,Kie=` vec4 result = 1.0 / (1.0 + exp(-1.0 * x)); bvec4 isNaN = isnan(x); @@ -4645,20 +4653,20 @@ return a / b;`,Vre=` result.a = isNaN.a ? x.a : result.a; return result; -`,Cie=Ye({opSnippet:Nie,packedOpSnippet:Tie,cpuKernelImpl:_9}),_ie={kernelName:Fo,backendName:"webgl",kernelFunc:Cie},Eie=` +`,Xie=Ze({opSnippet:jie,packedOpSnippet:Kie,cpuKernelImpl:q9}),Yie={kernelName:Po,backendName:"webgl",kernelFunc:Xie},Zie=` if (isnan(x)) { return 0.0; } return sign(x); -`,Aie=Ye({opSnippet:Eie}),Fie={kernelName:Ao,backendName:"webgl",kernelFunc:Aie},$ie=Ip+` +`,Jie=Ze({opSnippet:Zie}),Qie={kernelName:Mo,backendName:"webgl",kernelFunc:Jie},eoe=Tp+` return sin(x); -`,Die=` +`,toe=` vec4 result = sin(x); bvec4 isNaN = isnan(x); - ${Xo} + ${el} return result; -`,Rie=Ye({opSnippet:$ie,packedOpSnippet:Die}),Mie={kernelName:Eo,backendName:"webgl",kernelFunc:Rie},Pie=` +`,noe=Ze({opSnippet:eoe,packedOpSnippet:toe}),aoe={kernelName:Do,backendName:"webgl",kernelFunc:noe},roe=` float e2x = exp(x); return (e2x - 1.0 / e2x) / 2.0; -`,Oie=Ye({opSnippet:Pie}),Lie={kernelName:Zu,backendName:"webgl",kernelFunc:Oie},zie=` +`,soe=Ze({opSnippet:roe}),ioe={kernelName:Ro,backendName:"webgl",kernelFunc:soe},ooe=` float epsilon = 1.1920928955078125e-7; float threshold = log(epsilon) + 2.0; @@ -4678,17 +4686,17 @@ return a / b;`,Vre=` result = log(exp_x + 1.0); } return result; -`,Wie=Ye({opSnippet:zie}),Bie={kernelName:$o,backendName:"webgl",kernelFunc:Wie},Vie=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((b,y)=>b*y),l=[[0,0]];l.push(...i);for(let b=1+s.length;bn.disposeIntermediateTensorInfo(b)),g},Uie={kernelName:Ju,backendName:"webgl",kernelFunc:Vie};function Gie(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: +`,loe=Ze({opSnippet:ooe}),uoe={kernelName:Oo,backendName:"webgl",kernelFunc:loe},poe=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,paddings:i}=a;w.assert(r.shape.length<=4,()=>"spaceToBatchND for rank > 4 with a WebGL backend not implemented yet");let o=s.reduce((b,y)=>b*y),l=[[0,0]];l.push(...i);for(let b=1+s.length;bn.disposeIntermediateTensorInfo(b)),g},coe={kernelName:ep,backendName:"webgl",kernelFunc:poe};function doe(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]=A9(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 Hie={kernelName:Vc,backendName:"webgl",kernelFunc:Gie};function qie(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]=F9(o,a.shape,a.dtype,i,l);return[n.makeTensorInfo(p,a.dtype,u),n.makeTensorInfo([d.length],s.dtype,new Int32Array(d))]}var jie={kernelName:ep,backendName:"webgl",kernelFunc:qie};function Kie(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]=K9(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 hoe={kernelName:Kc,backendName:"webgl",kernelFunc:doe};function moe(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]=X9(o,a.shape,a.dtype,i,l);return[n.makeTensorInfo(p,a.dtype,u),n.makeTensorInfo([d.length],s.dtype,new Int32Array(d))]}var foe={kernelName:np,backendName:"webgl",kernelFunc:moe};function goe(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]=pA(i,a.shape,a.dtype,o,l,!0);return n.makeTensorInfo(p,a.dtype,u)}var Xie={kernelName:Uc,backendName:"webgl",kernelFunc:Kie};function Yie(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]=vA(i,a.shape,a.dtype,o,l,!0);return n.makeTensorInfo(p,a.dtype,u)}var boe={kernelName:Xc,backendName:"webgl",kernelFunc:goe};function yoe(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]=pA(i,a.shape,a.dtype,o,l);return n.makeTensorInfo(p,a.dtype,u)}var Zie={kernelName:Gc,backendName:"webgl",kernelFunc:Yie};function Jie(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 b=n.bufferSync(r),y=n.bufferSync(s),x=v.decodeString(n.readSync(i.dataId)[0]),w=C9(b,y,o,c,p,u,l,d,x,h);return n.makeTensorInfo(o,w.dtype,w.values)}let m=new rk(u,l,r.shape.length,s.shape.length,d,[c,1],h),f=n.runWebGLProgram(m,[s,r,i],s.dtype),g=ce({inputs:{x:f},backend:n,attrs:{shape:o}});return n.disposeIntermediateTensorInfo(f),g}var Qie={kernelName:tp,backendName:"webgl",kernelFunc:Jie};function eoe(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=Sp({inputs:{x:r},backend:n,attrs:{begin:p,size:h}});return p[o]+=c,m})}var toe={kernelName:Qu,backendName:"webgl",kernelFunc:eoe},TS="return sqrt(x);",noe=Ye({opSnippet:TS,packedOpSnippet:TS,cpuKernelImpl:$9}),aoe={kernelName:Do,backendName:"webgl",kernelFunc:noe},roe="return x * x;",soe=Ye({opSnippet:roe}),ioe={kernelName:Hc,backendName:"webgl",kernelFunc:soe},CS="return (a - b) * (a - b);",ooe=fn({opSnippet:CS,packedOpSnippet:CS}),loe={kernelName:Po,backendName:"webgl",kernelFunc:ooe};function uoe(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;if(r.dtype!=="string")throw new Error("Input must be of datatype string");let s=n.readSync(r.dataId),i=N.fromUint8ToStringArray(s),o=D9(i,"string",a);return n.makeTensorInfo(r.shape,"string",o)}var poe={kernelName:qc,backendName:"webgl",kernelFunc:uoe};function coe({inputs:e,attrs:t,backend:n}){let{x:a}=e,r=Oa+` + ${s.shape}`);let i=n.readSync(a.dataId),o=n.readSync(r.dataId),l=n.readSync(s.dataId),[u,p]=vA(i,a.shape,a.dtype,o,l);return n.makeTensorInfo(p,a.dtype,u)}var xoe={kernelName:Yc,backendName:"webgl",kernelFunc:yoe};function voe(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 b=n.bufferSync(r),y=n.bufferSync(s),x=w.decodeString(n.readSync(i.dataId)[0]),v=H9(b,y,o,c,p,u,l,d,x,h);return n.makeTensorInfo(o,v.dtype,v.values)}let m=new dk(u,l,r.shape.length,s.shape.length,d,[c,1],h),f=n.runWebGLProgram(m,[s,r,i],s.dtype),g=ce({inputs:{x:f},backend:n,attrs:{shape:o}});return n.disposeIntermediateTensorInfo(f),g}var woe={kernelName:ap,backendName:"webgl",kernelFunc:voe};function koe(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{numOrSizeSplits:s,axis:i}=a,o=w.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=Cp({inputs:{x:r},backend:n,attrs:{begin:p,size:h}});return p[o]+=c,m})}var Ioe={kernelName:tp,backendName:"webgl",kernelFunc:koe},MS="return sqrt(x);",Soe=Ze({opSnippet:MS,packedOpSnippet:MS,cpuKernelImpl:Y9}),Noe={kernelName:Lo,backendName:"webgl",kernelFunc:Soe},Toe="return x * x;",Coe=Ze({opSnippet:Toe}),_oe={kernelName:Zc,backendName:"webgl",kernelFunc:Coe},PS="return (a - b) * (a - b);",Eoe=fn({opSnippet:PS,packedOpSnippet:PS}),Aoe={kernelName:Bo,backendName:"webgl",kernelFunc:Eoe};function Foe(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;if(r.dtype!=="string")throw new Error("Input must be of datatype string");let s=n.readSync(r.dataId),i=N.fromUint8ToStringArray(s),o=Z9(i,"string",a);return n.makeTensorInfo(r.shape,"string",o)}var $oe={kernelName:Jc,backendName:"webgl",kernelFunc:Foe};function Doe({inputs:e,attrs:t,backend:n}){let{x:a}=e,r=Oa+` return x > 0.0 ? 1.0 : float(${t.alpha}); - `,s=new ir(a.shape,r);return n.runWebGLProgram(s,[a],a.dtype)}var doe={kernelName:Ns,backendName:"webgl",kernelFunc:coe},hoe=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=n;let a=n.length,r=dt(n.length),s=dt(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 Roe={kernelName:Ts,backendName:"webgl",kernelFunc:Doe},Moe=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=n;let a=n.length,r=dt(n.length),s=dt(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}); @@ -4696,15 +4704,15 @@ return a / b;`,Vre=` ${s} coords = getOutputCoords(); setOutput(getX(${i})); } - `}};function moe(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:b,begin:y,end:x,strides:w}=Kt.sliceInfo(r.shape,s,i,o,l,u,p,d,c),I;if(f)I=ce({inputs:{x:r},backend:n,attrs:{shape:m}});else if(g||b){v.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let C=Kt.computeOutShape(y,x,w),E=Sp({inputs:{x:r},backend:n,attrs:{begin:y,size:C}});I=ce({inputs:{x:E},backend:n,attrs:{shape:m}}),n.disposeIntermediateTensorInfo(E)}else if(n.shouldExecuteOnCPU([r])){let C=n.readSync(r.dataId),E=ze(r.shape,r.dtype,C),F=R9(h,E,w,y);I=n.makeTensorInfo(m,r.dtype,F.values)}else{let C=new hoe(y,w,h);I=n.runWebGLProgram(C,[r],r.dtype)}let T=ce({inputs:{x:I},backend:n,attrs:{shape:m}});return n.disposeIntermediateTensorInfo(I),T}var foe={kernelName:np,backendName:"webgl",kernelFunc:moe};function goe(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]=M9(c,h,r,s,i,o,l,u);return[n.makeTensorInfo([m.length],"string",m),n.makeTensorInfo(d.shape,"int32",f)]}var boe={kernelName:jc,backendName:"webgl",kernelFunc:goe};function yoe(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]=P9(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 xoe={kernelName:Kc,backendName:"webgl",kernelFunc:yoe};function voe(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=O9(i,r);return n.makeTensorInfo(s.shape,"int32",o)}var woe={kernelName:Xc,backendName:"webgl",kernelFunc:voe},koe="return tan(x);",Ioe=Ye({opSnippet:koe}),Soe={kernelName:Lo,backendName:"webgl",kernelFunc:Ioe},Noe=` + `}};function Poe(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:b,begin:y,end:x,strides:v}=Xt.sliceInfo(r.shape,s,i,o,l,u,p,d,c),I;if(f)I=ce({inputs:{x:r},backend:n,attrs:{shape:m}});else if(g||b){w.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let C=Xt.computeOutShape(y,x,v),E=Cp({inputs:{x:r},backend:n,attrs:{begin:y,size:C}});I=ce({inputs:{x:E},backend:n,attrs:{shape:m}}),n.disposeIntermediateTensorInfo(E)}else if(n.shouldExecuteOnCPU([r])){let C=n.readSync(r.dataId),E=ze(r.shape,r.dtype,C),F=J9(h,E,v,y);I=n.makeTensorInfo(m,r.dtype,F.values)}else{let C=new Moe(y,v,h);I=n.runWebGLProgram(C,[r],r.dtype)}let T=ce({inputs:{x:I},backend:n,attrs:{shape:m}});return n.disposeIntermediateTensorInfo(I),T}var Ooe={kernelName:rp,backendName:"webgl",kernelFunc:Poe};function Loe(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]=Q9(c,h,r,s,i,o,l,u);return[n.makeTensorInfo([m.length],"string",m),n.makeTensorInfo(d.shape,"int32",f)]}var zoe={kernelName:Qc,backendName:"webgl",kernelFunc:Loe};function Woe(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]=eQ(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 Boe={kernelName:ed,backendName:"webgl",kernelFunc:Woe};function Voe(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=tQ(i,r);return n.makeTensorInfo(s.shape,"int32",o)}var Uoe={kernelName:td,backendName:"webgl",kernelFunc:Voe},Goe="return tan(x);",Hoe=Ze({opSnippet:Goe}),qoe={kernelName:Uo,backendName:"webgl",kernelFunc:Hoe},joe=` float e2x = exp(-2.0 * abs(x)); return sign(x) * (1.0 - e2x) / (1.0 + e2x); -`,Toe=Ye({opSnippet:Noe}),Coe={kernelName:zo,backendName:"webgl",kernelFunc:Toe};function _oe(e){let{inputs:t,backend:n,attrs:a}=e,{tensor:r,indices:s,updates:i}=t,{}=a,{sliceRank:o,numUpdates:l,sliceSize:u,strides:p,outputSize:d}=N.calculateShapes(i,s,r.shape),c=[d/u,u];if(d===0)return n.makeTensorInfo(r.shape,s.dtype);let h=ce({inputs:{x:s},backend:n,attrs:{shape:[l,o]}}),m=ce({inputs:{x:i},backend:n,attrs:{shape:[l,u]}}),f=ce({inputs:{x:r},backend:n,attrs:{shape:c}}),g=new rk(l,o,h.shape.length,m.shape.length,p,c,!1,!0),b=n.runWebGLProgram(g,[m,h,f],f.dtype),y=ce({inputs:{x:b},backend:n,attrs:{shape:r.shape}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(b),y}var Eoe={kernelName:ju,backendName:"webgl",kernelFunc:_oe},Aoe=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=ze(r.shape,r.dtype,l),p=z9(u,s);return n.makeTensorInfo(p.shape,p.dtype,p.values)}let i=new Aoe(r.shape,s);return n.runWebGLProgram(i,[r],r.dtype)}var $oe={kernelName:Ss,backendName:"webgl",kernelFunc:VA},Doe=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 Qoe(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=>w.decodeString(d)):o,u=ze(r.shape,r.dtype,l),p=aQ(u,s);return n.makeTensorInfo(p.shape,p.dtype,p.values)}let i=new Joe(r.shape,s);return n.runWebGLProgram(i,[r],r.dtype)}var ele={kernelName:Ns,backendName:"webgl",kernelFunc:JA},tle=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]; @@ -4744,7 +4752,7 @@ return a / b;`,Vre=` setOutput(float(i1)); } } - `}},Roe=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=` + `}},nle=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(); @@ -4778,7 +4786,7 @@ return a / b;`,Vre=` setOutput(x0 >= x1 ? float(i0) : float(i1)); } - `}};function qs(e,t){t!==null&&e.disposeIntermediateTensorInfo(t)}function _S(e){let t=1;for(;tl){let F=n.readSync(r.dataId),[D,$]=W9(F,u,r.dtype,s,i);return[n.makeTensorInfo(D.shape,D.dtype,D.values),n.makeTensorInfo($.shape,$.dtype,$.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=ce({inputs:{x:h},attrs:{shape:[m,p]},backend:n});c&&qs(n,h);let g=_S(s),b=_S(p),y=null,x=()=>y===null?[f,f]:[f,y],w=(F,D,$)=>{let S=x(),M=new Doe($),B=[[p],[y===null?1:0],[Number.NEGATIVE_INFINITY],[F],[D]],U=y;y=n.runWebGLProgram(M,S,"int32",B),qs(n,U)};for(let F=1;F=1;$/=2)w(D,$,[m,b])}for(let F=b;F>g;F/=2){let D=x(),$=new Roe([m,F/2]),S=[[p],[y===null?1:0],[g]],M=y;y=n.runWebGLProgram($,D,"int32",S),qs(n,M);let B=g/2,U=B*2;for(let H=B;H>=1;H/=2)w(U,H,y.shape)}let I=y;y=Sp({inputs:{x:y},backend:n,attrs:{begin:0,size:[m,s]}}),qs(n,I);let T=RA({inputs:{x:f,indices:y},backend:n,attrs:{axis:1,batchDims:1}});qs(n,f);let C=u.slice(0,-1);C.push(s),I=y,y=ce({inputs:{x:y},attrs:{shape:C},backend:n}),qs(n,I);let E=T;return T=ce({inputs:{x:T},attrs:{shape:C},backend:n}),qs(n,E),[T,y]}var Poe={kernelName:ap,backendName:"webgl",kernelFunc:Moe},Ooe=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 js(e,t){t!==null&&e.disposeIntermediateTensorInfo(t)}function OS(e){let t=1;for(;tl){let F=n.readSync(r.dataId),[D,$]=rQ(F,u,r.dtype,s,i);return[n.makeTensorInfo(D.shape,D.dtype,D.values),n.makeTensorInfo($.shape,$.dtype,$.values)]}if(s===0)return u[u.length-1]=0,[n.makeTensorInfo(u,r.dtype,[]),n.makeTensorInfo(u,"int32",[])];if(p===1)return[r,Ld({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=w.sizeFromShape(u)/p,f=ce({inputs:{x:h},attrs:{shape:[m,p]},backend:n});c&&js(n,h);let g=OS(s),b=OS(p),y=null,x=()=>y===null?[f,f]:[f,y],v=(F,D,$)=>{let S=x(),M=new tle($),B=[[p],[y===null?1:0],[Number.NEGATIVE_INFINITY],[F],[D]],U=y;y=n.runWebGLProgram(M,S,"int32",B),js(n,U)};for(let F=1;F=1;$/=2)v(D,$,[m,b])}for(let F=b;F>g;F/=2){let D=x(),$=new nle([m,F/2]),S=[[p],[y===null?1:0],[g]],M=y;y=n.runWebGLProgram($,D,"int32",S),js(n,M);let B=g/2,U=B*2;for(let H=B;H>=1;H/=2)v(U,H,y.shape)}let I=y;y=Cp({inputs:{x:y},backend:n,attrs:{begin:0,size:[m,s]}}),js(n,I);let T=GA({inputs:{x:f,indices:y},backend:n,attrs:{axis:1,batchDims:1}});js(n,f);let C=u.slice(0,-1);C.push(s),I=y,y=ce({inputs:{x:y},attrs:{shape:C},backend:n}),js(n,I);let E=T;return T=ce({inputs:{x:T},attrs:{shape:C},backend:n}),js(n,E),[T,y]}var rle={kernelName:sp,backendName:"webgl",kernelFunc:ale},sle=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) { @@ -4890,7 +4898,7 @@ return a / b;`,Vre=` } setOutput(outputValue); } - `}};function Loe(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],b=new Ooe(d,c,i,o,l,g);return n.runWebGLProgram(b,[r,s],"float32")}var zoe={kernelName:rp,backendName:"webgl",kernelFunc:Loe};function Woe(e){let{inputs:t,attrs:n,backend:a}=e,{axis:r}=n,{x:s}=t;yp(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}=B9(i,r,s.shape,s.dtype);return[a.makeTensorInfo(l,s.dtype,o),a.makeTensorInfo([u.length],"int32",u)]}var Boe={kernelName:Yc,backendName:"webgl",kernelFunc:Woe};function Voe(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 Uoe={kernelName:sp,backendName:"webgl",kernelFunc:Voe},Goe=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 ile(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],b=new sle(d,c,i,o,l,g);return n.runWebGLProgram(b,[r,s],"float32")}var ole={kernelName:ip,backendName:"webgl",kernelFunc:ile};function lle(e){let{inputs:t,attrs:n,backend:a}=e,{axis:r}=n,{x:s}=t;vp(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}=sQ(i,r,s.shape,s.dtype);return[a.makeTensorInfo(l,s.dtype,o),a.makeTensorInfo([u.length],"int32",u)]}var ule={kernelName:nd,backendName:"webgl",kernelFunc:lle};function ple(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 cle={kernelName:op,backendName:"webgl",kernelFunc:ple},dle=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}) { @@ -4996,6 +5004,6 @@ return a / b;`,Vre=` } setOutput(${l}); } - `}};function Hoe(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=Nn({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=ce({inputs:{x:d},backend:n,attrs:{shape:[-1,h]}});l.push(m);let f=Xm(r.dtype),g=(w,I,T,C,E)=>{let F=w.shape[0],D=w.shape[1],$=N.segment_util.segOpComputeOptimalWindowSize(D,E),S={windowSize:$,inSize:D,batchSize:F,numSegments:E},M=new Goe(S,I),B=n.compileAndRun(M,[w,T],C);if(l.push(B),B.shape[1]===E)return B;let U=BA({backend:n,attrs:{start:0,stop:E,step:1,dtype:"float32"}}),H=VA({inputs:{x:U},backend:n,attrs:{reps:[D/$]}});return l.push(U),l.push(H),g(B,I,H,C,E)},b=g(m,"unsortedSegmentSum",s,f,i),y=ce({inputs:{x:b},backend:n,attrs:{shape:c}}),x=y;if(p!=null){l.push(y);let w=N.getUndoAxesPermutation(p);x=Nn({inputs:{x},backend:n,attrs:{perm:w}})}return l.forEach(w=>n.disposeIntermediateTensorInfo(w)),x}var qoe={kernelName:Zc,backendName:"webgl",kernelFunc:Hoe},joe=[RQ,PQ,zQ,VQ,GQ,jQ,XQ,ZQ,tee,aee,iee,uee,dee,gee,xee,wee,Iee,Cee,Eee,Fee,Mee,Vee,Gee,qee,Jee,ete,rte,bQ,ote,dte,gte,kte,Nte,Cte,Ete,Fte,Mte,Lte,Bte,Ute,Hte,jte,Yte,Jte,nne,rne,one,pne,dne,gne,vne,Sne,Cne,Ane,Fne,Dne,Mne,One,zne,Bne,Hne,Kne,Zne,Qne,nae,sae,uae,hae,gQ,fae,pte,yae,wae,Sae,xQ,_ae,$ae,Rae,Lae,Bae,Hae,Kae,Jae,nre,sre,ore,cre,hre,fre,xre,wre,Ire,Nre,Cre,Fre,Mre,zre,jre,kQ,Zre,ese,ase,ise,Kee,use,cse,hse,gse,vse,wQ,kse,Sse,Tse,_se,Ese,Xee,Ure,$se,Pse,Wse,SQ,Gse,jse,Zse,eie,rie,iie,uie,die,fie,yie,wie,Sie,_ie,Fie,Mie,Lie,Wee,Hre,Bie,Uie,Hie,jie,Xie,Zie,Qie,toe,aoe,ioe,loe,poe,doe,foe,boe,xoe,woe,Gre,FQ,Soe,Coe,Eoe,$oe,Poe,zoe,$Q,Boe,Uoe,qoe,pse];for(let e of joe)Jc(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 Fc;(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"})(Fc||(Fc={}));var UA;function Koe(e){UA=e.wasm.cwrap(ii,null,["number","array","number","number","array","number","number","number","number","number","number","number","number"])}function Xoe(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=Fc[p];if(g==null)throw new Error(`${p} activation not yet supported for FusedConv2D in the wasm backend.`);let b=l?r.shape[2]:r.shape[1],y=u?s.shape[1]:s.shape[2],x=lp.assertAndGetBroadcastShape(r.shape.slice(0,-2),s.shape.slice(0,-2)),w=n.makeOutput([...x,b,y],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 UA(c,T,r.shape.length,h,C,s.shape.length,l,u,g,m,f,d||0,I),w}var Yoe={kernelName:ii,backendName:"wasm",setupFunc:Koe,kernelFunc:Xoe};function Je(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 Zoe=Je(ru),Joe=Je(Si),Qoe=Je(Ni);function ln(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),b=new Uint8Array(new Int32Array(p.shape).buffer),y=o.dataIdMap.get(f.dataId).id;return a(d,g,u.shape.length,c,b,p.shape.length,et[u.dtype],y),f}return{kernelName:e,backendName:"wasm",setupFunc:r,kernelFunc:s}}var ele=!0,tle=ln(ks,ele),GA;function nle(e){GA=e.wasm.cwrap(Ti,null,["array","number","number","number"])}function ale(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 GA(s,r.length,et[a.dtype],i),a}var rle={kernelName:Ti,backendName:"wasm",setupFunc:nle,kernelFunc:ale};function ng(e){let{inputs:{x:t},backend:n}=e;if(t.dtype==="string")return bn(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 sle={kernelName:Ji,backendName:"wasm",kernelFunc:ng},HA;function ile(e){HA=e.wasm.cwrap(Fr,null,["number","array","number","number","number","array","number"])}function vs(e){let{inputs:t,backend:n,attrs:a}=e,[r,s]=lle(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 ule={kernelName:Fr,backendName:"wasm",kernelFunc:vs,setupFunc:ile};function Ms(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 $le={kernelName:Uu,backendName:"wasm",kernelFunc:Wn},JA;function Dle(e){JA=e.wasm.cwrap(Di,null,["number","array","number","number","array","number","number","number","number"])}function Rle(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),b=v.sizeFromShape(f),y=lp.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?[b,h,d]:[b,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,F=i?I.shape[2]:I.shape[1],D=o?T.shape[1]:T.shape[2],$=Math.max(g,b),S=n.makeOutput([$,F,D],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 JA(C,B,I.shape.length,E,U,T.shape.length,i,o,M),n.disposeData(I.dataId),n.disposeData(T.dataId),S.shape=y,S}var Mle={kernelName:Di,backendName:"wasm",setupFunc:Dle,kernelFunc:Rle};function ki(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=vm(l,s,i,t.shape,t.dtype);return d.stringBytes=m,u}let c=r.typedArrayFromHeap(u),h=t.shape.length;if(h===2)Ple(l,p[0],c,s,i);else if(h===3)Ole(l,p[0],p[1],c,s,i);else if(h===4)Lle(l,p[0],p[1],p[2],c,s,i);else{let m=vm(l,s,i,t.shape,t.dtype);c.set(m)}return u}function Ple(e,t,n,a,r){let s=0,i=a[0],o=a[1],l=i+r[0];for(let u=i;ub*y),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=vs({inputs:{x:h},backend:n,attrs:{perm:u}}),f=Wn({inputs:{x:m},backend:n,attrs:{shape:p}}),g=ki({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 Ble={kernelName:pu,backendName:"wasm",kernelFunc:Wle},QA;function Vle(e){QA=e.wasm.cwrap(cu,null,["number","number","boolean","number","number","number"])}function Ule(e){let{backend:t,inputs:n,attrs:a}=e,{x:r,weights:s}=n,{size:i}=a,o=s.shape.reduce((d,c)=>d*c,1)!==0,l=r.shape.length===1?[i]:[r.shape[0],i],u=t.makeOutput(l,s.dtype);function p(d){return t.dataIdMap.get(d.dataId).id}return QA(p(r),i,o,p(s),et[s.dtype],p(u)),u}var Gle={kernelName:cu,backendName:"wasm",setupFunc:Vle,kernelFunc:Ule};function Hle(e){let{inputs:t,backend:n}=e,{s0:a,s1:r}=t,s=n.typedArrayFromHeap(a),i=n.typedArrayFromHeap(r),o=N.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return n.makeOutput([o.length],"int32",void 0,new Int32Array(o))}var qle={kernelName:Mc,backendName:"wasm",kernelFunc:Hle};function Ps(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 jle={kernelName:Ri,backendName:"wasm",kernelFunc:Ps},Kle=Je(Mi),eF;function Xle(e){eF=e.wasm.cwrap(Is,null,["number","number","number","number"])}function Yle(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 eF(o,s,i,u),l}var Zle={kernelName:Is,backendName:"wasm",setupFunc:Xle,kernelFunc:Yle};function tF(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 ng({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=F1(m,s,t[0].dtype,f),b=N.computeOutShape(i.map(x=>x.shape),a);o.shape=b;let y=n.dataIdMap.get(o.dataId);return y.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=vs({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;lF(m,i?1:0,o?1:0,h,f,et[r.dtype]);let g=c;if(u!==null){let b=N.getUndoAxesPermutation(u);g=vs({inputs:{x:c},attrs:{perm:b},backend:n}),n.disposeData(p.dataId),n.disposeData(c.dataId)}return g}var wue={kernelName:fu,backendName:"wasm",setupFunc:xue,kernelFunc:vue},uF;function kue(e){uF=e.wasm.cwrap(Bi,null,["number","number","number","number","number","number"])}function Iue(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=vs({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;uF(m,i?1:0,o?1:0,h,f,et[r.dtype]);let g=c;if(u!==null){let b=N.getUndoAxesPermutation(u);g=vs({inputs:{x:c},attrs:{perm:b},backend:n}),n.disposeData(p.dataId),n.disposeData(c.dataId)}return g}var Sue={kernelName:Bi,backendName:"wasm",setupFunc:kue,kernelFunc:Iue},pF;function Nue(e){pF=e.wasm.cwrap("DenseBincount",null,["number","array","number","number","boolean","number","number","boolean","number"])}function Tue(e){let{backend:t,inputs:n,attrs:a}=e,{x:r,weights:s}=n,{size:i,binaryOutput:o}=a,l=s.shape.reduce((c,h)=>c*h,1)!==0,u=r.shape.length===1?[i]:[r.shape[0],i],p=t.makeOutput(u,s.dtype);function d(c){return t.dataIdMap.get(c.dataId).id}return pF(d(r),new Uint8Array(new Int32Array(r.shape).buffer),r.shape.length,i,l,d(s),et[s.dtype],o,d(p)),p}var Cue={kernelName:Oc,backendName:"wasm",setupFunc:Nue,kernelFunc:Tue},cF;function _ue(e){cF=e.wasm.cwrap(bu,null,["number","number","number","array","number","array","array","number","number"])}function Eue(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,b=new Uint8Array(new Int32Array(v.computeStrides(r.shape)).buffer),y=new Uint8Array(new Int32Array(m).buffer),x=new Uint8Array(new Int32Array(v.computeStrides(m)).buffer),w=t.dataIdMap.get(f.dataId).id;return cF(g,s,i==="NHWC"?1:0,b,r.shape.length-1,y,x,m.length,w),f}var Aue={kernelName:bu,backendName:"wasm",setupFunc:_ue,kernelFunc:Eue},dF;function Fue(e){dF=e.wasm.cwrap(Vi,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function $ue(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,b=h.padInfo.right,y=h.padInfo.bottom,x=h.padInfo.left,w=h.dilationHeight,I=h.dilationWidth,T=h.strideHeight,C=h.strideWidth,E=h.inChannels,F=h.outChannels,D=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 $=a.makeOutput(h.outShape,"float32"),S=a.dataIdMap.get($.dataId).id;return dF(i,r.shape[0],r.shape[1],r.shape[2],o,m,f,g,b,y,x,D,w,I,T,C,E,F,S),$}var Due={kernelName:Vi,backendName:"wasm",setupFunc:Fue,kernelFunc:$ue},hF;function Rue(e){hF=e.wasm.cwrap("Diag",null,["number","number","number","number"])}function Mue(e){let{inputs:t,backend:n}=e,{x:a}=t,r=v.sizeFromShape(a.shape),s=n.makeOutput([...a.shape,...a.shape],a.dtype);return hF(n.dataIdMap.get(a.dataId).id,et[a.dtype],r,n.dataIdMap.get(s.dataId).id),s}var Pue={kernelName:Lc,backendName:"wasm",setupFunc:Rue,kernelFunc:Mue},mF;function Oue(e){mF=e.wasm.cwrap(Ui,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Lue(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dilations:l}=a;if(r.dtype!==s.dtype)throw new Error(`Dilation2D error: x must have the same dtype as filter. Got ${r.dtype} and ${s.dtype}`);let u=N.computeDilation2DInfo(r.shape,s.shape,i,o,"NHWC",l),p=n.makeOutput(u.outShape,r.dtype);return mF(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(p.dataId).id,et[r.dtype],u.batchSize,u.inChannels,u.inHeight,u.inWidth,u.outHeight,u.outWidth,u.strideHeight,u.strideWidth,u.dilationHeight,u.dilationWidth,u.filterHeight,u.filterWidth,u.padInfo.top,u.padInfo.left),p}var zue={kernelName:Ui,backendName:"wasm",setupFunc:Oue,kernelFunc:Lue},fF;function Wue(e){fF=e.wasm.cwrap(Ll,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Bue(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,dy:i}=t,{strides:o,pad:l,dilations:u}=a;if(r.dtype!==s.dtype||r.dtype!==i.dtype)throw new Error(`Dilation2DBackpropFilter error: x must have the same dtype as filter and dy. Got ${r.dtype}, ${s.dtype}, and ${i.dtype}`);let p=N.computeDilation2DInfo(r.shape,s.shape,o,l,"NHWC",u),d=n.makeOutput(s.shape,s.dtype);return fF(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(i.dataId).id,n.dataIdMap.get(d.dataId).id,et[r.dtype],p.batchSize,p.inChannels,p.inHeight,p.inWidth,p.outHeight,p.outWidth,p.strideHeight,p.strideWidth,p.dilationHeight,p.dilationWidth,p.filterHeight,p.filterWidth,p.padInfo.top,p.padInfo.left),d}var Vue={kernelName:Ll,backendName:"wasm",setupFunc:Wue,kernelFunc:Bue},gF;function Uue(e){gF=e.wasm.cwrap(Ol,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Gue(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,dy:i}=t,{strides:o,pad:l,dilations:u}=a;if(r.dtype!==s.dtype||r.dtype!==i.dtype)throw new Error(`Dilation2DBackpropInput error: x must have the same dtype as filter and dy. Got ${r.dtype}, ${s.dtype}, and ${i.dtype}`);let p=N.computeDilation2DInfo(r.shape,s.shape,o,l,"NHWC",u),d=n.makeOutput(r.shape,r.dtype);return gF(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(i.dataId).id,n.dataIdMap.get(d.dataId).id,et[r.dtype],p.batchSize,p.inChannels,p.inHeight,p.inWidth,p.outHeight,p.outWidth,p.strideHeight,p.strideWidth,p.dilationHeight,p.dilationWidth,p.filterHeight,p.filterWidth,p.padInfo.top,p.padInfo.left),d}var Hue={kernelName:Ol,backendName:"wasm",setupFunc:Uue,kernelFunc:Gue},que=Je(Hi),bF;function jue(e){bF=e.wasm.cwrap(yu,null,["number","number","number"])}function Kue(e){let{inputs:t,backend:n}=e,{dy:a,y:r}=t,s=n.makeOutput(r.shape,"float32"),i=o=>n.dataIdMap.get(o.dataId).id;return bF(i(r),i(a),i(s)),s}var Xue={kernelName:yu,backendName:"wasm",setupFunc:jue,kernelFunc:Kue},Yue=!1,Zue=ln(vu,Yue,"bool"),Jue=Je(qi,"float32");function dv(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 Que={kernelName:wu,backendName:"wasm",kernelFunc:dv},epe=Je(ji,"float32");function yF(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 tpe={kernelName:zc,backendName:"wasm",kernelFunc:yF},xF;function npe(e){xF=e.wasm.cwrap(ku,null,["number","number","number","number","number","number"])}function ape(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 xF(s,o,l,u,p,i),r}var rpe={kernelName:ku,backendName:"wasm",kernelFunc:ape,setupFunc:npe},spe=Je(Ki),ipe=!1,ope=ln(Xi,ipe),vF;function lpe(e){vF=e.wasm.cwrap(Yi,null,["number","number","number","number","number","number","number"])}function upe(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 vF(p,d,c,h,m,r,g),f}var ppe={kernelName:Yi,backendName:"wasm",setupFunc:lpe,kernelFunc:upe},wF;function cpe(e){wF=e.wasm.cwrap(oi,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 dpe(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=Fc[h];if(g==null)throw new Error(`${h} activation not yet supported for FusedConv2D in the wasm backend.`);let b=a.dataIdMap.get(r.dataId).id,y=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=f.padInfo.bottom,D=f.padInfo.left,$=f.dilationHeight,S=f.dilationWidth,M=f.strideHeight,B=f.strideWidth,U=f.inChannels,H=f.padInfo.type==="SAME"?1:0,j=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 wF(b,j,K,Z,y,I,T,w,C,E,F,D,H,$,S,M,B,U,x,g,ae,m||0,ee),J}var hpe={kernelName:oi,backendName:"wasm",setupFunc:cpe,kernelFunc:dpe},kF;function mpe(e){kF=e.wasm.cwrap(li,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 fpe(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=Fc[h];if(g==null)throw new Error(`${h} activation not yet supported for FusedDepthwiseConv2D in the wasm backend.`);let b=a.dataIdMap.get(r.dataId).id,y=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=f.padInfo.bottom,D=f.padInfo.left,$=f.dilationHeight,S=f.dilationWidth,M=f.strideHeight,B=f.strideWidth,U=f.inChannels,H=f.padInfo.type==="SAME"?1:0,j=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 kF(b,j,K,Z,y,I,T,w,C,E,F,D,H,$,S,M,B,U,x,g,ae,m||0,ee),J}var gpe={kernelName:li,backendName:"wasm",setupFunc:mpe,kernelFunc:fpe},IF;function bpe(e){IF=e.wasm.cwrap(Su,null,["number","number","number","number","number","number","array","number"])}function ype(e){let{backend:t,inputs:n}=e,{params:a,indices:r}=n,[s,i,o,l]=Gw.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 IF(c,et[a.dtype],h,i,d,o,m,f),u}var xpe={kernelName:Su,backendName:"wasm",setupFunc:bpe,kernelFunc:ype},SF;function vpe(e){SF=e.wasm.cwrap("Gather",null,["number","number","array","number","number","number","array","number"])}function wpe(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 b=c.shape.length-1,y=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 SF(y,et[r.dtype],I,b,x,d.batchSize,T,w),t.disposeData(c.dataId),t.disposeData(m.dataId),g.shape=d.outputShape,g}var kpe={kernelName:Iu,backendName:"wasm",setupFunc:vpe,kernelFunc:wpe},Ipe=!1,Spe=ln(Nu,Ipe,"bool"),Npe=!1,Tpe=ln(Zi,Npe,"bool"),Cpe=Je(Qi,"bool"),_pe=Je(eo,"bool"),Epe=Je(to,"bool"),NF;function Ape(e){NF=e.wasm.cwrap(no,null,["number","number","number","number"])}function Fpe(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;NF(r,et[t.dtype],n,i)}return s}var $pe={kernelName:no,backendName:"wasm",setupFunc:Ape,kernelFunc:Fpe},Dpe=!1,Rpe=ln(Tu,Dpe,"bool"),Mpe=!1,Ppe=ln(Cu,Mpe,"bool"),TF;function Ope(e){TF=e.wasm.cwrap(_u,null,["number","number","number","number"])}function Lpe(e){let{attrs:t,backend:n}=e,{start:a,stop:r,num:s}=t,i=Math.floor(s),o=n.makeOutput([i],"float32");return TF(n.dataIdMap.get(o.dataId).id,a,r,i),o}var zpe={kernelName:_u,backendName:"wasm",setupFunc:Ope,kernelFunc:Lpe},Wpe=Je(ao),Bpe=Je(ro),Vpe=!1,Upe=ln(Eu,Vpe,"bool"),Gpe=Je(Au),Hpe=!1,qpe=ln(Fu,Hpe,"bool"),jpe=!1,Kpe=ln(XS,jpe,"bool"),CF;function Xpe(e){CF=e.wasm.cwrap(so,null,["number","number","number","number","number","number","number"])}function Ype(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=a;if(r.dtype!=="float32")throw new Error("LRN error: x must have dtype float32");let u=n.makeOutput(r.shape,r.dtype);return CF(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(u.dataId).id,r.shape[3],s,i,o,l),u}var Zpe={kernelName:so,backendName:"wasm",setupFunc:Xpe,kernelFunc:Ype},_F;function Jpe(e){_F=e.wasm.cwrap($u,null,["number","number","number","number","number","number","number","number","number"])}function Qpe(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;if(r.dtype!=="float32"||s.dtype!=="float32"||i.dtype!=="float32")throw new Error("LRNGrad error: x, y, and dy must have dtype float32");let d=n.makeOutput(r.shape,r.dtype);return _F(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(i.dataId).id,n.dataIdMap.get(d.dataId).id,i.shape[3],o,l,u,p),d}var ece={kernelName:$u,backendName:"wasm",setupFunc:Jpe,kernelFunc:Qpe},EF;function tce(e){EF=e.wasm.cwrap(io,null,["number","number","number","number"])}function nce(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}=Ms(i,r,t);if(c){let y=t.dataIdMap.get(u.dataId).id;l=u,o=y}let h=l.shape.length;N.assertAxesAreInnerMostDims("max",p,h);let[m,f]=N.computeOutAndReduceShapes(l.shape,p),g=v.sizeFromShape(f),b=t.makeOutput(m,i.dtype);if(v.sizeFromShape(l.shape)!==0){let y=t.dataIdMap.get(b.dataId).id;EF(o,et[i.dtype],g,y)}if(c&&t.disposeData(u.dataId),s){let y=N.expandShapeToKeepDim(b.shape,d);b.shape=y}return b}var ace={kernelName:io,backendName:"wasm",setupFunc:tce,kernelFunc:nce},rce=!1,sce=ln(oo,rce),AF;function ice(e){AF=e.wasm.cwrap(lo,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function oce(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,b=p.dilationHeight,y=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 AF(s,r.shape[0],r.shape[1],r.shape[2],d,c,h,m,f,g,b,y,x,w,I,T,E),C}var lce={kernelName:lo,backendName:"wasm",setupFunc:ice,kernelFunc:oce},FF;function uce(e){FF=e.wasm.cwrap("MaxPool3D",null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function pce(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=a,p=N.computePool3DInfo(r.shape,s,i,1,o,l,u),d=n.makeOutput(p.outShape,r.dtype);return FF(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(d.dataId).id,p.batchSize,p.inChannels,p.inDepth,p.inHeight,p.inWidth,p.outDepth,p.outHeight,p.outWidth,p.strideDepth,p.strideHeight,p.strideWidth,p.dilationDepth,p.dilationHeight,p.dilationWidth,p.effectiveFilterDepth,p.effectiveFilterHeight,p.effectiveFilterWidth,p.padInfo.front,p.padInfo.top,p.padInfo.left),d}var cce={kernelName:Du,backendName:"wasm",setupFunc:uce,kernelFunc:pce},$F;function dce(e){$F=e.wasm.cwrap("MaxPool3DGrad",null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function hce(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=a,p=N.computePool3DInfo(s.shape,i,o,1,l,u),d=n.makeOutput(s.shape,s.dtype);return $F(n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(d.dataId).id,p.batchSize,p.inChannels,p.inDepth,p.inHeight,p.inWidth,p.outDepth,p.outHeight,p.outWidth,p.strideDepth,p.strideHeight,p.strideWidth,p.dilationDepth,p.dilationHeight,p.dilationWidth,p.effectiveFilterDepth,p.effectiveFilterHeight,p.effectiveFilterWidth,p.padInfo.front,p.padInfo.top,p.padInfo.left),d}var mce={kernelName:Wc,backendName:"wasm",setupFunc:dce,kernelFunc:hce},DF;function fce(e){DF=e.wasm.cwrap(uo,null,["number, number, number"])}function gce(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}=Ms(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),b=v.sizeFromShape(g),y=u;u.dtype!=="float32"&&(y=Ps({backend:t,inputs:{x:u},attrs:{dtype:"float32"}}),l=t.dataIdMap.get(y.dataId).id);let x=t.makeOutput(f,"float32");if(v.sizeFromShape(u.shape)!==0){let w=t.dataIdMap.get(x.dataId).id;DF(l,b,w)}if(h&&t.disposeData(p.dataId),s){let w=N.expandShapeToKeepDim(x.shape,c);x.shape=w}return u.dtype!=="float32"&&t.disposeData(y.dataId),x}var bce={kernelName:uo,backendName:"wasm",setupFunc:fce,kernelFunc:gce},RF;function yce(e){RF=e.wasm.cwrap(po,null,["number","number","number","number"])}function xce(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}=Ms(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),b=v.sizeFromShape(g),y=t.makeOutput(f,u.dtype);if(v.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(y.dataId).id;RF(l,et[i.dtype],b,x)}if(h&&t.disposeData(p.dataId),s){let x=N.expandShapeToKeepDim(y.shape,c);y.shape=x}return y}var vce={kernelName:po,backendName:"wasm",setupFunc:yce,kernelFunc:xce},wce=!1,kce=ln(co,wce),hv;(function(e){e[e.reflect=0]="reflect",e[e.symmetric=1]="symmetric"})(hv||(hv={}));var MF;function Ice(e){MF=e.wasm.cwrap(ho,null,["number","array","number","number","array","array","number","number"])}function Sce(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 MF(i,u,t.shape.length,et[t.dtype],c,h,hv[r],l),o}var Nce={kernelName:ho,backendName:"wasm",kernelFunc:Sce,setupFunc:Ice},PF;function Tce(e){PF=e.wasm.cwrap(Mo,null,["number","number","number","number"])}function OF(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||PF(r,i,o,l),s}var Cce={kernelName:Mo,backendName:"wasm",setupFunc:Tce,kernelFunc:OF},LF;function _ce(e){LF=e.wasm.cwrap(Mu,null,["number","number","number","number","number","number"])}function Ece(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{numSamples:s,seed:i,normalized:o}=a;if(r.dtype!=="float32")throw new Error(`Tensor logits must have dtype float32, got ${r.dtype}`);let l=o?r:OF({inputs:{logits:r},backend:n,attrs:{dim:r.shape.length-1}}),[u,p]=l.shape,d=n.makeOutput([u,s],"int32");return LF(n.dataIdMap.get(l.dataId).id,u,p,s,i,n.dataIdMap.get(d.dataId).id),o||n.disposeData(l.dataId),d}var Ace={kernelName:Mu,backendName:"wasm",setupFunc:_ce,kernelFunc:Ece},Fce=!0,$ce=ln(mo,Fce),Dce=Je(Pu);function sk(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 zF;function Rce(e){zF=e.wasm.cwrap(Lu,"number",["number","number","number","number","number"])}function Mce(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=zF(u,p,s,r,i),{pSelectedIndices:c,selectedSize:h,pSelectedScores:m,pValidOutputs:f}=sk(t,d);return t.wasm._free(m),t.wasm._free(f),t.makeOutput([h],"int32",c)}var Pce={kernelName:Lu,backendName:"wasm",setupFunc:Rce,kernelFunc:Mce},WF;function Oce(e){WF=e.wasm.cwrap(zu,"number",["number","number","number","number","number","bool"])}function Lce(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=WF(p,d,s,r,i,o),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=sk(t,c);t.wasm._free(f);let b=t.makeOutput([m],"int32",h),y=t.makeOutput([],"int32",g);return[b,y]}var zce={kernelName:zu,backendName:"wasm",setupFunc:Oce,kernelFunc:Lce},BF;function Wce(e){BF=e.wasm.cwrap(Wu,"number",["number","number","number","number","number","number"])}function Bce(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=BF(p,d,s,r,i,o),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=sk(t,c);t.wasm._free(g);let b=t.makeOutput([m],"int32",h),y=t.makeOutput([m],"float32",f);return[b,y]}var Vce={kernelName:Wu,backendName:"wasm",setupFunc:Wce,kernelFunc:Bce},Uce=!1,Gce=ln(Ou,Uce,"bool"),VF;function Hce(e){VF=e.wasm.cwrap(fo,null,["number","number","number","number","number"])}function qce(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 VF(d,i,o,l,p),u}var jce={kernelName:fo,backendName:"wasm",setupFunc:Hce,kernelFunc:qce};function Kce(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(a).fill(1),a}var Xce={kernelName:Bu,backendName:"wasm",kernelFunc:Kce};function Yce(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a;if(t.length===1)return dv({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=dv({inputs:{input:p},backend:n,attrs:{dim:r}});return o.push(d),d}),u=tF({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(p=>n.disposeData(p.dataId)),u}var Zce={kernelName:Vu,backendName:"wasm",kernelFunc:Yce},UF;function Jce(e){UF=e.wasm.cwrap(go,null,["number","array","number","number","array","array","number","number"])}function Qce(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 yF({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 UF(i,u,t.shape.length,et[t.dtype],c,h,r,l),o}var GF={kernelName:go,backendName:"wasm",kernelFunc:Qce,setupFunc:Jce},ede=!1,tde=ln(bo,ede),HF;function nde(e){HF=e.wasm.cwrap(yo,null,["number","number","number"])}function ade(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=Ps({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 HF(o,i,d),l.dtype!=="float32"&&n.disposeData(u.dataId),p}var rde={kernelName:yo,backendName:"wasm",setupFunc:nde,kernelFunc:ade},qF;function sde(e){qF=e.wasm.cwrap(xo,null,["number","number","number","number"])}function ide(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}=Ms(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),b=v.sizeFromShape(g),y=t.makeOutput(f,u.dtype);if(v.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(y.dataId).id;qF(l,b,et[y.dtype],x)}if(h&&t.disposeData(p.dataId),s){let x=N.expandShapeToKeepDim(y.shape,c);y.shape=x}return y}var ode={kernelName:xo,backendName:"wasm",setupFunc:sde,kernelFunc:ide},lde=e=>{let{backend:t,attrs:n}=e,{start:a,stop:r,step:s,dtype:i}=n,o=R1(a,r,s,i),l=t.makeOutput([o.length],i);return t.typedArrayFromHeap(l).set(o),l},ude={kernelName:Bc,backendName:"wasm",kernelFunc:lde},pde=!0,cde=ln(Gi,pde),dde=Je(vo),hde=Je(wo),mde=Je(So),jF;function fde(e){jF=e.wasm.cwrap(Io,null,["number","number","number","number","number","number","number","number","number","number"])}function gde(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=Ps({backend:t,inputs:{x:r},attrs:{dtype:"float32"}}),f=t.dataIdMap.get(g.dataId));let b=f.id,y=t.makeOutput(m,"float32");if(v.sizeFromShape(r.shape)===0)return y;let x=t.dataIdMap.get(y.dataId).id;return jF(b,p,d,c,h,l,u,s?1:0,i?1:0,x),g!=null&&t.disposeData(g.dataId),y}var bde={kernelName:Io,backendName:"wasm",setupFunc:fde,kernelFunc:gde},KF;function yde(e){KF=e.wasm.cwrap(Hu,null,["number","number","number","array","array","boolean"])}function xde(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=n.makeOutput(r.shape,"float32"),l=n.dataIdMap.get(r.dataId),u;return l.dtype!=="float32"&&(u=Ps({backend:n,inputs:{x:r},attrs:{dtype:"float32"}}),l=n.dataIdMap.get(u.dataId)),KF(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(o.dataId).id,new Uint8Array(new Int32Array(r.shape).buffer),new Uint8Array(new Int32Array(s.shape).buffer),i),u!=null&&n.disposeData(u.dataId),o}var vde={kernelName:Hu,backendName:"wasm",setupFunc:yde,kernelFunc:xde},XF;function wde(e){XF=e.wasm.cwrap(ko,null,["number","number","number","number","number","number","number","number","number","number"])}function kde(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),b;g.dtype!=="float32"&&(b=Ps({backend:t,inputs:{x:r},attrs:{dtype:"float32"}}),g=t.dataIdMap.get(b.dataId));let y=g.id,x=t.dataIdMap.get(f.dataId).id;return XF(y,p,d,c,h,l,u,s?1:0,i?1:0,x),b!=null&&t.disposeData(b.dataId),f}var Ide={kernelName:ko,backendName:"wasm",setupFunc:wde,kernelFunc:kde},YF;function Sde(e){YF=e.wasm.cwrap(Gu,null,["number","number","number","array","array","boolean"])}function Nde(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=n.makeOutput(r.shape,"float32"),l=n.dataIdMap.get(r.dataId),u;return l.dtype!=="float32"&&(u=Ps({backend:n,inputs:{x:r},attrs:{dtype:"float32"}}),l=n.dataIdMap.get(u.dataId)),YF(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(o.dataId).id,new Uint8Array(new Int32Array(r.shape).buffer),new Uint8Array(new Int32Array(s.shape).buffer),i),u!=null&&n.disposeData(u.dataId),o}var Tde={kernelName:Gu,backendName:"wasm",setupFunc:Sde,kernelFunc:Nde},ZF;function Cde(e){ZF=e.wasm.cwrap(No,null,["number","array","number","array","number","number"])}function _de(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 ng({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);ZF(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 Ede={kernelName:No,backendName:"wasm",kernelFunc:_de,setupFunc:Cde},JF;function Ade(e){JF=e.wasm.cwrap(op,null,["number","number","number","number","number","number","number","number","array","number","number"])}function Fde(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),b=i===0,y=255,x=typeof i=="number"?[i,i,i,b?0:y]:[...i,y],w=new Uint8Array(new Int32Array(x).buffer);return JF(u,d,c,h,m,s,f,g,w,x.length,p),l}var $de={kernelName:op,backendName:"wasm",kernelFunc:Fde,setupFunc:Ade},Dde=Je(To),Rde=Je(Co),QF;function Mde(e){QF=e.wasm.cwrap(qu,null,["number","number","number","number","number","number","array","number","number"])}function Pde(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}=vf.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 QF(h,m,et[s.dtype],l,u,p,f,c,g),o}var Ode={kernelName:qu,backendName:"wasm",setupFunc:Mde,kernelFunc:Pde},e$;function Lde(e){e$=e.wasm.cwrap(Ku,null,["number","number","number","number","number","number","bool","number"])}function zde(e){let{inputs:t,backend:n,attrs:a}=e,{sortedSequence:r,values:s}=t,{side:i}=a;if(r.dtype!==s.dtype)throw new Error(`SearchSorted error: sorted_sequence must have the same dtype as values. Got ${r.dtype} and ${s.dtype}`);let o=n.makeOutput(s.shape,"int32");function l(u){return n.dataIdMap.get(u.dataId).id}return e$(l(r),l(s),r.shape[0],r.shape[1],s.shape[1],et[r.dtype],i==="left",l(o)),o}var Wde={kernelName:Ku,backendName:"wasm",setupFunc:Lde,kernelFunc:zde},t$;function Bde(e){t$=e.wasm.cwrap("SelectV2",null,["number","number","number","number","number"])}function Vde(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 t$(i,o,l,h,p),u}var Ude={kernelName:Xu,backendName:"wasm",kernelFunc:Vde,setupFunc:Bde},Gde=Je(_o),n$;function Hde(e){n$=e.wasm.cwrap(Fo,null,["number","number"])}function qde(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||n$(a,s),r}var jde={kernelName:"Sigmoid",backendName:"wasm",setupFunc:Hde,kernelFunc:qde},Kde=Je(Ao),Xde=Je(Eo),Yde=Je($o);function Zde(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 F=v.shape[0],D=v.shape[1],$=N.segment_util.segOpComputeOptimalWindowSize(D,E),S={windowSize:$,inSize:D,batchSize:F,numSegments:E},M=new dle(S,I),B=n.compileAndRun(M,[v,T],C);if(l.push(B),B.shape[1]===E)return B;let U=ZA({backend:n,attrs:{start:0,stop:E,step:1,dtype:"float32"}}),H=JA({inputs:{x:U},backend:n,attrs:{reps:[D/$]}});return l.push(U),l.push(H),g(B,I,H,C,E)},b=g(m,"unsortedSegmentSum",s,f,i),y=ce({inputs:{x:b},backend:n,attrs:{shape:c}}),x=y;if(p!=null){l.push(y);let v=N.getUndoAxesPermutation(p);x=Nn({inputs:{x},backend:n,attrs:{perm:v}})}return l.forEach(v=>n.disposeIntermediateTensorInfo(v)),x}var mle={kernelName:ad,backendName:"webgl",kernelFunc:hle},fle=[JQ,eee,aee,iee,lee,cee,hee,fee,xee,wee,See,Cee,Aee,Ree,Oee,zee,Bee,Hee,jee,Xee,Qee,ite,lte,dte,mte,vte,kte,Tte,MQ,Ete,Rte,Lte,Gte,jte,Xte,Zte,Qte,ane,ine,une,cne,hne,fne,yne,vne,Sne,Tne,Ene,$ne,Rne,Lne,Vne,qne,Xne,Jne,Qne,tae,aae,sae,oae,uae,hae,gae,xae,wae,Sae,Cae,Fae,Mae,RQ,Oae,$te,Wae,Uae,qae,OQ,Yae,ere,nre,ire,ure,hre,gre,vre,Sre,Cre,Ere,Dre,Mre,Ore,Bre,Ure,Hre,jre,Xre,Qre,ase,ose,fse,WQ,xse,kse,Nse,_se,gte,Fse,Dse,Mse,Lse,Vse,zQ,Gse,qse,Kse,Yse,Zse,bte,cse,eie,rie,lie,VQ,die,fie,xie,kie,Tie,_ie,Fie,Rie,Oie,Wie,Uie,qie,Yie,Qie,aoe,ioe,rte,hse,uoe,coe,hoe,foe,boe,xoe,woe,Ioe,Noe,_oe,Aoe,$oe,Roe,Ooe,zoe,Boe,Uoe,dse,XQ,qoe,Xoe,Zoe,ele,rle,ole,YQ,ule,cle,mle,$se];for(let e of fle)rd(e);var Qe;(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"})(Qe||(Qe={}));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 QA;function gle(e){QA=e.wasm.cwrap(oi,null,["number","array","number","number","array","number","number","number","number","number","number","number","number"])}function ble(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=Rc[p];if(g==null)throw new Error(`${p} activation not yet supported for FusedConv2D in the wasm backend.`);let b=l?r.shape[2]:r.shape[1],y=u?s.shape[1]:s.shape[2],x=pp.assertAndGetBroadcastShape(r.shape.slice(0,-2),s.shape.slice(0,-2)),v=n.makeOutput([...x,b,y],r.dtype),I=n.dataIdMap.get(v.dataId).id,T=new Uint8Array(new Int32Array(r.shape).buffer),C=new Uint8Array(new Int32Array(s.shape).buffer);return QA(c,T,r.shape.length,h,C,s.shape.length,l,u,g,m,f,d||0,I),v}var yle={kernelName:oi,backendName:"wasm",setupFunc:gle,kernelFunc:ble};function Xe(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 w.sizeFromShape(u.shape)===0||n(l,Qe[o.dtype],p),u}return{kernelName:e,backendName:"wasm",setupFunc:a,kernelFunc:r}}var xle=Xe(lu),vle=Xe(Ti),wle=Xe(Ci);function Ht(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(w.sizeFromShape(m)===0)return f;let g=new Uint8Array(new Int32Array(u.shape).buffer),b=new Uint8Array(new Int32Array(p.shape).buffer),y=o.dataIdMap.get(f.dataId).id;return a(d,g,u.shape.length,c,b,p.shape.length,Qe[u.dtype],y),f}return{kernelName:e,backendName:"wasm",setupFunc:r,kernelFunc:s}}var kle=!0,Ile=Ht(Is,kle),eF;function Sle(e){eF=e.wasm.cwrap(_i,null,["array","number","number","number"])}function Nle(e){let{inputs:t,backend:n}=e,a=n.makeOutput(t[0].shape,t[0].dtype);if(w.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 eF(s,r.length,Qe[a.dtype],i),a}var Tle={kernelName:_i,backendName:"wasm",setupFunc:Sle,kernelFunc:Nle};function ag(e){let{inputs:{x:t},backend:n}=e;if(t.dtype==="string")return bn(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 Cle={kernelName:to,backendName:"wasm",kernelFunc:ag},tF;function _le(e){tF=e.wasm.cwrap($r,null,["number","array","number","number","number","array","number"])}function ws(e){let{inputs:t,backend:n,attrs:a}=e,[r,s]=Ale(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 Fle={kernelName:$r,backendName:"wasm",kernelFunc:ws,setupFunc:_le};function Ps(e,t,n){let a=e.shape,r=e.shape.length,s=w.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 aue={kernelName:qu,backendName:"wasm",kernelFunc:Wn},uF;function rue(e){uF=e.wasm.cwrap(Mi,null,["number","array","number","number","array","number","number","number","number"])}function sue(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=w.sizeFromShape(m),b=w.sizeFromShape(f),y=pp.assertAndGetBroadcastShape(r.shape.slice(0,-2),s.shape.slice(0,-2)).concat([c,h]);w.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],v=o?[b,h,d]:[b,d,h],I=Wn({inputs:{x:r},backend:n,attrs:{shape:x}}),T=Wn({inputs:{x:s},backend:n,attrs:{shape:v}}),C=n.dataIdMap.get(I.dataId).id,E=n.dataIdMap.get(T.dataId).id,F=i?I.shape[2]:I.shape[1],D=o?T.shape[1]:T.shape[2],$=Math.max(g,b),S=n.makeOutput([$,F,D],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 uF(C,B,I.shape.length,E,U,T.shape.length,i,o,M),n.disposeData(I.dataId),n.disposeData(T.dataId),S.shape=y,S}var iue={kernelName:Mi,backendName:"wasm",setupFunc:rue,kernelFunc:sue};function Si(e){let{inputs:{x:t},attrs:{begin:n,size:a},backend:r}=e,[s,i]=Xt.parseSliceParams(t,n,a),o=Xt.isSliceContinous(t.shape,s,i),l=r.readSync(t.dataId),u=r.makeOutput(i,t.dtype),p=w.computeStrides(t.shape),d=r.dataIdMap.get(u.dataId);if(o){let m=Xt.computeFlatOffset(s,p);return t.dtype==="string"?d.stringBytes=l.slice(m,m+w.sizeFromShape(i)):r.typedArrayFromHeap(u).set(l.subarray(m,m+w.sizeFromShape(i))),u}if(t.dtype==="string"){let m=Nm(l,s,i,t.shape,t.dtype);return d.stringBytes=m,u}let c=r.typedArrayFromHeap(u),h=t.shape.length;if(h===2)oue(l,p[0],c,s,i);else if(h===3)lue(l,p[0],p[1],c,s,i);else if(h===4)uue(l,p[0],p[1],p[2],c,s,i);else{let m=Nm(l,s,i,t.shape,t.dtype);c.set(m)}return u}function oue(e,t,n,a,r){let s=0,i=a[0],o=a[1],l=i+r[0];for(let u=i;ub*y),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=ws({inputs:{x:h},backend:n,attrs:{perm:u}}),f=Wn({inputs:{x:m},backend:n,attrs:{shape:p}}),g=Si({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 due={kernelName:mu,backendName:"wasm",kernelFunc:cue},pF;function hue(e){pF=e.wasm.cwrap(fu,null,["number","number","boolean","number","number","number"])}function mue(e){let{backend:t,inputs:n,attrs:a}=e,{x:r,weights:s}=n,{size:i}=a,o=s.shape.reduce((d,c)=>d*c,1)!==0,l=r.shape.length===1?[i]:[r.shape[0],i],u=t.makeOutput(l,s.dtype);function p(d){return t.dataIdMap.get(d.dataId).id}return pF(p(r),i,o,p(s),Qe[s.dtype],p(u)),u}var fue={kernelName:fu,backendName:"wasm",setupFunc:hue,kernelFunc:mue},gue=!0,bue=Ht(gu,gue);function yue(e){let{inputs:t,backend:n}=e,{s0:a,s1:r}=t,s=n.typedArrayFromHeap(a),i=n.typedArrayFromHeap(r),o=N.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return n.makeOutput([o.length],"int32",void 0,new Int32Array(o))}var xue={kernelName:zc,backendName:"wasm",kernelFunc:yue};function Os(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 vue={kernelName:Pi,backendName:"wasm",kernelFunc:Os},wue=Xe(Oi),cF;function kue(e){cF=e.wasm.cwrap(Ss,null,["number","number","number","number"])}function Iue(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 cF(o,s,i,u),l}var Sue={kernelName:Ss,backendName:"wasm",setupFunc:kue,kernelFunc:Iue};function dF(e){let{inputs:t,backend:n}=e,a=w.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=>w.sizeFromShape(h.shape)>0);if(i.length===1)return ag({inputs:{x:i[0]},backend:n});let o=n.makeOutput(s,t[0].dtype);if(w.sizeFromShape(s)===0)return o;if(i[0].dtype==="string"){let h=i.map(x=>{let v=[-1,w.sizeFromShape(x.shape.slice(a))];return Wn({inputs:{x},backend:n,attrs:{shape:v}})}),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=z1(m,s,t[0].dtype,f),b=N.computeOutShape(i.map(x=>x.shape),a);o.shape=b;let y=n.dataIdMap.get(o.dataId);return y.stringBytes=N.fromStringArrayToUint8(g),h.forEach(x=>n.disposeData(x.dataId)),o}let l=w.sizeFromShape(i[0].shape.slice(0,a)),u=0,p=i.map(h=>{let m=w.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=ws({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;xF(m,i?1:0,o?1:0,h,f,Qe[r.dtype]);let g=c;if(u!==null){let b=N.getUndoAxesPermutation(u);g=ws({inputs:{x:c},attrs:{perm:b},backend:n}),n.disposeData(p.dataId),n.disposeData(c.dataId)}return g}var Kue={kernelName:vu,backendName:"wasm",setupFunc:que,kernelFunc:jue},vF;function Xue(e){vF=e.wasm.cwrap(Ui,null,["number","number","number","number","number","number"])}function Yue(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,exclusive:i,reverse:o}=a,l=r.shape.length;w.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=ws({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;vF(m,i?1:0,o?1:0,h,f,Qe[r.dtype]);let g=c;if(u!==null){let b=N.getUndoAxesPermutation(u);g=ws({inputs:{x:c},attrs:{perm:b},backend:n}),n.disposeData(p.dataId),n.disposeData(c.dataId)}return g}var Zue={kernelName:Ui,backendName:"wasm",setupFunc:Xue,kernelFunc:Yue},wF;function Jue(e){wF=e.wasm.cwrap("DenseBincount",null,["number","array","number","number","boolean","number","number","boolean","number"])}function Que(e){let{backend:t,inputs:n,attrs:a}=e,{x:r,weights:s}=n,{size:i,binaryOutput:o}=a,l=s.shape.reduce((c,h)=>c*h,1)!==0,u=r.shape.length===1?[i]:[r.shape[0],i],p=t.makeOutput(u,s.dtype);function d(c){return t.dataIdMap.get(c.dataId).id}return wF(d(r),new Uint8Array(new Int32Array(r.shape).buffer),r.shape.length,i,l,d(s),Qe[s.dtype],o,d(p)),p}var epe={kernelName:Bc,backendName:"wasm",setupFunc:Jue,kernelFunc:Que},kF;function tpe(e){kF=e.wasm.cwrap(ku,null,["number","number","number","array","number","array","array","number","number"])}function npe(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,b=new Uint8Array(new Int32Array(w.computeStrides(r.shape)).buffer),y=new Uint8Array(new Int32Array(m).buffer),x=new Uint8Array(new Int32Array(w.computeStrides(m)).buffer),v=t.dataIdMap.get(f.dataId).id;return kF(g,s,i==="NHWC"?1:0,b,r.shape.length-1,y,x,m.length,v),f}var ape={kernelName:ku,backendName:"wasm",setupFunc:tpe,kernelFunc:npe},IF;function rpe(e){IF=e.wasm.cwrap(Gi,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function spe(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,b=h.padInfo.right,y=h.padInfo.bottom,x=h.padInfo.left,v=h.dilationHeight,I=h.dilationWidth,T=h.strideHeight,C=h.strideWidth,E=h.inChannels,F=h.outChannels,D=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 $=a.makeOutput(h.outShape,"float32"),S=a.dataIdMap.get($.dataId).id;return IF(i,r.shape[0],r.shape[1],r.shape[2],o,m,f,g,b,y,x,D,v,I,T,C,E,F,S),$}var ipe={kernelName:Gi,backendName:"wasm",setupFunc:rpe,kernelFunc:spe},SF;function ope(e){SF=e.wasm.cwrap("Diag",null,["number","number","number","number"])}function lpe(e){let{inputs:t,backend:n}=e,{x:a}=t,r=w.sizeFromShape(a.shape),s=n.makeOutput([...a.shape,...a.shape],a.dtype);return SF(n.dataIdMap.get(a.dataId).id,Qe[a.dtype],r,n.dataIdMap.get(s.dataId).id),s}var upe={kernelName:Vc,backendName:"wasm",setupFunc:ope,kernelFunc:lpe},NF;function ppe(e){NF=e.wasm.cwrap(Hi,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function cpe(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dilations:l}=a;if(r.dtype!==s.dtype)throw new Error(`Dilation2D error: x must have the same dtype as filter. Got ${r.dtype} and ${s.dtype}`);let u=N.computeDilation2DInfo(r.shape,s.shape,i,o,"NHWC",l),p=n.makeOutput(u.outShape,r.dtype);return NF(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(p.dataId).id,Qe[r.dtype],u.batchSize,u.inChannels,u.inHeight,u.inWidth,u.outHeight,u.outWidth,u.strideHeight,u.strideWidth,u.dilationHeight,u.dilationWidth,u.filterHeight,u.filterWidth,u.padInfo.top,u.padInfo.left),p}var dpe={kernelName:Hi,backendName:"wasm",setupFunc:ppe,kernelFunc:cpe},TF;function hpe(e){TF=e.wasm.cwrap(Ul,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function mpe(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,dy:i}=t,{strides:o,pad:l,dilations:u}=a;if(r.dtype!==s.dtype||r.dtype!==i.dtype)throw new Error(`Dilation2DBackpropFilter error: x must have the same dtype as filter and dy. Got ${r.dtype}, ${s.dtype}, and ${i.dtype}`);let p=N.computeDilation2DInfo(r.shape,s.shape,o,l,"NHWC",u),d=n.makeOutput(s.shape,s.dtype);return TF(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(i.dataId).id,n.dataIdMap.get(d.dataId).id,Qe[r.dtype],p.batchSize,p.inChannels,p.inHeight,p.inWidth,p.outHeight,p.outWidth,p.strideHeight,p.strideWidth,p.dilationHeight,p.dilationWidth,p.filterHeight,p.filterWidth,p.padInfo.top,p.padInfo.left),d}var fpe={kernelName:Ul,backendName:"wasm",setupFunc:hpe,kernelFunc:mpe},CF;function gpe(e){CF=e.wasm.cwrap(Vl,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function bpe(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,dy:i}=t,{strides:o,pad:l,dilations:u}=a;if(r.dtype!==s.dtype||r.dtype!==i.dtype)throw new Error(`Dilation2DBackpropInput error: x must have the same dtype as filter and dy. Got ${r.dtype}, ${s.dtype}, and ${i.dtype}`);let p=N.computeDilation2DInfo(r.shape,s.shape,o,l,"NHWC",u),d=n.makeOutput(r.shape,r.dtype);return CF(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(i.dataId).id,n.dataIdMap.get(d.dataId).id,Qe[r.dtype],p.batchSize,p.inChannels,p.inHeight,p.inWidth,p.outHeight,p.outWidth,p.strideHeight,p.strideWidth,p.dilationHeight,p.dilationWidth,p.filterHeight,p.filterWidth,p.padInfo.top,p.padInfo.left),d}var ype={kernelName:Vl,backendName:"wasm",setupFunc:gpe,kernelFunc:bpe},xpe=Xe(ji),_F;function vpe(e){_F=e.wasm.cwrap(Iu,null,["number","number","number"])}function wpe(e){let{inputs:t,backend:n}=e,{dy:a,y:r}=t,s=n.makeOutput(r.shape,"float32"),i=o=>n.dataIdMap.get(o.dataId).id;return _F(i(r),i(a),i(s)),s}var kpe={kernelName:Iu,backendName:"wasm",setupFunc:vpe,kernelFunc:wpe},Ipe=!1,Spe=Ht(Su,Ipe,"bool"),Npe=Xe(Ki),Tpe=Xe(Xi,"float32");function vv(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&&(w.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 Cpe={kernelName:Nu,backendName:"wasm",kernelFunc:vv},_pe=Xe(Yi,"float32");function EF(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 Epe={kernelName:Uc,backendName:"wasm",kernelFunc:EF},AF;function Ape(e){AF=e.wasm.cwrap(Tu,null,["number","number","number","number","number","number"])}function Fpe(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 AF(s,o,l,u,p,i),r}var $pe={kernelName:Tu,backendName:"wasm",kernelFunc:Fpe,setupFunc:Ape},Dpe=Xe(Zi),Rpe=!1,Mpe=Ht(Ji,Rpe),FF;function Ppe(e){FF=e.wasm.cwrap(Qi,null,["number","number","number","number","number","number","number"])}function Ope(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(w.sizeFromShape(s.shape)===0)return f;let g=t.dataIdMap.get(f.dataId).id;return FF(p,d,c,h,m,r,g),f}var Lpe={kernelName:Qi,backendName:"wasm",setupFunc:Ppe,kernelFunc:Ope},$F;function zpe(e){$F=e.wasm.cwrap(li,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 Wpe(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 b=a.dataIdMap.get(r.dataId).id,y=a.dataIdMap.get(s.dataId).id,x=f.outChannels,v=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})`);v=te.id}let I=f.filterHeight,T=f.filterWidth,C=f.padInfo.top,E=f.padInfo.right,F=f.padInfo.bottom,D=f.padInfo.left,$=f.dilationHeight,S=f.dilationWidth,M=f.strideHeight,B=f.strideWidth,U=f.inChannels,H=f.padInfo.type==="SAME"?1:0,j=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 $F(b,j,K,Z,y,I,T,v,C,E,F,D,H,$,S,M,B,U,x,g,ae,m||0,ee),J}var Bpe={kernelName:li,backendName:"wasm",setupFunc:zpe,kernelFunc:Wpe},DF;function Vpe(e){DF=e.wasm.cwrap(ui,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 Upe(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 b=a.dataIdMap.get(r.dataId).id,y=a.dataIdMap.get(s.dataId).id,x=f.outChannels,v=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})`);v=te.id}let I=f.filterHeight,T=f.filterWidth,C=f.padInfo.top,E=f.padInfo.right,F=f.padInfo.bottom,D=f.padInfo.left,$=f.dilationHeight,S=f.dilationWidth,M=f.strideHeight,B=f.strideWidth,U=f.inChannels,H=f.padInfo.type==="SAME"?1:0,j=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 DF(b,j,K,Z,y,I,T,v,C,E,F,D,H,$,S,M,B,U,x,g,ae,m||0,ee),J}var Gpe={kernelName:ui,backendName:"wasm",setupFunc:Vpe,kernelFunc:Upe},RF;function Hpe(e){RF=e.wasm.cwrap(_u,null,["number","number","number","number","number","number","array","number"])}function qpe(e){let{backend:t,inputs:n}=e,{params:a,indices:r}=n,[s,i,o,l]=Jw.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 RF(c,Qe[a.dtype],h,i,d,o,m,f),u}var jpe={kernelName:_u,backendName:"wasm",setupFunc:Hpe,kernelFunc:qpe},MF;function Kpe(e){MF=e.wasm.cwrap("Gather",null,["number","number","array","number","number","number","array","number"])}function Xpe(e){let{backend:t,inputs:n,attrs:a}=e,{x:r,indices:s}=n,{axis:i,batchDims:o}=a,l=w.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=w.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(w.sizeFromShape(r.shape)===0)return g;let b=c.shape.length-1,y=t.dataIdMap.get(c.dataId).id,x=t.dataIdMap.get(m.dataId).id,v=t.dataIdMap.get(g.dataId).id,I=new Uint8Array(new Int32Array(w.computeStrides(c.shape)).buffer),T=new Uint8Array(new Int32Array(w.computeStrides(f)).buffer);return MF(y,Qe[r.dtype],I,b,x,d.batchSize,T,v),t.disposeData(c.dataId),t.disposeData(m.dataId),g.shape=d.outputShape,g}var Ype={kernelName:Cu,backendName:"wasm",setupFunc:Kpe,kernelFunc:Xpe},Zpe=!1,Jpe=Ht(Eu,Zpe,"bool"),Qpe=!1,ece=Ht(eo,Qpe,"bool"),tce=Xe(no,"bool"),nce=Xe(ao,"bool"),ace=Xe(ro,"bool"),PF;function rce(e){PF=e.wasm.cwrap(so,null,["number","number","number","number"])}function sce(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(w.sizeFromShape(t.shape)!==0){let i=a.dataIdMap.get(s.dataId).id;PF(r,Qe[t.dtype],n,i)}return s}var ice={kernelName:so,backendName:"wasm",setupFunc:rce,kernelFunc:sce},oce=!1,lce=Ht(Au,oce,"bool"),uce=!1,pce=Ht(Fu,uce,"bool"),OF;function cce(e){OF=e.wasm.cwrap($u,null,["number","number","number","number"])}function dce(e){let{attrs:t,backend:n}=e,{start:a,stop:r,num:s}=t,i=Math.floor(s),o=n.makeOutput([i],"float32");return OF(n.dataIdMap.get(o.dataId).id,a,r,i),o}var hce={kernelName:$u,backendName:"wasm",setupFunc:cce,kernelFunc:dce},mce=Xe(io),fce=Xe(oo),gce=!1,bce=Ht(Du,gce,"bool"),yce=Xe(Ru),xce=!1,vce=Ht(Mu,xce,"bool"),wce=!1,kce=Ht(rN,wce,"bool"),LF;function Ice(e){LF=e.wasm.cwrap(lo,null,["number","number","number","number","number","number","number"])}function Sce(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=a;if(r.dtype!=="float32")throw new Error("LRN error: x must have dtype float32");let u=n.makeOutput(r.shape,r.dtype);return LF(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(u.dataId).id,r.shape[3],s,i,o,l),u}var Nce={kernelName:lo,backendName:"wasm",setupFunc:Ice,kernelFunc:Sce},zF;function Tce(e){zF=e.wasm.cwrap(Pu,null,["number","number","number","number","number","number","number","number","number"])}function Cce(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;if(r.dtype!=="float32"||s.dtype!=="float32"||i.dtype!=="float32")throw new Error("LRNGrad error: x, y, and dy must have dtype float32");let d=n.makeOutput(r.shape,r.dtype);return zF(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(i.dataId).id,n.dataIdMap.get(d.dataId).id,i.shape[3],o,l,u,p),d}var _ce={kernelName:Pu,backendName:"wasm",setupFunc:Tce,kernelFunc:Cce},WF;function Ece(e){WF=e.wasm.cwrap(uo,null,["number","number","number","number"])}function Ace(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}=Ps(i,r,t);if(c){let y=t.dataIdMap.get(u.dataId).id;l=u,o=y}let h=l.shape.length;N.assertAxesAreInnerMostDims("max",p,h);let[m,f]=N.computeOutAndReduceShapes(l.shape,p),g=w.sizeFromShape(f),b=t.makeOutput(m,i.dtype);if(w.sizeFromShape(l.shape)!==0){let y=t.dataIdMap.get(b.dataId).id;WF(o,Qe[i.dtype],g,y)}if(c&&t.disposeData(u.dataId),s){let y=N.expandShapeToKeepDim(b.shape,d);b.shape=y}return b}var Fce={kernelName:uo,backendName:"wasm",setupFunc:Ece,kernelFunc:Ace},$ce=!1,Dce=Ht(po,$ce),BF;function Rce(e){BF=e.wasm.cwrap(co,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Mce(e){let{inputs:t,attrs:n,backend:a}=e,r=t.x,s=a.dataIdMap.get(r.dataId).id;w.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,b=p.dilationHeight,y=p.dilationWidth,x=p.strideHeight,v=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 BF(s,r.shape[0],r.shape[1],r.shape[2],d,c,h,m,f,g,b,y,x,v,I,T,E),C}var Pce={kernelName:co,backendName:"wasm",setupFunc:Rce,kernelFunc:Mce},VF;function Oce(e){VF=e.wasm.cwrap("MaxPool3D",null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Lce(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=a,p=N.computePool3DInfo(r.shape,s,i,1,o,l,u),d=n.makeOutput(p.outShape,r.dtype);return VF(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(d.dataId).id,p.batchSize,p.inChannels,p.inDepth,p.inHeight,p.inWidth,p.outDepth,p.outHeight,p.outWidth,p.strideDepth,p.strideHeight,p.strideWidth,p.dilationDepth,p.dilationHeight,p.dilationWidth,p.effectiveFilterDepth,p.effectiveFilterHeight,p.effectiveFilterWidth,p.padInfo.front,p.padInfo.top,p.padInfo.left),d}var zce={kernelName:Ou,backendName:"wasm",setupFunc:Oce,kernelFunc:Lce},UF;function Wce(e){UF=e.wasm.cwrap("MaxPool3DGrad",null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Bce(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=a,p=N.computePool3DInfo(s.shape,i,o,1,l,u),d=n.makeOutput(s.shape,s.dtype);return UF(n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(d.dataId).id,p.batchSize,p.inChannels,p.inDepth,p.inHeight,p.inWidth,p.outDepth,p.outHeight,p.outWidth,p.strideDepth,p.strideHeight,p.strideWidth,p.dilationDepth,p.dilationHeight,p.dilationWidth,p.effectiveFilterDepth,p.effectiveFilterHeight,p.effectiveFilterWidth,p.padInfo.front,p.padInfo.top,p.padInfo.left),d}var Vce={kernelName:Hc,backendName:"wasm",setupFunc:Wce,kernelFunc:Bce},GF;function Uce(e){GF=e.wasm.cwrap("MaxPoolGrad",null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Gce(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=a,p=N.computePool2DInfo(s.shape,i,o,1,l,u),d=n.makeOutput(s.shape,s.dtype);return GF(n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(d.dataId).id,p.batchSize,p.inChannels,p.inHeight,p.inWidth,p.outHeight,p.outWidth,p.strideHeight,p.strideWidth,p.dilationHeight,p.dilationWidth,p.effectiveFilterHeight,p.effectiveFilterWidth,p.padInfo.top,p.padInfo.left),d}var Hce={kernelName:Gc,backendName:"wasm",setupFunc:Uce,kernelFunc:Gce},HF;function qce(e){HF=e.wasm.cwrap("MaxPoolWithArgmax",null,["number","number","number","number","boolean","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function jce(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,includeBatchInIndex:l}=a;w.assert(r.shape.length===4,()=>`Error in maxPool: input must be rank 4 but got rank ${r.shape.length}.`);let u=[1,1];w.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,[1,1],o),d=n.makeOutput(p.outShape,r.dtype),c=n.makeOutput(p.outShape,"int32");return HF(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(d.dataId).id,n.dataIdMap.get(c.dataId).id,Qe[r.dtype],l,p.batchSize,p.inChannels,p.inHeight,p.inWidth,p.outHeight,p.outWidth,p.strideHeight,p.strideWidth,p.dilationHeight,p.dilationWidth,p.effectiveFilterHeight,p.effectiveFilterWidth,p.padInfo.top,p.padInfo.left),[d,c]}var Kce={kernelName:qc,backendName:"wasm",setupFunc:qce,kernelFunc:jce},qF;function Xce(e){qF=e.wasm.cwrap(ho,null,["number, number, number"])}function Yce(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}=Ps(i,r,t),m=d;if(h){let v=t.dataIdMap.get(p.dataId).id;v!==o&&(u=p,l=v,m=N.getInnerMostAxes(m.length,u.shape.length))}N.assertAxesAreInnerMostDims("mean",m,u.shape.length);let[f,g]=N.computeOutAndReduceShapes(u.shape,m),b=w.sizeFromShape(g),y=u;u.dtype!=="float32"&&(y=Os({backend:t,inputs:{x:u},attrs:{dtype:"float32"}}),l=t.dataIdMap.get(y.dataId).id);let x=t.makeOutput(f,"float32");if(w.sizeFromShape(u.shape)!==0){let v=t.dataIdMap.get(x.dataId).id;qF(l,b,v)}if(h&&t.disposeData(p.dataId),s){let v=N.expandShapeToKeepDim(x.shape,c);x.shape=v}return u.dtype!=="float32"&&t.disposeData(y.dataId),x}var Zce={kernelName:ho,backendName:"wasm",setupFunc:Xce,kernelFunc:Yce},jF;function Jce(e){jF=e.wasm.cwrap(mo,null,["number","number","number","number"])}function Qce(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}=Ps(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),b=w.sizeFromShape(g),y=t.makeOutput(f,u.dtype);if(w.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(y.dataId).id;jF(l,Qe[i.dtype],b,x)}if(h&&t.disposeData(p.dataId),s){let x=N.expandShapeToKeepDim(y.shape,c);y.shape=x}return y}var ede={kernelName:mo,backendName:"wasm",setupFunc:Jce,kernelFunc:Qce},tde=!1,nde=Ht(fo,tde),wv;(function(e){e[e.reflect=0]="reflect",e[e.symmetric=1]="symmetric"})(wv||(wv={}));var KF;function ade(e){KF=e.wasm.cwrap(go,null,["number","array","number","number","array","array","number","number"])}function rde(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 KF(i,u,t.shape.length,Qe[t.dtype],c,h,wv[r],l),o}var sde={kernelName:go,backendName:"wasm",kernelFunc:rde,setupFunc:ade},XF;function ide(e){XF=e.wasm.cwrap(Wo,null,["number","number","number","number"])}function YF(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=w.sizeFromShape(n.shape)/o;return w.sizeFromShape(s.shape)===0||XF(r,i,o,l),s}var ode={kernelName:Wo,backendName:"wasm",setupFunc:ide,kernelFunc:YF},ZF;function lde(e){ZF=e.wasm.cwrap(Lu,null,["number","number","number","number","number","number"])}function ude(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{numSamples:s,seed:i,normalized:o}=a;if(r.dtype!=="float32")throw new Error(`Tensor logits must have dtype float32, got ${r.dtype}`);let l=o?r:YF({inputs:{logits:r},backend:n,attrs:{dim:r.shape.length-1}}),[u,p]=l.shape,d=n.makeOutput([u,s],"int32");return ZF(n.dataIdMap.get(l.dataId).id,u,p,s,i,n.dataIdMap.get(d.dataId).id),o||n.disposeData(l.dataId),d}var pde={kernelName:Lu,backendName:"wasm",setupFunc:lde,kernelFunc:ude},cde=Ht(bo,!0),dde=!0,hde=Ht(yo,dde),mde=Xe(zu);function hk(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 JF;function fde(e){JF=e.wasm.cwrap(Bu,"number",["number","number","number","number","number"])}function gde(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=JF(u,p,s,r,i),{pSelectedIndices:c,selectedSize:h,pSelectedScores:m,pValidOutputs:f}=hk(t,d);return t.wasm._free(m),t.wasm._free(f),t.makeOutput([h],"int32",c)}var bde={kernelName:Bu,backendName:"wasm",setupFunc:fde,kernelFunc:gde},QF;function yde(e){QF=e.wasm.cwrap(Vu,"number",["number","number","number","number","number","bool"])}function xde(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=QF(p,d,s,r,i,o),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=hk(t,c);t.wasm._free(f);let b=t.makeOutput([m],"int32",h),y=t.makeOutput([],"int32",g);return[b,y]}var vde={kernelName:Vu,backendName:"wasm",setupFunc:yde,kernelFunc:xde},e$;function wde(e){e$=e.wasm.cwrap(Uu,"number",["number","number","number","number","number","number"])}function kde(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=e$(p,d,s,r,i,o),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=hk(t,c);t.wasm._free(g);let b=t.makeOutput([m],"int32",h),y=t.makeOutput([m],"float32",f);return[b,y]}var Ide={kernelName:Uu,backendName:"wasm",setupFunc:wde,kernelFunc:kde},Sde=!1,Nde=Ht(Wu,Sde,"bool"),t$;function Tde(e){t$=e.wasm.cwrap(xo,null,["number","number","number","number","number"])}function Cde(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 t$(d,i,o,l,p),u}var _de={kernelName:xo,backendName:"wasm",setupFunc:Tde,kernelFunc:Cde};function Ede(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(a).fill(1),a}var Ade={kernelName:Gu,backendName:"wasm",kernelFunc:Ede};function Fde(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a;if(t.length===1)return vv({inputs:{input:t[0]},backend:n,attrs:{dim:r}});let s=t[0].shape,i=t[0].dtype;t.forEach(p=>{w.assertShapesMatch(s,p.shape,"All tensors passed to stack must have matching shapes"),w.assert(i===p.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=[],l=t.map(p=>{let d=vv({inputs:{input:p},backend:n,attrs:{dim:r}});return o.push(d),d}),u=dF({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(p=>n.disposeData(p.dataId)),u}var $de={kernelName:Hu,backendName:"wasm",kernelFunc:Fde},n$;function Dde(e){n$=e.wasm.cwrap(vo,null,["number","array","number","number","array","array","number","number"])}function Rde(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(w.sizeFromShape(t.shape)===0)return EF({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 n$(i,u,t.shape.length,Qe[t.dtype],c,h,r,l),o}var a$={kernelName:vo,backendName:"wasm",kernelFunc:Rde,setupFunc:Dde},Mde=!1,Pde=Ht(wo,Mde),r$;function Ode(e){r$=e.wasm.cwrap(ko,null,["number","number","number"])}function Lde(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=Os({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 r$(o,i,d),l.dtype!=="float32"&&n.disposeData(u.dataId),p}var zde={kernelName:ko,backendName:"wasm",setupFunc:Ode,kernelFunc:Lde},s$;function Wde(e){s$=e.wasm.cwrap(Io,null,["number","number","number","number"])}function Bde(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}=Ps(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),b=w.sizeFromShape(g),y=t.makeOutput(f,u.dtype);if(w.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(y.dataId).id;s$(l,b,Qe[y.dtype],x)}if(h&&t.disposeData(p.dataId),s){let x=N.expandShapeToKeepDim(y.shape,c);y.shape=x}return y}var Vde={kernelName:Io,backendName:"wasm",setupFunc:Wde,kernelFunc:Bde},Ude=e=>{let{backend:t,attrs:n}=e,{start:a,stop:r,step:s,dtype:i}=n,o=V1(a,r,s,i),l=t.makeOutput([o.length],i);return t.typedArrayFromHeap(l).set(o),l},Gde={kernelName:jc,backendName:"wasm",kernelFunc:Ude},Hde=!0,qde=Ht(qi,Hde),jde=Xe(So),Kde=Xe(No),Xde=Xe(_o),i$;function Yde(e){i$=e.wasm.cwrap(Co,null,["number","number","number","number","number","number","number","number","number","number"])}function Zde(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=Os({backend:t,inputs:{x:r},attrs:{dtype:"float32"}}),f=t.dataIdMap.get(g.dataId));let b=f.id,y=t.makeOutput(m,"float32");if(w.sizeFromShape(r.shape)===0)return y;let x=t.dataIdMap.get(y.dataId).id;return i$(b,p,d,c,h,l,u,s?1:0,i?1:0,x),g!=null&&t.disposeData(g.dataId),y}var Jde={kernelName:Co,backendName:"wasm",setupFunc:Yde,kernelFunc:Zde},o$;function Qde(e){o$=e.wasm.cwrap(Ku,null,["number","number","number","array","array","boolean"])}function ehe(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=n.makeOutput(r.shape,"float32"),l=n.dataIdMap.get(r.dataId),u;return l.dtype!=="float32"&&(u=Os({backend:n,inputs:{x:r},attrs:{dtype:"float32"}}),l=n.dataIdMap.get(u.dataId)),o$(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(o.dataId).id,new Uint8Array(new Int32Array(r.shape).buffer),new Uint8Array(new Int32Array(s.shape).buffer),i),u!=null&&n.disposeData(u.dataId),o}var the={kernelName:Ku,backendName:"wasm",setupFunc:Qde,kernelFunc:ehe},l$;function nhe(e){l$=e.wasm.cwrap(To,null,["number","number","number","number","number","number","number","number","number","number"])}function ahe(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(w.sizeFromShape(r.shape)===0)return f;let g=t.dataIdMap.get(r.dataId),b;g.dtype!=="float32"&&(b=Os({backend:t,inputs:{x:r},attrs:{dtype:"float32"}}),g=t.dataIdMap.get(b.dataId));let y=g.id,x=t.dataIdMap.get(f.dataId).id;return l$(y,p,d,c,h,l,u,s?1:0,i?1:0,x),b!=null&&t.disposeData(b.dataId),f}var rhe={kernelName:To,backendName:"wasm",setupFunc:nhe,kernelFunc:ahe},u$;function she(e){u$=e.wasm.cwrap(ju,null,["number","number","number","array","array","boolean"])}function ihe(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=n.makeOutput(r.shape,"float32"),l=n.dataIdMap.get(r.dataId),u;return l.dtype!=="float32"&&(u=Os({backend:n,inputs:{x:r},attrs:{dtype:"float32"}}),l=n.dataIdMap.get(u.dataId)),u$(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(o.dataId).id,new Uint8Array(new Int32Array(r.shape).buffer),new Uint8Array(new Int32Array(s.shape).buffer),i),u!=null&&n.disposeData(u.dataId),o}var ohe={kernelName:ju,backendName:"wasm",setupFunc:she,kernelFunc:ihe},p$;function lhe(e){p$=e.wasm.cwrap(Eo,null,["number","array","number","array","number","number"])}function uhe(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a,i=w.parseAxisParam(s,r.shape);if(r.shape.length===0)return ag({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);p$(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 phe={kernelName:Eo,backendName:"wasm",kernelFunc:uhe,setupFunc:lhe},c$;function che(e){c$=e.wasm.cwrap(up,null,["number","number","number","number","number","number","number","number","array","number","number"])}function dhe(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),b=i===0,y=255,x=typeof i=="number"?[i,i,i,b?0:y]:[...i,y],v=new Uint8Array(new Int32Array(x).buffer);return c$(u,d,c,h,m,s,f,g,v,x.length,p),l}var hhe={kernelName:up,backendName:"wasm",kernelFunc:dhe,setupFunc:che},mhe=Xe(Ao),fhe=Xe(Fo),d$;function ghe(e){d$=e.wasm.cwrap(Xu,null,["number","number","number","number","number","number","array","number","number"])}function bhe(e){let{backend:t,inputs:n,attrs:a}=e,{indices:r,updates:s}=n,{shape:i}=a,o=t.makeOutput(i,s.dtype);if(w.sizeFromShape(i)===0)return o;let{sliceRank:l,numUpdates:u,sliceSize:p,strides:d,outputSize:c}=wf.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 d$(h,m,Qe[s.dtype],l,u,p,f,c,g),o}var yhe={kernelName:Xu,backendName:"wasm",setupFunc:ghe,kernelFunc:bhe},h$;function xhe(e){h$=e.wasm.cwrap(Zu,null,["number","number","number","number","number","number","bool","number"])}function vhe(e){let{inputs:t,backend:n,attrs:a}=e,{sortedSequence:r,values:s}=t,{side:i}=a;if(r.dtype!==s.dtype)throw new Error(`SearchSorted error: sorted_sequence must have the same dtype as values. Got ${r.dtype} and ${s.dtype}`);let o=n.makeOutput(s.shape,"int32");function l(u){return n.dataIdMap.get(u.dataId).id}return h$(l(r),l(s),r.shape[0],r.shape[1],s.shape[1],Qe[r.dtype],i==="left",l(o)),o}var whe={kernelName:Zu,backendName:"wasm",setupFunc:xhe,kernelFunc:vhe},m$;function khe(e){m$=e.wasm.cwrap("SelectV2",null,["number","number","number","number","number"])}function Ihe(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:w.sizeFromShape(r.shape.slice(1));return m$(i,o,l,h,p),u}var She={kernelName:Ju,backendName:"wasm",kernelFunc:Ihe,setupFunc:khe},Nhe=Xe($o),f$;function The(e){f$=e.wasm.cwrap(Po,null,["number","number"])}function Che(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 w.sizeFromShape(r.shape)===0||f$(a,s),r}var _he={kernelName:"Sigmoid",backendName:"wasm",setupFunc:The,kernelFunc:Che},Ehe=Xe(Mo),Ahe=Xe(Do),Fhe=Xe(Ro),$he=Xe(Oo);function Dhe(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,paddings:i}=a,o=w.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"),b=n.dataIdMap.get(g.dataId).id;s$(d,et[r.dtype],r.shape[0],c,h,f,b,t,0);let y=n.readSync(g.dataId),x;switch(y[0]){case 0:{x=N.getSparseSegmentReductionNegativeSegmentIdsErrorMessage();break}case 1:{x=N.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage();break}case 2:x=N.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(y[1],y[2]);break;case 3:x=N.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(y[1],y[2],y[3]);break;default:x=""}if(n.disposeData(g.dataId),x)throw n.disposeData(m.dataId),new Error(x);return m}function she(e){return o$(e,!0)}var ihe={kernelName:Uc,backendName:"wasm",setupFunc:i$,kernelFunc:she};function ohe(e){return o$(e,!1)}var lhe={kernelName:Gc,backendName:"wasm",setupFunc:i$,kernelFunc:ohe},l$;function uhe(e){l$=e.wasm.cwrap(tp,null,["number","number","number","number","number","number","number","number","array","number","number"])}function phe(e){let{backend:t,inputs:n,attrs:a}=e,{sparseIndices:r,sparseValues:s,defaultValue:i}=n,{outputShape:o}=a,l=t.makeOutput(o,i.dtype);if(v.sizeFromShape(o)===0)return l;let{sliceRank:u,numUpdates:p,sliceSize:d,strides:c,outputSize:h}=N.calculateShapes(s,r,o),m=t.dataIdMap.get(r.dataId).id,f=t.dataIdMap.get(s.dataId).id,g=t.dataIdMap.get(i.dataId).id,b=new Uint8Array(new Int32Array(c).buffer),y=t.dataIdMap.get(l.dataId).id;return l$(m,f,s.shape.length,g,et[i.dtype],u,p,d,b,h,y),l}var che={kernelName:tp,backendName:"wasm",setupFunc:uhe,kernelFunc:phe};function dhe(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=ki({inputs:{x:r},attrs:{begin:u,size:c},backend:a});return u[o]+=d,h})}var hhe={kernelName:Qu,backendName:"wasm",kernelFunc:dhe},mhe=Je(Do),fhe=Je(Hc),ghe=!0,bhe=ln(Po,ghe),u$;function yhe(e){u$=e.wasm.cwrap(Ns,null,["number","number","number","number"])}function xhe(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 u$(i,r,et[s.dtype],l),o}var vhe={kernelName:Ns,backendName:"wasm",setupFunc:yhe,kernelFunc:xhe},p$;function whe(e){p$=e.wasm.cwrap(np,null,["number","array","number","array","array","array","array","array","number","number"])}function khe(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:b,begin:y,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||b){v.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let T=Kt.computeOutShape(y,x,w),C=ki({inputs:{x:r},backend:t,attrs:{begin:y,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),F=new Uint8Array(new Int32Array(y).buffer),D=new Uint8Array(new Int32Array(x).buffer),$=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;p$(C,E,r.shape.length,F,D,$,S,M,h.length,B),I=Wn({inputs:{x:T},backend:t,attrs:{shape:m}}),t.disposeData(T.dataId)}return I}var Ihe={kernelName:np,backendName:"wasm",setupFunc:whe,kernelFunc:khe};function She(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]=P1(c,h,i,o,l,u,p,d),g=t.makeOutput([m.length],"string"),b=t.dataIdMap.get(g.dataId);b.stringBytes=m;let y=t.makeOutput(s.shape,"int32");return t.typedArrayFromHeap(y).set(f),[g,y]}var Nhe={kernelName:jc,backendName:"wasm",kernelFunc:She};function The(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]=O1(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 Che={kernelName:Kc,backendName:"wasm",kernelFunc:The};function _he(e){let{backend:t,inputs:n,attrs:a}=e,{input:r}=n,{numBuckets:s}=a,i=t.readSync(r.dataId),o=L1(i,s),l=t.makeOutput(r.shape,"int32");return t.typedArrayFromHeap(l).set(o),l}var Ehe={kernelName:Xc,backendName:"wasm",kernelFunc:_he},Ahe=!0,Fhe=ln(Oo,Ahe),c$;function $he(e){c$=e.wasm.cwrap(Ro,null,["number","number","number","number"])}function Dhe(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}=Ms(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),b=v.sizeFromShape(g),y=t.makeOutput(f,u.dtype);if(v.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(y.dataId).id;c$(l,b,et[y.dtype],x)}if(h&&t.disposeData(p.dataId),s){let x=N.expandShapeToKeepDim(y.shape,c);y.shape=x}return y}var Rhe={kernelName:Ro,backendName:"wasm",setupFunc:$he,kernelFunc:Dhe},Mhe=Je(Lo),Phe=Je(zo),d$;function Ohe(e){d$=e.wasm.cwrap(ju,null,["number","number","number","number","number","number","array","number","number","number"])}function Lhe(e){let{backend:t,inputs:n,attrs:a}=e,{tensor:r,indices:s,updates:i}=n,{}=a,o=t.makeOutput(r.shape,r.dtype);if(v.sizeFromShape(r.shape)===0)return o;let{sliceRank:l,numUpdates:u,sliceSize:p,strides:d,outputSize:c}=vf.calculateShapes(i,s,r.shape),h=t.dataIdMap.get(s.dataId).id,m=t.dataIdMap.get(i.dataId).id,f=t.dataIdMap.get(r.dataId).id,g=new Uint8Array(new Int32Array(d).buffer),b=t.dataIdMap.get(o.dataId).id;return d$(h,m,et[i.dtype],l,u,p,g,c,b,f),o}var zhe={kernelName:ju,backendName:"wasm",setupFunc:Ohe,kernelFunc:Lhe},h$;function Whe(e){h$=e.wasm.cwrap(Ss,null,["number","array","number","array","number","number"])}function Bhe(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 m$(i,o,a.shape.length,et[a.dtype],r,s,p,c),[u,d]},Hhe={kernelName:ap,backendName:"wasm",setupFunc:Uhe,kernelFunc:Ghe},f$;function qhe(e){f$=e.wasm.cwrap(rp,null,["number","number","bool","number","number","number","number","number","number","array","number","array","number","number","number","number","number"])}function jhe(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],b=new Uint8Array(new Int32Array(v.computeStrides(r.shape)).buffer),y=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 f$(I,T,s.shape[0]>1,p,m,f,h,c,d,b,r.shape.length-1,y,g.length-1,C,E,l,w),x}var Khe={kernelName:rp,backendName:"wasm",setupFunc:qhe,kernelFunc:jhe};function Xhe(e){let{inputs:t,attrs:n,backend:a}=e,{axis:r}=n,{x:s}=t,{outputValues:i,outputShape:o,indices:l}=W1(a.readSync(s.dataId),r,s.shape,s.dtype);return[a.makeOutput(o,s.dtype,void 0,i),a.makeOutput([l.length],"int32",void 0,l)]}var Yhe={kernelName:Yc,backendName:"wasm",kernelFunc:Xhe};function Zhe(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 Jhe={kernelName:sp,backendName:"wasm",kernelFunc:Zhe};function Qhe(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(a).fill(0),a}var eme={kernelName:ip,backendName:"wasm",kernelFunc:Qhe},tme=[Yoe,Zoe,Joe,Qoe,tle,rle,dle,fle,gle,ble,yle,xle,vle,wle,kle,Nle,_le,Fle,Mle,Ble,Gle,qle,jle,Kle,Zle,Jle,tue,rue,oue,pue,hue,mue,fue,yue,wue,Sue,Cue,Aue,Due,Pue,zue,Vue,Hue,que,Xue,Zue,Jue,Que,epe,tpe,rpe,spe,ope,ppe,hpe,gpe,xpe,kpe,Spe,Tpe,sle,Cpe,_pe,Epe,$pe,Rpe,Ppe,zpe,Bpe,Wpe,Upe,Gpe,qpe,Kpe,Zpe,ece,ace,sce,lce,cce,mce,bce,vce,kce,Nce,Ace,$ce,Dce,Pce,zce,Vce,Gce,jce,Xce,Zce,GF,tde,rde,ode,ude,cde,dde,hde,mde,$le,bde,vde,Ide,Tde,Ede,$de,Dde,Rde,Ode,Wde,Ude,Gde,jde,Kde,Xde,zle,Cce,Yde,Jde,the,rhe,ihe,lhe,che,hhe,mhe,fhe,bhe,vhe,Ihe,Nhe,Che,Ehe,Fhe,Rhe,Mhe,Phe,zhe,Vhe,Hhe,Khe,ule,Yhe,Jhe,eme];for(let e of tme)Jc(e);var mv=G();mv.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}});mv.registerFlag("WASM_HAS_MULTITHREAD_SUPPORT",async()=>{if(mv.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 ES=ws(uR()),nme=ws(pR()),AS=ws(cR()),FS=ES.default||ES,ame=AS.default||AS,g$=class extends $c{constructor(e){super(),this.wasm=e,this.dataIdNextNumber=1,this.wasm.tfjs.initWithThreadsCount(b$),fv=this.wasm.tfjs.getThreadsCount(),this.dataIdMap=new Em(this,Aa())}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)>>>0;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 ime(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,a){let r;if(n==null)r=this.write(a!=null?a:null,e,t);else{let s=this.dataIdNextNumber++;r={id:s},this.dataIdMap.set(r,{id:s,memoryOffset:n,shape:e,dtype:t,refCount:1});let i=v.sizeFromShape(e);this.wasm.tfjs.registerTensor(s,i,n)}return{dataId:r,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 rme(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 $S(e,t,n){if(Cm!=null)return Cm;let a="tfjs-backend-wasm.wasm";return e&&t?a="tfjs-backend-wasm-threaded-simd.wasm":e&&(a="tfjs-backend-wasm-simd.wasm"),dc!=null&&dc[a]!=null?dc[a]:n+a}async function sme(){let[e,t]=await Promise.all([G().getAsync("WASM_HAS_SIMD_SUPPORT"),G().getAsync("WASM_HAS_MULTITHREAD_SUPPORT")]);return new Promise((n,a)=>{let r={};r.locateFile=(o,l)=>{if(o.endsWith(".worker.js")){let u=nme.wasmWorkerContents.replace(/\n/g,"\\n"),p=new Blob([u],{type:"application/javascript"});return URL.createObjectURL(p)}return o.endsWith(".wasm")?$S(e,t,uc!=null?uc:l):l+o},ik&&(r.instantiateWasm=rme($S(e,t,uc!=null?uc:"")));let s=!1;r.onAbort=()=>{s||hc||(hc=!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&&Cm==null?(r.mainScriptUrlOrBlob=new Blob(["var WasmBackendModuleThreadedSimd = "+FS.toString()],{type:"text/javascript"}),i=FS(r)):i=ame(r),i.then(o=>{s=!0,hc=!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 ime(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 ome=["tfjs-backend-wasm.wasm","tfjs-backend-wasm-simd.wasm","tfjs-backend-wasm-threaded-simd.wasm"],Cm=null,uc=null,dc={},hc=!1,ik=!1;function lme(e,t=!1){if(Ev("setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release."),hc)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`");Cm=e,ik=t}function ume(e,t=!1){if(hc)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")uc=e;else{dc=e;let n=ome.filter(a=>dc[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.`)}ik=t}var b$=-1,fv=-1;function pme(e){b$=e}function cme(){if(fv===-1)throw new Error("WASM backend not initialized.");return fv}var dme="4.5.0",hme=2;Ym("wasm",async()=>{let{wasm:e}=await sme();return new g$(e)},hme);var DS="4.5.0",mme="4.5.0",fme="4.5.0",gme="4.5.0",bme="4.5.0",yme={tfjs:DS,"tfjs-core":DS,"tfjs-converter":mme,"tfjs-backend-cpu":fme,"tfjs-backend-webgl":gme,"tfjs-backend-wasm":bme};var Fk={};_h(Fk,{AnchorPosition:()=>kk,DrawBox:()=>Pd,DrawBoxOptions:()=>ig,DrawFaceLandmarks:()=>bg,DrawFaceLandmarksOptions:()=>gg,DrawTextField:()=>Ur,DrawTextFieldOptions:()=>_p,drawContour:()=>Wr,drawDetections:()=>Cme,drawFaceExpressions:()=>$me,drawFaceLandmarks:()=>Rme});function Wr(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 pk={};_h(pk,{computeReshapedDimensions:()=>uk,getCenterPoint:()=>Qo,isDimensions:()=>rg,isEven:()=>ag,isFloat:()=>lk,isTensor:()=>Zo,isTensor1D:()=>xme,isTensor2D:()=>ok,isTensor3D:()=>Br,isTensor4D:()=>ka,isValidNumber:()=>Za,isValidProbablitiy:()=>Np,range:()=>yr,round:()=>Jo});var wn=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 wn(1/this.width,1/this.height)}};function Zo(e,t){return e instanceof Ce&&e.shape.length===t}function xme(e){return Zo(e,1)}function ok(e){return Zo(e,2)}function Br(e){return Zo(e,3)}function ka(e){return Zo(e,4)}function lk(e){return e%1!==0}function ag(e){return e%2===0}function Jo(e,t=2){let n=10**t;return Math.floor(e*n)/n}function rg(e){return e&&e.width&&e.height}function uk({width:e,height:t},n){let a=n/Math.max(t,e);return new wn(Math.round(e*a),Math.round(t*a))}function Qo(e){return e.reduce((t,n)=>t.add(n),new Re(0,0)).div(new Re(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 Np(e){return Za(e)&&e>=0&&e<=1}var Re=class{constructor(t,n){this._x=t,this._y=n}get x(){return this._x}get y(){return this._y}add(t){return new Re(this.x+t.x,this.y+t.y)}sub(t){return new Re(this.x-t.x,this.y-t.y)}mul(t){return new Re(this.x*t.x,this.y*t.y)}div(t){return new Re(this.x/t.x,this.y/t.y)}abs(){return new Re(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(this.x**2+this.y**2)}floor(){return new Re(Math.floor(this.x),Math.floor(this.y))}};var ot=class{static isRect(t){return!!t&&[t.x,t.y,t.width,t.height].every(Za)}static assertIsValidBox(t,n,a=!1){if(!ot.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];ot.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 Re(this.left,this.top)}get topRight(){return new Re(this.right,this.top)}get bottomLeft(){return new Re(this.left,this.bottom)}get bottomRight(){return new Re(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 ot({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 ot({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 ot({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 el=class extends ot{constructor(t,n,a,r,s=!1){super({left:t,top:n,right:a,bottom:r},s)}};var Vr=class{constructor(t,n,a,r,s){this._imageDims=new wn(s.width,s.height),this._score=t,this._classScore=n,this._className=a,this._box=new ot(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 ot(this._box).rescale(this.imageDims.reverse())}forSize(t,n){return new Vr(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:n})}};var vt=class extends Vr{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 vt(a,r,s)}};function ck(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 dk(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=xn([...e.shape.slice(0,3),1],n,"float32"),i=xn([...e.shape.slice(0,3),1],a,"float32"),o=xn([...e.shape.slice(0,3),1],r,"float32"),l=Qe([s,i,o],3);return pe(e,l)})}function mk(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,xn(h,0,"float32")},l=o(s),u=r-l.shape[i],d=[t&&u?o(u):null,e,l].filter(c=>!!c).map(c=>ie(c,"float32"));return Qe(d,i)})}function vme(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 Rd(e){return 1/(1+Math.exp(-e))}function wme(e){return Math.log(e/(1-e))}var tl=class extends ot{constructor(t,n,a,r,s=!1){super({x:t,y:n,width:a,height:r},s)}};var kme=.5,Ime=.43,Sme=.45,ia=class{constructor(t,n,a=new Re(0,0)){let{width:r,height:s}=n;this._imgDims=new wn(r,s),this._shift=a,this._positions=t.map(i=>i.mul(new Re(r,s)).add(a))}get shift(){return new Re(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 Re(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 Re(t,n))}shiftByPoint(t){return this.shiftBy(t.x,t.y)}align(t,n={}){if(t){let s=t instanceof vt?t.box.floor():new ot(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/Sme),l=Qo(t),u=Math.floor(Math.max(0,l.x-kme*o)),p=Math.floor(Math.max(0,l.y-Ime*o));return new tl(u,p,Math.min(o,this.imageWidth+u),Math.min(o,this.imageHeight+p))}alignMinBbox(t){let n=dk(this.positions);return n.pad(n.width*t,n.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var fk=class extends ia{getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],Qo([t[3],t[4]])]}};var nl=class extends ia{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(Qo)}};var Tp=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?` (${Jo(this.distance)})`:""}`}};var Cp=class extends ot{constructor(n,a){super(n);this._label=a}static assertIsValidLabeledBox(n,a){if(ot.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 xr=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 xr(t.label,n)}};var gk=class extends Cp{constructor(n,a,r,s){super(n,a);this._score=r,this._classScore=s}static assertIsValidPredictedBox(n,a){if(Cp.assertIsValidLabeledBox(n,a),!Np(n.score)||!Np(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 vr(e){return e.detection instanceof vt}function al(e,t){return{...e,...{detection:t}}}function bk(){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 sg(e){let t="";if(!e&&Md())try{e=WD("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 yk(){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=sg();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 xk(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var un;function Nme(){if(!un)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return un}function vk(e){un=e}function wk(){return xk()?vk(bk()):Md()?vk(yk()):null}function Tme(e){if(un||wk(),!un)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=un.Canvas,Image:n=un.Image}=e;un.Canvas=t,un.Image=n,un.createCanvasElement=e.createCanvasElement||(()=>new t),un.createImageElement=e.createImageElement||(()=>new n),un.ImageData=e.ImageData||un.ImageData,un.Video=e.Video||un.Video,un.fetch=e.fetch||un.fetch,un.readFile=e.readFile||un.readFile}var tt={getEnv:Nme,setEnv:vk,initialize:wk,createBrowserEnv:bk,createFileSystem:sg,createNodejsEnv:yk,monkeyPatch:Tme,isBrowser:xk,isNodejs:Md};wk();function rl(e){return!tt.isNodejs()&&typeof e=="string"?document.getElementById(e):e}function Hn(e){let{Canvas:t,CanvasRenderingContext2D:n}=tt.getEnv();if(e instanceof n)return e;let a=rl(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 kk=(r=>(r.TOP_LEFT="TOP_LEFT",r.TOP_RIGHT="TOP_RIGHT",r.BOTTOM_LEFT="BOTTOM_LEFT",r.BOTTOM_RIGHT="BOTTOM_RIGHT",r))(kk||{}),_p=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}},Ur=class{constructor(t,n,a={}){this.text=typeof t=="string"?[t]:t instanceof Ur?t.text:t,this.anchor=n,this.options=new _p(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 ig=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 _p({...i,...s})}},Pd=class{constructor(t,n={}){this.box=new ot(t),this.options=new ig(n)}draw(t){let n=Hn(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 Ur([u],{x:s-r/2,y:i},this.options.drawLabelOptions).draw(t)}};function Cme(e,t){(Array.isArray(t)?t:[t]).forEach(a=>{let r=a instanceof vt?a.score:vr(a)?a.detection.score:void 0,s=a instanceof vt?a.box:vr(a)?a.detection.box:new ot(a),i=r?`${Jo(r)}`:void 0;new Pd(s,{label:i}).draw(e)})}function Od(e){let{Image:t,Video:n}=tt.getEnv();return e instanceof t&&e.complete||e instanceof n&&e.readyState>=3}function Ik(e){return new Promise((t,n)=>{(e instanceof tt.getEnv().Canvas||Od(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 Sk(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=tt.getEnv().createImageElement();r.onload=()=>t(r),r.onerror=n,r.src=a.result},a.onerror=n,a.readAsDataURL(e)})}function sl(e){let{Image:t,Video:n}=tt.getEnv();return e instanceof t?new wn(e.naturalWidth,e.naturalHeight):e instanceof n?new wn(e.videoWidth,e.videoHeight):new wn(e.width,e.height)}function il({width:e,height:t}){let{createCanvasElement:n}=tt.getEnv(),a=n();return a.width=e,a.height=t,a}function Ld(e,t){let{ImageData:n}=tt.getEnv();if(!(e instanceof n)&&!Od(e))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:a,height:r}=t||sl(e),s=il({width:a,height:r});return e instanceof n?Hn(s).putImageData(e,0,0):Hn(s).drawImage(e,0,0,a,r),s}async function Nk(e,t){let n=t||tt.getEnv().createCanvasElement(),[a,r,s]=e.shape.slice(ka(e)?1:0),i=P(()=>e.as3D(a,r,s).toInt());return await Uo.toPixels(i,n),i.dispose(),n}function og(e){let{Image:t,Canvas:n,Video:a}=tt.getEnv();return e instanceof t||e instanceof n||e instanceof a}function Tk(e,t,n=!1){let{Image:a,Canvas:r}=tt.getEnv();if(!(e instanceof a||e instanceof r))throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement");if(t<=0)return il({width:1,height:1});let s=sl(e),i=t/Math.max(s.height,s.width),o=i*s.width,l=i*s.height,u=il({width:t,height:t}),p=e instanceof r?e:Ld(e),d=Math.abs(o-l)/2,c=n&&o0&&p.height>0&&Hn(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(Br(a)){this._imageTensors[r]=a,this._inputDimensions[r]=a.shape;return}if(ka(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 tt.getEnv().Canvas?a:Ld(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 uk({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 Ce){let o=ka(i)?i:tn(i);return o=mk(o,n),(o.shape[1]!==t||o.shape[2]!==t)&&(o=ea.resizeBilinear(o,[t,t],!1,!1)),o.as3D(t,t,3)}if(i instanceof tt.getEnv().Canvas)return Uo.fromPixels(Tk(i,t,n));throw new Error(`toBatchTensor - at batchIdx ${s}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${i}`)});return Dt(a.map(s=>ie(s,"float32"))).as4D(this.batchSize,t,t,3)})}};async function wt(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(rl);return a.forEach((r,s)=>{if(!og(r)&&!Br(r)&&!ka(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(ka(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=>og(r)&&Ik(r))),new wr(a,Array.isArray(e))}async function Ep(e,t){let{Canvas:n}=tt.getEnv(),a=e;if(!(e instanceof n)){let i=await wt(e);if(i.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");let o=i.getInput(0);a=o instanceof n?o:await Nk(o)}let r=Hn(a);return t.map(i=>i instanceof vt?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=il({width:l,height:u});return l>0&&u>0&&Hn(p).putImageData(r.getImageData(i,o,l,u),0,0),p})}async function Ap(e,t){if(!Br(e)&&!ka(e))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(ka(e)&&e.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return P(()=>{let[n,a,r]=e.shape.slice(ka(e)?1:0);return t.map(o=>o instanceof vt?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})=>Bo(e.as3D(n,a,r),[l,o,0],[p,u,r]))})}async function Gr(e,t){let{fetch:n}=tt.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 _me(e){let t=await Gr(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 Sk(n)}async function Ck(e){return(await Gr(e)).json()}async function Eme(e){return new Float32Array(await(await Gr(e)).arrayBuffer())}function y$(e){return new Promise((t,n)=>{e instanceof Blob||n(new Error("bufferToVideo - expected buf to be of type: Blob"));let a=tt.getEnv().createVideoElement();a.oncanplay=()=>t(a),a.onerror=n,a.playsInline=!0,a.muted=!0,a.src=URL.createObjectURL(e),a.play()})}async function Ame(e){let t=await Gr(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 y$(n)}function lg(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 _k(e,t){let{manifestUri:n,modelBaseUri:a}=lg(e,t),r=await Ck(n);return qt.loadWeights(r,a)}function Fme(e,t,n=!1){let{width:a,height:r}=n?sl(t):t;return e.width=a,e.height=r,{width:a,height:r}}var pn=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 ds)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof ds))}variable(){this.getFrozenParams().forEach(({path:t,tensor:n})=>{this.reassignParamFromPath(t,n.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:n})=>{let a=bn(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 _k(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}=tt.getEnv(),{manifestUri:a,modelBaseUri:r}=lg(t,this.getDefaultModelName()),s=u=>Promise.all(u.map(p=>n(p).then(d=>d.buffer))),i=qt.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 Ce))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${t}`);return{obj:a,objProp:r}}};function qn(e,t,n){return P(()=>{let a=Fs(e,t.depthwise_filter,t.pointwise_filter,n,"same");return a=X(a,t.bias),a})}function ug(e,t,n=!1){return P(()=>{let a=Ke(n?X(Rt(e,t.conv0.filters,[2,2],"same"),t.conv0.bias):qn(e,t.conv0,[2,2])),r=qn(a,t.conv1,[1,1]),s=Ke(X(a,r)),i=qn(s,t.conv2,[1,1]);return Ke(X(a,X(r,i)))})}function zd(e,t,n=!1,a=!0){return P(()=>{let r=Ke(n?X(Rt(e,t.conv0.filters,a?[2,2]:[1,1],"same"),t.conv0.bias):qn(e,t.conv0,a?[2,2]:[1,1])),s=qn(r,t.conv1,[1,1]),i=Ke(X(r,s)),o=qn(i,t.conv2,[1,1]),l=Ke(X(r,X(s,o))),u=qn(l,t.conv3,[1,1]);return Ke(X(r,X(s,X(o,u))))})}function ol(e,t,n="same",a=!1){return P(()=>{let r=X(Rt(e,t.filters,[1,1],n),t.bias);return a?Ke(r):r})}function An(e,t){Object.keys(e).forEach(n=>{t.some(a=>a.originalPath===n)||e[n].dispose()})}function Fp(e,t){return(n,a,r,s)=>{let i=Ma(e(n*a*r*r),[r,r,n,a]),o=je(e(a));return t.push({paramPath:`${s}/filters`},{paramPath:`${s}/bias`}),{filters:i,bias:o}}}function pg(e,t){return(n,a,r)=>{let s=$a(e(n*a),[n,a]),i=je(e(a));return t.push({paramPath:`${r}/weights`},{paramPath:`${r}/bias`}),{weights:s,bias:i}}}var Wd=class{constructor(t,n,a){this.depthwise_filter=t;this.pointwise_filter=n;this.bias=a}};function $p(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=je(e(a));return t.push({paramPath:`${r}/depthwise_filter`},{paramPath:`${r}/pointwise_filter`},{paramPath:`${r}/bias`}),new Wd(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 Wd(n,a,r)}}function oa(e,t){return(n,a,r)=>{let s=e[n];if(!Zo(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 Fn(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 cg(e,t){let n=Fp(e,t),a=$p(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 x$(e){let t=[],{extractWeights:n,getRemainingWeights:a}=Fn(e),{extractDenseBlock4Params:r}=cg(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 dg(e){return t=>{let n=e(`${t}/filters`,4),a=e(`${t}/bias`,1);return{filters:n,bias:a}}}function hg(e,t){let n=oa(e,t),a=dg(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 v$(e){let t=[],{extractDenseBlock4Params:n}=hg(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 Rp=class extends pn{constructor(){super("FaceFeatureExtractor")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("FaceFeatureExtractor - load model before inference");return P(()=>{let a=ie(t.toBatchTensor(112,!0),"float32"),s=Ja(a,[122.782,117.001,104.298]).div(255),i=zd(s,n.dense0,!0);return i=zd(i,n.dense1),i=zd(i,n.dense2),i=zd(i,n.dense3),i=xa(i,[7,7],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await wt(t))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeightMap(t){return v$(t)}extractParams(t){return x$(t)}};function Bd(e,t){return P(()=>X($e(e,t.weights),t.bias))}function w$(e,t,n){let a=[],{extractWeights:r,getRemainingWeights:s}=Fn(e),o=pg(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 k$(e){let t=[],n=oa(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 mg(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 pn{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 Bd(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}=mg(n);return this.faceFeatureExtractor.loadFromWeightMap(a),k$(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 Ek=["neutral","happy","sad","angry","fearful","disgusted","surprised"],Hr=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}`);Ek.forEach((n,a)=>{this[n]=t[a]})}asSortedArray(){return Ek.map(t=>({expression:t,probability:this[t]})).sort((t,n)=>n.probability-t.probability)}};var Vd=class extends Mp{constructor(t=new Rp){super("FaceExpressionNet",t)}forwardInput(t){return P(()=>Xa(this.runNet(t)))}async forward(t){return this.forwardInput(await wt(t))}async predictExpressions(t){let n=await wt(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 Hr(i));return n.isBatchInput?s:s[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}};function Ak(e){return e.expressions instanceof Hr}function fg(e,t){return{...e,...{expressions:t}}}function $me(e,t,n=.1,a){(Array.isArray(t)?t:[t]).forEach(s=>{let i=s instanceof Hr?s:Ak(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=vr(s)?s.detection.box.bottomLeft:a||new Re(0,0);new Ur(l.map(d=>`${d.expression} (${Jo(d.probability)})`),u).draw(e)})}function ll(e){return vr(e)&&e.landmarks instanceof ia&&e.unshiftedLandmarks instanceof ia&&e.alignedRect instanceof vt}function Dme(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 Pp(e,t){let{box:n}=e.detection,a=t.shiftBy(n.x,n.y),r=a.align(),{imageDims:s}=e.detection,i=new vt(e.detection.score,r.rescale(s.reverse()),s),o=Dme(t);return{...e,...{landmarks:a,unshiftedLandmarks:t,alignedRect:i,angle:o}}}var gg=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)"}},bg=class{constructor(t,n={}){this.faceLandmarks=t,this.options=new gg(n)}draw(t){let n=Hn(t),{drawLines:a,drawPoints:r,lineWidth:s,lineColor:i,pointSize:o,pointColor:l}=this.options;if(a&&this.faceLandmarks instanceof nl&&(n.strokeStyle=i,n.lineWidth=s,Wr(n,this.faceLandmarks.getJawOutline()),Wr(n,this.faceLandmarks.getLeftEyeBrow()),Wr(n,this.faceLandmarks.getRightEyeBrow()),Wr(n,this.faceLandmarks.getNose()),Wr(n,this.faceLandmarks.getLeftEye(),!0),Wr(n,this.faceLandmarks.getRightEye(),!0),Wr(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 Rme(e,t){(Array.isArray(t)?t:[t]).forEach(a=>{let r=a instanceof ia?a:ll(a)?a.landmarks:void 0;if(!r)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new bg(r).draw(e)})}var I$="1.7.11";function Ome(e,t){let n=Fp(e,t),a=$p(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 S$(e,t){let n=[],{extractWeights:a,getRemainingWeights:r}=Fn(e),{extractConvParams:s,extractSeparableConvParams:i,extractReductionBlockParams:o,extractMainBlockParams:l}=Ome(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(b=>{h[`main_block_${b}`]=l(128,`middle_flow/main_block_${b}`)});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 Lme(e,t){let n=oa(e,t),a=dg(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 N$(e,t){let n=[],{extractConvParams:a,extractSeparableConvParams:r,extractReductionBlockParams:s,extractMainBlockParams:i}=Lme(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 T$(e,t,n){return X(Rt(e,t.filters,n,"same"),t.bias)}function $k(e,t,n=!0){let a=n?Ke(e):e;return a=qn(a,t.separable_conv0,[1,1]),a=qn(Ke(a),t.separable_conv1,[1,1]),a=Mt(a,[3,3],[2,2],"same"),a=X(a,T$(e,t.expansion_conv,[2,2])),a}function zme(e,t){let n=qn(Ke(e),t.separable_conv0,[1,1]);return n=qn(Ke(n),t.separable_conv1,[1,1]),n=qn(Ke(n),t.separable_conv2,[1,1]),n=X(n,e),n}var yg=class extends pn{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=ie(n.toBatchTensor(112,!0),"float32"),i=Ja(r,[122.782,117.001,104.298]).div(255),o=Ke(T$(i,a.entry_flow.conv_in,[2,2]));return o=$k(o,a.entry_flow.reduction_block_0,!1),o=$k(o,a.entry_flow.reduction_block_1),yr(this._numMainBlocks,0,1).forEach(l=>{o=zme(o,a.middle_flow[`main_block_${l}`])}),o=$k(o,a.exit_flow.reduction_block),o=Ke(qn(o,a.exit_flow.separable_conv,[1,1])),o})}async forward(n){return this.forwardInput(await wt(n))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeightMap(n){return N$(n,this._numMainBlocks)}extractParams(n){return S$(n,this._numMainBlocks)}};function C$(e){let t=[],{extractWeights:n,getRemainingWeights:a}=Fn(e),r=pg(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 _$(e){let t=[],n=oa(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 xg=(n=>(n.FEMALE="female",n.MALE="male",n))(xg||{});var Ud=class extends pn{constructor(n=new yg(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=xa(r,[7,7],[2,2],"valid").as2D(r.shape[0],-1),i=Bd(s,a.fc.age).as1D(),o=Bd(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 wt(n))}async predictAgeAndGender(n){let a=await wt(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 C$(n)}extractParamsFromWeightMap(n){let{featureExtractorMap:a,classifierMap:r}=mg(n);return this.faceFeatureExtractor.loadFromWeightMap(a),_$(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 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)=>Dt([xn([68],d,"float32"),xn([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(Dt(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 wt(t))}async detectLandmarks(t){let n=await wt(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)=>ag(d)),u=o.filter((p,d)=>!ag(d));return new nl(Array(68).fill(0).map((p,d)=>new Re(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 ul=class extends Op{constructor(t=new Rp){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};function E$(e){let t=[],{extractDenseBlock3Params:n}=hg(e,t),a={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2")};return An(e,t),{params:a,paramMappings:t}}function A$(e){let t=[],{extractWeights:n,getRemainingWeights:a}=Fn(e),{extractDenseBlock3Params:r}=cg(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 vg=class extends pn{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("TinyFaceFeatureExtractor - load model before inference");return P(()=>{let a=ie(t.toBatchTensor(112,!0),"float32"),s=Ja(a,[122.782,117.001,104.298]).div(255),i=ug(s,n.dense0,!0);return i=ug(i,n.dense1),i=ug(i,n.dense2),i=xa(i,[14,14],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await wt(t))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeightMap(t){return E$(t)}extractParams(t){return A$(t)}};var Gd=class extends Op{constructor(t=new vg){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var Dk=class extends ul{};function F$(e,t){return X(z(e,t.weights),t.biases)}function Rk(e,t,n,a,r="same"){let{filters:s,bias:i}=t.conv,o=Rt(e,s,n,r);return o=X(o,i),o=F$(o,t.scale),a?Ke(o):o}function $$(e,t){return Rk(e,t,[1,1],!0)}function Mk(e,t){return Rk(e,t,[1,1],!1)}function wg(e,t){return Rk(e,t,[2,2],!0,"valid")}function Wme(e,t){function n(o,l,u){let p=e(o),d=p.length/(l*u*u);if(lk(d))throw new Error(`depth has to be an integer: ${d}, weights.length: ${p.length}, numFilters: ${l}, filterSize: ${u}`);return P(()=>De(Ma(p,[l,d,u,u]),[2,3,1,0]))}function a(o,l,u,p){let d=n(o,l,u),c=je(e(l));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/bias`}),{filters:d,bias:c}}function r(o,l){let u=je(e(o)),p=je(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 D$(e){let{extractWeights:t,getRemainingWeights:n}=Fn(e),a=[],{extractConvLayerParams:r,extractResidualLayerParams:s}=Wme(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"),b=s(589824,256,3,"conv256_down",!0),y=s(589824,256,3,"conv256_1"),x=s(589824,256,3,"conv256_2"),w=s(589824,256,3,"conv256_down_out"),I=P(()=>De($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:b,conv256_1:y,conv256_2:x,conv256_down_out:w,fc:I},paramMappings:a}}function Bme(e,t){let n=oa(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 R$(e){let t=[],{extractConvLayerParams:n,extractResidualLayerParams:a}=Bme(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"),b=a("conv256_2"),y=a("conv256_down_out"),{fc:x}=e;if(t.push({originalPath:"fc",paramPath:"fc"}),!ok(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:b,conv256_down_out:y,fc:x};return An(e,t),{params:w,paramMappings:t}}function Qa(e,t){let n=$$(e,t.conv1);return n=Mk(n,t.conv2),n=X(n,e),n=Ke(n),n}function Hd(e,t){let n=wg(e,t.conv1);n=Mk(n,t.conv2);let a=xa(e,2,2,"valid"),r=Nt(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=Nt(o);n=Qe([n,l],1);let u=[...n.shape];u[2]=1;let p=Nt(u);n=Qe([n,p],2)}return a=s?Qe([a,r],3):a,n=X(a,n),n=Ke(n),n}var pl=class extends pn{constructor(){super("FaceRecognitionNet")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("FaceRecognitionNet - load model before inference");return P(()=>{let a=ie(t.toBatchTensor(150,!0),"float32"),s=Ja(a,[122.782,117.001,104.298]).div(255),i=wg(s,n.conv32_down);i=Mt(i,3,2,"valid"),i=Qa(i,n.conv32_1),i=Qa(i,n.conv32_2),i=Qa(i,n.conv32_3),i=Hd(i,n.conv64_down),i=Qa(i,n.conv64_1),i=Qa(i,n.conv64_2),i=Qa(i,n.conv64_3),i=Hd(i,n.conv128_down),i=Qa(i,n.conv128_1),i=Qa(i,n.conv128_2),i=Hd(i,n.conv256_down),i=Qa(i,n.conv256_1),i=Qa(i,n.conv256_2),i=Hd(i,n.conv256_down_out);let o=i.mean([1,2]);return $e(o,n.fc)})}async forward(t){return this.forwardInput(await wt(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 wt(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 R$(t)}extractParams(t){return D$(t)}};function Vme(e){let t=new pl;return t.extractWeights(e),t}function kg(e,t){return{...e,...{descriptor:t}}}function Ume(e){return typeof e.age=="number"}function Ig(e,t){return{...e,...{age:t}}}function Gme(e){return(e.gender==="male"||e.gender==="female")&&Np(e.genderProbability)}function Sg(e,t,n){return{...e,...{gender:t,genderProbability:n}}}function Hme(e,t){function n(l,u){let p=Ma(e(9*l),[3,3,l,1]),d=je(e(l)),c=je(e(l)),h=je(e(l)),m=je(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=je(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"),b=s(512,512,"mobilenetv1/conv_9"),y=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:b,conv_10:y,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"),b=a(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),y=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"),F=a(256,18,1,"prediction_layer/box_predictor_4/class_predictor"),D=a(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),$=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:b},box_predictor_1:{box_encoding_predictor:y,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:F},box_predictor_5:{box_encoding_predictor:D,class_predictor:$}}}return{extractMobilenetV1Params:i,extractPredictionLayerParams:o}}function M$(e){let t=[],{extractWeights:n,getRemainingWeights:a}=Fn(e),{extractMobilenetV1Params:r,extractPredictionLayerParams:s}=Hme(n,t),i=r(),o=s(),u={extra_dim:gd(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 qme(e,t){let n=oa(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`),b=n(`${d}/BatchNorm/moving_mean`,1,`${c}/batch_norm_mean`),y=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:b,batch_norm_variance:y},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 P$(e){let t=[],{extractMobilenetV1Params:n,extractPredictionLayerParams:a}=qme(e,t),r=e["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!Br(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=Rt(e,t.filters,n,"same");return a=X(a,t.batch_norm_offset),rn(a,0,6)})}var jme=.0010000000474974513;function Kme(e,t,n){return P(()=>{let a=_s(e,t.filters,n,"same");return a=Cs(a,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,jme),rn(a,0,6)})}function Xme(e){return[2,4,6,12].some(t=>t===e)?[2,2]:[1,1]}function O$(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=Xme(o);a=Kme(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 Yme(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),b=Math.min(o,d),y=Math.max(g-m,0)*Math.max(b-f,0);return y/(c+h-y)}function L$(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=Yme(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 Zme(e){let t=ct(De(e,[1,0])),n=[pe(t[2],t[0]),pe(t[3],t[1])],a=[X(t[0],he(n[0],2)),X(t[1],he(n[1],2))];return{sizes:n,centers:a}}function Jme(e,t){let{sizes:n,centers:a}=Zme(e),r=ct(De(t,[1,0])),s=he(z(yn(he(r[2],5)),n[0]),2),i=X(z(he(r[0],10),n[0]),a[0]),o=he(z(yn(he(r[3],5)),n[1]),2),l=X(z(he(r[1],10),n[1]),a[1]);return De(Dt([pe(i,s),pe(l,o),X(i,s),X(l,o)]),[1,0])}function z$(e,t,n){return P(()=>{let a=e.shape[0],r=Jme(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=fa(Ue(t,[0,0,1],[-1,-1,-1])),i=Ue(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 cl(e,t){return P(()=>{let n=e.shape[0],a=W(ol(e,t.box_encoding_predictor),[n,-1,1,4]),r=W(ol(e,t.class_predictor),[n,-1,3]);return{boxPredictionEncoding:a,classPrediction:r}})}function W$(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=cl(t,n.box_predictor_0),c=cl(e,n.box_predictor_1),h=cl(r,n.box_predictor_2),m=cl(i,n.box_predictor_3),f=cl(l,n.box_predictor_4),g=cl(p,n.box_predictor_5),b=Qe([d.boxPredictionEncoding,c.boxPredictionEncoding,h.boxPredictionEncoding,m.boxPredictionEncoding,f.boxPredictionEncoding,g.boxPredictionEncoding],1),y=Qe([d.classPrediction,c.classPrediction,h.classPrediction,m.classPrediction,f.classPrediction,g.classPrediction],1);return{boxPredictions:b,classPredictions:y}})}var Ia=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 Os=class extends pn{constructor(){super("SsdMobilenetv1")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("SsdMobilenetv1 - load model before inference");return P(()=>{let a=ie(t.toBatchTensor(512,!1),"float32"),r=pe(he(a,127.5),1),s=O$(r,n.mobilenetv1),{boxPredictions:i,classPredictions:o}=W$(s.out,s.conv11,n.prediction_layer);return z$(i,o,n.output_layer)})}async forward(t){return this.forwardInput(await wt(t))}async locateFaces(t,n={}){let{maxResults:a,minConfidence:r}=new Ia(n),s=await wt(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,b[x][0]),Math.min(1,b[x][2])].map(E=>E*g),[T,C]=[Math.max(0,b[x][1]),Math.min(1,b[x][3])].map(E=>E*f);return new vt(p[x],new tl(T,w,C-T,I-w),{height:s.getInputHeight(0),width:s.getInputWidth(0)})});return l.dispose(),u.dispose(),y}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return P$(t)}extractParams(t){return M$(t)}};function B$(e){let t=new Os;return t.extractWeights(e),t}function Qme(e){return B$(e)}var Pk=class extends Os{};var V$=.4,U$=[new Re(.738768,.874946),new Re(2.42204,2.65704),new Re(4.30971,7.04493),new Re(10.246,4.59428),new Re(12.6868,11.8741)],G$=[new Re(1.603231,2.094468),new Re(6.041143,7.080126),new Re(2.882459,3.518061),new Re(4.266906,5.178857),new Re(9.041765,10.66308)],H$=[117.001,114.697,97.404],q$="tiny_yolov2_model",j$="tiny_yolov2_separable_conv_model";var Ng=e=>typeof e=="number";function Ok(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(!Ng(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=>Ng(t.x)&&Ng(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(Ng)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(e.meanRgb)}`)}function Lp(e){return P(()=>{let t=z(e,ve(.10000000149011612));return X(Ke(pe(e,t)),t)})}function qr(e,t){return P(()=>{let n=va(e,[[0,0],[1,1],[1,1],[0,0]]);return n=Rt(n,t.conv.filters,[1,1],"valid"),n=pe(n,t.bn.sub),n=z(n,t.bn.truediv),n=X(n,t.conv.bias),Lp(n)})}function jr(e,t){return P(()=>{let n=va(e,[[0,0],[1,1],[1,1],[0,0]]);return n=Fs(n,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),n=X(n,t.bias),Lp(n)})}function efe(e,t){let n=Fp(e,t);function a(i,o){let l=je(e(i)),u=je(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=$p(e,t);return{extractConvParams:n,extractConvWithBatchNormParams:r,extractSeparableConvParams:s}}function K$(e,t,n,a){let{extractWeights:r,getRemainingWeights:s}=Fn(e),i=[],{extractConvParams:o,extractConvWithBatchNormParams:l,extractSeparableConvParams:u}=efe(r,i),p;if(t.withSeparableConvs){let[d,c,h,m,f,g,b,y,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"),F=u(g,b,"conv5"),D=y?u(b,y,"conv6"):void 0,$=x?u(y,x,"conv7"):void 0,S=o(x||y||b,5*n,1,"conv8");p={conv0:w,conv1:I,conv2:T,conv3:C,conv4:E,conv5:F,conv6:D,conv7:$,conv8:S}}else{let[d,c,h,m,f,g,b,y,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"),F=l(g,b,"conv5"),D=l(b,y,"conv6"),$=l(y,x,"conv7"),S=o(x,5*n,1,"conv8");p={conv0:w,conv1:I,conv2:T,conv3:C,conv4:E,conv5:F,conv6:D,conv7:$,conv8:S}}if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{params:p,paramMappings:i}}function tfe(e,t){let n=oa(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 X$(e,t){let n=[],{extractConvParams:a,extractConvWithBatchNormParams:r,extractSeparableConvParams:s}=tfe(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 Lk=class extends pn{constructor(n){super("TinyYolov2");Ok(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=qr(n,a.conv0);return r=Mt(r,[2,2],[2,2],"same"),r=qr(r,a.conv1),r=Mt(r,[2,2],[2,2],"same"),r=qr(r,a.conv2),r=Mt(r,[2,2],[2,2],"same"),r=qr(r,a.conv3),r=Mt(r,[2,2],[2,2],"same"),r=qr(r,a.conv4),r=Mt(r,[2,2],[2,2],"same"),r=qr(r,a.conv5),r=Mt(r,[2,2],[1,1],"same"),r=qr(r,a.conv6),r=qr(r,a.conv7),ol(r,a.conv8,"valid",!1)}runMobilenet(n,a){let r=this.config.isFirstLayerConv2d?Lp(ol(n,a.conv0,"valid",!1)):jr(n,a.conv0);return r=Mt(r,[2,2],[2,2],"same"),r=jr(r,a.conv1),r=Mt(r,[2,2],[2,2],"same"),r=jr(r,a.conv2),r=Mt(r,[2,2],[2,2],"same"),r=jr(r,a.conv3),r=Mt(r,[2,2],[2,2],"same"),r=jr(r,a.conv4),r=Mt(r,[2,2],[2,2],"same"),r=jr(r,a.conv5),r=Mt(r,[2,2],[1,1],"same"),r=a.conv6?jr(r,a.conv6):r,r=a.conv7?jr(r,a.conv7):r,ol(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=ie(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 wt(n),a)}async detect(n,a={}){let{inputSize:r,scoreThreshold:s}=new er(a),i=await wt(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(b=>b.box),c=p.map(b=>b.score),h=p.map(b=>b.classScore),m=p.map(b=>this.config.classes[b.label]);return hk(d.map(b=>b.rescale(r)),c,this.config.iouThreshold,!0).map(b=>new Vr(c[b],h[b],m[b],d[b],u))}getDefaultModelName(){return""}extractParamsFromWeightMap(n){return X$(n,this.config)}extractParams(n){let a=this.config.filterSizes||Lk.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 K$(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 y=n.reshape([p,p,d,this.boxEncodingSize]),x=y.slice([0,0,0,0],[p,p,d,4]),w=y.slice([0,0,0,4],[p,p,d,1]),I=this.withClassScores?Xa(y.slice([0,0,0,5],[p,p,d,this.config.classes.length]),3):ve(0);return[x,w,I]}),f=[],g=await h.array(),b=await c.array();for(let y=0;yr){let T=(x+Rd(b[y][x][w][0]))/p*l,C=(y+Rd(b[y][x][w][1]))/p*u,E=Math.exp(b[y][x][w][2])*this.config.anchors[w].x/p*l,F=Math.exp(b[y][x][w][3])*this.config.anchors[w].y/p*u,D=T-E/2,$=C-F/2,S={row:y,col:x,anchor:w},{classScore:M,label:B}=this.withClassScores?await this.extractPredictedClass(m,S):{classScore:1,label:0};f.push({box:new el(D,$,D+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)}},dl=Lk;dl.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var hl=class extends dl{constructor(t=!0){let n={withSeparableConvs:t,iouThreshold:V$,classes:["face"],...t?{anchors:G$,meanRgb:H$}:{anchors:U$,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 vt(r.score,r.relativeBox,{width:r.imageWidth,height:r.imageHeight}))}getDefaultModelName(){return this.withSeparableConvs?j$:q$}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};function nfe(e,t=!0){let n=new hl(t);return n.extractWeights(e),n}var qd=class extends er{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}};var Sa=class{async then(t){return t(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}};async function ml(e,t,n,a,r=({alignedRect:s})=>s){let s=e.map(l=>ll(l)?r(l):l.detection),i=a||(t instanceof Ce?await Ap(t,s):await Ep(t,s)),o=await n(i);return i.forEach(l=>l instanceof Ce&&l.dispose()),o}async function zp(e,t,n,a,r){return ml([e],t,async s=>n(s[0]),a,r)}var Y$=.4,Z$=[new Re(1.603231,2.094468),new Re(6.041143,7.080126),new Re(2.882459,3.518061),new Re(4.266906,5.178857),new Re(9.041765,10.66308)],J$=[117.001,114.697,97.404];var fl=class extends dl{constructor(){let t={withSeparableConvs:!0,iouThreshold:Y$,classes:["face"],anchors:Z$,meanRgb:J$,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 vt(r.score,r.relativeBox,{width:r.imageWidth,height:r.imageHeight}))}getDefaultModelName(){return"tiny_face_detector_model"}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};var nt={ssdMobilenetv1:new Os,tinyFaceDetector:new fl,tinyYolov2:new hl,faceLandmark68Net:new ul,faceLandmark68TinyNet:new Gd,faceRecognitionNet:new pl,faceExpressionNet:new Vd,ageGenderNet:new Ud},Q$=(e,t)=>nt.ssdMobilenetv1.locateFaces(e,t),afe=(e,t)=>nt.tinyFaceDetector.locateFaces(e,t),rfe=(e,t)=>nt.tinyYolov2.locateFaces(e,t),eD=e=>nt.faceLandmark68Net.detectLandmarks(e),sfe=e=>nt.faceLandmark68TinyNet.detectLandmarks(e),ife=e=>nt.faceRecognitionNet.computeFaceDescriptor(e),ofe=e=>nt.faceExpressionNet.predictExpressions(e),lfe=e=>nt.ageGenderNet.predictAgeAndGender(e),tD=e=>nt.ssdMobilenetv1.load(e),ufe=e=>nt.tinyFaceDetector.load(e),pfe=e=>nt.tinyYolov2.load(e),cfe=e=>nt.faceLandmark68Net.load(e),dfe=e=>nt.faceLandmark68TinyNet.load(e),hfe=e=>nt.faceRecognitionNet.load(e),mfe=e=>nt.faceExpressionNet.load(e),ffe=e=>nt.ageGenderNet.load(e),gfe=tD,bfe=Q$,yfe=eD;var Tg=class extends Sa{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.extractedFaces=r}},gl=class extends Tg{async run(){let t=await this.parentTask,n=await ml(t,this.input,async a=>Promise.all(a.map(r=>nt.faceExpressionNet.predictExpressions(r))),this.extractedFaces);return t.map((a,r)=>fg(a,n[r]))}withAgeAndGender(){return new yl(this,this.input)}},bl=class extends Tg{async run(){let t=await this.parentTask;if(!t)return;let n=await zp(t,this.input,a=>nt.faceExpressionNet.predictExpressions(a),this.extractedFaces);return fg(t,n)}withAgeAndGender(){return new xl(this,this.input)}},Ls=class extends gl{withAgeAndGender(){return new Ws(this,this.input)}withFaceDescriptors(){return new Kr(this,this.input)}},zs=class extends bl{withAgeAndGender(){return new Bs(this,this.input)}withFaceDescriptor(){return new Xr(this,this.input)}};var Cg=class extends Sa{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.extractedFaces=r}},yl=class extends Cg{async run(){let t=await this.parentTask,n=await ml(t,this.input,async a=>Promise.all(a.map(r=>nt.ageGenderNet.predictAgeAndGender(r))),this.extractedFaces);return t.map((a,r)=>{let{age:s,gender:i,genderProbability:o}=n[r];return Ig(Sg(a,i,o),s)})}withFaceExpressions(){return new gl(this,this.input)}},xl=class extends Cg{async run(){let t=await this.parentTask;if(!t)return;let{age:n,gender:a,genderProbability:r}=await zp(t,this.input,s=>nt.ageGenderNet.predictAgeAndGender(s),this.extractedFaces);return Ig(Sg(t,a,r),n)}withFaceExpressions(){return new bl(this,this.input)}},Ws=class extends yl{withFaceExpressions(){return new Ls(this,this.input)}withFaceDescriptors(){return new Kr(this,this.input)}},Bs=class extends xl{withFaceExpressions(){return new zs(this,this.input)}withFaceDescriptor(){return new Xr(this,this.input)}};var jd=class extends Sa{constructor(n,a){super();this.parentTask=n;this.input=a}},Kr=class extends jd{async run(){let t=await this.parentTask;return(await ml(t,this.input,a=>Promise.all(a.map(r=>nt.faceRecognitionNet.computeFaceDescriptor(r))),null,a=>a.landmarks.align(null,{useDlibAlignment:!0}))).map((a,r)=>kg(t[r],a))}withFaceExpressions(){return new Ls(this,this.input)}withAgeAndGender(){return new Ws(this,this.input)}},Xr=class extends jd{async run(){let t=await this.parentTask;if(!t)return;let n=await zp(t,this.input,a=>nt.faceRecognitionNet.computeFaceDescriptor(a),null,a=>a.landmarks.align(null,{useDlibAlignment:!0}));return kg(t,n)}withFaceExpressions(){return new zs(this,this.input)}withAgeAndGender(){return new Bs(this,this.input)}};var Kd=class extends Sa{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.useTinyLandmarkNet=r}get landmarkNet(){return this.useTinyLandmarkNet?nt.faceLandmark68TinyNet:nt.faceLandmark68Net}},Xd=class extends Kd{async run(){let t=await this.parentTask,n=t.map(i=>i.detection),a=this.input instanceof Ce?await Ap(this.input,n):await Ep(this.input,n),r=await Promise.all(a.map(i=>this.landmarkNet.detectLandmarks(i)));return a.forEach(i=>i instanceof Ce&&i.dispose()),t.filter((i,o)=>r[o]).map((i,o)=>Pp(i,r[o]))}withFaceExpressions(){return new Ls(this,this.input)}withAgeAndGender(){return new Ws(this,this.input)}withFaceDescriptors(){return new Kr(this,this.input)}},Yd=class extends Kd{async run(){let t=await this.parentTask;if(!t)return;let{detection:n}=t,a=this.input instanceof Ce?await Ap(this.input,[n]):await Ep(this.input,[n]),r=await this.landmarkNet.detectLandmarks(a[0]);return a.forEach(s=>s instanceof Ce&&s.dispose()),Pp(t,r)}withFaceExpressions(){return new zs(this,this.input)}withAgeAndGender(){return new Bs(this,this.input)}withFaceDescriptor(){return new Xr(this,this.input)}};var Zd=class extends Sa{constructor(n,a=new Ia){super();this.input=n;this.options=a}},Wp=class extends Zd{async run(){let{input:t,options:n}=this,a;if(n instanceof qd)a=nt.tinyFaceDetector.locateFaces(t,n);else if(n instanceof Ia)a=nt.ssdMobilenetv1.locateFaces(t,n);else if(n instanceof er)a=nt.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=>al({},r)))).catch(a=>n(a))})}withFaceLandmarks(t=!1){return new Xd(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new gl(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new yl(this.runAndExtendWithFaceDetections(),this.input)}},Jd=class extends Zd{async run(){let t=await new Wp(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?al({},n):void 0)})}withFaceLandmarks(t=!1){return new Yd(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new bl(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new xl(this.runAndExtendWithFaceDetection(),this.input)}};function xfe(e,t=new Ia){return new Jd(e,t)}function _g(e,t=new Ia){return new Wp(e,t)}async function nD(e,t){return _g(e,new Ia(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function vfe(e,t={}){return _g(e,new er(t)).withFaceLandmarks().withFaceDescriptors()}var wfe=nD;function zk(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 Qd=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 xr)return i;if(i instanceof Float32Array)return new xr(s(),[i]);if(i.descriptor&&i.descriptor instanceof Float32Array)return new xr(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=>zk(a,t)).reduce((a,r)=>a+r,0)/(n.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:n,label:a})=>new Tp(a,this.computeMeanDistance(t,n))).reduce((n,a)=>n.distancet.toJSON())}}static fromJSON(t){let n=t.labeledDescriptors.map(a=>xr.fromJSON(a));return new Qd(n,t.distanceThreshold)}};function kfe(e){let t=new fl;return t.extractWeights(e),t}function aD(e,t){let{width:n,height:a}=new wn(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=>aD(r,{width:n,height:a}));if(ll(e)){let r=e.detection.forSize(n,a),s=e.unshiftedLandmarks.forSize(r.box.width,r.box.height);return Pp(al(e,r),s)}return vr(e)?al(e,e.detection.forSize(n,a)):e instanceof ia||e instanceof vt?e.forSize(n,a):e}var Ife=I$;return VD(Sfe);})(); + ${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=w.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;b$(i,o,l,u,c,m,g);let b=t.readSync(f.dataId),y;switch(b[0]){case 0:{y=N.getSparseReshapeMultipleNegativeOneOutputDimErrorMessage(b[1],b[2]);break}case 1:{y=N.getSparseReshapeNegativeOutputDimErrorMessage(b[1],b[2]);break}case 2:y=N.getSparseReshapeEmptyTensorZeroOutputDimErrorMessage();break;case 3:{let x=Array.from(t.readSync(r.dataId)),v=Array.from(t.readSync(h.dataId));y=N.getSparseReshapeInputOutputMultipleErrorMessage(x,v);break}case 4:{let x=Array.from(t.readSync(r.dataId)),v=Array.from(t.readSync(h.dataId));y=N.getSparseReshapeInputOutputMismatchErrorMessage(x,v);break}default:y=""}if(t.disposeData(f.dataId),y)throw t.disposeData(d.dataId),t.disposeData(h.dataId),new Error(y);return[d,h]}var Whe={kernelName:np,backendName:"wasm",setupFunc:Lhe,kernelFunc:zhe},y$;function x$(e){y$=e.wasm.cwrap("SparseSegmentReduction",null,["number","number","number","number","number","number","number","number","number"])}function v$(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"),b=n.dataIdMap.get(g.dataId).id;y$(d,Qe[r.dtype],r.shape[0],c,h,f,b,t,0);let y=n.readSync(g.dataId),x;switch(y[0]){case 0:{x=N.getSparseSegmentReductionNegativeSegmentIdsErrorMessage();break}case 1:{x=N.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage();break}case 2:x=N.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(y[1],y[2]);break;case 3:x=N.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(y[1],y[2],y[3]);break;default:x=""}if(n.disposeData(g.dataId),x)throw n.disposeData(m.dataId),new Error(x);return m}function Bhe(e){return v$(e,!0)}var Vhe={kernelName:Xc,backendName:"wasm",setupFunc:x$,kernelFunc:Bhe};function Uhe(e){return v$(e,!1)}var Ghe={kernelName:Yc,backendName:"wasm",setupFunc:x$,kernelFunc:Uhe},w$;function Hhe(e){w$=e.wasm.cwrap(ap,null,["number","number","number","number","number","number","number","number","array","number","number"])}function qhe(e){let{backend:t,inputs:n,attrs:a}=e,{sparseIndices:r,sparseValues:s,defaultValue:i}=n,{outputShape:o}=a,l=t.makeOutput(o,i.dtype);if(w.sizeFromShape(o)===0)return l;let{sliceRank:u,numUpdates:p,sliceSize:d,strides:c,outputSize:h}=N.calculateShapes(s,r,o),m=t.dataIdMap.get(r.dataId).id,f=t.dataIdMap.get(s.dataId).id,g=t.dataIdMap.get(i.dataId).id,b=new Uint8Array(new Int32Array(c).buffer),y=t.dataIdMap.get(l.dataId).id;return w$(m,f,s.shape.length,g,Qe[i.dtype],u,p,d,b,h,y),l}var jhe={kernelName:ap,backendName:"wasm",setupFunc:Hhe,kernelFunc:qhe};function Khe(e){let{inputs:t,attrs:n,backend:a}=e,{x:r}=t,{numOrSizeSplits:s,axis:i}=n,o=w.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=Si({inputs:{x:r},attrs:{begin:u,size:c},backend:a});return u[o]+=d,h})}var Xhe={kernelName:tp,backendName:"wasm",kernelFunc:Khe},Yhe=Xe(Lo),Zhe=Xe(Zc),Jhe=!0,Qhe=Ht(Bo,Jhe),k$;function eme(e){k$=e.wasm.cwrap(Ts,null,["number","number","number","number"])}function tme(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 k$(i,r,Qe[s.dtype],l),o}var nme={kernelName:Ts,backendName:"wasm",setupFunc:eme,kernelFunc:tme},I$;function ame(e){I$=e.wasm.cwrap(rp,null,["number","array","number","array","array","array","array","array","number","number"])}function rme(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:b,begin:y,end:x,strides:v}=Xt.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||b){w.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let T=Xt.computeOutShape(y,x,v),C=Si({inputs:{x:r},backend:t,attrs:{begin:y,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(w.computeStrides(r.shape)).buffer),F=new Uint8Array(new Int32Array(y).buffer),D=new Uint8Array(new Int32Array(x).buffer),$=new Uint8Array(new Int32Array(v).buffer),S=new Uint8Array(new Int32Array(h).buffer),M=new Uint8Array(new Int32Array(w.computeStrides(h)).buffer),B=t.dataIdMap.get(T.dataId).id;I$(C,E,r.shape.length,F,D,$,S,M,h.length,B),I=Wn({inputs:{x:T},backend:t,attrs:{shape:m}}),t.disposeData(T.dataId)}return I}var sme={kernelName:rp,backendName:"wasm",setupFunc:ame,kernelFunc:rme};function ime(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]=G1(c,h,i,o,l,u,p,d),g=t.makeOutput([m.length],"string"),b=t.dataIdMap.get(g.dataId);b.stringBytes=m;let y=t.makeOutput(s.shape,"int32");return t.typedArrayFromHeap(y).set(f),[g,y]}var ome={kernelName:Qc,backendName:"wasm",kernelFunc:ime};function lme(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]=H1(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 ume={kernelName:ed,backendName:"wasm",kernelFunc:lme};function pme(e){let{backend:t,inputs:n,attrs:a}=e,{input:r}=n,{numBuckets:s}=a,i=t.readSync(r.dataId),o=q1(i,s),l=t.makeOutput(r.shape,"int32");return t.typedArrayFromHeap(l).set(o),l}var cme={kernelName:td,backendName:"wasm",kernelFunc:pme},dme=!0,hme=Ht(Vo,dme),S$;function mme(e){S$=e.wasm.cwrap(zo,null,["number","number","number","number"])}function fme(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}=Ps(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),b=w.sizeFromShape(g),y=t.makeOutput(f,u.dtype);if(w.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(y.dataId).id;S$(l,b,Qe[y.dtype],x)}if(h&&t.disposeData(p.dataId),s){let x=N.expandShapeToKeepDim(y.shape,c);y.shape=x}return y}var gme={kernelName:zo,backendName:"wasm",setupFunc:mme,kernelFunc:fme},bme=Xe(Uo),yme=Xe(Go),N$;function xme(e){N$=e.wasm.cwrap(Yu,null,["number","number","number","number","number","number","array","number","number","number"])}function vme(e){let{backend:t,inputs:n,attrs:a}=e,{tensor:r,indices:s,updates:i}=n,{}=a,o=t.makeOutput(r.shape,r.dtype);if(w.sizeFromShape(r.shape)===0)return o;let{sliceRank:l,numUpdates:u,sliceSize:p,strides:d,outputSize:c}=wf.calculateShapes(i,s,r.shape),h=t.dataIdMap.get(s.dataId).id,m=t.dataIdMap.get(i.dataId).id,f=t.dataIdMap.get(r.dataId).id,g=new Uint8Array(new Int32Array(d).buffer),b=t.dataIdMap.get(o.dataId).id;return N$(h,m,Qe[i.dtype],l,u,p,g,c,b,f),o}var wme={kernelName:Yu,backendName:"wasm",setupFunc:xme,kernelFunc:vme},T$;function kme(e){T$=e.wasm.cwrap(Ns,null,["number","array","number","array","number","number"])}function Ime(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 C$(i,o,a.shape.length,Qe[a.dtype],r,s,p,c),[u,d]},Cme={kernelName:sp,backendName:"wasm",setupFunc:Nme,kernelFunc:Tme},_$;function _me(e){_$=e.wasm.cwrap(ip,null,["number","number","bool","number","number","number","number","number","number","array","number","array","number","number","number","number","number"])}function Eme(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],b=new Uint8Array(new Int32Array(w.computeStrides(r.shape)).buffer),y=new Uint8Array(new Int32Array(w.computeStrides(g)).buffer),x=t.makeOutput(g,r.dtype),v=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 _$(I,T,s.shape[0]>1,p,m,f,h,c,d,b,r.shape.length-1,y,g.length-1,C,E,l,v),x}var Ame={kernelName:ip,backendName:"wasm",setupFunc:_me,kernelFunc:Eme};function Fme(e){let{inputs:t,attrs:n,backend:a}=e,{axis:r}=n,{x:s}=t,{outputValues:i,outputShape:o,indices:l}=K1(a.readSync(s.dataId),r,s.shape,s.dtype);return[a.makeOutput(o,s.dtype,void 0,i),a.makeOutput([l.length],"int32",void 0,l)]}var $me={kernelName:nd,backendName:"wasm",kernelFunc:Fme};function Dme(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 Rme={kernelName:op,backendName:"wasm",kernelFunc:Dme};function Mme(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(a).fill(0),a}var Pme={kernelName:lp,backendName:"wasm",kernelFunc:Mme},Ome=[yle,xle,vle,wle,Ile,Tle,Rle,Ole,Lle,zle,Wle,Ble,Vle,Ule,Gle,jle,nue,Yle,Qle,iue,due,fue,bue,xue,vue,wue,Sue,Nue,_ue,Fue,Rue,Oue,Wue,Bue,Vue,Hue,Kue,Zue,epe,ape,ipe,upe,dpe,fpe,ype,xpe,kpe,Spe,Npe,Tpe,Cpe,_pe,Epe,$pe,Dpe,Mpe,Lpe,Bpe,Gpe,jpe,Ype,Jpe,ece,Cle,tce,nce,ace,ice,lce,pce,hce,fce,mce,bce,yce,vce,kce,Nce,_ce,Fce,Dce,Pce,zce,Vce,Hce,Kce,Zce,ede,nde,sde,pde,cde,hde,mde,bde,vde,Ide,Nde,_de,Ade,$de,a$,Pde,zde,Vde,Gde,qde,jde,Kde,Xde,aue,Jde,the,rhe,ohe,phe,hhe,mhe,fhe,yhe,whe,She,Nhe,_he,Ehe,Ahe,Fhe,pue,ode,$he,Rhe,Ohe,Whe,Vhe,Ghe,jhe,Xhe,Yhe,Zhe,Qhe,nme,sme,ome,ume,cme,hme,gme,bme,yme,wme,Sme,Cme,Ame,Fle,$me,Rme,Pme];for(let e of Ome)rd(e);var kv=G();kv.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}});kv.registerFlag("WASM_HAS_MULTITHREAD_SUPPORT",async()=>{if(kv.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 LS=ks(kR()),Lme=ks(IR()),zS=ks(SR()),WS=LS.default||LS,zme=zS.default||zS,E$=class extends Mc{constructor(e){super(),this.wasm=e,this.dataIdNextNumber=1,this.wasm.tfjs.initWithThreadsCount(A$),Iv=this.wasm.tfjs.getThreadsCount(),this.dataIdMap=new Rm(this,Aa())}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=w.now();return e(),{kernelMs:w.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=w.sizeFromShape(n),o=i*w.bytesPerElement(a),l=this.wasm._malloc(o)>>>0;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||w.sizeFromShape(s);let o=w.bytesPerElement(r),l=this.wasm.HEAPU8.slice(a+t*o,a+n*o);return Vme(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,a){let r;if(n==null)r=this.write(a!=null?a:null,e,t);else{let s=this.dataIdNextNumber++;r={id:s},this.dataIdMap.set(r,{id:s,memoryOffset:n,shape:e,dtype:t,refCount:1});let i=w.sizeFromShape(e);this.wasm.tfjs.registerTensor(s,i,n)}return{dataId:r,shape:e,dtype:t}}typedArrayFromHeap({shape:e,dtype:t,dataId:n}){let a=this.wasm.HEAPU8.buffer,{memoryOffset:r}=this.dataIdMap.get(n),s=w.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 Wme(e){return(t,n)=>(w.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 BS(e,t,n){if($m!=null)return $m;let a="tfjs-backend-wasm.wasm";return e&&t?a="tfjs-backend-wasm-threaded-simd.wasm":e&&(a="tfjs-backend-wasm-simd.wasm"),fc!=null&&fc[a]!=null?fc[a]:n+a}async function Bme(){let[e,t]=await Promise.all([G().getAsync("WASM_HAS_SIMD_SUPPORT"),G().getAsync("WASM_HAS_MULTITHREAD_SUPPORT")]);return new Promise((n,a)=>{let r={};r.locateFile=(o,l)=>{if(o.endsWith(".worker.js")){let u=Lme.wasmWorkerContents.replace(/\n/g,"\\n"),p=new Blob([u],{type:"application/javascript"});return URL.createObjectURL(p)}return o.endsWith(".wasm")?BS(e,t,dc!=null?dc:l):l+o},mk&&(r.instantiateWasm=Wme(BS(e,t,dc!=null?dc:"")));let s=!1;r.onAbort=()=>{s||gc||(gc=!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&&$m==null?(r.mainScriptUrlOrBlob=new Blob(["var WasmBackendModuleThreadedSimd = "+WS.toString()],{type:"text/javascript"}),i=WS(r)):i=zme(r),i.then(o=>{s=!0,gc=!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 Vme(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 Ume=["tfjs-backend-wasm.wasm","tfjs-backend-wasm-simd.wasm","tfjs-backend-wasm-threaded-simd.wasm"],$m=null,dc=null,fc={},gc=!1,mk=!1;function Gme(e,t=!1){if(Ov("setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release."),gc)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`");$m=e,mk=t}function Hme(e,t=!1){if(gc)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")dc=e;else{fc=e;let n=Ume.filter(a=>fc[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.`)}mk=t}var A$=-1,Iv=-1;function qme(e){A$=e}function jme(){if(Iv===-1)throw new Error("WASM backend not initialized.");return Iv}var Kme="4.7.0",Xme=2;Zm("wasm",async()=>{let{wasm:e}=await Bme();return new E$(e)},Xme);var VS="4.7.0",Yme="4.7.0",Zme="4.7.0",Jme="4.7.0",Qme="4.7.0",efe={tfjs:VS,"tfjs-core":VS,"tfjs-converter":Yme,"tfjs-backend-cpu":Zme,"tfjs-backend-webgl":Jme,"tfjs-backend-wasm":Qme};var zk={};Dh(zk,{AnchorPosition:()=>Ak,DrawBox:()=>Bd,DrawBoxOptions:()=>og,DrawFaceLandmarks:()=>yg,DrawFaceLandmarksOptions:()=>bg,DrawTextField:()=>Gr,DrawTextFieldOptions:()=>Fp,drawContour:()=>Br,drawDetections:()=>ufe,drawFaceExpressions:()=>mfe,drawFaceLandmarks:()=>gfe});function Br(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 yk={};Dh(yk,{computeReshapedDimensions:()=>bk,getCenterPoint:()=>rl,isDimensions:()=>sg,isEven:()=>rg,isFloat:()=>gk,isTensor:()=>nl,isTensor1D:()=>tfe,isTensor2D:()=>fk,isTensor3D:()=>Vr,isTensor4D:()=>ka,isValidNumber:()=>Za,isValidProbablitiy:()=>_p,range:()=>xr,round:()=>al});var wn=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 wn(1/this.width,1/this.height)}};function nl(e,t){return e instanceof Te&&e.shape.length===t}function tfe(e){return nl(e,1)}function fk(e){return nl(e,2)}function Vr(e){return nl(e,3)}function ka(e){return nl(e,4)}function gk(e){return e%1!==0}function rg(e){return e%2===0}function al(e,t=2){let n=10**t;return Math.floor(e*n)/n}function sg(e){return e&&e.width&&e.height}function bk({width:e,height:t},n){let a=n/Math.max(t,e);return new wn(Math.round(e*a),Math.round(t*a))}function rl(e){return e.reduce((t,n)=>t.add(n),new Re(0,0)).div(new Re(e.length,e.length))}function xr(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 _p(e){return Za(e)&&e>=0&&e<=1}var Re=class{constructor(t,n){this._x=t,this._y=n}get x(){return this._x}get y(){return this._y}add(t){return new Re(this.x+t.x,this.y+t.y)}sub(t){return new Re(this.x-t.x,this.y-t.y)}mul(t){return new Re(this.x*t.x,this.y*t.y)}div(t){return new Re(this.x/t.x,this.y/t.y)}abs(){return new Re(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(this.x**2+this.y**2)}floor(){return new Re(Math.floor(this.x),Math.floor(this.y))}};var ot=class{static isRect(t){return!!t&&[t.x,t.y,t.width,t.height].every(Za)}static assertIsValidBox(t,n,a=!1){if(!ot.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];ot.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 Re(this.left,this.top)}get topRight(){return new Re(this.right,this.top)}get bottomLeft(){return new Re(this.left,this.bottom)}get bottomRight(){return new Re(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 ot({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 ot({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 ot({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 sl=class extends ot{constructor(t,n,a,r,s=!1){super({left:t,top:n,right:a,bottom:r},s)}};var Ur=class{constructor(t,n,a,r,s){this._imageDims=new wn(s.width,s.height),this._score=t,this._classScore=n,this._className=a,this._box=new ot(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 ot(this._box).rescale(this.imageDims.reverse())}forSize(t,n){return new Ur(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:n})}};var vt=class extends Ur{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 vt(a,r,s)}};function xk(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 vk(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=xn([...e.shape.slice(0,3),1],n,"float32"),i=xn([...e.shape.slice(0,3),1],a,"float32"),o=xn([...e.shape.slice(0,3),1],r,"float32"),l=et([s,i,o],3);return pe(e,l)})}function kk(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,xn(h,0,"float32")},l=o(s),u=r-l.shape[i],d=[t&&u?o(u):null,e,l].filter(c=>!!c).map(c=>se(c,"float32"));return et(d,i)})}function nfe(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 zd(e){return 1/(1+Math.exp(-e))}function afe(e){return Math.log(e/(1-e))}var il=class extends ot{constructor(t,n,a,r,s=!1){super({x:t,y:n,width:a,height:r},s)}};var rfe=.5,sfe=.43,ife=.45,ia=class{constructor(t,n,a=new Re(0,0)){let{width:r,height:s}=n;this._imgDims=new wn(r,s),this._shift=a,this._positions=t.map(i=>i.mul(new Re(r,s)).add(a))}get shift(){return new Re(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 Re(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 Re(t,n))}shiftByPoint(t){return this.shiftBy(t.x,t.y)}align(t,n={}){if(t){let s=t instanceof vt?t.box.floor():new ot(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/ife),l=rl(t),u=Math.floor(Math.max(0,l.x-rfe*o)),p=Math.floor(Math.max(0,l.y-sfe*o));return new il(u,p,Math.min(o,this.imageWidth+u),Math.min(o,this.imageHeight+p))}alignMinBbox(t){let n=vk(this.positions);return n.pad(n.width*t,n.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var Ik=class extends ia{getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],rl([t[3],t[4]])]}};var ol=class extends ia{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(rl)}};var Ep=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?` (${al(this.distance)})`:""}`}};var Ap=class extends ot{constructor(n,a){super(n);this._label=a}static assertIsValidLabeledBox(n,a){if(ot.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 vr=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 vr(t.label,n)}};var Sk=class extends Ap{constructor(n,a,r,s){super(n,a);this._score=r,this._classScore=s}static assertIsValidPredictedBox(n,a){if(Ap.assertIsValidLabeledBox(n,a),!_p(n.score)||!_p(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 wr(e){return e.detection instanceof vt}function ll(e,t){return{...e,...{detection:t}}}function Nk(){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 Wd(){return typeof global=="object"&&typeof process!="undefined"&&process.versions!=null&&process.versions.node!=null}function ig(e){let t="";if(!e&&Wd())try{e=QD("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 Tk(){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=ig();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 Ck(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var un;function ofe(){if(!un)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return un}function _k(e){un=e}function Ek(){return Ck()?_k(Nk()):Wd()?_k(Tk()):null}function lfe(e){if(un||Ek(),!un)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=un.Canvas,Image:n=un.Image}=e;un.Canvas=t,un.Image=n,un.createCanvasElement=e.createCanvasElement||(()=>new t),un.createImageElement=e.createImageElement||(()=>new n),un.ImageData=e.ImageData||un.ImageData,un.Video=e.Video||un.Video,un.fetch=e.fetch||un.fetch,un.readFile=e.readFile||un.readFile}var tt={getEnv:ofe,setEnv:_k,initialize:Ek,createBrowserEnv:Nk,createFileSystem:ig,createNodejsEnv:Tk,monkeyPatch:lfe,isBrowser:Ck,isNodejs:Wd};Ek();function ul(e){return!tt.isNodejs()&&typeof e=="string"?document.getElementById(e):e}function Hn(e){let{Canvas:t,CanvasRenderingContext2D:n}=tt.getEnv();if(e instanceof n)return e;let a=ul(e);if(!(a instanceof t))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");let r=a.getContext("2d",{willReadFrequently:!0});if(!r)throw new Error("resolveContext2d - canvas 2d context is null");return r}var Ak=(r=>(r.TOP_LEFT="TOP_LEFT",r.TOP_RIGHT="TOP_RIGHT",r.BOTTOM_LEFT="BOTTOM_LEFT",r.BOTTOM_RIGHT="BOTTOM_RIGHT",r))(Ak||{}),Fp=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}},Gr=class{constructor(t,n,a={}){this.text=typeof t=="string"?[t]:t instanceof Gr?t.text:t,this.anchor=n,this.options=new Fp(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 og=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 Fp({...i,...s})}},Bd=class{constructor(t,n={}){this.box=new ot(t),this.options=new og(n)}draw(t){let n=Hn(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 Gr([u],{x:s-r/2,y:i},this.options.drawLabelOptions).draw(t)}};function ufe(e,t){(Array.isArray(t)?t:[t]).forEach(a=>{let r=a instanceof vt?a.score:wr(a)?a.detection.score:void 0,s=a instanceof vt?a.box:wr(a)?a.detection.box:new ot(a),i=r?`${al(r)}`:void 0;new Bd(s,{label:i}).draw(e)})}function Vd(e){let{Image:t,Video:n}=tt.getEnv();return e instanceof t&&e.complete||e instanceof n&&e.readyState>=3}function Fk(e){return new Promise((t,n)=>{(e instanceof tt.getEnv().Canvas||Vd(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 $k(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=tt.getEnv().createImageElement();r.onload=()=>t(r),r.onerror=n,r.src=a.result},a.onerror=n,a.readAsDataURL(e)})}function pl(e){let{Image:t,Video:n}=tt.getEnv();return e instanceof t?new wn(e.naturalWidth,e.naturalHeight):e instanceof n?new wn(e.videoWidth,e.videoHeight):new wn(e.width,e.height)}function cl({width:e,height:t}){let{createCanvasElement:n}=tt.getEnv(),a=n();return a.width=e,a.height=t,a}function Ud(e,t){let{ImageData:n}=tt.getEnv();if(!(e instanceof n)&&!Vd(e))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:a,height:r}=t||pl(e),s=cl({width:a,height:r});return e instanceof n?Hn(s).putImageData(e,0,0):Hn(s).drawImage(e,0,0,a,r),s}async function Dk(e,t){let n=t||tt.getEnv().createCanvasElement(),[a,r,s]=e.shape.slice(ka(e)?1:0),i=P(()=>e.as3D(a,r,s).toInt());return await Ko.toPixels(i,n),i.dispose(),n}function lg(e){let{Image:t,Canvas:n,Video:a}=tt.getEnv();return e instanceof t||e instanceof n||e instanceof a}function Rk(e,t,n=!1){let{Image:a,Canvas:r}=tt.getEnv();if(!(e instanceof a||e instanceof r))throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement");if(t<=0)return cl({width:1,height:1});let s=pl(e),i=t/Math.max(s.height,s.width),o=i*s.width,l=i*s.height,u=cl({width:t,height:t}),p=e instanceof r?e:Ud(e),d=Math.abs(o-l)/2,c=n&&o0&&p.height>0&&Hn(u).drawImage(p,c,h,o,l),u}var kr=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(Vr(a)){this._imageTensors[r]=a,this._inputDimensions[r]=a.shape;return}if(ka(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 tt.getEnv().Canvas?a:Ud(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 xr(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 bk({width:n,height:a},this.inputSize)}toBatchTensor(t,n=!0){return this._inputSize=t,P(()=>{let a=xr(this.batchSize,0,1).map(s=>{let i=this.getInput(s);if(i instanceof Te){let o=ka(i)?i:nn(i);return o=kk(o,n),(o.shape[1]!==t||o.shape[2]!==t)&&(o=ea.resizeBilinear(o,[t,t],!1,!1)),o.as3D(t,t,3)}if(i instanceof tt.getEnv().Canvas)return Ko.fromPixels(Rk(i,t,n));throw new Error(`toBatchTensor - at batchIdx ${s}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${i}`)});return Dt(a.map(s=>se(s,"float32"))).as4D(this.batchSize,t,t,3)})}};async function wt(e){if(e instanceof kr)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(ul);return a.forEach((r,s)=>{if(!lg(r)&&!Vr(r)&&!ka(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(ka(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=>lg(r)&&Fk(r))),new kr(a,Array.isArray(e))}async function $p(e,t){let{Canvas:n}=tt.getEnv(),a=e;if(!(e instanceof n)){let i=await wt(e);if(i.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");let o=i.getInput(0);a=o instanceof n?o:await Dk(o)}let r=Hn(a);return t.map(i=>i instanceof vt?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=cl({width:l,height:u});return l>0&&u>0&&Hn(p).putImageData(r.getImageData(i,o,l,u),0,0),p})}async function Dp(e,t){if(!Vr(e)&&!ka(e))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(ka(e)&&e.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return P(()=>{let[n,a,r]=e.shape.slice(ka(e)?1:0);return t.map(o=>o instanceof vt?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})=>qo(e.as3D(n,a,r),[l,o,0],[p,u,r]))})}async function Hr(e,t){let{fetch:n}=tt.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 pfe(e){let t=await Hr(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 $k(n)}async function Mk(e){return(await Hr(e)).json()}async function cfe(e){return new Float32Array(await(await Hr(e)).arrayBuffer())}function F$(e){return new Promise((t,n)=>{e instanceof Blob||n(new Error("bufferToVideo - expected buf to be of type: Blob"));let a=tt.getEnv().createVideoElement();a.oncanplay=()=>t(a),a.onerror=n,a.playsInline=!0,a.muted=!0,a.src=URL.createObjectURL(e),a.play()})}async function dfe(e){let t=await Hr(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 F$(n)}function ug(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 Pk(e,t){let{manifestUri:n,modelBaseUri:a}=ug(e,t),r=await Mk(n);return jt.loadWeights(r,a)}function hfe(e,t,n=!1){let{width:a,height:r}=n?pl(t):t;return e.width=a,e.height=r,{width:a,height:r}}var pn=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 hs)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof hs))}variable(){this.getFrozenParams().forEach(({path:t,tensor:n})=>{this.reassignParamFromPath(t,n.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:n})=>{let a=bn(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 Pk(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}=tt.getEnv(),{manifestUri:a,modelBaseUri:r}=ug(t,this.getDefaultModelName()),s=u=>Promise.all(u.map(p=>n(p).then(d=>d.buffer))),i=jt.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 qn(e,t,n){return P(()=>{let a=$s(e,t.depthwise_filter,t.pointwise_filter,n,"same");return a=X(a,t.bias),a})}function pg(e,t,n=!1){return P(()=>{let a=Ke(n?X(Rt(e,t.conv0.filters,[2,2],"same"),t.conv0.bias):qn(e,t.conv0,[2,2])),r=qn(a,t.conv1,[1,1]),s=Ke(X(a,r)),i=qn(s,t.conv2,[1,1]);return Ke(X(a,X(r,i)))})}function Gd(e,t,n=!1,a=!0){return P(()=>{let r=Ke(n?X(Rt(e,t.conv0.filters,a?[2,2]:[1,1],"same"),t.conv0.bias):qn(e,t.conv0,a?[2,2]:[1,1])),s=qn(r,t.conv1,[1,1]),i=Ke(X(r,s)),o=qn(i,t.conv2,[1,1]),l=Ke(X(r,X(s,o))),u=qn(l,t.conv3,[1,1]);return Ke(X(r,X(s,X(o,u))))})}function dl(e,t,n="same",a=!1){return P(()=>{let r=X(Rt(e,t.filters,[1,1],n),t.bias);return a?Ke(r):r})}function An(e,t){Object.keys(e).forEach(n=>{t.some(a=>a.originalPath===n)||e[n].dispose()})}function Rp(e,t){return(n,a,r,s)=>{let i=Ma(e(n*a*r*r),[r,r,n,a]),o=je(e(a));return t.push({paramPath:`${s}/filters`},{paramPath:`${s}/bias`}),{filters:i,bias:o}}}function cg(e,t){return(n,a,r)=>{let s=$a(e(n*a),[n,a]),i=je(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 Mp(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=je(e(a));return t.push({paramPath:`${r}/depthwise_filter`},{paramPath:`${r}/pointwise_filter`},{paramPath:`${r}/bias`}),new Hd(s,i,o)}}function Pp(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 oa(e,t){return(n,a,r)=>{let s=e[n];if(!nl(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 Fn(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 dg(e,t){let n=Rp(e,t),a=Mp(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 $$(e){let t=[],{extractWeights:n,getRemainingWeights:a}=Fn(e),{extractDenseBlock4Params:r}=dg(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 hg(e){return t=>{let n=e(`${t}/filters`,4),a=e(`${t}/bias`,1);return{filters:n,bias:a}}}function mg(e,t){let n=oa(e,t),a=hg(n),r=Pp(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 D$(e){let t=[],{extractDenseBlock4Params:n}=mg(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 Op=class extends pn{constructor(){super("FaceFeatureExtractor")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("FaceFeatureExtractor - load model before inference");return P(()=>{let a=se(t.toBatchTensor(112,!0),"float32"),s=Ja(a,[122.782,117.001,104.298]).div(255),i=Gd(s,n.dense0,!0);return i=Gd(i,n.dense1),i=Gd(i,n.dense2),i=Gd(i,n.dense3),i=xa(i,[7,7],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await wt(t))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeightMap(t){return D$(t)}extractParams(t){return $$(t)}};function qd(e,t){return P(()=>X($e(e,t.weights),t.bias))}function R$(e,t,n){let a=[],{extractWeights:r,getRemainingWeights:s}=Fn(e),o=cg(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 M$(e){let t=[],n=oa(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 fg(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 Lp=class extends pn{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 kr?this.faceFeatureExtractor.forwardInput(n):n;return qd(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 R$(n,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeightMap(n){let{featureExtractorMap:a,classifierMap:r}=fg(n);return this.faceFeatureExtractor.loadFromWeightMap(a),M$(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 Ok=["neutral","happy","sad","angry","fearful","disgusted","surprised"],qr=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}`);Ok.forEach((n,a)=>{this[n]=t[a]})}asSortedArray(){return Ok.map(t=>({expression:t,probability:this[t]})).sort((t,n)=>n.probability-t.probability)}};var jd=class extends Lp{constructor(t=new Op){super("FaceExpressionNet",t)}forwardInput(t){return P(()=>Xa(this.runNet(t)))}async forward(t){return this.forwardInput(await wt(t))}async predictExpressions(t){let n=await wt(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 qr(i));return n.isBatchInput?s:s[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}};function Lk(e){return e.expressions instanceof qr}function gg(e,t){return{...e,...{expressions:t}}}function mfe(e,t,n=.1,a){(Array.isArray(t)?t:[t]).forEach(s=>{let i=s instanceof qr?s:Lk(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=wr(s)?s.detection.box.bottomLeft:a||new Re(0,0);new Gr(l.map(d=>`${d.expression} (${al(d.probability)})`),u).draw(e)})}function hl(e){return wr(e)&&e.landmarks instanceof ia&&e.unshiftedLandmarks instanceof ia&&e.alignedRect instanceof vt}function ffe(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 zp(e,t){let{box:n}=e.detection,a=t.shiftBy(n.x,n.y),r=a.align(),{imageDims:s}=e.detection,i=new vt(e.detection.score,r.rescale(s.reverse()),s),o=ffe(t);return{...e,...{landmarks:a,unshiftedLandmarks:t,alignedRect:i,angle:o}}}var bg=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)"}},yg=class{constructor(t,n={}){this.faceLandmarks=t,this.options=new bg(n)}draw(t){let n=Hn(t),{drawLines:a,drawPoints:r,lineWidth:s,lineColor:i,pointSize:o,pointColor:l}=this.options;if(a&&this.faceLandmarks instanceof ol&&(n.strokeStyle=i,n.lineWidth=s,Br(n,this.faceLandmarks.getJawOutline()),Br(n,this.faceLandmarks.getLeftEyeBrow()),Br(n,this.faceLandmarks.getRightEyeBrow()),Br(n,this.faceLandmarks.getNose()),Br(n,this.faceLandmarks.getLeftEye(),!0),Br(n,this.faceLandmarks.getRightEye(),!0),Br(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 gfe(e,t){(Array.isArray(t)?t:[t]).forEach(a=>{let r=a instanceof ia?a:hl(a)?a.landmarks:void 0;if(!r)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new yg(r).draw(e)})}var P$="1.7.12";function xfe(e,t){let n=Rp(e,t),a=Mp(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 O$(e,t){let n=[],{extractWeights:a,getRemainingWeights:r}=Fn(e),{extractConvParams:s,extractSeparableConvParams:i,extractReductionBlockParams:o,extractMainBlockParams:l}=xfe(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={};xr(t,0,1).forEach(b=>{h[`main_block_${b}`]=l(128,`middle_flow/main_block_${b}`)});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 vfe(e,t){let n=oa(e,t),a=hg(n),r=Pp(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 L$(e,t){let n=[],{extractConvParams:a,extractSeparableConvParams:r,extractReductionBlockParams:s,extractMainBlockParams:i}=vfe(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={};xr(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 z$(e,t,n){return X(Rt(e,t.filters,n,"same"),t.bias)}function Wk(e,t,n=!0){let a=n?Ke(e):e;return a=qn(a,t.separable_conv0,[1,1]),a=qn(Ke(a),t.separable_conv1,[1,1]),a=Mt(a,[3,3],[2,2],"same"),a=X(a,z$(e,t.expansion_conv,[2,2])),a}function wfe(e,t){let n=qn(Ke(e),t.separable_conv0,[1,1]);return n=qn(Ke(n),t.separable_conv1,[1,1]),n=qn(Ke(n),t.separable_conv2,[1,1]),n=X(n,e),n}var xg=class extends pn{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=se(n.toBatchTensor(112,!0),"float32"),i=Ja(r,[122.782,117.001,104.298]).div(255),o=Ke(z$(i,a.entry_flow.conv_in,[2,2]));return o=Wk(o,a.entry_flow.reduction_block_0,!1),o=Wk(o,a.entry_flow.reduction_block_1),xr(this._numMainBlocks,0,1).forEach(l=>{o=wfe(o,a.middle_flow[`main_block_${l}`])}),o=Wk(o,a.exit_flow.reduction_block),o=Ke(qn(o,a.exit_flow.separable_conv,[1,1])),o})}async forward(n){return this.forwardInput(await wt(n))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeightMap(n){return L$(n,this._numMainBlocks)}extractParams(n){return O$(n,this._numMainBlocks)}};function W$(e){let t=[],{extractWeights:n,getRemainingWeights:a}=Fn(e),r=cg(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 B$(e){let t=[],n=oa(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 vg=(n=>(n.FEMALE="female",n.MALE="male",n))(vg||{});var Kd=class extends pn{constructor(n=new xg(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 kr?this.faceFeatureExtractor.forwardInput(n):n,s=xa(r,[7,7],[2,2],"valid").as2D(r.shape[0],-1),i=qd(s,a.fc.age).as1D(),o=qd(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 wt(n))}async predictAgeAndGender(n){let a=await wt(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 W$(n)}extractParamsFromWeightMap(n){let{featureExtractorMap:a,classifierMap:r}=fg(n);return this.faceFeatureExtractor.loadFromWeightMap(a),B$(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 Wp=class extends Lp{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)=>Dt([xn([68],d,"float32"),xn([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(Dt(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 wt(t))}async detectLandmarks(t){let n=await wt(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)=>rg(d)),u=o.filter((p,d)=>!rg(d));return new ol(Array(68).fill(0).map((p,d)=>new Re(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 ml=class extends Wp{constructor(t=new Op){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};function V$(e){let t=[],{extractDenseBlock3Params:n}=mg(e,t),a={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2")};return An(e,t),{params:a,paramMappings:t}}function U$(e){let t=[],{extractWeights:n,getRemainingWeights:a}=Fn(e),{extractDenseBlock3Params:r}=dg(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 wg=class extends pn{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("TinyFaceFeatureExtractor - load model before inference");return P(()=>{let a=se(t.toBatchTensor(112,!0),"float32"),s=Ja(a,[122.782,117.001,104.298]).div(255),i=pg(s,n.dense0,!0);return i=pg(i,n.dense1),i=pg(i,n.dense2),i=xa(i,[14,14],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await wt(t))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeightMap(t){return V$(t)}extractParams(t){return U$(t)}};var Xd=class extends Wp{constructor(t=new wg){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var Bk=class extends ml{};function G$(e,t){return X(z(e,t.weights),t.biases)}function Vk(e,t,n,a,r="same"){let{filters:s,bias:i}=t.conv,o=Rt(e,s,n,r);return o=X(o,i),o=G$(o,t.scale),a?Ke(o):o}function H$(e,t){return Vk(e,t,[1,1],!0)}function Uk(e,t){return Vk(e,t,[1,1],!1)}function kg(e,t){return Vk(e,t,[2,2],!0,"valid")}function kfe(e,t){function n(o,l,u){let p=e(o),d=p.length/(l*u*u);if(gk(d))throw new Error(`depth has to be an integer: ${d}, weights.length: ${p.length}, numFilters: ${l}, filterSize: ${u}`);return P(()=>De(Ma(p,[l,d,u,u]),[2,3,1,0]))}function a(o,l,u,p){let d=n(o,l,u),c=je(e(l));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/bias`}),{filters:d,bias:c}}function r(o,l){let u=je(e(o)),p=je(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 q$(e){let{extractWeights:t,getRemainingWeights:n}=Fn(e),a=[],{extractConvLayerParams:r,extractResidualLayerParams:s}=kfe(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"),b=s(589824,256,3,"conv256_down",!0),y=s(589824,256,3,"conv256_1"),x=s(589824,256,3,"conv256_2"),v=s(589824,256,3,"conv256_down_out"),I=P(()=>De($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:b,conv256_1:y,conv256_2:x,conv256_down_out:v,fc:I},paramMappings:a}}function Ife(e,t){let n=oa(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 j$(e){let t=[],{extractConvLayerParams:n,extractResidualLayerParams:a}=Ife(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"),b=a("conv256_2"),y=a("conv256_down_out"),{fc:x}=e;if(t.push({originalPath:"fc",paramPath:"fc"}),!fk(x))throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${x}`);let v={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:b,conv256_down_out:y,fc:x};return An(e,t),{params:v,paramMappings:t}}function Qa(e,t){let n=H$(e,t.conv1);return n=Uk(n,t.conv2),n=X(n,e),n=Ke(n),n}function Yd(e,t){let n=kg(e,t.conv1);n=Uk(n,t.conv2);let a=xa(e,2,2,"valid"),r=Nt(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=Nt(o);n=et([n,l],1);let u=[...n.shape];u[2]=1;let p=Nt(u);n=et([n,p],2)}return a=s?et([a,r],3):a,n=X(a,n),n=Ke(n),n}var fl=class extends pn{constructor(){super("FaceRecognitionNet")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("FaceRecognitionNet - load model before inference");return P(()=>{let a=se(t.toBatchTensor(150,!0),"float32"),s=Ja(a,[122.782,117.001,104.298]).div(255),i=kg(s,n.conv32_down);i=Mt(i,3,2,"valid"),i=Qa(i,n.conv32_1),i=Qa(i,n.conv32_2),i=Qa(i,n.conv32_3),i=Yd(i,n.conv64_down),i=Qa(i,n.conv64_1),i=Qa(i,n.conv64_2),i=Qa(i,n.conv64_3),i=Yd(i,n.conv128_down),i=Qa(i,n.conv128_1),i=Qa(i,n.conv128_2),i=Yd(i,n.conv256_down),i=Qa(i,n.conv256_1),i=Qa(i,n.conv256_2),i=Yd(i,n.conv256_down_out);let o=i.mean([1,2]);return $e(o,n.fc)})}async forward(t){return this.forwardInput(await wt(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 wt(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 j$(t)}extractParams(t){return q$(t)}};function Sfe(e){let t=new fl;return t.extractWeights(e),t}function Ig(e,t){return{...e,...{descriptor:t}}}function Nfe(e){return typeof e.age=="number"}function Sg(e,t){return{...e,...{age:t}}}function Tfe(e){return(e.gender==="male"||e.gender==="female")&&_p(e.genderProbability)}function Ng(e,t,n){return{...e,...{gender:t,genderProbability:n}}}function Cfe(e,t){function n(l,u){let p=Ma(e(9*l),[3,3,l,1]),d=je(e(l)),c=je(e(l)),h=je(e(l)),m=je(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=je(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"),b=s(512,512,"mobilenetv1/conv_9"),y=s(512,512,"mobilenetv1/conv_10"),x=s(512,512,"mobilenetv1/conv_11"),v=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:b,conv_10:y,conv_11:x,conv_12:v,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"),b=a(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),y=a(1024,24,1,"prediction_layer/box_predictor_1/box_encoding_predictor"),x=a(1024,18,1,"prediction_layer/box_predictor_1/class_predictor"),v=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"),F=a(256,18,1,"prediction_layer/box_predictor_4/class_predictor"),D=a(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),$=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:b},box_predictor_1:{box_encoding_predictor:y,class_predictor:x},box_predictor_2:{box_encoding_predictor:v,class_predictor:I},box_predictor_3:{box_encoding_predictor:T,class_predictor:C},box_predictor_4:{box_encoding_predictor:E,class_predictor:F},box_predictor_5:{box_encoding_predictor:D,class_predictor:$}}}return{extractMobilenetV1Params:i,extractPredictionLayerParams:o}}function K$(e){let t=[],{extractWeights:n,getRemainingWeights:a}=Fn(e),{extractMobilenetV1Params:r,extractPredictionLayerParams:s}=Cfe(n,t),i=r(),o=s(),u={extra_dim:kd(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 _fe(e,t){let n=oa(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`),b=n(`${d}/BatchNorm/moving_mean`,1,`${c}/batch_norm_mean`),y=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:b,batch_norm_variance:y},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 X$(e){let t=[],{extractMobilenetV1Params:n,extractPredictionLayerParams:a}=_fe(e,t),r=e["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!Vr(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=Rt(e,t.filters,n,"same");return a=X(a,t.batch_norm_offset),sn(a,0,6)})}var Efe=.0010000000474974513;function Afe(e,t,n){return P(()=>{let a=Es(e,t.filters,n,"same");return a=_s(a,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,Efe),sn(a,0,6)})}function Ffe(e){return[2,4,6,12].some(t=>t===e)?[2,2]:[1,1]}function Y$(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=Ffe(o);a=Afe(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 $fe(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),b=Math.min(o,d),y=Math.max(g-m,0)*Math.max(b-f,0);return y/(c+h-y)}function Z$(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=$fe(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 Dfe(e){let t=ct(De(e,[1,0])),n=[pe(t[2],t[0]),pe(t[3],t[1])],a=[X(t[0],he(n[0],2)),X(t[1],he(n[1],2))];return{sizes:n,centers:a}}function Rfe(e,t){let{sizes:n,centers:a}=Dfe(e),r=ct(De(t,[1,0])),s=he(z(yn(he(r[2],5)),n[0]),2),i=X(z(he(r[0],10),n[0]),a[0]),o=he(z(yn(he(r[3],5)),n[1]),2),l=X(z(he(r[1],10),n[1]),a[1]);return De(Dt([pe(i,s),pe(l,o),X(i,s),X(l,o)]),[1,0])}function J$(e,t,n){return P(()=>{let a=e.shape[0],r=Rfe(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=fa(Ue(t,[0,0,1],[-1,-1,-1])),i=Ue(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 gl(e,t){return P(()=>{let n=e.shape[0],a=W(dl(e,t.box_encoding_predictor),[n,-1,1,4]),r=W(dl(e,t.class_predictor),[n,-1,3]);return{boxPredictionEncoding:a,classPrediction:r}})}function Q$(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=gl(t,n.box_predictor_0),c=gl(e,n.box_predictor_1),h=gl(r,n.box_predictor_2),m=gl(i,n.box_predictor_3),f=gl(l,n.box_predictor_4),g=gl(p,n.box_predictor_5),b=et([d.boxPredictionEncoding,c.boxPredictionEncoding,h.boxPredictionEncoding,m.boxPredictionEncoding,f.boxPredictionEncoding,g.boxPredictionEncoding],1),y=et([d.classPrediction,c.classPrediction,h.classPrediction,m.classPrediction,f.classPrediction,g.classPrediction],1);return{boxPredictions:b,classPredictions:y}})}var Ia=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 Ls=class extends pn{constructor(){super("SsdMobilenetv1")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("SsdMobilenetv1 - load model before inference");return P(()=>{let a=se(t.toBatchTensor(512,!1),"float32"),r=pe(he(a,127.5),1),s=Y$(r,n.mobilenetv1),{boxPredictions:i,classPredictions:o}=Q$(s.out,s.conv11,n.prediction_layer);return J$(i,o,n.output_layer)})}async forward(t){return this.forwardInput(await wt(t))}async locateFaces(t,n={}){let{maxResults:a,minConfidence:r}=new Ia(n),s=await wt(t),{boxes:i,scores:o}=this.forwardInput(s),l=i[0],u=o[0];for(let x=1;x{let[v,I]=[Math.max(0,b[x][0]),Math.min(1,b[x][2])].map(E=>E*g),[T,C]=[Math.max(0,b[x][1]),Math.min(1,b[x][3])].map(E=>E*f);return new vt(p[x],new il(T,v,C-T,I-v),{height:s.getInputHeight(0),width:s.getInputWidth(0)})});return l.dispose(),u.dispose(),y}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return X$(t)}extractParams(t){return K$(t)}};function eD(e){let t=new Ls;return t.extractWeights(e),t}function Mfe(e){return eD(e)}var Gk=class extends Ls{};var tD=.4,nD=[new Re(.738768,.874946),new Re(2.42204,2.65704),new Re(4.30971,7.04493),new Re(10.246,4.59428),new Re(12.6868,11.8741)],aD=[new Re(1.603231,2.094468),new Re(6.041143,7.080126),new Re(2.882459,3.518061),new Re(4.266906,5.178857),new Re(9.041765,10.66308)],rD=[117.001,114.697,97.404],sD="tiny_yolov2_model",iD="tiny_yolov2_separable_conv_model";var Tg=e=>typeof e=="number";function Hk(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(!Tg(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=>Tg(t.x)&&Tg(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(Tg)))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,ve(.10000000149011612));return X(Ke(pe(e,t)),t)})}function jr(e,t){return P(()=>{let n=va(e,[[0,0],[1,1],[1,1],[0,0]]);return n=Rt(n,t.conv.filters,[1,1],"valid"),n=pe(n,t.bn.sub),n=z(n,t.bn.truediv),n=X(n,t.conv.bias),Bp(n)})}function Kr(e,t){return P(()=>{let n=va(e,[[0,0],[1,1],[1,1],[0,0]]);return n=$s(n,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),n=X(n,t.bias),Bp(n)})}function Pfe(e,t){let n=Rp(e,t);function a(i,o){let l=je(e(i)),u=je(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=Mp(e,t);return{extractConvParams:n,extractConvWithBatchNormParams:r,extractSeparableConvParams:s}}function oD(e,t,n,a){let{extractWeights:r,getRemainingWeights:s}=Fn(e),i=[],{extractConvParams:o,extractConvWithBatchNormParams:l,extractSeparableConvParams:u}=Pfe(r,i),p;if(t.withSeparableConvs){let[d,c,h,m,f,g,b,y,x]=a,v=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"),F=u(g,b,"conv5"),D=y?u(b,y,"conv6"):void 0,$=x?u(y,x,"conv7"):void 0,S=o(x||y||b,5*n,1,"conv8");p={conv0:v,conv1:I,conv2:T,conv3:C,conv4:E,conv5:F,conv6:D,conv7:$,conv8:S}}else{let[d,c,h,m,f,g,b,y,x]=a,v=l(d,c,"conv0"),I=l(c,h,"conv1"),T=l(h,m,"conv2"),C=l(m,f,"conv3"),E=l(f,g,"conv4"),F=l(g,b,"conv5"),D=l(b,y,"conv6"),$=l(y,x,"conv7"),S=o(x,5*n,1,"conv8");p={conv0:v,conv1:I,conv2:T,conv3:C,conv4:E,conv5:F,conv6:D,conv7:$,conv8:S}}if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{params:p,paramMappings:i}}function Ofe(e,t){let n=oa(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=Pp(n);return{extractConvParams:r,extractConvWithBatchNormParams:s,extractSeparableConvParams:i}}function lD(e,t){let n=[],{extractConvParams:a,extractConvWithBatchNormParams:r,extractSeparableConvParams:s}=Ofe(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 qk=class extends pn{constructor(n){super("TinyYolov2");Hk(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=jr(n,a.conv0);return r=Mt(r,[2,2],[2,2],"same"),r=jr(r,a.conv1),r=Mt(r,[2,2],[2,2],"same"),r=jr(r,a.conv2),r=Mt(r,[2,2],[2,2],"same"),r=jr(r,a.conv3),r=Mt(r,[2,2],[2,2],"same"),r=jr(r,a.conv4),r=Mt(r,[2,2],[2,2],"same"),r=jr(r,a.conv5),r=Mt(r,[2,2],[1,1],"same"),r=jr(r,a.conv6),r=jr(r,a.conv7),dl(r,a.conv8,"valid",!1)}runMobilenet(n,a){let r=this.config.isFirstLayerConv2d?Bp(dl(n,a.conv0,"valid",!1)):Kr(n,a.conv0);return r=Mt(r,[2,2],[2,2],"same"),r=Kr(r,a.conv1),r=Mt(r,[2,2],[2,2],"same"),r=Kr(r,a.conv2),r=Mt(r,[2,2],[2,2],"same"),r=Kr(r,a.conv3),r=Mt(r,[2,2],[2,2],"same"),r=Kr(r,a.conv4),r=Mt(r,[2,2],[2,2],"same"),r=Kr(r,a.conv5),r=Mt(r,[2,2],[1,1],"same"),r=a.conv6?Kr(r,a.conv6):r,r=a.conv7?Kr(r,a.conv7):r,dl(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=se(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 wt(n),a)}async detect(n,a={}){let{inputSize:r,scoreThreshold:s}=new er(a),i=await wt(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(b=>b.box),c=p.map(b=>b.score),h=p.map(b=>b.classScore),m=p.map(b=>this.config.classes[b.label]);return wk(d.map(b=>b.rescale(r)),c,this.config.iouThreshold,!0).map(b=>new Ur(c[b],h[b],m[b],d[b],u))}getDefaultModelName(){return""}extractParamsFromWeightMap(n){return lD(n,this.config)}extractParams(n){let a=this.config.filterSizes||qk.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 oD(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 y=n.reshape([p,p,d,this.boxEncodingSize]),x=y.slice([0,0,0,0],[p,p,d,4]),v=y.slice([0,0,0,4],[p,p,d,1]),I=this.withClassScores?Xa(y.slice([0,0,0,5],[p,p,d,this.config.classes.length]),3):ve(0);return[x,v,I]}),f=[],g=await h.array(),b=await c.array();for(let y=0;yr){let T=(x+zd(b[y][x][v][0]))/p*l,C=(y+zd(b[y][x][v][1]))/p*u,E=Math.exp(b[y][x][v][2])*this.config.anchors[v].x/p*l,F=Math.exp(b[y][x][v][3])*this.config.anchors[v].y/p*u,D=T-E/2,$=C-F/2,S={row:y,col:x,anchor:v},{classScore:M,label:B}=this.withClassScores?await this.extractPredictedClass(m,S):{classScore:1,label:0};f.push({box:new sl(D,$,D+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)}},bl=qk;bl.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var yl=class extends bl{constructor(t=!0){let n={withSeparableConvs:t,iouThreshold:tD,classes:["face"],...t?{anchors:aD,meanRgb:rD}:{anchors:nD,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 vt(r.score,r.relativeBox,{width:r.imageWidth,height:r.imageHeight}))}getDefaultModelName(){return this.withSeparableConvs?iD:sD}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};function Lfe(e,t=!0){let n=new yl(t);return n.extractWeights(e),n}var Zd=class extends er{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}};var Sa=class{async then(t){return t(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}};async function xl(e,t,n,a,r=({alignedRect:s})=>s){let s=e.map(l=>hl(l)?r(l):l.detection),i=a||(t instanceof Te?await Dp(t,s):await $p(t,s)),o=await n(i);return i.forEach(l=>l instanceof Te&&l.dispose()),o}async function Vp(e,t,n,a,r){return xl([e],t,async s=>n(s[0]),a,r)}var uD=.4,pD=[new Re(1.603231,2.094468),new Re(6.041143,7.080126),new Re(2.882459,3.518061),new Re(4.266906,5.178857),new Re(9.041765,10.66308)],cD=[117.001,114.697,97.404];var vl=class extends bl{constructor(){let t={withSeparableConvs:!0,iouThreshold:uD,classes:["face"],anchors:pD,meanRgb:cD,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 vt(r.score,r.relativeBox,{width:r.imageWidth,height:r.imageHeight}))}getDefaultModelName(){return"tiny_face_detector_model"}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};var nt={ssdMobilenetv1:new Ls,tinyFaceDetector:new vl,tinyYolov2:new yl,faceLandmark68Net:new ml,faceLandmark68TinyNet:new Xd,faceRecognitionNet:new fl,faceExpressionNet:new jd,ageGenderNet:new Kd},dD=(e,t)=>nt.ssdMobilenetv1.locateFaces(e,t),zfe=(e,t)=>nt.tinyFaceDetector.locateFaces(e,t),Wfe=(e,t)=>nt.tinyYolov2.locateFaces(e,t),hD=e=>nt.faceLandmark68Net.detectLandmarks(e),Bfe=e=>nt.faceLandmark68TinyNet.detectLandmarks(e),Vfe=e=>nt.faceRecognitionNet.computeFaceDescriptor(e),Ufe=e=>nt.faceExpressionNet.predictExpressions(e),Gfe=e=>nt.ageGenderNet.predictAgeAndGender(e),mD=e=>nt.ssdMobilenetv1.load(e),Hfe=e=>nt.tinyFaceDetector.load(e),qfe=e=>nt.tinyYolov2.load(e),jfe=e=>nt.faceLandmark68Net.load(e),Kfe=e=>nt.faceLandmark68TinyNet.load(e),Xfe=e=>nt.faceRecognitionNet.load(e),Yfe=e=>nt.faceExpressionNet.load(e),Zfe=e=>nt.ageGenderNet.load(e),Jfe=mD,Qfe=dD,ege=hD;var Cg=class extends Sa{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.extractedFaces=r}},wl=class extends Cg{async run(){let t=await this.parentTask,n=await xl(t,this.input,async a=>Promise.all(a.map(r=>nt.faceExpressionNet.predictExpressions(r))),this.extractedFaces);return t.map((a,r)=>gg(a,n[r]))}withAgeAndGender(){return new Il(this,this.input)}},kl=class extends Cg{async run(){let t=await this.parentTask;if(!t)return;let n=await Vp(t,this.input,a=>nt.faceExpressionNet.predictExpressions(a),this.extractedFaces);return gg(t,n)}withAgeAndGender(){return new Sl(this,this.input)}},zs=class extends wl{withAgeAndGender(){return new Bs(this,this.input)}withFaceDescriptors(){return new Xr(this,this.input)}},Ws=class extends kl{withAgeAndGender(){return new Vs(this,this.input)}withFaceDescriptor(){return new Yr(this,this.input)}};var _g=class extends Sa{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.extractedFaces=r}},Il=class extends _g{async run(){let t=await this.parentTask,n=await xl(t,this.input,async a=>Promise.all(a.map(r=>nt.ageGenderNet.predictAgeAndGender(r))),this.extractedFaces);return t.map((a,r)=>{let{age:s,gender:i,genderProbability:o}=n[r];return Sg(Ng(a,i,o),s)})}withFaceExpressions(){return new wl(this,this.input)}},Sl=class extends _g{async run(){let t=await this.parentTask;if(!t)return;let{age:n,gender:a,genderProbability:r}=await Vp(t,this.input,s=>nt.ageGenderNet.predictAgeAndGender(s),this.extractedFaces);return Sg(Ng(t,a,r),n)}withFaceExpressions(){return new kl(this,this.input)}},Bs=class extends Il{withFaceExpressions(){return new zs(this,this.input)}withFaceDescriptors(){return new Xr(this,this.input)}},Vs=class extends Sl{withFaceExpressions(){return new Ws(this,this.input)}withFaceDescriptor(){return new Yr(this,this.input)}};var Jd=class extends Sa{constructor(n,a){super();this.parentTask=n;this.input=a}},Xr=class extends Jd{async run(){let t=await this.parentTask;return(await xl(t,this.input,a=>Promise.all(a.map(r=>nt.faceRecognitionNet.computeFaceDescriptor(r))),null,a=>a.landmarks.align(null,{useDlibAlignment:!0}))).map((a,r)=>Ig(t[r],a))}withFaceExpressions(){return new zs(this,this.input)}withAgeAndGender(){return new Bs(this,this.input)}},Yr=class extends Jd{async run(){let t=await this.parentTask;if(!t)return;let n=await Vp(t,this.input,a=>nt.faceRecognitionNet.computeFaceDescriptor(a),null,a=>a.landmarks.align(null,{useDlibAlignment:!0}));return Ig(t,n)}withFaceExpressions(){return new Ws(this,this.input)}withAgeAndGender(){return new Vs(this,this.input)}};var Qd=class extends Sa{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.useTinyLandmarkNet=r}get landmarkNet(){return this.useTinyLandmarkNet?nt.faceLandmark68TinyNet:nt.faceLandmark68Net}},eh=class extends Qd{async run(){let t=await this.parentTask,n=t.map(i=>i.detection),a=this.input instanceof Te?await Dp(this.input,n):await $p(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)=>zp(i,r[o]))}withFaceExpressions(){return new zs(this,this.input)}withAgeAndGender(){return new Bs(this,this.input)}withFaceDescriptors(){return new Xr(this,this.input)}},th=class extends Qd{async run(){let t=await this.parentTask;if(!t)return;let{detection:n}=t,a=this.input instanceof Te?await Dp(this.input,[n]):await $p(this.input,[n]),r=await this.landmarkNet.detectLandmarks(a[0]);return a.forEach(s=>s instanceof Te&&s.dispose()),zp(t,r)}withFaceExpressions(){return new Ws(this,this.input)}withAgeAndGender(){return new Vs(this,this.input)}withFaceDescriptor(){return new Yr(this,this.input)}};var nh=class extends Sa{constructor(n,a=new Ia){super();this.input=n;this.options=a}},Up=class extends nh{async run(){let{input:t,options:n}=this,a;if(n instanceof Zd)a=nt.tinyFaceDetector.locateFaces(t,n);else if(n instanceof Ia)a=nt.ssdMobilenetv1.locateFaces(t,n);else if(n instanceof er)a=nt.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=>ll({},r)))).catch(a=>n(a))})}withFaceLandmarks(t=!1){return new eh(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new wl(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new Il(this.runAndExtendWithFaceDetections(),this.input)}},ah=class extends nh{async run(){let t=await new Up(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?ll({},n):void 0)})}withFaceLandmarks(t=!1){return new th(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new kl(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new Sl(this.runAndExtendWithFaceDetection(),this.input)}};function tge(e,t=new Ia){return new ah(e,t)}function Eg(e,t=new Ia){return new Up(e,t)}async function fD(e,t){return Eg(e,new Ia(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function nge(e,t={}){return Eg(e,new er(t)).withFaceLandmarks().withFaceDescriptors()}var age=fD;function jk(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 rh=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 vr)return i;if(i instanceof Float32Array)return new vr(s(),[i]);if(i.descriptor&&i.descriptor instanceof Float32Array)return new vr(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=>jk(a,t)).reduce((a,r)=>a+r,0)/(n.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:n,label:a})=>new Ep(a,this.computeMeanDistance(t,n))).reduce((n,a)=>n.distancet.toJSON())}}static fromJSON(t){let n=t.labeledDescriptors.map(a=>vr.fromJSON(a));return new rh(n,t.distanceThreshold)}};function rge(e){let t=new vl;return t.extractWeights(e),t}function gD(e,t){let{width:n,height:a}=new wn(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=>gD(r,{width:n,height:a}));if(hl(e)){let r=e.detection.forSize(n,a),s=e.unshiftedLandmarks.forSize(r.box.width,r.box.height);return zp(ll(e,r),s)}return wr(e)?ll(e,e.detection.forSize(n,a)):e instanceof ia||e instanceof vt?e.forSize(n,a):e}var sge=P$;return tR(ige);})(); diff --git a/dist/face-api.node-gpu.js b/dist/face-api.node-gpu.js index 6bf8bbb..da8422a 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.5.0",En="4.5.0",Mn="4.5.0",Cn="4.5.0",In="4.5.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.11";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.7.0",En="4.7.0",Mn="4.7.0",Cn="4.7.0",In="4.7.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",{willReadFrequently:!0});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.12";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 96df395..24ba028 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.5.0",En="4.5.0",Mn="4.5.0",Cn="4.5.0",In="4.5.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.11";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.7.0",En="4.7.0",Mn="4.7.0",Cn="4.7.0",In="4.7.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",{willReadFrequently:!0});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.12";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 2f76741..a6d9a6e 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.5.0",En="4.5.0",Mn="4.5.0",Cn="4.5.0",In="4.5.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.11";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.7.0",En="4.7.0",Mn="4.7.0",Cn="4.7.0",In="4.7.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",{willReadFrequently:!0});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.12";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 0d59229..7f988f5 100644 --- a/dist/tfjs.esm.js +++ b/dist/tfjs.esm.js @@ -4,69 +4,69 @@ author: ' */ -var iq=Object.create;var r0=Object.defineProperty;var aq=Object.getOwnPropertyDescriptor;var lq=Object.getOwnPropertyNames;var uq=Object.getPrototypeOf,cq=Object.prototype.hasOwnProperty;var wr=(r,t)=>()=>(t||r((t={exports:{}}).exports,t),t.exports),Kt=(r,t)=>{for(var e in t)r0(r,e,{get:t[e],enumerable:!0})},pq=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of lq(t))!cq.call(r,o)&&o!==e&&r0(r,o,{get:()=>t[o],enumerable:!(n=aq(t,o))||n.enumerable});return r};var Kl=(r,t,e)=>(e=r!=null?iq(uq(r)):{},pq(t||!r||!r.__esModule?r0(e,"default",{value:r,enumerable:!0}):e,r));var A_=wr((hmt,E_)=>{E_.exports=Ue;var bo=null;try{bo=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 Bn(r){return(r&&r.__isLong__)===!0}Ue.isLong=Bn;var w_={},I_={};function lc(r,t){var e,n,o;return t?(r>>>=0,(o=0<=r&&r<256)&&(n=I_[r],n)?n:(e=He(r,(r|0)<0?-1:0,!0),o&&(I_[r]=e),e)):(r|=0,(o=-128<=r&&r<128)&&(n=w_[r],n)?n:(e=He(r,r<0?-1:0,!1),o&&(w_[r]=e),e))}Ue.fromInt=lc;function wo(r,t){if(isNaN(r))return t?ac:Io;if(t){if(r<0)return ac;if(r>=N_)return __}else{if(r<=-v_)return zn;if(r+1>=v_)return T_}return r<0?wo(-r,t).neg():He(r%Zp|0,r/Zp|0,t)}Ue.fromNumber=wo;function He(r,t,e){return new Ue(r,t,e)}Ue.fromBits=He;var Qg=Math.pow;function h0(r,t,e){if(r.length===0)throw Error("empty string");if(r==="NaN"||r==="Infinity"||r==="+Infinity"||r==="-Infinity")return Io;if(typeof t=="number"?(e=t,t=!1):t=!!t,e=e||10,e<2||360)throw Error("interior hyphen");if(n===0)return h0(r.substring(1),t,e).neg();for(var o=wo(Qg(e,8)),s=Io,i=0;i>>0:this.low};xt.toNumber=function(){return this.unsigned?(this.high>>>0)*Zp+(this.low>>>0):this.high*Zp+(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(zn)?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 Bn(t)||(t=oi(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(Bn(t)||(t=oi(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(zn)?zn:this.not().add(Yp)};xt.neg=xt.negate;xt.add=function(t){Bn(t)||(t=oi(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 Bn(t)||(t=oi(t)),this.add(t.neg())};xt.sub=xt.subtract;xt.multiply=function(t){if(this.isZero())return Io;if(Bn(t)||(t=oi(t)),bo){var e=bo.mul(this.low,this.high,t.low,t.high);return He(e,bo.get_high(),this.unsigned)}if(t.isZero())return Io;if(this.eq(zn))return t.isOdd()?zn:Io;if(t.eq(zn))return this.isOdd()?zn:Io;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(S_)&&t.lt(S_))return wo(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(Bn(t)||(t=oi(t)),t.isZero())throw Error("division by zero");if(bo){if(!this.unsigned&&this.high===-2147483648&&t.low===-1&&t.high===-1)return this;var e=(this.unsigned?bo.div_u:bo.div_s)(this.low,this.high,t.low,t.high);return He(e,bo.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?ac:Io;var n,o,s;if(this.unsigned){if(t.unsigned||(t=t.toUnsigned()),t.gt(this))return ac;if(t.gt(this.shru(1)))return k_;s=ac}else{if(this.eq(zn)){if(t.eq(Yp)||t.eq(d0))return zn;if(t.eq(zn))return Yp;var i=this.shr(1);return n=i.div(t).shl(1),n.eq(Io)?t.isNegative()?Yp:d0:(o=this.sub(t.mul(n)),s=n.add(o.div(t)),s)}else if(t.eq(zn))return this.unsigned?ac:Io;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=Io}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:Qg(2,a-48),l=wo(n),c=l.mul(t);c.isNegative()||c.gt(o);)n-=u,l=wo(n,this.unsigned),c=l.mul(t);l.isZero()&&(l=Yp),s=s.add(l),o=o.sub(c)}return s};xt.div=xt.divide;xt.modulo=function(t){if(Bn(t)||(t=oi(t)),bo){var e=(this.unsigned?bo.rem_u:bo.rem_s)(this.low,this.high,t.low,t.high);return He(e,bo.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 Bn(t)||(t=oi(t)),He(this.low&t.low,this.high&t.high,this.unsigned)};xt.or=function(t){return Bn(t)||(t=oi(t)),He(this.low|t.low,this.high|t.high,this.unsigned)};xt.xor=function(t){return Bn(t)||(t=oi(t)),He(this.low^t.low,this.high^t.high,this.unsigned)};xt.shiftLeft=function(t){return Bn(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(Bn(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 cE=wr(()=>{});var pE=wr(()=>{});var GE=wr((VE,j0)=>{(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})(VE,typeof j0=="object"&&j0,typeof define=="function"&&define)});var UE=wr((WE,X0)=>{(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})(WE,typeof X0=="object"&&X0,typeof define=="function"&&define)});var qE=wr((HE,Y0)=>{(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})(HE,typeof Y0=="object"&&Y0,typeof define=="function"&&define)});var jE=wr((KE,Z0)=>{(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})(KE,typeof Z0=="object"&&Z0,typeof define=="function"&&define)});var YE=wr((XE,J0)=>{(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})(XE,typeof J0=="object"&&J0,typeof define=="function"&&define)});var JE=wr((ZE,Q0)=>{(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})(ZE,typeof Q0=="object"&&Q0,typeof define=="function"&&define)});var QE=wr(()=>{});var eA=wr((tA,ry)=>{(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,I,N){var E=[];I=I==!0?{entropy:!0}:I||{};var A=g(h(I.entropy?[w,b(t)]:w==null?x():w,3),E),D=new f(E),F=function(){for(var P=D.g(o),V=a,G=0;P=l;)P/=2,V/=2,G>>>=1;return(P+G)/V};return F.int32=function(){return D.g(4)|0},F.quick=function(){return D.g(4)/4294967296},F.double=F,g(b(D.S),t),(I.pass||N||function(P,V,G,W){return W&&(W.S&&d(W,D),P.state=function(){return d(D,{})}),G?(e[i]=P,V):P})(F,A,"global"in I?I.global:this==e,I.state)}function f(w){var I,N=w.length,E=this,A=0,D=E.i=E.j=0,F=E.S=[];for(N||(w=[N++]);A{var oX=GE(),sX=UE(),iX=qE(),aX=jE(),lX=YE(),uX=JE(),bc=eA();bc.alea=oX;bc.xor128=sX;bc.xorwow=iX;bc.xorshift7=aX;bc.xor4096=lX;bc.tychei=uX;rA.exports=bc});var wk=wr(()=>{});var pw=wr(()=>{});var G1=wr(()=>{});var dH=wr(()=>{});var hH=wr(()=>{});var gH=wr(()=>{});var xH=wr((EC,U1)=>{var W1=(()=>{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 it.buffer!=ee&&je(it.buffer),xe}function n(){return it.buffer!=ee&&je(it.buffer),fe}function o(){return it.buffer!=ee&&je(it.buffer),Ae}function s(){return it.buffer!=ee&&je(it.buffer),Pn}function i(){return it.buffer!=ee&&je(it.buffer),lr}function a(){return it.buffer!=ee&&je(it.buffer),Jn}function u(){return it.buffer!=ee&&je(it.buffer),Br}var l=typeof t!="undefined"?t:{},c,p;l.ready=new Promise(function(M,U){c=M,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=(M,U)=>{throw U},x=typeof window=="object",b=typeof importScripts=="function",w=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",I=l.ENVIRONMENT_IS_PTHREAD||!1,N="";function E(M){return l.locateFile?l.locateFile(M,N):N+M}var A,D,F,P;function V(M){if(M instanceof tc)return;X("exiting due to exception: "+M)}if(w){var G=pw(),W=G1();b?N=W.dirname(N)+"/":N=__dirname+"/",A=(U,dt)=>(U=Sp(U)?new URL(U):W.normalize(U),G.readFileSync(U,dt?void 0:"utf8")),F=U=>{var dt=A(U,!0);return dt.buffer||(dt=new Uint8Array(dt)),dt},D=(U,dt,Lt)=>{U=Sp(U)?new URL(U):W.normalize(U),G.readFile(U,function(Zt,Yt){Zt?Lt(Zt):dt(Yt.buffer)})},process.argv.length>1&&(h=process.argv[1].replace(/\\/g,"/")),d=process.argv.slice(2),process.on("uncaughtException",function(U){if(!(U instanceof tc))throw U}),process.on("unhandledRejection",function(U){throw U}),g=(U,dt)=>{if(Go())throw process.exitCode=U,dt;V(dt),process.exit(U)},l.inspect=function(){return"[Emscripten Module object]"};let M;try{M=dH()}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=M.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=M=>{var U=new XMLHttpRequest;return U.open("GET",M,!1),U.send(null),U.responseText},b&&(F=M=>{var U=new XMLHttpRequest;return U.open("GET",M,!1),U.responseType="arraybuffer",U.send(null),new Uint8Array(U.response)}),D=(M,U,dt)=>{var Lt=new XMLHttpRequest;Lt.open("GET",M,!0),Lt.responseType="arraybuffer",Lt.onload=()=>{if(Lt.status==200||Lt.status==0&&Lt.response){U(Lt.response);return}dt()},Lt.onerror=dt,Lt.send(null)}),P=M=>document.title=M);w&&typeof performance=="undefined"&&(global.performance=hH().performance);var q=console.log.bind(console),H=console.warn.bind(console);w&&(q=M=>G.writeSync(1,M+` +var Eq=Object.create;var u0=Object.defineProperty;var Aq=Object.getOwnPropertyDescriptor;var Dq=Object.getOwnPropertyNames;var $q=Object.getPrototypeOf,Rq=Object.prototype.hasOwnProperty;var wr=(r,t)=>()=>(t||r((t={exports:{}}).exports,t),t.exports),Kt=(r,t)=>{for(var e in t)u0(r,e,{get:t[e],enumerable:!0})},Fq=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Dq(t))!Rq.call(r,o)&&o!==e&&u0(r,o,{get:()=>t[o],enumerable:!(n=Aq(t,o))||n.enumerable});return r};var Xl=(r,t,e)=>(e=r!=null?Eq($q(r)):{},Fq(t||!r||!r.__esModule?u0(e,"default",{value:r,enumerable:!0}):e,r));var M_=wr((Zmt,P_)=>{P_.exports=Ue;var Io=null;try{Io=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 Gn(r){return(r&&r.__isLong__)===!0}Ue.isLong=Gn;var T_={},__={};function fc(r,t){var e,n,o;return t?(r>>>=0,(o=0<=r&&r<256)&&(n=__[r],n)?n:(e=He(r,(r|0)<0?-1:0,!0),o&&(__[r]=e),e)):(r|=0,(o=-128<=r&&r<128)&&(n=T_[r],n)?n:(e=He(r,r<0?-1:0,!1),o&&(T_[r]=e),e))}Ue.fromInt=fc;function Co(r,t){if(isNaN(r))return t?mc:vo;if(t){if(r<0)return mc;if(r>=$_)return O_}else{if(r<=-A_)return Vn;if(r+1>=A_)return F_}return r<0?Co(-r,t).neg():He(r%Qp|0,r/Qp|0,t)}Ue.fromNumber=Co;function He(r,t,e){return new Ue(r,t,e)}Ue.fromBits=He;var tx=Math.pow;function C0(r,t,e){if(r.length===0)throw Error("empty string");if(r==="NaN"||r==="Infinity"||r==="+Infinity"||r==="-Infinity")return vo;if(typeof t=="number"?(e=t,t=!1):t=!!t,e=e||10,e<2||360)throw Error("interior hyphen");if(n===0)return C0(r.substring(1),t,e).neg();for(var o=Co(tx(e,8)),s=vo,i=0;i>>0:this.low};xt.toNumber=function(){return this.unsigned?(this.high>>>0)*Qp+(this.low>>>0):this.high*Qp+(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(Vn)?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 Gn(t)||(t=li(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(Gn(t)||(t=li(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(Vn)?Vn:this.not().add(Jp)};xt.neg=xt.negate;xt.add=function(t){Gn(t)||(t=li(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 Gn(t)||(t=li(t)),this.add(t.neg())};xt.sub=xt.subtract;xt.multiply=function(t){if(this.isZero())return vo;if(Gn(t)||(t=li(t)),Io){var e=Io.mul(this.low,this.high,t.low,t.high);return He(e,Io.get_high(),this.unsigned)}if(t.isZero())return vo;if(this.eq(Vn))return t.isOdd()?Vn:vo;if(t.eq(Vn))return this.isOdd()?Vn:vo;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(D_)&&t.lt(D_))return Co(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(Gn(t)||(t=li(t)),t.isZero())throw Error("division by zero");if(Io){if(!this.unsigned&&this.high===-2147483648&&t.low===-1&&t.high===-1)return this;var e=(this.unsigned?Io.div_u:Io.div_s)(this.low,this.high,t.low,t.high);return He(e,Io.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?mc:vo;var n,o,s;if(this.unsigned){if(t.unsigned||(t=t.toUnsigned()),t.gt(this))return mc;if(t.gt(this.shru(1)))return R_;s=mc}else{if(this.eq(Vn)){if(t.eq(Jp)||t.eq(I0))return Vn;if(t.eq(Vn))return Jp;var i=this.shr(1);return n=i.div(t).shl(1),n.eq(vo)?t.isNegative()?Jp:I0:(o=this.sub(t.mul(n)),s=n.add(o.div(t)),s)}else if(t.eq(Vn))return this.unsigned?mc:vo;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=vo}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:tx(2,a-48),l=Co(n),c=l.mul(t);c.isNegative()||c.gt(o);)n-=u,l=Co(n,this.unsigned),c=l.mul(t);l.isZero()&&(l=Jp),s=s.add(l),o=o.sub(c)}return s};xt.div=xt.divide;xt.modulo=function(t){if(Gn(t)||(t=li(t)),Io){var e=(this.unsigned?Io.rem_u:Io.rem_s)(this.low,this.high,t.low,t.high);return He(e,Io.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 Gn(t)||(t=li(t)),He(this.low&t.low,this.high&t.high,this.unsigned)};xt.or=function(t){return Gn(t)||(t=li(t)),He(this.low|t.low,this.high|t.high,this.unsigned)};xt.xor=function(t){return Gn(t)||(t=li(t)),He(this.low^t.low,this.high^t.high,this.unsigned)};xt.shiftLeft=function(t){return Gn(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(Gn(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 yE=wr(()=>{});var bE=wr(()=>{});var YE=wr((XE,eN)=>{(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})(XE,typeof eN=="object"&&eN,typeof define=="function"&&define)});var JE=wr((ZE,rN)=>{(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})(ZE,typeof rN=="object"&&rN,typeof define=="function"&&define)});var tA=wr((QE,nN)=>{(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})(QE,typeof nN=="object"&&nN,typeof define=="function"&&define)});var rA=wr((eA,oN)=>{(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})(eA,typeof oN=="object"&&oN,typeof define=="function"&&define)});var oA=wr((nA,sN)=>{(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})(nA,typeof sN=="object"&&sN,typeof define=="function"&&define)});var iA=wr((sA,iN)=>{(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})(sA,typeof iN=="object"&&iN,typeof define=="function"&&define)});var aA=wr(()=>{});var uA=wr((lA,ny)=>{(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,I,N){var E=[];I=I==!0?{entropy:!0}:I||{};var A=g(h(I.entropy?[w,b(t)]:w==null?x():w,3),E),D=new f(E),F=function(){for(var P=D.g(o),V=a,G=0;P=l;)P/=2,V/=2,G>>>=1;return(P+G)/V};return F.int32=function(){return D.g(4)|0},F.quick=function(){return D.g(4)/4294967296},F.double=F,g(b(D.S),t),(I.pass||N||function(P,V,G,W){return W&&(W.S&&d(W,D),P.state=function(){return d(D,{})}),G?(e[i]=P,V):P})(F,A,"global"in I?I.global:this==e,I.state)}function f(w){var I,N=w.length,E=this,A=0,D=E.i=E.j=0,F=E.S=[];for(N||(w=[N++]);A{var _X=YE(),EX=JE(),AX=tA(),DX=rA(),$X=oA(),RX=iA(),Sc=uA();Sc.alea=_X;Sc.xor128=EX;Sc.xorwow=AX;Sc.xorshift7=DX;Sc.xor4096=$X;Sc.tychei=RX;cA.exports=Sc});var Tk=wr(()=>{});var pw=wr(()=>{});var X1=wr(()=>{});var MH=wr(()=>{});var LH=wr(()=>{});var zH=wr(()=>{});var BH=wr((EC,Z1)=>{var Y1=(()=>{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 it.buffer!=re&&je(it.buffer),xe}function n(){return it.buffer!=re&&je(it.buffer),fe}function o(){return it.buffer!=re&&je(it.buffer),Ae}function s(){return it.buffer!=re&&je(it.buffer),Ln}function i(){return it.buffer!=re&&je(it.buffer),lr}function a(){return it.buffer!=re&&je(it.buffer),eo}function u(){return it.buffer!=re&&je(it.buffer),Vr}var l=typeof t!="undefined"?t:{},c,p;l.ready=new Promise(function(M,U){c=M,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=(M,U)=>{throw U},x=typeof window=="object",b=typeof importScripts=="function",w=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",I=l.ENVIRONMENT_IS_PTHREAD||!1,N="";function E(M){return l.locateFile?l.locateFile(M,N):N+M}var A,D,F,P;function V(M){if(M instanceof sc)return;X("exiting due to exception: "+M)}if(w){var G=pw(),W=X1();b?N=W.dirname(N)+"/":N=__dirname+"/",A=(U,dt)=>(U=Ep(U)?new URL(U):W.normalize(U),G.readFileSync(U,dt?void 0:"utf8")),F=U=>{var dt=A(U,!0);return dt.buffer||(dt=new Uint8Array(dt)),dt},D=(U,dt,Lt)=>{U=Ep(U)?new URL(U):W.normalize(U),G.readFile(U,function(Zt,Yt){Zt?Lt(Zt):dt(Yt.buffer)})},process.argv.length>1&&(h=process.argv[1].replace(/\\/g,"/")),d=process.argv.slice(2),process.on("uncaughtException",function(U){if(!(U instanceof sc))throw U}),process.on("unhandledRejection",function(U){throw U}),g=(U,dt)=>{if(Wo())throw process.exitCode=U,dt;V(dt),process.exit(U)},l.inspect=function(){return"[Emscripten Module object]"};let M;try{M=MH()}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=M.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=M=>{var U=new XMLHttpRequest;return U.open("GET",M,!1),U.send(null),U.responseText},b&&(F=M=>{var U=new XMLHttpRequest;return U.open("GET",M,!1),U.responseType="arraybuffer",U.send(null),new Uint8Array(U.response)}),D=(M,U,dt)=>{var Lt=new XMLHttpRequest;Lt.open("GET",M,!0),Lt.responseType="arraybuffer",Lt.onload=()=>{if(Lt.status==200||Lt.status==0&&Lt.response){U(Lt.response);return}dt()},Lt.onerror=dt,Lt.send(null)}),P=M=>document.title=M);w&&typeof performance=="undefined"&&(global.performance=LH().performance);var q=console.log.bind(console),H=console.warn.bind(console);w&&(q=M=>G.writeSync(1,M+` `),H=M=>G.writeSync(2,M+` -`));var K=l.print||q,X=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,nt=Atomics.store,st=Atomics.compareExchange,at;l.wasmBinary&&(at=l.wasmBinary);var ot=l.noExitRuntime||!0;typeof WebAssembly!="object"&&Qu("no native wasm support detected");var it,mt,gt=!1,It;function Rt(M,U){M||Qu(U)}var Dt=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function Ht(M,U,dt){U>>>=0;for(var Lt=U+dt,Zt=U;M[Zt]&&!(Zt>=Lt);)++Zt;if(Zt-U>16&&M.buffer&&Dt)return Dt.decode(M.buffer instanceof SharedArrayBuffer?M.slice(U,Zt):M.subarray(U,Zt));for(var Yt="";U>10,56320|ro&1023)}}return Yt}function qt(M,U){return M>>>=0,M?Ht(n(),M,U):""}function ce(M,U,dt,Lt){if(dt>>>=0,!(Lt>0))return 0;for(var Zt=dt,Yt=dt+Lt-1,yt=0;yt=55296&&$t<=57343){var nr=M.charCodeAt(++yt);$t=65536+(($t&1023)<<10)|nr&1023}if($t<=127){if(dt>=Yt)break;U[dt++>>>0]=$t}else if($t<=2047){if(dt+1>=Yt)break;U[dt++>>>0]=192|$t>>6,U[dt++>>>0]=128|$t&63}else if($t<=65535){if(dt+2>=Yt)break;U[dt++>>>0]=224|$t>>12,U[dt++>>>0]=128|$t>>6&63,U[dt++>>>0]=128|$t&63}else{if(dt+3>=Yt)break;U[dt++>>>0]=240|$t>>18,U[dt++>>>0]=128|$t>>12&63,U[dt++>>>0]=128|$t>>6&63,U[dt++>>>0]=128|$t&63}}return U[dt>>>0]=0,dt-Zt}function ge(M,U,dt){return ce(M,n(),U,dt)}var ee,xe,fe,Ae,De,Pn,lr,Jn,Br;I&&(ee=l.buffer);function je(M){ee=M,l.HEAP8=xe=new Int8Array(M),l.HEAP16=Ae=new Int16Array(M),l.HEAP32=Pn=new Int32Array(M),l.HEAPU8=fe=new Uint8Array(M),l.HEAPU16=De=new Uint16Array(M),l.HEAPU32=lr=new Uint32Array(M),l.HEAPF32=Jn=new Float32Array(M),l.HEAPF64=Br=new Float64Array(M)}var Vr=l.INITIAL_MEMORY||16777216;if(I)it=l.wasmMemory,ee=l.buffer;else if(l.wasmMemory)it=l.wasmMemory;else if(it=new WebAssembly.Memory({initial:Vr/65536,maximum:65536,shared:!0}),!(it.buffer instanceof SharedArrayBuffer))throw X("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&&X("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and/or recent version)"),Error("bad memory");it&&(ee=it.buffer),Vr=ee.byteLength,je(ee);var Gr,Qn=[],to=[],Jr=[],Ca=!1;function Go(){return ot}function Ni(){if(l.preRun)for(typeof l.preRun=="function"&&(l.preRun=[l.preRun]);l.preRun.length;)Hd(l.preRun.shift());jd(Qn)}function Er(){Ca=!0,!I&&jd(to)}function va(){if(!I){if(l.postRun)for(typeof l.postRun=="function"&&(l.postRun=[l.postRun]);l.postRun.length;)Z1(l.postRun.shift());jd(Jr)}}function Hd(M){Qn.unshift(M)}function qd(M){to.unshift(M)}function Z1(M){Jr.unshift(M)}var Ul=0,vp=null,Sa=null;function $C(M){Ul++,l.monitorRunDependencies&&l.monitorRunDependencies(Ul)}function Cg(M){if(Ul--,l.monitorRunDependencies&&l.monitorRunDependencies(Ul),Ul==0&&(vp!==null&&(clearInterval(vp),vp=null),Sa)){var U=Sa;Sa=null,U()}}function Qu(M){l.onAbort&&l.onAbort(M),M="Aborted("+M+")",X(M),gt=!0,It=1,M+=". Build with -sASSERTIONS for more info.";var U=new WebAssembly.RuntimeError(M);throw p(U),U}var RC="data:application/octet-stream;base64,";function vg(M){return M.startsWith(RC)}function Sp(M){return M.startsWith("file://")}var Qr;Qr="tfjs-backend-wasm-threaded-simd.wasm",vg(Qr)||(Qr=E(Qr));function Sg(M){try{if(M==Qr&&at)return new Uint8Array(at);if(F)return F(M);throw"both async and sync fetching of the wasm failed"}catch(U){Qu(U)}}function FC(){if(!at&&(x||b)){if(typeof fetch=="function"&&!Sp(Qr))return fetch(Qr,{credentials:"same-origin"}).then(function(M){if(!M.ok)throw"failed to load wasm binary file at '"+Qr+"'";return M.arrayBuffer()}).catch(function(){return Sg(Qr)});if(D)return new Promise(function(M,U){D(Qr,function(dt){M(new Uint8Array(dt))},U)})}return Promise.resolve().then(function(){return Sg(Qr)})}function OC(){var M={env:Mg,wasi_snapshot_preview1:Mg};function U(yt,$t){var nr=yt.exports;if(l.asm=nr,UC(l.asm._emscripten_tls_init),Gr=l.asm.__indirect_function_table,qd(l.asm.__wasm_call_ctors),mt=$t,!I){var ro=Xt.unusedWorkers.length;Xt.unusedWorkers.forEach(function(ka){Xt.loadWasmModuleToWorker(ka,function(){--ro||Cg("wasm-instantiate")})})}}I||$C("wasm-instantiate");function dt(yt){U(yt.instance,yt.module)}function Lt(yt){return FC().then(function($t){return WebAssembly.instantiate($t,M)}).then(function($t){return $t}).then(yt,function($t){X("failed to asynchronously prepare wasm: "+$t),Qu($t)})}function Zt(){return!at&&typeof WebAssembly.instantiateStreaming=="function"&&!vg(Qr)&&!Sp(Qr)&&!w&&typeof fetch=="function"?fetch(Qr,{credentials:"same-origin"}).then(function(yt){var $t=WebAssembly.instantiateStreaming(yt,M);return $t.then(dt,function(nr){return X("wasm streaming compile failed: "+nr),X("falling back to ArrayBuffer instantiation"),Lt(dt)})}):Lt(dt)}if(l.instantiateWasm)try{var Yt=l.instantiateWasm(M,U);return Yt}catch(yt){X("Module.instantiateWasm callback failed with error: "+yt),p(yt)}return Zt().catch(p),{}}var J1,Q1,Ng={};function tc(M){this.name="ExitStatus",this.message="Program terminated with exit("+M+")",this.status=M}function PC(M){var U=Xt.pthreads[M];delete Xt.pthreads[M],U.terminate(),QS(M),Xt.runningWorkers.splice(Xt.runningWorkers.indexOf(U),1),U.pthread_ptr=0}function MC(M){var U=Xt.pthreads[M];U.postMessage({cmd:"cancel"})}function Kd(M){var U=Xt.pthreads[M];Rt(U),Xt.returnWorkerToPool(U)}function LC(M){var U=Xt.getNewWorker();if(!U)return 6;Xt.runningWorkers.push(U),Xt.pthreads[M.pthread_ptr]=U,U.pthread_ptr=M.pthread_ptr;var dt={cmd:"run",start_routine:M.startRoutine,arg:M.arg,pthread_ptr:M.pthread_ptr};return U.runPthread=()=>{w&&U.ref(),U.postMessage(dt,M.transferList),delete U.runPthread},U.loaded&&U.runPthread(),0}var kg={varargs:void 0,get:function(){kg.varargs+=4;var M=s()[kg.varargs-4>>>2];return M},getStr:function(M){var U=qt(M);return U}};function Tg(M){if(I)return Hl(1,1,M);It=M,Go()||(Xt.terminateAllThreads(),l.onExit&&l.onExit(M),gt=!0),g(M,new tc(M))}function zC(M,U){if(It=M,!U&&I)throw Eg(M),"unwind";Tg(M)}var _g=zC;function BC(M){if(M instanceof tc||M=="unwind")return It;g(1,M)}var Xt={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init:function(){I?Xt.initWorker():Xt.initMainThread()},initMainThread:function(){for(var M=8;M--;)Xt.allocateUnusedWorker()},initWorker:function(){ot=!1},setExitStatus:function(M){It=M},terminateAllThreads:function(){for(var M of Object.values(Xt.pthreads))Xt.returnWorkerToPool(M);for(var M of Xt.unusedWorkers)M.terminate();Xt.unusedWorkers=[]},returnWorkerToPool:function(M){var U=M.pthread_ptr;delete Xt.pthreads[U],Xt.unusedWorkers.push(M),Xt.runningWorkers.splice(Xt.runningWorkers.indexOf(M),1),M.pthread_ptr=0,w&&M.unref(),QS(U)},receiveObjectTransfer:function(M){},threadInitTLS:function(){Xt.tlsInitFunctions.forEach(M=>M())},loadWasmModuleToWorker:function(M,U){M.onmessage=Yt=>{var yt=Yt.data,$t=yt.cmd;if(M.pthread_ptr&&(Xt.currentProxiedOperationCallerThread=M.pthread_ptr),yt.targetThread&&yt.targetThread!=Wg()){var nr=Xt.pthreads[yt.targetThread];nr?nr.postMessage(yt,yt.transferList):X('Internal error! Worker sent a message "'+$t+'" to target pthread '+yt.targetThread+", but that thread no longer exists!"),Xt.currentProxiedOperationCallerThread=void 0;return}$t==="processProxyingQueue"?Xd(yt.queue):$t==="spawnThread"?LC(yt):$t==="cleanupThread"?Kd(yt.thread):$t==="killThread"?PC(yt.thread):$t==="cancelThread"?MC(yt.thread):$t==="loaded"?(M.loaded=!0,w&&M.unref(),U&&U(M),M.runPthread&&M.runPthread()):$t==="print"?K("Thread "+yt.threadId+": "+yt.text):$t==="printErr"?X("Thread "+yt.threadId+": "+yt.text):$t==="alert"?alert("Thread "+yt.threadId+": "+yt.text):yt.target==="setimmediate"?M.postMessage(yt):$t==="callHandler"?l[yt.handler](...yt.args):$t&&X("worker sent an unknown command "+$t),Xt.currentProxiedOperationCallerThread=void 0},M.onerror=Yt=>{var yt="worker sent an error!";throw X(yt+" "+Yt.filename+":"+Yt.lineno+": "+Yt.message),Yt},w&&(M.on("message",function(Yt){M.onmessage({data:Yt})}),M.on("error",function(Yt){M.onerror(Yt)}),M.on("detachedExit",function(){}));var dt=[],Lt=["onExit","onAbort","print","printErr"];for(var Zt of Lt)l.hasOwnProperty(Zt)&&dt.push(Zt);M.postMessage({cmd:"load",handlers:dt,urlOrBlob:l.mainScriptUrlOrBlob||r,wasmMemory:it,wasmModule:mt})},allocateUnusedWorker:function(){var M,U=E("tfjs-backend-wasm-threaded-simd.worker.js");M=new Worker(U),Xt.unusedWorkers.push(M)},getNewWorker:function(){return Xt.unusedWorkers.length==0&&(Xt.allocateUnusedWorker(),Xt.loadWasmModuleToWorker(Xt.unusedWorkers[0])),Xt.unusedWorkers.pop()}};l.PThread=Xt;function jd(M){for(;M.length>0;)M.shift()(l)}function VC(){var M=Wg(),U=s()[M+52>>>2],dt=s()[M+56>>>2],Lt=U-dt;s_(U,Lt),Ug(U)}l.establishStackSpace=VC;function Eg(M){if(I)return Hl(2,0,M);try{_g(M)}catch(U){BC(U)}}var Np=[];function GC(M){var U=Np[M];return U||(M>=Np.length&&(Np.length=M+1),Np[M]=U=Gr.get(M)),U}function WC(M,U){var dt=GC(M)(U);Go()?Xt.setExitStatus(dt):o_(dt)}l.invokeEntryPoint=WC;function UC(M){Xt.tlsInitFunctions.push(M)}function HC(M){e_(M,!b,1,!x),Xt.threadInitTLS()}function qC(M){I?postMessage({cmd:"cleanupThread",thread:M}):Kd(M)}function Ag(M,U,dt,Lt){return I?Hl(3,1,M,U,dt,Lt):Dg(M,U,dt,Lt)}function Dg(M,U,dt,Lt){if(typeof SharedArrayBuffer=="undefined")return X("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;var Zt=[],Yt=0;if(I&&(Zt.length===0||Yt))return Ag(M,U,dt,Lt);if(Yt)return Yt;var yt={startRoutine:dt,pthread_ptr:M,arg:Lt,transferList:Zt};return I?(yt.cmd="spawnThread",postMessage(yt,Zt),0):LC(yt)}function KC(){return 65536}var jC=!0;function XC(){return jC}function Xd(M){Atomics.store(s(),M>>2,1),Wg()&&n_(M),Atomics.compareExchange(s(),M>>2,1,0)}l.executeNotifiedProxyingQueue=Xd;function YC(M,U,dt,Lt){if(M==U)setTimeout(()=>Xd(Lt));else if(I)postMessage({targetThread:M,cmd:"processProxyingQueue",queue:Lt});else{var Zt=Xt.pthreads[M];if(!Zt)return;Zt.postMessage({cmd:"processProxyingQueue",queue:Lt})}return 1}function ZC(M,U,dt){return-1}function JC(){Qu("")}function ec(M){ec.shown||(ec.shown={}),ec.shown[M]||(ec.shown[M]=1,w&&(M="warning: "+M),X(M))}function QC(){w||b||ec("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function tv(){return Date.now()}function $g(){return 4294901760}function ev(){return $g()}var Yd;w?Yd=()=>{var M=process.hrtime();return M[0]*1e3+M[1]/1e6}:Yd=()=>performance.timeOrigin+performance.now();function rv(M,U,dt){n().copyWithin(M>>>0,U>>>0,U+dt>>>0)}function nv(){return w?gH().cpus().length:navigator.hardwareConcurrency}function ov(M){var U=t0(),dt=M();return Ug(U),dt}function Hl(M,U){var dt=arguments.length-2,Lt=arguments;return ov(()=>{for(var Zt=dt,Yt=Hg(Zt*8),yt=Yt>>3,$t=0;$t>>0]=nr}return r_(M,Zt,Yt,U)})}var Zd=[];function sv(M,U,dt){Zd.length=U;for(var Lt=dt>>3,Zt=0;Zt>>0];var Yt=M<0,yt=Yt?Ng[-M-1]:dv[M];return yt.apply(null,Zd)}function iv(M){try{return it.grow(M-ee.byteLength+65535>>>16),je(it.buffer),1}catch(U){}}function av(M){var U=n().length;if(M=M>>>0,M<=U)return!1;var dt=$g();if(M>dt)return!1;let Lt=(nr,ro)=>nr+(ro-nr%ro)%ro;for(var Zt=1;Zt<=4;Zt*=2){var Yt=U*(1+.2/Zt);Yt=Math.min(Yt,M+100663296);var yt=Math.min(dt,Lt(Math.max(M,Yt),65536)),$t=iv(yt);if($t)return!0}return!1}function lv(){throw"unwind"}function Rg(M){return I?Hl(4,1,M):52}function Fg(M,U,dt,Lt,Zt){return I?Hl(5,1,M,U,dt,Lt,Zt):70}var uv=[null,[],[]];function cv(M,U){var dt=uv[M];U===0||U===10?((M===1?K:X)(Ht(dt,0)),dt.length=0):dt.push(U)}function Og(M,U,dt,Lt){if(I)return Hl(6,1,M,U,dt,Lt);for(var Zt=0,Yt=0;Yt>>2],$t=i()[U+4>>>2];U+=8;for(var nr=0;nr<$t;nr++)cv(M,n()[yt+nr>>>0]);Zt+=$t}return i()[Lt>>>2]=Zt,0}function Pg(M){var U=l["_"+M];return U}function pv(M,U){e().set(M,U>>>0)}function mv(M,U,dt,Lt,Zt){var Yt={string:Mn=>{var Ep=0;if(Mn!=null&&Mn!==0){var l_=(Mn.length<<2)+1;Ep=Hg(l_),ge(Mn,Ep,l_)}return Ep},array:Mn=>{var Ep=Hg(Mn.length);return pv(Mn,Ep),Ep}};function yt(Mn){return U==="string"?qt(Mn):U==="boolean"?!!Mn:Mn}var $t=Pg(M),nr=[],ro=0;if(Lt)for(var ka=0;kayt==="number"||yt==="boolean"),Yt=U!=="string";return Yt&&Zt&&!Lt?Pg(M):function(){return mv(M,U,dt,arguments,Lt)}}Xt.init();var dv=[null,Tg,Eg,Ag,Rg,Fg,Og],Mg={__emscripten_init_main_thread_js:HC,__emscripten_thread_cleanup:qC,__pthread_create_js:Dg,_emscripten_default_pthread_stack_size:KC,_emscripten_get_now_is_monotonic:XC,_emscripten_notify_task_queue:YC,_emscripten_set_offscreencanvas_size:ZC,abort:JC,emscripten_check_blocking_allowed:QC,emscripten_date_now:tv,emscripten_get_heap_max:ev,emscripten_get_now:Yd,emscripten_memcpy_big:rv,emscripten_num_logical_cores:nv,emscripten_receive_on_main_thread_js:sv,emscripten_resize_heap:av,emscripten_unwind_to_js_event_loop:lv,exit:_g,fd_close:Rg,fd_seek:Fg,fd_write:Og,memory:it||l.wasmMemory},t_=OC(),hv=l.___wasm_call_ctors=function(){return(hv=l.___wasm_call_ctors=l.asm.__wasm_call_ctors).apply(null,arguments)},gv=l._init=function(){return(gv=l._init=l.asm.init).apply(null,arguments)},xv=l._init_with_threads_count=function(){return(xv=l._init_with_threads_count=l.asm.init_with_threads_count).apply(null,arguments)},yv=l._get_threads_count=function(){return(yv=l._get_threads_count=l.asm.get_threads_count).apply(null,arguments)},bv=l._register_tensor=function(){return(bv=l._register_tensor=l.asm.register_tensor).apply(null,arguments)},wv=l._dispose_data=function(){return(wv=l._dispose_data=l.asm.dispose_data).apply(null,arguments)},Iv=l._dispose=function(){return(Iv=l._dispose=l.asm.dispose).apply(null,arguments)},Cv=l._Abs=function(){return(Cv=l._Abs=l.asm.Abs).apply(null,arguments)},vv=l._Acos=function(){return(vv=l._Acos=l.asm.Acos).apply(null,arguments)},Sv=l._Acosh=function(){return(Sv=l._Acosh=l.asm.Acosh).apply(null,arguments)},Nv=l._Add=function(){return(Nv=l._Add=l.asm.Add).apply(null,arguments)},kv=l._AddN=function(){return(kv=l._AddN=l.asm.AddN).apply(null,arguments)},Tv=l._All=function(){return(Tv=l._All=l.asm.All).apply(null,arguments)},_v=l._Any=function(){return(_v=l._Any=l.asm.Any).apply(null,arguments)},Ev=l._ArgMax=function(){return(Ev=l._ArgMax=l.asm.ArgMax).apply(null,arguments)},Av=l._ArgMin=function(){return(Av=l._ArgMin=l.asm.ArgMin).apply(null,arguments)},Dv=l._Asin=function(){return(Dv=l._Asin=l.asm.Asin).apply(null,arguments)},$v=l._Asinh=function(){return($v=l._Asinh=l.asm.Asinh).apply(null,arguments)},Rv=l._Atan=function(){return(Rv=l._Atan=l.asm.Atan).apply(null,arguments)},Fv=l._Atan2=function(){return(Fv=l._Atan2=l.asm.Atan2).apply(null,arguments)},Ov=l._Atanh=function(){return(Ov=l._Atanh=l.asm.Atanh).apply(null,arguments)},Pv=l._AvgPool=function(){return(Pv=l._AvgPool=l.asm.AvgPool).apply(null,arguments)},Mv=l._AvgPool3D=function(){return(Mv=l._AvgPool3D=l.asm.AvgPool3D).apply(null,arguments)},Lv=l._AvgPool3DGrad=function(){return(Lv=l._AvgPool3DGrad=l.asm.AvgPool3DGrad).apply(null,arguments)},zv=l._BatchMatMul=function(){return(zv=l._BatchMatMul=l.asm.BatchMatMul).apply(null,arguments)},Bv=l._Bincount=function(){return(Bv=l._Bincount=l.asm.Bincount).apply(null,arguments)},Vv=l._Ceil=function(){return(Vv=l._Ceil=l.asm.Ceil).apply(null,arguments)},Gv=l._ClipByValue=function(){return(Gv=l._ClipByValue=l.asm.ClipByValue).apply(null,arguments)},Wv=l._Conv2D=function(){return(Wv=l._Conv2D=l.asm.Conv2D).apply(null,arguments)},Uv=l._Conv2DBackpropInput=function(){return(Uv=l._Conv2DBackpropInput=l.asm.Conv2DBackpropInput).apply(null,arguments)},Hv=l._Conv3D=function(){return(Hv=l._Conv3D=l.asm.Conv3D).apply(null,arguments)},qv=l._Conv3DBackpropFilterV2=function(){return(qv=l._Conv3DBackpropFilterV2=l.asm.Conv3DBackpropFilterV2).apply(null,arguments)},Kv=l._Conv3DBackpropInputV2=function(){return(Kv=l._Conv3DBackpropInputV2=l.asm.Conv3DBackpropInputV2).apply(null,arguments)},jv=l._Cos=function(){return(jv=l._Cos=l.asm.Cos).apply(null,arguments)},Xv=l._Cosh=function(){return(Xv=l._Cosh=l.asm.Cosh).apply(null,arguments)},Yv=l._CropAndResize=function(){return(Yv=l._CropAndResize=l.asm.CropAndResize).apply(null,arguments)},Zv=l._Cumprod=function(){return(Zv=l._Cumprod=l.asm.Cumprod).apply(null,arguments)},Jv=l._Cumsum=function(){return(Jv=l._Cumsum=l.asm.Cumsum).apply(null,arguments)},Qv=l._DenseBincount=function(){return(Qv=l._DenseBincount=l.asm.DenseBincount).apply(null,arguments)},tS=l._DepthToSpace=function(){return(tS=l._DepthToSpace=l.asm.DepthToSpace).apply(null,arguments)},eS=l._DepthwiseConv2dNative=function(){return(eS=l._DepthwiseConv2dNative=l.asm.DepthwiseConv2dNative).apply(null,arguments)},rS=l._Diag=function(){return(rS=l._Diag=l.asm.Diag).apply(null,arguments)},nS=l._Dilation2D=function(){return(nS=l._Dilation2D=l.asm.Dilation2D).apply(null,arguments)},oS=l._Dilation2DBackpropFilter=function(){return(oS=l._Dilation2DBackpropFilter=l.asm.Dilation2DBackpropFilter).apply(null,arguments)},sS=l._Dilation2DBackpropInput=function(){return(sS=l._Dilation2DBackpropInput=l.asm.Dilation2DBackpropInput).apply(null,arguments)},iS=l._Elu=function(){return(iS=l._Elu=l.asm.Elu).apply(null,arguments)},aS=l._EluGrad=function(){return(aS=l._EluGrad=l.asm.EluGrad).apply(null,arguments)},lS=l._Equal=function(){return(lS=l._Equal=l.asm.Equal).apply(null,arguments)},uS=l._Exp=function(){return(uS=l._Exp=l.asm.Exp).apply(null,arguments)},cS=l._Expm1=function(){return(cS=l._Expm1=l.asm.Expm1).apply(null,arguments)},pS=l._FlipLeftRight=function(){return(pS=l._FlipLeftRight=l.asm.FlipLeftRight).apply(null,arguments)},mS=l._Floor=function(){return(mS=l._Floor=l.asm.Floor).apply(null,arguments)},fS=l._FloorDiv=function(){return(fS=l._FloorDiv=l.asm.FloorDiv).apply(null,arguments)},dS=l._FusedBatchNorm=function(){return(dS=l._FusedBatchNorm=l.asm.FusedBatchNorm).apply(null,arguments)},hS=l._FusedConv2D=function(){return(hS=l._FusedConv2D=l.asm.FusedConv2D).apply(null,arguments)},gS=l._FusedDepthwiseConv2D=function(){return(gS=l._FusedDepthwiseConv2D=l.asm.FusedDepthwiseConv2D).apply(null,arguments)},xS=l._Gather=function(){return(xS=l._Gather=l.asm.Gather).apply(null,arguments)},yS=l._GatherNd=function(){return(yS=l._GatherNd=l.asm.GatherNd).apply(null,arguments)},bS=l._Greater=function(){return(bS=l._Greater=l.asm.Greater).apply(null,arguments)},wS=l._GreaterEqual=function(){return(wS=l._GreaterEqual=l.asm.GreaterEqual).apply(null,arguments)},IS=l._IsFinite=function(){return(IS=l._IsFinite=l.asm.IsFinite).apply(null,arguments)},CS=l._IsInf=function(){return(CS=l._IsInf=l.asm.IsInf).apply(null,arguments)},vS=l._IsNan=function(){return(vS=l._IsNan=l.asm.IsNan).apply(null,arguments)},SS=l._LRN=function(){return(SS=l._LRN=l.asm.LRN).apply(null,arguments)},NS=l._LRNGrad=function(){return(NS=l._LRNGrad=l.asm.LRNGrad).apply(null,arguments)},kS=l._LeakyRelu=function(){return(kS=l._LeakyRelu=l.asm.LeakyRelu).apply(null,arguments)},TS=l._Less=function(){return(TS=l._Less=l.asm.Less).apply(null,arguments)},_S=l._LessEqual=function(){return(_S=l._LessEqual=l.asm.LessEqual).apply(null,arguments)},ES=l._LinSpace=function(){return(ES=l._LinSpace=l.asm.LinSpace).apply(null,arguments)},AS=l._Log=function(){return(AS=l._Log=l.asm.Log).apply(null,arguments)},DS=l._Log1p=function(){return(DS=l._Log1p=l.asm.Log1p).apply(null,arguments)},$S=l._LogicalAnd=function(){return($S=l._LogicalAnd=l.asm.LogicalAnd).apply(null,arguments)},RS=l._LogicalNot=function(){return(RS=l._LogicalNot=l.asm.LogicalNot).apply(null,arguments)},FS=l._LogicalOr=function(){return(FS=l._LogicalOr=l.asm.LogicalOr).apply(null,arguments)},OS=l._LogicalXor=function(){return(OS=l._LogicalXor=l.asm.LogicalXor).apply(null,arguments)},PS=l._Max=function(){return(PS=l._Max=l.asm.Max).apply(null,arguments)},MS=l._MaxPool=function(){return(MS=l._MaxPool=l.asm.MaxPool).apply(null,arguments)},LS=l._MaxPool3D=function(){return(LS=l._MaxPool3D=l.asm.MaxPool3D).apply(null,arguments)},zS=l._MaxPool3DGrad=function(){return(zS=l._MaxPool3DGrad=l.asm.MaxPool3DGrad).apply(null,arguments)},BS=l._Maximum=function(){return(BS=l._Maximum=l.asm.Maximum).apply(null,arguments)},VS=l._Mean=function(){return(VS=l._Mean=l.asm.Mean).apply(null,arguments)},GS=l._Min=function(){return(GS=l._Min=l.asm.Min).apply(null,arguments)},WS=l._Minimum=function(){return(WS=l._Minimum=l.asm.Minimum).apply(null,arguments)},US=l._MirrorPad=function(){return(US=l._MirrorPad=l.asm.MirrorPad).apply(null,arguments)},HS=l._Multinomial=function(){return(HS=l._Multinomial=l.asm.Multinomial).apply(null,arguments)},qS=l._Multiply=function(){return(qS=l._Multiply=l.asm.Multiply).apply(null,arguments)},KS=l._Neg=function(){return(KS=l._Neg=l.asm.Neg).apply(null,arguments)},jS=l._NonMaxSuppressionV3=function(){return(jS=l._NonMaxSuppressionV3=l.asm.NonMaxSuppressionV3).apply(null,arguments)},Lg=l._NonMaxSuppressionV4=function(){return(Lg=l._NonMaxSuppressionV4=l.asm.NonMaxSuppressionV4).apply(null,arguments)},zg=l._NonMaxSuppressionV5=function(){return(zg=l._NonMaxSuppressionV5=l.asm.NonMaxSuppressionV5).apply(null,arguments)},Jd=l._NotEqual=function(){return(Jd=l._NotEqual=l.asm.NotEqual).apply(null,arguments)},XS=l._OneHot=function(){return(XS=l._OneHot=l.asm.OneHot).apply(null,arguments)},YS=l._PadV2=function(){return(YS=l._PadV2=l.asm.PadV2).apply(null,arguments)},kp=l._Pow=function(){return(kp=l._Pow=l.asm.Pow).apply(null,arguments)},Bg=l._Prelu=function(){return(Bg=l._Prelu=l.asm.Prelu).apply(null,arguments)},Tp=l._Prod=function(){return(Tp=l._Prod=l.asm.Prod).apply(null,arguments)},_p=l._RealDiv=function(){return(_p=l._RealDiv=l.asm.RealDiv).apply(null,arguments)},ZS=l._Reciprocal=function(){return(ZS=l._Reciprocal=l.asm.Reciprocal).apply(null,arguments)},j=l._Relu=function(){return(j=l._Relu=l.asm.Relu).apply(null,arguments)},ut=l._Relu6=function(){return(ut=l._Relu6=l.asm.Relu6).apply(null,arguments)},Ft=l._ResizeBilinear=function(){return(Ft=l._ResizeBilinear=l.asm.ResizeBilinear).apply(null,arguments)},pe=l._ResizeBilinearGrad=function(){return(pe=l._ResizeBilinearGrad=l.asm.ResizeBilinearGrad).apply(null,arguments)},Xe=l._ResizeNearestNeighbor=function(){return(Xe=l._ResizeNearestNeighbor=l.asm.ResizeNearestNeighbor).apply(null,arguments)},Ye=l._ResizeNearestNeighborGrad=function(){return(Ye=l._ResizeNearestNeighborGrad=l.asm.ResizeNearestNeighborGrad).apply(null,arguments)},oe=l._Reverse=function(){return(oe=l._Reverse=l.asm.Reverse).apply(null,arguments)},re=l._RotateWithOffset=function(){return(re=l._RotateWithOffset=l.asm.RotateWithOffset).apply(null,arguments)},br=l._Round=function(){return(br=l._Round=l.asm.Round).apply(null,arguments)},eo=l._Rsqrt=function(){return(eo=l._Rsqrt=l.asm.Rsqrt).apply(null,arguments)},Na=l._ScatterNd=function(){return(Na=l._ScatterNd=l.asm.ScatterNd).apply(null,arguments)},Vg=l._SearchSorted=function(){return(Vg=l._SearchSorted=l.asm.SearchSorted).apply(null,arguments)},Qd=l._SelectV2=function(){return(Qd=l._SelectV2=l.asm.SelectV2).apply(null,arguments)},JS=l._Selu=function(){return(JS=l._Selu=l.asm.Selu).apply(null,arguments)},on=l._Sigmoid=function(){return(on=l._Sigmoid=l.asm.Sigmoid).apply(null,arguments)},ql=l._Sign=function(){return(ql=l._Sign=l.asm.Sign).apply(null,arguments)},Gg=l._Sin=function(){return(Gg=l._Sin=l.asm.Sin).apply(null,arguments)},TH=l._Softmax=function(){return(TH=l._Softmax=l.asm.Softmax).apply(null,arguments)},_H=l._Softplus=function(){return(_H=l._Softplus=l.asm.Softplus).apply(null,arguments)},EH=l._SparseFillEmptyRows=function(){return(EH=l._SparseFillEmptyRows=l.asm.SparseFillEmptyRows).apply(null,arguments)},AH=l._SparseReshape=function(){return(AH=l._SparseReshape=l.asm.SparseReshape).apply(null,arguments)},DH=l._SparseSegmentReduction=function(){return(DH=l._SparseSegmentReduction=l.asm.SparseSegmentReduction).apply(null,arguments)},$H=l._SparseToDense=function(){return($H=l._SparseToDense=l.asm.SparseToDense).apply(null,arguments)},RH=l._Sqrt=function(){return(RH=l._Sqrt=l.asm.Sqrt).apply(null,arguments)},FH=l._Square=function(){return(FH=l._Square=l.asm.Square).apply(null,arguments)},OH=l._SquaredDifference=function(){return(OH=l._SquaredDifference=l.asm.SquaredDifference).apply(null,arguments)},PH=l._Step=function(){return(PH=l._Step=l.asm.Step).apply(null,arguments)},MH=l._StridedSlice=function(){return(MH=l._StridedSlice=l.asm.StridedSlice).apply(null,arguments)},LH=l._Sub=function(){return(LH=l._Sub=l.asm.Sub).apply(null,arguments)},zH=l._Sum=function(){return(zH=l._Sum=l.asm.Sum).apply(null,arguments)},BH=l._Tan=function(){return(BH=l._Tan=l.asm.Tan).apply(null,arguments)},VH=l._Tanh=function(){return(VH=l._Tanh=l.asm.Tanh).apply(null,arguments)},GH=l._TensorScatterUpdate=function(){return(GH=l._TensorScatterUpdate=l.asm.TensorScatterUpdate).apply(null,arguments)},WH=l._Tile=function(){return(WH=l._Tile=l.asm.Tile).apply(null,arguments)},UH=l._TopK=function(){return(UH=l._TopK=l.asm.TopK).apply(null,arguments)},HH=l._Transform=function(){return(HH=l._Transform=l.asm.Transform).apply(null,arguments)},qH=l._Transpose=function(){return(qH=l._Transpose=l.asm.Transpose).apply(null,arguments)},KH=l.__FusedMatMul=function(){return(KH=l.__FusedMatMul=l.asm._FusedMatMul).apply(null,arguments)},jH=l._malloc=function(){return(jH=l._malloc=l.asm.malloc).apply(null,arguments)},XH=l._free=function(){return(XH=l._free=l.asm.free).apply(null,arguments)},YH=l.__emscripten_tls_init=function(){return(YH=l.__emscripten_tls_init=l.asm._emscripten_tls_init).apply(null,arguments)},Wg=l._pthread_self=function(){return(Wg=l._pthread_self=l.asm.pthread_self).apply(null,arguments)},ZH=l.___errno_location=function(){return(ZH=l.___errno_location=l.asm.__errno_location).apply(null,arguments)},e_=l.__emscripten_thread_init=function(){return(e_=l.__emscripten_thread_init=l.asm._emscripten_thread_init).apply(null,arguments)},JH=l.__emscripten_thread_crashed=function(){return(JH=l.__emscripten_thread_crashed=l.asm._emscripten_thread_crashed).apply(null,arguments)},QH=l._emscripten_main_thread_process_queued_calls=function(){return(QH=l._emscripten_main_thread_process_queued_calls=l.asm.emscripten_main_thread_process_queued_calls).apply(null,arguments)},tq=l._emscripten_main_browser_thread_id=function(){return(tq=l._emscripten_main_browser_thread_id=l.asm.emscripten_main_browser_thread_id).apply(null,arguments)},r_=l._emscripten_run_in_main_runtime_thread_js=function(){return(r_=l._emscripten_run_in_main_runtime_thread_js=l.asm.emscripten_run_in_main_runtime_thread_js).apply(null,arguments)},eq=l._emscripten_dispatch_to_thread_=function(){return(eq=l._emscripten_dispatch_to_thread_=l.asm.emscripten_dispatch_to_thread_).apply(null,arguments)},n_=l.__emscripten_proxy_execute_task_queue=function(){return(n_=l.__emscripten_proxy_execute_task_queue=l.asm._emscripten_proxy_execute_task_queue).apply(null,arguments)},QS=l.__emscripten_thread_free_data=function(){return(QS=l.__emscripten_thread_free_data=l.asm._emscripten_thread_free_data).apply(null,arguments)},o_=l.__emscripten_thread_exit=function(){return(o_=l.__emscripten_thread_exit=l.asm._emscripten_thread_exit).apply(null,arguments)},s_=l._emscripten_stack_set_limits=function(){return(s_=l._emscripten_stack_set_limits=l.asm.emscripten_stack_set_limits).apply(null,arguments)},t0=l.stackSave=function(){return(t0=l.stackSave=l.asm.stackSave).apply(null,arguments)},Ug=l.stackRestore=function(){return(Ug=l.stackRestore=l.asm.stackRestore).apply(null,arguments)},Hg=l.stackAlloc=function(){return(Hg=l.stackAlloc=l.asm.stackAlloc).apply(null,arguments)},rq=l.dynCall_iijjiiii=function(){return(rq=l.dynCall_iijjiiii=l.asm.dynCall_iijjiiii).apply(null,arguments)},nq=l.dynCall_jiji=function(){return(nq=l.dynCall_jiji=l.asm.dynCall_jiji).apply(null,arguments)};l.keepRuntimeAlive=Go,l.wasmMemory=it,l.cwrap=fv,l.ExitStatus=tc,l.PThread=Xt;var qg;Sa=function M(){qg||i_(),qg||(Sa=M)};function i_(M){if(M=M||d,Ul>0)return;if(I){c(l),Er(),startWorker(l);return}if(Ni(),Ul>0)return;function U(){qg||(qg=!0,l.calledRun=!0,!gt&&(Er(),c(l),l.onRuntimeInitialized&&l.onRuntimeInitialized(),va()))}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()();i_();var Kg;m&&(Kg={uncaughtException:process.listeners("uncaughtException").filter(function(M){return!m.uncaughtException.indexOf(M)>-1}),unhandledRejection:process.listeners("unhandledRejection").filter(function(M){return!m.unhandledRejection.indexOf(M)>-1})});var jg;if(typeof WasmBackendModule!="undefined")jg=WasmBackendModule;else if(typeof t!="undefined")jg=t;else throw new Error("Could not find wasm module in post.js");if(Kg){var oq=jg._dispose;jg._dispose=function(){oq(),Kg.uncaughtException.forEach(function(M){process.removeListener("uncaughtException",M)}),Kg.unhandledRejection.forEach(function(M){process.removeListener("unhandledRejection",M)})}}return t.ready}})();typeof EC=="object"&&typeof U1=="object"?U1.exports=W1:typeof define=="function"&&define.amd?define([],function(){return W1}):typeof EC=="object"&&(EC.WasmBackendModuleThreadedSimd=W1)});var bH=wr((der,yH)=>{yH.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")+"//# sourceURL="+f)},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.startWorker=instance=>{Module=instance;postMessage({"cmd":"loaded"})};self.onmessage=e=>{try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;for(const handler of e.data.handlers){Module[handler]=function(){postMessage({cmd:"callHandler",handler:handler,args:[...arguments]})}}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)}else if(e.data.cmd==="run"){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 wH=wr((AC,q1)=>{var H1=(()=>{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(j,ut){n=j,o=ut});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=(j,ut)=>{throw ut},c=typeof window=="object",p=typeof importScripts=="function",m=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",f="";function d(j){return e.locateFile?e.locateFile(j,f):f+j}var h,g,x,b;function w(j){if(j instanceof vp)return;A("exiting due to exception: "+j)}if(m){var I=pw(),N=G1();p?f=N.dirname(f)+"/":f=__dirname+"/",h=(j,ut)=>(j=Ni(j)?new URL(j):N.normalize(j),I.readFileSync(j,ut?void 0:"utf8")),x=j=>{var ut=h(j,!0);return ut.buffer||(ut=new Uint8Array(ut)),ut},g=(j,ut,Ft)=>{j=Ni(j)?new URL(j):N.normalize(j),I.readFile(j,function(pe,Xe){pe?Ft(pe):ut(Xe.buffer)})},process.argv.length>1&&(u=process.argv[1].replace(/\\/g,"/")),a=process.argv.slice(2),process.on("uncaughtException",function(j){if(!(j instanceof vp))throw j}),process.on("unhandledRejection",function(j){throw j}),l=(j,ut)=>{if(fe())throw process.exitCode=j,ut;w(ut),process.exit(j)},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=j=>{var ut=new XMLHttpRequest;return ut.open("GET",j,!1),ut.send(null),ut.responseText},p&&(x=j=>{var ut=new XMLHttpRequest;return ut.open("GET",j,!1),ut.responseType="arraybuffer",ut.send(null),new Uint8Array(ut.response)}),g=(j,ut,Ft)=>{var pe=new XMLHttpRequest;pe.open("GET",j,!0),pe.responseType="arraybuffer",pe.onload=()=>{if(pe.status==200||pe.status==0&&pe.response){ut(pe.response);return}Ft()},pe.onerror=Ft,pe.send(null)},b=j=>document.title=j);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 D=4,F;e.wasmBinary&&(F=e.wasmBinary);var P=e.noExitRuntime||!0;typeof WebAssembly!="object"&&Jr("no native wasm support detected");var V,G=!1,W;function q(j,ut){j||Jr(ut)}var H=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function K(j,ut,Ft){ut>>>=0;for(var pe=ut+Ft,Xe=ut;j[Xe]&&!(Xe>=pe);)++Xe;if(Xe-ut>16&&j.buffer&&H)return H.decode(j.subarray(ut,Xe));for(var Ye="";ut>10,56320|eo&1023)}}return Ye}function X(j,ut){return j>>>=0,j?K(at,j,ut):""}function Z(j,ut,Ft,pe){if(Ft>>>=0,!(pe>0))return 0;for(var Xe=Ft,Ye=Ft+pe-1,oe=0;oe=55296&&re<=57343){var br=j.charCodeAt(++oe);re=65536+((re&1023)<<10)|br&1023}if(re<=127){if(Ft>=Ye)break;ut[Ft++>>>0]=re}else if(re<=2047){if(Ft+1>=Ye)break;ut[Ft++>>>0]=192|re>>6,ut[Ft++>>>0]=128|re&63}else if(re<=65535){if(Ft+2>=Ye)break;ut[Ft++>>>0]=224|re>>12,ut[Ft++>>>0]=128|re>>6&63,ut[Ft++>>>0]=128|re&63}else{if(Ft+3>=Ye)break;ut[Ft++>>>0]=240|re>>18,ut[Ft++>>>0]=128|re>>12&63,ut[Ft++>>>0]=128|re>>6&63,ut[Ft++>>>0]=128|re&63}}return ut[Ft>>>0]=0,Ft-Xe}function et(j,ut,Ft){return Z(j,at,ut,Ft)}var nt,st,at,ot,it,mt,gt,It,Rt;function Dt(j){nt=j,e.HEAP8=st=new Int8Array(j),e.HEAP16=ot=new Int16Array(j),e.HEAP32=mt=new Int32Array(j),e.HEAPU8=at=new Uint8Array(j),e.HEAPU16=it=new Uint16Array(j),e.HEAPU32=gt=new Uint32Array(j),e.HEAPF32=It=new Float32Array(j),e.HEAPF64=Rt=new Float64Array(j)}var Ht=e.INITIAL_MEMORY||16777216,qt,ce=[],ge=[],ee=[],xe=!1;function fe(){return P}function Ae(){if(e.preRun)for(typeof e.preRun=="function"&&(e.preRun=[e.preRun]);e.preRun.length;)lr(e.preRun.shift());Sa(ce)}function De(){xe=!0,Sa(ge)}function Pn(){if(e.postRun)for(typeof e.postRun=="function"&&(e.postRun=[e.postRun]);e.postRun.length;)Br(e.postRun.shift());Sa(ee)}function lr(j){ce.unshift(j)}function Jn(j){ge.unshift(j)}function Br(j){ee.unshift(j)}var je=0,Vr=null,Gr=null;function Qn(j){je++,e.monitorRunDependencies&&e.monitorRunDependencies(je)}function to(j){if(je--,e.monitorRunDependencies&&e.monitorRunDependencies(je),je==0&&(Vr!==null&&(clearInterval(Vr),Vr=null),Gr)){var ut=Gr;Gr=null,ut()}}function Jr(j){e.onAbort&&e.onAbort(j),j="Aborted("+j+")",A(j),G=!0,W=1,j+=". Build with -sASSERTIONS for more info.";var ut=new WebAssembly.RuntimeError(j);throw o(ut),ut}var Ca="data:application/octet-stream;base64,";function Go(j){return j.startsWith(Ca)}function Ni(j){return j.startsWith("file://")}var Er;Er="tfjs-backend-wasm.wasm",Go(Er)||(Er=d(Er));function va(j){try{if(j==Er&&F)return new Uint8Array(F);if(x)return x(j);throw"both async and sync fetching of the wasm failed"}catch(ut){Jr(ut)}}function Hd(){if(!F&&(c||p)){if(typeof fetch=="function"&&!Ni(Er))return fetch(Er,{credentials:"same-origin"}).then(function(j){if(!j.ok)throw"failed to load wasm binary file at '"+Er+"'";return j.arrayBuffer()}).catch(function(){return va(Er)});if(g)return new Promise(function(j,ut){g(Er,function(Ft){j(new Uint8Array(Ft))},ut)})}return Promise.resolve().then(function(){return va(Er)})}function qd(){var j={env:Kd,wasi_snapshot_preview1:Kd};function ut(oe,re){var br=oe.exports;e.asm=br,V=e.asm.memory,Dt(V.buffer),qt=e.asm.__indirect_function_table,Jn(e.asm.__wasm_call_ctors),to("wasm-instantiate")}Qn("wasm-instantiate");function Ft(oe){ut(oe.instance)}function pe(oe){return Hd().then(function(re){return WebAssembly.instantiate(re,j)}).then(function(re){return re}).then(oe,function(re){A("failed to asynchronously prepare wasm: "+re),Jr(re)})}function Xe(){return!F&&typeof WebAssembly.instantiateStreaming=="function"&&!Go(Er)&&!Ni(Er)&&!m&&typeof fetch=="function"?fetch(Er,{credentials:"same-origin"}).then(function(oe){var re=WebAssembly.instantiateStreaming(oe,j);return re.then(Ft,function(br){return A("wasm streaming compile failed: "+br),A("falling back to ArrayBuffer instantiation"),pe(Ft)})}):pe(Ft)}if(e.instantiateWasm)try{var Ye=e.instantiateWasm(j,ut);return Ye}catch(oe){A("Module.instantiateWasm callback failed with error: "+oe),o(oe)}return Xe().catch(o),{}}var Z1,Ul;function vp(j){this.name="ExitStatus",this.message="Program terminated with exit("+j+")",this.status=j}function Sa(j){for(;j.length>0;)j.shift()(e)}function $C(){Jr("")}function Cg(){return 4294901760}function Qu(){return Cg()}function RC(j,ut,Ft){at.copyWithin(j>>>0,ut>>>0,ut+Ft>>>0)}function vg(j){try{return V.grow(j-nt.byteLength+65535>>>16),Dt(V.buffer),1}catch(ut){}}function Sp(j){var ut=at.length;j=j>>>0;var Ft=Cg();if(j>Ft)return!1;let pe=(br,eo)=>br+(eo-br%eo)%eo;for(var Xe=1;Xe<=4;Xe*=2){var Ye=ut*(1+.2/Xe);Ye=Math.min(Ye,j+100663296);var oe=Math.min(Ft,pe(Math.max(j,Ye),65536)),re=vg(oe);if(re)return!0}return!1}var Qr={varargs:void 0,get:function(){Qr.varargs+=4;var j=mt[Qr.varargs-4>>>2];return j},getStr:function(j){var ut=X(j);return ut}};function Sg(j){return 52}function FC(j,ut,Ft,pe,Xe){return 70}var OC=[null,[],[]];function J1(j,ut){var Ft=OC[j];ut===0||ut===10?((j===1?E:A)(K(Ft,0)),Ft.length=0):Ft.push(ut)}function Q1(j,ut,Ft,pe){for(var Xe=0,Ye=0;Ye>>2],re=gt[ut+4>>>2];ut+=8;for(var br=0;br>>0]);Xe+=re}return gt[pe>>>2]=Xe,0}function Ng(j){var ut=e["_"+j];return ut}function tc(j,ut){st.set(j,ut>>>0)}function PC(j,ut,Ft,pe,Xe){var Ye={string:on=>{var ql=0;if(on!=null&&on!==0){var Gg=(on.length<<2)+1;ql=Jd(Gg),et(on,ql,Gg)}return ql},array:on=>{var ql=Jd(on.length);return tc(on,ql),ql}};function oe(on){return ut==="string"?X(on):ut==="boolean"?!!on:on}var re=Ng(j),br=[],eo=0;if(pe)for(var Na=0;Naoe==="number"||oe==="boolean"),Ye=ut!=="string";return Ye&&Xe&&!pe?Ng(j):function(){return PC(j,ut,Ft,arguments,pe)}}var Kd={abort:$C,emscripten_get_heap_max:Qu,emscripten_memcpy_big:RC,emscripten_resize_heap:Sp,fd_close:Sg,fd_seek:FC,fd_write:Q1},LC=qd(),kg=e.___wasm_call_ctors=function(){return(kg=e.___wasm_call_ctors=e.asm.__wasm_call_ctors).apply(null,arguments)},Tg=e._init=function(){return(Tg=e._init=e.asm.init).apply(null,arguments)},zC=e._init_with_threads_count=function(){return(zC=e._init_with_threads_count=e.asm.init_with_threads_count).apply(null,arguments)},_g=e._get_threads_count=function(){return(_g=e._get_threads_count=e.asm.get_threads_count).apply(null,arguments)},BC=e._register_tensor=function(){return(BC=e._register_tensor=e.asm.register_tensor).apply(null,arguments)},Xt=e._dispose_data=function(){return(Xt=e._dispose_data=e.asm.dispose_data).apply(null,arguments)},jd=e._dispose=function(){return(jd=e._dispose=e.asm.dispose).apply(null,arguments)},VC=e._Abs=function(){return(VC=e._Abs=e.asm.Abs).apply(null,arguments)},Eg=e._Acos=function(){return(Eg=e._Acos=e.asm.Acos).apply(null,arguments)},Np=e._Acosh=function(){return(Np=e._Acosh=e.asm.Acosh).apply(null,arguments)},GC=e._Add=function(){return(GC=e._Add=e.asm.Add).apply(null,arguments)},WC=e._AddN=function(){return(WC=e._AddN=e.asm.AddN).apply(null,arguments)},UC=e._All=function(){return(UC=e._All=e.asm.All).apply(null,arguments)},HC=e._Any=function(){return(HC=e._Any=e.asm.Any).apply(null,arguments)},qC=e._ArgMax=function(){return(qC=e._ArgMax=e.asm.ArgMax).apply(null,arguments)},Ag=e._ArgMin=function(){return(Ag=e._ArgMin=e.asm.ArgMin).apply(null,arguments)},Dg=e._Asin=function(){return(Dg=e._Asin=e.asm.Asin).apply(null,arguments)},KC=e._Asinh=function(){return(KC=e._Asinh=e.asm.Asinh).apply(null,arguments)},jC=e._Atan=function(){return(jC=e._Atan=e.asm.Atan).apply(null,arguments)},XC=e._Atan2=function(){return(XC=e._Atan2=e.asm.Atan2).apply(null,arguments)},Xd=e._Atanh=function(){return(Xd=e._Atanh=e.asm.Atanh).apply(null,arguments)},YC=e._AvgPool=function(){return(YC=e._AvgPool=e.asm.AvgPool).apply(null,arguments)},ZC=e._AvgPool3D=function(){return(ZC=e._AvgPool3D=e.asm.AvgPool3D).apply(null,arguments)},JC=e._AvgPool3DGrad=function(){return(JC=e._AvgPool3DGrad=e.asm.AvgPool3DGrad).apply(null,arguments)},ec=e._BatchMatMul=function(){return(ec=e._BatchMatMul=e.asm.BatchMatMul).apply(null,arguments)},QC=e._Bincount=function(){return(QC=e._Bincount=e.asm.Bincount).apply(null,arguments)},tv=e._Ceil=function(){return(tv=e._Ceil=e.asm.Ceil).apply(null,arguments)},$g=e._ClipByValue=function(){return($g=e._ClipByValue=e.asm.ClipByValue).apply(null,arguments)},ev=e._Conv2D=function(){return(ev=e._Conv2D=e.asm.Conv2D).apply(null,arguments)},Yd=e._Conv2DBackpropInput=function(){return(Yd=e._Conv2DBackpropInput=e.asm.Conv2DBackpropInput).apply(null,arguments)},rv=e._Conv3D=function(){return(rv=e._Conv3D=e.asm.Conv3D).apply(null,arguments)},nv=e._Conv3DBackpropFilterV2=function(){return(nv=e._Conv3DBackpropFilterV2=e.asm.Conv3DBackpropFilterV2).apply(null,arguments)},ov=e._Conv3DBackpropInputV2=function(){return(ov=e._Conv3DBackpropInputV2=e.asm.Conv3DBackpropInputV2).apply(null,arguments)},Hl=e._Cos=function(){return(Hl=e._Cos=e.asm.Cos).apply(null,arguments)},Zd=e._Cosh=function(){return(Zd=e._Cosh=e.asm.Cosh).apply(null,arguments)},sv=e._CropAndResize=function(){return(sv=e._CropAndResize=e.asm.CropAndResize).apply(null,arguments)},iv=e._Cumprod=function(){return(iv=e._Cumprod=e.asm.Cumprod).apply(null,arguments)},av=e._Cumsum=function(){return(av=e._Cumsum=e.asm.Cumsum).apply(null,arguments)},lv=e._DenseBincount=function(){return(lv=e._DenseBincount=e.asm.DenseBincount).apply(null,arguments)},Rg=e._DepthToSpace=function(){return(Rg=e._DepthToSpace=e.asm.DepthToSpace).apply(null,arguments)},Fg=e._DepthwiseConv2dNative=function(){return(Fg=e._DepthwiseConv2dNative=e.asm.DepthwiseConv2dNative).apply(null,arguments)},uv=e._Diag=function(){return(uv=e._Diag=e.asm.Diag).apply(null,arguments)},cv=e._Dilation2D=function(){return(cv=e._Dilation2D=e.asm.Dilation2D).apply(null,arguments)},Og=e._Dilation2DBackpropFilter=function(){return(Og=e._Dilation2DBackpropFilter=e.asm.Dilation2DBackpropFilter).apply(null,arguments)},Pg=e._Dilation2DBackpropInput=function(){return(Pg=e._Dilation2DBackpropInput=e.asm.Dilation2DBackpropInput).apply(null,arguments)},pv=e._Elu=function(){return(pv=e._Elu=e.asm.Elu).apply(null,arguments)},mv=e._EluGrad=function(){return(mv=e._EluGrad=e.asm.EluGrad).apply(null,arguments)},fv=e._Equal=function(){return(fv=e._Equal=e.asm.Equal).apply(null,arguments)},dv=e._Exp=function(){return(dv=e._Exp=e.asm.Exp).apply(null,arguments)},Mg=e._Expm1=function(){return(Mg=e._Expm1=e.asm.Expm1).apply(null,arguments)},t_=e._FlipLeftRight=function(){return(t_=e._FlipLeftRight=e.asm.FlipLeftRight).apply(null,arguments)},hv=e._Floor=function(){return(hv=e._Floor=e.asm.Floor).apply(null,arguments)},gv=e._FloorDiv=function(){return(gv=e._FloorDiv=e.asm.FloorDiv).apply(null,arguments)},xv=e._FusedBatchNorm=function(){return(xv=e._FusedBatchNorm=e.asm.FusedBatchNorm).apply(null,arguments)},yv=e._FusedConv2D=function(){return(yv=e._FusedConv2D=e.asm.FusedConv2D).apply(null,arguments)},bv=e._FusedDepthwiseConv2D=function(){return(bv=e._FusedDepthwiseConv2D=e.asm.FusedDepthwiseConv2D).apply(null,arguments)},wv=e._Gather=function(){return(wv=e._Gather=e.asm.Gather).apply(null,arguments)},Iv=e._GatherNd=function(){return(Iv=e._GatherNd=e.asm.GatherNd).apply(null,arguments)},Cv=e._Greater=function(){return(Cv=e._Greater=e.asm.Greater).apply(null,arguments)},vv=e._GreaterEqual=function(){return(vv=e._GreaterEqual=e.asm.GreaterEqual).apply(null,arguments)},Sv=e._IsFinite=function(){return(Sv=e._IsFinite=e.asm.IsFinite).apply(null,arguments)},Nv=e._IsInf=function(){return(Nv=e._IsInf=e.asm.IsInf).apply(null,arguments)},kv=e._IsNan=function(){return(kv=e._IsNan=e.asm.IsNan).apply(null,arguments)},Tv=e._LRN=function(){return(Tv=e._LRN=e.asm.LRN).apply(null,arguments)},_v=e._LRNGrad=function(){return(_v=e._LRNGrad=e.asm.LRNGrad).apply(null,arguments)},Ev=e._LeakyRelu=function(){return(Ev=e._LeakyRelu=e.asm.LeakyRelu).apply(null,arguments)},Av=e._Less=function(){return(Av=e._Less=e.asm.Less).apply(null,arguments)},Dv=e._LessEqual=function(){return(Dv=e._LessEqual=e.asm.LessEqual).apply(null,arguments)},$v=e._LinSpace=function(){return($v=e._LinSpace=e.asm.LinSpace).apply(null,arguments)},Rv=e._Log=function(){return(Rv=e._Log=e.asm.Log).apply(null,arguments)},Fv=e._Log1p=function(){return(Fv=e._Log1p=e.asm.Log1p).apply(null,arguments)},Ov=e._LogicalAnd=function(){return(Ov=e._LogicalAnd=e.asm.LogicalAnd).apply(null,arguments)},Pv=e._LogicalNot=function(){return(Pv=e._LogicalNot=e.asm.LogicalNot).apply(null,arguments)},Mv=e._LogicalOr=function(){return(Mv=e._LogicalOr=e.asm.LogicalOr).apply(null,arguments)},Lv=e._LogicalXor=function(){return(Lv=e._LogicalXor=e.asm.LogicalXor).apply(null,arguments)},zv=e._Max=function(){return(zv=e._Max=e.asm.Max).apply(null,arguments)},Bv=e._MaxPool=function(){return(Bv=e._MaxPool=e.asm.MaxPool).apply(null,arguments)},Vv=e._MaxPool3D=function(){return(Vv=e._MaxPool3D=e.asm.MaxPool3D).apply(null,arguments)},Gv=e._MaxPool3DGrad=function(){return(Gv=e._MaxPool3DGrad=e.asm.MaxPool3DGrad).apply(null,arguments)},Wv=e._Maximum=function(){return(Wv=e._Maximum=e.asm.Maximum).apply(null,arguments)},Uv=e._Mean=function(){return(Uv=e._Mean=e.asm.Mean).apply(null,arguments)},Hv=e._Min=function(){return(Hv=e._Min=e.asm.Min).apply(null,arguments)},qv=e._Minimum=function(){return(qv=e._Minimum=e.asm.Minimum).apply(null,arguments)},Kv=e._MirrorPad=function(){return(Kv=e._MirrorPad=e.asm.MirrorPad).apply(null,arguments)},jv=e._Multinomial=function(){return(jv=e._Multinomial=e.asm.Multinomial).apply(null,arguments)},Xv=e._Multiply=function(){return(Xv=e._Multiply=e.asm.Multiply).apply(null,arguments)},Yv=e._Neg=function(){return(Yv=e._Neg=e.asm.Neg).apply(null,arguments)},Zv=e._NonMaxSuppressionV3=function(){return(Zv=e._NonMaxSuppressionV3=e.asm.NonMaxSuppressionV3).apply(null,arguments)},Jv=e._NonMaxSuppressionV4=function(){return(Jv=e._NonMaxSuppressionV4=e.asm.NonMaxSuppressionV4).apply(null,arguments)},Qv=e._NonMaxSuppressionV5=function(){return(Qv=e._NonMaxSuppressionV5=e.asm.NonMaxSuppressionV5).apply(null,arguments)},tS=e._NotEqual=function(){return(tS=e._NotEqual=e.asm.NotEqual).apply(null,arguments)},eS=e._OneHot=function(){return(eS=e._OneHot=e.asm.OneHot).apply(null,arguments)},rS=e._PadV2=function(){return(rS=e._PadV2=e.asm.PadV2).apply(null,arguments)},nS=e._Pow=function(){return(nS=e._Pow=e.asm.Pow).apply(null,arguments)},oS=e._Prelu=function(){return(oS=e._Prelu=e.asm.Prelu).apply(null,arguments)},sS=e._Prod=function(){return(sS=e._Prod=e.asm.Prod).apply(null,arguments)},iS=e._RealDiv=function(){return(iS=e._RealDiv=e.asm.RealDiv).apply(null,arguments)},aS=e._Reciprocal=function(){return(aS=e._Reciprocal=e.asm.Reciprocal).apply(null,arguments)},lS=e._Relu=function(){return(lS=e._Relu=e.asm.Relu).apply(null,arguments)},uS=e._Relu6=function(){return(uS=e._Relu6=e.asm.Relu6).apply(null,arguments)},cS=e._ResizeBilinear=function(){return(cS=e._ResizeBilinear=e.asm.ResizeBilinear).apply(null,arguments)},pS=e._ResizeBilinearGrad=function(){return(pS=e._ResizeBilinearGrad=e.asm.ResizeBilinearGrad).apply(null,arguments)},mS=e._ResizeNearestNeighbor=function(){return(mS=e._ResizeNearestNeighbor=e.asm.ResizeNearestNeighbor).apply(null,arguments)},fS=e._ResizeNearestNeighborGrad=function(){return(fS=e._ResizeNearestNeighborGrad=e.asm.ResizeNearestNeighborGrad).apply(null,arguments)},dS=e._Reverse=function(){return(dS=e._Reverse=e.asm.Reverse).apply(null,arguments)},hS=e._RotateWithOffset=function(){return(hS=e._RotateWithOffset=e.asm.RotateWithOffset).apply(null,arguments)},gS=e._Round=function(){return(gS=e._Round=e.asm.Round).apply(null,arguments)},xS=e._Rsqrt=function(){return(xS=e._Rsqrt=e.asm.Rsqrt).apply(null,arguments)},yS=e._ScatterNd=function(){return(yS=e._ScatterNd=e.asm.ScatterNd).apply(null,arguments)},bS=e._SearchSorted=function(){return(bS=e._SearchSorted=e.asm.SearchSorted).apply(null,arguments)},wS=e._SelectV2=function(){return(wS=e._SelectV2=e.asm.SelectV2).apply(null,arguments)},IS=e._Selu=function(){return(IS=e._Selu=e.asm.Selu).apply(null,arguments)},CS=e._Sigmoid=function(){return(CS=e._Sigmoid=e.asm.Sigmoid).apply(null,arguments)},vS=e._Sign=function(){return(vS=e._Sign=e.asm.Sign).apply(null,arguments)},SS=e._Sin=function(){return(SS=e._Sin=e.asm.Sin).apply(null,arguments)},NS=e._Softmax=function(){return(NS=e._Softmax=e.asm.Softmax).apply(null,arguments)},kS=e._Softplus=function(){return(kS=e._Softplus=e.asm.Softplus).apply(null,arguments)},TS=e._SparseFillEmptyRows=function(){return(TS=e._SparseFillEmptyRows=e.asm.SparseFillEmptyRows).apply(null,arguments)},_S=e._SparseReshape=function(){return(_S=e._SparseReshape=e.asm.SparseReshape).apply(null,arguments)},ES=e._SparseSegmentReduction=function(){return(ES=e._SparseSegmentReduction=e.asm.SparseSegmentReduction).apply(null,arguments)},AS=e._SparseToDense=function(){return(AS=e._SparseToDense=e.asm.SparseToDense).apply(null,arguments)},DS=e._Sqrt=function(){return(DS=e._Sqrt=e.asm.Sqrt).apply(null,arguments)},$S=e._Square=function(){return($S=e._Square=e.asm.Square).apply(null,arguments)},RS=e._SquaredDifference=function(){return(RS=e._SquaredDifference=e.asm.SquaredDifference).apply(null,arguments)},FS=e._Step=function(){return(FS=e._Step=e.asm.Step).apply(null,arguments)},OS=e._StridedSlice=function(){return(OS=e._StridedSlice=e.asm.StridedSlice).apply(null,arguments)},PS=e._Sub=function(){return(PS=e._Sub=e.asm.Sub).apply(null,arguments)},MS=e._Sum=function(){return(MS=e._Sum=e.asm.Sum).apply(null,arguments)},LS=e._Tan=function(){return(LS=e._Tan=e.asm.Tan).apply(null,arguments)},zS=e._Tanh=function(){return(zS=e._Tanh=e.asm.Tanh).apply(null,arguments)},BS=e._TensorScatterUpdate=function(){return(BS=e._TensorScatterUpdate=e.asm.TensorScatterUpdate).apply(null,arguments)},VS=e._Tile=function(){return(VS=e._Tile=e.asm.Tile).apply(null,arguments)},GS=e._TopK=function(){return(GS=e._TopK=e.asm.TopK).apply(null,arguments)},WS=e._Transform=function(){return(WS=e._Transform=e.asm.Transform).apply(null,arguments)},US=e._Transpose=function(){return(US=e._Transpose=e.asm.Transpose).apply(null,arguments)},HS=e.__FusedMatMul=function(){return(HS=e.__FusedMatMul=e.asm._FusedMatMul).apply(null,arguments)},qS=e._malloc=function(){return(qS=e._malloc=e.asm.malloc).apply(null,arguments)},KS=e._free=function(){return(KS=e._free=e.asm.free).apply(null,arguments)},jS=e.___errno_location=function(){return(jS=e.___errno_location=e.asm.__errno_location).apply(null,arguments)},Lg=e.stackSave=function(){return(Lg=e.stackSave=e.asm.stackSave).apply(null,arguments)},zg=e.stackRestore=function(){return(zg=e.stackRestore=e.asm.stackRestore).apply(null,arguments)},Jd=e.stackAlloc=function(){return(Jd=e.stackAlloc=e.asm.stackAlloc).apply(null,arguments)},XS=e.dynCall_iijjiiii=function(){return(XS=e.dynCall_iijjiiii=e.asm.dynCall_iijjiiii).apply(null,arguments)},YS=e.dynCall_jiji=function(){return(YS=e.dynCall_jiji=e.asm.dynCall_jiji).apply(null,arguments)};e.cwrap=MC;var kp;Gr=function j(){kp||Bg(),kp||(Gr=j)};function Bg(j){if(j=j||a,je>0||(Ae(),je>0))return;function ut(){kp||(kp=!0,e.calledRun=!0,!G&&(De(),n(e),e.onRuntimeInitialized&&e.onRuntimeInitialized(),Pn()))}e.setStatus?(e.setStatus("Running..."),setTimeout(function(){setTimeout(function(){e.setStatus("")},1),ut()},1)):ut()}if(e.preInit)for(typeof e.preInit=="function"&&(e.preInit=[e.preInit]);e.preInit.length>0;)e.preInit.pop()();Bg();var Tp;s&&(Tp={uncaughtException:process.listeners("uncaughtException").filter(function(j){return!s.uncaughtException.indexOf(j)>-1}),unhandledRejection:process.listeners("unhandledRejection").filter(function(j){return!s.unhandledRejection.indexOf(j)>-1})});var _p;if(typeof t!="undefined")_p=t;else if(typeof WasmBackendModuleThreadedSimd!="undefined")_p=WasmBackendModuleThreadedSimd;else throw new Error("Could not find wasm module in post.js");if(Tp){var ZS=_p._dispose;_p._dispose=function(){ZS(),Tp.uncaughtException.forEach(function(j){process.removeListener("uncaughtException",j)}),Tp.unhandledRejection.forEach(function(j){process.removeListener("unhandledRejection",j)})}}return t.ready}})();typeof AC=="object"&&typeof q1=="object"?q1.exports=H1:typeof define=="function"&&define.amd?define([],function(){return H1}):typeof AC=="object"&&(AC.WasmBackendModule=H1)});var Ta=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}},Wo=class{refCount(t){return Ln("refCount")}incRef(t){return Ln("incRef")}timerAvailable(){return!0}time(t){return Ln("time")}read(t){return Ln("read")}readSync(t){return Ln("readSync")}readToGPU(t,e){return Ln("readToGPU")}numDataIds(){return Ln("numDataIds")}disposeData(t,e){return Ln("disposeData")}write(t,e,n){return Ln("write")}move(t,e,n,o,s){return Ln("move")}createTensorFromGPUData(t,e,n){return Ln("createTensorFromGPUData")}memory(){return Ln("memory")}floatPrecision(){return Ln("floatPrecision")}epsilon(){return this.floatPrecision()===32?1e-7:1e-4}dispose(){return Ln("dispose")}};function Ln(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 u_(r){let t=r.length,e=0;for(;t>0;)e=Math.random()*t|0,t--,Xg(r,t,e)}function mq(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--,Xg(r,e,n),Xg(t,e,n)}function Ap(r,t,e){return Math.max(r,Math.min(t,e))}function fq(r){return r%2===0?r:r+1}function Xg(r,t,e){let n=r[t];r[t]=r[e],r[e]=n}function dq(r){let t=0;for(let e=0;ee+` Shapes ${r} and ${t} must match`)}function no(r){_(r!=null,()=>"The input to the tensor constructor must be a non-null value.")}function te(r){if(r.length===0)return 1;let t=r[0];for(let e=1;e0,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 Cq(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 fr(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=>_a(n)),()=>`All values in axis param must be integers but got axis ${r}`),r.map(n=>n<0?e+n:n)}function o0(r,t){let e=[],n=[],o=t!=null&&Array.isArray(t)&&t.length===0,s=t==null||o?null:fr(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 s0(r,t){return Yg(r,t)}function Yg(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 i0(r,t){for(let e=0;et+=e.length),t}function Uo(r){return typeof r=="string"||r instanceof String}function c_(r){return typeof r=="boolean"}function p_(r){return typeof r=="number"}function jl(r){return Array.isArray(r)?jl(r[0]):r instanceof Float32Array?"float32":r instanceof Int32Array||r instanceof Uint8Array||r instanceof Uint8ClampedArray?"int32":p_(r)?"float32":Uo(r)?"string":c_(r)?"bool":"float32"}function ki(r){return!!(r&&r.constructor&&r.call&&r.apply)}function $p(r,t){for(let e=t;e=0;--n)e[n]=e[n+1]*r[n+1];return e}function m_(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 m_(0,r,t,e)}function Sq(r,t){if(Array.isArray(r))return r;if(t==="float32")return r instanceof Float32Array?r:new Float32Array(r);if(t==="int32")return r instanceof Int32Array?r:new Int32Array(r);if(t==="bool"||t==="string")return Uint8Array.from(new Int32Array(r));throw new Error(`Unknown dtype ${t}`)}function th(r,t){let e=Rp(r,t);for(let n=0;nn*o,1);if(t==null||t==="float32")return rc(r,new Float32Array(e));if(t==="int32")return rc(r,new Int32Array(e));if(t==="bool")return rc(r,new Uint8Array(e));throw new Error(`Unknown data type ${t}`)}function Me(r){r.forEach(t=>{_(Number.isInteger(t)&&t>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${r}].`)})}function kq(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]=Dq(o,s)})}};function Eq(r){let t={};return r.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(e,...n)=>(Aq(t,n[0],n[1]),n.join("="))),t}function Aq(r,t,e){r[decodeURIComponent(t)]=decodeURIComponent(e||"")}function Dq(r,t){let e=t.toLowerCase();return e==="true"||e==="false"?e==="true":`${+e}`===e?+e:t}function L(){return u0}var u0=null;function d_(r){u0=r}var c0;function p0(){if(c0==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");c0=r}return c0}function $q(){let r=p0();return r._tfGlobals==null&&(r._tfGlobals=new Map),r._tfGlobals}function rh(r,t){let e=$q();if(e.has(r))return e.get(r);{let n=t();return e.set(r,n),e.get(r)}}var _i="Abs",Ho="Acos",qo="Acosh",oo="Add",Ko="AddN",Ea="All",Aa="Any",Ei="ArgMax",Ai="ArgMin",jo="Asin",Xo="Asinh",Yo="Atan",Zo="Atanh",Jo="Atan2",Qo="AvgPool",Fp="AvgPoolGrad",Di="AvgPool3D",Xl="AvgPool3DGrad",ts="BatchMatMul",$i="BatchToSpaceND",Da="Bincount",nh="BitwiseAnd",h_="BroadcastTo",Yl="BroadcastArgs",ho="Cast",es="Ceil",go="ClipByValue",Op="Complex",Zl="ComplexAbs",Ri="Concat",rs="Conv2D",Pp="Conv2DBackpropFilter",ns="Conv2DBackpropInput",os="Conv3D",$a="Conv3DBackpropFilterV2",Ra="Conv3DBackpropInputV2",ss="Cos",is="Cosh",Fa="Cumprod",as="Cumsum",Oa="CropAndResize",Jl="DenseBincount",Pa="DepthToSpace",ls="DepthwiseConv2dNative",Mp="DepthwiseConv2dNativeBackpropFilter",Lp="DepthwiseConv2dNativeBackpropInput",Ql="Diag",us="Dilation2D",tu="Dilation2DBackpropInput",eu="Dilation2DBackpropFilter",cs="RealDiv",zp="Einsum",ps="Elu",Ma="EluGrad",La="Erf",za="Equal",ms="Exp",Fi="ExpandDims",fs="Expm1",Bp="FFT",ru="Fill",Ba="FlipLeftRight",ds="Floor",hs="FloorDiv",gs="FusedBatchNorm",Oi="GatherV2",Va="GatherNd",Ga="Greater",xs="GreaterEqual",xo="Identity",Vp="IFFT",Gp="Imag",ys="IsFinite",bs="IsInf",ws="IsNan",Is="LeakyRelu",Wa="Less",Ua="LessEqual",Ha="LinSpace",Cs="Log",vs="Log1p",qa="LogicalAnd",Ka="LogicalNot",ja="LogicalOr",g_="LogicalXor",x_="LogSoftmax",rmt="LowerBound",Ss="LRN",Xa="LRNGrad",nmt="MatrixBandPart",Ns="Max",ks="Maximum",Ts="MaxPool",Wp="MaxPoolGrad",Pi="MaxPool3D",nu="MaxPool3DGrad",Up="MaxPoolWithArgmax",_s="Mean",Es="Min",As="Minimum",Ds="MirrorPad",Ya="Mod",Za="Multinomial",$s="Multiply",Mi="Neg",Ja="NotEqual",Qa="NonMaxSuppressionV3",tl="NonMaxSuppressionV4",el="NonMaxSuppressionV5",Li="OnesLike",Rs="OneHot",zi="Pack",Fs="PadV2",omt="Pool",Os="Pow",Ps="Prelu",Ms="Prod",Hp="RaggedGather",qp="RaggedRange",Kp="RaggedTensorToTensor",ou="Range",jp="Real",Ls="Reciprocal",zs="Relu",Bi="Reshape",Bs="ResizeNearestNeighbor",rl="ResizeNearestNeighborGrad",Vs="ResizeBilinear",nl="ResizeBilinearGrad",Gs="Relu6",Ws="Reverse",Us="Round",Hs="Rsqrt",ol="ScatterNd",sl="TensorScatterUpdate",il="SearchSorted",Vi="Select",qs="Selu",Gi="Slice",Ks="Sin",al="Sinh",js="Sign",Xs="Sigmoid",Ys="Softplus",Zs="Sqrt",Js="Sum",Wi="SpaceToBatchND",Ui="SplitV",Qs="Softmax",su="SparseFillEmptyRows",ll="SparseReshape",iu="SparseSegmentMean",au="SparseSegmentSum",ul="SparseToDense",ti="SquaredDifference",lu="Square",sc="StaticRegexReplace",cl="StridedSlice",uu="StringNGrams",cu="StringSplit",pu="StringToHashBucketFast",ei="Sub",ri="Tan",ni="Tanh",so="Tile",pl="TopK",ml="Transform",io="Transpose",mu="Unique",Hi="Unpack",fu="UnsortedSegmentSum",smt="UpperBound",qi="ZerosLike",yo="Step",oh="FromPixels",fl="RotateWithOffset",Ki="_FusedMatMul",ji="FusedConv2D",Xi="FusedDepthwiseConv2D";function Yi(...r){L().getBool("IS_TEST")||L().getBool("PROD")||console.warn(...r)}function Rq(...r){L().getBool("IS_TEST")||L().getBool("PROD")||console.log(...r)}var Xp=rh("kernelRegistry",()=>new Map),sh=rh("gradRegistry",()=>new Map);function ih(r,t){let e=f0(r,t);return Xp.get(e)}function m0(r){return sh.get(r)}function Zg(r){let t=Xp.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 ic(r){let{kernelName:t,backendName:e}=r,n=f0(t,e);Xp.has(n)&&Yi(`The kernel '${t}' for backend '${e}' is already registered`),Xp.set(n,r)}function b_(r){let{kernelName:t}=r;sh.has(t)&&L().getBool("DEBUG")&&Yi(`Overriding the gradient for '${t}'`),sh.set(t,r)}function cmt(r,t){let e=f0(r,t);if(!Xp.has(e))throw new Error(`The kernel '${r}' for backend '${t}' is not registered`);Xp.delete(e)}function pmt(r){if(!sh.has(r))throw new Error(`The gradient '${r}' for backend is not registered`);sh.delete(r)}function mmt(r,t){Zg(r).forEach(n=>{let o=Object.assign({},n,{backendName:t});ic(o)})}function f0(r,t){return`${t}_${r}`}var y={};Kt(y,{arraysEqual:()=>sn,arraysEqualWithNull:()=>n0,assert:()=>_,assertNonNegativeIntegerDimensions:()=>Me,assertNonNull:()=>no,assertShapesMatch:()=>Re,bytesFromStringArray:()=>l0,bytesPerElement:()=>Dp,checkConversionForErrors:()=>i0,clamp:()=>Ap,computeStrides:()=>Ti,convertBackendValuesAndArrayBuffer:()=>Sq,createScalarValue:()=>Bq,createShuffledIndices:()=>wq,decodeString:()=>Qp,distSquared:()=>gq,encodeString:()=>hu,fetch:()=>Gq,fingerPrint64:()=>zq,flatten:()=>si,getArrayFromDType:()=>Yg,getTypedArrayFromDType:()=>s0,hasEncodingLoss:()=>vq,hexToLong:()=>ah,indexToLoc:()=>Tq,inferDtype:()=>jl,inferFromImplicitShape:()=>Cq,isBoolean:()=>c_,isFunction:()=>ki,isInt:()=>_a,isNumber:()=>p_,isPromise:()=>oc,isScalarShape:()=>xq,isString:()=>Uo,isTypedArray:()=>or,isValidDtype:()=>a0,locToIndex:()=>kq,makeOnesTypedArray:()=>th,makeZerosNestedTypedArray:()=>Nq,makeZerosTypedArray:()=>Rp,nearestDivisor:()=>$p,nearestLargerEven:()=>fq,now:()=>pc,parseAxisParam:()=>fr,randUniform:()=>hq,repeatedTry:()=>Iq,rightPad:()=>nc,shuffle:()=>u_,shuffleCombo:()=>mq,sizeFromShape:()=>te,sizeToSquarishShape:()=>bq,squeezeShape:()=>o0,sum:()=>dq,swap:()=>Xg,tanh:()=>yq,toNestedArray:()=>rc,toTypedArray:()=>Jp});function Jg(r){return r instanceof Float32Array||r instanceof Int32Array||r instanceof Uint8Array||r instanceof Uint8ClampedArray}var x0=Kl(A_());var cc=x0.default||x0;function ah(r){return cc.fromString(r,!0,16)}var $_=ah("c3a5c85c97cb3127"),uc=ah("b492b66fbe98f273"),an=ah("9ae16a3b2f90404f");function g0(r){return r.xor(r.shru(47))}function R_(r,t,e){let n=r.slice(t,t+e);return cc.fromBytes(Array.from(n),!0,!0)}function Le(r,t){return R_(r,t,8)}function D_(r,t){return R_(r,t,4)}function Ar(r,t){return t===0?r:r.shru(t).or(r.shl(64-t))}function du(r,t,e=ah("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 Oq(r,t,e,n,o,s){o=o.add(r),s=Ar(s.add(o).add(n),21);let i=o;return o=o.add(t),o=o.add(e),s=s.add(Ar(o,44)),[o.add(n),s.add(i)]}function tx(r,t,e,n){return Oq(Le(r,t),Le(r,t+8),Le(r,t+16),Le(r,t+24),e,n)}function Pq(r,t=r.length){if(t>=8){let e=an.add(t*2),n=Le(r,0).add(an),o=Le(r,t-8),s=Ar(o,37).mul(e).add(n),i=Ar(n,25).add(o).mul(e);return du(s,i,e)}if(t>=4){let e=an.add(t*2),n=D_(r,0);return du(n.shl(3).add(t),D_(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 g0(an.mul(s).xor($_.mul(i))).mul(an)}return an}function Mq(r,t=r.length){let e=an.add(t*2),n=Le(r,0).mul(uc),o=Le(r,8),s=Le(r,t-8).mul(e),i=Le(r,t-16).mul(an);return du(Ar(n.add(o),43).add(Ar(s,30)).add(i),n.add(Ar(o.add(an),18)).add(s),e)}function Lq(r,t=r.length){let e=an.add(t*2),n=Le(r,0).mul(an),o=Le(r,8),s=Le(r,t-8).mul(e),i=Le(r,t-16).mul(an),a=Ar(n.add(o),43).add(Ar(s,30)).add(i),u=du(a,n.add(Ar(o.add(an),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 du(Ar(l.add(c),43).add(Ar(p,30)).add(m),l.add(Ar(c.add(n),18)).add(p),e)}function zq(r,t=r.length){let e=cc.fromNumber(81,!0);if(t<=32)return t<=16?Pq(r,t):Mq(r,t);if(t<=64)return Lq(r,t);let n=e,o=e.mul(uc).add(113),s=g0(o.mul(an).add(113)).mul(an),i=[cc.UZERO,cc.UZERO],a=[cc.UZERO,cc.UZERO];n=n.mul(an).add(Le(r,0));let u=0,l=(t-1>>6)*64,c=l+(t-1&63)-63;do n=Ar(n.add(o).add(i[0]).add(Le(r,u+8)),37).mul(uc),o=Ar(o.add(i[1]).add(Le(r,u+48)),42).mul(uc),n=n.xor(a[1]),o=o.add(i[0]).add(Le(r,u+40)),s=Ar(s.add(a[0]),33).mul(uc),i=tx(r,u,i[1].mul(uc),n.add(a[0])),a=tx(r,u+32,s.add(a[1]),o.add(Le(r,u+16))),[s,n]=[n,s],u+=64;while(u!==l);let p=uc.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=Ar(n.add(o).add(i[0]).add(Le(r,u+8)),37).mul(p),o=Ar(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=Ar(s.add(a[0]),33).mul(p),i=tx(r,u,i[1].mul(p),n.add(a[0])),a=tx(r,u+32,s.add(a[1]),o.add(Le(r,u+16))),[s,n]=[n,s],du(du(i[0],a[0],p).add(g0(o).mul($_)).add(s),du(i[1],a[1],p).add(n),p)}function Bq(r,t){return t==="string"?hu(r):Jp([r],t)}function Vq(r,t){return r instanceof Float32Array&&t==="float32"||r instanceof Int32Array&&t==="int32"||r instanceof Uint8Array&&t==="bool"}function Jp(r,t){if(t==="string")throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(r)&&(r=si(r)),L().getBool("DEBUG")&&i0(r,t),Vq(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=pc();if(this.backendTimer.timerAvailable())i=this.backendTimer.time(s);else{s();for(let l of o)l.dataSync();i=Promise.resolve({kernelMs:pc()-a})}if(L().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let l=0;l{Wq(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 Wq(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 F_(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(!sn(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 P_=20,lh=3,b0=7;function M_(r,t,e,n){let o=Ti(t),s=Uq(r,t,e,o),i=t.length,a=rx(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 K=l.print||q,X=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,nt=Atomics.store,st=Atomics.compareExchange,at;l.wasmBinary&&(at=l.wasmBinary);var ot=l.noExitRuntime||!0;typeof WebAssembly!="object"&&oc("no native wasm support detected");var it,mt,gt=!1,Ct;function Rt(M,U){M||oc(U)}var Dt=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function Ht(M,U,dt){U>>>=0;for(var Lt=U+dt,Zt=U;M[Zt]&&!(Zt>=Lt);)++Zt;if(Zt-U>16&&M.buffer&&Dt)return Dt.decode(M.buffer instanceof SharedArrayBuffer?M.slice(U,Zt):M.subarray(U,Zt));for(var Yt="";U>10,56320|so&1023)}}return Yt}function qt(M,U){return M>>>=0,M?Ht(n(),M,U):""}function ce(M,U,dt,Lt){if(dt>>>=0,!(Lt>0))return 0;for(var Zt=dt,Yt=dt+Lt-1,bt=0;bt=55296&&$t<=57343){var nr=M.charCodeAt(++bt);$t=65536+(($t&1023)<<10)|nr&1023}if($t<=127){if(dt>=Yt)break;U[dt++>>>0]=$t}else if($t<=2047){if(dt+1>=Yt)break;U[dt++>>>0]=192|$t>>6,U[dt++>>>0]=128|$t&63}else if($t<=65535){if(dt+2>=Yt)break;U[dt++>>>0]=224|$t>>12,U[dt++>>>0]=128|$t>>6&63,U[dt++>>>0]=128|$t&63}else{if(dt+3>=Yt)break;U[dt++>>>0]=240|$t>>18,U[dt++>>>0]=128|$t>>12&63,U[dt++>>>0]=128|$t>>6&63,U[dt++>>>0]=128|$t&63}}return U[dt>>>0]=0,dt-Zt}function ge(M,U,dt){return ce(M,n(),U,dt)}var re,xe,fe,Ae,De,Ln,lr,eo,Vr;I&&(re=l.buffer);function je(M){re=M,l.HEAP8=xe=new Int8Array(M),l.HEAP16=Ae=new Int16Array(M),l.HEAP32=Ln=new Int32Array(M),l.HEAPU8=fe=new Uint8Array(M),l.HEAPU16=De=new Uint16Array(M),l.HEAPU32=lr=new Uint32Array(M),l.HEAPF32=eo=new Float32Array(M),l.HEAPF64=Vr=new Float64Array(M)}var Gr=l.INITIAL_MEMORY||16777216;if(I)it=l.wasmMemory,re=l.buffer;else if(l.wasmMemory)it=l.wasmMemory;else if(it=new WebAssembly.Memory({initial:Gr/65536,maximum:65536,shared:!0}),!(it.buffer instanceof SharedArrayBuffer))throw X("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&&X("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and/or recent version)"),Error("bad memory");it&&(re=it.buffer),Gr=re.byteLength,je(re);var Wr,ro=[],no=[],Qr=[],ka=!1;function Wo(){return ot}function Ei(){if(l.preRun)for(typeof l.preRun=="function"&&(l.preRun=[l.preRun]);l.preRun.length;)qd(l.preRun.shift());Xd(ro)}function Ar(){ka=!0,!I&&Xd(no)}function Ta(){if(!I){if(l.postRun)for(typeof l.postRun=="function"&&(l.postRun=[l.postRun]);l.postRun.length;)o_(l.postRun.shift());Xd(Qr)}}function qd(M){ro.unshift(M)}function Kd(M){no.unshift(M)}function o_(M){Qr.unshift(M)}var ql=0,_p=null,_a=null;function $C(M){ql++,l.monitorRunDependencies&&l.monitorRunDependencies(ql)}function Cg(M){if(ql--,l.monitorRunDependencies&&l.monitorRunDependencies(ql),ql==0&&(_p!==null&&(clearInterval(_p),_p=null),_a)){var U=_a;_a=null,U()}}function oc(M){l.onAbort&&l.onAbort(M),M="Aborted("+M+")",X(M),gt=!0,Ct=1,M+=". Build with -sASSERTIONS for more info.";var U=new WebAssembly.RuntimeError(M);throw p(U),U}var RC="data:application/octet-stream;base64,";function vg(M){return M.startsWith(RC)}function Ep(M){return M.startsWith("file://")}var tn;tn="tfjs-backend-wasm-threaded-simd.wasm",vg(tn)||(tn=E(tn));function Sg(M){try{if(M==tn&&at)return new Uint8Array(at);if(F)return F(M);throw"both async and sync fetching of the wasm failed"}catch(U){oc(U)}}function FC(){if(!at&&(x||b)){if(typeof fetch=="function"&&!Ep(tn))return fetch(tn,{credentials:"same-origin"}).then(function(M){if(!M.ok)throw"failed to load wasm binary file at '"+tn+"'";return M.arrayBuffer()}).catch(function(){return Sg(tn)});if(D)return new Promise(function(M,U){D(tn,function(dt){M(new Uint8Array(dt))},U)})}return Promise.resolve().then(function(){return Sg(tn)})}function OC(){var M={env:Mg,wasi_snapshot_preview1:Mg};function U(bt,$t){var nr=bt.exports;if(l.asm=nr,UC(l.asm._emscripten_tls_init),Wr=l.asm.__indirect_function_table,Kd(l.asm.__wasm_call_ctors),mt=$t,!I){var so=Xt.unusedWorkers.length;Xt.unusedWorkers.forEach(function(Aa){Xt.loadWasmModuleToWorker(Aa,function(){--so||Cg("wasm-instantiate")})})}}I||$C("wasm-instantiate");function dt(bt){U(bt.instance,bt.module)}function Lt(bt){return FC().then(function($t){return WebAssembly.instantiate($t,M)}).then(function($t){return $t}).then(bt,function($t){X("failed to asynchronously prepare wasm: "+$t),oc($t)})}function Zt(){return!at&&typeof WebAssembly.instantiateStreaming=="function"&&!vg(tn)&&!Ep(tn)&&!w&&typeof fetch=="function"?fetch(tn,{credentials:"same-origin"}).then(function(bt){var $t=WebAssembly.instantiateStreaming(bt,M);return $t.then(dt,function(nr){return X("wasm streaming compile failed: "+nr),X("falling back to ArrayBuffer instantiation"),Lt(dt)})}):Lt(dt)}if(l.instantiateWasm)try{var Yt=l.instantiateWasm(M,U);return Yt}catch(bt){X("Module.instantiateWasm callback failed with error: "+bt),p(bt)}return Zt().catch(p),{}}var s_,i_,Ng={};function sc(M){this.name="ExitStatus",this.message="Program terminated with exit("+M+")",this.status=M}function PC(M){var U=Xt.pthreads[M];delete Xt.pthreads[M],U.terminate(),i0(M),Xt.runningWorkers.splice(Xt.runningWorkers.indexOf(U),1),U.pthread_ptr=0}function MC(M){var U=Xt.pthreads[M];U.postMessage({cmd:"cancel"})}function jd(M){var U=Xt.pthreads[M];Rt(U),Xt.returnWorkerToPool(U)}function LC(M){var U=Xt.getNewWorker();if(!U)return 6;Xt.runningWorkers.push(U),Xt.pthreads[M.pthread_ptr]=U,U.pthread_ptr=M.pthread_ptr;var dt={cmd:"run",start_routine:M.startRoutine,arg:M.arg,pthread_ptr:M.pthread_ptr};return U.runPthread=()=>{w&&U.ref(),U.postMessage(dt,M.transferList),delete U.runPthread},U.loaded&&U.runPthread(),0}var kg={varargs:void 0,get:function(){kg.varargs+=4;var M=s()[kg.varargs-4>>>2];return M},getStr:function(M){var U=qt(M);return U}};function Tg(M){if(I)return Kl(1,1,M);Ct=M,Wo()||(Xt.terminateAllThreads(),l.onExit&&l.onExit(M),gt=!0),g(M,new sc(M))}function zC(M,U){if(Ct=M,!U&&I)throw Eg(M),"unwind";Tg(M)}var _g=zC;function BC(M){if(M instanceof sc||M=="unwind")return Ct;g(1,M)}var Xt={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init:function(){I?Xt.initWorker():Xt.initMainThread()},initMainThread:function(){for(var M=8;M--;)Xt.allocateUnusedWorker()},initWorker:function(){ot=!1},setExitStatus:function(M){Ct=M},terminateAllThreads:function(){for(var M of Object.values(Xt.pthreads))Xt.returnWorkerToPool(M);for(var M of Xt.unusedWorkers)M.terminate();Xt.unusedWorkers=[]},returnWorkerToPool:function(M){var U=M.pthread_ptr;delete Xt.pthreads[U],Xt.unusedWorkers.push(M),Xt.runningWorkers.splice(Xt.runningWorkers.indexOf(M),1),M.pthread_ptr=0,w&&M.unref(),i0(U)},receiveObjectTransfer:function(M){},threadInitTLS:function(){Xt.tlsInitFunctions.forEach(M=>M())},loadWasmModuleToWorker:function(M,U){M.onmessage=Yt=>{var bt=Yt.data,$t=bt.cmd;if(M.pthread_ptr&&(Xt.currentProxiedOperationCallerThread=M.pthread_ptr),bt.targetThread&&bt.targetThread!=Wg()){var nr=Xt.pthreads[bt.targetThread];nr?nr.postMessage(bt,bt.transferList):X('Internal error! Worker sent a message "'+$t+'" to target pthread '+bt.targetThread+", but that thread no longer exists!"),Xt.currentProxiedOperationCallerThread=void 0;return}$t==="processProxyingQueue"?Yd(bt.queue):$t==="spawnThread"?LC(bt):$t==="cleanupThread"?jd(bt.thread):$t==="killThread"?PC(bt.thread):$t==="cancelThread"?MC(bt.thread):$t==="loaded"?(M.loaded=!0,w&&M.unref(),U&&U(M),M.runPthread&&M.runPthread()):$t==="print"?K("Thread "+bt.threadId+": "+bt.text):$t==="printErr"?X("Thread "+bt.threadId+": "+bt.text):$t==="alert"?alert("Thread "+bt.threadId+": "+bt.text):bt.target==="setimmediate"?M.postMessage(bt):$t==="callHandler"?l[bt.handler](...bt.args):$t&&X("worker sent an unknown command "+$t),Xt.currentProxiedOperationCallerThread=void 0},M.onerror=Yt=>{var bt="worker sent an error!";throw X(bt+" "+Yt.filename+":"+Yt.lineno+": "+Yt.message),Yt},w&&(M.on("message",function(Yt){M.onmessage({data:Yt})}),M.on("error",function(Yt){M.onerror(Yt)}),M.on("detachedExit",function(){}));var dt=[],Lt=["onExit","onAbort","print","printErr"];for(var Zt of Lt)l.hasOwnProperty(Zt)&&dt.push(Zt);M.postMessage({cmd:"load",handlers:dt,urlOrBlob:l.mainScriptUrlOrBlob||r,wasmMemory:it,wasmModule:mt})},allocateUnusedWorker:function(){var M,U=E("tfjs-backend-wasm-threaded-simd.worker.js");M=new Worker(U),Xt.unusedWorkers.push(M)},getNewWorker:function(){return Xt.unusedWorkers.length==0&&(Xt.allocateUnusedWorker(),Xt.loadWasmModuleToWorker(Xt.unusedWorkers[0])),Xt.unusedWorkers.pop()}};l.PThread=Xt;function Xd(M){for(;M.length>0;)M.shift()(l)}function VC(){var M=Wg(),U=s()[M+52>>>2],dt=s()[M+56>>>2],Lt=U-dt;m_(U,Lt),Ug(U)}l.establishStackSpace=VC;function Eg(M){if(I)return Kl(2,0,M);try{_g(M)}catch(U){BC(U)}}var Ap=[];function GC(M){var U=Ap[M];return U||(M>=Ap.length&&(Ap.length=M+1),Ap[M]=U=Wr.get(M)),U}function WC(M,U){var dt=GC(M)(U);Wo()?Xt.setExitStatus(dt):p_(dt)}l.invokeEntryPoint=WC;function UC(M){Xt.tlsInitFunctions.push(M)}function HC(M){l_(M,!b,1,!x),Xt.threadInitTLS()}function qC(M){I?postMessage({cmd:"cleanupThread",thread:M}):jd(M)}function Ag(M,U,dt,Lt){return I?Kl(3,1,M,U,dt,Lt):Dg(M,U,dt,Lt)}function Dg(M,U,dt,Lt){if(typeof SharedArrayBuffer=="undefined")return X("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;var Zt=[],Yt=0;if(I&&(Zt.length===0||Yt))return Ag(M,U,dt,Lt);if(Yt)return Yt;var bt={startRoutine:dt,pthread_ptr:M,arg:Lt,transferList:Zt};return I?(bt.cmd="spawnThread",postMessage(bt,Zt),0):LC(bt)}function KC(){return 65536}var jC=!0;function XC(){return jC}function Yd(M){Atomics.store(s(),M>>2,1),Wg()&&c_(M),Atomics.compareExchange(s(),M>>2,1,0)}l.executeNotifiedProxyingQueue=Yd;function YC(M,U,dt,Lt){if(M==U)setTimeout(()=>Yd(Lt));else if(I)postMessage({targetThread:M,cmd:"processProxyingQueue",queue:Lt});else{var Zt=Xt.pthreads[M];if(!Zt)return;Zt.postMessage({cmd:"processProxyingQueue",queue:Lt})}return 1}function ZC(M,U,dt){return-1}function JC(){oc("")}function ic(M){ic.shown||(ic.shown={}),ic.shown[M]||(ic.shown[M]=1,w&&(M="warning: "+M),X(M))}function QC(){w||b||ic("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function tv(){return Date.now()}function $g(){return 4294901760}function ev(){return $g()}var Zd;w?Zd=()=>{var M=process.hrtime();return M[0]*1e3+M[1]/1e6}:Zd=()=>performance.timeOrigin+performance.now();function rv(M,U,dt){n().copyWithin(M>>>0,U>>>0,U+dt>>>0)}function nv(){return w?zH().cpus().length:navigator.hardwareConcurrency}function ov(M){var U=a0(),dt=M();return Ug(U),dt}function Kl(M,U){var dt=arguments.length-2,Lt=arguments;return ov(()=>{for(var Zt=dt,Yt=Hg(Zt*8),bt=Yt>>3,$t=0;$t>>0]=nr}return u_(M,Zt,Yt,U)})}var Jd=[];function sv(M,U,dt){Jd.length=U;for(var Lt=dt>>3,Zt=0;Zt>>0];var Yt=M<0,bt=Yt?Ng[-M-1]:dv[M];return bt.apply(null,Jd)}function iv(M){try{return it.grow(M-re.byteLength+65535>>>16),je(it.buffer),1}catch(U){}}function av(M){var U=n().length;if(M=M>>>0,M<=U)return!1;var dt=$g();if(M>dt)return!1;let Lt=(nr,so)=>nr+(so-nr%so)%so;for(var Zt=1;Zt<=4;Zt*=2){var Yt=U*(1+.2/Zt);Yt=Math.min(Yt,M+100663296);var bt=Math.min(dt,Lt(Math.max(M,Yt),65536)),$t=iv(bt);if($t)return!0}return!1}function lv(){throw"unwind"}function Rg(M){return I?Kl(4,1,M):52}function Fg(M,U,dt,Lt,Zt){return I?Kl(5,1,M,U,dt,Lt,Zt):70}var uv=[null,[],[]];function cv(M,U){var dt=uv[M];U===0||U===10?((M===1?K:X)(Ht(dt,0)),dt.length=0):dt.push(U)}function Og(M,U,dt,Lt){if(I)return Kl(6,1,M,U,dt,Lt);for(var Zt=0,Yt=0;Yt>>2],$t=i()[U+4>>>2];U+=8;for(var nr=0;nr<$t;nr++)cv(M,n()[bt+nr>>>0]);Zt+=$t}return i()[Lt>>>2]=Zt,0}function Pg(M){var U=l["_"+M];return U}function pv(M,U){e().set(M,U>>>0)}function mv(M,U,dt,Lt,Zt){var Yt={string:zn=>{var Fp=0;if(zn!=null&&zn!==0){var h_=(zn.length<<2)+1;Fp=Hg(h_),ge(zn,Fp,h_)}return Fp},array:zn=>{var Fp=Hg(zn.length);return pv(zn,Fp),Fp}};function bt(zn){return U==="string"?qt(zn):U==="boolean"?!!zn:zn}var $t=Pg(M),nr=[],so=0;if(Lt)for(var Aa=0;Aabt==="number"||bt==="boolean"),Yt=U!=="string";return Yt&&Zt&&!Lt?Pg(M):function(){return mv(M,U,dt,arguments,Lt)}}Xt.init();var dv=[null,Tg,Eg,Ag,Rg,Fg,Og],Mg={__emscripten_init_main_thread_js:HC,__emscripten_thread_cleanup:qC,__pthread_create_js:Dg,_emscripten_default_pthread_stack_size:KC,_emscripten_get_now_is_monotonic:XC,_emscripten_notify_task_queue:YC,_emscripten_set_offscreencanvas_size:ZC,abort:JC,emscripten_check_blocking_allowed:QC,emscripten_date_now:tv,emscripten_get_heap_max:ev,emscripten_get_now:Zd,emscripten_memcpy_big:rv,emscripten_num_logical_cores:nv,emscripten_receive_on_main_thread_js:sv,emscripten_resize_heap:av,emscripten_unwind_to_js_event_loop:lv,exit:_g,fd_close:Rg,fd_seek:Fg,fd_write:Og,memory:it||l.wasmMemory},a_=OC(),hv=l.___wasm_call_ctors=function(){return(hv=l.___wasm_call_ctors=l.asm.__wasm_call_ctors).apply(null,arguments)},gv=l._init=function(){return(gv=l._init=l.asm.init).apply(null,arguments)},xv=l._init_with_threads_count=function(){return(xv=l._init_with_threads_count=l.asm.init_with_threads_count).apply(null,arguments)},yv=l._get_threads_count=function(){return(yv=l._get_threads_count=l.asm.get_threads_count).apply(null,arguments)},bv=l._register_tensor=function(){return(bv=l._register_tensor=l.asm.register_tensor).apply(null,arguments)},wv=l._dispose_data=function(){return(wv=l._dispose_data=l.asm.dispose_data).apply(null,arguments)},Iv=l._dispose=function(){return(Iv=l._dispose=l.asm.dispose).apply(null,arguments)},Cv=l._Abs=function(){return(Cv=l._Abs=l.asm.Abs).apply(null,arguments)},vv=l._Acos=function(){return(vv=l._Acos=l.asm.Acos).apply(null,arguments)},Sv=l._Acosh=function(){return(Sv=l._Acosh=l.asm.Acosh).apply(null,arguments)},Nv=l._Add=function(){return(Nv=l._Add=l.asm.Add).apply(null,arguments)},kv=l._AddN=function(){return(kv=l._AddN=l.asm.AddN).apply(null,arguments)},Tv=l._All=function(){return(Tv=l._All=l.asm.All).apply(null,arguments)},_v=l._Any=function(){return(_v=l._Any=l.asm.Any).apply(null,arguments)},Ev=l._ArgMax=function(){return(Ev=l._ArgMax=l.asm.ArgMax).apply(null,arguments)},Av=l._ArgMin=function(){return(Av=l._ArgMin=l.asm.ArgMin).apply(null,arguments)},Dv=l._Asin=function(){return(Dv=l._Asin=l.asm.Asin).apply(null,arguments)},$v=l._Asinh=function(){return($v=l._Asinh=l.asm.Asinh).apply(null,arguments)},Rv=l._Atan=function(){return(Rv=l._Atan=l.asm.Atan).apply(null,arguments)},Fv=l._Atan2=function(){return(Fv=l._Atan2=l.asm.Atan2).apply(null,arguments)},Ov=l._Atanh=function(){return(Ov=l._Atanh=l.asm.Atanh).apply(null,arguments)},Pv=l._AvgPool=function(){return(Pv=l._AvgPool=l.asm.AvgPool).apply(null,arguments)},Mv=l._AvgPool3D=function(){return(Mv=l._AvgPool3D=l.asm.AvgPool3D).apply(null,arguments)},Lv=l._AvgPool3DGrad=function(){return(Lv=l._AvgPool3DGrad=l.asm.AvgPool3DGrad).apply(null,arguments)},zv=l._AvgPoolGrad=function(){return(zv=l._AvgPoolGrad=l.asm.AvgPoolGrad).apply(null,arguments)},Bv=l._BatchMatMul=function(){return(Bv=l._BatchMatMul=l.asm.BatchMatMul).apply(null,arguments)},Vv=l._Bincount=function(){return(Vv=l._Bincount=l.asm.Bincount).apply(null,arguments)},Gv=l._BitwiseAnd=function(){return(Gv=l._BitwiseAnd=l.asm.BitwiseAnd).apply(null,arguments)},Wv=l._Ceil=function(){return(Wv=l._Ceil=l.asm.Ceil).apply(null,arguments)},Uv=l._ClipByValue=function(){return(Uv=l._ClipByValue=l.asm.ClipByValue).apply(null,arguments)},Hv=l._Conv2D=function(){return(Hv=l._Conv2D=l.asm.Conv2D).apply(null,arguments)},qv=l._Conv2DBackpropInput=function(){return(qv=l._Conv2DBackpropInput=l.asm.Conv2DBackpropInput).apply(null,arguments)},Kv=l._Conv3D=function(){return(Kv=l._Conv3D=l.asm.Conv3D).apply(null,arguments)},jv=l._Conv3DBackpropFilterV2=function(){return(jv=l._Conv3DBackpropFilterV2=l.asm.Conv3DBackpropFilterV2).apply(null,arguments)},Xv=l._Conv3DBackpropInputV2=function(){return(Xv=l._Conv3DBackpropInputV2=l.asm.Conv3DBackpropInputV2).apply(null,arguments)},Yv=l._Cos=function(){return(Yv=l._Cos=l.asm.Cos).apply(null,arguments)},Zv=l._Cosh=function(){return(Zv=l._Cosh=l.asm.Cosh).apply(null,arguments)},Jv=l._CropAndResize=function(){return(Jv=l._CropAndResize=l.asm.CropAndResize).apply(null,arguments)},Qv=l._Cumprod=function(){return(Qv=l._Cumprod=l.asm.Cumprod).apply(null,arguments)},tS=l._Cumsum=function(){return(tS=l._Cumsum=l.asm.Cumsum).apply(null,arguments)},eS=l._DenseBincount=function(){return(eS=l._DenseBincount=l.asm.DenseBincount).apply(null,arguments)},rS=l._DepthToSpace=function(){return(rS=l._DepthToSpace=l.asm.DepthToSpace).apply(null,arguments)},nS=l._DepthwiseConv2dNative=function(){return(nS=l._DepthwiseConv2dNative=l.asm.DepthwiseConv2dNative).apply(null,arguments)},oS=l._Diag=function(){return(oS=l._Diag=l.asm.Diag).apply(null,arguments)},sS=l._Dilation2D=function(){return(sS=l._Dilation2D=l.asm.Dilation2D).apply(null,arguments)},iS=l._Dilation2DBackpropFilter=function(){return(iS=l._Dilation2DBackpropFilter=l.asm.Dilation2DBackpropFilter).apply(null,arguments)},aS=l._Dilation2DBackpropInput=function(){return(aS=l._Dilation2DBackpropInput=l.asm.Dilation2DBackpropInput).apply(null,arguments)},lS=l._Elu=function(){return(lS=l._Elu=l.asm.Elu).apply(null,arguments)},uS=l._EluGrad=function(){return(uS=l._EluGrad=l.asm.EluGrad).apply(null,arguments)},cS=l._Equal=function(){return(cS=l._Equal=l.asm.Equal).apply(null,arguments)},pS=l._Erf=function(){return(pS=l._Erf=l.asm.Erf).apply(null,arguments)},mS=l._Exp=function(){return(mS=l._Exp=l.asm.Exp).apply(null,arguments)},fS=l._Expm1=function(){return(fS=l._Expm1=l.asm.Expm1).apply(null,arguments)},dS=l._FlipLeftRight=function(){return(dS=l._FlipLeftRight=l.asm.FlipLeftRight).apply(null,arguments)},hS=l._Floor=function(){return(hS=l._Floor=l.asm.Floor).apply(null,arguments)},gS=l._FloorDiv=function(){return(gS=l._FloorDiv=l.asm.FloorDiv).apply(null,arguments)},xS=l._FusedBatchNorm=function(){return(xS=l._FusedBatchNorm=l.asm.FusedBatchNorm).apply(null,arguments)},yS=l._FusedConv2D=function(){return(yS=l._FusedConv2D=l.asm.FusedConv2D).apply(null,arguments)},bS=l._FusedDepthwiseConv2D=function(){return(bS=l._FusedDepthwiseConv2D=l.asm.FusedDepthwiseConv2D).apply(null,arguments)},wS=l._Gather=function(){return(wS=l._Gather=l.asm.Gather).apply(null,arguments)},IS=l._GatherNd=function(){return(IS=l._GatherNd=l.asm.GatherNd).apply(null,arguments)},CS=l._Greater=function(){return(CS=l._Greater=l.asm.Greater).apply(null,arguments)},vS=l._GreaterEqual=function(){return(vS=l._GreaterEqual=l.asm.GreaterEqual).apply(null,arguments)},SS=l._IsFinite=function(){return(SS=l._IsFinite=l.asm.IsFinite).apply(null,arguments)},NS=l._IsInf=function(){return(NS=l._IsInf=l.asm.IsInf).apply(null,arguments)},kS=l._IsNan=function(){return(kS=l._IsNan=l.asm.IsNan).apply(null,arguments)},TS=l._LRN=function(){return(TS=l._LRN=l.asm.LRN).apply(null,arguments)},_S=l._LRNGrad=function(){return(_S=l._LRNGrad=l.asm.LRNGrad).apply(null,arguments)},ES=l._LeakyRelu=function(){return(ES=l._LeakyRelu=l.asm.LeakyRelu).apply(null,arguments)},AS=l._Less=function(){return(AS=l._Less=l.asm.Less).apply(null,arguments)},DS=l._LessEqual=function(){return(DS=l._LessEqual=l.asm.LessEqual).apply(null,arguments)},$S=l._LinSpace=function(){return($S=l._LinSpace=l.asm.LinSpace).apply(null,arguments)},RS=l._Log=function(){return(RS=l._Log=l.asm.Log).apply(null,arguments)},FS=l._Log1p=function(){return(FS=l._Log1p=l.asm.Log1p).apply(null,arguments)},OS=l._LogicalAnd=function(){return(OS=l._LogicalAnd=l.asm.LogicalAnd).apply(null,arguments)},PS=l._LogicalNot=function(){return(PS=l._LogicalNot=l.asm.LogicalNot).apply(null,arguments)},MS=l._LogicalOr=function(){return(MS=l._LogicalOr=l.asm.LogicalOr).apply(null,arguments)},LS=l._LogicalXor=function(){return(LS=l._LogicalXor=l.asm.LogicalXor).apply(null,arguments)},zS=l._Max=function(){return(zS=l._Max=l.asm.Max).apply(null,arguments)},BS=l._MaxPool=function(){return(BS=l._MaxPool=l.asm.MaxPool).apply(null,arguments)},VS=l._MaxPool3D=function(){return(VS=l._MaxPool3D=l.asm.MaxPool3D).apply(null,arguments)},GS=l._MaxPool3DGrad=function(){return(GS=l._MaxPool3DGrad=l.asm.MaxPool3DGrad).apply(null,arguments)},WS=l._MaxPoolGrad=function(){return(WS=l._MaxPoolGrad=l.asm.MaxPoolGrad).apply(null,arguments)},US=l._MaxPoolWithArgmax=function(){return(US=l._MaxPoolWithArgmax=l.asm.MaxPoolWithArgmax).apply(null,arguments)},HS=l._Maximum=function(){return(HS=l._Maximum=l.asm.Maximum).apply(null,arguments)},qS=l._Mean=function(){return(qS=l._Mean=l.asm.Mean).apply(null,arguments)},KS=l._Min=function(){return(KS=l._Min=l.asm.Min).apply(null,arguments)},jS=l._Minimum=function(){return(jS=l._Minimum=l.asm.Minimum).apply(null,arguments)},XS=l._MirrorPad=function(){return(XS=l._MirrorPad=l.asm.MirrorPad).apply(null,arguments)},YS=l._Mod=function(){return(YS=l._Mod=l.asm.Mod).apply(null,arguments)},ZS=l._Multinomial=function(){return(ZS=l._Multinomial=l.asm.Multinomial).apply(null,arguments)},JS=l._Multiply=function(){return(JS=l._Multiply=l.asm.Multiply).apply(null,arguments)},QS=l._Neg=function(){return(QS=l._Neg=l.asm.Neg).apply(null,arguments)},t0=l._NonMaxSuppressionV3=function(){return(t0=l._NonMaxSuppressionV3=l.asm.NonMaxSuppressionV3).apply(null,arguments)},e0=l._NonMaxSuppressionV4=function(){return(e0=l._NonMaxSuppressionV4=l.asm.NonMaxSuppressionV4).apply(null,arguments)},Lg=l._NonMaxSuppressionV5=function(){return(Lg=l._NonMaxSuppressionV5=l.asm.NonMaxSuppressionV5).apply(null,arguments)},zg=l._NotEqual=function(){return(zg=l._NotEqual=l.asm.NotEqual).apply(null,arguments)},Qd=l._OneHot=function(){return(Qd=l._OneHot=l.asm.OneHot).apply(null,arguments)},r0=l._PadV2=function(){return(r0=l._PadV2=l.asm.PadV2).apply(null,arguments)},n0=l._Pow=function(){return(n0=l._Pow=l.asm.Pow).apply(null,arguments)},Dp=l._Prelu=function(){return(Dp=l._Prelu=l.asm.Prelu).apply(null,arguments)},Bg=l._Prod=function(){return(Bg=l._Prod=l.asm.Prod).apply(null,arguments)},$p=l._RealDiv=function(){return($p=l._RealDiv=l.asm.RealDiv).apply(null,arguments)},Rp=l._Reciprocal=function(){return(Rp=l._Reciprocal=l.asm.Reciprocal).apply(null,arguments)},o0=l._Relu=function(){return(o0=l._Relu=l.asm.Relu).apply(null,arguments)},j=l._Relu6=function(){return(j=l._Relu6=l.asm.Relu6).apply(null,arguments)},ut=l._ResizeBilinear=function(){return(ut=l._ResizeBilinear=l.asm.ResizeBilinear).apply(null,arguments)},Ft=l._ResizeBilinearGrad=function(){return(Ft=l._ResizeBilinearGrad=l.asm.ResizeBilinearGrad).apply(null,arguments)},pe=l._ResizeNearestNeighbor=function(){return(pe=l._ResizeNearestNeighbor=l.asm.ResizeNearestNeighbor).apply(null,arguments)},Xe=l._ResizeNearestNeighborGrad=function(){return(Xe=l._ResizeNearestNeighborGrad=l.asm.ResizeNearestNeighborGrad).apply(null,arguments)},Ye=l._Reverse=function(){return(Ye=l._Reverse=l.asm.Reverse).apply(null,arguments)},se=l._RotateWithOffset=function(){return(se=l._RotateWithOffset=l.asm.RotateWithOffset).apply(null,arguments)},ne=l._Round=function(){return(ne=l._Round=l.asm.Round).apply(null,arguments)},br=l._Rsqrt=function(){return(br=l._Rsqrt=l.asm.Rsqrt).apply(null,arguments)},oo=l._ScatterNd=function(){return(oo=l._ScatterNd=l.asm.ScatterNd).apply(null,arguments)},Ea=l._SearchSorted=function(){return(Ea=l._SearchSorted=l.asm.SearchSorted).apply(null,arguments)},Vg=l._SelectV2=function(){return(Vg=l._SelectV2=l.asm.SelectV2).apply(null,arguments)},th=l._Selu=function(){return(th=l._Selu=l.asm.Selu).apply(null,arguments)},s0=l._Sigmoid=function(){return(s0=l._Sigmoid=l.asm.Sigmoid).apply(null,arguments)},sn=l._Sign=function(){return(sn=l._Sign=l.asm.Sign).apply(null,arguments)},jl=l._Sin=function(){return(jl=l._Sin=l.asm.Sin).apply(null,arguments)},Gg=l._Sinh=function(){return(Gg=l._Sinh=l.asm.Sinh).apply(null,arguments)},YH=l._Softmax=function(){return(YH=l._Softmax=l.asm.Softmax).apply(null,arguments)},ZH=l._Softplus=function(){return(ZH=l._Softplus=l.asm.Softplus).apply(null,arguments)},JH=l._SparseFillEmptyRows=function(){return(JH=l._SparseFillEmptyRows=l.asm.SparseFillEmptyRows).apply(null,arguments)},QH=l._SparseReshape=function(){return(QH=l._SparseReshape=l.asm.SparseReshape).apply(null,arguments)},tq=l._SparseSegmentReduction=function(){return(tq=l._SparseSegmentReduction=l.asm.SparseSegmentReduction).apply(null,arguments)},eq=l._SparseToDense=function(){return(eq=l._SparseToDense=l.asm.SparseToDense).apply(null,arguments)},rq=l._Sqrt=function(){return(rq=l._Sqrt=l.asm.Sqrt).apply(null,arguments)},nq=l._Square=function(){return(nq=l._Square=l.asm.Square).apply(null,arguments)},oq=l._SquaredDifference=function(){return(oq=l._SquaredDifference=l.asm.SquaredDifference).apply(null,arguments)},sq=l._Step=function(){return(sq=l._Step=l.asm.Step).apply(null,arguments)},iq=l._StridedSlice=function(){return(iq=l._StridedSlice=l.asm.StridedSlice).apply(null,arguments)},aq=l._Sub=function(){return(aq=l._Sub=l.asm.Sub).apply(null,arguments)},lq=l._Sum=function(){return(lq=l._Sum=l.asm.Sum).apply(null,arguments)},uq=l._Tan=function(){return(uq=l._Tan=l.asm.Tan).apply(null,arguments)},cq=l._Tanh=function(){return(cq=l._Tanh=l.asm.Tanh).apply(null,arguments)},pq=l._TensorScatterUpdate=function(){return(pq=l._TensorScatterUpdate=l.asm.TensorScatterUpdate).apply(null,arguments)},mq=l._Tile=function(){return(mq=l._Tile=l.asm.Tile).apply(null,arguments)},fq=l._TopK=function(){return(fq=l._TopK=l.asm.TopK).apply(null,arguments)},dq=l._Transform=function(){return(dq=l._Transform=l.asm.Transform).apply(null,arguments)},hq=l._Transpose=function(){return(hq=l._Transpose=l.asm.Transpose).apply(null,arguments)},gq=l.__FusedMatMul=function(){return(gq=l.__FusedMatMul=l.asm._FusedMatMul).apply(null,arguments)},xq=l._malloc=function(){return(xq=l._malloc=l.asm.malloc).apply(null,arguments)},yq=l._free=function(){return(yq=l._free=l.asm.free).apply(null,arguments)},bq=l.__emscripten_tls_init=function(){return(bq=l.__emscripten_tls_init=l.asm._emscripten_tls_init).apply(null,arguments)},Wg=l._pthread_self=function(){return(Wg=l._pthread_self=l.asm.pthread_self).apply(null,arguments)},wq=l.___errno_location=function(){return(wq=l.___errno_location=l.asm.__errno_location).apply(null,arguments)},l_=l.__emscripten_thread_init=function(){return(l_=l.__emscripten_thread_init=l.asm._emscripten_thread_init).apply(null,arguments)},Iq=l.__emscripten_thread_crashed=function(){return(Iq=l.__emscripten_thread_crashed=l.asm._emscripten_thread_crashed).apply(null,arguments)},Cq=l._emscripten_main_thread_process_queued_calls=function(){return(Cq=l._emscripten_main_thread_process_queued_calls=l.asm.emscripten_main_thread_process_queued_calls).apply(null,arguments)},vq=l._emscripten_main_browser_thread_id=function(){return(vq=l._emscripten_main_browser_thread_id=l.asm.emscripten_main_browser_thread_id).apply(null,arguments)},u_=l._emscripten_run_in_main_runtime_thread_js=function(){return(u_=l._emscripten_run_in_main_runtime_thread_js=l.asm.emscripten_run_in_main_runtime_thread_js).apply(null,arguments)},Sq=l._emscripten_dispatch_to_thread_=function(){return(Sq=l._emscripten_dispatch_to_thread_=l.asm.emscripten_dispatch_to_thread_).apply(null,arguments)},c_=l.__emscripten_proxy_execute_task_queue=function(){return(c_=l.__emscripten_proxy_execute_task_queue=l.asm._emscripten_proxy_execute_task_queue).apply(null,arguments)},i0=l.__emscripten_thread_free_data=function(){return(i0=l.__emscripten_thread_free_data=l.asm._emscripten_thread_free_data).apply(null,arguments)},p_=l.__emscripten_thread_exit=function(){return(p_=l.__emscripten_thread_exit=l.asm._emscripten_thread_exit).apply(null,arguments)},m_=l._emscripten_stack_set_limits=function(){return(m_=l._emscripten_stack_set_limits=l.asm.emscripten_stack_set_limits).apply(null,arguments)},a0=l.stackSave=function(){return(a0=l.stackSave=l.asm.stackSave).apply(null,arguments)},Ug=l.stackRestore=function(){return(Ug=l.stackRestore=l.asm.stackRestore).apply(null,arguments)},Hg=l.stackAlloc=function(){return(Hg=l.stackAlloc=l.asm.stackAlloc).apply(null,arguments)},Nq=l.dynCall_iijjiiii=function(){return(Nq=l.dynCall_iijjiiii=l.asm.dynCall_iijjiiii).apply(null,arguments)},kq=l.dynCall_jiji=function(){return(kq=l.dynCall_jiji=l.asm.dynCall_jiji).apply(null,arguments)};l.keepRuntimeAlive=Wo,l.wasmMemory=it,l.cwrap=fv,l.ExitStatus=sc,l.PThread=Xt;var qg;_a=function M(){qg||f_(),qg||(_a=M)};function f_(M){if(M=M||d,ql>0)return;if(I){c(l),Ar(),startWorker(l);return}if(Ei(),ql>0)return;function U(){qg||(qg=!0,l.calledRun=!0,!gt&&(Ar(),c(l),l.onRuntimeInitialized&&l.onRuntimeInitialized(),Ta()))}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()();f_();var Kg;m&&(Kg={uncaughtException:process.listeners("uncaughtException").filter(function(M){return!m.uncaughtException.indexOf(M)>-1}),unhandledRejection:process.listeners("unhandledRejection").filter(function(M){return!m.unhandledRejection.indexOf(M)>-1})});var jg;if(typeof WasmBackendModule!="undefined")jg=WasmBackendModule;else if(typeof t!="undefined")jg=t;else throw new Error("Could not find wasm module in post.js");if(Kg){var Tq=jg._dispose;jg._dispose=function(){Tq(),Kg.uncaughtException.forEach(function(M){process.removeListener("uncaughtException",M)}),Kg.unhandledRejection.forEach(function(M){process.removeListener("unhandledRejection",M)})}}return t.ready}})();typeof EC=="object"&&typeof Z1=="object"?Z1.exports=Y1:typeof define=="function"&&define.amd?define([],function(){return Y1}):typeof EC=="object"&&(EC.WasmBackendModuleThreadedSimd=Y1)});var GH=wr((Mrr,VH)=>{VH.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")+"//# sourceURL="+f)},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.startWorker=instance=>{Module=instance;postMessage({"cmd":"loaded"})};self.onmessage=e=>{try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;for(const handler of e.data.handlers){Module[handler]=function(){postMessage({cmd:"callHandler",handler:handler,args:[...arguments]})}}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)}else if(e.data.cmd==="run"){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 WH=wr((AC,Q1)=>{var J1=(()=>{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(j,ut){n=j,o=ut});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=(j,ut)=>{throw ut},c=typeof window=="object",p=typeof importScripts=="function",m=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",f="";function d(j){return e.locateFile?e.locateFile(j,f):f+j}var h,g,x,b;function w(j){if(j instanceof _p)return;A("exiting due to exception: "+j)}if(m){var I=pw(),N=X1();p?f=N.dirname(f)+"/":f=__dirname+"/",h=(j,ut)=>(j=Ei(j)?new URL(j):N.normalize(j),I.readFileSync(j,ut?void 0:"utf8")),x=j=>{var ut=h(j,!0);return ut.buffer||(ut=new Uint8Array(ut)),ut},g=(j,ut,Ft)=>{j=Ei(j)?new URL(j):N.normalize(j),I.readFile(j,function(pe,Xe){pe?Ft(pe):ut(Xe.buffer)})},process.argv.length>1&&(u=process.argv[1].replace(/\\/g,"/")),a=process.argv.slice(2),process.on("uncaughtException",function(j){if(!(j instanceof _p))throw j}),process.on("unhandledRejection",function(j){throw j}),l=(j,ut)=>{if(fe())throw process.exitCode=j,ut;w(ut),process.exit(j)},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=j=>{var ut=new XMLHttpRequest;return ut.open("GET",j,!1),ut.send(null),ut.responseText},p&&(x=j=>{var ut=new XMLHttpRequest;return ut.open("GET",j,!1),ut.responseType="arraybuffer",ut.send(null),new Uint8Array(ut.response)}),g=(j,ut,Ft)=>{var pe=new XMLHttpRequest;pe.open("GET",j,!0),pe.responseType="arraybuffer",pe.onload=()=>{if(pe.status==200||pe.status==0&&pe.response){ut(pe.response);return}Ft()},pe.onerror=Ft,pe.send(null)},b=j=>document.title=j);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 D=4,F;e.wasmBinary&&(F=e.wasmBinary);var P=e.noExitRuntime||!0;typeof WebAssembly!="object"&&Qr("no native wasm support detected");var V,G=!1,W;function q(j,ut){j||Qr(ut)}var H=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function K(j,ut,Ft){ut>>>=0;for(var pe=ut+Ft,Xe=ut;j[Xe]&&!(Xe>=pe);)++Xe;if(Xe-ut>16&&j.buffer&&H)return H.decode(j.subarray(ut,Xe));for(var Ye="";ut>10,56320|oo&1023)}}return Ye}function X(j,ut){return j>>>=0,j?K(at,j,ut):""}function Z(j,ut,Ft,pe){if(Ft>>>=0,!(pe>0))return 0;for(var Xe=Ft,Ye=Ft+pe-1,se=0;se=55296&&ne<=57343){var br=j.charCodeAt(++se);ne=65536+((ne&1023)<<10)|br&1023}if(ne<=127){if(Ft>=Ye)break;ut[Ft++>>>0]=ne}else if(ne<=2047){if(Ft+1>=Ye)break;ut[Ft++>>>0]=192|ne>>6,ut[Ft++>>>0]=128|ne&63}else if(ne<=65535){if(Ft+2>=Ye)break;ut[Ft++>>>0]=224|ne>>12,ut[Ft++>>>0]=128|ne>>6&63,ut[Ft++>>>0]=128|ne&63}else{if(Ft+3>=Ye)break;ut[Ft++>>>0]=240|ne>>18,ut[Ft++>>>0]=128|ne>>12&63,ut[Ft++>>>0]=128|ne>>6&63,ut[Ft++>>>0]=128|ne&63}}return ut[Ft>>>0]=0,Ft-Xe}function et(j,ut,Ft){return Z(j,at,ut,Ft)}var nt,st,at,ot,it,mt,gt,Ct,Rt;function Dt(j){nt=j,e.HEAP8=st=new Int8Array(j),e.HEAP16=ot=new Int16Array(j),e.HEAP32=mt=new Int32Array(j),e.HEAPU8=at=new Uint8Array(j),e.HEAPU16=it=new Uint16Array(j),e.HEAPU32=gt=new Uint32Array(j),e.HEAPF32=Ct=new Float32Array(j),e.HEAPF64=Rt=new Float64Array(j)}var Ht=e.INITIAL_MEMORY||16777216,qt,ce=[],ge=[],re=[],xe=!1;function fe(){return P}function Ae(){if(e.preRun)for(typeof e.preRun=="function"&&(e.preRun=[e.preRun]);e.preRun.length;)lr(e.preRun.shift());_a(ce)}function De(){xe=!0,_a(ge)}function Ln(){if(e.postRun)for(typeof e.postRun=="function"&&(e.postRun=[e.postRun]);e.postRun.length;)Vr(e.postRun.shift());_a(re)}function lr(j){ce.unshift(j)}function eo(j){ge.unshift(j)}function Vr(j){re.unshift(j)}var je=0,Gr=null,Wr=null;function ro(j){je++,e.monitorRunDependencies&&e.monitorRunDependencies(je)}function no(j){if(je--,e.monitorRunDependencies&&e.monitorRunDependencies(je),je==0&&(Gr!==null&&(clearInterval(Gr),Gr=null),Wr)){var ut=Wr;Wr=null,ut()}}function Qr(j){e.onAbort&&e.onAbort(j),j="Aborted("+j+")",A(j),G=!0,W=1,j+=". Build with -sASSERTIONS for more info.";var ut=new WebAssembly.RuntimeError(j);throw o(ut),ut}var ka="data:application/octet-stream;base64,";function Wo(j){return j.startsWith(ka)}function Ei(j){return j.startsWith("file://")}var Ar;Ar="tfjs-backend-wasm.wasm",Wo(Ar)||(Ar=d(Ar));function Ta(j){try{if(j==Ar&&F)return new Uint8Array(F);if(x)return x(j);throw"both async and sync fetching of the wasm failed"}catch(ut){Qr(ut)}}function qd(){if(!F&&(c||p)){if(typeof fetch=="function"&&!Ei(Ar))return fetch(Ar,{credentials:"same-origin"}).then(function(j){if(!j.ok)throw"failed to load wasm binary file at '"+Ar+"'";return j.arrayBuffer()}).catch(function(){return Ta(Ar)});if(g)return new Promise(function(j,ut){g(Ar,function(Ft){j(new Uint8Array(Ft))},ut)})}return Promise.resolve().then(function(){return Ta(Ar)})}function Kd(){var j={env:jd,wasi_snapshot_preview1:jd};function ut(se,ne){var br=se.exports;e.asm=br,V=e.asm.memory,Dt(V.buffer),qt=e.asm.__indirect_function_table,eo(e.asm.__wasm_call_ctors),no("wasm-instantiate")}ro("wasm-instantiate");function Ft(se){ut(se.instance)}function pe(se){return qd().then(function(ne){return WebAssembly.instantiate(ne,j)}).then(function(ne){return ne}).then(se,function(ne){A("failed to asynchronously prepare wasm: "+ne),Qr(ne)})}function Xe(){return!F&&typeof WebAssembly.instantiateStreaming=="function"&&!Wo(Ar)&&!Ei(Ar)&&!m&&typeof fetch=="function"?fetch(Ar,{credentials:"same-origin"}).then(function(se){var ne=WebAssembly.instantiateStreaming(se,j);return ne.then(Ft,function(br){return A("wasm streaming compile failed: "+br),A("falling back to ArrayBuffer instantiation"),pe(Ft)})}):pe(Ft)}if(e.instantiateWasm)try{var Ye=e.instantiateWasm(j,ut);return Ye}catch(se){A("Module.instantiateWasm callback failed with error: "+se),o(se)}return Xe().catch(o),{}}var o_,ql;function _p(j){this.name="ExitStatus",this.message="Program terminated with exit("+j+")",this.status=j}function _a(j){for(;j.length>0;)j.shift()(e)}function $C(){Qr("")}function Cg(){return 4294901760}function oc(){return Cg()}function RC(j,ut,Ft){at.copyWithin(j>>>0,ut>>>0,ut+Ft>>>0)}function vg(j){try{return V.grow(j-nt.byteLength+65535>>>16),Dt(V.buffer),1}catch(ut){}}function Ep(j){var ut=at.length;j=j>>>0;var Ft=Cg();if(j>Ft)return!1;let pe=(br,oo)=>br+(oo-br%oo)%oo;for(var Xe=1;Xe<=4;Xe*=2){var Ye=ut*(1+.2/Xe);Ye=Math.min(Ye,j+100663296);var se=Math.min(Ft,pe(Math.max(j,Ye),65536)),ne=vg(se);if(ne)return!0}return!1}var tn={varargs:void 0,get:function(){tn.varargs+=4;var j=mt[tn.varargs-4>>>2];return j},getStr:function(j){var ut=X(j);return ut}};function Sg(j){return 52}function FC(j,ut,Ft,pe,Xe){return 70}var OC=[null,[],[]];function s_(j,ut){var Ft=OC[j];ut===0||ut===10?((j===1?E:A)(K(Ft,0)),Ft.length=0):Ft.push(ut)}function i_(j,ut,Ft,pe){for(var Xe=0,Ye=0;Ye>>2],ne=gt[ut+4>>>2];ut+=8;for(var br=0;br>>0]);Xe+=ne}return gt[pe>>>2]=Xe,0}function Ng(j){var ut=e["_"+j];return ut}function sc(j,ut){st.set(j,ut>>>0)}function PC(j,ut,Ft,pe,Xe){var Ye={string:sn=>{var jl=0;if(sn!=null&&sn!==0){var Gg=(sn.length<<2)+1;jl=Qd(Gg),et(sn,jl,Gg)}return jl},array:sn=>{var jl=Qd(sn.length);return sc(sn,jl),jl}};function se(sn){return ut==="string"?X(sn):ut==="boolean"?!!sn:sn}var ne=Ng(j),br=[],oo=0;if(pe)for(var Ea=0;Ease==="number"||se==="boolean"),Ye=ut!=="string";return Ye&&Xe&&!pe?Ng(j):function(){return PC(j,ut,Ft,arguments,pe)}}var jd={abort:$C,emscripten_get_heap_max:oc,emscripten_memcpy_big:RC,emscripten_resize_heap:Ep,fd_close:Sg,fd_seek:FC,fd_write:i_},LC=Kd(),kg=e.___wasm_call_ctors=function(){return(kg=e.___wasm_call_ctors=e.asm.__wasm_call_ctors).apply(null,arguments)},Tg=e._init=function(){return(Tg=e._init=e.asm.init).apply(null,arguments)},zC=e._init_with_threads_count=function(){return(zC=e._init_with_threads_count=e.asm.init_with_threads_count).apply(null,arguments)},_g=e._get_threads_count=function(){return(_g=e._get_threads_count=e.asm.get_threads_count).apply(null,arguments)},BC=e._register_tensor=function(){return(BC=e._register_tensor=e.asm.register_tensor).apply(null,arguments)},Xt=e._dispose_data=function(){return(Xt=e._dispose_data=e.asm.dispose_data).apply(null,arguments)},Xd=e._dispose=function(){return(Xd=e._dispose=e.asm.dispose).apply(null,arguments)},VC=e._Abs=function(){return(VC=e._Abs=e.asm.Abs).apply(null,arguments)},Eg=e._Acos=function(){return(Eg=e._Acos=e.asm.Acos).apply(null,arguments)},Ap=e._Acosh=function(){return(Ap=e._Acosh=e.asm.Acosh).apply(null,arguments)},GC=e._Add=function(){return(GC=e._Add=e.asm.Add).apply(null,arguments)},WC=e._AddN=function(){return(WC=e._AddN=e.asm.AddN).apply(null,arguments)},UC=e._All=function(){return(UC=e._All=e.asm.All).apply(null,arguments)},HC=e._Any=function(){return(HC=e._Any=e.asm.Any).apply(null,arguments)},qC=e._ArgMax=function(){return(qC=e._ArgMax=e.asm.ArgMax).apply(null,arguments)},Ag=e._ArgMin=function(){return(Ag=e._ArgMin=e.asm.ArgMin).apply(null,arguments)},Dg=e._Asin=function(){return(Dg=e._Asin=e.asm.Asin).apply(null,arguments)},KC=e._Asinh=function(){return(KC=e._Asinh=e.asm.Asinh).apply(null,arguments)},jC=e._Atan=function(){return(jC=e._Atan=e.asm.Atan).apply(null,arguments)},XC=e._Atan2=function(){return(XC=e._Atan2=e.asm.Atan2).apply(null,arguments)},Yd=e._Atanh=function(){return(Yd=e._Atanh=e.asm.Atanh).apply(null,arguments)},YC=e._AvgPool=function(){return(YC=e._AvgPool=e.asm.AvgPool).apply(null,arguments)},ZC=e._AvgPool3D=function(){return(ZC=e._AvgPool3D=e.asm.AvgPool3D).apply(null,arguments)},JC=e._AvgPool3DGrad=function(){return(JC=e._AvgPool3DGrad=e.asm.AvgPool3DGrad).apply(null,arguments)},ic=e._AvgPoolGrad=function(){return(ic=e._AvgPoolGrad=e.asm.AvgPoolGrad).apply(null,arguments)},QC=e._BatchMatMul=function(){return(QC=e._BatchMatMul=e.asm.BatchMatMul).apply(null,arguments)},tv=e._Bincount=function(){return(tv=e._Bincount=e.asm.Bincount).apply(null,arguments)},$g=e._BitwiseAnd=function(){return($g=e._BitwiseAnd=e.asm.BitwiseAnd).apply(null,arguments)},ev=e._Ceil=function(){return(ev=e._Ceil=e.asm.Ceil).apply(null,arguments)},Zd=e._ClipByValue=function(){return(Zd=e._ClipByValue=e.asm.ClipByValue).apply(null,arguments)},rv=e._Conv2D=function(){return(rv=e._Conv2D=e.asm.Conv2D).apply(null,arguments)},nv=e._Conv2DBackpropInput=function(){return(nv=e._Conv2DBackpropInput=e.asm.Conv2DBackpropInput).apply(null,arguments)},ov=e._Conv3D=function(){return(ov=e._Conv3D=e.asm.Conv3D).apply(null,arguments)},Kl=e._Conv3DBackpropFilterV2=function(){return(Kl=e._Conv3DBackpropFilterV2=e.asm.Conv3DBackpropFilterV2).apply(null,arguments)},Jd=e._Conv3DBackpropInputV2=function(){return(Jd=e._Conv3DBackpropInputV2=e.asm.Conv3DBackpropInputV2).apply(null,arguments)},sv=e._Cos=function(){return(sv=e._Cos=e.asm.Cos).apply(null,arguments)},iv=e._Cosh=function(){return(iv=e._Cosh=e.asm.Cosh).apply(null,arguments)},av=e._CropAndResize=function(){return(av=e._CropAndResize=e.asm.CropAndResize).apply(null,arguments)},lv=e._Cumprod=function(){return(lv=e._Cumprod=e.asm.Cumprod).apply(null,arguments)},Rg=e._Cumsum=function(){return(Rg=e._Cumsum=e.asm.Cumsum).apply(null,arguments)},Fg=e._DenseBincount=function(){return(Fg=e._DenseBincount=e.asm.DenseBincount).apply(null,arguments)},uv=e._DepthToSpace=function(){return(uv=e._DepthToSpace=e.asm.DepthToSpace).apply(null,arguments)},cv=e._DepthwiseConv2dNative=function(){return(cv=e._DepthwiseConv2dNative=e.asm.DepthwiseConv2dNative).apply(null,arguments)},Og=e._Diag=function(){return(Og=e._Diag=e.asm.Diag).apply(null,arguments)},Pg=e._Dilation2D=function(){return(Pg=e._Dilation2D=e.asm.Dilation2D).apply(null,arguments)},pv=e._Dilation2DBackpropFilter=function(){return(pv=e._Dilation2DBackpropFilter=e.asm.Dilation2DBackpropFilter).apply(null,arguments)},mv=e._Dilation2DBackpropInput=function(){return(mv=e._Dilation2DBackpropInput=e.asm.Dilation2DBackpropInput).apply(null,arguments)},fv=e._Elu=function(){return(fv=e._Elu=e.asm.Elu).apply(null,arguments)},dv=e._EluGrad=function(){return(dv=e._EluGrad=e.asm.EluGrad).apply(null,arguments)},Mg=e._Equal=function(){return(Mg=e._Equal=e.asm.Equal).apply(null,arguments)},a_=e._Erf=function(){return(a_=e._Erf=e.asm.Erf).apply(null,arguments)},hv=e._Exp=function(){return(hv=e._Exp=e.asm.Exp).apply(null,arguments)},gv=e._Expm1=function(){return(gv=e._Expm1=e.asm.Expm1).apply(null,arguments)},xv=e._FlipLeftRight=function(){return(xv=e._FlipLeftRight=e.asm.FlipLeftRight).apply(null,arguments)},yv=e._Floor=function(){return(yv=e._Floor=e.asm.Floor).apply(null,arguments)},bv=e._FloorDiv=function(){return(bv=e._FloorDiv=e.asm.FloorDiv).apply(null,arguments)},wv=e._FusedBatchNorm=function(){return(wv=e._FusedBatchNorm=e.asm.FusedBatchNorm).apply(null,arguments)},Iv=e._FusedConv2D=function(){return(Iv=e._FusedConv2D=e.asm.FusedConv2D).apply(null,arguments)},Cv=e._FusedDepthwiseConv2D=function(){return(Cv=e._FusedDepthwiseConv2D=e.asm.FusedDepthwiseConv2D).apply(null,arguments)},vv=e._Gather=function(){return(vv=e._Gather=e.asm.Gather).apply(null,arguments)},Sv=e._GatherNd=function(){return(Sv=e._GatherNd=e.asm.GatherNd).apply(null,arguments)},Nv=e._Greater=function(){return(Nv=e._Greater=e.asm.Greater).apply(null,arguments)},kv=e._GreaterEqual=function(){return(kv=e._GreaterEqual=e.asm.GreaterEqual).apply(null,arguments)},Tv=e._IsFinite=function(){return(Tv=e._IsFinite=e.asm.IsFinite).apply(null,arguments)},_v=e._IsInf=function(){return(_v=e._IsInf=e.asm.IsInf).apply(null,arguments)},Ev=e._IsNan=function(){return(Ev=e._IsNan=e.asm.IsNan).apply(null,arguments)},Av=e._LRN=function(){return(Av=e._LRN=e.asm.LRN).apply(null,arguments)},Dv=e._LRNGrad=function(){return(Dv=e._LRNGrad=e.asm.LRNGrad).apply(null,arguments)},$v=e._LeakyRelu=function(){return($v=e._LeakyRelu=e.asm.LeakyRelu).apply(null,arguments)},Rv=e._Less=function(){return(Rv=e._Less=e.asm.Less).apply(null,arguments)},Fv=e._LessEqual=function(){return(Fv=e._LessEqual=e.asm.LessEqual).apply(null,arguments)},Ov=e._LinSpace=function(){return(Ov=e._LinSpace=e.asm.LinSpace).apply(null,arguments)},Pv=e._Log=function(){return(Pv=e._Log=e.asm.Log).apply(null,arguments)},Mv=e._Log1p=function(){return(Mv=e._Log1p=e.asm.Log1p).apply(null,arguments)},Lv=e._LogicalAnd=function(){return(Lv=e._LogicalAnd=e.asm.LogicalAnd).apply(null,arguments)},zv=e._LogicalNot=function(){return(zv=e._LogicalNot=e.asm.LogicalNot).apply(null,arguments)},Bv=e._LogicalOr=function(){return(Bv=e._LogicalOr=e.asm.LogicalOr).apply(null,arguments)},Vv=e._LogicalXor=function(){return(Vv=e._LogicalXor=e.asm.LogicalXor).apply(null,arguments)},Gv=e._Max=function(){return(Gv=e._Max=e.asm.Max).apply(null,arguments)},Wv=e._MaxPool=function(){return(Wv=e._MaxPool=e.asm.MaxPool).apply(null,arguments)},Uv=e._MaxPool3D=function(){return(Uv=e._MaxPool3D=e.asm.MaxPool3D).apply(null,arguments)},Hv=e._MaxPool3DGrad=function(){return(Hv=e._MaxPool3DGrad=e.asm.MaxPool3DGrad).apply(null,arguments)},qv=e._MaxPoolGrad=function(){return(qv=e._MaxPoolGrad=e.asm.MaxPoolGrad).apply(null,arguments)},Kv=e._MaxPoolWithArgmax=function(){return(Kv=e._MaxPoolWithArgmax=e.asm.MaxPoolWithArgmax).apply(null,arguments)},jv=e._Maximum=function(){return(jv=e._Maximum=e.asm.Maximum).apply(null,arguments)},Xv=e._Mean=function(){return(Xv=e._Mean=e.asm.Mean).apply(null,arguments)},Yv=e._Min=function(){return(Yv=e._Min=e.asm.Min).apply(null,arguments)},Zv=e._Minimum=function(){return(Zv=e._Minimum=e.asm.Minimum).apply(null,arguments)},Jv=e._MirrorPad=function(){return(Jv=e._MirrorPad=e.asm.MirrorPad).apply(null,arguments)},Qv=e._Mod=function(){return(Qv=e._Mod=e.asm.Mod).apply(null,arguments)},tS=e._Multinomial=function(){return(tS=e._Multinomial=e.asm.Multinomial).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._Reciprocal=function(){return(fS=e._Reciprocal=e.asm.Reciprocal).apply(null,arguments)},dS=e._Relu=function(){return(dS=e._Relu=e.asm.Relu).apply(null,arguments)},hS=e._Relu6=function(){return(hS=e._Relu6=e.asm.Relu6).apply(null,arguments)},gS=e._ResizeBilinear=function(){return(gS=e._ResizeBilinear=e.asm.ResizeBilinear).apply(null,arguments)},xS=e._ResizeBilinearGrad=function(){return(xS=e._ResizeBilinearGrad=e.asm.ResizeBilinearGrad).apply(null,arguments)},yS=e._ResizeNearestNeighbor=function(){return(yS=e._ResizeNearestNeighbor=e.asm.ResizeNearestNeighbor).apply(null,arguments)},bS=e._ResizeNearestNeighborGrad=function(){return(bS=e._ResizeNearestNeighborGrad=e.asm.ResizeNearestNeighborGrad).apply(null,arguments)},wS=e._Reverse=function(){return(wS=e._Reverse=e.asm.Reverse).apply(null,arguments)},IS=e._RotateWithOffset=function(){return(IS=e._RotateWithOffset=e.asm.RotateWithOffset).apply(null,arguments)},CS=e._Round=function(){return(CS=e._Round=e.asm.Round).apply(null,arguments)},vS=e._Rsqrt=function(){return(vS=e._Rsqrt=e.asm.Rsqrt).apply(null,arguments)},SS=e._ScatterNd=function(){return(SS=e._ScatterNd=e.asm.ScatterNd).apply(null,arguments)},NS=e._SearchSorted=function(){return(NS=e._SearchSorted=e.asm.SearchSorted).apply(null,arguments)},kS=e._SelectV2=function(){return(kS=e._SelectV2=e.asm.SelectV2).apply(null,arguments)},TS=e._Selu=function(){return(TS=e._Selu=e.asm.Selu).apply(null,arguments)},_S=e._Sigmoid=function(){return(_S=e._Sigmoid=e.asm.Sigmoid).apply(null,arguments)},ES=e._Sign=function(){return(ES=e._Sign=e.asm.Sign).apply(null,arguments)},AS=e._Sin=function(){return(AS=e._Sin=e.asm.Sin).apply(null,arguments)},DS=e._Sinh=function(){return(DS=e._Sinh=e.asm.Sinh).apply(null,arguments)},$S=e._Softmax=function(){return($S=e._Softmax=e.asm.Softmax).apply(null,arguments)},RS=e._Softplus=function(){return(RS=e._Softplus=e.asm.Softplus).apply(null,arguments)},FS=e._SparseFillEmptyRows=function(){return(FS=e._SparseFillEmptyRows=e.asm.SparseFillEmptyRows).apply(null,arguments)},OS=e._SparseReshape=function(){return(OS=e._SparseReshape=e.asm.SparseReshape).apply(null,arguments)},PS=e._SparseSegmentReduction=function(){return(PS=e._SparseSegmentReduction=e.asm.SparseSegmentReduction).apply(null,arguments)},MS=e._SparseToDense=function(){return(MS=e._SparseToDense=e.asm.SparseToDense).apply(null,arguments)},LS=e._Sqrt=function(){return(LS=e._Sqrt=e.asm.Sqrt).apply(null,arguments)},zS=e._Square=function(){return(zS=e._Square=e.asm.Square).apply(null,arguments)},BS=e._SquaredDifference=function(){return(BS=e._SquaredDifference=e.asm.SquaredDifference).apply(null,arguments)},VS=e._Step=function(){return(VS=e._Step=e.asm.Step).apply(null,arguments)},GS=e._StridedSlice=function(){return(GS=e._StridedSlice=e.asm.StridedSlice).apply(null,arguments)},WS=e._Sub=function(){return(WS=e._Sub=e.asm.Sub).apply(null,arguments)},US=e._Sum=function(){return(US=e._Sum=e.asm.Sum).apply(null,arguments)},HS=e._Tan=function(){return(HS=e._Tan=e.asm.Tan).apply(null,arguments)},qS=e._Tanh=function(){return(qS=e._Tanh=e.asm.Tanh).apply(null,arguments)},KS=e._TensorScatterUpdate=function(){return(KS=e._TensorScatterUpdate=e.asm.TensorScatterUpdate).apply(null,arguments)},jS=e._Tile=function(){return(jS=e._Tile=e.asm.Tile).apply(null,arguments)},XS=e._TopK=function(){return(XS=e._TopK=e.asm.TopK).apply(null,arguments)},YS=e._Transform=function(){return(YS=e._Transform=e.asm.Transform).apply(null,arguments)},ZS=e._Transpose=function(){return(ZS=e._Transpose=e.asm.Transpose).apply(null,arguments)},JS=e.__FusedMatMul=function(){return(JS=e.__FusedMatMul=e.asm._FusedMatMul).apply(null,arguments)},QS=e._malloc=function(){return(QS=e._malloc=e.asm.malloc).apply(null,arguments)},t0=e._free=function(){return(t0=e._free=e.asm.free).apply(null,arguments)},e0=e.___errno_location=function(){return(e0=e.___errno_location=e.asm.__errno_location).apply(null,arguments)},Lg=e.stackSave=function(){return(Lg=e.stackSave=e.asm.stackSave).apply(null,arguments)},zg=e.stackRestore=function(){return(zg=e.stackRestore=e.asm.stackRestore).apply(null,arguments)},Qd=e.stackAlloc=function(){return(Qd=e.stackAlloc=e.asm.stackAlloc).apply(null,arguments)},r0=e.dynCall_iijjiiii=function(){return(r0=e.dynCall_iijjiiii=e.asm.dynCall_iijjiiii).apply(null,arguments)},n0=e.dynCall_jiji=function(){return(n0=e.dynCall_jiji=e.asm.dynCall_jiji).apply(null,arguments)};e.cwrap=MC;var Dp;Wr=function j(){Dp||Bg(),Dp||(Wr=j)};function Bg(j){if(j=j||a,je>0||(Ae(),je>0))return;function ut(){Dp||(Dp=!0,e.calledRun=!0,!G&&(De(),n(e),e.onRuntimeInitialized&&e.onRuntimeInitialized(),Ln()))}e.setStatus?(e.setStatus("Running..."),setTimeout(function(){setTimeout(function(){e.setStatus("")},1),ut()},1)):ut()}if(e.preInit)for(typeof e.preInit=="function"&&(e.preInit=[e.preInit]);e.preInit.length>0;)e.preInit.pop()();Bg();var $p;s&&($p={uncaughtException:process.listeners("uncaughtException").filter(function(j){return!s.uncaughtException.indexOf(j)>-1}),unhandledRejection:process.listeners("unhandledRejection").filter(function(j){return!s.unhandledRejection.indexOf(j)>-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($p){var o0=Rp._dispose;Rp._dispose=function(){o0(),$p.uncaughtException.forEach(function(j){process.removeListener("uncaughtException",j)}),$p.unhandledRejection.forEach(function(j){process.removeListener("unhandledRejection",j)})}}return t.ready}})();typeof AC=="object"&&typeof Q1=="object"?Q1.exports=J1:typeof define=="function"&&define.amd?define([],function(){return J1}):typeof AC=="object"&&(AC.WasmBackendModule=J1)});var Da=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}},Uo=class{refCount(t){return Bn("refCount")}incRef(t){return Bn("incRef")}timerAvailable(){return!0}time(t){return Bn("time")}read(t){return Bn("read")}readSync(t){return Bn("readSync")}readToGPU(t,e){return Bn("readToGPU")}numDataIds(){return Bn("numDataIds")}disposeData(t,e){return Bn("disposeData")}write(t,e,n){return Bn("write")}move(t,e,n,o,s){return Bn("move")}createTensorFromGPUData(t,e,n){return Bn("createTensorFromGPUData")}memory(){return Bn("memory")}floatPrecision(){return Bn("floatPrecision")}epsilon(){return this.floatPrecision()===32?1e-7:1e-4}dispose(){return Bn("dispose")}};function Bn(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 g_(r){let t=r.length,e=0;for(;t>0;)e=Math.random()*t|0,t--,Xg(r,t,e)}function Oq(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--,Xg(r,e,n),Xg(t,e,n)}function Op(r,t,e){return Math.max(r,Math.min(t,e))}function Pq(r){return r%2===0?r:r+1}function Xg(r,t,e){let n=r[t];r[t]=r[e],r[e]=n}function Mq(r){let t=0;for(let e=0;ee+` Shapes ${r} and ${t} must match`)}function io(r){_(r!=null,()=>"The input to the tensor constructor must be a non-null value.")}function te(r){if(r.length===0)return 1;let t=r[0];for(let e=1;e0,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 Hq(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 fr(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=>$a(n)),()=>`All values in axis param must be integers but got axis ${r}`),r.map(n=>n<0?e+n:n)}function p0(r,t){let e=[],n=[],o=t!=null&&Array.isArray(t)&&t.length===0,s=t==null||o?null:fr(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 m0(r,t){return Yg(r,t)}function Yg(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 f0(r,t){for(let e=0;et+=e.length),t}function Ho(r){return typeof r=="string"||r instanceof String}function x_(r){return typeof r=="boolean"}function y_(r){return typeof r=="number"}function Yl(r){return Array.isArray(r)?Yl(r[0]):r instanceof Float32Array?"float32":r instanceof Int32Array||r instanceof Uint8Array||r instanceof Uint8ClampedArray?"int32":y_(r)?"float32":Ho(r)?"string":x_(r)?"bool":"float32"}function Ai(r){return!!(r&&r.constructor&&r.call&&r.apply)}function Mp(r,t){for(let e=t;e=0;--n)e[n]=e[n+1]*r[n+1];return e}function b_(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 b_(0,r,t,e)}function Kq(r,t){if(Array.isArray(r))return r;if(t==="float32")return r instanceof Float32Array?r:new Float32Array(r);if(t==="int32")return r instanceof Int32Array?r:new Int32Array(r);if(t==="bool"||t==="string")return Uint8Array.from(new Int32Array(r));throw new Error(`Unknown dtype ${t}`)}function eh(r,t){let e=Lp(r,t);for(let n=0;nn*o,1);if(t==null||t==="float32")return ac(r,new Float32Array(e));if(t==="int32")return ac(r,new Int32Array(e));if(t==="bool")return ac(r,new Uint8Array(e));throw new Error(`Unknown data type ${t}`)}function Me(r){r.forEach(t=>{_(Number.isInteger(t)&&t>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${r}].`)})}function Xq(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]=tK(o,s)})}};function Jq(r){let t={};return r.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(e,...n)=>(Qq(t,n[0],n[1]),n.join("="))),t}function Qq(r,t,e){r[decodeURIComponent(t)]=decodeURIComponent(e||"")}function tK(r,t){let e=t.toLowerCase();return e==="true"||e==="false"?e==="true":`${+e}`===e?+e:t}function L(){return g0}var g0=null;function I_(r){g0=r}var x0;function y0(){if(x0==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");x0=r}return x0}function eK(){let r=y0();return r._tfGlobals==null&&(r._tfGlobals=new Map),r._tfGlobals}function nh(r,t){let e=eK();if(e.has(r))return e.get(r);{let n=t();return e.set(r,n),e.get(r)}}var $i="Abs",qo="Acos",Ko="Acosh",ao="Add",jo="AddN",Ra="All",Fa="Any",Ri="ArgMax",Fi="ArgMin",Xo="Asin",Yo="Asinh",Zo="Atan",Jo="Atanh",Qo="Atan2",ts="AvgPool",Zl="AvgPoolGrad",Oi="AvgPool3D",Jl="AvgPool3DGrad",es="BatchMatMul",Pi="BatchToSpaceND",Oa="Bincount",Pa="BitwiseAnd",C_="BroadcastTo",Ql="BroadcastArgs",xo="Cast",rs="Ceil",yo="ClipByValue",zp="Complex",tu="ComplexAbs",Mi="Concat",ns="Conv2D",Bp="Conv2DBackpropFilter",os="Conv2DBackpropInput",ss="Conv3D",Ma="Conv3DBackpropFilterV2",La="Conv3DBackpropInputV2",is="Cos",as="Cosh",za="Cumprod",ls="Cumsum",Ba="CropAndResize",eu="DenseBincount",Va="DepthToSpace",us="DepthwiseConv2dNative",Vp="DepthwiseConv2dNativeBackpropFilter",Gp="DepthwiseConv2dNativeBackpropInput",ru="Diag",cs="Dilation2D",nu="Dilation2DBackpropInput",ou="Dilation2DBackpropFilter",Zg="Draw",ps="RealDiv",Wp="Einsum",ms="Elu",Ga="EluGrad",fs="Erf",Wa="Equal",ds="Exp",Li="ExpandDims",hs="Expm1",Up="FFT",su="Fill",Ua="FlipLeftRight",gs="Floor",xs="FloorDiv",ys="FusedBatchNorm",zi="GatherV2",Ha="GatherNd",qa="Greater",bs="GreaterEqual",bo="Identity",Hp="IFFT",qp="Imag",ws="IsFinite",Is="IsInf",Cs="IsNan",vs="LeakyRelu",Ka="Less",ja="LessEqual",Xa="LinSpace",Ss="Log",Ns="Log1p",Ya="LogicalAnd",Za="LogicalNot",Ja="LogicalOr",v_="LogicalXor",S_="LogSoftmax",Lmt="LowerBound",ks="LRN",Qa="LRNGrad",zmt="MatrixBandPart",Ts="Max",_s="Maximum",Es="MaxPool",iu="MaxPoolGrad",Bi="MaxPool3D",au="MaxPool3DGrad",lu="MaxPoolWithArgmax",As="Mean",Ds="Min",$s="Minimum",Rs="MirrorPad",Fs="Mod",tl="Multinomial",Os="Multiply",Vi="Neg",el="NotEqual",rl="NonMaxSuppressionV3",nl="NonMaxSuppressionV4",ol="NonMaxSuppressionV5",Gi="OnesLike",Ps="OneHot",Wi="Pack",Ms="PadV2",Bmt="Pool",Ls="Pow",zs="Prelu",Bs="Prod",Kp="RaggedGather",jp="RaggedRange",Xp="RaggedTensorToTensor",uu="Range",Yp="Real",Vs="Reciprocal",Gs="Relu",Ui="Reshape",Ws="ResizeNearestNeighbor",sl="ResizeNearestNeighborGrad",Us="ResizeBilinear",il="ResizeBilinearGrad",Hs="Relu6",qs="Reverse",Ks="Round",js="Rsqrt",al="ScatterNd",ll="TensorScatterUpdate",ul="SearchSorted",Hi="Select",Xs="Selu",qi="Slice",Ys="Sin",Zs="Sinh",Js="Sign",Qs="Sigmoid",ti="Softplus",ei="Sqrt",ri="Sum",Ki="SpaceToBatchND",ji="SplitV",ni="Softmax",cu="SparseFillEmptyRows",cl="SparseReshape",pu="SparseSegmentMean",mu="SparseSegmentSum",pl="SparseToDense",oi="SquaredDifference",fu="Square",cc="StaticRegexReplace",ml="StridedSlice",du="StringNGrams",hu="StringSplit",gu="StringToHashBucketFast",si="Sub",ii="Tan",ai="Tanh",lo="Tile",fl="TopK",dl="Transform",uo="Transpose",xu="Unique",Xi="Unpack",yu="UnsortedSegmentSum",Vmt="UpperBound",Yi="ZerosLike",wo="Step",oh="FromPixels",hl="RotateWithOffset",Zi="_FusedMatMul",Ji="FusedConv2D",Qi="FusedDepthwiseConv2D";function ta(...r){L().getBool("IS_TEST")||L().getBool("PROD")||console.warn(...r)}function rK(...r){L().getBool("IS_TEST")||L().getBool("PROD")||console.log(...r)}var Zp=nh("kernelRegistry",()=>new Map),sh=nh("gradRegistry",()=>new Map);function ih(r,t){let e=w0(r,t);return Zp.get(e)}function b0(r){return sh.get(r)}function Jg(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 pc(r){let{kernelName:t,backendName:e}=r,n=w0(t,e);Zp.has(n)&&ta(`The kernel '${t}' for backend '${e}' is already registered`),Zp.set(n,r)}function k_(r){let{kernelName:t}=r;sh.has(t)&&L().getBool("DEBUG")&&ta(`Overriding the gradient for '${t}'`),sh.set(t,r)}function qmt(r,t){let e=w0(r,t);if(!Zp.has(e))throw new Error(`The kernel '${r}' for backend '${t}' is not registered`);Zp.delete(e)}function Kmt(r){if(!sh.has(r))throw new Error(`The gradient '${r}' for backend is not registered`);sh.delete(r)}function jmt(r,t){Jg(r).forEach(n=>{let o=Object.assign({},n,{backendName:t});pc(o)})}function w0(r,t){return`${t}_${r}`}var y={};Kt(y,{arraysEqual:()=>an,arraysEqualWithNull:()=>c0,assert:()=>_,assertNonNegativeIntegerDimensions:()=>Me,assertNonNull:()=>io,assertShapesMatch:()=>Re,bytesFromStringArray:()=>h0,bytesPerElement:()=>Pp,checkConversionForErrors:()=>f0,clamp:()=>Op,computeStrides:()=>Di,convertBackendValuesAndArrayBuffer:()=>Kq,createScalarValue:()=>uK,createShuffledIndices:()=>Wq,decodeString:()=>em,distSquared:()=>zq,encodeString:()=>wu,fetch:()=>pK,fingerPrint64:()=>lK,flatten:()=>ui,getArrayFromDType:()=>Yg,getTypedArrayFromDType:()=>m0,hasEncodingLoss:()=>qq,hexToLong:()=>ah,indexToLoc:()=>Yq,inferDtype:()=>Yl,inferFromImplicitShape:()=>Hq,isBoolean:()=>x_,isFunction:()=>Ai,isInt:()=>$a,isNumber:()=>y_,isPromise:()=>uc,isScalarShape:()=>Bq,isString:()=>Ho,isTypedArray:()=>or,isValidDtype:()=>d0,locToIndex:()=>Xq,makeOnesTypedArray:()=>eh,makeZerosNestedTypedArray:()=>jq,makeZerosTypedArray:()=>Lp,nearestDivisor:()=>Mp,nearestLargerEven:()=>Pq,now:()=>gc,parseAxisParam:()=>fr,randUniform:()=>Lq,repeatedTry:()=>Uq,rightPad:()=>lc,shuffle:()=>g_,shuffleCombo:()=>Oq,sizeFromShape:()=>te,sizeToSquarishShape:()=>Gq,squeezeShape:()=>p0,sum:()=>Mq,swap:()=>Xg,tanh:()=>Vq,toNestedArray:()=>ac,toTypedArray:()=>tm});function Qg(r){return r instanceof Float32Array||r instanceof Int32Array||r instanceof Uint8Array||r instanceof Uint8ClampedArray}var S0=Xl(M_());var hc=S0.default||S0;function ah(r){return hc.fromString(r,!0,16)}var z_=ah("c3a5c85c97cb3127"),dc=ah("b492b66fbe98f273"),ln=ah("9ae16a3b2f90404f");function v0(r){return r.xor(r.shru(47))}function B_(r,t,e){let n=r.slice(t,t+e);return hc.fromBytes(Array.from(n),!0,!0)}function Le(r,t){return B_(r,t,8)}function L_(r,t){return B_(r,t,4)}function Dr(r,t){return t===0?r:r.shru(t).or(r.shl(64-t))}function bu(r,t,e=ah("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 oK(r,t,e,n,o,s){o=o.add(r),s=Dr(s.add(o).add(n),21);let i=o;return o=o.add(t),o=o.add(e),s=s.add(Dr(o,44)),[o.add(n),s.add(i)]}function ex(r,t,e,n){return oK(Le(r,t),Le(r,t+8),Le(r,t+16),Le(r,t+24),e,n)}function sK(r,t=r.length){if(t>=8){let e=ln.add(t*2),n=Le(r,0).add(ln),o=Le(r,t-8),s=Dr(o,37).mul(e).add(n),i=Dr(n,25).add(o).mul(e);return bu(s,i,e)}if(t>=4){let e=ln.add(t*2),n=L_(r,0);return bu(n.shl(3).add(t),L_(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 v0(ln.mul(s).xor(z_.mul(i))).mul(ln)}return ln}function iK(r,t=r.length){let e=ln.add(t*2),n=Le(r,0).mul(dc),o=Le(r,8),s=Le(r,t-8).mul(e),i=Le(r,t-16).mul(ln);return bu(Dr(n.add(o),43).add(Dr(s,30)).add(i),n.add(Dr(o.add(ln),18)).add(s),e)}function aK(r,t=r.length){let e=ln.add(t*2),n=Le(r,0).mul(ln),o=Le(r,8),s=Le(r,t-8).mul(e),i=Le(r,t-16).mul(ln),a=Dr(n.add(o),43).add(Dr(s,30)).add(i),u=bu(a,n.add(Dr(o.add(ln),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 bu(Dr(l.add(c),43).add(Dr(p,30)).add(m),l.add(Dr(c.add(n),18)).add(p),e)}function lK(r,t=r.length){let e=hc.fromNumber(81,!0);if(t<=32)return t<=16?sK(r,t):iK(r,t);if(t<=64)return aK(r,t);let n=e,o=e.mul(dc).add(113),s=v0(o.mul(ln).add(113)).mul(ln),i=[hc.UZERO,hc.UZERO],a=[hc.UZERO,hc.UZERO];n=n.mul(ln).add(Le(r,0));let u=0,l=(t-1>>6)*64,c=l+(t-1&63)-63;do n=Dr(n.add(o).add(i[0]).add(Le(r,u+8)),37).mul(dc),o=Dr(o.add(i[1]).add(Le(r,u+48)),42).mul(dc),n=n.xor(a[1]),o=o.add(i[0]).add(Le(r,u+40)),s=Dr(s.add(a[0]),33).mul(dc),i=ex(r,u,i[1].mul(dc),n.add(a[0])),a=ex(r,u+32,s.add(a[1]),o.add(Le(r,u+16))),[s,n]=[n,s],u+=64;while(u!==l);let p=dc.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=Dr(n.add(o).add(i[0]).add(Le(r,u+8)),37).mul(p),o=Dr(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=Dr(s.add(a[0]),33).mul(p),i=ex(r,u,i[1].mul(p),n.add(a[0])),a=ex(r,u+32,s.add(a[1]),o.add(Le(r,u+16))),[s,n]=[n,s],bu(bu(i[0],a[0],p).add(v0(o).mul(z_)).add(s),bu(i[1],a[1],p).add(n),p)}function uK(r,t){return t==="string"?wu(r):tm([r],t)}function cK(r,t){return r instanceof Float32Array&&t==="float32"||r instanceof Int32Array&&t==="int32"||r instanceof Uint8Array&&t==="bool"}function tm(r,t){if(t==="string")throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(r)&&(r=ui(r)),L().getBool("DEBUG")&&f0(r,t),cK(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=gc();if(this.backendTimer.timerAvailable())i=this.backendTimer.time(s);else{s();for(let l of o)l.dataSync();i=Promise.resolve({kernelMs:gc()-a})}if(L().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let l=0;l{mK(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 mK(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 V_(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(!an(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 W_=20,lh=3,k0=7;function U_(r,t,e,n){let o=Di(t),s=fK(r,t,e,o),i=t.length,a=nx(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 Uq(r,t,e,n){let o=te(t),s=n[n.length-1],i=new Array(s).fill(0),a=t.length,u=e==="complex64"?ch(r):r;if(a>1)for(let l=0;lP_){let g=lh*i,x=Array.from(r.slice(0,g)),b=Array.from(r.slice((a-lh)*i,a*i));return e==="complex64"&&(x=ch(x),b=ch(b)),["["+x.map((w,I)=>uh(w,o[I],e)).join(", ")+", ..., "+b.map((w,I)=>uh(w,o[a-lh+I],e)).join(", ")+"]"]}return["["+(e==="complex64"?ch(r):Array.from(r)).map((g,x)=>uh(g,o[x],e)).join(", ")+"]"]}let l=t.slice(1),c=n.slice(1),p=n[0]*i,m=[];if(a>P_){for(let h=0;h0?m[0]+f:"");for(let h=1;h1)for(let l=0;lW_){let g=lh*i,x=Array.from(r.slice(0,g)),b=Array.from(r.slice((a-lh)*i,a*i));return e==="complex64"&&(x=ch(x),b=ch(b)),["["+x.map((w,I)=>uh(w,o[I],e)).join(", ")+", ..., "+b.map((w,I)=>uh(w,o[a-lh+I],e)).join(", ")+"]"]}return["["+(e==="complex64"?ch(r):Array.from(r)).map((g,x)=>uh(g,o[x],e)).join(", ")+"]"]}let l=t.slice(1),c=n.slice(1),p=n[0]*i,m=[];if(a>W_){for(let h=0;h0?m[0]+f:"");for(let h=1;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||Yg(e,this.size),this.strides=Ti(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;oQp(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(),ii().readToGPU(this.dataId,t)}dataSync(){this.throwIfDisposed();let t=ii().readSync(this.dataId);if(this.dtype==="string")try{return t.map(e=>Qp(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 ii().read(this.dataId);return this.dtype==="string"?t:new Uint8Array(t.buffer)}dispose(){this.isDisposed||(ii().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(t=!1){return tm.print(this,t)}clone(){return this.throwIfDisposed(),tm.clone(this)}toString(t=!1){let e=this.dataSync();return M_(e,this.shape,this.dtype,t)}cast(t){return this.throwIfDisposed(),tm.cast(this,t)}variable(t=!0,e,n){return this.throwIfDisposed(),ii().makeVariable(this,t,e,n)}};Object.defineProperty(Pt,Symbol.hasInstance,{value:r=>!!r&&r.data!=null&&r.dataSync!=null&&r.throwIfDisposed!=null});function O(){return rh("Tensor",()=>Pt)}O();var dl=class extends Pt{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(!sn(t.shape,this.shape))throw new Error(`shape of the new value (${t.shape}) and previous value (${this.shape}) must match`);ii().disposeTensor(this),this.dataId=t.dataId,ii().incRef(this,null)}dispose(){ii().disposeVariable(this),this.isDisposedInternal=!0}};Object.defineProperty(dl,Symbol.hasInstance,{value:r=>r instanceof Pt&&r.assign!=null&&r.assign instanceof Function});var Co={};Kt(Co,{assertTypesMatch:()=>N0,getTensorsInContainer:()=>ph,isTensorInList:()=>Kq,makeTypesMatch:()=>jt});var w0;(function(r){r.R0="R0",r.R1="R1",r.R2="R2",r.R3="R3",r.R4="R4",r.R5="R5",r.R6="R6"})(w0||(w0={}));var I0;(function(r){r.float32="float32",r.int32="int32",r.bool="int32",r.complex64="complex64"})(I0||(I0={}));var C0;(function(r){r.float32="float32",r.int32="int32",r.bool="bool",r.complex64="complex64"})(C0||(C0={}));var v0;(function(r){r.float32="float32",r.int32="float32",r.bool="float32",r.complex64="complex64"})(v0||(v0={}));var S0;(function(r){r.float32="complex64",r.int32="complex64",r.bool="complex64",r.complex64="complex64"})(S0||(S0={}));var qq={float32:v0,int32:I0,bool:C0,complex64:S0};function ur(r,t){if(r==="string"||t==="string"){if(r==="string"&&t==="string")return"string";throw new Error(`Can not upcast ${r} with ${t}`)}return qq[r][t]}function mc(r){return ur(r,"int32")}function nx(r){return r!=null&&typeof r=="object"&&"texture"in r&&r.texture instanceof WebGLTexture}function ox(r){return typeof GPUBuffer!="undefined"&&r!=null&&typeof r=="object"&&"buffer"in r&&r.buffer instanceof GPUBuffer}function jt(r,t){if(r.dtype===t.dtype)return[r,t];let e=ur(r.dtype,t.dtype);return[r.cast(e),t.cast(e)]}function N0(r,t){_(r.dtype===t.dtype,()=>`The dtypes of the first(${r.dtype}) and second(${t.dtype}) input must match`)}function Kq(r,t){return t.some(e=>e.id===r.id)}function ph(r){let t=[];return G_(r,t,new Set),t}function G_(r,t,e){if(r==null)return;if(r instanceof Pt){t.push(r);return}if(!jq(r))return;let n=r;for(let o in n){let s=n[o];e.has(s)||(e.add(s),G_(s,t,e))}}function jq(r){return Array.isArray(r)||typeof r=="object"}function k0(r){return r.kernelName!=null}var sx=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()}},gu=class{constructor(t){this.ENV=t,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new sx}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 Wo)&&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 gu.nextTensorId++}nextVariableId(){return gu.nextVariableId++}clone(t){let e=T.runKernel(xo,{x:t}),n={x:t},o=i=>({x:()=>{let a="float32",u={x:i},l={dtype:a};return T.runKernel(ho,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,!(ih(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=k0(t)?t.kernelName:this.state.activeScope!=null?this.state.activeScope.name:"";if(k0(t)){let{kernelName:d,inputs:h,attrs:g}=t;this.backendName==null&&this.backend;let x=ih(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 I=w.map(N=>N.rank!=null?N:this.makeTensorFromTensorInfo(N));if(o){let N=this.getTensorsForGradient(d,h,I);n=this.saveTensorsForBackwardMode(N)}return I}}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=k0(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=m0(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"&&Uo(t[0])&&(s=t.map(u=>hu(u)));let i=o.write(s,e,n),a=new Pt(e,n,i,this.nextTensorId());if(this.trackTensor(a,o),n==="string"){let u=this.state.tensorInfo.get(i),l=l0(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 Pt(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 dl(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*Dp(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 dl||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*Dp(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=m0(t);u!=null&&(o=u.gradFunc),o!=null&&(a.gradient=l=>(l=l.map((c,p)=>{if(c==null){let m=n[p],f=Rp(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=ph(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 Pt,()=>"The result y returned by f() must be a tensor.");let i=F_(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?Xq(s.shape):n,O_(a,i,l=>this.tidy(l),Yq);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 _(ki(t),()=>"The f passed in customGrad(f) must be a function."),(...e)=>{_(e.every(a=>a instanceof Pt),()=>"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 Pt,()=>"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor"),_(ki(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 Pt),()=>"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=pc(),n=await this.backend.time(t);return n.wallMs=pc()-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 sx;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}};gu.nextTensorId=0;gu.nextVariableId=0;function Xq(r){let t=th(te(r),"float32");return T.makeTensor(t,r,"float32")}function T0(){let r=p0();if(r._tfengine==null){let t=new eh(r);r._tfengine=new gu(t)}return d_(r._tfengine.ENV),z_(()=>r._tfengine),r._tfengine}var T=T0();function Yq(r,t){let e={a:r,b:t};return T.runKernel(oo,e)}var xu={};Kt(xu,{isBrowser:()=>E0,isMobile:()=>Qq,mockIsMobile:()=>Jq});function Zq(){return typeof navigator!="undefined"&&navigator!=null}var _0;function Jq(r){_0=r}function Qq(r){if(_0!==void 0)return _0;if(r||Zq()){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 E0(){return typeof window!="undefined"&&window.document!=null||typeof WorkerGlobalScope!="undefined"}var Sn=L();Sn.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.")});Sn.registerFlag("IS_BROWSER",()=>E0());Sn.registerFlag("IS_NODE",()=>typeof process!="undefined"&&typeof process.versions!="undefined"&&typeof process.versions.node!="undefined");Sn.registerFlag("IS_CHROME",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));Sn.registerFlag("IS_SAFARI",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Safari/.test(navigator.userAgent)&&/Apple/.test(navigator.vendor));Sn.registerFlag("PROD",()=>!1);Sn.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",()=>Sn.getBool("DEBUG"));Sn.registerFlag("DEPRECATION_WARNINGS_ENABLED",()=>!0);Sn.registerFlag("IS_TEST",()=>!1);Sn.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",()=>Sn.getBool("DEBUG"));Sn.registerFlag("WRAP_TO_IMAGEBITMAP",()=>!1);Sn.registerFlag("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU",()=>!1);Sn.registerFlag("USE_SETTIMEOUTCUSTOM",()=>!1);function Wr(r,t){let e=r;if(or(r))return t==="string"?[]:[r.length];if(nx(r)){let o=r.channels||"RGBA";return[r.height,r.width*o.length]}else if(ox(r))return[r.buffer.size/(t==null?4:Dp(t))];if(!Array.isArray(r))return[];let n=[];for(;Array.isArray(e)||or(e)&&t!=="string";)n.push(e.length),e=e[0];return Array.isArray(r)&&L().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&U_(r,n,[]),n}function U_(r,t,e){if(e=e||[],!Array.isArray(r)&&!or(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),W_(n,o,t,e),r==null||!or(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=Wr(r,o);!or(r)&&!Array.isArray(r)&&(r=[r]);let a=o!=="string"?Jp(r,o):si(r,[],!0);return T.makeTensor(a,s,o)}function hl(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 A0="__op";function k(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+A0;let o=(...s)=>{T.startScope(e);try{let i=n(...s);return oc(i)&&console.error("Cannot return a Promise inside of tidy."),T.endScope(i),i}catch(i){throw T.endScope(null),i}};return Object.defineProperty(o,"name",{value:e,configurable:!0}),o}function tK(r,t){let e=v(r,"real","complex"),n=v(t,"imag","complex");Re(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 T.runKernel(Op,o)}var Nn=k({complex_:tK});function ln(r,t,e,n){if(n==null)n=jl(r);else if(n==="complex64")throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(ox(r)||nx(r)){if(n!=="float32"&&n!=="int32")throw new Error(`Creating tensor from GPU data only supports 'float32'|'int32' dtype, while the dtype is ${n}.`);return T.backend.createTensorFromGPUData(r,t||e,n)}if(!or(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){Me(t);let o=te(t),s=te(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!or(r)&&!Array.isArray(r)&&(r=[r]),t=t||e,r=n!=="string"?Jp(r,n):si(r,[],!0),T.makeTensor(r,t,n)}function sr(r,t,e){let n=Wr(r,e);return ln(r,t,n,e)}var mh={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8};var ix=4;async function q_(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)+ix*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 D0=typeof Buffer!="undefined"&&(typeof Blob=="undefined"||typeof atob=="undefined"||typeof btoa=="undefined");function H_(r){return D0?Buffer.byteLength(r):new Blob([r]).size}function K_(r){if(D0)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 $0(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 lx(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 R0(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 rm(r,t){let e,n;return r.weightsManifest!=null&&([e,n]=await t(r.weightsManifest)),R0(r,e,n)}function Zi(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:H_(JSON.stringify(r.modelTopology)),weightSpecsBytes:r.weightSpecs==null?0:H_(JSON.stringify(r.weightSpecs)),weightDataBytes:r.weightData==null?0:r.weightData.byteLength}}function ux(r){let t=[];for(let e of r)t.push(...e.weights);return t}function rK(){let r=e=>{let n=e<<13,o=0;for(;!(n&8388608);)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 nK(){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 oK(){let r=new Uint32Array(64);for(let t=0;t<64;t++)r[t]=1024;return r[0]=r[32]=0,r}function sK(){let r=rK(),t=nK(),e=oK();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 ve=class{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return ve.instance==null&&(ve.instance=new ve),ve.instance}static registerSaveRouter(t){ve.getInstance().saveRouters.push(t)}static registerLoadRouter(t){ve.getInstance().loadRouters.push(t)}static getSaveHandlers(t){return ve.getHandlers(t,"save")}static getLoadHandlers(t,e){return ve.getHandlers(t,"load",e)}static getHandlers(t,e,n){let o=[];return(e==="load"?ve.getInstance().loadRouters:ve.getInstance().saveRouters).forEach(i=>{let a=i(t,n);a!==null&&o.push(a)}),o}},X_=r=>ve.registerSaveRouter(r),Y_=r=>ve.registerLoadRouter(r),Z_=r=>ve.getSaveHandlers(r),J_=(r,t)=>ve.getLoadHandlers(r,t);var F0="tensorflowjs",O0=1,fc="models_store",yu="model_info_store";function Q_(){if(!L().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 P0(r){let t=r.result;t.createObjectStore(fc,{keyPath:"modelPath"}),t.createObjectStore(yu,{keyPath:"modelPath"})}var Ji=class{constructor(t){if(this.indexedDB=Q_(),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(F0,O0);s.onupgradeneeded=()=>P0(s),s.onsuccess=()=>{let i=s.result;if(e==null){let a=i.transaction(fc,"readonly"),l=a.objectStore(fc).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=Zi(e),u=i.transaction(yu,"readwrite"),l=u.objectStore(yu),c;try{c=l.put({modelPath:this.modelPath,modelArtifactsInfo:a})}catch(m){return o(m)}let p;c.onsuccess=()=>{p=i.transaction(fc,"readwrite");let m=p.objectStore(fc),f;try{f=m.put({modelPath:this.modelPath,modelArtifacts:e,modelArtifactsInfo:a})}catch(d){return o(d)}f.onsuccess=()=>n({modelArtifactsInfo:a}),f.onerror=d=>{l=u.objectStore(yu);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)})}};Ji.URL_SCHEME="indexeddb://";var tE=r=>L().getBool("IS_BROWSER")&&!Array.isArray(r)&&r.startsWith(Ji.URL_SCHEME)?iK(r.slice(Ji.URL_SCHEME.length)):null;ve.registerSaveRouter(tE);ve.registerLoadRouter(tE);function iK(r){return new Ji(r)}function aK(r){return r.startsWith(Ji.URL_SCHEME)?r.slice(Ji.URL_SCHEME.length):r}var cx=class{constructor(){this.indexedDB=Q_()}async listModels(){return new Promise((t,e)=>{let n=this.indexedDB.open(F0,O0);n.onupgradeneeded=()=>P0(n),n.onsuccess=()=>{let o=n.result,s=o.transaction(yu,"readonly"),a=s.objectStore(yu).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=aK(t),new Promise((e,n)=>{let o=this.indexedDB.open(F0,O0);o.onupgradeneeded=()=>P0(o),o.onsuccess=()=>{let s=o.result,i=s.transaction(yu,"readwrite"),a=i.objectStore(yu),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(fc,"readwrite");let f=l.objectStore(fc).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 gl="/",nm="tensorflowjs_models",eE="info",lK="model_topology",uK="weight_specs",cK="weight_data",pK="model_metadata";function rE(r){return{info:[nm,r,eE].join(gl),topology:[nm,r,lK].join(gl),weightSpecs:[nm,r,uK].join(gl),weightData:[nm,r,cK].join(gl),modelMetadata:[nm,r,pK].join(gl)}}function nE(r){for(let t of Object.values(r))window.localStorage.removeItem(t)}function mK(r){let t=r.split(gl);if(t.length<3)throw new Error(`Invalid key format: ${r}`);return t.slice(1,t.length-1).join(gl)}function fK(r){return r.startsWith(Qi.URL_SCHEME)?r.slice(Qi.URL_SCHEME.length):r}var Qi=class{constructor(t){if(!L().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=rE(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=Zi(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,K_(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 nE(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=j_(i),e}};Qi.URL_SCHEME="localstorage://";var oE=r=>L().getBool("IS_BROWSER")&&!Array.isArray(r)&&r.startsWith(Qi.URL_SCHEME)?dK(r.slice(Qi.URL_SCHEME.length)):null;ve.registerSaveRouter(oE);ve.registerLoadRouter(oE);function dK(r){return new Qi(r)}var px=class{constructor(){_(L().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=nm+gl,n=gl+eE;for(let o=0;o"scheme must not be undefined or null."),t.endsWith(om)&&(t=t.slice(0,t.indexOf(om))),_(t.length>0,()=>"scheme must not be an empty string.");let n=Dr.getInstance();_(n.managers[t]==null,()=>`A model store manager is already registered for scheme '${t}'.`),n.managers[t]=e}static getManager(t){let e=Dr.getInstance().managers[t];if(e==null)throw new Error(`Cannot find model manager for scheme '${t}'`);return e}static getSchemes(){return Object.keys(Dr.getInstance().managers)}};function mx(r){if(r.indexOf(om)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${Dr.getSchemes().join(",")}`);return{scheme:r.split(om)[0],path:r.split(om)[1]}}async function sE(r,t,e=!1){_(r!==t,()=>`Old path and new path are the same: '${r}'`);let n=ve.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=ve.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=mx(r).scheme,u=mx(r).path,l=a===mx(r).scheme,c=await o.load();e&&l&&await Dr.getManager(a).removeModel(u);let p=await i.save(c);return e&&!l&&await Dr.getManager(a).removeModel(u),p.modelArtifactsInfo}async function iE(){let r=Dr.getSchemes(),t={};for(let e of r){let n=await Dr.getManager(e).listModels();for(let o in n){let s=e+om+o;t[s]=n[o]}}return t}async function aE(r){let t=mx(r);return Dr.getManager(t.scheme).removeModel(t.path)}async function lE(r,t){return sE(r,t,!1)}async function uE(r,t){return sE(r,t,!0)}var M0=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"||!L().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))}isTypedArray(t){return Jg(t)}};if(L().get("IS_BROWSER")){L().setPlatform("browser",new M0);try{Dr.registerManager(Qi.URL_SCHEME,new px)}catch(r){}try{Dr.registerManager(Ji.URL_SCHEME,new cx)}catch(r){}}var hK={importFetch:()=>cE()},L0;var z0=class{constructor(){this.util=pE(),this.textEncoder=new this.util.TextEncoder}fetch(t,e){return L().global.fetch!=null?L().global.fetch(t,e):(L0==null&&(L0=hK.importFetch()),L0(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)}isTypedArray(t){return this.util.types.isFloat32Array(t)||this.util.types.isInt32Array(t)||this.util.types.isUint8Array(t)||this.util.types.isUint8ClampedArray(t)}};L().get("IS_NODE")&&!L().get("IS_BROWSER")&&L().setPlatform("node",new z0);function bt(r,t="float32",e){return t=t||"float32",Me(r),new le(r,t,e)}function gK(r,t){let e=v(r,"x","cast");if(!a0(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 T.runKernel(ho,n,o)}var Q=k({cast_:gK});function xK(r){let e={x:v(r,"x","clone","string_or_numeric")};return T.runKernel(xo,e)}var un=k({clone_:xK});function fx(r,t=!1){console.log(r.toString(t))}T0();var yK={buffer:bt,cast:Q,clone:un,print:fx};B_(yK);function Idt(){L().set("PROD",!0)}function Cdt(){L().set("DEBUG",!0)}function vdt(){L().set("DEPRECATION_WARNINGS_ENABLED",!1),console.warn("TensorFlow.js deprecation warnings have been disabled.")}function B0(r){L().getBool("DEPRECATION_WARNINGS_ENABLED")&&console.warn(r+" You can disable deprecation warnings with tf.disableDeprecationWarnings().")}V_(B0);function Sdt(){T.disposeVariables()}function Vn(){return T}function fh(){return T.memory()}function Ndt(r){return T.profile(r)}function B(r,t){return T.tidy(r,t)}function Tt(r){ph(r).forEach(e=>e.dispose())}function $e(r){return T.keep(r)}function kdt(r){return T.time(r)}function bK(r){return T.setBackend(r)}function Tdt(){return T.ready()}function _dt(){return T.backendName}function Edt(r){T.removeBackend(r)}function Adt(r){return T.findBackend(r)}function Ddt(r){return T.findBackendFactory(r)}function sm(r,t,e=1){return T.registerBackend(r,t,e)}function mE(){return T.backend}function $dt(r,t){L().setPlatform(r,t)}function wK(r,t){let e=v(r,"a","add"),n=v(t,"b","add");[e,n]=jt(e,n);let o={a:e,b:n};return T.runKernel(oo,o)}var Y=k({add_:wK});function IK(r,t){let e=v(r,"a","floorDiv"),n=v(t,"b","floorDiv");[e,n]=jt(e,n);let o={a:e,b:n};return T.runKernel(hs,o)}var im=k({floorDiv_:IK});function CK(r,t){let e=v(r,"a","div"),n=v(t,"b","div");if([e,n]=jt(e,n),e.dtype==="int32"&&n.dtype==="int32")return im(e,n);let o={a:e,b:n},s={};return T.runKernel(cs,o,s)}var ct=k({div_:CK});function vK(r,t){let e=v(r,"a","mul"),n=v(t,"b","mul");[e,n]=jt(e,n);let o={a:e,b:n};return T.runKernel($s,o)}var $=k({mul_:vK});function SK(r){let t=v(r,"x","abs");if(t.dtype==="complex64"){let e={x:t};return T.runKernel(Zl,e)}else{let e={x:t};return T.runKernel(_i,e)}}var Ee=k({abs_:SK});function NK(r){let e={x:v(r,"x","acos")};return T.runKernel(Ho,e)}var dx=k({acos_:NK});function kK(r){let e={x:v(r,"x","acosh")};return T.runKernel(qo,e)}var hx=k({acosh_:kK});function TK(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(!sn(o.shape,e.shape))throw new Error("All tensors passed to tf.addN() must have the same shape")});let n=t;return T.runKernel(Ko,n)}var fE=k({addN_:TK});function _K(r,t=null,e=!1){let o={x:v(r,"x","all","bool")},s={axis:t,keepDims:e};return T.runKernel(Ea,o,s)}var am=k({all_:_K});function EK(r,t=null,e=!1){let o={x:v(r,"x","any","bool")},s={axis:t,keepDims:e};return T.runKernel(Aa,o,s)}var dc=k({any_:EK});function AK(r,t=0){let n={x:v(r,"x","argMax")},o={axis:t};return T.runKernel(Ei,n,o)}var ta=k({argMax_:AK});function DK(r,t=0){let n={x:v(r,"x","argMin")},o={axis:t};return T.runKernel(Ai,n,o)}var gx=k({argMin_:DK});function $K(r){let e={x:v(r,"x","asin")};return T.runKernel(jo,e)}var xx=k({asin_:$K});function RK(r){let e={x:v(r,"x","asinh")};return T.runKernel(Xo,e)}var yx=k({asinh_:RK});function FK(r){let e={x:v(r,"x","atan")};return T.runKernel(Yo,e)}var bx=k({atan_:FK});function OK(r,t){let e=v(r,"a","atan2"),n=v(t,"b","atan2");[e,n]=jt(e,n);let o={a:e,b:n};return T.runKernel(Jo,o)}var wx=k({atan2_:OK});function PK(r){let e={x:v(r,"x","atanh")};return T.runKernel(Zo,e)}var Ix=k({atanh_:PK});function MK(r,t,e,n,o="NHWC",s){let i=r[3],a=[...t,i],u=hE(o);return hc(r,a,e,s,n,null,null,u)}function G0(r,t,e,n,o,s,i="channelsLast"){let[a,u]=dh(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 hc(r,l,e,n,o,s,!1,i)}function LK(r,t,e,n,o,s,i="NDHWC"){let[a,u,l]=V0(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 dE(r,c,e,n,o,!1,p,s)}function hc(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]=dh(e),[x,b]=dh(n),w=lm(m,x),I=lm(f,b),{padInfo:N,outHeight:E,outWidth:A}=VK(o,l,c,h,g,w,I,s,a),D=i?d*p:d,F;return a==="channelsFirst"?F=[u,D,E,A]:a==="channelsLast"&&(F=[u,E,A,D]),{batchSize:u,dataFormat:a,inHeight:l,inWidth:c,inChannels:p,outHeight:E,outWidth:A,outChannels:D,padInfo:N,strideHeight:h,strideWidth:g,filterHeight:m,filterWidth:f,effectiveFilterHeight:w,effectiveFilterWidth:I,dilationHeight:x,dilationWidth:b,inShape:r,outShape:F,filterShape:t}}function dE(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]=V0(e),[I,N,E]=V0(n),A=lm(f,I),D=lm(d,N),F=lm(h,E),{padInfo:P,outDepth:V,outHeight:G,outWidth:W}=GK(o,l,c,p,x,b,w,A,D,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:D,effectiveFilterWidth:F,dilationDepth:I,dilationHeight:N,dilationWidth:E,inShape:r,outShape:H,filterShape:t}}function zK(r,t,e,n,o){n==null&&(n=W0(r,t,e));let s=r[0],i=r[1],a=hh((s-t+2*n)/e+1,o),u=hh((i-t+2*n)/e+1,o);return[a,u]}function BK(r,t,e,n,o,s){o==null&&(o=W0(r,t[0],n[0]));let i=[0,0,0,e];for(let a=0;a<3;a++)r[a]+2*o>=t[a]&&(i[a]=hh((r[a]-t[a]+2*o)/n[a]+1,s));return i}function W0(r,t,e,n=1){let o=lm(t,n);return Math.floor((r[0]*(e-1)-e+o)/2)}function dh(r){return typeof r=="number"?[r,r,r]:r.length===2?[r[0],r[1],1]:r}function V0(r){return typeof r=="number"?[r,r,r]:r}function lm(r,t){return t<=1?r:r+(r-1)*(t-1)}function VK(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=zK([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=hh((t-s+m+f)/n+1,a),p=hh((e-i+d+h)/o+1,a)}else throw Error(`Unknown padding parameter: ${r}`);return{padInfo:l,outHeight:c,outWidth:p}}function GK(r,t,e,n,o,s,i,a,u,l,c){let p,m,f,d;if(r==="valid"&&(r=0),typeof r=="number"){p={top:r,bottom:r,left:r,right:r,front:r,back:r,type:r===0?"VALID":"NUMBER"};let g=BK([t,e,n,1],[a,u,l],1,[o,s,i],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,I=Math.floor(g/2),N=g-I,E=Math.floor(x/2),A=x-E;p={top:I,bottom:N,left:E,right:A,front:b,back:w,type:"SAME"}}else throw Error(`Unknown padding parameter: ${r}`);return{padInfo:p,outDepth:m,outHeight:f,outWidth:d}}function hh(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 ao(r){let[t,e,n]=dh(r);return t===1&&e===1&&n===1}function $r(r,t){return ao(r)||ao(t)}function ea(r){return dh(r).every(t=>t>0)}function hE(r){if(r==="NHWC")return"channelsLast";if(r==="NCHW")return"channelsFirst";throw new Error(`Unknown dataFormat ${r}`)}function Se(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")_(_a(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=>{_(_a(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 WK(r,t){let n={x:v(r,"x","reshape","string_or_numeric")},o={shape:t};return T.runKernel(Bi,n,o)}var R=k({reshape_:WK});function UK(r,t,e,n,o){let s=v(r,"x","avgPool","float32"),i=1;_($r(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}.`),Se("avgPool",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o},p=T.runKernel(Qo,l,c);return p=Q(p,s.dtype),u?R(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var bu=k({avgPool_:UK});function HK(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}`),_(typeof e=="number"&&e>0||Array.isArray(e)&&e[0]>0&&e[1]>0&&e[2]>0,()=>`Error in avgPool3d: Stride must be > 0, but got '${e}'`),Se("avgPool3d",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o,dataFormat:s},p=T.runKernel(Di,l,c);return p=Q(p,a.dtype),u?R(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var Cx=k({avgPool3d_:HK});function qK(r,t=0){_(r.length>=1,()=>"Pass at least one tensor to concat");let e=hl(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 un(e[0]);let n=e,o={axis:t};return T.runKernel(Ri,n,o)}var se=k({concat_:qK});function KK(r,t,e=!1,n=!1){let o=v(r,"a","matMul"),s=v(t,"b","matMul");[o,s]=jt(o,s);let i={a:o,b:s},a={transposeA:e,transposeB:n};return T.runKernel(ts,i,a)}var Bt=k({matMul_:KK});function jK(r){let e={x:v(r,"x","sigmoid","float32")};return T.runKernel(Xs,e)}var tn=k({sigmoid_:jK});function XK(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 T.runKernel(Gi,o,s)}var Ot=k({slice_:XK});function YK(r){let e={x:v(r,"x","tanh","float32")};return T.runKernel(ni,e)}var ra=k({tanh_:YK});function ZK(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=se([l,p],1),f=Bt(m,a),d=Y(f,u),h=d.shape[0],g=d.shape[1]/4,x=[h,g],b=Ot(d,[0,0],x),w=Ot(d,[0,g],x),I=Ot(d,[0,g*2],x),N=Ot(d,[0,g*3],x),E=Y($(tn(b),ra(w)),$(c,tn(Y(i,I)))),A=$(ra(E),tn(N));return[E,A]}var gE=k({basicLSTMCell_:ZK});function JK(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 T.runKernel($i,s,i)}var wu=k({batchToSpaceND_:JK});function xE(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 QK(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:xE(i),scale:l,offset:c,mean:a,variance:u},f={varianceEpsilon:s},d=T.runKernel(gs,m,f);return R(d,i.shape)}var na=k({batchNorm_:QK});function tj(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}.`),na(i,a,u,c,l,s)}var vx=k({batchNorm2d_:tj});function ej(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}.`),na(i,a,u,c,l,s)}var Sx=k({batchNorm3d_:ej});function rj(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}.`),na(i,a,u,c,l,s)}var Nx=k({batchNorm4d_:rj});function nj(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 T.runKernel(Da,s,i)}var kx=k({bincount_:nj});function oj(r,t){let e=v(r,"x","bitwiseAnd"),n=v(t,"y","bitwiseAnd");if(!sn(e.shape,n.shape))throw new Error(`BitwiseAnd: Tensors must have the same shape. x: ${e.shape}, y: ${n.shape}`);if(e.dtype!=="int32"||n.dtype!=="int32")throw new Error(`BitwiseAnd: Only supports 'int32' values in tensor, found type of x: ${e.dtype} and type of y: ${n.dtype}`);let o={a:e,b:n};return T.runKernel(nh,o)}var yE=k({bitwiseAnd_:oj});function sj(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 T.runKernel(Yl,o)}var bE=k({broadcastArgs_:sj});function ij(r,t){let e=v(r,"broadcastTo","x"),n=e.shape;if(Me(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 un(e);let a={x:e},u={reps:s};return T.runKernel(so,a,u)}var oa=k({broadcastTo_:ij});function aj(r){let e={x:v(r,"x","ceil","float32")};return T.runKernel(es,e)}var Tx=k({ceil_:aj});function vo(r,t,e){Me(r),e=e||jl(t);let n={shape:r,value:t,dtype:e};return T.runKernel(ru,{},n)}function lj(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 vo(n.shape,t,n.dtype);let o={x:n},s={clipValueMin:t,clipValueMax:e};return T.runKernel(go,o,s)}var vr=k({clipByValue_:lj});function uj(r){return se(r,0)}var _x=k({concat1d_:uj});function cj(r,t){return se(r,t)}var Ex=k({concat2d_:cj});function pj(r,t){return se(r,t)}var Ax=k({concat3d_:pj});function mj(r,t){return se(r,t)}var Dx=k({concat4d_:mj});function fj(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}.`),Se("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]}.`),_($r(e,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`),_(ea(s),()=>"Error in conv2D: Dilated rates should be larger than 0."),_(ea(e),()=>"Error in conv2D: Strides should be larger than 0.");let m={x:l,filter:u},f={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i},d=T.runKernel(rs,m,f);return c?R(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var kn=k({conv2d_:fj});function dj(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}.`),Se("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]}.`),_($r(e,s),()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${e} and dilation '${s}'`),_(ea(s),()=>"Error in conv1D: Dilated rates should be larger than 0."),_(ea(e),()=>"Error in conv1D: Stride should be larger than 0."),_(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=kn(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 um=k({conv1d_:dj});function hj(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]}.`),Se("conv2dDerInput",o,i);let m={dy:u,filter:e},f={strides:n,pad:o,dataFormat:s,dimRoundingMode:i,inputShape:a},d=T.runKernel(ns,m,f);return l?R(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var cm=k({conv2DBackpropInput_:hj});function gj(r,t,e,n,o,s){let i=v(r,"x","conv2dTranspose"),a=v(t,"filter","conv2dTranspose");return cm(e,i,a,n,o,"NHWC",s)}var pm=k({conv2dTranspose_:gj});function xj(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]}.`),_($r(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.`),_(ea(s),()=>"Error in conv3D: Dilated rates should be larger than 0."),_(ea(e),()=>"Error in conv3D: Strides should be larger than 0.");let c={x:u,filter:a},p={strides:e,pad:n,dataFormat:o,dilations:s},m=T.runKernel(os,c,p);return l?R(m,[m.shape[1],m.shape[2],m.shape[3],m.shape[4]]):m}var $x=k({conv3d_:xj});function yj(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=T.runKernel(Ra,c,p);return a?R(m,[m.shape[1],m.shape[2],m.shape[3],m.shape[4]]):m}var Rx=k({conv3DBackpropInput_:yj});function bj(r,t,e,n,o){let s=v(r,"x","conv3dTranspose"),i=v(t,"filter","conv3dTranspose");return Rx(e,s,i,n,o)}var Fx=k({conv3dTranspose_:bj});function wj(r){let e={x:v(r,"x","cos","float32")};return T.runKernel(ss,e)}var Iu=k({cos_:wj});function Ij(r){let e={x:v(r,"x","cosh","float32")};return T.runKernel(is,e)}var mm=k({cosh_:Ij});function Cj(r,t=0,e=!1,n=!1){let s={x:v(r,"x","cumprod")},i={axis:t,exclusive:e,reverse:n};return T.runKernel(Fa,s,i)}var gc=k({cumprod_:Cj});function vj(r,t=0,e=!1,n=!1){let s={x:v(r,"x","cumsum")},i={axis:t,exclusive:e,reverse:n};return T.runKernel(as,s,i)}var fm=k({cumsum_:vj});function Sj(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 T.runKernel(Jl,i,a)}var gh=k({denseBincount_:Sj});function Nj(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 +`;return m[m.length-1]=" "+m[m.length-1]+"]"+(s?"":d),m}function ch(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||Yg(e,this.size),this.strides=Di(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;oem(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(),ci().readToGPU(this.dataId,t)}dataSync(){this.throwIfDisposed();let t=ci().readSync(this.dataId);if(this.dtype==="string")try{return t.map(e=>em(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 ci().read(this.dataId);return this.dtype==="string"?t:new Uint8Array(t.buffer)}dispose(){this.isDisposed||(ci().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(t=!1){return rm.print(this,t)}clone(){return this.throwIfDisposed(),rm.clone(this)}toString(t=!1){let e=this.dataSync();return U_(e,this.shape,this.dtype,t)}cast(t){return this.throwIfDisposed(),rm.cast(this,t)}variable(t=!0,e,n){return this.throwIfDisposed(),ci().makeVariable(this,t,e,n)}};Object.defineProperty(Ot,Symbol.hasInstance,{value:r=>!!r&&r.data!=null&&r.dataSync!=null&&r.throwIfDisposed!=null});function O(){return nh("Tensor",()=>Ot)}O();var gl=class extends Ot{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(!an(t.shape,this.shape))throw new Error(`shape of the new value (${t.shape}) and previous value (${this.shape}) must match`);ci().disposeTensor(this),this.dataId=t.dataId,ci().incRef(this,null)}dispose(){ci().disposeVariable(this),this.isDisposedInternal=!0}};Object.defineProperty(gl,Symbol.hasInstance,{value:r=>r instanceof Ot&&r.assign!=null&&r.assign instanceof Function});var So={};Kt(So,{assertTypesMatch:()=>$0,getTensorsInContainer:()=>ph,isTensorInList:()=>gK,makeTypesMatch:()=>jt});var T0;(function(r){r.R0="R0",r.R1="R1",r.R2="R2",r.R3="R3",r.R4="R4",r.R5="R5",r.R6="R6"})(T0||(T0={}));var _0;(function(r){r.float32="float32",r.int32="int32",r.bool="int32",r.complex64="complex64"})(_0||(_0={}));var E0;(function(r){r.float32="float32",r.int32="int32",r.bool="bool",r.complex64="complex64"})(E0||(E0={}));var A0;(function(r){r.float32="float32",r.int32="float32",r.bool="float32",r.complex64="complex64"})(A0||(A0={}));var D0;(function(r){r.float32="complex64",r.int32="complex64",r.bool="complex64",r.complex64="complex64"})(D0||(D0={}));var hK={float32:A0,int32:_0,bool:E0,complex64:D0};function ur(r,t){if(r==="string"||t==="string"){if(r==="string"&&t==="string")return"string";throw new Error(`Can not upcast ${r} with ${t}`)}return hK[r][t]}function xc(r){return ur(r,"int32")}function ox(r){return r!=null&&typeof r=="object"&&"texture"in r&&r.texture instanceof WebGLTexture}function sx(r){return typeof GPUBuffer!="undefined"&&r!=null&&typeof r=="object"&&"buffer"in r&&r.buffer instanceof GPUBuffer}function jt(r,t){if(r.dtype===t.dtype)return[r,t];let e=ur(r.dtype,t.dtype);return[r.cast(e),t.cast(e)]}function $0(r,t){_(r.dtype===t.dtype,()=>`The dtypes of the first(${r.dtype}) and second(${t.dtype}) input must match`)}function gK(r,t){return t.some(e=>e.id===r.id)}function ph(r){let t=[];return X_(r,t,new Set),t}function X_(r,t,e){if(r==null)return;if(r instanceof Ot){t.push(r);return}if(!xK(r))return;let n=r;for(let o in n){let s=n[o];e.has(s)||(e.add(s),X_(s,t,e))}}function xK(r){return Array.isArray(r)||typeof r=="object"}function R0(r){return r.kernelName!=null}var ix=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()}},Iu=class{constructor(t){this.ENV=t,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new ix}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){Jg(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 Uo)&&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 Iu.nextTensorId++}nextVariableId(){return Iu.nextVariableId++}clone(t){let e=T.runKernel(bo,{x:t}),n={x:t},o=i=>({x:()=>{let a="float32",u={x:i},l={dtype:a};return T.runKernel(xo,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,!(ih(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=R0(t)?t.kernelName:this.state.activeScope!=null?this.state.activeScope.name:"";if(R0(t)){let{kernelName:d,inputs:h,attrs:g}=t;this.backendName==null&&this.backend;let x=ih(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 I=w.map(N=>N.rank!=null?N:this.makeTensorFromTensorInfo(N));if(o){let N=this.getTensorsForGradient(d,h,I);n=this.saveTensorsForBackwardMode(N)}return I}}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=R0(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=b0(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"&&Ho(t[0])&&(s=t.map(u=>wu(u)));let i=o.write(s,e,n),a=new Ot(e,n,i,this.nextTensorId());if(this.trackTensor(a,o),n==="string"){let u=this.state.tensorInfo.get(i),l=h0(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 Ot(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 gl(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*Pp(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 gl||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*Pp(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=b0(t);u!=null&&(o=u.gradFunc),o!=null&&(a.gradient=l=>(l=l.map((c,p)=>{if(c==null){let m=n[p],f=Lp(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=ph(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 Ot,()=>"The result y returned by f() must be a tensor.");let i=V_(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?yK(s.shape):n,G_(a,i,l=>this.tidy(l),bK);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 Ot),()=>"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 Ot,()=>"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 Ot),()=>"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=gc(),n=await this.backend.time(t);return n.wallMs=gc()-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 ix;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}};Iu.nextTensorId=0;Iu.nextVariableId=0;function yK(r){let t=eh(te(r),"float32");return T.makeTensor(t,r,"float32")}function F0(){let r=y0();if(r._tfengine==null){let t=new rh(r);r._tfengine=new Iu(t)}return I_(r._tfengine.ENV),q_(()=>r._tfengine),r._tfengine}var T=F0();function bK(r,t){let e={a:r,b:t};return T.runKernel(ao,e)}var Cu={};Kt(Cu,{isBrowser:()=>P0,isMobile:()=>CK,mockIsMobile:()=>IK});function wK(){return typeof navigator!="undefined"&&navigator!=null}var O0;function IK(r){O0=r}function CK(r){if(O0!==void 0)return O0;if(r||wK()){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 P0(){return typeof window!="undefined"&&window.document!=null||typeof WorkerGlobalScope!="undefined"}var Nn=L();Nn.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.")});Nn.registerFlag("IS_BROWSER",()=>P0());Nn.registerFlag("IS_NODE",()=>typeof process!="undefined"&&typeof process.versions!="undefined"&&typeof process.versions.node!="undefined");Nn.registerFlag("IS_CHROME",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));Nn.registerFlag("IS_SAFARI",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Safari/.test(navigator.userAgent)&&/Apple/.test(navigator.vendor));Nn.registerFlag("PROD",()=>!1);Nn.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",()=>Nn.getBool("DEBUG"));Nn.registerFlag("DEPRECATION_WARNINGS_ENABLED",()=>!0);Nn.registerFlag("IS_TEST",()=>!1);Nn.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",()=>Nn.getBool("DEBUG"));Nn.registerFlag("WRAP_TO_IMAGEBITMAP",()=>!1);Nn.registerFlag("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU",()=>!1);Nn.registerFlag("USE_SETTIMEOUTCUSTOM",()=>!1);function Ur(r,t){let e=r;if(or(r))return t==="string"?[]:[r.length];if(ox(r)){let o=r.channels||"RGBA";return[r.height,r.width*o.length]}else if(sx(r))return[r.buffer.size/(t==null?4:Pp(t))];if(!Array.isArray(r))return[];let n=[];for(;Array.isArray(e)||or(e)&&t!=="string";)n.push(e.length),e=e[0];return Array.isArray(r)&&L().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&Z_(r,n,[]),n}function Z_(r,t,e){if(e=e||[],!Array.isArray(r)&&!or(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),Y_(n,o,t,e),r==null||!or(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=Ur(r,o);!or(r)&&!Array.isArray(r)&&(r=[r]);let a=o!=="string"?tm(r,o):ui(r,[],!0);return T.makeTensor(a,s,o)}function xl(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)=>C(s,`${t}[${i}]`,e,n))}var M0="__op";function k(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+M0;let o=(...s)=>{T.startScope(e);try{let i=n(...s);return uc(i)&&console.error("Cannot return a Promise inside of tidy."),T.endScope(i),i}catch(i){throw T.endScope(null),i}};return Object.defineProperty(o,"name",{value:e,configurable:!0}),o}function vK(r,t){let e=C(r,"real","complex"),n=C(t,"imag","complex");Re(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 T.runKernel(zp,o)}var kn=k({complex_:vK});function un(r,t,e,n){if(n==null)n=Yl(r);else if(n==="complex64")throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(sx(r)||ox(r)){if(n!=="float32"&&n!=="int32")throw new Error(`Creating tensor from GPU data only supports 'float32'|'int32' dtype, while the dtype is ${n}.`);return T.backend.createTensorFromGPUData(r,t||e,n)}if(!or(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){Me(t);let o=te(t),s=te(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!or(r)&&!Array.isArray(r)&&(r=[r]),t=t||e,r=n!=="string"?tm(r,n):ui(r,[],!0),T.makeTensor(r,t,n)}function sr(r,t,e){let n=Ur(r,e);return un(r,t,n,e)}var mh={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8};var vr=class{static join(t){return new vr(t).slice()}constructor(t){if(this.shards=[],this.previousShardIndex=0,t==null||(t instanceof Array||(t=[t]),t=t.map(n=>or(n)?n.buffer:n),t.length===0))return;this.bufferUniformSize=t[0].byteLength;let e=0;for(let n=0;n=this.byteLength)return-1;if(this.bufferUniformSize!=null)return this.previousShardIndex=Math.floor(t/this.bufferUniformSize),this.previousShardIndex;function e(o){return t=o.end?1:0}if(e(this.shards[this.previousShardIndex])===0)return this.previousShardIndex;let n=SK(this.shards,e);return n===-1?-1:(this.previousShardIndex=n,this.previousShardIndex)}};function SK(r,t){let e=0,n=r.length;for(;e<=n;){let o=Math.floor((n-e)/2)+e,s=t(r[o]);if(s===0)return o;s<0?n=o:e=o+1}return-1}var ax=4;async function Q_(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)+ax*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 L0=typeof Buffer!="undefined"&&(typeof Blob=="undefined"||typeof atob=="undefined"||typeof btoa=="undefined");function J_(r){return L0?Buffer.byteLength(r,"utf8"):new Blob([r]).size}function tE(r){if(L0)return Buffer.from(r).toString("base64");let t=new Uint8Array(r),e="";for(let n=0,o=t.length;n{let n=e<<13,o=0;for(;!(n&8388608);)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 TK(){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 _K(){let r=new Uint32Array(64);for(let t=0;t<64;t++)r[t]=1024;return r[0]=r[32]=0,r}function EK(){let r=kK(),t=TK(),e=_K();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 ve=class{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return ve.instance==null&&(ve.instance=new ve),ve.instance}static registerSaveRouter(t){ve.getInstance().saveRouters.push(t)}static registerLoadRouter(t){ve.getInstance().loadRouters.push(t)}static getSaveHandlers(t){return ve.getHandlers(t,"save")}static getLoadHandlers(t,e){return ve.getHandlers(t,"load",e)}static getHandlers(t,e,n){let o=[];return(e==="load"?ve.getInstance().loadRouters:ve.getInstance().saveRouters).forEach(i=>{let a=i(t,n);a!==null&&o.push(a)}),o}},nE=r=>ve.registerSaveRouter(r),oE=r=>ve.registerLoadRouter(r),sE=r=>ve.getSaveHandlers(r),iE=(r,t)=>ve.getLoadHandlers(r,t);var V0="tensorflowjs",G0=1,yc="models_store",vu="model_info_store";function aE(){if(!L().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 W0(r){let t=r.result;t.createObjectStore(yc,{keyPath:"modelPath"}),t.createObjectStore(vu,{keyPath:"modelPath"})}var ra=class{constructor(t){if(this.indexedDB=aE(),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(V0,G0);s.onupgradeneeded=()=>W0(s),s.onsuccess=()=>{let i=s.result;if(e==null){let a=i.transaction(yc,"readonly"),l=a.objectStore(yc).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{e.weightData=vr.join(e.weightData);let a=ea(e),u=i.transaction(vu,"readwrite"),l=u.objectStore(vu),c;try{c=l.put({modelPath:this.modelPath,modelArtifactsInfo:a})}catch(m){return o(m)}let p;c.onsuccess=()=>{p=i.transaction(yc,"readwrite");let m=p.objectStore(yc),f;try{f=m.put({modelPath:this.modelPath,modelArtifacts:e,modelArtifactsInfo:a})}catch(d){return o(d)}f.onsuccess=()=>n({modelArtifactsInfo:a}),f.onerror=d=>{l=u.objectStore(vu);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)})}};ra.URL_SCHEME="indexeddb://";var lE=r=>L().getBool("IS_BROWSER")&&!Array.isArray(r)&&r.startsWith(ra.URL_SCHEME)?AK(r.slice(ra.URL_SCHEME.length)):null;ve.registerSaveRouter(lE);ve.registerLoadRouter(lE);function AK(r){return new ra(r)}function DK(r){return r.startsWith(ra.URL_SCHEME)?r.slice(ra.URL_SCHEME.length):r}var px=class{constructor(){this.indexedDB=aE()}async listModels(){return new Promise((t,e)=>{let n=this.indexedDB.open(V0,G0);n.onupgradeneeded=()=>W0(n),n.onsuccess=()=>{let o=n.result,s=o.transaction(vu,"readonly"),a=s.objectStore(vu).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=DK(t),new Promise((e,n)=>{let o=this.indexedDB.open(V0,G0);o.onupgradeneeded=()=>W0(o),o.onsuccess=()=>{let s=o.result,i=s.transaction(vu,"readwrite"),a=i.objectStore(vu),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(yc,"readwrite");let f=l.objectStore(yc).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 yl="/",om="tensorflowjs_models",uE="info",$K="model_topology",RK="weight_specs",FK="weight_data",OK="model_metadata";function cE(r){return{info:[om,r,uE].join(yl),topology:[om,r,$K].join(yl),weightSpecs:[om,r,RK].join(yl),weightData:[om,r,FK].join(yl),modelMetadata:[om,r,OK].join(yl)}}function pE(r){for(let t of Object.values(r))window.localStorage.removeItem(t)}function PK(r){let t=r.split(yl);if(t.length<3)throw new Error(`Invalid key format: ${r}`);return t.slice(1,t.length-1).join(yl)}function MK(r){return r.startsWith(na.URL_SCHEME)?r.slice(na.URL_SCHEME.length):r}var na=class{constructor(t){if(!L().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=cE(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=ea(t),s=vr.join(t.weightData);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,tE(s));let i={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(i)),{modelArtifactsInfo:o}}catch(i){throw pE(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=eE(i),e}};na.URL_SCHEME="localstorage://";var mE=r=>L().getBool("IS_BROWSER")&&!Array.isArray(r)&&r.startsWith(na.URL_SCHEME)?LK(r.slice(na.URL_SCHEME.length)):null;ve.registerSaveRouter(mE);ve.registerLoadRouter(mE);function LK(r){return new na(r)}var mx=class{constructor(){_(L().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=om+yl,n=yl+uE;for(let o=0;o"scheme must not be undefined or null."),t.endsWith(sm)&&(t=t.slice(0,t.indexOf(sm))),_(t.length>0,()=>"scheme must not be an empty string.");let n=$r.getInstance();_(n.managers[t]==null,()=>`A model store manager is already registered for scheme '${t}'.`),n.managers[t]=e}static getManager(t){let e=$r.getInstance().managers[t];if(e==null)throw new Error(`Cannot find model manager for scheme '${t}'`);return e}static getSchemes(){return Object.keys($r.getInstance().managers)}};function fx(r){if(r.indexOf(sm)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${$r.getSchemes().join(",")}`);return{scheme:r.split(sm)[0],path:r.split(sm)[1]}}async function fE(r,t,e=!1){_(r!==t,()=>`Old path and new path are the same: '${r}'`);let n=ve.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=ve.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=fx(r).scheme,u=fx(r).path,l=a===fx(r).scheme,c=await o.load();e&&l&&await $r.getManager(a).removeModel(u);let p=await i.save(c);return e&&!l&&await $r.getManager(a).removeModel(u),p.modelArtifactsInfo}async function dE(){let r=$r.getSchemes(),t={};for(let e of r){let n=await $r.getManager(e).listModels();for(let o in n){let s=e+sm+o;t[s]=n[o]}}return t}async function hE(r){let t=fx(r);return $r.getManager(t.scheme).removeModel(t.path)}async function gE(r,t){return fE(r,t,!1)}async function xE(r,t){return fE(r,t,!0)}var U0=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"||!L().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))}isTypedArray(t){return Qg(t)}};if(L().get("IS_BROWSER")){L().setPlatform("browser",new U0);try{$r.registerManager(na.URL_SCHEME,new mx)}catch(r){}try{$r.registerManager(ra.URL_SCHEME,new px)}catch(r){}}var zK={importFetch:()=>yE()},H0;var q0=class{constructor(){this.util=bE(),this.textEncoder=new this.util.TextEncoder}fetch(t,e){return L().global.fetch!=null?L().global.fetch(t,e):(H0==null&&(H0=zK.importFetch()),H0(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)}isTypedArray(t){return this.util.types.isFloat32Array(t)||this.util.types.isInt32Array(t)||this.util.types.isUint8Array(t)||this.util.types.isUint8ClampedArray(t)}};L().get("IS_NODE")&&!L().get("IS_BROWSER")&&L().setPlatform("node",new q0);function wt(r,t="float32",e){return t=t||"float32",Me(r),new le(r,t,e)}function BK(r,t){let e=C(r,"x","cast");if(!d0(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 T.runKernel(xo,n,o)}var Q=k({cast_:BK});function VK(r){let e={x:C(r,"x","clone","string_or_numeric")};return T.runKernel(bo,e)}var cn=k({clone_:VK});function dx(r,t=!1){console.log(r.toString(t))}F0();var GK={buffer:wt,cast:Q,clone:cn,print:dx};K_(GK);function aht(){L().set("PROD",!0)}function lht(){L().set("DEBUG",!0)}function uht(){L().set("DEPRECATION_WARNINGS_ENABLED",!1),console.warn("TensorFlow.js deprecation warnings have been disabled.")}function K0(r){L().getBool("DEPRECATION_WARNINGS_ENABLED")&&console.warn(r+" You can disable deprecation warnings with tf.disableDeprecationWarnings().")}j_(K0);function cht(){T.disposeVariables()}function Wn(){return T}function fh(){return T.memory()}function pht(r){return T.profile(r)}function B(r,t){return T.tidy(r,t)}function Tt(r){ph(r).forEach(e=>e.dispose())}function $e(r){return T.keep(r)}function mht(r){return T.time(r)}function WK(r){return T.setBackend(r)}function fht(){return T.ready()}function dht(){return T.backendName}function hht(r){T.removeBackend(r)}function ght(r){return T.findBackend(r)}function xht(r){return T.findBackendFactory(r)}function im(r,t,e=1){return T.registerBackend(r,t,e)}function wE(){return T.backend}function yht(r,t){L().setPlatform(r,t)}function UK(r,t){let e=C(r,"a","add"),n=C(t,"b","add");[e,n]=jt(e,n);let o={a:e,b:n};return T.runKernel(ao,o)}var Y=k({add_:UK});function HK(r,t){let e=C(r,"a","floorDiv"),n=C(t,"b","floorDiv");[e,n]=jt(e,n);let o={a:e,b:n};return T.runKernel(xs,o)}var am=k({floorDiv_:HK});function qK(r,t){let e=C(r,"a","div"),n=C(t,"b","div");if([e,n]=jt(e,n),e.dtype==="int32"&&n.dtype==="int32")return am(e,n);let o={a:e,b:n},s={};return T.runKernel(ps,o,s)}var ct=k({div_:qK});function KK(r,t){let e=C(r,"a","mul"),n=C(t,"b","mul");[e,n]=jt(e,n);let o={a:e,b:n};return T.runKernel(Os,o)}var $=k({mul_:KK});function jK(r){let t=C(r,"x","abs");if(t.dtype==="complex64"){let e={x:t};return T.runKernel(tu,e)}else{let e={x:t};return T.runKernel($i,e)}}var Ee=k({abs_:jK});function XK(r){let e={x:C(r,"x","acos")};return T.runKernel(qo,e)}var hx=k({acos_:XK});function YK(r){let e={x:C(r,"x","acosh")};return T.runKernel(Ko,e)}var gx=k({acosh_:YK});function ZK(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)=>C(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(!an(o.shape,e.shape))throw new Error("All tensors passed to tf.addN() must have the same shape")});let n=t;return T.runKernel(jo,n)}var IE=k({addN_:ZK});function JK(r,t=null,e=!1){let o={x:C(r,"x","all","bool")},s={axis:t,keepDims:e};return T.runKernel(Ra,o,s)}var lm=k({all_:JK});function QK(r,t=null,e=!1){let o={x:C(r,"x","any","bool")},s={axis:t,keepDims:e};return T.runKernel(Fa,o,s)}var bc=k({any_:QK});function tj(r,t=0){let n={x:C(r,"x","argMax")},o={axis:t};return T.runKernel(Ri,n,o)}var oa=k({argMax_:tj});function ej(r,t=0){let n={x:C(r,"x","argMin")},o={axis:t};return T.runKernel(Fi,n,o)}var xx=k({argMin_:ej});function rj(r){let e={x:C(r,"x","asin")};return T.runKernel(Xo,e)}var yx=k({asin_:rj});function nj(r){let e={x:C(r,"x","asinh")};return T.runKernel(Yo,e)}var bx=k({asinh_:nj});function oj(r){let e={x:C(r,"x","atan")};return T.runKernel(Zo,e)}var wx=k({atan_:oj});function sj(r,t){let e=C(r,"a","atan2"),n=C(t,"b","atan2");[e,n]=jt(e,n);let o={a:e,b:n};return T.runKernel(Qo,o)}var Ix=k({atan2_:sj});function ij(r){let e={x:C(r,"x","atanh")};return T.runKernel(Jo,e)}var Cx=k({atanh_:ij});function aj(r,t,e,n,o="NHWC",s){let i=r[3],a=[...t,i],u=vE(o);return wc(r,a,e,s,n,null,null,u)}function X0(r,t,e,n,o,s,i="channelsLast"){let[a,u]=dh(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 wc(r,l,e,n,o,s,!1,i)}function lj(r,t,e,n,o,s,i="NDHWC"){let[a,u,l]=j0(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 CE(r,c,e,n,o,!1,p,s)}function wc(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]=dh(e),[x,b]=dh(n),w=um(m,x),I=um(f,b),{padInfo:N,outHeight:E,outWidth:A}=pj(o,l,c,h,g,w,I,s,a),D=i?d*p:d,F;return a==="channelsFirst"?F=[u,D,E,A]:a==="channelsLast"&&(F=[u,E,A,D]),{batchSize:u,dataFormat:a,inHeight:l,inWidth:c,inChannels:p,outHeight:E,outWidth:A,outChannels:D,padInfo:N,strideHeight:h,strideWidth:g,filterHeight:m,filterWidth:f,effectiveFilterHeight:w,effectiveFilterWidth:I,dilationHeight:x,dilationWidth:b,inShape:r,outShape:F,filterShape:t}}function CE(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]=j0(e),[I,N,E]=j0(n),A=um(f,I),D=um(d,N),F=um(h,E),{padInfo:P,outDepth:V,outHeight:G,outWidth:W}=mj(o,l,c,p,x,b,w,A,D,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:D,effectiveFilterWidth:F,dilationDepth:I,dilationHeight:N,dilationWidth:E,inShape:r,outShape:H,filterShape:t}}function uj(r,t,e,n,o){n==null&&(n=Y0(r,t,e));let s=r[0],i=r[1],a=hh((s-t+2*n)/e+1,o),u=hh((i-t+2*n)/e+1,o);return[a,u]}function cj(r,t,e,n,o,s){o==null&&(o=Y0(r,t[0],n[0]));let i=[0,0,0,e];for(let a=0;a<3;a++)r[a]+2*o>=t[a]&&(i[a]=hh((r[a]-t[a]+2*o)/n[a]+1,s));return i}function Y0(r,t,e,n=1){let o=um(t,n);return Math.floor((r[0]*(e-1)-e+o)/2)}function dh(r){return typeof r=="number"?[r,r,r]:r.length===2?[r[0],r[1],1]:r}function j0(r){return typeof r=="number"?[r,r,r]:r}function um(r,t){return t<=1?r:r+(r-1)*(t-1)}function pj(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=uj([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=hh((t-s+m+f)/n+1,a),p=hh((e-i+d+h)/o+1,a)}else throw Error(`Unknown padding parameter: ${r}`);return{padInfo:l,outHeight:c,outWidth:p}}function mj(r,t,e,n,o,s,i,a,u,l,c){let p,m,f,d;if(r==="valid"&&(r=0),typeof r=="number"){p={top:r,bottom:r,left:r,right:r,front:r,back:r,type:r===0?"VALID":"NUMBER"};let g=cj([t,e,n,1],[a,u,l],1,[o,s,i],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,I=Math.floor(g/2),N=g-I,E=Math.floor(x/2),A=x-E;p={top:I,bottom:N,left:E,right:A,front:b,back:w,type:"SAME"}}else throw Error(`Unknown padding parameter: ${r}`);return{padInfo:p,outDepth:m,outHeight:f,outWidth:d}}function hh(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 co(r){let[t,e,n]=dh(r);return t===1&&e===1&&n===1}function Rr(r,t){return co(r)||co(t)}function sa(r){return dh(r).every(t=>t>0)}function vE(r){if(r==="NHWC")return"channelsLast";if(r==="NCHW")return"channelsFirst";throw new Error(`Unknown dataFormat ${r}`)}function Se(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")_($a(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=>{_($a(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 fj(r,t){let n={x:C(r,"x","reshape","string_or_numeric")},o={shape:t};return T.runKernel(Ui,n,o)}var R=k({reshape_:fj});function dj(r,t,e,n,o){let s=C(r,"x","avgPool","float32"),i=1;_(Rr(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}.`),Se("avgPool",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o},p=T.runKernel(ts,l,c);return p=Q(p,s.dtype),u?R(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var Su=k({avgPool_:dj});function hj(r,t,e,n,o,s="NDHWC"){let i=C(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}`),_(typeof e=="number"&&e>0||Array.isArray(e)&&e[0]>0&&e[1]>0&&e[2]>0,()=>`Error in avgPool3d: Stride must be > 0, but got '${e}'`),Se("avgPool3d",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o,dataFormat:s},p=T.runKernel(Oi,l,c);return p=Q(p,a.dtype),u?R(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var vx=k({avgPool3d_:hj});function gj(r,t=0){_(r.length>=1,()=>"Pass at least one tensor to concat");let e=xl(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 cn(e[0]);let n=e,o={axis:t};return T.runKernel(Mi,n,o)}var ie=k({concat_:gj});function xj(r,t,e=!1,n=!1){let o=C(r,"a","matMul"),s=C(t,"b","matMul");[o,s]=jt(o,s);let i={a:o,b:s},a={transposeA:e,transposeB:n};return T.runKernel(es,i,a)}var Bt=k({matMul_:xj});function yj(r){let e={x:C(r,"x","sigmoid","float32")};return T.runKernel(Qs,e)}var en=k({sigmoid_:yj});function bj(r,t,e){let n=C(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 T.runKernel(qi,o,s)}var Pt=k({slice_:bj});function wj(r){let e={x:C(r,"x","tanh","float32")};return T.runKernel(ai,e)}var ia=k({tanh_:wj});function Ij(r,t,e,n,o,s){let i=C(r,"forgetBias","basicLSTMCell"),a=C(t,"lstmKernel","basicLSTMCell"),u=C(e,"lstmBias","basicLSTMCell"),l=C(n,"data","basicLSTMCell"),c=C(o,"c","basicLSTMCell"),p=C(s,"h","basicLSTMCell"),m=ie([l,p],1),f=Bt(m,a),d=Y(f,u),h=d.shape[0],g=d.shape[1]/4,x=[h,g],b=Pt(d,[0,0],x),w=Pt(d,[0,g],x),I=Pt(d,[0,g*2],x),N=Pt(d,[0,g*3],x),E=Y($(en(b),ia(w)),$(c,en(Y(i,I)))),A=$(ia(E),en(N));return[E,A]}var SE=k({basicLSTMCell_:Ij});function Cj(r,t,e){let n=C(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 T.runKernel(Pi,s,i)}var Nu=k({batchToSpaceND_:Cj});function NE(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 vj(r,t,e,n,o,s){s==null&&(s=.001);let i=C(r,"x","batchNorm"),a=C(t,"mean","batchNorm"),u=C(e,"variance","batchNorm"),l;o!=null&&(l=C(o,"scale","batchNorm"));let c;n!=null&&(c=C(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:NE(i),scale:l,offset:c,mean:a,variance:u},f={varianceEpsilon:s},d=T.runKernel(ys,m,f);return R(d,i.shape)}var aa=k({batchNorm_:vj});function Sj(r,t,e,n,o,s){let i=C(r,"x","batchNorm"),a=C(t,"mean","batchNorm"),u=C(e,"variance","batchNorm"),l;o!=null&&(l=C(o,"scale","batchNorm"));let c;return n!=null&&(c=C(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}.`),aa(i,a,u,c,l,s)}var Sx=k({batchNorm2d_:Sj});function Nj(r,t,e,n,o,s){let i=C(r,"x","batchNorm"),a=C(t,"mean","batchNorm"),u=C(e,"variance","batchNorm"),l;o!=null&&(l=C(o,"scale","batchNorm"));let c;return n!=null&&(c=C(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}.`),aa(i,a,u,c,l,s)}var Nx=k({batchNorm3d_:Nj});function kj(r,t,e,n,o,s){let i=C(r,"x","batchNorm"),a=C(t,"mean","batchNorm"),u=C(e,"variance","batchNorm"),l;o!=null&&(l=C(o,"scale","batchNorm"));let c;return n!=null&&(c=C(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}.`),aa(i,a,u,c,l,s)}var kx=k({batchNorm4d_:kj});function Tj(r,t,e){let n=C(r,"x","bincount"),o=C(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 T.runKernel(Oa,s,i)}var Tx=k({bincount_:Tj});function _j(r,t){let e=C(r,"x","bitwiseAnd"),n=C(t,"y","bitwiseAnd");if(!an(e.shape,n.shape))throw new Error(`BitwiseAnd: Tensors must have the same shape. x: ${e.shape}, y: ${n.shape}`);if(e.dtype!=="int32"||n.dtype!=="int32")throw new Error(`BitwiseAnd: Only supports 'int32' values in tensor, found type of x: ${e.dtype} and type of y: ${n.dtype}`);let o={a:e,b:n};return T.runKernel(Pa,o)}var kE=k({bitwiseAnd_:_j});function Ej(r,t){let e=C(r,"s0","broadcastArgs","int32"),n=C(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 T.runKernel(Ql,o)}var TE=k({broadcastArgs_:Ej});function Aj(r,t){let e=C(r,"broadcastTo","x"),n=e.shape;if(Me(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 cn(e);let a={x:e},u={reps:s};return T.runKernel(lo,a,u)}var la=k({broadcastTo_:Aj});function Dj(r){let e={x:C(r,"x","ceil","float32")};return T.runKernel(rs,e)}var _x=k({ceil_:Dj});function No(r,t,e){Me(r),e=e||Yl(t);let n={shape:r,value:t,dtype:e};return T.runKernel(su,{},n)}function $j(r,t,e){let n=C(r,"x","clipByValue");if(_(t<=e,()=>`Error in clip: min (${t}) must be less than or equal to max (${e}).`),t===e)return No(n.shape,t,n.dtype);let o={x:n},s={clipValueMin:t,clipValueMax:e};return T.runKernel(yo,o,s)}var Sr=k({clipByValue_:$j});function Rj(r){return ie(r,0)}var Ex=k({concat1d_:Rj});function Fj(r,t){return ie(r,t)}var Ax=k({concat2d_:Fj});function Oj(r,t){return ie(r,t)}var Dx=k({concat3d_:Oj});function Pj(r,t){return ie(r,t)}var $x=k({concat4d_:Pj});function Mj(r,t,e,n,o="NHWC",s=[1,1],i){let a=C(r,"x","conv2d","float32"),u=C(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}.`),Se("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]}.`),_(Rr(e,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`),_(sa(s),()=>"Error in conv2D: Dilated rates should be larger than 0."),_(sa(e),()=>"Error in conv2D: Strides should be larger than 0.");let m={x:l,filter:u},f={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i},d=T.runKernel(ns,m,f);return c?R(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var Tn=k({conv2d_:Mj});function Lj(r,t,e,n,o="NWC",s=1,i){let a=C(r,"x","conv1d"),u=C(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}.`),Se("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]}.`),_(Rr(e,s),()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${e} and dilation '${s}'`),_(sa(s),()=>"Error in conv1D: Dilated rates should be larger than 0."),_(sa(e),()=>"Error in conv1D: Stride should be larger than 0."),_(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=Tn(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 cm=k({conv1d_:Lj});function zj(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]}.`),Se("conv2dDerInput",o,i);let m={dy:u,filter:e},f={strides:n,pad:o,dataFormat:s,dimRoundingMode:i,inputShape:a},d=T.runKernel(os,m,f);return l?R(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var pm=k({conv2DBackpropInput_:zj});function Bj(r,t,e,n,o,s){let i=C(r,"x","conv2dTranspose"),a=C(t,"filter","conv2dTranspose");return pm(e,i,a,n,o,"NHWC",s)}var mm=k({conv2dTranspose_:Bj});function Vj(r,t,e,n,o="NDHWC",s=[1,1,1]){let i=C(r,"x","conv3d"),a=C(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]}.`),_(Rr(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.`),_(sa(s),()=>"Error in conv3D: Dilated rates should be larger than 0."),_(sa(e),()=>"Error in conv3D: Strides should be larger than 0.");let c={x:u,filter:a},p={strides:e,pad:n,dataFormat:o,dilations:s},m=T.runKernel(ss,c,p);return l?R(m,[m.shape[1],m.shape[2],m.shape[3],m.shape[4]]):m}var Rx=k({conv3d_:Vj});function Gj(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=T.runKernel(La,c,p);return a?R(m,[m.shape[1],m.shape[2],m.shape[3],m.shape[4]]):m}var Fx=k({conv3DBackpropInput_:Gj});function Wj(r,t,e,n,o){let s=C(r,"x","conv3dTranspose"),i=C(t,"filter","conv3dTranspose");return Fx(e,s,i,n,o)}var Ox=k({conv3dTranspose_:Wj});function Uj(r){let e={x:C(r,"x","cos","float32")};return T.runKernel(is,e)}var ku=k({cos_:Uj});function Hj(r){let e={x:C(r,"x","cosh","float32")};return T.runKernel(as,e)}var fm=k({cosh_:Hj});function qj(r,t=0,e=!1,n=!1){let s={x:C(r,"x","cumprod")},i={axis:t,exclusive:e,reverse:n};return T.runKernel(za,s,i)}var Ic=k({cumprod_:qj});function Kj(r,t=0,e=!1,n=!1){let s={x:C(r,"x","cumsum")},i={axis:t,exclusive:e,reverse:n};return T.runKernel(ls,s,i)}var dm=k({cumsum_:Kj});function jj(r,t,e,n=!1){let o=C(r,"x","denseBincount"),s=C(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 T.runKernel(eu,i,a)}var gh=k({denseBincount_:jj});function Xj(r,t,e="NHWC"){let n=C(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}`),_(s*t>=0,()=>`Negative dimension size caused by overflow when multiplying ${s} and ${t} for depthToSpace with input 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 T.runKernel(Pa,a,u)}var Ox=k({depthToSpace_:Nj});function kj(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]}.`),Se("depthwiseConv2d",n,i);let m={x:l,filter:u},f={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i},d=T.runKernel(ls,m,f);return c?R(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var sa=k({depthwiseConv2d_:kj});function Tj(r){let e={x:v(r,"x","diag")};return T.runKernel(Ql,e)}var wE=k({diag_:Tj});function _j(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),_(u.shape[3]===a.shape[2],()=>`Error in dilation2d: input and filter must have the same depth: ${u.shape[3]} vs ${a.shape[2]}`);let c={x:u,filter:a},p={strides:e,pad:n,dilations:o},m=T.runKernel(us,c,p);return l?R(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var Px=k({dilation2d_:_j});var Ur={};Kt(Ur,{assertAndGetBroadcastShape:()=>Mt,getBroadcastDims:()=>IE,getReductionAxes:()=>ye});function IE(r,t){let e=r.length,n=[];for(let o=0;o1&&i===1&&n.unshift(s)}return n}function ye(r,t){let e=[];for(let n=0;n1)&&e.unshift(s)}return e}function Mt(r,t){let e=Math.max(r.length,t.length),n=new Array(e);for(let o=0;o`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=Bt(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=Bt(i,a);return R(u,[u.size])}else if(e.rank===2&&n.rank===1){let i=R(n,[-1,1]),a=Bt(e,i);return R(a,[a.size])}else{let i=R(n,[n.shape[0],n.shape[1]]);return Bt(e,i)}}var Lx=k({dot_:Rj});function Fj(r,...t){let e=t.map((o,s)=>v(o,`tensors${s}`,"einsum")),n={equation:r};return T.runKernel(zp,e,n)}var CE=k({einsum_:Fj});function Oj(r){let e={x:v(r,"x","elu","float32")};return T.runKernel(ps,e)}var ia=k({elu_:Oj});function Pj(r,t){let e=v(r,"x","ensureShape","string_or_numeric");if(!n0(e.shape,t))throw new Error(`EnsureShape: Shape of tensor ${e.shape} is not compatible with expected shape ${t}`);return r}var vE=k({ensureShape_:Pj});function Mj(r){let t=v(r,"x","erf");_(t.dtype==="int32"||t.dtype==="float32",()=>"Input dtype must be `int32` or `float32`."),t.dtype==="int32"&&(t=Q(t,"float32"));let e={x:t};return T.runKernel(La,e)}var zx=k({erf_:Mj});function U0(r,t){for(let e=0;er[s]);return[e,o]}function So(r,t){let e=t.map(n=>1);return SE(r,e,t)}function Lj(r,t,e){_(U0(t,e),()=>`${r} supports only inner-most axes for now. Got axes ${t} and rank-${e} input.`)}function q0(r,t){if(U0(r,t))return null;let e=[];for(let n=0;ne.push(n)),e}function xh(r){return r.map((t,e)=>[e,t]).sort((t,e)=>t[1]-e[1]).map(t=>t[0])}function zj(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 T.runKernel(Fi,n,o)}var ar=k({expandDims_:Xj});function Yj(r){let e={x:v(r,"x","expm1")};return T.runKernel(fs,e)}var Vx=k({expm1_:Yj});function Zj(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 T.runKernel(so,n,o)}var Fr=k({tile_:Zj});function Jj(r,t,e,n="float32"){t==null&&(t=r);let o=bt([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}.`),_(_a(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=T.runKernel(Ss,u,l);return a?R(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var Hx=k({localResponseNormalization_:c6});function p6(r){let e={x:v(r,"x","log","float32")};return T.runKernel(Cs,e)}var Nr=k({log_:p6});function m6(r){let e={x:v(r,"x","log1p")};return T.runKernel(vs,e)}var Su=k({log1p_:m6});function f6(r){return _(ki(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 T.tidy(()=>{let{value:s,grads:i}=T.gradients(()=>r(n),[n],o);return o!=null&&Re(s.shape,o.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),Kx(i),i[0]})}}function d6(r){return _(ki(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=hl(t,"args","tf.grads","string_or_numeric"),o=e!=null?v(e,"dy","tf.grads"):null;return T.tidy(()=>{let{value:s,grads:i}=T.gradients(()=>r(...n),n,o);return o!=null&&Re(s.shape,o.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Kx(i),i})}}function h6(r){return _(ki(r),()=>"The f passed in valueAndGrad(f) must be a function"),(t,e)=>{_(t instanceof Pt,()=>"The x passed in valueAndGrad(f)(x) must be a tensor"),_(e==null||e instanceof Pt,()=>"The dy passed in valueAndGrad(f)(x, dy) must be a tensor");let{grads:n,value:o}=T.gradients(()=>r(t),[t],e);return Kx(n),{grad:n[0],value:o}}}function g6(r){return _(ki(r),()=>"The f passed in valueAndGrads(f) must be a function"),(t,e)=>{_(Array.isArray(t)&&t.every(o=>o instanceof Pt),()=>"The args passed in valueAndGrads(f)(args) must be array of tensors"),_(e==null||e instanceof Pt,()=>"The dy passed in valueAndGrads(f)(args, dy) must be a tensor");let n=T.gradients(()=>r(...t),t,e);return e!=null&&Re(n.value.shape,e.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Kx(n.grads),n}}function qx(r,t){_(ki(r),()=>"The f passed in variableGrads(f) must be a function"),_(t==null||Array.isArray(t)&&t.every(l=>l instanceof dl),()=>"The varList passed in variableGrads(f, varList) must be an array of variables");let e=t!=null;if(!e){t=[];for(let l in T.registeredVariables)t.push(T.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}=T.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 mn(r){return T.customGrad(r)}function Kx(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 x6(r){let e={x:v(r,"x","neg")};return T.runKernel(Mi,e)}var Ut=k({neg_:x6});function y6(r){let e={x:v(r,"x","softplus")};return T.runKernel(Ys,e)}var ai=k({softplus_:y6});function b6(r){let t=v(r,"x","logSigmoid");return mn(n=>({value:Ut(ai(Ut(n))),gradFunc:i=>$(i,tn(Ut(n)))}))(t)}var jx=k({logSigmoid_:b6});function w6(r,t){let e=v(r,"a","sub"),n=v(t,"b","sub");[e,n]=jt(e,n);let o={a:e,b:n};return T.runKernel(ei,o)}var lt=k({sub_:w6});function I6(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 mn((o,s)=>{let a=Sr(o,t,!0),u=lt(o,a),l=lt(Q(u,"float32"),Nr(pt(ir(u),t,!0)));return s([l]),{value:l,gradFunc:(p,m)=>{let[f]=m,d=!0,h=ir(f);return lt(p,$(pt(p,t,d),h))}}})(e)}var dm=k({logSoftmax_:I6});function C6(r,t=null,e=!1){let n=v(r,"x","logSumExp"),o=fr(t,n.shape),s=Sr(n,o,!0),i=lt(n,s),a=ir(i),u=pt(a,o),l=Nr(u),c=Y(R(s,l.shape),l);if(e){let p=So(c.shape,o);return R(c,p)}return c}var hm=k({logSumExp_:C6});function v6(r,t){let e=v(r,"a","logicalAnd","bool"),n=v(t,"b","logicalAnd","bool");Mt(e.shape,n.shape);let o={a:e,b:n};return T.runKernel(qa,o)}var Or=k({logicalAnd_:v6});function S6(r){let e={x:v(r,"x","logicalNot","bool")};return T.runKernel(Ka,e)}var Nu=k({logicalNot_:S6});function N6(r,t){let e=v(r,"a","logicalOr","bool"),n=v(t,"b","logicalOr","bool");Mt(e.shape,n.shape);let o={a:e,b:n};return T.runKernel(ja,o)}var gm=k({logicalOr_:N6});function k6(r,t){let e=v(r,"a","logicalXor","bool"),n=v(t,"b","logicalXor","bool");return Mt(e.shape,n.shape),Or(gm(r,t),Nu(Or(r,t)))}var Xx=k({logicalXor_:k6});var Yx=2147483648;function T6(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(te(u.shape)>=Yx)throw new Error(`values tensor size must less than ${Yx}`);if(a.shape[1]>=Yx)throw new Error(`trailing dim_size must less than ${Yx} for int32 output type, was ${a.shape[1]}`);let l={sortedSequence:a,values:u},c={side:e};return T.runKernel(il,l,c)}var yh=k({searchSorted_:T6});function TE(r,t){return yh(r,t,"left")}function _6(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}.`),_($r(e,i),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${e} and dilations '${i}'`),Se("maxPool",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o},p=T.runKernel(Ts,l,c);return u?R(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var ku=k({maxPool_:_6});function E6(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}`),Se("maxPool3d",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o,dataFormat:s},p=T.runKernel(Pi,l,c);return u?R(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var Zx=k({maxPool3d_:E6});function A6(r,t,e,n,o=!1){let i={x:v(r,"x","maxPoolWithArgmax")},a={filterSize:t,strides:e,pad:n,includeBatchInIndex:o},u=T.runKernel(Up,i,a);return{result:u[0],indexes:u[1]}}var _E=k({maxPoolWithArgmax_:A6});function D6(r,t){let e=v(r,"a","maximum"),n=v(t,"b","maximum");[e,n]=jt(e,n),e.dtype==="bool"&&(e=Q(e,"int32"),n=Q(n,"int32")),Mt(e.shape,n.shape);let o={a:e,b:n};return T.runKernel(ks,o)}var Tn=k({maximum_:D6});function $6(r,t=null,e=!1){let o={x:v(r,"x","mean")},s={axis:t,keepDims:e};return T.runKernel(_s,o,s)}var ke=k({mean_:$6});function Te(r,t="float32"){if(Me(r),t==="complex64"){let n=Te(r,"float32"),o=Te(r,"float32");return Nn(n,o)}let e=Rp(te(r),t);return T.makeTensor(e,r,t)}function dr(r,t="float32"){if(Me(r),t==="complex64"){let n=dr(r,"float32"),o=Te(r,"float32");return Nn(n,o)}let e=th(te(r),t);return T.makeTensor(e,r,t)}function EE(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 Pt?r.dtype:"float32");if(t===void 0)return[n];let o=v(t,"y","meshgrid",t instanceof Pt?t.dtype:"float32"),s=te(n.shape),i=te(o.shape);return e==="xy"?(n=R(n,[1,-1]),o=R(o,[-1,1]),[Bt(dr([i,1],n.dtype),n),Bt(o,dr([1,s],o.dtype))]):(n=R(n,[-1,1]),o=R(o,[1,-1]),[Bt(n,dr([1,i],n.dtype)),Bt(dr([s,1],o.dtype),o)])}function R6(r,t){let e=v(r,"a","minimum"),n=v(t,"b","minimum");[e,n]=jt(e,n),e.dtype==="bool"&&(e=Q(e,"int32"),n=Q(n,"int32")),Mt(e.shape,n.shape);let o={a:e,b:n};return T.runKernel(As,o)}var uo=k({minimum_:R6});function F6(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 T.runKernel(Ds,i,s)}var Jx=k({mirrorPad_:F6});function O6(r,t){let e=v(r,"a","mod"),n=v(t,"b","mod");[e,n]=jt(e,n);let o={a:e,b:n};return T.runKernel(Ya,o)}var Qx=k({mod_:O6});function P6(r,t=null,e=!1){r=v(r,"x","moments");let n=fr(t,r.shape),o=ke(r,n,e),s=o.shape;e||(s=So(o.shape,n));let i=Wt(lt(Q(r,"float32"),R(o,s))),a=ke(i,n,e);return{mean:o,variance:a}}var yc=k({moments_:P6});function M6(r,t,e,n){let o=v(t,"data","multiRNNCell"),s=hl(e,"c","multiRNNCell"),i=hl(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=T.runKernel(Za,u,l);return i===1?R(c,[c.size]):c}var DE=k({multinomial_:L6});function z6(r,t){let e=v(r,"a","notEqual","string_or_numeric"),n=v(t,"b","notEqual","string_or_numeric");[e,n]=jt(e,n),Mt(e.shape,n.shape);let o={a:e,b:n};return T.runKernel(Ja,o)}var li=k({notEqual_:z6});function B6(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 T.runKernel(Rs,i,a)}var ua=k({oneHot_:B6});function V6(r){let e={x:v(r,"x","onesLike")};return T.runKernel(Li,e)}var Ir=k({onesLike_:V6});function G6(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 Bt(o,s)}var $E=k({outerProduct_:G6});function W6(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 T.runKernel(Fs,s,o)}var fn=k({pad_:W6});function U6(r,t,e=0){return _(t.length===2,()=>"Invalid number of paddings. Must be length of 2."),fn(r,[t],e)}var RE=k({pad1d_:U6});function H6(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."),fn(r,t,e)}var FE=k({pad2d_:H6});function q6(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."),fn(r,t,e)}var OE=k({pad3d_:q6});function K6(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."),fn(r,t,e)}var PE=k({pad4d_:K6});function j6(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 T.runKernel(Wi,o,s)}var Tu=k({spaceToBatchND_:j6});function X6(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]])),_($r(s,o),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${o}'`);let c=G0(u.shape,t,s,o,n),p=[c.dilationHeight,c.dilationWidth],m;n==="same"?m=Z6([c.filterHeight,c.filterWidth],p):m=[[0,0],[0,0]];let f=p[0]===1&&p[1]===1,[d,h]=Y6([c.inHeight,c.inWidth],p,m),g=f?n:"valid",x=f?u:Tu(u,p,d),w=(e==="avg"?()=>bu(x,t,s,g,i):()=>ku(x,t,s,g,i))(),I=f?w:wu(w,p,h);return l?R(I,[I.shape[1],I.shape[2],I.shape[3]]):I}function Y6(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 Z6(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 ty=k({pool_:X6});function J6(r,t){let e=v(r,"x","prelu"),n=v(t,"alpha","prelu"),o={x:e,alpha:n};return T.runKernel(Ps,o)}var _u=k({prelu_:J6});function Q6(r,t=null,e=!1){let n=v(r,"x","prod");n.dtype==="bool"&&(n=Q(n,"int32"));let o={x:n},s={axis:t,keepDims:e};return T.runKernel(Ms,o,s)}var ey=k({prod_:Q6});function tX(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=T.runKernel(Hp,a,u);return{outputNestedSplits:l.slice(0,l.length-1),outputDenseValues:l[l.length-1]}}var ME=k({raggedGather_:tX});function eX(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=T.runKernel(qp,i);return{rtNestedSplits:a[0],rtDenseValues:a[1]}}var LE=k({raggedRange_:eX});function rX(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 T.runKernel(Kp,l,c)}var zE=k({raggedTensorToTensor_:rX});function nX(r,t,e){Me(r);let n=te(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;snA,createVideoElement:()=>gX,encodeStrings:()=>sA,expectArrayBuffersEqual:()=>hX,expectArraysClose:()=>pX,expectArraysEqual:()=>fX,expectNumbersClose:()=>oA,expectPromiseToFail:()=>mX,expectValuesInRange:()=>dX,play:()=>xX,testEpsilon:()=>ny});var cX=.001,nA=.1;function pX(r,t,e){return e==null&&(e=ny()),tN(r,t,(n,o)=>eN(n,o,e))}function ny(){return T.backend.floatPrecision()===32?cX:nA}function tN(r,t,e){let n=!0;if((or(r)||or(t))&&(n=!1),or(r)&&or(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=Wr(r),a=Wr(t);if(!sn(i,a))throw new Error(`Arrays have different shapes. Actual: [${i}]. Expected: [${a}]`)}let o=or(r)?r:si(r),s=or(t)?t:si(t);if(o.length!==s.length)throw new Error(`Arrays have different lengths actual: ${o.length} vs expected: ${s.length}. + ${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 T.runKernel(Va,a,u)}var Px=k({depthToSpace_:Xj});function Yj(r,t,e,n,o="NHWC",s=[1,1],i){let a=C(r,"x","depthwiseConv2d","float32"),u=C(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]}.`),Se("depthwiseConv2d",n,i);let m={x:l,filter:u},f={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i},d=T.runKernel(us,m,f);return c?R(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var ua=k({depthwiseConv2d_:Yj});function Zj(r){let e={x:C(r,"x","diag")};return T.runKernel(ru,e)}var _E=k({diag_:Zj});function Jj(r,t,e,n,o=[1,1],s="NHWC"){let i=C(r,"x","dilation2d"),a=C(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),_(u.shape[3]===a.shape[2],()=>`Error in dilation2d: input and filter must have the same depth: ${u.shape[3]} vs ${a.shape[2]}`);let c={x:u,filter:a},p={strides:e,pad:n,dilations:o},m=T.runKernel(cs,c,p);return l?R(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var Mx=k({dilation2d_:Jj});var Hr={};Kt(Hr,{assertAndGetBroadcastShape:()=>Mt,getBroadcastDims:()=>EE,getReductionAxes:()=>ye});function EE(r,t){let e=r.length,n=[];for(let o=0;o1&&i===1&&n.unshift(s)}return n}function ye(r,t){let e=[];for(let n=0;n1)&&e.unshift(s)}return e}function Mt(r,t){let e=Math.max(r.length,t.length),n=new Array(e);for(let o=0;o`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=Bt(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=Bt(i,a);return R(u,[u.size])}else if(e.rank===2&&n.rank===1){let i=R(n,[-1,1]),a=Bt(e,i);return R(a,[a.size])}else{let i=R(n,[n.shape[0],n.shape[1]]);return Bt(e,i)}}var zx=k({dot_:n6});function o6(r,...t){let e=t.map((o,s)=>C(o,`tensors${s}`,"einsum")),n={equation:r};return T.runKernel(Wp,e,n)}var AE=k({einsum_:o6});function s6(r){let e={x:C(r,"x","elu","float32")};return T.runKernel(ms,e)}var ca=k({elu_:s6});function i6(r,t){let e=C(r,"x","ensureShape","string_or_numeric");if(!c0(e.shape,t))throw new Error(`EnsureShape: Shape of tensor ${e.shape} is not compatible with expected shape ${t}`);return r}var DE=k({ensureShape_:i6});function a6(r){let t=C(r,"x","erf");_(t.dtype==="int32"||t.dtype==="float32",()=>"Input dtype must be `int32` or `float32`."),t.dtype==="int32"&&(t=Q(t,"float32"));let e={x:t};return T.runKernel(fs,e)}var Bx=k({erf_:a6});function Z0(r,t){for(let e=0;er[s]);return[e,o]}function ko(r,t){let e=t.map(n=>1);return $E(r,e,t)}function l6(r,t,e){_(Z0(t,e),()=>`${r} supports only inner-most axes for now. Got axes ${t} and rank-${e} input.`)}function Q0(r,t){if(Z0(r,t))return null;let e=[];for(let n=0;ne.push(n)),e}function xh(r){return r.map((t,e)=>[e,t]).sort((t,e)=>t[1]-e[1]).map(t=>t[0])}function u6(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 T.runKernel(Li,n,o)}var ar=k({expandDims_:b6});function w6(r){let e={x:C(r,"x","expm1")};return T.runKernel(hs,e)}var Gx=k({expm1_:w6});function I6(r,t){let e=C(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 T.runKernel(lo,n,o)}var Or=k({tile_:I6});function C6(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}.`),_($a(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=T.runKernel(ks,u,l);return a?R(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var qx=k({localResponseNormalization_:F6});function O6(r){let e={x:C(r,"x","log","float32")};return T.runKernel(Ss,e)}var kr=k({log_:O6});function P6(r){let e={x:C(r,"x","log1p")};return T.runKernel(Ns,e)}var Eu=k({log1p_:P6});function M6(r){return _(Ai(r),()=>"The f passed in grad(f) must be a function"),(t,e)=>{let n=C(t,"x","tf.grad","string_or_numeric"),o=e!=null?C(e,"dy","tf.grad"):null;return T.tidy(()=>{let{value:s,grads:i}=T.gradients(()=>r(n),[n],o);return o!=null&&Re(s.shape,o.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),jx(i),i[0]})}}function L6(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=xl(t,"args","tf.grads","string_or_numeric"),o=e!=null?C(e,"dy","tf.grads"):null;return T.tidy(()=>{let{value:s,grads:i}=T.gradients(()=>r(...n),n,o);return o!=null&&Re(s.shape,o.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),jx(i),i})}}function z6(r){return _(Ai(r),()=>"The f passed in valueAndGrad(f) must be a function"),(t,e)=>{_(t instanceof Ot,()=>"The x passed in valueAndGrad(f)(x) must be a tensor"),_(e==null||e instanceof Ot,()=>"The dy passed in valueAndGrad(f)(x, dy) must be a tensor");let{grads:n,value:o}=T.gradients(()=>r(t),[t],e);return jx(n),{grad:n[0],value:o}}}function B6(r){return _(Ai(r),()=>"The f passed in valueAndGrads(f) must be a function"),(t,e)=>{_(Array.isArray(t)&&t.every(o=>o instanceof Ot),()=>"The args passed in valueAndGrads(f)(args) must be array of tensors"),_(e==null||e instanceof Ot,()=>"The dy passed in valueAndGrads(f)(args, dy) must be a tensor");let n=T.gradients(()=>r(...t),t,e);return e!=null&&Re(n.value.shape,e.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),jx(n.grads),n}}function Kx(r,t){_(Ai(r),()=>"The f passed in variableGrads(f) must be a function"),_(t==null||Array.isArray(t)&&t.every(l=>l instanceof gl),()=>"The varList passed in variableGrads(f, varList) must be an array of variables");let e=t!=null;if(!e){t=[];for(let l in T.registeredVariables)t.push(T.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}=T.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 fn(r){return T.customGrad(r)}function jx(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 V6(r){let e={x:C(r,"x","neg")};return T.runKernel(Vi,e)}var Ut=k({neg_:V6});function G6(r){let e={x:C(r,"x","softplus")};return T.runKernel(ti,e)}var pi=k({softplus_:G6});function W6(r){let t=C(r,"x","logSigmoid");return fn(n=>({value:Ut(pi(Ut(n))),gradFunc:i=>$(i,en(Ut(n)))}))(t)}var Xx=k({logSigmoid_:W6});function U6(r,t){let e=C(r,"a","sub"),n=C(t,"b","sub");[e,n]=jt(e,n);let o={a:e,b:n};return T.runKernel(si,o)}var lt=k({sub_:U6});function H6(r,t=-1){let e=C(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 fn((o,s)=>{let a=Nr(o,t,!0),u=lt(o,a),l=lt(Q(u,"float32"),kr(pt(ir(u),t,!0)));return s([l]),{value:l,gradFunc:(p,m)=>{let[f]=m,d=!0,h=ir(f);return lt(p,$(pt(p,t,d),h))}}})(e)}var hm=k({logSoftmax_:H6});function q6(r,t=null,e=!1){let n=C(r,"x","logSumExp"),o=fr(t,n.shape),s=Nr(n,o,!0),i=lt(n,s),a=ir(i),u=pt(a,o),l=kr(u),c=Y(R(s,l.shape),l);if(e){let p=ko(c.shape,o);return R(c,p)}return c}var gm=k({logSumExp_:q6});function K6(r,t){let e=C(r,"a","logicalAnd","bool"),n=C(t,"b","logicalAnd","bool");Mt(e.shape,n.shape);let o={a:e,b:n};return T.runKernel(Ya,o)}var Pr=k({logicalAnd_:K6});function j6(r){let e={x:C(r,"x","logicalNot","bool")};return T.runKernel(Za,e)}var Au=k({logicalNot_:j6});function X6(r,t){let e=C(r,"a","logicalOr","bool"),n=C(t,"b","logicalOr","bool");Mt(e.shape,n.shape);let o={a:e,b:n};return T.runKernel(Ja,o)}var xm=k({logicalOr_:X6});function Y6(r,t){let e=C(r,"a","logicalXor","bool"),n=C(t,"b","logicalXor","bool");return Mt(e.shape,n.shape),Pr(xm(r,t),Au(Pr(r,t)))}var Yx=k({logicalXor_:Y6});var Zx=2147483648;function Z6(r,t,e="left"){let n=C(r,"sortedSequence","searchSorted"),o=C(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(te(u.shape)>=Zx)throw new Error(`values tensor size must less than ${Zx}`);if(a.shape[1]>=Zx)throw new Error(`trailing dim_size must less than ${Zx} for int32 output type, was ${a.shape[1]}`);let l={sortedSequence:a,values:u},c={side:e};return T.runKernel(ul,l,c)}var yh=k({searchSorted_:Z6});function OE(r,t){return yh(r,t,"left")}function J6(r,t,e,n,o){let s=C(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}.`),_(Rr(e,i),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${e} and dilations '${i}'`),Se("maxPool",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o},p=T.runKernel(Es,l,c);return u?R(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var Du=k({maxPool_:J6});function Q6(r,t=[1,1,1],e,n,o,s="NDHWC"){let i=C(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}`),Se("maxPool3d",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o,dataFormat:s},p=T.runKernel(Bi,l,c);return u?R(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var Jx=k({maxPool3d_:Q6});function tX(r,t,e,n,o=!1){let i={x:C(r,"x","maxPoolWithArgmax")},a={filterSize:t,strides:e,pad:n,includeBatchInIndex:o},u=T.runKernel(lu,i,a);return{result:u[0],indexes:u[1]}}var PE=k({maxPoolWithArgmax_:tX});function eX(r,t){let e=C(r,"a","maximum"),n=C(t,"b","maximum");[e,n]=jt(e,n),e.dtype==="bool"&&(e=Q(e,"int32"),n=Q(n,"int32")),Mt(e.shape,n.shape);let o={a:e,b:n};return T.runKernel(_s,o)}var _n=k({maximum_:eX});function rX(r,t=null,e=!1){let o={x:C(r,"x","mean")},s={axis:t,keepDims:e};return T.runKernel(As,o,s)}var ke=k({mean_:rX});function Te(r,t="float32"){if(Me(r),t==="complex64"){let n=Te(r,"float32"),o=Te(r,"float32");return kn(n,o)}let e=Lp(te(r),t);return T.makeTensor(e,r,t)}function dr(r,t="float32"){if(Me(r),t==="complex64"){let n=dr(r,"float32"),o=Te(r,"float32");return kn(n,o)}let e=eh(te(r),t);return T.makeTensor(e,r,t)}function ME(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=C(r,"x","meshgrid",r instanceof Ot?r.dtype:"float32");if(t===void 0)return[n];let o=C(t,"y","meshgrid",t instanceof Ot?t.dtype:"float32"),s=te(n.shape),i=te(o.shape);return e==="xy"?(n=R(n,[1,-1]),o=R(o,[-1,1]),[Bt(dr([i,1],n.dtype),n),Bt(o,dr([1,s],o.dtype))]):(n=R(n,[-1,1]),o=R(o,[1,-1]),[Bt(n,dr([1,i],n.dtype)),Bt(dr([s,1],o.dtype),o)])}function nX(r,t){let e=C(r,"a","minimum"),n=C(t,"b","minimum");[e,n]=jt(e,n),e.dtype==="bool"&&(e=Q(e,"int32"),n=Q(n,"int32")),Mt(e.shape,n.shape);let o={a:e,b:n};return T.runKernel($s,o)}var mo=k({minimum_:nX});function oX(r,t,e){_(e==="reflect"||e==="symmetric",()=>`Invalid mode. Mode must be either reflect or symmetric. Got ${e}.`);let n=C(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 T.runKernel(Rs,i,s)}var Qx=k({mirrorPad_:oX});function sX(r,t){let e=C(r,"a","mod"),n=C(t,"b","mod");[e,n]=jt(e,n);let o={a:e,b:n};return T.runKernel(Fs,o)}var ty=k({mod_:sX});function iX(r,t=null,e=!1){r=C(r,"x","moments");let n=fr(t,r.shape),o=ke(r,n,e),s=o.shape;e||(s=ko(o.shape,n));let i=Wt(lt(Q(r,"float32"),R(o,s))),a=ke(i,n,e);return{mean:o,variance:a}}var vc=k({moments_:iX});function aX(r,t,e,n){let o=C(t,"data","multiRNNCell"),s=xl(e,"c","multiRNNCell"),i=xl(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=T.runKernel(tl,u,l);return i===1?R(c,[c.size]):c}var zE=k({multinomial_:lX});function uX(r,t){let e=C(r,"a","notEqual","string_or_numeric"),n=C(t,"b","notEqual","string_or_numeric");[e,n]=jt(e,n),Mt(e.shape,n.shape);let o={a:e,b:n};return T.runKernel(el,o)}var mi=k({notEqual_:uX});function cX(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:C(r,"indices","oneHot","int32")},a={dtype:o,depth:t,onValue:e,offValue:n};return T.runKernel(Ps,i,a)}var fa=k({oneHot_:cX});function pX(r){let e={x:C(r,"x","onesLike")};return T.runKernel(Gi,e)}var Ir=k({onesLike_:pX});function mX(r,t){let e=C(r,"v1","outerProduct"),n=C(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 Bt(o,s)}var BE=k({outerProduct_:mX});function fX(r,t,e=0){let n=C(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 T.runKernel(Ms,s,o)}var dn=k({pad_:fX});function dX(r,t,e=0){return _(t.length===2,()=>"Invalid number of paddings. Must be length of 2."),dn(r,[t],e)}var VE=k({pad1d_:dX});function hX(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."),dn(r,t,e)}var GE=k({pad2d_:hX});function gX(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."),dn(r,t,e)}var WE=k({pad3d_:gX});function xX(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."),dn(r,t,e)}var UE=k({pad4d_:xX});function yX(r,t,e){let n=C(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 T.runKernel(Ki,o,s)}var $u=k({spaceToBatchND_:yX});function bX(r,t,e,n,o,s,i){o==null&&(o=[1,1]),s==null&&(s=1),n===0&&(n="valid");let a=C(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]])),_(Rr(s,o),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${o}'`);let c=X0(u.shape,t,s,o,n),p=[c.dilationHeight,c.dilationWidth],m;n==="same"?m=IX([c.filterHeight,c.filterWidth],p):m=[[0,0],[0,0]];let f=p[0]===1&&p[1]===1,[d,h]=wX([c.inHeight,c.inWidth],p,m),g=f?n:"valid",x=f?u:$u(u,p,d),w=(e==="avg"?()=>Su(x,t,s,g,i):()=>Du(x,t,s,g,i))(),I=f?w:Nu(w,p,h);return l?R(I,[I.shape[1],I.shape[2],I.shape[3]]):I}function wX(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 IX(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 ey=k({pool_:bX});function CX(r,t){let e=C(r,"x","prelu"),n=C(t,"alpha","prelu"),o={x:e,alpha:n};return T.runKernel(zs,o)}var Ru=k({prelu_:CX});function vX(r,t=null,e=!1){let n=C(r,"x","prod");n.dtype==="bool"&&(n=Q(n,"int32"));let o={x:n},s={axis:t,keepDims:e};return T.runKernel(Bs,o,s)}var ry=k({prod_:vX});function SX(r,t,e,n){let o=r.map((c,p)=>C(c,`tensors${p}`,"raggedGather","int32")),s=C(t,"paramsDenseValues","raggedGather"),i=C(e,"indices","raggedGather","int32"),a={paramsNestedSplits:o,paramsDenseValues:s,indices:i},u={outputRaggedRank:n},l=T.runKernel(Kp,a,u);return{outputNestedSplits:l.slice(0,l.length-1),outputDenseValues:l[l.length-1]}}var HE=k({raggedGather_:SX});function NX(r,t,e){let n=C(r,"starts","raggedRange"),o=C(t,"limits","raggedRange",n.dtype),s=C(e,"deltas","raggedRange",n.dtype),i={starts:n,limits:o,deltas:s},a=T.runKernel(jp,i);return{rtNestedSplits:a[0],rtDenseValues:a[1]}}var qE=k({raggedRange_:NX});function kX(r,t,e,n,o){let s=C(r,"shape","raggedTensorToTensor","int32"),i=C(t,"values","raggedTensorToTensor"),a=C(e,"defaultValue","raggedTensorToTensor",i.dtype),u=n.map((p,m)=>C(p,`tensors${m}`,"raggedTensorToTensor","int32")),l={shape:s,values:i,defaultValue:a,rowPartitionTensors:u},c={rowPartitionTypes:o};return T.runKernel(Xp,l,c)}var KE=k({raggedTensorToTensor_:kX});function TX(r,t,e){Me(r);let n=te(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;spA,createVideoElement:()=>BX,encodeStrings:()=>fA,expectArrayBuffersEqual:()=>zX,expectArraysClose:()=>OX,expectArraysEqual:()=>MX,expectNumbersClose:()=>mA,expectPromiseToFail:()=>PX,expectValuesInRange:()=>LX,play:()=>VX,testEpsilon:()=>oy});var FX=.001,pA=.1;function OX(r,t,e){return e==null&&(e=oy()),aN(r,t,(n,o)=>lN(n,o,e))}function oy(){return T.backend.floatPrecision()===32?FX:pA}function aN(r,t,e){let n=!0;if((or(r)||or(t))&&(n=!1),or(r)&&or(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=Ur(r),a=Ur(t);if(!an(i,a))throw new Error(`Arrays have different shapes. Actual: [${i}]. Expected: [${a}]`)}let o=or(r)?r:ui(r),s=or(t)?t:ui(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 fX(r,t){let e=typeof t=="string"||typeof t=="number"||typeof t=="boolean"?[t]:t;return Uo(r)||Uo(r[0])||Uo(t)||Uo(t[0])?tN(r,e,(n,o)=>n==o):tN(r,t,(n,o)=>eN(n,o,0))}function oA(r,t,e){if(e==null&&(e=ny()),!eN(r,t,e))throw new Error(`Numbers differ: actual === ${r}, expected === ${t}`);typeof expect!="undefined"&&expect().nothing()}function eN(r,t,e){return!isFinite(r)&&!isFinite(t)?!0:!(isNaN(r)||isNaN(t)||Math.abs(r-t)>e)}function dX(r,t,e){for(let n=0;ne)throw new Error(`Value out of range:${r[n]} low: ${t}, high: ${e}`)}function hX(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 xX(r){await r.play(),"requestVideoFrameCallback"in r&&await new Promise(t=>{r.requestVideoFrameCallback(t)})}var wc=class{constructor(t,e,n,o,s){this.mean=t,this.stdDev=e,this.dtype=n,this.nextVal=NaN,this.truncated=o,this.truncated&&(this.upper=this.mean+this.stdDev*2,this.lower=this.mean-this.stdDev*2);let i=s||Math.random();this.random=iy.alea(i.toString())}nextValue(){if(!isNaN(this.nextVal)){let o=this.nextVal;return this.nextVal=NaN,o}let t,e,n=!1;for(;!n;){let o,s,i;do o=2*this.random()-1,s=2*this.random()-1,i=o*o+s*s;while(i>=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}},oy=class{constructor(t,e,n,o){this.alpha=t,this.beta=1/e,this.dtype=n;let s=o||Math.random();this.randu=iy.alea(s.toString()),this.randn=new wc(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=iy.alea(o)}convertValue(t){return this.canReturnFloat()?t:Math.round(t)}nextValue(){return this.convertValue(this.min+this.range*this.random())}};function yX(r,t,e=1,n="float32",o){if(Me(r),e==null&&(e=1),n==null&&(n="float32"),n!=="float32"&&n!=="int32")throw new Error(`Unsupported data type ${n}`);let s=new oy(t,e,n,o),i=bt(r,n);for(let a=0;a`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`),hr(t,0)}var cA=k({reverse1d_:_X});function EX(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}.`),hr(e,t)}var pA=k({reverse2d_:EX});function AX(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}.`),hr(e,t)}var mA=k({reverse3d_:AX});function DX(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}.`),hr(e,t)}var fA=k({reverse4d_:DX});function $X(r){let e={x:v(r,"x","round")};return T.runKernel(Us,e)}var ym=k({round_:$X});function RX(r){let e={x:v(r,"x","rsqrt","float32")};return T.runKernel(Hs,e)}var bm=k({rsqrt_:RX});function FX(r){let e={x:v(r,"x","selu")};return T.runKernel(qs,e)}var wm=k({selu_:FX});function OX(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=sa(c,u,n,o,i,s),g=kn(d,l,1,"valid",i);return p?R(g,[g.shape[1],g.shape[2],g.shape[3]]):g}var Im=k({separableConv2d_:OX});async function PX(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`),Ot(n,[t],[e])}var Sm=k({slice1d_:BX});function VX(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`),Ot(n,t,e)}var wh=k({slice2d_:VX});function GX(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`),Ot(n,t,e)}var Nm=k({slice3d_:GX});function WX(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`),Ot(n,t,e)}var Cc=k({slice4d_:WX});function UX(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 T.runKernel(Qs,n,o)}var Eu=k({softmax_:UX});function HX(r){_(r.dtype==="complex64",()=>`The dtype for tf.spectral.fft() must be complex64 but got ${r.dtype}.`);let t={input:r};return T.runKernel(Bp,t)}var Au=k({fft_:HX});function qX(r){_(r.dtype==="complex64",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${r.dtype}.`);let t={input:r};return T.runKernel(Vp,t)}var Il=k({ifft_:qX});function KX(r){let t=r.shape[r.shape.length-1],e=r.size/t,n;if(t<=2){let o=R(r,[e,t]);n=Il(o)}else{let o=[e,2*(t-1)],s=R(wl(r),[e,t]),i=R(Cu(r),[e,t]),a=hr(Ot(s,[0,1],[e,t-2]),1),u=$(hr(Ot(i,[0,1],[e,t-2]),1),ft(-1)),l=se([s,a],1),c=se([i,u],1),p=R(Nn(l,c),[o[0],o[1]]);n=Il(p)}if(n=wl(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 km=k({irfft_:KX});function jX(r,t,e=0){let o={x:v(r,"x","split")},s={numOrSizeSplits:t,axis:e};return T.runKernel(Ui,o,s)}var gr=k({split_:jX});function XX(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=Ot(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=se([r,Te(d)],r.shape.length-1),e=t}else o=r;let s=vt(o),i=R(Nn(o,s),[n,e]),a=Au(i),u=Math.floor(e/2)+1,l=wl(a),c=Cu(a),p=gr(l,[u,e-u],l.shape.length-1),m=gr(c,[u,e-u],c.shape.length-1),f=o.shape.slice();return f[o.shape.length-1]=u,R(Nn(p[0],m[0]),f)}var Du=k({rfft_:XX});function YX(r,t){let e=v(r,"a","squaredDifference"),n=v(t,"b","squaredDifference");[e,n]=jt(e,n),Mt(e.shape,n.shape);let o={a:e,b:n},s={};return T.runKernel(ti,o,s)}var Tm=k({squaredDifference_:YX});function ZX(r,t){let e=v(r,"x","squeeze","string_or_numeric");return R(e,o0(e.shape,t).newShape)}var Un=k({squeeze_:ZX});function JX(r,t=0){let e=hl(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 T.runKernel(zi,n,o)}var qe=k({stack_:JX});function QX(r,t=0){let n={x:v(r,"x","step")},o={alpha:t};return T.runKernel(yo,n,o)}var No=k({step_:QX});function t5(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 T.runKernel(cl,c,p)}var uy=k({stridedSlice_:t5});function e5(r){let e={x:v(r,"x","tan","float32")};return T.runKernel(ri,e)}var cy=k({tan_:e5});function Ke(r,t){no(r);let e=Wr(r,t);if(e.length!==1)throw new Error("tensor1d() requires values to be a flat/TypedArray");return ln(r,null,e,t)}function ui(r,t,e){if(no(r),t!=null&&t.length!==2)throw new Error("tensor2d() requires shape to have two numbers");let n=Wr(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 ln(r,t,n,e)}function py(r,t,e){if(no(r),t!=null&&t.length!==3)throw new Error("tensor3d() requires shape to have three numbers");let n=Wr(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 ln(r,t,n,e)}function hA(r,t,e){if(no(r),t!=null&&t.length!==4)throw new Error("tensor4d() requires shape to have four numbers");let n=Wr(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 ln(r,t,n,e)}function gA(r,t,e){if(no(r),t!=null&&t.length!==5)throw new Error("tensor5d() requires shape to have five numbers");let n=Wr(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 ln(r,t,n,e)}function xA(r,t,e){if(no(r),t!=null&&t.length!==6)throw new Error("tensor6d() requires shape to have six numbers");let n=Wr(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,ln(r,t,n,e)}var $u={};Kt($u,{calculateShapes:()=>yA,validateInput:()=>_m,validateUpdateShape:()=>rN});function rN(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;p= 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]=T.runKernel(pl,s,i);return{values:a,indices:u}}var my=k({topk_:n5});function o5(r,t=0,e=1,n,o){if(Me(r),n!=null&&n==="bool")throw new Error("Unsupported data type $ { dtype }");let s=new wc(t,e,n,!0,o),i=bt(r,n);for(let a=0;a0,()=>"The input tensor must be at least 1D");let n={x:e},o={axis:t},[s,i]=T.runKernel(mu,n,o);return{values:s,indices:i}}var fy=k({unique_:s5});function i5(r,t,e){let n=v(r,"x","unsortedSegmentSum"),o=v(t,"segmentIds","unsortedSegmentSum","int32");_(_a(e),()=>"numSegments must be of dtype int");let s={x:n,segmentIds:o},i={numSegments:e};return T.runKernel(fu,s,i)}var Am=k({unsortedSegmentSum_:i5});function a5(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 T.runKernel(Hi,n,o)}var xr=k({unstack_:a5});function wA(r,t){return yh(r,t,"right")}function dy(r,t=!0,e,n){return T.makeVariable(r,t,e,n)}function hy(r,t){let e=[];for(let s=0;s0,()=>"mask cannot be scalar"),Re(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;ha).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=wl(n),a=Cu(n);return i=T.runKernel(io,{x:i},s),a=T.runKernel(io,{x:a},s),e&&(a=Ut(a)),Nn(i,a)}):T.runKernel(io,o,s)}var Vt=k({transpose_:p5});function m5(r,t,e,n,o=!0){let s=v(r,"v","movingAverage"),i=v(t,"x","movingAverage"),a=v(e,"decay","movingAverage");N0(s,i),_(sn(s.shape,i.shape),()=>"Shape mismatch in v and x");let u=ft(1),l=lt(u,a),c=$(lt(i,s),l);if(o){_(n!=null,()=>"When using zeroDebias: true, step is required.");let p=v(n,"step","movingAverage");c=ct(c,lt(u,cn(a,p)))}return Y(s,c)}var f5=k({movingAverage_:m5});function d5(r,t,e){Me(e);let n=v(r,"indices","scatterND","int32"),o=v(t,"updates","scatterND");_m(o,n,e);let s={indices:n,updates:o},i={shape:e};return T.runKernel(ol,s,i)}var h5=k({scatterND_:d5});function IA(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 x5(r,t,e,n=0){Me(e);let o=v(r,"sparseIndices","sparseToDense","int32"),s=v(t,"sparseValues","sparseToDense","string_or_numeric"),i=v(n,"defaultValue","sparseToDense",s.dtype);IA(o,s,e,i);let a={sparseIndices:o,sparseValues:s,defaultValue:i},u={outputShape:e};return T.runKernel(ul,a,u)}var y5=k({sparseToDense_:x5});function b5(r,t){let e=v(t,"indices","gatherND","int32"),o={params:v(r,"x","gatherND","string_or_numeric"),indices:e};return T.runKernel(Va,o)}var w5=k({gatherND_:b5});function CA(r,t){if(t==null)return r.shape.slice();if(sn(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 Pt?o.clone():o;let s=CA(o,e),i=1-t,a=ct(aa(Y(Wn(s,0,1,"float32",n),i)),i);return $(o,a)}var nN=k({dropout_:I5});function oN(r){return Math.floor(Math.pow(2,Math.ceil(Math.log(r)/Math.log(2))))}function Ih(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}`),Re(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=s0("bool",u);for(let p=0;pg.value-h.value),c[p]=0;for(let h=0;hvA,depthwiseConv2d:()=>SA,matMul:()=>NA});function S5(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]}).`),Se("conv2dDerFilter",o,i);let p={x:a,dy:u},m={strides:n,pad:o,dataFormat:s,dimRoundingMode:i,filterShape:e};return T.runKernel(Pp,p,m)}var Dm=k({conv2DBackpropFilter_:S5});function vc(r,t,e){if(e==null||e==="linear")return r;if(e==="relu")return $(r,No(t));throw new Error(`Cannot compute gradient for fused activation ${e}.`)}function Sc(r,t){let e=t,n=ye(r.shape,t.shape);return n.length>0&&(e=pt(e,n)),R(e,r.shape)}function Nc(r,t,e,n){if(t==="linear")return r;if(t==="relu")return Pr(r);if(t==="elu")return ia(r);if(t==="relu6")return xm(r);if(t==="prelu")return _u(r,e);if(t==="leakyrelu")return vu(r,n);if(t==="sigmoid")return tn(r);throw new Error(`Unknown fused activation ${t}.`)}var kc=(r,t)=>!(r>0)||t==="linear";function N5({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",kc(T.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=kn(r,t,e,n,o,s,i);return a!=null&&(E=Y(E,a)),Nc(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}.`),Se("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]}.`),_($r(e,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`);let g=hc(f.shape,m.shape,e,s,n,i),x;a!=null&&(x=v(a,"bias","fused conv2d"),[x]=jt(x,p),o==="NHWC"?Mt(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{Mt(E,g.outShape)}catch(A){let D=`Error in fused conv2d: PReLU activation weights (${E}) is not compatible with the output shape of the conv2d (${g.outShape}).`;throw Error(D)}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[D,F,P,V]=A,G=vc(E,P,u);_(ao(s),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`);let W=cm(F.shape,G,D,e,n),q=Dm(F,G,D.shape,e,n),H=[W,q];if(V!=null){let K=Sc(V,G);H.push(K)}return H},I={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?mn((A,D,F)=>{let P=T.runKernel(ji,I,N);return F([D,A,P]),d&&(P=R(P,[P.shape[1],P.shape[2],P.shape[3]])),{value:P,gradFunc:w}})(f,m):mn((A,D,F,P)=>{let V=T.runKernel(ji,I,N);return P([D,A,V,F]),d&&(V=R(V,[V.shape[1],V.shape[2],V.shape[3]])),{value:V,gradFunc:w}})(f,m,x)}var vA=k({fusedConv2d_:N5});function k5(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 T.runKernel(Mp,l,c)}var xy=k({depthwiseConv2dNativeBackpropFilter_:k5});function T5(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=T.runKernel(Lp,l,c);return u?R(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var yy=k({depthwiseConv2dNativeBackpropInput_:T5});function _5({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(kc(T.state.gradientDepth,u)===!1){let N=sa(r,t,e,n,o,s,i);return a!=null&&(N=Y(N,a)),Nc(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]),_($r(e,s),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`),Se("fused depthwiseConv2d",n,i);let h=hc(f.shape,m.shape,e,s,n,i,!0),g;a!=null&&(g=v(a,"bias","fused conv2d"),[g]=jt(g,p),Mt(h.outShape,g.shape));let x;l!=null&&(x=v(l,"prelu weights","fused depthwiseConv2d"));let b=(N,E)=>{_(ao(s),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${s}'`);let[A,D,F,P]=E,V=vc(N,F,u),G=yy(D.shape,V,A,e,n,s,i),W=xy(D,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},I={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i,activation:u,leakyreluAlpha:c};return a==null?mn((E,A,D)=>{let F=T.runKernel(Xi,w,I);return D([A,E,F]),d&&(F=R(F,[F.shape[1],F.shape[2],F.shape[3]])),{value:F,gradFunc:b}})(f,m):mn((E,A,D,F)=>{let P=T.runKernel(Xi,w,I);return F([A,E,P,D]),d&&(P=R(P,[P.shape[1],P.shape[2],P.shape[3]])),{value:P,gradFunc:b}})(f,m,g)}var SA=k({fusedDepthwiseConv2d_:_5});function E5({a:r,b:t,transposeA:e=!1,transposeB:n=!1,bias:o,activation:s="linear",preluActivationWeights:i,leakyreluAlpha:a=.2}){if(kc(T.state.gradientDepth,s)===!1){let V=Bt(r,t,e,n);return o!=null&&(V=Y(V,o)),Nc(V,s,i,a)}let u=v(r,"a","fused matMul"),l=v(t,"b","fused matMul");[u,l]=jt(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=te(d),x=te(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=Mt(u.shape.slice(0,-2),l.shape.slice(0,-2)).concat([m,f]),I=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]=jt(E,u),Mt(w,E.shape));let A;i!=null&&(A=v(i,"prelu weights","fused matMul"));let D=(V,G)=>{let[W,q,H,K]=G,X=vc(R(V,H.shape),H,s),Z,et;if(!e&&!n?(Z=Bt(X,q,!1,!0),et=Bt(W,X,!0,!1)):!e&&n?(Z=Bt(X,q,!1,!1),et=Bt(X,W,!0,!1)):e&&!n?(Z=Bt(q,X,!1,!0),et=Bt(W,X,!1,!1)):(Z=Bt(q,X,!0,!0),et=Bt(X,W,!0,!0)),o!=null){let nt=Sc(K,X);return[Z,et,nt]}else return[Z,et]},F={a:I,b:N,bias:E,preluActivationWeights:A},P={transposeA:e,transposeB:n,activation:s,leakyreluAlpha:a};return o==null?mn((G,W,q)=>{let H=T.runKernel(Ki,F,P);return q([G,W,H]),{value:R(H,w),gradFunc:D}})(I,N):mn((G,W,q,H)=>{let K=T.runKernel(Ki,F,P);return H([G,W,K,q]),{value:R(K,w),gradFunc:D}})(I,N,E)}var NA=k({fusedMatMul_:E5});function A5(r){return Ih(r,.54,.46)}var kA=k({hammingWindow_:A5});function D5(r){return Ih(r,.5,.5)}var by=k({hannWindow_:D5});function $5(r,t,e,n=!1,o=0){let s=0,i=[];for(;s+t<=r.size;)i.push(Ot(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 T.runKernel(Oa,c,p)}var _A=k({cropAndResize_:F5});function O5(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 T.runKernel(Ba,e,{})}var EA=k({flipLeftRight_:O5});function P5(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 AA=k({grayscaleToRGB_:P5});function M5(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 T.runKernel(fl,s,i)}var DA=k({rotateWithOffset_:M5});function ko(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 L5(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY){let s=v(r,"boxes","nonMaxSuppression","float32"),i=v(t,"scores","nonMaxSuppression","float32"),a=ko(s,i,e,n,o);e=a.maxOutputSize,n=a.iouThreshold,o=a.scoreThreshold;let u={maxOutputSize:e,iouThreshold:n,scoreThreshold:o};return T.runKernel(Qa,{boxes:s,scores:i},u)}var $A=k({nonMaxSuppression_:L5});function RA(r,t,e){let n=z5(r,t,e),o=n<0?-(n+1):n;r.splice(o,0,t)}function z5(r,t,e){return V5(r,t,e||B5)}function B5(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 Iy(r,t,e,n,o){return sN(r,t,e,n,o,0)}function Cy(r,t,e,n,o,s){return sN(r,t,e,n,o,0,!1,s,!0)}function vy(r,t,e,n,o,s){return sN(r,t,e,n,o,s,!0)}function sN(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(FA);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=G5(r,b,p[N]);if(E>=n){I=!0;break}if(g.score=g.score*W5(n,c,E),g.score<=o)break}g.suppressBeginIndex=p.length,I||(g.score===x?(p.push(b),m.push(g.score)):g.score>o&&RA(l,g,FA))}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 G5(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 W5(r,t,e){let n=Math.exp(t*e*e);return e<=r?n:0}function FA(r,t){return r.score-t.score||r.score===t.score&&t.boxIndex-r.boxIndex}async function U5(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY){let s=v(r,"boxes","nonMaxSuppressionAsync"),i=v(t,"scores","nonMaxSuppressionAsync"),a=ko(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}=Iy(l,c,e,n,o);return s!==r&&s.dispose(),i!==t&&i.dispose(),Ke(p,"int32")}var OA=U5;function H5(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=0){let i=v(r,"boxes","nonMaxSuppression"),a=v(t,"scores","nonMaxSuppression"),u=ko(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=T.runKernel(el,l,c);return{selectedIndices:p[0],selectedScores:p[1]}}var PA=k({nonMaxSuppressionWithScore_:H5});async function q5(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=0){let i=v(r,"boxes","nonMaxSuppressionAsync"),a=v(t,"scores","nonMaxSuppressionAsync"),u=ko(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}=vy(c,p,e,n,o,s);return i!==r&&i.dispose(),a!==t&&a.dispose(),{selectedIndices:Ke(m,"int32"),selectedScores:Ke(f)}}var MA=q5;function K5(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=!1){let i=v(r,"boxes","nonMaxSuppression"),a=v(t,"scores","nonMaxSuppression"),u=ko(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=T.runKernel(tl,m,f);return{selectedIndices:d[0],validOutputs:d[1]}}var LA=k({nonMaxSuppressionPadded_:K5});async function j5(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=!1){let i=v(r,"boxes","nonMaxSuppressionAsync"),a=v(t,"scores","nonMaxSuppressionAsync"),u=ko(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}=Cy(m,f,l,c,p,s);return i!==r&&i.dispose(),a!==t&&a.dispose(),{selectedIndices:Ke(d,"int32"),validOutputs:ft(h,"int32")}}var zA=j5;function X5(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=T.runKernel(Vs,a,u);return i?R(l,[l.shape[1],l.shape[2],l.shape[3]]):l}var Sy=k({resizeBilinear_:X5});function Y5(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=T.runKernel(Bs,a,u);return i?R(l,[l.shape[1],l.shape[2],l.shape[3]]):l}var Ny=k({resizeNearestNeighbor_:Y5});function Z5(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=$(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]=gr(o,[1,1,1],-1);let g=$(c,s),x=$(p,i),b=$(m,a);f=Y(Y(g,x),b)}else f=r;if(t==="otsu"){let g=kx(Q(ym(f),"int32"),sr([]),256);l=J5(g,u)}let d=e?Gn(f,l):Fe(f,l);return Q($(d,255),"int32")}function J5(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 T.runKernel(ml,u,l)}var VA=k({transform_:Q5});function t8(r,t,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),a,u;typeof t=="number"?(_(t%1===0,()=>`bandPart(): numLower must be an integer, got ${t}.`),_(t<=s,()=>`bandPart(): numLower (${t}) must not be greater than the number of rows (${s}).`),a=v(t<0?s:t,"numLower","bandPart")):(_(t.dtype==="int32",()=>"bandPart(): numLower's dtype must be an int32."),a=be(bl(t,0),s,uo(t,s))),typeof e=="number"?(_(e%1===0,()=>`bandPart(): numUpper must be an integer, got ${e}.`),_(e<=i,()=>`bandPart(): numUpper (${e}) must not be greater than the number of columns (${i}).`),u=v(e<0?i:e,"numUpper","bandPart")):(_(e.dtype==="int32",()=>"bandPart(): numUpper's dtype must be an int32."),u=be(bl(e,0),i,uo(e,i)));let l=R(ca(0,s,1,"int32"),[-1,1]),c=ca(0,i,1,"int32"),p=lt(l,c),m=Or(Gn(p,a),pn(p,Ut(u))),f=Te([s,i],n.dtype);return R(qe(xr(R(n,[-1,s,i])).map(d=>be(m,d,f))),o)}var GA=k({bandPart_:t8});function e8(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=gr(r,r.shape[0],0).map(o=>Un(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 UA(r,t);{let e=r.shape.slice(0,r.shape.length-2).reduce((u,l)=>u*l),n=xr(R(r,[e,r.shape[r.shape.length-2],r.shape[r.shape.length-1]]),0),o=[],s=[];n.forEach(u=>{let[l,c]=UA(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 UA(r,t=!1){return T.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=xc(e),s=un(r),i=ui([[1]],[1,1]),a=un(i),u=e>=n?n:e;for(let l=0;l{let f=Ot(s,[l,l],[e-l,1]),d=yl(f),h=Ot(s,[l,l],[1,1]),g=be(Fe(h,0),ui([[-1]]),ui([[1]])),x=lt(h,$(g,d)),b=ct(f,x);b.shape[0]===1?a=un(i):a=se([i,Ot(b,[1,0],[b.shape[0]-1,b.shape[1]])],0);let w=Ut(ct(Bt(g,x),d)),I=Ot(s,[l,0],[e-l,n]),N=$(w,a),E=Vt(a);if(l===0)s=lt(I,Bt(N,Bt(E,I)));else{let F=lt(I,Bt(N,Bt(E,I)));s=se([Ot(s,[0,0],[l,n]),F],0)}let A=Vt(N),D=Ot(o,[0,l],[e,o.shape[1]-l]);if(l===0)o=lt(D,Bt(Bt(D,a),A));else{let F=lt(D,Bt(Bt(D,a),A));o=se([Ot(o,[0,0],[e,l]),F],1)}return[a,s,o]}),Tt([c,p,m])}return!t&&e>n&&(o=Ot(o,[0,0],[e,n]),s=Ot(s,[0,0],[n,n])),[o,s]})}var HA=k({qr_:r8});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 n8(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:$(n,o);if(e===Ze.NONE)return s;if(e===Ze.SUM)return pt(s);if(e===Ze.MEAN){if(o==null)return ke(s);{let i=n.size/o.size,a=ct(pt(s),pt(o));return i>1?ct(a,ft(i)):a}}if(e===Ze.SUM_BY_NONZERO_WEIGHTS){if(o==null)return ct(pt(s),ft(n.size));{let i=$(o,dr(n.shape)),a=Q(pt(li(i,ft(0))),"float32");return ct(pt(s),a)}}throw Error(`Unknown reduction: ${e}`)}var Hr=k({computeWeightedLoss_:n8});function o8(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")),Re(o.shape,s.shape,"Error in absoluteDifference: ");let a=Ee(lt(o,s));return Hr(a,i,n)}var qA=k({absoluteDifference_:o8});function s8(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")),Re(s.shape,i.shape,"Error in cosineDistance: ");let u=ft(1),l=lt(u,pt($(s,i),e,!0));return Hr(l,a,o)}var KA=k({cosineDistance_:s8});function i8(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")),Re(o.shape,s.shape,"Error in hingeLoss: ");let a=ft(1);o=lt($(ft(2),o),a);let u=Pr(lt(a,$(o,s)));return Hr(u,i,n)}var jA=k({hingeLoss_:i8});function a8(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")),Re(s.shape,i.shape,"Error in huberLoss: ");let u=ft(n),l=Ee(lt(i,s)),c=uo(l,u),p=lt(l,c),m=Y($(ft(.5),Wt(c)),$(u,p));return Hr(m,a,o)}var XA=k({huberLoss_:a8});function l8(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")),Re(s.shape,i.shape,"Error in logLoss: ");let u=ft(1),l=ft(n),c=Ut($(s,Nr(Y(i,l)))),p=$(lt(u,s),Nr(Y(lt(u,i),l))),m=lt(c,p);return Hr(m,a,o)}var YA=k({logLoss_:l8});function u8(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")),Re(o.shape,s.shape,"Error in meanSquaredError: ");let a=Tm(o,s);return Hr(a,i,n)}var ZA=k({meanSquaredError_:u8});function c8(r,t){let e=v(r,"labels","sigmoidCrossEntropyWithLogits"),n=v(t,"logits","sigmoidCrossEntropyWithLogits");Re(e.shape,n.shape,"Error in sigmoidCrossEntropyWithLogits: ");let o=Pr(n),s=$(n,e),i=Su(ir(Ut(Ee(n))));return Y(lt(o,s),i)}function p8(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")),Re(s.shape,i.shape,"Error in sigmoidCrossEntropy: "),n>0){let l=ft(n),c=ft(1),p=ft(.5);s=Y($(s,lt(c,l)),$(p,l))}let u=c8(s,i);return Hr(u,a,o)}var JA=k({sigmoidCrossEntropy_:p8});function m8(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 mn((o,s,i)=>{let u=hm(s,[e],!0),l=lt(Q(s,"float32"),u);i([o,l]);let c=Ut($(l,o));return{value:pt(c,[e]),gradFunc:(f,d)=>{let[h,g]=d,x=So(f.shape,[e]);return[$(R(f,x),lt(Q(h,"float32"),ir(g))),$(R(f,x),lt(ir(g),Q(h,"float32")))]}}})(r,t)}function f8(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")),Re(s.shape,i.shape,"Error in softmaxCrossEntropy: "),n>0){let l=ft(n),c=ft(1),p=ft(s.shape[1]);s=Y($(s,lt(c,l)),ct(l,p))}let u=m8(s,i);return Hr(u,a,o)}var QA=k({softmaxCrossEntropy_:f8});function d8(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=T.runKernel(su,u);return{outputIndices:l[0],outputValues:l[1],emptyRowIndicator:l[2],reverseIndexMap:l[3]}}var t2=k({sparseFillEmptyRows_:d8});function h8(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=T.runKernel(ll,i);return{outputIndices:a[0],outputShape:a[1]}}var e2=k({sparseReshape_:h8});function g8(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 +Expected: ${s}.`)}typeof expect!="undefined"&&expect().nothing()}function PX(r,t){r().then(()=>t.fail(),()=>t()),typeof expect!="undefined"&&expect().nothing()}function MX(r,t){let e=typeof t=="string"||typeof t=="number"||typeof t=="boolean"?[t]:t;return Ho(r)||Ho(r[0])||Ho(t)||Ho(t[0])?aN(r,e,(n,o)=>n==o):aN(r,t,(n,o)=>lN(n,o,0))}function mA(r,t,e){if(e==null&&(e=oy()),!lN(r,t,e))throw new Error(`Numbers differ: actual === ${r}, expected === ${t}`);typeof expect!="undefined"&&expect().nothing()}function lN(r,t,e){return!isFinite(r)&&!isFinite(t)?!0:!(isNaN(r)||isNaN(t)||Math.abs(r-t)>e)}function LX(r,t,e){for(let n=0;ne)throw new Error(`Value out of range:${r[n]} low: ${t}, high: ${e}`)}function zX(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 VX(r){await r.play(),"requestVideoFrameCallback"in r&&await new Promise(t=>{r.requestVideoFrameCallback(t)})}var Nc=class{constructor(t,e,n,o,s){this.mean=t,this.stdDev=e,this.dtype=n,this.nextVal=NaN,this.truncated=o,this.truncated&&(this.upper=this.mean+this.stdDev*2,this.lower=this.mean-this.stdDev*2);let i=s||Math.random();this.random=ay.alea(i.toString())}nextValue(){if(!isNaN(this.nextVal)){let o=this.nextVal;return this.nextVal=NaN,o}let t,e,n=!1;for(;!n;){let o,s,i;do o=2*this.random()-1,s=2*this.random()-1,i=o*o+s*s;while(i>=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}},sy=class{constructor(t,e,n,o){this.alpha=t,this.beta=1/e,this.dtype=n;let s=o||Math.random();this.randu=ay.alea(s.toString()),this.randn=new Nc(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=ay.alea(o)}convertValue(t){return this.canReturnFloat()?t:Math.round(t)}nextValue(){return this.convertValue(this.min+this.range*this.random())}};function GX(r,t,e=1,n="float32",o){if(Me(r),e==null&&(e=1),n==null&&(n="float32"),n!=="float32"&&n!=="int32")throw new Error(`Unsupported data type ${n}`);let s=new sy(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}.`),hr(t,0)}var yA=k({reverse1d_:JX});function QX(r,t){let e=C(r,"x","reverse");return _(e.rank===2,()=>`Error in reverse2D: x must be rank 2 but got rank ${e.rank}.`),hr(e,t)}var bA=k({reverse2d_:QX});function t5(r,t){let e=C(r,"x","reverse");return _(e.rank===3,()=>`Error in reverse3D: x must be rank 3 but got rank ${e.rank}.`),hr(e,t)}var wA=k({reverse3d_:t5});function e5(r,t){let e=C(r,"x","reverse");return _(e.rank===4,()=>`Error in reverse4D: x must be rank 4 but got rank ${e.rank}.`),hr(e,t)}var IA=k({reverse4d_:e5});function r5(r){let e={x:C(r,"x","round")};return T.runKernel(Ks,e)}var bm=k({round_:r5});function n5(r){let e={x:C(r,"x","rsqrt","float32")};return T.runKernel(js,e)}var wm=k({rsqrt_:n5});function o5(r){let e={x:C(r,"x","selu")};return T.runKernel(Xs,e)}var Im=k({selu_:o5});function s5(r,t,e,n,o,s=[1,1],i="NHWC"){let a=C(r,"x","separableConv2d"),u=C(t,"depthwiseFilter","separableConv2d"),l=C(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=ua(c,u,n,o,i,s),g=Tn(d,l,1,"valid",i);return p?R(g,[g.shape[1],g.shape[2],g.shape[3]]):g}var Cm=k({separableConv2d_:s5});async function i5(r,t){let e=C(r,"x","setdiff1d"),n=C(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`),Pt(n,[t],[e])}var Nm=k({slice1d_:c5});function p5(r,t,e){let n=C(r,"x","slice2d");return _(n.rank===2,()=>`slice2d expects a rank-2 tensor, but got a rank-${n.rank} tensor`),Pt(n,t,e)}var wh=k({slice2d_:p5});function m5(r,t,e){let n=C(r,"x","slice3d");return _(n.rank===3,()=>`slice3d expects a rank-3 tensor, but got a rank-${n.rank} tensor`),Pt(n,t,e)}var km=k({slice3d_:m5});function f5(r,t,e){let n=C(r,"x","slice4d");return _(n.rank===4,()=>`slice4d expects a rank-4 tensor, but got a rank-${n.rank} tensor`),Pt(n,t,e)}var Tc=k({slice4d_:f5});function d5(r,t=-1){let e=C(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 T.runKernel(ni,n,o)}var Fu=k({softmax_:d5});function h5(r){_(r.dtype==="complex64",()=>`The dtype for tf.spectral.fft() must be complex64 but got ${r.dtype}.`);let t={input:r};return T.runKernel(Up,t)}var Ou=k({fft_:h5});function g5(r){_(r.dtype==="complex64",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${r.dtype}.`);let t={input:r};return T.runKernel(Hp,t)}var vl=k({ifft_:g5});function x5(r){let t=r.shape[r.shape.length-1],e=r.size/t,n;if(t<=2){let o=R(r,[e,t]);n=vl(o)}else{let o=[e,2*(t-1)],s=R(Cl(r),[e,t]),i=R(Tu(r),[e,t]),a=hr(Pt(s,[0,1],[e,t-2]),1),u=$(hr(Pt(i,[0,1],[e,t-2]),1),ft(-1)),l=ie([s,a],1),c=ie([i,u],1),p=R(kn(l,c),[o[0],o[1]]);n=vl(p)}if(n=Cl(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 Tm=k({irfft_:x5});function y5(r,t,e=0){let o={x:C(r,"x","split")},s={numOrSizeSplits:t,axis:e};return T.runKernel(ji,o,s)}var gr=k({split_:y5});function b5(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=Pt(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=ie([r,Te(d)],r.shape.length-1),e=t}else o=r;let s=vt(o),i=R(kn(o,s),[n,e]),a=Ou(i),u=Math.floor(e/2)+1,l=Cl(a),c=Tu(a),p=gr(l,[u,e-u],l.shape.length-1),m=gr(c,[u,e-u],c.shape.length-1),f=o.shape.slice();return f[o.shape.length-1]=u,R(kn(p[0],m[0]),f)}var Pu=k({rfft_:b5});function w5(r,t){let e=C(r,"a","squaredDifference"),n=C(t,"b","squaredDifference");[e,n]=jt(e,n),Mt(e.shape,n.shape);let o={a:e,b:n},s={};return T.runKernel(oi,o,s)}var _m=k({squaredDifference_:w5});function I5(r,t){let e=C(r,"x","squeeze","string_or_numeric");return R(e,p0(e.shape,t).newShape)}var qn=k({squeeze_:I5});function C5(r,t=0){let e=xl(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 T.runKernel(Wi,n,o)}var qe=k({stack_:C5});function v5(r,t=0){let n={x:C(r,"x","step")},o={alpha:t};return T.runKernel(wo,n,o)}var To=k({step_:v5});function S5(r,t,e,n,o=0,s=0,i=0,a=0,u=0){let c={x:C(r,"x","stridedSlice","string_or_numeric")},p={begin:t,end:e,strides:n,beginMask:o,endMask:s,ellipsisMask:i,newAxisMask:a,shrinkAxisMask:u};return T.runKernel(ml,c,p)}var cy=k({stridedSlice_:S5});function N5(r){let e={x:C(r,"x","tan","float32")};return T.runKernel(ii,e)}var py=k({tan_:N5});function Ke(r,t){io(r);let e=Ur(r,t);if(e.length!==1)throw new Error("tensor1d() requires values to be a flat/TypedArray");return un(r,null,e,t)}function fi(r,t,e){if(io(r),t!=null&&t.length!==2)throw new Error("tensor2d() requires shape to have two numbers");let n=Ur(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 un(r,t,n,e)}function my(r,t,e){if(io(r),t!=null&&t.length!==3)throw new Error("tensor3d() requires shape to have three numbers");let n=Ur(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 un(r,t,n,e)}function vA(r,t,e){if(io(r),t!=null&&t.length!==4)throw new Error("tensor4d() requires shape to have four numbers");let n=Ur(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 un(r,t,n,e)}function SA(r,t,e){if(io(r),t!=null&&t.length!==5)throw new Error("tensor5d() requires shape to have five numbers");let n=Ur(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 un(r,t,n,e)}function NA(r,t,e){if(io(r),t!=null&&t.length!==6)throw new Error("tensor6d() requires shape to have six numbers");let n=Ur(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,un(r,t,n,e)}var Mu={};Kt(Mu,{calculateShapes:()=>kA,validateInput:()=>Em,validateUpdateShape:()=>uN});function uN(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;p= 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]=T.runKernel(fl,s,i);return{values:a,indices:u}}var fy=k({topk_:T5});function _5(r,t=0,e=1,n,o){if(Me(r),n!=null&&n==="bool")throw new Error("Unsupported data type $ { dtype }");let s=new Nc(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]=T.runKernel(xu,n,o);return{values:s,indices:i}}var dy=k({unique_:E5});function A5(r,t,e){let n=C(r,"x","unsortedSegmentSum"),o=C(t,"segmentIds","unsortedSegmentSum","int32");_($a(e),()=>"numSegments must be of dtype int");let s={x:n,segmentIds:o},i={numSegments:e};return T.runKernel(yu,s,i)}var Dm=k({unsortedSegmentSum_:A5});function D5(r,t=0){let e=C(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 T.runKernel(Xi,n,o)}var xr=k({unstack_:D5});function _A(r,t){return yh(r,t,"right")}function hy(r,t=!0,e,n){return T.makeVariable(r,t,e,n)}function gy(r,t){let e=[];for(let s=0;s0,()=>"mask cannot be scalar"),Re(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;ha).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=Cl(n),a=Tu(n);return i=T.runKernel(uo,{x:i},s),a=T.runKernel(uo,{x:a},s),e&&(a=Ut(a)),kn(i,a)}):T.runKernel(uo,o,s)}var Vt=k({transpose_:O5});function P5(r,t,e,n,o=!0){let s=C(r,"v","movingAverage"),i=C(t,"x","movingAverage"),a=C(e,"decay","movingAverage");$0(s,i),_(an(s.shape,i.shape),()=>"Shape mismatch in v and x");let u=ft(1),l=lt(u,a),c=$(lt(i,s),l);if(o){_(n!=null,()=>"When using zeroDebias: true, step is required.");let p=C(n,"step","movingAverage");c=ct(c,lt(u,pn(a,p)))}return Y(s,c)}var M5=k({movingAverage_:P5});function L5(r,t,e){Me(e);let n=C(r,"indices","scatterND","int32"),o=C(t,"updates","scatterND");Em(o,n,e);let s={indices:n,updates:o},i={shape:e};return T.runKernel(al,s,i)}var z5=k({scatterND_:L5});function EA(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 V5(r,t,e,n=0){Me(e);let o=C(r,"sparseIndices","sparseToDense","int32"),s=C(t,"sparseValues","sparseToDense","string_or_numeric"),i=C(n,"defaultValue","sparseToDense",s.dtype);EA(o,s,e,i);let a={sparseIndices:o,sparseValues:s,defaultValue:i},u={outputShape:e};return T.runKernel(pl,a,u)}var G5=k({sparseToDense_:V5});function W5(r,t){let e=C(t,"indices","gatherND","int32"),o={params:C(r,"x","gatherND","string_or_numeric"),indices:e};return T.runKernel(Ha,o)}var U5=k({gatherND_:W5});function AA(r,t){if(t==null)return r.shape.slice();if(an(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 Ot?o.clone():o;let s=AA(o,e),i=1-t,a=ct(pa(Y(Hn(s,0,1,"float32",n),i)),i);return $(o,a)}var cN=k({dropout_:H5});function pN(r){return Math.floor(Math.pow(2,Math.ceil(Math.log(r)/Math.log(2))))}function Ih(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}`),Re(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=m0("bool",u);for(let p=0;pg.value-h.value),c[p]=0;for(let h=0;hDA,depthwiseConv2d:()=>$A,matMul:()=>RA});function j5(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]}).`),Se("conv2dDerFilter",o,i);let p={x:a,dy:u},m={strides:n,pad:o,dataFormat:s,dimRoundingMode:i,filterShape:e};return T.runKernel(Bp,p,m)}var $m=k({conv2DBackpropFilter_:j5});function _c(r,t,e){if(e==null||e==="linear")return r;if(e==="relu")return $(r,To(t));throw new Error(`Cannot compute gradient for fused activation ${e}.`)}function Ec(r,t){let e=t,n=ye(r.shape,t.shape);return n.length>0&&(e=pt(e,n)),R(e,r.shape)}function Ac(r,t,e,n){if(t==="linear")return r;if(t==="relu")return Mr(r);if(t==="elu")return ca(r);if(t==="relu6")return ym(r);if(t==="prelu")return Ru(r,e);if(t==="leakyrelu")return _u(r,n);if(t==="sigmoid")return en(r);throw new Error(`Unknown fused activation ${t}.`)}var Dc=(r,t)=>!(r>0)||t==="linear";function X5({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",Dc(T.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=Tn(r,t,e,n,o,s,i);return a!=null&&(E=Y(E,a)),Ac(E,u,l,c)}let p=C(r,"x","conv2d","float32"),m=C(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}.`),Se("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]}.`),_(Rr(e,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`);let g=wc(f.shape,m.shape,e,s,n,i),x;a!=null&&(x=C(a,"bias","fused conv2d"),[x]=jt(x,p),o==="NHWC"?Mt(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{Mt(E,g.outShape)}catch(A){let D=`Error in fused conv2d: PReLU activation weights (${E}) is not compatible with the output shape of the conv2d (${g.outShape}).`;throw Error(D)}b=C(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[D,F,P,V]=A,G=_c(E,P,u);_(co(s),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`);let W=pm(F.shape,G,D,e,n),q=$m(F,G,D.shape,e,n),H=[W,q];if(V!=null){let K=Ec(V,G);H.push(K)}return H},I={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?fn((A,D,F)=>{let P=T.runKernel(Ji,I,N);return F([D,A,P]),d&&(P=R(P,[P.shape[1],P.shape[2],P.shape[3]])),{value:P,gradFunc:w}})(f,m):fn((A,D,F,P)=>{let V=T.runKernel(Ji,I,N);return P([D,A,V,F]),d&&(V=R(V,[V.shape[1],V.shape[2],V.shape[3]])),{value:V,gradFunc:w}})(f,m,x)}var DA=k({fusedConv2d_:X5});function Y5(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 T.runKernel(Vp,l,c)}var yy=k({depthwiseConv2dNativeBackpropFilter_:Y5});function Z5(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=T.runKernel(Gp,l,c);return u?R(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var by=k({depthwiseConv2dNativeBackpropInput_:Z5});function J5({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(Dc(T.state.gradientDepth,u)===!1){let N=ua(r,t,e,n,o,s,i);return a!=null&&(N=Y(N,a)),Ac(N,u,l,c)}let p=C(r,"x","depthwiseConv2d","float32"),m=C(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]),_(Rr(e,s),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`),Se("fused depthwiseConv2d",n,i);let h=wc(f.shape,m.shape,e,s,n,i,!0),g;a!=null&&(g=C(a,"bias","fused conv2d"),[g]=jt(g,p),Mt(h.outShape,g.shape));let x;l!=null&&(x=C(l,"prelu weights","fused depthwiseConv2d"));let b=(N,E)=>{_(co(s),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${s}'`);let[A,D,F,P]=E,V=_c(N,F,u),G=by(D.shape,V,A,e,n,s,i),W=yy(D,V,A.shape,e,n,s,i);if(P!=null){let q=Ec(g,V);return[G,W,q]}return[G,W]},w={x:f,filter:m,bias:g,preluActivationWeights:x},I={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i,activation:u,leakyreluAlpha:c};return a==null?fn((E,A,D)=>{let F=T.runKernel(Qi,w,I);return D([A,E,F]),d&&(F=R(F,[F.shape[1],F.shape[2],F.shape[3]])),{value:F,gradFunc:b}})(f,m):fn((E,A,D,F)=>{let P=T.runKernel(Qi,w,I);return F([A,E,P,D]),d&&(P=R(P,[P.shape[1],P.shape[2],P.shape[3]])),{value:P,gradFunc:b}})(f,m,g)}var $A=k({fusedDepthwiseConv2d_:J5});function Q5({a:r,b:t,transposeA:e=!1,transposeB:n=!1,bias:o,activation:s="linear",preluActivationWeights:i,leakyreluAlpha:a=.2}){if(Dc(T.state.gradientDepth,s)===!1){let V=Bt(r,t,e,n);return o!=null&&(V=Y(V,o)),Ac(V,s,i,a)}let u=C(r,"a","fused matMul"),l=C(t,"b","fused matMul");[u,l]=jt(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=te(d),x=te(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=Mt(u.shape.slice(0,-2),l.shape.slice(0,-2)).concat([m,f]),I=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=C(o,"bias","fused matMul"),[E]=jt(E,u),Mt(w,E.shape));let A;i!=null&&(A=C(i,"prelu weights","fused matMul"));let D=(V,G)=>{let[W,q,H,K]=G,X=_c(R(V,H.shape),H,s),Z,et;if(!e&&!n?(Z=Bt(X,q,!1,!0),et=Bt(W,X,!0,!1)):!e&&n?(Z=Bt(X,q,!1,!1),et=Bt(X,W,!0,!1)):e&&!n?(Z=Bt(q,X,!1,!0),et=Bt(W,X,!1,!1)):(Z=Bt(q,X,!0,!0),et=Bt(X,W,!0,!0)),o!=null){let nt=Ec(K,X);return[Z,et,nt]}else return[Z,et]},F={a:I,b:N,bias:E,preluActivationWeights:A},P={transposeA:e,transposeB:n,activation:s,leakyreluAlpha:a};return o==null?fn((G,W,q)=>{let H=T.runKernel(Zi,F,P);return q([G,W,H]),{value:R(H,w),gradFunc:D}})(I,N):fn((G,W,q,H)=>{let K=T.runKernel(Zi,F,P);return H([G,W,K,q]),{value:R(K,w),gradFunc:D}})(I,N,E)}var RA=k({fusedMatMul_:Q5});function t8(r){return Ih(r,.54,.46)}var FA=k({hammingWindow_:t8});function e8(r){return Ih(r,.5,.5)}var wy=k({hannWindow_:e8});function r8(r,t,e,n=!1,o=0){let s=0,i=[];for(;s+t<=r.size;)i.push(Pt(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 T.runKernel(Ba,c,p)}var PA=k({cropAndResize_:o8});function s8(r){let t=C(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 T.runKernel(Ua,e,{})}var MA=k({flipLeftRight_:s8});function i8(r){let t=C(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,Or(t,o)}var LA=k({grayscaleToRGB_:i8});function a8(r,t,e=0,n=.5){let o=C(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 T.runKernel(hl,s,i)}var zA=k({rotateWithOffset_:a8});function _o(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 l8(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY){let s=C(r,"boxes","nonMaxSuppression","float32"),i=C(t,"scores","nonMaxSuppression","float32"),a=_o(s,i,e,n,o);e=a.maxOutputSize,n=a.iouThreshold,o=a.scoreThreshold;let u={maxOutputSize:e,iouThreshold:n,scoreThreshold:o};return T.runKernel(rl,{boxes:s,scores:i},u)}var BA=k({nonMaxSuppression_:l8});function VA(r,t,e){let n=u8(r,t,e),o=n<0?-(n+1):n;r.splice(o,0,t)}function u8(r,t,e){return p8(r,t,e||c8)}function c8(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 Cy(r,t,e,n,o){return mN(r,t,e,n,o,0)}function vy(r,t,e,n,o,s){return mN(r,t,e,n,o,0,!1,s,!0)}function Sy(r,t,e,n,o,s){return mN(r,t,e,n,o,s,!0)}function mN(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(GA);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=m8(r,b,p[N]);if(E>=n){I=!0;break}if(g.score=g.score*f8(n,c,E),g.score<=o)break}g.suppressBeginIndex=p.length,I||(g.score===x?(p.push(b),m.push(g.score)):g.score>o&&VA(l,g,GA))}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 m8(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 f8(r,t,e){let n=Math.exp(t*e*e);return e<=r?n:0}function GA(r,t){return r.score-t.score||r.score===t.score&&t.boxIndex-r.boxIndex}async function d8(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY){let s=C(r,"boxes","nonMaxSuppressionAsync"),i=C(t,"scores","nonMaxSuppressionAsync"),a=_o(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}=Cy(l,c,e,n,o);return s!==r&&s.dispose(),i!==t&&i.dispose(),Ke(p,"int32")}var WA=d8;function h8(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=0){let i=C(r,"boxes","nonMaxSuppression"),a=C(t,"scores","nonMaxSuppression"),u=_o(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=T.runKernel(ol,l,c);return{selectedIndices:p[0],selectedScores:p[1]}}var UA=k({nonMaxSuppressionWithScore_:h8});async function g8(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=0){let i=C(r,"boxes","nonMaxSuppressionAsync"),a=C(t,"scores","nonMaxSuppressionAsync"),u=_o(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}=Sy(c,p,e,n,o,s);return i!==r&&i.dispose(),a!==t&&a.dispose(),{selectedIndices:Ke(m,"int32"),selectedScores:Ke(f)}}var HA=g8;function x8(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=!1){let i=C(r,"boxes","nonMaxSuppression"),a=C(t,"scores","nonMaxSuppression"),u=_o(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=T.runKernel(nl,m,f);return{selectedIndices:d[0],validOutputs:d[1]}}var qA=k({nonMaxSuppressionPadded_:x8});async function y8(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=!1){let i=C(r,"boxes","nonMaxSuppressionAsync"),a=C(t,"scores","nonMaxSuppressionAsync"),u=_o(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}=vy(m,f,l,c,p,s);return i!==r&&i.dispose(),a!==t&&a.dispose(),{selectedIndices:Ke(d,"int32"),validOutputs:ft(h,"int32")}}var KA=y8;function b8(r,t,e=!1,n=!1){let o=C(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=T.runKernel(Us,a,u);return i?R(l,[l.shape[1],l.shape[2],l.shape[3]]):l}var Ny=k({resizeBilinear_:b8});function w8(r,t,e=!1,n=!1){let o=C(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=T.runKernel(Ws,a,u);return i?R(l,[l.shape[1],l.shape[2],l.shape[3]]):l}var ky=k({resizeNearestNeighbor_:w8});function I8(r,t="binary",e=!1,n=.5){let o=C(r,"image","threshold"),s=.2989,i=.587,a=.114,u=o.shape[0]*o.shape[1],l=$(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]=gr(o,[1,1,1],-1);let g=$(c,s),x=$(p,i),b=$(m,a);f=Y(Y(g,x),b)}else f=r;if(t==="otsu"){let g=Tx(Q(bm(f),"int32"),sr([]),256);l=C8(g,u)}let d=e?Un(f,l):Fe(f,l);return Q($(d,255),"int32")}function C8(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 T.runKernel(dl,u,l)}var XA=k({transform_:v8});function S8(r,t,e){let n=C(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),a,u;typeof t=="number"?(_(t%1===0,()=>`bandPart(): numLower must be an integer, got ${t}.`),_(t<=s,()=>`bandPart(): numLower (${t}) must not be greater than the number of rows (${s}).`),a=C(t<0?s:t,"numLower","bandPart")):(_(t.dtype==="int32",()=>"bandPart(): numLower's dtype must be an int32."),a=be(Il(t,0),s,mo(t,s))),typeof e=="number"?(_(e%1===0,()=>`bandPart(): numUpper must be an integer, got ${e}.`),_(e<=i,()=>`bandPart(): numUpper (${e}) must not be greater than the number of columns (${i}).`),u=C(e<0?i:e,"numUpper","bandPart")):(_(e.dtype==="int32",()=>"bandPart(): numUpper's dtype must be an int32."),u=be(Il(e,0),i,mo(e,i)));let l=R(da(0,s,1,"int32"),[-1,1]),c=da(0,i,1,"int32"),p=lt(l,c),m=Pr(Un(p,a),mn(p,Ut(u))),f=Te([s,i],n.dtype);return R(qe(xr(R(n,[-1,s,i])).map(d=>be(m,d,f))),o)}var YA=k({bandPart_:S8});function N8(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=gr(r,r.shape[0],0).map(o=>qn(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 JA(r,t);{let e=r.shape.slice(0,r.shape.length-2).reduce((u,l)=>u*l),n=xr(R(r,[e,r.shape[r.shape.length-2],r.shape[r.shape.length-1]]),0),o=[],s=[];n.forEach(u=>{let[l,c]=JA(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 JA(r,t=!1){return T.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=Cc(e),s=cn(r),i=fi([[1]],[1,1]),a=cn(i),u=e>=n?n:e;for(let l=0;l{let f=Pt(s,[l,l],[e-l,1]),d=wl(f),h=Pt(s,[l,l],[1,1]),g=be(Fe(h,0),fi([[-1]]),fi([[1]])),x=lt(h,$(g,d)),b=ct(f,x);b.shape[0]===1?a=cn(i):a=ie([i,Pt(b,[1,0],[b.shape[0]-1,b.shape[1]])],0);let w=Ut(ct(Bt(g,x),d)),I=Pt(s,[l,0],[e-l,n]),N=$(w,a),E=Vt(a);if(l===0)s=lt(I,Bt(N,Bt(E,I)));else{let F=lt(I,Bt(N,Bt(E,I)));s=ie([Pt(s,[0,0],[l,n]),F],0)}let A=Vt(N),D=Pt(o,[0,l],[e,o.shape[1]-l]);if(l===0)o=lt(D,Bt(Bt(D,a),A));else{let F=lt(D,Bt(Bt(D,a),A));o=ie([Pt(o,[0,0],[e,l]),F],1)}return[a,s,o]}),Tt([c,p,m])}return!t&&e>n&&(o=Pt(o,[0,0],[e,n]),s=Pt(s,[0,0],[n,n])),[o,s]})}var QA=k({qr_:k8});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 T8(r,t,e=Ze.SUM_BY_NONZERO_WEIGHTS){let n=C(r,"losses","computeWeightedLoss"),o=null;t!=null&&(o=C(t,"weights","computeWeightedLoss"));let s=o==null?n:$(n,o);if(e===Ze.NONE)return s;if(e===Ze.SUM)return pt(s);if(e===Ze.MEAN){if(o==null)return ke(s);{let i=n.size/o.size,a=ct(pt(s),pt(o));return i>1?ct(a,ft(i)):a}}if(e===Ze.SUM_BY_NONZERO_WEIGHTS){if(o==null)return ct(pt(s),ft(n.size));{let i=$(o,dr(n.shape)),a=Q(pt(mi(i,ft(0))),"float32");return ct(pt(s),a)}}throw Error(`Unknown reduction: ${e}`)}var qr=k({computeWeightedLoss_:T8});function _8(r,t,e,n=Ze.SUM_BY_NONZERO_WEIGHTS){let o=C(r,"labels","absoluteDifference"),s=C(t,"predictions","absoluteDifference"),i=null;e!=null&&(i=C(e,"weights","absoluteDifference")),Re(o.shape,s.shape,"Error in absoluteDifference: ");let a=Ee(lt(o,s));return qr(a,i,n)}var t2=k({absoluteDifference_:_8});function E8(r,t,e,n,o=Ze.SUM_BY_NONZERO_WEIGHTS){let s=C(r,"labels","cosineDistance"),i=C(t,"predictions","cosineDistance"),a=null;n!=null&&(a=C(n,"weights","cosineDistance")),Re(s.shape,i.shape,"Error in cosineDistance: ");let u=ft(1),l=lt(u,pt($(s,i),e,!0));return qr(l,a,o)}var e2=k({cosineDistance_:E8});function A8(r,t,e,n=Ze.SUM_BY_NONZERO_WEIGHTS){let o=C(r,"labels","hingeLoss"),s=C(t,"predictions","hingeLoss"),i=null;e!=null&&(i=C(e,"weights","hingeLoss")),Re(o.shape,s.shape,"Error in hingeLoss: ");let a=ft(1);o=lt($(ft(2),o),a);let u=Mr(lt(a,$(o,s)));return qr(u,i,n)}var r2=k({hingeLoss_:A8});function D8(r,t,e,n=1,o=Ze.SUM_BY_NONZERO_WEIGHTS){let s=C(r,"labels","huberLoss"),i=C(t,"predictions","huberLoss"),a=null;e!=null&&(a=C(e,"weights","huberLoss")),Re(s.shape,i.shape,"Error in huberLoss: ");let u=ft(n),l=Ee(lt(i,s)),c=mo(l,u),p=lt(l,c),m=Y($(ft(.5),Wt(c)),$(u,p));return qr(m,a,o)}var n2=k({huberLoss_:D8});function $8(r,t,e,n=1e-7,o=Ze.SUM_BY_NONZERO_WEIGHTS){let s=C(r,"labels","logLoss"),i=C(t,"predictions","logLoss"),a=null;e!=null&&(a=C(e,"weights","logLoss")),Re(s.shape,i.shape,"Error in logLoss: ");let u=ft(1),l=ft(n),c=Ut($(s,kr(Y(i,l)))),p=$(lt(u,s),kr(Y(lt(u,i),l))),m=lt(c,p);return qr(m,a,o)}var o2=k({logLoss_:$8});function R8(r,t,e,n=Ze.SUM_BY_NONZERO_WEIGHTS){let o=C(r,"labels","meanSquaredError"),s=C(t,"predictions","meanSquaredError"),i=null;e!=null&&(i=C(e,"weights","meanSquaredError")),Re(o.shape,s.shape,"Error in meanSquaredError: ");let a=_m(o,s);return qr(a,i,n)}var s2=k({meanSquaredError_:R8});function F8(r,t){let e=C(r,"labels","sigmoidCrossEntropyWithLogits"),n=C(t,"logits","sigmoidCrossEntropyWithLogits");Re(e.shape,n.shape,"Error in sigmoidCrossEntropyWithLogits: ");let o=Mr(n),s=$(n,e),i=Eu(ir(Ut(Ee(n))));return Y(lt(o,s),i)}function O8(r,t,e,n=0,o=Ze.SUM_BY_NONZERO_WEIGHTS){let s=C(r,"multiClassLabels","sigmoidCrossEntropy"),i=C(t,"logits","sigmoidCrossEntropy"),a=null;if(e!=null&&(a=C(e,"weights","sigmoidCrossEntropy")),Re(s.shape,i.shape,"Error in sigmoidCrossEntropy: "),n>0){let l=ft(n),c=ft(1),p=ft(.5);s=Y($(s,lt(c,l)),$(p,l))}let u=F8(s,i);return qr(u,a,o)}var i2=k({sigmoidCrossEntropy_:O8});function P8(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 fn((o,s,i)=>{let u=gm(s,[e],!0),l=lt(Q(s,"float32"),u);i([o,l]);let c=Ut($(l,o));return{value:pt(c,[e]),gradFunc:(f,d)=>{let[h,g]=d,x=ko(f.shape,[e]);return[$(R(f,x),lt(Q(h,"float32"),ir(g))),$(R(f,x),lt(ir(g),Q(h,"float32")))]}}})(r,t)}function M8(r,t,e,n=0,o=Ze.SUM_BY_NONZERO_WEIGHTS){let s=C(r,"onehotLabels","softmaxCrossEntropy"),i=C(t,"logits","softmaxCrossEntropy"),a=null;if(e!=null&&(a=C(e,"weights","softmaxCrossEntropy")),Re(s.shape,i.shape,"Error in softmaxCrossEntropy: "),n>0){let l=ft(n),c=ft(1),p=ft(s.shape[1]);s=Y($(s,lt(c,l)),ct(l,p))}let u=P8(s,i);return qr(u,a,o)}var a2=k({softmaxCrossEntropy_:M8});function L8(r,t,e,n){let o=C(r,"indices","sparseFillEmptyRows","int32"),s=C(t,"values","sparseFillEmptyRows"),i=C(e,"denseShape","sparseFillEmptyRows","int32"),a=C(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=T.runKernel(cu,u);return{outputIndices:l[0],outputValues:l[1],emptyRowIndicator:l[2],reverseIndexMap:l[3]}}var l2=k({sparseFillEmptyRows_:L8});function z8(r,t,e){let n=C(r,"inputIndices","sparseReshape","int32"),o=C(t,"inputShape","sparseReshape","int32"),s=C(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=T.runKernel(cl,i);return{outputIndices:a[0],outputShape:a[1]}}var u2=k({sparseReshape_:z8});function B8(r,t,e){let n=C(r,"data","sparseSegmentMean"),o=C(t,"indices","sparseSegmentMean","int32"),s=C(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 T.runKernel(iu,i)}var r2=k({sparseSegmentMean_:g8});function x8(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 + ${s.shape}`);let i={data:n,indices:o,segmentIds:s};return T.runKernel(pu,i)}var c2=k({sparseSegmentMean_:B8});function V8(r,t,e){let n=C(r,"data","sparseSegmentSum"),o=C(t,"indices","sparseSegmentSum","int32"),s=C(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 T.runKernel(au,i)}var n2=k({sparseSegmentSum_:x8});function y8(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=T.runKernel(uu,p,c);return{nGrams:m[0],nGramsSplits:m[1]}}var o2=k({stringNGrams_:y8});function b8(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=T.runKernel(cu,i,s);return{indices:a[0],values:a[1],shape:a[2]}}var s2=k({stringSplit_:b8});function w8(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 T.runKernel(pu,o,n)}var i2=k({stringToHashBucketFast_:w8});function I8(r,t,e,n=!0){let o=v(r,"input","staticRegexReplace","string"),s={pattern:t,rewrite:e,replaceGlobal:n};return T.runKernel(sc,{x:o},s)}var a2=k({staticRegexReplace_:I8});var C8={fft:Au,ifft:Il,rfft:Du,irfft:km},v8={hammingWindow:kA,hannWindow:by,frame:wy,stft:TA},dn={flipLeftRight:EA,grayscaleToRGB:AA,resizeNearestNeighbor:Ny,resizeBilinear:Sy,rotateWithOffset:DA,cropAndResize:_A,nonMaxSuppression:$A,nonMaxSuppressionAsync:OA,nonMaxSuppressionWithScore:PA,nonMaxSuppressionWithScoreAsync:MA,nonMaxSuppressionPadded:LA,nonMaxSuppressionPaddedAsync:zA,threshold:BA,transform:VA},iN={bandPart:GA,gramSchmidt:WA,qr:HA},S8={absoluteDifference:qA,computeWeightedLoss:Hr,cosineDistance:KA,hingeLoss:jA,huberLoss:XA,logLoss:YA,meanSquaredError:ZA,sigmoidCrossEntropy:JA,softmaxCrossEntropy:QA},N8={sparseFillEmptyRows:t2,sparseReshape:e2,sparseSegmentMean:r2,sparseSegmentSum:n2},k8={stringNGrams:o2,stringSplit:s2,stringToHashBucketFast:i2,staticRegexReplace:a2};var J={};Kt(J,{Serializable:()=>Ch,SerializationMap:()=>pa,registerClass:()=>aN});var Ch=class{getClassName(){return this.constructor.className}static fromConfig(t,e){return new t(e)}},pa=class{constructor(){this.classNameMap={}}static getMap(){return pa.instance==null&&(pa.instance=new pa),pa.instance}static register(t){pa.getMap().classNameMap[t.className]=[t,t.fromConfig]}};function aN(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."),pa.register(r)}var qr=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 Tt(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 qx(t,e)}dispose(){this.iterations_!=null&&Tt(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:"iter",tensor:ft(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(qr,Symbol.hasInstance,{value:r=>r.minimize!=null&&r.computeGradients!=null&&r.applyGradients!=null});var Tc=class extends qr{static get className(){return"Adadelta"}constructor(t,e,n=null){super(),this.learningRate=t,this.rho=e,this.epsilon=n,this.accumulatedGrads=[],this.accumulatedUpdates=[],n==null&&(this.epsilon=T.backend.epsilon())}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=T.registeredVariables[n],i=!1;this.accumulatedGrads[o]==null&&(this.accumulatedGrads[o]={originalName:`${n}/accum_grad`,variable:B(()=>vt(s).variable(i))}),this.accumulatedUpdates[o]==null&&(this.accumulatedUpdates[o]={originalName:`${n}/accum_var`,variable:B(()=>vt(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=Y($(u,this.rho),$(Wt(a),1-this.rho)),p=$(ct(Ne(Y(l,this.epsilon)),Ne(Y(u,this.epsilon))),a),m=Y($(l,this.rho),$(Wt(p),1-this.rho));u.assign(c),l.assign(m);let f=Y($(p,-this.learningRate),s);s.assign(f)})}),this.incrementIterations()}dispose(){this.accumulatedUpdates!=null&&(Tt(this.accumulatedGrads.map(t=>t.variable)),Tt(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)}};var _c=class extends qr{static get className(){return"Adagrad"}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=T.registeredVariables[n];this.accumulatedGrads[o]==null&&(this.accumulatedGrads[o]={originalName:`${n}/accumulator`,variable:B(()=>vo(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=Y(a,Wt(i));a.assign(u);let l=Y($(ct(i,Ne(Y(u,T.backend.epsilon()))),-this.learningRate),s);s.assign(l)})}),this.incrementIterations()}dispose(){this.accumulatedGrads!=null&&Tt(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)}};var Ec=class extends qr{static get className(){return"Adam"}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=ft(e).variable(),this.accBeta2=ft(n).variable()}),o==null&&(this.epsilon=T.backend.epsilon())}applyGradients(t){let e=Array.isArray(t)?t.map(n=>n.name):Object.keys(t);B(()=>{let n=lt(1,this.accBeta1),o=lt(1,this.accBeta2);e.forEach((s,i)=>{let a=T.registeredVariables[s],u=!1;this.accumulatedFirstMoment[i]==null&&(this.accumulatedFirstMoment[i]={originalName:`${s}/m`,variable:B(()=>vt(a).variable(u))}),this.accumulatedSecondMoment[i]==null&&(this.accumulatedSecondMoment[i]={originalName:`${s}/v`,variable:B(()=>vt(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=Y($(c,this.beta1),$(l,1-this.beta1)),f=Y($(p,this.beta2),$(Wt(l),1-this.beta2)),d=ct(m,n),h=ct(f,o);c.assign(m),p.assign(f);let g=Y($(ct(d,Y(Ne(h),this.epsilon)),-this.learningRate),a);a.assign(g)}),this.accBeta1.assign($(this.accBeta1,this.beta1)),this.accBeta2.assign($(this.accBeta2,this.beta2))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),this.accumulatedFirstMoment!=null&&Tt(this.accumulatedFirstMoment.map(t=>t.variable)),this.accumulatedSecondMoment!=null&&Tt(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(cn(this.beta1,this.iterations_+1)),this.accBeta2.assign(cn(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)}};var Ac=class extends qr{static get className(){return"Adamax"}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=ft(0).variable(),this.accBeta1=ft(e).variable()}),o==null&&(this.epsilon=T.backend.epsilon())}applyGradients(t){let e=Array.isArray(t)?t.map(n=>n.name):Object.keys(t);B(()=>{let n=lt(1,this.accBeta1),o=ct(-this.learningRate,Y($(this.iteration,this.decay),1));e.forEach((s,i)=>{let a=T.registeredVariables[s],u=!1;this.accumulatedFirstMoment[i]==null&&(this.accumulatedFirstMoment[i]={originalName:`${s}/m`,variable:vt(a).variable(u)}),this.accumulatedWeightedInfNorm[i]==null&&(this.accumulatedWeightedInfNorm[i]={originalName:`${s}/v`,variable:vt(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=Y($(c,this.beta1),$(l,1-this.beta1)),f=$(p,this.beta2),d=Ee(l),h=Tn(f,d);c.assign(m),p.assign(h);let g=Y($(ct(o,n),ct(m,Y(h,this.epsilon))),a);a.assign(g)}),this.iteration.assign(Y(this.iteration,1)),this.accBeta1.assign($(this.accBeta1,this.beta1))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),this.accumulatedFirstMoment!=null&&Tt(this.accumulatedFirstMoment.map(t=>t.variable)),this.accumulatedWeightedInfNorm!=null&&Tt(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)}};var Cl=class extends qr{static get className(){return"SGD"}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=T.registeredVariables[n];B(()=>{let a=Y($(this.c,s),i);i.assign(a)})}),this.incrementIterations()}setLearningRate(t){this.learningRate=t,this.c!=null&&this.c.dispose(),this.c=$e(ft(-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)}};var Dc=class extends Cl{static get className(){return"Momentum"}constructor(t,e,n=!1){super(t),this.learningRate=t,this.momentum=e,this.useNesterov=n,this.accumulations=[],this.m=ft(this.momentum)}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=T.registeredVariables[n];this.accumulations[o]==null&&(this.accumulations[o]={originalName:`${n}/momentum`,variable:B(()=>vt(s).variable(!1))});let i=this.accumulations[o].variable,a=Array.isArray(t)?t[o].tensor:t[n];a!=null&&B(()=>{let u,l=Y($(this.m,i),a);this.useNesterov?u=Y($(this.c,Y(a,$(l,this.m))),s):u=Y($(this.c,l),s),i.assign(l),s.assign(u)})}),this.incrementIterations()}dispose(){this.m.dispose(),this.accumulations!=null&&Tt(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)}};var $c=class extends qr{static get className(){return"RMSProp"}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=T.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=T.registeredVariables[n],i=!1;this.accumulatedMeanSquares[o]==null&&(this.accumulatedMeanSquares[o]={originalName:`${n}/rms`,variable:B(()=>vt(s).variable(i))}),this.accumulatedMoments[o]==null&&(this.accumulatedMoments[o]={originalName:`${n}/momentum`,variable:B(()=>vt(s).variable(i))}),this.accumulatedMeanGrads[o]==null&&this.centered&&(this.accumulatedMeanGrads[o]={originalName:`${n}/mg`,variable:B(()=>vt(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=Y($(u,this.decay),$(Wt(a),1-this.decay));if(this.centered){let p=this.accumulatedMeanGrads[o].variable,m=Y($(p,this.decay),$(a,1-this.decay)),f=ct($(a,this.learningRate),Ne(lt(c,Y(Wt(m),this.epsilon)))),d=Y($(l,this.momentum),f);u.assign(c),p.assign(m),l.assign(d);let h=lt(s,d);s.assign(h)}else{let p=Y($(u,this.decay),$(Wt(a),1-this.decay)),m=Y($(l,this.momentum),ct($(a,this.learningRate),Ne(Y(p,this.epsilon))));u.assign(p),l.assign(m);let f=lt(s,m);s.assign(f)}})}),this.incrementIterations()}dispose(){this.accumulatedMeanSquares!=null&&Tt(this.accumulatedMeanSquares.map(t=>t.variable)),this.accumulatedMeanGrads!=null&&this.centered&&Tt(this.accumulatedMeanGrads.map(t=>t.variable)),this.accumulatedMoments!=null&&Tt(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)}};var T8=[Tc,_c,Ec,Ac,Dc,$c,Cl];function l2(){for(let r of T8)aN(r)}var Mr={};Kt(Mr,{browserFiles:()=>c2,browserHTTPRequest:()=>f2,concatenateArrayBuffers:()=>em,copyModel:()=>lE,decodeWeights:()=>ax,encodeWeights:()=>q_,fromMemory:()=>d2,fromMemorySync:()=>fN,getLoadHandlers:()=>J_,getModelArtifactsForJSON:()=>rm,getModelArtifactsForJSONSync:()=>R0,getModelArtifactsInfoForJSON:()=>Zi,getSaveHandlers:()=>Z_,getWeightSpecs:()=>ux,http:()=>_y,isHTTPScheme:()=>Ty,listModels:()=>iE,loadWeights:()=>p2,moveModel:()=>uE,registerLoadRouter:()=>Y_,registerSaveRouter:()=>X_,removeModel:()=>aE,weightsLoaderFactory:()=>pN,withSaveHandler:()=>h2,withSaveHandlerSync:()=>g2});var _8="model",E8=".json",A8=".weights.bin";function u2(r){return new Promise(t=>setTimeout(t)).then(r)}var vl=class{constructor(t){if(!L().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");t.startsWith(vl.URL_SCHEME)&&(t=t.slice(vl.URL_SCHEME.length)),(t==null||t.length===0)&&(t=_8),this.modelJsonFileName=t+E8,this.weightDataFileName=t+A8}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=lx(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 u2(()=>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 u2(()=>a.dispatchEvent(new MouseEvent("click")))}return{modelArtifactsInfo:Zi(t)}}}};vl.URL_SCHEME="downloads://";var lN=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=rm(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,em(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=>$0(s.name)),o={};for(let s of t)s.paths.forEach(i=>{let a=$0(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}},D8=r=>L().getBool("IS_BROWSER")&&!Array.isArray(r)&&r.startsWith(vl.URL_SCHEME)?$8(r.slice(vl.URL_SCHEME.length)):null;ve.registerSaveRouter(D8);function $8(r="model"){return new vl(r)}function c2(r){return new lN(r)}var ky=class{constructor(t){if(this.shards=[],this.previousShardIndex=0,t instanceof Array||(t=[t]),t=t.map(n=>or(n)?n.buffer:n),t.length===0)return;this.bufferUniformSize=t[0].byteLength;let e=0;for(let n=0;n=this.byteLength)return-1;if(this.bufferUniformSize!=null)return this.previousShardIndex=Math.floor(t/this.bufferUniformSize),this.previousShardIndex;function e(o){return t=o.end?1:0}if(e(this.shards[this.previousShardIndex])===0)return this.previousShardIndex;let n=R8(this.shards,e);return n===-1?-1:(this.previousShardIndex=n,this.previousShardIndex)}};function R8(r,t){let e=0,n=r.length;for(;e<=n;){let o=Math.floor((n-e)/2)+e,s=t(r[o]);if(s===0)return o;s<0?n=o:e=o+1}return-1}function uN(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 cN(r,t){t==null&&(t={});let e=t.fetchFunc==null?L().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 uN(n,t.onProgress,o,s)).map(p=>p.arrayBuffer()),u=.5,l=1;return t.onProgress==null?await Promise.all(a):await uN(a,t.onProgress,u,l)}async function p2(r,t="",e,n){return pN(i=>cN(i,{requestInit:n}))(r,t,e)}function pN(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=mh[x]*te(g.shape),w=()=>{o[d]=!0,s[d]==null&&(s[d]=[]),s[d].push({manifestEntry:g,groupOffset:h,sizeBytes:b})};n!=null?n.forEach((I,N)=>{I===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=new ky(c.slice(m,m+d));s[f].forEach(x=>{let b=h.slice(x.groupOffset,x.groupOffset+x.sizeBytes),w=ax(b,[x.manifestEntry]);for(let I in w)p[I]=w[I]}),m+=d}),p}}var F8="application/octet-stream",O8="application/json",vh=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=L().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=lx(t,n);e.body.append("model.json",new Blob([JSON.stringify(o)],{type:O8}),"model.json"),t.weightData!=null&&e.body.append("model.weights.bin",new Blob([t.weightData],{type:F8}),"model.weights.bin");let s=await this.fetch(this.path,e);if(s.ok)return{modelArtifactsInfo:Zi(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 rm(e,s=>this.loadWeights(s))}async loadWeights(t){let e=Array.isArray(this.path)?this.path[1]:this.path,[n,o]=P8(e),s=this.weightPathPrefix||n,i=ux(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 cN(a,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress});return[i,em(l)]}};vh.URL_SCHEME_REGEX=/^https?:\/\//;function P8(r){let t=r.lastIndexOf("/"),e=r.lastIndexOf("?"),n=r.substring(0,t),o=e>t?r.substring(e):"";return[n+"/",o]}function Ty(r){return r.match(vh.URL_SCHEME_REGEX)!=null}var m2=(r,t)=>{if(typeof fetch=="undefined"&&(t==null||t.fetchFunc==null))return null;{let e=!0;if(Array.isArray(r)?e=r.every(n=>Ty(n)):e=Ty(r),e)return _y(r,t)}return null};ve.registerSaveRouter(m2);ve.registerLoadRouter(m2);function _y(r,t){return new vh(r,t)}function f2(r,t){return _y(r,t)}var Sh=class{constructor(t){this.modelArtifacts=t}load(){return this.modelArtifacts}},Ey=class{constructor(t){this.saveHandler=t}save(t){return this.saveHandler(t)}},mN=class{constructor(t){t.load&&(this.load=()=>Promise.resolve(t.load())),t.save&&(this.save=e=>Promise.resolve(t.save(e)))}};function d2(r,t,e,n){let o=arguments;return new mN(fN(...o))}function fN(r,t,e,n){return arguments.length===1?r.modelTopology!=null||r.weightSpecs!=null?new Sh(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 Sh({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 Sh({modelTopology:r,weightSpecs:t,weightData:e,trainingConfig:n}))}function h2(r){return new Ey(r)}function g2(r){return new Ey(r)}var y2={};Kt(y2,{confusionMatrix:()=>x2});function M8(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=ua(Q(n,"int32"),e),i=ua(Q(o,"int32"),e),a=Vt(s),u=Bt(a,i);return Q(u,"int32")}var x2=k({confusionMatrix_:M8});var Ay={};Kt(Ay,{fromPixels:()=>U8,fromPixelsAsync:()=>G8,toPixels:()=>W8});var Rc;function b2(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(ih(oh,T.backendName)!=null){let d={pixels:r},h={numChannels:t};return T.runKernel(oh,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(Rc==null)if(typeof document=="undefined")if(typeof OffscreenCanvas!="undefined"&&typeof OffscreenCanvasRenderingContext2D!="undefined")Rc=new OffscreenCanvas(1,1).getContext("2d");else throw new Error("Cannot parse input in current context. Reason: OffscreenCanvas Context2D rendering is not supported.");else Rc=document.createElement("canvas").getContext("2d",{willReadFrequently:!0});Rc.canvas.width=l,Rc.canvas.height=c,Rc.drawImage(r,0,0,l,c),p=Rc.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 U8=k({fromPixels_:b2});var Dy={};Kt(Dy,{prepareAndValidate:()=>w2});function w2(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(te(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 ze={};Kt(ze,{assertParamsValid:()=>q8,computeFlatOffset:()=>Z8,computeOutShape:()=>j8,getNormalizedAxes:()=>X8,isSliceContinous:()=>Y8,maskToAxes:()=>K8,parseSliceParams:()=>hN,sliceInfo:()=>J8,startForAxis:()=>_2,startIndicesWithElidedDims:()=>N2,stopForAxis:()=>E2,stopIndicesWithElidedDims:()=>k2,stridesForAxis:()=>T2,stridesWithElidedDims:()=>C2});var dN=-2,H8=-1;function q8(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 K8(r){let t=[],e=0;for(;r>0;)r&1&&t.push(e),r/=2,e++;return t}function j8(r,t,e){let n=[];for(let o=0;o0){let f=t[0],d=e+1;c=N2(i,f,d,n,r),p=k2(a,f,d,o,r),m=C2(s,f,d,r)}else for(let f=0;f-1)s[a]=0;else{let u=v2(t,e,a),l=n[u];r&1<-1)s[a]=Number.MAX_SAFE_INTEGER;else{let u=v2(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=Ap(0,i,u-1),i}function E2(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=Ap(0,i,u):i=Ap(-1,i,u-1),i}function Y8(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 Z8(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 J8(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)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(I&&m.strides[w]<=0)throw Error("only stride 1 allowed on non-range indexing.");h=h&&m.strides[w]===1;let D=!!(m.beginMask&1<=N)throw Error(`slice index ${m.begin[w]} of dimension ${w} out of bounds.`)}else m.begin[w]=I2(m.begin[w],0,m.strides[w],N,E,A),m.end[w]=I2(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=d&&(w===0&&m.strides[w]===1||D);let F,P=!1;if(m.beginValid&&m.endValid?(F=m.end[w]-m.begin[w],P=!0):I?(F=1,P=!0):D&&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[I]):I===dN&&x.push(1)}return{finalShapeSparse:x.filter((w,I)=>m.finalShapeGatherIndices[I]!==dN),finalShape:x,isIdentity:f,sliceDim0:d,isSimpleSlice:h,begin:m.begin,end:m.end,strides:m.strides}}function Q8(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 A2="4.5.0";var Nh=class{static sgd(t){return new Cl(t)}static momentum(t,e,n=!1){return new Dc(t,e,n)}static rmsprop(t,e=.9,n=0,o=null,s=!1){return new $c(t,e,n,o,s)}static adam(t=.001,e=.9,n=.999,o=null){return new Ec(t,e,n,o)}static adadelta(t=.001,e=.95,n=null){return new Tc(t,e,n)}static adamax(t=.002,e=.9,n=.999,o=null,s=0){return new Ac(t,e,n,o,s)}static adagrad(t,e=.1){return new _c(t,e)}};var Fc=Nh;var tY=(()=>typeof requestAnimationFrame!="undefined"?requestAnimationFrame:typeof setImmediate!="undefined"?setImmediate:r=>r())();function kh(){return new Promise(r=>tY(()=>r()))}var S={};Kt(S,{ERF_A1:()=>hY,ERF_A2:()=>gY,ERF_A3:()=>xY,ERF_A4:()=>yY,ERF_A5:()=>bY,ERF_P:()=>dY,PARALLELIZE_THRESHOLD:()=>$y,RowPartitionType:()=>ma,SELU_SCALE:()=>xN,SELU_SCALEALPHA:()=>gN,applyActivation:()=>Nc,assertAndGetBroadcastShape:()=>Mt,assertAxesAreInnerMostDims:()=>Lj,assertParamsConsistent:()=>eY,assignToTypedArray:()=>NY,axesAreInnerMostDims:()=>U0,calculateShapes:()=>yA,checkEinsumDimSizes:()=>DY,checkPadOnDimRoundingMode:()=>Se,combineLocations:()=>SE,combineRaggedTensorToTensorShapes:()=>nY,complexWithEvenIndex:()=>CY,complexWithOddIndex:()=>vY,computeConv2DInfo:()=>hc,computeConv3DInfo:()=>dE,computeDefaultPad:()=>W0,computeDilation2DInfo:()=>MK,computeOptimalWindowSize:()=>aY,computeOutAndReduceShapes:()=>H0,computeOutShape:()=>rY,computePool2DInfo:()=>G0,computePool3DInfo:()=>LK,convertConv2DDataFormat:()=>hE,decodeEinsumEquation:()=>EY,eitherStridesOrDilationsAreOne:()=>$r,expandShapeToKeepDim:()=>So,exponent:()=>TY,exponents:()=>kY,fromStringArrayToUint8:()=>JY,fromUint8ToStringArray:()=>ZY,getAxesPermutation:()=>q0,getBroadcastDims:()=>IE,getComplexWithIndex:()=>SY,getEinsumComputePath:()=>$Y,getEinsumPermutation:()=>AY,getFusedBiasGradient:()=>Sc,getFusedDyActivation:()=>vc,getImageCenter:()=>lY,getInnerMostAxes:()=>zj,getPermuted:()=>cY,getRaggedRank:()=>sY,getReductionAxes:()=>ye,getReshaped:()=>uY,getReshapedPermuted:()=>pY,getRowPartitionTypesHelper:()=>oY,getSliceBeginCoords:()=>mY,getSliceSize:()=>fY,getSparseFillEmptyRowsIndicesDenseShapeMismatch:()=>PY,getSparseFillEmptyRowsNegativeIndexErrorMessage:()=>MY,getSparseFillEmptyRowsOutOfRangeIndexErrorMessage:()=>LY,getSparseReshapeEmptyTensorZeroOutputDimErrorMessage:()=>VY,getSparseReshapeInputOutputMismatchErrorMessage:()=>WY,getSparseReshapeInputOutputMultipleErrorMessage:()=>GY,getSparseReshapeMultipleNegativeOneOutputDimErrorMessage:()=>zY,getSparseReshapeNegativeOutputDimErrorMessage:()=>BY,getSparseSegmentReductionIndicesOutOfRangeErrorMessage:()=>KY,getSparseSegmentReductionNegativeSegmentIdsErrorMessage:()=>UY,getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage:()=>HY,getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage:()=>qY,getUndoAxesPermutation:()=>xh,isIdentityPermutation:()=>RY,log:()=>Rq,mergeRealAndImagArrays:()=>wY,prepareAndValidate:()=>w2,prepareSplitSize:()=>OY,segment_util:()=>bN,shouldFuse:()=>kc,slice_util:()=>ze,splitRealAndImagArrays:()=>IY,stridesOrDilationsArePositive:()=>ea,tupleValuesAreOne:()=>ao,upcastType:()=>ur,validateDefaultValueShape:()=>iY,validateInput:()=>_m,validateUpdateShape:()=>rN,warn:()=>Yi});function eY(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 rY(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 oY(r){let t={FIRST_DIM_SIZE:ma.FIRST_DIM_SIZE,VALUE_ROWIDS:ma.VALUE_ROWIDS,ROW_LENGTHS:ma.ROW_LENGTHS,ROW_SPLITS:ma.ROW_SPLITS,ROW_LIMITS:ma.ROW_LIMITS,ROW_STARTS:ma.ROW_STARTS},e=[];for(let n of r)if(n in t)e.push(t[n]);else break;return e}function sY(r){return r.length===0?0:r[0]===ma.FIRST_DIM_SIZE?r.length-1:r.length}function iY(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 $y=30;function aY(r){return r<=$y?r:$p(r,Math.floor(Math.sqrt(r)))}function lY(r,t,e){let n=e*(typeof r=="number"?r:r[0]),o=t*(typeof r=="number"?r:r[1]);return[n,o]}function uY(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 pY(r,t,e,n=!0){let o=[];n?o.push(r[0]/e):o.push(r[0]*e);for(let s=1;s/g,D2=",",$2="...";function EY(r,t){r=r.replace(/\s/g,"");let e=(r.length-r.replace(_Y,"").length)/yN.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 ("${yN}").`);let[n,o]=r.split(yN);_(n.indexOf($2)===-1,()=>`The ellipsis notation ("${$2}") is not supported yet.`);let s=n.split(D2),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 DY(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 $Y(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 FY(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 PY(r){return`Received SparseTensor with denseShape[0] = 0 but - indices.shape[0] = ${r}`}function MY(r,t){return`indices(${r}, 0) is invalid: ${t} < 0`}function LY(r,t,e){return`indices(${r}, 0) is invalid: ${t} >= ${e}`}function zY(r,t){return`only one output dimension may be -1, not both ${r} and ${t}`}function BY(r,t){return`size ${r} must be non-negative, not ${t}`}function VY(){return"reshape cannot infer the missing input size for an empty tensor unless all specified input sizes are non-zero"}function GY(r,t){let e=te(r),n=te(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 WY(r,t){let e=te(r),n=te(t);return`Input to reshape is a tensor with ${e} dense values, but the requested shape has ${n}. inputShape=${r} outputShape=${t}`}function UY(){return"segment ids must be >= 0"}function HY(){return"segment ids are not increasing"}function qY(r,t){return`Segment id ${r} out of range [0, ${t}), possibly because segmentIds input is not sorted.`}function KY(r,t,e){return`Bad: indices[${r}] == ${t} out of range [0, ${e})`}var bN={};Kt(bN,{collectGatherOpShapeInfo:()=>YY,computeOutShape:()=>XY,segOpComputeOptimalWindowSize:()=>jY});function jY(r,t){let e=!1,n;for(r<=$y?(n=r,e=!0):n=$p(r,Math.floor(Math.sqrt(r)));!e;)n>t||n===r?e=!0:n=$p(r,n+1);return n}function XY(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(eQp(t))}catch(t){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${t}`)}}function JY(r){return r.map(t=>hu(t))}var Kr={};Kt(Kr,{nonMaxSuppressionV3Impl:()=>Iy,nonMaxSuppressionV4Impl:()=>Cy,nonMaxSuppressionV5Impl:()=>vy,whereImpl:()=>hy});l2();var Ry={kernelName:_i,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(r,No(Q(e,"float32"),-1))}}};var R2={kernelName:Ho,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Wt(Q(e,"float32")),o=Ne(lt(ft(1),n));return Ut(ct(r,o))}}}};var F2={kernelName:qo,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Ne(lt(Wt(Q(e,"float32")),1));return ct(r,n)}}}};var O2={kernelName:oo,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=Mt(e.shape,n.shape);return{a:()=>{let a=r,u=ye(e.shape,o);return u.length>0&&(a=pt(a,u)),R(a,e.shape)},b:()=>{let a=r,u=ye(n.shape,o);return u.length>0&&(a=pt(a,u)),R(a,n.shape)}}}};var P2={kernelName:Ko,saveAllInputs:!0,gradFunc:(r,t)=>{let e={};return t.forEach((n,o)=>{e[o]=()=>r.clone()}),e}};var M2={kernelName:Ei,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>vt(e)}}};var L2={kernelName:Ai,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>vt(e)}}};var z2={kernelName:jo,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,Ne(lt(ft(1),Wt(Q(e,"float32")))))}}};var B2={kernelName:Xo,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Ne(Y(ft(1),Wt(Q(e,"float32"))));return ct(r,n)}}}};var V2={kernelName:Jo,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=Mt(e.shape,n.shape);return{a:()=>{let a=Y(Wt(e),Wt(n)),u=$(r,ct(n,a)),l=ye(e.shape,o);return l.length>0&&(u=pt(u,l)),R(u,e.shape)},b:()=>{let a=Y(Wt(e),Wt(n)),u=Ut($(r,ct(e,a))),l=ye(n.shape,o);return l.length>0&&(u=pt(u,l)),R(u,n.shape)}}}};var G2={kernelName:Yo,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,Y(Wt(Q(e,"float32")),1))}}};var W2={kernelName:Zo,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,lt(ft(1),Wt(Q(e,"float32"))))}}};function QY(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}.`),Se("avgPool3dGrad",o,s);let p={dy:u,input:l},m={filterSize:e,strides:n,pad:o,dimRoundingMode:s},f=T.runKernel(Xl,p,m);return c?R(f,[f.shape[1],f.shape[2],f.shape[3],f.shape[4]]):f}var U2=k({avgPool3dGrad_:QY});var H2={kernelName:Di,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{filterSize:o,strides:s,pad:i,dimRoundingMode:a}=e;return{x:()=>U2(r,n,o,s,i,a)}}};function tZ(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=T.runKernel(Fp,c,p);return l?R(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var q2=k({avgPoolGrad_:tZ});var K2={kernelName:Qo,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{filterSize:o,strides:s,pad:i}=e;return{x:()=>q2(r,n,o,s,i)}}};var j2={kernelName:ts,inputsToSave:["a","b"],gradFunc:(r,t,e)=>{let[n,o]=t,{transposeA:s,transposeB:i}=e;return!s&&!i?{a:()=>Bt(r,o,!1,!0),b:()=>Bt(n,r,!0,!1)}:!s&&i?{a:()=>Bt(r,o,!1,!1),b:()=>Bt(r,n,!0,!1)}:s&&!i?{a:()=>Bt(o,r,!1,!0),b:()=>Bt(n,r,!1,!1)}:{a:()=>Bt(o,r,!0,!0),b:()=>Bt(r,n,!0,!0)}}};var X2={kernelName:$i,gradFunc:(r,t,e)=>{let{blockShape:n,crops:o}=e;return{x:()=>Tu(r,n,o)}}};var Y2={kernelName:h_,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:()=>pt(r,a,!0)}}};var Z2={kernelName:ho,gradFunc:r=>({x:()=>r.clone()})};var J2={kernelName:es,gradFunc:r=>({x:()=>vt(r)})};var Q2={kernelName:go,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{clipValueMin:o,clipValueMax:s}=e;return{x:()=>be(Or(pn(n,o),Gn(n,s)),r,vt(r))}}};var tD={kernelName:Zl,inputsToSave:["x"],gradFunc:Ry.gradFunc};var eD={kernelName:Ri,saveAllInputs:!0,gradFunc:(r,t,e)=>{let n=t.map(u=>u.shape),{axis:o}=e,s=fr(o,t[0].shape)[0],i=n.map(u=>u[s]);return gr(r,i,s).map(u=>()=>u)}};var rD={kernelName:rs,inputsToSave:["x","filter"],gradFunc:(r,t,e)=>{let[n,o]=t,{dilations:s,strides:i,pad:a,dataFormat:u}=e;return _(ao(s),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`),{x:()=>cm(n.shape,r,o,i,a,u),filter:()=>Dm(n,r,o.shape,i,a,u)}}};var nD={kernelName:ns,inputsToSave:["dy","filter"],gradFunc:(r,t,e)=>{let[n,o]=t,{strides:s,pad:i,dataFormat:a,dimRoundingMode:u}=e;return{dy:()=>kn(r,o,s,i,a,1,u),filter:()=>Dm(r,n,o.shape,s,i,a,u)}}};function eZ(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 T.runKernel($a,a,u)}var oD=k({conv3DBackpropFilter_:eZ});var sD={kernelName:os,inputsToSave:["x","filter"],gradFunc:(r,t,e)=>{let{dilations:n,strides:o,pad:s}=e;_(ao(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:()=>Rx(i.shape,r,a,o,s),filter:()=>oD(i,r,a.shape,o,s)}}};var iD={kernelName:ss,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(Ut(Cm(Q(e,"float32"))),r)}}};var aD={kernelName:is,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(vm(Q(e,"float32")),r)}}};var lD={kernelName:as,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{axis:o,exclusive:s,reverse:i}=e;return{x:()=>{let a=q0([o],n.rank),u=fm(r,o,s,!i);return a!=null&&(u=Vt(u,a)),u}}}};var uD={kernelName:ls,inputsToSave:["x","filter"],gradFunc:(r,t,e)=>{let{dilations:n,strides:o,pad:s,dimRoundingMode:i}=e,a=n==null?[1,1]:n;_(ao(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]}.`),_($r(o,a),()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${o} and dilations '${a}'.`),Se("depthwiseConv2d",s,i),{x:()=>yy(u.shape,r,l,o,s,a,i),filter:()=>xy(u,r,l.shape,o,s,a,i)}}};var cD={kernelName:us,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:()=>T.runKernel(tu,s,e),filter:()=>T.runKernel(eu,i,e)}}};var pD={kernelName:ps,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t,n={dy:r,y:e};return{x:()=>T.runKernel(Ma,n)}}};var mD={kernelName:La,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t,n=$(ir(Ut(Wt(e))),2/Math.sqrt(Math.PI));return{x:()=>$(r,n)}}};var fD={kernelName:ms,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(r,e)}}};var dD={kernelName:Fi,inputsToSave:["input"],gradFunc:(r,t)=>{let[e]=t;return{input:()=>R(r,e.shape)}}};var hD={kernelName:fs,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(r,ir(e))}}};var gD={kernelName:ds,gradFunc:r=>({x:()=>vt(r)})};var xD={kernelName:hs,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=Mt(e.shape,n.shape);return{a:()=>{let a=ct(r,Q(n,"float32")),u=ye(e.shape,o);return u.length>0?R(pt(a,u),e.shape):a},b:()=>{let a=$(r,Q(e,"float32")),u=ye(n.shape,o);u.length>0&&(a=R(pt(a,u),n.shape));let l=Wt(n);return Ut(ct(a,Q(l,"float32")))}}}};var yD={kernelName:gs,inputsToSave:["x","mean","variance","scale"],gradFunc:(r,t,e)=>{let{varianceEpsilon:n}=e,[o,s,i,a]=t,u=a==null?ft(1):a,l=ye(s.shape,o.shape),c=[];if(s.rank===1){for(let I=0;Is.rank===1?R($($(r,Fr(R(f,[1,1,1,s.shape[0]]),c)),u),o.shape):R($($(r,f),u),o.shape),mean:()=>{let I=$($(f,ft(-1)),m);return s.rank===1&&(I=pt(I,l)),R(I,s.shape)},variance:()=>{let I=$($(d,p),m);return s.rank===1&&(I=pt(I,l)),R(I,s.shape)},scale:()=>{let I=$(p,f),N=$(r,I);return s.rank===1&&(N=pt(N,l)),R(N,s.shape)},offset:()=>{let I=r;return s.rank===1&&(I=pt(I,l)),R(I,s.shape)}}}};var ID={kernelName:Oi,inputsToSave:["x","indices"],gradFunc:(r,t,e)=>{let[n,o]=t,{axis:s}=e,i=fr(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=bD(0,p),h=bD(p+1,p+1+f),g=wD([c,[l],m]),x=R(r,g),b=R(o,[l]),w=wD([[p],d,h]),I=Vt(x,w),N=Am(I,b,n.shape[i]),E=xh(w);return N=Vt(N,E),N},indices:()=>o}}};function bD(r,t){let e=[];for(let n=r;n{let[e,n]=t;return{a:()=>vt(e),b:()=>vt(n)}}};var vD={kernelName:xo,gradFunc:r=>({x:()=>Q(r,"float32")})};var SD={kernelName:ys,gradFunc:r=>({x:()=>vt(r)})};var ND={kernelName:bs,gradFunc:r=>({x:()=>vt(r)})};var kD={kernelName:ws,gradFunc:r=>({x:()=>vt(r)})};var TD={kernelName:Is,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{alpha:o}=e,s=Fe(n,0);return{x:()=>be(s,r,$(r,o))}}};var _D={kernelName:vs,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,Y(e,1))}}};var ED={kernelName:Cs,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,Q(e,"float32"))}}};var AD={kernelName:x_,inputsToSave:[],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n]=t,{axis:o}=e;return{logits:()=>{let i=ir(n);return lt(r,$(pt(r,o,!0),i))}}}};function rZ(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 T.runKernel(Xa,a,u)}var DD=k({localResponseNormalizationBackprop_:rZ});var $D={kernelName:Ss,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{depthRadius:s,bias:i,alpha:a,beta:u}=e;return{x:()=>DD(n,o,r,s,i,a,u)}}};function Fy(r,t,e,n){return t.rank$(r,Q(Rr(e,t),r.dtype))}}var wN={kernelName:Ns,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let n=e,{reductionIndices:o}=n,s=t[0],i=t[1],a=fr(o,s.shape),u=Fy(r,i,s,a);return{x:()=>u.x()}}};var RD={kernelName:ks,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t;return{a:()=>$(r,Q(pn(e,n),"float32")),b:()=>$(r,Q(bl(e,n),"float32"))}}};function nZ(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}.`),Se("maxPool3dGrad",s,i);let d={dy:c,input:p,output:m},h={filterSize:n,strides:o,pad:s,dimRoundingMode:i},g=T.runKernel(nu,d,h);return f?R(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}var FD=k({maxPool3dGrad_:nZ});var OD={kernelName:Pi,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u}=e;return{x:()=>FD(r,n,o,s,i,a,u)}}};function oZ(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}.`),Se("maxPoolGrad",s,i);let c={dy:a,input:u,output:l},p={filterSize:n,strides:o,pad:s,dimRoundingMode:i};return T.runKernel(Wp,c,p)}var PD=k({maxPoolGrad_:oZ});var MD={kernelName:Ts,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{filterSize:s,strides:i,pad:a}=e;return{x:()=>PD(r,n,o,s,i,a)}}};var LD={kernelName:_s,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{axis:o}=e,s=fr(o,n.shape),a=H0(n.shape,s)[1],u=te(a);return{x:()=>{let c=n.shape.slice();s.forEach(f=>{c[f]=1});let p=R(r,c);return ct($(p,dr(n.shape,"float32")),u)}}}};var zD={kernelName:Es,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let n=e,{axis:o}=n,[s,i]=t,a=fr(o,s.shape),u=Fy(r,i,s,a);return{x:()=>u.x()}}};var BD={kernelName:As,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t;return{a:()=>$(r,Q(Gn(e,n),"float32")),b:()=>$(r,Q(Fe(e,n),"float32"))}}};var VD={kernelName:Ds,inputsToSave:["x"],gradFunc:(r,t,e)=>{let n=t[0],{paddings:o}=e,s=o.map(i=>i[0]);return{x:()=>Ot(r,s,n.shape)}}};var GD={kernelName:Ya,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=Mt(e.shape,n.shape);return{a:()=>{let a=ye(e.shape,o);return a.length>0?R(pt(r,a),e.shape):r},b:()=>{let a=$(r,Ut(aa(ct(e,n)))),u=ye(n.shape,o);return u.length>0?R(pt(a,u),n.shape):a}}}};var WD={kernelName:$s,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=Mt(e.shape,n.shape);return{a:()=>{let a=$(r,Q(n,"float32")),u=ye(e.shape,o);return u.length>0?R(pt(a,u),e.shape):a},b:()=>{let a=$(r,Q(e,"float32")),u=ye(n.shape,o);return u.length>0?R(pt(a,u),n.shape):a}}}};var UD={kernelName:Mi,gradFunc:r=>({x:()=>Ut(r)})};var HD={kernelName:Rs,inputsToSave:["indices"],gradFunc:(r,t)=>{let e=t[0];return{indices:()=>Te(e.shape,"float32")}}};var qD={kernelName:Li,gradFunc:r=>({x:()=>vt(r)})};var KD={kernelName:zi,saveAllInputs:!0,gradFunc:(r,t,e)=>{let{axis:n}=e;return xr(r,n).map(s=>()=>s)}};var IN={kernelName:Fs,inputsToSave:["x"],gradFunc:(r,t,e)=>{let n=t[0],{paddings:o}=e,s=o.map(i=>i[0]);return{x:()=>Ot(r,s,n.shape)}}};var jD={kernelName:Os,inputsToSave:["a","b"],outputsToSave:[!0],gradFunc:(r,t)=>{let[e,n,o]=t,s=e,i=n,a=Mt(s.shape,i.shape);return{a:()=>{let c=Q(i,"float32"),p=$(r,$(c,cn(s,lt(c,ft(1))))),m=ye(s.shape,a);return m.length>0&&(p=pt(p,m)),R(p,s.shape)},b:()=>{let c=Fe(s,0),p=be(c,Nr(s),vt(s)),m=$(r,$(o,p)),f=ye(i.shape,a);return f.length>0&&(m=pt(m,f)),R(m,i.shape)}}}};var XD={kernelName:Ps,inputsToSave:["x","alpha"],gradFunc:(r,t)=>{let[e,n]=t,o=Fe(e,0);return{x:()=>be(o,r,$(r,n)),alpha:()=>{let s=be(o,vt(r),$(r,e)),i=ye(n.shape,r.shape);return i.length>0&&(s=pt(s,i)),R(s,n.shape)}}}};function sZ(r,t,e){let n=r.shape.slice();n[e]=1;let o=R(t,n),s=gc(r,e,!0,!1),i=gc(r,e,!0,!0),a=$(s,i);return $(o,a)}function iZ(r,t,e){let n=r.shape.length,o=n-e.length,s=S.getAxesPermutation(e,n),i=r;s!=null&&(i=Vt(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=sZ(c,t,o);if(p=p.reshape(i.shape),s!=null){let m=S.getUndoAxesPermutation(s);p=Vt(p,m)}return p}var YD={kernelName:Ms,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:()=>iZ(n,r,s)}}};var ZD={kernelName:cs,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=Mt(e.shape,n.shape);return{a:()=>{let a=ct(r,Q(n,"float32")),u=ye(e.shape,o);return u.length>0?R(pt(a,u),e.shape):a},b:()=>{let a=$(r,Q(e,"float32")),u=ye(n.shape,o);u.length>0&&(a=R(pt(a,u),n.shape));let l=Wt(n);return Ut(ct(a,Q(l,"float32")))}}}};var JD={kernelName:Ls,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,Ut(Wt(e)))}}};var QD={kernelName:Gs,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t,n=$(Gn(e,6),No(e));return{x:()=>$(r,Q(n,"float32"))}}};var t$={kernelName:zs,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(r,Q(No(e),"float32"))}}};var e$={kernelName:Bi,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>R(r,e.shape)}}};var r$={kernelName:Vs,inputsToSave:["images"],gradFunc:(r,t,e)=>{let[n]=t,o={dy:r,images:n};return{images:()=>T.runKernel(nl,o,e)}}};var n$={kernelName:Bs,inputsToSave:["images"],gradFunc:(r,t,e)=>{let[n]=t,o={dy:r,images:n};return{images:()=>T.runKernel(rl,o,e)}}};var o$={kernelName:Ws,gradFunc:(r,t,e)=>{let{dims:n}=e,o=fr(n,r.shape);return{x:()=>hr(r,o)}}};var s$={kernelName:Us,gradFunc:r=>({x:()=>vt(r)})};var i$={kernelName:Hs,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>Ut(ct(r,$(cn(e,1.5),2)))}}};var a$={kernelName:Vi,inputsToSave:["condition"],gradFunc:(r,t)=>{let[e]=t;return{condition:()=>Q(vt(e),"float32"),t:()=>$(r,Q(e,r.dtype)),e:()=>$(r,Q(Nu(e),r.dtype))}}};var l$={kernelName:qs,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Fe(e,ft(0)),o=ft(gN),s=ft(xN),i=$(r,s),a=$($(r,o),ir(Q(e,"float32")));return be(n,i,a)}}}};var u$={kernelName:Xs,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(r,$(e,lt(ft(1),e)))}}};var c$={kernelName:js,gradFunc:r=>({x:()=>vt(r)})};var p$={kernelName:Ks,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(Iu(Q(e,"float32")),r)}}};var m$={kernelName:al,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(mm(Q(e,"float32")),r)}}};var f$={kernelName:Gi,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{begin:o,size:s}=e,i=n.shape,[a,u]=hN(n,o,s),l=[];for(let c=0;cfn(r,l)}}};var d$={kernelName:Qs,outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n]=t,{dim:o}=e,s=!0,i=$(r,n);return{logits:()=>lt(i,$(pt(i,[o],s),n))}}};var h$={kernelName:Ys,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(r,tn(e))}}};var CN={kernelName:Wi,gradFunc:(r,t,e)=>{let{blockShape:n,paddings:o}=e;return{x:()=>wu(r,n,o)}}};var vN={kernelName:Ui,gradFunc:(r,t,e)=>{let{axis:n}=e;return{x:()=>se(r,n)}}};var g$={kernelName:Zs,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,$(Ne(Q(e,"float32")),2))}}};var x$={kernelName:lu,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(r,$(Q(e,"float32"),2))}}};var y$={kernelName:ti,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=ft(2);return{a:()=>$(r,$(o,lt(e,n))),b:()=>$(r,$(o,lt(n,e)))}}};var b$={kernelName:yo,gradFunc:r=>({x:()=>vt(r)})};var w$={kernelName:ei,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=Mt(e.shape,n.shape);return{a:()=>{let a=r,u=ye(e.shape,o);return u.length>0&&(a=pt(a,u)),R(a,e.shape)},b:()=>{let a=r,u=ye(n.shape,o);return u.length>0&&(a=pt(a,u)),R(Ut(a),n.shape)}}}};var I$={kernelName:Js,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,o=n.shape.slice(),{axis:s}=e;fr(s,n.shape).forEach(l=>{o[l]=1});let a=R(r,o),u=$(a,dr(n.shape,"float32"));return{x:()=>u}}};var C$={kernelName:ri,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,Wt(Iu(e)))}}};var v$={kernelName:ni,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(lt(ft(1),Wt(e)),r)}}};var S$={kernelName:so,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{reps:o}=e;return{x:()=>{let i=vt(n);if(n.rank===1)for(let a=0;a{let n=e,{perm:o}=n,s=xh(o);return{x:()=>Vt(r,s)}}};var k$={kernelName:Hi,gradFunc:(r,t,e)=>{let n=e,{axis:o}=n;return{value:()=>qe(r,o)}}};var T$={kernelName:fu,inputsToSave:["segmentIds"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>aZ(r,e)}}};function aZ(r,t){let e=Tn(t,vt(t)),n=la(r,e),o=pn(t,ft(0,"int32")),s=n.rank-o.rank;for(let a=0;a({x:()=>vt(r)})};var lZ=[Ry,R2,F2,O2,P2,M2,L2,z2,B2,V2,G2,W2,H2,K2,j2,X2,Y2,Z2,J2,Q2,tD,eD,nD,rD,sD,iD,aD,lD,uD,cD,ZD,pD,mD,fD,dD,hD,xD,gD,yD,ID,CD,vD,SD,ND,kD,TD,_D,ED,AD,$D,wN,wN,RD,OD,MD,LD,zD,BD,VD,GD,WD,UD,HD,qD,KD,IN,IN,jD,XD,YD,JD,QD,t$,e$,r$,n$,o$,s$,i$,a$,l$,u$,c$,p$,m$,f$,d$,h$,CN,CN,vN,vN,g$,y$,x$,b$,w$,I$,C$,v$,S$,N$,k$,T$,_$];for(let r of lZ)b_(r);O().prototype.abs=function(){return this.throwIfDisposed(),Ee(this)};O().prototype.acos=function(){return this.throwIfDisposed(),dx(this)};O().prototype.acosh=function(){return this.throwIfDisposed(),hx(this)};O().prototype.add=function(r){return this.throwIfDisposed(),Y(this,r)};O().prototype.all=function(r,t){return this.throwIfDisposed(),am(this,r,t)};O().prototype.any=function(r,t){return this.throwIfDisposed(),dc(this,r,t)};O().prototype.argMax=function(r){return this.throwIfDisposed(),ta(this,r)};O().prototype.argMin=function(r){return this.throwIfDisposed(),gx(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(),Q(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(),xx(this)};O().prototype.asinh=function(){return this.throwIfDisposed(),yx(this)};O().prototype.atan=function(){return this.throwIfDisposed(),bx(this)};O().prototype.atan2=function(r){return this.throwIfDisposed(),wx(this,r)};O().prototype.atanh=function(){return this.throwIfDisposed(),Ix(this)};O().prototype.avgPool=function(r,t,e,n){return this.throwIfDisposed(),bu(this,r,t,e,n)};O().prototype.batchToSpaceND=function(r,t){return this.throwIfDisposed(),wu(this,r,t)};O().prototype.batchNorm=function(r,t,e,n,o){return this.throwIfDisposed(),na(this,r,t,e,n,o)};O().prototype.broadcastTo=function(r){return this.throwIfDisposed(),oa(this,r)};O().prototype.cast=function(r){return this.throwIfDisposed(),Q(this,r)};O().prototype.ceil=function(){return this.throwIfDisposed(),Tx(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 Pt&&(r=[r]),se([this,...r],t)};O().prototype.conv1d=function(r,t,e,n,o,s){return this.throwIfDisposed(),um(this,r,t,e,n,o,s)};O().prototype.conv2dTranspose=function(r,t,e,n,o){return this.throwIfDisposed(),pm(this,r,t,e,n,o)};O().prototype.conv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),kn(this,r,t,e,n,o,s)};O().prototype.cos=function(){return this.throwIfDisposed(),Iu(this)};O().prototype.cosh=function(){return this.throwIfDisposed(),mm(this)};O().prototype.cumprod=function(r,t,e){return this.throwIfDisposed(),gc(this,r,t,e)};O().prototype.cumsum=function(r,t,e){return this.throwIfDisposed(),fm(this,r,t,e)};O().prototype.depthToSpace=function(r,t){return this.throwIfDisposed(),Ox(this,r,t)};O().prototype.depthwiseConv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),sa(this,r,t,e,n,o,s)};O().prototype.dilation2d=function(r,t,e,n,o){return this.throwIfDisposed(),Px(this,r,t,e,n,o)};O().prototype.divNoNan=function(r){return this.throwIfDisposed(),Mx(this,r)};O().prototype.div=function(r){return this.throwIfDisposed(),ct(this,r)};O().prototype.dot=function(r){return this.throwIfDisposed(),Lx(this,r)};O().prototype.elu=function(){return this.throwIfDisposed(),ia(this)};O().prototype.equal=function(r){return this.throwIfDisposed(),Rr(this,r)};O().prototype.erf=function(){return this.throwIfDisposed(),zx(this)};O().prototype.euclideanNorm=function(r,t){return this.throwIfDisposed(),Bx(this,r,t)};O().prototype.exp=function(){return this.throwIfDisposed(),ir(this)};O().prototype.expandDims=function(r){return this.throwIfDisposed(),ar(this,r)};O().prototype.expm1=function(){return this.throwIfDisposed(),Vx(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(),aa(this)};O().prototype.floorDiv=function(r){return this.throwIfDisposed(),im(this,r)};O().prototype.gather=function(r,t,e){return this.throwIfDisposed(),la(this,r,t,e)};O().prototype.greaterEqual=function(r){return this.throwIfDisposed(),pn(this,r)};O().prototype.greater=function(r){return this.throwIfDisposed(),Fe(this,r)};O().prototype.ifft=function(){return this.throwIfDisposed(),Il(this)};O().prototype.irfft=function(){return this.throwIfDisposed(),km(this)};O().prototype.isFinite=function(){return this.throwIfDisposed(),Gx(this)};O().prototype.isInf=function(){return this.throwIfDisposed(),Wx(this)};O().prototype.isNaN=function(){return this.throwIfDisposed(),Ux(this)};O().prototype.leakyRelu=function(r){return this.throwIfDisposed(),vu(this,r)};O().prototype.lessEqual=function(r){return this.throwIfDisposed(),Gn(this,r)};O().prototype.less=function(r){return this.throwIfDisposed(),bl(this,r)};O().prototype.localResponseNormalization=function(r,t,e,n){return this.throwIfDisposed(),Hx(this,r,t,e,n)};O().prototype.logSigmoid=function(){return this.throwIfDisposed(),jx(this)};O().prototype.logSoftmax=function(r){return this.throwIfDisposed(),dm(this,r)};O().prototype.logSumExp=function(r,t){return this.throwIfDisposed(),hm(this,r,t)};O().prototype.log=function(){return this.throwIfDisposed(),Nr(this)};O().prototype.log1p=function(){return this.throwIfDisposed(),Su(this)};O().prototype.logicalAnd=function(r){return this.throwIfDisposed(),Or(this,r)};O().prototype.logicalNot=function(){return this.throwIfDisposed(),Nu(this)};O().prototype.logicalOr=function(r){return this.throwIfDisposed(),gm(this,r)};O().prototype.logicalXor=function(r){return this.throwIfDisposed(),Xx(this,r)};O().prototype.matMul=function(r,t,e){return this.throwIfDisposed(),Bt(this,r,t,e)};O().prototype.maxPool=function(r,t,e,n){return this.throwIfDisposed(),ku(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(),Tn(this,r)};O().prototype.mean=function(r,t){return this.throwIfDisposed(),ke(this,r,t)};O().prototype.min=function(r,t){return this.throwIfDisposed(),xl(this,r,t)};O().prototype.minimum=function(r){return this.throwIfDisposed(),uo(this,r)};O().prototype.mirrorPad=function(r,t){return this.throwIfDisposed(),Jx(this,r,t)};O().prototype.mod=function(r){return this.throwIfDisposed(),Qx(this,r)};O().prototype.mul=function(r){return this.throwIfDisposed(),$(this,r)};O().prototype.neg=function(){return this.throwIfDisposed(),Ut(this)};O().prototype.norm=function(r,t,e){return this.throwIfDisposed(),yl(this,r,t,e)};O().prototype.notEqual=function(r){return this.throwIfDisposed(),li(this,r)};O().prototype.oneHot=function(r,t=1,e=0){return this.throwIfDisposed(),ua(this,r,t,e)};O().prototype.onesLike=function(){return this.throwIfDisposed(),Ir(this)};O().prototype.pad=function(r,t){return this.throwIfDisposed(),fn(this,r,t)};O().prototype.pool=function(r,t,e,n,o,s){return this.throwIfDisposed(),ty(this,r,t,e,n,o,s)};O().prototype.pow=function(r){return this.throwIfDisposed(),cn(this,r)};O().prototype.prelu=function(r){return this.throwIfDisposed(),_u(this,r)};O().prototype.prod=function(r,t){return this.throwIfDisposed(),ey(this,r,t)};O().prototype.reciprocal=function(){return this.throwIfDisposed(),ay(this)};O().prototype.relu=function(){return this.throwIfDisposed(),Pr(this)};O().prototype.relu6=function(){return this.throwIfDisposed(),xm(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(),Sy(this,r,t,e)};O().prototype.resizeNearestNeighbor=function(r,t,e){return this.throwIfDisposed(),Ny(this,r,t,e)};O().prototype.reverse=function(r){return this.throwIfDisposed(),hr(this,r)};O().prototype.rfft=function(){return this.throwIfDisposed(),Du(this)};O().prototype.round=function(){return this.throwIfDisposed(),ym(this)};O().prototype.rsqrt=function(){return this.throwIfDisposed(),bm(this)};O().prototype.selu=function(){return this.throwIfDisposed(),wm(this)};O().prototype.separableConv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),Im(this,r,t,e,n,o,s)};O().prototype.sigmoid=function(){return this.throwIfDisposed(),tn(this)};O().prototype.sign=function(){return this.throwIfDisposed(),ly(this)};O().prototype.sin=function(){return this.throwIfDisposed(),Cm(this)};O().prototype.sinh=function(){return this.throwIfDisposed(),vm(this)};O().prototype.slice=function(r,t){return this.throwIfDisposed(),Ot(this,r,t)};O().prototype.softmax=function(r){return this.throwIfDisposed(),Eu(this,r)};O().prototype.softplus=function(){return this.throwIfDisposed(),ai(this)};O().prototype.spaceToBatchND=function(r,t){return this.throwIfDisposed(),Tu(this,r,t)};O().prototype.split=function(r,t){return this.throwIfDisposed(),gr(this,r,t)};O().prototype.sqrt=function(){return this.throwIfDisposed(),Ne(this)};O().prototype.square=function(){return this.throwIfDisposed(),Wt(this)};O().prototype.squaredDifference=function(r){return this.throwIfDisposed(),Tm(this,r)};O().prototype.squeeze=function(r){return this.throwIfDisposed(),Un(this,r)};O().prototype.stack=function(r,t){this.throwIfDisposed();let e=r instanceof Pt?[this,r]:[this,...r];return qe(e,t)};O().prototype.step=function(r){return this.throwIfDisposed(),No(this,r)};O().prototype.stridedSlice=function(r,t,e,n,o,s,i,a){return this.throwIfDisposed(),uy(this,r,t,e,n,o,s,i,a)};O().prototype.sub=function(r){return this.throwIfDisposed(),lt(this,r)};O().prototype.sum=function(r,t){return this.throwIfDisposed(),pt(this,r,t)};O().prototype.tan=function(){return this.throwIfDisposed(),cy(this)};O().prototype.tanh=function(){return this.throwIfDisposed(),ra(this)};O().prototype.tile=function(r){return this.throwIfDisposed(),Fr(this,r)};O().prototype.toBool=function(){return this.throwIfDisposed(),Q(this,"bool")};O().prototype.toFloat=function(){return this.throwIfDisposed(),Q(this,"float32")};O().prototype.toInt=function(){return this.throwIfDisposed(),Q(this,"int32")};O().prototype.topk=function(r,t){return this.throwIfDisposed(),my(this,r,t)};O().prototype.transpose=function(r){return this.throwIfDisposed(),Vt(this,r)};O().prototype.unique=function(r){return this.throwIfDisposed(),fy(this,r)};O().prototype.unsortedSegmentSum=function(r,t){return this.throwIfDisposed(),Am(this,r,t)};O().prototype.unstack=function(r){return this.throwIfDisposed(),xr(this,r)};O().prototype.where=function(r,t){return this.throwIfDisposed(),be(r,this,t)};O().prototype.zerosLike=function(){return this.throwIfDisposed(),vt(this)};var _n=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,_n.prototype)}},jr=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,jr.prototype)}},z=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,z.prototype)}},Nt=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,Nt.prototype)}},$m=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,$m.prototype)}};var Th=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 To={};function Rm(r){if(r==null)return null;let t={};return t.className=r.getClassName(),t.config=r.getConfig(),t}function SN(r){if(!(r==null||typeof r!="object"))if(Array.isArray(r))r.forEach(t=>SN(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:SN(n))}}}function fa(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 To)i=To[s];else if(i=t[s],i==null)throw new z(`Unknown ${n}: ${r}. This may be due to one of the following reasons: + ${s.shape}`);let i={data:n,indices:o,segmentIds:s};return T.runKernel(mu,i)}var p2=k({sparseSegmentSum_:V8});function G8(r,t,e,n,o,s,i,a){let u=C(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=C(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=T.runKernel(du,p,c);return{nGrams:m[0],nGramsSplits:m[1]}}var m2=k({stringNGrams_:G8});function W8(r,t,e=!0){let n=C(r,"input","stringSplit","string"),o=C(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=T.runKernel(hu,i,s);return{indices:a[0],values:a[1],shape:a[2]}}var f2=k({stringSplit_:W8});function U8(r,t){let e=C(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 T.runKernel(gu,o,n)}var d2=k({stringToHashBucketFast_:U8});function H8(r,t,e,n=!0){let o=C(r,"input","staticRegexReplace","string"),s={pattern:t,rewrite:e,replaceGlobal:n};return T.runKernel(cc,{x:o},s)}var h2=k({staticRegexReplace_:H8});var q8={fft:Ou,ifft:vl,rfft:Pu,irfft:Tm},K8={hammingWindow:FA,hannWindow:wy,frame:Iy,stft:OA},hn={flipLeftRight:MA,grayscaleToRGB:LA,resizeNearestNeighbor:ky,resizeBilinear:Ny,rotateWithOffset:zA,cropAndResize:PA,nonMaxSuppression:BA,nonMaxSuppressionAsync:WA,nonMaxSuppressionWithScore:UA,nonMaxSuppressionWithScoreAsync:HA,nonMaxSuppressionPadded:qA,nonMaxSuppressionPaddedAsync:KA,threshold:jA,transform:XA},fN={bandPart:YA,gramSchmidt:ZA,qr:QA},j8={absoluteDifference:t2,computeWeightedLoss:qr,cosineDistance:e2,hingeLoss:r2,huberLoss:n2,logLoss:o2,meanSquaredError:s2,sigmoidCrossEntropy:i2,softmaxCrossEntropy:a2},X8={sparseFillEmptyRows:l2,sparseReshape:u2,sparseSegmentMean:c2,sparseSegmentSum:p2},Y8={stringNGrams:m2,stringSplit:f2,stringToHashBucketFast:d2,staticRegexReplace:h2};var J={};Kt(J,{Serializable:()=>Ch,SerializationMap:()=>ha,registerClass:()=>dN});var Ch=class{getClassName(){return this.constructor.className}static fromConfig(t,e){return new t(e)}},ha=class{constructor(){this.classNameMap={}}static getMap(){return ha.instance==null&&(ha.instance=new ha),ha.instance}static register(t){ha.getMap().classNameMap[t.className]=[t,t.fromConfig]}};function dN(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."),ha.register(r)}var Kr=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 Tt(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 Kx(t,e)}dispose(){this.iterations_!=null&&Tt(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:"iter",tensor:ft(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(Kr,Symbol.hasInstance,{value:r=>r.minimize!=null&&r.computeGradients!=null&&r.applyGradients!=null});var $c=class extends Kr{static get className(){return"Adadelta"}constructor(t,e,n=null){super(),this.learningRate=t,this.rho=e,this.epsilon=n,this.accumulatedGrads=[],this.accumulatedUpdates=[],n==null&&(this.epsilon=T.backend.epsilon())}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=T.registeredVariables[n],i=!1;this.accumulatedGrads[o]==null&&(this.accumulatedGrads[o]={originalName:`${n}/accum_grad`,variable:B(()=>vt(s).variable(i))}),this.accumulatedUpdates[o]==null&&(this.accumulatedUpdates[o]={originalName:`${n}/accum_var`,variable:B(()=>vt(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=Y($(u,this.rho),$(Wt(a),1-this.rho)),p=$(ct(Ne(Y(l,this.epsilon)),Ne(Y(u,this.epsilon))),a),m=Y($(l,this.rho),$(Wt(p),1-this.rho));u.assign(c),l.assign(m);let f=Y($(p,-this.learningRate),s);s.assign(f)})}),this.incrementIterations()}dispose(){this.accumulatedUpdates!=null&&(Tt(this.accumulatedGrads.map(t=>t.variable)),Tt(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)}};var Rc=class extends Kr{static get className(){return"Adagrad"}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=T.registeredVariables[n];this.accumulatedGrads[o]==null&&(this.accumulatedGrads[o]={originalName:`${n}/accumulator`,variable:B(()=>No(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=Y(a,Wt(i));a.assign(u);let l=Y($(ct(i,Ne(Y(u,T.backend.epsilon()))),-this.learningRate),s);s.assign(l)})}),this.incrementIterations()}dispose(){this.accumulatedGrads!=null&&Tt(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)}};var Fc=class extends Kr{static get className(){return"Adam"}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=ft(e).variable(),this.accBeta2=ft(n).variable()}),o==null&&(this.epsilon=T.backend.epsilon())}applyGradients(t){let e=Array.isArray(t)?t.map(n=>n.name):Object.keys(t);B(()=>{let n=lt(1,this.accBeta1),o=lt(1,this.accBeta2);e.forEach((s,i)=>{let a=T.registeredVariables[s],u=!1;this.accumulatedFirstMoment[i]==null&&(this.accumulatedFirstMoment[i]={originalName:`${s}/m`,variable:B(()=>vt(a).variable(u))}),this.accumulatedSecondMoment[i]==null&&(this.accumulatedSecondMoment[i]={originalName:`${s}/v`,variable:B(()=>vt(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=Y($(c,this.beta1),$(l,1-this.beta1)),f=Y($(p,this.beta2),$(Wt(l),1-this.beta2)),d=ct(m,n),h=ct(f,o);c.assign(m),p.assign(f);let g=Y($(ct(d,Y(Ne(h),this.epsilon)),-this.learningRate),a);a.assign(g)}),this.accBeta1.assign($(this.accBeta1,this.beta1)),this.accBeta2.assign($(this.accBeta2,this.beta2))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),this.accumulatedFirstMoment!=null&&Tt(this.accumulatedFirstMoment.map(t=>t.variable)),this.accumulatedSecondMoment!=null&&Tt(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(pn(this.beta1,this.iterations_+1)),this.accBeta2.assign(pn(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)}};var Oc=class extends Kr{static get className(){return"Adamax"}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=ft(0).variable(),this.accBeta1=ft(e).variable()}),o==null&&(this.epsilon=T.backend.epsilon())}applyGradients(t){let e=Array.isArray(t)?t.map(n=>n.name):Object.keys(t);B(()=>{let n=lt(1,this.accBeta1),o=ct(-this.learningRate,Y($(this.iteration,this.decay),1));e.forEach((s,i)=>{let a=T.registeredVariables[s],u=!1;this.accumulatedFirstMoment[i]==null&&(this.accumulatedFirstMoment[i]={originalName:`${s}/m`,variable:vt(a).variable(u)}),this.accumulatedWeightedInfNorm[i]==null&&(this.accumulatedWeightedInfNorm[i]={originalName:`${s}/v`,variable:vt(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=Y($(c,this.beta1),$(l,1-this.beta1)),f=$(p,this.beta2),d=Ee(l),h=_n(f,d);c.assign(m),p.assign(h);let g=Y($(ct(o,n),ct(m,Y(h,this.epsilon))),a);a.assign(g)}),this.iteration.assign(Y(this.iteration,1)),this.accBeta1.assign($(this.accBeta1,this.beta1))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),this.accumulatedFirstMoment!=null&&Tt(this.accumulatedFirstMoment.map(t=>t.variable)),this.accumulatedWeightedInfNorm!=null&&Tt(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)}};var Sl=class extends Kr{static get className(){return"SGD"}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=T.registeredVariables[n];B(()=>{let a=Y($(this.c,s),i);i.assign(a)})}),this.incrementIterations()}setLearningRate(t){this.learningRate=t,this.c!=null&&this.c.dispose(),this.c=$e(ft(-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)}};var Pc=class extends Sl{static get className(){return"Momentum"}constructor(t,e,n=!1){super(t),this.learningRate=t,this.momentum=e,this.useNesterov=n,this.accumulations=[],this.m=ft(this.momentum)}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=T.registeredVariables[n];this.accumulations[o]==null&&(this.accumulations[o]={originalName:`${n}/momentum`,variable:B(()=>vt(s).variable(!1))});let i=this.accumulations[o].variable,a=Array.isArray(t)?t[o].tensor:t[n];a!=null&&B(()=>{let u,l=Y($(this.m,i),a);this.useNesterov?u=Y($(this.c,Y(a,$(l,this.m))),s):u=Y($(this.c,l),s),i.assign(l),s.assign(u)})}),this.incrementIterations()}dispose(){this.m.dispose(),this.accumulations!=null&&Tt(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)}};var Mc=class extends Kr{static get className(){return"RMSProp"}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=T.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=T.registeredVariables[n],i=!1;this.accumulatedMeanSquares[o]==null&&(this.accumulatedMeanSquares[o]={originalName:`${n}/rms`,variable:B(()=>vt(s).variable(i))}),this.accumulatedMoments[o]==null&&(this.accumulatedMoments[o]={originalName:`${n}/momentum`,variable:B(()=>vt(s).variable(i))}),this.accumulatedMeanGrads[o]==null&&this.centered&&(this.accumulatedMeanGrads[o]={originalName:`${n}/mg`,variable:B(()=>vt(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=Y($(u,this.decay),$(Wt(a),1-this.decay));if(this.centered){let p=this.accumulatedMeanGrads[o].variable,m=Y($(p,this.decay),$(a,1-this.decay)),f=ct($(a,this.learningRate),Ne(lt(c,Y(Wt(m),this.epsilon)))),d=Y($(l,this.momentum),f);u.assign(c),p.assign(m),l.assign(d);let h=lt(s,d);s.assign(h)}else{let p=Y($(u,this.decay),$(Wt(a),1-this.decay)),m=Y($(l,this.momentum),ct($(a,this.learningRate),Ne(Y(p,this.epsilon))));u.assign(p),l.assign(m);let f=lt(s,m);s.assign(f)}})}),this.incrementIterations()}dispose(){this.accumulatedMeanSquares!=null&&Tt(this.accumulatedMeanSquares.map(t=>t.variable)),this.accumulatedMeanGrads!=null&&this.centered&&Tt(this.accumulatedMeanGrads.map(t=>t.variable)),this.accumulatedMoments!=null&&Tt(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)}};var Z8=[$c,Rc,Fc,Oc,Pc,Mc,Sl];function g2(){for(let r of Z8)dN(r)}var Lr={};Kt(Lr,{CompositeArrayBuffer:()=>vr,browserFiles:()=>y2,browserHTTPRequest:()=>I2,concatenateArrayBuffers:()=>rE,copyModel:()=>gE,decodeWeights:()=>lx,encodeWeights:()=>Q_,fromMemory:()=>C2,fromMemorySync:()=>wN,getLoadHandlers:()=>iE,getModelArtifactsForJSON:()=>nm,getModelArtifactsForJSONSync:()=>B0,getModelArtifactsInfoForJSON:()=>ea,getSaveHandlers:()=>sE,getWeightSpecs:()=>cx,http:()=>_y,isHTTPScheme:()=>Ty,listModels:()=>dE,loadWeights:()=>b2,moveModel:()=>xE,registerLoadRouter:()=>oE,registerSaveRouter:()=>nE,removeModel:()=>hE,weightsLoaderFactory:()=>yN,withSaveHandler:()=>v2,withSaveHandlerSync:()=>S2});var J8="model",Q8=".json",tY=".weights.bin";function x2(r){return new Promise(t=>setTimeout(t)).then(r)}var Nl=class{constructor(t){if(!L().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");t.startsWith(Nl.URL_SCHEME)&&(t=t.slice(Nl.URL_SCHEME.length)),(t==null||t.length===0)&&(t=J8),this.modelJsonFileName=t+Q8,this.weightDataFileName=t+tY}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=vr.join(t.weightData),n=window.URL.createObjectURL(new Blob([e],{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 o=[{paths:["./"+this.weightDataFileName],weights:t.weightSpecs}],s=ux(t,o),i=window.URL.createObjectURL(new Blob([JSON.stringify(s)],{type:"application/json"})),a=this.modelJsonAnchor==null?document.createElement("a"):this.modelJsonAnchor;if(a.download=this.modelJsonFileName,a.href=i,await x2(()=>a.dispatchEvent(new MouseEvent("click"))),t.weightData!=null){let u=this.weightDataAnchor==null?document.createElement("a"):this.weightDataAnchor;u.download=this.weightDataFileName,u.href=n,await x2(()=>u.dispatchEvent(new MouseEvent("click")))}return{modelArtifactsInfo:ea(t)}}}};Nl.URL_SCHEME="downloads://";var hN=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=nm(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,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=>z0(s.name)),o={};for(let s of t)s.paths.forEach(i=>{let a=z0(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}},eY=r=>L().getBool("IS_BROWSER")&&!Array.isArray(r)&&r.startsWith(Nl.URL_SCHEME)?rY(r.slice(Nl.URL_SCHEME.length)):null;ve.registerSaveRouter(eY);function rY(r="model"){return new Nl(r)}function y2(r){return new hN(r)}function gN(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 xN(r,t){t==null&&(t={});let e=t.fetchFunc==null?L().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 gN(n,t.onProgress,o,s)).map(p=>p.arrayBuffer()),u=.5,l=1;return t.onProgress==null?await Promise.all(a):await gN(a,t.onProgress,u,l)}async function b2(r,t="",e,n){return yN(i=>xN(i,{requestInit:n}))(r,t,e)}function yN(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=mh[x]*te(g.shape),w=()=>{o[d]=!0,s[d]==null&&(s[d]=[]),s[d].push({manifestEntry:g,groupOffset:h,sizeBytes:b})};n!=null?n.forEach((I,N)=>{I===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=new vr(c.slice(m,m+d));s[f].forEach(x=>{let b=h.slice(x.groupOffset,x.groupOffset+x.sizeBytes),w=lx(b,[x.manifestEntry]);for(let I in w)p[I]=w[I]}),m+=d}),p}}var nY="application/octet-stream",oY="application/json",vh=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=L().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=ux(t,n);if(e.body.append("model.json",new Blob([JSON.stringify(o)],{type:oY}),"model.json"),t.weightData!=null){let i=vr.join(t.weightData);e.body.append("model.weights.bin",new Blob([i],{type:nY}),"model.weights.bin")}let s=await this.fetch(this.path,e);if(s.ok)return{modelArtifactsInfo:ea(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 nm(e,s=>this.loadWeights(s))}async loadWeights(t){let e=Array.isArray(this.path)?this.path[1]:this.path,[n,o]=sY(e),s=this.weightPathPrefix||n,i=cx(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 xN(a,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress});return[i,l]}};vh.URL_SCHEME_REGEX=/^https?:\/\//;function sY(r){let t=r.lastIndexOf("/"),e=r.lastIndexOf("?"),n=r.substring(0,t),o=e>t?r.substring(e):"";return[n+"/",o]}function Ty(r){return r.match(vh.URL_SCHEME_REGEX)!=null}var w2=(r,t)=>{if(typeof fetch=="undefined"&&(t==null||t.fetchFunc==null))return null;{let e=!0;if(Array.isArray(r)?e=r.every(n=>Ty(n)):e=Ty(r),e)return _y(r,t)}return null};ve.registerSaveRouter(w2);ve.registerLoadRouter(w2);function _y(r,t){return new vh(r,t)}function I2(r,t){return _y(r,t)}var Sh=class{constructor(t){this.modelArtifacts=t}load(){return this.modelArtifacts}},Ey=class{constructor(t){this.saveHandler=t}save(t){return this.saveHandler(t)}},bN=class{constructor(t){t.load&&(this.load=()=>Promise.resolve(t.load())),t.save&&(this.save=e=>Promise.resolve(t.save(e)))}};function C2(r,t,e,n){let o=arguments;return new bN(wN(...o))}function wN(r,t,e,n){return arguments.length===1?r.modelTopology!=null||r.weightSpecs!=null?new Sh(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 Sh({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 Sh({modelTopology:r,weightSpecs:t,weightData:e,trainingConfig:n}))}function v2(r){return new Ey(r)}function S2(r){return new Ey(r)}var k2={};Kt(k2,{confusionMatrix:()=>N2});function iY(r,t,e){let n=C(r,"labels","confusionMatrix"),o=C(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=fa(Q(n,"int32"),e),i=fa(Q(o,"int32"),e),a=Vt(s),u=Bt(a,i);return Q(u,"int32")}var N2=k({confusionMatrix_:iY});var Ay={};Kt(Ay,{draw:()=>dY,fromPixels:()=>hY,fromPixelsAsync:()=>pY,toPixels:()=>fY});var Lc,T2=!1;function _2(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(ih(oh,T.backendName)!=null){let d={pixels:r},h={numChannels:t};return T.runKernel(oh,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(Lc==null)if(typeof document=="undefined")if(typeof OffscreenCanvas!="undefined"&&typeof OffscreenCanvasRenderingContext2D!="undefined")Lc=new OffscreenCanvas(1,1).getContext("2d");else throw new Error("Cannot parse input in current context. Reason: OffscreenCanvas Context2D rendering is not supported.");else Lc=document.createElement("canvas").getContext("2d",{willReadFrequently:!0});Lc.canvas.width=l,Lc.canvas.height=c,Lc.drawImage(r,0,0,l,c),p=Lc.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||t===2)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${t}`);if(r.dtype!=="float32"&&r.dtype!=="int32")throw new Error(`Unsupported type for toPixels: ${r.dtype}. Please use float32 or int32 tensors.`)}function mY(r){let t=(r==null?void 0:r.alpha)||1;if(t>1||t<0)throw new Error(`Alpha value ${t} is suppoed to be in range [0 - 1].`)}async function fY(r,t){let e=C(r,"img","toPixels");if(!(r instanceof Ot)){let l=e;e=Q(l,"int32"),l.dispose()}E2(e);let[n,o]=e.shape.slice(0,2),s=e.rank===2?1:e.shape[2],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){T2||(console.warn("tf.browser.toPixels is not efficient to draw tensor on canvas. Please try tf.browser.draw instead."),T2=!0),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}function dY(r,t,e){let n=C(r,"img","draw");if(!(r instanceof Ot)){let i=n;n=Q(i,"int32"),i.dispose()}E2(n),mY(e==null?void 0:e.imageOptions);let o={image:n},s={canvas:t,options:e};T.runKernel(Zg,o,s)}var hY=k({fromPixels_:_2});var Dy={};Kt(Dy,{prepareAndValidate:()=>A2});function A2(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(te(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 ze={};Kt(ze,{assertParamsValid:()=>xY,computeFlatOffset:()=>CY,computeOutShape:()=>bY,getNormalizedAxes:()=>wY,isSliceContinous:()=>IY,maskToAxes:()=>yY,parseSliceParams:()=>CN,sliceInfo:()=>vY,startForAxis:()=>L2,startIndicesWithElidedDims:()=>O2,stopForAxis:()=>z2,stopIndicesWithElidedDims:()=>P2,stridesForAxis:()=>M2,stridesWithElidedDims:()=>$2});var IN=-2,gY=-1;function xY(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 yY(r){let t=[],e=0;for(;r>0;)r&1&&t.push(e),r/=2,e++;return t}function bY(r,t,e){let n=[];for(let o=0;o0){let f=t[0],d=e+1;c=O2(i,f,d,n,r),p=P2(a,f,d,o,r),m=$2(s,f,d,r)}else for(let f=0;f-1)s[a]=0;else{let u=R2(t,e,a),l=n[u];r&1<-1)s[a]=Number.MAX_SAFE_INTEGER;else{let u=R2(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 z2(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 IY(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 CY(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 vY(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)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(I&&m.strides[w]<=0)throw Error("only stride 1 allowed on non-range indexing.");h=h&&m.strides[w]===1;let D=!!(m.beginMask&1<=N)throw Error(`slice index ${m.begin[w]} of dimension ${w} out of bounds.`)}else m.begin[w]=D2(m.begin[w],0,m.strides[w],N,E,A),m.end[w]=D2(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=d&&(w===0&&m.strides[w]===1||D);let F,P=!1;if(m.beginValid&&m.endValid?(F=m.end[w]-m.begin[w],P=!0):I?(F=1,P=!0):D&&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[I]):I===IN&&x.push(1)}return{finalShapeSparse:x.filter((w,I)=>m.finalShapeGatherIndices[I]!==IN),finalShape:x,isIdentity:f,sliceDim0:d,isSimpleSlice:h,begin:m.begin,end:m.end,strides:m.strides}}function SY(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 B2="4.7.0";var Nh=class{static sgd(t){return new Sl(t)}static momentum(t,e,n=!1){return new Pc(t,e,n)}static rmsprop(t,e=.9,n=0,o=null,s=!1){return new Mc(t,e,n,o,s)}static adam(t=.001,e=.9,n=.999,o=null){return new Fc(t,e,n,o)}static adadelta(t=.001,e=.95,n=null){return new $c(t,e,n)}static adamax(t=.002,e=.9,n=.999,o=null,s=0){return new Oc(t,e,n,o,s)}static adagrad(t,e=.1){return new Rc(t,e)}};var zc=Nh;var NY=(()=>typeof requestAnimationFrame!="undefined"?requestAnimationFrame:typeof setImmediate!="undefined"?setImmediate:r=>r())();function kh(){return new Promise(r=>NY(()=>r()))}var S={};Kt(S,{ERF_A1:()=>BY,ERF_A2:()=>VY,ERF_A3:()=>GY,ERF_A4:()=>WY,ERF_A5:()=>UY,ERF_P:()=>zY,PARALLELIZE_THRESHOLD:()=>$y,RowPartitionType:()=>ga,SELU_SCALE:()=>SN,SELU_SCALEALPHA:()=>vN,applyActivation:()=>Ac,assertAndGetBroadcastShape:()=>Mt,assertAxesAreInnerMostDims:()=>l6,assertParamsConsistent:()=>kY,assignToTypedArray:()=>YY,axesAreInnerMostDims:()=>Z0,calculateShapes:()=>kA,checkEinsumDimSizes:()=>r7,checkPadOnDimRoundingMode:()=>Se,combineLocations:()=>$E,combineRaggedTensorToTensorShapes:()=>_Y,complexWithEvenIndex:()=>KY,complexWithOddIndex:()=>jY,computeConv2DInfo:()=>wc,computeConv3DInfo:()=>CE,computeDefaultPad:()=>Y0,computeDilation2DInfo:()=>aj,computeOptimalWindowSize:()=>$Y,computeOutAndReduceShapes:()=>J0,computeOutShape:()=>TY,computePool2DInfo:()=>X0,computePool3DInfo:()=>lj,convertConv2DDataFormat:()=>vE,decodeEinsumEquation:()=>t7,eitherStridesOrDilationsAreOne:()=>Rr,expandShapeToKeepDim:()=>ko,exponent:()=>JY,exponents:()=>ZY,fromStringArrayToUint8:()=>v7,fromUint8ToStringArray:()=>C7,getAxesPermutation:()=>Q0,getBroadcastDims:()=>EE,getComplexWithIndex:()=>XY,getEinsumComputePath:()=>n7,getEinsumPermutation:()=>e7,getFusedBiasGradient:()=>Ec,getFusedDyActivation:()=>_c,getImageCenter:()=>RY,getInnerMostAxes:()=>u6,getPermuted:()=>OY,getRaggedRank:()=>AY,getReductionAxes:()=>ye,getReshaped:()=>FY,getReshapedPermuted:()=>PY,getRowPartitionTypesHelper:()=>EY,getSliceBeginCoords:()=>MY,getSliceSize:()=>LY,getSparseFillEmptyRowsIndicesDenseShapeMismatch:()=>a7,getSparseFillEmptyRowsNegativeIndexErrorMessage:()=>l7,getSparseFillEmptyRowsOutOfRangeIndexErrorMessage:()=>u7,getSparseReshapeEmptyTensorZeroOutputDimErrorMessage:()=>m7,getSparseReshapeInputOutputMismatchErrorMessage:()=>d7,getSparseReshapeInputOutputMultipleErrorMessage:()=>f7,getSparseReshapeMultipleNegativeOneOutputDimErrorMessage:()=>c7,getSparseReshapeNegativeOutputDimErrorMessage:()=>p7,getSparseSegmentReductionIndicesOutOfRangeErrorMessage:()=>y7,getSparseSegmentReductionNegativeSegmentIdsErrorMessage:()=>h7,getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage:()=>g7,getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage:()=>x7,getUndoAxesPermutation:()=>xh,isIdentityPermutation:()=>o7,log:()=>rK,mergeRealAndImagArrays:()=>HY,prepareAndValidate:()=>A2,prepareSplitSize:()=>i7,segment_util:()=>kN,shouldFuse:()=>Dc,slice_util:()=>ze,splitRealAndImagArrays:()=>qY,stridesOrDilationsArePositive:()=>sa,tupleValuesAreOne:()=>co,upcastType:()=>ur,validateDefaultValueShape:()=>DY,validateInput:()=>Em,validateUpdateShape:()=>uN,warn:()=>ta});function kY(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 TY(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 EY(r){let t={FIRST_DIM_SIZE:ga.FIRST_DIM_SIZE,VALUE_ROWIDS:ga.VALUE_ROWIDS,ROW_LENGTHS:ga.ROW_LENGTHS,ROW_SPLITS:ga.ROW_SPLITS,ROW_LIMITS:ga.ROW_LIMITS,ROW_STARTS:ga.ROW_STARTS},e=[];for(let n of r)if(n in t)e.push(t[n]);else break;return e}function AY(r){return r.length===0?0:r[0]===ga.FIRST_DIM_SIZE?r.length-1:r.length}function DY(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 $y=30;function $Y(r){return r<=$y?r:Mp(r,Math.floor(Math.sqrt(r)))}function RY(r,t,e){let n=e*(typeof r=="number"?r:r[0]),o=t*(typeof r=="number"?r:r[1]);return[n,o]}function FY(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 PY(r,t,e,n=!0){let o=[];n?o.push(r[0]/e):o.push(r[0]*e);for(let s=1;s/g,V2=",",G2="...";function t7(r,t){r=r.replace(/\s/g,"");let e=(r.length-r.replace(QY,"").length)/NN.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 ("${NN}").`);let[n,o]=r.split(NN);_(n.indexOf(G2)===-1,()=>`The ellipsis notation ("${G2}") is not supported yet.`);let s=n.split(V2),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 r7(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 n7(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 s7(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 a7(r){return`Received SparseTensor with denseShape[0] = 0 but + indices.shape[0] = ${r}`}function l7(r,t){return`indices(${r}, 0) is invalid: ${t} < 0`}function u7(r,t,e){return`indices(${r}, 0) is invalid: ${t} >= ${e}`}function c7(r,t){return`only one output dimension may be -1, not both ${r} and ${t}`}function p7(r,t){return`size ${r} must be non-negative, not ${t}`}function m7(){return"reshape cannot infer the missing input size for an empty tensor unless all specified input sizes are non-zero"}function f7(r,t){let e=te(r),n=te(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 d7(r,t){let e=te(r),n=te(t);return`Input to reshape is a tensor with ${e} dense values, but the requested shape has ${n}. inputShape=${r} outputShape=${t}`}function h7(){return"segment ids must be >= 0"}function g7(){return"segment ids are not increasing"}function x7(r,t){return`Segment id ${r} out of range [0, ${t}), possibly because segmentIds input is not sorted.`}function y7(r,t,e){return`Bad: indices[${r}] == ${t} out of range [0, ${e})`}var kN={};Kt(kN,{collectGatherOpShapeInfo:()=>I7,computeOutShape:()=>w7,segOpComputeOptimalWindowSize:()=>b7});function b7(r,t){let e=!1,n;for(r<=$y?(n=r,e=!0):n=Mp(r,Math.floor(Math.sqrt(r)));!e;)n>t||n===r?e=!0:n=Mp(r,n+1);return n}function w7(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(eem(t))}catch(t){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${t}`)}}function v7(r){return r.map(t=>wu(t))}var jr={};Kt(jr,{nonMaxSuppressionV3Impl:()=>Cy,nonMaxSuppressionV4Impl:()=>vy,nonMaxSuppressionV5Impl:()=>Sy,whereImpl:()=>gy});g2();var Ry={kernelName:$i,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(r,To(Q(e,"float32"),-1))}}};var W2={kernelName:qo,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Wt(Q(e,"float32")),o=Ne(lt(ft(1),n));return Ut(ct(r,o))}}}};var U2={kernelName:Ko,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Ne(lt(Wt(Q(e,"float32")),1));return ct(r,n)}}}};var H2={kernelName:ao,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=Mt(e.shape,n.shape);return{a:()=>{let a=r,u=ye(e.shape,o);return u.length>0&&(a=pt(a,u)),R(a,e.shape)},b:()=>{let a=r,u=ye(n.shape,o);return u.length>0&&(a=pt(a,u)),R(a,n.shape)}}}};var q2={kernelName:jo,saveAllInputs:!0,gradFunc:(r,t)=>{let e={};return t.forEach((n,o)=>{e[o]=()=>r.clone()}),e}};var K2={kernelName:Ri,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>vt(e)}}};var j2={kernelName:Fi,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>vt(e)}}};var X2={kernelName:Xo,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,Ne(lt(ft(1),Wt(Q(e,"float32")))))}}};var Y2={kernelName:Yo,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Ne(Y(ft(1),Wt(Q(e,"float32"))));return ct(r,n)}}}};var Z2={kernelName:Qo,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=Mt(e.shape,n.shape);return{a:()=>{let a=Y(Wt(e),Wt(n)),u=$(r,ct(n,a)),l=ye(e.shape,o);return l.length>0&&(u=pt(u,l)),R(u,e.shape)},b:()=>{let a=Y(Wt(e),Wt(n)),u=Ut($(r,ct(e,a))),l=ye(n.shape,o);return l.length>0&&(u=pt(u,l)),R(u,n.shape)}}}};var J2={kernelName:Zo,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,Y(Wt(Q(e,"float32")),1))}}};var Q2={kernelName:Jo,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,lt(ft(1),Wt(Q(e,"float32"))))}}};function S7(r,t,e,n,o,s){let i=C(r,"dy","avgPool3dGrad"),a=C(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}.`),Se("avgPool3dGrad",o,s);let p={dy:u,input:l},m={filterSize:e,strides:n,pad:o,dimRoundingMode:s},f=T.runKernel(Jl,p,m);return c?R(f,[f.shape[1],f.shape[2],f.shape[3],f.shape[4]]):f}var tD=k({avgPool3dGrad_:S7});var eD={kernelName:Oi,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{filterSize:o,strides:s,pad:i,dimRoundingMode:a}=e;return{x:()=>tD(r,n,o,s,i,a)}}};function N7(r,t,e,n,o){let s=C(r,"dy","avgPoolGrad"),i=C(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=T.runKernel(Zl,c,p);return l?R(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var rD=k({avgPoolGrad_:N7});var nD={kernelName:ts,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{filterSize:o,strides:s,pad:i}=e;return{x:()=>rD(r,n,o,s,i)}}};var oD={kernelName:es,inputsToSave:["a","b"],gradFunc:(r,t,e)=>{let[n,o]=t,{transposeA:s,transposeB:i}=e;return!s&&!i?{a:()=>Bt(r,o,!1,!0),b:()=>Bt(n,r,!0,!1)}:!s&&i?{a:()=>Bt(r,o,!1,!1),b:()=>Bt(r,n,!0,!1)}:s&&!i?{a:()=>Bt(o,r,!1,!0),b:()=>Bt(n,r,!1,!1)}:{a:()=>Bt(o,r,!0,!0),b:()=>Bt(r,n,!0,!0)}}};var sD={kernelName:Pi,gradFunc:(r,t,e)=>{let{blockShape:n,crops:o}=e;return{x:()=>$u(r,n,o)}}};var iD={kernelName:C_,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:()=>pt(r,a,!0)}}};var aD={kernelName:xo,gradFunc:r=>({x:()=>r.clone()})};var lD={kernelName:rs,gradFunc:r=>({x:()=>vt(r)})};var uD={kernelName:yo,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{clipValueMin:o,clipValueMax:s}=e;return{x:()=>be(Pr(mn(n,o),Un(n,s)),r,vt(r))}}};var cD={kernelName:tu,inputsToSave:["x"],gradFunc:Ry.gradFunc};var pD={kernelName:Mi,saveAllInputs:!0,gradFunc:(r,t,e)=>{let n=t.map(u=>u.shape),{axis:o}=e,s=fr(o,t[0].shape)[0],i=n.map(u=>u[s]);return gr(r,i,s).map(u=>()=>u)}};var mD={kernelName:ns,inputsToSave:["x","filter"],gradFunc:(r,t,e)=>{let[n,o]=t,{dilations:s,strides:i,pad:a,dataFormat:u}=e;return _(co(s),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`),{x:()=>pm(n.shape,r,o,i,a,u),filter:()=>$m(n,r,o.shape,i,a,u)}}};var fD={kernelName:os,inputsToSave:["dy","filter"],gradFunc:(r,t,e)=>{let[n,o]=t,{strides:s,pad:i,dataFormat:a,dimRoundingMode:u}=e;return{dy:()=>Tn(r,o,s,i,a,1,u),filter:()=>$m(r,n,o.shape,s,i,a,u)}}};function k7(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 T.runKernel(Ma,a,u)}var dD=k({conv3DBackpropFilter_:k7});var hD={kernelName:ss,inputsToSave:["x","filter"],gradFunc:(r,t,e)=>{let{dilations:n,strides:o,pad:s}=e;_(co(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:()=>Fx(i.shape,r,a,o,s),filter:()=>dD(i,r,a.shape,o,s)}}};var gD={kernelName:is,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(Ut(vm(Q(e,"float32"))),r)}}};var xD={kernelName:as,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(Sm(Q(e,"float32")),r)}}};var yD={kernelName:ls,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{axis:o,exclusive:s,reverse:i}=e;return{x:()=>{let a=Q0([o],n.rank),u=dm(r,o,s,!i);return a!=null&&(u=Vt(u,a)),u}}}};var bD={kernelName:us,inputsToSave:["x","filter"],gradFunc:(r,t,e)=>{let{dilations:n,strides:o,pad:s,dimRoundingMode:i}=e,a=n==null?[1,1]:n;_(co(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]}.`),_(Rr(o,a),()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${o} and dilations '${a}'.`),Se("depthwiseConv2d",s,i),{x:()=>by(u.shape,r,l,o,s,a,i),filter:()=>yy(u,r,l.shape,o,s,a,i)}}};var wD={kernelName:cs,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:()=>T.runKernel(nu,s,e),filter:()=>T.runKernel(ou,i,e)}}};var ID={kernelName:ms,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t,n={dy:r,y:e};return{x:()=>T.runKernel(Ga,n)}}};var CD={kernelName:fs,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t,n=$(ir(Ut(Wt(e))),2/Math.sqrt(Math.PI));return{x:()=>$(r,n)}}};var vD={kernelName:ds,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(r,e)}}};var SD={kernelName:Li,inputsToSave:["input"],gradFunc:(r,t)=>{let[e]=t;return{input:()=>R(r,e.shape)}}};var ND={kernelName:hs,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(r,ir(e))}}};var kD={kernelName:gs,gradFunc:r=>({x:()=>vt(r)})};var TD={kernelName:xs,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=Mt(e.shape,n.shape);return{a:()=>{let a=ct(r,Q(n,"float32")),u=ye(e.shape,o);return u.length>0?R(pt(a,u),e.shape):a},b:()=>{let a=$(r,Q(e,"float32")),u=ye(n.shape,o);u.length>0&&(a=R(pt(a,u),n.shape));let l=Wt(n);return Ut(ct(a,Q(l,"float32")))}}}};var _D={kernelName:ys,inputsToSave:["x","mean","variance","scale"],gradFunc:(r,t,e)=>{let{varianceEpsilon:n}=e,[o,s,i,a]=t,u=a==null?ft(1):a,l=ye(s.shape,o.shape),c=[];if(s.rank===1){for(let I=0;Is.rank===1?R($($(r,Or(R(f,[1,1,1,s.shape[0]]),c)),u),o.shape):R($($(r,f),u),o.shape),mean:()=>{let I=$($(f,ft(-1)),m);return s.rank===1&&(I=pt(I,l)),R(I,s.shape)},variance:()=>{let I=$($(d,p),m);return s.rank===1&&(I=pt(I,l)),R(I,s.shape)},scale:()=>{let I=$(p,f),N=$(r,I);return s.rank===1&&(N=pt(N,l)),R(N,s.shape)},offset:()=>{let I=r;return s.rank===1&&(I=pt(I,l)),R(I,s.shape)}}}};var DD={kernelName:zi,inputsToSave:["x","indices"],gradFunc:(r,t,e)=>{let[n,o]=t,{axis:s}=e,i=fr(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=ED(0,p),h=ED(p+1,p+1+f),g=AD([c,[l],m]),x=R(r,g),b=R(o,[l]),w=AD([[p],d,h]),I=Vt(x,w),N=Dm(I,b,n.shape[i]),E=xh(w);return N=Vt(N,E),N},indices:()=>o}}};function ED(r,t){let e=[];for(let n=r;n{let[e,n]=t;return{a:()=>vt(e),b:()=>vt(n)}}};var RD={kernelName:bo,gradFunc:r=>({x:()=>Q(r,"float32")})};var FD={kernelName:ws,gradFunc:r=>({x:()=>vt(r)})};var OD={kernelName:Is,gradFunc:r=>({x:()=>vt(r)})};var PD={kernelName:Cs,gradFunc:r=>({x:()=>vt(r)})};var MD={kernelName:vs,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{alpha:o}=e,s=Fe(n,0);return{x:()=>be(s,r,$(r,o))}}};var LD={kernelName:Ns,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,Y(e,1))}}};var zD={kernelName:Ss,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,Q(e,"float32"))}}};var BD={kernelName:S_,inputsToSave:[],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n]=t,{axis:o}=e;return{logits:()=>{let i=ir(n);return lt(r,$(pt(r,o,!0),i))}}}};function T7(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 T.runKernel(Qa,a,u)}var VD=k({localResponseNormalizationBackprop_:T7});var GD={kernelName:ks,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{depthRadius:s,bias:i,alpha:a,beta:u}=e;return{x:()=>VD(n,o,r,s,i,a,u)}}};function Fy(r,t,e,n){return t.rank$(r,Q(Fr(e,t),r.dtype))}}var TN={kernelName:Ts,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let n=e,{reductionIndices:o}=n,s=t[0],i=t[1],a=fr(o,s.shape),u=Fy(r,i,s,a);return{x:()=>u.x()}}};var WD={kernelName:_s,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t;return{a:()=>$(r,Q(mn(e,n),"float32")),b:()=>$(r,Q(Il(e,n),"float32"))}}};function _7(r,t,e,n,o,s,i){let a=C(r,"dy","maxPool3dGrad"),u=C(t,"input","maxPool3dGrad"),l=C(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}.`),Se("maxPool3dGrad",s,i);let d={dy:c,input:p,output:m},h={filterSize:n,strides:o,pad:s,dimRoundingMode:i},g=T.runKernel(au,d,h);return f?R(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}var UD=k({maxPool3dGrad_:_7});var HD={kernelName:Bi,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u}=e;return{x:()=>UD(r,n,o,s,i,a,u)}}};function E7(r,t,e,n,o,s,i){let a=C(r,"dy","maxPoolGrad"),u=C(t,"input","maxPoolGrad"),l=C(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}.`),Se("maxPoolGrad",s,i);let c={dy:a,input:u,output:l},p={filterSize:n,strides:o,pad:s,dimRoundingMode:i};return T.runKernel(iu,c,p)}var qD=k({maxPoolGrad_:E7});var KD={kernelName:Es,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{filterSize:s,strides:i,pad:a}=e;return{x:()=>qD(r,n,o,s,i,a)}}};var jD={kernelName:As,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{axis:o}=e,s=fr(o,n.shape),a=J0(n.shape,s)[1],u=te(a);return{x:()=>{let c=n.shape.slice();s.forEach(f=>{c[f]=1});let p=R(r,c);return ct($(p,dr(n.shape,"float32")),u)}}}};var XD={kernelName:Ds,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let n=e,{axis:o}=n,[s,i]=t,a=fr(o,s.shape),u=Fy(r,i,s,a);return{x:()=>u.x()}}};var YD={kernelName:$s,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t;return{a:()=>$(r,Q(Un(e,n),"float32")),b:()=>$(r,Q(Fe(e,n),"float32"))}}};var ZD={kernelName:Rs,inputsToSave:["x"],gradFunc:(r,t,e)=>{let n=t[0],{paddings:o}=e,s=o.map(i=>i[0]);return{x:()=>Pt(r,s,n.shape)}}};var JD={kernelName:Fs,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=Mt(e.shape,n.shape);return{a:()=>{let a=ye(e.shape,o);return a.length>0?R(pt(r,a),e.shape):r},b:()=>{let a=$(r,Ut(pa(ct(e,n)))),u=ye(n.shape,o);return u.length>0?R(pt(a,u),n.shape):a}}}};var QD={kernelName:Os,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=Mt(e.shape,n.shape);return{a:()=>{let a=$(r,Q(n,"float32")),u=ye(e.shape,o);return u.length>0?R(pt(a,u),e.shape):a},b:()=>{let a=$(r,Q(e,"float32")),u=ye(n.shape,o);return u.length>0?R(pt(a,u),n.shape):a}}}};var t$={kernelName:Vi,gradFunc:r=>({x:()=>Ut(r)})};var e$={kernelName:Ps,inputsToSave:["indices"],gradFunc:(r,t)=>{let e=t[0];return{indices:()=>Te(e.shape,"float32")}}};var r$={kernelName:Gi,gradFunc:r=>({x:()=>vt(r)})};var n$={kernelName:Wi,saveAllInputs:!0,gradFunc:(r,t,e)=>{let{axis:n}=e;return xr(r,n).map(s=>()=>s)}};var _N={kernelName:Ms,inputsToSave:["x"],gradFunc:(r,t,e)=>{let n=t[0],{paddings:o}=e,s=o.map(i=>i[0]);return{x:()=>Pt(r,s,n.shape)}}};var o$={kernelName:Ls,inputsToSave:["a","b"],outputsToSave:[!0],gradFunc:(r,t)=>{let[e,n,o]=t,s=e,i=n,a=Mt(s.shape,i.shape);return{a:()=>{let c=Q(i,"float32"),p=$(r,$(c,pn(s,lt(c,ft(1))))),m=ye(s.shape,a);return m.length>0&&(p=pt(p,m)),R(p,s.shape)},b:()=>{let c=Fe(s,0),p=be(c,kr(s),vt(s)),m=$(r,$(o,p)),f=ye(i.shape,a);return f.length>0&&(m=pt(m,f)),R(m,i.shape)}}}};var s$={kernelName:zs,inputsToSave:["x","alpha"],gradFunc:(r,t)=>{let[e,n]=t,o=Fe(e,0);return{x:()=>be(o,r,$(r,n)),alpha:()=>{let s=be(o,vt(r),$(r,e)),i=ye(n.shape,r.shape);return i.length>0&&(s=pt(s,i)),R(s,n.shape)}}}};function A7(r,t,e){let n=r.shape.slice();n[e]=1;let o=R(t,n),s=Ic(r,e,!0,!1),i=Ic(r,e,!0,!0),a=$(s,i);return $(o,a)}function D7(r,t,e){let n=r.shape.length,o=n-e.length,s=S.getAxesPermutation(e,n),i=r;s!=null&&(i=Vt(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=A7(c,t,o);if(p=p.reshape(i.shape),s!=null){let m=S.getUndoAxesPermutation(s);p=Vt(p,m)}return p}var i$={kernelName:Bs,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:()=>D7(n,r,s)}}};var a$={kernelName:ps,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=Mt(e.shape,n.shape);return{a:()=>{let a=ct(r,Q(n,"float32")),u=ye(e.shape,o);return u.length>0?R(pt(a,u),e.shape):a},b:()=>{let a=$(r,Q(e,"float32")),u=ye(n.shape,o);u.length>0&&(a=R(pt(a,u),n.shape));let l=Wt(n);return Ut(ct(a,Q(l,"float32")))}}}};var l$={kernelName:Vs,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,Ut(Wt(e)))}}};var u$={kernelName:Hs,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t,n=$(Un(e,6),To(e));return{x:()=>$(r,Q(n,"float32"))}}};var c$={kernelName:Gs,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(r,Q(To(e),"float32"))}}};var p$={kernelName:Ui,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>R(r,e.shape)}}};var m$={kernelName:Us,inputsToSave:["images"],gradFunc:(r,t,e)=>{let[n]=t,o={dy:r,images:n};return{images:()=>T.runKernel(il,o,e)}}};var f$={kernelName:Ws,inputsToSave:["images"],gradFunc:(r,t,e)=>{let[n]=t,o={dy:r,images:n};return{images:()=>T.runKernel(sl,o,e)}}};var d$={kernelName:qs,gradFunc:(r,t,e)=>{let{dims:n}=e,o=fr(n,r.shape);return{x:()=>hr(r,o)}}};var h$={kernelName:Ks,gradFunc:r=>({x:()=>vt(r)})};var g$={kernelName:js,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>Ut(ct(r,$(pn(e,1.5),2)))}}};var x$={kernelName:Hi,inputsToSave:["condition"],gradFunc:(r,t)=>{let[e]=t;return{condition:()=>Q(vt(e),"float32"),t:()=>$(r,Q(e,r.dtype)),e:()=>$(r,Q(Au(e),r.dtype))}}};var y$={kernelName:Xs,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Fe(e,ft(0)),o=ft(vN),s=ft(SN),i=$(r,s),a=$($(r,o),ir(Q(e,"float32")));return be(n,i,a)}}}};var b$={kernelName:Qs,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(r,$(e,lt(ft(1),e)))}}};var w$={kernelName:Js,gradFunc:r=>({x:()=>vt(r)})};var I$={kernelName:Ys,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(ku(Q(e,"float32")),r)}}};var C$={kernelName:Zs,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(fm(Q(e,"float32")),r)}}};var v$={kernelName:qi,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{begin:o,size:s}=e,i=n.shape,[a,u]=CN(n,o,s),l=[];for(let c=0;cdn(r,l)}}};var S$={kernelName:ni,outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n]=t,{dim:o}=e,s=!0,i=$(r,n);return{logits:()=>lt(i,$(pt(i,[o],s),n))}}};var N$={kernelName:ti,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(r,en(e))}}};var EN={kernelName:Ki,gradFunc:(r,t,e)=>{let{blockShape:n,paddings:o}=e;return{x:()=>Nu(r,n,o)}}};var AN={kernelName:ji,gradFunc:(r,t,e)=>{let{axis:n}=e;return{x:()=>ie(r,n)}}};var k$={kernelName:ei,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,$(Ne(Q(e,"float32")),2))}}};var T$={kernelName:fu,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(r,$(Q(e,"float32"),2))}}};var _$={kernelName:oi,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=ft(2);return{a:()=>$(r,$(o,lt(e,n))),b:()=>$(r,$(o,lt(n,e)))}}};var E$={kernelName:wo,gradFunc:r=>({x:()=>vt(r)})};var A$={kernelName:si,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=Mt(e.shape,n.shape);return{a:()=>{let a=r,u=ye(e.shape,o);return u.length>0&&(a=pt(a,u)),R(a,e.shape)},b:()=>{let a=r,u=ye(n.shape,o);return u.length>0&&(a=pt(a,u)),R(Ut(a),n.shape)}}}};var D$={kernelName:ri,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,o=n.shape.slice(),{axis:s}=e;fr(s,n.shape).forEach(l=>{o[l]=1});let a=R(r,o),u=$(a,dr(n.shape,"float32"));return{x:()=>u}}};var $$={kernelName:ii,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,Wt(ku(e)))}}};var R$={kernelName:ai,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(lt(ft(1),Wt(e)),r)}}};var F$={kernelName:lo,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{reps:o}=e;return{x:()=>{let i=vt(n);if(n.rank===1)for(let a=0;a{let n=e,{perm:o}=n,s=xh(o);return{x:()=>Vt(r,s)}}};var P$={kernelName:Xi,gradFunc:(r,t,e)=>{let n=e,{axis:o}=n;return{value:()=>qe(r,o)}}};var M$={kernelName:yu,inputsToSave:["segmentIds"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$7(r,e)}}};function $7(r,t){let e=_n(t,vt(t)),n=ma(r,e),o=mn(t,ft(0,"int32")),s=n.rank-o.rank;for(let a=0;a({x:()=>vt(r)})};var R7=[Ry,W2,U2,H2,q2,K2,j2,X2,Y2,Z2,J2,Q2,eD,nD,oD,sD,iD,aD,lD,uD,cD,pD,fD,mD,hD,gD,xD,yD,bD,wD,a$,ID,CD,vD,SD,ND,TD,kD,_D,DD,$D,RD,FD,OD,PD,MD,LD,zD,BD,GD,TN,TN,WD,HD,KD,jD,XD,YD,ZD,JD,QD,t$,e$,r$,n$,_N,_N,o$,s$,i$,l$,u$,c$,p$,m$,f$,d$,h$,g$,x$,y$,b$,w$,I$,C$,v$,S$,N$,EN,EN,AN,AN,k$,_$,T$,E$,A$,D$,$$,R$,F$,O$,P$,M$,L$];for(let r of R7)k_(r);O().prototype.abs=function(){return this.throwIfDisposed(),Ee(this)};O().prototype.acos=function(){return this.throwIfDisposed(),hx(this)};O().prototype.acosh=function(){return this.throwIfDisposed(),gx(this)};O().prototype.add=function(r){return this.throwIfDisposed(),Y(this,r)};O().prototype.all=function(r,t){return this.throwIfDisposed(),lm(this,r,t)};O().prototype.any=function(r,t){return this.throwIfDisposed(),bc(this,r,t)};O().prototype.argMax=function(r){return this.throwIfDisposed(),oa(this,r)};O().prototype.argMin=function(r){return this.throwIfDisposed(),xx(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(),Q(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(),yx(this)};O().prototype.asinh=function(){return this.throwIfDisposed(),bx(this)};O().prototype.atan=function(){return this.throwIfDisposed(),wx(this)};O().prototype.atan2=function(r){return this.throwIfDisposed(),Ix(this,r)};O().prototype.atanh=function(){return this.throwIfDisposed(),Cx(this)};O().prototype.avgPool=function(r,t,e,n){return this.throwIfDisposed(),Su(this,r,t,e,n)};O().prototype.batchToSpaceND=function(r,t){return this.throwIfDisposed(),Nu(this,r,t)};O().prototype.batchNorm=function(r,t,e,n,o){return this.throwIfDisposed(),aa(this,r,t,e,n,o)};O().prototype.broadcastTo=function(r){return this.throwIfDisposed(),la(this,r)};O().prototype.cast=function(r){return this.throwIfDisposed(),Q(this,r)};O().prototype.ceil=function(){return this.throwIfDisposed(),_x(this)};O().prototype.clipByValue=function(r,t){return this.throwIfDisposed(),Sr(this,r,t)};O().prototype.concat=function(r,t){return this.throwIfDisposed(),r instanceof Ot&&(r=[r]),ie([this,...r],t)};O().prototype.conv1d=function(r,t,e,n,o,s){return this.throwIfDisposed(),cm(this,r,t,e,n,o,s)};O().prototype.conv2dTranspose=function(r,t,e,n,o){return this.throwIfDisposed(),mm(this,r,t,e,n,o)};O().prototype.conv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),Tn(this,r,t,e,n,o,s)};O().prototype.cos=function(){return this.throwIfDisposed(),ku(this)};O().prototype.cosh=function(){return this.throwIfDisposed(),fm(this)};O().prototype.cumprod=function(r,t,e){return this.throwIfDisposed(),Ic(this,r,t,e)};O().prototype.cumsum=function(r,t,e){return this.throwIfDisposed(),dm(this,r,t,e)};O().prototype.depthToSpace=function(r,t){return this.throwIfDisposed(),Px(this,r,t)};O().prototype.depthwiseConv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),ua(this,r,t,e,n,o,s)};O().prototype.dilation2d=function(r,t,e,n,o){return this.throwIfDisposed(),Mx(this,r,t,e,n,o)};O().prototype.divNoNan=function(r){return this.throwIfDisposed(),Lx(this,r)};O().prototype.div=function(r){return this.throwIfDisposed(),ct(this,r)};O().prototype.dot=function(r){return this.throwIfDisposed(),zx(this,r)};O().prototype.elu=function(){return this.throwIfDisposed(),ca(this)};O().prototype.equal=function(r){return this.throwIfDisposed(),Fr(this,r)};O().prototype.erf=function(){return this.throwIfDisposed(),Bx(this)};O().prototype.euclideanNorm=function(r,t){return this.throwIfDisposed(),Vx(this,r,t)};O().prototype.exp=function(){return this.throwIfDisposed(),ir(this)};O().prototype.expandDims=function(r){return this.throwIfDisposed(),ar(this,r)};O().prototype.expm1=function(){return this.throwIfDisposed(),Gx(this)};O().prototype.fft=function(){return this.throwIfDisposed(),Ou(this)};O().prototype.flatten=function(){return this.throwIfDisposed(),R(this,[this.size])};O().prototype.floor=function(){return this.throwIfDisposed(),pa(this)};O().prototype.floorDiv=function(r){return this.throwIfDisposed(),am(this,r)};O().prototype.gather=function(r,t,e){return this.throwIfDisposed(),ma(this,r,t,e)};O().prototype.greaterEqual=function(r){return this.throwIfDisposed(),mn(this,r)};O().prototype.greater=function(r){return this.throwIfDisposed(),Fe(this,r)};O().prototype.ifft=function(){return this.throwIfDisposed(),vl(this)};O().prototype.irfft=function(){return this.throwIfDisposed(),Tm(this)};O().prototype.isFinite=function(){return this.throwIfDisposed(),Wx(this)};O().prototype.isInf=function(){return this.throwIfDisposed(),Ux(this)};O().prototype.isNaN=function(){return this.throwIfDisposed(),Hx(this)};O().prototype.leakyRelu=function(r){return this.throwIfDisposed(),_u(this,r)};O().prototype.lessEqual=function(r){return this.throwIfDisposed(),Un(this,r)};O().prototype.less=function(r){return this.throwIfDisposed(),Il(this,r)};O().prototype.localResponseNormalization=function(r,t,e,n){return this.throwIfDisposed(),qx(this,r,t,e,n)};O().prototype.logSigmoid=function(){return this.throwIfDisposed(),Xx(this)};O().prototype.logSoftmax=function(r){return this.throwIfDisposed(),hm(this,r)};O().prototype.logSumExp=function(r,t){return this.throwIfDisposed(),gm(this,r,t)};O().prototype.log=function(){return this.throwIfDisposed(),kr(this)};O().prototype.log1p=function(){return this.throwIfDisposed(),Eu(this)};O().prototype.logicalAnd=function(r){return this.throwIfDisposed(),Pr(this,r)};O().prototype.logicalNot=function(){return this.throwIfDisposed(),Au(this)};O().prototype.logicalOr=function(r){return this.throwIfDisposed(),xm(this,r)};O().prototype.logicalXor=function(r){return this.throwIfDisposed(),Yx(this,r)};O().prototype.matMul=function(r,t,e){return this.throwIfDisposed(),Bt(this,r,t,e)};O().prototype.maxPool=function(r,t,e,n){return this.throwIfDisposed(),Du(this,r,t,e,n)};O().prototype.max=function(r,t){return this.throwIfDisposed(),Nr(this,r,t)};O().prototype.maximum=function(r){return this.throwIfDisposed(),_n(this,r)};O().prototype.mean=function(r,t){return this.throwIfDisposed(),ke(this,r,t)};O().prototype.min=function(r,t){return this.throwIfDisposed(),bl(this,r,t)};O().prototype.minimum=function(r){return this.throwIfDisposed(),mo(this,r)};O().prototype.mirrorPad=function(r,t){return this.throwIfDisposed(),Qx(this,r,t)};O().prototype.mod=function(r){return this.throwIfDisposed(),ty(this,r)};O().prototype.mul=function(r){return this.throwIfDisposed(),$(this,r)};O().prototype.neg=function(){return this.throwIfDisposed(),Ut(this)};O().prototype.norm=function(r,t,e){return this.throwIfDisposed(),wl(this,r,t,e)};O().prototype.notEqual=function(r){return this.throwIfDisposed(),mi(this,r)};O().prototype.oneHot=function(r,t=1,e=0){return this.throwIfDisposed(),fa(this,r,t,e)};O().prototype.onesLike=function(){return this.throwIfDisposed(),Ir(this)};O().prototype.pad=function(r,t){return this.throwIfDisposed(),dn(this,r,t)};O().prototype.pool=function(r,t,e,n,o,s){return this.throwIfDisposed(),ey(this,r,t,e,n,o,s)};O().prototype.pow=function(r){return this.throwIfDisposed(),pn(this,r)};O().prototype.prelu=function(r){return this.throwIfDisposed(),Ru(this,r)};O().prototype.prod=function(r,t){return this.throwIfDisposed(),ry(this,r,t)};O().prototype.reciprocal=function(){return this.throwIfDisposed(),ly(this)};O().prototype.relu=function(){return this.throwIfDisposed(),Mr(this)};O().prototype.relu6=function(){return this.throwIfDisposed(),ym(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(),Ny(this,r,t,e)};O().prototype.resizeNearestNeighbor=function(r,t,e){return this.throwIfDisposed(),ky(this,r,t,e)};O().prototype.reverse=function(r){return this.throwIfDisposed(),hr(this,r)};O().prototype.rfft=function(){return this.throwIfDisposed(),Pu(this)};O().prototype.round=function(){return this.throwIfDisposed(),bm(this)};O().prototype.rsqrt=function(){return this.throwIfDisposed(),wm(this)};O().prototype.selu=function(){return this.throwIfDisposed(),Im(this)};O().prototype.separableConv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),Cm(this,r,t,e,n,o,s)};O().prototype.sigmoid=function(){return this.throwIfDisposed(),en(this)};O().prototype.sign=function(){return this.throwIfDisposed(),uy(this)};O().prototype.sin=function(){return this.throwIfDisposed(),vm(this)};O().prototype.sinh=function(){return this.throwIfDisposed(),Sm(this)};O().prototype.slice=function(r,t){return this.throwIfDisposed(),Pt(this,r,t)};O().prototype.softmax=function(r){return this.throwIfDisposed(),Fu(this,r)};O().prototype.softplus=function(){return this.throwIfDisposed(),pi(this)};O().prototype.spaceToBatchND=function(r,t){return this.throwIfDisposed(),$u(this,r,t)};O().prototype.split=function(r,t){return this.throwIfDisposed(),gr(this,r,t)};O().prototype.sqrt=function(){return this.throwIfDisposed(),Ne(this)};O().prototype.square=function(){return this.throwIfDisposed(),Wt(this)};O().prototype.squaredDifference=function(r){return this.throwIfDisposed(),_m(this,r)};O().prototype.squeeze=function(r){return this.throwIfDisposed(),qn(this,r)};O().prototype.stack=function(r,t){this.throwIfDisposed();let e=r instanceof Ot?[this,r]:[this,...r];return qe(e,t)};O().prototype.step=function(r){return this.throwIfDisposed(),To(this,r)};O().prototype.stridedSlice=function(r,t,e,n,o,s,i,a){return this.throwIfDisposed(),cy(this,r,t,e,n,o,s,i,a)};O().prototype.sub=function(r){return this.throwIfDisposed(),lt(this,r)};O().prototype.sum=function(r,t){return this.throwIfDisposed(),pt(this,r,t)};O().prototype.tan=function(){return this.throwIfDisposed(),py(this)};O().prototype.tanh=function(){return this.throwIfDisposed(),ia(this)};O().prototype.tile=function(r){return this.throwIfDisposed(),Or(this,r)};O().prototype.toBool=function(){return this.throwIfDisposed(),Q(this,"bool")};O().prototype.toFloat=function(){return this.throwIfDisposed(),Q(this,"float32")};O().prototype.toInt=function(){return this.throwIfDisposed(),Q(this,"int32")};O().prototype.topk=function(r,t){return this.throwIfDisposed(),fy(this,r,t)};O().prototype.transpose=function(r){return this.throwIfDisposed(),Vt(this,r)};O().prototype.unique=function(r){return this.throwIfDisposed(),dy(this,r)};O().prototype.unsortedSegmentSum=function(r,t){return this.throwIfDisposed(),Dm(this,r,t)};O().prototype.unstack=function(r){return this.throwIfDisposed(),xr(this,r)};O().prototype.where=function(r,t){return this.throwIfDisposed(),be(r,this,t)};O().prototype.zerosLike=function(){return this.throwIfDisposed(),vt(this)};var En=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,En.prototype)}},Xr=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,Xr.prototype)}},z=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,z.prototype)}},kt=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,kt.prototype)}},Rm=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,Rm.prototype)}};var Th=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 Eo={};function Fm(r){if(r==null)return null;let t={};return t.className=r.getClassName(),t.config=r.getConfig(),t}function DN(r){if(!(r==null||typeof r!="object"))if(Array.isArray(r))r.forEach(t=>DN(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:DN(n))}}}function xa(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 Eo)i=Eo[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 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 To?[a,u]=To.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: +'className' and 'config' must set.`);let i=s.className,a,u;if(i in e?[a,u]=e[i]:i in Eo?[a,u]=Eo.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(To))l[f]=To[f];for(let f of Object.keys(e))l[f]=e[f];let c=s.config;c.customObjects=l;let p=Object.assign({},To);for(let f of Object.keys(e))To[f]=e[f];SN(s.config);let m=u(a,s.config,e,o);return To=Object.assign({},p),m}else{let l=Object.assign({},To);for(let p of Object.keys(e))To[p]=e[p];let c=new a(s.config);return To=Object.assign({},l),c}}}function uZ(r,t){return rt?1:0}function _h(r,t){return-1*uZ(r,t)}function Ao(r){if(r==null)return r;let t=[];for(let e of r)t.indexOf(e)===-1&&t.push(e);return t}function E$(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 da(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 Oy(r,t,e=0,n=1/0){return co(e>=0),co(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 ${A$(r)}.`)}function A$(r){return r===null?"null":Array.isArray(r)?"["+r.map(t=>A$(t)).join(",")+"]":typeof r=="string"?`"${r}"`:`${r}`}function D$(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 Fm.set(e,1),e}else return r}var mZ=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function z$(r){return!!r.match(mZ)}function B$(r){return r===parseInt(r.toString(),10)}function Do(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 gn(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=kl(r,1);return Gy(e,[1,t,1])})}function G$(r){let t=[Do(r.shape)];return R(r,t)}function W$(r){if(r.rank<=1)throw new z(`batchFlatten requires a minimum rank of 2. Got rank: ${r.rank}.`);let t=[r.shape[0],Do(r.shape,1)];return R(r,t)}function Nl(r,t,e){return B(()=>{switch(r.rank){case 1:return Sm(r,t,e);case 2:return wh(r,[t,0],[e,r.shape[1]]);case 3:return Nm(r,[t,0,0],[e,r.shape[1],r.shape[2]]);case 4:return Cc(r,[t,0,0,0],[e,r.shape[1],r.shape[2],r.shape[3]]);case 5:return Ot(r,[t,0,0,0,0],[e,r.shape[1],r.shape[2],r.shape[3],r.shape[4]]);case 6:return Ot(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 _N(r,t,e){return B(()=>{switch(r.rank){case 1:return Sm(r,t,e);case 2:return wh(r,[0,t],[r.shape[0],e]);case 3:return Nm(r,[0,0,t],[r.shape[0],r.shape[1],e]);case 4:return Cc(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 Ah(r,t,e,n){return B(()=>{switch(r.rank){case 1:return Sm(r,t,e);case 2:switch(n){case 1:return Nl(r,t,e);case 2:return _N(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 Nl(r,t,e);case 2:return Nm(r,[0,t,0],[r.shape[0],e,r.shape[2]]);case 3:return _N(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 Nl(r,t,e);case 2:return Cc(r,[0,t,0,0],[r.shape[0],e,r.shape[2],r.shape[3]]);case 3:return Cc(r,[0,0,t,0],[r.shape[0],r.shape[1],e,r.shape[3]]);case 4:return _N(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 Om(r,t=-1){let e;return t<0&&(e=r[0].rank,e!==0?t=e:t=0),t===r[0].rank&&(t=-1),se(r,t)}function AN(r,t){switch(r.rank){case 1:return _x([r,t]);case 2:return Ex([r,t],0);case 3:return Ax([r,t],0);case 4:return Dx([r,t],0);default:throw new z(`concatAlongFirstAxis() received an unsupported tensor rank: ${r.rank}`)}}function Gy(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 Pm(r,t=0,e=1,n,o){return Ic(r,t,e,n,o)}function $o(r,t,e,n){if(r.rank<2||t.rank<2)throw new Nt(`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 Nt(`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 Ru.matMul({a:r,b:t,transposeA:!1,transposeB:!1,bias:n?EN(r.rank,n,xn()):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(Vt(t,c),[u,-1]);let p=[...o,...l],m=!1,f=!1;return R(Ru.matMul({a:r,b:t,transposeA:m,transposeB:f,bias:n?EN(r.rank,n,xn()):null,activation:e}),p)}}function Wy(r,t,e){return B(()=>(Array.isArray(t)?t=Ke(t,"int32"):t=Q(t,"int32"),la(r,t,e)))}function Pc(r){return $(r,r)}function EN(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 yn(r,t,e){return B(()=>(e==null&&(e=xn()),Oe(e),Y(r,EN(r.rank,t,e))))}function U$(r,t=1){if(t!==1)throw new Nt(`Support for alpha values other than 1 (${t}) is not implemented yet.`);return ia(r)}function H$(r){return B(()=>ct(r,Y(Ee(r),1)))}function Uy(r,t,e,n){return B(()=>nN(r,t,e,n))}function q$(r){return B(()=>{let t=Y(.5,$(.2,r));return vr(t,0,1)})}function Ou(r,t,e=!1){return e?r():t()}var K$=["fanIn","fanOut","fanAvg"],j$=["normal","uniform","truncatedNormal"];function fZ(r){da(K$,"FanMode",r)}function dZ(r){da(j$,"Distribution",r)}var bn=class extends J.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}},Mm=class extends bn{apply(t,e){return Te(t,e)}};Mm.className="Zeros";J.registerClass(Mm);var Pu=class extends bn{apply(t,e){return dr(t,e)}};Pu.className="Ones";J.registerClass(Pu);var Lm=class extends bn{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(()=>$(ft(this.value),dr(t,e)))}getConfig(){return{value:this.value}}};Lm.className="Constant";J.registerClass(Lm);var zm=class extends bn{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 Wn(t,this.minval,this.maxval,e,this.seed)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}};zm.className="RandomUniform";J.registerClass(zm);var Bm=class extends bn{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 Nt(`randomNormal does not support dType ${e}.`);return Pm(t,this.mean,this.stddev,e,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};Bm.className="RandomNormal";J.registerClass(Bm);var Vm=class extends bn{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 Nt(`truncatedNormal does not support dType ${e}.`);return Em(t,this.mean,this.stddev,e,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};Vm.className="TruncatedNormal";J.registerClass(Vm);var Gm=class extends bn{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 $(this.gain,xc(t[0]))})}getConfig(){return{gain:this.gain}}};Gm.className="Identity";J.registerClass(Gm);function hZ(r,t="channelsLast"){let e,n;if(Oe(t),r.length===2)e=r[0],n=r[1];else if([3,4,5].indexOf(r.length)!==-1){if(t==="channelsFirst"){let o=Do(r,2);e=r[1]*o,n=r[0]*o}else if(t==="channelsLast"){let o=Do(r,0,r.length-2);e=r[r.length-2]*o,n=r[r.length-1]*o}}else{let o=Do(r);e=Math.sqrt(o),n=Math.sqrt(o)}return[e,n]}var Xr=class extends bn{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,fZ(this.mode),this.distribution=t.distribution==null?"normal":t.distribution,dZ(this.distribution),this.seed=t.seed}apply(t,e){let n=hZ(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 Nt(`${this.getClassName()} does not support dType ${e}.`);return Em(t,0,a,e,this.seed)}else{let a=Math.sqrt(3*i);return Wn(t,-a,a,e,this.seed)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}};Xr.className="VarianceScaling";J.registerClass(Xr);var Mc=class extends Xr{constructor(t){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:t==null?null:t.seed})}getClassName(){return Xr.className}};Mc.className="GlorotUniform";J.registerClass(Mc);var Lc=class extends Xr{constructor(t){super({scale:1,mode:"fanAvg",distribution:"normal",seed:t==null?null:t.seed})}getClassName(){return Xr.className}};Lc.className="GlorotNormal";J.registerClass(Lc);var zc=class extends Xr{constructor(t){super({scale:2,mode:"fanIn",distribution:"normal",seed:t==null?null:t.seed})}getClassName(){return Xr.className}};zc.className="HeNormal";J.registerClass(zc);var Bc=class extends Xr{constructor(t){super({scale:2,mode:"fanIn",distribution:"uniform",seed:t==null?null:t.seed})}getClassName(){return Xr.className}};Bc.className="HeUniform";J.registerClass(Bc);var Vc=class extends Xr{constructor(t){super({scale:1,mode:"fanIn",distribution:"normal",seed:t==null?null:t.seed})}getClassName(){return Xr.className}};Vc.className="LeCunNormal";J.registerClass(Vc);var Gc=class extends Xr{constructor(t){super({scale:1,mode:"fanIn",distribution:"uniform",seed:t==null?null:t.seed})}getClassName(){return Xr.className}};Gc.className="LeCunUniform";J.registerClass(Gc);var Wm=class extends bn{constructor(t){super(),this.DEFAULT_GAIN=1,this.ELEMENTS_WARN_SLOW=2e3,this.gain=t.gain==null?this.DEFAULT_GAIN:t.gain,this.seed=t.seed}apply(t,e){return B(()=>{if(t.length<2)throw new Nt("Shape must be at least 2D.");if(e!=="int32"&&e!=="float32"&&e!==void 0)throw new TypeError(`Unsupported data type ${e}.`);e=e;let n=y.sizeFromShape(t.slice(0,-1)),o=t[t.length-1],s=n*o;s>this.ELEMENTS_WARN_SLOW&&console.warn(`Orthogonal initializer is being called on a matrix with more than ${this.ELEMENTS_WARN_SLOW} (${s}) elements: Slowness may result.`);let i=[Math.max(o,n),Math.min(o,n)],a=Pm(i,0,1,e,this.seed),u=iN.qr(a,!1),l=u[0],p=u[1].flatten().stridedSlice([0],[Math.min(o,n)*Math.min(o,n)],[Math.min(o,n)+1]);return l=$(l,p.sign()),nn*o);return t}var J$="Variable",Dh=class{constructor(t,e="float32",n=J$,o=!0,s=null){this.dtype=e==null?"float32":e,this.shape=t.shape,this.id=Ly(),n=n==null?J$:n,this.originalName=zy(n),this.name=By(this.originalName),this.trainable_=o,this.constraint=s,this.val=dy(t,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(t){return this.assertNotDisposed(),xZ(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 xZ(r,t){if(r.shape.toString()!==t.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(r.shape)+" vs. "+JSON.stringify(t.shape))}function $h(r){return r.map(t=>t.read())}function qm(r){r.forEach(t=>{t[0].write(t[1])})}var Ie=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||{}}},rn=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=Ly(),i!=null&&(this.originalName=zy(i),this.name=By(this.originalName)),this.rank=e.length}},yZ=0,Tl=class{constructor(t,e){this.callArgs=e,this.id=yZ++,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}}},bZ=0,_t=class extends J.Serializable{constructor(t={}){super(),this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=bZ++,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=Eo(n)+"_"+Fu(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 jr(`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 kr(this.getNodeAtIndex(t,"input").inputTensors)}getOutputAt(t){return kr(this.getNodeAtIndex(t,"output").outputTensors)}get input(){if(this.inboundNodes.length>1)throw new _n(`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 _n(`Layer ${this.name} is not connected, no input to return.`);return kr(this.getNodeAtIndex(0,"input").inputTensors)}get output(){if(this.inboundNodes.length===0)throw new _n(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new _n(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer output" is ill-defined. Use \`getOutputAt(nodeIndex)\` instead.`);return kr(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=we(t),this.inputSpec==null||this.inputSpec.length===0)return;let e=we(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 we(t))i.push(a.shape);this.build(kr(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=we(i),u=[];for(let l of a)n.indexOf(l)!==-1&&(l=l.clone()),u.push(l);if(i=kr(u),this.activityRegularizer!=null)throw new Nt("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return i}else{let i=wZ(t),a=this.computeOutputShape(i),u,l=IZ(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 rn(l,c,this,we(t),e,this.name,p)):u=new rn(l,a,this,we(t),e,this.name),this.addInboundNode(t,u,null,null,i,a,e),this._refCount++,this.activityRegularizer!=null)throw new Nt("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 _n(`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 _n(`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 jr(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return Hm(this.weights)}build(t){this.built=!0}getWeights(t=!1){return $h(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=$h(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=we(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=we(t);e=we(e),n=we(n),o=we(o),s=Um(s),i=Um(i);let l=[],c=[],p=[];for(let m of u)l.push(m.sourceLayer),c.push(m.nodeIndex),p.push(m.tensorIndex);new Tl({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 wZ(r){r=we(r);let t=[];for(let e of r)t.push(e.shape);return kr(t)}function IZ(r){return"float32"}function DN(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=Ky.get(c),m;if(p==null){let d=vZ(i,t);p=d.sorted,m=d.recipientCounts,Ky.put(c,p),jy.put(c,m)}m={},o||Object.assign(m,jy.get(c));let f=new Ro(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:SZ(n)}}function SZ(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 NZ(r){let t;if(r.sourceLayer.inboundNodes.length===1)t=r.sourceLayer.output;else{let e=null;for(let n=0;n100,tR);var nR={};Kt(nR,{maxNorm:()=>TZ,minMaxNorm:()=>AZ,nonNeg:()=>EZ,unitNorm:()=>_Z});function $N(r,t){return B(()=>Ne(pt($(r,r),t,!0)))}var Uc=class extends J.Serializable{getConfig(){return{}}},Km=class extends Uc{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=$N(t,this.axis),n=vr(e,0,this.maxValue);return $(t,ct(n,Y(cr(),e)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}};Km.className="MaxNorm";J.registerClass(Km);var jm=class extends Uc{constructor(t){super(),this.defaultAxis=0,this.axis=t.axis!=null?t.axis:this.defaultAxis}apply(t){return B(()=>ct(t,Y(cr(),$N(t,this.axis))))}getConfig(){return{axis:this.axis}}};jm.className="UnitNorm";J.registerClass(jm);var Xm=class extends Uc{apply(t){return Pr(t)}};Xm.className="NonNeg";J.registerClass(Xm);var Ym=class extends Uc{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=$N(t,this.axis),n=Y($(this.rate,vr(e,this.minValue,this.maxValue)),$(1-this.rate,e));return $(t,ct(n,Y(cr(),e)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}};Ym.className="MinMaxNorm";J.registerClass(Ym);var eR={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function Be(r){return Rm(r)}function rR(r,t={}){return fa(r,J.SerializationMap.getMap().classNameMap,t,"constraint")}function Ve(r){if(r==null)return null;if(typeof r=="string"){let e={className:r in eR?eR[r]:r,config:{}};return rR(e)}else return r instanceof Uc?r:rR(r)}function TZ(r){return new Km(r)}function _Z(r){return new jm(r)}function EZ(){return new Xm}function AZ(r){return new Ym(r)}var oR={};Kt(oR,{constant:()=>RZ,glorotNormal:()=>BZ,glorotUniform:()=>zZ,heNormal:()=>VZ,heUniform:()=>GZ,identity:()=>MZ,leCunNormal:()=>WZ,leCunUniform:()=>UZ,ones:()=>$Z,orthogonal:()=>HZ,randomNormal:()=>OZ,randomUniform:()=>FZ,truncatedNormal:()=>PZ,varianceScaling:()=>LZ,zeros:()=>DZ});function DZ(){return new Mm}function $Z(){return new Pu}function RZ(r){return new Lm(r)}function FZ(r){return new zm(r)}function OZ(r){return new Bm(r)}function PZ(r){return new Vm(r)}function MZ(r){return new Gm(r)}function LZ(r){return new Xr(r)}function zZ(r){return new Mc(r)}function BZ(r){return new Lc(r)}function VZ(r){return new zc(r)}function GZ(r){return new Bc(r)}function WZ(r){return new Vc(r)}function UZ(r){return new Gc(r)}function HZ(r){return new Wm(r)}var LR={};Kt(LR,{Layer:()=>_t,RNN:()=>An,RNNCell:()=>Dl,activation:()=>uJ,add:()=>yJ,alphaDropout:()=>e9,average:()=>bJ,averagePooling1d:()=>qN,averagePooling2d:()=>KN,averagePooling3d:()=>jN,avgPool1d:()=>_J,avgPool2d:()=>AJ,avgPool3d:()=>$J,avgPooling1d:()=>EJ,avgPooling2d:()=>DJ,avgPooling3d:()=>RJ,batchNormalization:()=>NJ,bidirectional:()=>KJ,categoryEncoding:()=>i9,centerCrop:()=>o9,concatenate:()=>wJ,conv1d:()=>tJ,conv2d:()=>eJ,conv2dTranspose:()=>rJ,conv3d:()=>nJ,conv3dTranspose:()=>oJ,convLstm2d:()=>WJ,convLstm2dCell:()=>UJ,cropping2D:()=>iJ,dense:()=>cJ,depthwiseConv2d:()=>lJ,dot:()=>SJ,dropout:()=>pJ,elu:()=>j7,embedding:()=>xJ,flatten:()=>fJ,gaussianDropout:()=>t9,gaussianNoise:()=>QJ,globalAveragePooling1d:()=>FJ,globalAveragePooling2d:()=>OJ,globalMaxPool1d:()=>XJ,globalMaxPool2d:()=>YJ,globalMaxPooling1d:()=>FR,globalMaxPooling2d:()=>OR,gru:()=>MJ,gruCell:()=>LJ,input:()=>BN,inputLayer:()=>K7,layerNormalization:()=>kJ,leakyReLU:()=>Y7,lstm:()=>zJ,lstmCell:()=>BJ,masking:()=>r9,maxPool1d:()=>ZJ,maxPool2d:()=>JJ,maxPooling1d:()=>PR,maxPooling2d:()=>MR,maxPooling3d:()=>PJ,maximum:()=>IJ,minimum:()=>CJ,multiply:()=>vJ,permute:()=>gJ,prelu:()=>Z7,randomWidth:()=>a9,reLU:()=>X7,repeatVector:()=>dJ,rescaling:()=>n9,reshape:()=>hJ,resizing:()=>s9,rnn:()=>HJ,separableConv2d:()=>sJ,simpleRNN:()=>VJ,simpleRNNCell:()=>GJ,softmax:()=>J7,spatialDropout1d:()=>mJ,stackedRNNCells:()=>qJ,thresholdedReLU:()=>Q7,timeDistributed:()=>jJ,upSampling2d:()=>aJ,zeroPadding2d:()=>TJ});async function ha(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;sY(this.totals[o],$(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=$(ct(1,this.seen),this.totals[n]);e[n]=o,this.totals[n].dispose(),$e(e[n])}))}},Zy=class extends _l{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 Jy(n,t))}var wn=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}`),wn.checkForDuplicate(e),wn.constructors[t]==null&&(wn.constructors[t]=[]),wn.constructors[t].push(e)}static checkForDuplicate(t){for(let e in wn.constructors)wn.constructors[+e].forEach(o=>{if(o===t)throw new z("Duplicate callback constructor.")})}static clear(){wn.constructors={}}static createCallbacks(t){let e=[];for(let n in wn.constructors){let o=+n;t>=o&&e.push(...wn.constructors[o])}return e.map(n=>new n)}};wn.constructors={};function tb(r,t,e,n,o,s,i,a,u){let l=new Zy,c=[new RN,...wn.createCallbacks(t)];r!=null&&c.push(...r),c.push(l);let p=new Yy(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 In(r,t={},e=!1){return fa(r,J.SerializationMap.getMap().classNameMap,t,"layer",e)}function Rh(r,t){return B(()=>{r.dtype!=="float32"&&(r=Q(r,"float32"));let e=pt(Pc(r),t,!0),n=vo(e.shape,cr()),o=Ne(Tn(e,n));return ct(r,o)})}function ga(r,t){return B(()=>ke(Pc(lt(t,r)),-1))}function Zm(r,t){return B(()=>ke(Ee(lt(t,r)),-1))}function Mu(r,t){return B(()=>{let e=lt(r,t),n=vr(Ee(r),cr(),Number.MAX_VALUE),o=Ee(ct(e,n));return $(100,ke(o,-1))})}function KZ(r,t){return B(()=>{let e=vr(t,cr(),Number.MAX_VALUE),n=Nr(Y(1,e)),o=vr(r,cr(),Number.MAX_VALUE),s=Nr(Y(1,o));return ke(Pc(lt(n,s)),-1)})}function jZ(r,t){return B(()=>{let e=Tn(0,lt(1,$(r,t)));return ke(Pc(e),-1)})}function XZ(r,t){return B(()=>{let e=Tn(0,lt(1,$(r,t)));return ke(e,-1)})}function YZ(r,t){return B(()=>{let e=pt($(r,t),-1),n=Sr($(lt(1,r),t),-1);return Tn(0,Y(1,lt(n,e)))})}function ZZ(r,t){return B(()=>{let e=Math.log(2),n=lt(t,r),o=lt(Y(n,ai($(-2,n))),e);return ke(o,-1)})}function Hc(r,t,e=!1){return B(()=>{if(e)t=Eu(t);else{let n=pt(t,t.shape.length-1,!0);t=ct(t,n)}return t=vr(t,cr(),1-cr()),Ut(pt($(Q(r,"float32"),Nr(t)),t.shape.length-1))})}function Jm(r,t,e=!1){return B(()=>{let n=Q(aa(G$(r)),"int32");t=vr(t,cr(),1-cr());let o=t.shape,s=R(ua(n,o[o.length-1]),o);return Hc(s,t,e)})}function JZ(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=Ut(Ee(t));return Y(lt(e,$(t,r)),Su(ir(n)))})}function Qm(r,t){return B(()=>{let e;return e=vr(t,cr(),1-cr()),e=Nr(ct(e,lt(1,e))),ke(JZ(r,e),-1)})}function QZ(r,t){return B(()=>{let e=vr(r,cr(),1),n=vr(t,cr(),1);return pt($(r,Nr(ct(e,n))),-1)})}function t7(r,t){return B(()=>{let e=Nr(Y(cr(),t));return ke(lt(t,$(r,e)),-1)})}function Oh(r,t){return B(()=>{let e=Rh(r,-1),n=Rh(t,-1),o=$(e,n);return Ut(pt(o,-1))})}var Fh={meanSquaredError:ga,meanAbsoluteError:Zm,meanAbsolutePercentageError:Mu,meanSquaredLogarithmicError:KZ,squaredHinge:jZ,hinge:XZ,categoricalHinge:YZ,logcosh:ZZ,categoricalCrossentropy:Hc,sparseCategoricalCrossentropy:Jm,binaryCrossentropy:Qm,kullbackLeiblerDivergence:QZ,poisson:t7,cosineProximity:Oh};function eb(r){if(typeof r=="string"){if(r in Fh)return Fh[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 Ph(r,t){return B(()=>{let e=$(.5,Ir(t)),n=en(Fe(t,e),r.dtype);return ke(Rr(r,n),-1)})}function Mh(r,t){return B(()=>en(Rr(ta(r,-1),ta(t,-1)),"float32"))}function aR(r,t){return B(()=>Q(pt(Or(Rr(r,1),Rr(t,1))),"float32"))}function e7(r,t){return B(()=>Q(pt(Or(Rr(r,1),Rr(t,0))),"float32"))}function r7(r,t){return B(()=>Q(pt(Or(Rr(r,0),Rr(t,1))),"float32"))}function FN(r,t){return B(()=>{let e=aR(r,t),n=r7(r,t),o=Y(e,n);return Q(be(Fe(o,0),ct(e,o),0),"float32")})}function lR(r,t){return B(()=>{let e=aR(r,t),n=e7(r,t),o=Y(e,n);return Q(be(Fe(o,0),ct(e,o),0),"float32")})}function nb(r,t){return Qm(r,t)}function ob(r,t){return r.rank===t.rank&&(r=Un(r,[r.rank-1])),t=ta(t,-1),t.dtype!==r.dtype&&(t=Q(t,r.dtype)),Q(Rr(r,t),"float32")}var n7=ga,o7=ga,s7=Zm,i7=Zm,a7=Mu,l7=Mu,Lh=Hc,u7=Oh,ON=Jm,rb={binaryAccuracy:Ph,categoricalAccuracy:Mh,precision:FN,categoricalCrossentropy:Lh,sparseCategoricalCrossentropy:ON,mse:n7,MSE:o7,mae:s7,MAE:i7,mape:a7,MAPE:l7,cosine:u7};function uR(r){if(typeof r=="string"&&r in rb)return rb[r];if(typeof r!="string"&&r!=null)return r;throw new z(`Unknown metric ${r}`)}function zh(r){if(co(r!==null,`Unknown LossOrMetricFn ${r}`),typeof r=="string")return r;{let t;for(let e of Object.keys(Fh))if(Fh[e]===r){t=e;break}if(t!==void 0)return t;for(let e of Object.keys(rb))if(rb[e]===r){t=e;break}return t!==void 0?t:r.name}}function pR(r){let t={Adagrad:()=>Fc.adagrad(.01),Adadelta:()=>Fc.adadelta(1,.95,cr()),Adam:()=>Fc.adam(.001,.9,.999,cr()),Adamax:()=>Fc.adamax(.002,.9,.999,cr(),0),RMSProp:()=>Fc.rmsprop(.001,.9,0,cr()),SGD:()=>Fc.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 MN(r,t,e=!1){if(r==null||typeof r!="object"||Object.getPrototypeOf(r)!==Object.prototype||!PN(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 PN(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"||!PN(r[e]))return!1;return!0}else if(Array.isArray(r)){for(let t of r)if(!PN(t))return!1;return!0}else return!1;else{let t=typeof r;return t==="string"||t==="number"||t==="boolean"}}function mR(r,t,e,n=console.log){let o=m7(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)),sb(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 sb(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 f7(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()];sb(a,t,e)}function d7(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)}`);Ao(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,I=b.nodeIndex,N=b.tensorIndex;this.outputLayers.push(w),this.outputLayersNodeIndices.push(I),this.outputLayersTensorIndices.push(N)}for(let b of this.inputs){let w=b.sourceLayer,I=b.nodeIndex,N=b.tensorIndex;co(I===0,"input layer has >1 nodes"),co(N===0,"input layer has >1 tensors"),this.inputLayers.push(w),this.inputLayersNodeIndices.push(I),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,I,N,E,A)=>{(N==null||E==null||A==null)&&(N=b.sourceLayer,E=b.nodeIndex,A=b.tensorIndex);let D=N.inboundNodes[E];if(I.indexOf(D)!==-1)throw new jr(`The tensor ${b.name} at layer "${N.name}" is part of a cycle.`);if(w.indexOf(D)!==-1)return;this.containerNodes.add(Hn.nodeKey(N,E)),N.id in i||(i[N.id]=Object.keys(i).length),I.indexOf(D)===-1&&I.push(D);let F=D.inboundLayers.length;for(let P=0;P=0;)I.splice(I.indexOf(D),1);a.push(D)},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],I=o[b.outboundLayer.id]==null?0:o[b.outboundLayer.id];w=Math.max(w,I),o[b.outboundLayer.id]=w,s[b.outboundLayer.id]=b.outboundLayer,e[b.id]=w;for(let N=0;NparseInt(b,10)).sort(_h);this.layers=[];for(let b of d){let w=f[b];w.sort((I,N)=>{let E=i[I.id],A=i[N.id];return EA?1:0});for(let I of w)I instanceof Hn&&this.internalContainerRefs.push(I),this.layers.push(I)}this.layersByDepth=f,d=Object.keys(m).map(b=>parseInt(b,10)).sort(_h);let h=this.inputs.slice(),g=[];for(let b of d)for(let w of m[b]){let I=w.outboundLayer;if(I!=null){for(let N of w.inputTensors)if(h.indexOf(N)===-1)throw new jr(`Graph disconnected: cannot obtain value for tensor ${N} at layer "${I.name}". The following previous layers were accessed without issue: ${g}`);for(let N of w.outputTensors)h.push(N);g.push(I.name)}}this.nodesByDepth=m;let x=this.layers.map(b=>b.name);for(let b of x){let w=x.filter(I=>I===b).length;if(w!==1)throw new jr(`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 Tl({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}`)}qm(s)}updatedConfig(){let t=this.getConfig(),e={};return e.className=this.getClassName(),e.config=t,e.kerasVersion=`tfjs-layers ${tf}`,e.backend="TensorFlow.js",e}toJSON(t,e=!0){let n=ib(this.updatedConfig());return e?JSON.stringify(n):n}call(t,e){return B(()=>{t=we(t);let n=new Ro;for(let o=0;o{t=we(t);let n;return e==null?n=_o(null,t.length):n=we(e),this.runInternalGraph(t,n)[1]})}computeOutputShape(t){let e=Um(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(_h);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(_h);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[I,N]=d[0];h.mask==null&&(h.mask=N),b=we(p.call(I,h)),w=we(p.computeMask(I,N)),g=[I],x=[N]}else g=d.map(I=>I[0]),x=d.map(I=>I[1]),h.mask==null&&(h.mask=x),b=we(p.call(g,h)),w=we(p.computeMask(g,x));if(p.activityRegularizer)throw new Nt("LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet.");for(let I=0;I{let t=[];for(let e of this.layers)for(let n=0;n0){let h=[];for(let g=0;g0&&g.apply(kr(b),w)}function l(g){let x=g.name,b=In(g,e.customObjects!=null?e.customObjects:{});b.setFastWeightInitDuringBuild(o),s[x]=b,g.inboundNodes.forEach(I=>{if(!(I instanceof Array))throw new z(`Corrupted configuration, expected array for nodeData: ${I}`);a(b,I)})}let c=e.name,p=e.layers;for(let g of p)l(g);for(;!E$(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];co(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];co(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 h7(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 ab(r,t){return h7(r,t,"classWeight")}async function lb(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 un(r);if(r.shape.length===2){if(r.shape[1]>1)return ta(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());Tt(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 dR(r,t){return $(r,t)}var g7=32;function xR(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=hR("input",r.inputNames,e),i=hR("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 hR(r,t,e){if(e instanceof Pt)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 x7(r){if(r.length===3)throw new Nt("Validation with sample weights is not implemented yet.");return{xs:r[0],ys:r[1]}}async function yR(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(gR(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=x7(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=Qy(e.callbacks,e.yieldEvery),p=e.verbose==null?1:e.verbose,{callbackList:m,history:f}=tb(c,p,e.epochs,null,null,y7(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 I;gR(e.validationData)?I=we(await r.evaluateDataset(e.validationData,{batches:e.validationBatches})):I=we(r.evaluate(s,i,{batchSize:e.validationBatchSize==null?g7:e.validationBatchSize,verbose:0}));for(let N=0;N0)throw new Nt("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=b7(t)?t:await t.iterator(),a=0,u=0;for(;!n||u{if(l.value){let{xs:c,ys:p}=xR(r,l.value),m=c.concat(p),f=B(()=>o(m));if(Tt(m),u===0)for(let h=0;hY(s[h],$(d,g))),u>0&&Tt(x)}Tt(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 ef(r,t,e){return r==null?[null]:Array.isArray(r)?r.map(n=>Nl(n,t,e-t)):Nl(r,t,e-t)}function cb(r,t){return B(()=>r==null?null:Array.isArray(r)?r.map(e=>cb(e,t)):Wy(r,t.dtype==="int32"?t:Q(t,"int32")))}function pb(r,t){let e=[],n=0,o=null;for(;n=r&&(o=r),e.push([n,o]),n=o;return e}function LN(r){let t=[];r instanceof Pt&&(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 Pt)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 w7(r){return r instanceof Pt}function zN(r){return Array.isArray(r)}function wR(r){return!w7(r)&&!zN(r)}function IR(r,t,e,n=!0,o=""){if(t==null||t.length===0){if(r!=null){let i=!1;if(zN(r)&&r.length>0)i=!0;else if(wR(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(wR(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(zN(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=LN(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 I7(r,t,e){let n=Ao(r.map(s=>s.shape[0]));n.sort();let o=Ao(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 C7(r,t,e){let n=[ga,Qm,Hc];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 S7="layers-model",qn=class extends Hn{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).");mR(this,t,e,n)}compile(t){if(t.loss==null&&(t.loss=[]),this.loss=t.loss,typeof t.optimizer=="string")this.optimizer_=pR(t.optimizer),this.isOptimizerOwned=!0;else{if(!(t.optimizer instanceof qr))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(eb(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=>eb(a))}else{let i=eb(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=v7(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])};pi("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]===Qm?["accuracy","acc"].indexOf(d)!==-1?m=Ph:["crossentropy","ce"].indexOf(d)!==-1&&(m=nb):this.lossFunctions[i]===Jm?["accuracy","acc"].indexOf(d)!==-1?m=ob:["crossentropy","ce"].indexOf(d)!==-1&&(m=ON):["accuracy","acc"].indexOf(d)!==-1?m=Mh:["crossentropy","ce"].indexOf(d)!==-1&&(m=Lh);let x;["accuracy","acc"].indexOf(d)!==-1?x="acc":["crossentropy","ce"].indexOf(d)!==-1&&(x="ce"),f=m,p=c+x}else f=uR(d),p=c+zh(d);let h;pi(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;ub(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 kr(l)}finally{Fo(i[0],t),Fo(i[1],e)}}async evaluateDataset(t,e){return this.makeTestFunction(),bR(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 Ro;if(t instanceof Pt&&(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 Nt("Verbose predictLoop() is not implemented yet.");let s=pb(o,e),i=this.outputs.map(a=>[]);for(let a=0;a{let l=s[a][0],c=s[a][1],p=ef(t,l,c),m=[];if(Array.isArray(p))for(let d=0;di[c].push(l));return kr(i.map(a=>se(a,0)))})}predict(t,e={}){let n=LN(t);CR(n,this.inputNames,this.feedInputShapes,!1);try{let o=e.batchSize==null?32:e.batchSize;return ub(o),this.predictLoop(n,o)}finally{Fo(n,t)}}predictOnBatch(t){CR(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 jr("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=ab(o,this.outputNames);l=[];for(let p=0;p{let i=this.checkNumSamples(e,n,s,"steps"),a=[];if(o>0)throw new Nt("Verbose mode is not implemented yet.");if(s!=null)throw new Nt("steps mode in testLoop() is not implemented yet");{let u=pb(i,n),l=Ke(gn(0,i));for(let c=0;c1){let i=NN(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=Y(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 Nt("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=ef(o,F,P),i=o,o=ef(o,0,F),p=ef(s,F,P),a=s,s=ef(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(),I=this.getDedupedMetricsNames(),N,E;g?(this.makeTestFunction(),N=this.testFunction,E=I.slice().concat(I.map(F=>"val_"+F))):(N=null,x=[],E=I.slice());let A=Qy(n.callbacks,n.yieldEvery);return await this.fitLoop(w,b,I,f,n.epochs,n.verbose,A,N,x,n.shuffle,E,n.initialEpoch,null,null)}finally{this.isTraining=!1,Fo(o,t),Fo(s,e),Fo(i,t),Fo(a,e),Fo(c,u),Fo(p,l),m!=null&&Tt(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=gn(0,g)),i==null&&(i=1);let{callbackList:b,history:w}=tb(a,i,s,m,g,f,o,h,p);b.setModel(this),this.history=w,await b.onTrainBegin(),this.stopTraining_=!1;for(let I=m;I{let P=A[D][0],V=A[D][1],G=Nl(E,P,V-P);F.batch=D,F.size=V-P;let W=cb(e,G),q=t(W);for(let H=0;HEo(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]=Eo(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[Eo(zh(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(t=>Eo(zh(t)));{let t={};for(let e in this.metrics)t[e]=Eo(zh(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=qc(t.optimizer_config),n=In(e),o;if(typeof t.loss=="string")o=Sl(t.loss);else if(Array.isArray(t.loss))o=t.loss.map(i=>Sl(i));else if(t.loss!=null){o={};for(let i in t.loss)o[i]=Sl(t.loss[i])}let s;if(Array.isArray(t.metrics))s=t.metrics.map(i=>Sl(i));else if(t.metrics!=null){s={};for(let i in t.metrics)s[i]=Sl(t.metrics[i])}this.compile({loss:o,metrics:s,optimizer:n})}async save(t,e){if(typeof t=="string"){let l=Mr.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 Mr.encodeWeights(this.getNamedWeights(e)),o=!1,s=null,a={modelTopology:this.toJSON(s,o),format:S7,generatedBy:`TensorFlow.js tfjs-layers v${tf}`,convertedBy:null};if((e==null?!1:e.includeOptimizer)&&this.optimizer!=null){a.trainingConfig=this.getTrainingConfig();let l="optimizer",{data:c,specs:p}=await Mr.encodeWeights(await this.optimizer.getWeights(),l);n.specs.push(...p),n.data=Mr.concatenateArrayBuffers([n.data,c])}return this.userDefinedMetadata!=null&&(MN(this.userDefinedMetadata,this.name,!0),a.userDefinedMetadata=this.userDefinedMetadata),a.weightData=n.data,a.weightSpecs=n.specs,t.save(a)}setUserDefinedMetadata(t){MN(t,this.name),this.userDefinedMetadata=t}getUserDefinedMetadata(){return this.userDefinedMetadata}};qn.className="Model";J.registerClass(qn);var mb=class extends qn{};mb.className="Functional";J.registerClass(mb);async function vR(r,t){"modelTopology"in r||(r={modelTopology:r}),r=r;let e=r.modelTopology;e.model_config!=null&&(e=e.model_config);let n=qc(e),o=In(n,t);if(r.weightsManifest!=null){let s=await Mr.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),Tt(s)}return o}async function SR(r,t){if(t==null&&(t={}),typeof r=="string"){let e=Mr.getLoadHandlers(r,t);if(e.length===0)e.push(Mr.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 N7(r,void 0,t)}async function N7(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=In(qc(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}=k7(n.weightData,n.weightSpecs);a.loadWeights(l,s),a.optimizer!=null&&c.length>0&&await a.optimizer.setWeights(c),Tt(l),Tt(c.map(p=>p.tensor))}return a}function k7(r,t){let e=Mr.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 xa=class extends qn{constructor(t){if(super({inputs:[],outputs:[]}),t=t||{},this.trainable=!0,this.built=!1,this.name=t.name!=null?t.name:Fu("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 xa||t instanceof qn,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=qy({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=DN(this.outputs[0])}this.inboundNodes=[],new Tl({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:_o(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(Gt(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 qn({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 jr("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 jr("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 jr("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 jr("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 xa))throw new Nt(`Sequential.fromConfig called on non-Sequential input: ${a}`);for(let u of s){let c=In(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}}};xa.className="Sequential";J.registerClass(xa);function T7(r){return new qn(r)}function _7(r){return new xa(r)}function BN(r){return qy(r)}function E7(r,t){wn.registerCallbackConstructor(r,t)}var nn=class extends J.Serializable{getConfig(){return{}}},fb=class extends nn{apply(t,e=1){return U$(t,e)}};fb.className="elu";J.registerClass(fb);var db=class extends nn{apply(t){return wm(t)}};db.className="selu";J.registerClass(db);var hb=class extends nn{apply(t){return Pr(t)}};hb.className="relu";J.registerClass(hb);var gb=class extends nn{apply(t){return B(()=>uo(6,Pr(t)))}};gb.className="relu6";J.registerClass(gb);var xb=class extends nn{apply(t){return t}};xb.className="linear";J.registerClass(xb);var yb=class extends nn{apply(t){return tn(t)}};yb.className="sigmoid";J.registerClass(yb);var bb=class extends nn{apply(t){return q$(t)}};bb.className="hardSigmoid";J.registerClass(bb);var wb=class extends nn{apply(t){return ai(t)}};wb.className="softplus";J.registerClass(wb);var Ib=class extends nn{apply(t){return H$(t)}};Ib.className="softsign";J.registerClass(Ib);var Cb=class extends nn{apply(t){return ra(t)}};Cb.className="tanh";J.registerClass(Cb);var rf=class extends nn{apply(t,e=-1){return Eu(t,e)}};rf.className="softmax";J.registerClass(rf);var vb=class extends nn{apply(t,e=-1){return dm(t,e)}};vb.className="logSoftmax";J.registerClass(vb);var Sb=class extends nn{apply(t,e=1){return B(()=>$(tn($(t,e)),t))}};Sb.className="swish";J.registerClass(Sb);var Nb=class extends nn{apply(t){return B(()=>$(t,ra(ai(t))))}};Nb.className="mish";J.registerClass(Nb);function di(r){return r.getClassName()}function VN(r,t={}){return fa(r,J.SerializationMap.getMap().classNameMap,t,"activation")}function hi(r){if(r==null){let t={};return t.className="linear",t.config={},VN(t)}if(typeof r=="string"){let t={};return t.className=r,t.config={},VN(t)}else return r instanceof nn?r:VN(r)}function GN(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 kb=class extends J.Serializable{},Lu=class extends kb{constructor(t){super(),GN(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=Te([1]);return this.hasL1&&(e=Y(e,pt($(this.l1,Ee(t))))),this.hasL2&&(e=Y(e,pt($(this.l2,Pc(t))))),R(e,[])})}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(t,e){return new t({l1:e.l1,l2:e.l2})}};Lu.className="L1L2";J.registerClass(Lu);function TR(r){return GN(r),new Lu({l1:r!=null?r.l1:null,l2:0})}function _R(r){return GN(r),new Lu({l2:r!=null?r.l2:null,l1:0})}var NR={l1l2:"L1L2"};function me(r){return Rm(r)}function kR(r,t={}){return fa(r,J.SerializationMap.getMap().classNameMap,t,"regularizer")}function Ce(r){if(r==null)return null;if(typeof r=="string"){let e={className:r in NR?NR[r]:r,config:{}};return kR(e)}else return r instanceof kb?r:kR(r)}var nf=class extends _t{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}};nf.className="ReLU";J.registerClass(nf);var of=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=St(t);return vu(n,this.alpha)}computeOutputShape(t){return t}getConfig(){let t={alpha:this.alpha},e=super.getConfig();return Object.assign(t,e),t}};of.className="LeakyReLU";J.registerClass(of);var sf=class extends _t{constructor(t){if(super(t==null?{}:t),this.DEFAULT_ALPHA_INITIALIZER="zeros",t==null&&(t={}),this.supportsMasking=!0,this.alphaInitializer=he(t.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=Ce(t.alphaRegularizer),this.alphaConstraint=Ve(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=Gt(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(Oe(t),t==="channelsFirst"?Vt(r,[0,2,3,1]):r))}function WN(r,t){return B(()=>(Oe(t),t==="channelsFirst"?Vt(r,[0,2,3,4,1]):r))}function D7(r,t,e,n=1,o="valid",s,i=1){return B(()=>{if(s==null&&(s=xn()),Oe(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=Vt(r,[0,2,1])),o==="causal")throw new Nt("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");let a=um(r,t,n,o==="same"?"same":"valid","NWC",i);return e!=null&&(a=yn(a,e)),a})}function ER(r,t,e,n=[1,1],o="valid",s,i,a=null){return B(()=>{if(s==null&&(s=xn()),Oe(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=Bh(r,s);if(o==="causal")throw new Nt("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return u=Ru.conv2d({x:u,filter:t,strides:n,pad:o==="same"?"same":"valid",dilations:i,dataFormat:"NHWC",bias:e,activation:a}),s==="channelsFirst"&&(u=Vt(u,[0,3,1,2])),u})}function $7(r,t,e,n=[1,1,1],o="valid",s,i){return B(()=>{if(s==null&&(s=xn()),Oe(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=WN(r,s);if(o==="causal")throw new Nt("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return a=$x(a,t,n,o==="same"?"same":"valid","NDHWC",i),e!=null&&(a=yn(a,e)),s==="channelsFirst"&&(a=Vt(a,[0,4,1,2,3])),a})}var Kc=class extends _t{constructor(t,e){if(super(e),this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",Kc.verifyArgs(e),this.rank=t,Qe(this.rank,"rank"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new Nt(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=zu(e.kernelSize,t,"kernelSize"),this.strides=zu(e.strides==null?1:e.strides,t,"strides"),this.padding=e.padding==null?"valid":e.padding,hn(this.padding),this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Oe(this.dataFormat),this.activation=hi(e.activation),this.useBias=e.useBias==null?!0:e.useBias,this.biasInitializer=he(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=Ve(e.biasConstraint),this.biasRegularizer=Ce(e.biasRegularizer),this.activityRegularizer=Ce(e.activityRegularizer),this.dilationRate=zu(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(co("kernelSize"in t,"required key 'kernelSize' not in config"),typeof t.kernelSize!="number"&&!Oy(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:di(this.activation),useBias:this.useBias,biasInitializer:_e(this.biasInitializer),biasRegularizer:me(this.biasRegularizer),activityRegularizer:me(this.activityRegularizer),biasConstraint:Be(this.biasConstraint)},e=super.getConfig();return Object.assign(t,e),t}},Bu=class extends Kc{constructor(t,e){super(t,e),this.kernel=null,Bu.verifyArgs(e),this.filters=e.filters,Qe(this.filters,"filters"),this.kernelInitializer=he(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=Ve(e.kernelConstraint),this.kernelRegularizer=Ce(e.kernelRegularizer)}build(t){t=Gt(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=Py(this.activation.getClassName());if(s!=null&&this.rank===2)n=ER(t,this.kernel.read(),o,this.strides,this.padding,this.dataFormat,this.dilationRate,s);else{if(this.rank===1)n=D7(t,this.kernel.read(),o,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)n=ER(t,this.kernel.read(),o,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)n=$7(t,this.kernel.read(),o,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new Nt("convolutions greater than 3D are not implemented yet.");this.activation!=null&&(n=this.activation.apply(n))}return n})}computeOutputShape(t){t=Gt(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)}`)}},El=class extends Bu{constructor(t){super(2,t),El.verifyArgs(t)}getConfig(){let t=super.getConfig();return delete t.rank,t}static verifyArgs(t){if(typeof t.kernelSize!="number"&&!Oy(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)}.`)}};El.className="Conv2D";J.registerClass(El);var Al=class extends Bu{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 z(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(t.kernelSize)}.`)}};Al.className="Conv3D";J.registerClass(Al);var cf=class extends El{constructor(t){if(super(t),this.inputSpec=[new Ie({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=Gt(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 Ie({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=gi(u,m,c,this.padding),h=gi(l,f,p,this.padding),g=[s,d,h,this.filters];this.dataFormat!=="channelsLast"&&(n=Vt(n,[0,2,3,1]));let x=pm(n,this.kernel.read(),g,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(x=Vt(x,[0,3,1,2])),this.bias!=null&&(x=yn(x,this.bias.read(),this.dataFormat)),this.activation!=null&&(x=this.activation.apply(x)),x})}computeOutputShape(t){t=Gt(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]=gi(e[o],u,i,this.padding),e[s]=gi(e[s],l,a,this.padding),e}getConfig(){let t=super.getConfig();return delete t.dilationRate,t}};cf.className="Conv2DTranspose";J.registerClass(cf);var pf=class extends Al{constructor(t){if(super(t),this.inputSpec=[new Ie({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=Gt(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 Ie({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=gi(l,h,m,this.padding),w=gi(c,g,f,this.padding),I=gi(p,x,d,this.padding),N=[s,b,w,I,this.filters];this.dataFormat!=="channelsLast"&&(n=Vt(n,[0,2,3,4,1]));let E=Fx(n,this.kernel.read(),N,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(E=Vt(E,[0,4,1,2,3])),this.bias!==null&&(E=yn(E,this.bias.read(),this.dataFormat)),this.activation!==null&&(E=this.activation.apply(E)),E})}computeOutputShape(t){t=Gt(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]=gi(e[o],c,a,this.padding),e[s]=gi(e[s],p,u,this.padding),e[i]=gi(e[i],m,l,this.padding),e}getConfig(){let t=super.getConfig();return delete t.dilationRate,t}};pf.className="Conv3DTranspose";J.registerClass(pf);var Tb=class extends Bu{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=he(e.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=Ce(e.depthwiseRegularizer),this.depthwiseConstraint=Ve(e.depthwiseConstraint),this.pointwiseInitializer=he(e.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=Ce(e.pointwiseRegularizer),this.pointwiseConstraint=Ve(e.pointwiseConstraint)}build(t){if(t=Gt(t),t.length{t=St(t);let n;if(this.rank===1)throw new Nt("1D separable convolution is not implemented yet.");return this.rank===2&&(this.dataFormat==="channelsFirst"&&(t=Vt(t,[0,2,3,1])),n=Im(t,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,"NHWC")),this.useBias&&(n=yn(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),this.dataFormat==="channelsFirst"&&(n=Vt(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=_e(this.depthwiseInitializer),t.pointwiseInitializer=_e(this.pointwiseInitializer),t.depthwiseRegularizer=me(this.depthwiseRegularizer),t.pointwiseRegularizer=me(this.pointwiseRegularizer),t.depthwiseConstraint=Be(this.depthwiseConstraint),t.pointwiseConstraint=Be(this.pointwiseConstraint),t}};Tb.className="SeparableConv";var mf=class extends Tb{constructor(t){super(2,t)}};mf.className="SeparableConv2D";J.registerClass(mf);var Vu=class extends Bu{constructor(t){super(1,t),Vu.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"&&!Oy(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)}.`)}};Vu.className="Conv1D";J.registerClass(Vu);var ff=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=St(t),this.dataFormat==="channelsLast"){let n=Ah(t,this.cropping[0][0],t.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return Ah(n,this.cropping[1][0],t.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{let n=Ah(t,this.cropping[0][0],t.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return Ah(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}};ff.className="Cropping2D";J.registerClass(ff);var df=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,Oe(this.dataFormat),this.interpolation=t.interpolation==null?"nearest":t.interpolation,L$(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=Vt(n,[0,2,3,1]);let s=this.size[0]*o[2],i=this.size[1]*o[3],a=this.interpolation==="nearest"?dn.resizeNearestNeighbor(n,[s,i]):dn.resizeBilinear(n,[s,i]);return Vt(a,[0,3,1,2])}else{let s=this.size[0]*o[1],i=this.size[1]*o[2];return this.interpolation==="nearest"?dn.resizeNearestNeighbor(n,[s,i]):dn.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}};df.className="UpSampling2D";J.registerClass(df);function R7(r,t,e=[1,1],n="valid",o,s){return B(()=>{o==null&&(o=xn()),Oe(o);let i=Bh(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=sa(i,t,e,n==="same"?"same":"valid","NHWC",s),o==="channelsFirst"&&(i=Vt(i,[0,3,1,2])),i})}var hf=class extends Kc{constructor(t){super(2,t),this.depthwiseKernel=null,this.depthMultiplier=t.depthMultiplier==null?1:t.depthMultiplier,this.depthwiseInitializer=he(t.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=Ve(t.depthwiseConstraint),this.depthwiseRegularizer=Ce(t.depthwiseRegularizer)}build(t){if(t=Gt(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=R7(t,this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(n=yn(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),n})}computeOutputShape(t){t=Gt(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=En(e,this.kernelSize[0],this.padding,this.strides[0]),i=En(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=_e(this.depthwiseInitializer),t.depthwiseRegularizer=me(this.depthwiseRegularizer),t.depthwiseConstraint=Be(this.depthwiseRegularizer),t}};hf.className="DepthwiseConv2D";J.registerClass(hf);function UN(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 HN(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(gn(2,u));if(t=Vt(t,l),s!=null)throw new Nt("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=Q(Q(o,"bool"),"float32"),o.rank===u-1&&(o=ar(o,-1)),o=Vt(o,l)),n&&(t=hr(t,0),o!=null&&(o=hr(o,0)));let c=[],p,m=e,f=t.shape[0],d=xr(t),h;o!=null&&(h=xr(o));for(let x=0;xr(b,m));if(o==null)p=w[0],m=w[1];else{let I=B(()=>{let N=h[x],E=lt(Ir(N),N),A=Y($(w[0],N),$(m[0],E)),D=m.map((F,P)=>Y($(w[1][P],N),$(F,E)));return{output:A,newStates:D}});p=I.output,m=I.newStates}a&&c.push(p)}let g;return a&&(g=qe(c,1)),[p,g,m]})}var An=class extends _t{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 Yc({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 Ie({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 gn(0,t).map(e=>null)}else return this.states_}setStates(t){this.states_=t}computeOutputShape(t){Hy(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 Ie({shape:[null,a]}));this.stateful&&this.resetStates()}resetStates(t,e=!1){B(()=>{if(!this.stateful)throw new _n("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=>Te([n,o])):this.states_=[Te([n,this.cell.stateSize])];else if(t==null)Tt(this.states_),this.keptStates!=null&&(Tt(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(o=>Te([n,o])):this.states_[0]=Te([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()):Tt(this.states_);for(let o=0;o$e(o.clone()))})}apply(t,e){let n=e==null?null:e.initialState,o=e==null?null:e.constants;e==null&&(e={});let s=UN(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 Ie({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 rn){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=HN((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=Te(t.shape);return e=pt(e,[1,2]),e=kl(e),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(n=>n>1?Gy(e,[1,n]):e):this.cell.stateSize>1?[Gy(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()===An.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=In(o,n);return new t(Object.assign(e,{cell:s}))}};An.className="RNN";J.registerClass(An);var Dl=class extends _t{},jc=class extends Dl{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=hi(t.activation==null?this.DEFAULT_ACTIVATION:t.activation),this.useBias=t.useBias==null?!0:t.useBias,this.kernelInitializer=he(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=he(t.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=he(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Ce(t.kernelRegularizer),this.recurrentRegularizer=Ce(t.recurrentRegularizer),this.biasRegularizer=Ce(t.biasRegularizer),this.kernelConstraint=Ve(t.kernelConstraint),this.recurrentConstraint=Ve(t.recurrentConstraint),this.biasConstraint=Ve(t.biasConstraint),this.dropout=Oc([1,mi([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=Oc([1,mi([0,t.recurrentDropout==null?0:t.recurrentDropout])]),this.dropoutFunc=t.dropoutFunc,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(t){t=Gt(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;0Ir(t),rate:this.dropout,training:o,dropoutFunc:this.dropoutFunc})),0Ir(n),rate:this.recurrentDropout,training:o,dropoutFunc:this.dropoutFunc}));let s,i=this.dropoutMask,a=this.recurrentDropoutMask;i!=null?s=$o($(t,i),this.kernel.read()):s=$o(t,this.kernel.read()),this.bias!=null&&(s=yn(s,this.bias.read())),a!=null&&(n=$(n,a));let u=Y(s,$o(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:di(this.activation),useBias:this.useBias,kernelInitializer:_e(this.kernelInitializer),recurrentInitializer:_e(this.recurrentInitializer),biasInitializer:_e(this.biasInitializer),kernelRegularizer:me(this.kernelRegularizer),recurrentRegularizer:me(this.recurrentRegularizer),biasRegularizer:me(this.biasRegularizer),activityRegularizer:me(this.activityRegularizer),kernelConstraint:Be(this.kernelConstraint),recurrentConstraint:Be(this.recurrentConstraint),biasConstraint:Be(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign(Object.assign({},t),e)}};jc.className="SimpleRNNCell";J.registerClass(jc);var gf=class extends An{constructor(t){t.cell=new jc(t),super(t)}call(t,e){return B(()=>{this.cell.dropoutMask!=null&&(Tt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Tt(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)}};gf.className="SimpleRNN";J.registerClass(gf);var Xc=class extends Dl{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=hi(t.activation===void 0?this.DEFAULT_ACTIVATION:t.activation),this.recurrentActivation=hi(t.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:t.recurrentActivation),this.useBias=t.useBias==null?!0:t.useBias,this.kernelInitializer=he(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=he(t.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=he(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Ce(t.kernelRegularizer),this.recurrentRegularizer=Ce(t.recurrentRegularizer),this.biasRegularizer=Ce(t.biasRegularizer),this.kernelConstraint=Ve(t.kernelConstraint),this.recurrentConstraint=Ve(t.recurrentConstraint),this.biasConstraint=Ve(t.biasConstraint),this.dropout=Oc([1,mi([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=Oc([1,mi([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=Gt(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],0Ir(t),rate:this.dropout,training:n,count:3,dropoutFunc:this.dropoutFunc})),0Ir(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&&(Tt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Tt(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)}};xf.className="GRU";J.registerClass(xf);var $l=class extends Dl{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=hi(t.activation===void 0?this.DEFAULT_ACTIVATION:t.activation),this.recurrentActivation=hi(t.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:t.recurrentActivation),this.useBias=t.useBias==null?!0:t.useBias,this.kernelInitializer=he(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=he(t.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=he(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=t.unitForgetBias,this.kernelRegularizer=Ce(t.kernelRegularizer),this.recurrentRegularizer=Ce(t.recurrentRegularizer),this.biasRegularizer=Ce(t.biasRegularizer),this.kernelConstraint=Ve(t.kernelConstraint),this.recurrentConstraint=Ve(t.recurrentConstraint),this.biasConstraint=Ve(t.biasConstraint),this.dropout=Oc([1,mi([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=Oc([1,mi([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=Gt(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 bn{apply(u,l){let c=s.apply([i]),p=new Pu().apply([i]),m=s.apply([i*2]);return AN(AN(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],0Ir(t),rate:this.dropout,training:n,count:4,dropoutFunc:this.dropoutFunc})),0Ir(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&&(Tt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Tt(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)}};yf.className="LSTM";J.registerClass(yf);var Yc=class extends Dl{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{pi(`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(In(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 $h(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):Uy(t(),e),a=()=>Ou(i,t,n);return!o||o<=1?$e(a().clone()):Array(o).fill(void 0).map(a).map(l=>$e(l.clone()))}var F7=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&&(Tt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Tt(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=Te(s);return Array.isArray(e)?Array(e.length).fill(i):[i]})}resetStates(t,e=!1){B(()=>{if(!this.stateful)throw new _n("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(()=>Te(s)):this.states_=[Te(s)];else if(t==null)Tt(this.states_),this.keptStates!=null&&(Tt(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>Te(s)):this.states_[0]=Te(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()):Tt(this.states_);for(let a=0;a$e(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=En(l,o[0],s,i[0],a[0]),m=En(c,o[1],s,i[1],a[1]);return[...t.slice(0,2),...u?[n,p,m]:[p,m,n]]}};_b.className="ConvRNN2D";var Zc=class extends $l{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=zu(n,2,"kernelSize"),this.kernelSize.forEach(u=>Qe(u,"kernelSize")),this.strides=zu(o||1,2,"strides"),this.strides.forEach(u=>Qe(u,"strides")),this.padding=s||"valid",hn(this.padding),this.dataFormat=i||"channelsLast",Oe(this.dataFormat),this.dilationRate=zu(a||1,2,"dilationRate"),this.dilationRate.forEach(u=>Qe(u,"dilationRate"))}build(t){var e;t=Gt(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 bn{apply(m,f){let d=l.apply([c]),h=dr([c]),g=l.apply([c*2]);return Om([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;0Ir(o),rate:this.dropout,training:n,count:a,dropoutFunc:this.dropoutFunc}));let u=this.dropoutMask,l=(nt,st,at)=>!st||!st[at]?nt:$(st[at],nt),c=l(o,u,0),p=l(o,u,1),m=l(o,u,2),f=l(o,u,3);0Ir(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,[I,N,E,A]=gr(this.kernel.read(),a,w),[D,F,P,V]=this.useBias?gr(this.bias.read(),a):[null,null,null,null];c=this.inputConv(c,I,D,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]=gr(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 K=this.recurrentActivation.apply(Y(c,h)),X=this.recurrentActivation.apply(Y(p,g)),Z=Y($(X,i),$(K,this.activation.apply(Y(m,x)))),et=$(this.recurrentActivation.apply(Y(f,b)),this.activation.apply(Z));return[et,et,Z]})}getConfig(){let t=super.getConfig(),{units:e}=t,n=F7(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=kn(t,e,this.strides,o||"valid",this.dataFormat==="channelsFirst"?"NCHW":"NHWC",this.dilationRate);return n?yn(s,n,this.dataFormat):s}recurrentConv(t,e){return kn(t,e,1,"same",this.dataFormat==="channelsFirst"?"NCHW":"NHWC")}};Zc.className="ConvLSTM2DCell";J.registerClass(Zc);var bf=class extends _b{constructor(t){let e=new Zc(t);super(Object.assign(Object.assign({},t),{cell:e}))}static fromConfig(t,e){return new t(e)}};bf.className="ConvLSTM2D";J.registerClass(bf);var Jc=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=St(t);if(0Uy(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()}};Jc.className="Dropout";J.registerClass(Jc);var wf=class extends Jc{constructor(t){super(t),this.inputSpec=[{ndim:3}]}getNoiseShape(t){let e=t.shape;return[e[0],1,e[2]]}};wf.className="SpatialDropout1D";J.registerClass(wf);var If=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,Qe(this.units,"units"),this.activation=hi(t.activation),t.useBias!=null&&(this.useBias=t.useBias),this.kernelInitializer=he(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=he(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=Ve(t.kernelConstraint),this.biasConstraint=Ve(t.biasConstraint),this.kernelRegularizer=Ce(t.kernelRegularizer),this.biasRegularizer=Ce(t.biasRegularizer),this.activityRegularizer=Ce(t.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(t){t=Gt(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=Gt(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=Py(this.activation.getClassName()),s;return o!=null?s=$o(n,this.kernel.read(),o,this.bias?this.bias.read():null):(s=$o(n,this.kernel.read()),this.bias!=null&&(s=yn(s,this.bias.read())),this.activation!=null&&(s=this.activation.apply(s))),s})}getConfig(){let t={units:this.units,activation:di(this.activation),useBias:this.useBias,kernelInitializer:_e(this.kernelInitializer),biasInitializer:_e(this.biasInitializer),kernelRegularizer:me(this.kernelRegularizer),biasRegularizer:me(this.biasRegularizer),activityRegularizer:me(this.activityRegularizer),kernelConstraint:Be(this.kernelConstraint),biasConstraint:Be(this.biasConstraint)},e=super.getConfig();return Object.assign(t,e),t}};If.className="Dense";J.registerClass(If);var Cf=class extends _t{constructor(t){t=t||{},super(t),this.inputSpec=[{minNDim:3}],this.dataFormat=t.dataFormat}computeOutputShape(t){t=Gt(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],Do(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:di(this.activation)},e=super.getConfig();return Object.assign(t,e),t}};vf.className="Activation";J.registerClass(vf);var Sf=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=St(t),V$(t,this.n)))}getConfig(){let t={n:this.n},e=super.getConfig();return Object.assign(t,e),t}};Sf.className="RepeatVector";J.registerClass(Sf);var Nf=class extends _t{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}};Nf.className="Reshape";J.registerClass(Nf);var kf=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=gn(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 Ie({ndim:this.dims.length+1})]}computeOutputShape(t){t=Gt(t);let e=t.slice();return this.dims.forEach((n,o)=>{e[o+1]=t[n]}),e}call(t,e){return Vt(St(t),this.dimsIncludingBatch)}getConfig(){let t={dims:this.dims},e=super.getConfig();return Object.assign(t,e),t}};kf.className="Permute";J.registerClass(kf);var Tf=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=St(t),o=-1;return dc(li(n,this.maskValue),o)}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=St(t),o=-1,s=!0,i=dc(li(n,this.maskValue),o,s);return $(n,Q(i,n.dtype))})}};Tf.className="Masking";J.registerClass(Tf);var _f=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(we(t.inputLength))}this.inputDim=t.inputDim,Qe(this.inputDim,"inputDim"),this.outputDim=t.outputDim,Qe(this.outputDim,"outputDim"),this.embeddingsInitializer=he(t.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=Ce(t.embeddingsRegularizer),this.activityRegularizer=Ce(t.activityRegularizer),this.embeddingsConstraint=Ve(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),li(t,vt(t))):null)}computeOutputShape(t){if(t=Gt(t),this.inputLength==null)return[...t,this.outputDim];let e=we(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=en(n,"int32"));let o=Wy(this.embeddings.read(),R(n,[n.size]));return R(o,Gt(this.computeOutputShape(n.shape)))})}getConfig(){let t={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:_e(this.embeddingsInitializer),embeddingsRegularizer:me(this.embeddingsRegularizer),activityRegularizer:me(this.activityRegularizer),embeddingsConstraint:Be(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},e=super.getConfig();return Object.assign(t,e),t}};_f.className="Embedding";J.registerClass(_f);var Fl=class extends _t{constructor(t){super(t||{}),this.supportsMasking=!0}mergeFunction(t){throw new Nt}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&&Ao(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=mi(o);for(let i of t){let a=i.rank;for(let u=0;u1){let c=gn(1,l).concat([0]);n.push(Vt(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(Vt(R(i,[-1,c]),[1,0]),p)}else if(a>1){let u=[a-1].concat(gn(0,a-1));i=Vt(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:ar(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(()=>Om(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 Nt("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 Nt("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 Nt("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)=>Vh(s,t[i].shape.length)):o=[Vh(this.axes,e.shape.length),Vh(this.axes,n.shape.length)],this.normalize&&(e=Rh(e,o[0]),n=Rh(n,o[1])),O7(e,n,o)}interpretAxes(t,e){let n;return Array.isArray(this.axes)?n=this.axes:n=[Vh(this.axes,t.length),Vh(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 Nt("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}};Of.className="Dot";J.registerClass(Of);var Pf=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=St(t);return Ou(()=>Y(Pm(n.shape,0,this.stddev),n),()=>n,e.training||!1)})}};Pf.className="GaussianNoise";J.registerClass(Pf);var Mf=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=St(t);return this.rate>0&&this.rate<1?Ou(()=>{let s=Math.sqrt(this.rate/(1-this.rate));return $(n,Pm(n.shape,1,s))},()=>n,e.training||!1):n})}};Mf.className="GaussianDropout";J.registerClass(Mf);var Lf=class extends _t{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 Ou(()=>{let s=St(t),i=1.6732632423543772,a=1.0507009873554805,u=-i*a,l=pn(Wn(n),this.rate);l=en(l,"float32");let c=((1-this.rate)*(1+this.rate*u**2))**-.5,p=-c*u*this.rate,m=Y($(s,l),$(Y(l,-1),u));return Y($(m,c),p)},()=>St(t),e.training||!1)}return t})}};Lf.className="AlphaDropout";J.registerClass(Lf);function Gh(r,t,e,n,o,s=.001){let i;if(r.rank===2)i=vx(r,t,e,n,o,s);else if(r.rank===3)i=Sx(r,t,e,n,o,s);else if(r.rank===4)i=Nx(r,t,e,n,o,s);else throw new Nt(`batchNormalization is not implemented for array of rank ${r.rank} yet`);return i}function P7(r,t,e,n,o=.001){return B(()=>{let s=yc(r,n),i=s.mean,a=s.variance;return[Gh(r,i,a,e,t,o),i,a]})}function M7(r,t,e,n,o=.001){return B(()=>{let s=yc(r,n),i=s.mean,a=s.variance,u=[];for(let d of gn(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[Gh(r,l,c,m,p,o),i,a]})}function L7(r,t,e,n,o=.001){return y.arraysEqual(n.slice().sort(),gn(0,r.rank-1))?P7(r,t,e,n,o):M7(r,t,e,n,o)}var zf=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=he(t.betaInitializer||"zeros"),this.gammaInitializer=he(t.gammaInitializer||"ones"),this.movingMeanInitializer=he(t.movingMeanInitializer||"zeros"),this.movingVarianceInitializer=he(t.movingVarianceInitializer||"ones"),this.betaConstraint=Ve(t.betaConstraint),this.gammaConstraint=Ve(t.gammaConstraint),this.betaRegularizer=Ce(t.betaRegularizer),this.gammaRegularizer=Ce(t.gammaRegularizer)}build(t){t=Gt(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 Ie({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=gn(0,i),u=this.axis>=0?this.axis:this.axis+i;a.splice(u,1);let l=_o(1,i);l[u]=s[u];let c=a.slice();c.sort();let p=!y.arraysEqual(c,gn(0,i).slice(0,i-1)),m=()=>{if(p){let b=R(this.movingMean.read(),l),w=R(this.movingVariance.read(),l),I=this.center?R(this.beta.read(),l):null,N=this.scale?R(this.gamma.read(),l):null;return Gh(o,b,w,I,N,this.epsilon)}else return Gh(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]=L7(o,this.gamma.read(),this.beta.read(),a,this.epsilon),g=(b,w,I)=>{B(()=>{let N=1-I,E=b.read(),A=$(lt(E,w),N);b.write(lt(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:_e(this.betaInitializer),gammaInitializer:_e(this.gammaInitializer),movingMeanInitializer:_e(this.movingMeanInitializer),movingVarianceInitializer:_e(this.movingVarianceInitializer),betaRegularizer:me(this.betaRegularizer),gammaRegularizer:me(this.gammaRegularizer),betaConstraint:Be(this.betaConstraint),gammaConstraint:Be(this.gammaConstraint)},e=super.getConfig();return Object.assign(t,e),t}};zf.className="BatchNormalization";J.registerClass(zf);var Bf=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=he(t.betaInitializer||"zeros"),this.gammaInitializer=he(t.gammaInitializer||"ones"),this.betaRegularizer=Ce(t.betaRegularizer),this.gammaRegularizer=Ce(t.gammaRegularizer),this.supportsMasking=!0}build(t){t=Gt(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!==Ao(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}=yc(n,this.axis,!0),l=_o(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=xn()),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]],fn(r,n)})}var Vf=class extends _t{constructor(t){if(t==null&&(t={}),super(t),this.dataFormat=t.dataFormat==null?xn():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 Ie({ndim:4})]}computeOutputShape(t){t=Gt(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(()=>z7(St(t),this.padding,this.dataFormat))}getConfig(){let t={padding:this.padding,dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}};Vf.className="ZeroPadding2D";J.registerClass(Vf);function Fb(r,t,e,n,o,s){return B(()=>{Oe(o),kN(s),hn(n),e==null&&(e=[1,1]),n==null&&(n="valid"),o==null&&(o=xn()),s==null&&(s="max"),r=Bh(r,o);let i,a=n==="same"?"same":"valid";return s==="max"?i=ku(r,t,e,a):i=bu(r,t,e,a),o==="channelsFirst"&&(i=Vt(i,[0,3,1,2])),i})}function AR(r,t,e,n,o,s){return B(()=>{Oe(o),kN(s),hn(n),e==null&&(e=[1,1,1]),n==null&&(n="valid"),o==null&&(o=xn()),s==null&&(s="max"),r=WN(r,o);let i,a=n==="same"?"same":"valid";return s==="max"?i=Zx(r,t,e,a):i=Cx(r,t,e,a),o==="channelsFirst"&&(i=Vt(i,[0,4,1,2,3])),i})}var Eb=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 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,hn(this.padding),this.inputSpec=[new Ie({ndim:3})]}computeOutputShape(t){t=Gt(t);let e=En(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=kl(St(t),2);let n=this.poolingFunction(St(t),[this.poolSize[0],1],[this.strides[0],1],this.padding,"channelsLast");return Un(n,[2])})}getConfig(){let t={poolSize:this.poolSize,padding:this.padding,strides:this.strides},e=super.getConfig();return Object.assign(t,e),t}},Gf=class extends Eb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Oe(s),hn(o),Fb(t,e,n,o,s,"max")}};Gf.className="MaxPooling1D";J.registerClass(Gf);var Wf=class extends Eb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Oe(s),hn(o),Fb(t,e,n,o,s,"avg")}};Wf.className="AveragePooling1D";J.registerClass(Wf);var Ab=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 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,Oe(this.dataFormat),hn(this.padding),this.inputSpec=[new Ie({ndim:4})]}computeOutputShape(t){t=Gt(t);let e=this.dataFormat==="channelsFirst"?t[2]:t[1],n=this.dataFormat==="channelsFirst"?t[3]:t[2];return e=En(e,this.poolSize[0],this.padding,this.strides[0]),n=En(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}},Uf=class extends Ab{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Oe(s),hn(o),Fb(t,e,n,o,s,"max")}};Uf.className="MaxPooling2D";J.registerClass(Uf);var Hf=class extends Ab{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Oe(s),hn(o),Fb(t,e,n,o,s,"avg")}};Hf.className="AveragePooling2D";J.registerClass(Hf);var Db=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 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,Oe(this.dataFormat),hn(this.padding),this.inputSpec=[new Ie({ndim:5})]}computeOutputShape(t){t=Gt(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=En(e,this.poolSize[0],this.padding,this.strides[0]),n=En(n,this.poolSize[1],this.padding,this.strides[1]),o=En(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}},qf=class extends Db{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Oe(s),hn(o),AR(t,e,n,o,s,"max")}};qf.className="MaxPooling3D";J.registerClass(qf);var Kf=class extends Db{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Oe(s),hn(o),AR(t,e,n,o,s,"avg")}};Kf.className="AveragePooling3D";J.registerClass(Kf);var $b=class extends _t{constructor(t){super(t),this.inputSpec=[new Ie({ndim:3})]}computeOutputShape(t){return[t[0],t[2]]}call(t,e){throw new Nt}},jf=class extends $b{constructor(t){super(t||{})}call(t,e){return B(()=>{let n=St(t);return ke(n,1)})}};jf.className="GlobalAveragePooling1D";J.registerClass(jf);var Xf=class extends $b{constructor(t){super(t||{})}call(t,e){return B(()=>{let n=St(t);return Sr(n,1)})}};Xf.className="GlobalMaxPooling1D";J.registerClass(Xf);var Rb=class extends _t{constructor(t){super(t),this.dataFormat=t.dataFormat==null?"channelsLast":t.dataFormat,Oe(this.dataFormat),this.inputSpec=[new Ie({ndim:4})]}computeOutputShape(t){return t=t,this.dataFormat==="channelsLast"?[t[0],t[3]]:[t[0],t[1]]}call(t,e){throw new Nt}getConfig(){let t={dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}},Yf=class extends Rb{call(t,e){return B(()=>{let n=St(t);return this.dataFormat==="channelsLast"?ke(n,[1,2]):ke(n,[2,3])})}};Yf.className="GlobalAveragePooling2D";J.registerClass(Yf);var Zf=class extends Rb{call(t,e){return B(()=>{let n=St(t);return this.dataFormat==="channelsLast"?Sr(n,[1,2]):Sr(n,[2,3])})}};Zf.className="GlobalMaxPooling2D";J.registerClass(Zf);var Ob=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=In(o,n);delete e.layer;let i={layer:s};return Object.assign(i,e),new t(i)}},Jf=class extends Ob{constructor(t){super(t),this.supportsMasking=!0}build(t){if(t=Gt(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=Gt(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),HN((i,a)=>[St(this.layer.call(i,e)),[]],t,[],!1,null,null,!1,!0)[1]))}};Jf.className="TimeDistributed";J.registerClass(Jf);function B7(r){da(P$,"BidirectionalMergeMode",r)}var V7="concat",Qf=class extends Ob{constructor(t){super(t);let e=t.layer.getConfig(),n={};n.className=t.layer.getClassName(),n.config=e,this.forwardLayer=In(n),e.goBackwards=e.goBackwards!==!0;let o={};if(o.className=t.layer.getClassName(),o.config=e,this.backwardLayer=In(o),this.forwardLayer.name="forward_"+this.forwardLayer.name,this.backwardLayer.name="backward_"+this.backwardLayer.name,this.mergeMode=t.mergeMode===void 0?V7:t.mergeMode,B7(this.mergeMode),t.weights)throw new Nt("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()):kr(o)}apply(t,e){let n=e==null?null:e.initialState,o=e==null?null:e.constants;e==null&&(e={});let s=UN(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 Ie({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 Nt("Support for constants in Bidirectional layers is not implemented yet.");let u=i[0]instanceof rn;for(let l of i)if(l instanceof rn!==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=hr(s,1));let a;return this.mergeMode==="concat"?a=Om([o,s]):this.mergeMode==="sum"?a=Y(o,s):this.mergeMode==="ave"?a=$(.5,Y(o,s)):this.mergeMode==="mul"?a=$(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){pi(this.forwardLayer.name,()=>{this.forwardLayer.build(t)}),pi(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=In(e.layer);if(delete e.layer,e.numConstants!=null)throw new Nt("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");let o=e;return o.layer=n,new t(o)}};Qf.className="Bidirectional";J.registerClass(Qf);var td=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=St(t),t.dtype!=="float32"&&(t=en(t,"float32")),Y($(t,this.scale),this.offset)))}};td.className="Rescaling";J.registerClass(td);var{resizeBilinear:G7,cropAndResize:W7}=dn,ed=class extends _t{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=G7(t,[e,n]);return en(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=Gt(t);let e=t.length-3,n=t.length-2;return t[e]=this.height,t[n]=this.width,t}};ed.className="CenterCrop";J.registerClass(ed);function DR(r,t,e,n){let o=St(r);if(o.dtype!=="int32"&&(o=en(o,"int32")),t==="int")return o;let s=o.shape;if(o.rank===0&&(o=ar(o,-1)),t==="oneHot"&&o.shape[o.shape.length-1]!==1&&(o=ar(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=gh(a,n,e,i):u=gh(a,[],e,i),t!=="tfIdf")return u;if(n)return $(u,n);throw new z("When outputMode is 'tfIdf', weights must be provided.")}var rd=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=Gt(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=en(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=xl(t),i=Fe(this.numTokens,o).bufferSync().get(0),a=pn(s,0).bufferSync().get(0);if(!(i&&a))throw new z(`Input values must be between 0 < values <= numTokens with numTokens=${this.numTokens}`);return DR(t,this.outputMode,this.numTokens,n)})}};rd.className="CategoryEncoding";J.registerClass(rd);var H7=["bilinear","nearest"],$R=new Set(H7),nd=class extends _t{constructor(t){if(super(t),this.height=t.height,this.width=t.width,t.interpolation)if($R.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=!!t.cropToAspectRatio}computeOutputShape(t){t=Gt(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 dn.resizeBilinear(t,n,!this.cropToAspectRatio);if(this.interpolation==="nearest")return dn.resizeNearestNeighbor(t,n,!this.cropToAspectRatio);throw new Error(`Interpolation is ${this.interpolation} but only ${[...$R]} are supported`)})}};nd.className="Resizing";J.registerClass(nd);var Wh=class{constructor(t){this.seed=t}next(){if(this.seed!==void 0)return this.seed++}};Wh.className="RandomSeed";var Uh=class extends _t{constructor(t){super(t),this.randomGenerator=new Wh(t.seed)}getConfig(){let t={seed:this.randomGenerator.seed},e=super.getConfig();return Object.assign(t,e),t}};Uh.className="BaseRandomLayer";var q7=["bilinear","nearest"],RR=new Set(q7),od=class extends Uh{constructor(t){super(t);let{factor:e,interpolation:n="bilinear"}=t;if(this.factor=e,Array.isArray(this.factor)&&this.factor.length===2)this.widthLower=this.factor[0],this.widthUpper=this.factor[1];else if(!Array.isArray(this.factor)&&this.factor>0)this.widthLower=-this.factor,this.widthUpper=this.factor;else throw new z(`Invalid factor: ${this.factor}. Must be positive number or tuple of 2 numbers`);if(this.widthLower<-1||this.widthUpper<-1)throw new z(`factor must have values larger than -1. Got: ${this.factor}`);if(this.widthUppert?1:0}function _h(r,t){return-1*F7(r,t)}function $o(r){if(r==null)return r;let t=[];for(let e of r)t.indexOf(e)===-1&&t.push(e);return t}function z$(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 ya(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 Oy(r,t,e=0,n=1/0){return fo(e>=0),fo(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 ${B$(r)}.`)}function B$(r){return r===null?"null":Array.isArray(r)?"["+r.map(t=>B$(t)).join(",")+"]":typeof r=="string"?`"${r}"`:`${r}`}function V$(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 Om.set(e,1),e}else return r}var M7=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function X$(r){return!!r.match(M7)}function Y$(r){return r===parseInt(r.toString(),10)}function Ro(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 xn(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=_l(r,1);return Gy(e,[1,t,1])})}function J$(r){let t=[Ro(r.shape)];return R(r,t)}function Q$(r){if(r.rank<=1)throw new z(`batchFlatten requires a minimum rank of 2. Got rank: ${r.rank}.`);let t=[r.shape[0],Ro(r.shape,1)];return R(r,t)}function Tl(r,t,e){return B(()=>{switch(r.rank){case 1:return Nm(r,t,e);case 2:return wh(r,[t,0],[e,r.shape[1]]);case 3:return km(r,[t,0,0],[e,r.shape[1],r.shape[2]]);case 4:return Tc(r,[t,0,0,0],[e,r.shape[1],r.shape[2],r.shape[3]]);case 5:return Pt(r,[t,0,0,0,0],[e,r.shape[1],r.shape[2],r.shape[3],r.shape[4]]);case 6:return Pt(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 ON(r,t,e){return B(()=>{switch(r.rank){case 1:return Nm(r,t,e);case 2:return wh(r,[0,t],[r.shape[0],e]);case 3:return km(r,[0,0,t],[r.shape[0],r.shape[1],e]);case 4:return Tc(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 Ah(r,t,e,n){return B(()=>{switch(r.rank){case 1:return Nm(r,t,e);case 2:switch(n){case 1:return Tl(r,t,e);case 2:return ON(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 Tl(r,t,e);case 2:return km(r,[0,t,0],[r.shape[0],e,r.shape[2]]);case 3:return ON(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 Tl(r,t,e);case 2:return Tc(r,[0,t,0,0],[r.shape[0],e,r.shape[2],r.shape[3]]);case 3:return Tc(r,[0,0,t,0],[r.shape[0],r.shape[1],e,r.shape[3]]);case 4:return ON(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 Pm(r,t=-1){let e;return t<0&&(e=r[0].rank,e!==0?t=e:t=0),t===r[0].rank&&(t=-1),ie(r,t)}function MN(r,t){switch(r.rank){case 1:return Ex([r,t]);case 2:return Ax([r,t],0);case 3:return Dx([r,t],0);case 4:return $x([r,t],0);default:throw new z(`concatAlongFirstAxis() received an unsupported tensor rank: ${r.rank}`)}}function Gy(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 Or(r,t)}function Mm(r,t=0,e=1,n,o){return kc(r,t,e,n,o)}function Fo(r,t,e,n){if(r.rank<2||t.rank<2)throw new kt(`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 kt(`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 Lu.matMul({a:r,b:t,transposeA:!1,transposeB:!1,bias:n?PN(r.rank,n,yn()):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(Vt(t,c),[u,-1]);let p=[...o,...l],m=!1,f=!1;return R(Lu.matMul({a:r,b:t,transposeA:m,transposeB:f,bias:n?PN(r.rank,n,yn()):null,activation:e}),p)}}function Wy(r,t,e){return B(()=>(Array.isArray(t)?t=Ke(t,"int32"):t=Q(t,"int32"),ma(r,t,e)))}function Vc(r){return $(r,r)}function PN(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 bn(r,t,e){return B(()=>(e==null&&(e=yn()),Oe(e),Y(r,PN(r.rank,t,e))))}function tR(r,t=1){if(t!==1)throw new kt(`Support for alpha values other than 1 (${t}) is not implemented yet.`);return ca(r)}function eR(r){return B(()=>ct(r,Y(Ee(r),1)))}function Uy(r,t,e,n){return B(()=>cN(r,t,e,n))}function rR(r){return B(()=>{let t=Y(.5,$(.2,r));return Sr(t,0,1)})}function Bu(r,t,e=!1){return e?r():t()}var nR=["fanIn","fanOut","fanAvg"],oR=["normal","uniform","truncatedNormal"];function L7(r){ya(nR,"FanMode",r)}function z7(r){ya(oR,"Distribution",r)}var wn=class extends J.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}},Lm=class extends wn{apply(t,e){return Te(t,e)}};Lm.className="Zeros";J.registerClass(Lm);var Vu=class extends wn{apply(t,e){return dr(t,e)}};Vu.className="Ones";J.registerClass(Vu);var zm=class extends wn{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(()=>$(ft(this.value),dr(t,e)))}getConfig(){return{value:this.value}}};zm.className="Constant";J.registerClass(zm);var Bm=class extends wn{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 Hn(t,this.minval,this.maxval,e,this.seed)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}};Bm.className="RandomUniform";J.registerClass(Bm);var Vm=class extends wn{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 kt(`randomNormal does not support dType ${e}.`);return Mm(t,this.mean,this.stddev,e,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};Vm.className="RandomNormal";J.registerClass(Vm);var Gm=class extends wn{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 kt(`truncatedNormal does not support dType ${e}.`);return Am(t,this.mean,this.stddev,e,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};Gm.className="TruncatedNormal";J.registerClass(Gm);var Wm=class extends wn{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 $(this.gain,Cc(t[0]))})}getConfig(){return{gain:this.gain}}};Wm.className="Identity";J.registerClass(Wm);function B7(r,t="channelsLast"){let e,n;if(Oe(t),r.length===2)e=r[0],n=r[1];else if([3,4,5].indexOf(r.length)!==-1){if(t==="channelsFirst"){let o=Ro(r,2);e=r[1]*o,n=r[0]*o}else if(t==="channelsLast"){let o=Ro(r,0,r.length-2);e=r[r.length-2]*o,n=r[r.length-1]*o}}else{let o=Ro(r);e=Math.sqrt(o),n=Math.sqrt(o)}return[e,n]}var Yr=class extends wn{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,L7(this.mode),this.distribution=t.distribution==null?"normal":t.distribution,z7(this.distribution),this.seed=t.seed}apply(t,e){let n=B7(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 kt(`${this.getClassName()} does not support dType ${e}.`);return Am(t,0,a,e,this.seed)}else{let a=Math.sqrt(3*i);return Hn(t,-a,a,e,this.seed)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}};Yr.className="VarianceScaling";J.registerClass(Yr);var Gc=class extends Yr{constructor(t){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:t==null?null:t.seed})}getClassName(){return Yr.className}};Gc.className="GlorotUniform";J.registerClass(Gc);var Wc=class extends Yr{constructor(t){super({scale:1,mode:"fanAvg",distribution:"normal",seed:t==null?null:t.seed})}getClassName(){return Yr.className}};Wc.className="GlorotNormal";J.registerClass(Wc);var Uc=class extends Yr{constructor(t){super({scale:2,mode:"fanIn",distribution:"normal",seed:t==null?null:t.seed})}getClassName(){return Yr.className}};Uc.className="HeNormal";J.registerClass(Uc);var Hc=class extends Yr{constructor(t){super({scale:2,mode:"fanIn",distribution:"uniform",seed:t==null?null:t.seed})}getClassName(){return Yr.className}};Hc.className="HeUniform";J.registerClass(Hc);var qc=class extends Yr{constructor(t){super({scale:1,mode:"fanIn",distribution:"normal",seed:t==null?null:t.seed})}getClassName(){return Yr.className}};qc.className="LeCunNormal";J.registerClass(qc);var Kc=class extends Yr{constructor(t){super({scale:1,mode:"fanIn",distribution:"uniform",seed:t==null?null:t.seed})}getClassName(){return Yr.className}};Kc.className="LeCunUniform";J.registerClass(Kc);var Um=class extends wn{constructor(t){super(),this.DEFAULT_GAIN=1,this.ELEMENTS_WARN_SLOW=2e3,this.gain=t.gain==null?this.DEFAULT_GAIN:t.gain,this.seed=t.seed}apply(t,e){return B(()=>{if(t.length<2)throw new kt("Shape must be at least 2D.");if(e!=="int32"&&e!=="float32"&&e!==void 0)throw new TypeError(`Unsupported data type ${e}.`);e=e;let n=y.sizeFromShape(t.slice(0,-1)),o=t[t.length-1],s=n*o;s>this.ELEMENTS_WARN_SLOW&&console.warn(`Orthogonal initializer is being called on a matrix with more than ${this.ELEMENTS_WARN_SLOW} (${s}) elements: Slowness may result.`);let i=[Math.max(o,n),Math.min(o,n)],a=Mm(i,0,1,e,this.seed),u=fN.qr(a,!1),l=u[0],p=u[1].flatten().stridedSlice([0],[Math.min(o,n)*Math.min(o,n)],[Math.min(o,n)+1]);return l=$(l,p.sign()),nn*o);return t}var lR="Variable",Dh=class{constructor(t,e="float32",n=lR,o=!0,s=null){this.dtype=e==null?"float32":e,this.shape=t.shape,this.id=Ly(),n=n==null?lR:n,this.originalName=zy(n),this.name=By(this.originalName),this.trainable_=o,this.constraint=s,this.val=hy(t,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(t){return this.assertNotDisposed(),G7(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 G7(r,t){if(r.shape.toString()!==t.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(r.shape)+" vs. "+JSON.stringify(t.shape))}function $h(r){return r.map(t=>t.read())}function Km(r){r.forEach(t=>{t[0].write(t[1])})}var Ie=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||{}}},nn=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=Ly(),i!=null&&(this.originalName=zy(i),this.name=By(this.originalName)),this.rank=e.length}},W7=0,El=class{constructor(t,e){this.callArgs=e,this.id=W7++,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}}},U7=0,_t=class extends J.Serializable{constructor(t={}){super(),this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=U7++,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=Do(n)+"_"+zu(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 Xr(`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 En(`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 En(`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 En(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new En(`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=we(t),this.inputSpec==null||this.inputSpec.length===0)return;let e=we(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 we(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=we(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 kt("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return i}else{let i=H7(t),a=this.computeOutputShape(i),u,l=q7(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 nn(l,c,this,we(t),e,this.name,p)):u=new nn(l,a,this,we(t),e,this.name),this.addInboundNode(t,u,null,null,i,a,e),this._refCount++,this.activityRegularizer!=null)throw new kt("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 En(`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 En(`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 Xr(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return qm(this.weights)}build(t){this.built=!0}getWeights(t=!1){return $h(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=$h(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=we(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=we(t);e=we(e),n=we(n),o=we(o),s=Hm(s),i=Hm(i);let l=[],c=[],p=[];for(let m of u)l.push(m.sourceLayer),c.push(m.nodeIndex),p.push(m.tensorIndex);new El({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 H7(r){r=we(r);let t=[];for(let e of r)t.push(e.shape);return Tr(t)}function q7(r){return"float32"}function LN(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=Ky.get(c),m;if(p==null){let d=j7(i,t);p=d.sorted,m=d.recipientCounts,Ky.put(c,p),jy.put(c,m)}m={},o||Object.assign(m,jy.get(c));let f=new Oo(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=uR(r[0],t);e=o.sorted,n=o.recipientMap}else{let o=new Set;for(let s of r){let{sorted:i,recipientMap:a}=uR(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:X7(n)}}function X7(r){let t={};for(let e in r)t[e]=r[e].size;return t}function uR(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 Y7(r){let t;if(r.sourceLayer.inboundNodes.length===1)t=r.sourceLayer.output;else{let e=null;for(let n=0;n100,cR);var fR={};Kt(fR,{maxNorm:()=>J7,minMaxNorm:()=>eZ,nonNeg:()=>tZ,unitNorm:()=>Q7});function zN(r,t){return B(()=>Ne(pt($(r,r),t,!0)))}var Xc=class extends J.Serializable{getConfig(){return{}}},jm=class extends Xc{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=zN(t,this.axis),n=Sr(e,0,this.maxValue);return $(t,ct(n,Y(cr(),e)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}};jm.className="MaxNorm";J.registerClass(jm);var Xm=class extends Xc{constructor(t){super(),this.defaultAxis=0,this.axis=t.axis!=null?t.axis:this.defaultAxis}apply(t){return B(()=>ct(t,Y(cr(),zN(t,this.axis))))}getConfig(){return{axis:this.axis}}};Xm.className="UnitNorm";J.registerClass(Xm);var Ym=class extends Xc{apply(t){return Mr(t)}};Ym.className="NonNeg";J.registerClass(Ym);var Zm=class extends Xc{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=zN(t,this.axis),n=Y($(this.rate,Sr(e,this.minValue,this.maxValue)),$(1-this.rate,e));return $(t,ct(n,Y(cr(),e)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}};Zm.className="MinMaxNorm";J.registerClass(Zm);var pR={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function Be(r){return Fm(r)}function mR(r,t={}){return xa(r,J.SerializationMap.getMap().classNameMap,t,"constraint")}function Ve(r){if(r==null)return null;if(typeof r=="string"){let e={className:r in pR?pR[r]:r,config:{}};return mR(e)}else return r instanceof Xc?r:mR(r)}function J7(r){return new jm(r)}function Q7(r){return new Xm(r)}function tZ(){return new Ym}function eZ(r){return new Zm(r)}var dR={};Kt(dR,{constant:()=>oZ,glorotNormal:()=>pZ,glorotUniform:()=>cZ,heNormal:()=>mZ,heUniform:()=>fZ,identity:()=>lZ,leCunNormal:()=>dZ,leCunUniform:()=>hZ,ones:()=>nZ,orthogonal:()=>gZ,randomNormal:()=>iZ,randomUniform:()=>sZ,truncatedNormal:()=>aZ,varianceScaling:()=>uZ,zeros:()=>rZ});function rZ(){return new Lm}function nZ(){return new Vu}function oZ(r){return new zm(r)}function sZ(r){return new Bm(r)}function iZ(r){return new Vm(r)}function aZ(r){return new Gm(r)}function lZ(r){return new Wm(r)}function uZ(r){return new Yr(r)}function cZ(r){return new Gc(r)}function pZ(r){return new Wc(r)}function mZ(r){return new Uc(r)}function fZ(r){return new Hc(r)}function dZ(r){return new qc(r)}function hZ(r){return new Kc(r)}function gZ(r){return new Um(r)}var jR={};Kt(jR,{Layer:()=>_t,RNN:()=>Dn,RNNCell:()=>Rl,activation:()=>FJ,add:()=>WJ,alphaDropout:()=>k9,average:()=>UJ,averagePooling1d:()=>QN,averagePooling2d:()=>tk,averagePooling3d:()=>ek,avgPool1d:()=>QJ,avgPool2d:()=>e9,avgPool3d:()=>n9,avgPooling1d:()=>t9,avgPooling2d:()=>r9,avgPooling3d:()=>o9,batchNormalization:()=>YJ,bidirectional:()=>y9,categoryEncoding:()=>D9,centerCrop:()=>E9,concatenate:()=>HJ,conv1d:()=>NJ,conv2d:()=>kJ,conv2dTranspose:()=>TJ,conv3d:()=>_J,conv3dTranspose:()=>EJ,convLstm2d:()=>d9,convLstm2dCell:()=>h9,cropping2D:()=>DJ,dense:()=>OJ,depthwiseConv2d:()=>RJ,dot:()=>XJ,dropout:()=>PJ,elu:()=>bJ,embedding:()=>GJ,flatten:()=>LJ,gaussianDropout:()=>N9,gaussianNoise:()=>S9,globalAveragePooling1d:()=>s9,globalAveragePooling2d:()=>i9,globalMaxPool1d:()=>w9,globalMaxPool2d:()=>I9,globalMaxPooling1d:()=>UR,globalMaxPooling2d:()=>HR,gru:()=>l9,gruCell:()=>u9,input:()=>KN,inputLayer:()=>yJ,layerNormalization:()=>ZJ,leakyReLU:()=>IJ,lstm:()=>c9,lstmCell:()=>p9,masking:()=>T9,maxPool1d:()=>C9,maxPool2d:()=>v9,maxPooling1d:()=>qR,maxPooling2d:()=>KR,maxPooling3d:()=>a9,maximum:()=>qJ,minimum:()=>KJ,multiply:()=>jJ,permute:()=>VJ,prelu:()=>CJ,randomWidth:()=>$9,reLU:()=>wJ,repeatVector:()=>zJ,rescaling:()=>_9,reshape:()=>BJ,resizing:()=>A9,rnn:()=>g9,separableConv2d:()=>AJ,simpleRNN:()=>m9,simpleRNNCell:()=>f9,softmax:()=>vJ,spatialDropout1d:()=>MJ,stackedRNNCells:()=>x9,thresholdedReLU:()=>SJ,timeDistributed:()=>b9,upSampling2d:()=>$J,zeroPadding2d:()=>JJ});async function ba(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;sY(this.totals[o],$(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=$(ct(1,this.seen),this.totals[n]);e[n]=o,this.totals[n].dispose(),$e(e[n])}))}},Zy=class extends Al{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 Jy(n,t))}var In=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}`),In.checkForDuplicate(e),In.constructors[t]==null&&(In.constructors[t]=[]),In.constructors[t].push(e)}static checkForDuplicate(t){for(let e in In.constructors)In.constructors[+e].forEach(o=>{if(o===t)throw new z("Duplicate callback constructor.")})}static clear(){In.constructors={}}static createCallbacks(t){let e=[];for(let n in In.constructors){let o=+n;t>=o&&e.push(...In.constructors[o])}return e.map(n=>new n)}};In.constructors={};function tb(r,t,e,n,o,s,i,a,u){let l=new Zy,c=[new BN,...In.createCallbacks(t)];r!=null&&c.push(...r),c.push(l);let p=new Yy(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 Cn(r,t={},e=!1){return xa(r,J.SerializationMap.getMap().classNameMap,t,"layer",e)}function Rh(r,t){return B(()=>{r.dtype!=="float32"&&(r=Q(r,"float32"));let e=pt(Vc(r),t,!0),n=No(e.shape,cr()),o=Ne(_n(e,n));return ct(r,o)})}function wa(r,t){return B(()=>ke(Vc(lt(t,r)),-1))}function Jm(r,t){return B(()=>ke(Ee(lt(t,r)),-1))}function Gu(r,t){return B(()=>{let e=lt(r,t),n=Sr(Ee(r),cr(),Number.MAX_VALUE),o=Ee(ct(e,n));return $(100,ke(o,-1))})}function yZ(r,t){return B(()=>{let e=Sr(t,cr(),Number.MAX_VALUE),n=kr(Y(1,e)),o=Sr(r,cr(),Number.MAX_VALUE),s=kr(Y(1,o));return ke(Vc(lt(n,s)),-1)})}function bZ(r,t){return B(()=>{let e=_n(0,lt(1,$(r,t)));return ke(Vc(e),-1)})}function wZ(r,t){return B(()=>{let e=_n(0,lt(1,$(r,t)));return ke(e,-1)})}function IZ(r,t){return B(()=>{let e=pt($(r,t),-1),n=Nr($(lt(1,r),t),-1);return _n(0,Y(1,lt(n,e)))})}function CZ(r,t){return B(()=>{let e=Math.log(2),n=lt(t,r),o=lt(Y(n,pi($(-2,n))),e);return ke(o,-1)})}function Yc(r,t,e=!1){return B(()=>{if(e)t=Fu(t);else{let n=pt(t,t.shape.length-1,!0);t=ct(t,n)}return t=Sr(t,cr(),1-cr()),Ut(pt($(Q(r,"float32"),kr(t)),t.shape.length-1))})}function Qm(r,t,e=!1){return B(()=>{let n=Q(pa(J$(r)),"int32");t=Sr(t,cr(),1-cr());let o=t.shape,s=R(fa(n,o[o.length-1]),o);return Yc(s,t,e)})}function vZ(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=Mr(t),n=Ut(Ee(t));return Y(lt(e,$(t,r)),Eu(ir(n)))})}function tf(r,t){return B(()=>{let e;return e=Sr(t,cr(),1-cr()),e=kr(ct(e,lt(1,e))),ke(vZ(r,e),-1)})}function SZ(r,t){return B(()=>{let e=Sr(r,cr(),1),n=Sr(t,cr(),1);return pt($(r,kr(ct(e,n))),-1)})}function NZ(r,t){return B(()=>{let e=kr(Y(cr(),t));return ke(lt(t,$(r,e)),-1)})}function Oh(r,t){return B(()=>{let e=Rh(r,-1),n=Rh(t,-1),o=$(e,n);return Ut(pt(o,-1))})}var Fh={meanSquaredError:wa,meanAbsoluteError:Jm,meanAbsolutePercentageError:Gu,meanSquaredLogarithmicError:yZ,squaredHinge:bZ,hinge:wZ,categoricalHinge:IZ,logcosh:CZ,categoricalCrossentropy:Yc,sparseCategoricalCrossentropy:Qm,binaryCrossentropy:tf,kullbackLeiblerDivergence:SZ,poisson:NZ,cosineProximity:Oh};function eb(r){if(typeof r=="string"){if(r in Fh)return Fh[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 Ph(r,t){return B(()=>{let e=$(.5,Ir(t)),n=rn(Fe(t,e),r.dtype);return ke(Fr(r,n),-1)})}function Mh(r,t){return B(()=>rn(Fr(oa(r,-1),oa(t,-1)),"float32"))}function xR(r,t){return B(()=>Q(pt(Pr(Fr(r,1),Fr(t,1))),"float32"))}function kZ(r,t){return B(()=>Q(pt(Pr(Fr(r,1),Fr(t,0))),"float32"))}function TZ(r,t){return B(()=>Q(pt(Pr(Fr(r,0),Fr(t,1))),"float32"))}function VN(r,t){return B(()=>{let e=xR(r,t),n=TZ(r,t),o=Y(e,n);return Q(be(Fe(o,0),ct(e,o),0),"float32")})}function yR(r,t){return B(()=>{let e=xR(r,t),n=kZ(r,t),o=Y(e,n);return Q(be(Fe(o,0),ct(e,o),0),"float32")})}function nb(r,t){return tf(r,t)}function ob(r,t){return r.rank===t.rank&&(r=qn(r,[r.rank-1])),t=oa(t,-1),t.dtype!==r.dtype&&(t=Q(t,r.dtype)),Q(Fr(r,t),"float32")}var _Z=wa,EZ=wa,AZ=Jm,DZ=Jm,$Z=Gu,RZ=Gu,Lh=Yc,FZ=Oh,GN=Qm,rb={binaryAccuracy:Ph,categoricalAccuracy:Mh,precision:VN,categoricalCrossentropy:Lh,sparseCategoricalCrossentropy:GN,mse:_Z,MSE:EZ,mae:AZ,MAE:DZ,mape:$Z,MAPE:RZ,cosine:FZ};function bR(r){if(typeof r=="string"&&r in rb)return rb[r];if(typeof r!="string"&&r!=null)return r;throw new z(`Unknown metric ${r}`)}function zh(r){if(fo(r!==null,`Unknown LossOrMetricFn ${r}`),typeof r=="string")return r;{let t;for(let e of Object.keys(Fh))if(Fh[e]===r){t=e;break}if(t!==void 0)return t;for(let e of Object.keys(rb))if(rb[e]===r){t=e;break}return t!==void 0?t:r.name}}function IR(r){let t={Adagrad:()=>zc.adagrad(.01),Adadelta:()=>zc.adadelta(1,.95,cr()),Adam:()=>zc.adam(.001,.9,.999,cr()),Adamax:()=>zc.adamax(.002,.9,.999,cr(),0),RMSProp:()=>zc.rmsprop(.001,.9,0,cr()),SGD:()=>zc.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 UN(r,t,e=!1){if(r==null||typeof r!="object"||Object.getPrototypeOf(r)!==Object.prototype||!WN(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 WN(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"||!WN(r[e]))return!1;return!0}else if(Array.isArray(r)){for(let t of r)if(!WN(t))return!1;return!0}else return!1;else{let t=typeof r;return t==="string"||t==="number"||t==="boolean"}}function CR(r,t,e,n=console.log){let o=MZ(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)),sb(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 sb(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 LZ(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()];sb(a,t,e)}function zZ(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)}`);$o(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,I=b.nodeIndex,N=b.tensorIndex;this.outputLayers.push(w),this.outputLayersNodeIndices.push(I),this.outputLayersTensorIndices.push(N)}for(let b of this.inputs){let w=b.sourceLayer,I=b.nodeIndex,N=b.tensorIndex;fo(I===0,"input layer has >1 nodes"),fo(N===0,"input layer has >1 tensors"),this.inputLayers.push(w),this.inputLayersNodeIndices.push(I),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,I,N,E,A)=>{(N==null||E==null||A==null)&&(N=b.sourceLayer,E=b.nodeIndex,A=b.tensorIndex);let D=N.inboundNodes[E];if(I.indexOf(D)!==-1)throw new Xr(`The tensor ${b.name} at layer "${N.name}" is part of a cycle.`);if(w.indexOf(D)!==-1)return;this.containerNodes.add(Kn.nodeKey(N,E)),N.id in i||(i[N.id]=Object.keys(i).length),I.indexOf(D)===-1&&I.push(D);let F=D.inboundLayers.length;for(let P=0;P=0;)I.splice(I.indexOf(D),1);a.push(D)},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],I=o[b.outboundLayer.id]==null?0:o[b.outboundLayer.id];w=Math.max(w,I),o[b.outboundLayer.id]=w,s[b.outboundLayer.id]=b.outboundLayer,e[b.id]=w;for(let N=0;NparseInt(b,10)).sort(_h);this.layers=[];for(let b of d){let w=f[b];w.sort((I,N)=>{let E=i[I.id],A=i[N.id];return EA?1:0});for(let I of w)I instanceof Kn&&this.internalContainerRefs.push(I),this.layers.push(I)}this.layersByDepth=f,d=Object.keys(m).map(b=>parseInt(b,10)).sort(_h);let h=this.inputs.slice(),g=[];for(let b of d)for(let w of m[b]){let I=w.outboundLayer;if(I!=null){for(let N of w.inputTensors)if(h.indexOf(N)===-1)throw new Xr(`Graph disconnected: cannot obtain value for tensor ${N} at layer "${I.name}". The following previous layers were accessed without issue: ${g}`);for(let N of w.outputTensors)h.push(N);g.push(I.name)}}this.nodesByDepth=m;let x=this.layers.map(b=>b.name);for(let b of x){let w=x.filter(I=>I===b).length;if(w!==1)throw new Xr(`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 El({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}`)}Km(s)}updatedConfig(){let t=this.getConfig(),e={};return e.className=this.getClassName(),e.config=t,e.kerasVersion=`tfjs-layers ${ef}`,e.backend="TensorFlow.js",e}toJSON(t,e=!0){let n=ib(this.updatedConfig());return e?JSON.stringify(n):n}call(t,e){return B(()=>{t=we(t);let n=new Oo;for(let o=0;o{t=we(t);let n;return e==null?n=Ao(null,t.length):n=we(e),this.runInternalGraph(t,n)[1]})}computeOutputShape(t){let e=Hm(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(_h);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(_h);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[I,N]=d[0];h.mask==null&&(h.mask=N),b=we(p.call(I,h)),w=we(p.computeMask(I,N)),g=[I],x=[N]}else g=d.map(I=>I[0]),x=d.map(I=>I[1]),h.mask==null&&(h.mask=x),b=we(p.call(g,h)),w=we(p.computeMask(g,x));if(p.activityRegularizer)throw new kt("LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet.");for(let I=0;I{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=Cn(g,e.customObjects!=null?e.customObjects:{});b.setFastWeightInitDuringBuild(o),s[x]=b,g.inboundNodes.forEach(I=>{if(!(I instanceof Array))throw new z(`Corrupted configuration, expected array for nodeData: ${I}`);a(b,I)})}let c=e.name,p=e.layers;for(let g of p)l(g);for(;!z$(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];fo(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];fo(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 BZ(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 ab(r,t){return BZ(r,t,"classWeight")}async function lb(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 cn(r);if(r.shape.length===2){if(r.shape[1]>1)return oa(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());Tt(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 SR(r,t){return $(r,t)}var VZ=32;function TR(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=NR("input",r.inputNames,e),i=NR("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 NR(r,t,e){if(e instanceof Ot)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 GZ(r){if(r.length===3)throw new kt("Validation with sample weights is not implemented yet.");return{xs:r[0],ys:r[1]}}async function _R(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(kR(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=GZ(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=Qy(e.callbacks,e.yieldEvery),p=e.verbose==null?1:e.verbose,{callbackList:m,history:f}=tb(c,p,e.epochs,null,null,WZ(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 I;kR(e.validationData)?I=we(await r.evaluateDataset(e.validationData,{batches:e.validationBatches})):I=we(r.evaluate(s,i,{batchSize:e.validationBatchSize==null?VZ:e.validationBatchSize,verbose:0}));for(let N=0;N0)throw new kt("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=UZ(t)?t:await t.iterator(),a=0,u=0;for(;!n||u{if(l.value){let{xs:c,ys:p}=TR(r,l.value),m=c.concat(p),f=B(()=>o(m));if(Tt(m),u===0)for(let h=0;hY(s[h],$(d,g))),u>0&&Tt(x)}Tt(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 rf(r,t,e){return r==null?[null]:Array.isArray(r)?r.map(n=>Tl(n,t,e-t)):Tl(r,t,e-t)}function cb(r,t){return B(()=>r==null?null:Array.isArray(r)?r.map(e=>cb(e,t)):Wy(r,t.dtype==="int32"?t:Q(t,"int32")))}function pb(r,t){let e=[],n=0,o=null;for(;n=r&&(o=r),e.push([n,o]),n=o;return e}function HN(r){let t=[];r instanceof Ot&&(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 Ot)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 HZ(r){return r instanceof Ot}function qN(r){return Array.isArray(r)}function AR(r){return!HZ(r)&&!qN(r)}function DR(r,t,e,n=!0,o=""){if(t==null||t.length===0){if(r!=null){let i=!1;if(qN(r)&&r.length>0)i=!0;else if(AR(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(AR(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(qN(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=HN(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 qZ(r,t,e){let n=$o(r.map(s=>s.shape[0]));n.sort();let o=$o(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 KZ(r,t,e){let n=[wa,tf,Yc];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 XZ="layers-model",jn=class extends Kn{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).");CR(this,t,e,n)}compile(t){if(t.loss==null&&(t.loss=[]),this.loss=t.loss,typeof t.optimizer=="string")this.optimizer_=IR(t.optimizer),this.isOptimizerOwned=!0;else{if(!(t.optimizer instanceof Kr))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(eb(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=>eb(a))}else{let i=eb(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=jZ(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])};hi("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]===tf?["accuracy","acc"].indexOf(d)!==-1?m=Ph:["crossentropy","ce"].indexOf(d)!==-1&&(m=nb):this.lossFunctions[i]===Qm?["accuracy","acc"].indexOf(d)!==-1?m=ob:["crossentropy","ce"].indexOf(d)!==-1&&(m=GN):["accuracy","acc"].indexOf(d)!==-1?m=Mh:["crossentropy","ce"].indexOf(d)!==-1&&(m=Lh);let x;["accuracy","acc"].indexOf(d)!==-1?x="acc":["crossentropy","ce"].indexOf(d)!==-1&&(x="ce"),f=m,p=c+x}else f=bR(d),p=c+zh(d);let h;hi(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;ub(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{Po(i[0],t),Po(i[1],e)}}async evaluateDataset(t,e){return this.makeTestFunction(),ER(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 Oo;if(t instanceof Ot&&(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 kt("Verbose predictLoop() is not implemented yet.");let s=pb(o,e),i=this.outputs.map(a=>[]);for(let a=0;a{let l=s[a][0],c=s[a][1],p=rf(t,l,c),m=[];if(Array.isArray(p))for(let d=0;di[c].push(l));return Tr(i.map(a=>ie(a,0)))})}predict(t,e={}){let n=HN(t);$R(n,this.inputNames,this.feedInputShapes,!1);try{let o=e.batchSize==null?32:e.batchSize;return ub(o),this.predictLoop(n,o)}finally{Po(n,t)}}predictOnBatch(t){$R(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 Xr("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=ab(o,this.outputNames);l=[];for(let p=0;p{let i=this.checkNumSamples(e,n,s,"steps"),a=[];if(o>0)throw new kt("Verbose mode is not implemented yet.");if(s!=null)throw new kt("steps mode in testLoop() is not implemented yet");{let u=pb(i,n),l=Ke(xn(0,i));for(let c=0;c1){let i=$N(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=Y(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 kt("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=rf(o,F,P),i=o,o=rf(o,0,F),p=rf(s,F,P),a=s,s=rf(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(),I=this.getDedupedMetricsNames(),N,E;g?(this.makeTestFunction(),N=this.testFunction,E=I.slice().concat(I.map(F=>"val_"+F))):(N=null,x=[],E=I.slice());let A=Qy(n.callbacks,n.yieldEvery);return await this.fitLoop(w,b,I,f,n.epochs,n.verbose,A,N,x,n.shuffle,E,n.initialEpoch,null,null)}finally{this.isTraining=!1,Po(o,t),Po(s,e),Po(i,t),Po(a,e),Po(c,u),Po(p,l),m!=null&&Tt(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=xn(0,g)),i==null&&(i=1);let{callbackList:b,history:w}=tb(a,i,s,m,g,f,o,h,p);b.setModel(this),this.history=w,await b.onTrainBegin(),this.stopTraining_=!1;for(let I=m;I{let P=A[D][0],V=A[D][1],G=Tl(E,P,V-P);F.batch=D,F.size=V-P;let W=cb(e,G),q=t(W);for(let H=0;HDo(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]=Do(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[Do(zh(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(t=>Do(zh(t)));{let t={};for(let e in this.metrics)t[e]=Do(zh(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=Zc(t.optimizer_config),n=Cn(e),o;if(typeof t.loss=="string")o=kl(t.loss);else if(Array.isArray(t.loss))o=t.loss.map(i=>kl(i));else if(t.loss!=null){o={};for(let i in t.loss)o[i]=kl(t.loss[i])}let s;if(Array.isArray(t.metrics))s=t.metrics.map(i=>kl(i));else if(t.metrics!=null){s={};for(let i in t.metrics)s[i]=kl(t.metrics[i])}this.compile({loss:o,metrics:s,optimizer:n})}async save(t,e){if(typeof t=="string"){let l=Lr.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 Lr.encodeWeights(this.getNamedWeights(e)),o=!1,s=null,a={modelTopology:this.toJSON(s,o),format:XZ,generatedBy:`TensorFlow.js tfjs-layers v${ef}`,convertedBy:null};if((e==null?!1:e.includeOptimizer)&&this.optimizer!=null){a.trainingConfig=this.getTrainingConfig();let l="optimizer",{data:c,specs:p}=await Lr.encodeWeights(await this.optimizer.getWeights(),l);n.specs.push(...p),n.data=Lr.concatenateArrayBuffers([n.data,c])}return this.userDefinedMetadata!=null&&(UN(this.userDefinedMetadata,this.name,!0),a.userDefinedMetadata=this.userDefinedMetadata),a.weightData=n.data,a.weightSpecs=n.specs,t.save(a)}setUserDefinedMetadata(t){UN(t,this.name),this.userDefinedMetadata=t}getUserDefinedMetadata(){return this.userDefinedMetadata}};jn.className="Model";J.registerClass(jn);var mb=class extends jn{};mb.className="Functional";J.registerClass(mb);async function RR(r,t){"modelTopology"in r||(r={modelTopology:r}),r=r;let e=r.modelTopology;e.model_config!=null&&(e=e.model_config);let n=Zc(e),o=Cn(n,t);if(r.weightsManifest!=null){let s=await Lr.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),Tt(s)}return o}async function FR(r,t){if(t==null&&(t={}),typeof r=="string"){let e=Lr.getLoadHandlers(r,t);if(e.length===0)e.push(Lr.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 YZ(r,void 0,t)}async function YZ(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=Cn(Zc(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}=ZZ(n.weightData,n.weightSpecs);a.loadWeights(l,s),a.optimizer!=null&&c.length>0&&await a.optimizer.setWeights(c),Tt(l),Tt(c.map(p=>p.tensor))}return a}function ZZ(r,t){let e=Lr.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 Ia=class extends jn{constructor(t){if(super({inputs:[],outputs:[]}),t=t||{},this.trainable=!0,this.built=!1,this.name=t.name!=null?t.name:zu("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 Ia||t instanceof jn,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=qy({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=LN(this.outputs[0])}this.inboundNodes=[],new El({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:Ao(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(Gt(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 jn({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 Xr("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 Xr("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 Xr("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 Xr("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 Ia))throw new kt(`Sequential.fromConfig called on non-Sequential input: ${a}`);for(let u of s){let c=Cn(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}}};Ia.className="Sequential";J.registerClass(Ia);function JZ(r){return new jn(r)}function QZ(r){return new Ia(r)}function KN(r){return qy(r)}function tJ(r,t){In.registerCallbackConstructor(r,t)}var on=class extends J.Serializable{getConfig(){return{}}},fb=class extends on{apply(t,e=1){return tR(t,e)}};fb.className="elu";J.registerClass(fb);var db=class extends on{apply(t){return Im(t)}};db.className="selu";J.registerClass(db);var hb=class extends on{apply(t){return Mr(t)}};hb.className="relu";J.registerClass(hb);var gb=class extends on{apply(t){return B(()=>mo(6,Mr(t)))}};gb.className="relu6";J.registerClass(gb);var xb=class extends on{apply(t){return t}};xb.className="linear";J.registerClass(xb);var yb=class extends on{apply(t){return en(t)}};yb.className="sigmoid";J.registerClass(yb);var bb=class extends on{apply(t){return rR(t)}};bb.className="hardSigmoid";J.registerClass(bb);var wb=class extends on{apply(t){return pi(t)}};wb.className="softplus";J.registerClass(wb);var Ib=class extends on{apply(t){return eR(t)}};Ib.className="softsign";J.registerClass(Ib);var Cb=class extends on{apply(t){return ia(t)}};Cb.className="tanh";J.registerClass(Cb);var nf=class extends on{apply(t,e=-1){return Fu(t,e)}};nf.className="softmax";J.registerClass(nf);var vb=class extends on{apply(t,e=-1){return hm(t,e)}};vb.className="logSoftmax";J.registerClass(vb);var Sb=class extends on{apply(t,e=1){return B(()=>$(en($(t,e)),t))}};Sb.className="swish";J.registerClass(Sb);var Nb=class extends on{apply(t){return B(()=>$(t,ia(pi(t))))}};Nb.className="mish";J.registerClass(Nb);function yi(r){return r.getClassName()}function jN(r,t={}){return xa(r,J.SerializationMap.getMap().classNameMap,t,"activation")}function bi(r){if(r==null){let t={};return t.className="linear",t.config={},jN(t)}if(typeof r=="string"){let t={};return t.className=r,t.config={},jN(t)}else return r instanceof on?r:jN(r)}function XN(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 kb=class extends J.Serializable{},Wu=class extends kb{constructor(t){super(),XN(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=Te([1]);return this.hasL1&&(e=Y(e,pt($(this.l1,Ee(t))))),this.hasL2&&(e=Y(e,pt($(this.l2,Vc(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";J.registerClass(Wu);function MR(r){return XN(r),new Wu({l1:r!=null?r.l1:null,l2:0})}function LR(r){return XN(r),new Wu({l2:r!=null?r.l2:null,l1:0})}var OR={l1l2:"L1L2"};function me(r){return Fm(r)}function PR(r,t={}){return xa(r,J.SerializationMap.getMap().classNameMap,t,"regularizer")}function Ce(r){if(r==null)return null;if(typeof r=="string"){let e={className:r in OR?OR[r]:r,config:{}};return PR(e)}else return r instanceof kb?r:PR(r)}var of=class extends _t{constructor(t){super(t==null?{}:t),this.supportsMasking=!0,t!=null&&(this.maxValue=t.maxValue)}call(t,e){t=St(t);let n=Mr(t);return this.maxValue!=null&&(n=Sr(n,0,this.maxValue)),n}computeOutputShape(t){return t}getConfig(){let t={maxValue:this.maxValue},e=super.getConfig();return Object.assign(t,e),t}};of.className="ReLU";J.registerClass(of);var sf=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=St(t);return _u(n,this.alpha)}computeOutputShape(t){return t}getConfig(){let t={alpha:this.alpha},e=super.getConfig();return Object.assign(t,e),t}};sf.className="LeakyReLU";J.registerClass(sf);var af=class extends _t{constructor(t){if(super(t==null?{}:t),this.DEFAULT_ALPHA_INITIALIZER="zeros",t==null&&(t={}),this.supportsMasking=!0,this.alphaInitializer=he(t.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=Ce(t.alphaRegularizer),this.alphaConstraint=Ve(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=Gt(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(Oe(t),t==="channelsFirst"?Vt(r,[0,2,3,1]):r))}function YN(r,t){return B(()=>(Oe(t),t==="channelsFirst"?Vt(r,[0,2,3,4,1]):r))}function rJ(r,t,e,n=1,o="valid",s,i=1){return B(()=>{if(s==null&&(s=yn()),Oe(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=Vt(r,[0,2,1])),o==="causal")throw new kt("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");let a=cm(r,t,n,o==="same"?"same":"valid","NWC",i);return e!=null&&(a=bn(a,e)),a})}function zR(r,t,e,n=[1,1],o="valid",s,i,a=null){return B(()=>{if(s==null&&(s=yn()),Oe(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=Bh(r,s);if(o==="causal")throw new kt("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return u=Lu.conv2d({x:u,filter:t,strides:n,pad:o==="same"?"same":"valid",dilations:i,dataFormat:"NHWC",bias:e,activation:a}),s==="channelsFirst"&&(u=Vt(u,[0,3,1,2])),u})}function nJ(r,t,e,n=[1,1,1],o="valid",s,i){return B(()=>{if(s==null&&(s=yn()),Oe(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=YN(r,s);if(o==="causal")throw new kt("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return a=Rx(a,t,n,o==="same"?"same":"valid","NDHWC",i),e!=null&&(a=bn(a,e)),s==="channelsFirst"&&(a=Vt(a,[0,4,1,2,3])),a})}var Jc=class extends _t{constructor(t,e){if(super(e),this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",Jc.verifyArgs(e),this.rank=t,Qe(this.rank,"rank"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new kt(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=Uu(e.kernelSize,t,"kernelSize"),this.strides=Uu(e.strides==null?1:e.strides,t,"strides"),this.padding=e.padding==null?"valid":e.padding,gn(this.padding),this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Oe(this.dataFormat),this.activation=bi(e.activation),this.useBias=e.useBias==null?!0:e.useBias,this.biasInitializer=he(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=Ve(e.biasConstraint),this.biasRegularizer=Ce(e.biasRegularizer),this.activityRegularizer=Ce(e.activityRegularizer),this.dilationRate=Uu(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(fo("kernelSize"in t,"required key 'kernelSize' not in config"),typeof t.kernelSize!="number"&&!Oy(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:yi(this.activation),useBias:this.useBias,biasInitializer:_e(this.biasInitializer),biasRegularizer:me(this.biasRegularizer),activityRegularizer:me(this.activityRegularizer),biasConstraint:Be(this.biasConstraint)},e=super.getConfig();return Object.assign(t,e),t}},Hu=class extends Jc{constructor(t,e){super(t,e),this.kernel=null,Hu.verifyArgs(e),this.filters=e.filters,Qe(this.filters,"filters"),this.kernelInitializer=he(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=Ve(e.kernelConstraint),this.kernelRegularizer=Ce(e.kernelRegularizer)}build(t){t=Gt(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=Py(this.activation.getClassName());if(s!=null&&this.rank===2)n=zR(t,this.kernel.read(),o,this.strides,this.padding,this.dataFormat,this.dilationRate,s);else{if(this.rank===1)n=rJ(t,this.kernel.read(),o,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)n=zR(t,this.kernel.read(),o,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)n=nJ(t,this.kernel.read(),o,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new kt("convolutions greater than 3D are not implemented yet.");this.activation!=null&&(n=this.activation.apply(n))}return n})}computeOutputShape(t){t=Gt(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)}`)}},Dl=class extends Hu{constructor(t){super(2,t),Dl.verifyArgs(t)}getConfig(){let t=super.getConfig();return delete t.rank,t}static verifyArgs(t){if(typeof t.kernelSize!="number"&&!Oy(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)}.`)}};Dl.className="Conv2D";J.registerClass(Dl);var $l=class extends Hu{constructor(t){super(3,t),$l.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)}.`)}};$l.className="Conv3D";J.registerClass($l);var pf=class extends Dl{constructor(t){if(super(t),this.inputSpec=[new Ie({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=Gt(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 Ie({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=wi(u,m,c,this.padding),h=wi(l,f,p,this.padding),g=[s,d,h,this.filters];this.dataFormat!=="channelsLast"&&(n=Vt(n,[0,2,3,1]));let x=mm(n,this.kernel.read(),g,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(x=Vt(x,[0,3,1,2])),this.bias!=null&&(x=bn(x,this.bias.read(),this.dataFormat)),this.activation!=null&&(x=this.activation.apply(x)),x})}computeOutputShape(t){t=Gt(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]=wi(e[o],u,i,this.padding),e[s]=wi(e[s],l,a,this.padding),e}getConfig(){let t=super.getConfig();return delete t.dilationRate,t}};pf.className="Conv2DTranspose";J.registerClass(pf);var mf=class extends $l{constructor(t){if(super(t),this.inputSpec=[new Ie({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=Gt(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 Ie({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=wi(l,h,m,this.padding),w=wi(c,g,f,this.padding),I=wi(p,x,d,this.padding),N=[s,b,w,I,this.filters];this.dataFormat!=="channelsLast"&&(n=Vt(n,[0,2,3,4,1]));let E=Ox(n,this.kernel.read(),N,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(E=Vt(E,[0,4,1,2,3])),this.bias!==null&&(E=bn(E,this.bias.read(),this.dataFormat)),this.activation!==null&&(E=this.activation.apply(E)),E})}computeOutputShape(t){t=Gt(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]=wi(e[o],c,a,this.padding),e[s]=wi(e[s],p,u,this.padding),e[i]=wi(e[i],m,l,this.padding),e}getConfig(){let t=super.getConfig();return delete t.dilationRate,t}};mf.className="Conv3DTranspose";J.registerClass(mf);var Tb=class extends Hu{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=he(e.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=Ce(e.depthwiseRegularizer),this.depthwiseConstraint=Ve(e.depthwiseConstraint),this.pointwiseInitializer=he(e.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=Ce(e.pointwiseRegularizer),this.pointwiseConstraint=Ve(e.pointwiseConstraint)}build(t){if(t=Gt(t),t.length{t=St(t);let n;if(this.rank===1)throw new kt("1D separable convolution is not implemented yet.");return this.rank===2&&(this.dataFormat==="channelsFirst"&&(t=Vt(t,[0,2,3,1])),n=Cm(t,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,"NHWC")),this.useBias&&(n=bn(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),this.dataFormat==="channelsFirst"&&(n=Vt(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=_e(this.depthwiseInitializer),t.pointwiseInitializer=_e(this.pointwiseInitializer),t.depthwiseRegularizer=me(this.depthwiseRegularizer),t.pointwiseRegularizer=me(this.pointwiseRegularizer),t.depthwiseConstraint=Be(this.depthwiseConstraint),t.pointwiseConstraint=Be(this.pointwiseConstraint),t}};Tb.className="SeparableConv";var ff=class extends Tb{constructor(t){super(2,t)}};ff.className="SeparableConv2D";J.registerClass(ff);var qu=class extends Hu{constructor(t){super(1,t),qu.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"&&!Oy(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)}.`)}};qu.className="Conv1D";J.registerClass(qu);var df=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=St(t),this.dataFormat==="channelsLast"){let n=Ah(t,this.cropping[0][0],t.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return Ah(n,this.cropping[1][0],t.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{let n=Ah(t,this.cropping[0][0],t.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return Ah(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}};df.className="Cropping2D";J.registerClass(df);var hf=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,Oe(this.dataFormat),this.interpolation=t.interpolation==null?"nearest":t.interpolation,j$(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=Vt(n,[0,2,3,1]);let s=this.size[0]*o[2],i=this.size[1]*o[3],a=this.interpolation==="nearest"?hn.resizeNearestNeighbor(n,[s,i]):hn.resizeBilinear(n,[s,i]);return Vt(a,[0,3,1,2])}else{let s=this.size[0]*o[1],i=this.size[1]*o[2];return this.interpolation==="nearest"?hn.resizeNearestNeighbor(n,[s,i]):hn.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}};hf.className="UpSampling2D";J.registerClass(hf);function oJ(r,t,e=[1,1],n="valid",o,s){return B(()=>{o==null&&(o=yn()),Oe(o);let i=Bh(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=ua(i,t,e,n==="same"?"same":"valid","NHWC",s),o==="channelsFirst"&&(i=Vt(i,[0,3,1,2])),i})}var gf=class extends Jc{constructor(t){super(2,t),this.depthwiseKernel=null,this.depthMultiplier=t.depthMultiplier==null?1:t.depthMultiplier,this.depthwiseInitializer=he(t.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=Ve(t.depthwiseConstraint),this.depthwiseRegularizer=Ce(t.depthwiseRegularizer)}build(t){if(t=Gt(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=oJ(t,this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(n=bn(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),n})}computeOutputShape(t){t=Gt(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=An(e,this.kernelSize[0],this.padding,this.strides[0]),i=An(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=_e(this.depthwiseInitializer),t.depthwiseRegularizer=me(this.depthwiseRegularizer),t.depthwiseConstraint=Be(this.depthwiseRegularizer),t}};gf.className="DepthwiseConv2D";J.registerClass(gf);function ZN(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 JN(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(xn(2,u));if(t=Vt(t,l),s!=null)throw new kt("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=Q(Q(o,"bool"),"float32"),o.rank===u-1&&(o=ar(o,-1)),o=Vt(o,l)),n&&(t=hr(t,0),o!=null&&(o=hr(o,0)));let c=[],p,m=e,f=t.shape[0],d=xr(t),h;o!=null&&(h=xr(o));for(let x=0;xr(b,m));if(o==null)p=w[0],m=w[1];else{let I=B(()=>{let N=h[x],E=lt(Ir(N),N),A=Y($(w[0],N),$(m[0],E)),D=m.map((F,P)=>Y($(w[1][P],N),$(F,E)));return{output:A,newStates:D}});p=I.output,m=I.newStates}a&&c.push(p)}let g;return a&&(g=qe(c,1)),[p,g,m]})}var Dn=class extends _t{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 ep({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 Ie({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 xn(0,t).map(e=>null)}else return this.states_}setStates(t){this.states_=t}computeOutputShape(t){Hy(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 Ie({shape:[null,a]}));this.stateful&&this.resetStates()}resetStates(t,e=!1){B(()=>{if(!this.stateful)throw new En("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=>Te([n,o])):this.states_=[Te([n,this.cell.stateSize])];else if(t==null)Tt(this.states_),this.keptStates!=null&&(Tt(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(o=>Te([n,o])):this.states_[0]=Te([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()):Tt(this.states_);for(let o=0;o$e(o.clone()))})}apply(t,e){let n=e==null?null:e.initialState,o=e==null?null:e.constants;e==null&&(e={});let s=ZN(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 Ie({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 nn){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=JN((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=Te(t.shape);return e=pt(e,[1,2]),e=_l(e),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(n=>n>1?Gy(e,[1,n]):e):this.cell.stateSize>1?[Gy(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()===Dn.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=Cn(o,n);return new t(Object.assign(e,{cell:s}))}};Dn.className="RNN";J.registerClass(Dn);var Rl=class extends _t{},Qc=class extends Rl{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=bi(t.activation==null?this.DEFAULT_ACTIVATION:t.activation),this.useBias=t.useBias==null?!0:t.useBias,this.kernelInitializer=he(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=he(t.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=he(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Ce(t.kernelRegularizer),this.recurrentRegularizer=Ce(t.recurrentRegularizer),this.biasRegularizer=Ce(t.biasRegularizer),this.kernelConstraint=Ve(t.kernelConstraint),this.recurrentConstraint=Ve(t.recurrentConstraint),this.biasConstraint=Ve(t.biasConstraint),this.dropout=Bc([1,gi([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=Bc([1,gi([0,t.recurrentDropout==null?0:t.recurrentDropout])]),this.dropoutFunc=t.dropoutFunc,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(t){t=Gt(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;0Ir(t),rate:this.dropout,training:o,dropoutFunc:this.dropoutFunc})),0Ir(n),rate:this.recurrentDropout,training:o,dropoutFunc:this.dropoutFunc}));let s,i=this.dropoutMask,a=this.recurrentDropoutMask;i!=null?s=Fo($(t,i),this.kernel.read()):s=Fo(t,this.kernel.read()),this.bias!=null&&(s=bn(s,this.bias.read())),a!=null&&(n=$(n,a));let u=Y(s,Fo(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:yi(this.activation),useBias:this.useBias,kernelInitializer:_e(this.kernelInitializer),recurrentInitializer:_e(this.recurrentInitializer),biasInitializer:_e(this.biasInitializer),kernelRegularizer:me(this.kernelRegularizer),recurrentRegularizer:me(this.recurrentRegularizer),biasRegularizer:me(this.biasRegularizer),activityRegularizer:me(this.activityRegularizer),kernelConstraint:Be(this.kernelConstraint),recurrentConstraint:Be(this.recurrentConstraint),biasConstraint:Be(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign(Object.assign({},t),e)}};Qc.className="SimpleRNNCell";J.registerClass(Qc);var xf=class extends Dn{constructor(t){t.cell=new Qc(t),super(t)}call(t,e){return B(()=>{this.cell.dropoutMask!=null&&(Tt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Tt(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)}};xf.className="SimpleRNN";J.registerClass(xf);var tp=class extends Rl{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=bi(t.activation===void 0?this.DEFAULT_ACTIVATION:t.activation),this.recurrentActivation=bi(t.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:t.recurrentActivation),this.useBias=t.useBias==null?!0:t.useBias,this.kernelInitializer=he(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=he(t.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=he(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Ce(t.kernelRegularizer),this.recurrentRegularizer=Ce(t.recurrentRegularizer),this.biasRegularizer=Ce(t.biasRegularizer),this.kernelConstraint=Ve(t.kernelConstraint),this.recurrentConstraint=Ve(t.recurrentConstraint),this.biasConstraint=Ve(t.biasConstraint),this.dropout=Bc([1,gi([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=Bc([1,gi([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=Gt(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],0Ir(t),rate:this.dropout,training:n,count:3,dropoutFunc:this.dropoutFunc})),0Ir(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&&(Tt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Tt(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)}};yf.className="GRU";J.registerClass(yf);var Fl=class extends Rl{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=bi(t.activation===void 0?this.DEFAULT_ACTIVATION:t.activation),this.recurrentActivation=bi(t.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:t.recurrentActivation),this.useBias=t.useBias==null?!0:t.useBias,this.kernelInitializer=he(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=he(t.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=he(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=t.unitForgetBias,this.kernelRegularizer=Ce(t.kernelRegularizer),this.recurrentRegularizer=Ce(t.recurrentRegularizer),this.biasRegularizer=Ce(t.biasRegularizer),this.kernelConstraint=Ve(t.kernelConstraint),this.recurrentConstraint=Ve(t.recurrentConstraint),this.biasConstraint=Ve(t.biasConstraint),this.dropout=Bc([1,gi([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=Bc([1,gi([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=Gt(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 wn{apply(u,l){let c=s.apply([i]),p=new Vu().apply([i]),m=s.apply([i*2]);return MN(MN(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],0Ir(t),rate:this.dropout,training:n,count:4,dropoutFunc:this.dropoutFunc})),0Ir(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&&(Tt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Tt(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)}};bf.className="LSTM";J.registerClass(bf);var ep=class extends Rl{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{hi(`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(Cn(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 $h(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):Uy(t(),e),a=()=>Bu(i,t,n);return!o||o<=1?$e(a().clone()):Array(o).fill(void 0).map(a).map(l=>$e(l.clone()))}var sJ=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&&(Tt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Tt(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=Te(s);return Array.isArray(e)?Array(e.length).fill(i):[i]})}resetStates(t,e=!1){B(()=>{if(!this.stateful)throw new En("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(()=>Te(s)):this.states_=[Te(s)];else if(t==null)Tt(this.states_),this.keptStates!=null&&(Tt(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>Te(s)):this.states_[0]=Te(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()):Tt(this.states_);for(let a=0;a$e(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=An(l,o[0],s,i[0],a[0]),m=An(c,o[1],s,i[1],a[1]);return[...t.slice(0,2),...u?[n,p,m]:[p,m,n]]}};_b.className="ConvRNN2D";var rp=class extends Fl{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=Uu(n,2,"kernelSize"),this.kernelSize.forEach(u=>Qe(u,"kernelSize")),this.strides=Uu(o||1,2,"strides"),this.strides.forEach(u=>Qe(u,"strides")),this.padding=s||"valid",gn(this.padding),this.dataFormat=i||"channelsLast",Oe(this.dataFormat),this.dilationRate=Uu(a||1,2,"dilationRate"),this.dilationRate.forEach(u=>Qe(u,"dilationRate"))}build(t){var e;t=Gt(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 wn{apply(m,f){let d=l.apply([c]),h=dr([c]),g=l.apply([c*2]);return Pm([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;0Ir(o),rate:this.dropout,training:n,count:a,dropoutFunc:this.dropoutFunc}));let u=this.dropoutMask,l=(nt,st,at)=>!st||!st[at]?nt:$(st[at],nt),c=l(o,u,0),p=l(o,u,1),m=l(o,u,2),f=l(o,u,3);0Ir(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,[I,N,E,A]=gr(this.kernel.read(),a,w),[D,F,P,V]=this.useBias?gr(this.bias.read(),a):[null,null,null,null];c=this.inputConv(c,I,D,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]=gr(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 K=this.recurrentActivation.apply(Y(c,h)),X=this.recurrentActivation.apply(Y(p,g)),Z=Y($(X,i),$(K,this.activation.apply(Y(m,x)))),et=$(this.recurrentActivation.apply(Y(f,b)),this.activation.apply(Z));return[et,et,Z]})}getConfig(){let t=super.getConfig(),{units:e}=t,n=sJ(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=Tn(t,e,this.strides,o||"valid",this.dataFormat==="channelsFirst"?"NCHW":"NHWC",this.dilationRate);return n?bn(s,n,this.dataFormat):s}recurrentConv(t,e){return Tn(t,e,1,"same",this.dataFormat==="channelsFirst"?"NCHW":"NHWC")}};rp.className="ConvLSTM2DCell";J.registerClass(rp);var wf=class extends _b{constructor(t){let e=new rp(t);super(Object.assign(Object.assign({},t),{cell:e}))}static fromConfig(t,e){return new t(e)}};wf.className="ConvLSTM2D";J.registerClass(wf);var np=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=St(t);if(0Uy(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()}};np.className="Dropout";J.registerClass(np);var If=class extends np{constructor(t){super(t),this.inputSpec=[{ndim:3}]}getNoiseShape(t){let e=t.shape;return[e[0],1,e[2]]}};If.className="SpatialDropout1D";J.registerClass(If);var Cf=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,Qe(this.units,"units"),this.activation=bi(t.activation),t.useBias!=null&&(this.useBias=t.useBias),this.kernelInitializer=he(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=he(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=Ve(t.kernelConstraint),this.biasConstraint=Ve(t.biasConstraint),this.kernelRegularizer=Ce(t.kernelRegularizer),this.biasRegularizer=Ce(t.biasRegularizer),this.activityRegularizer=Ce(t.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(t){t=Gt(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=Gt(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=Py(this.activation.getClassName()),s;return o!=null?s=Fo(n,this.kernel.read(),o,this.bias?this.bias.read():null):(s=Fo(n,this.kernel.read()),this.bias!=null&&(s=bn(s,this.bias.read())),this.activation!=null&&(s=this.activation.apply(s))),s})}getConfig(){let t={units:this.units,activation:yi(this.activation),useBias:this.useBias,kernelInitializer:_e(this.kernelInitializer),biasInitializer:_e(this.biasInitializer),kernelRegularizer:me(this.kernelRegularizer),biasRegularizer:me(this.biasRegularizer),activityRegularizer:me(this.activityRegularizer),kernelConstraint:Be(this.kernelConstraint),biasConstraint:Be(this.biasConstraint)},e=super.getConfig();return Object.assign(t,e),t}};Cf.className="Dense";J.registerClass(Cf);var vf=class extends _t{constructor(t){t=t||{},super(t),this.inputSpec=[{minNDim:3}],this.dataFormat=t.dataFormat}computeOutputShape(t){t=Gt(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],Ro(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:yi(this.activation)},e=super.getConfig();return Object.assign(t,e),t}};Sf.className="Activation";J.registerClass(Sf);var Nf=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=St(t),Z$(t,this.n)))}getConfig(){let t={n:this.n},e=super.getConfig();return Object.assign(t,e),t}};Nf.className="RepeatVector";J.registerClass(Nf);var kf=class extends _t{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}};kf.className="Reshape";J.registerClass(kf);var Tf=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=xn(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 Ie({ndim:this.dims.length+1})]}computeOutputShape(t){t=Gt(t);let e=t.slice();return this.dims.forEach((n,o)=>{e[o+1]=t[n]}),e}call(t,e){return Vt(St(t),this.dimsIncludingBatch)}getConfig(){let t={dims:this.dims},e=super.getConfig();return Object.assign(t,e),t}};Tf.className="Permute";J.registerClass(Tf);var _f=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=St(t),o=-1;return bc(mi(n,this.maskValue),o)}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=St(t),o=-1,s=!0,i=bc(mi(n,this.maskValue),o,s);return $(n,Q(i,n.dtype))})}};_f.className="Masking";J.registerClass(_f);var Ef=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(we(t.inputLength))}this.inputDim=t.inputDim,Qe(this.inputDim,"inputDim"),this.outputDim=t.outputDim,Qe(this.outputDim,"outputDim"),this.embeddingsInitializer=he(t.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=Ce(t.embeddingsRegularizer),this.activityRegularizer=Ce(t.activityRegularizer),this.embeddingsConstraint=Ve(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),mi(t,vt(t))):null)}computeOutputShape(t){if(t=Gt(t),this.inputLength==null)return[...t,this.outputDim];let e=we(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=rn(n,"int32"));let o=Wy(this.embeddings.read(),R(n,[n.size]));return R(o,Gt(this.computeOutputShape(n.shape)))})}getConfig(){let t={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:_e(this.embeddingsInitializer),embeddingsRegularizer:me(this.embeddingsRegularizer),activityRegularizer:me(this.activityRegularizer),embeddingsConstraint:Be(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},e=super.getConfig();return Object.assign(t,e),t}};Ef.className="Embedding";J.registerClass(Ef);var Pl=class extends _t{constructor(t){super(t||{}),this.supportsMasking=!0}mergeFunction(t){throw new kt}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&&$o(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=gi(o);for(let i of t){let a=i.rank;for(let u=0;u1){let c=xn(1,l).concat([0]);n.push(Vt(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(Vt(R(i,[-1,c]),[1,0]),p)}else if(a>1){let u=[a-1].concat(xn(0,a-1));i=Vt(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:ar(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(()=>Pm(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 kt("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 kt("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 kt("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)=>Vh(s,t[i].shape.length)):o=[Vh(this.axes,e.shape.length),Vh(this.axes,n.shape.length)],this.normalize&&(e=Rh(e,o[0]),n=Rh(n,o[1])),iJ(e,n,o)}interpretAxes(t,e){let n;return Array.isArray(this.axes)?n=this.axes:n=[Vh(this.axes,t.length),Vh(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 kt("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}};Pf.className="Dot";J.registerClass(Pf);var Mf=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=St(t);return Bu(()=>Y(Mm(n.shape,0,this.stddev),n),()=>n,e.training||!1)})}};Mf.className="GaussianNoise";J.registerClass(Mf);var Lf=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=St(t);return this.rate>0&&this.rate<1?Bu(()=>{let s=Math.sqrt(this.rate/(1-this.rate));return $(n,Mm(n.shape,1,s))},()=>n,e.training||!1):n})}};Lf.className="GaussianDropout";J.registerClass(Lf);var zf=class extends _t{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=mn(Hn(n),this.rate);l=rn(l,"float32");let c=((1-this.rate)*(1+this.rate*u**2))**-.5,p=-c*u*this.rate,m=Y($(s,l),$(Y(l,-1),u));return Y($(m,c),p)},()=>St(t),e.training||!1)}return t})}};zf.className="AlphaDropout";J.registerClass(zf);function Gh(r,t,e,n,o,s=.001){let i;if(r.rank===2)i=Sx(r,t,e,n,o,s);else if(r.rank===3)i=Nx(r,t,e,n,o,s);else if(r.rank===4)i=kx(r,t,e,n,o,s);else throw new kt(`batchNormalization is not implemented for array of rank ${r.rank} yet`);return i}function aJ(r,t,e,n,o=.001){return B(()=>{let s=vc(r,n),i=s.mean,a=s.variance;return[Gh(r,i,a,e,t,o),i,a]})}function lJ(r,t,e,n,o=.001){return B(()=>{let s=vc(r,n),i=s.mean,a=s.variance,u=[];for(let d of xn(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[Gh(r,l,c,m,p,o),i,a]})}function uJ(r,t,e,n,o=.001){return y.arraysEqual(n.slice().sort(),xn(0,r.rank-1))?aJ(r,t,e,n,o):lJ(r,t,e,n,o)}var Bf=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=he(t.betaInitializer||"zeros"),this.gammaInitializer=he(t.gammaInitializer||"ones"),this.movingMeanInitializer=he(t.movingMeanInitializer||"zeros"),this.movingVarianceInitializer=he(t.movingVarianceInitializer||"ones"),this.betaConstraint=Ve(t.betaConstraint),this.gammaConstraint=Ve(t.gammaConstraint),this.betaRegularizer=Ce(t.betaRegularizer),this.gammaRegularizer=Ce(t.gammaRegularizer)}build(t){t=Gt(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 Ie({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=xn(0,i),u=this.axis>=0?this.axis:this.axis+i;a.splice(u,1);let l=Ao(1,i);l[u]=s[u];let c=a.slice();c.sort();let p=!y.arraysEqual(c,xn(0,i).slice(0,i-1)),m=()=>{if(p){let b=R(this.movingMean.read(),l),w=R(this.movingVariance.read(),l),I=this.center?R(this.beta.read(),l):null,N=this.scale?R(this.gamma.read(),l):null;return Gh(o,b,w,I,N,this.epsilon)}else return Gh(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]=uJ(o,this.gamma.read(),this.beta.read(),a,this.epsilon),g=(b,w,I)=>{B(()=>{let N=1-I,E=b.read(),A=$(lt(E,w),N);b.write(lt(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:_e(this.betaInitializer),gammaInitializer:_e(this.gammaInitializer),movingMeanInitializer:_e(this.movingMeanInitializer),movingVarianceInitializer:_e(this.movingVarianceInitializer),betaRegularizer:me(this.betaRegularizer),gammaRegularizer:me(this.gammaRegularizer),betaConstraint:Be(this.betaConstraint),gammaConstraint:Be(this.gammaConstraint)},e=super.getConfig();return Object.assign(t,e),t}};Bf.className="BatchNormalization";J.registerClass(Bf);var Vf=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=he(t.betaInitializer||"zeros"),this.gammaInitializer=he(t.gammaInitializer||"ones"),this.betaRegularizer=Ce(t.betaRegularizer),this.gammaRegularizer=Ce(t.gammaRegularizer),this.supportsMasking=!0}build(t){t=Gt(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!==$o(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}=vc(n,this.axis,!0),l=Ao(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=yn()),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]],dn(r,n)})}var Gf=class extends _t{constructor(t){if(t==null&&(t={}),super(t),this.dataFormat=t.dataFormat==null?yn():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 Ie({ndim:4})]}computeOutputShape(t){t=Gt(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(()=>cJ(St(t),this.padding,this.dataFormat))}getConfig(){let t={padding:this.padding,dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}};Gf.className="ZeroPadding2D";J.registerClass(Gf);function Fb(r,t,e,n,o,s){return B(()=>{Oe(o),RN(s),gn(n),e==null&&(e=[1,1]),n==null&&(n="valid"),o==null&&(o=yn()),s==null&&(s="max"),r=Bh(r,o);let i,a=n==="same"?"same":"valid";return s==="max"?i=Du(r,t,e,a):i=Su(r,t,e,a),o==="channelsFirst"&&(i=Vt(i,[0,3,1,2])),i})}function BR(r,t,e,n,o,s){return B(()=>{Oe(o),RN(s),gn(n),e==null&&(e=[1,1,1]),n==null&&(n="valid"),o==null&&(o=yn()),s==null&&(s="max"),r=YN(r,o);let i,a=n==="same"?"same":"valid";return s==="max"?i=Jx(r,t,e,a):i=vx(r,t,e,a),o==="channelsFirst"&&(i=Vt(i,[0,4,1,2,3])),i})}var Eb=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 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,gn(this.padding),this.inputSpec=[new Ie({ndim:3})]}computeOutputShape(t){t=Gt(t);let e=An(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=_l(St(t),2);let n=this.poolingFunction(St(t),[this.poolSize[0],1],[this.strides[0],1],this.padding,"channelsLast");return qn(n,[2])})}getConfig(){let t={poolSize:this.poolSize,padding:this.padding,strides:this.strides},e=super.getConfig();return Object.assign(t,e),t}},Wf=class extends Eb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Oe(s),gn(o),Fb(t,e,n,o,s,"max")}};Wf.className="MaxPooling1D";J.registerClass(Wf);var Uf=class extends Eb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Oe(s),gn(o),Fb(t,e,n,o,s,"avg")}};Uf.className="AveragePooling1D";J.registerClass(Uf);var Ab=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 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,Oe(this.dataFormat),gn(this.padding),this.inputSpec=[new Ie({ndim:4})]}computeOutputShape(t){t=Gt(t);let e=this.dataFormat==="channelsFirst"?t[2]:t[1],n=this.dataFormat==="channelsFirst"?t[3]:t[2];return e=An(e,this.poolSize[0],this.padding,this.strides[0]),n=An(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}},Hf=class extends Ab{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Oe(s),gn(o),Fb(t,e,n,o,s,"max")}};Hf.className="MaxPooling2D";J.registerClass(Hf);var qf=class extends Ab{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Oe(s),gn(o),Fb(t,e,n,o,s,"avg")}};qf.className="AveragePooling2D";J.registerClass(qf);var Db=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 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,Oe(this.dataFormat),gn(this.padding),this.inputSpec=[new Ie({ndim:5})]}computeOutputShape(t){t=Gt(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=An(e,this.poolSize[0],this.padding,this.strides[0]),n=An(n,this.poolSize[1],this.padding,this.strides[1]),o=An(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}},Kf=class extends Db{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Oe(s),gn(o),BR(t,e,n,o,s,"max")}};Kf.className="MaxPooling3D";J.registerClass(Kf);var jf=class extends Db{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Oe(s),gn(o),BR(t,e,n,o,s,"avg")}};jf.className="AveragePooling3D";J.registerClass(jf);var $b=class extends _t{constructor(t){super(t),this.inputSpec=[new Ie({ndim:3})]}computeOutputShape(t){return[t[0],t[2]]}call(t,e){throw new kt}},Xf=class extends $b{constructor(t){super(t||{})}call(t,e){return B(()=>{let n=St(t);return ke(n,1)})}};Xf.className="GlobalAveragePooling1D";J.registerClass(Xf);var Yf=class extends $b{constructor(t){super(t||{})}call(t,e){return B(()=>{let n=St(t);return Nr(n,1)})}};Yf.className="GlobalMaxPooling1D";J.registerClass(Yf);var Rb=class extends _t{constructor(t){super(t),this.dataFormat=t.dataFormat==null?"channelsLast":t.dataFormat,Oe(this.dataFormat),this.inputSpec=[new Ie({ndim:4})]}computeOutputShape(t){return t=t,this.dataFormat==="channelsLast"?[t[0],t[3]]:[t[0],t[1]]}call(t,e){throw new kt}getConfig(){let t={dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}},Zf=class extends Rb{call(t,e){return B(()=>{let n=St(t);return this.dataFormat==="channelsLast"?ke(n,[1,2]):ke(n,[2,3])})}};Zf.className="GlobalAveragePooling2D";J.registerClass(Zf);var Jf=class extends Rb{call(t,e){return B(()=>{let n=St(t);return this.dataFormat==="channelsLast"?Nr(n,[1,2]):Nr(n,[2,3])})}};Jf.className="GlobalMaxPooling2D";J.registerClass(Jf);var Ob=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=Cn(o,n);delete e.layer;let i={layer:s};return Object.assign(i,e),new t(i)}},Qf=class extends Ob{constructor(t){super(t),this.supportsMasking=!0}build(t){if(t=Gt(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=Gt(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),JN((i,a)=>[St(this.layer.call(i,e)),[]],t,[],!1,null,null,!1,!0)[1]))}};Qf.className="TimeDistributed";J.registerClass(Qf);function pJ(r){ya(q$,"BidirectionalMergeMode",r)}var mJ="concat",td=class extends Ob{constructor(t){super(t);let e=t.layer.getConfig(),n={};n.className=t.layer.getClassName(),n.config=e,this.forwardLayer=Cn(n),e.goBackwards=e.goBackwards!==!0;let o={};if(o.className=t.layer.getClassName(),o.config=e,this.backwardLayer=Cn(o),this.forwardLayer.name="forward_"+this.forwardLayer.name,this.backwardLayer.name="backward_"+this.backwardLayer.name,this.mergeMode=t.mergeMode===void 0?mJ:t.mergeMode,pJ(this.mergeMode),t.weights)throw new kt("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=ZN(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 Ie({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 kt("Support for constants in Bidirectional layers is not implemented yet.");let u=i[0]instanceof nn;for(let l of i)if(l instanceof nn!==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=hr(s,1));let a;return this.mergeMode==="concat"?a=Pm([o,s]):this.mergeMode==="sum"?a=Y(o,s):this.mergeMode==="ave"?a=$(.5,Y(o,s)):this.mergeMode==="mul"?a=$(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){hi(this.forwardLayer.name,()=>{this.forwardLayer.build(t)}),hi(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=Cn(e.layer);if(delete e.layer,e.numConstants!=null)throw new kt("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");let o=e;return o.layer=n,new t(o)}};td.className="Bidirectional";J.registerClass(td);var ed=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=St(t),t.dtype!=="float32"&&(t=rn(t,"float32")),Y($(t,this.scale),this.offset)))}};ed.className="Rescaling";J.registerClass(ed);var{resizeBilinear:fJ,cropAndResize:dJ}=hn,rd=class extends _t{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=fJ(t,[e,n]);return rn(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=Gt(t);let e=t.length-3,n=t.length-2;return t[e]=this.height,t[n]=this.width,t}};rd.className="CenterCrop";J.registerClass(rd);function VR(r,t,e,n){let o=St(r);if(o.dtype!=="int32"&&(o=rn(o,"int32")),t==="int")return o;let s=o.shape;if(o.rank===0&&(o=ar(o,-1)),t==="oneHot"&&o.shape[o.shape.length-1]!==1&&(o=ar(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=gh(a,n,e,i):u=gh(a,[],e,i),t!=="tfIdf")return u;if(n)return $(u,n);throw new z("When outputMode is 'tfIdf', weights must be provided.")}var nd=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=Gt(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=rn(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=Nr(t),s=bl(t),i=Fe(this.numTokens,o).bufferSync().get(0),a=mn(s,0).bufferSync().get(0);if(!(i&&a))throw new z(`Input values must be between 0 < values <= numTokens with numTokens=${this.numTokens}`);return VR(t,this.outputMode,this.numTokens,n)})}};nd.className="CategoryEncoding";J.registerClass(nd);var gJ=["bilinear","nearest"],GR=new Set(gJ),od=class extends _t{constructor(t){if(super(t),this.height=t.height,this.width=t.width,t.interpolation)if(GR.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=!!t.cropToAspectRatio}computeOutputShape(t){t=Gt(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 hn.resizeBilinear(t,n,!this.cropToAspectRatio);if(this.interpolation==="nearest")return hn.resizeNearestNeighbor(t,n,!this.cropToAspectRatio);throw new Error(`Interpolation is ${this.interpolation} but only ${[...GR]} are supported`)})}};od.className="Resizing";J.registerClass(od);var Wh=class{constructor(t){this.seed=t}next(){if(this.seed!==void 0)return this.seed++}};Wh.className="RandomSeed";var Uh=class extends _t{constructor(t){super(t),this.randomGenerator=new Wh(t.seed)}getConfig(){let t={seed:this.randomGenerator.seed},e=super.getConfig();return Object.assign(t,e),t}};Uh.className="BaseRandomLayer";var xJ=["bilinear","nearest"],WR=new Set(xJ),sd=class extends Uh{constructor(t){super(t);let{factor:e,interpolation:n="bilinear"}=t;if(this.factor=e,Array.isArray(this.factor)&&this.factor.length===2)this.widthLower=this.factor[0],this.widthUpper=this.factor[1];else if(!Array.isArray(this.factor)&&this.factor>0)this.widthLower=-this.factor,this.widthUpper=this.factor;else throw new z(`Invalid factor: ${this.factor}. Must be positive number or tuple of 2 numbers`);if(this.widthLower<-1||this.widthUpper<-1)throw new z(`factor must have values larger than -1. Got: ${this.factor}`);if(this.widthUpper{let n=St(t);this.imgHeight=n.shape[n.shape.length-3];let o=n.shape[n.shape.length-2];this.widthFactor=Wn([1],1+this.widthLower,1+this.widthUpper,"float32",this.randomGenerator.next());let s=this.widthFactor.dataSync()[0]*o;s=Math.round(s);let i=[this.imgHeight,s];switch(this.interpolation){case"bilinear":return dn.resizeBilinear(t,i);case"nearest":return dn.resizeNearestNeighbor(t,i);default:throw new Error(`Interpolation is ${this.interpolation} - but only ${[...RR]} are supported`)}})}};od.className="RandomWidth";J.registerClass(od);function K7(r){return new fi(r)}function j7(r){return new af(r)}function X7(r){return new nf(r)}function Y7(r){return new of(r)}function Z7(r){return new sf(r)}function J7(r){return new uf(r)}function Q7(r){return new lf(r)}function tJ(r){return new Vu(r)}function eJ(r){return new El(r)}function rJ(r){return new cf(r)}function nJ(r){return new Al(r)}function oJ(r){return new pf(r)}function sJ(r){return new mf(r)}function iJ(r){return new ff(r)}function aJ(r){return new df(r)}function lJ(r){return new hf(r)}function uJ(r){return new vf(r)}function cJ(r){return new If(r)}function pJ(r){return new Jc(r)}function mJ(r){return new wf(r)}function fJ(r){return new Cf(r)}function dJ(r){return new Sf(r)}function hJ(r){return new Nf(r)}function gJ(r){return new kf(r)}function xJ(r){return new _f(r)}function yJ(r){return new Ef(r)}function bJ(r){return new Df(r)}function wJ(r){return new Ff(r)}function IJ(r){return new $f(r)}function CJ(r){return new Rf(r)}function vJ(r){return new Af(r)}function SJ(r){return new Of(r)}function NJ(r){return new zf(r)}function kJ(r){return new Bf(r)}function TJ(r){return new Vf(r)}function qN(r){return new Wf(r)}function _J(r){return qN(r)}function EJ(r){return qN(r)}function KN(r){return new Hf(r)}function AJ(r){return KN(r)}function DJ(r){return KN(r)}function jN(r){return new Kf(r)}function $J(r){return jN(r)}function RJ(r){return jN(r)}function FJ(r){return new jf(r)}function OJ(r){return new Yf(r)}function FR(r){return new Xf(r)}function OR(r){return new Zf(r)}function PR(r){return new Gf(r)}function MR(r){return new Uf(r)}function PJ(r){return new qf(r)}function MJ(r){return new xf(r)}function LJ(r){return new Xc(r)}function zJ(r){return new yf(r)}function BJ(r){return new $l(r)}function VJ(r){return new gf(r)}function GJ(r){return new jc(r)}function WJ(r){return new bf(r)}function UJ(r){return new Zc(r)}function HJ(r){return new An(r)}function qJ(r){return new Yc(r)}function KJ(r){return new Qf(r)}function jJ(r){return new Jf(r)}var XJ=FR,YJ=OR,ZJ=PR,JJ=MR;function QJ(r){return new Pf(r)}function t9(r){return new Mf(r)}function e9(r){return new Lf(r)}function r9(r){return new Tf(r)}function n9(r){return new td(r)}function o9(r){return new ed(r)}function s9(r){return new nd(r)}function i9(r){return new rd(r)}function a9(r){return new od(r)}var zR={};Kt(zR,{MAPE:()=>y9,MSE:()=>I9,binaryAccuracy:()=>l9,binaryCrossentropy:()=>u9,categoricalAccuracy:()=>p9,categoricalCrossentropy:()=>m9,cosineProximity:()=>h9,mape:()=>b9,meanAbsoluteError:()=>g9,meanAbsolutePercentageError:()=>x9,meanSquaredError:()=>w9,mse:()=>C9,precision:()=>f9,recall:()=>d9,sparseCategoricalAccuracy:()=>c9});function l9(r,t){return Ph(r,t)}function u9(r,t){return nb(r,t)}function c9(r,t){return ob(r,t)}function p9(r,t){return Mh(r,t)}function m9(r,t){return Lh(r,t)}function f9(r,t){return FN(r,t)}function d9(r,t){return lR(r,t)}function h9(r,t){return Oh(r,t)}function g9(r,t){return Zm(r,t)}function x9(r,t){return Mu(r,t)}function y9(r,t){return Mu(r,t)}function b9(r,t){return Mu(r,t)}function w9(r,t){return ga(r,t)}function I9(r,t){return ga(r,t)}function C9(r,t){return ga(r,t)}var BR={};Kt(BR,{modelFromJSON:()=>vR});var VR={};Kt(VR,{l1:()=>S9,l1l2:()=>v9,l2:()=>N9});function v9(r){return new Lu(r)}function S9(r){return TR(r)}function N9(r){return _R(r)}var Mb=class extends _l{constructor(){super(...arguments),this.model=null}setModel(t){if(!(t instanceof qn))throw new Error("model must be a LayersModel, not some other Container");this.model=t}};function Pb(r,t){return rt}var Lb=class extends Mb{constructor(t){if(super(),t==null&&(t={}),t.restoreBestWeights)throw new Nt("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=Pb:this.mode==="max"?this.monitorFunc=GR:this.monitor.indexOf("acc")!==-1?this.monitorFunc=GR:this.monitorFunc=Pb,this.monitorFunc===Pb&&(this.minDelta*=-1)}async onTrainBegin(t){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===Pb?1/0:-1/0}async onEpochEnd(t,e){await ha(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 k9(r){return new Lb(r)}var T9={earlyStopping:k9};var _9=L();_9.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 po;(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"})(po||(po={}));var WR;(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={}))})(WR||(WR={}));var XN={};function A9(r,t){let e={tfOpName:r,category:"custom",inputs:[],attrs:[],customExecutor:t};XN[r]=e}function zb(r){return XN[r]}function D9(r){delete XN[r]}function C(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,l=a<0?t.inputNames.length+a:a;if(s.type==="tensor")return pr(t.inputNames[l],e,n,o);if(s.type==="tensors"){let m=t.inputs.slice(a,u);return t.inputNames.slice(a,u).filter((d,h)=>{var g;return((g=m[h])===null||g===void 0?void 0:g.op)!=="NoOp"}).map(d=>pr(d,e,n,o))}let c=pr(t.inputNames[l],e,n,o),p=c.dataSync();return s.type==="number"?p[0]:y.toNestedArray(c.shape,p)}let i=t.attrParams[r];return i&&i.value}function pr(r,t,e,n){let[o,s]=Cn(r,e);if(n!=null){let a=n.getHashTableHandleByName(o);if(a!=null)return a}let i=e.currentContextIds.find(a=>!!t[Bb(o,a)]);return i!==void 0?t[Bb(o,i)][s]:void 0}function YN(r,t,e){return t[Bb(r,e.currentContextId)]}function xi(r,t){let[e,n,o]=Cn(r,t);return[Bb(e,t&&t.currentContextId),n,o]}function Bb(r,t){return t?`${r}-${t}`:r}function Cn(r,t){if(r==="")return["",0,void 0];let e=t!=null&&t.parseNodeNameCache!=null;if(e){let s=t.parseNodeNameCache.get(r);if(s!=null)return s}let n=r.split(":"),o;if(n.length===1)o=[r,0,void 0];else{let s=n[0],i=n.length===3?n[1]:void 0,a=Number(n[n.length-1]);o=[s,a,i]}return e&&t.parseNodeNameCache.set(r,o),o}function Hh(r,t,e){let n=C("pad",r,t,e);if(n==="explicit"){n=C("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 yi(r){return r.kept?r:un(r)}var ZN={};Kt(ZN,{json:()=>$9});var $9=[{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 JN={};Kt(JN,{json:()=>R9});var R9=[{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:"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}]},{tfOpName:"IsFinite",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"IsInf",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}];var QN={};Kt(QN,{json:()=>F9});var F9=[{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 tk={};Kt(tk,{json:()=>O9});var O9=[{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 ek={};Kt(ek,{json:()=>P9});var P9=[{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:"RandomUniformInt",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"minval",name:"minval",type:"number"},{tfName:"maxval",name:"maxval",type:"number"},{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,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 rk={};Kt(rk,{json:()=>M9});var M9=[{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 nk={};Kt(nk,{json:()=>L9});var L9=[{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 ok={};Kt(ok,{json:()=>z9});var z9=[{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 sk={};Kt(sk,{json:()=>B9});var B9=[{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 ik={};Kt(ik,{json:()=>V9});var V9=[{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 ak={};Kt(ak,{json:()=>G9});var G9=[{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}]},{tfOpName:"BitwiseAnd",category:"logical",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}]}];var lk={};Kt(lk,{json:()=>W9});var W9=[{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"}]},{tfOpName:"MatrixBandPart",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"numLower",type:"tensor"},{start:1,name:"numUpper",type:"tensor"}]}];var uk={};Kt(uk,{json:()=>U9});var U9=[{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"}]}];var ck={};Kt(ck,{json:()=>H9});var H9=[{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"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{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 pk={};Kt(pk,{json:()=>q9});var q9=[{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}]},{tfOpName:"TensorScatterUpdate",category:"slice_join",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"values",type:"tensor"}]}];var mk={};Kt(mk,{json:()=>K9});var K9=[{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 fk={};Kt(fk,{json:()=>j9});var j9=[{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 dk={};Kt(dk,{json:()=>X9});var X9=[{tfOpName:"StaticRegexReplace",category:"string",inputs:[{start:0,name:"input",type:"tensor"}],attrs:[{tfName:"pattern",name:"pattern",type:"string"},{tfName:"rewrite",name:"rewrite",type:"string"},{tfName:"replace_global",name:"replaceGlobal",type:"bool"}]},{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 hk={};Kt(hk,{json:()=>Y9});var Y9=[{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:"EnsureShape",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 qh=class{static get Instance(){return this._instance||(this._instance=new this)}constructor(){let t=[ZN,JN,QN,tk,ek,rk,nk,ok,sk,ik,ak,lk,uk,ck,pk,mk,fk,dk,hk],e=[].concat(...t.map(n=>n.json));this.opMappers=e.reduce((n,o)=>(n[o.tfOpName]=o,n),{})}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,,I]=xi(x),N=a[w];if(N.outputs!=null){let E=N.outputs.indexOf(I);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]=xi(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]=xi(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=zb(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=Vb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=Vb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"string[]":a=jb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=jb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"number":a=Wb(t.attr,s.tfName,s.defaultValue||0),a===void 0&&s.tfDeprecatedName&&(a=Wb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"number[]":a=Kb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=Kb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"bool":a=Gb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=Gb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"bool[]":a=Yb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=Yb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"shape":a=qb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=qb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"shape[]":a=Xb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=Xb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"dtype":a=Ub(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=Ub(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"dtype[]":a=Hb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=Hb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"func":a=UR(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=UR(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]=xi(p.name),f={name:m,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:gk(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]=xi(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]=xi(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 Z9(r){let t=L().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 HR(r,t){let e=Array.isArray(r)?String.fromCharCode.apply(null,r):Z9(r);return t?e:e.toLowerCase()}function Vb(r,t,e,n=!1){let o=r[t];return o!=null?HR(o.s,n):e}function Gb(r,t,e){let n=r[t];return n?n.b:e}function Wb(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 gk(r){switch(typeof r=="string"&&(r=po[r]),r){case po.DT_FLOAT:case po.DT_HALF:return"float32";case po.DT_INT32:case po.DT_INT64:case po.DT_INT8:case po.DT_UINT8:return"int32";case po.DT_BOOL:return"bool";case po.DT_DOUBLE:return"float32";case po.DT_STRING:return"string";default:return null}}function UR(r,t,e){let n=r[t];return n&&n.func?n.func.name:e}function Ub(r,t,e){let n=r[t];return n&&n.type?gk(n.type):e}function Hb(r,t,e){let n=r[t];return n&&n.list&&n.list.type?n.list.type.map(o=>gk(o)):e}function qR(r){if(!r.unknownRank)return r.dim!=null?r.dim.map(t=>typeof t.size=="number"?t.size:parseInt(t.size,10)):[]}function qb(r,t,e){let n=r[t];return n&&n.shape?qR(n.shape):e}function Kb(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 jb(r,t,e,n=!1){let o=r[t];return o&&o.list&&o.list.s?o.list.s.map(s=>HR(s,n)):e}function Xb(r,t,e){let n=r[t];return n&&n.list&&n.list.shape?n.list.shape.map(o=>qR(o)):e}function Yb(r,t,e){let n=r[t];return n&&n.list&&n.list.b?n.list.b:e}var Zb=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 pr(t,this.tensorMap,this.context)}getAttr(t,e){let n=this.node.rawAttrs[t];if(n.tensor!=null)return pr(t,this.tensorMap,this.context);if(n.i!=null||n.f!=null)return Wb(this.node.rawAttrs,t,e);if(n.s!=null)return Vb(this.node.rawAttrs,t,e);if(n.b!=null)return Gb(this.node.rawAttrs,t,e);if(n.shape!=null)return qb(this.node.rawAttrs,t,e);if(n.type!=null)return Ub(this.node.rawAttrs,t,e);if(n.list!=null){if(n.list.i!=null||n.list.f!=null)return Kb(this.node.rawAttrs,t,e);if(n.list.s!=null)return jb(this.node.rawAttrs,t,e);if(n.list.shape!=null)return Xb(this.node.rawAttrs,t,e);if(n.list.b!=null)return Yb(this.node.rawAttrs,t,e);if(n.list.type!=null)return Hb(this.node.rawAttrs,t,e)}return e}};var ie={};Kt(ie,{OP_SCOPE_SUFFIX:()=>A0,abs:()=>Ee,acos:()=>dx,acosh:()=>hx,add:()=>Y,addN:()=>fE,all:()=>am,any:()=>dc,argMax:()=>ta,argMin:()=>gx,asin:()=>xx,asinh:()=>yx,atan:()=>bx,atan2:()=>wx,atanh:()=>Ix,avgPool:()=>bu,avgPool3d:()=>Cx,basicLSTMCell:()=>gE,batchNorm:()=>na,batchNorm2d:()=>vx,batchNorm3d:()=>Sx,batchNorm4d:()=>Nx,batchToSpaceND:()=>wu,bincount:()=>kx,bitwiseAnd:()=>yE,booleanMaskAsync:()=>c5,broadcastArgs:()=>bE,broadcastTo:()=>oa,buffer:()=>bt,cast:()=>Q,ceil:()=>Tx,clipByValue:()=>vr,clone:()=>un,complex:()=>Nn,concat:()=>se,concat1d:()=>_x,concat2d:()=>Ex,concat3d:()=>Ax,concat4d:()=>Dx,conv1d:()=>um,conv2d:()=>kn,conv2dTranspose:()=>pm,conv3d:()=>$x,conv3dTranspose:()=>Fx,cos:()=>Iu,cosh:()=>mm,cosineWindow:()=>Ih,cumprod:()=>gc,cumsum:()=>fm,denseBincount:()=>gh,depthToSpace:()=>Ox,depthwiseConv2d:()=>sa,diag:()=>wE,dilation2d:()=>Px,div:()=>ct,divNoNan:()=>Mx,dot:()=>Lx,dropout:()=>nN,einsum:()=>CE,elu:()=>ia,enclosingPowerOfTwo:()=>oN,ensureShape:()=>vE,equal:()=>Rr,erf:()=>zx,euclideanNorm:()=>Bx,exp:()=>ir,expandDims:()=>ar,expm1:()=>Vx,eye:()=>xc,fft:()=>Au,fill:()=>vo,floor:()=>aa,floorDiv:()=>im,fused:()=>Ru,gather:()=>la,gatherND:()=>w5,greater:()=>Fe,greaterEqual:()=>pn,ifft:()=>Il,imag:()=>Cu,image:()=>dn,inTopKAsync:()=>v5,irfft:()=>km,isFinite:()=>Gx,isInf:()=>Wx,isNaN:()=>Ux,leakyRelu:()=>vu,less:()=>bl,lessEqual:()=>Gn,linalg:()=>iN,linspace:()=>kE,localResponseNormalization:()=>Hx,log:()=>Nr,log1p:()=>Su,logSigmoid:()=>jx,logSoftmax:()=>dm,logSumExp:()=>hm,logicalAnd:()=>Or,logicalNot:()=>Nu,logicalOr:()=>gm,logicalXor:()=>Xx,losses:()=>S8,lowerBound:()=>TE,matMul:()=>Bt,max:()=>Sr,maxPool:()=>ku,maxPool3d:()=>Zx,maxPoolWithArgmax:()=>_E,maximum:()=>Tn,mean:()=>ke,meshgrid:()=>EE,min:()=>xl,minimum:()=>uo,mirrorPad:()=>Jx,mod:()=>Qx,moments:()=>yc,movingAverage:()=>f5,mul:()=>$,multiRNNCell:()=>AE,multinomial:()=>DE,neg:()=>Ut,norm:()=>yl,notEqual:()=>li,oneHot:()=>ua,ones:()=>dr,onesLike:()=>Ir,op:()=>k,outerProduct:()=>$E,pad:()=>fn,pad1d:()=>RE,pad2d:()=>FE,pad3d:()=>OE,pad4d:()=>PE,pool:()=>ty,pow:()=>cn,prelu:()=>_u,print:()=>fx,prod:()=>ey,raggedGather:()=>ME,raggedRange:()=>LE,raggedTensorToTensor:()=>zE,rand:()=>BE,randomGamma:()=>aA,randomNormal:()=>Ic,randomStandardNormal:()=>lA,randomUniform:()=>Wn,randomUniformInt:()=>uA,range:()=>ca,real:()=>wl,reciprocal:()=>ay,relu:()=>Pr,relu6:()=>xm,reshape:()=>R,reverse:()=>hr,reverse1d:()=>cA,reverse2d:()=>pA,reverse3d:()=>mA,reverse4d:()=>fA,rfft:()=>Du,round:()=>ym,rsqrt:()=>bm,scalar:()=>ft,scatterND:()=>h5,searchSorted:()=>yh,selu:()=>wm,separableConv2d:()=>Im,setdiff1dAsync:()=>dA,sigmoid:()=>tn,sign:()=>ly,signal:()=>v8,sin:()=>Cm,sinh:()=>vm,slice:()=>Ot,slice1d:()=>Sm,slice2d:()=>wh,slice3d:()=>Nm,slice4d:()=>Cc,softmax:()=>Eu,softplus:()=>ai,spaceToBatchND:()=>Tu,sparse:()=>N8,sparseToDense:()=>y5,spectral:()=>C8,split:()=>gr,sqrt:()=>Ne,square:()=>Wt,squaredDifference:()=>Tm,squeeze:()=>Un,stack:()=>qe,step:()=>No,stridedSlice:()=>uy,string:()=>k8,sub:()=>lt,sum:()=>pt,tan:()=>cy,tanh:()=>ra,tensor:()=>sr,tensor1d:()=>Ke,tensor2d:()=>ui,tensor3d:()=>py,tensor4d:()=>hA,tensor5d:()=>gA,tensor6d:()=>xA,tensorScatterUpdate:()=>bA,tile:()=>Fr,topk:()=>my,transpose:()=>Vt,truncatedNormal:()=>Em,unique:()=>fy,unsortedSegmentSum:()=>Am,unstack:()=>xr,upperBound:()=>wA,variable:()=>dy,where:()=>be,whereAsync:()=>gy,zeros:()=>Te,zerosLike:()=>vt});var KR=(r,t,e,n=ie)=>{switch(r.op){case"BiasAdd":case"AddV2":case"Add":return[n.add(C("a",r,t,e),C("b",r,t,e))];case"AddN":return[n.addN(C("tensors",r,t,e))];case"FloorMod":case"Mod":return[n.mod(C("a",r,t,e),C("b",r,t,e))];case"Mul":return[n.mul(C("a",r,t,e),C("b",r,t,e))];case"RealDiv":case"Div":return[n.div(C("a",r,t,e),C("b",r,t,e))];case"DivNoNan":return[n.divNoNan(C("a",r,t,e),C("b",r,t,e))];case"FloorDiv":return[n.floorDiv(C("a",r,t,e),C("b",r,t,e))];case"Sub":return[n.sub(C("a",r,t,e),C("b",r,t,e))];case"Minimum":return[n.minimum(C("a",r,t,e),C("b",r,t,e))];case"Maximum":return[n.maximum(C("a",r,t,e),C("b",r,t,e))];case"Pow":return[n.pow(C("a",r,t,e),C("b",r,t,e))];case"SquaredDifference":return[n.squaredDifference(C("a",r,t,e),C("b",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var jR=(r,t,e,n=ie)=>{switch(r.op){case"Abs":case"ComplexAbs":return[n.abs(C("x",r,t,e))];case"Acos":return[n.acos(C("x",r,t,e))];case"Acosh":return[n.acosh(C("x",r,t,e))];case"Asin":return[n.asin(C("x",r,t,e))];case"Asinh":return[n.asinh(C("x",r,t,e))];case"Atan":return[n.atan(C("x",r,t,e))];case"Atan2":return[n.atan2(C("x",r,t,e),C("y",r,t,e))];case"Atanh":return[n.atanh(C("x",r,t,e))];case"Ceil":return[n.ceil(C("x",r,t,e))];case"Complex":return[n.complex(C("real",r,t,e),C("imag",r,t,e))];case"Cos":return[n.cos(C("x",r,t,e))];case"Cosh":return[n.cosh(C("x",r,t,e))];case"Elu":return[n.elu(C("x",r,t,e))];case"Erf":return[n.erf(C("x",r,t,e))];case"Exp":return[n.exp(C("x",r,t,e))];case"Expm1":return[n.expm1(C("x",r,t,e))];case"Floor":return[n.floor(C("x",r,t,e))];case"Log":return[n.log(C("x",r,t,e))];case"Log1p":return[n.log1p(C("x",r,t,e))];case"Imag":return[n.imag(C("x",r,t,e))];case"Neg":return[n.neg(C("x",r,t,e))];case"Reciprocal":return[n.reciprocal(C("x",r,t,e))];case"Real":return[n.real(C("x",r,t,e))];case"Relu":return[n.relu(C("x",r,t,e))];case"Round":return[n.round(C("x",r,t,e))];case"Selu":return[n.selu(C("x",r,t,e))];case"Sigmoid":return[n.sigmoid(C("x",r,t,e))];case"Sin":return[n.sin(C("x",r,t,e))];case"Sign":return[n.sign(C("x",r,t,e))];case"Sinh":return[n.sinh(C("x",r,t,e))];case"Softplus":return[n.softplus(C("x",r,t,e))];case"Sqrt":return[n.sqrt(C("x",r,t,e))];case"Square":return[n.square(C("x",r,t,e))];case"Tanh":return[n.tanh(C("x",r,t,e))];case"Tan":return[n.tan(C("x",r,t,e))];case"ClipByValue":return[n.clipByValue(C("x",r,t,e),C("clipValueMin",r,t,e),C("clipValueMax",r,t,e))];case"Relu6":return[n.relu6(C("x",r,t,e))];case"Rsqrt":return[n.rsqrt(pr(r.inputNames[0],t,e))];case"LeakyRelu":return[n.leakyRelu(C("x",r,t,e),C("alpha",r,t,e))];case"Prelu":return[n.prelu(C("x",r,t,e),C("alpha",r,t,e))];case"IsNan":return[n.isNaN(pr(r.inputNames[0],t,e))];case"IsInf":return[n.isInf(pr(r.inputNames[0],t,e))];case"IsFinite":return[n.isFinite(pr(r.inputNames[0],t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function Kn(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 XR(r){return!(typeof r=="number"||r.some(t=>t<0))}function sd(r,t,e){let n=Jb(r,e),o=!XR(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=Jb(s.shape,n)}),!XR(n))throw new Error(`Non-fully-defined elementShape: ${n}`);return n}function Jb(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 Qb=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=ft(0),$e(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),Kn(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,$e(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,xr(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 + `);if(n)if(WR.has(n))this.interpolation=n;else throw new z(`Invalid interpolation parameter: ${n} is not implemented`)}getConfig(){let t={factor:this.factor,interpolation:this.interpolation},e=super.getConfig();return Object.assign(t,e),t}computeOutputShape(t){t=Gt(t);let e=t[2];return[this.imgHeight,-1,e]}call(t,e){return B(()=>{let n=St(t);this.imgHeight=n.shape[n.shape.length-3];let o=n.shape[n.shape.length-2];this.widthFactor=Hn([1],1+this.widthLower,1+this.widthUpper,"float32",this.randomGenerator.next());let s=this.widthFactor.dataSync()[0]*o;s=Math.round(s);let i=[this.imgHeight,s];switch(this.interpolation){case"bilinear":return hn.resizeBilinear(t,i);case"nearest":return hn.resizeNearestNeighbor(t,i);default:throw new Error(`Interpolation is ${this.interpolation} + but only ${[...WR]} are supported`)}})}};sd.className="RandomWidth";J.registerClass(sd);function yJ(r){return new xi(r)}function bJ(r){return new lf(r)}function wJ(r){return new of(r)}function IJ(r){return new sf(r)}function CJ(r){return new af(r)}function vJ(r){return new cf(r)}function SJ(r){return new uf(r)}function NJ(r){return new qu(r)}function kJ(r){return new Dl(r)}function TJ(r){return new pf(r)}function _J(r){return new $l(r)}function EJ(r){return new mf(r)}function AJ(r){return new ff(r)}function DJ(r){return new df(r)}function $J(r){return new hf(r)}function RJ(r){return new gf(r)}function FJ(r){return new Sf(r)}function OJ(r){return new Cf(r)}function PJ(r){return new np(r)}function MJ(r){return new If(r)}function LJ(r){return new vf(r)}function zJ(r){return new Nf(r)}function BJ(r){return new kf(r)}function VJ(r){return new Tf(r)}function GJ(r){return new Ef(r)}function WJ(r){return new Af(r)}function UJ(r){return new $f(r)}function HJ(r){return new Of(r)}function qJ(r){return new Rf(r)}function KJ(r){return new Ff(r)}function jJ(r){return new Df(r)}function XJ(r){return new Pf(r)}function YJ(r){return new Bf(r)}function ZJ(r){return new Vf(r)}function JJ(r){return new Gf(r)}function QN(r){return new Uf(r)}function QJ(r){return QN(r)}function t9(r){return QN(r)}function tk(r){return new qf(r)}function e9(r){return tk(r)}function r9(r){return tk(r)}function ek(r){return new jf(r)}function n9(r){return ek(r)}function o9(r){return ek(r)}function s9(r){return new Xf(r)}function i9(r){return new Zf(r)}function UR(r){return new Yf(r)}function HR(r){return new Jf(r)}function qR(r){return new Wf(r)}function KR(r){return new Hf(r)}function a9(r){return new Kf(r)}function l9(r){return new yf(r)}function u9(r){return new tp(r)}function c9(r){return new bf(r)}function p9(r){return new Fl(r)}function m9(r){return new xf(r)}function f9(r){return new Qc(r)}function d9(r){return new wf(r)}function h9(r){return new rp(r)}function g9(r){return new Dn(r)}function x9(r){return new ep(r)}function y9(r){return new td(r)}function b9(r){return new Qf(r)}var w9=UR,I9=HR,C9=qR,v9=KR;function S9(r){return new Mf(r)}function N9(r){return new Lf(r)}function k9(r){return new zf(r)}function T9(r){return new _f(r)}function _9(r){return new ed(r)}function E9(r){return new rd(r)}function A9(r){return new od(r)}function D9(r){return new nd(r)}function $9(r){return new sd(r)}var XR={};Kt(XR,{MAPE:()=>W9,MSE:()=>q9,binaryAccuracy:()=>R9,binaryCrossentropy:()=>F9,categoricalAccuracy:()=>P9,categoricalCrossentropy:()=>M9,cosineProximity:()=>B9,mape:()=>U9,meanAbsoluteError:()=>V9,meanAbsolutePercentageError:()=>G9,meanSquaredError:()=>H9,mse:()=>K9,precision:()=>L9,recall:()=>z9,sparseCategoricalAccuracy:()=>O9});function R9(r,t){return Ph(r,t)}function F9(r,t){return nb(r,t)}function O9(r,t){return ob(r,t)}function P9(r,t){return Mh(r,t)}function M9(r,t){return Lh(r,t)}function L9(r,t){return VN(r,t)}function z9(r,t){return yR(r,t)}function B9(r,t){return Oh(r,t)}function V9(r,t){return Jm(r,t)}function G9(r,t){return Gu(r,t)}function W9(r,t){return Gu(r,t)}function U9(r,t){return Gu(r,t)}function H9(r,t){return wa(r,t)}function q9(r,t){return wa(r,t)}function K9(r,t){return wa(r,t)}var YR={};Kt(YR,{modelFromJSON:()=>RR});var ZR={};Kt(ZR,{l1:()=>X9,l1l2:()=>j9,l2:()=>Y9});function j9(r){return new Wu(r)}function X9(r){return MR(r)}function Y9(r){return LR(r)}var Mb=class extends Al{constructor(){super(...arguments),this.model=null}setModel(t){if(!(t instanceof jn))throw new Error("model must be a LayersModel, not some other Container");this.model=t}};function Pb(r,t){return rt}var Lb=class extends Mb{constructor(t){if(super(),t==null&&(t={}),t.restoreBestWeights)throw new kt("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=Pb:this.mode==="max"?this.monitorFunc=JR:this.monitor.indexOf("acc")!==-1?this.monitorFunc=JR:this.monitorFunc=Pb,this.monitorFunc===Pb&&(this.minDelta*=-1)}async onTrainBegin(t){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===Pb?1/0:-1/0}async onEpochEnd(t,e){await ba(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 Z9(r){return new Lb(r)}var J9={earlyStopping:Z9};var Q9=L();Q9.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 ho;(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"})(ho||(ho={}));var QR;(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={}))})(QR||(QR={}));var rk={};function eQ(r,t){let e={tfOpName:r,category:"custom",inputs:[],attrs:[],customExecutor:t};rk[r]=e}function zb(r){return rk[r]}function rQ(r){delete rk[r]}function v(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,l=a<0?t.inputNames.length+a:a;if(s.type==="tensor")return pr(t.inputNames[l],e,n,o);if(s.type==="tensors"){let m=t.inputs.slice(a,u);return t.inputNames.slice(a,u).filter((d,h)=>{var g;return((g=m[h])===null||g===void 0?void 0:g.op)!=="NoOp"}).map(d=>pr(d,e,n,o))}let c=pr(t.inputNames[l],e,n,o),p=c.dataSync();return s.type==="number"?p[0]:y.toNestedArray(c.shape,p)}let i=t.attrParams[r];return i&&i.value}function pr(r,t,e,n){let[o,s]=vn(r,e);if(n!=null){let a=n.getHashTableHandleByName(o);if(a!=null)return a}let i=e.currentContextIds.find(a=>!!t[Bb(o,a)]);return i!==void 0?t[Bb(o,i)][s]:void 0}function nk(r,t,e){return t[Bb(r,e.currentContextId)]}function Ii(r,t){let[e,n,o]=vn(r,t);return[Bb(e,t&&t.currentContextId),n,o]}function Bb(r,t){return t?`${r}-${t}`:r}function vn(r,t){if(r==="")return["",0,void 0];let e=t!=null&&t.parseNodeNameCache!=null;if(e){let s=t.parseNodeNameCache.get(r);if(s!=null)return s}let n=r.split(":"),o;if(n.length===1)o=[r,0,void 0];else{let s=n[0],i=n.length===3?n[1]:void 0,a=Number(n[n.length-1]);o=[s,a,i]}return e&&t.parseNodeNameCache.set(r,o),o}function Hh(r,t,e){let n=v("pad",r,t,e);if(n==="explicit"){n=v("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 Ci(r){return r.kept?r:cn(r)}var ok={};Kt(ok,{json:()=>nQ});var nQ=[{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 sk={};Kt(sk,{json:()=>oQ});var oQ=[{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:"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}]},{tfOpName:"IsFinite",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"IsInf",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}];var ik={};Kt(ik,{json:()=>sQ});var sQ=[{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 ak={};Kt(ak,{json:()=>iQ});var iQ=[{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 lk={};Kt(lk,{json:()=>aQ});var aQ=[{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:"RandomUniformInt",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"minval",name:"minval",type:"number"},{tfName:"maxval",name:"maxval",type:"number"},{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,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 uk={};Kt(uk,{json:()=>lQ});var lQ=[{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 ck={};Kt(ck,{json:()=>uQ});var uQ=[{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 pk={};Kt(pk,{json:()=>cQ});var cQ=[{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 mk={};Kt(mk,{json:()=>pQ});var pQ=[{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 fk={};Kt(fk,{json:()=>mQ});var mQ=[{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 dk={};Kt(dk,{json:()=>fQ});var fQ=[{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}]},{tfOpName:"BitwiseAnd",category:"logical",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}]}];var hk={};Kt(hk,{json:()=>dQ});var dQ=[{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"}]},{tfOpName:"MatrixBandPart",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"numLower",type:"tensor"},{start:1,name:"numUpper",type:"tensor"}]}];var gk={};Kt(gk,{json:()=>hQ});var hQ=[{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"}]}];var xk={};Kt(xk,{json:()=>gQ});var gQ=[{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"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{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 yk={};Kt(yk,{json:()=>xQ});var xQ=[{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}]},{tfOpName:"TensorScatterUpdate",category:"slice_join",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"values",type:"tensor"}]}];var bk={};Kt(bk,{json:()=>yQ});var yQ=[{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 wk={};Kt(wk,{json:()=>bQ});var bQ=[{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 Ik={};Kt(Ik,{json:()=>wQ});var wQ=[{tfOpName:"StaticRegexReplace",category:"string",inputs:[{start:0,name:"input",type:"tensor"}],attrs:[{tfName:"pattern",name:"pattern",type:"string"},{tfName:"rewrite",name:"rewrite",type:"string"},{tfName:"replace_global",name:"replaceGlobal",type:"bool"}]},{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 Ck={};Kt(Ck,{json:()=>IQ});var IQ=[{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:"EnsureShape",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 qh=class{static get Instance(){return this._instance||(this._instance=new this)}constructor(){let t=[ok,sk,ik,ak,lk,uk,ck,pk,mk,fk,dk,hk,gk,xk,yk,bk,wk,Ik,Ck],e=[].concat(...t.map(n=>n.json));this.opMappers=e.reduce((n,o)=>(n[o.tfOpName]=o,n),{})}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,,I]=Ii(x),N=a[w];if(N.outputs!=null){let E=N.outputs.indexOf(I);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]=Ii(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]=Ii(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=zb(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=Vb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=Vb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"string[]":a=jb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=jb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"number":a=Wb(t.attr,s.tfName,s.defaultValue||0),a===void 0&&s.tfDeprecatedName&&(a=Wb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"number[]":a=Kb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=Kb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"bool":a=Gb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=Gb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"bool[]":a=Yb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=Yb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"shape":a=qb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=qb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"shape[]":a=Xb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=Xb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"dtype":a=Ub(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=Ub(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"dtype[]":a=Hb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=Hb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"func":a=tF(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=tF(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]=Ii(p.name),f={name:m,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:vk(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]=Ii(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]=Ii(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 CQ(r){let t=L().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 eF(r,t){let e=Array.isArray(r)?String.fromCharCode.apply(null,r):CQ(r);return t?e:e.toLowerCase()}function Vb(r,t,e,n=!1){let o=r[t];return o!=null?eF(o.s,n):e}function Gb(r,t,e){let n=r[t];return n?n.b:e}function Wb(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 vk(r){switch(typeof r=="string"&&(r=ho[r]),r){case ho.DT_FLOAT:case ho.DT_HALF:return"float32";case ho.DT_INT32:case ho.DT_INT64:case ho.DT_INT8:case ho.DT_UINT8:return"int32";case ho.DT_BOOL:return"bool";case ho.DT_DOUBLE:return"float32";case ho.DT_STRING:return"string";default:return null}}function tF(r,t,e){let n=r[t];return n&&n.func?n.func.name:e}function Ub(r,t,e){let n=r[t];return n&&n.type?vk(n.type):e}function Hb(r,t,e){let n=r[t];return n&&n.list&&n.list.type?n.list.type.map(o=>vk(o)):e}function rF(r){if(!r.unknownRank)return r.dim!=null?r.dim.map(t=>typeof t.size=="number"?t.size:parseInt(t.size,10)):[]}function qb(r,t,e){let n=r[t];return n&&n.shape?rF(n.shape):e}function Kb(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 jb(r,t,e,n=!1){let o=r[t];return o&&o.list&&o.list.s?o.list.s.map(s=>eF(s,n)):e}function Xb(r,t,e){let n=r[t];return n&&n.list&&n.list.shape?n.list.shape.map(o=>rF(o)):e}function Yb(r,t,e){let n=r[t];return n&&n.list&&n.list.b?n.list.b:e}var Zb=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 pr(t,this.tensorMap,this.context)}getAttr(t,e){let n=this.node.rawAttrs[t];if(n.tensor!=null)return pr(t,this.tensorMap,this.context);if(n.i!=null||n.f!=null)return Wb(this.node.rawAttrs,t,e);if(n.s!=null)return Vb(this.node.rawAttrs,t,e);if(n.b!=null)return Gb(this.node.rawAttrs,t,e);if(n.shape!=null)return qb(this.node.rawAttrs,t,e);if(n.type!=null)return Ub(this.node.rawAttrs,t,e);if(n.list!=null){if(n.list.i!=null||n.list.f!=null)return Kb(this.node.rawAttrs,t,e);if(n.list.s!=null)return jb(this.node.rawAttrs,t,e);if(n.list.shape!=null)return Xb(this.node.rawAttrs,t,e);if(n.list.b!=null)return Yb(this.node.rawAttrs,t,e);if(n.list.type!=null)return Hb(this.node.rawAttrs,t,e)}return e}};var ae={};Kt(ae,{OP_SCOPE_SUFFIX:()=>M0,abs:()=>Ee,acos:()=>hx,acosh:()=>gx,add:()=>Y,addN:()=>IE,all:()=>lm,any:()=>bc,argMax:()=>oa,argMin:()=>xx,asin:()=>yx,asinh:()=>bx,atan:()=>wx,atan2:()=>Ix,atanh:()=>Cx,avgPool:()=>Su,avgPool3d:()=>vx,basicLSTMCell:()=>SE,batchNorm:()=>aa,batchNorm2d:()=>Sx,batchNorm3d:()=>Nx,batchNorm4d:()=>kx,batchToSpaceND:()=>Nu,bincount:()=>Tx,bitwiseAnd:()=>kE,booleanMaskAsync:()=>F5,broadcastArgs:()=>TE,broadcastTo:()=>la,buffer:()=>wt,cast:()=>Q,ceil:()=>_x,clipByValue:()=>Sr,clone:()=>cn,complex:()=>kn,concat:()=>ie,concat1d:()=>Ex,concat2d:()=>Ax,concat3d:()=>Dx,concat4d:()=>$x,conv1d:()=>cm,conv2d:()=>Tn,conv2dTranspose:()=>mm,conv3d:()=>Rx,conv3dTranspose:()=>Ox,cos:()=>ku,cosh:()=>fm,cosineWindow:()=>Ih,cumprod:()=>Ic,cumsum:()=>dm,denseBincount:()=>gh,depthToSpace:()=>Px,depthwiseConv2d:()=>ua,diag:()=>_E,dilation2d:()=>Mx,div:()=>ct,divNoNan:()=>Lx,dot:()=>zx,dropout:()=>cN,einsum:()=>AE,elu:()=>ca,enclosingPowerOfTwo:()=>pN,ensureShape:()=>DE,equal:()=>Fr,erf:()=>Bx,euclideanNorm:()=>Vx,exp:()=>ir,expandDims:()=>ar,expm1:()=>Gx,eye:()=>Cc,fft:()=>Ou,fill:()=>No,floor:()=>pa,floorDiv:()=>am,fused:()=>Lu,gather:()=>ma,gatherND:()=>U5,greater:()=>Fe,greaterEqual:()=>mn,ifft:()=>vl,imag:()=>Tu,image:()=>hn,inTopKAsync:()=>K5,irfft:()=>Tm,isFinite:()=>Wx,isInf:()=>Ux,isNaN:()=>Hx,leakyRelu:()=>_u,less:()=>Il,lessEqual:()=>Un,linalg:()=>fN,linspace:()=>FE,localResponseNormalization:()=>qx,log:()=>kr,log1p:()=>Eu,logSigmoid:()=>Xx,logSoftmax:()=>hm,logSumExp:()=>gm,logicalAnd:()=>Pr,logicalNot:()=>Au,logicalOr:()=>xm,logicalXor:()=>Yx,losses:()=>j8,lowerBound:()=>OE,matMul:()=>Bt,max:()=>Nr,maxPool:()=>Du,maxPool3d:()=>Jx,maxPoolWithArgmax:()=>PE,maximum:()=>_n,mean:()=>ke,meshgrid:()=>ME,min:()=>bl,minimum:()=>mo,mirrorPad:()=>Qx,mod:()=>ty,moments:()=>vc,movingAverage:()=>M5,mul:()=>$,multiRNNCell:()=>LE,multinomial:()=>zE,neg:()=>Ut,norm:()=>wl,notEqual:()=>mi,oneHot:()=>fa,ones:()=>dr,onesLike:()=>Ir,op:()=>k,outerProduct:()=>BE,pad:()=>dn,pad1d:()=>VE,pad2d:()=>GE,pad3d:()=>WE,pad4d:()=>UE,pool:()=>ey,pow:()=>pn,prelu:()=>Ru,print:()=>dx,prod:()=>ry,raggedGather:()=>HE,raggedRange:()=>qE,raggedTensorToTensor:()=>KE,rand:()=>jE,randomGamma:()=>hA,randomNormal:()=>kc,randomStandardNormal:()=>gA,randomUniform:()=>Hn,randomUniformInt:()=>xA,range:()=>da,real:()=>Cl,reciprocal:()=>ly,relu:()=>Mr,relu6:()=>ym,reshape:()=>R,reverse:()=>hr,reverse1d:()=>yA,reverse2d:()=>bA,reverse3d:()=>wA,reverse4d:()=>IA,rfft:()=>Pu,round:()=>bm,rsqrt:()=>wm,scalar:()=>ft,scatterND:()=>z5,searchSorted:()=>yh,selu:()=>Im,separableConv2d:()=>Cm,setdiff1dAsync:()=>CA,sigmoid:()=>en,sign:()=>uy,signal:()=>K8,sin:()=>vm,sinh:()=>Sm,slice:()=>Pt,slice1d:()=>Nm,slice2d:()=>wh,slice3d:()=>km,slice4d:()=>Tc,softmax:()=>Fu,softplus:()=>pi,spaceToBatchND:()=>$u,sparse:()=>X8,sparseToDense:()=>G5,spectral:()=>q8,split:()=>gr,sqrt:()=>Ne,square:()=>Wt,squaredDifference:()=>_m,squeeze:()=>qn,stack:()=>qe,step:()=>To,stridedSlice:()=>cy,string:()=>Y8,sub:()=>lt,sum:()=>pt,tan:()=>py,tanh:()=>ia,tensor:()=>sr,tensor1d:()=>Ke,tensor2d:()=>fi,tensor3d:()=>my,tensor4d:()=>vA,tensor5d:()=>SA,tensor6d:()=>NA,tensorScatterUpdate:()=>TA,tile:()=>Or,topk:()=>fy,transpose:()=>Vt,truncatedNormal:()=>Am,unique:()=>dy,unsortedSegmentSum:()=>Dm,unstack:()=>xr,upperBound:()=>_A,variable:()=>hy,where:()=>be,whereAsync:()=>xy,zeros:()=>Te,zerosLike:()=>vt});var nF=(r,t,e,n=ae)=>{switch(r.op){case"BiasAdd":case"AddV2":case"Add":return[n.add(v("a",r,t,e),v("b",r,t,e))];case"AddN":return[n.addN(v("tensors",r,t,e))];case"FloorMod":case"Mod":return[n.mod(v("a",r,t,e),v("b",r,t,e))];case"Mul":return[n.mul(v("a",r,t,e),v("b",r,t,e))];case"RealDiv":case"Div":return[n.div(v("a",r,t,e),v("b",r,t,e))];case"DivNoNan":return[n.divNoNan(v("a",r,t,e),v("b",r,t,e))];case"FloorDiv":return[n.floorDiv(v("a",r,t,e),v("b",r,t,e))];case"Sub":return[n.sub(v("a",r,t,e),v("b",r,t,e))];case"Minimum":return[n.minimum(v("a",r,t,e),v("b",r,t,e))];case"Maximum":return[n.maximum(v("a",r,t,e),v("b",r,t,e))];case"Pow":return[n.pow(v("a",r,t,e),v("b",r,t,e))];case"SquaredDifference":return[n.squaredDifference(v("a",r,t,e),v("b",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var oF=(r,t,e,n=ae)=>{switch(r.op){case"Abs":case"ComplexAbs":return[n.abs(v("x",r,t,e))];case"Acos":return[n.acos(v("x",r,t,e))];case"Acosh":return[n.acosh(v("x",r,t,e))];case"Asin":return[n.asin(v("x",r,t,e))];case"Asinh":return[n.asinh(v("x",r,t,e))];case"Atan":return[n.atan(v("x",r,t,e))];case"Atan2":return[n.atan2(v("x",r,t,e),v("y",r,t,e))];case"Atanh":return[n.atanh(v("x",r,t,e))];case"Ceil":return[n.ceil(v("x",r,t,e))];case"Complex":return[n.complex(v("real",r,t,e),v("imag",r,t,e))];case"Cos":return[n.cos(v("x",r,t,e))];case"Cosh":return[n.cosh(v("x",r,t,e))];case"Elu":return[n.elu(v("x",r,t,e))];case"Erf":return[n.erf(v("x",r,t,e))];case"Exp":return[n.exp(v("x",r,t,e))];case"Expm1":return[n.expm1(v("x",r,t,e))];case"Floor":return[n.floor(v("x",r,t,e))];case"Log":return[n.log(v("x",r,t,e))];case"Log1p":return[n.log1p(v("x",r,t,e))];case"Imag":return[n.imag(v("x",r,t,e))];case"Neg":return[n.neg(v("x",r,t,e))];case"Reciprocal":return[n.reciprocal(v("x",r,t,e))];case"Real":return[n.real(v("x",r,t,e))];case"Relu":return[n.relu(v("x",r,t,e))];case"Round":return[n.round(v("x",r,t,e))];case"Selu":return[n.selu(v("x",r,t,e))];case"Sigmoid":return[n.sigmoid(v("x",r,t,e))];case"Sin":return[n.sin(v("x",r,t,e))];case"Sign":return[n.sign(v("x",r,t,e))];case"Sinh":return[n.sinh(v("x",r,t,e))];case"Softplus":return[n.softplus(v("x",r,t,e))];case"Sqrt":return[n.sqrt(v("x",r,t,e))];case"Square":return[n.square(v("x",r,t,e))];case"Tanh":return[n.tanh(v("x",r,t,e))];case"Tan":return[n.tan(v("x",r,t,e))];case"ClipByValue":return[n.clipByValue(v("x",r,t,e),v("clipValueMin",r,t,e),v("clipValueMax",r,t,e))];case"Relu6":return[n.relu6(v("x",r,t,e))];case"Rsqrt":return[n.rsqrt(pr(r.inputNames[0],t,e))];case"LeakyRelu":return[n.leakyRelu(v("x",r,t,e),v("alpha",r,t,e))];case"Prelu":return[n.prelu(v("x",r,t,e),v("alpha",r,t,e))];case"IsNan":return[n.isNaN(pr(r.inputNames[0],t,e))];case"IsInf":return[n.isInf(pr(r.inputNames[0],t,e))];case"IsFinite":return[n.isFinite(pr(r.inputNames[0],t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function Xn(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 sF(r){return!(typeof r=="number"||r.some(t=>t<0))}function id(r,t,e){let n=Jb(r,e),o=!sF(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=Jb(s.shape,n)}),!sF(n))throw new Error(`Non-fully-defined elementShape: ${n}`);return n}function Jb(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 Qb=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=ft(0),$e(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),Xn(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,$e(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,xr(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}`);Kn(e,s.shape,"TensorList shape mismatch: "),$e(s)}),this.idTensor=ft(0),this.maxNumElements=o,$e(this.idTensor)}copy(){return new Ol([...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.`);Kn(t,this.elementShape,"TensorList shape mismatch: ");let o=sd(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=sd(this.elementShape,this.tensors,t),o=this.tensors.pop();return o.kept=!1,Kn(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(Kn(t.shape,this.elementShape,"TensorList shape mismatch: "),this.maxNumElements===this.size())throw new Error("Trying to push element into a full list.");$e(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 Ol([],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.`);Kn(this.tensors[t].shape,e,"TensorList shape mismatch: ");let o=sd(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.`);Kn(this.elementShape,e.shape,"TensorList shape mismatch: "),$e(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}`);Kn(this.elementShape,n,"TensorList shape mismatch: "),t=t.slice(0,this.size());let o=sd(this.elementShape,this.tensors,n);return t.length===0?sr([],[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}`);Kn(this.elementShape,e,"TensorList shape mismatch: ");let n=sd(this.elementShape,this.tensors,e);return this.size()===0?sr([],[0].concat(n)):B(()=>{let o=this.tensors.map(s=>R(s,n));return se(o,0)})}};function YR(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);Kn(o,t,"TensorList shape mismatch: ");let s=xr(r);return new Ol(s,t,n)}function ZR(r,t,e,n){return new Ol([],r,t,n)}function JR(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 Ol([],e,r.dtype,n),i=xr(r,0);return t.forEach((a,u)=>{s.setItem(a,i[u])}),s}function QR(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}`);Xn(e,s.shape,"TensorList shape mismatch: "),$e(s)}),this.idTensor=ft(0),this.maxNumElements=o,$e(this.idTensor)}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.`);Xn(t,this.elementShape,"TensorList shape mismatch: ");let o=id(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=id(this.elementShape,this.tensors,t),o=this.tensors.pop();return o.kept=!1,Xn(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(Xn(t.shape,this.elementShape,"TensorList shape mismatch: "),this.maxNumElements===this.size())throw new Error("Trying to push element into a full list.");$e(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.`);Xn(this.tensors[t].shape,e,"TensorList shape mismatch: ");let o=id(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.`);Xn(this.elementShape,e.shape,"TensorList shape mismatch: "),$e(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}`);Xn(this.elementShape,n,"TensorList shape mismatch: "),t=t.slice(0,this.size());let o=id(this.elementShape,this.tensors,n);return t.length===0?sr([],[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}`);Xn(this.elementShape,e,"TensorList shape mismatch: ");let n=id(this.elementShape,this.tensors,e);return this.size()===0?sr([],[0].concat(n)):B(()=>{let o=this.tensors.map(s=>R(s,n));return ie(o,0)})}};function iF(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);Xn(o,t,"TensorList shape mismatch: ");let s=xr(r);return new Ml(s,t,n)}function aF(r,t,e,n){return new Ml([],r,t,n)}function lF(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=xr(r,0);return t.forEach((a,u)=>{s.setItem(a,i[u])}),s}function uF(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=Jb(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=C("thenBranch",r,t,e),o=C("elseBranch",r,t,e),s=C("cond",r,t,e),i=C("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=C("body",r,t,e),o=C("cond",r,t,e),s=C("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=C("pred",r,t,e);return[yi(n)]}case"Switch":{let n=C("pred",r,t,e),o=C("data",r,t,e);return o.kept||(o=yi(o)),(await n.data())[0]?[void 0,o]:[o,void 0]}case"Merge":{let n=r.inputNames.find(o=>pr(o,t,e)!==void 0);if(n){let o=pr(n,t,e);return[yi(o)]}return}case"Enter":{let n=C("frameName",r,t,e),o=C("tensor",r,t,e);return e.enterFrame(n),[yi(o)]}case"Exit":{let n=C("tensor",r,t,e);return e.exitFrame(),[yi(n)]}case"NextIteration":{let n=C("tensor",r,t,e);return e.nextIteration(),[yi(n)]}case"TensorArrayV3":{let n=C("size",r,t,e),o=C("dtype",r,t,e),s=C("elementShape",r,t,e),i=C("dynamicSize",r,t,e),a=C("clearAfterRead",r,t,e),u=C("identicalElementShapes",r,t,e),l=C("name",r,t,e),c=new Qb(l,o,n,s,u,i,a);return e.addTensorArray(c),[c.idTensor,ft(1)]}case"TensorArrayWriteV3":{let n=C("tensorArrayId",r,t,e),o=C("index",r,t,e),s=C("tensor",r,t,e),i=e.getTensorArray(n.id);return i.write(o,s),[i.idTensor]}case"TensorArrayReadV3":{let n=C("tensorArrayId",r,t,e),o=C("index",r,t,e);return[e.getTensorArray(n.id).read(o)]}case"TensorArrayGatherV3":{let n=C("tensorArrayId",r,t,e),o=C("indices",r,t,e),s=C("dtype",r,t,e);return[e.getTensorArray(n.id).gather(o,s)]}case"TensorArrayScatterV3":{let n=C("tensorArrayId",r,t,e),o=C("indices",r,t,e),s=C("tensor",r,t,e),i=e.getTensorArray(n.id);return i.scatter(o,s),[i.idTensor]}case"TensorArrayConcatV3":{let n=C("tensorArrayId",r,t,e),o=e.getTensorArray(n.id),s=C("dtype",r,t,e);return[o.concat(s)]}case"TensorArraySplitV3":{let n=C("tensorArrayId",r,t,e),o=C("tensor",r,t,e),s=C("lengths",r,t,e),i=e.getTensorArray(n.id);return i.split(s,o),[i.idTensor]}case"TensorArraySizeV3":{let n=C("tensorArrayId",r,t,e),o=e.getTensorArray(n.id);return[ft(o.size(),"int32")]}case"TensorArrayCloseV3":{let n=C("tensorArrayId",r,t,e),o=e.getTensorArray(n.id);return o.clearAndClose(),[o.idTensor]}case"TensorListSetItem":{let n=C("tensorListId",r,t,e),o=C("index",r,t,e),s=C("tensor",r,t,e),i=e.getTensorList(n.id);return i.setItem(o,s),[i.idTensor]}case"TensorListGetItem":{let n=C("tensorListId",r,t,e),o=C("index",r,t,e),s=C("elementShape",r,t,e),i=C("elementDType",r,t,e);return[e.getTensorList(n.id).getItem(o,s,i)]}case"TensorListScatterV2":case"TensorListScatter":{let n=C("indices",r,t,e),o=C("tensor",r,t,e),s=C("elementShape",r,t,e),i=C("numElements",r,t,e),a=JR(o,n,s,i);return e.addTensorList(a),[a.idTensor]}case"TensorListReserve":case"EmptyTensorList":{let n=C("elementShape",r,t,e),o=C("elementDType",r,t,e),s;r.op==="TensorListReserve"?s="numElements":s="maxNumElements";let i=C(s,r,t,e),a=r.op==="TensorListReserve"?-1:i,u=ZR(n,o,i,a);return e.addTensorList(u),[u.idTensor]}case"TensorListGather":{let n=C("tensorListId",r,t,e),o=C("indices",r,t,e),s=C("elementShape",r,t,e),i=C("elementDType",r,t,e);return[e.getTensorList(n.id).gather(o,i,s)]}case"TensorListStack":{let n=C("tensorListId",r,t,e),o=C("elementShape",r,t,e),s=C("elementDType",r,t,e),i=C("numElements",r,t,e);return[e.getTensorList(n.id).stack(o,s,i)]}case"TensorListFromTensor":{let n=C("tensor",r,t,e),o=C("elementShape",r,t,e),s=C("elementDType",r,t,e),i=YR(n,o,s);return e.addTensorList(i),[i.idTensor]}case"TensorListConcat":case"TensorListConcatV2":{let n=C("tensorListId",r,t,e),o=e.getTensorList(n.id),s=C("dtype",r,t,e),i=C("elementShape",r,t,e);return[o.concat(s,i)]}case"TensorListPushBack":{let n=C("tensorListId",r,t,e),o=C("tensor",r,t,e),s=e.getTensorList(n.id);return s.pushBack(o),[s.idTensor]}case"TensorListPopBack":{let n=C("tensorListId",r,t,e),o=C("elementShape",r,t,e),s=C("elementDType",r,t,e);return[e.getTensorList(n.id).popBack(o,s)]}case"TensorListSplit":{let n=C("tensor",r,t,e),o=C("elementShape",r,t,e),s=C("lengths",r,t,e),i=QR(n,s,o);return e.addTensorList(i),[i.idTensor]}case"TensorListLength":{let n=C("tensorListId",r,t,e),o=e.getTensorList(n.id);return[ft(o.size(),"int32")]}case"TensorListResize":{let n=C("tensorListId",r,t,e),o=C("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 eF(r,t,e){let[n,o]=C("fusedOps",r,t,e),s=n==="biasadd",i=!s,a=o==="prelu",u=n==="fusedbatchnorm",l=C("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=C("strides",r,t,e),p=Hh(r,t,e),m=C("dataFormat",r,t,e).toUpperCase(),f=C("dilations",r,t,e),[d,h]=C("args",r,t,e);i&&(h=d,d=void 0);let g=C("leakyreluAlpha",r,t,e);return{stride:c,pad:p,dataFormat:m,dilations:f,biasArg:d,preluArg:h,activationFunc:o,leakyreluAlpha:g}}var rF=(r,t,e,n=ie)=>{switch(r.op){case"Conv1D":{let o=C("stride",r,t,e),s=C("pad",r,t,e),i=C("dataFormat",r,t,e).toUpperCase(),a=C("dilation",r,t,e);return[n.conv1d(C("x",r,t,e),C("filter",r,t,e),o,s,i,a)]}case"Conv2D":{let o=C("strides",r,t,e),s=Hh(r,t,e),i=C("dataFormat",r,t,e).toUpperCase(),a=C("dilations",r,t,e);return[n.conv2d(C("x",r,t,e),C("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}=eF(r,t,e);return[n.fused.conv2d({x:C("x",r,t,e),filter:C("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}=eF(r,t,e);return[n.fused.depthwiseConv2d({x:C("x",r,t,e),filter:C("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=C("outputShape",r,t,e),s=C("strides",r,t,e),i=Hh(r,t,e);return[n.conv2dTranspose(C("x",r,t,e),C("filter",r,t,e),o,[s[1],s[2]],i)]}case"DepthwiseConv2dNative":case"DepthwiseConv2d":{let o=C("strides",r,t,e),s=Hh(r,t,e),i=C("dilations",r,t,e),a=C("dataFormat",r,t,e).toUpperCase();return[n.depthwiseConv2d(C("input",r,t,e),C("filter",r,t,e),[o[1],o[2]],s,a,[i[1],i[2]])]}case"Conv3D":{let o=C("strides",r,t,e),s=C("pad",r,t,e),i=C("dataFormat",r,t,e).toUpperCase(),a=C("dilations",r,t,e);return[n.conv3d(C("x",r,t,e),C("filter",r,t,e),[o[1],o[2],o[3]],s,i,[a[1],a[2],a[3]])]}case"AvgPool":{let o=C("strides",r,t,e),s=C("pad",r,t,e),i=C("kernelSize",r,t,e);return[n.avgPool(C("x",r,t,e),[i[1],i[2]],[o[1],o[2]],s)]}case"MaxPool":{let o=C("strides",r,t,e),s=C("pad",r,t,e),i=C("kernelSize",r,t,e);return[n.maxPool(C("x",r,t,e),[i[1],i[2]],[o[1],o[2]],s)]}case"MaxPoolWithArgmax":{let o=C("strides",r,t,e),s=C("pad",r,t,e),i=C("kernelSize",r,t,e),a=C("includeBatchInIndex",r,t,e),{result:u,indexes:l}=n.maxPoolWithArgmax(C("x",r,t,e),[i[1],i[2]],[o[1],o[2]],s,a);return[u,l]}case"AvgPool3D":{let o=C("strides",r,t,e),s=C("pad",r,t,e),i=C("kernelSize",r,t,e);return[n.avgPool3d(C("x",r,t,e),[i[1],i[2],i[3]],[o[1],o[2],o[3]],s)]}case"MaxPool3D":{let o=C("strides",r,t,e),s=C("pad",r,t,e),i=C("kernelSize",r,t,e);return[n.maxPool3d(C("x",r,t,e),[i[1],i[2],i[3]],[o[1],o[2],o[3]],s)]}case"Dilation2D":{let o=C("strides",r,t,e),s=C("pad",r,t,e),i=C("dilations",r,t,e),a=o[1],u=o[2],l=i[1],c=i[2];return[n.dilation2d(C("x",r,t,e),C("filter",r,t,e),[a,u],s,[l,c],"NHWC")]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var nF=(r,t,e,n=ie)=>{switch(r.op){case"Fill":{let o=C("shape",r,t,e),s=C("dtype",r,t,e),i=C("value",r,t,e);return[n.fill(o,i,s)]}case"LinSpace":{let o=C("start",r,t,e),s=C("stop",r,t,e),i=C("num",r,t,e);return[n.linspace(o,s,i)]}case"Multinomial":{let o=C("logits",r,t,e),s=C("numSamples",r,t,e),i=C("seed",r,t,e);return[n.multinomial(o,s,i)]}case"OneHot":{let o=C("indices",r,t,e),s=C("depth",r,t,e),i=C("onValue",r,t,e),a=C("offValue",r,t,e),u=C("dtype",r,t,e);return[n.oneHot(o,s,i,a,u)]}case"Ones":return[n.ones(C("shape",r,t,e),C("dtype",r,t,e))];case"OnesLike":return[n.onesLike(C("x",r,t,e))];case"RandomStandardNormal":return[n.randomStandardNormal(C("shape",r,t,e),C("dtype",r,t,e),C("seed",r,t,e))];case"RandomUniform":return[n.randomUniform(C("shape",r,t,e),C("minval",r,t,e),C("maxval",r,t,e),C("dtype",r,t,e))];case"RandomUniformInt":return[n.randomUniformInt(C("shape",r,t,e),C("minval",r,t,e),C("maxval",r,t,e),C("seed",r,t,e))];case"Range":{let o=C("start",r,t,e),s=C("stop",r,t,e),i=C("step",r,t,e);return[n.range(o,s,i,C("dtype",r,t,e))]}case"TruncatedNormal":{let o=C("shape",r,t,e),s=C("mean",r,t,e),i=C("stdDev",r,t,e),a=C("seed",r,t,e);return[n.truncatedNormal(o,s,i,C("dtype",r,t,e),a)]}case"Zeros":return[n.zeros(C("shape",r,t,e),C("dtype",r,t,e))];case"ZerosLike":return[n.zerosLike(C("x",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function xk(r,t,e){let n=C("boxes",r,t,e),o=C("scores",r,t,e),s=C("maxOutputSize",r,t,e),i=C("iouThreshold",r,t,e),a=C("scoreThreshold",r,t,e),u=C("softNmsSigma",r,t,e);return{boxes:n,scores:o,maxOutputSize:s,iouThreshold:i,scoreThreshold:a,softNmsSigma:u}}var oF=async(r,t,e,n,o=ie)=>{switch(r.op){case"NonMaxSuppressionV5":{let{boxes:s,scores:i,maxOutputSize:a,iouThreshold:u,scoreThreshold:l,softNmsSigma:c}=xk(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}=xk(r,t,e),c=C("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}=xk(r,t,e);return[await o.image.nonMaxSuppressionAsync(s,i,a,u,l)]}case"Where":{let s=o.cast(C("condition",r,t,e),"bool"),i=[await o.whereAsync(s)];return s.dispose(),i}case"ListDiff":return o.setdiff1dAsync(C("x",r,t,e),C("y",r,t,e));default:throw TypeError(`Node type ${r.op} is not implemented`)}};var sF=(r,t,e,n=ie)=>{switch(r.op){case"LowerBound":{let o=C("sortedSequence",r,t,e),s=C("values",r,t,e);return[n.lowerBound(o,s)]}case"TopKV2":{let o=C("x",r,t,e),s=C("k",r,t,e),i=C("sorted",r,t,e),a=n.topk(o,s,i);return[a.values,a.indices]}case"UpperBound":{let o=C("sortedSequence",r,t,e),s=C("values",r,t,e);return[n.upperBound(o,s)]}case"Unique":{let o=C("x",r,t,e),s=n.unique(o);return[s.values,s.indices]}case"UniqueV2":{let o=C("x",r,t,e),s=C("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 iF=(r,t,e,n=ie)=>{switch(r.op){case"Const":return t[r.name];case"PlaceholderWithDefault":let o=C("default",r,t,e);return[pr(r.name,t,e)||o];case"Placeholder":return[pr(r.name,t,e)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":{let c=C("x",r,t,e);return[yi(c)]}case"IdentityN":return C("x",r,t,e).map(c=>yi(c));case"Snapshot":let s=C("x",r,t,e);return[yi(s)];case"Shape":return[n.tensor1d(C("x",r,t,e).shape,"int32")];case"ShapeN":return C("x",r,t,e).map(c=>n.tensor1d(c.shape));case"Size":return[n.scalar(C("x",r,t,e).size,"int32")];case"Rank":return[n.scalar(C("x",r,t,e).rank,"int32")];case"NoOp":return[n.scalar(1)];case"Print":let i=C("x",r,t,e),a=C("data",r,t,e),u=C("message",r,t,e),l=C("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 ft(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=xr(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=C("keyDType",r,t,e),i=C("valueDType",r,t,e),a=new tw(s,i);return n.addHashTable(r.name,a),[a.handle]}}case"InitializeTable":case"InitializeTableV2":case"LookupTableImport":case"LookupTableImportV2":{let o=C("tableHandle",r,t,e,n),s=C("keys",r,t,e),i=C("values",r,t,e);return[await n.getHashTableById(o.id).import(s,i)]}case"LookupTableFind":case"LookupTableFindV2":{let o=C("tableHandle",r,t,e,n),s=C("keys",r,t,e),i=C("defaultValue",r,t,e);return[await n.getHashTableById(o.id).find(s,i)]}case"LookupTableSize":case"LookupTableSizeV2":{let o=C("tableHandle",r,t,e,n);return[n.getHashTableById(o.id).tensorSize()]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var lF=(r,t,e,n=ie)=>{switch(r.op){case"ResizeBilinear":{let o=C("images",r,t,e),s=C("size",r,t,e),i=C("alignCorners",r,t,e),a=C("halfPixelCenters",r,t,e);return[n.image.resizeBilinear(o,[s[0],s[1]],i,a)]}case"ResizeNearestNeighbor":{let o=C("images",r,t,e),s=C("size",r,t,e),i=C("alignCorners",r,t,e),a=C("halfPixelCenters",r,t,e);return[n.image.resizeNearestNeighbor(o,[s[0],s[1]],i,a)]}case"CropAndResize":{let o=C("image",r,t,e),s=C("boxes",r,t,e),i=C("boxInd",r,t,e),a=C("cropSize",r,t,e),u=C("method",r,t,e),l=C("extrapolationValue",r,t,e);return[n.image.cropAndResize(o,s,i,a,u,l)]}case"ImageProjectiveTransformV3":{let o=C("images",r,t,e),s=C("transforms",r,t,e),i=C("outputShape",r,t,e),a=C("fillValue",r,t,e),u=C("interpolation",r,t,e),l=C("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 uF=(r,t,e,n=ie)=>{switch(r.op){case"Equal":return[n.equal(C("a",r,t,e),C("b",r,t,e))];case"NotEqual":return[n.notEqual(C("a",r,t,e),C("b",r,t,e))];case"Greater":return[n.greater(C("a",r,t,e),C("b",r,t,e))];case"GreaterEqual":return[n.greaterEqual(C("a",r,t,e),C("b",r,t,e))];case"Less":return[n.less(C("a",r,t,e),C("b",r,t,e))];case"LessEqual":return[n.lessEqual(C("a",r,t,e),C("b",r,t,e))];case"LogicalAnd":return[n.logicalAnd(C("a",r,t,e),C("b",r,t,e))];case"LogicalNot":return[n.logicalNot(C("a",r,t,e))];case"LogicalOr":return[n.logicalOr(C("a",r,t,e),C("b",r,t,e))];case"Select":case"SelectV2":return[n.where(C("condition",r,t,e),C("a",r,t,e),C("b",r,t,e))];case"BitwiseAnd":return[n.bitwiseAnd(C("a",r,t,e),C("b",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var cF=(r,t,e,n=ie)=>{switch(r.op){case"BatchMatMul":case"BatchMatMulV2":case"MatMul":return[n.matMul(C("a",r,t,e),C("b",r,t,e),C("transposeA",r,t,e),C("transposeB",r,t,e))];case"Einsum":return[n.einsum(C("equation",r,t,e),...C("tensors",r,t,e))];case"Transpose":return[n.transpose(C("x",r,t,e),C("perm",r,t,e))];case"_FusedMatMul":let[o,s]=C("fusedOps",r,t,e),i=o==="biasadd",a=s==="prelu",u=C("numArgs",r,t,e),l=C("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]=C("args",r,t,e);return[n.fused.matMul({a:C("a",r,t,e),b:C("b",r,t,e),transposeA:C("transposeA",r,t,e),transposeB:C("transposeB",r,t,e),bias:c,activation:s,preluActivationWeights:p,leakyreluAlpha:l})];case"MatrixBandPart":return[n.linalg.bandPart(C("a",r,t,e),C("numLower",r,t,e),C("numUpper",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var pF=(r,t,e,n=ie)=>{switch(r.op){case"EuclideanNorm":return[n.euclideanNorm(C("x",r,t,e),C("axis",r,t,e),C("keepDims",r,t,e))];case"FusedBatchNorm":case"FusedBatchNormV2":return[n.batchNorm(C("x",r,t,e),C("mean",r,t,e),C("variance",r,t,e),C("offset",r,t,e),C("scale",r,t,e),C("epsilon",r,t,e))];case"FusedBatchNormV3":return[n.batchNorm(C("x",r,t,e),C("mean",r,t,e),C("variance",r,t,e),C("offset",r,t,e),C("scale",r,t,e),C("epsilon",r,t,e))];case"LRN":return[n.localResponseNormalization(C("x",r,t,e),C("radius",r,t,e),C("bias",r,t,e),C("alpha",r,t,e),C("beta",r,t,e))];case"Softmax":return[n.softmax(C("x",r,t,e))];case"LogSoftmax":return[n.logSoftmax(C("x",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var mF=(r,t,e,n=ie)=>{switch(r.op){case"RaggedGather":{let{outputNestedSplits:o,outputDenseValues:s}=n.raggedGather(C("paramsNestedSplits",r,t,e),C("paramsDenseValues",r,t,e),C("indices",r,t,e),C("outputRaggedRank",r,t,e));return o.concat(s)}case"RaggedRange":{let{rtNestedSplits:o,rtDenseValues:s}=n.raggedRange(C("starts",r,t,e),C("limits",r,t,e),C("splits",r,t,e));return[o,s]}case"RaggedTensorToTensor":return[n.raggedTensorToTensor(C("shape",r,t,e),C("values",r,t,e),C("defaultValue",r,t,e),C("rowPartitionTensors",r,t,e),C("rowPartitionTypes",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var fF=(r,t,e,n=ie)=>{switch(r.op){case"Max":{let a=C("axis",r,t,e),u=C("keepDims",r,t,e);return[n.max(C("x",r,t,e),a,u)]}case"Mean":{let a=C("axis",r,t,e),u=C("keepDims",r,t,e);return[n.mean(C("x",r,t,e),a,u)]}case"Min":{let a=C("axis",r,t,e),u=C("keepDims",r,t,e);return[n.min(C("x",r,t,e),a,u)]}case"Sum":{let a=C("axis",r,t,e),u=C("keepDims",r,t,e);return[n.sum(C("x",r,t,e),a,u)]}case"All":{let a=C("axis",r,t,e),u=C("keepDims",r,t,e);return[n.all(C("x",r,t,e),a,u)]}case"Any":{let a=C("axis",r,t,e),u=C("keepDims",r,t,e);return[n.any(C("x",r,t,e),a,u)]}case"ArgMax":{let a=C("axis",r,t,e);return[n.argMax(C("x",r,t,e),a)]}case"ArgMin":{let a=C("axis",r,t,e);return[n.argMin(C("x",r,t,e),a)]}case"Prod":{let a=C("axis",r,t,e),u=C("keepDims",r,t,e);return[n.prod(C("x",r,t,e),a,u)]}case"Cumprod":{let a=C("axis",r,t,e),u=C("exclusive",r,t,e),l=C("reverse",r,t,e);return[n.cumprod(C("x",r,t,e),a,u,l)]}case"Cumsum":{let a=C("axis",r,t,e),u=C("exclusive",r,t,e),l=C("reverse",r,t,e);return[n.cumsum(C("x",r,t,e),a,u,l)]}case"Bincount":let o=C("x",r,t,e),s=C("weights",r,t,e),i=C("size",r,t,e);return[n.bincount(o,s,i)];case"DenseBincount":{let a=C("x",r,t,e),u=C("weights",r,t,e),l=C("size",r,t,e),c=C("binaryOutput",r,t,e);return[n.denseBincount(a,u,l,c)]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var dF=(r,t,e,n=ie)=>{switch(r.op){case"ConcatV2":case"Concat":{let o=C("n",r,t,e),s=C("axis",r,t,e),i=C("tensors",r,t,e);return i=i.slice(0,o),[n.concat(i,s)]}case"Gather":{let o=C("x",r,t,e),s=C("indices",r,t,e);return[n.gather(o,n.cast(s,"int32"),0)]}case"GatherV2":{let o=C("axis",r,t,e),s=C("batchDims",r,t,e),i=C("x",r,t,e),a=C("indices",r,t,e);return[n.gather(i,n.cast(a,"int32"),o,s)]}case"Reverse":{let o=C("dims",r,t,e),s=[];for(let a=0;a{let o=C("axis",r,t,e),s=C("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=C("axis",r,t,e),s=C("tensor",r,t,e);return n.unstack(s,o)}case"Tile":{let o=C("reps",r,t,e);return[n.tile(C("x",r,t,e),o)]}case"Split":case"SplitV":{let o=C("axis",r,t,e),s=C("numOrSizeSplits",r,t,e),i=C("x",r,t,e);return n.split(i,s,o)}case"ScatterNd":{let o=C("indices",r,t,e),s=C("values",r,t,e),i=C("shape",r,t,e);return[n.scatterND(o,s,i)]}case"GatherNd":{let o=C("x",r,t,e),s=C("indices",r,t,e);return[n.gatherND(o,s)]}case"SparseToDense":{let o=C("sparseIndices",r,t,e),s=C("outputShape",r,t,e),i=C("sparseValues",r,t,e),a=C("defaultValue",r,t,e);return[n.sparseToDense(o,i,s,i.dtype===a.dtype?a:n.cast(a,i.dtype))]}case"TensorScatterUpdate":{let o=C("indices",r,t,e),s=C("values",r,t,e),i=C("tensor",r,t,e);return[n.tensorScatterUpdate(i,o,s)]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var hF=(r,t,e,n=ie)=>{switch(r.op){case"SparseFillEmptyRows":{let{outputIndices:o,outputValues:s,emptyRowIndicator:i,reverseIndexMap:a}=n.sparse.sparseFillEmptyRows(C("indices",r,t,e),C("values",r,t,e),C("denseShape",r,t,e),C("defaultValue",r,t,e));return[o,s,i,a]}case"SparseReshape":{let{outputIndices:o,outputShape:s}=n.sparse.sparseReshape(C("inputIndices",r,t,e),C("inputShape",r,t,e),C("newShape",r,t,e));return[o,s]}case"SparseSegmentMean":return[n.sparse.sparseSegmentMean(C("data",r,t,e),C("indices",r,t,e),C("segmentIds",r,t,e))];case"SparseSegmentSum":return[n.sparse.sparseSegmentSum(C("data",r,t,e),C("indices",r,t,e),C("segmentIds",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var gF=(r,t,e,n=ie)=>{switch(r.op){case"FFT":return[n.fft(C("x",r,t,e))];case"IFFT":return[n.ifft(C("x",r,t,e))];case"RFFT":return[n.rfft(C("x",r,t,e))];case"IRFFT":return[n.irfft(C("x",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var xF=(r,t,e,n=ie)=>{switch(r.op){case"StaticRegexReplace":return[n.string.staticRegexReplace(C("input",r,t,e),C("pattern",r,t,e),C("rewrite",r,t,e),C("replaceGlobal",r,t,e))];case"StringNGrams":{let{nGrams:o,nGramsSplits:s}=n.string.stringNGrams(C("data",r,t,e),C("dataSplits",r,t,e),C("separator",r,t,e),C("nGramWidths",r,t,e),C("leftPad",r,t,e),C("rightPad",r,t,e),C("padWidth",r,t,e),C("preserveShortSequences",r,t,e));return[o,s]}case"StringSplit":{let{indices:o,values:s,shape:i}=n.string.stringSplit(C("input",r,t,e),C("delimiter",r,t,e),C("skipEmpty",r,t,e));return[o,s,i]}case"StringToHashBucketFast":return[n.string.stringToHashBucketFast(C("input",r,t,e),C("numBuckets",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var yF=(r,t,e,n=ie)=>{switch(r.op){case"Cast":return[n.cast(C("x",r,t,e),C("dtype",r,t,e))];case"ExpandDims":{let o=C("axis",r,t,e);return[n.expandDims(C("x",r,t,e),o)]}case"Squeeze":{let o=C("axis",r,t,e);return[n.squeeze(C("x",r,t,e),o)]}case"Reshape":return[n.reshape(C("x",r,t,e),C("shape",r,t,e))];case"EnsureShape":return[n.ensureShape(C("x",r,t,e),C("shape",r,t,e))];case"MirrorPad":return[n.mirrorPad(C("x",r,t,e),C("padding",r,t,e),C("mode",r,t,e))];case"PadV2":case"Pad":return[n.pad(C("x",r,t,e),C("padding",r,t,e),C("constantValue",r,t,e))];case"SpaceToBatchND":{let o=C("blockShape",r,t,e),s=C("paddings",r,t,e);return[n.spaceToBatchND(C("x",r,t,e),o,s)]}case"BatchToSpaceND":{let o=C("blockShape",r,t,e),s=C("crops",r,t,e);return[n.batchToSpaceND(C("x",r,t,e),o,s)]}case"DepthToSpace":{let o=C("blockSize",r,t,e),s=C("dataFormat",r,t,e).toUpperCase();return[n.depthToSpace(C("x",r,t,e),o,s)]}case"BroadcastTo":return[n.broadcastTo(C("x",r,t,e),C("shape",r,t,e))];case"BroadcastArgs":return[n.broadcastArgs(C("s0",r,t,e),C("s1",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function yk(r,t,e,n,o=B){let s=((i,a,u)=>{switch(i.category){case"arithmetic":return o(()=>KR(i,a,u));case"basic_math":return o(()=>jR(i,a,u));case"control":return tF(i,a,u);case"convolution":return o(()=>rF(i,a,u));case"creation":return o(()=>nF(i,a,u));case"dynamic":return oF(i,a,u);case"evaluation":return o(()=>sF(i,a,u));case"image":return o(()=>lF(i,a,u));case"graph":return o(()=>iF(i,a,u));case"logical":return o(()=>uF(i,a,u));case"matrices":return o(()=>cF(i,a,u));case"normalization":return o(()=>pF(i,a,u));case"ragged":return o(()=>mF(i,a,u));case"reduction":return o(()=>fF(i,a,u));case"slice_join":return o(()=>dF(i,a,u));case"sparse":return o(()=>hF(i,a,u));case"spectral":return o(()=>gF(i,a,u));case"string":return o(()=>xF(i,a,u));case"transformation":return o(()=>yF(i,a,u));case"hash_table":return aF(i,a,u,n);case"custom":let l=zb(i.op);if(l&&l.customExecutor)return l.customExecutor(new Zb(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 Kh=class{constructor(t={},e={},n={},o={},s){this.weightMap=t,this.tensorArrayMap=e,this.tensorListMap=n,this.functionMap=o,this.parseNodeNameCache=s,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 bk(r,t,e,n){let o=new Set,s=[],i=null,a=null,u=new Set,l=new Set(Object.keys(r).map(m=>Cn(m)[0]));n=n||[];let c=new Set(n.map(m=>Cn(m.name)[0])),p=[...t];for(;p.length>0;){let m=p.pop();if((Gu(m)||vQ(m)||SQ(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.has(m.name)&&!c.has(m.name)){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 bF(r,t){let{usedNodes:e,inputs:n}=t,o=Object.keys(n).map(g=>Cn(g)[0]).map(g=>r.nodes[g]),s=r.initNodes||[],i=g=>e.has(typeof g=="string"?g:g.name);function a(g){return[...new Map(g.map(x=>[x.name,x])).values()]}let u=a([...o,...r.weights,...s]).filter(i),l=a([...u,...Object.values(r.nodes)]).filter(i),c=new Map(l.map(g=>[g.name,g])),p={};for(let g of l){p[g.name]=p[g.name]||0;for(let x of g.children)i(x)||(p[x.name]=Number.POSITIVE_INFINITY),p[x.name]=(p[x.name]||0)+1}let m=Object.entries(p).filter(([,g])=>g===0).map(([g])=>g),f=[...m];for(;m.length>0;){let g=m.pop(),x=c.get(g);for(let b of x.children.filter(i))--p[b.name]===0&&(f.push(b.name),m.push(b.name))}let d=f.map(g=>c.get(g)),h=yQ(d,u);return bQ(h,u),h}function yQ(r,t){let e=new Map(r.map(i=>[i.name,i])),n=t.map(i=>i.name),o=new Set(n);for(;n.length>0;){let i=n.pop(),a=e.get(i);for(let u of a.children)!e.has(u.name)||o.has(u.name)||(o.add(u.name),n.push(u.name))}return r.filter(i=>o.has(i.name))}var id=class extends Error{constructor(t){super(`NodesExecutionOrderError: ${t}`)}};function bQ(r,t){let e=new Map(r.map((a,u)=>[a.name,u])),n=new Set(t.map(a=>a.name)),o=a=>n.has(typeof a=="string"?a:a.name),s=new Set(r.map(a=>a.name)),i=a=>s.has(typeof a=="string"?a:a.name);for(let a of r){for(let u of a.children.filter(i)){if(!e.has(u.name))throw new id(`Child ${u.name} of node ${a.name} is unreachable.`);if(e.get(a.name)>e.get(u.name))throw new id(`Node ${a.name} is scheduled to run after its child ${u.name}.`)}if(!o(a))for(let u of a.inputs){if(!e.has(u.name))throw new id(`Input ${u.name} of node ${a.name} is unreachable.`);if(e.get(u.name)>e.get(a.name))throw new id(`Node ${a.name} is scheduled to run before its input ${u.name}.`)}}}function wF(r){let t=new Map(r.map((a,u)=>[a.name,u])),e=Number.MAX_SAFE_INTEGER,n=r.map((a,u)=>Gu(a)?e:u),o=a=>{let u=n[t.get(a.name)];return u==null?-1:u},s=r.map((a,u)=>a.children.map(o).reduce((l,c)=>Math.max(l,c),n[u])),i=new Map;for(let a=0;at[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),{})}constructor(t,e){this.graph=t,this.parent=e,this.compiledMap=new Map,this.parseNodeNameCache=new Map,this._weightMap={},this.SEPARATOR=",",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 Qc(t.functions[n],this)})}getCompilationKey(t,e){let n=t.map(s=>s.name).sort(),o=e.map(s=>s.name).sort();return n.join(this.SEPARATOR)+"--"+o.join(this.SEPARATOR)}compile(t,e){let n=bk(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 l=e.map(p=>p.name),c=Object.keys(t);throw new Error(`Cannot compute the outputs [${l}] from the provided inputs [${c}]. Missing the following inputs: [${o}]`)}let a=bF(this.graph,n),u=wF(a);return{orderedNodes:a,nodeLiveUntilMap:u}}cloneAndKeepTensor(t){if(t==null)return null;let e=t.clone();return $e(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(m=>this.graph.nodes[Cn(m)[0]]),s=e.map(m=>Cn(m)[0]),i=new Set(s),a=s.map(m=>this.graph.nodes[m]);a.length===0&&(a=this._outputs);let u=this.getCompilationKey(o,a),l=this.compiledMap.get(u);l==null&&(l=this.compile(t,a),this.compiledMap.set(u,l));try{this.keepIntermediateTensors=L().getBool("KEEP_INTERMEDIATE_TENSORS")}catch(m){this.keepIntermediateTensors=!1,console.warn(m.message)}let c={},p={};return B(()=>{let m=new Kh(this.weightMap,c,p,this.functionExecutorMap,this.parseNodeNameCache),f=Object.assign({},this.weightMap);this.keepIntermediateTensors&&(this.clonedTensorsMap=this.cloneTensorMap(this.weightMap)),Object.keys(t).forEach(x=>{let[b,w]=Cn(x,m),I=[];I[w]=t[x],f[b]=I,this.keepIntermediateTensors&&(this.clonedTensorsMap[b]=this.cloneTensorList(I))});let d=this.getFrozenTensorIds(f),{orderedNodes:h,nodeLiveUntilMap:g}=l;for(let x of h){if(f[x.name])continue;let b=yk(x,f,m,this._resourceManager);if(y.isPromise(b))throw new Error(`The execution of the op '${x.op}' returned a promise. Please use model.executeAsync() instead.`);f[x.name]=b,this.keepIntermediateTensors&&(this.clonedTensorsMap[x.name]=this.cloneTensorList(b)),this.checkTensorForDisposalWithNodeLiveUntilInfo(x,f,m,d,i,g.get(x.name))}return this.parent==null&&m.dispose(d),e.map(x=>pr(x,f,m))})}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){if(!(Gu(e)||i.has(t))){for(let u of n[t])u!=null&&(a[u.id]=(a[u.id]||0)+e.children.length);for(let u of e.inputs){if(Gu(u))continue;let l=YN(u.name,n,o);if(l!=null)for(let c of l){if(!c||c.kept||s.has(c.id))continue;let p=a[c.id];p===1?(c.dispose(),delete a[c.id]):p!=null&&a[c.id]--}}}}checkTensorForDisposalWithNodeLiveUntilInfo(t,e,n,o,s,i){function a(u){return Gu(u)||s.has(u.name)}if(!(Gu(t)||i==null))for(let u of i){if(a(u))continue;let l=YN(u.name,e,n);for(let c of l)!c||c.kept||o.has(c.id)||c.dispose()}}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=L().getBool("KEEP_INTERMEDIATE_TENSORS")}catch(m){this.keepIntermediateTensors=!1,console.warn(m.message)}let i=new Kh(this.weightMap,o,s,this.functionExecutorMap,this.parseNodeNameCache);this.keepIntermediateTensors&&(this.clonedTensorsMap=this.cloneTensorMap(this.weightMap));let a=await this.executeWithControlFlow(t,i,e,n),u=e.map(m=>pr(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(I=>this.graph.nodes[Cn(I)[0]]),a=n.map(I=>Cn(I)[0]),u=new Set(a),l=a.map(I=>this.graph.nodes[I]);l.length===0&&(l=this._outputs);let{usedNodes:c,missingInputs:p,dynamicNode:m,syncInputs:f}=bk(t,l,this.weightMap,this._initNodes),d=[...i,...this.graph.weights,...this._initNodes||[]].map(I=>({node:I,contexts:e.currentContext})),h=Object.assign({},this.weightMap);Object.keys(t).forEach(I=>{let[N,E]=Cn(I),A=[];A[E]=t[I],h[N]=A});let g={},x=this.getFrozenTensorIds(h),b={};for(;d.length>0;){let I=this.processStack(i,d,e,h,b,x,u,g,c);await Promise.all(I)}m==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 w=l.filter(I=>!Gu(I)&&!pr(I.name,h,e)).map(I=>I.name);if(w.length>0){let I="";throw m!=null&&(I=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${f}]`),new Error(`Cannot compute the outputs [${w}] from the provided inputs [${s}]. Consider providing the following inputs: [${p}]. ${I}`)}return h}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"&&C("isConstant",p.node,o,n)&&([m]=xi(p.node.name,n)),o[p.node.name]==null){let f=yk(p.node,o,n,this._resourceManager);m||([m]=xi(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]=xi(a.name,n);s[u]||!i.has(a.name)||(a.op==="Merge"?a.inputNames.some(l=>!!pr(l,o,n))&&(s[u]=!0,e.push({contexts:n.currentContext,node:a})):a.inputNames.every(l=>!!pr(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]=Cn(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]=Cn(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]=Cn(e);if(!this.graph.nodes[n])throw new Error(`The output '${e}' is not found in the graph`)})}};var ew=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 NQ="?tfjs-format=file",kQ="model.json",jh=class{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}constructor(t,e={},n=Mr){this.modelUrl=t,this.loadOptions=e,this.version="n/a",this.io=n,e==null&&(this.loadOptions={}),this.resourceManager=new ew}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 Qc(qh.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=qh.Instance.transformGraph(t.modelInitializer);this.initializer=new Qc(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 Pt?[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 Pt)&&!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&&Tt(this.resourceIdToCapturedInput)),this.resourceManager.dispose()}};async function TQ(r,t={},e=Mr){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=EQ(r));let n=new jh(r,t,e);return await n.load(),n}function _Q(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=Mr.getWeightSpecs(n.weightsManifest),i=Mr.getModelArtifactsForJSONSync(n,s,o);t=Mr.fromMemorySync(i)}else if("load"in r)t=r;else if("modelTopology"in r&&"weightSpecs"in r&&"weightData"in r)t=Mr.fromMemorySync(r);else throw new Error("Unknown model format");let e=new jh(t);return e.load(),e}function EQ(r){return r.endsWith("/")||(r=r+"/"),`${r}${kQ}${NQ}`}var IF="4.5.0";var VF={};Kt(VF,{CSVDataset:()=>ud,Dataset:()=>bi,FileDataSource:()=>dd,TextLineDataset:()=>ld,URLDataSource:()=>hd,array:()=>DF,csv:()=>PF,func:()=>MF,generator:()=>LF,microphone:()=>BF,version_data:()=>Bk,webcam:()=>zF,zip:()=>$F});var AF=Kl(bh());var TF=Kl(bh());function CF(r,t){return rw(r,t)}function rw(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(Wu(r)){let s=Array.isArray(r)?[]:{};n.add(r);for(let i in r){let a=r[i],u=rw(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 vF(r,t=Ik){return SF(r,t)}function SF(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(Wu(n)){let s=Array.isArray(n)?[]:{};e.add(n);for(let i in n){let a=r.map(l=>l[i]),u=SF(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 Ik(r){return r===null?null:Wu(r[0])?{value:null,recurse:!0}:{value:r,recurse:!1}}async function nw(r,t){let e=new Map;rw(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 rw(r,t,e)}function Wu(r){let t=!1;if(L().get("IS_BROWSER"))t=r instanceof TextDecoder;else{let{StringDecoder:e}=wk();t=r instanceof e}return r!=null&&!ArrayBuffer.isView(r)&&(Array.isArray(r)||typeof r=="object"&&!(r instanceof Pt)&&!(r instanceof Promise)&&!t)}function NF(r){return r==null||AQ(r)||Array.isArray(r)||typeof r=="object"&&r instanceof Pt||y.isTypedArray(r)}function AQ(r){return r===null||typeof r!="object"&&typeof r!="function"}function kF(r){return CF(r,DQ)}function DQ(r){return r instanceof Pt?{value:r.clone(),recurse:!1}:Wu(r)?{value:null,recurse:!0}:{value:r,recurse:!1}}var ad=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 tp=class extends ad{constructor(){super(tp.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 Tk(this,t,e)}columnMajorBatch(t,e=!0,n=Ik){return this.rowMajorBatch(t,e).map(s=>vF(s,n))}concatenate(t,e){return new sw(Fk([this,t]),e)}take(t){return t<0||t==null?this:new kk(this,t)}skip(t){return t<0||t==null?this:new Nk(this,t)}prefetch(t){return new iw(this,t)}shuffle(t,e){return new Rk(this,t,e)}serial(){return new Sk(this)}},Ck=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:kF(t),done:!1}}},vk=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}}},Sk=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()}},Nk=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()}},Tk=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}}},_k=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;Tt(t.value)}}},Ek=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=Co.getTensorsInContainer(t.value),n=this.transform(t.value),o=Co.getTensorsInContainer(n);for(let s of e)Co.isTensorInList(s,o)||s.dispose();return{value:n,done:!1}}},Ak=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}}}},ow=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=Co.getTensorsInContainer(t.value),n=await this.transform(t.value),o=Co.getTensorsInContainer(n);for(let s of e)Co.isTensorInList(s,o)||s.dispose();return{value:n,done:!1}}},ep=class extends tr{constructor(){super(),this.outputQueue=new tp,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}}},Dk=class extends ep{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=Co.getTensorsInContainer(t.value),n=this.transform(t.value),o=Co.getTensorsInContainer(n);this.outputQueue.pushAll(n);for(let s of e)Co.isTensorInList(s,o)||s.dispose();return!0}},sw=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}},Pl;(function(r){r[r.FAIL=0]="FAIL",r[r.SHORTEST=1]="SHORTEST",r[r.LONGEST=2]="LONGEST"})(Pl||(Pl={}));var $k=class extends tr{constructor(t,e=Pl.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 nw(this.iterators,o);if(e===n)return{value:null,done:!0};if(n>0)switch(this.mismatchMode){case Pl.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case Pl.SHORTEST:return{value:null,done:!0};case Pl.LONGEST:default:}return this.count++,{value:s,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}},iw=class extends tr{constructor(t,e){super(),this.upstream=t,this.bufferSize=e,this.buffer=new ad(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()}},Rk=class extends iw{constructor(t,e,n){super(t,e),this.upstream=t,this.windowSize=e,this.upstreamExhausted=!1,this.random=TF.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 bi=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),Dn(async()=>(await n.iterator()).columnMajorBatch(t,e,$Q),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,Dn(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,Dn(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 Dn(async()=>(await e.iterator()).map(n=>B(()=>t(n))),this.size)}mapAsync(t){let e=this;return Dn(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 Dn(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,Dn(async()=>{let o=Xh(async()=>({value:await e.iterator(),done:!1}));return _F(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=AF.alea(e||y.now().toString());return Dn(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,Dn(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()}};bi.MAX_BUFFER_SIZE=1e4;function Dn(r,t=null){return new class extends bi{constructor(){super(...arguments),this.size=t}async iterator(){return r()}}}function DF(r){return Dn(async()=>Fk(r),r.length)}function $F(r){if(!Wu(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 nw(r,n=>{if(n instanceof bi)return{value:n.iterator(),recurse:!1};if(Wu(n))return{value:null,recurse:!0};throw new Error("Leaves of the structure passed to zip() must be Datasets, not primitives.")});return EF(e,Pl.SHORTEST)},t)}function $Q(r){if(r===null)return null;let t=r[0];return NF(t)?{value:RQ(r),recurse:!1}:{value:null,recurse:!0}}function RQ(r){if(r.length===0)throw new Error("Can't make a batch of zero elements.");return r[0]instanceof Pt?qe(r):sr(r)}var ld=class extends bi{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 aw='"',Yh=Symbol("out"),RF=Symbol("field"),lw=Symbol("quote"),Ok=Symbol("quoteafterquote"),FF=Symbol("quoteinquote"),ud=class extends bi{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}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 ld(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 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(!L().get("IS_BROWSER"))throw new Error("microphone API is only supported in browser environment.");let e=new cd(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),sr(n,e)}};var pd=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=ui([i,s,u,a],[1,4])}else this.cropBox=ui([0,0,1,1],[1,4])}summary(){return"webcam"}static async create(t,e={}){if(!L().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 pd(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=Ay.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=ar(Q(t,"float32"),0),n;n=dn.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 md=class{};var Zh=class extends tr{split(t){return new Pk(this,t)}},Pk=class extends Zh{constructor(t,e){super(),this.upstream=t,this.impl=new Mk(t,e)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},Mk=class extends ep{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 uw=class extends tr{decodeUTF8(){return new Lk(this)}},Lk=class extends Zh{constructor(t){super(),this.upstream=t,this.impl=new zk(t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},zk=class extends ep{constructor(t){if(super(),this.upstream=t,L().get("IS_BROWSER"))this.decoder=new TextDecoder("utf-8");else{let{StringDecoder:e}=wk();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 L().get("IS_BROWSER")?n=this.decoder.decode(e,{stream:!0}):n=this.decoder.write(Buffer.from(e.buffer)),this.outputQueue.push(n),!0}};var fd=class extends uw{constructor(t,e={}){super(),this.file=t,this.options=e,y.assert(t instanceof Uint8Array||(L().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 OF(r,t={},e){let n,o;typeof r=="string"?n=r:(n=r.url,o=FQ(r));let s=await(e||y.fetch)(n,o);if(s.ok){let i=new Uint8Array(await s.arrayBuffer());return new fd(i,t)}else throw new Error(s.statusText)}var FQ=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 cw(r){return typeof r=="string"&&r.slice(0,7)==="file://"}var dd=class extends md{constructor(t,e={}){super(),this.input=t,this.options=e}async iterator(){if(cw(this.input)&&L().get("IS_NODE")){let t=pw();this.input=t.readFileSync(this.input.slice(7))}return new fd(this.input,this.options)}};var hd=class extends md{constructor(t,e={}){super(),this.url=t,this.fileOptions=e}async iterator(){return cw(this.url)?new dd(this.url,this.fileOptions).iterator():OF(this.url,this.fileOptions)}};function PF(r,t={}){return new ud(new hd(r),t)}function MF(r){let t=Xh(r);return Dn(async()=>t)}function LF(r){return Dn(async()=>{let t=await r();return Xh(()=>t.next())})}async function zF(r,t){return pd.create(r,t)}async function BF(r){return cd.create(r)}var Bk="4.5.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 OQ=Kr.whereImpl,Uu=class extends Wo{nextDataId(){return Uu.nextDataId++}constructor(){super(),this.blockSize=48,this.firstUse=!0,this.data=new Ta(this,Vn())}write(t,e,n){this.firstUse&&(this.firstUse=!1,L().get("IS_NODE")&&S.warn(` + ${n}, and tensor's shape is: ${r.shape}`);let s=r.shape.slice(1),i=Jb(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=v("thenBranch",r,t,e),o=v("elseBranch",r,t,e),s=v("cond",r,t,e),i=v("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=v("body",r,t,e),o=v("cond",r,t,e),s=v("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=v("pred",r,t,e);return[Ci(n)]}case"Switch":{let n=v("pred",r,t,e),o=v("data",r,t,e);return o.kept||(o=Ci(o)),(await n.data())[0]?[void 0,o]:[o,void 0]}case"Merge":{let n=r.inputNames.find(o=>pr(o,t,e)!==void 0);if(n){let o=pr(n,t,e);return[Ci(o)]}return}case"Enter":{let n=v("frameName",r,t,e),o=v("tensor",r,t,e);return e.enterFrame(n),[Ci(o)]}case"Exit":{let n=v("tensor",r,t,e);return e.exitFrame(),[Ci(n)]}case"NextIteration":{let n=v("tensor",r,t,e);return e.nextIteration(),[Ci(n)]}case"TensorArrayV3":{let n=v("size",r,t,e),o=v("dtype",r,t,e),s=v("elementShape",r,t,e),i=v("dynamicSize",r,t,e),a=v("clearAfterRead",r,t,e),u=v("identicalElementShapes",r,t,e),l=v("name",r,t,e),c=new Qb(l,o,n,s,u,i,a);return e.addTensorArray(c),[c.idTensor,ft(1)]}case"TensorArrayWriteV3":{let n=v("tensorArrayId",r,t,e),o=v("index",r,t,e),s=v("tensor",r,t,e),i=e.getTensorArray(n.id);return i.write(o,s),[i.idTensor]}case"TensorArrayReadV3":{let n=v("tensorArrayId",r,t,e),o=v("index",r,t,e);return[e.getTensorArray(n.id).read(o)]}case"TensorArrayGatherV3":{let n=v("tensorArrayId",r,t,e),o=v("indices",r,t,e),s=v("dtype",r,t,e);return[e.getTensorArray(n.id).gather(o,s)]}case"TensorArrayScatterV3":{let n=v("tensorArrayId",r,t,e),o=v("indices",r,t,e),s=v("tensor",r,t,e),i=e.getTensorArray(n.id);return i.scatter(o,s),[i.idTensor]}case"TensorArrayConcatV3":{let n=v("tensorArrayId",r,t,e),o=e.getTensorArray(n.id),s=v("dtype",r,t,e);return[o.concat(s)]}case"TensorArraySplitV3":{let n=v("tensorArrayId",r,t,e),o=v("tensor",r,t,e),s=v("lengths",r,t,e),i=e.getTensorArray(n.id);return i.split(s,o),[i.idTensor]}case"TensorArraySizeV3":{let n=v("tensorArrayId",r,t,e),o=e.getTensorArray(n.id);return[ft(o.size(),"int32")]}case"TensorArrayCloseV3":{let n=v("tensorArrayId",r,t,e),o=e.getTensorArray(n.id);return o.clearAndClose(),[o.idTensor]}case"TensorListSetItem":{let n=v("tensorListId",r,t,e),o=v("index",r,t,e),s=v("tensor",r,t,e),i=e.getTensorList(n.id);return i.setItem(o,s),[i.idTensor]}case"TensorListGetItem":{let n=v("tensorListId",r,t,e),o=v("index",r,t,e),s=v("elementShape",r,t,e),i=v("elementDType",r,t,e);return[e.getTensorList(n.id).getItem(o,s,i)]}case"TensorListScatterV2":case"TensorListScatter":{let n=v("indices",r,t,e),o=v("tensor",r,t,e),s=v("elementShape",r,t,e),i=v("numElements",r,t,e),a=lF(o,n,s,i);return e.addTensorList(a),[a.idTensor]}case"TensorListReserve":case"EmptyTensorList":{let n=v("elementShape",r,t,e),o=v("elementDType",r,t,e),s;r.op==="TensorListReserve"?s="numElements":s="maxNumElements";let i=v(s,r,t,e),a=r.op==="TensorListReserve"?-1:i,u=aF(n,o,i,a);return e.addTensorList(u),[u.idTensor]}case"TensorListGather":{let n=v("tensorListId",r,t,e),o=v("indices",r,t,e),s=v("elementShape",r,t,e),i=v("elementDType",r,t,e);return[e.getTensorList(n.id).gather(o,i,s)]}case"TensorListStack":{let n=v("tensorListId",r,t,e),o=v("elementShape",r,t,e),s=v("elementDType",r,t,e),i=v("numElements",r,t,e);return[e.getTensorList(n.id).stack(o,s,i)]}case"TensorListFromTensor":{let n=v("tensor",r,t,e),o=v("elementShape",r,t,e),s=v("elementDType",r,t,e),i=iF(n,o,s);return e.addTensorList(i),[i.idTensor]}case"TensorListConcat":case"TensorListConcatV2":{let n=v("tensorListId",r,t,e),o=e.getTensorList(n.id),s=v("dtype",r,t,e),i=v("elementShape",r,t,e);return[o.concat(s,i)]}case"TensorListPushBack":{let n=v("tensorListId",r,t,e),o=v("tensor",r,t,e),s=e.getTensorList(n.id);return s.pushBack(o),[s.idTensor]}case"TensorListPopBack":{let n=v("tensorListId",r,t,e),o=v("elementShape",r,t,e),s=v("elementDType",r,t,e);return[e.getTensorList(n.id).popBack(o,s)]}case"TensorListSplit":{let n=v("tensor",r,t,e),o=v("elementShape",r,t,e),s=v("lengths",r,t,e),i=uF(n,s,o);return e.addTensorList(i),[i.idTensor]}case"TensorListLength":{let n=v("tensorListId",r,t,e),o=e.getTensorList(n.id);return[ft(o.size(),"int32")]}case"TensorListResize":{let n=v("tensorListId",r,t,e),o=v("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 pF(r,t,e){let[n,o]=v("fusedOps",r,t,e),s=n==="biasadd",i=!s,a=o==="prelu",u=n==="fusedbatchnorm",l=v("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=v("strides",r,t,e),p=Hh(r,t,e),m=v("dataFormat",r,t,e).toUpperCase(),f=v("dilations",r,t,e),[d,h]=v("args",r,t,e);i&&(h=d,d=void 0);let g=v("leakyreluAlpha",r,t,e);return{stride:c,pad:p,dataFormat:m,dilations:f,biasArg:d,preluArg:h,activationFunc:o,leakyreluAlpha:g}}var mF=(r,t,e,n=ae)=>{switch(r.op){case"Conv1D":{let o=v("stride",r,t,e),s=v("pad",r,t,e),i=v("dataFormat",r,t,e).toUpperCase(),a=v("dilation",r,t,e);return[n.conv1d(v("x",r,t,e),v("filter",r,t,e),o,s,i,a)]}case"Conv2D":{let o=v("strides",r,t,e),s=Hh(r,t,e),i=v("dataFormat",r,t,e).toUpperCase(),a=v("dilations",r,t,e);return[n.conv2d(v("x",r,t,e),v("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}=pF(r,t,e);return[n.fused.conv2d({x:v("x",r,t,e),filter:v("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}=pF(r,t,e);return[n.fused.depthwiseConv2d({x:v("x",r,t,e),filter:v("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=v("outputShape",r,t,e),s=v("strides",r,t,e),i=Hh(r,t,e);return[n.conv2dTranspose(v("x",r,t,e),v("filter",r,t,e),o,[s[1],s[2]],i)]}case"DepthwiseConv2dNative":case"DepthwiseConv2d":{let o=v("strides",r,t,e),s=Hh(r,t,e),i=v("dilations",r,t,e),a=v("dataFormat",r,t,e).toUpperCase();return[n.depthwiseConv2d(v("input",r,t,e),v("filter",r,t,e),[o[1],o[2]],s,a,[i[1],i[2]])]}case"Conv3D":{let o=v("strides",r,t,e),s=v("pad",r,t,e),i=v("dataFormat",r,t,e).toUpperCase(),a=v("dilations",r,t,e);return[n.conv3d(v("x",r,t,e),v("filter",r,t,e),[o[1],o[2],o[3]],s,i,[a[1],a[2],a[3]])]}case"AvgPool":{let o=v("strides",r,t,e),s=v("pad",r,t,e),i=v("kernelSize",r,t,e);return[n.avgPool(v("x",r,t,e),[i[1],i[2]],[o[1],o[2]],s)]}case"MaxPool":{let o=v("strides",r,t,e),s=v("pad",r,t,e),i=v("kernelSize",r,t,e);return[n.maxPool(v("x",r,t,e),[i[1],i[2]],[o[1],o[2]],s)]}case"MaxPoolWithArgmax":{let o=v("strides",r,t,e),s=v("pad",r,t,e),i=v("kernelSize",r,t,e),a=v("includeBatchInIndex",r,t,e),{result:u,indexes:l}=n.maxPoolWithArgmax(v("x",r,t,e),[i[1],i[2]],[o[1],o[2]],s,a);return[u,l]}case"AvgPool3D":{let o=v("strides",r,t,e),s=v("pad",r,t,e),i=v("kernelSize",r,t,e);return[n.avgPool3d(v("x",r,t,e),[i[1],i[2],i[3]],[o[1],o[2],o[3]],s)]}case"MaxPool3D":{let o=v("strides",r,t,e),s=v("pad",r,t,e),i=v("kernelSize",r,t,e);return[n.maxPool3d(v("x",r,t,e),[i[1],i[2],i[3]],[o[1],o[2],o[3]],s)]}case"Dilation2D":{let o=v("strides",r,t,e),s=v("pad",r,t,e),i=v("dilations",r,t,e),a=o[1],u=o[2],l=i[1],c=i[2];return[n.dilation2d(v("x",r,t,e),v("filter",r,t,e),[a,u],s,[l,c],"NHWC")]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var fF=(r,t,e,n=ae)=>{switch(r.op){case"Fill":{let o=v("shape",r,t,e),s=v("dtype",r,t,e),i=v("value",r,t,e);return[n.fill(o,i,s)]}case"LinSpace":{let o=v("start",r,t,e),s=v("stop",r,t,e),i=v("num",r,t,e);return[n.linspace(o,s,i)]}case"Multinomial":{let o=v("logits",r,t,e),s=v("numSamples",r,t,e),i=v("seed",r,t,e);return[n.multinomial(o,s,i)]}case"OneHot":{let o=v("indices",r,t,e),s=v("depth",r,t,e),i=v("onValue",r,t,e),a=v("offValue",r,t,e),u=v("dtype",r,t,e);return[n.oneHot(o,s,i,a,u)]}case"Ones":return[n.ones(v("shape",r,t,e),v("dtype",r,t,e))];case"OnesLike":return[n.onesLike(v("x",r,t,e))];case"RandomStandardNormal":return[n.randomStandardNormal(v("shape",r,t,e),v("dtype",r,t,e),v("seed",r,t,e))];case"RandomUniform":return[n.randomUniform(v("shape",r,t,e),v("minval",r,t,e),v("maxval",r,t,e),v("dtype",r,t,e))];case"RandomUniformInt":return[n.randomUniformInt(v("shape",r,t,e),v("minval",r,t,e),v("maxval",r,t,e),v("seed",r,t,e))];case"Range":{let o=v("start",r,t,e),s=v("stop",r,t,e),i=v("step",r,t,e);return[n.range(o,s,i,v("dtype",r,t,e))]}case"TruncatedNormal":{let o=v("shape",r,t,e),s=v("mean",r,t,e),i=v("stdDev",r,t,e),a=v("seed",r,t,e);return[n.truncatedNormal(o,s,i,v("dtype",r,t,e),a)]}case"Zeros":return[n.zeros(v("shape",r,t,e),v("dtype",r,t,e))];case"ZerosLike":return[n.zerosLike(v("x",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function Sk(r,t,e){let n=v("boxes",r,t,e),o=v("scores",r,t,e),s=v("maxOutputSize",r,t,e),i=v("iouThreshold",r,t,e),a=v("scoreThreshold",r,t,e),u=v("softNmsSigma",r,t,e);return{boxes:n,scores:o,maxOutputSize:s,iouThreshold:i,scoreThreshold:a,softNmsSigma:u}}var dF=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}=Sk(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}=Sk(r,t,e),c=v("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}=Sk(r,t,e);return[await o.image.nonMaxSuppressionAsync(s,i,a,u,l)]}case"Where":{let s=o.cast(v("condition",r,t,e),"bool"),i=[await o.whereAsync(s)];return s.dispose(),i}case"ListDiff":return o.setdiff1dAsync(v("x",r,t,e),v("y",r,t,e));default:throw TypeError(`Node type ${r.op} is not implemented`)}};var hF=(r,t,e,n=ae)=>{switch(r.op){case"LowerBound":{let o=v("sortedSequence",r,t,e),s=v("values",r,t,e);return[n.lowerBound(o,s)]}case"TopKV2":{let o=v("x",r,t,e),s=v("k",r,t,e),i=v("sorted",r,t,e),a=n.topk(o,s,i);return[a.values,a.indices]}case"UpperBound":{let o=v("sortedSequence",r,t,e),s=v("values",r,t,e);return[n.upperBound(o,s)]}case"Unique":{let o=v("x",r,t,e),s=n.unique(o);return[s.values,s.indices]}case"UniqueV2":{let o=v("x",r,t,e),s=v("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 gF=(r,t,e,n=ae)=>{switch(r.op){case"Const":return t[r.name];case"PlaceholderWithDefault":let o=v("default",r,t,e);return[pr(r.name,t,e)||o];case"Placeholder":return[pr(r.name,t,e)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":{let c=v("x",r,t,e);return[Ci(c)]}case"IdentityN":return v("x",r,t,e).map(c=>Ci(c));case"Snapshot":let s=v("x",r,t,e);return[Ci(s)];case"Shape":return[n.tensor1d(v("x",r,t,e).shape,"int32")];case"ShapeN":return v("x",r,t,e).map(c=>n.tensor1d(c.shape));case"Size":return[n.scalar(v("x",r,t,e).size,"int32")];case"Rank":return[n.scalar(v("x",r,t,e).rank,"int32")];case"NoOp":return[n.scalar(1)];case"Print":let i=v("x",r,t,e),a=v("data",r,t,e),u=v("message",r,t,e),l=v("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 ft(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=xr(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=v("keyDType",r,t,e),i=v("valueDType",r,t,e),a=new tw(s,i);return n.addHashTable(r.name,a),[a.handle]}}case"InitializeTable":case"InitializeTableV2":case"LookupTableImport":case"LookupTableImportV2":{let o=v("tableHandle",r,t,e,n),s=v("keys",r,t,e),i=v("values",r,t,e);return[await n.getHashTableById(o.id).import(s,i)]}case"LookupTableFind":case"LookupTableFindV2":{let o=v("tableHandle",r,t,e,n),s=v("keys",r,t,e),i=v("defaultValue",r,t,e);return[await n.getHashTableById(o.id).find(s,i)]}case"LookupTableSize":case"LookupTableSizeV2":{let o=v("tableHandle",r,t,e,n);return[n.getHashTableById(o.id).tensorSize()]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var yF=(r,t,e,n=ae)=>{switch(r.op){case"ResizeBilinear":{let o=v("images",r,t,e),s=v("size",r,t,e),i=v("alignCorners",r,t,e),a=v("halfPixelCenters",r,t,e);return[n.image.resizeBilinear(o,[s[0],s[1]],i,a)]}case"ResizeNearestNeighbor":{let o=v("images",r,t,e),s=v("size",r,t,e),i=v("alignCorners",r,t,e),a=v("halfPixelCenters",r,t,e);return[n.image.resizeNearestNeighbor(o,[s[0],s[1]],i,a)]}case"CropAndResize":{let o=v("image",r,t,e),s=v("boxes",r,t,e),i=v("boxInd",r,t,e),a=v("cropSize",r,t,e),u=v("method",r,t,e),l=v("extrapolationValue",r,t,e);return[n.image.cropAndResize(o,s,i,a,u,l)]}case"ImageProjectiveTransformV3":{let o=v("images",r,t,e),s=v("transforms",r,t,e),i=v("outputShape",r,t,e),a=v("fillValue",r,t,e),u=v("interpolation",r,t,e),l=v("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 bF=(r,t,e,n=ae)=>{switch(r.op){case"Equal":return[n.equal(v("a",r,t,e),v("b",r,t,e))];case"NotEqual":return[n.notEqual(v("a",r,t,e),v("b",r,t,e))];case"Greater":return[n.greater(v("a",r,t,e),v("b",r,t,e))];case"GreaterEqual":return[n.greaterEqual(v("a",r,t,e),v("b",r,t,e))];case"Less":return[n.less(v("a",r,t,e),v("b",r,t,e))];case"LessEqual":return[n.lessEqual(v("a",r,t,e),v("b",r,t,e))];case"LogicalAnd":return[n.logicalAnd(v("a",r,t,e),v("b",r,t,e))];case"LogicalNot":return[n.logicalNot(v("a",r,t,e))];case"LogicalOr":return[n.logicalOr(v("a",r,t,e),v("b",r,t,e))];case"Select":case"SelectV2":return[n.where(v("condition",r,t,e),v("a",r,t,e),v("b",r,t,e))];case"BitwiseAnd":return[n.bitwiseAnd(v("a",r,t,e),v("b",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var wF=(r,t,e,n=ae)=>{switch(r.op){case"BatchMatMul":case"BatchMatMulV2":case"MatMul":return[n.matMul(v("a",r,t,e),v("b",r,t,e),v("transposeA",r,t,e),v("transposeB",r,t,e))];case"Einsum":return[n.einsum(v("equation",r,t,e),...v("tensors",r,t,e))];case"Transpose":return[n.transpose(v("x",r,t,e),v("perm",r,t,e))];case"_FusedMatMul":let[o,s]=v("fusedOps",r,t,e),i=o==="biasadd",a=s==="prelu",u=v("numArgs",r,t,e),l=v("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]=v("args",r,t,e);return[n.fused.matMul({a:v("a",r,t,e),b:v("b",r,t,e),transposeA:v("transposeA",r,t,e),transposeB:v("transposeB",r,t,e),bias:c,activation:s,preluActivationWeights:p,leakyreluAlpha:l})];case"MatrixBandPart":return[n.linalg.bandPart(v("a",r,t,e),v("numLower",r,t,e),v("numUpper",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var IF=(r,t,e,n=ae)=>{switch(r.op){case"EuclideanNorm":return[n.euclideanNorm(v("x",r,t,e),v("axis",r,t,e),v("keepDims",r,t,e))];case"FusedBatchNorm":case"FusedBatchNormV2":return[n.batchNorm(v("x",r,t,e),v("mean",r,t,e),v("variance",r,t,e),v("offset",r,t,e),v("scale",r,t,e),v("epsilon",r,t,e))];case"FusedBatchNormV3":return[n.batchNorm(v("x",r,t,e),v("mean",r,t,e),v("variance",r,t,e),v("offset",r,t,e),v("scale",r,t,e),v("epsilon",r,t,e))];case"LRN":return[n.localResponseNormalization(v("x",r,t,e),v("radius",r,t,e),v("bias",r,t,e),v("alpha",r,t,e),v("beta",r,t,e))];case"Softmax":return[n.softmax(v("x",r,t,e))];case"LogSoftmax":return[n.logSoftmax(v("x",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var CF=(r,t,e,n=ae)=>{switch(r.op){case"RaggedGather":{let{outputNestedSplits:o,outputDenseValues:s}=n.raggedGather(v("paramsNestedSplits",r,t,e),v("paramsDenseValues",r,t,e),v("indices",r,t,e),v("outputRaggedRank",r,t,e));return o.concat(s)}case"RaggedRange":{let{rtNestedSplits:o,rtDenseValues:s}=n.raggedRange(v("starts",r,t,e),v("limits",r,t,e),v("splits",r,t,e));return[o,s]}case"RaggedTensorToTensor":return[n.raggedTensorToTensor(v("shape",r,t,e),v("values",r,t,e),v("defaultValue",r,t,e),v("rowPartitionTensors",r,t,e),v("rowPartitionTypes",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var vF=(r,t,e,n=ae)=>{switch(r.op){case"Max":{let a=v("axis",r,t,e),u=v("keepDims",r,t,e);return[n.max(v("x",r,t,e),a,u)]}case"Mean":{let a=v("axis",r,t,e),u=v("keepDims",r,t,e);return[n.mean(v("x",r,t,e),a,u)]}case"Min":{let a=v("axis",r,t,e),u=v("keepDims",r,t,e);return[n.min(v("x",r,t,e),a,u)]}case"Sum":{let a=v("axis",r,t,e),u=v("keepDims",r,t,e);return[n.sum(v("x",r,t,e),a,u)]}case"All":{let a=v("axis",r,t,e),u=v("keepDims",r,t,e);return[n.all(v("x",r,t,e),a,u)]}case"Any":{let a=v("axis",r,t,e),u=v("keepDims",r,t,e);return[n.any(v("x",r,t,e),a,u)]}case"ArgMax":{let a=v("axis",r,t,e);return[n.argMax(v("x",r,t,e),a)]}case"ArgMin":{let a=v("axis",r,t,e);return[n.argMin(v("x",r,t,e),a)]}case"Prod":{let a=v("axis",r,t,e),u=v("keepDims",r,t,e);return[n.prod(v("x",r,t,e),a,u)]}case"Cumprod":{let a=v("axis",r,t,e),u=v("exclusive",r,t,e),l=v("reverse",r,t,e);return[n.cumprod(v("x",r,t,e),a,u,l)]}case"Cumsum":{let a=v("axis",r,t,e),u=v("exclusive",r,t,e),l=v("reverse",r,t,e);return[n.cumsum(v("x",r,t,e),a,u,l)]}case"Bincount":let o=v("x",r,t,e),s=v("weights",r,t,e),i=v("size",r,t,e);return[n.bincount(o,s,i)];case"DenseBincount":{let a=v("x",r,t,e),u=v("weights",r,t,e),l=v("size",r,t,e),c=v("binaryOutput",r,t,e);return[n.denseBincount(a,u,l,c)]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var SF=(r,t,e,n=ae)=>{switch(r.op){case"ConcatV2":case"Concat":{let o=v("n",r,t,e),s=v("axis",r,t,e),i=v("tensors",r,t,e);return i=i.slice(0,o),[n.concat(i,s)]}case"Gather":{let o=v("x",r,t,e),s=v("indices",r,t,e);return[n.gather(o,n.cast(s,"int32"),0)]}case"GatherV2":{let o=v("axis",r,t,e),s=v("batchDims",r,t,e),i=v("x",r,t,e),a=v("indices",r,t,e);return[n.gather(i,n.cast(a,"int32"),o,s)]}case"Reverse":{let o=v("dims",r,t,e),s=[];for(let a=0;a{let o=v("axis",r,t,e),s=v("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=v("axis",r,t,e),s=v("tensor",r,t,e);return n.unstack(s,o)}case"Tile":{let o=v("reps",r,t,e);return[n.tile(v("x",r,t,e),o)]}case"Split":case"SplitV":{let o=v("axis",r,t,e),s=v("numOrSizeSplits",r,t,e),i=v("x",r,t,e);return n.split(i,s,o)}case"ScatterNd":{let o=v("indices",r,t,e),s=v("values",r,t,e),i=v("shape",r,t,e);return[n.scatterND(o,s,i)]}case"GatherNd":{let o=v("x",r,t,e),s=v("indices",r,t,e);return[n.gatherND(o,s)]}case"SparseToDense":{let o=v("sparseIndices",r,t,e),s=v("outputShape",r,t,e),i=v("sparseValues",r,t,e),a=v("defaultValue",r,t,e);return[n.sparseToDense(o,i,s,i.dtype===a.dtype?a:n.cast(a,i.dtype))]}case"TensorScatterUpdate":{let o=v("indices",r,t,e),s=v("values",r,t,e),i=v("tensor",r,t,e);return[n.tensorScatterUpdate(i,o,s)]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var NF=(r,t,e,n=ae)=>{switch(r.op){case"SparseFillEmptyRows":{let{outputIndices:o,outputValues:s,emptyRowIndicator:i,reverseIndexMap:a}=n.sparse.sparseFillEmptyRows(v("indices",r,t,e),v("values",r,t,e),v("denseShape",r,t,e),v("defaultValue",r,t,e));return[o,s,i,a]}case"SparseReshape":{let{outputIndices:o,outputShape:s}=n.sparse.sparseReshape(v("inputIndices",r,t,e),v("inputShape",r,t,e),v("newShape",r,t,e));return[o,s]}case"SparseSegmentMean":return[n.sparse.sparseSegmentMean(v("data",r,t,e),v("indices",r,t,e),v("segmentIds",r,t,e))];case"SparseSegmentSum":return[n.sparse.sparseSegmentSum(v("data",r,t,e),v("indices",r,t,e),v("segmentIds",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var kF=(r,t,e,n=ae)=>{switch(r.op){case"FFT":return[n.fft(v("x",r,t,e))];case"IFFT":return[n.ifft(v("x",r,t,e))];case"RFFT":return[n.rfft(v("x",r,t,e))];case"IRFFT":return[n.irfft(v("x",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var TF=(r,t,e,n=ae)=>{switch(r.op){case"StaticRegexReplace":return[n.string.staticRegexReplace(v("input",r,t,e),v("pattern",r,t,e),v("rewrite",r,t,e),v("replaceGlobal",r,t,e))];case"StringNGrams":{let{nGrams:o,nGramsSplits:s}=n.string.stringNGrams(v("data",r,t,e),v("dataSplits",r,t,e),v("separator",r,t,e),v("nGramWidths",r,t,e),v("leftPad",r,t,e),v("rightPad",r,t,e),v("padWidth",r,t,e),v("preserveShortSequences",r,t,e));return[o,s]}case"StringSplit":{let{indices:o,values:s,shape:i}=n.string.stringSplit(v("input",r,t,e),v("delimiter",r,t,e),v("skipEmpty",r,t,e));return[o,s,i]}case"StringToHashBucketFast":return[n.string.stringToHashBucketFast(v("input",r,t,e),v("numBuckets",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var _F=(r,t,e,n=ae)=>{switch(r.op){case"Cast":return[n.cast(v("x",r,t,e),v("dtype",r,t,e))];case"ExpandDims":{let o=v("axis",r,t,e);return[n.expandDims(v("x",r,t,e),o)]}case"Squeeze":{let o=v("axis",r,t,e);return[n.squeeze(v("x",r,t,e),o)]}case"Reshape":return[n.reshape(v("x",r,t,e),v("shape",r,t,e))];case"EnsureShape":return[n.ensureShape(v("x",r,t,e),v("shape",r,t,e))];case"MirrorPad":return[n.mirrorPad(v("x",r,t,e),v("padding",r,t,e),v("mode",r,t,e))];case"PadV2":case"Pad":return[n.pad(v("x",r,t,e),v("padding",r,t,e),v("constantValue",r,t,e))];case"SpaceToBatchND":{let o=v("blockShape",r,t,e),s=v("paddings",r,t,e);return[n.spaceToBatchND(v("x",r,t,e),o,s)]}case"BatchToSpaceND":{let o=v("blockShape",r,t,e),s=v("crops",r,t,e);return[n.batchToSpaceND(v("x",r,t,e),o,s)]}case"DepthToSpace":{let o=v("blockSize",r,t,e),s=v("dataFormat",r,t,e).toUpperCase();return[n.depthToSpace(v("x",r,t,e),o,s)]}case"BroadcastTo":return[n.broadcastTo(v("x",r,t,e),v("shape",r,t,e))];case"BroadcastArgs":return[n.broadcastArgs(v("s0",r,t,e),v("s1",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function Nk(r,t,e,n,o=B){let s=((i,a,u)=>{switch(i.category){case"arithmetic":return o(()=>nF(i,a,u));case"basic_math":return o(()=>oF(i,a,u));case"control":return cF(i,a,u);case"convolution":return o(()=>mF(i,a,u));case"creation":return o(()=>fF(i,a,u));case"dynamic":return dF(i,a,u);case"evaluation":return o(()=>hF(i,a,u));case"image":return o(()=>yF(i,a,u));case"graph":return o(()=>gF(i,a,u));case"logical":return o(()=>bF(i,a,u));case"matrices":return o(()=>wF(i,a,u));case"normalization":return o(()=>IF(i,a,u));case"ragged":return o(()=>CF(i,a,u));case"reduction":return o(()=>vF(i,a,u));case"slice_join":return o(()=>SF(i,a,u));case"sparse":return o(()=>NF(i,a,u));case"spectral":return o(()=>kF(i,a,u));case"string":return o(()=>TF(i,a,u));case"transformation":return o(()=>_F(i,a,u));case"hash_table":return xF(i,a,u,n);case"custom":let l=zb(i.op);if(l&&l.customExecutor)return l.customExecutor(new Zb(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 Kh=class{constructor(t={},e={},n={},o={},s){this.weightMap=t,this.tensorArrayMap=e,this.tensorListMap=n,this.functionMap=o,this.parseNodeNameCache=s,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 kk(r,t,e,n){let o=new Set,s=[],i=null,a=null,u=new Set,l=new Set(Object.keys(r).map(m=>vn(m)[0]));n=n||[];let c=new Set(n.map(m=>vn(m.name)[0])),p=[...t];for(;p.length>0;){let m=p.pop();if((Ku(m)||jQ(m)||XQ(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.has(m.name)&&!c.has(m.name)){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 EF(r,t){let{usedNodes:e,inputs:n}=t,o=Object.keys(n).map(g=>vn(g)[0]).map(g=>r.nodes[g]),s=r.initNodes||[],i=g=>e.has(typeof g=="string"?g:g.name);function a(g){return[...new Map(g.map(x=>[x.name,x])).values()]}let u=a([...o,...r.weights,...s]).filter(i),l=a([...u,...Object.values(r.nodes)]).filter(i),c=new Map(l.map(g=>[g.name,g])),p={};for(let g of l){p[g.name]=p[g.name]||0;for(let x of g.children)i(x)||(p[x.name]=Number.POSITIVE_INFINITY),p[x.name]=(p[x.name]||0)+1}let m=Object.entries(p).filter(([,g])=>g===0).map(([g])=>g),f=[...m];for(;m.length>0;){let g=m.pop(),x=c.get(g);for(let b of x.children.filter(i))--p[b.name]===0&&(f.push(b.name),m.push(b.name))}let d=f.map(g=>c.get(g)),h=WQ(d,u);return UQ(h,u),h}function WQ(r,t){let e=new Map(r.map(i=>[i.name,i])),n=t.map(i=>i.name),o=new Set(n);for(;n.length>0;){let i=n.pop(),a=e.get(i);for(let u of a.children)!e.has(u.name)||o.has(u.name)||(o.add(u.name),n.push(u.name))}return r.filter(i=>o.has(i.name))}var ad=class extends Error{constructor(t){super(`NodesExecutionOrderError: ${t}`)}};function UQ(r,t){let e=new Map(r.map((a,u)=>[a.name,u])),n=new Set(t.map(a=>a.name)),o=a=>n.has(typeof a=="string"?a:a.name),s=new Set(r.map(a=>a.name)),i=a=>s.has(typeof a=="string"?a:a.name);for(let a of r){for(let u of a.children.filter(i)){if(!e.has(u.name))throw new ad(`Child ${u.name} of node ${a.name} is unreachable.`);if(e.get(a.name)>e.get(u.name))throw new ad(`Node ${a.name} is scheduled to run after its child ${u.name}.`)}if(!o(a))for(let u of a.inputs){if(!e.has(u.name))throw new ad(`Input ${u.name} of node ${a.name} is unreachable.`);if(e.get(u.name)>e.get(a.name))throw new ad(`Node ${a.name} is scheduled to run before its input ${u.name}.`)}}}function AF(r){let t=new Map(r.map((a,u)=>[a.name,u])),e=Number.MAX_SAFE_INTEGER,n=r.map((a,u)=>Ku(a)?e:u),o=a=>{let u=n[t.get(a.name)];return u==null?-1:u},s=r.map((a,u)=>a.children.map(o).reduce((l,c)=>Math.max(l,c),n[u])),i=new Map;for(let a=0;at[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),{})}constructor(t,e){this.graph=t,this.parent=e,this.compiledMap=new Map,this.parseNodeNameCache=new Map,this._weightMap={},this.SEPARATOR=",",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 op(t.functions[n],this)})}getCompilationKey(t,e){let n=t.map(s=>s.name).sort(),o=e.map(s=>s.name).sort();return n.join(this.SEPARATOR)+"--"+o.join(this.SEPARATOR)}compile(t,e){let n=kk(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 l=e.map(p=>p.name),c=Object.keys(t);throw new Error(`Cannot compute the outputs [${l}] from the provided inputs [${c}]. Missing the following inputs: [${o}]`)}let a=EF(this.graph,n),u=AF(a);return{orderedNodes:a,nodeLiveUntilMap:u}}cloneAndKeepTensor(t){if(t==null)return null;let e=t.clone();return $e(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(m=>this.graph.nodes[vn(m)[0]]),s=e.map(m=>vn(m)[0]),i=new Set(s),a=s.map(m=>this.graph.nodes[m]);a.length===0&&(a=this._outputs);let u=this.getCompilationKey(o,a),l=this.compiledMap.get(u);l==null&&(l=this.compile(t,a),this.compiledMap.set(u,l));try{this.keepIntermediateTensors=L().getBool("KEEP_INTERMEDIATE_TENSORS")}catch(m){this.keepIntermediateTensors=!1,console.warn(m.message)}let c={},p={};return B(()=>{let m=new Kh(this.weightMap,c,p,this.functionExecutorMap,this.parseNodeNameCache),f=Object.assign({},this.weightMap);this.keepIntermediateTensors&&(this.clonedTensorsMap=this.cloneTensorMap(this.weightMap)),Object.keys(t).forEach(x=>{let[b,w]=vn(x,m),I=[];I[w]=t[x],f[b]=I,this.keepIntermediateTensors&&(this.clonedTensorsMap[b]=this.cloneTensorList(I))});let d=this.getFrozenTensorIds(f),{orderedNodes:h,nodeLiveUntilMap:g}=l;for(let x of h){if(f[x.name])continue;let b=Nk(x,f,m,this._resourceManager);if(y.isPromise(b))throw new Error(`The execution of the op '${x.op}' returned a promise. Please use model.executeAsync() instead.`);f[x.name]=b,this.keepIntermediateTensors&&(this.clonedTensorsMap[x.name]=this.cloneTensorList(b)),this.checkTensorForDisposalWithNodeLiveUntilInfo(x,f,m,d,i,g.get(x.name))}return this.parent==null&&m.dispose(d),e.map(x=>pr(x,f,m))})}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){if(!(Ku(e)||i.has(t))){for(let u of n[t])u!=null&&(a[u.id]=(a[u.id]||0)+e.children.length);for(let u of e.inputs){if(Ku(u))continue;let l=nk(u.name,n,o);if(l!=null)for(let c of l){if(!c||c.kept||s.has(c.id))continue;let p=a[c.id];p===1?(c.dispose(),delete a[c.id]):p!=null&&a[c.id]--}}}}checkTensorForDisposalWithNodeLiveUntilInfo(t,e,n,o,s,i){function a(u){return Ku(u)||s.has(u.name)}if(!(Ku(t)||i==null))for(let u of i){if(a(u))continue;let l=nk(u.name,e,n);for(let c of l)!c||c.kept||o.has(c.id)||c.dispose()}}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=L().getBool("KEEP_INTERMEDIATE_TENSORS")}catch(m){this.keepIntermediateTensors=!1,console.warn(m.message)}let i=new Kh(this.weightMap,o,s,this.functionExecutorMap,this.parseNodeNameCache);this.keepIntermediateTensors&&(this.clonedTensorsMap=this.cloneTensorMap(this.weightMap));let a=await this.executeWithControlFlow(t,i,e,n),u=e.map(m=>pr(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(I=>this.graph.nodes[vn(I)[0]]),a=n.map(I=>vn(I)[0]),u=new Set(a),l=a.map(I=>this.graph.nodes[I]);l.length===0&&(l=this._outputs);let{usedNodes:c,missingInputs:p,dynamicNode:m,syncInputs:f}=kk(t,l,this.weightMap,this._initNodes),d=[...i,...this.graph.weights,...this._initNodes||[]].map(I=>({node:I,contexts:e.currentContext})),h=Object.assign({},this.weightMap);Object.keys(t).forEach(I=>{let[N,E]=vn(I),A=[];A[E]=t[I],h[N]=A});let g={},x=this.getFrozenTensorIds(h),b={};for(;d.length>0;){let I=this.processStack(i,d,e,h,b,x,u,g,c);await Promise.all(I)}m==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 w=l.filter(I=>!Ku(I)&&!pr(I.name,h,e)).map(I=>I.name);if(w.length>0){let I="";throw m!=null&&(I=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${f}]`),new Error(`Cannot compute the outputs [${w}] from the provided inputs [${s}]. Consider providing the following inputs: [${p}]. ${I}`)}return h}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"&&v("isConstant",p.node,o,n)&&([m]=Ii(p.node.name,n)),o[p.node.name]==null){let f=Nk(p.node,o,n,this._resourceManager);m||([m]=Ii(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]=Ii(a.name,n);s[u]||!i.has(a.name)||(a.op==="Merge"?a.inputNames.some(l=>!!pr(l,o,n))&&(s[u]=!0,e.push({contexts:n.currentContext,node:a})):a.inputNames.every(l=>!!pr(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]=vn(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]=vn(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]=vn(e);if(!this.graph.nodes[n])throw new Error(`The output '${e}' is not found in the graph`)})}};var ew=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 YQ="?tfjs-format=file",ZQ="model.json",jh=class{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}constructor(t,e={},n=Lr){this.modelUrl=t,this.loadOptions=e,this.version="n/a",this.io=n,e==null&&(this.loadOptions={}),this.resourceManager=new ew}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 op(qh.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=qh.Instance.transformGraph(t.modelInitializer);this.initializer=new op(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 Ot?[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 Ot)&&!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&&Tt(this.resourceIdToCapturedInput)),this.resourceManager.dispose()}};async function JQ(r,t={},e=Lr){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=ttt(r));let n=new jh(r,t,e);return await n.load(),n}function QQ(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=Lr.getWeightSpecs(n.weightsManifest),i=Lr.getModelArtifactsForJSONSync(n,s,o);t=Lr.fromMemorySync(i)}else if("load"in r)t=r;else if("modelTopology"in r&&"weightSpecs"in r&&"weightData"in r)t=Lr.fromMemorySync(r);else throw new Error("Unknown model format");let e=new jh(t);return e.load(),e}function ttt(r){return r.endsWith("/")||(r=r+"/"),`${r}${ZQ}${YQ}`}var DF="4.7.0";var ZF={};Kt(ZF,{CSVDataset:()=>cd,Dataset:()=>vi,FileDataSource:()=>hd,TextLineDataset:()=>ud,URLDataSource:()=>gd,array:()=>VF,csv:()=>qF,func:()=>KF,generator:()=>jF,microphone:()=>YF,version_data:()=>Kk,webcam:()=>XF,zip:()=>GF});var BF=Xl(bh());var MF=Xl(bh());function $F(r,t){return rw(r,t)}function rw(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(ju(r)){let s=Array.isArray(r)?[]:{};n.add(r);for(let i in r){let a=r[i],u=rw(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 RF(r,t=_k){return FF(r,t)}function FF(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(ju(n)){let s=Array.isArray(n)?[]:{};e.add(n);for(let i in n){let a=r.map(l=>l[i]),u=FF(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 _k(r){return r===null?null:ju(r[0])?{value:null,recurse:!0}:{value:r,recurse:!1}}async function nw(r,t){let e=new Map;rw(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 rw(r,t,e)}function ju(r){let t=!1;if(L().get("IS_BROWSER"))t=r instanceof TextDecoder;else{let{StringDecoder:e}=Tk();t=r instanceof e}return r!=null&&!ArrayBuffer.isView(r)&&(Array.isArray(r)||typeof r=="object"&&!(r instanceof Ot)&&!(r instanceof Promise)&&!t)}function OF(r){return r==null||ett(r)||Array.isArray(r)||typeof r=="object"&&r instanceof Ot||y.isTypedArray(r)}function ett(r){return r===null||typeof r!="object"&&typeof r!="function"}function PF(r){return $F(r,rtt)}function rtt(r){return r instanceof Ot?{value:r.clone(),recurse:!1}:ju(r)?{value:null,recurse:!0}:{value:r,recurse:!1}}var ld=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 sp=class extends ld{constructor(){super(sp.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 Fk(this,t,e)}columnMajorBatch(t,e=!0,n=_k){return this.rowMajorBatch(t,e).map(s=>RF(s,n))}concatenate(t,e){return new sw(Vk([this,t]),e)}take(t){return t<0||t==null?this:new Rk(this,t)}skip(t){return t<0||t==null?this:new $k(this,t)}prefetch(t){return new iw(this,t)}shuffle(t,e){return new Bk(this,t,e)}serial(){return new Dk(this)}},Ek=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:PF(t),done:!1}}},Ak=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}}},Dk=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()}},$k=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()}},Fk=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}}},Ok=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;Tt(t.value)}}},Pk=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=So.getTensorsInContainer(t.value),n=this.transform(t.value),o=So.getTensorsInContainer(n);for(let s of e)So.isTensorInList(s,o)||s.dispose();return{value:n,done:!1}}},Mk=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}}}},ow=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=So.getTensorsInContainer(t.value),n=await this.transform(t.value),o=So.getTensorsInContainer(n);for(let s of e)So.isTensorInList(s,o)||s.dispose();return{value:n,done:!1}}},ip=class extends tr{constructor(){super(),this.outputQueue=new sp,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}}},Lk=class extends ip{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=So.getTensorsInContainer(t.value),n=this.transform(t.value),o=So.getTensorsInContainer(n);this.outputQueue.pushAll(n);for(let s of e)So.isTensorInList(s,o)||s.dispose();return!0}},sw=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}},Ll;(function(r){r[r.FAIL=0]="FAIL",r[r.SHORTEST=1]="SHORTEST",r[r.LONGEST=2]="LONGEST"})(Ll||(Ll={}));var zk=class extends tr{constructor(t,e=Ll.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 nw(this.iterators,o);if(e===n)return{value:null,done:!0};if(n>0)switch(this.mismatchMode){case Ll.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case Ll.SHORTEST:return{value:null,done:!0};case Ll.LONGEST:default:}return this.count++,{value:s,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}},iw=class extends tr{constructor(t,e){super(),this.upstream=t,this.bufferSize=e,this.buffer=new ld(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()}},Bk=class extends iw{constructor(t,e,n){super(t,e),this.upstream=t,this.windowSize=e,this.upstreamExhausted=!1,this.random=MF.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 vi=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,ntt),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=Xh(async()=>({value:await e.iterator(),done:!1}));return LF(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=BF.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()}};vi.MAX_BUFFER_SIZE=1e4;function $n(r,t=null){return new class extends vi{constructor(){super(...arguments),this.size=t}async iterator(){return r()}}}function VF(r){return $n(async()=>Vk(r),r.length)}function GF(r){if(!ju(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 nw(r,n=>{if(n instanceof vi)return{value:n.iterator(),recurse:!1};if(ju(n))return{value:null,recurse:!0};throw new Error("Leaves of the structure passed to zip() must be Datasets, not primitives.")});return zF(e,Ll.SHORTEST)},t)}function ntt(r){if(r===null)return null;let t=r[0];return OF(t)?{value:ott(r),recurse:!1}:{value:null,recurse:!0}}function ott(r){if(r.length===0)throw new Error("Can't make a batch of zero elements.");return r[0]instanceof Ot?qe(r):sr(r)}var ud=class extends vi{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 aw='"',Yh=Symbol("out"),WF=Symbol("field"),lw=Symbol("quote"),Gk=Symbol("quoteafterquote"),UF=Symbol("quoteinquote"),cd=class extends vi{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}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 ud(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 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(!L().get("IS_BROWSER"))throw new Error("microphone API is only supported in browser environment.");let e=new pd(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),sr(n,e)}};var md=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=fi([i,s,u,a],[1,4])}else this.cropBox=fi([0,0,1,1],[1,4])}summary(){return"webcam"}static async create(t,e={}){if(!L().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 md(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=Ay.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=ar(Q(t,"float32"),0),n;n=hn.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 fd=class{};var Zh=class extends tr{split(t){return new Wk(this,t)}},Wk=class extends Zh{constructor(t,e){super(),this.upstream=t,this.impl=new Uk(t,e)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},Uk=class extends ip{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 uw=class extends tr{decodeUTF8(){return new Hk(this)}},Hk=class extends Zh{constructor(t){super(),this.upstream=t,this.impl=new qk(t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},qk=class extends ip{constructor(t){if(super(),this.upstream=t,L().get("IS_BROWSER"))this.decoder=new TextDecoder("utf-8");else{let{StringDecoder:e}=Tk();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 L().get("IS_BROWSER")?n=this.decoder.decode(e,{stream:!0}):n=this.decoder.write(Buffer.from(e.buffer)),this.outputQueue.push(n),!0}};var dd=class extends uw{constructor(t,e={}){super(),this.file=t,this.options=e,y.assert(t instanceof Uint8Array||(L().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 HF(r,t={},e){let n,o;typeof r=="string"?n=r:(n=r.url,o=stt(r));let s=await(e||y.fetch)(n,o);if(s.ok){let i=new Uint8Array(await s.arrayBuffer());return new dd(i,t)}else throw new Error(s.statusText)}var stt=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 cw(r){return typeof r=="string"&&r.slice(0,7)==="file://"}var hd=class extends fd{constructor(t,e={}){super(),this.input=t,this.options=e}async iterator(){if(cw(this.input)&&L().get("IS_NODE")){let t=pw();this.input=t.readFileSync(this.input.slice(7))}return new dd(this.input,this.options)}};var gd=class extends fd{constructor(t,e={}){super(),this.url=t,this.fileOptions=e}async iterator(){return cw(this.url)?new hd(this.url,this.fileOptions).iterator():HF(this.url,this.fileOptions)}};function qF(r,t={}){return new cd(new gd(r),t)}function KF(r){let t=Xh(r);return $n(async()=>t)}function jF(r){return $n(async()=>{let t=await r();return Xh(()=>t.next())})}async function XF(r,t){return md.create(r,t)}async function YF(r){return pd.create(r)}var Kk="4.7.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 itt=jr.whereImpl,Xu=class extends Uo{nextDataId(){return Xu.nextDataId++}constructor(){super(),this.blockSize=48,this.firstUse=!0,this.data=new Da(this,Wn())}write(t,e,n){this.firstUse&&(this.firstUse=!1,L().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 S.mergeRealAndImagArrays(o,s)}return y.convertBackendValuesAndArrayBuffer(this.data.get(t).values,e)}bufferSync(t){let e=this.readSync(t.dataId);if(t.dtype==="string")try{let n=e.map(o=>y.decodeString(o));return bt(t.shape,t.dtype,n)}catch(n){throw new Error("Failed to decode encoded string bytes into utf-8")}return bt(t.shape,t.dtype,e)}makeOutput(t,e,n){return Vn().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 OQ(t.shape,e)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}};Uu.nextDataId=0;var Nw={};Kt(Nw,{addImpl:()=>Wk,bincountImpl:()=>yd,bincountReduceImpl:()=>mw,bitwiseAndImpl:()=>Uk,castImpl:()=>Gk,ceilImpl:()=>Hk,concatImpl:()=>rp,equalImpl:()=>qk,expImpl:()=>jk,expm1Impl:()=>Yk,floorDivImpl:()=>Jk,floorImpl:()=>Zk,gatherNdImpl:()=>fw,gatherV2Impl:()=>dw,greaterEqualImpl:()=>tT,greaterImpl:()=>Qk,lessEqualImpl:()=>rT,lessImpl:()=>eT,linSpaceImpl:()=>hw,logImpl:()=>nT,maxImpl:()=>gw,maximumImpl:()=>oT,minimumImpl:()=>sT,multiplyImpl:()=>Jh,negImpl:()=>iT,notEqualImpl:()=>aT,prodImpl:()=>lT,raggedGatherImpl:()=>xw,raggedRangeImpl:()=>yw,raggedTensorToTensorImpl:()=>bw,rangeImpl:()=>op,rsqrtImpl:()=>uT,scatterImpl:()=>wi,sigmoidImpl:()=>yO,simpleAbsImpl:()=>Vk,sliceImpl:()=>sp,sparseFillEmptyRowsImpl:()=>ww,sparseReshapeImpl:()=>Iw,sparseSegmentReductionImpl:()=>Id,sqrtImpl:()=>IO,squaredDifferenceImpl:()=>pT,staticRegexReplaceImpl:()=>mT,stridedSliceImpl:()=>Cw,stringNGramsImpl:()=>ip,stringSplitImpl:()=>ap,stringToHashBucketFastImpl:()=>lp,subImpl:()=>dT,tileImpl:()=>vw,topKImpl:()=>Sw,transposeImpl:()=>bd,uniqueImpl:()=>up});function Vk(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=Vk(o),e.makeOutput(n,t.shape,t.dtype)},GF={kernelName:_i,backendName:"cpu",kernelFunc:PQ};function Jt(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 I=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[I],o[E])}return[c,i]}}function Cr(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 WF={kernelName:Op,backendName:"cpu",kernelFunc:Cr};function gd(r,t,e="float32"){if(e==="complex64"){let o=gd(r,t,"float32"),s=gd(r,t,"float32");return Cr({inputs:{real:o,imag:s},backend:r})}let n=y.makeZerosTypedArray(y.sizeFromShape(t),e);return r.makeTensorInfo(t,e,n)}function Yr(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 UF={kernelName:xo,backendName:"cpu",kernelFunc:Yr};function Oo(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 HF={kernelName:jp,backendName:"cpu",kernelFunc:Oo};function Gk(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]=Jt((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 Po(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dtype:s}=n;if(s==="complex64"){if(o.dtype==="complex64")return Yr({inputs:{x:o},backend:e});let c=gd(e,o.shape,o.dtype),p=Po({inputs:{x:o},backend:e,attrs:{dtype:"float32"}}),m=Cr({inputs:{real:p,imag:c},backend:e});return e.disposeIntermediateTensorInfo(c),e.disposeIntermediateTensorInfo(p),m}if(o.dtype==="complex64"){let c=Oo({inputs:{input:o},backend:e}),p=Po({inputs:{x:c},backend:e,attrs:{dtype:s}});return e.disposeIntermediateTensorInfo(c),p}if(!y.hasEncodingLoss(o.dtype,s)){let c=Yr({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]=Gk(i,o.shape,o.dtype,s);return e.makeTensorInfo(a,u,l)}var qF={kernelName:ho,backendName:"cpu",kernelFunc:Po};function ne(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=Po({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=Po({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,I=u.data.get(b.dataId).values,[N,E,A]=e(i.shape,a.shape,f,d,w,I),D=u.makeTensorInfo(A,"float32",N),F=u.makeTensorInfo(A,"float32",E),P=Cr({inputs:{real:D,imag:F},backend:u});return u.disposeIntermediateTensorInfo(l),u.disposeIntermediateTensorInfo(h),u.disposeIntermediateTensorInfo(D),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 xd(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,I=y.computeStrides(e);if(f.length+d.length===0)for(let N=0;NA[G]=0);let D=y.locToIndex(A,x,b),F=E.slice(-w);d.forEach(G=>F[G]=0);let P=y.locToIndex(F,w,I),V=r(h[D*2],h[D*2+1],g[P*2],g[P*2+1]);p[N]=V.real,m[N]=V.imag}return[p,m,a]}}var Wk=Jt((r,t)=>r+t),MQ=xd((r,t,e,n)=>({real:r+e,imag:t+n})),ya=ne(oo,Wk,MQ),KF={kernelName:oo,backendName:"cpu",kernelFunc:ya};function yd(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 mw(r,t,e,n=!1){let o=r.shape[0],s=r.shape[1],i=bt([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}var Uk=Jt((r,t)=>r&t),LQ=ne(nh,Uk),jF={kernelName:nh,backendName:"cpu",kernelFunc:LQ};function _r(r){return(t,e,n)=>{let o=y.getArrayFromDType(e,t.length);for(let s=0;s{let{x:i}=n;tt(i,r);let a=s,u=a.data.get(i.dataId).values,l;if(i.dtype==="string"){if(!Array.isArray(u))throw new Error("String tensor's value was not an instance of Array");l=S.fromUint8ToStringArray(u)}else l=u;let c=e||i.dtype,p=t(l,c,o);return a.makeTensorInfo(i.shape,c,p)}}var Hk=_r(r=>Math.ceil(r)),zQ=$n(es,Hk),XF={kernelName:es,backendName:"cpu",kernelFunc:zQ};function rp(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),Kk=ne(za,qk,null,"bool"),YF={kernelName:za,backendName:"cpu",kernelFunc:Kk};var jk=_r(r=>Math.exp(r)),Xk=$n(ms,jk,"float32"),ZF={kernelName:ms,backendName:"cpu",kernelFunc:Xk};var Yk=_r(r=>Math.expm1(r)),BQ=$n(fs,Yk),JF={kernelName:fs,backendName:"cpu",kernelFunc:BQ};var Zk=_r(r=>Math.floor(r)),VQ=$n(ds,Zk),QF={kernelName:ds,backendName:"cpu",kernelFunc:VQ};var Jk=Jt((r,t)=>Math.floor(r/t)),GQ=ne(hs,Jk,null,"int32"),tO={kernelName:hs,backendName:"cpu",kernelFunc:GQ};function fw(r,t,e,n,o,s,i,a,u){let l=bt([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),WQ=ne(Ga,Qk,null,"bool"),eO={kernelName:Ga,backendName:"cpu",kernelFunc:WQ};var tT=Jt((r,t)=>r>=t?1:0),UQ=ne(xs,tT,null,"bool"),rO={kernelName:xs,backendName:"cpu",kernelFunc:UQ};var eT=Jt((r,t)=>rr<=t?1:0),qQ=ne(Ua,rT,null,"bool"),oO={kernelName:Ua,backendName:"cpu",kernelFunc:qQ};function hw(r,t,e){let n=(t-r)/(e-1),o=y.makeZerosTypedArray(e,"float32");o[0]=r;for(let s=1;sMath.log(r)),KQ=$n(Cs,nT),sO={kernelName:Cs,backendName:"cpu",kernelFunc:KQ};function gw(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 oT=Jt((r,t)=>Math.max(r,t)),jQ=ne(ks,oT),iO={kernelName:ks,backendName:"cpu",kernelFunc:jQ};var sT=Jt((r,t)=>Math.min(r,t)),XQ=ne(As,sT),aO={kernelName:As,backendName:"cpu",kernelFunc:XQ};var Jh=Jt((r,t)=>r*t),YQ=xd((r,t,e,n)=>({real:r*e-t*n,imag:r*n+t*e})),np=ne($s,Jh,YQ),lO={kernelName:$s,backendName:"cpu",kernelFunc:np};function iT(r,t,e){let n=y.createScalarValue(-1,e);return Jh([],t,n,r,e)}function ZQ(r){let{inputs:t,backend:e}=r,{x:n}=t;tt(n,"neg");let o=e.data.get(n.dataId).values,[s,i]=iT(o,n.shape,n.dtype);return e.makeTensorInfo(i,n.dtype,s)}var uO={kernelName:Mi,backendName:"cpu",kernelFunc:ZQ};var aT=Jt((r,t)=>r!==t?1:0),JQ=ne(Ja,aT,null,"bool"),cO={kernelName:Ja,backendName:"cpu",kernelFunc:JQ};function bd(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 mO={kernelName:Ms,backendName:"cpu",kernelFunc:QQ};function ttt(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 ett(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 rtt(r,t,e,n){let o=[],s=0,i=t.length-1+e.length,a=new Array(i).fill(null).map(()=>[0]);ett(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 fO(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)I=0;else if(I=Math.ceil(Math.abs((b-x)/w)),I>dO)throw new Error(`Requires ((limit - start) / delta) <= ${dO}`);m[g+1]=m[g]+I}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 Mo.VALUE_ROWIDS:return this.calculateOutputIndexValueRowID(s,e,n,o);case Mo.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: ${Mo[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 Mo.FIRST_DIM_SIZE:return t[0];case Mo.VALUE_ROWIDS:throw new Error("Cannot handle VALUE_ROWIDS in first dimension.");case Mo.ROW_SPLITS:return this.rowPartitionValuesShapes[0][0]-1;default:throw new Error(`Cannot handle type ${Mo[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=gO(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=oa(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);hO(g,c,u),++f}h<0?(p=d+1,m=f):(p=d,m=f,f=m+1)}}};function hO(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 bw(r,t,e,n,o,s,i,a,u,l){return new wd(r,t,e,n,o,s,i,a,u,l).compute()}function op(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)),itt=$n(Hs,uT),xO={kernelName:Hs,backendName:"cpu",kernelFunc:itt};function wi(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 bt(e,t.dtype);let f=u instanceof le?u:bt(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))),cT=At(Xs,r=>1/(1+Math.exp(-r))),bO={kernelName:Xs,backendName:"cpu",kernelFunc:cT};function sp(r,t,e,n,o){let s=ze.isSliceContinous(n,t,e),i=y.sizeFromShape(e),a=y.computeStrides(n);if(s){let p=ze.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=bt(n,o,u),c=bt(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 Lo(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,size:i}=n;tt(o,"slice");let[a,u]=ze.parseSliceParams(o,s,i);ze.assertParamsValid(o,a,u);let l=e.data.get(o.dataId).values,c=sp(l,a,u,o.shape,o.dtype);return e.makeTensorInfo(u,o.dtype,c)}var wO={kernelName:Gi,backendName:"cpu",kernelFunc:Lo};function ww(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,I)=>w*I,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 I=h;I=u[0])throw new Error(S.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(I,n[I],u[0]));for(let E=0;Ea)break}return xMath.sqrt(r)),att=At(Zs,r=>Math.sqrt(r)),CO={kernelName:Zs,backendName:"cpu",kernelFunc:att};var pT=Jt((r,t)=>{let e=r-t;return e*e}),ltt=ne(ti,pT),vO={kernelName:ti,backendName:"cpu",kernelFunc:ltt};var mT=_r((r,t)=>{let{pattern:e,replaceGlobal:n,rewrite:o}=t;return r.replace(new RegExp(e,n?"g":""),o)}),utt=$n(sc,mT),SO={kernelName:sc,backendName:"cpu",kernelFunc:utt};function Cw(r,t,e,n){let o=bt(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 ip(r,t,e,n,o,s,i,a){return new fT(e,n,o,s,i,a).compute(r,t)}function ctt(r,t,e,n){if(!r.length)return;if(t.length===0){for(let s=0;sr-t),ptt=xd((r,t,e,n)=>({real:r-e,imag:t-n})),Qh=ne(ei,dT,ptt),NO={kernelName:ei,backendName:"cpu",kernelFunc:Qh};function vw(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 kO(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));kO(r,t,m,f)}let o=r[t],s=e,i=n;for(y.swap(r,e,t),tg(r[n],o)>0&&y.swap(r,e,n);s0;)i=i-1}tg(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 Sw(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 Uu,1);var hT=At(ps,r=>r>=0?r:Math.exp(r)-1),_O={kernelName:ps,backendName:"cpu",kernelFunc:hT};function gT(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 xT(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]=mtt(n.shape,o.shape,s,i,"float32");return e.makeTensorInfo(u,"float32",a)}var AO={kernelName:Ps,backendName:"cpu",kernelFunc:xT};var yT=At(zs,r=>Math.max(0,r)),DO={kernelName:zs,backendName:"cpu",kernelFunc:yT};var bT=At(Gs,r=>Math.min(Math.max(0,r),6)),$O={kernelName:Gs,backendName:"cpu",kernelFunc:bT};function cp(r,t,e,n,o){if(e==="linear")return Yr({inputs:{x:t},backend:r});if(e==="relu")return yT({inputs:{x:t},backend:r});if(e==="elu")return hT({inputs:{x:t},backend:r});if(e==="relu6")return bT({inputs:{x:t},backend:r});if(e==="prelu")return xT({inputs:{x:t,alpha:n},backend:r});if(e==="leakyrelu")return gT({inputs:{x:t},backend:r,attrs:{alpha:o}});if(e==="sigmoid")return cT({inputs:{x:t},backend:r});throw new Error(`Activation ${e} has not been implemented for the CPU backend.`)}function Qt(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 RO={kernelName:Bi,backendName:"cpu",kernelFunc:Qt};function wT(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=Ur.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 I=i?[g,c,m]:[g,m,c],N=a?[x,f,p]:[x,p,f],E=Qt({inputs:{x:o},backend:e,attrs:{shape:I}}),A=Qt({inputs:{x:s},backend:e,attrs:{shape:N}}),D=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),[K,X,Z]=i?[q[0],1,q[1]]:[q[0],q[1],1],[et,nt,st]=a?[1,H[1],H[0]]:[H[1],1,H[0]],at=F*P,ot=bt([V,F,P],E.dtype),it=ot.values,mt=e.blockSize;for(let gt=0;gtMath.acos(r)),PO={kernelName:Ho,backendName:"cpu",kernelFunc:dtt};var htt=At(qo,r=>Math.acosh(r)),MO={kernelName:qo,backendName:"cpu",kernelFunc:htt};function gtt(r){let{inputs:t,backend:e}=r,n=t;tt(t,"addN");let o=n.map(a=>e.data.get(a.dataId).values),s=bt(n[0].shape,n[0].dtype),i=s.values;for(let a=0;ab&&(b=N,w=I)}f[g]=w}return l.forEach(g=>e.disposeIntermediateTensorInfo(g)),e.makeTensorInfo(c,"int32",f)}var VO={kernelName:Ei,backendName:"cpu",kernelFunc:btt};function wtt(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=Ge({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 GO={kernelName:Ai,backendName:"cpu",kernelFunc:wtt};var Itt=At(jo,r=>Math.asin(r)),WO={kernelName:jo,backendName:"cpu",kernelFunc:Itt};var Ctt=At(Xo,r=>Math.asinh(r)),UO={kernelName:Xo,backendName:"cpu",kernelFunc:Ctt};var vtt=At(Yo,r=>Math.atan(r)),HO={kernelName:Yo,backendName:"cpu",kernelFunc:vtt};var Stt=Jt((r,t)=>Math.atan2(r,t)),Ntt=ne(Jo,Stt),qO={kernelName:Jo,backendName:"cpu",kernelFunc:Ntt};var ktt=At(Zo,r=>Math.atanh(r)),KO={kernelName:Zo,backendName:"cpu",kernelFunc:ktt};function Cd(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=bt(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 I=0;IX?X=mt:s==="avg"&&(Z+=mt,et++)}if(isNaN(X))break}let nt=G+W*w+A;g[nt]=s==="avg"?Z/et:X}}}return h}function kw(r,t,e,n,o=!1,s=!1){let i=bt(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=bt(t,e,r);for(let g=0;gP&&(P=K,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 Tw(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=bt(o.outShape,e),I=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],D=o.outShape[4];for(let F=0;FRt?Rt=De:s==="avg"&&(Dt+=De,Ht++),isNaN(Rt))break}if(isNaN(Rt))break}if(isNaN(Rt))break}let qt=It+G;I[qt]=s==="avg"?Dt/Math.max(Ht,1):Rt}}}}return w}function jO(r,t){let e=bt(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=st,q=K*c*p+Z*c+nt)}}}e.set(q,h,x,N,F,g)}}}return e}function Ttt(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=Yr({inputs:{x:o},backend:e});else{let m=e.data.get(o.dataId).values,f=y.computeStrides(o.shape),d=Cd(m,o.shape,o.dtype,f,c,"avg");p=e.makeTensorInfo(c.outShape,o.dtype,d.values)}return p}var XO={kernelName:Qo,backendName:"cpu",kernelFunc:Ttt};function _tt(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=Tw(p,o.shape,o.dtype,y.computeStrides(o.shape),c,"avg");return e.makeTensorInfo(m.shape,"float32",m.values)}var YO={kernelName:Di,backendName:"cpu",kernelFunc:_tt};function Ett(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,I=c.effectiveFilterDepth,N=c.effectiveFilterHeight,E=c.effectiveFilterWidth,A=I-1-c.padInfo.front,D=E-1-c.padInfo.left,F=N-1-c.padInfo.top,P=bt(s.shape,"float32"),V=1/(d*h*g),G=e.bufferSync(o);for(let W=0;W=c.outDepth||Math.floor(ot)!==ot))for(let it=0;it=c.outHeight||Math.floor(mt)!==mt))for(let gt=0;gt=c.outWidth||Math.floor(It)!==It)continue;let Rt=G.get(W,ot,mt,It,q);st+=Rt}}}P.set(st*V,W,H,K,X,q)}return e.makeTensorInfo(P.shape,P.dtype,P.values)}var ZO={kernelName:Xl,backendName:"cpu",kernelFunc:Ett};function Att(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,I=x-1-c.padInfo.top,N=bt(i.shape,"float32"),E=1/(f*d),A=e.data.get(o.dataId).values,D=bt(o.shape,"float32",A);for(let F=0;F=c.outHeight||Math.floor(X)!==X))for(let Z=0;Z=c.outWidth||Math.floor(et)!==et)continue;let nt=D.get(F,X,et,P);H+=nt}}N.set(H*E,F,V,G,P)}return e.makeTensorInfo(N.shape,N.dtype,N.values)}var JO={kernelName:Fp,backendName:"cpu",kernelFunc:Att};function Dtt(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,I=0,N=0,E=0,A=0;for(let D=0;D=g&&(I=0),N>=w&&(N=0),E>=x&&(E=0),A>=b&&(A=0);return e.makeTensorInfo(o.shape,o.dtype,h)}var QO={kernelName:gs,backendName:"cpu",kernelFunc:Dtt};function $tt(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=Qt({inputs:{x:o},backend:e,attrs:{shape:u}}),d=Ge({inputs:{x:f},backend:e,attrs:{perm:l}}),h=Qt({inputs:{x:d},backend:e,attrs:{shape:c}}),g=Lo({inputs:{x:h},backend:e,attrs:{begin:p,size:m}});return e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(h),g}var tP={kernelName:$i,backendName:"cpu",kernelFunc:$tt};function Rtt(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=yd(a,u,s.dtype,s.shape,i);return e.makeTensorInfo([i],s.dtype,l)}var eP={kernelName:Da,backendName:"cpu",kernelFunc:Rtt};function Ftt(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 rP={kernelName:Yl,backendName:"cpu",kernelFunc:Ftt};var Ott=At(go,(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 Yr({inputs:{x:u[0]},backend:e});if(u[0].dtype==="complex64"){let h=u.map(I=>Oo({inputs:{input:I},backend:e})),g=u.map(I=>ba({inputs:{input:I},backend:e})),x=Hu({inputs:h,backend:e,attrs:{axis:s}}),b=Hu({inputs:g,backend:e,attrs:{axis:s}}),w=Cr({inputs:{real:x,imag:b},backend:e});return h.forEach(I=>e.disposeIntermediateTensorInfo(I)),g.forEach(I=>e.disposeIntermediateTensorInfo(I)),e.disposeIntermediateTensorInfo(x),e.disposeIntermediateTensorInfo(b),w}let l=u.map(h=>{let x=[-1,y.sizeFromShape(h.shape.slice(s))];return Qt({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=rp(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 iP={kernelName:Ri,backendName:"cpu",kernelFunc:Hu};function IT(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",I=new le(m.outShape,o.dtype),N=y.computeStrides(o.shape),E=y.computeStrides(s.shape),A=N[0],D=w?N[1]:N[2],F=w?N[2]:1,P=w?1:N[1],V=I.strides[0],G=w?I.strides[1]:I.strides[2],W=w?I.strides[2]:1,q=w?1:I.strides[1],H=e.data.get(o.dataId).values,K=e.data.get(s.dataId).values,X=I.values;for(let Z=0;Z=m.inHeight)continue;let gt=it*E[0],It=et+mt*D;for(let Rt=0;Rt=m.inWidth)continue;let ge=gt+qt*E[1],ee=It+ce*F,xe=ge;for(let fe=0;fe=l.inDepth)continue;let Z=K*F[0],et=V+X*D[1];for(let nt=0;nt=l.inHeight)continue;let mt=Z+ot*F[1],gt=et+it*D[2];for(let It=0;It=l.inWidth)continue;let ce=mt+Ht*F[2],ge=gt+qt*l.inChannels,ee=ce;for(let xe=0;xeMath.cos(r)),fP={kernelName:ss,backendName:"cpu",kernelFunc:Gtt};var Wtt=At(is,r=>Math.cosh(r)),dP={kernelName:is,backendName:"cpu",kernelFunc:Wtt};function Utt(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=bt([d,h,g,f],"float32"),b=e.data.get(s.dataId).values,w=e.data.get(i.dataId).values,I=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 K=0;K1?F*(p-1)+K*q:.5*(F+V)*(p-1);if(X<0||X>p-1){for(let Z=0;Z1?P*(m-1)+st*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,I=b.top,N=f.outChannels/f.inChannels,E=new le(f.outShape,o.dtype),A=e.data.get(o.dataId).values,D=e.data.get(s.dataId).values,F=E.values;for(let P=0;P=f.inHeight)continue;let Z=K*p[0],et=V+X*c[1];for(let nt=0;nt=f.inWidth)continue;let mt=Z+ot*p[1],gt=et+it*f.inChannels,It=st,Rt=mt;for(let Dt=0;Dt{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:I,strideWidth:N,filterHeight:E,filterWidth:A,dilationHeight:D,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&&it=0&>st&&(st=Dt)}}}let at=y.locToIndex([H,K,Z,nt],G,y.computeStrides(P));W[at]=st}}}return{dataId:u.write(y.toTypedArray(W,n.dtype),P,n.dtype),shape:P,dtype:n.dtype}}};var NP={kernelName:eu,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:I,filterHeight:N,filterWidth:E,dilationHeight:A,dilationWidth:D,outShape:F}=S.computeDilation2DInfo(n.shape,o.shape,i,a,"NHWC",u);y.assert(s.rank===F.length,()=>`Error in ${eu}, 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&&ot=0&&mtet&&(et=gt,nt=at,st=it)}}}V[nt][st][Z]+=P[W][q][K][Z]}}}return{dataId:l.write(y.toTypedArray(V,n.dtype),o.shape,o.dtype),shape:o.shape,dtype:o.dtype}}};var kP={kernelName:tu,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:I,filterHeight:N,filterWidth:E,dilationHeight:A,dilationWidth:D,outShape:F}=S.computeDilation2DInfo(n.shape,o.shape,i,a,"NHWC",u);y.assert(s.rank===F.length,()=>`Error in ${tu}, 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&&ot=0&&mtet&&(et=gt,nt=ot,st=mt)}}}V[W][nt][st][Z]+=P[W][q][K][Z]}}}return{dataId:l.write(y.toTypedArray(V,n.dtype),n.shape,n.dtype),shape:n.shape,dtype:n.dtype}}};function Ml(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=Po({inputs:{x:o},backend:e,attrs:{dtype:"int32"}}):a=Yr({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=Ge({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=gd(e,f,h),x=y.sizeFromShape(d),b=e.data.get(g.dataId).values,w=e.data.get(m.dataId).values;for(let I=0;I=0&&(m=Ml({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 _P={kernelName:zp,backendName:"cpu",kernelFunc:Jtt};function Qtt(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=0?s[u]=a[u]:s[u]=a[u]*(l+1)}return e.makeTensorInfo(o.shape,"float32",s)}var EP={kernelName:Ma,backendName:"cpu",kernelFunc:Qtt};var tet=S.ERF_P,eet=S.ERF_A1,ret=S.ERF_A2,net=S.ERF_A3,oet=S.ERF_A4,set=S.ERF_A5,iet=At(La,r=>{let t=Math.sign(r),e=Math.abs(r),n=1/(1+tet*e);return t*(1-((((set*n+oet)*n+net)*n+ret)*n+eet)*n*Math.exp(-e*e))}),AP={kernelName:La,backendName:"cpu",kernelFunc:iet};function vd(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),Qt({inputs:{x:o},backend:e,attrs:{shape:a}})}var DP={kernelName:Fi,backendName:"cpu",kernelFunc:vd};var aet=Jt((r,t)=>r/t),eg=ne(cs,aet),rg={kernelName:cs,backendName:"cpu",kernelFunc:eg};function _w(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&&w=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=Qt({inputs:{x:o},backend:e,attrs:{shape:[f.batchSize,f.outerSize,f.dimSize,f.sliceSize]}}),h=Qt({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=dw(b,x,g);return e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(h),e.makeTensorInfo(f.outputShape,w.dtype,w.values)}var LP={kernelName:Oi,backendName:"cpu",kernelFunc:xet};function yet(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=Qt({inputs:{x:n},backend:e,attrs:{shape:[i,s]}}),u=_w(a,!0,e),l=Qt({inputs:{x:u},backend:e,attrs:{shape:n.shape}});return e.disposeIntermediateTensorInfo(a),e.disposeIntermediateTensorInfo(u),l}var zP={kernelName:Vp,backendName:"cpu",kernelFunc:yet};var bet=At(ys,r=>Number.isFinite(r)?1:0,"bool"),BP={kernelName:ys,backendName:"cpu",kernelFunc:bet};var wet=At(bs,r=>Math.abs(r)===1/0?1:0,"bool"),VP={kernelName:bs,backendName:"cpu",kernelFunc:wet};var Iet=At(ws,r=>Number.isNaN(r)?1:0,"bool"),GP={kernelName:ws,backendName:"cpu",kernelFunc:Iet};function Cet(r){let{backend:t,attrs:e}=r,{start:n,stop:o,num:s}=e,i=hw(n,o,s);return t.makeTensorInfo([i.length],"float32",i)}var WP={kernelName:Ha,backendName:"cpu",kernelFunc:Cet};var vet=At(vs,r=>Math.log1p(r)),UP={kernelName:vs,backendName:"cpu",kernelFunc:vet};var Net=Jt((r,t)=>r&&t),ket=ne(qa,Net,null,"bool"),HP={kernelName:qa,backendName:"cpu",kernelFunc:ket};var Tet=At(Ka,r=>r?0:1,"bool"),qP={kernelName:Ka,backendName:"cpu",kernelFunc:Tet};var _et=Jt((r,t)=>r||t),Eet=ne(ja,_et,null,"bool"),KP={kernelName:ja,backendName:"cpu",kernelFunc:Eet};function Aet(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 I=p[x];w+=I*I}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=Yr({inputs:{x:o},backend:e});else{let m=e.data.get(o.dataId).values,f=y.computeStrides(o.shape),d=Cd(m,o.shape,o.dtype,f,c,"max");p=e.makeTensorInfo(c.outShape,o.dtype,d.values)}return p}var ZP={kernelName:Ts,backendName:"cpu",kernelFunc:$et};function Ret(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=Tw(p,o.shape,o.dtype,y.computeStrides(o.shape),c,"max");return e.makeTensorInfo(m.shape,"float32",m.values)}var JP={kernelName:Pi,backendName:"cpu",kernelFunc:Ret};function Fet(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=jO(p,c),f=c.strideDepth,d=c.strideHeight,h=c.strideWidth,g=c.dilationDepth,x=c.dilationHeight,b=c.dilationWidth,w=c.effectiveFilterDepth,I=c.effectiveFilterHeight,N=c.effectiveFilterWidth,E=w-1-c.padInfo.front,A=N-1-c.padInfo.left,D=I-1-c.padInfo.top,F=bt(s.shape,"float32"),P=e.bufferSync(o);for(let V=0;V=c.outDepth||Math.floor(st)!==st))for(let at=0;at=c.outHeight||Math.floor(ot)!==ot))for(let it=0;it=c.outWidth||Math.floor(mt)!==mt)continue;let gt=w*I*N-1-m.get(V,st,ot,mt,G),It=nt*I*N+at*N+it,Rt=gt===It?1:0;if(Rt===0)continue;let Dt=P.get(V,st,ot,mt,G);et+=Dt*Rt}}}F.set(et,V,W,q,H,G)}return e.makeTensorInfo(F.shape,F.dtype,F.values)}var QP={kernelName:nu,backendName:"cpu",kernelFunc:Fet};function Oet(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=bt(m.outShape,a.dtype,kw(f,a.shape,a.dtype,m).values),h=m.strideHeight,g=m.strideWidth,x=m.dilationHeight,b=m.dilationWidth,w=m.effectiveFilterHeight,I=m.effectiveFilterWidth,N=I-1-m.padInfo.left,E=w-1-m.padInfo.top,A=bt(a.shape,"float32"),D=e.data.get(o.dataId).values,F=bt(o.shape,"float32",D);for(let P=0;P=m.outHeight||Math.floor(Z)!==Z))for(let et=0;et=m.outWidth||Math.floor(nt)!==nt)continue;let st=w*I-1-d.get(P,Z,nt,V),at=X*I+et,ot=st===at?1:0;if(ot===0)continue;let it=F.get(P,Z,nt,V);K+=it*ot}}A.set(K,P,G,W,V)}return e.makeTensorInfo(A.shape,A.dtype,A.values)}var tM={kernelName:Wp,backendName:"cpu",kernelFunc:Oet};function eM(r,t,e,n,o){let s=y.computeStrides(t),i=Cd(r,t,e,s,o,"max"),a=kw(r,t,e,o,!0,n);return[i.values,a.values]}var rM={kernelName:Up,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]=eM(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 Pet(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=Po({inputs:{x:o},backend:e,attrs:{dtype:"float32"}});p.push(f);let d=eg({inputs:{a:f,b:m},backend:e});p.push(d);let h=Ml({inputs:{x:d},backend:e,attrs:{axis:s,keepDims:i}});return p.forEach(g=>e.disposeIntermediateTensorInfo(g)),h}var nM={kernelName:_s,backendName:"cpu",kernelFunc:Pet};function Met(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=Ge({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[I]+w[1]),u=s.map(w=>w[0]),l=s.map((w,I)=>w[0]+o.shape[I]),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]&&(I[E]=(l[E]-1)*2-I[E]+c);I=I.map((E,A)=>E-u[A]);let N=y.locToIndex(I,m,f);x[w]=p[N]}return{dataId:e.write(x,a,o.dtype),shape:a,dtype:o.dtype}}var sM={kernelName:Ds,backendName:"cpu",kernelFunc:Let};var zet=Jt((r,t)=>{let e=r%t;return r<0&&t<0||r>=0&&t>=0?e:(e+t)%t}),Bet=ne(Ya,zet),iM={kernelName:Ya,backendName:"cpu",kernelFunc:Bet};var lM=Kl(bh());function NT(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=ST({inputs:{x:o},backend:e,attrs:{reductionIndices:u,keepDims:!1}}),c=S.expandShapeToKeepDim(l.shape,u),p=Qt({inputs:{x:l},backend:e,attrs:{shape:c}}),m=Qh({inputs:{a:o,b:p},backend:e}),f=Xk({inputs:{x:m},backend:e}),d=Ml({inputs:{x:f},backend:e,attrs:{axis:u,keepDims:!1}}),h=Qt({inputs:{x:d},backend:e,attrs:{shape:c}}),g=eg({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 aM={kernelName:Qs,backendName:"cpu",kernelFunc:NT};function Vet(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:NT({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=vd({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=Hu({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeIntermediateTensorInfo(c)),l}var xM={kernelName:zi,backendName:"cpu",kernelFunc:kT};function Xet(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(I,d,h);g[N]=l[b]}return{dataId:e.write(g,a,o.dtype),shape:a,dtype:o.dtype}}var Ew={kernelName:Fs,backendName:"cpu",kernelFunc:Xet};var Yet=Jt((r,t)=>Math.pow(r,t)),Zet=ne(Os,Yet),yM={kernelName:Os,backendName:"cpu",kernelFunc:Zet};function Jet(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]=xw(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 bM={kernelName:Hp,backendName:"cpu",kernelFunc:Jet};function Qet(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]=yw(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 wM={kernelName:qp,backendName:"cpu",kernelFunc:Qet};function trt(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]=bw(l,o.shape,c,s.shape,s.dtype,p,i.shape,m,f,u);return e.makeTensorInfo(d,s.dtype,h)}var IM={kernelName:Kp,backendName:"cpu",kernelFunc:trt};function ert(r){let{backend:t,attrs:e}=r,{start:n,stop:o,dtype:s,step:i}=e,a=op(n,o,i,s);return t.makeTensorInfo([a.length],s,a)}var CM={kernelName:ou,backendName:"cpu",kernelFunc:ert};var rrt=At(Ls,r=>1/r),vM={kernelName:Ls,backendName:"cpu",kernelFunc:rrt};function nrt(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,I=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,I=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],I=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],I=x[1]/b[1],N=1/w,E=1/I,A=Math.ceil(N)*2+2,D=Math.ceil(E)*2+2;for(let F=0;F=f)continue;let ot=P+at*u[1],it=at*w,mt=Math.min(c-1,i?Math.round(it):Math.floor(it));if(V===mt)for(let gt=0;gt=d)continue;let Rt=ot+It*u[2],Dt=It*I,Ht=Math.min(p-1,i?Math.round(Dt):Math.floor(Dt));H===Ht&&(nt+=g[Rt+et])}}h[K+et]=nt}}}}return e.makeTensorInfo(o.shape,o.dtype,h)}var TM={kernelName:rl,backendName:"cpu",kernelFunc:irt};function art(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 Yr({inputs:{x:o},backend:e});let u=new le(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 _M={kernelName:Ws,backendName:"cpu",kernelFunc:art};var EM={kernelName:fl,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 I=0;I=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}),AM={kernelName:Us,backendName:"cpu",kernelFunc:lrt};function urt(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=wi(f,d,i,p,l,u,a,c,0,m);return e.makeTensorInfo(i,h.dtype,h.values)}var DM={kernelName:ol,backendName:"cpu",kernelFunc:urt};function crt(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?hrt*r:drt*(Math.exp(r)-1)),OM={kernelName:qs,backendName:"cpu",kernelFunc:grt};var xrt=At(js,r=>r<0?-1:r>0?1:0),PM={kernelName:js,backendName:"cpu",kernelFunc:xrt};var yrt=At(Ks,r=>Math.sin(r)),MM={kernelName:Ks,backendName:"cpu",kernelFunc:yrt};var brt=At(al,r=>Math.sinh(r)),LM={kernelName:al,backendName:"cpu",kernelFunc:brt};var wrt=11920928955078125e-23,zM=Math.log(wrt)+2,Irt=At(Ys,r=>{let t=r>-zM,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 y.convertBackendValuesAndArrayBuffer(this.data.get(t).values,e)}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 Wn().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 itt(t.shape,e)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}};Xu.nextDataId=0;var Nw={};Kt(Nw,{addImpl:()=>Yk,bincountImpl:()=>bd,bincountReduceImpl:()=>mw,bitwiseAndImpl:()=>Zk,castImpl:()=>Xk,ceilImpl:()=>Jk,concatImpl:()=>ap,equalImpl:()=>Qk,expImpl:()=>eT,expm1Impl:()=>nT,floorDivImpl:()=>sT,floorImpl:()=>oT,gatherNdImpl:()=>fw,gatherV2Impl:()=>dw,greaterEqualImpl:()=>aT,greaterImpl:()=>iT,lessEqualImpl:()=>uT,lessImpl:()=>lT,linSpaceImpl:()=>hw,logImpl:()=>cT,maxImpl:()=>gw,maximumImpl:()=>pT,minimumImpl:()=>mT,multiplyImpl:()=>Jh,negImpl:()=>fT,notEqualImpl:()=>dT,prodImpl:()=>hT,raggedGatherImpl:()=>xw,raggedRangeImpl:()=>yw,raggedTensorToTensorImpl:()=>bw,rangeImpl:()=>up,rsqrtImpl:()=>gT,scatterImpl:()=>Si,sigmoidImpl:()=>_O,simpleAbsImpl:()=>jk,sliceImpl:()=>cp,sparseFillEmptyRowsImpl:()=>ww,sparseReshapeImpl:()=>Iw,sparseSegmentReductionImpl:()=>Cd,sqrtImpl:()=>DO,squaredDifferenceImpl:()=>yT,staticRegexReplaceImpl:()=>bT,stridedSliceImpl:()=>Cw,stringNGramsImpl:()=>pp,stringSplitImpl:()=>mp,stringToHashBucketFastImpl:()=>fp,subImpl:()=>IT,tileImpl:()=>vw,topKImpl:()=>Sw,transposeImpl:()=>wd,uniqueImpl:()=>dp});function jk(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=jk(o),e.makeOutput(n,t.shape,t.dtype)},JF={kernelName:$i,backendName:"cpu",kernelFunc:att};function Jt(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 I=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[I],o[E])}return[c,i]}}function Cr(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 QF={kernelName:zp,backendName:"cpu",kernelFunc:Cr};function xd(r,t,e="float32"){if(e==="complex64"){let o=xd(r,t,"float32"),s=xd(r,t,"float32");return Cr({inputs:{real:o,imag:s},backend:r})}let n=y.makeZerosTypedArray(y.sizeFromShape(t),e);return r.makeTensorInfo(t,e,n)}function Zr(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 tO={kernelName:bo,backendName:"cpu",kernelFunc:Zr};function Mo(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 eO={kernelName:Yp,backendName:"cpu",kernelFunc:Mo};function Xk(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]=Jt((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 Lo(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dtype:s}=n;if(s==="complex64"){if(o.dtype==="complex64")return Zr({inputs:{x:o},backend:e});let c=xd(e,o.shape,o.dtype),p=Lo({inputs:{x:o},backend:e,attrs:{dtype:"float32"}}),m=Cr({inputs:{real:p,imag:c},backend:e});return e.disposeIntermediateTensorInfo(c),e.disposeIntermediateTensorInfo(p),m}if(o.dtype==="complex64"){let c=Mo({inputs:{input:o},backend:e}),p=Lo({inputs:{x:c},backend:e,attrs:{dtype:s}});return e.disposeIntermediateTensorInfo(c),p}if(!y.hasEncodingLoss(o.dtype,s)){let c=Zr({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]=Xk(i,o.shape,o.dtype,s);return e.makeTensorInfo(a,u,l)}var rO={kernelName:xo,backendName:"cpu",kernelFunc:Lo};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"?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=Lo({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=Lo({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,I=u.data.get(b.dataId).values,[N,E,A]=e(i.shape,a.shape,f,d,w,I),D=u.makeTensorInfo(A,"float32",N),F=u.makeTensorInfo(A,"float32",E),P=Cr({inputs:{real:D,imag:F},backend:u});return u.disposeIntermediateTensorInfo(l),u.disposeIntermediateTensorInfo(h),u.disposeIntermediateTensorInfo(D),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 yd(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,I=y.computeStrides(e);if(f.length+d.length===0)for(let N=0;NA[G]=0);let D=y.locToIndex(A,x,b),F=E.slice(-w);d.forEach(G=>F[G]=0);let P=y.locToIndex(F,w,I),V=r(h[D*2],h[D*2+1],g[P*2],g[P*2+1]);p[N]=V.real,m[N]=V.imag}return[p,m,a]}}var Yk=Jt((r,t)=>r+t),ltt=yd((r,t,e,n)=>({real:r+e,imag:t+n})),Ca=oe(ao,Yk,ltt),nO={kernelName:ao,backendName:"cpu",kernelFunc:Ca};function bd(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 mw(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}var Zk=Jt((r,t)=>r&t),utt=oe(Pa,Zk),oO={kernelName:Pa,backendName:"cpu",kernelFunc:utt};function Er(r){return(t,e,n)=>{let o=y.getArrayFromDType(e,t.length);for(let s=0;s{let{x:i}=n;tt(i,r);let a=s,u=a.data.get(i.dataId).values,l;if(i.dtype==="string"){if(!Array.isArray(u))throw new Error("String tensor's value was not an instance of Array");l=S.fromUint8ToStringArray(u)}else l=u;let c=e||i.dtype,p=t(l,c,o);return a.makeTensorInfo(i.shape,c,p)}}var Jk=Er(r=>Math.ceil(r)),ctt=Rn(rs,Jk),sO={kernelName:rs,backendName:"cpu",kernelFunc:ctt};function ap(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),tT=oe(Wa,Qk,null,"bool"),iO={kernelName:Wa,backendName:"cpu",kernelFunc:tT};var eT=Er(r=>Math.exp(r)),rT=Rn(ds,eT,"float32"),aO={kernelName:ds,backendName:"cpu",kernelFunc:rT};var nT=Er(r=>Math.expm1(r)),ptt=Rn(hs,nT),lO={kernelName:hs,backendName:"cpu",kernelFunc:ptt};var oT=Er(r=>Math.floor(r)),mtt=Rn(gs,oT),uO={kernelName:gs,backendName:"cpu",kernelFunc:mtt};var sT=Jt((r,t)=>Math.floor(r/t)),ftt=oe(xs,sT,null,"int32"),cO={kernelName:xs,backendName:"cpu",kernelFunc:ftt};function fw(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),dtt=oe(qa,iT,null,"bool"),pO={kernelName:qa,backendName:"cpu",kernelFunc:dtt};var aT=Jt((r,t)=>r>=t?1:0),htt=oe(bs,aT,null,"bool"),mO={kernelName:bs,backendName:"cpu",kernelFunc:htt};var lT=Jt((r,t)=>rr<=t?1:0),xtt=oe(ja,uT,null,"bool"),dO={kernelName:ja,backendName:"cpu",kernelFunc:xtt};function hw(r,t,e){let n=(t-r)/(e-1),o=y.makeZerosTypedArray(e,"float32");o[0]=r;for(let s=1;sMath.log(r)),ytt=Rn(Ss,cT),hO={kernelName:Ss,backendName:"cpu",kernelFunc:ytt};function gw(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 pT=Jt((r,t)=>Math.max(r,t)),btt=oe(_s,pT),gO={kernelName:_s,backendName:"cpu",kernelFunc:btt};var mT=Jt((r,t)=>Math.min(r,t)),wtt=oe($s,mT),xO={kernelName:$s,backendName:"cpu",kernelFunc:wtt};var Jh=Jt((r,t)=>r*t),Itt=yd((r,t,e,n)=>({real:r*e-t*n,imag:r*n+t*e})),lp=oe(Os,Jh,Itt),yO={kernelName:Os,backendName:"cpu",kernelFunc:lp};function fT(r,t,e){let n=y.createScalarValue(-1,e);return Jh([],t,n,r,e)}function Ctt(r){let{inputs:t,backend:e}=r,{x:n}=t;tt(n,"neg");let o=e.data.get(n.dataId).values,[s,i]=fT(o,n.shape,n.dtype);return e.makeTensorInfo(i,n.dtype,s)}var bO={kernelName:Vi,backendName:"cpu",kernelFunc:Ctt};var dT=Jt((r,t)=>r!==t?1:0),vtt=oe(el,dT,null,"bool"),wO={kernelName:el,backendName:"cpu",kernelFunc:vtt};function wd(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 CO={kernelName:Bs,backendName:"cpu",kernelFunc:Stt};function Ntt(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 ktt(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 Ttt(r,t,e,n){let o=[],s=0,i=t.length-1+e.length,a=new Array(i).fill(null).map(()=>[0]);ktt(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 vO(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)I=0;else if(I=Math.ceil(Math.abs((b-x)/w)),I>SO)throw new Error(`Requires ((limit - start) / delta) <= ${SO}`);m[g+1]=m[g]+I}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 zo.VALUE_ROWIDS:return this.calculateOutputIndexValueRowID(s,e,n,o);case zo.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: ${zo[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 zo.FIRST_DIM_SIZE:return t[0];case zo.VALUE_ROWIDS:throw new Error("Cannot handle VALUE_ROWIDS in first dimension.");case zo.ROW_SPLITS:return this.rowPartitionValuesShapes[0][0]-1;default:throw new Error(`Cannot handle type ${zo[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=kO(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=la(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);NO(g,c,u),++f}h<0?(p=d+1,m=f):(p=d,m=f,f=m+1)}}};function NO(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 bw(r,t,e,n,o,s,i,a,u,l){return new Id(r,t,e,n,o,s,i,a,u,l).compute()}function up(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)),Dtt=Rn(js,gT),TO={kernelName:js,backendName:"cpu",kernelFunc:Dtt};function Si(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=u instanceof le?u: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))),xT=At(Qs,r=>1/(1+Math.exp(-r))),EO={kernelName:Qs,backendName:"cpu",kernelFunc:xT};function cp(r,t,e,n,o){let s=ze.isSliceContinous(n,t,e),i=y.sizeFromShape(e),a=y.computeStrides(n);if(s){let p=ze.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 Bo(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,size:i}=n;tt(o,"slice");let[a,u]=ze.parseSliceParams(o,s,i);ze.assertParamsValid(o,a,u);let l=e.data.get(o.dataId).values,c=cp(l,a,u,o.shape,o.dtype);return e.makeTensorInfo(u,o.dtype,c)}var AO={kernelName:qi,backendName:"cpu",kernelFunc:Bo};function ww(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,I)=>w*I,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 I=h;I=u[0])throw new Error(S.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(I,n[I],u[0]));for(let E=0;Ea)break}return xMath.sqrt(r)),$tt=At(ei,r=>Math.sqrt(r)),$O={kernelName:ei,backendName:"cpu",kernelFunc:$tt};var yT=Jt((r,t)=>{let e=r-t;return e*e}),Rtt=oe(oi,yT),RO={kernelName:oi,backendName:"cpu",kernelFunc:Rtt};var bT=Er((r,t)=>{let{pattern:e,replaceGlobal:n,rewrite:o}=t;return r.replace(new RegExp(e,n?"g":""),o)}),Ftt=Rn(cc,bT),FO={kernelName:cc,backendName:"cpu",kernelFunc:Ftt};function Cw(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 pp(r,t,e,n,o,s,i,a){return new wT(e,n,o,s,i,a).compute(r,t)}function Ott(r,t,e,n){if(!r.length)return;if(t.length===0){for(let s=0;sr-t),Ptt=yd((r,t,e,n)=>({real:r-e,imag:t-n})),Qh=oe(si,IT,Ptt),OO={kernelName:si,backendName:"cpu",kernelFunc:Qh};function vw(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 PO(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));PO(r,t,m,f)}let o=r[t],s=e,i=n;for(y.swap(r,e,t),tg(r[n],o)>0&&y.swap(r,e,n);s0;)i=i-1}tg(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 Sw(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 Xu,1);var CT=At(ms,r=>r>=0?r:Math.exp(r)-1),LO={kernelName:ms,backendName:"cpu",kernelFunc:CT};function vT(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 ST(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]=Mtt(n.shape,o.shape,s,i,"float32");return e.makeTensorInfo(u,"float32",a)}var BO={kernelName:zs,backendName:"cpu",kernelFunc:ST};var NT=At(Gs,r=>Math.max(0,r)),VO={kernelName:Gs,backendName:"cpu",kernelFunc:NT};var kT=At(Hs,r=>Math.min(Math.max(0,r),6)),GO={kernelName:Hs,backendName:"cpu",kernelFunc:kT};function hp(r,t,e,n,o){if(e==="linear")return Zr({inputs:{x:t},backend:r});if(e==="relu")return NT({inputs:{x:t},backend:r});if(e==="elu")return CT({inputs:{x:t},backend:r});if(e==="relu6")return kT({inputs:{x:t},backend:r});if(e==="prelu")return ST({inputs:{x:t,alpha:n},backend:r});if(e==="leakyrelu")return vT({inputs:{x:t},backend:r,attrs:{alpha:o}});if(e==="sigmoid")return xT({inputs:{x:t},backend:r});throw new Error(`Activation ${e} has not been implemented for the CPU backend.`)}function Qt(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 WO={kernelName:Ui,backendName:"cpu",kernelFunc:Qt};function TT(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=Hr.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 I=i?[g,c,m]:[g,m,c],N=a?[x,f,p]:[x,p,f],E=Qt({inputs:{x:o},backend:e,attrs:{shape:I}}),A=Qt({inputs:{x:s},backend:e,attrs:{shape:N}}),D=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),[K,X,Z]=i?[q[0],1,q[1]]:[q[0],q[1],1],[et,nt,st]=a?[1,H[1],H[0]]:[H[1],1,H[0]],at=F*P,ot=wt([V,F,P],E.dtype),it=ot.values,mt=e.blockSize;for(let gt=0;gtMath.acos(r)),qO={kernelName:qo,backendName:"cpu",kernelFunc:ztt};var Btt=At(Ko,r=>Math.acosh(r)),KO={kernelName:Ko,backendName:"cpu",kernelFunc:Btt};function Vtt(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=I)}f[g]=w}return l.forEach(g=>e.disposeIntermediateTensorInfo(g)),e.makeTensorInfo(c,"int32",f)}var ZO={kernelName:Ri,backendName:"cpu",kernelFunc:Utt};function Htt(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=Ge({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 JO={kernelName:Fi,backendName:"cpu",kernelFunc:Htt};var qtt=At(Xo,r=>Math.asin(r)),QO={kernelName:Xo,backendName:"cpu",kernelFunc:qtt};var Ktt=At(Yo,r=>Math.asinh(r)),tP={kernelName:Yo,backendName:"cpu",kernelFunc:Ktt};var jtt=At(Zo,r=>Math.atan(r)),eP={kernelName:Zo,backendName:"cpu",kernelFunc:jtt};var Xtt=Jt((r,t)=>Math.atan2(r,t)),Ytt=oe(Qo,Xtt),rP={kernelName:Qo,backendName:"cpu",kernelFunc:Ytt};var Ztt=At(Jo,r=>Math.atanh(r)),nP={kernelName:Jo,backendName:"cpu",kernelFunc:Ztt};function vd(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 I=0;IX?X=mt:s==="avg"&&(Z+=mt,et++)}if(isNaN(X))break}let nt=G+W*w+A;g[nt]=s==="avg"?Z/et:X}}}return h}function kw(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=K,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 Tw(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),I=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],D=o.outShape[4];for(let F=0;FRt?Rt=De:s==="avg"&&(Dt+=De,Ht++),isNaN(Rt))break}if(isNaN(Rt))break}if(isNaN(Rt))break}let qt=Ct+G;I[qt]=s==="avg"?Dt/Math.max(Ht,1):Rt}}}}return w}function oP(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=st,q=K*c*p+Z*c+nt)}}}e.set(q,h,x,N,F,g)}}}return e}function Jtt(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=Zr({inputs:{x:o},backend:e});else{let m=e.data.get(o.dataId).values,f=y.computeStrides(o.shape),d=vd(m,o.shape,o.dtype,f,c,"avg");p=e.makeTensorInfo(c.outShape,o.dtype,d.values)}return p}var sP={kernelName:ts,backendName:"cpu",kernelFunc:Jtt};function Qtt(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=Tw(p,o.shape,o.dtype,y.computeStrides(o.shape),c,"avg");return e.makeTensorInfo(m.shape,"float32",m.values)}var iP={kernelName:Oi,backendName:"cpu",kernelFunc:Qtt};function tet(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,I=c.effectiveFilterDepth,N=c.effectiveFilterHeight,E=c.effectiveFilterWidth,A=I-1-c.padInfo.front,D=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(ot)!==ot))for(let it=0;it=c.outHeight||Math.floor(mt)!==mt))for(let gt=0;gt=c.outWidth||Math.floor(Ct)!==Ct)continue;let Rt=G.get(W,ot,mt,Ct,q);st+=Rt}}}P.set(st*V,W,H,K,X,q)}return e.makeTensorInfo(P.shape,P.dtype,P.values)}var aP={kernelName:Jl,backendName:"cpu",kernelFunc:tet};function eet(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,I=x-1-c.padInfo.top,N=wt(i.shape,"float32"),E=1/(f*d),A=e.data.get(o.dataId).values,D=wt(o.shape,"float32",A);for(let F=0;F=c.outHeight||Math.floor(X)!==X))for(let Z=0;Z=c.outWidth||Math.floor(et)!==et)continue;let nt=D.get(F,X,et,P);H+=nt}}N.set(H*E,F,V,G,P)}return e.makeTensorInfo(N.shape,N.dtype,N.values)}var lP={kernelName:Zl,backendName:"cpu",kernelFunc:eet};function ret(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,I=0,N=0,E=0,A=0;for(let D=0;D=g&&(I=0),N>=w&&(N=0),E>=x&&(E=0),A>=b&&(A=0);return e.makeTensorInfo(o.shape,o.dtype,h)}var uP={kernelName:ys,backendName:"cpu",kernelFunc:ret};function net(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=Qt({inputs:{x:o},backend:e,attrs:{shape:u}}),d=Ge({inputs:{x:f},backend:e,attrs:{perm:l}}),h=Qt({inputs:{x:d},backend:e,attrs:{shape:c}}),g=Bo({inputs:{x:h},backend:e,attrs:{begin:p,size:m}});return e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(h),g}var cP={kernelName:Pi,backendName:"cpu",kernelFunc:net};function oet(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=bd(a,u,s.dtype,s.shape,i);return e.makeTensorInfo([i],s.dtype,l)}var pP={kernelName:Oa,backendName:"cpu",kernelFunc:oet};function set(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 mP={kernelName:Ql,backendName:"cpu",kernelFunc:set};var iet=At(yo,(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 Zr({inputs:{x:u[0]},backend:e});if(u[0].dtype==="complex64"){let h=u.map(I=>Mo({inputs:{input:I},backend:e})),g=u.map(I=>va({inputs:{input:I},backend:e})),x=Yu({inputs:h,backend:e,attrs:{axis:s}}),b=Yu({inputs:g,backend:e,attrs:{axis:s}}),w=Cr({inputs:{real:x,imag:b},backend:e});return h.forEach(I=>e.disposeIntermediateTensorInfo(I)),g.forEach(I=>e.disposeIntermediateTensorInfo(I)),e.disposeIntermediateTensorInfo(x),e.disposeIntermediateTensorInfo(b),w}let l=u.map(h=>{let x=[-1,y.sizeFromShape(h.shape.slice(s))];return Qt({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=ap(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 gP={kernelName:Mi,backendName:"cpu",kernelFunc:Yu};function _T(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",I=new le(m.outShape,o.dtype),N=y.computeStrides(o.shape),E=y.computeStrides(s.shape),A=N[0],D=w?N[1]:N[2],F=w?N[2]:1,P=w?1:N[1],V=I.strides[0],G=w?I.strides[1]:I.strides[2],W=w?I.strides[2]:1,q=w?1:I.strides[1],H=e.data.get(o.dataId).values,K=e.data.get(s.dataId).values,X=I.values;for(let Z=0;Z=m.inHeight)continue;let gt=it*E[0],Ct=et+mt*D;for(let Rt=0;Rt=m.inWidth)continue;let ge=gt+qt*E[1],re=Ct+ce*F,xe=ge;for(let fe=0;fe=l.inDepth)continue;let Z=K*F[0],et=V+X*D[1];for(let nt=0;nt=l.inHeight)continue;let mt=Z+ot*F[1],gt=et+it*D[2];for(let Ct=0;Ct=l.inWidth)continue;let ce=mt+Ht*F[2],ge=gt+qt*l.inChannels,re=ce;for(let xe=0;xeMath.cos(r)),vP={kernelName:is,backendName:"cpu",kernelFunc:det};var het=At(as,r=>Math.cosh(r)),SP={kernelName:as,backendName:"cpu",kernelFunc:het};function get(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,I=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 K=0;K1?F*(p-1)+K*q:.5*(F+V)*(p-1);if(X<0||X>p-1){for(let Z=0;Z1?P*(m-1)+st*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,I=b.top,N=f.outChannels/f.inChannels,E=new le(f.outShape,o.dtype),A=e.data.get(o.dataId).values,D=e.data.get(s.dataId).values,F=E.values;for(let P=0;P=f.inHeight)continue;let Z=K*p[0],et=V+X*c[1];for(let nt=0;nt=f.inWidth)continue;let mt=Z+ot*p[1],gt=et+it*f.inChannels,Ct=st,Rt=mt;for(let Dt=0;Dt{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:I,strideWidth:N,filterHeight:E,filterWidth:A,dilationHeight:D,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&&it=0&>st&&(st=Dt)}}}let at=y.locToIndex([H,K,Z,nt],G,y.computeStrides(P));W[at]=st}}}return{dataId:u.write(y.toTypedArray(W,n.dtype),P,n.dtype),shape:P,dtype:n.dtype}}};var OP={kernelName:ou,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:I,filterHeight:N,filterWidth:E,dilationHeight:A,dilationWidth:D,outShape:F}=S.computeDilation2DInfo(n.shape,o.shape,i,a,"NHWC",u);y.assert(s.rank===F.length,()=>`Error in ${ou}, 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&&ot=0&&mtet&&(et=gt,nt=at,st=it)}}}V[nt][st][Z]+=P[W][q][K][Z]}}}return{dataId:l.write(y.toTypedArray(V,n.dtype),o.shape,o.dtype),shape:o.shape,dtype:o.dtype}}};var PP={kernelName:nu,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:I,filterHeight:N,filterWidth:E,dilationHeight:A,dilationWidth:D,outShape:F}=S.computeDilation2DInfo(n.shape,o.shape,i,a,"NHWC",u);y.assert(s.rank===F.length,()=>`Error in ${nu}, 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&&ot=0&&mtet&&(et=gt,nt=ot,st=mt)}}}V[W][nt][st][Z]+=P[W][q][K][Z]}}}return{dataId:l.write(y.toTypedArray(V,n.dtype),n.shape,n.dtype),shape:n.shape,dtype:n.dtype}}};function Net(r){let{inputs:t,backend:e,attrs:n}=r,{image:o}=t,{canvas:s,options:i}=n,{contextOptions:a,imageOptions:u}=i||{},l=(u==null?void 0:u.alpha)||1,c=(a==null?void 0:a.contextType)||"2d";if(c!=="2d")throw new Error(`Context type ${a.contextType} is not supported by the CPU backend.`);let p=s.getContext(c,(a==null?void 0:a.contextAttributes)||{});if(p==null)throw new Error(`Could not get the context with ${c} type.`);let[m,f]=o.shape.slice(0,2),d=o.shape.length===2?1:o.shape[2],h=e.data.get(o.dataId).values,g=o.dtype==="float32"?255:1,x=new Uint8ClampedArray(f*m*4);for(let w=0;w1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${A}.`)}else if(o.dtype==="int32"&&(A<0||A>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${A}.`);d===1?(I[0]=A*g,I[1]=A*g,I[2]=A*g):I[E]=A*g}let N=w*4;x[N+0]=Math.round(I[0]),x[N+1]=Math.round(I[1]),x[N+2]=Math.round(I[2]),x[N+3]=Math.round(I[3])}s.width=f,s.height=m;let b=new ImageData(x,f,m);return p.putImageData(b,0,0),o}var MP={kernelName:Zg,backendName:"cpu",kernelFunc:Net};function zl(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=Lo({inputs:{x:o},backend:e,attrs:{dtype:"int32"}}):a=Zr({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=Ge({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=xd(e,f,h),x=y.sizeFromShape(d),b=e.data.get(g.dataId).values,w=e.data.get(m.dataId).values;for(let I=0;I=0&&(m=zl({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 zP={kernelName:Wp,backendName:"cpu",kernelFunc:ket};function Tet(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=0?s[u]=a[u]:s[u]=a[u]*(l+1)}return e.makeTensorInfo(o.shape,"float32",s)}var BP={kernelName:Ga,backendName:"cpu",kernelFunc:Tet};var _et=S.ERF_P,Eet=S.ERF_A1,Aet=S.ERF_A2,Det=S.ERF_A3,$et=S.ERF_A4,Ret=S.ERF_A5,Fet=At(fs,r=>{let t=Math.sign(r),e=Math.abs(r),n=1/(1+_et*e);return t*(1-((((Ret*n+$et)*n+Det)*n+Aet)*n+Eet)*n*Math.exp(-e*e))}),VP={kernelName:fs,backendName:"cpu",kernelFunc:Fet};function Sd(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),Qt({inputs:{x:o},backend:e,attrs:{shape:a}})}var GP={kernelName:Li,backendName:"cpu",kernelFunc:Sd};var Oet=Jt((r,t)=>r/t),eg=oe(ps,Oet),rg={kernelName:ps,backendName:"cpu",kernelFunc:eg};function _w(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&&w=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=Qt({inputs:{x:o},backend:e,attrs:{shape:[f.batchSize,f.outerSize,f.dimSize,f.sliceSize]}}),h=Qt({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=dw(b,x,g);return e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(h),e.makeTensorInfo(f.outputShape,w.dtype,w.values)}var XP={kernelName:zi,backendName:"cpu",kernelFunc:Uet};function Het(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=Qt({inputs:{x:n},backend:e,attrs:{shape:[i,s]}}),u=_w(a,!0,e),l=Qt({inputs:{x:u},backend:e,attrs:{shape:n.shape}});return e.disposeIntermediateTensorInfo(a),e.disposeIntermediateTensorInfo(u),l}var YP={kernelName:Hp,backendName:"cpu",kernelFunc:Het};var qet=At(ws,r=>Number.isFinite(r)?1:0,"bool"),ZP={kernelName:ws,backendName:"cpu",kernelFunc:qet};var Ket=At(Is,r=>Math.abs(r)===1/0?1:0,"bool"),JP={kernelName:Is,backendName:"cpu",kernelFunc:Ket};var jet=At(Cs,r=>Number.isNaN(r)?1:0,"bool"),QP={kernelName:Cs,backendName:"cpu",kernelFunc:jet};function Xet(r){let{backend:t,attrs:e}=r,{start:n,stop:o,num:s}=e,i=hw(n,o,s);return t.makeTensorInfo([i.length],"float32",i)}var tM={kernelName:Xa,backendName:"cpu",kernelFunc:Xet};var Yet=At(Ns,r=>Math.log1p(r)),eM={kernelName:Ns,backendName:"cpu",kernelFunc:Yet};var Zet=Jt((r,t)=>r&&t),Jet=oe(Ya,Zet,null,"bool"),rM={kernelName:Ya,backendName:"cpu",kernelFunc:Jet};var Qet=At(Za,r=>r?0:1,"bool"),nM={kernelName:Za,backendName:"cpu",kernelFunc:Qet};var trt=Jt((r,t)=>r||t),ert=oe(Ja,trt,null,"bool"),oM={kernelName:Ja,backendName:"cpu",kernelFunc:ert};function rrt(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 I=p[x];w+=I*I}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=Zr({inputs:{x:o},backend:e});else{let m=e.data.get(o.dataId).values,f=y.computeStrides(o.shape),d=vd(m,o.shape,o.dtype,f,c,"max");p=e.makeTensorInfo(c.outShape,o.dtype,d.values)}return p}var lM={kernelName:Es,backendName:"cpu",kernelFunc:ort};function srt(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=Tw(p,o.shape,o.dtype,y.computeStrides(o.shape),c,"max");return e.makeTensorInfo(m.shape,"float32",m.values)}var uM={kernelName:Bi,backendName:"cpu",kernelFunc:srt};function irt(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=oP(p,c),f=c.strideDepth,d=c.strideHeight,h=c.strideWidth,g=c.dilationDepth,x=c.dilationHeight,b=c.dilationWidth,w=c.effectiveFilterDepth,I=c.effectiveFilterHeight,N=c.effectiveFilterWidth,E=w-1-c.padInfo.front,A=N-1-c.padInfo.left,D=I-1-c.padInfo.top,F=wt(s.shape,"float32"),P=e.bufferSync(o);for(let V=0;V=c.outDepth||Math.floor(st)!==st))for(let at=0;at=c.outHeight||Math.floor(ot)!==ot))for(let it=0;it=c.outWidth||Math.floor(mt)!==mt)continue;let gt=w*I*N-1-m.get(V,st,ot,mt,G),Ct=nt*I*N+at*N+it,Rt=gt===Ct?1:0;if(Rt===0)continue;let Dt=P.get(V,st,ot,mt,G);et+=Dt*Rt}}}F.set(et,V,W,q,H,G)}return e.makeTensorInfo(F.shape,F.dtype,F.values)}var cM={kernelName:au,backendName:"cpu",kernelFunc:irt};function art(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,kw(f,a.shape,a.dtype,m).values),h=m.strideHeight,g=m.strideWidth,x=m.dilationHeight,b=m.dilationWidth,w=m.effectiveFilterHeight,I=m.effectiveFilterWidth,N=I-1-m.padInfo.left,E=w-1-m.padInfo.top,A=wt(a.shape,"float32"),D=e.data.get(o.dataId).values,F=wt(o.shape,"float32",D);for(let P=0;P=m.outHeight||Math.floor(Z)!==Z))for(let et=0;et=m.outWidth||Math.floor(nt)!==nt)continue;let st=w*I-1-d.get(P,Z,nt,V),at=X*I+et,ot=st===at?1:0;if(ot===0)continue;let it=F.get(P,Z,nt,V);K+=it*ot}}A.set(K,P,G,W,V)}return e.makeTensorInfo(A.shape,A.dtype,A.values)}var pM={kernelName:iu,backendName:"cpu",kernelFunc:art};function mM(r,t,e,n,o){let s=y.computeStrides(t),i=vd(r,t,e,s,o,"max"),a=kw(r,t,e,o,!0,n);return[i.values,a.values]}var fM={kernelName:lu,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]=mM(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 lrt(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=Lo({inputs:{x:o},backend:e,attrs:{dtype:"float32"}});p.push(f);let d=eg({inputs:{a:f,b:m},backend:e});p.push(d);let h=zl({inputs:{x:d},backend:e,attrs:{axis:s,keepDims:i}});return p.forEach(g=>e.disposeIntermediateTensorInfo(g)),h}var dM={kernelName:As,backendName:"cpu",kernelFunc:lrt};function urt(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=Ge({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[I]+w[1]),u=s.map(w=>w[0]),l=s.map((w,I)=>w[0]+o.shape[I]),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]&&(I[E]=(l[E]-1)*2-I[E]+c);I=I.map((E,A)=>E-u[A]);let N=y.locToIndex(I,m,f);x[w]=p[N]}return{dataId:e.write(x,a,o.dtype),shape:a,dtype:o.dtype}}var gM={kernelName:Rs,backendName:"cpu",kernelFunc:crt};var prt=Jt((r,t)=>{let e=r%t;return r<0&&t<0||r>=0&&t>=0?e:(e+t)%t}),mrt=oe(Fs,prt),xM={kernelName:Fs,backendName:"cpu",kernelFunc:mrt};var bM=Xl(bh());function $T(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=DT({inputs:{x:o},backend:e,attrs:{reductionIndices:u,keepDims:!1}}),c=S.expandShapeToKeepDim(l.shape,u),p=Qt({inputs:{x:l},backend:e,attrs:{shape:c}}),m=Qh({inputs:{a:o,b:p},backend:e}),f=rT({inputs:{x:m},backend:e}),d=zl({inputs:{x:f},backend:e,attrs:{axis:u,keepDims:!1}}),h=Qt({inputs:{x:d},backend:e,attrs:{shape:c}}),g=eg({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 yM={kernelName:ni,backendName:"cpu",kernelFunc:$T};function frt(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:$T({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=Sd({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=Yu({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeIntermediateTensorInfo(c)),l}var _M={kernelName:Wi,backendName:"cpu",kernelFunc:RT};function Irt(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(I,d,h);g[N]=l[b]}return{dataId:e.write(g,a,o.dtype),shape:a,dtype:o.dtype}}var Ew={kernelName:Ms,backendName:"cpu",kernelFunc:Irt};var Crt=Jt((r,t)=>Math.pow(r,t)),vrt=oe(Ls,Crt),EM={kernelName:Ls,backendName:"cpu",kernelFunc:vrt};function Srt(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]=xw(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 AM={kernelName:Kp,backendName:"cpu",kernelFunc:Srt};function Nrt(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]=yw(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 DM={kernelName:jp,backendName:"cpu",kernelFunc:Nrt};function krt(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]=bw(l,o.shape,c,s.shape,s.dtype,p,i.shape,m,f,u);return e.makeTensorInfo(d,s.dtype,h)}var $M={kernelName:Xp,backendName:"cpu",kernelFunc:krt};function Trt(r){let{backend:t,attrs:e}=r,{start:n,stop:o,dtype:s,step:i}=e,a=up(n,o,i,s);return t.makeTensorInfo([a.length],s,a)}var RM={kernelName:uu,backendName:"cpu",kernelFunc:Trt};var _rt=At(Vs,r=>1/r),FM={kernelName:Vs,backendName:"cpu",kernelFunc:_rt};function Ert(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,I=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,I=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],I=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],I=x[1]/b[1],N=1/w,E=1/I,A=Math.ceil(N)*2+2,D=Math.ceil(E)*2+2;for(let F=0;F=f)continue;let ot=P+at*u[1],it=at*w,mt=Math.min(c-1,i?Math.round(it):Math.floor(it));if(V===mt)for(let gt=0;gt=d)continue;let Rt=ot+Ct*u[2],Dt=Ct*I,Ht=Math.min(p-1,i?Math.round(Dt):Math.floor(Dt));H===Ht&&(nt+=g[Rt+et])}}h[K+et]=nt}}}}return e.makeTensorInfo(o.shape,o.dtype,h)}var LM={kernelName:sl,backendName:"cpu",kernelFunc:$rt};function Rrt(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 Zr({inputs:{x:o},backend:e});let u=new le(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 zM={kernelName:qs,backendName:"cpu",kernelFunc:Rrt};var BM={kernelName:hl,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 I=0;I=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}),VM={kernelName:Ks,backendName:"cpu",kernelFunc:Frt};function Ort(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=Si(f,d,i,p,l,u,a,c,0,m);return e.makeTensorInfo(i,h.dtype,h.values)}var GM={kernelName:al,backendName:"cpu",kernelFunc:Ort};function Prt(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?Vrt*r:Brt*(Math.exp(r)-1)),qM={kernelName:Xs,backendName:"cpu",kernelFunc:Grt};var Wrt=At(Js,r=>r<0?-1:r>0?1:0),KM={kernelName:Js,backendName:"cpu",kernelFunc:Wrt};var Urt=At(Ys,r=>Math.sin(r)),jM={kernelName:Ys,backendName:"cpu",kernelFunc:Urt};var Hrt=At(Zs,r=>Math.sinh(r)),XM={kernelName:Zs,backendName:"cpu",kernelFunc:Hrt};var qrt=11920928955078125e-23,YM=Math.log(qrt)+2,Krt=At(ti,r=>{let t=r>-YM,e=rNumber(g)))),e.makeTensorInfo([h.length],n.dtype,new Int32Array(h))]}var GM={kernelName:su,backendName:"cpu",kernelFunc:vrt};function Srt(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]=ww(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 QM={kernelName:cu,backendName:"cpu",kernelFunc:Xrt};function Yrt(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]=Iw(a,n.shape,n.dtype,i,u);return[e.makeTensorInfo(c,n.dtype,l),e.makeTensorInfo([p.length],s.dtype,new Int32Array(p))]}var WM={kernelName:ll,backendName:"cpu",kernelFunc:Srt};function Nrt(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]=Iw(a,n.shape,n.dtype,i,u);return[e.makeTensorInfo(c,n.dtype,l),e.makeTensorInfo([p.length],s.dtype,new Int32Array(p))]}var tL={kernelName:cl,backendName:"cpu",kernelFunc:Yrt};function Zrt(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]=Id(i,n.shape,n.dtype,a,u,!0);return e.makeTensorInfo(c,n.dtype,l)}var UM={kernelName:iu,backendName:"cpu",kernelFunc:Nrt};function krt(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 eL={kernelName:pu,backendName:"cpu",kernelFunc:Zrt};function Jrt(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]=Id(i,n.shape,n.dtype,a,u);return e.makeTensorInfo(c,n.dtype,l)}var HM={kernelName:au,backendName:"cpu",kernelFunc:krt};function Trt(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=!!e.data.get(i.dataId).values[0];h=wi(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=wi(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=wi(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=wi(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 qM={kernelName:ul,backendName:"cpu",kernelFunc:Trt};function _rt(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=Lo({inputs:{x:o},backend:e,attrs:{begin:l,size:m}});return l[a]+=p,f})}var KM={kernelName:Ui,backendName:"cpu",kernelFunc:_rt};var jM={kernelName:lu,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}),XM={kernelName:yo,backendName:"cpu",kernelFunc:Ert};function Art(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:I}=ze.sliceInfo(o.shape,s,i,a,u,l,c,p,m),N;if(h)N=Qt({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=ze.computeOutShape(b,w,I),A=Lo({inputs:{x:o},backend:e,attrs:{begin:b,size:E}});N=Qt({inputs:{x:A},backend:e,attrs:{shape:d}}),e.disposeIntermediateTensorInfo(A)}else{let E=e.bufferSync(o),A=Cw(f,E,I,b);N=e.makeTensorInfo(d,A.dtype,A.values)}return N}var YM={kernelName:cl,backendName:"cpu",kernelFunc:Art};function Drt(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]=ip(m,f,o,s,i,a,u,l);return[e.makeTensorInfo([d.length],"string",d),e.makeTensorInfo(p.shape,"int32",h)]}var ZM={kernelName:uu,backendName:"cpu",kernelFunc:Drt};function $rt(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]=ap(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 JM={kernelName:cu,backendName:"cpu",kernelFunc:$rt};function Rrt(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=lp(i,o);return e.makeTensorInfo(s.shape,"int32",a)}var QM={kernelName:pu,backendName:"cpu",kernelFunc:Rrt};var Frt=At(ri,r=>Math.tan(r)),tL={kernelName:ri,backendName:"cpu",kernelFunc:Frt};var Ort=At(ni,r=>Math.tanh(r)),eL={kernelName:ni,backendName:"cpu",kernelFunc:Ort};function Prt(r){let{inputs:t,backend:e}=r,{tensor:n,indices:o,updates:s}=t,{sliceRank:i,numUpdates:a,sliceSize:u,strides:l,outputSize:c}=S.calculateShapes(s,o,n.shape),p=!1,m=e.bufferSync(o),f=e.bufferSync(s),d=e.bufferSync(n),h=wi(m,f,n.shape,c,u,a,i,l,d,p);return e.makeTensorInfo(n.shape,h.dtype,h.values)}var rL={kernelName:sl,backendName:"cpu",kernelFunc:Prt};function Mrt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{reps:s}=n;tt(o,"tile");let i=vw(e.bufferSync(o),s);return e.makeTensorInfo(i.shape,i.dtype,i.values)}var nL={kernelName:so,backendName:"cpu",kernelFunc:Mrt};function Lrt(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]=Sw(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 oL={kernelName:pl,backendName:"cpu",kernelFunc:Lrt};function zrt(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],I=x[2],N=y.computeStrides(g),E=N[0],A=N[1],D=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 Vrt(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 Grt(r,t){return r}function Wrt(r,t){return y.clamp(0,r,t-1)}function sg(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 uL={kernelName:fu,backendName:"cpu",kernelFunc:jrt};var Xrt=[OO,GF,PO,MO,KF,LO,zO,BO,VO,GO,WO,UO,HO,qO,KO,XO,YO,ZO,JO,FO,QO,tP,eP,jF,rP,qF,XF,nP,WF,oP,iP,aP,lP,uP,cP,pP,mP,fP,dP,hP,gP,xP,yP,bP,wP,IP,CP,vP,SP,NP,kP,_P,_O,EP,YF,AP,ZF,DP,JF,$P,RP,FP,QF,tO,OP,PP,MP,LP,eO,rO,UF,zP,sP,BP,VP,GP,EO,nO,oO,WP,sO,UP,HP,qP,KP,jP,XP,YP,iO,ZP,JP,QP,tM,rM,nM,oM,aO,sM,iM,uM,lO,uO,cM,pM,mM,cO,fM,gM,xM,Ew,yM,AO,mO,bM,wM,IM,CM,HF,rg,vM,DO,$O,RO,SM,NM,kM,TM,_M,EM,AM,xO,DM,RM,FM,OM,bO,PM,MM,LM,wO,aM,BM,VM,GM,WM,UM,HM,qM,KM,CO,jM,vO,SO,XM,YM,ZM,JM,QM,NO,TP,tL,eL,rL,nL,oL,iL,pO,aL,lL,uL,dM];for(let r of Xrt)ic(r);var Td={};Kt(Td,{assertNotComplex:()=>Ii,bindCanvasToFramebuffer:()=>ont,bindColorTextureToFramebuffer:()=>ug,bindTextureToProgramUniformSampler:()=>GT,bindTextureUnit:()=>fL,bindVertexBufferToProgramAttribute:()=>Ow,callAndCheck:()=>ht,canBeRepresented:()=>AT,createFragmentShader:()=>$T,createFramebuffer:()=>zT,createProgram:()=>RT,createStaticIndexBuffer:()=>PT,createStaticVertexBuffer:()=>OT,createTexture:()=>MT,createVertexShader:()=>DT,getBatchDim:()=>zl,getExtensionOrThrow:()=>Sd,getFramebufferErrorMessage:()=>dL,getMaxTexturesInShader:()=>HT,getNumChannels:()=>rnt,getProgramUniformLocation:()=>VT,getProgramUniformLocationOrThrow:()=>BT,getRowsCols:()=>Bl,getShapeAs3D:()=>kd,getTextureShapeFromLogicalShape:()=>WT,getWebGLDisjointQueryTimerVersion:()=>qT,getWebGLErrorMessage:()=>mL,getWebGLMaxTextureSize:()=>UT,hasExtension:()=>Xn,isCapableOfRenderingToFloatTexture:()=>KT,isDownloadFloatTextureEnabled:()=>jT,isReshapeFree:()=>Ku,isWebGLFenceEnabled:()=>XT,isWebGLVersionEnabled:()=>Mw,linkProgram:()=>FT,logShaderSourceAndInfoLog:()=>Fw,resetMaxTextureSize:()=>snt,resetMaxTexturesInShader:()=>int,unbindColorTextureFromFramebuffer:()=>Pw,unbindTextureUnit:()=>nnt,validateFramebuffer:()=>Nd,validateProgram:()=>lg,validateTextureSize:()=>LT});var pp={},Aw={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function TT(r,t){pp[r]=t}function jn(r,t){if(!(r in pp)||t!=null){let n=Zrt(r,t);if(n!==null)pp[r]=n;else return console.log("Could not get context for WebGL version",r),null}let e=pp[r];return e==null||e.isContextLost()?(delete pp[r],jn(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),pp[r])}function Yrt(r){if(!L().getBool("IS_SAFARI")&&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 Zrt(r,t){if(r!==1&&r!==2)throw new Error("Cannot get WebGL rendering context, WebGL is disabled.");let e=t==null?Yrt(r):t;return e.addEventListener("webglcontextlost",n=>{n.preventDefault(),delete pp[r]},!1),L().getBool("SOFTWARE_WEBGL_ENABLED")&&(Aw.failIfMajorPerformanceCaveat=!1),r===1?e.getContext("webgl",Aw)||e.getContext("experimental-webgl",Aw):e.getContext("webgl2",Aw)}var qu;(function(r){r[r.DENSE=0]="DENSE",r[r.SHARED_BATCH=1]="SHARED_BATCH"})(qu||(qu={}));var Zr;(function(r){r[r.RENDER=0]="RENDER",r[r.UPLOAD=1]="UPLOAD",r[r.PIXELS=2]="PIXELS",r[r.DOWNLOAD=3]="DOWNLOAD"})(Zr||(Zr={}));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 mp(r,t){return[t,r]}function cL(r,t){return r*t}function ig(r){let t=y.sizeFromShape(r),e=Math.ceil(t/4);return y.sizeToSquarishShape(e)}function wa(r,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(r/2))]}function pL(r,t){let[e,n]=wa(r,t);return e*n*4}function ag(r,t){let e=r,n,o,s,i,a,u,l,c,p,m;return L().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 L().getBool("DEBUG")&&Jrt(r),e}function Jrt(r){let t=r.getError();if(t!==r.NO_ERROR)throw new Error("WebGL Error: "+mL(r,t))}var Qrt=596e-10,tnt=65504;function AT(r){return!!(L().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||r===0||Qrtr.getExtension(t),'Extension "'+t+'" not supported on this browser.')}function DT(r,t){let e=Ll(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 $T(r,t){let e=Ll(r,()=>r.createShader(r.FRAGMENT_SHADER),"Unable to create fragment WebGLShader.");if(ht(r,()=>r.shaderSource(e,t)),ht(r,()=>r.compileShader(e)),L().get("ENGINE_COMPILE_ONLY"))return e;if(r.getShaderParameter(e,r.COMPILE_STATUS)===!1)throw Fw(t,r.getShaderInfoLog(e)),new Error("Failed to compile fragment shader.");return e}var ent=/ERROR: [0-9]+:([0-9]+):/g;function Fw(r,t){let e=ent.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 rL={kernelName:mu,backendName:"cpu",kernelFunc:Jrt};function Qrt(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=!!e.data.get(i.dataId).values[0];h=Si(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=Si(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=Si(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=Si(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 nL={kernelName:pl,backendName:"cpu",kernelFunc:Qrt};function tnt(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=Bo({inputs:{x:o},backend:e,attrs:{begin:l,size:m}});return l[a]+=p,f})}var oL={kernelName:ji,backendName:"cpu",kernelFunc:tnt};var sL={kernelName:fu,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}),iL={kernelName:wo,backendName:"cpu",kernelFunc:ent};function rnt(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:I}=ze.sliceInfo(o.shape,s,i,a,u,l,c,p,m),N;if(h)N=Qt({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=ze.computeOutShape(b,w,I),A=Bo({inputs:{x:o},backend:e,attrs:{begin:b,size:E}});N=Qt({inputs:{x:A},backend:e,attrs:{shape:d}}),e.disposeIntermediateTensorInfo(A)}else{let E=e.bufferSync(o),A=Cw(f,E,I,b);N=e.makeTensorInfo(d,A.dtype,A.values)}return N}var aL={kernelName:ml,backendName:"cpu",kernelFunc:rnt};function nnt(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]=pp(m,f,o,s,i,a,u,l);return[e.makeTensorInfo([d.length],"string",d),e.makeTensorInfo(p.shape,"int32",h)]}var lL={kernelName:du,backendName:"cpu",kernelFunc:nnt};function ont(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]=mp(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 uL={kernelName:hu,backendName:"cpu",kernelFunc:ont};function snt(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=fp(i,o);return e.makeTensorInfo(s.shape,"int32",a)}var cL={kernelName:gu,backendName:"cpu",kernelFunc:snt};var int=At(ii,r=>Math.tan(r)),pL={kernelName:ii,backendName:"cpu",kernelFunc:int};var ant=At(ai,r=>Math.tanh(r)),mL={kernelName:ai,backendName:"cpu",kernelFunc:ant};function lnt(r){let{inputs:t,backend:e}=r,{tensor:n,indices:o,updates:s}=t,{sliceRank:i,numUpdates:a,sliceSize:u,strides:l,outputSize:c}=S.calculateShapes(s,o,n.shape),p=!1,m=e.bufferSync(o),f=e.bufferSync(s),d=e.bufferSync(n),h=Si(m,f,n.shape,c,u,a,i,l,d,p);return e.makeTensorInfo(n.shape,h.dtype,h.values)}var fL={kernelName:ll,backendName:"cpu",kernelFunc:lnt};function unt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{reps:s}=n;tt(o,"tile");let i=vw(e.bufferSync(o),s);return e.makeTensorInfo(i.shape,i.dtype,i.values)}var dL={kernelName:lo,backendName:"cpu",kernelFunc:unt};function cnt(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]=Sw(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 hL={kernelName:fl,backendName:"cpu",kernelFunc:cnt};function pnt(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],I=x[2],N=y.computeStrides(g),E=N[0],A=N[1],D=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 fnt(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 dnt(r,t){return r}function hnt(r,t){return y.clamp(0,r,t-1)}function sg(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 wL={kernelName:yu,backendName:"cpu",kernelFunc:wnt};var Int=[HO,JF,qO,KO,nO,jO,XO,YO,ZO,JO,QO,tP,eP,rP,nP,sP,iP,aP,lP,UO,uP,cP,pP,oO,mP,rO,sO,fP,QF,dP,gP,xP,yP,bP,wP,IP,CP,vP,SP,NP,kP,TP,_P,EP,AP,DP,$P,RP,FP,OP,PP,MP,zP,LO,BP,iO,VP,aO,GP,lO,WP,UP,HP,uO,cO,qP,KP,jP,XP,pO,mO,tO,YP,hP,ZP,JP,QP,zO,fO,dO,tM,hO,eM,rM,nM,oM,sM,iM,aM,gO,lM,uM,cM,pM,fM,dM,hM,xO,gM,xM,wM,yO,bO,IM,CM,vM,wO,SM,TM,_M,Ew,EM,BO,CO,AM,DM,$M,RM,eO,rg,FM,VO,GO,WO,OM,PM,MM,LM,zM,BM,VM,TO,GM,UM,HM,qM,EO,KM,jM,XM,AO,yM,ZM,JM,QM,tL,eL,rL,nL,oL,$O,sL,RO,FO,iL,aL,lL,uL,cL,OO,LP,pL,mL,fL,dL,hL,xL,IO,yL,bL,wL,NM];for(let r of Int)pc(r);var _d={};Kt(_d,{assertNotComplex:()=>Ni,bindCanvasToFramebuffer:()=>Ant,bindColorTextureToFramebuffer:()=>ug,bindTextureToProgramUniformSampler:()=>XT,bindTextureUnit:()=>SL,bindVertexBufferToProgramAttribute:()=>Ow,callAndCheck:()=>ht,canBeRepresented:()=>MT,createFragmentShader:()=>zT,createFramebuffer:()=>qT,createProgram:()=>BT,createStaticIndexBuffer:()=>WT,createStaticVertexBuffer:()=>GT,createTexture:()=>UT,createVertexShader:()=>LT,getBatchDim:()=>Vl,getExtensionOrThrow:()=>Nd,getFramebufferErrorMessage:()=>NL,getMaxTexturesInShader:()=>JT,getNumChannels:()=>_nt,getProgramUniformLocation:()=>jT,getProgramUniformLocationOrThrow:()=>KT,getRowsCols:()=>Gl,getShapeAs3D:()=>Td,getTextureShapeFromLogicalShape:()=>YT,getWebGLDisjointQueryTimerVersion:()=>QT,getWebGLErrorMessage:()=>vL,getWebGLMaxTextureSize:()=>ZT,hasExtension:()=>Zn,isCapableOfRenderingToFloatTexture:()=>t1,isDownloadFloatTextureEnabled:()=>e1,isReshapeFree:()=>Ju,isWebGLFenceEnabled:()=>r1,isWebGLVersionEnabled:()=>Mw,linkProgram:()=>VT,logShaderSourceAndInfoLog:()=>Fw,resetMaxTextureSize:()=>Dnt,resetMaxTexturesInShader:()=>$nt,unbindColorTextureFromFramebuffer:()=>Pw,unbindTextureUnit:()=>Ent,validateFramebuffer:()=>kd,validateProgram:()=>lg,validateTextureSize:()=>HT});var gp={},Aw={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function FT(r,t){gp[r]=t}function Yn(r,t){if(!(r in gp)||t!=null){let n=vnt(r,t);if(n!==null)gp[r]=n;else return console.log("Could not get context for WebGL version",r),null}let e=gp[r];return e==null||e.isContextLost()?(delete gp[r],Yn(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),gp[r])}function Cnt(r){if(!L().getBool("IS_SAFARI")&&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 vnt(r,t){if(r!==1&&r!==2)throw new Error("Cannot get WebGL rendering context, WebGL is disabled.");let e=t==null?Cnt(r):t;return e.addEventListener("webglcontextlost",n=>{n.preventDefault(),delete gp[r]},!1),L().getBool("SOFTWARE_WEBGL_ENABLED")&&(Aw.failIfMajorPerformanceCaveat=!1),r===1?e.getContext("webgl",Aw)||e.getContext("experimental-webgl",Aw):e.getContext("webgl2",Aw)}var Zu;(function(r){r[r.DENSE=0]="DENSE",r[r.SHARED_BATCH=1]="SHARED_BATCH"})(Zu||(Zu={}));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 zr;(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"})(zr||(zr={}));function xp(r,t){return[t,r]}function IL(r,t){return r*t}function ig(r){let t=y.sizeFromShape(r),e=Math.ceil(t/4);return y.sizeToSquarishShape(e)}function Sa(r,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(r/2))]}function CL(r,t){let[e,n]=Sa(r,t);return e*n*4}function ag(r,t){let e=r,n,o,s,i,a,u,l,c,p,m;return L().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 L().getBool("DEBUG")&&Snt(r),e}function Snt(r){let t=r.getError();if(t!==r.NO_ERROR)throw new Error("WebGL Error: "+vL(r,t))}var Nnt=596e-10,knt=65504;function MT(r){return!!(L().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||r===0||Nntr.getExtension(t),'Extension "'+t+'" not supported on this browser.')}function LT(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 zT(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)),L().get("ENGINE_COMPILE_ONLY"))return e;if(r.getShaderParameter(e,r.COMPILE_STATUS)===!1)throw Fw(t,r.getShaderInfoLog(e)),new Error("Failed to compile fragment shader.");return e}var Tnt=/ERROR: [0-9]+:([0-9]+):/g;function Fw(r,t){let e=Tnt.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 FT(r,t){if(ht(r,()=>r.linkProgram(t)),!L().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 lg(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 OT(r,t){let e=Ll(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 PT(r,t){let e=Ll(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 rnt(){return L().getNumber("WEBGL_VERSION")===2?1:4}function MT(r){return Ll(r,()=>r.createTexture(),"Unable to create WebGLTexture.")}function LT(r,t){let e=L().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 zT(r){return Ll(r,()=>r.createFramebuffer(),"Unable to create WebGLFramebuffer.")}function Ow(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 fL(r,t,e){hL(r,e),ht(r,()=>r.activeTexture(r.TEXTURE0+e)),ht(r,()=>r.bindTexture(r.TEXTURE_2D,t))}function nnt(r,t){hL(r,t),ht(r,()=>r.activeTexture(r.TEXTURE0+t)),ht(r,()=>r.bindTexture(r.TEXTURE_2D,null))}function BT(r,t,e){return Ll(r,()=>r.getUniformLocation(t,e),'uniform "'+e+'" not present in program.')}function VT(r,t,e){return r.getUniformLocation(t,e)}function GT(r,t,e,n){ht(r,()=>fL(r,t,n)),ht(r,()=>r.uniform1i(e,n))}function ont(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 ug(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 Pw(r,t){ht(r,()=>r.bindFramebuffer(r.FRAMEBUFFER,t)),ht(r,()=>r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,null,0))}function Nd(r){let t=r.checkFramebufferStatus(r.FRAMEBUFFER);if(t!==r.FRAMEBUFFER_COMPLETE)throw new Error("Error binding framebuffer: "+dL(r,t))}function dL(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 Ll(r,t,e){let n=ht(r,()=>t());if(n==null)throw new Error(e);return n}function hL(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 zl(r,t=2){return y.sizeFromShape(r.slice(0,r.length-t))}function Bl(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 kd(r){let t=[1,1,1];return r.length===0||r.length===1&&r[0]===1||(t=[zl(r),...Bl(r)]),t}function WT(r,t=!1){let e=L().getNumber("WEBGL_MAX_TEXTURE_SIZE"),n=L().getNumber("WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE");n===1/0&&L().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=zl(r),u=2,l=2;r.length&&([u,l]=Bl(r)),o=a*(u/2)*(l/2),s=y.sizeToSquarishShape(o).map(c=>c*2)}else s=y.sizeToSquarishShape(o);return s}function Dw(r){return r%2===0}function Ku(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[r.length-1],n=t[t.length-1];if(e===n||Dw(e)&&Dw(n)&&(r[0]===1||t[0]===1))return!0}return r[1]===t[1]&&Dw(r[0])&&Dw(t[0])}var $w,Rw;function UT(r){if($w==null){let t=jn(r);$w=t.getParameter(t.MAX_TEXTURE_SIZE)}return $w}function snt(){$w=null}function int(){Rw=null}function HT(r){if(Rw==null){let t=jn(r);Rw=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,Rw)}function qT(r){if(r===0)return 0;let t,e=jn(r);return Xn(e,"EXT_disjoint_timer_query_webgl2")&&r===2?t=2:Xn(e,"EXT_disjoint_timer_query")?t=1:t=0,t}function Xn(r,t){return r.getExtension(t)!=null}function Mw(r){try{if(jn(r)!=null)return!0}catch(t){return console.log("Error when getting WebGL context: ",t),!1}return!1}function KT(r){if(r===0)return!1;let t=jn(r);if(r===1){if(!Xn(t,"OES_texture_float"))return!1}else if(!Xn(t,"EXT_color_buffer_float"))return!1;return ET(t)}function jT(r){if(r===0)return!1;let t=jn(r);if(r===1){if(!Xn(t,"OES_texture_float")||!Xn(t,"WEBGL_color_buffer_float"))return!1}else{if(Xn(t,"EXT_color_buffer_float"))return ET(t);let n="EXT_color_buffer_half_float";if(Xn(t,n)){let o=t.getExtension(n);return ant(t,o)}return!1}return ET(t)}function ET(r){let t=ag(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 ant(r,t){let e=ag(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 XT(r){return r!==2?!1:jn(r).fenceSync!=null}function Ii(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 Et=L();Et.registerFlag("HAS_WEBGL",()=>Et.getNumber("WEBGL_VERSION")>0);Et.registerFlag("WEBGL_VERSION",()=>Mw(2)?2:Mw(1)?1:0);Et.registerFlag("WEBGL_CHECK_NUMERICAL_PROBLEMS",()=>!1);Et.registerFlag("WEBGL_BUFFER_SUPPORTED",()=>Et.get("WEBGL_VERSION")===2);Et.registerFlag("WEBGL_CPU_FORWARD",()=>!0);Et.registerFlag("WEBGL_FORCE_F16_TEXTURES",()=>!1);Et.registerFlag("WEBGL_PACK",()=>Et.getBool("HAS_WEBGL"));Et.registerFlag("WEBGL_PACK_NORMALIZATION",()=>Et.getBool("WEBGL_PACK"));Et.registerFlag("WEBGL_PACK_CLIP",()=>Et.getBool("WEBGL_PACK"));Et.registerFlag("WEBGL_PACK_DEPTHWISECONV",()=>Et.getBool("WEBGL_PACK"));Et.registerFlag("WEBGL_PACK_BINARY_OPERATIONS",()=>Et.getBool("WEBGL_PACK"));Et.registerFlag("WEBGL_PACK_UNARY_OPERATIONS",()=>Et.getBool("WEBGL_PACK"));Et.registerFlag("WEBGL_PACK_ARRAY_OPERATIONS",()=>Et.getBool("WEBGL_PACK"));Et.registerFlag("WEBGL_PACK_IMAGE_OPERATIONS",()=>Et.getBool("WEBGL_PACK"));Et.registerFlag("WEBGL_PACK_REDUCE",()=>Et.getBool("WEBGL_PACK"));Et.registerFlag("WEBGL_LAZILY_UNPACK",()=>Et.getBool("WEBGL_PACK"));Et.registerFlag("WEBGL_CONV_IM2COL",()=>Et.getBool("WEBGL_PACK"));Et.registerFlag("WEBGL_MAX_TEXTURE_SIZE",()=>UT(Et.getNumber("WEBGL_VERSION")));Et.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER",()=>HT(Et.getNumber("WEBGL_VERSION")));Et.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",()=>{let r=Et.getNumber("WEBGL_VERSION");return r===0?0:qT(r)});Et.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",()=>Et.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&!xu.isMobile());Et.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE",()=>KT(Et.getNumber("WEBGL_VERSION")));Et.registerFlag("WEBGL_RENDER_FLOAT32_ENABLED",()=>Et.getBool("WEBGL_FORCE_F16_TEXTURES")?!1:Et.getBool("WEBGL_RENDER_FLOAT32_CAPABLE"));Et.registerFlag("WEBGL_DOWNLOAD_FLOAT_ENABLED",()=>jT(Et.getNumber("WEBGL_VERSION")));Et.registerFlag("WEBGL_FENCE_API_ENABLED",()=>XT(Et.getNumber("WEBGL_VERSION")));Et.registerFlag("WEBGL_SIZE_UPLOAD_UNIFORM",()=>Et.getBool("WEBGL_RENDER_FLOAT32_ENABLED")?4:0);Et.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}.`)});Et.registerFlag("WEBGL_FLUSH_THRESHOLD",()=>xu.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}.`)});Et.registerFlag("CPU_HANDOFF_SIZE_THRESHOLD",()=>128);Et.registerFlag("WEBGL_USE_SHAPES_UNIFORMS",()=>!1);Et.registerFlag("TOPK_LAST_DIM_CPU_HANDOFF_SIZE_THRESHOLD",()=>1e5);Et.registerFlag("TOPK_K_CPU_HANDOFF_THRESHOLD",()=>128);Et.registerFlag("WEBGL_EXP_CONV",()=>!1);Et.registerFlag("SOFTWARE_WEBGL_ENABLED",()=>Et.getBool("IS_TEST"));Et.registerFlag("WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE",()=>1/0);Et.registerFlag("WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE",()=>!1);Et.registerFlag("WEBGL2_ISNAN_CUSTOM",()=>!1);Et.registerFlag("ENGINE_COMPILE_ONLY",()=>!1);function We(){let r,t,e,n,o,s,i,a,u,l;return L().getNumber("WEBGL_VERSION")===2?(r="#version 300 es",t="in",e="out",n="in",o="texture",s="outputColor",i="out vec4 outputColor;",a=L().getBool("WEBGL2_ISNAN_CUSTOM")?` +`))}function BT(r){return Bl(r,()=>r.createProgram(),"Unable to create WebGLProgram.")}function VT(r,t){if(ht(r,()=>r.linkProgram(t)),!L().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 lg(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 GT(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 WT(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 _nt(){return L().getNumber("WEBGL_VERSION")===2?1:4}function UT(r){return Bl(r,()=>r.createTexture(),"Unable to create WebGLTexture.")}function HT(r,t){let e=L().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 qT(r){return Bl(r,()=>r.createFramebuffer(),"Unable to create WebGLFramebuffer.")}function Ow(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 SL(r,t,e){kL(r,e),ht(r,()=>r.activeTexture(r.TEXTURE0+e)),ht(r,()=>r.bindTexture(r.TEXTURE_2D,t))}function Ent(r,t){kL(r,t),ht(r,()=>r.activeTexture(r.TEXTURE0+t)),ht(r,()=>r.bindTexture(r.TEXTURE_2D,null))}function KT(r,t,e){return Bl(r,()=>r.getUniformLocation(t,e),'uniform "'+e+'" not present in program.')}function jT(r,t,e){return r.getUniformLocation(t,e)}function XT(r,t,e,n){ht(r,()=>SL(r,t,n)),ht(r,()=>r.uniform1i(e,n))}function Ant(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 ug(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 Pw(r,t){ht(r,()=>r.bindFramebuffer(r.FRAMEBUFFER,t)),ht(r,()=>r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,null,0))}function kd(r){let t=r.checkFramebufferStatus(r.FRAMEBUFFER);if(t!==r.FRAMEBUFFER_COMPLETE)throw new Error("Error binding framebuffer: "+NL(r,t))}function NL(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 kL(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 Vl(r,t=2){return y.sizeFromShape(r.slice(0,r.length-t))}function Gl(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 Td(r){let t=[1,1,1];return r.length===0||r.length===1&&r[0]===1||(t=[Vl(r),...Gl(r)]),t}function YT(r,t=!1){let e=L().getNumber("WEBGL_MAX_TEXTURE_SIZE"),n=L().getNumber("WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE");n===1/0&&L().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=Vl(r),u=2,l=2;r.length&&([u,l]=Gl(r)),o=a*(u/2)*(l/2),s=y.sizeToSquarishShape(o).map(c=>c*2)}else s=y.sizeToSquarishShape(o);return s}function Dw(r){return r%2===0}function Ju(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[r.length-1],n=t[t.length-1];if(e===n||Dw(e)&&Dw(n)&&(r[0]===1||t[0]===1))return!0}return r[1]===t[1]&&Dw(r[0])&&Dw(t[0])}var $w,Rw;function ZT(r){if($w==null){let t=Yn(r);$w=t.getParameter(t.MAX_TEXTURE_SIZE)}return $w}function Dnt(){$w=null}function $nt(){Rw=null}function JT(r){if(Rw==null){let t=Yn(r);Rw=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,Rw)}function QT(r){if(r===0)return 0;let t,e=Yn(r);return Zn(e,"EXT_disjoint_timer_query_webgl2")&&r===2?t=2:Zn(e,"EXT_disjoint_timer_query")?t=1:t=0,t}function Zn(r,t){return r.getExtension(t)!=null}function Mw(r){try{if(Yn(r)!=null)return!0}catch(t){return console.log("Error when getting WebGL context: ",t),!1}return!1}function t1(r){if(r===0)return!1;let t=Yn(r);if(r===1){if(!Zn(t,"OES_texture_float"))return!1}else if(!Zn(t,"EXT_color_buffer_float"))return!1;return PT(t)}function e1(r){if(r===0)return!1;let t=Yn(r);if(r===1){if(!Zn(t,"OES_texture_float")||!Zn(t,"WEBGL_color_buffer_float"))return!1}else{if(Zn(t,"EXT_color_buffer_float"))return PT(t);let n="EXT_color_buffer_half_float";if(Zn(t,n)){let o=t.getExtension(n);return Rnt(t,o)}return!1}return PT(t)}function PT(r){let t=ag(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 Rnt(r,t){let e=ag(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 r1(r){return r!==2?!1:Yn(r).fenceSync!=null}function Ni(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 Et=L();Et.registerFlag("HAS_WEBGL",()=>Et.getNumber("WEBGL_VERSION")>0);Et.registerFlag("WEBGL_VERSION",()=>Mw(2)?2:Mw(1)?1:0);Et.registerFlag("WEBGL_CHECK_NUMERICAL_PROBLEMS",()=>!1);Et.registerFlag("WEBGL_BUFFER_SUPPORTED",()=>Et.get("WEBGL_VERSION")===2);Et.registerFlag("WEBGL_CPU_FORWARD",()=>!0);Et.registerFlag("WEBGL_FORCE_F16_TEXTURES",()=>!1);Et.registerFlag("WEBGL_PACK",()=>Et.getBool("HAS_WEBGL"));Et.registerFlag("WEBGL_PACK_NORMALIZATION",()=>Et.getBool("WEBGL_PACK"));Et.registerFlag("WEBGL_PACK_CLIP",()=>Et.getBool("WEBGL_PACK"));Et.registerFlag("WEBGL_PACK_DEPTHWISECONV",()=>Et.getBool("WEBGL_PACK"));Et.registerFlag("WEBGL_PACK_BINARY_OPERATIONS",()=>Et.getBool("WEBGL_PACK"));Et.registerFlag("WEBGL_PACK_UNARY_OPERATIONS",()=>Et.getBool("WEBGL_PACK"));Et.registerFlag("WEBGL_PACK_ARRAY_OPERATIONS",()=>Et.getBool("WEBGL_PACK"));Et.registerFlag("WEBGL_PACK_IMAGE_OPERATIONS",()=>Et.getBool("WEBGL_PACK"));Et.registerFlag("WEBGL_PACK_REDUCE",()=>Et.getBool("WEBGL_PACK"));Et.registerFlag("WEBGL_LAZILY_UNPACK",()=>Et.getBool("WEBGL_PACK"));Et.registerFlag("WEBGL_CONV_IM2COL",()=>Et.getBool("WEBGL_PACK"));Et.registerFlag("WEBGL_MAX_TEXTURE_SIZE",()=>ZT(Et.getNumber("WEBGL_VERSION")));Et.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER",()=>JT(Et.getNumber("WEBGL_VERSION")));Et.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",()=>{let r=Et.getNumber("WEBGL_VERSION");return r===0?0:QT(r)});Et.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",()=>Et.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&!Cu.isMobile());Et.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE",()=>t1(Et.getNumber("WEBGL_VERSION")));Et.registerFlag("WEBGL_RENDER_FLOAT32_ENABLED",()=>Et.getBool("WEBGL_FORCE_F16_TEXTURES")?!1:Et.getBool("WEBGL_RENDER_FLOAT32_CAPABLE"));Et.registerFlag("WEBGL_DOWNLOAD_FLOAT_ENABLED",()=>e1(Et.getNumber("WEBGL_VERSION")));Et.registerFlag("WEBGL_FENCE_API_ENABLED",()=>r1(Et.getNumber("WEBGL_VERSION")));Et.registerFlag("WEBGL_SIZE_UPLOAD_UNIFORM",()=>Et.getBool("WEBGL_RENDER_FLOAT32_ENABLED")?4:0);Et.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}.`)});Et.registerFlag("WEBGL_FLUSH_THRESHOLD",()=>Cu.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}.`)});Et.registerFlag("CPU_HANDOFF_SIZE_THRESHOLD",()=>128);Et.registerFlag("WEBGL_USE_SHAPES_UNIFORMS",()=>!1);Et.registerFlag("TOPK_LAST_DIM_CPU_HANDOFF_SIZE_THRESHOLD",()=>1e5);Et.registerFlag("TOPK_K_CPU_HANDOFF_THRESHOLD",()=>128);Et.registerFlag("WEBGL_EXP_CONV",()=>!1);Et.registerFlag("SOFTWARE_WEBGL_ENABLED",()=>Et.getBool("IS_TEST"));Et.registerFlag("WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE",()=>1/0);Et.registerFlag("WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE",()=>!1);Et.registerFlag("WEBGL2_ISNAN_CUSTOM",()=>!1);Et.registerFlag("ENGINE_COMPILE_ONLY",()=>!1);function We(){let r,t,e,n,o,s,i,a,u,l;return L().getNumber("WEBGL_VERSION")===2?(r="#version 300 es",t="in",e="out",n="in",o="texture",s="outputColor",i="out vec4 outputColor;",a=L().getBool("WEBGL2_ISNAN_CUSTOM")?` bool isnan_custom(float val) { uint floatToUint = floatBitsToUint(val); return (floatToUint & 0x7fffffffu) > 0x7f800000u; @@ -112,11 +112,11 @@ 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 Ci(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 fp(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 lnt(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 gL(r,t,e="index"){let n=r.map((s,i)=>i),o=lnt(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 _d(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 ki(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 yp(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 Fnt(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 TL(r,t,e="index"){let n=r.map((s,i)=>i),o=Fnt(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 Ed(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 Ed(){return` +`}function Ad(){return` int getFlatIndex(ivec3 coords) { return coords.x * outShapeStrides[0] + coords.y * outShapeStrides[1] + coords.z; } @@ -159,22 +159,22 @@ Hi, looks like you are running TensorFlow.js in Node.js. To speed things up dram return c / 255.0; } -`;var{getBroadcastDims:xL}=S;function yL(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}=zw(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=>unt(f,t,e.packedInputs,e.enableShapeUniforms)).join(` -`),i=t.texShape,a=We(),u=mnt(a),l,c,p=hnt(a);return t.isPacked?(l=cnt(t.logicalShape,i,e.enableShapeUniforms),c=dnt(a)):(l=pnt(t.logicalShape,i,e.enableShapeUniforms),c=fnt(a)),e.packedInputs&&(p+=bnt),[p,u,c,o,l,s,e.userCode].join(` -`)}function Dd(r,t=!1){let e=r.shapeInfo.logicalShape;switch(e.length){case 0:return Dnt(r,t);case 1:return Rnt(r,t);case 2:return Ont(r,t);case 3:return Mnt(r,t);case 4:return znt(r,t);case 5:return Bnt(r);case 6:return Vnt(r);default:throw new Error(`${e.length}-D input sampling is not yet supported`)}}function bL(r,t){switch(r.shapeInfo.logicalShape.length){case 0:return Ant(r);case 1:return $nt(r,t);case 2:return Fnt(r,t);case 3:return Pnt(r,t);default:return Lnt(r,t)}}function unt(r,t,e=!1,n){let o="";e?o+=bL(r,n):o+=Dd(r,n);let s=r.shapeInfo.logicalShape,i=t.logicalShape;return s.length<=i.length&&(e?o+=Gnt(r,t):o+=Wnt(r,t)),o}function cnt(r,t,e){switch(r.length){case 0:return wL();case 1:return wnt(r,t,e);case 2:return _nt(r,t,e);case 3:return Cnt(r,t,e);default:return Snt(r,t,e)}}function pnt(r,t,e){switch(r.length){case 0:return wL();case 1:return Int(r,t,e);case 2:return Ent(r,t,e);case 3:return vnt(r,t,e);case 4:return Nnt(r,t,e);case 5:return knt(r,t);case 6:return Tnt(r,t);default:throw new Error(`${r.length}-D output sampling is not yet supported`)}}function mnt(r){return` +`;var{getBroadcastDims:_L}=S;function EL(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}=zw(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=>Ont(f,t,e.packedInputs,e.enableShapeUniforms)).join(` +`),i=t.texShape,a=We(),u=Lnt(a),l,c,p=Vnt(a);return t.isPacked?(l=Pnt(t.logicalShape,i,e.enableShapeUniforms),c=Bnt(a)):(l=Mnt(t.logicalShape,i,e.enableShapeUniforms),c=znt(a)),e.packedInputs&&(p+=Hnt),[p,u,c,o,l,s,e.userCode].join(` +`)}function $d(r,t=!1){let e=r.shapeInfo.logicalShape;switch(e.length){case 0:return not(r,t);case 1:return sot(r,t);case 2:return aot(r,t);case 3:return uot(r,t);case 4:return pot(r,t);case 5:return mot(r);case 6:return fot(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 rot(r);case 1:return oot(r,t);case 2:return iot(r,t);case 3:return lot(r,t);default:return cot(r,t)}}function Ont(r,t,e=!1,n){let o="";e?o+=AL(r,n):o+=$d(r,n);let s=r.shapeInfo.logicalShape,i=t.logicalShape;return s.length<=i.length&&(e?o+=dot(r,t):o+=hot(r,t)),o}function Pnt(r,t,e){switch(r.length){case 0:return DL();case 1:return qnt(r,t,e);case 2:return tot(r,t,e);case 3:return jnt(r,t,e);default:return Ynt(r,t,e)}}function Mnt(r,t,e){switch(r.length){case 0:return DL();case 1:return Knt(r,t,e);case 2:return eot(r,t,e);case 3:return Xnt(r,t,e);case 4:return Znt(r,t,e);case 5:return Jnt(r,t);case 6:return Qnt(r,t);default:throw new Error(`${r.length}-D output sampling is not yet supported`)}}function Lnt(r){return` float sampleTexture(sampler2D textureSampler, vec2 uv) { return ${r.texture2D}(textureSampler, uv).r; } - `}function fnt(r){return` + `}function znt(r){return` void setOutput(float val) { ${r.output} = vec4(val, 0, 0, 0); } - `}function dnt(r){return` + `}function Bnt(r){return` void setOutput(vec4 val) { ${r.output} = val; } - `}function hnt(r){return`${r.version} + `}function Vnt(r){return`${r.version} precision highp float; precision highp int; precision highp sampler2D; @@ -229,10 +229,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); } - ${gnt} - ${xnt} - ${ynt} - `}var gnt=` + ${Gnt} + ${Wnt} + ${Unt} + `}var Gnt=` vec2 uvFromFlat(int texNumR, int texNumC, int index) { int texR = index / texNumC; int texC = index - texR * texNumC; @@ -244,7 +244,7 @@ vec2 packedUVfrom1D(int texNumR, int texNumC, int index) { int texC = texelIndex - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } -`,xnt=` +`,Wnt=` vec2 packedUVfrom2D(int texelsInLogicalRow, int texNumR, int texNumC, int row, int col) { int texelIndex = (row / 2) * texelsInLogicalRow + (col / 2); @@ -252,7 +252,7 @@ vec2 packedUVfrom2D(int texelsInLogicalRow, int texNumR, int texC = texelIndex - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } -`,ynt=` +`,Unt=` vec2 packedUVfrom3D(int texNumR, int texNumC, int texelsInBatch, int texelsInLogicalRow, int b, int row, int col) { @@ -261,7 +261,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, int texC = index - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } -`,bnt=` +`,Hnt=` float getChannel(vec4 frag, vec2 innerDims) { vec2 modCoord = mod(innerDims, 2.); return modCoord.x == 0. ? @@ -272,11 +272,11 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, float modCoord = mod(float(dim), 2.); return modCoord == 0. ? frag.r : frag.g; } -`;function wL(){return` +`;function DL(){return` int getOutputCoords() { return 0; } - `}function wnt(r,t,e){let n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];return n[0]===1?e?` + `}function qnt(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)); } @@ -305,7 +305,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2(${n[0]}, ${n[1]})); return 2 * (resTexRC.x * ${n[1]} + resTexRC.y); } - `}function Int(r,t,e){return t[0]===1?e?` + `}function Knt(r,t,e){return t[0]===1?e?` int getOutputCoords() { return int(resultUV.x * float(outTexShape[1])); } @@ -333,7 +333,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2(${t[0]}, ${t[1]})); return resTexRC.x * ${t[1]} + resTexRC.y; } - `}function Cnt(r,t,e){if(e)return` + `}function jnt(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)); @@ -364,15 +364,15 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, return ivec3(b, r, c); } - `}function vnt(r,t,e){if(e)return` + `}function Xnt(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; - ${fp(["r","c","d"],r)} + ${yp(["r","c","d"],r)} return ivec3(r, c, d); } -`;let n=Ci(["r","c","d"],r);return` +`;let n=ki(["r","c","d"],r);return` ivec3 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${t[0]}, ${t[1]})); @@ -380,7 +380,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${n} return ivec3(r, c, d); } - `}function Snt(r,t,e){if(e)return` + `}function Ynt(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 * @@ -421,15 +421,15 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, return ivec${r.length}(${u}); } - `}function Nnt(r,t,e){if(e)return` + `}function Znt(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; - ${fp(["r","c","d","d2"],r)} + ${yp(["r","c","d","d2"],r)} return ivec4(r, c, d, d2); } - `;let n=Ci(["r","c","d","d2"],r);return` + `;let n=ki(["r","c","d","d2"],r);return` ivec4 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${t[0]}, ${t[1]})); @@ -437,7 +437,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${n} return ivec4(r, c, d, d2); } - `}function knt(r,t){let e=Ci(["r","c","d","d2","d3"],r);return` + `}function Jnt(r,t){let e=ki(["r","c","d","d2","d3"],r);return` ivec5 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${t[0]}, ${t[1]})); @@ -449,7 +449,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ivec5 outShape = ivec5(r, c, d, d2, d3); return outShape; } - `}function Tnt(r,t){let e=Ci(["r","c","d","d2","d3","d4"],r);return` + `}function Qnt(r,t){let e=ki(["r","c","d","d2","d3","d4"],r);return` ivec6 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${t[0]}, ${t[1]})); @@ -460,7 +460,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ivec6 result = ivec6(r, c, d, d2, d3, d4); return result; } - `}function _nt(r,t,e){let n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];if(y.arraysEqual(r,t))return e?` + `}function tot(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])); @@ -493,7 +493,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, return ivec2(r, c); } - `}function Ent(r,t,e){return y.arraysEqual(r,t)?e?` + `}function eot(r,t,e){return y.arraysEqual(r,t)?e?` ivec2 getOutputCoords() { return ivec2(resultUV.yx * vec2(outTexShape[0], outTexShape[1])); } @@ -547,15 +547,15 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, int c = index - r * ${r[1]}; return ivec2(r, c); } - `}function dp(r){return`offset${r}`}function Ant(r){let t=r.name,e="get"+t.charAt(0).toUpperCase()+t.slice(1),n=We();return` + `}function bp(r){return`offset${r}`}function rot(r){let t=r.name,e="get"+t.charAt(0).toUpperCase()+t.slice(1),n=We();return` vec4 ${e}() { return ${n.texture2D}(${t}, halfCR); } - `}function Dnt(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 not(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=dp(e);if(t)return` + `;let i=bp(e);if(t)return` float ${n}() { vec2 uv = uvFromFlat(${e}TexShape[0], ${e}TexShape[1], ${i}); return sampleTexture(${e}, uv); @@ -565,7 +565,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2 uv = uvFromFlat(${a}, ${u}, ${i}); return sampleTexture(${e}, uv); } - `}function $nt(r,t){let e=r.name,n="get"+e.charAt(0).toUpperCase()+e.slice(1),o=r.shapeInfo.texShape,s=We();if(t)return` + `}function oot(r,t){let e=r.name,n="get"+e.charAt(0).toUpperCase()+e.slice(1),o=r.shapeInfo.texShape,s=We();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( @@ -578,15 +578,15 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${i[0]}, ${i[1]}, index); return ${s.texture2D}(${e}, uv); } - `}function Rnt(r,t){let e=r.name,n="get"+e.charAt(0).toUpperCase()+e.slice(1);if(r.shapeInfo.isUniform)return` + `}function sot(r,t){let e=r.name,n="get"+e.charAt(0).toUpperCase()+e.slice(1);if(r.shapeInfo.isUniform)return` float ${n}(int index) { - ${$d(r)} + ${Rd(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=dp(e);return i===1?t?` + `;let a=bp(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); @@ -616,7 +616,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2 uv = uvFromFlat(${s}, ${i}, index + ${a}); return sampleTexture(${e}, uv); } - `}function Fnt(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=We();if(s!=null&&y.arraysEqual(e,s))return t?` + `}function iot(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=We();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]); @@ -640,7 +640,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2 uv = packedUVfrom2D(${c}, ${l[0]}, ${l[1]}, row, col); return ${u.texture2D}(${n}, uv); } - `}function Ont(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 aot(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); @@ -650,17 +650,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 dot(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=_L(r.shapeInfo.logicalShape,t.logicalShape),u=zt(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=` @@ -977,20 +977,20 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec4 outputValue = get${n}(${m}); ${f} } - `}function Wnt(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 hot(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=xL(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=zt(u),c=_L(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 zw(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=yL(o,i,t),u=$T(r.gl,a),l=r.createProgram(u);return L().get("ENGINE_COMPILE_ONLY")?{program:t,fragmentShader:u,source:a,webGLProgram:l,inShapeInfos:s,outShapeInfo:i,variablesLocations:null,customUniformLocations:null,infLoc:null,nanLoc:null,outShapeLocation:null,outShapeStridesLocation:null,outTexShapeLocation:null}:(r.buildVao(l),Object.assign({program:t,fragmentShader:u,source:a,webGLProgram:l,inShapeInfos:s,outShapeInfo:i},YT(r,t,l)))}function YT(r,t,e){let n=[],o=[],s,i,a,u=null,l=null;l=r.getUniformLocation(e,"NAN",!1),L().getNumber("WEBGL_VERSION")===1&&(u=r.getUniformLocation(e,"INFINITY",!1));let c=!1;for(let p of t.variableNames){let m={name:p,uniform:r.getUniformLocation(e,p,c),offset:r.getUniformLocation(e,`offset${p}`,c)};t.enableShapeUniforms&&(m.shape=r.getUniformLocation(e,`${p}Shape`,c),m.texShape=r.getUniformLocation(e,`${p}TexShape`,c)),n.push(m)}if(t.enableShapeUniforms&&(s=r.getUniformLocation(e,"outShape",c),a=r.getUniformLocation(e,"outShapeStrides",c),i=r.getUniformLocation(e,"outTexShape",c)),t.customUniforms)for(let p of t.customUniforms)o.push(r.getUniformLocation(e,p.name,c));return{variablesLocations:n,customUniformLocations:o,infLoc:u,nanLoc:l,outShapeLocation:s,outShapeStridesLocation:a,outTexShapeLocation:i}}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 vL(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),r.bindVertexArray(t.webGLProgram.vao),L().getNumber("WEBGL_VERSION")===1&&t.infLoc!==null&&r.gl.uniform1f(t.infLoc,1/0),t.nanLoc!==null&&r.gl.uniform1f(t.nanLoc,NaN);for(let u=0;u{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}=zw(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),I=r.packedInputs||c.length>2?"":`${u[0]>1}_${u[1]>1}`;n+=`${h}_${w}_${l?p:""}_${c.length}_${x}_${b}_${g}_${m}_${f}_${d}_${I}_${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+`${L().getNumber("WEBGL_VERSION")}`,s}function de(r){return L().getBool("WEBGL_USE_SHAPES_UNIFORMS")&&r<=4}var Bw=class{constructor(t){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=qu.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];let e=We();this.outputShape=t,this.enableShapeUniforms=de(this.outputShape.length),this.userCode=` + `}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 zw(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 RL(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=EL(o,i,t),u=zT(r.gl,a),l=r.createProgram(u);return L().get("ENGINE_COMPILE_ONLY")?{program:t,fragmentShader:u,source:a,webGLProgram:l,inShapeInfos:s,outShapeInfo:i,variablesLocations:null,customUniformLocations:null,infLoc:null,nanLoc:null,outShapeLocation:null,outShapeStridesLocation:null,outTexShapeLocation:null}:(r.buildVao(l),Object.assign({program:t,fragmentShader:u,source:a,webGLProgram:l,inShapeInfos:s,outShapeInfo:i},n1(r,t,l)))}function n1(r,t,e){let n=[],o=[],s,i,a,u=null,l=null;l=r.getUniformLocation(e,"NAN",!1),L().getNumber("WEBGL_VERSION")===1&&(u=r.getUniformLocation(e,"INFINITY",!1));let c=!1;for(let p of t.variableNames){let m={name:p,uniform:r.getUniformLocation(e,p,c),offset:r.getUniformLocation(e,`offset${p}`,c)};t.enableShapeUniforms&&(m.shape=r.getUniformLocation(e,`${p}Shape`,c),m.texShape=r.getUniformLocation(e,`${p}TexShape`,c)),n.push(m)}if(t.enableShapeUniforms&&(s=r.getUniformLocation(e,"outShape",c),a=r.getUniformLocation(e,"outShapeStrides",c),i=r.getUniformLocation(e,"outTexShape",c)),t.customUniforms)for(let p of t.customUniforms)o.push(r.getUniformLocation(e,p.name,c));return{variablesLocations:n,customUniformLocations:o,infLoc:u,nanLoc:l,outShapeLocation:s,outShapeStridesLocation:a,outTexShapeLocation:i}}function $L(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 FL(r,t,e,n,o){t.program.enableShapeUniforms||($L(t.inShapeInfos,e),$L([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),r.bindVertexArray(t.webGLProgram.vao),L().getNumber("WEBGL_VERSION")===1&&t.infLoc!==null&&r.gl.uniform1f(t.infLoc,1/0),t.nanLoc!==null&&r.gl.uniform1f(t.nanLoc,NaN);for(let u=0;u{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}=zw(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),I=r.packedInputs||c.length>2?"":`${u[0]>1}_${u[1]>1}`;n+=`${h}_${w}_${l?p:""}_${c.length}_${x}_${b}_${g}_${m}_${f}_${d}_${I}_${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+`${L().getNumber("WEBGL_VERSION")}`,s}function de(r){return L().getBool("WEBGL_USE_SHAPES_UNIFORMS")&&r<=4}var Bw=class{constructor(t){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=Zu.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];let e=We();this.outputShape=t,this.enableShapeUniforms=de(this.outputShape.length),this.userCode=` ivec3 outCoordsFromFlatIndex(int index) { - ${this.enableShapeUniforms?fp(["r","c","d"],t):Ci(["r","c","d"],t)} + ${this.enableShapeUniforms?yp(["r","c","d"],t):ki(["r","c","d"],t)} return ivec3(r, c, d); } @@ -1008,9 +1008,9 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${e.output} = result; } - `}};var Vw=class{constructor(t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=qu.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];let e=We();this.outputShape=t,this.enableShapeUniforms=de(this.outputShape.length),this.userCode=` + `}};var Vw=class{constructor(t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=Zu.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];let e=We();this.outputShape=t,this.enableShapeUniforms=de(this.outputShape.length),this.userCode=` ivec3 outCoordsFromFlatIndex(int index) { - ${this.enableShapeUniforms?fp(["r","c","d"],t):Ci(["r","c","d"],t)} + ${this.enableShapeUniforms?yp(["r","c","d"],t):ki(["r","c","d"],t)} return ivec3(r, c, d); } @@ -1028,14 +1028,14 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${e.output} = result; } - `}};var Gw=class{constructor(t){this.variableNames=["A"],this.outTexUsage=Zr.DOWNLOAD;let e=We();this.outputShape=t,this.userCode=` + `}};var Gw=class{constructor(t){this.variableNames=["A"],this.outTexUsage=Jr.DOWNLOAD;let e=We();this.outputShape=t,this.userCode=` ${Lw} void main() { float x = getAAtOutCoords(); ${e.output} = encode_float(x); } - `}};var Ww=class{constructor(t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=Zr.DOWNLOAD;let e=We();this.outputShape=t,this.userCode=` + `}};var Ww=class{constructor(t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=Jr.DOWNLOAD;let e=We();this.outputShape=t,this.userCode=` ${Lw} void main() { @@ -1043,11 +1043,11 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, float x = getChannel(getAAtOutCoords(), vec2(coords.y, coords.z)); ${e.output} = encode_float(x); } - `}};var qnt={R:0,G:1,B:2,A:3},cg=class{constructor(t,e=!1,n="RGBA"){this.variableNames=["A"],this.customUniforms=[{name:"texShape",type:"ivec2"}];let o=We();this.outputShape=t,this.enableShapeUniforms=de(this.outputShape.length);let s="result";e&&(s="floor(result * 255. + 0.5)");let i="";for(let a=0;as1,createBufferFromOutputTexture:()=>l1,createFloat16MatrixTexture:()=>e1,createFloat16PackedMatrixTexture:()=>o1,createFloat32MatrixTexture:()=>t1,createIndexBuffer:()=>QT,createPackedMatrixTexture:()=>n1,createUnsignedBytesMatrixTexture:()=>r1,createVertexBuffer:()=>JT,createVertexShader:()=>ZT,downloadByteEncodedFloatMatrixFromOutputTexture:()=>c1,downloadFloat32MatrixFromBuffer:()=>u1,downloadMatrixFromPackedOutputTexture:()=>m1,downloadPackedMatrixFromBuffer:()=>p1,getInternalFormatForFloat16MatrixTexture:()=>qw,getInternalFormatForFloat16PackedMatrixTexture:()=>Xw,getInternalFormatForFloat32MatrixTexture:()=>Hw,getInternalFormatForPackedMatrixTexture:()=>jw,getInternalFormatForUnsignedBytesMatrixTexture:()=>Kw,uploadDenseMatrixToTexture:()=>i1,uploadPixelDataToTexture:()=>a1});function ZT(r){let t=We(),e=`${t.version} + `}};var w1={};Kt(w1,{bindVertexProgramAttributeStreams:()=>m1,createBufferFromOutputTexture:()=>h1,createFloat16MatrixTexture:()=>l1,createFloat16PackedMatrixTexture:()=>p1,createFloat32MatrixTexture:()=>a1,createIndexBuffer:()=>i1,createPackedMatrixTexture:()=>c1,createUnsignedBytesMatrixTexture:()=>u1,createVertexBuffer:()=>s1,createVertexShader:()=>o1,downloadByteEncodedFloatMatrixFromOutputTexture:()=>x1,downloadFloat32MatrixFromBuffer:()=>g1,downloadMatrixFromPackedOutputTexture:()=>b1,downloadPackedMatrixFromBuffer:()=>y1,getInternalFormatForFloat16MatrixTexture:()=>qw,getInternalFormatForFloat16PackedMatrixTexture:()=>Xw,getInternalFormatForFloat32MatrixTexture:()=>Hw,getInternalFormatForPackedMatrixTexture:()=>jw,getInternalFormatForUnsignedBytesMatrixTexture:()=>Kw,uploadDenseMatrixToTexture:()=>f1,uploadPixelDataToTexture:()=>d1});function o1(r){let t=We(),e=`${t.version} precision highp float; ${t.attribute} vec3 clipSpacePos; ${t.attribute} vec2 uv; @@ -1119,7 +1119,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, void main() { gl_Position = vec4(clipSpacePos, 1); resultUV = uv; - }`;return DT(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 OT(r,t)}function QT(r){let t=new Uint16Array([0,1,2,2,1,3]);return PT(r,t)}function pg(r,t,e,n,o,s){LT(t,e);let i=MT(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)),L().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 Hw(r){return r.internalFormatFloat}function t1(r,t,e,n){let[o,s]=mp(t,e);return pg(r,o,s,Hw(n),n.textureFormatFloat,r.FLOAT)}function qw(r){return r.internalFormatHalfFloat}function e1(r,t,e,n){let[o,s]=mp(t,e);return pg(r,o,s,qw(n),n.textureFormatFloat,n.textureTypeHalfFloat)}function Kw(r){return r.downloadTextureFormat}function r1(r,t,e,n){let[o,s]=mp(t,e);return pg(r,o,s,Kw(n),r.RGBA,r.UNSIGNED_BYTE)}function jw(r){return r.internalFormatPackedFloat}function n1(r,t,e,n){let[o,s]=wa(t,e);return pg(r,o,s,jw(n),r.RGBA,r.FLOAT)}function Xw(r){return r.internalFormatPackedHalfFloat}function o1(r,t,e,n){let[o,s]=wa(t,e);return pg(r,o,s,Xw(n),r.RGBA,n.textureTypeHalfFloat)}function s1(r,t,e){return ht(r,()=>r.bindBuffer(r.ARRAY_BUFFER,e)),Ow(r,t,"clipSpacePos",e,3,20,0)&&Ow(r,t,"uv",e,2,20,12)}function i1(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),L().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 a1(r,t,e){ht(r,()=>r.bindTexture(r.TEXTURE_2D,t)),e.data instanceof Uint8Array?L().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)):L().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 l1(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 u1(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 c1(r,t,e,n){let[o,s]=mp(t,e),i=4,a=new Uint8Array(cL(t*e,i));return ht(r,()=>r.readPixels(0,0,o,s,n.downloadTextureFormat,r.UNSIGNED_BYTE,a)),new Float32Array(a.buffer)}function p1(r,t,e,n,o,s,i,a){let u=r,l=new Float32Array(pL(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 m1(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 hp=class{constructor(t){this.outputTexture=null,this.program=null,this.disposed=!1,this.itemsToPoll=[];let e=L().getNumber("WEBGL_VERSION");if(t!=null?(this.gl=t,TT(e,t)):this.gl=jn(e),t=this.gl,L().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"),L().getNumber("WEBGL_VERSION")===1){let s="OES_texture_float",i="OES_texture_half_float";if(this.textureFloatExtension=Sd(this.gl,s),Xn(this.gl,i))this.textureHalfFloatExtension=Sd(this.gl,i);else if(L().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),Xn(this.gl,o))this.colorBufferHalfFloatExtension=Sd(this.gl,o);else if(L().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",Xn(this.gl,n))this.colorBufferFloatExtension=this.gl.getExtension(n);else if(Xn(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=QT(this.gl),this.framebuffer=zT(this.gl),this.textureConfig=ag(this.gl,this.textureHalfFloatExtension)}get debug(){return L().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(),t1(this.gl,t,e,this.textureConfig)}createFloat16MatrixTexture(t,e){return this.throwIfDisposed(),e1(this.gl,t,e,this.textureConfig)}createUnsignedBytesMatrixTexture(t,e){return this.throwIfDisposed(),r1(this.gl,t,e,this.textureConfig)}uploadPixelDataToTexture(t,e){this.throwIfDisposed(),a1(this.gl,t,e)}uploadDenseMatrixToTexture(t,e,n,o){this.throwIfDisposed(),i1(this.gl,t,e,n,o,this.textureConfig)}createFloat16PackedMatrixTexture(t,e){return this.throwIfDisposed(),o1(this.gl,t,e,this.textureConfig)}createPackedMatrixTexture(t,e){return this.throwIfDisposed(),n1(this.gl,t,e,this.textureConfig)}deleteMatrixTexture(t){this.throwIfDisposed(),this.outputTexture===t&&(Pw(this.gl,this.framebuffer),this.outputTexture=null),ht(this.gl,()=>this.gl.deleteTexture(t))}downloadByteEncodedFloatMatrixFromOutputTexture(t,e,n){return this.downloadMatrixDriver(t,()=>c1(this.gl,e,n,this.textureConfig))}downloadPackedMatrixFromBuffer(t,e,n,o,s,i){return p1(this.gl,t,e,n,o,s,i,this.textureConfig)}downloadFloat32MatrixFromBuffer(t,e){return u1(this.gl,t,e)}createBufferFromTexture(t,e,n){this.bindTextureToFrameBuffer(t);let o=l1(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(L().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 L().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(e=this.beginQuery(),this.endQuery(),n=()=>this.isQueryAvailable(e,L().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))):n=()=>!0;return{query:e,isFencePassed:n}}downloadMatrixFromPackedTexture(t,e,n){return this.downloadMatrixDriver(t,()=>m1(this.gl,e,n))}createProgram(t){this.throwIfDisposed();let e=this.gl;this.vertexShader==null&&(this.vertexShader=ZT(e));let n=RT(e);ht(e,()=>e.attachShader(n,this.vertexShader)),ht(e,()=>e.attachShader(n,t)),FT(e,n);let o=Object.assign(n,{vao:this.createVertexArray()});return this.debug&&lg(e,o),o}buildVao(t){this.setProgram(t),this.bindVertexArray(t.vao);let e=this.gl;ht(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,this.indexBuffer)),s1(e,t,this.vertexBuffer)}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.debug&&lg(this.gl,this.program),ht(this.gl,()=>this.gl.useProgram(t))}getUniformLocation(t,e,n=!0){return this.throwIfDisposed(),n?BT(this.gl,t,e):VT(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(),GT(this.gl,t,e,n)}setOutputMatrixTexture(t,e,n){this.setOutputMatrixTextureDriver(t,n,e)}setOutputPackedMatrixTexture(t,e,n){this.throwIfDisposed();let[o,s]=wa(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&&lg(this.gl,this.program),Nd(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=Sd(this.gl,L().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(L().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(L().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,L().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))),this.getQueryTime(t,L().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=Knt(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 L().platform&&(n=L().platform.setTimeoutCustom.bind(L().platform)),y.repeatedTry(()=>(this.pollItems(),this.itemsToPoll.length===0),()=>0,null,n)}bindTextureToFrameBuffer(t){this.throwIfDisposed(),ug(this.gl,t,this.framebuffer),this.debug&&Nd(this.gl)}unbindTextureToFrameBuffer(){this.outputTexture!=null?(ug(this.gl,this.outputTexture,this.framebuffer),this.debug&&Nd(this.gl)):Pw(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;ug(o,t,this.framebuffer),this.debug&&Nd(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 Knt(r){let t=0;for(;t`${r}.${e}`)}function er(r,t){return t===1?[r]:d1(r,t)}function hz(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)),L().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 Hw(r){return r.internalFormatFloat}function a1(r,t,e,n){let[o,s]=xp(t,e);return pg(r,o,s,Hw(n),n.textureFormatFloat,r.FLOAT)}function qw(r){return r.internalFormatHalfFloat}function l1(r,t,e,n){let[o,s]=xp(t,e);return pg(r,o,s,qw(n),n.textureFormatFloat,n.textureTypeHalfFloat)}function Kw(r){return r.downloadTextureFormat}function u1(r,t,e,n){let[o,s]=xp(t,e);return pg(r,o,s,Kw(n),r.RGBA,r.UNSIGNED_BYTE)}function jw(r){return r.internalFormatPackedFloat}function c1(r,t,e,n){let[o,s]=Sa(t,e);return pg(r,o,s,jw(n),r.RGBA,r.FLOAT)}function Xw(r){return r.internalFormatPackedHalfFloat}function p1(r,t,e,n){let[o,s]=Sa(t,e);return pg(r,o,s,Xw(n),r.RGBA,n.textureTypeHalfFloat)}function m1(r,t,e){return ht(r,()=>r.bindBuffer(r.ARRAY_BUFFER,e)),Ow(r,t,"clipSpacePos",e,3,20,0)&&Ow(r,t,"uv",e,2,20,12)}function f1(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),L().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 d1(r,t,e){ht(r,()=>r.bindTexture(r.TEXTURE_2D,t)),e.data instanceof Uint8Array?L().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)):L().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 h1(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 g1(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 x1(r,t,e,n){let[o,s]=xp(t,e),i=4,a=new Uint8Array(IL(t*e,i));return ht(r,()=>r.readPixels(0,0,o,s,n.downloadTextureFormat,r.UNSIGNED_BYTE,a)),new Float32Array(a.buffer)}function y1(r,t,e,n,o,s,i,a){let u=r,l=new Float32Array(CL(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 b1(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 wp=class{constructor(t){this.outputTexture=null,this.program=null,this.disposed=!1,this.itemsToPoll=[];let e=L().getNumber("WEBGL_VERSION");if(t!=null?(this.gl=t,FT(e,t)):this.gl=Yn(e),t=this.gl,L().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"),L().getNumber("WEBGL_VERSION")===1){let s="OES_texture_float",i="OES_texture_half_float";if(this.textureFloatExtension=Nd(this.gl,s),Zn(this.gl,i))this.textureHalfFloatExtension=Nd(this.gl,i);else if(L().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),Zn(this.gl,o))this.colorBufferHalfFloatExtension=Nd(this.gl,o);else if(L().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",Zn(this.gl,n))this.colorBufferFloatExtension=this.gl.getExtension(n);else if(Zn(this.gl,o))this.colorBufferHalfFloatExtension=this.gl.getExtension(o);else throw new Error("GL context does not support color renderable floats");this.vertexBuffer=s1(this.gl),this.indexBuffer=i1(this.gl),this.framebuffer=qT(this.gl),this.textureConfig=ag(this.gl,this.textureHalfFloatExtension)}get debug(){return L().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(),a1(this.gl,t,e,this.textureConfig)}createFloat16MatrixTexture(t,e){return this.throwIfDisposed(),l1(this.gl,t,e,this.textureConfig)}createUnsignedBytesMatrixTexture(t,e){return this.throwIfDisposed(),u1(this.gl,t,e,this.textureConfig)}uploadPixelDataToTexture(t,e){this.throwIfDisposed(),d1(this.gl,t,e)}uploadDenseMatrixToTexture(t,e,n,o){this.throwIfDisposed(),f1(this.gl,t,e,n,o,this.textureConfig)}createFloat16PackedMatrixTexture(t,e){return this.throwIfDisposed(),p1(this.gl,t,e,this.textureConfig)}createPackedMatrixTexture(t,e){return this.throwIfDisposed(),c1(this.gl,t,e,this.textureConfig)}deleteMatrixTexture(t){this.throwIfDisposed(),this.outputTexture===t&&(Pw(this.gl,this.framebuffer),this.outputTexture=null),ht(this.gl,()=>this.gl.deleteTexture(t))}downloadByteEncodedFloatMatrixFromOutputTexture(t,e,n){return this.downloadMatrixDriver(t,()=>x1(this.gl,e,n,this.textureConfig))}downloadPackedMatrixFromBuffer(t,e,n,o,s,i){return y1(this.gl,t,e,n,o,s,i,this.textureConfig)}downloadFloat32MatrixFromBuffer(t,e){return g1(this.gl,t,e)}createBufferFromTexture(t,e,n){this.bindTextureToFrameBuffer(t);let o=h1(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(L().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 L().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(e=this.beginQuery(),this.endQuery(),n=()=>this.isQueryAvailable(e,L().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))):n=()=>!0;return{query:e,isFencePassed:n}}downloadMatrixFromPackedTexture(t,e,n){return this.downloadMatrixDriver(t,()=>b1(this.gl,e,n))}createProgram(t){this.throwIfDisposed();let e=this.gl;this.vertexShader==null&&(this.vertexShader=o1(e));let n=BT(e);ht(e,()=>e.attachShader(n,this.vertexShader)),ht(e,()=>e.attachShader(n,t)),VT(e,n);let o=Object.assign(n,{vao:this.createVertexArray()});return this.debug&&lg(e,o),o}buildVao(t){this.setProgram(t),this.bindVertexArray(t.vao);let e=this.gl;ht(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,this.indexBuffer)),m1(e,t,this.vertexBuffer)}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.debug&&lg(this.gl,this.program),ht(this.gl,()=>this.gl.useProgram(t))}getUniformLocation(t,e,n=!0){return this.throwIfDisposed(),n?KT(this.gl,t,e):jT(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(),XT(this.gl,t,e,n)}setOutputMatrixTexture(t,e,n){this.setOutputMatrixTextureDriver(t,n,e)}setOutputPackedMatrixTexture(t,e,n){this.throwIfDisposed();let[o,s]=Sa(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&&lg(this.gl,this.program),kd(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=Nd(this.gl,L().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(L().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(L().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,L().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))),this.getQueryTime(t,L().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=bot(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 L().platform&&(n=L().platform.setTimeoutCustom.bind(L().platform)),y.repeatedTry(()=>(this.pollItems(),this.itemsToPoll.length===0),()=>0,null,n)}bindTextureToFrameBuffer(t){this.throwIfDisposed(),ug(this.gl,t,this.framebuffer),this.debug&&kd(this.gl)}unbindTextureToFrameBuffer(){this.outputTexture!=null?(ug(this.gl,this.outputTexture,this.framebuffer),this.debug&&kd(this.gl)):Pw(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;ug(o,t,this.framebuffer),this.debug&&kd(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 bot(r){let t=0;for(;t`${r}.${e}`)}function er(r,t){return t===1?[r]:I1(r,t)}function Tz(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 Od=class{constructor(t,e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"inputShape",type:"ivec3"}],this.outputShape=t,this.enableShapeUniforms=de(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 Pd=class{constructor(t,e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"inputShape",type:"ivec3"}],this.outputShape=t,this.enableShapeUniforms=de(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); @@ -1158,8 +1158,8 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, getChannel(getA(inputRC.x, inputRC.y, inputRC.z), inputRCInnerDims); ${o>0?"}":""} `}this.userCode=` - ${jnt(e,this.enableShapeUniforms)} - ${this.enableShapeUniforms?Ed():_d(t)} + ${wot(e,this.enableShapeUniforms)} + ${this.enableShapeUniforms?Ad():Ed(t)} void main() { ivec3 rc = getOutputCoords(); @@ -1174,12 +1174,12 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(result); } - `}};function jnt(r,t){return` + `}};function wot(r,t){return` ivec3 inputCoordsFromReshapedOutCoords(int index) { - ${t?gL(["r","c","d"],"inputShape"):Ci(["r","c","d"],r)} + ${t?TL(["r","c","d"],"inputShape"):ki(["r","c","d"],r)} return ivec3(r, c, d); } - `}var tI=class{constructor(t){this.gpgpu=t,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0,this.freeTextures={},this.usedTextures={},this.logEnabled=!1}acquireTexture(t,e,n){let o=xz(e,n),s=yz(t,o,n);s in this.freeTextures||(this.freeTextures[s]=[]),s in this.usedTextures||(this.usedTextures[s]=[]);let i=gz(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].pop();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=xz(n,o),i=yz(e,s,o);i in this.freeTextures||(this.freeTextures[i]=[]);let a=gz(e,s,this.gpgpu.gl,this.gpgpu.textureConfig,o),u=L().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&&l.indexOf(t);if(c==null||c<0)throw new Error("Cannot release a texture that was never provided by this texture manager");l[c]=l[l.length-1],l.pop(),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 Xnt(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 gz(r,t,e,n,o){let s=Ynt(t,n),i;if(o){let[u,l]=wa(r[0],r[1]);i=u*l}else{let[u,l]=mp(r[0],r[1]);i=u*l}let a=Xnt(e,s);return i*a}function Ynt(r,t){switch(r){case Lr.PACKED_2X2_FLOAT32:return jw(t);case Lr.PACKED_2X2_FLOAT16:return Xw(t);case Lr.UNPACKED_FLOAT32:return Hw(t);case Lr.UNPACKED_FLOAT16:return qw(t);case Lr.PACKED_4X1_UNSIGNED_BYTE:return Kw(t);default:throw new Error(`Unknown physical texture type ${r}`)}}function Znt(r){return L().getBool("WEBGL_RENDER_FLOAT32_ENABLED")?r?Lr.PACKED_2X2_FLOAT32:Lr.UNPACKED_FLOAT32:r?Lr.PACKED_2X2_FLOAT16:Lr.UNPACKED_FLOAT16}function xz(r,t){if(r===Zr.UPLOAD)return Lr.PACKED_2X2_FLOAT32;if(r===Zr.RENDER||r==null)return Znt(t);if(r===Zr.DOWNLOAD||r===Zr.PIXELS)return Lr.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknown logical texture type ${r}`)}function yz(r,t,e){return`${r[0]}_${r[1]}_${t}_${e}`}var zr=class{constructor(t,e){this.variableNames=["A"],this.outputShape=t,this.enableShapeUniforms=de(this.outputShape.length),this.userCode=` + `}var tI=class{constructor(t){this.gpgpu=t,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0,this.freeTextures={},this.usedTextures={},this.logEnabled=!1}acquireTexture(t,e,n){let o=Ez(e,n),s=Az(t,o,n);s in this.freeTextures||(this.freeTextures[s]=[]),s in this.usedTextures||(this.usedTextures[s]=[]);let i=_z(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].pop();return this.usedTextures[s].push(u),u}let a;return o===zr.PACKED_2X2_FLOAT32?a=this.gpgpu.createPackedMatrixTexture(t[0],t[1]):o===zr.PACKED_2X2_FLOAT16?a=this.gpgpu.createFloat16PackedMatrixTexture(t[0],t[1]):o===zr.UNPACKED_FLOAT32?a=this.gpgpu.createFloat32MatrixTexture(t[0],t[1]):o===zr.UNPACKED_FLOAT16?a=this.gpgpu.createFloat16MatrixTexture(t[0],t[1]):o===zr.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=Ez(n,o),i=Az(e,s,o);i in this.freeTextures||(this.freeTextures[i]=[]);let a=_z(e,s,this.gpgpu.gl,this.gpgpu.textureConfig,o),u=L().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&&l.indexOf(t);if(c==null||c<0)throw new Error("Cannot release a texture that was never provided by this texture manager");l[c]=l[l.length-1],l.pop(),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 Iot(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 _z(r,t,e,n,o){let s=Cot(t,n),i;if(o){let[u,l]=Sa(r[0],r[1]);i=u*l}else{let[u,l]=xp(r[0],r[1]);i=u*l}let a=Iot(e,s);return i*a}function Cot(r,t){switch(r){case zr.PACKED_2X2_FLOAT32:return jw(t);case zr.PACKED_2X2_FLOAT16:return Xw(t);case zr.UNPACKED_FLOAT32:return Hw(t);case zr.UNPACKED_FLOAT16:return qw(t);case zr.PACKED_4X1_UNSIGNED_BYTE:return Kw(t);default:throw new Error(`Unknown physical texture type ${r}`)}}function vot(r){return L().getBool("WEBGL_RENDER_FLOAT32_ENABLED")?r?zr.PACKED_2X2_FLOAT32:zr.UNPACKED_FLOAT32:r?zr.PACKED_2X2_FLOAT16:zr.UNPACKED_FLOAT16}function Ez(r,t){if(r===Jr.UPLOAD)return zr.PACKED_2X2_FLOAT32;if(r===Jr.RENDER||r==null)return vot(t);if(r===Jr.DOWNLOAD||r===Jr.PIXELS)return zr.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknown logical texture type ${r}`)}function Az(r,t,e){return`${r[0]}_${r[1]}_${t}_${e}`}var Br=class{constructor(t,e){this.variableNames=["A"],this.outputShape=t,this.enableShapeUniforms=de(this.outputShape.length),this.userCode=` float unaryOperation(float x) { ${e} } @@ -1190,11 +1190,11 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(y); } - `}},yr="if (isnan(x)) return x;",bz="return x;",h1="return abs(x);";var wz="return (x >= 0.0) ? x : (exp(x) - 1.0);",Iz=yr+` + `}},yr="if (isnan(x)) return x;",Dz="return x;",C1="return abs(x);";var $z="return (x >= 0.0) ? x : (exp(x) - 1.0);",Rz=yr+` return (x < 0.0) ? 0.0 : x; -`,Cz=yr+` +`,Fz=yr+` return (x < 0.0) ? 0.0 : min(6.0, x); -`,Ia="return x;",vz="return 1.0 / (1.0 + exp(-1.0 * x));";var Nz="return x;",kz=` +`,Na="return x;",Oz="return 1.0 / (1.0 + exp(-1.0 * x));";var Mz="return x;",Lz=` vec4 result; result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0); @@ -1203,7 +1203,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0); return result; -`,Tz=` +`,zz=` vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -1213,7 +1213,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.a = isNaN.a ? x.a : result.a; return result; -`,_z=` +`,Bz=` vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -1223,7 +1223,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.a = isNaN.a ? x.a : result.a; return result; -`,Ez="return 1.0 / (1.0 + exp(-1.0 * x));",Rn=class{constructor(t,e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t,this.enableShapeUniforms=de(this.outputShape.length),this.userCode=` +`,Vz="return 1.0 / (1.0 + exp(-1.0 * x));",Fn=class{constructor(t,e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t,this.enableShapeUniforms=de(this.outputShape.length),this.userCode=` vec4 unaryOperation(vec4 x) { ${e} } @@ -1234,17 +1234,17 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(y); } - `}};var eI=class{constructor(t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=t,this.enableShapeUniforms=de(this.outputShape.length);let e=t.length,n=er("rc",e),o=zt(e),s=hz(e,n),i=n.slice(-2),a=e<=1?"rc":`vec2(${i.join(",")})`;this.userCode=` + `}};var eI=class{constructor(t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=t,this.enableShapeUniforms=de(this.outputShape.length);let e=t.length,n=er("rc",e),o=zt(e),s=Tz(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 Qnt=Kr.whereImpl,tot=1e-7,eot=1e-4,rI={};function rot(r){return r in rI||(rI[r]={}),rI[r]}var not=L().getNumber("CPU_HANDOFF_SIZE_THRESHOLD"),oot=600;function sot(){return L().global.screen==null?1024:L().global.screen.height*L().global.screen.width*window.devicePixelRatio*oot/1024/1024}var ju=class extends Wo{nextDataId(){return ju.nextDataId++}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,!L().getBool("HAS_WEBGL"))throw new Error("WebGL is not supported on this device");let e;if(t!=null){if(t instanceof hp)e=t;else{let n=jn(L().getNumber("WEBGL_VERSION"),t);e=new hp(n)}this.binaryCache={},this.gpgpuCreatedLocally=!1}else{let n=jn(L().getNumber("WEBGL_VERSION"));e=new hp(n),this.binaryCache=rot(L().getNumber("WEBGL_VERSION")),this.gpgpuCreatedLocally=!0}this.gpgpu=e,this.canvas=this.gpgpu.gl.canvas,this.textureManager=new tI(this.gpgpu),this.numMBBeforeWarning=sot(),this.texData=new Ta(this,Vn())}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=kd(e),c=new cg(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((L().getBool("WEBGL_CHECK_NUMERICAL_PROBLEMS")||L().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:Zr.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(L().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:Zr.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 Rn(a,Ia):m=new zr(a,Ia);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 Rn(o,Ia):d=new zr(o,Ia);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(L().getBool("DEBUG")&&!L().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&L().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"&&L().get("WEBGL_BUFFER_SUPPORTED")){c=this.decode(t);let d=this.texData.get(c.dataId);l=this.gpgpu.createBufferFromTexture(d.texture.texture,...ig(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)&&Vn().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 Rn(s,Ia):f=new zr(s,Ia);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=Vn().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 bt(t.shape,t.dtype,n)}catch(n){throw new Error("Failed to decode encoded string bytes into utf-8")}return bt(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(L().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 L().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.beginQuery():{startMs:y.now(),endMs:null}}endTimer(t){return L().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?(this.gpgpu.endQuery(),t):(t.endMs=y.now(),t)}async getQueryTime(t){if(L().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=not){return L().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 Vn().makeTensorFromTensorInfo(this.makeTensorInfo(t,e,n),this)}unpackTensor(t){let e=new eI(t.shape);return this.runWebGLProgram(e,[t],t.dtype)}packTensor(t){let e=new Qw(t.shape),n=!0;return this.runWebGLProgram(e,[t],t.dtype,null,n)}packedReshape(t,e){let n=[zl(t.shape),...Bl(t.shape)],o={dtype:t.dtype,shape:n,dataId:t.dataId},s=[zl(e),...Bl(e)],i=new Od(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=kd(s),u;o?u=new Vw(a):u=new Bw(a);let l=!0,c=[e!=null?e:ig(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===qu.DENSE){let x=i!=null?i:ig(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)<=L().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&&!Ku(b.shape,x.shape)){let w=x,I=x.shape;x.shape=b.shape,x=this.packedReshape(x,I),l.push(x),b=this.texData.get(x.dataId),w.shape=I}return{shape:x.shape,texData:b,isUniform:!1}});this.uploadToGPU(a.dataId);let p={shape:a.shape,texData:u,isUniform:!1},m=SL(t,c,p),f=this.getAndSaveBinary(m,()=>CL(this.gpgpu,t,c,p)),d=this.activeTimers!=null,h;d&&(h=this.startTimer()),L().get("ENGINE_COMPILE_ONLY")||vL(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=L().get("WEBGL_FLUSH_THRESHOLD");if(g>0){let x=y.now();x-this.lastGlFlushTime>g&&(this.gpgpu.gl.flush(),this.lastGlFlushTime=x)}if(!L().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||(L().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(!L().get("WEBGL_RENDER_FLOAT32_ENABLED")){let t=L().getBool("DEBUG");L().set("DEBUG",!1);let e=this.abs(ft(1e-8)).dataSync()[0];if(L().set("DEBUG",t),e>0)return 32}return 16})),this.floatPrecisionValue}epsilon(){return this.floatPrecision()===32?tot:eot}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=WT(n,u),e.texShape=p),s!=null){let m=kd(n),f,d=p[1],h=p[0],g=s instanceof Uint8Array||s instanceof Uint8ClampedArray;(u||!g)&&([d,h]=wa(p[0],p[1])),u?f=new Uw(m,g):f=new cg(m,g);let x=g?[h,d]:p,b=this.makeTensorInfo(x,o),w=this.texData.get(b.dataId);g?w.usage=Zr.PIXELS:w.usage=Zr.UPLOAD,w.texShape=x,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(b.dataId),d,h,s);let I=[[h,d]],N=!0,E=this.runWebGLProgram(f,[b],o,I,N),A=this.texData.get(E.dataId);e.texShape=A.texShape,e.isPacked=A.isPacked,e.usage=A.usage,L().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=iot(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 kh(),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?(Fw(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.values(this.binaryCache)){this.gpgpu.buildVao(t.webGLProgram);let{variablesLocations:e,customUniformLocations:n,infLoc:o,nanLoc:s,outShapeLocation:i,outShapeStridesLocation:a,outTexShapeLocation:u}=YT(this.gpgpu,t.program,t.webGLProgram);t.variablesLocations=e,t.customUniformLocations=n,t.infLoc=o,t.nanLoc=s,t.outShapeLocation=i,t.outShapeStridesLocation=a,t.outTexShapeLocation=u}}createTensorFromGPUData(t,e,n){t.channels=t.channels||"RGBA";let{texture:o,height:s,width:i,channels:a}=t,u=Vn().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 Vn().makeTensorFromDataId(l,e,n,u)}};ju.nextDataId=0;function iot(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 ju,2);var aDe={forceHalfFloat:Dz};var Pd=` + `}};var Not=jr.whereImpl,kot=1e-7,Tot=1e-4,rI={};function _ot(r){return r in rI||(rI[r]={}),rI[r]}var Eot=L().getNumber("CPU_HANDOFF_SIZE_THRESHOLD"),Aot=600;function Dot(){return L().global.screen==null?1024:L().global.screen.height*L().global.screen.width*window.devicePixelRatio*Aot/1024/1024}var Qu=class extends Uo{nextDataId(){return Qu.nextDataId++}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,!L().getBool("HAS_WEBGL"))throw new Error("WebGL is not supported on this device");let e;if(t!=null){if(t instanceof wp)e=t;else{let n=Yn(L().getNumber("WEBGL_VERSION"),t);e=new wp(n)}this.binaryCache={},this.gpgpuCreatedLocally=!1}else{let n=Yn(L().getNumber("WEBGL_VERSION"));e=new wp(n),this.binaryCache=_ot(L().getNumber("WEBGL_VERSION")),this.gpgpuCreatedLocally=!0}this.gpgpu=e,this.canvas=this.gpgpu.gl.canvas,this.textureManager=new tI(this.gpgpu),this.numMBBeforeWarning=Dot(),this.texData=new Da(this,Wn())}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=Td(e),c=new cg(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((L().getBool("WEBGL_CHECK_NUMERICAL_PROBLEMS")||L().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(L().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 Fn(a,Na):m=new Br(a,Na);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 Fn(o,Na):d=new Br(o,Na);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(L().getBool("DEBUG")&&!L().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&L().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"&&L().get("WEBGL_BUFFER_SUPPORTED")){c=this.decode(t);let d=this.texData.get(c.dataId);l=this.gpgpu.createBufferFromTexture(d.texture.texture,...ig(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)&&Wn().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 Fn(s,Na):f=new Br(s,Na);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=Wn().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(L().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 L().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.beginQuery():{startMs:y.now(),endMs:null}}endTimer(t){return L().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?(this.gpgpu.endQuery(),t):(t.endMs=y.now(),t)}async getQueryTime(t){if(L().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=Eot){return L().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 Wn().makeTensorFromTensorInfo(this.makeTensorInfo(t,e,n),this)}unpackTensor(t){let e=new eI(t.shape);return this.runWebGLProgram(e,[t],t.dtype)}packTensor(t){let e=new Qw(t.shape),n=!0;return this.runWebGLProgram(e,[t],t.dtype,null,n)}packedReshape(t,e){let n=[Vl(t.shape),...Gl(t.shape)],o={dtype:t.dtype,shape:n,dataId:t.dataId},s=[Vl(e),...Gl(e)],i=new Pd(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=Td(s),u;o?u=new Vw(a):u=new Bw(a);let l=!0,c=[e!=null?e:ig(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===Zu.DENSE){let x=i!=null?i:ig(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)<=L().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&&!Ju(b.shape,x.shape)){let w=x,I=x.shape;x.shape=b.shape,x=this.packedReshape(x,I),l.push(x),b=this.texData.get(x.dataId),w.shape=I}return{shape:x.shape,texData:b,isUniform:!1}});this.uploadToGPU(a.dataId);let p={shape:a.shape,texData:u,isUniform:!1},m=OL(t,c,p),f=this.getAndSaveBinary(m,()=>RL(this.gpgpu,t,c,p)),d=this.activeTimers!=null,h;d&&(h=this.startTimer()),L().get("ENGINE_COMPILE_ONLY")||FL(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=L().get("WEBGL_FLUSH_THRESHOLD");if(g>0){let x=y.now();x-this.lastGlFlushTime>g&&(this.gpgpu.gl.flush(),this.lastGlFlushTime=x)}if(!L().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||(L().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(!L().get("WEBGL_RENDER_FLOAT32_ENABLED")){let t=L().getBool("DEBUG");L().set("DEBUG",!1);let e=this.abs(ft(1e-8)).dataSync()[0];if(L().set("DEBUG",t),e>0)return 32}return 16})),this.floatPrecisionValue}epsilon(){return this.floatPrecision()===32?kot:Tot}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=YT(n,u),e.texShape=p),s!=null){let m=Td(n),f,d=p[1],h=p[0],g=s instanceof Uint8Array||s instanceof Uint8ClampedArray;(u||!g)&&([d,h]=Sa(p[0],p[1])),u?f=new Uw(m,g):f=new cg(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 I=[[h,d]],N=!0,E=this.runWebGLProgram(f,[b],o,I,N),A=this.texData.get(E.dataId);e.texShape=A.texShape,e.isPacked=A.isPacked,e.usage=A.usage,L().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=$ot(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 kh(),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?(Fw(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.values(this.binaryCache)){this.gpgpu.buildVao(t.webGLProgram);let{variablesLocations:e,customUniformLocations:n,infLoc:o,nanLoc:s,outShapeLocation:i,outShapeStridesLocation:a,outTexShapeLocation:u}=n1(this.gpgpu,t.program,t.webGLProgram);t.variablesLocations=e,t.customUniformLocations=n,t.infLoc=o,t.nanLoc=s,t.outShapeLocation=i,t.outShapeStridesLocation=a,t.outTexShapeLocation=u}}createTensorFromGPUData(t,e,n){t.channels=t.channels||"RGBA";let{texture:o,height:s,width:i,channels:a}=t,u=Wn().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 Wn().makeTensorFromDataId(l,e,n,u)}};Qu.nextDataId=0;function $ot(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 Qu,2);var JDe={forceHalfFloat:Wz};var Md=` if (isnan(a)) return a; if (isnan(b)) return b; -`;var mo=class{constructor(t,e,n){this.variableNames=["A","B"],this.outputShape=S.assertAndGetBroadcastShape(e,n),this.enableShapeUniforms=de(this.outputShape.length),this.userCode=` +`;var On=class{constructor(t,e,n){this.variableNames=["A","B"],this.outputShape=S.assertAndGetBroadcastShape(e,n),this.enableShapeUniforms=de(this.outputShape.length),this.userCode=` float binaryOperation(float a, float b) { ${t} } @@ -1254,12 +1254,12 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, float b = getBAtOutCoords(); setOutput(binaryOperation(a, b)); } - `}};var Yn=` + `}};var Qn=` 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 zo=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=de(s);let i="";if(o)if(s===0||y.sizeFromShape(this.outputShape)===1)i=` +`;var Jn=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=de(s);let i="";if(o)if(s===0||y.sizeFromShape(this.outputShape)===1)i=` result.y = 0.; result.z = 0.; result.w = 0.; @@ -1303,13 +1303,13 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(result); } - `}};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 $z={kernelName:xo,backendName:"webgl",kernelFunc:rr};function Fn(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 Rz={kernelName:Op,backendName:"webgl",kernelFunc:Fn};var g1="return (a < 0.) ? b * a : a;",x1=` + `}};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 Uz={kernelName:bo,backendName:"webgl",kernelFunc:rr};function Pn(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 Hz={kernelName:zp,backendName:"webgl",kernelFunc:Pn};var v1="return (a < 0.) ? b * a : a;",S1=` vec4 aLessThanZero = vec4(lessThan(a, vec4(0.))); return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a); -`;function aot(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{alpha:s}=n,i=e.makeTensorInfo([],"float32",y.createScalarValue(s,"float32")),a=L().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new zo(x1,o.shape,i.shape):new mo(g1,o.shape,i.shape),u=e.runWebGLProgram(a,[o,i],"float32");return e.disposeIntermediateTensorInfo(i),u}var Fz={kernelName:Is,backendName:"webgl",kernelFunc:aot};var y1="return (a < 0.) ? b * a : a;",b1=` +`;function Rot(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{alpha:s}=n,i=e.makeTensorInfo([],"float32",y.createScalarValue(s,"float32")),a=L().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Jn(S1,o.shape,i.shape):new On(v1,o.shape,i.shape),u=e.runWebGLProgram(a,[o,i],"float32");return e.disposeIntermediateTensorInfo(i),u}var qz={kernelName:vs,backendName:"webgl",kernelFunc:Rot};var N1="return (a < 0.) ? b * a : a;",k1=` vec4 aLessThanZero = vec4(lessThan(a, vec4(0.))); return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a); -`;function lot(r){let{inputs:t,backend:e}=r,{x:n,alpha:o}=t,s=L().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new zo(b1,n.shape,o.shape):new mo(y1,n.shape,o.shape);return e.runWebGLProgram(s,[n,o],"float32")}var Oz={kernelName:Ps,backendName:"webgl",kernelFunc:lot};var Bo="if (isnan(x)) return x;";function wt({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=L().getBool("WEBGL_PACK_UNARY_OPERATIONS")&&t!=null,c;return l?c=new Rn(i.shape,t):c=new zr(i.shape,r),a.runWebGLProgram(c,[i],u)}}function ue({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[I,N]=w,E={dataId:I.dataId,dtype:I.dtype,shape:u.shape},A={dataId:N.dataId,dtype:N.dtype,shape:l.shape},D=new mo(r,u.shape,l.shape);return c.runWebGLProgram(D,[E,A],ur(I.dtype,N.dtype))}),b=Fn({inputs:{real:g,imag:x},backend:c});return c.disposeIntermediateTensorInfo(g),c.disposeIntermediateTensorInfo(x),b}let p=s||ur(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),I=c.makeTensorInfo(w,p),N=c.texData.get(I.dataId);return N.values=b,I}let m=L().getBool("WEBGL_PACK_BINARY_OPERATIONS")&&t!=null,f;return m?f=new zo(t,u.shape,l.shape,e):f=new mo(r,u.shape,l.shape),c.runWebGLProgram(f,[u,l],p)}}function Vl(r,t=!1){if(r==="linear")return t?Nz:bz;if(r==="relu")return t?Tz:Iz;if(r==="elu")return t?kz:wz;if(r==="relu6")return t?_z:Cz;if(r==="prelu")return t?b1:y1;if(r==="leakyrelu")return t?x1:g1;if(r==="sigmoid")return t?Ez:vz;throw new Error(`Activation ${r} has not been implemented for the WebGL backend.`)}var Md=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=de(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 Fot(r){let{inputs:t,backend:e}=r,{x:n,alpha:o}=t,s=L().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Jn(k1,n.shape,o.shape):new On(N1,n.shape,o.shape);return e.runWebGLProgram(s,[n,o],"float32")}var Kz={kernelName:zs,backendName:"webgl",kernelFunc:Fot};var Vo="if (isnan(x)) return x;";function It({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=L().getBool("WEBGL_PACK_UNARY_OPERATIONS")&&t!=null,c;return l?c=new Fn(i.shape,t):c=new Br(i.shape,r),a.runWebGLProgram(c,[i],u)}}function ue({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[I,N]=w,E={dataId:I.dataId,dtype:I.dtype,shape:u.shape},A={dataId:N.dataId,dtype:N.dtype,shape:l.shape},D=new On(r,u.shape,l.shape);return c.runWebGLProgram(D,[E,A],ur(I.dtype,N.dtype))}),b=Pn({inputs:{real:g,imag:x},backend:c});return c.disposeIntermediateTensorInfo(g),c.disposeIntermediateTensorInfo(x),b}let p=s||ur(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),I=c.makeTensorInfo(w,p),N=c.texData.get(I.dataId);return N.values=b,I}let m=L().getBool("WEBGL_PACK_BINARY_OPERATIONS")&&t!=null,f;return m?f=new Jn(t,u.shape,l.shape,e):f=new On(r,u.shape,l.shape),c.runWebGLProgram(f,[u,l],p)}}function Wl(r,t=!1){if(r==="linear")return t?Mz:Dz;if(r==="relu")return t?zz:Rz;if(r==="elu")return t?Lz:$z;if(r==="relu6")return t?Bz:Fz;if(r==="prelu")return t?k1:N1;if(r==="leakyrelu")return t?S1:v1;if(r==="sigmoid")return t?Vz:Oz;throw new Error(`Activation ${r} has not been implemented for the WebGL backend.`)}var Ld=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=de(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) { @@ -1348,7 +1348,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(result); } - `}};var w1={REAL:"return areal * breal - aimag * bimag;",IMAG:"return areal * bimag + aimag * breal;"},mg=class{constructor(t,e,n){this.variableNames=["AReal","AImag","BReal","BImag"],this.outputShape=S.assertAndGetBroadcastShape(e,n),this.userCode=` + `}};var T1={REAL:"return areal * breal - aimag * bimag;",IMAG:"return areal * bimag + aimag * breal;"},mg=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} @@ -1361,7 +1361,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, float bimag = getBImagAtOutCoords(); setOutput(binaryOpComplex(areal, aimag, breal, bimag)); } - `}};var Pz="return a * b;";function fg(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 mg(w1.REAL,n.shape,o.shape),c=new mg(w1.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=Fn({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]=HL(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 L().getBool("WEBGL_PACK_BINARY_OPERATIONS")?i=new zo(Pz,n.shape,o.shape):i=new mo(Pz,n.shape,o.shape),e.runWebGLProgram(i,[n,o],s)}var Mz={kernelName:$s,backendName:"webgl",kernelFunc:fg};function Lz(r,t,e){let n=[zl(r.shape),...Bl(r.shape)],o={dtype:r.dtype,shape:n,dataId:r.dataId},s=[zl(t),...Bl(t)],i=new Od(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 rt(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&&!Ku(o.shape,u)&&!(c.texture!==null&&Ku(c.shape,u))?Lz(o,u,i):(i.incRef(o.dataId),{dataId:o.dataId,shape:u,dtype:o.dtype})}var zz={kernelName:Bi,backendName:"webgl",kernelFunc:rt};var dg=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 jz="return a * b;";function fg(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 mg(T1.REAL,n.shape,o.shape),c=new mg(T1.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=Pn({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]=nz(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 L().getBool("WEBGL_PACK_BINARY_OPERATIONS")?i=new Jn(jz,n.shape,o.shape):i=new On(jz,n.shape,o.shape),e.runWebGLProgram(i,[n,o],s)}var Xz={kernelName:Os,backendName:"webgl",kernelFunc:fg};function Yz(r,t,e){let n=[Vl(r.shape),...Gl(r.shape)],o={dtype:r.dtype,shape:n,dataId:r.dataId},s=[Vl(t),...Gl(t)],i=new Pd(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 rt(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&&!Ju(o.shape,u)&&!(c.texture!==null&&Ju(c.shape,u))?Yz(o,u,i):(i.incRef(o.dataId),{dataId:o.dataId,shape:u,dtype:o.dtype})}var Zz={kernelName:Ui,backendName:"webgl",kernelFunc:rt};var dg=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; } @@ -1506,12 +1506,12 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, } setOutput(${l}); } - `}};function cot(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 Zn(r,t,e,n){let o=cot(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=d1("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=zt(this.rank),s=I1("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=rt({inputs:{x:r},backend:o,attrs:{shape:N}}),D=rt({inputs:{x:t},backend:o,attrs:{shape:E}}),F=[A,D],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?Vl(u,!0):null,K=G||W||q||H!=null,X;if((f===1||d===1)&&V>I1&&K===!1){let et=A,nt=D;e&&(et=Pe({inputs:{x:A},backend:o,attrs:{perm:[0,2,1]}}),F.push(et)),n&&(nt=Pe({inputs:{x:D},backend:o,attrs:{perm:[0,2,1]}}),F.push(nt));let st=d!==1,at=d===1,ot=et;st&&(ot=rt({inputs:{x:et},backend:o,attrs:{shape:[P,V,1]}}),F.push(ot));let it=d===1?2:1,mt=nt;at&&(mt=rt({inputs:{x:nt},backend:o,attrs:{shape:[P,1,V]}}),F.push(mt));let gt=fg({inputs:{a:ot,b:mt},backend:o});X=xp({inputs:{x:gt},backend:o,attrs:{axis:it,keepDims:!0}}),F.push(gt)}else{let et=ur(r.dtype,t.dtype),nt=new Md(N,E,[P,f,d],e,n,G,H,W,q),st=[A,D];if(s!=null&&st.push(s),W&&st.push(i),q){let at=o.makeTensorInfo([],"float32",y.createScalarValue(a,"float32"));st.push(at),F.push(at)}X=o.runWebGLProgram(nt,st,et)}let Z=rt({inputs:{x:X},backend:o,attrs:{shape:I}});F.push(X);for(let et of F)o.disposeIntermediateTensorInfo(et);return Z}function mot(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 yp({a:o,b:s,transposeA:u,transposeB:l,backend:e,bias:i,preluActivationWeights:a,leakyreluAlpha:p,activation:c})}var Wz={kernelName:Ki,backendName:"webgl",kernelFunc:mot};var Uz="return abs(x);";function fot(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 L().getBool("WEBGL_PACK_UNARY_OPERATIONS")?o=new Rn(n.shape,Uz):o=new zr(n.shape,Uz),e.runWebGLProgram(o,[n],n.dtype)}var Hz={kernelName:_i,backendName:"webgl",kernelFunc:fot};var dot=yr+` + `}};function tc(r,t,e){let n=L().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new sI(r.shape,t):new oI(r.shape,t);return e.runWebGLProgram(n,[r],r.dtype)}function Jz(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=tc(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=rt({inputs:{x:c},attrs:{shape:[g,d]},backend:n}),b=xc(r.dtype),w=to(x,b,"sum",n),I=rt({inputs:{x:w},attrs:{shape:f},backend:n});return n.disposeIntermediateTensorInfo(x),n.disposeIntermediateTensorInfo(w),l&&n.disposeIntermediateTensorInfo(c),I}function Cp(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n;return Jz(o,s,i,e)}var Qz={kernelName:ri,backendName:"webgl",kernelFunc:Cp};function Pe(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=rt({inputs:{x:r},backend:o,attrs:{shape:N}}),D=rt({inputs:{x:t},backend:o,attrs:{shape:E}}),F=[A,D],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?Wl(u,!0):null,K=G||W||q||H!=null,X;if((f===1||d===1)&&V>_1&&K===!1){let et=A,nt=D;e&&(et=Pe({inputs:{x:A},backend:o,attrs:{perm:[0,2,1]}}),F.push(et)),n&&(nt=Pe({inputs:{x:D},backend:o,attrs:{perm:[0,2,1]}}),F.push(nt));let st=d!==1,at=d===1,ot=et;st&&(ot=rt({inputs:{x:et},backend:o,attrs:{shape:[P,V,1]}}),F.push(ot));let it=d===1?2:1,mt=nt;at&&(mt=rt({inputs:{x:nt},backend:o,attrs:{shape:[P,1,V]}}),F.push(mt));let gt=fg({inputs:{a:ot,b:mt},backend:o});X=Cp({inputs:{x:gt},backend:o,attrs:{axis:it,keepDims:!0}}),F.push(gt)}else{let et=ur(r.dtype,t.dtype),nt=new Ld(N,E,[P,f,d],e,n,G,H,W,q),st=[A,D];if(s!=null&&st.push(s),W&&st.push(i),q){let at=o.makeTensorInfo([],"float32",y.createScalarValue(a,"float32"));st.push(at),F.push(at)}X=o.runWebGLProgram(nt,st,et)}let Z=rt({inputs:{x:X},backend:o,attrs:{shape:I}});F.push(X);for(let et of F)o.disposeIntermediateTensorInfo(et);return Z}function Lot(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 vp({a:o,b:s,transposeA:u,transposeB:l,backend:e,bias:i,preluActivationWeights:a,leakyreluAlpha:p,activation:c})}var e3={kernelName:Zi,backendName:"webgl",kernelFunc:Lot};var r3="return abs(x);";function zot(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 L().getBool("WEBGL_PACK_UNARY_OPERATIONS")?o=new Fn(n.shape,r3):o=new Br(n.shape,r3),e.runWebGLProgram(o,[n],n.dtype)}var n3={kernelName:$i,backendName:"webgl",kernelFunc:zot};var Bot=yr+` if (abs(x) > 1.) { return NAN; } return acos(x); -`,hot=wt({opSnippet:dot}),qz={kernelName:Ho,backendName:"webgl",kernelFunc:hot};var got=yr+` +`,Vot=It({opSnippet:Bot}),o3={kernelName:qo,backendName:"webgl",kernelFunc:Vot};var Got=yr+` if (x < 1.0) return NAN; -return log(x + sqrt(x * x - 1.0));`,xot=wt({opSnippet:got}),Kz={kernelName:qo,backendName:"webgl",kernelFunc:xot};var jz="return a + b;",yot=ue({opSnippet:jz,packedOpSnippet:jz,supportsComplex:!0,cpuKernelImpl:NL}),Xz={kernelName:oo,backendName:"webgl",kernelFunc:yot};var iI=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));`,Wot=It({opSnippet:Got}),s3={kernelName:Ko,backendName:"webgl",kernelFunc:Wot};var i3="return a + b;",Uot=ue({opSnippet:i3,packedOpSnippet:i3,supportsComplex:!0,cpuKernelImpl:PL}),a3={kernelName:ao,backendName:"webgl",kernelFunc:Uot};var iI=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(` `)} @@ -1551,7 +1551,7 @@ return log(x + sqrt(x * x - 1.0));`,xot=wt({opSnippet:got}),Kz={kernelName:qo,ba vec4 result = ${o}; setOutput(result); } - `}};function lI(r){let{inputs:t,backend:e}=r,n=t;if(n.length===1)return rr({inputs:{x:n[0]},backend:e});if(n.length>L().get("WEBGL_MAX_TEXTURES_IN_SHADER")){let u=Math.floor(n.length/2),l=lI({inputs:n.slice(0,u),backend:e}),c=lI({inputs:n.slice(u),backend:e});return lI({inputs:[l,c],backend:e})}let o=n.map(u=>u.dtype).reduce((u,l)=>ur(u,l)),s=n.map(u=>u.shape),a=L().getBool("WEBGL_PACK")?new aI(n[0].shape,s):new iI(n[0].shape,s);return e.runWebGLProgram(a,n,o)}var Yz={kernelName:Ko,backendName:"webgl",kernelFunc:lI};function bot(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=Pe({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=rt({inputs:{x:p},backend:e,attrs:{shape:[-1,d]}}),g=Zn(h,h.dtype,"all",e),x;if(i){let b=S.expandShapeToKeepDim(m,u);x=rt({inputs:{x:g},backend:e,attrs:{shape:b}})}else x=rt({inputs:{x:g},backend:e,attrs:{shape:m}});return e.disposeIntermediateTensorInfo(h),e.disposeIntermediateTensorInfo(g),c!=null&&e.disposeIntermediateTensorInfo(p),x}var Zz={kernelName:Ea,backendName:"webgl",kernelFunc:bot};function wot(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=Pe({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=rt({inputs:{x:p},backend:e,attrs:{shape:[-1,d]}}),g=Zn(h,h.dtype,"any",e),x;if(i){let b=S.expandShapeToKeepDim(m,u);x=rt({inputs:{x:g},backend:e,attrs:{shape:b}})}else x=rt({inputs:{x:g},backend:e,attrs:{shape:m}});return e.disposeIntermediateTensorInfo(h),e.disposeIntermediateTensorInfo(g),c!=null&&e.disposeIntermediateTensorInfo(p),x}var Jz={kernelName:Aa,backendName:"webgl",kernelFunc:wot};var uI=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 lI(r){let{inputs:t,backend:e}=r,n=t;if(n.length===1)return rr({inputs:{x:n[0]},backend:e});if(n.length>L().get("WEBGL_MAX_TEXTURES_IN_SHADER")){let u=Math.floor(n.length/2),l=lI({inputs:n.slice(0,u),backend:e}),c=lI({inputs:n.slice(u),backend:e});return lI({inputs:[l,c],backend:e})}let o=n.map(u=>u.dtype).reduce((u,l)=>ur(u,l)),s=n.map(u=>u.shape),a=L().getBool("WEBGL_PACK")?new aI(n[0].shape,s):new iI(n[0].shape,s);return e.runWebGLProgram(a,n,o)}var l3={kernelName:jo,backendName:"webgl",kernelFunc:lI};function Hot(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=Pe({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=rt({inputs:{x:p},backend:e,attrs:{shape:[-1,d]}}),g=to(h,h.dtype,"all",e),x;if(i){let b=S.expandShapeToKeepDim(m,u);x=rt({inputs:{x:g},backend:e,attrs:{shape:b}})}else x=rt({inputs:{x:g},backend:e,attrs:{shape:m}});return e.disposeIntermediateTensorInfo(h),e.disposeIntermediateTensorInfo(g),c!=null&&e.disposeIntermediateTensorInfo(p),x}var u3={kernelName:Ra,backendName:"webgl",kernelFunc:Hot};function qot(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=Pe({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=rt({inputs:{x:p},backend:e,attrs:{shape:[-1,d]}}),g=to(h,h.dtype,"any",e),x;if(i){let b=S.expandShapeToKeepDim(m,u);x=rt({inputs:{x:g},backend:e,attrs:{shape:b}})}else x=rt({inputs:{x:g},backend:e,attrs:{shape:m}});return e.disposeIntermediateTensorInfo(h),e.disposeIntermediateTensorInfo(g),c!=null&&e.disposeIntermediateTensorInfo(p),x}var c3={kernelName:Fa,backendName:"webgl",kernelFunc:qot};var uI=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]; @@ -1633,25 +1633,25 @@ return log(x + sqrt(x * x - 1.0));`,xot=wt({opSnippet:got}),Kz={kernelName:qo,ba } setOutput(bestIndex); } - `}};function Qz(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 uI(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=Qz(r,t,e,c);return r.disposeIntermediateTensorInfo(c),p}function t3(r,t,e,n=null){let o=n!=null?n.shape:t.shape,s=o[o.length-1],i=S.computeOptimalWindowSize(s),a=new cI(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=t3(r,t,e,l);return r.disposeIntermediateTensorInfo(l),c}return l}function pI(r,t,e,n){let o=[e];if(S.assertAxesAreInnerMostDims("arg"+n.charAt(0).toUpperCase()+n.slice(1),o,t.shape.length),!L().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=rt({inputs:{x:u},backend:r,attrs:{shape:[-1,p]}});s.push(m);let f=Qz(r,m,n);s.push(f);let d=rt({inputs:{x:f},backend:r,attrs:{shape:l}});return s.forEach(h=>r.disposeIntermediateTensorInfo(h)),d}return t3(r,t,n)}function Iot(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=Pe({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=pI(e,u,i[0],"max");return l.forEach(p=>e.disposeIntermediateTensorInfo(p)),c}var e3={kernelName:Ei,backendName:"webgl",kernelFunc:Iot};function Cot(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=Pe({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=pI(e,u,i[0],"min");return l.forEach(p=>e.disposeIntermediateTensorInfo(p)),c}var r3={kernelName:Ai,backendName:"webgl",kernelFunc:Cot};var vot=yr+` + `}};function p3(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 uI(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=p3(r,t,e,c);return r.disposeIntermediateTensorInfo(c),p}function m3(r,t,e,n=null){let o=n!=null?n.shape:t.shape,s=o[o.length-1],i=S.computeOptimalWindowSize(s),a=new cI(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=m3(r,t,e,l);return r.disposeIntermediateTensorInfo(l),c}return l}function pI(r,t,e,n){let o=[e];if(S.assertAxesAreInnerMostDims("arg"+n.charAt(0).toUpperCase()+n.slice(1),o,t.shape.length),!L().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=rt({inputs:{x:u},backend:r,attrs:{shape:[-1,p]}});s.push(m);let f=p3(r,m,n);s.push(f);let d=rt({inputs:{x:f},backend:r,attrs:{shape:l}});return s.forEach(h=>r.disposeIntermediateTensorInfo(h)),d}return m3(r,t,n)}function Kot(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=Pe({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=pI(e,u,i[0],"max");return l.forEach(p=>e.disposeIntermediateTensorInfo(p)),c}var f3={kernelName:Ri,backendName:"webgl",kernelFunc:Kot};function jot(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=Pe({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=pI(e,u,i[0],"min");return l.forEach(p=>e.disposeIntermediateTensorInfo(p)),c}var d3={kernelName:Fi,backendName:"webgl",kernelFunc:jot};var Xot=yr+` if (abs(x) > 1.) { return NAN; } return asin(x); -`,Sot=wt({opSnippet:vot}),n3={kernelName:jo,backendName:"webgl",kernelFunc:Sot};var Not=yr+"return log(x + sqrt(x * x + 1.0));",kot=wt({opSnippet:Not}),o3={kernelName:Xo,backendName:"webgl",kernelFunc:kot};var Tot=yr+` +`,Yot=It({opSnippet:Xot}),h3={kernelName:Xo,backendName:"webgl",kernelFunc:Yot};var Zot=yr+"return log(x + sqrt(x * x + 1.0));",Jot=It({opSnippet:Zot}),g3={kernelName:Yo,backendName:"webgl",kernelFunc:Jot};var Qot=yr+` return atan(x); -`,_ot=wt({opSnippet:Tot}),s3={kernelName:Yo,backendName:"webgl",kernelFunc:_ot};var Eot=Pd+` +`,tst=It({opSnippet:Qot}),x3={kernelName:Zo,backendName:"webgl",kernelFunc:tst};var est=Md+` return atan(a, b); -`,Aot=` +`,rst=` 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); - `+Yn+` + `+Qn+` return result; -`,Dot=ue({opSnippet:Eot,packedOpSnippet:Aot}),i3={kernelName:Jo,backendName:"webgl",kernelFunc:Dot};var $ot=yr+` +`,nst=ue({opSnippet:est,packedOpSnippet:rst}),y3={kernelName:Qo,backendName:"webgl",kernelFunc:nst};var ost=yr+` if ((x < -1.0) || (x > 1.0)) return NAN; -return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Rot=wt({opSnippet:$ot}),a3={kernelName:Zo,backendName:"webgl",kernelFunc:Rot};var vi=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 D=">=";this.userCode=` +return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,sst=It({opSnippet:ost}),b3={kernelName:Jo,backendName:"webgl",kernelFunc:sst};var Ti=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 D=">=";this.userCode=` const ivec2 strides = ivec2(${a}, ${u}); const ivec2 pads = ivec2(${f}, ${d}); @@ -1792,7 +1792,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Rot=wt({opSnippet:$ot}),a3={kernelN } setOutput(${I}); } - `}},Yu=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",I="0.0";if(w||(I="-1.0 / 1e-20"),n){let P=">=";this.userCode=` + `}},ec=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",I="0.0";if(w||(I="-1.0 / 1e-20"),n){let P=">=";this.userCode=` const ivec3 strides = ivec3(${a}, ${u}, ${l}); const ivec3 pads = ivec3(${g}, ${x}, ${b}); @@ -1955,7 +1955,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Rot=wt({opSnippet:$ot}),a3={kernelN } setOutput(${E}); } - `}};function Fot(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t;Ii(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 vi(c,"avg",!1);return e.runWebGLProgram(p,[o],"float32")}var l3={kernelName:Qo,backendName:"webgl",kernelFunc:Fot};function Oot(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 Yu(p,"avg",!1);return e.runWebGLProgram(m,[o],"float32")}var u3={kernelName:Di,backendName:"webgl",kernelFunc:Oot};var mI=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 ist(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t;Ni(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 Ti(c,"avg",!1);return e.runWebGLProgram(p,[o],"float32")}var w3={kernelName:ts,backendName:"webgl",kernelFunc:ist};function ast(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 ec(p,"avg",!1);return e.runWebGLProgram(m,[o],"float32")}var I3={kernelName:Oi,backendName:"webgl",kernelFunc:ast};var mI=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}); @@ -2053,7 +2053,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Rot=wt({opSnippet:$ot}),a3={kernelN } setOutput(dotProd); } - `}};function Pot(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 fI(m);return e.runWebGLProgram(f,[o],i.dtype)}var c3={kernelName:Xl,backendName:"webgl",kernelFunc:Pot};function Mot(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,i=s;Ii([o,s],"avgPoolGrad");let{filterSize:a,strides:u,pad:l}=n,c=S.computePool2DInfo(i.shape,a,u,1,l),p=new mI(c);return e.runWebGLProgram(p,[o],i.dtype)}var p3={kernelName:Fp,backendName:"webgl",kernelFunc:Mot};function Lot(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s}=t,{transposeA:i,transposeB:a}=n;return yp({a:o,b:s,transposeA:i,transposeB:a,backend:e})}var m3={kernelName:ts,backendName:"webgl",kernelFunc:Lot};var dI=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=` + `}};function lst(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 fI(m);return e.runWebGLProgram(f,[o],i.dtype)}var C3={kernelName:Jl,backendName:"webgl",kernelFunc:lst};function ust(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,i=s;Ni([o,s],"avgPoolGrad");let{filterSize:a,strides:u,pad:l}=n,c=S.computePool2DInfo(i.shape,a,u,1,l),p=new mI(c);return e.runWebGLProgram(p,[o],i.dtype)}var v3={kernelName:Zl,backendName:"webgl",kernelFunc:ust};function cst(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s}=t,{transposeA:i,transposeB:a}=n;return vp({a:o,b:s,transposeA:i,transposeB:a,backend:e})}var S3={kernelName:es,backendName:"webgl",kernelFunc:cst};var dI=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(); @@ -2076,7 +2076,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Rot=wt({opSnippet:$ot}),a3={kernelN setOutput((x - mean) * inv + offset); } - `}};var zot=({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=L().getBool("WEBGL_PACK_NORMALIZATION")?new hI(n.shape,o.shape,s.shape,c,p,u):new dI(n.shape,o.shape,s.shape,c,p,u);return t.runWebGLProgram(m,l,l[0].dtype)},f3={kernelName:gs,backendName:"webgl",kernelFunc:zot};var gI=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=Bot(this.rank),o,s=t.map((i,a)=>`sourceLoc.${C1[a]} = start[${a}] + coords.${C1[a]};`);o=` + `}};var pst=({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=L().getBool("WEBGL_PACK_NORMALIZATION")?new hI(n.shape,o.shape,s.shape,c,p,u):new dI(n.shape,o.shape,s.shape,c,p,u);return t.runWebGLProgram(m,l,l[0].dtype)},N3={kernelName:ys,backendName:"webgl",kernelFunc:pst};var gI=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=mst(this.rank),o,s=t.map((i,a)=>`sourceLoc.${E1[a]} = start[${a}] + coords.${E1[a]};`);o=` ${e} sourceLoc; ${e} coords = getOutputCoords(); ${s.join(` @@ -2086,7 +2086,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Rot=wt({opSnippet:$ot}),a3={kernelN ${o} setOutput(getSource(${n})); } - `}},C1=["x","y","z","w","u","v"];function Bot(r){if(r===1)return"sourceLoc";if(r<=6)return C1.slice(0,r).map(t=>"sourceLoc."+t).join(",");throw Error(`Slicing for rank ${r} is not yet supported`)}var xI=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=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=` + `}},E1=["x","y","z","w","u","v"];function mst(r){if(r===1)return"sourceLoc";if(r<=6)return E1.slice(0,r).map(t=>"sourceLoc."+t).join(",");throw Error(`Slicing for rank ${r} is not yet supported`)}var xI=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=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]}; @@ -2115,7 +2115,15 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Rot=wt({opSnippet:$ot}),a3={kernelN ${u} setOutput(result); } - `}};function Vot(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=ze.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]=ze.parseSliceParams(o,s,i);if(ze.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=rz(p.values,a,u,o.shape,o.dtype);return e.makeTensorInfo(u,o.dtype,m)}let{isPacked:l}=e.texData.get(o.dataId),c=ze.isSliceContinous(o.shape,a,u);if(l||!c){let p=L().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new xI(u):new gI(u),m=[a];return e.runWebGLProgram(p,[o],o.dtype,m)}return e.uploadToGPU(o.dataId),Vot(o,a,u,e)}var d3={kernelName:Gi,backendName:"webgl",kernelFunc:Si};var Got=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=rt({inputs:{x:o},backend:e,attrs:{shape:u}}),h=Pe({inputs:{x:d},backend:e,attrs:{perm:l}}),g=rt({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},h3={kernelName:$i,backendName:"webgl",kernelFunc:Got};function Wot(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=Yw(a,u,s.dtype,s.shape,i);return e.makeTensorInfo([i],s.dtype,l)}var g3={kernelName:Da,backendName:"webgl",kernelFunc:Wot};function Uot(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 x3={kernelName:Yl,backendName:"webgl",kernelFunc:Uot};var Hot="return float(a != b);",v1=ue({opSnippet:Hot,cpuKernelImpl:KL,dtype:"bool"}),y3={kernelName:Ja,backendName:"webgl",kernelFunc:v1};function Gl(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 b3={kernelName:jp,backendName:"webgl",kernelFunc:Gl};var qot="return float(int(x));";function w3(r,t){let e=new zr(r.shape,qot),n=t.runWebGLProgram(e,[r],"int32");return{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}function S1(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=Te(o.shape),a=S1({inputs:{x:o},backend:e,attrs:{dtype:"float32"}}),u=Fn({inputs:{real:a,imag:i},backend:e});return i.dispose(),e.disposeIntermediateTensorInfo(a),u}if(o.dtype==="complex64"){let i=Gl({inputs:{input:o},backend:e}),a=S1({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]=TL(i,o.shape,o.dtype,s);return e.makeTensorInfo(a,u,l)}if(s==="int32")return w3(o,e);if(s==="bool"){let i=e.makeTensorInfo([],"bool",y.getTypedArrayFromDType("bool",1)),u=v1({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 I3={kernelName:ho,backendName:"webgl",kernelFunc:S1};var C3="return ceil(x);",Kot=wt({opSnippet:C3,packedOpSnippet:C3,cpuKernelImpl:_L}),v3={kernelName:es,backendName:"webgl",kernelFunc:Kot};var yI=class{constructor(t){this.variableNames=["A"],this.customUniforms=[{name:"minVal",type:"float"},{name:"maxVal",type:"float"}],this.outputShape=t,this.userCode=` + `}};function fst(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=ze.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 _i(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,size:i}=n,[a,u]=ze.parseSliceParams(o,s,i);if(ze.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=dz(p.values,a,u,o.shape,o.dtype);return e.makeTensorInfo(u,o.dtype,m)}let{isPacked:l}=e.texData.get(o.dataId),c=ze.isSliceContinous(o.shape,a,u);if(l||!c){let p=L().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new xI(u):new gI(u),m=[a];return e.runWebGLProgram(p,[o],o.dtype,m)}return e.uploadToGPU(o.dataId),fst(o,a,u,e)}var k3={kernelName:qi,backendName:"webgl",kernelFunc:_i};var dst=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=rt({inputs:{x:o},backend:e,attrs:{shape:u}}),h=Pe({inputs:{x:d},backend:e,attrs:{perm:l}}),g=rt({inputs:{x:h},backend:e,attrs:{shape:c}}),x=_i({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},T3={kernelName:Pi,backendName:"webgl",kernelFunc:dst};function hst(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=Yw(a,u,s.dtype,s.shape,i);return e.makeTensorInfo([i],s.dtype,l)}var _3={kernelName:Oa,backendName:"webgl",kernelFunc:hst};var gst=` + int r = int(a.r) & int(b.r); + int g = int(a.g) & int(b.g); + int rb = int(a.b) & int(b.b); + int ra = int(a.a) & int(b.a); + return vec4(r, g, rb, ra); +`,xst=` + return float(int(a.r) & int(b.r)); +`;function yst(r){let{inputs:t,backend:e}=r,{a:n,b:o}=t,s=L().getBool("WEBGL_PACK_BINARY_OPERATIONS"),i=L().getNumber("WEBGL_VERSION");if(e.shouldExecuteOnCPU([n,o])||i===1){let u=e.texData.get(n.dataId).values,l=e.texData.get(o.dataId).values,[c,p]=LL(n.shape,o.shape,u,l,n.dtype),m=e.makeTensorInfo(p,n.dtype),f=e.texData.get(m.dataId);return f.values=c,m}let a;return s?a=new Jn(gst,n.shape,o.shape,!1):a=new On(xst,n.shape,o.shape),e.runWebGLProgram(a,[n,o],n.dtype)}var E3={kernelName:Pa,backendName:"webgl",kernelFunc:yst};function bst(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 A3={kernelName:Ql,backendName:"webgl",kernelFunc:bst};var wst="return float(a != b);",A1=ue({opSnippet:wst,cpuKernelImpl:sz,dtype:"bool"}),D3={kernelName:el,backendName:"webgl",kernelFunc:A1};function Ul(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 $3={kernelName:Yp,backendName:"webgl",kernelFunc:Ul};var Ist="return float(int(x));";function R3(r,t){let e=new Br(r.shape,Ist),n=t.runWebGLProgram(e,[r],"int32");return{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}function D1(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=Te(o.shape),a=D1({inputs:{x:o},backend:e,attrs:{dtype:"float32"}}),u=Pn({inputs:{real:a,imag:i},backend:e});return i.dispose(),e.disposeIntermediateTensorInfo(a),u}if(o.dtype==="complex64"){let i=Ul({inputs:{input:o},backend:e}),a=D1({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]=zL(i,o.shape,o.dtype,s);return e.makeTensorInfo(a,u,l)}if(s==="int32")return R3(o,e);if(s==="bool"){let i=e.makeTensorInfo([],"bool",y.getTypedArrayFromDType("bool",1)),u=A1({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 F3={kernelName:xo,backendName:"webgl",kernelFunc:D1};var O3="return ceil(x);",Cst=It({opSnippet:O3,packedOpSnippet:O3,cpuKernelImpl:BL}),P3={kernelName:rs,backendName:"webgl",kernelFunc:Cst};var yI=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(); @@ -2137,7 +2145,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Rot=wt({opSnippet:$ot}),a3={kernelN setOutput(clamp(value, vec4(minVal), vec4(maxVal))); } - `}};function jot(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{clipValueMin:s,clipValueMax:i}=n,a;L().getBool("WEBGL_PACK_CLIP")?a=new bI(o.shape):a=new yI(o.shape);let u=[[s],[i]];return e.runWebGLProgram(a,[o],o.dtype,u)}var S3={kernelName:go,backendName:"webgl",kernelFunc:jot};var wI=class{constructor(t){this.variableNames=["real","imag"],this.outputShape=t,this.userCode=` + `}};function vst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{clipValueMin:s,clipValueMax:i}=n,a;L().getBool("WEBGL_PACK_CLIP")?a=new bI(o.shape):a=new yI(o.shape);let u=[[s],[i]];return e.runWebGLProgram(a,[o],o.dtype,u)}var M3={kernelName:yo,backendName:"webgl",kernelFunc:vst};var wI=class{constructor(t){this.variableNames=["real","imag"],this.outputShape=t,this.userCode=` void main() { float re = abs(getRealAtOutCoords()); float im = abs(getImagAtOutCoords()); @@ -2150,7 +2158,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Rot=wt({opSnippet:$ot}),a3={kernelN mx == 0.0 ? 0.0 : mx * length(vec2(1, min(re, im)/mx)) ); } - `}};function N3(r,t){return{dataId:t.dataId,dtype:t.dtype,shape:r.shape}}function Xot(r){let{inputs:t,backend:e}=r,{x:n}=t,o=e.texData.get(n.dataId),s=new wI(n.shape),i=[N3(n,o.complexTensorInfos.real),N3(n,o.complexTensorInfos.imag)];return e.runWebGLProgram(s,i,i[0].dtype)}var k3={kernelName:Zl,backendName:"webgl",kernelFunc:Xot};var II=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${a}`);let e=new Array(t.length-1);e[0]=t[0][1];for(let i=1;ii===n?`${s} - ${e}`:s).join()}function bp(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 T3={kernelName:Gp,backendName:"webgl",kernelFunc:bp};function Ld(r,t,e){let n=r[0].dtype;if(n==="complex64"){let f=r.map(b=>Gl({inputs:{input:b},backend:e})),d=r.map(b=>bp({inputs:{input:b},backend:e})),h=Ld(f,t,e),g=Ld(d,t,e),x=Fn({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(I=>{let E=[-1,y.sizeFromShape(I.shape.slice(t))];return rt({inputs:{x:I},backend:e,attrs:{shape:E}})}),d=f.map(I=>({vals:e.readSync(I.dataId),shape:I.shape})),h=S.computeOutShape(f.map(I=>I.shape),1),g=f[0].shape[0]===1,x=EL(d,h,n,g),b=S.computeOutShape(r.map(I=>I.shape),t),w=e.makeTensorInfo(b,n,x);return f.forEach(I=>e.disposeIntermediateTensorInfo(I)),w}let s=r.filter(f=>y.sizeFromShape(f.shape)>0),i=L().getBool("WEBGL_PACK_ARRAY_OPERATIONS")&&s[0].shape.length>1;if(s.length===1){let f=i?new zr(r[0].shape,Ia):new Rn(r[0].shape,Ia);return e.runWebGLProgram(f,r,n)}let a=L().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}=Yot(s,t,e),c=new II(u.map(f=>f.shape)),p=e.runWebGLProgram(c,u,n);u.forEach(f=>e.disposeIntermediateTensorInfo(f));let m=rt({inputs:{x:p},attrs:{shape:l},backend:e});return e.disposeIntermediateTensorInfo(p),m}function Yot(r,t,e){let n=S.computeOutShape(r.map(s=>s.shape),t);return{tensors2D:r.map(s=>rt({inputs:{x:s},attrs:{shape:[-1,y.sizeFromShape(s.shape.slice(t))]},backend:e})),outShape:n}}function N1(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}):Ld(u,s,e)}var _3={kernelName:Ri,backendName:"webgl",kernelFunc:N1};var zd=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,I="",N="";n&&(o?I=`float activation(float a) { + `}};function CI(r,t,e){let n=r.indexOf(t);return r.map((s,i)=>i===n?`${s} - ${e}`:s).join()}function Sp(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 B3={kernelName:qp,backendName:"webgl",kernelFunc:Sp};function zd(r,t,e){let n=r[0].dtype;if(n==="complex64"){let f=r.map(b=>Ul({inputs:{input:b},backend:e})),d=r.map(b=>Sp({inputs:{input:b},backend:e})),h=zd(f,t,e),g=zd(d,t,e),x=Pn({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(I=>{let E=[-1,y.sizeFromShape(I.shape.slice(t))];return rt({inputs:{x:I},backend:e,attrs:{shape:E}})}),d=f.map(I=>({vals:e.readSync(I.dataId),shape:I.shape})),h=S.computeOutShape(f.map(I=>I.shape),1),g=f[0].shape[0]===1,x=VL(d,h,n,g),b=S.computeOutShape(r.map(I=>I.shape),t),w=e.makeTensorInfo(b,n,x);return f.forEach(I=>e.disposeIntermediateTensorInfo(I)),w}let s=r.filter(f=>y.sizeFromShape(f.shape)>0),i=L().getBool("WEBGL_PACK_ARRAY_OPERATIONS")&&s[0].shape.length>1;if(s.length===1){let f=i?new Br(r[0].shape,Na):new Fn(r[0].shape,Na);return e.runWebGLProgram(f,r,n)}let a=L().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}=Nst(s,t,e),c=new II(u.map(f=>f.shape)),p=e.runWebGLProgram(c,u,n);u.forEach(f=>e.disposeIntermediateTensorInfo(f));let m=rt({inputs:{x:p},attrs:{shape:l},backend:e});return e.disposeIntermediateTensorInfo(p),m}function Nst(r,t,e){let n=S.computeOutShape(r.map(s=>s.shape),t);return{tensors2D:r.map(s=>rt({inputs:{x:s},attrs:{shape:[-1,y.sizeFromShape(s.shape.slice(t))]},backend:e})),outShape:n}}function $1(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}):zd(u,s,e)}var V3={kernelName:Mi,backendName:"webgl",kernelFunc:$1};var Bd=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,I="",N="";n&&(o?I=`float activation(float a) { float b = getPreluActivationWeightsAtOutCoords(); ${n} }`:s?I=`float activation(float a) { @@ -2418,7 +2426,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Rot=wt({opSnippet:$ot}),a3={kernelN } setOutput(dotProd); } - `}};var Bd=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=de(this.outputShape.length);let i=t.padInfo.left,a=t.strideWidth,u=t.dilationWidth,l=t.filterHeight,c=t.filterWidth,p=c,m=` + `}};var Vd=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=de(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 TI({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 I=kI(s.shape,f);I!=null&&(s=rt({inputs:{x:s},backend:n,attrs:{shape:I}}),x.push(s))}if(o!=null){let I=kI(o.shape,f);I!=null&&(o=rt({inputs:{x:o},backend:n,attrs:{shape:I}}),x.push(o))}if(!((p===1||m===1)&&c>I1)&&l.isPacked&&f&&l.texture!=null&&u[2]%2!==0&&y.arraysEqual(l.shape.slice(-3),u.slice(-3))){let I=u[0]*u[1]*(u[2]+1),N={dataId:r.dataId,shape:[1,I,e.inChannels],dtype:r.dtype},E=l.shape;l.shape=l.shape.slice(),l.shape[l.shape.length-2]++,y.assert(Ku(l.shape,N.shape),()=>`packed reshape ${l.shape} to ${N.shape} isn't free`);let A=rt({inputs:{x:t},backend:n,attrs:{shape:[1,e.inChannels,e.outChannels]}});x.push(A);let D=yp({a:N,b:A,backend:n,transposeA:d,transposeB:h,bias:o,activation:a,preluActivationWeights:s,leakyreluAlpha:i}),F=n.texData.get(D.dataId);y.assert(F.isPacked,()=>"batchMatMul result is expected to be packed"),l.shape=E,F.shape=e.outShape,g=rr({inputs:{x:D},backend:n}),g.shape=e.outShape,x.push(D)}else{let I=e.outHeight*e.outWidth,N=rt({inputs:{x:r},backend:n,attrs:{shape:f?[e.batchSize,I,e.inChannels]:[e.batchSize,e.inChannels,I]}}),E=rt({inputs:{x:t},backend:n,attrs:{shape:[1,e.inChannels,e.outChannels]}}),A=yp({a:f?N:E,b:f?E:N,transposeA:!f,transposeB:h,backend:n,bias:o,activation:a,preluActivationWeights:s,leakyreluAlpha:i});g=rt({inputs:{x:A},backend:n,attrs:{shape:e.outShape}}),x.push(N),x.push(E),x.push(A)}for(let I of x)n.disposeIntermediateTensorInfo(I);return g}function _I({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,I=[];if(s!=null){let Z=kI(s.shape,d);Z!=null&&(s=rt({inputs:{x:s},backend:n,attrs:{shape:Z}}),I.push(s))}if(o!=null){let Z=kI(o.shape,d);Z!=null&&(o=rt({inputs:{x:o},backend:n,attrs:{shape:Z}}),I.push(o))}let N=rt({inputs:{x:t},backend:n,attrs:{shape:[1,h,y.sizeFromShape(t.shape)/h]}});I.push(N);let E=new NI(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]],D=n.runWebGLProgram(E,[r],"float32",A),F=rt({inputs:{x:D},backend:n,attrs:{shape:x}});I.push(D),I.push(F);let P=o!=null,V=s!=null,G=a==="leakyrelu",W=a?Vl(a,!0):null,q=new Md(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),I.push(Z)}let K=n.runWebGLProgram(q,H,"float32"),X=rt({inputs:{x:K},backend:n,attrs:{shape:e.outShape}});I.push(K);for(let Z of I)n.disposeIntermediateTensorInfo(Z);return X}function Zot(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=TI({x:o,filter:s,convInfo:m,backend:e});else if(m.strideWidth<=2&&p==="channelsLast"&&L().getBool("WEBGL_EXP_CONV")){let h=new Bd(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(L().getBool("WEBGL_CONV_IM2COL"))f=_I({x:o,filter:s,convInfo:m,backend:e});else{let h=new zd(m);f=e.runWebGLProgram(h,[o,s],"float32")}let d=rt({inputs:{x:f},backend:e,attrs:{shape:m.outShape}});return e.disposeIntermediateTensorInfo(f),d}var E3={kernelName:rs,backendName:"webgl",kernelFunc:Zot};var EI=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 kI(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 TI({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 I=kI(s.shape,f);I!=null&&(s=rt({inputs:{x:s},backend:n,attrs:{shape:I}}),x.push(s))}if(o!=null){let I=kI(o.shape,f);I!=null&&(o=rt({inputs:{x:o},backend:n,attrs:{shape:I}}),x.push(o))}if(!((p===1||m===1)&&c>_1)&&l.isPacked&&f&&l.texture!=null&&u[2]%2!==0&&y.arraysEqual(l.shape.slice(-3),u.slice(-3))){let I=u[0]*u[1]*(u[2]+1),N={dataId:r.dataId,shape:[1,I,e.inChannels],dtype:r.dtype},E=l.shape;l.shape=l.shape.slice(),l.shape[l.shape.length-2]++,y.assert(Ju(l.shape,N.shape),()=>`packed reshape ${l.shape} to ${N.shape} isn't free`);let A=rt({inputs:{x:t},backend:n,attrs:{shape:[1,e.inChannels,e.outChannels]}});x.push(A);let D=vp({a:N,b:A,backend:n,transposeA:d,transposeB:h,bias:o,activation:a,preluActivationWeights:s,leakyreluAlpha:i}),F=n.texData.get(D.dataId);y.assert(F.isPacked,()=>"batchMatMul result is expected to be packed"),l.shape=E,F.shape=e.outShape,g=rr({inputs:{x:D},backend:n}),g.shape=e.outShape,x.push(D)}else{let I=e.outHeight*e.outWidth,N=rt({inputs:{x:r},backend:n,attrs:{shape:f?[e.batchSize,I,e.inChannels]:[e.batchSize,e.inChannels,I]}}),E=rt({inputs:{x:t},backend:n,attrs:{shape:[1,e.inChannels,e.outChannels]}}),A=vp({a:f?N:E,b:f?E:N,transposeA:!f,transposeB:h,backend:n,bias:o,activation:a,preluActivationWeights:s,leakyreluAlpha:i});g=rt({inputs:{x:A},backend:n,attrs:{shape:e.outShape}}),x.push(N),x.push(E),x.push(A)}for(let I of x)n.disposeIntermediateTensorInfo(I);return g}function _I({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,I=[];if(s!=null){let Z=kI(s.shape,d);Z!=null&&(s=rt({inputs:{x:s},backend:n,attrs:{shape:Z}}),I.push(s))}if(o!=null){let Z=kI(o.shape,d);Z!=null&&(o=rt({inputs:{x:o},backend:n,attrs:{shape:Z}}),I.push(o))}let N=rt({inputs:{x:t},backend:n,attrs:{shape:[1,h,y.sizeFromShape(t.shape)/h]}});I.push(N);let E=new NI(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]],D=n.runWebGLProgram(E,[r],"float32",A),F=rt({inputs:{x:D},backend:n,attrs:{shape:x}});I.push(D),I.push(F);let P=o!=null,V=s!=null,G=a==="leakyrelu",W=a?Wl(a,!0):null,q=new Ld(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),I.push(Z)}let K=n.runWebGLProgram(q,H,"float32"),X=rt({inputs:{x:K},backend:n,attrs:{shape:e.outShape}});I.push(K);for(let Z of I)n.disposeIntermediateTensorInfo(Z);return X}function kst(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=TI({x:o,filter:s,convInfo:m,backend:e});else if(m.strideWidth<=2&&p==="channelsLast"&&L().getBool("WEBGL_EXP_CONV")){let h=new Vd(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(L().getBool("WEBGL_CONV_IM2COL"))f=_I({x:o,filter:s,convInfo:m,backend:e});else{let h=new Bd(m);f=e.runWebGLProgram(h,[o,s],"float32")}let d=rt({inputs:{x:f},backend:e,attrs:{shape:m.outShape}});return e.disposeIntermediateTensorInfo(f),d}var G3={kernelName:ns,backendName:"webgl",kernelFunc:kst};var EI=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; @@ -2850,7 +2858,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Rot=wt({opSnippet:$ot}),a3={kernelN } setOutput(dotProd); } - `}};function Jot(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 EI(m);return e.runWebGLProgram(f,[o,s],"float32")}var A3={kernelName:Pp,backendName:"webgl",kernelFunc:Jot};var RI=class{constructor(t){this.variableNames=["dy","W"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"strides",type:"vec2"}],this.outputShape=t.inShape,this.enableShapeUniforms=de(this.outputShape.length);let e=t.filterHeight,n=t.filterWidth,o=e-1-t.padInfo.top,s=n-1-t.padInfo.left;this.userCode=` + `}};function Tst(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 EI(m);return e.runWebGLProgram(f,[o,s],"float32")}var W3={kernelName:Bp,backendName:"webgl",kernelFunc:Tst};var RI=class{constructor(t){this.variableNames=["dy","W"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"strides",type:"vec2"}],this.outputShape=t.inShape,this.enableShapeUniforms=de(this.outputShape.length);let e=t.filterHeight,n=t.filterWidth,o=e-1-t.padInfo.top,s=n-1-t.padInfo.left;this.userCode=` const ivec2 pads = ivec2(${o}, ${s}); void main() { @@ -2924,17 +2932,17 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Rot=wt({opSnippet:$ot}),a3={kernelN } setOutput(result); } - `}};function Qot(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);if(L().getBool("WEBGL_PACK")&&p==="channelsLast"){let f=[[m.strideHeight,m.strideWidth]],d=new RI(m);return e.runWebGLProgram(d,[o,s],"float32",f)}else{let f=new AI(m);return e.runWebGLProgram(f,[o,s],"float32")}}var D3={kernelName:ns,backendName:"webgl",kernelFunc:Qot};function tst(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 SI(l);return e.runWebGLProgram(c,[o,s],"float32")}var $3={kernelName:os,backendName:"webgl",kernelFunc:tst};function est(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 DI(l);return e.runWebGLProgram(c,[o,s],"float32")}var R3={kernelName:$a,backendName:"webgl",kernelFunc:est};function rst(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 $I(l);return e.runWebGLProgram(c,[o,s],"float32")}var F3={kernelName:Ra,backendName:"webgl",kernelFunc:rst};var nst=Bo+` + `}};function _st(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);if(L().getBool("WEBGL_PACK")&&p==="channelsLast"){let f=[[m.strideHeight,m.strideWidth]],d=new RI(m);return e.runWebGLProgram(d,[o,s],"float32",f)}else{let f=new AI(m);return e.runWebGLProgram(f,[o,s],"float32")}}var U3={kernelName:os,backendName:"webgl",kernelFunc:_st};function Est(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 SI(l);return e.runWebGLProgram(c,[o,s],"float32")}var H3={kernelName:ss,backendName:"webgl",kernelFunc:Est};function Ast(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 DI(l);return e.runWebGLProgram(c,[o,s],"float32")}var q3={kernelName:Ma,backendName:"webgl",kernelFunc:Ast};function Dst(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 $I(l);return e.runWebGLProgram(c,[o,s],"float32")}var K3={kernelName:La,backendName:"webgl",kernelFunc:Dst};var $st=Vo+` return cos(x); -`,ost=` +`,Rst=` vec4 result = cos(x); bvec4 isNaN = isnan(x); - ${Yn} + ${Qn} return result; -`,sst=wt({opSnippet:nst,packedOpSnippet:ost}),O3={kernelName:ss,backendName:"webgl",kernelFunc:sst};var ist=` +`,Fst=It({opSnippet:$st,packedOpSnippet:Rst}),j3={kernelName:is,backendName:"webgl",kernelFunc:Fst};var Ost=` float e2x = exp(-x); return (e2x + 1.0 / e2x) / 2.0; -`,ast=wt({opSnippet:ist}),P3={kernelName:is,backendName:"webgl",kernelFunc:ast};var FI=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,I,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=` +`,Pst=It({opSnippet:Ost}),X3={kernelName:as,backendName:"webgl",kernelFunc:Pst};var FI=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,I,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() { @@ -2995,20 +3003,20 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Rot=wt({opSnippet:$ot}),a3={kernelN setOutput(newValue); } } - `}};var lst=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 FI(o.shape,s.shape,a,u,l);return e.runWebGLProgram(c,[o,s,i],"float32")},M3={kernelName:Oa,backendName:"webgl",kernelFunc:lst};var wp;(function(r){r.Prod="*",r.Sum="+"})(wp||(wp={}));var hg=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===wp.Prod?"1.0":"0.0",a=n?i:`getX(${L3(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 Mst=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 FI(o.shape,s.shape,a,u,l);return e.runWebGLProgram(c,[o,s,i],"float32")},Y3={kernelName:Ba,backendName:"webgl",kernelFunc:Mst};var Np;(function(r){r.Prod="*",r.Sum="+"})(Np||(Np={}));var hg=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===Np.Prod?"1.0":"0.0",a=n?i:`getX(${Z3(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 = ${z3(s,"coords",this.op)}; + int end = ${J3(s,"coords",this.op)}; float val = ${a}; int pow2 = int(pow(2.0, index)); if (${l}) { int idx = ${c}; - ${z3(s,"coords",this.op)} = idx; - val ${this.op}= getX(${L3(s,"coords",this.op)}); + ${J3(s,"coords",this.op)} = idx; + val ${this.op}= getX(${Z3(s,"coords",this.op)}); } setOutput(val); } - `}};function L3(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 z3(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 OI(r,t,e,n,o,s){let i=t.shape.length,a=S.getAxesPermutation([n],i),u=t;a!=null&&(u=Pe({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 hg(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 hg(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=Pe({inputs:{x:p},backend:e,attrs:{perm:m}});return e.disposeIntermediateTensorInfo(p),e.disposeIntermediateTensorInfo(u),f}return p}function ust(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,exclusive:i,reverse:a}=n;return OI(wp.Prod,o,e,s,i,a)}var B3={kernelName:Fa,backendName:"webgl",kernelFunc:ust};function cst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,exclusive:i,reverse:a}=n;return OI(wp.Sum,o,e,s,i,a)}var V3={kernelName:as,backendName:"webgl",kernelFunc:cst};function pst(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=Yw(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=kL(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 G3={kernelName:Jl,backendName:"webgl",kernelFunc:pst};var PI=class{constructor(t,e,n){this.variableNames=["x"],this.outputShape=[],this.outputShape=t,this.blockSize=e,this.dataFormat=n,this.userCode=` + `}};function Z3(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 J3(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 OI(r,t,e,n,o,s){let i=t.shape.length,a=S.getAxesPermutation([n],i),u=t;a!=null&&(u=Pe({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 hg(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 hg(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=Pe({inputs:{x:p},backend:e,attrs:{perm:m}});return e.disposeIntermediateTensorInfo(p),e.disposeIntermediateTensorInfo(u),f}return p}function Lst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,exclusive:i,reverse:a}=n;return OI(Np.Prod,o,e,s,i,a)}var Q3={kernelName:za,backendName:"webgl",kernelFunc:Lst};function zst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,exclusive:i,reverse:a}=n;return OI(Np.Sum,o,e,s,i,a)}var tB={kernelName:ls,backendName:"webgl",kernelFunc:zst};function Bst(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=Yw(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=ML(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 eB={kernelName:eu,backendName:"webgl",kernelFunc:Bst};var PI=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]; @@ -3027,7 +3035,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Rot=wt({opSnippet:$ot}),a3={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 mst(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 PI(d,s,i);return e.runWebGLProgram(h,[o],o.dtype)}var W3={kernelName:Pa,backendName:"webgl",kernelFunc:mst};var Vd=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=de(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 Vst(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 PI(d,s,i);return e.runWebGLProgram(h,[o],o.dtype)}var rB={kernelName:Va,backendName:"webgl",kernelFunc:Vst};var Gd=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=de(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) { @@ -3080,7 +3088,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Rot=wt({opSnippet:$ot}),a3={kernelN ${c} setOutput(result); } - `}};var Gd=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=de(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 Wd=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=de(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=S.computeConv2DInfo(o.shape,s.shape,i,c,a,l,!0),m;L().getBool("WEBGL_PACK_DEPTHWISECONV")&&p.strideWidth<=2&&p.outChannels/p.inChannels===1?m=new Gd(p):m=new Vd(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 U3={kernelName:ls,backendName:"webgl",kernelFunc:fst};var MI=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 Gst(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;L().getBool("WEBGL_PACK_DEPTHWISECONV")&&p.strideWidth<=2&&p.outChannels/p.inChannels===1?m=new Wd(p):m=new Gd(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 nB={kernelName:us,backendName:"webgl",kernelFunc:Gst};var MI=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; @@ -3349,13 +3357,13 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Rot=wt({opSnippet:$ot}),a3={kernelN } setOutput(dotProd); } - `}};function dst(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 MI(p);return e.runWebGLProgram(m,[o,s],"float32")}var H3={kernelName:Mp,backendName:"webgl",kernelFunc:dst};function hst(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 LI(p);return e.runWebGLProgram(m,[o,s],"float32")}var q3={kernelName:Lp,backendName:"webgl",kernelFunc:hst};var zI=class{constructor(t){this.variableNames=["X"],this.outputShape=[t,t],this.userCode=` + `}};function Wst(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 MI(p);return e.runWebGLProgram(m,[o,s],"float32")}var oB={kernelName:Vp,backendName:"webgl",kernelFunc:Wst};function Ust(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 LI(p);return e.runWebGLProgram(m,[o,s],"float32")}var sB={kernelName:Gp,backendName:"webgl",kernelFunc:Ust};var zI=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 gst(r){let{inputs:t,backend:e}=r,{x:n}=t,o=[...n.shape,...n.shape],s=y.sizeFromShape(n.shape),i=rt({inputs:{x:n},backend:e,attrs:{shape:[s]}}),a=new zI(s),u=e.runWebGLProgram(a,[i],i.dtype),l=rt({inputs:{x:u},backend:e,attrs:{shape:o}});return e.disposeIntermediateTensorInfo(i),e.disposeIntermediateTensorInfo(u),l}var K3={kernelName:Ql,backendName:"webgl",kernelFunc:gst};var BI=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 Hst(r){let{inputs:t,backend:e}=r,{x:n}=t,o=[...n.shape,...n.shape],s=y.sizeFromShape(n.shape),i=rt({inputs:{x:n},backend:e,attrs:{shape:[s]}}),a=new zI(s),u=e.runWebGLProgram(a,[i],i.dtype),l=rt({inputs:{x:u},backend:e,attrs:{shape:o}});return e.disposeIntermediateTensorInfo(i),e.disposeIntermediateTensorInfo(u),l}var iB={kernelName:ru,backendName:"webgl",kernelFunc:Hst};var BI=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; @@ -3393,7 +3401,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Rot=wt({opSnippet:$ot}),a3={kernelN float result = curVal; setOutput(result); } - `}};function xst(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 BI(l);c=e.runWebGLProgram(p,[o,s],"float32");let m=rt({inputs:{x:c},backend:e,attrs:{shape:l.outShape}});return e.disposeIntermediateTensorInfo(c),m}var j3={kernelName:us,backendName:"webgl",kernelFunc:xst};function yst(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=xp({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 X3={kernelName:zp,backendName:"webgl",kernelFunc:yst};var bst="return (x >= 0.0) ? x : (exp(x) - 1.0);",wst=` + `}};function qst(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 BI(l);c=e.runWebGLProgram(p,[o,s],"float32");let m=rt({inputs:{x:c},backend:e,attrs:{shape:l.outShape}});return e.disposeIntermediateTensorInfo(c),m}var aB={kernelName:cs,backendName:"webgl",kernelFunc:qst};function Kst(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=Cp({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 lB={kernelName:Wp,backendName:"webgl",kernelFunc:Kst};var jst="return (x >= 0.0) ? x : (exp(x) - 1.0);",Xst=` vec4 result; result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0); @@ -3402,12 +3410,12 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Rot=wt({opSnippet:$ot}),a3={kernelN result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0); return result; -`,Ist=wt({opSnippet:bst,packedOpSnippet:wst}),Y3={kernelName:ps,backendName:"webgl",kernelFunc:Ist};var Cst="return (b >= 0.0) ? a : a * (b + 1.0);",vst=` +`,Yst=It({opSnippet:jst,packedOpSnippet:Xst}),uB={kernelName:ms,backendName:"webgl",kernelFunc:Yst};var Zst="return (b >= 0.0) ? a : a * (b + 1.0);",Jst=` vec4 bGTEZero = vec4(greaterThanEqual(b, vec4(0.))); return (bGTEZero * a) + ((vec4(1.0) - bGTEZero) * (a * (b + vec4(1.0)))); -`,Sst=r=>{let{inputs:t,backend:e}=r,{dy:n,y:o}=t,s=L().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new zo(vst,n.shape,o.shape):new mo(Cst,n.shape,o.shape);return e.runWebGLProgram(s,[n,o],n.dtype)},Z3={kernelName:Ma,backendName:"webgl",kernelFunc:Sst};var Nst=` +`,Qst=r=>{let{inputs:t,backend:e}=r,{dy:n,y:o}=t,s=L().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Jn(Jst,n.shape,o.shape):new On(Zst,n.shape,o.shape);return e.runWebGLProgram(s,[n,o],n.dtype)},cB={kernelName:Ga,backendName:"webgl",kernelFunc:Qst};var tit=` return vec4(equal(a, b)); -`,kst="return float(a == b);",Tst=ue({opSnippet:kst,packedOpSnippet:Nst,dtype:"bool",cpuKernelImpl:AL}),J3={kernelName:za,backendName:"webgl",kernelFunc:Tst};var _st=` +`,eit="return float(a == b);",rit=ue({opSnippet:eit,packedOpSnippet:tit,dtype:"bool",cpuKernelImpl:GL}),pB={kernelName:Wa,backendName:"webgl",kernelFunc:rit};var nit=` // Error function is calculated approximately with elementary function. // See "Handbook of Mathematical Functions with Formulas, // Graphs, and Mathematical Tables", Abramowitz and Stegun. @@ -3422,9 +3430,9 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Rot=wt({opSnippet:$ot}),a3={kernelN 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)); -`,Est=wt({opSnippet:_st}),Q3={kernelName:La,backendName:"webgl",kernelFunc:Est};var Ast=Bo+` +`,oit=It({opSnippet:nit}),mB={kernelName:fs,backendName:"webgl",kernelFunc:oit};var sit=Vo+` return exp(x); -`,Dst=` +`,iit=` vec4 result = exp(x); bvec4 isNaN = isnan(x); result.r = isNaN.r ? x.r : result.r; @@ -3433,7 +3441,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Rot=wt({opSnippet:$ot}),a3={kernelN result.a = isNaN.a ? x.a : result.a; return result; -`,k1=wt({opSnippet:Ast,packedOpSnippet:Dst,cpuKernelImpl:DL,dtype:"float32"}),tB={kernelName:ms,backendName:"webgl",kernelFunc:k1};function VI(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),rt({inputs:{x:s},backend:n,attrs:{shape:a}})}var eB={kernelName:Fi,backendName:"webgl",kernelFunc:VI};var rB="return exp(x) - 1.0;",$st=wt({opSnippet:rB,packedOpSnippet:rB,cpuKernelImpl:$L}),nB={kernelName:fs,backendName:"webgl",kernelFunc:$st};var gg=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=` +`,R1=It({opSnippet:sit,packedOpSnippet:iit,cpuKernelImpl:WL,dtype:"float32"}),fB={kernelName:ds,backendName:"webgl",kernelFunc:R1};function VI(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),rt({inputs:{x:s},backend:n,attrs:{shape:a}})}var dB={kernelName:Li,backendName:"webgl",kernelFunc:VI};var hB="return exp(x) - 1.0;",ait=It({opSnippet:hB,packedOpSnippet:hB,cpuKernelImpl:UL}),gB={kernelName:hs,backendName:"webgl",kernelFunc:ait};var gg=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) { @@ -3466,12 +3474,12 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Rot=wt({opSnippet:$ot}),a3={kernelN ivec2 coords = getOutputCoords(); setOutput(mulMatDFT(coords[0], coords[1])); } - `}};function GI(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=rt({inputs:{x:r},backend:e,attrs:{shape:[i,s]}}),u=a.shape,l=new gg("real",u,t),c=new gg("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=Fn({inputs:{real:m,imag:f},backend:e});e.disposeIntermediateTensorInfo(m),e.disposeIntermediateTensorInfo(f);let h=rt({inputs:{x:d},backend:e,attrs:{shape:r.shape}});return e.disposeIntermediateTensorInfo(a),e.disposeIntermediateTensorInfo(d),h}function Rst(r){let{inputs:t,backend:e}=r,{input:n}=t;return GI(n,!1,e)}var oB={kernelName:Bp,backendName:"webgl",kernelFunc:Rst};var WI=class{constructor(t,e){this.outputShape=[],this.customUniforms=[{name:"value",type:"float"}],this.variableNames=["x"],this.outputShape=t,this.userCode=` + `}};function GI(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=rt({inputs:{x:r},backend:e,attrs:{shape:[i,s]}}),u=a.shape,l=new gg("real",u,t),c=new gg("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=Pn({inputs:{real:m,imag:f},backend:e});e.disposeIntermediateTensorInfo(m),e.disposeIntermediateTensorInfo(f);let h=rt({inputs:{x:d},backend:e,attrs:{shape:r.shape}});return e.disposeIntermediateTensorInfo(a),e.disposeIntermediateTensorInfo(d),h}function lit(r){let{inputs:t,backend:e}=r,{input:n}=t;return GI(n,!1,e)}var xB={kernelName:Up,backendName:"webgl",kernelFunc:lit};var WI=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 Wl(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 WI(n,o),a=[[o]];return t.runWebGLProgram(i,[],s,a)}}var sB={kernelName:ru,backendName:"webgl",kernelFunc:Wl};var UI=class{constructor(t){this.variableNames=["Image"],this.outputShape=[];let e=t[2];this.outputShape=t,this.userCode=` + `}};function Hl(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 WI(n,o),a=[[o]];return t.runWebGLProgram(i,[],s,a)}}var yB={kernelName:su,backendName:"webgl",kernelFunc:Hl};var UI=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]; @@ -3485,7 +3493,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Rot=wt({opSnippet:$ot}),a3={kernelN } setOutput(outputValue); } - `}};var iB={kernelName:Ba,backendName:"webgl",kernelFunc:({inputs:r,backend:t})=>{let{image:e}=r,n=t,o=new UI(e.shape);return n.runWebGLProgram(o,[e],e.dtype)}};var aB="return floor(x);",Fst=wt({opSnippet:aB,packedOpSnippet:aB,cpuKernelImpl:RL}),lB={kernelName:ds,backendName:"webgl",kernelFunc:Fst};var Ost=` + `}};var bB={kernelName:Ua,backendName:"webgl",kernelFunc:({inputs:r,backend:t})=>{let{image:e}=r,n=t,o=new UI(e.shape);return n.runWebGLProgram(o,[e],e.dtype)}};var wB="return floor(x);",uit=It({opSnippet:wB,packedOpSnippet:wB,cpuKernelImpl:HL}),IB={kernelName:gs,backendName:"webgl",kernelFunc:uit};var cit=` float s = sign(a) * sign(b); int ia = round(a); int ib = round(b); @@ -3495,7 +3503,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Rot=wt({opSnippet:$ot}),a3={kernelN } else { return NAN; } -`,Pst=` +`,pit=` ivec4 ia = round(a); ivec4 ib = round(b); bvec4 cond = notEqual(ib, ivec4(0)); @@ -3516,7 +3524,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Rot=wt({opSnippet:$ot}),a3={kernelN result[3] = idiv(ia[3], ib[3], s[3]); } return vec4(result); -`,Mst=ue({opSnippet:Ost,packedOpSnippet:Pst,dtype:"int32"}),uB={kernelName:hs,backendName:"webgl",kernelFunc:Mst};var HI=class{constructor(t){this.variableNames=["A"];let e=We(),[n,o]=t;this.outputShape=t,this.userCode=` +`,mit=ue({opSnippet:cit,packedOpSnippet:pit,dtype:"int32"}),CB={kernelName:xs,backendName:"webgl",kernelFunc:mit};var HI=class{constructor(t){this.variableNames=["A"];let e=We(),[n,o]=t;this.outputShape=t,this.userCode=` void main() { ivec3 coords = getOutputCoords(); int texR = coords[0]; @@ -3572,7 +3580,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Rot=wt({opSnippet:$ot}),a3={kernelN ${e.output} = result; } - `}};var cB={kernelName:oh,backendName:"webgl",kernelFunc:Lst},Wd,T1=L().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");function Lst(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=L().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");(Wd==null||h!==T1)&&(T1=h,Wd=document.createElement("canvas").getContext("2d",{willReadFrequently:T1})),Wd.canvas.width=u,Wd.canvas.height=l,Wd.drawImage(o,0,0,u,l),o=Wd.canvas}let m=e.makeTensorInfo(c,"int32");e.texData.get(m.dataId).usage=Zr.PIXELS,e.gpgpu.uploadPixelDataToTexture(e.getTexture(m.dataId),o);let f=L().getBool("WEBGL_PACK")?new qI(p):new HI(p),d=e.runWebGLProgram(f,[m],"int32");return e.disposeData(m.dataId),d}function zst(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,I=a!=null,N=f==="leakyrelu",E=()=>{let D=[o,s],F=(P,V)=>{if(V==="NCHW"&&P.shape.length===1&&P.shape[0]!==1){let G=rt({inputs:{x:P},backend:e,attrs:{shape:[P.shape[0],1,1]}});return b.push(G),G}return P};if(w&&D.push(F(i,c)),I&&D.push(F(a,c)),N){let P=e.makeTensorInfo([],"float32",y.createScalarValue(d,"float32"));D.push(P),b.push(P)}return D};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=TI({x:o,filter:s,convInfo:g,backend:e,bias:i,activation:f,preluActivationWeights:a,leakyreluAlpha:d});else if(g.strideWidth<=2&&h==="channelsLast"&&L().getBool("WEBGL_EXP_CONV")){let D=f?Vl(f,!0):null,F=new Bd(g,w,D,I,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(L().getBool("WEBGL_CONV_IM2COL"))x=_I({x:o,filter:s,convInfo:g,backend:e,bias:i,activation:f,preluActivationWeights:a,leakyreluAlpha:d});else{let D=f?Vl(f,!1):null,F=new zd(g,w,D,I,N),P=E();x=e.runWebGLProgram(F,P,"float32")}let A=rt({inputs:{x},backend:e,attrs:{shape:g.outShape}});return b.push(x),b.forEach(D=>e.disposeIntermediateTensorInfo(D)),A}var pB={kernelName:ji,backendName:"webgl",kernelFunc:zst};function Bst(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=L().getBool("WEBGL_PACK_DEPTHWISECONV")&&g.strideWidth<=2&&g.outChannels/g.inChannels===1,b=m?Vl(m,x):null,w=[o,s],I=i!=null,N=a!=null,E=m==="leakyrelu";if(I&&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 Gd(g,I,b,N,E):A=new Vd(g,I,b,N,E);let D=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],F=e.runWebGLProgram(A,w,"float32",D);return d.forEach(P=>e.disposeIntermediateTensorInfo(P)),F}var mB={kernelName:Xi,backendName:"webgl",kernelFunc:Bst};var KI=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 vB={kernelName:oh,backendName:"webgl",kernelFunc:fit},Ud,F1=L().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");function fit(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=L().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");(Ud==null||h!==F1)&&(F1=h,Ud=document.createElement("canvas").getContext("2d",{willReadFrequently:F1})),Ud.canvas.width=u,Ud.canvas.height=l,Ud.drawImage(o,0,0,u,l),o=Ud.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=L().getBool("WEBGL_PACK")?new qI(p):new HI(p),d=e.runWebGLProgram(f,[m],"int32");return e.disposeData(m.dataId),d}function dit(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,I=a!=null,N=f==="leakyrelu",E=()=>{let D=[o,s],F=(P,V)=>{if(V==="NCHW"&&P.shape.length===1&&P.shape[0]!==1){let G=rt({inputs:{x:P},backend:e,attrs:{shape:[P.shape[0],1,1]}});return b.push(G),G}return P};if(w&&D.push(F(i,c)),I&&D.push(F(a,c)),N){let P=e.makeTensorInfo([],"float32",y.createScalarValue(d,"float32"));D.push(P),b.push(P)}return D};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=TI({x:o,filter:s,convInfo:g,backend:e,bias:i,activation:f,preluActivationWeights:a,leakyreluAlpha:d});else if(g.strideWidth<=2&&h==="channelsLast"&&L().getBool("WEBGL_EXP_CONV")){let D=f?Wl(f,!0):null,F=new Vd(g,w,D,I,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(L().getBool("WEBGL_CONV_IM2COL"))x=_I({x:o,filter:s,convInfo:g,backend:e,bias:i,activation:f,preluActivationWeights:a,leakyreluAlpha:d});else{let D=f?Wl(f,!1):null,F=new Bd(g,w,D,I,N),P=E();x=e.runWebGLProgram(F,P,"float32")}let A=rt({inputs:{x},backend:e,attrs:{shape:g.outShape}});return b.push(x),b.forEach(D=>e.disposeIntermediateTensorInfo(D)),A}var SB={kernelName:Ji,backendName:"webgl",kernelFunc:dit};function hit(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=L().getBool("WEBGL_PACK_DEPTHWISECONV")&&g.strideWidth<=2&&g.outChannels/g.inChannels===1,b=m?Wl(m,x):null,w=[o,s],I=i!=null,N=a!=null,E=m==="leakyrelu";if(I&&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 Wd(g,I,b,N,E):A=new Gd(g,I,b,N,E);let D=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],F=e.runWebGLProgram(A,w,"float32",D);return d.forEach(P=>e.disposeIntermediateTensorInfo(P)),F}var NB={kernelName:Qi,backendName:"webgl",kernelFunc:hit};var KI=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=` int index;`;for(let a=0;a= 0) && (index < ${t[2]}) ? 1.0 : 0.0; setOutput(inBounds * getA(${o})); } - `}};function Gst(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=rt({inputs:{x:o},backend:e,attrs:{shape:[l.batchSize,l.outerSize,l.dimSize,l.sliceSize]}}),f=rt({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),I=OL(w,b,d);return p.forEach(N=>e.disposeIntermediateTensorInfo(N)),e.makeTensorInfo(l.outputShape,I.dtype,I.values)}let h=new jI(m.shape,d),g=e.runWebGLProgram(h,[m,f],m.dtype);p.push(g);let x=rt({inputs:{x:g},backend:e,attrs:{shape:l.outputShape}});return p.forEach(b=>e.disposeIntermediateTensorInfo(b)),x}var dB={kernelName:Oi,backendName:"webgl",kernelFunc:_1};var Wst="return float(a > b);",Ust=` + `}};function xit(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=rt({inputs:{x:o},backend:e,attrs:{shape:[l.batchSize,l.outerSize,l.dimSize,l.sliceSize]}}),f=rt({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),I=KL(w,b,d);return p.forEach(N=>e.disposeIntermediateTensorInfo(N)),e.makeTensorInfo(l.outputShape,I.dtype,I.values)}let h=new jI(m.shape,d),g=e.runWebGLProgram(h,[m,f],m.dtype);p.push(g);let x=rt({inputs:{x:g},backend:e,attrs:{shape:l.outputShape}});return p.forEach(b=>e.disposeIntermediateTensorInfo(b)),x}var TB={kernelName:zi,backendName:"webgl",kernelFunc:O1};var yit="return float(a > b);",bit=` return vec4(greaterThan(a, b)); -`,Hst=ue({opSnippet:Wst,packedOpSnippet:Ust,cpuKernelImpl:PL,dtype:"bool"}),hB={kernelName:Ga,backendName:"webgl",kernelFunc:Hst};var qst="return float(a >= b);",Kst=` +`,wit=ue({opSnippet:yit,packedOpSnippet:bit,cpuKernelImpl:jL,dtype:"bool"}),_B={kernelName:qa,backendName:"webgl",kernelFunc:wit};var Iit="return float(a >= b);",Cit=` return vec4(greaterThanEqual(a, b)); -`,jst=ue({opSnippet:qst,packedOpSnippet:Kst,dtype:"bool",cpuKernelImpl:ML}),gB={kernelName:xs,backendName:"webgl",kernelFunc:jst};function Xst(r){let{inputs:t,backend:e}=r,{input:n}=t;return GI(n,!0,e)}var xB={kernelName:Vp,backendName:"webgl",kernelFunc:Xst};var Yst="return float(!isnan(x) && !isinf(x));",Zst=wt({opSnippet:Yst,dtype:"bool"}),yB={kernelName:ys,backendName:"webgl",kernelFunc:Zst};var Jst="return float(isinf(x));",Qst=wt({opSnippet:Jst,dtype:"bool"}),bB={kernelName:bs,backendName:"webgl",kernelFunc:Qst};var tit="return float(isnan(x));",eit=wt({opSnippet:tit,dtype:"bool"}),wB={kernelName:ws,backendName:"webgl",kernelFunc:eit};var rit="return float(a < b);",nit=` +`,vit=ue({opSnippet:Iit,packedOpSnippet:Cit,dtype:"bool",cpuKernelImpl:XL}),EB={kernelName:bs,backendName:"webgl",kernelFunc:vit};function Sit(r){let{inputs:t,backend:e}=r,{input:n}=t;return GI(n,!0,e)}var AB={kernelName:Hp,backendName:"webgl",kernelFunc:Sit};var Nit="return float(!isnan(x) && !isinf(x));",kit=It({opSnippet:Nit,dtype:"bool"}),DB={kernelName:ws,backendName:"webgl",kernelFunc:kit};var Tit="return float(isinf(x));",_it=It({opSnippet:Tit,dtype:"bool"}),$B={kernelName:Is,backendName:"webgl",kernelFunc:_it};var Eit="return float(isnan(x));",Ait=It({opSnippet:Eit,dtype:"bool"}),RB={kernelName:Cs,backendName:"webgl",kernelFunc:Ait};var Dit="return float(a < b);",$it=` return vec4(lessThan(a, b)); -`,oit=ue({opSnippet:rit,packedOpSnippet:nit,cpuKernelImpl:LL,dtype:"bool"}),IB={kernelName:Wa,backendName:"webgl",kernelFunc:oit};var sit="return float(a <= b);",iit=` +`,Rit=ue({opSnippet:Dit,packedOpSnippet:$it,cpuKernelImpl:YL,dtype:"bool"}),FB={kernelName:Ka,backendName:"webgl",kernelFunc:Rit};var Fit="return float(a <= b);",Oit=` return vec4(lessThanEqual(a, b)); -`,ait=ue({opSnippet:sit,packedOpSnippet:iit,cpuKernelImpl:zL,dtype:"bool"}),CB={kernelName:Ua,backendName:"webgl",kernelFunc:ait};function lit(r){let{backend:t,attrs:e}=r,{start:n,stop:o,num:s}=e,i=BL(n,o,s);return t.makeTensorInfo([i.length],"float32",i)}var vB={kernelName:Ha,backendName:"webgl",kernelFunc:lit};var uit=Bo+` +`,Pit=ue({opSnippet:Fit,packedOpSnippet:Oit,cpuKernelImpl:ZL,dtype:"bool"}),OB={kernelName:ja,backendName:"webgl",kernelFunc:Pit};function Mit(r){let{backend:t,attrs:e}=r,{start:n,stop:o,num:s}=e,i=JL(n,o,s);return t.makeTensorInfo([i.length],"float32",i)}var PB={kernelName:Xa,backendName:"webgl",kernelFunc:Mit};var Lit=Vo+` return x < 0.0 ? 0./0. : log(x); -`,cit=` +`,zit=` vec4 result = log(x); bvec4 isNaN = isnan(x); result.r = isNaN.r ? x.r : (x.r < 0.0 ? 0./0. : result.r); @@ -3612,18 +3620,18 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Rot=wt({opSnippet:$ot}),a3={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; -`,pit=wt({opSnippet:uit,packedOpSnippet:cit,cpuKernelImpl:VL}),SB={kernelName:Cs,backendName:"webgl",kernelFunc:pit};var mit=Bo+` +`,Bit=It({opSnippet:Lit,packedOpSnippet:zit,cpuKernelImpl:QL}),MB={kernelName:Ss,backendName:"webgl",kernelFunc:Bit};var Vit=Vo+` return log(1.0 + x); -`,fit=wt({opSnippet:mit}),NB={kernelName:vs,backendName:"webgl",kernelFunc:fit};var dit="return float(a >= 1.0 && b >= 1.0);",hit=` +`,Git=It({opSnippet:Vit}),LB={kernelName:Ns,backendName:"webgl",kernelFunc:Git};var Wit="return float(a >= 1.0 && b >= 1.0);",Uit=` return vec4( vec4(greaterThanEqual(a, vec4(1.0))) * vec4(greaterThanEqual(b, vec4(1.0)))); -`,git=ue({opSnippet:dit,packedOpSnippet:hit,dtype:"bool"}),kB={kernelName:qa,backendName:"webgl",kernelFunc:git};var xit="return float(!(x >= 1.0));",yit=wt({opSnippet:xit}),TB={kernelName:Ka,backendName:"webgl",kernelFunc:yit};var bit="return float(a >= 1.0 || b >= 1.0);",wit=` +`,Hit=ue({opSnippet:Wit,packedOpSnippet:Uit,dtype:"bool"}),zB={kernelName:Ya,backendName:"webgl",kernelFunc:Hit};var qit="return float(!(x >= 1.0));",Kit=It({opSnippet:qit}),BB={kernelName:Za,backendName:"webgl",kernelFunc:Kit};var jit="return float(a >= 1.0 || b >= 1.0);",Xit=` return min( vec4(greaterThanEqual(a, vec4(1.0))) + vec4(greaterThanEqual(b, vec4(1.0))), vec4(1.0)); -`,Iit=ue({opSnippet:bit,packedOpSnippet:wit,dtype:"bool"}),_B={kernelName:ja,backendName:"webgl",kernelFunc:Iit};var XI=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=` +`,Yit=ue({opSnippet:jit,packedOpSnippet:Xit,dtype:"bool"}),VB={kernelName:Ja,backendName:"webgl",kernelFunc:Yit};var XI=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]; @@ -3704,7 +3712,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Rot=wt({opSnippet:$ot}),a3={kernelN vec4 result = xAtOutputCoords * ${u}; setOutput(result); } - `}};var Cit=r=>{let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{depthRadius:s,bias:i,alpha:a,beta:u}=n,l=L().getBool("WEBGL_PACK_NORMALIZATION")?new YI(o.shape,s,i,a,u):new XI(o.shape,s,i,a,u);return e.runWebGLProgram(l,[o],o.dtype)},EB={kernelName:Ss,backendName:"webgl",kernelFunc:Cit};var ZI=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 Zit=r=>{let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{depthRadius:s,bias:i,alpha:a,beta:u}=n,l=L().getBool("WEBGL_PACK_NORMALIZATION")?new YI(o.shape,s,i,a,u):new XI(o.shape,s,i,a,u);return e.runWebGLProgram(l,[o],o.dtype)},GB={kernelName:ks,backendName:"webgl",kernelFunc:Zit};var ZI=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]; @@ -3759,16 +3767,16 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Rot=wt({opSnippet:$ot}),a3={kernelN } setOutput(result); } - `}};var vit=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 ZI(o.shape,a,u,l,c);return e.runWebGLProgram(p,[o,s,i],o.dtype)},AB={kernelName:Xa,backendName:"webgl",kernelFunc:vit};function DB(r,t,e,n){let o=y.sizeFromShape(t),i=y.sizeFromShape(r.shape)/o,a=rt({inputs:{x:r},attrs:{shape:[i,o]},backend:n}),u=Zn(a,r.dtype,"max",n),l=rt({inputs:{x:u},attrs:{shape:e},backend:n});return n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(u),l}function E1(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,I=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 ZI(o.shape,a,u,l,c);return e.runWebGLProgram(p,[o,s,i],o.dtype)},WB={kernelName:Qa,backendName:"webgl",kernelFunc:Jit};function UB(r,t,e,n){let o=y.sizeFromShape(t),i=y.sizeFromShape(r.shape)/o,a=rt({inputs:{x:r},attrs:{shape:[i,o]},backend:n}),u=to(a,r.dtype,"max",n),l=rt({inputs:{x:u},attrs:{shape:e},backend:n});return n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(u),l}function P1(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,I=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 vi(c,"max",!1);return e.runWebGLProgram(p,[o],o.dtype)}var FB={kernelName:Ts,backendName:"webgl",kernelFunc:Tit};function _it(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 Yu(p,"max",!1);return e.runWebGLProgram(m,[o],o.dtype)}var OB={kernelName:Pi,backendName:"webgl",kernelFunc:_it};var JI=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=` +`,eat=ue({opSnippet:Qit,packedOpSnippet:tat,cpuKernelImpl:ez}),qB={kernelName:_s,backendName:"webgl",kernelFunc:eat};function rat(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t;Ni(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 Ti(c,"max",!1);return e.runWebGLProgram(p,[o],o.dtype)}var KB={kernelName:Es,backendName:"webgl",kernelFunc:rat};function nat(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 ec(p,"max",!1);return e.runWebGLProgram(m,[o],o.dtype)}var jB={kernelName:Bi,backendName:"webgl",kernelFunc:nat};var JI=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() { @@ -3878,16 +3886,16 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Rot=wt({opSnippet:$ot}),a3={kernelN } setOutput(dotProd); } - `}};function Eit(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 Yu(m,"max",!0),d=e.runWebGLProgram(f,[i],i.dtype),h=new QI(m),g=e.runWebGLProgram(h,[o,d],i.dtype);return e.disposeIntermediateTensorInfo(d),g}var PB={kernelName:nu,backendName:"webgl",kernelFunc:Eit};function Ait(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s,output:i}=t,a=s;Ii([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 vi(m,"max",f),h=e.runWebGLProgram(d,[a],a.dtype),g=new JI(m),x=e.runWebGLProgram(g,[o,h],a.dtype);return e.disposeIntermediateTensorInfo(h),x}var MB={kernelName:Wp,backendName:"webgl",kernelFunc:Ait};function LB(r,t,e,n){let o=new vi(e,"max",!1),s=n.runWebGLProgram(o,[r],"float32");o=new vi(e,"max",!0,!0,t);let i=n.runWebGLProgram(o,[r],"float32");return[s,i]}var zB={kernelName:Up,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]=LB(n,a,c,u);return[p,m]}};function BB(r,t,e,n){let o=y.sizeFromShape(t),i=y.sizeFromShape(r.shape)/o,a=rt({inputs:{x:r},attrs:{shape:[i,o]},backend:n}),u=Zn(a,"float32","mean",n),l=rt({inputs:{x:u},attrs:{shape:e},backend:n});return n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(u),l}var VB={kernelName:_s,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 I=i.texData.get(d.dataId).values,N=new Array(a);for(let D=0;D{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]=ZB(n,a,c,u);return[p,m]}};function QB(r,t,e,n){let o=y.sizeFromShape(t),i=y.sizeFromShape(r.shape)/o,a=rt({inputs:{x:r},attrs:{shape:[i,o]},backend:n}),u=to(a,"float32","mean",n),l=rt({inputs:{x:u},attrs:{shape:e},backend:n});return n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(u),l}var tV={kernelName:As,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 I=i.texData.get(d.dataId).values,N=new Array(a);for(let D=0;Dc[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=` +`,uat=ue({opSnippet:aat,packedOpSnippet:lat,cpuKernelImpl:rz}),rV={kernelName:$s,backendName:"webgl",kernelFunc:uat};var tC=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=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=` int start = ${i}; int end = ${a}; @@ -3972,13 +3980,13 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Rot=wt({opSnippet:$ot}),a3={kernelN ${f} setOutput(result); } - `}};var Oit=({inputs:r,backend:t,attrs:e})=>{let{x:n}=r,{paddings:o,mode:s}=e,i=L().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new eC(n.shape,o,s):new tC(n.shape,o,s);return t.runWebGLProgram(i,[n],n.dtype)},UB={kernelName:Ds,backendName:"webgl",kernelFunc:Oit};var Pit=`if (b == 0.0) return NAN; - return mod(a, b);`,Mit=` + `}};var cat=({inputs:r,backend:t,attrs:e})=>{let{x:n}=r,{paddings:o,mode:s}=e,i=L().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new eC(n.shape,o,s):new tC(n.shape,o,s);return t.runWebGLProgram(i,[n],n.dtype)},nV={kernelName:Rs,backendName:"webgl",kernelFunc:cat};var pat=`if (b == 0.0) return NAN; + return mod(a, b);`,mat=` vec4 result = mod(a, b); bvec4 isNaN = equal(b, vec4(0.0)); - `+Yn+` + `+Qn+` return result; -`,Lit=ue({opSnippet:Pit,packedOpSnippet:Mit}),HB={kernelName:Ya,backendName:"webgl",kernelFunc:Lit};var rC=class{constructor(t,e,n){this.variableNames=["probs"],this.customUniforms=[{name:"seed",type:"float"}],this.outputShape=[t,n],this.userCode=` +`,fat=ue({opSnippet:pat,packedOpSnippet:mat}),oV={kernelName:Fs,backendName:"webgl",kernelFunc:fat};var rC=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]; @@ -3998,11 +4006,11 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Rot=wt({opSnippet:$ot}),a3={kernelN // If no other event happened, last event happened. setOutput(float(${e-1})); } - `}};var zit=` + `}};var dat=` if (a == b) { return 1.0; }; -return a / b;`,Bit=` +return a / b;`,hat=` // vec4 one = vec4(equal(a, b)); // return one + (vec4(1.0) - one) * a / b; vec4 result = a / b; @@ -4020,9 +4028,9 @@ return a / b;`,Bit=` } return result; -`,A1=ue({opSnippet:zit,packedOpSnippet:Bit,checkOutOfBounds:!0}),qB={kernelName:cs,backendName:"webgl",kernelFunc:A1};var KB="return a - b;",D1=ue({opSnippet:KB,packedOpSnippet:KB,supportsComplex:!0,cpuKernelImpl:pz}),jB={kernelName:ei,backendName:"webgl",kernelFunc:D1};function $1(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{dim:s}=n,i=y.parseAxisParam([s],o.shape),a=E1({inputs:{x:o},backend:e,attrs:{reductionIndices:i,keepDims:!1}}),u=S.expandShapeToKeepDim(a.shape,i),l=rt({inputs:{x:a},backend:e,attrs:{shape:u}}),c=D1({inputs:{a:o,b:l},backend:e}),p=k1({inputs:{x:c},backend:e}),m=xp({inputs:{x:p},backend:e,attrs:{axis:i,keepDims:!1}}),f=rt({inputs:{x:m},backend:e,attrs:{shape:u}}),d=A1({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 XB={kernelName:Qs,backendName:"webgl",kernelFunc:$1};function Vit(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{numSamples:s,seed:i,normalized:a}=n,u=a?o:$1({inputs:{logits:o},backend:e,attrs:{dim:o.shape.length-1}}),l=u.shape[0],c=u.shape[1],p=new rC(l,c,s),m=[[i]],f=e.runWebGLProgram(p,[u],"int32",m);return a||e.disposeIntermediateTensorInfo(u),f}var YB={kernelName:Za,backendName:"webgl",kernelFunc:Vit};var Git=yr+` +`,M1=ue({opSnippet:dat,packedOpSnippet:hat,checkOutOfBounds:!0}),sV={kernelName:ps,backendName:"webgl",kernelFunc:M1};var iV="return a - b;",L1=ue({opSnippet:iV,packedOpSnippet:iV,supportsComplex:!0,cpuKernelImpl:vz}),aV={kernelName:si,backendName:"webgl",kernelFunc:L1};function z1(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{dim:s}=n,i=y.parseAxisParam([s],o.shape),a=P1({inputs:{x:o},backend:e,attrs:{reductionIndices:i,keepDims:!1}}),u=S.expandShapeToKeepDim(a.shape,i),l=rt({inputs:{x:a},backend:e,attrs:{shape:u}}),c=L1({inputs:{a:o,b:l},backend:e}),p=R1({inputs:{x:c},backend:e}),m=Cp({inputs:{x:p},backend:e,attrs:{axis:i,keepDims:!1}}),f=rt({inputs:{x:m},backend:e,attrs:{shape:u}}),d=M1({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 lV={kernelName:ni,backendName:"webgl",kernelFunc:z1};function gat(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{numSamples:s,seed:i,normalized:a}=n,u=a?o:z1({inputs:{logits:o},backend:e,attrs:{dim:o.shape.length-1}}),l=u.shape[0],c=u.shape[1],p=new rC(l,c,s),m=[[i]],f=e.runWebGLProgram(p,[u],"int32",m);return a||e.disposeIntermediateTensorInfo(u),f}var uV={kernelName:tl,backendName:"webgl",kernelFunc:gat};var xat=yr+` return -x; -`,Wit=` +`,yat=` vec4 result = -x; bvec4 isNaN = isnan(x); @@ -4032,14 +4040,14 @@ return a / b;`,Bit=` result.a = isNaN.a ? x.a : result.a; return result; -`;function Uit(r){let{inputs:t,backend:e}=r,{x:n}=t;if(e.shouldExecuteOnCPU([n])){let s=e.texData.get(n.dataId),[i,a]=qL(s.values,n.shape,n.dtype);return e.makeTensorInfo(a,n.dtype,i)}let o;return L().getBool("WEBGL_PACK_UNARY_OPERATIONS")?o=new Rn(n.shape,Wit):o=new zr(n.shape,Git),e.runWebGLProgram(o,[n],n.dtype)}var ZB={kernelName:Mi,backendName:"webgl",kernelFunc:Uit};var Hit=Kr.nonMaxSuppressionV3Impl;function qit(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}=Hit(l,c,i,a,u);return e.makeTensorInfo([p.length],"int32",new Int32Array(p))}var JB={kernelName:Qa,backendName:"webgl",kernelFunc:qit};var Kit=Kr.nonMaxSuppressionV4Impl;function jit(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}=Kit(c,p,i,a,u,l);return[e.makeTensorInfo([m.length],"int32",new Int32Array(m)),e.makeTensorInfo([],"int32",new Int32Array([f]))]}var QB={kernelName:tl,backendName:"webgl",kernelFunc:jit};var Xit=Kr.nonMaxSuppressionV5Impl;function Yit(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}=Xit(c,p,m,f,d,h);return[e.makeTensorInfo([g.length],"int32",new Int32Array(g)),e.makeTensorInfo([x.length],"float32",new Float32Array(x))]}var tV={kernelName:el,backendName:"webgl",kernelFunc:Yit};var nC=class{constructor(t,e,n,o){this.variableNames=["indices"],this.outputShape=[t,e],this.userCode=` +`;function bat(r){let{inputs:t,backend:e}=r,{x:n}=t;if(e.shouldExecuteOnCPU([n])){let s=e.texData.get(n.dataId),[i,a]=oz(s.values,n.shape,n.dtype);return e.makeTensorInfo(a,n.dtype,i)}let o;return L().getBool("WEBGL_PACK_UNARY_OPERATIONS")?o=new Fn(n.shape,yat):o=new Br(n.shape,xat),e.runWebGLProgram(o,[n],n.dtype)}var cV={kernelName:Vi,backendName:"webgl",kernelFunc:bat};var wat=jr.nonMaxSuppressionV3Impl;function Iat(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}=wat(l,c,i,a,u);return e.makeTensorInfo([p.length],"int32",new Int32Array(p))}var pV={kernelName:rl,backendName:"webgl",kernelFunc:Iat};var Cat=jr.nonMaxSuppressionV4Impl;function vat(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}=Cat(c,p,i,a,u,l);return[e.makeTensorInfo([m.length],"int32",new Int32Array(m)),e.makeTensorInfo([],"int32",new Int32Array([f]))]}var mV={kernelName:nl,backendName:"webgl",kernelFunc:vat};var Sat=jr.nonMaxSuppressionV5Impl;function Nat(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}=Sat(c,p,m,f,d,h);return[e.makeTensorInfo([g.length],"int32",new Int32Array(g)),e.makeTensorInfo([x.length],"float32",new Float32Array(x))]}var fV={kernelName:ol,backendName:"webgl",kernelFunc:Nat};var nC=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 Zit=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 nC(l,i,a,u),p=rt({inputs:{x:o},backend:e,attrs:{shape:[l]}}),m=e.runWebGLProgram(c,[p],s);e.disposeIntermediateTensorInfo(p);let f=[...o.shape,i],d=rt({inputs:{x:m},backend:e,attrs:{shape:f}});return e.disposeIntermediateTensorInfo(m),d},eV={kernelName:Rs,backendName:"webgl",kernelFunc:Zit};function xg(r){let{inputs:t,backend:e}=r,{x:n}=t;if(n.dtype==="complex64"){let o=Gl({inputs:{input:n},backend:e}),s=xg({inputs:{x:o},backend:e}),i=bp({inputs:{input:n},backend:e}),a=xg({inputs:{x:i},backend:e}),u=Fn({inputs:{real:s,imag:a},backend:e});return e.disposeIntermediateTensorInfo(o),e.disposeIntermediateTensorInfo(s),e.disposeIntermediateTensorInfo(i),e.disposeIntermediateTensorInfo(a),u}else return Wl({attrs:{shape:n.shape,dtype:n.dtype,value:n.dtype==="string"?"":0},backend:e})}var rV={kernelName:qi,backendName:"webgl",kernelFunc:xg};function nV(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=Gl({inputs:{input:n},backend:e}),s=nV({inputs:{x:o},backend:e}),i=bp({inputs:{input:n},backend:e}),a=xg({inputs:{x:i},backend:e}),u=Fn({inputs:{real:s,imag:a},backend:e});return e.disposeIntermediateTensorInfo(o),e.disposeIntermediateTensorInfo(s),e.disposeIntermediateTensorInfo(i),e.disposeIntermediateTensorInfo(a),u}else return Wl({attrs:{shape:n.shape,dtype:n.dtype,value:1},backend:e})}var oV={kernelName:Li,backendName:"webgl",kernelFunc:nV};function Jit(r){let{inputs:t,backend:e,attrs:n}=r,{axis:o}=n;if(t.length===1)return VI({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=VI({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=N1({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeIntermediateTensorInfo(c)),l}var sV={kernelName:zi,backendName:"webgl",kernelFunc:Jit};var oC=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 kat=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 nC(l,i,a,u),p=rt({inputs:{x:o},backend:e,attrs:{shape:[l]}}),m=e.runWebGLProgram(c,[p],s);e.disposeIntermediateTensorInfo(p);let f=[...o.shape,i],d=rt({inputs:{x:m},backend:e,attrs:{shape:f}});return e.disposeIntermediateTensorInfo(m),d},dV={kernelName:Ps,backendName:"webgl",kernelFunc:kat};function xg(r){let{inputs:t,backend:e}=r,{x:n}=t;if(n.dtype==="complex64"){let o=Ul({inputs:{input:n},backend:e}),s=xg({inputs:{x:o},backend:e}),i=Sp({inputs:{input:n},backend:e}),a=xg({inputs:{x:i},backend:e}),u=Pn({inputs:{real:s,imag:a},backend:e});return e.disposeIntermediateTensorInfo(o),e.disposeIntermediateTensorInfo(s),e.disposeIntermediateTensorInfo(i),e.disposeIntermediateTensorInfo(a),u}else return Hl({attrs:{shape:n.shape,dtype:n.dtype,value:n.dtype==="string"?"":0},backend:e})}var hV={kernelName:Yi,backendName:"webgl",kernelFunc:xg};function gV(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=Ul({inputs:{input:n},backend:e}),s=gV({inputs:{x:o},backend:e}),i=Sp({inputs:{input:n},backend:e}),a=xg({inputs:{x:i},backend:e}),u=Pn({inputs:{real:s,imag:a},backend:e});return e.disposeIntermediateTensorInfo(o),e.disposeIntermediateTensorInfo(s),e.disposeIntermediateTensorInfo(i),e.disposeIntermediateTensorInfo(a),u}else return Hl({attrs:{shape:n.shape,dtype:n.dtype,value:1},backend:e})}var xV={kernelName:Gi,backendName:"webgl",kernelFunc:gV};function Tat(r){let{inputs:t,backend:e,attrs:n}=r,{axis:o}=n;if(t.length===1)return VI({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=VI({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=$1({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeIntermediateTensorInfo(c)),l}var yV={kernelName:Wi,backendName:"webgl",kernelFunc:Tat};var oC=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=` int start = ${i}; int end = ${a}; @@ -4088,7 +4096,7 @@ return a / b;`,Bit=` ${d} setOutput(result); } - `}};var R1=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 Wl({backend:e,attrs:{shape:l,value:i,dtype:o.dtype}})}let a=L().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new sC(o.shape,s,i):new oC(o.shape,s,i),u=[[i]];return e.runWebGLProgram(a,[o],o.dtype,u)},iV={kernelName:Fs,backendName:"webgl",kernelFunc:R1};var Qit=` + `}};var B1=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 Hl({backend:e,attrs:{shape:l,value:i,dtype:o.dtype}})}let a=L().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new sC(o.shape,s,i):new oC(o.shape,s,i),u=[[i]];return e.runWebGLProgram(a,[o],o.dtype,u)},bV={kernelName:Ms,backendName:"webgl",kernelFunc:B1};var _at=` if(a < 0.0 && floor(b) < b){ return NAN; } @@ -4097,7 +4105,7 @@ return a / b;`,Bit=` } return (round(mod(b, 2.0)) != 1) ? pow(abs(a), b) : sign(a) * pow(abs(a), b); -`,tat=` +`,Eat=` // 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); @@ -4113,11 +4121,11 @@ return a / b;`,Bit=` 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); - `+Yn+` + `+Qn+` return result; -`,eat=ue({opSnippet:Qit,packedOpSnippet:tat}),aV={kernelName:Os,backendName:"webgl",kernelFunc:eat};function rat(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=Pe({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}=jL(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=rt({inputs:{x:m},backend:e,attrs:{shape:[-1,g]}}),b=mc(o.dtype),w=Zn(x,b,"prod",e);f=rt({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=rt({inputs:{x:f},backend:e,attrs:{shape:d}})}return u.forEach(d=>e.disposeIntermediateTensorInfo(d)),f}var lV={kernelName:Ms,backendName:"webgl",kernelFunc:rat};function nat(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]=XL(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 uV={kernelName:Hp,backendName:"webgl",kernelFunc:nat};function oat(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]=YL(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 cV={kernelName:qp,backendName:"webgl",kernelFunc:oat};function sat(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 pV={kernelName:Kp,backendName:"webgl",kernelFunc:sat};var F1=r=>{let{backend:t,attrs:e}=r,{start:n,stop:o,step:s,dtype:i}=e,a=JL(n,o,s,i);return t.makeTensorInfo([a.length],i,a)},mV={kernelName:ou,backendName:"webgl",kernelFunc:F1};var iat="return 1.0 / x;",aat=wt({opSnippet:iat}),fV={kernelName:Ls,backendName:"webgl",kernelFunc:aat};var lat=yr+` +`,Aat=ue({opSnippet:_at,packedOpSnippet:Eat}),wV={kernelName:Ls,backendName:"webgl",kernelFunc:Aat};function Dat(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=Pe({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}=iz(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=rt({inputs:{x:m},backend:e,attrs:{shape:[-1,g]}}),b=xc(o.dtype),w=to(x,b,"prod",e);f=rt({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=rt({inputs:{x:f},backend:e,attrs:{shape:d}})}return u.forEach(d=>e.disposeIntermediateTensorInfo(d)),f}var IV={kernelName:Bs,backendName:"webgl",kernelFunc:Dat};function $at(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]=az(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 CV={kernelName:Kp,backendName:"webgl",kernelFunc:$at};function Rat(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]=lz(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 vV={kernelName:jp,backendName:"webgl",kernelFunc:Rat};function Fat(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]=uz(l,o.shape,c,s.shape,s.dtype,p,i.shape,m,f,u);return e.makeTensorInfo(d,s.dtype,h)}var SV={kernelName:Xp,backendName:"webgl",kernelFunc:Fat};var V1=r=>{let{backend:t,attrs:e}=r,{start:n,stop:o,step:s,dtype:i}=e,a=cz(n,o,s,i);return t.makeTensorInfo([a.length],i,a)},NV={kernelName:uu,backendName:"webgl",kernelFunc:V1};var Oat="return 1.0 / x;",Pat=It({opSnippet:Oat}),kV={kernelName:Vs,backendName:"webgl",kernelFunc:Pat};var Mat=yr+` return (x < 0.0) ? 0.0 : x; -`,uat=` +`,Lat=` vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -4127,9 +4135,9 @@ return a / b;`,Bit=` result.a = isNaN.a ? x.a : result.a; return result; -`,cat=wt({opSnippet:lat,packedOpSnippet:uat}),dV={kernelName:zs,backendName:"webgl",kernelFunc:cat};var pat=yr+` +`,zat=It({opSnippet:Mat,packedOpSnippet:Lat}),TV={kernelName:Gs,backendName:"webgl",kernelFunc:zat};var Bat=yr+` return (x < 0.0) ? 0.0 : min(6.0, x); -`,mat=` +`,Vat=` vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -4139,7 +4147,7 @@ return a / b;`,Bit=` result.a = isNaN.a ? x.a : result.a; return result; -`,fat=wt({opSnippet:pat,packedOpSnippet:mat}),hV={kernelName:Gs,backendName:"webgl",kernelFunc:fat};var iC=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=` +`,Gat=It({opSnippet:Bat,packedOpSnippet:Vat}),_V={kernelName:Hs,backendName:"webgl",kernelFunc:Gat};var iC=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]}); @@ -4249,7 +4257,7 @@ return a / b;`,Bit=` setOutput(newValue); } - `}};function dat(r){let{inputs:t,backend:e,attrs:n}=r,{images:o}=t,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,c=L().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new aC(o.shape,u,l,s,i):new iC(o.shape,u,l,s,i);return e.runWebGLProgram(c,[o],"float32")}var gV={kernelName:Vs,backendName:"webgl",kernelFunc:dat};var lC=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 Wat(r){let{inputs:t,backend:e,attrs:n}=r,{images:o}=t,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,c=L().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new aC(o.shape,u,l,s,i):new iC(o.shape,u,l,s,i);return e.runWebGLProgram(c,[o],"float32")}var EV={kernelName:Us,backendName:"webgl",kernelFunc:Wat};var lC=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]; @@ -4330,7 +4338,7 @@ return a / b;`,Bit=` setOutput(accumulator); } - `}};function hat(r){let{inputs:t,backend:e,attrs:n}=r,{images:o,dy:s}=t,{alignCorners:i}=n,a=new lC(s.shape,o.shape,i);return e.runWebGLProgram(a,[s],s.dtype)}var xV={kernelName:nl,backendName:"webgl",kernelFunc:hat};var uC=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 Uat(r){let{inputs:t,backend:e,attrs:n}=r,{images:o,dy:s}=t,{alignCorners:i}=n,a=new lC(s.shape,o.shape,i);return e.runWebGLProgram(a,[s],s.dtype)}var AV={kernelName:il,backendName:"webgl",kernelFunc:Uat};var uC=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]}); @@ -4393,7 +4401,7 @@ return a / b;`,Bit=` setOutput(newValue); } - `}};function gat(r){let{inputs:t,backend:e,attrs:n}=r,{images:o}=t,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,c=L().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new cC(o.shape,u,l,s,i):new uC(o.shape,u,l,s,i);return e.runWebGLProgram(c,[o],o.dtype)}var yV={kernelName:Bs,backendName:"webgl",kernelFunc:gat};var pC=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 Hat(r){let{inputs:t,backend:e,attrs:n}=r,{images:o}=t,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,c=L().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new cC(o.shape,u,l,s,i):new uC(o.shape,u,l,s,i);return e.runWebGLProgram(c,[o],o.dtype)}var DV={kernelName:Ws,backendName:"webgl",kernelFunc:Hat};var pC=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]; @@ -4463,7 +4471,7 @@ return a / b;`,Bit=` setOutput(accumulator); } - `}};function xat(r){let{inputs:t,backend:e,attrs:n}=r,{images:o,dy:s}=t,{alignCorners:i}=n,a=new pC(s.shape,o.shape,i);return e.runWebGLProgram(a,[s],s.dtype)}var bV={kernelName:rl,backendName:"webgl",kernelFunc:xat};var mC=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 qat(r){let{inputs:t,backend:e,attrs:n}=r,{images:o,dy:s}=t,{alignCorners:i}=n,a=new pC(s.shape,o.shape,i);return e.runWebGLProgram(a,[s],s.dtype)}var $V={kernelName:sl,backendName:"webgl",kernelFunc:qat};var mC=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)); @@ -4501,7 +4509,7 @@ return a / b;`,Bit=` } 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 yat(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=L().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new fC(o.shape,a):new mC(o.shape,a);return e.runWebGLProgram(u,[o],o.dtype)}var wV={kernelName:Ws,backendName:"webgl",kernelFunc:yat};var dC=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 Kat(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=L().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new fC(o.shape,a):new mC(o.shape,a);return e.runWebGLProgram(u,[o],o.dtype)}var RV={kernelName:qs,backendName:"webgl",kernelFunc:Kat};var dC=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() { @@ -4520,7 +4528,7 @@ return a / b;`,Bit=` } setOutput(outputValue); } - `}};var IV={kernelName:fl,backendName:"webgl",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{image:n}=r,{radians:o,fillValue:s,center:i}=t,a=e,u=new dC(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 bat=` + `}};var FV={kernelName:hl,backendName:"webgl",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{image:n}=r,{radians:o,fillValue:s,center:i}=t,a=e,u=new dC(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 jat=` // OpenGL ES does not support round function. // The algorithm is based on banker's rounding. float base = floor(x); @@ -4535,7 +4543,7 @@ return a / b;`,Bit=` return base + 1.0; } } -`,wat=wt({opSnippet:bat}),CV={kernelName:Us,backendName:"webgl",kernelFunc:wat};var Iat="return inversesqrt(x);",Cat=wt({opSnippet:Iat,cpuKernelImpl:QL}),vV={kernelName:Hs,backendName:"webgl",kernelFunc:Cat};var Zu=class{constructor(t,e,n,o,s,i,a=!0,u=!1){this.variableNames=["updates","indices","defaultValue"],this.outputShape=i;let l=zt(s.length),c=zt(i.length),p="";n===1?p="i":n===2&&(p="i, j");let m=`getIndices(${p})`,f="";o===1?f="i":o===2&&(f="i, coords[1]");let d=`getUpdates(${f})`,h="";u&&(h="coords[0], coords[1]");let g=`getDefaultValue(${h})`,x=e>1?"strides[j]":"strides";this.userCode=` +`,Xat=It({opSnippet:jat}),OV={kernelName:Ks,backendName:"webgl",kernelFunc:Xat};var Yat="return inversesqrt(x);",Zat=It({opSnippet:Yat,cpuKernelImpl:pz}),PV={kernelName:js,backendName:"webgl",kernelFunc:Zat};var rc=class{constructor(t,e,n,o,s,i,a=!0,u=!1){this.variableNames=["updates","indices","defaultValue"],this.outputShape=i;let l=zt(s.length),c=zt(i.length),p="";n===1?p="i":n===2&&(p="i, j");let m=`getIndices(${p})`,f="";o===1?f="i":o===2&&(f="i, coords[1]");let d=`getUpdates(${f})`,h="";u&&(h="coords[0], coords[1]");let g=`getDefaultValue(${h})`,x=e>1?"strides[j]":"strides";this.userCode=` ${l} strides = ${l}(${s}); void main() { @@ -4592,7 +4600,7 @@ return a / b;`,Bit=` } setOutput(mix(${g}, sum, found)); } - `}};function vat(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=rt({inputs:{x:o},backend:e,attrs:{shape:[u,a]}}),d=rt({inputs:{x:s},backend:e,attrs:{shape:[u,l]}}),h=e.makeTensorInfo([],"float32",new Float32Array([0])),g;L().getBool("WEBGL_PACK")?g=new hC(u,a,f.shape.length,d.shape.length,c,m):g=new Zu(u,a,f.shape.length,d.shape.length,c,m);let x=e.runWebGLProgram(g,[d,f,h],d.dtype),b=rt({inputs:{x},backend:e,attrs:{shape:i}});return e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(x),e.disposeIntermediateTensorInfo(h),b}var SV={kernelName:ol,backendName:"webgl",kernelFunc:vat};var gC=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=L().getNumber("WEBGL_VERSION")===2?s:i,u=o==="left"?"<":"<=";this.userCode=` + `}};function Jat(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=rt({inputs:{x:o},backend:e,attrs:{shape:[u,a]}}),d=rt({inputs:{x:s},backend:e,attrs:{shape:[u,l]}}),h=e.makeTensorInfo([],"float32",new Float32Array([0])),g;L().getBool("WEBGL_PACK")?g=new hC(u,a,f.shape.length,d.shape.length,c,m):g=new rc(u,a,f.shape.length,d.shape.length,c,m);let x=e.runWebGLProgram(g,[d,f,h],d.dtype),b=rt({inputs:{x},backend:e,attrs:{shape:i}});return e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(x),e.disposeIntermediateTensorInfo(h),b}var MV={kernelName:al,backendName:"webgl",kernelFunc:Jat};var gC=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=L().getNumber("WEBGL_VERSION")===2?s:i,u=o==="left"?"<":"<=";this.userCode=` int findBound(int batch, float value) { int left = 0; int right = numInputs; @@ -4617,7 +4625,7 @@ return a / b;`,Bit=` setOutput(float(findBound(batch, value))); } - `}};function Sat(r){let{inputs:t,backend:e,attrs:n}=r,{sortedSequence:o,values:s}=t,{side:i}=n,a=new gC(o.shape[0],o.shape[1],s.shape[1],i),u=[[o.shape[1]]];return e.runWebGLProgram(a,[o,s],"int32",u)}var NV={kernelName:il,backendName:"webgl",kernelFunc:Sat};var xC=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); -`,Tat=wt({opSnippet:kat}),TV={kernelName:qs,backendName:"webgl",kernelFunc:Tat};var _at=Bo+` +`,rlt=It({opSnippet:elt}),BV={kernelName:Xs,backendName:"webgl",kernelFunc:rlt};var nlt=Vo+` return 1.0 / (1.0 + exp(-1.0 * x)); -`,Eat=` +`,olt=` vec4 result = 1.0 / (1.0 + exp(-1.0 * x)); bvec4 isNaN = isnan(x); @@ -4645,20 +4653,20 @@ return a / b;`,Bit=` result.a = isNaN.a ? x.a : result.a; return result; -`,Aat=wt({opSnippet:_at,packedOpSnippet:Eat,cpuKernelImpl:ez}),_V={kernelName:Xs,backendName:"webgl",kernelFunc:Aat};var Dat=` +`,slt=It({opSnippet:nlt,packedOpSnippet:olt,cpuKernelImpl:fz}),VV={kernelName:Qs,backendName:"webgl",kernelFunc:slt};var ilt=` if (isnan(x)) { return 0.0; } return sign(x); -`,$at=wt({opSnippet:Dat}),EV={kernelName:js,backendName:"webgl",kernelFunc:$at};var Rat=Bo+` +`,alt=It({opSnippet:ilt}),GV={kernelName:Js,backendName:"webgl",kernelFunc:alt};var llt=Vo+` return sin(x); -`,Fat=` +`,ult=` vec4 result = sin(x); bvec4 isNaN = isnan(x); - ${Yn} + ${Qn} return result; -`,Oat=wt({opSnippet:Rat,packedOpSnippet:Fat}),AV={kernelName:Ks,backendName:"webgl",kernelFunc:Oat};var Pat=` +`,clt=It({opSnippet:llt,packedOpSnippet:ult}),WV={kernelName:Ys,backendName:"webgl",kernelFunc:clt};var plt=` float e2x = exp(x); return (e2x - 1.0 / e2x) / 2.0; -`,Mat=wt({opSnippet:Pat}),DV={kernelName:al,backendName:"webgl",kernelFunc:Mat};var Lat=` +`,mlt=It({opSnippet:plt}),UV={kernelName:Zs,backendName:"webgl",kernelFunc:mlt};var flt=` float epsilon = 1.1920928955078125e-7; float threshold = log(epsilon) + 2.0; @@ -4678,17 +4686,17 @@ return a / b;`,Bit=` result = log(exp_x + 1.0); } return result; -`,zat=wt({opSnippet:Lat}),$V={kernelName:Ys,backendName:"webgl",kernelFunc:zat};var Bat=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},RV={kernelName:Wi,backendName:"webgl",kernelFunc:Bat};function Vat(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: +`,dlt=It({opSnippet:flt}),HV={kernelName:ti,backendName:"webgl",kernelFunc:dlt};var hlt=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},qV={kernelName:Ki,backendName:"webgl",kernelFunc:hlt};function glt(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]=nz(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 FV={kernelName:su,backendName:"webgl",kernelFunc:Vat};function Gat(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]=oz(a,n.shape,n.dtype,i,u);return[e.makeTensorInfo(c,n.dtype,l),e.makeTensorInfo([p.length],s.dtype,new Int32Array(p))]}var OV={kernelName:ll,backendName:"webgl",kernelFunc:Gat};function Wat(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]=hz(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 KV={kernelName:cu,backendName:"webgl",kernelFunc:glt};function xlt(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]=gz(a,n.shape,n.dtype,i,u);return[e.makeTensorInfo(c,n.dtype,l),e.makeTensorInfo([p.length],s.dtype,new Int32Array(p))]}var jV={kernelName:cl,backendName:"webgl",kernelFunc:xlt};function ylt(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]=Jw(i,n.shape,n.dtype,a,u,!0);return e.makeTensorInfo(c,n.dtype,l)}var PV={kernelName:iu,backendName:"webgl",kernelFunc:Wat};function Uat(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]=Jw(i,n.shape,n.dtype,a,u,!0);return e.makeTensorInfo(c,n.dtype,l)}var XV={kernelName:pu,backendName:"webgl",kernelFunc:ylt};function blt(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]=Jw(i,n.shape,n.dtype,a,u);return e.makeTensorInfo(c,n.dtype,l)}var MV={kernelName:au,backendName:"webgl",kernelFunc:Uat};function Hat(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]),I=tz(x,b,a,m,c,l,u,p,w,f);return e.makeTensorInfo(a,I.dtype,I.values)}let d=new Zu(l,u,o.shape.length,s.shape.length,p,[m,1],f),h=e.runWebGLProgram(d,[s,o,i],s.dtype),g=rt({inputs:{x:h},backend:e,attrs:{shape:a}});return e.disposeIntermediateTensorInfo(h),g}var LV={kernelName:ul,backendName:"webgl",kernelFunc:Hat};function qat(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 zV={kernelName:Ui,backendName:"webgl",kernelFunc:qat};var BV="return sqrt(x);",Kat=wt({opSnippet:BV,packedOpSnippet:BV,cpuKernelImpl:sz}),VV={kernelName:Zs,backendName:"webgl",kernelFunc:Kat};var jat="return x * x;",Xat=wt({opSnippet:jat}),GV={kernelName:lu,backendName:"webgl",kernelFunc:Xat};var WV="return (a - b) * (a - b);",Yat=ue({opSnippet:WV,packedOpSnippet:WV}),UV={kernelName:ti,backendName:"webgl",kernelFunc:Yat};function Zat(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t;if(o.dtype!=="string")throw new Error("Input must be of datatype string");let s=e.readSync(o.dataId),i=S.fromUint8ToStringArray(s),a=iz(i,"string",n);return e.makeTensorInfo(o.shape,"string",a)}var HV={kernelName:sc,backendName:"webgl",kernelFunc:Zat};function Jat({inputs:r,attrs:t,backend:e}){let{x:n}=r,o=yr+` + ${s.shape}`);let i=e.readSync(n.dataId),a=e.readSync(o.dataId),u=e.readSync(s.dataId),[l,c]=Jw(i,n.shape,n.dtype,a,u);return e.makeTensorInfo(c,n.dtype,l)}var YV={kernelName:mu,backendName:"webgl",kernelFunc:blt};function wlt(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]),I=mz(x,b,a,m,c,l,u,p,w,f);return e.makeTensorInfo(a,I.dtype,I.values)}let d=new rc(l,u,o.shape.length,s.shape.length,p,[m,1],f),h=e.runWebGLProgram(d,[s,o,i],s.dtype),g=rt({inputs:{x:h},backend:e,attrs:{shape:a}});return e.disposeIntermediateTensorInfo(h),g}var ZV={kernelName:pl,backendName:"webgl",kernelFunc:wlt};function Ilt(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=_i({inputs:{x:o},backend:e,attrs:{begin:c,size:f}});return c[a]+=m,d})}var JV={kernelName:ji,backendName:"webgl",kernelFunc:Ilt};var QV="return sqrt(x);",Clt=It({opSnippet:QV,packedOpSnippet:QV,cpuKernelImpl:xz}),tG={kernelName:ei,backendName:"webgl",kernelFunc:Clt};var vlt="return x * x;",Slt=It({opSnippet:vlt}),eG={kernelName:fu,backendName:"webgl",kernelFunc:Slt};var rG="return (a - b) * (a - b);",Nlt=ue({opSnippet:rG,packedOpSnippet:rG}),nG={kernelName:oi,backendName:"webgl",kernelFunc:Nlt};function klt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t;if(o.dtype!=="string")throw new Error("Input must be of datatype string");let s=e.readSync(o.dataId),i=S.fromUint8ToStringArray(s),a=yz(i,"string",n);return e.makeTensorInfo(o.shape,"string",a)}var oG={kernelName:cc,backendName:"webgl",kernelFunc:klt};function Tlt({inputs:r,attrs:t,backend:e}){let{x:n}=r,o=yr+` return x > 0.0 ? 1.0 : float(${t.alpha}); - `,s=new zr(n.shape,o);return e.runWebGLProgram(s,[n],n.dtype)}var qV={kernelName:yo,backendName:"webgl",kernelFunc:Jat};var yC=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 Br(n.shape,o);return e.runWebGLProgram(s,[n],n.dtype)}var sG={kernelName:wo,backendName:"webgl",kernelFunc:Tlt};var yC=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} begin = ${s}(${t}); ${s} strides = ${s}(${e}); @@ -4696,15 +4704,15 @@ return a / b;`,Bit=` ${i} coords = getOutputCoords(); setOutput(getX(${a})); } - `}};function Qat(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:I}=ze.sliceInfo(o.shape,s,i,a,u,l,c,p,m),N;if(h)N=rt({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=ze.computeOutShape(b,w,I),D=Si({inputs:{x:o},backend:e,attrs:{begin:b,size:A}});N=rt({inputs:{x:D},backend:e,attrs:{shape:d}}),e.disposeIntermediateTensorInfo(D)}else if(e.shouldExecuteOnCPU([o])){let D=e.readSync(o.dataId),F=bt(o.shape,o.dtype,D),P=az(f,F,I,b);N=e.makeTensorInfo(d,o.dtype,P.values)}else{let D=new yC(b,I,f);N=e.runWebGLProgram(D,[o],o.dtype)}let E=rt({inputs:{x:N},backend:e,attrs:{shape:d}});return e.disposeIntermediateTensorInfo(N),E}var KV={kernelName:cl,backendName:"webgl",kernelFunc:Qat};function tlt(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]=lz(m,f,o,s,i,a,u,l);return[e.makeTensorInfo([d.length],"string",d),e.makeTensorInfo(p.shape,"int32",h)]}var jV={kernelName:uu,backendName:"webgl",kernelFunc:tlt};function elt(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]=uz(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 XV={kernelName:cu,backendName:"webgl",kernelFunc:elt};function rlt(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=cz(i,o);return e.makeTensorInfo(s.shape,"int32",a)}var YV={kernelName:pu,backendName:"webgl",kernelFunc:rlt};var nlt="return tan(x);",olt=wt({opSnippet:nlt}),ZV={kernelName:ri,backendName:"webgl",kernelFunc:olt};var slt=` + `}};function _lt(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:I}=ze.sliceInfo(o.shape,s,i,a,u,l,c,p,m),N;if(h)N=rt({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=ze.computeOutShape(b,w,I),D=_i({inputs:{x:o},backend:e,attrs:{begin:b,size:A}});N=rt({inputs:{x:D},backend:e,attrs:{shape:d}}),e.disposeIntermediateTensorInfo(D)}else if(e.shouldExecuteOnCPU([o])){let D=e.readSync(o.dataId),F=wt(o.shape,o.dtype,D),P=bz(f,F,I,b);N=e.makeTensorInfo(d,o.dtype,P.values)}else{let D=new yC(b,I,f);N=e.runWebGLProgram(D,[o],o.dtype)}let E=rt({inputs:{x:N},backend:e,attrs:{shape:d}});return e.disposeIntermediateTensorInfo(N),E}var iG={kernelName:ml,backendName:"webgl",kernelFunc:_lt};function Elt(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]=wz(m,f,o,s,i,a,u,l);return[e.makeTensorInfo([d.length],"string",d),e.makeTensorInfo(p.shape,"int32",h)]}var aG={kernelName:du,backendName:"webgl",kernelFunc:Elt};function Alt(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]=Iz(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 lG={kernelName:hu,backendName:"webgl",kernelFunc:Alt};function Dlt(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=Cz(i,o);return e.makeTensorInfo(s.shape,"int32",a)}var uG={kernelName:gu,backendName:"webgl",kernelFunc:Dlt};var $lt="return tan(x);",Rlt=It({opSnippet:$lt}),cG={kernelName:ii,backendName:"webgl",kernelFunc:Rlt};var Flt=` float e2x = exp(-2.0 * abs(x)); return sign(x) * (1.0 - e2x) / (1.0 + e2x); -`,ilt=wt({opSnippet:slt}),JV={kernelName:ni,backendName:"webgl",kernelFunc:ilt};function alt(r){let{inputs:t,backend:e,attrs:n}=r,{tensor:o,indices:s,updates:i}=t,{}=n,{sliceRank:a,numUpdates:u,sliceSize:l,strides:c,outputSize:p}=S.calculateShapes(i,s,o.shape),m=[p/l,l];if(p===0)return e.makeTensorInfo(o.shape,s.dtype);let f=rt({inputs:{x:s},backend:e,attrs:{shape:[u,a]}}),d=rt({inputs:{x:i},backend:e,attrs:{shape:[u,l]}}),h=rt({inputs:{x:o},backend:e,attrs:{shape:m}}),g=new Zu(u,a,f.shape.length,d.shape.length,c,m,!1,!0),x=e.runWebGLProgram(g,[d,f,h],h.dtype),b=rt({inputs:{x},backend:e,attrs:{shape:o.shape}});return e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(h),e.disposeIntermediateTensorInfo(x),b}var QV={kernelName:sl,backendName:"webgl",kernelFunc:alt};var bC=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=bt(o.shape,o.dtype,l),p=mz(c,s);return e.makeTensorInfo(p.shape,p.dtype,p.values)}let i=new bC(o.shape,s);return e.runWebGLProgram(i,[o],o.dtype)}var tG={kernelName:so,backendName:"webgl",kernelFunc:O1};var wC=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 Mlt(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=Sz(c,s);return e.makeTensorInfo(p.shape,p.dtype,p.values)}let i=new bC(o.shape,s);return e.runWebGLProgram(i,[o],o.dtype)}var fG={kernelName:lo,backendName:"webgl",kernelFunc:G1};var wC=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]; @@ -4778,7 +4786,7 @@ return a / b;`,Bit=` setOutput(x0 >= x1 ? float(i0) : float(i1)); } - `}};function Ip(r,t){t!==null&&r.disposeIntermediateTensorInfo(t)}function eG(r){let t=1;for(;tu){let P=e.readSync(o.dataId),[V,G]=fz(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,Wl({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=rt({inputs:{x:f},attrs:{shape:[h,c]},backend:e});m&&Ip(e,f);let x=eG(s),b=eG(c),w=null,I=()=>w===null?[g,g]:[g,w],N=(P,V,G)=>{let W=I(),q=new wC(G),K=[[c],[w===null?1:0],[Number.NEGATIVE_INFINITY],[P],[V]],X=w;w=e.runWebGLProgram(q,W,"int32",K),Ip(e,X)};for(let P=1;P=1;G/=2)N(V,G,[h,b])}for(let P=b;P>x;P/=2){let V=I(),G=new IC([h,P/2]),q=[[c],[w===null?1:0],[x]],H=w;w=e.runWebGLProgram(G,V,"int32",q),Ip(e,H);let K=x/2,X=K*2;for(let Z=K;Z>=1;Z/=2)N(X,Z,w.shape)}let E=w;w=Si({inputs:{x:w},backend:e,attrs:{begin:0,size:[h,s]}}),Ip(e,E);let A=_1({inputs:{x:g,indices:w},backend:e,attrs:{axis:1,batchDims:1}});Ip(e,g);let D=l.slice(0,-1);D.push(s),E=w,w=rt({inputs:{x:w},attrs:{shape:D},backend:e}),Ip(e,E);let F=A;return A=rt({inputs:{x:A},attrs:{shape:D},backend:e}),Ip(e,F),[A,w]}var rG={kernelName:pl,backendName:"webgl",kernelFunc:ult};var CC=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 kp(r,t){t!==null&&r.disposeIntermediateTensorInfo(t)}function dG(r){let t=1;for(;tu){let P=e.readSync(o.dataId),[V,G]=Nz(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,Hl({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=rt({inputs:{x:f},attrs:{shape:[h,c]},backend:e});m&&kp(e,f);let x=dG(s),b=dG(c),w=null,I=()=>w===null?[g,g]:[g,w],N=(P,V,G)=>{let W=I(),q=new wC(G),K=[[c],[w===null?1:0],[Number.NEGATIVE_INFINITY],[P],[V]],X=w;w=e.runWebGLProgram(q,W,"int32",K),kp(e,X)};for(let P=1;P=1;G/=2)N(V,G,[h,b])}for(let P=b;P>x;P/=2){let V=I(),G=new IC([h,P/2]),q=[[c],[w===null?1:0],[x]],H=w;w=e.runWebGLProgram(G,V,"int32",q),kp(e,H);let K=x/2,X=K*2;for(let Z=K;Z>=1;Z/=2)N(X,Z,w.shape)}let E=w;w=_i({inputs:{x:w},backend:e,attrs:{begin:0,size:[h,s]}}),kp(e,E);let A=O1({inputs:{x:g,indices:w},backend:e,attrs:{axis:1,batchDims:1}});kp(e,g);let D=l.slice(0,-1);D.push(s),E=w,w=rt({inputs:{x:w},attrs:{shape:D},backend:e}),kp(e,E);let F=A;return A=rt({inputs:{x:A},attrs:{shape:D},backend:e}),kp(e,F),[A,w]}var hG={kernelName:fl,backendName:"webgl",kernelFunc:Llt};var CC=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) { @@ -4890,7 +4898,7 @@ return a / b;`,Bit=` } setOutput(outputValue); } - `}};function clt(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 CC(p,m,i,a,u,g);return e.runWebGLProgram(x,[o,s],"float32")}var nG={kernelName:ml,backendName:"webgl",kernelFunc:clt};function plt(r){let{inputs:t,attrs:e,backend:n}=r,{axis:o}=e,{x:s}=t;Ii(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}=dz(i,o,s.shape,s.dtype);return[n.makeTensorInfo(u,s.dtype,a),n.makeTensorInfo([l.length],"int32",l)]}var oG={kernelName:mu,backendName:"webgl",kernelFunc:plt};function mlt(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 sG={kernelName:Hi,backendName:"webgl",kernelFunc:mlt};var vC=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 zlt(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 CC(p,m,i,a,u,g);return e.runWebGLProgram(x,[o,s],"float32")}var gG={kernelName:dl,backendName:"webgl",kernelFunc:zlt};function Blt(r){let{inputs:t,attrs:e,backend:n}=r,{axis:o}=e,{x:s}=t;Ni(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}=kz(i,o,s.shape,s.dtype);return[n.makeTensorInfo(u,s.dtype,a),n.makeTensorInfo([l.length],"int32",l)]}var xG={kernelName:xu,backendName:"webgl",kernelFunc:Blt};function Vlt(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 yG={kernelName:Xi,backendName:"webgl",kernelFunc:Vlt};var vC=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}) { @@ -4996,6 +5004,6 @@ return a / b;`,Bit=` } setOutput(${l}); } - `}};function flt(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=Pe({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=rt({inputs:{x:p},backend:e,attrs:{shape:[-1,f]}});u.push(d);let h=mc(o.dtype),g=(I,N,E,A,D)=>{let F=I.shape[0],P=I.shape[1],V=S.segment_util.segOpComputeOptimalWindowSize(P,D),G={windowSize:V,inSize:P,batchSize:F,numSegments:D},W=new vC(G,N),q=e.compileAndRun(W,[I,E],A);if(u.push(q),q.shape[1]===D)return q;let H=F1({backend:e,attrs:{start:0,stop:D,step:1,dtype:"float32"}}),K=O1({inputs:{x:H},backend:e,attrs:{reps:[P/V]}});return u.push(H),u.push(K),g(q,N,K,A,D)},x=g(d,"unsortedSegmentSum",s,h,i),b=rt({inputs:{x},backend:e,attrs:{shape:m}}),w=b;if(c!=null){u.push(b);let I=S.getUndoAxesPermutation(c);w=Pe({inputs:{x:w},backend:e,attrs:{perm:I}})}return u.forEach(I=>e.disposeIntermediateTensorInfo(I)),w}var iG={kernelName:fu,backendName:"webgl",kernelFunc:flt};var dlt=[Wz,Hz,qz,Kz,Xz,Yz,Zz,Jz,e3,r3,n3,o3,s3,i3,a3,l3,u3,c3,p3,m3,f3,h3,g3,x3,I3,v3,S3,Rz,k3,_3,E3,A3,D3,$3,R3,F3,O3,P3,M3,B3,V3,G3,W3,U3,H3,q3,K3,j3,X3,Y3,Z3,J3,Q3,tB,eB,nB,oB,sB,iB,lB,uB,cB,pB,mB,fB,dB,hB,gB,$z,xB,T3,yB,bB,wB,Fz,IB,CB,vB,SB,NB,kB,TB,_B,EB,AB,$B,RB,FB,OB,PB,MB,zB,VB,GB,WB,UB,HB,YB,Mz,ZB,JB,QB,tV,y3,eV,oV,sV,iV,aV,Oz,lV,uV,cV,pV,mV,b3,qB,fV,dV,hV,zz,gV,xV,yV,bV,wV,IV,CV,vV,SV,NV,kV,TV,_V,EV,AV,DV,d3,XB,$V,RV,FV,OV,PV,MV,LV,zV,VV,GV,UV,HV,qV,KV,jV,XV,YV,jB,Vz,ZV,JV,QV,tG,rG,nG,Gz,oG,sG,iG,rV];for(let r of dlt)ic(r);var kt;(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"})(kt||(kt={}));var Ju;(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"})(Ju||(Ju={}));var aG;function hlt(r){aG=r.wasm.cwrap(Ki,null,["number","array","number","number","array","number","number","number","number","number","number","number","number"])}function glt(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 D=e.dataIdMap.get(i.dataId);if(D.shape.length!==1)throw new Error(`_FusedMatMul only supports rank-1 bias but got rank ${D.shape.length}.`);d=D.id}let h=a==null?0:e.dataIdMap.get(a.dataId).id,g=Ju[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=Ur.assertAndGetBroadcastShape(o.shape.slice(0,-2),s.shape.slice(0,-2)),I=e.makeOutput([...w,x,b],o.dtype),N=e.dataIdMap.get(I.dataId).id,E=new Uint8Array(new Int32Array(o.shape).buffer),A=new Uint8Array(new Int32Array(s.shape).buffer);return aG(m,E,o.shape.length,f,A,s.shape.length,u,l,g,d,h,p||0,N),I}var lG={kernelName:Ki,backendName:"wasm",setupFunc:hlt,kernelFunc:glt};function Ct(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,kt[a.dtype],c),l}return{kernelName:r,backendName:"wasm",setupFunc:n,kernelFunc:o}}var uG=Ct(_i);var cG=Ct(Ho);var pG=Ct(qo);function ae(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,kt[l.dtype],b))(),h}return{kernelName:r,backendName:"wasm",setupFunc:o,kernelFunc:s}}var xlt=!0,mG=ae(oo,xlt);var fG;function ylt(r){fG=r.wasm.cwrap(Ko,null,["array","number","number","number"])}function blt(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 fG(s,o.length,kt[n.dtype],i),n}var dG={kernelName:Ko,backendName:"wasm",setupFunc:ylt,kernelFunc:blt};function Cp(r){let{inputs:{x:t},backend:e}=r;if(t.dtype==="string")return sr(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 hG={kernelName:xo,backendName:"wasm",kernelFunc:Cp};var gG;function wlt(r){gG=r.wasm.cwrap(io,null,["number","array","number","number","number","array","number"])}function fo(r){let{inputs:t,backend:e,attrs:n}=r,[o,s]=Clt(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 xG={kernelName:io,backendName:"wasm",kernelFunc:fo,setupFunc:wlt};function vn(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 OG={kernelName:Bi,backendName:"wasm",kernelFunc:mr};var PG;function Rlt(r){PG=r.wasm.cwrap(ts,null,["number","array","number","number","array","number","number","number","number"])}function Flt(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=Ur.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 I=i?[g,c,m]:[g,m,c],N=a?[x,f,p]:[x,p,f],E=mr({inputs:{x:o},backend:e,attrs:{shape:I}}),A=mr({inputs:{x:s},backend:e,attrs:{shape:N}}),D=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),K=new Uint8Array(new Int32Array(A.shape).buffer);return PG(D,H,E.shape.length,F,K,A.shape.length,i,a,q),e.disposeData(E.dataId),e.disposeData(A.dataId),W.shape=w,W}var MG={kernelName:ts,backendName:"wasm",setupFunc:Rlt,kernelFunc:Flt};function Vo(r){let{inputs:{x:t},attrs:{begin:e,size:n},backend:o}=r,[s,i]=ze.parseSliceParams(t,e,n),a=ze.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=ze.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=sp(u,s,i,t.shape,t.dtype);return p.stringBytes=d,l}let m=o.typedArrayFromHeap(l),f=t.shape.length;if(f===2)Olt(u,c[0],m,s,i);else if(f===3)Plt(u,c[0],c[1],m,s,i);else if(f===4)Mlt(u,c[0],c[1],c[2],m,s,i);else{let d=sp(u,s,i,t.shape,t.dtype);m.set(d)}return l}function Olt(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=mr({inputs:{x:o},backend:e,attrs:{shape:u}}),d=fo({inputs:{x:f},backend:e,attrs:{perm:l}}),h=mr({inputs:{x:d},backend:e,attrs:{shape:c}}),g=Vo({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 zG={kernelName:$i,backendName:"wasm",kernelFunc:Llt};var BG;function zlt(r){BG=r.wasm.cwrap(Da,null,["number","number","boolean","number","number","number"])}function Blt(r){let{backend:t,inputs:e,attrs:n}=r,{x:o,weights:s}=e,{size:i}=n,a=s.shape.reduce((p,m)=>p*m,1)!==0,u=o.shape.length===1?[i]:[o.shape[0],i],l=t.makeOutput(u,s.dtype);function c(p){return t.dataIdMap.get(p.dataId).id}return BG(c(o),i,a,c(s),kt[s.dtype],c(l)),l}var VG={kernelName:Da,backendName:"wasm",setupFunc:zlt,kernelFunc:Blt};function Vlt(r){let{inputs:t,backend:e}=r,{s0:n,s1:o}=t,s=e.typedArrayFromHeap(n),i=e.typedArrayFromHeap(o),a=S.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return e.makeOutput([a.length],"int32",void 0,new Int32Array(a))}var GG={kernelName:Yl,backendName:"wasm",kernelFunc:Vlt};function On(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 WG={kernelName:ho,backendName:"wasm",kernelFunc:On};var UG=Ct(es);var HG;function Glt(r){HG=r.wasm.cwrap(go,null,["number","number","number","number"])}function Wlt(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 HG(a,s,i,l),u}var qG={kernelName:go,backendName:"wasm",setupFunc:Glt,kernelFunc:Wlt};function P1(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 Cp({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 mr({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=rp(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=fo({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;lW(d,i?1:0,a?1:0,f,h,kt[o.dtype]);let g=m;if(l!==null){let x=S.getUndoAxesPermutation(l);g=fo({inputs:{x:m},attrs:{perm:x},backend:e}),e.disposeData(c.dataId),e.disposeData(m.dataId)}return g}var uW={kernelName:Fa,backendName:"wasm",setupFunc:rut,kernelFunc:nut};var cW;function out(r){cW=r.wasm.cwrap(as,null,["number","number","number","number","number","number"])}function sut(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=fo({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;cW(d,i?1:0,a?1:0,f,h,kt[o.dtype]);let g=m;if(l!==null){let x=S.getUndoAxesPermutation(l);g=fo({inputs:{x:m},attrs:{perm:x},backend:e}),e.disposeData(c.dataId),e.disposeData(m.dataId)}return g}var pW={kernelName:as,backendName:"wasm",setupFunc:out,kernelFunc:sut};var mW;function iut(r){mW=r.wasm.cwrap("DenseBincount",null,["number","array","number","number","boolean","number","number","boolean","number"])}function aut(r){let{backend:t,inputs:e,attrs:n}=r,{x:o,weights:s}=e,{size:i,binaryOutput:a}=n,u=s.shape.reduce((m,f)=>m*f,1)!==0,l=o.shape.length===1?[i]:[o.shape[0],i],c=t.makeOutput(l,s.dtype);function p(m){return t.dataIdMap.get(m.dataId).id}return mW(p(o),new Uint8Array(new Int32Array(o.shape).buffer),o.shape.length,i,u,p(s),kt[s.dtype],a,p(c)),c}var fW={kernelName:Jl,backendName:"wasm",setupFunc:iut,kernelFunc:aut};var dW;function lut(r){dW=r.wasm.cwrap(Pa,null,["number","number","number","array","number","array","array","number","number"])}function uut(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),I=new Uint8Array(new Int32Array(y.computeStrides(d)).buffer),N=t.dataIdMap.get(h.dataId).id;return dW(x,s,i==="NHWC"?1:0,b,o.shape.length-1,w,I,d.length,N),h}var hW={kernelName:Pa,backendName:"wasm",setupFunc:lut,kernelFunc:uut};var gW;function cut(r){gW=r.wasm.cwrap(ls,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function put(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,I=f.dilationHeight,N=f.dilationWidth,E=f.strideHeight,A=f.strideWidth,D=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 gW(i,o.shape[0],o.shape[1],o.shape[2],a,d,h,g,x,b,w,P,I,N,E,A,D,F,G),V}var xW={kernelName:ls,backendName:"wasm",setupFunc:cut,kernelFunc:put};var yW;function mut(r){yW=r.wasm.cwrap("Diag",null,["number","number","number","number"])}function fut(r){let{inputs:t,backend:e}=r,{x:n}=t,o=y.sizeFromShape(n.shape),s=e.makeOutput([...n.shape,...n.shape],n.dtype);return yW(e.dataIdMap.get(n.dataId).id,kt[n.dtype],o,e.dataIdMap.get(s.dataId).id),s}var bW={kernelName:Ql,backendName:"wasm",setupFunc:mut,kernelFunc:fut};var wW;function dut(r){wW=r.wasm.cwrap(us,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function hut(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dilations:u}=n;if(o.dtype!==s.dtype)throw new Error(`Dilation2D error: x must have the same dtype as filter. Got ${o.dtype} and ${s.dtype}`);let l=S.computeDilation2DInfo(o.shape,s.shape,i,a,"NHWC",u),c=e.makeOutput(l.outShape,o.dtype);return wW(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(c.dataId).id,kt[o.dtype],l.batchSize,l.inChannels,l.inHeight,l.inWidth,l.outHeight,l.outWidth,l.strideHeight,l.strideWidth,l.dilationHeight,l.dilationWidth,l.filterHeight,l.filterWidth,l.padInfo.top,l.padInfo.left),c}var IW={kernelName:us,backendName:"wasm",setupFunc:dut,kernelFunc:hut};var CW;function gut(r){CW=r.wasm.cwrap(eu,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function xut(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s,dy:i}=t,{strides:a,pad:u,dilations:l}=n;if(o.dtype!==s.dtype||o.dtype!==i.dtype)throw new Error(`Dilation2DBackpropFilter error: x must have the same dtype as filter and dy. Got ${o.dtype}, ${s.dtype}, and ${i.dtype}`);let c=S.computeDilation2DInfo(o.shape,s.shape,a,u,"NHWC",l),p=e.makeOutput(s.shape,s.dtype);return CW(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(i.dataId).id,e.dataIdMap.get(p.dataId).id,kt[o.dtype],c.batchSize,c.inChannels,c.inHeight,c.inWidth,c.outHeight,c.outWidth,c.strideHeight,c.strideWidth,c.dilationHeight,c.dilationWidth,c.filterHeight,c.filterWidth,c.padInfo.top,c.padInfo.left),p}var vW={kernelName:eu,backendName:"wasm",setupFunc:gut,kernelFunc:xut};var SW;function yut(r){SW=r.wasm.cwrap(tu,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function but(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s,dy:i}=t,{strides:a,pad:u,dilations:l}=n;if(o.dtype!==s.dtype||o.dtype!==i.dtype)throw new Error(`Dilation2DBackpropInput error: x must have the same dtype as filter and dy. Got ${o.dtype}, ${s.dtype}, and ${i.dtype}`);let c=S.computeDilation2DInfo(o.shape,s.shape,a,u,"NHWC",l),p=e.makeOutput(o.shape,o.dtype);return SW(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(i.dataId).id,e.dataIdMap.get(p.dataId).id,kt[o.dtype],c.batchSize,c.inChannels,c.inHeight,c.inWidth,c.outHeight,c.outWidth,c.strideHeight,c.strideWidth,c.dilationHeight,c.dilationWidth,c.filterHeight,c.filterWidth,c.padInfo.top,c.padInfo.left),p}var NW={kernelName:tu,backendName:"wasm",setupFunc:yut,kernelFunc:but};var kW=Ct(ps);var TW;function wut(r){TW=r.wasm.cwrap(Ma,null,["number","number","number"])}function Iut(r){let{inputs:t,backend:e}=r,{dy:n,y:o}=t,s=e.makeOutput(o.shape,"float32"),i=a=>e.dataIdMap.get(a.dataId).id;return TW(i(o),i(n),i(s)),s}var _W={kernelName:Ma,backendName:"wasm",setupFunc:wut,kernelFunc:Iut};var Cut=!1,EW=ae(za,Cut,"bool");var AW=Ct(ms,"float32");function NC(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),mr({inputs:{x:o},backend:n,attrs:{shape:a}})}var DW={kernelName:Fi,backendName:"wasm",kernelFunc:NC};var $W=Ct(fs,"float32");function L1(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 RW={kernelName:ru,backendName:"wasm",kernelFunc:L1};var FW;function vut(r){FW=r.wasm.cwrap(Ba,null,["number","number","number","number","number","number"])}function Sut(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 FW(s,a,u,l,c,i),o}var OW={kernelName:Ba,backendName:"wasm",kernelFunc:Sut,setupFunc:vut};var PW=Ct(ds);var Nut=!1,MW=ae(hs,Nut);var LW;function kut(r){LW=r.wasm.cwrap(gs,null,["number","number","number","number","number","number","number"])}function Tut(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 LW(c,p,m,f,d,o,g),h}var zW={kernelName:gs,backendName:"wasm",setupFunc:kut,kernelFunc:Tut};var BW;function _ut(r){BW=r.wasm.cwrap(ji,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 Eut(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=Ju[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,I=0;if(i!=null){let ot=n.dataIdMap.get(i.dataId);if(ot.shape.length!==1)throw new Error(`FusedConv2D only supports rank-1 bias but got rank ${ot.shape.length}.`);if(ot.shape[0]!==w)throw new Error(`FusedConv2D bias shape (${ot.shape}) does not match the number of output channels (${w})`);I=ot.id}let N=h.filterHeight,E=h.filterWidth,A=h.padInfo.top,D=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,K=h.padInfo.type==="SAME"?1:0,X=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 nt=n.makeOutput(h.outShape,"float32"),st=n.dataIdMap.get(nt.dataId).id,at=a==null?0:n.dataIdMap.get(a.dataId).id;return BW(x,X,Z,et,b,N,E,I,A,D,F,P,K,V,G,W,q,H,w,g,at,d||0,st),nt}var VW={kernelName:ji,backendName:"wasm",setupFunc:_ut,kernelFunc:Eut};var GW;function Aut(r){GW=r.wasm.cwrap(Xi,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 Dut(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=Ju[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,I=0;if(i!=null){let ot=n.dataIdMap.get(i.dataId);if(ot.shape.length!==1)throw new Error(`FusedDepthwiseConv2D only supports rank-1 bias but got rank ${ot.shape.length}.`);if(ot.shape[0]!==w)throw new Error(`FusedDepthwiseConv2D bias shape (${ot.shape}) does not match the number of output channels (${w})`);I=ot.id}let N=h.filterHeight,E=h.filterWidth,A=h.padInfo.top,D=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,K=h.padInfo.type==="SAME"?1:0,X=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 nt=n.makeOutput(h.outShape,"float32"),st=n.dataIdMap.get(nt.dataId).id,at=a==null?0:n.dataIdMap.get(a.dataId).id;return GW(x,X,Z,et,b,N,E,I,A,D,F,P,K,V,G,W,q,H,w,g,at,d||0,st),nt}var WW={kernelName:Xi,backendName:"wasm",setupFunc:Aut,kernelFunc:Dut};var UW;function $ut(r){UW=r.wasm.cwrap(Va,null,["number","number","number","number","number","number","array","number"])}function Rut(r){let{backend:t,inputs:e}=r,{params:n,indices:o}=e,[s,i,a,u]=Dy.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 UW(f,kt[n.dtype],h,i,p,a,g,x),l}var HW={kernelName:Va,backendName:"wasm",setupFunc:$ut,kernelFunc:Rut};var qW;function Fut(r){qW=r.wasm.cwrap("Gather",null,["number","number","array","number","number","number","array","number"])}function Out(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=mr({inputs:{x:o},attrs:{shape:[p.batchSize,p.outerSize,p.dimSize,p.sliceSize]},backend:t}),f=y.sizeFromShape(s.shape),d=mr({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),D=new Uint8Array(new Int32Array(y.computeStrides(h)).buffer);return qW(w,kt[o.dtype],A,x,N,p.batchSize,D,E),t.disposeData(m.dataId),t.disposeData(d.dataId),g.shape=p.outputShape,g}var KW={kernelName:Oi,backendName:"wasm",setupFunc:Fut,kernelFunc:Out};var Put=!1,jW=ae(Ga,Put,"bool");var Mut=!1,XW=ae(xs,Mut,"bool");var YW=Ct(ys,"bool");var ZW=Ct(bs,"bool");var JW=Ct(ws,"bool");var QW;function Lut(r){QW=r.wasm.cwrap(Is,null,["number","number","number","number"])}function zut(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;QW(o,kt[t.dtype],e,i)}return s}var tU={kernelName:Is,backendName:"wasm",setupFunc:Lut,kernelFunc:zut};var But=!1,eU=ae(Wa,But,"bool");var Vut=!1,rU=ae(Ua,Vut,"bool");var nU;function Gut(r){nU=r.wasm.cwrap(Ha,null,["number","number","number","number"])}function Wut(r){let{attrs:t,backend:e}=r,{start:n,stop:o,num:s}=t,i=Math.floor(s),a=e.makeOutput([i],"float32");return nU(e.dataIdMap.get(a.dataId).id,n,o,i),a}var oU={kernelName:Ha,backendName:"wasm",setupFunc:Gut,kernelFunc:Wut};var sU=Ct(Cs);var iU=Ct(vs);var Uut=!1,aU=ae(qa,Uut,"bool");var lU=Ct(Ka);var Hut=!1,uU=ae(ja,Hut,"bool");var qut=!1,cU=ae(g_,qut,"bool");var pU;function Kut(r){pU=r.wasm.cwrap(Ss,null,["number","number","number","number","number","number","number"])}function jut(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{depthRadius:s,bias:i,alpha:a,beta:u}=n;if(o.dtype!=="float32")throw new Error("LRN error: x must have dtype float32");let l=e.makeOutput(o.shape,o.dtype);return pU(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(l.dataId).id,o.shape[3],s,i,a,u),l}var mU={kernelName:Ss,backendName:"wasm",setupFunc:Kut,kernelFunc:jut};var fU;function Xut(r){fU=r.wasm.cwrap(Xa,null,["number","number","number","number","number","number","number","number","number"])}function Yut(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;if(o.dtype!=="float32"||s.dtype!=="float32"||i.dtype!=="float32")throw new Error("LRNGrad error: x, y, and dy must have dtype float32");let p=e.makeOutput(o.shape,o.dtype);return fU(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(i.dataId).id,e.dataIdMap.get(p.dataId).id,i.shape[3],a,u,l,c),p}var dU={kernelName:Xa,backendName:"wasm",setupFunc:Xut,kernelFunc:Yut};var hU;function Zut(r){hU=r.wasm.cwrap(Ns,null,["number","number","number","number"])}function Jut(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}=vn(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;hU(u,kt[i.dtype],x,w)}if(f&&t.disposeData(c.dataId),s){let w=S.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var gU={kernelName:Ns,backendName:"wasm",setupFunc:Zut,kernelFunc:Jut};var Qut=!1,xU=ae(ks,Qut);var yU;function tct(r){yU=r.wasm.cwrap(Ts,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function ect(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,I=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"),D=n.dataIdMap.get(A.dataId).id;return yU(s,o.shape[0],o.shape[1],o.shape[2],p,m,f,d,h,g,x,b,w,I,N,E,D),A}var bU={kernelName:Ts,backendName:"wasm",setupFunc:tct,kernelFunc:ect};var wU;function rct(r){wU=r.wasm.cwrap("MaxPool3D",null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function nct(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u,dataFormat:l}=n,c=S.computePool3DInfo(o.shape,s,i,1,a,u,l),p=e.makeOutput(c.outShape,o.dtype);return wU(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(p.dataId).id,c.batchSize,c.inChannels,c.inDepth,c.inHeight,c.inWidth,c.outDepth,c.outHeight,c.outWidth,c.strideDepth,c.strideHeight,c.strideWidth,c.dilationDepth,c.dilationHeight,c.dilationWidth,c.effectiveFilterDepth,c.effectiveFilterHeight,c.effectiveFilterWidth,c.padInfo.front,c.padInfo.top,c.padInfo.left),p}var IU={kernelName:Pi,backendName:"wasm",setupFunc:rct,kernelFunc:nct};var CU;function oct(r){CU=r.wasm.cwrap("MaxPool3DGrad",null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function sct(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,{filterSize:i,strides:a,pad:u,dimRoundingMode:l}=n,c=S.computePool3DInfo(s.shape,i,a,1,u,l),p=e.makeOutput(s.shape,s.dtype);return CU(e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(p.dataId).id,c.batchSize,c.inChannels,c.inDepth,c.inHeight,c.inWidth,c.outDepth,c.outHeight,c.outWidth,c.strideDepth,c.strideHeight,c.strideWidth,c.dilationDepth,c.dilationHeight,c.dilationWidth,c.effectiveFilterDepth,c.effectiveFilterHeight,c.effectiveFilterWidth,c.padInfo.front,c.padInfo.top,c.padInfo.left),p}var vU={kernelName:nu,backendName:"wasm",setupFunc:oct,kernelFunc:sct};var SU;function ict(r){SU=r.wasm.cwrap(_s,null,["number, number, number"])}function act(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}=vn(i,o,t),d=p;if(f){let I=t.dataIdMap.get(c.dataId).id;I!==a&&(l=c,u=I,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=On({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 I=t.dataIdMap.get(w.dataId).id;SU(u,x,I)}if(f&&t.disposeData(c.dataId),s){let I=S.expandShapeToKeepDim(w.shape,m);w.shape=I}return l.dtype!=="float32"&&t.disposeData(b.dataId),w}var NU={kernelName:_s,backendName:"wasm",setupFunc:ict,kernelFunc:act};var kU;function lct(r){kU=r.wasm.cwrap(Es,null,["number","number","number","number"])}function uct(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}=vn(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;kU(u,kt[i.dtype],x,w)}if(f&&t.disposeData(c.dataId),s){let w=S.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var TU={kernelName:Es,backendName:"wasm",setupFunc:lct,kernelFunc:uct};var cct=!1,_U=ae(As,cct);var z1;(function(r){r[r.reflect=0]="reflect",r[r.symmetric=1]="symmetric"})(z1||(z1={}));var EU;function pct(r){EU=r.wasm.cwrap(Ds,null,["number","array","number","number","array","array","number","number"])}function mct(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 EU(i,l,t.shape.length,kt[t.dtype],m,f,z1[o],u),a}var AU={kernelName:Ds,backendName:"wasm",kernelFunc:mct,setupFunc:pct};var DU;function fct(r){DU=r.wasm.cwrap(Qs,null,["number","number","number","number"])}function B1(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||DU(o,i,a,u),s}var $U={kernelName:Qs,backendName:"wasm",setupFunc:fct,kernelFunc:B1};var RU;function dct(r){RU=r.wasm.cwrap(Za,null,["number","number","number","number","number","number"])}function hct(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{numSamples:s,seed:i,normalized:a}=n;if(o.dtype!=="float32")throw new Error(`Tensor logits must have dtype float32, got ${o.dtype}`);let u=a?o:B1({inputs:{logits:o},backend:e,attrs:{dim:o.shape.length-1}}),[l,c]=u.shape,p=e.makeOutput([l,s],"int32");return RU(e.dataIdMap.get(u.dataId).id,l,c,s,i,e.dataIdMap.get(p.dataId).id),a||e.disposeData(u.dataId),p}var FU={kernelName:Za,backendName:"wasm",setupFunc:dct,kernelFunc:hct};var gct=!0,OU=ae($s,gct);var PU=Ct(Mi);function Ud(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 MU;function xct(r){MU=r.wasm.cwrap(Qa,"number",["number","number","number","number","number"])}function yct(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=MU(l,c,s,o,i),{pSelectedIndices:m,selectedSize:f,pSelectedScores:d,pValidOutputs:h}=Ud(t,p);return t.wasm._free(d),t.wasm._free(h),t.makeOutput([f],"int32",m)}var LU={kernelName:Qa,backendName:"wasm",setupFunc:xct,kernelFunc:yct};var zU;function bct(r){zU=r.wasm.cwrap(tl,"number",["number","number","number","number","number","bool"])}function wct(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=zU(c,p,s,o,i,a),{pSelectedIndices:f,selectedSize:d,pSelectedScores:h,pValidOutputs:g}=Ud(t,m);t.wasm._free(h);let x=t.makeOutput([d],"int32",f),b=t.makeOutput([],"int32",g);return[x,b]}var BU={kernelName:tl,backendName:"wasm",setupFunc:bct,kernelFunc:wct};var VU;function Ict(r){VU=r.wasm.cwrap(el,"number",["number","number","number","number","number","number"])}function Cct(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=VU(c,p,s,o,i,a),{pSelectedIndices:f,selectedSize:d,pSelectedScores:h,pValidOutputs:g}=Ud(t,m);t.wasm._free(g);let x=t.makeOutput([d],"int32",f),b=t.makeOutput([d],"float32",h);return[x,b]}var GU={kernelName:el,backendName:"wasm",setupFunc:Ict,kernelFunc:Cct};var vct=!1,WU=ae(Ja,vct,"bool");var UU;function Sct(r){UU=r.wasm.cwrap(Rs,null,["number","number","number","number","number"])}function Nct(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 UU(m,i,a,u,c),l}var HU={kernelName:Rs,backendName:"wasm",setupFunc:Sct,kernelFunc:Nct};function kct(r){let{inputs:{x:t},backend:e}=r,n=e.makeOutput(t.shape,t.dtype);return e.typedArrayFromHeap(n).fill(1),n}var qU={kernelName:Li,backendName:"wasm",kernelFunc:kct};function Tct(r){let{inputs:t,backend:e,attrs:n}=r,{axis:o}=n;if(t.length===1)return NC({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=NC({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=P1({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeData(c.dataId)),l}var KU={kernelName:zi,backendName:"wasm",kernelFunc:Tct};var jU;function _ct(r){jU=r.wasm.cwrap(Fs,null,["number","array","number","number","array","array","number","number"])}function Ect(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 L1({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 jU(i,c,t.shape.length,kt[t.dtype],f,d,o,l),a}var kC={kernelName:Fs,backendName:"wasm",kernelFunc:Ect,setupFunc:_ct};var Act=!1,XU=ae(Os,Act);var YU;function Dct(r){YU=r.wasm.cwrap(Ps,null,["number","number","number"])}function $ct(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=On({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 YU(a,i,p),u.dtype!=="float32"&&e.disposeData(l.dataId),c}var ZU={kernelName:Ps,backendName:"wasm",setupFunc:Dct,kernelFunc:$ct};var JU;function Rct(r){JU=r.wasm.cwrap(Ms,null,["number","number","number","number"])}function Fct(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}=vn(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;JU(u,x,kt[b.dtype],w)}if(f&&t.disposeData(c.dataId),s){let w=S.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var QU={kernelName:Ms,backendName:"wasm",setupFunc:Rct,kernelFunc:Fct};var Oct=r=>{let{backend:t,attrs:e}=r,{start:n,stop:o,step:s,dtype:i}=e,a=op(n,o,s,i),u=t.makeOutput([a.length],i);return t.typedArrayFromHeap(u).set(a),u},t4={kernelName:ou,backendName:"wasm",kernelFunc:Oct};var Pct=!0,e4=ae(cs,Pct);var r4=Ct(Ls);var n4=Ct(zs);var o4=Ct(Gs);var s4;function Mct(r){s4=r.wasm.cwrap(Vs,null,["number","number","number","number","number","number","number","number","number","number"])}function Lct(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=On({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 s4(x,c,p,m,f,u,l,s?1:0,i?1:0,w),g!=null&&t.disposeData(g.dataId),b}var i4={kernelName:Vs,backendName:"wasm",setupFunc:Mct,kernelFunc:Lct};var a4;function zct(r){a4=r.wasm.cwrap(nl,null,["number","number","number","array","array","boolean"])}function Bct(r){let{inputs:t,backend:e,attrs:n}=r,{images:o,dy:s}=t,{alignCorners:i}=n,a=e.makeOutput(o.shape,"float32"),u=e.dataIdMap.get(o.dataId),l;return u.dtype!=="float32"&&(l=On({backend:e,inputs:{x:o},attrs:{dtype:"float32"}}),u=e.dataIdMap.get(l.dataId)),a4(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(a.dataId).id,new Uint8Array(new Int32Array(o.shape).buffer),new Uint8Array(new Int32Array(s.shape).buffer),i),l!=null&&e.disposeData(l.dataId),a}var l4={kernelName:nl,backendName:"wasm",setupFunc:zct,kernelFunc:Bct};var u4;function Vct(r){u4=r.wasm.cwrap(Bs,null,["number","number","number","number","number","number","number","number","number","number"])}function Gct(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=On({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 u4(b,c,p,m,f,u,l,s?1:0,i?1:0,w),x!=null&&t.disposeData(x.dataId),h}var c4={kernelName:Bs,backendName:"wasm",setupFunc:Vct,kernelFunc:Gct};var p4;function Wct(r){p4=r.wasm.cwrap(rl,null,["number","number","number","array","array","boolean"])}function Uct(r){let{inputs:t,backend:e,attrs:n}=r,{images:o,dy:s}=t,{alignCorners:i}=n,a=e.makeOutput(o.shape,"float32"),u=e.dataIdMap.get(o.dataId),l;return u.dtype!=="float32"&&(l=On({backend:e,inputs:{x:o},attrs:{dtype:"float32"}}),u=e.dataIdMap.get(l.dataId)),p4(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(a.dataId).id,new Uint8Array(new Int32Array(o.shape).buffer),new Uint8Array(new Int32Array(s.shape).buffer),i),l!=null&&e.disposeData(l.dataId),a}var m4={kernelName:rl,backendName:"wasm",setupFunc:Wct,kernelFunc:Uct};var f4;function Hct(r){f4=r.wasm.cwrap(Ws,null,["number","array","number","array","number","number"])}function qct(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 Cp({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);f4(u,c,i.length,p,o.shape.length,l);let m=mr({inputs:{x:a},attrs:{shape:o.shape},backend:e});return e.disposeData(a.dataId),m}var d4={kernelName:Ws,backendName:"wasm",kernelFunc:qct,setupFunc:Hct};var h4;function Kct(r){h4=r.wasm.cwrap(fl,null,["number","number","number","number","number","number","number","number","array","number","number"])}function jct(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],I=new Uint8Array(new Int32Array(w).buffer);return h4(l,p,m,f,d,s,h,g,I,w.length,c),u}var g4={kernelName:fl,backendName:"wasm",kernelFunc:jct,setupFunc:Kct};var x4=Ct(Us);var y4=Ct(Hs);var b4;function Xct(r){b4=r.wasm.cwrap(ol,null,["number","number","number","number","number","number","array","number","number"])}function Yct(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}=$u.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 b4(d,g,kt[s.dtype],u,l,c,x,m,b),a}var w4={kernelName:ol,backendName:"wasm",setupFunc:Xct,kernelFunc:Yct};var I4;function Zct(r){I4=r.wasm.cwrap(il,null,["number","number","number","number","number","number","bool","number"])}function Jct(r){let{inputs:t,backend:e,attrs:n}=r,{sortedSequence:o,values:s}=t,{side:i}=n;if(o.dtype!==s.dtype)throw new Error(`SearchSorted error: sorted_sequence must have the same dtype as values. Got ${o.dtype} and ${s.dtype}`);let a=e.makeOutput(s.shape,"int32");function u(l){return e.dataIdMap.get(l.dataId).id}return I4(u(o),u(s),o.shape[0],o.shape[1],s.shape[1],kt[o.dtype],i==="left",u(a)),a}var C4={kernelName:il,backendName:"wasm",setupFunc:Zct,kernelFunc:Jct};var v4;function Qct(r){v4=r.wasm.cwrap("SelectV2",null,["number","number","number","number","number"])}function tpt(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 v4(i,a,u,f,c),l}var S4={kernelName:Vi,backendName:"wasm",kernelFunc:tpt,setupFunc:Qct};var N4=Ct(qs);var k4;function ept(r){k4=r.wasm.cwrap(Xs,null,["number","number"])}function rpt(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||k4(n,s),o}var T4={kernelName:"Sigmoid",backendName:"wasm",setupFunc:ept,kernelFunc:rpt};var _4=Ct(js);var E4=Ct(Ks);var A4=Ct(Ys);function npt(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;E{let F=I.shape[0],P=I.shape[1],V=S.segment_util.segOpComputeOptimalWindowSize(P,D),G={windowSize:V,inSize:P,batchSize:F,numSegments:D},W=new vC(G,N),q=e.compileAndRun(W,[I,E],A);if(u.push(q),q.shape[1]===D)return q;let H=V1({backend:e,attrs:{start:0,stop:D,step:1,dtype:"float32"}}),K=G1({inputs:{x:H},backend:e,attrs:{reps:[P/V]}});return u.push(H),u.push(K),g(q,N,K,A,D)},x=g(d,"unsortedSegmentSum",s,h,i),b=rt({inputs:{x},backend:e,attrs:{shape:m}}),w=b;if(c!=null){u.push(b);let I=S.getUndoAxesPermutation(c);w=Pe({inputs:{x:w},backend:e,attrs:{perm:I}})}return u.forEach(I=>e.disposeIntermediateTensorInfo(I)),w}var bG={kernelName:yu,backendName:"webgl",kernelFunc:Glt};var Wlt=[e3,n3,o3,s3,a3,l3,u3,c3,f3,d3,h3,g3,x3,y3,b3,w3,I3,C3,v3,S3,N3,T3,_3,E3,A3,F3,P3,M3,Hz,z3,V3,G3,W3,U3,H3,q3,K3,j3,X3,Y3,Q3,tB,eB,rB,nB,oB,sB,iB,aB,lB,uB,cB,pB,mB,fB,dB,gB,xB,yB,bB,IB,CB,vB,SB,NB,kB,TB,_B,EB,Uz,AB,B3,DB,$B,RB,qz,FB,OB,PB,MB,LB,zB,BB,VB,GB,WB,HB,qB,KB,jB,XB,YB,JB,tV,eV,rV,nV,oV,uV,Xz,cV,pV,mV,fV,D3,dV,xV,yV,bV,wV,Kz,IV,CV,vV,SV,NV,$3,sV,kV,TV,_V,Zz,EV,AV,DV,$V,RV,FV,OV,PV,MV,LV,zV,BV,VV,GV,WV,UV,k3,lV,HV,qV,KV,jV,XV,YV,ZV,JV,tG,eG,nG,oG,sG,iG,aG,lG,uG,aV,Qz,cG,pG,mG,fG,hG,gG,t3,xG,yG,bG,hV];for(let r of Wlt)pc(r);var Nt;(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"})(Nt||(Nt={}));var nc;(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"})(nc||(nc={}));var wG;function Ult(r){wG=r.wasm.cwrap(Zi,null,["number","array","number","number","array","number","number","number","number","number","number","number","number"])}function Hlt(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 D=e.dataIdMap.get(i.dataId);if(D.shape.length!==1)throw new Error(`_FusedMatMul only supports rank-1 bias but got rank ${D.shape.length}.`);d=D.id}let h=a==null?0:e.dataIdMap.get(a.dataId).id,g=nc[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=Hr.assertAndGetBroadcastShape(o.shape.slice(0,-2),s.shape.slice(0,-2)),I=e.makeOutput([...w,x,b],o.dtype),N=e.dataIdMap.get(I.dataId).id,E=new Uint8Array(new Int32Array(o.shape).buffer),A=new Uint8Array(new Int32Array(s.shape).buffer);return wG(m,E,o.shape.length,f,A,s.shape.length,u,l,g,d,h,p||0,N),I}var IG={kernelName:Zi,backendName:"wasm",setupFunc:Ult,kernelFunc:Hlt};function yt(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,Nt[a.dtype],c),l}return{kernelName:r,backendName:"wasm",setupFunc:n,kernelFunc:o}}var CG=yt($i);var vG=yt(qo);var SG=yt(Ko);function ee(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,Nt[l.dtype],b))(),h}return{kernelName:r,backendName:"wasm",setupFunc:o,kernelFunc:s}}var qlt=!0,NG=ee(ao,qlt);var kG;function Klt(r){kG=r.wasm.cwrap(jo,null,["array","number","number","number"])}function jlt(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 kG(s,o.length,Nt[n.dtype],i),n}var TG={kernelName:jo,backendName:"wasm",setupFunc:Klt,kernelFunc:jlt};function Tp(r){let{inputs:{x:t},backend:e}=r;if(t.dtype==="string")return sr(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 _G={kernelName:bo,backendName:"wasm",kernelFunc:Tp};var EG;function Xlt(r){EG=r.wasm.cwrap(uo,null,["number","array","number","number","number","array","number"])}function go(r){let{inputs:t,backend:e,attrs:n}=r,[o,s]=Zlt(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 AG={kernelName:uo,backendName:"wasm",kernelFunc:go,setupFunc:Xlt};function Sn(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 YG={kernelName:Ui,backendName:"wasm",kernelFunc:mr};var ZG;function cut(r){ZG=r.wasm.cwrap(es,null,["number","array","number","number","array","number","number","number","number"])}function put(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=Hr.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 I=i?[g,c,m]:[g,m,c],N=a?[x,f,p]:[x,p,f],E=mr({inputs:{x:o},backend:e,attrs:{shape:I}}),A=mr({inputs:{x:s},backend:e,attrs:{shape:N}}),D=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),K=new Uint8Array(new Int32Array(A.shape).buffer);return ZG(D,H,E.shape.length,F,K,A.shape.length,i,a,q),e.disposeData(E.dataId),e.disposeData(A.dataId),W.shape=w,W}var JG={kernelName:es,backendName:"wasm",setupFunc:cut,kernelFunc:put};function Go(r){let{inputs:{x:t},attrs:{begin:e,size:n},backend:o}=r,[s,i]=ze.parseSliceParams(t,e,n),a=ze.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=ze.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=cp(u,s,i,t.shape,t.dtype);return p.stringBytes=d,l}let m=o.typedArrayFromHeap(l),f=t.shape.length;if(f===2)mut(u,c[0],m,s,i);else if(f===3)fut(u,c[0],c[1],m,s,i);else if(f===4)dut(u,c[0],c[1],c[2],m,s,i);else{let d=cp(u,s,i,t.shape,t.dtype);m.set(d)}return l}function mut(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=mr({inputs:{x:o},backend:e,attrs:{shape:u}}),d=go({inputs:{x:f},backend:e,attrs:{perm:l}}),h=mr({inputs:{x:d},backend:e,attrs:{shape:c}}),g=Go({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 tW={kernelName:Pi,backendName:"wasm",kernelFunc:hut};var eW;function gut(r){eW=r.wasm.cwrap(Oa,null,["number","number","boolean","number","number","number"])}function xut(r){let{backend:t,inputs:e,attrs:n}=r,{x:o,weights:s}=e,{size:i}=n,a=s.shape.reduce((p,m)=>p*m,1)!==0,u=o.shape.length===1?[i]:[o.shape[0],i],l=t.makeOutput(u,s.dtype);function c(p){return t.dataIdMap.get(p.dataId).id}return eW(c(o),i,a,c(s),Nt[s.dtype],c(l)),l}var rW={kernelName:Oa,backendName:"wasm",setupFunc:gut,kernelFunc:xut};var yut=!0,nW=ee(Pa,yut);function but(r){let{inputs:t,backend:e}=r,{s0:n,s1:o}=t,s=e.typedArrayFromHeap(n),i=e.typedArrayFromHeap(o),a=S.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return e.makeOutput([a.length],"int32",void 0,new Int32Array(a))}var oW={kernelName:Ql,backendName:"wasm",kernelFunc:but};function Mn(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 sW={kernelName:xo,backendName:"wasm",kernelFunc:Mn};var iW=yt(rs);var aW;function wut(r){aW=r.wasm.cwrap(yo,null,["number","number","number","number"])}function Iut(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 aW(a,s,i,l),u}var lW={kernelName:yo,backendName:"wasm",setupFunc:wut,kernelFunc:Iut};function W1(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 Tp({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 mr({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=ap(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=go({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;SW(d,i?1:0,a?1:0,f,h,Nt[o.dtype]);let g=m;if(l!==null){let x=S.getUndoAxesPermutation(l);g=go({inputs:{x:m},attrs:{perm:x},backend:e}),e.disposeData(c.dataId),e.disposeData(m.dataId)}return g}var NW={kernelName:za,backendName:"wasm",setupFunc:Fut,kernelFunc:Out};var kW;function Put(r){kW=r.wasm.cwrap(ls,null,["number","number","number","number","number","number"])}function Mut(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=go({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;kW(d,i?1:0,a?1:0,f,h,Nt[o.dtype]);let g=m;if(l!==null){let x=S.getUndoAxesPermutation(l);g=go({inputs:{x:m},attrs:{perm:x},backend:e}),e.disposeData(c.dataId),e.disposeData(m.dataId)}return g}var TW={kernelName:ls,backendName:"wasm",setupFunc:Put,kernelFunc:Mut};var _W;function Lut(r){_W=r.wasm.cwrap("DenseBincount",null,["number","array","number","number","boolean","number","number","boolean","number"])}function zut(r){let{backend:t,inputs:e,attrs:n}=r,{x:o,weights:s}=e,{size:i,binaryOutput:a}=n,u=s.shape.reduce((m,f)=>m*f,1)!==0,l=o.shape.length===1?[i]:[o.shape[0],i],c=t.makeOutput(l,s.dtype);function p(m){return t.dataIdMap.get(m.dataId).id}return _W(p(o),new Uint8Array(new Int32Array(o.shape).buffer),o.shape.length,i,u,p(s),Nt[s.dtype],a,p(c)),c}var EW={kernelName:eu,backendName:"wasm",setupFunc:Lut,kernelFunc:zut};var AW;function But(r){AW=r.wasm.cwrap(Va,null,["number","number","number","array","number","array","array","number","number"])}function Vut(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),I=new Uint8Array(new Int32Array(y.computeStrides(d)).buffer),N=t.dataIdMap.get(h.dataId).id;return AW(x,s,i==="NHWC"?1:0,b,o.shape.length-1,w,I,d.length,N),h}var DW={kernelName:Va,backendName:"wasm",setupFunc:But,kernelFunc:Vut};var $W;function Gut(r){$W=r.wasm.cwrap(us,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Wut(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,I=f.dilationHeight,N=f.dilationWidth,E=f.strideHeight,A=f.strideWidth,D=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 $W(i,o.shape[0],o.shape[1],o.shape[2],a,d,h,g,x,b,w,P,I,N,E,A,D,F,G),V}var RW={kernelName:us,backendName:"wasm",setupFunc:Gut,kernelFunc:Wut};var FW;function Uut(r){FW=r.wasm.cwrap("Diag",null,["number","number","number","number"])}function Hut(r){let{inputs:t,backend:e}=r,{x:n}=t,o=y.sizeFromShape(n.shape),s=e.makeOutput([...n.shape,...n.shape],n.dtype);return FW(e.dataIdMap.get(n.dataId).id,Nt[n.dtype],o,e.dataIdMap.get(s.dataId).id),s}var OW={kernelName:ru,backendName:"wasm",setupFunc:Uut,kernelFunc:Hut};var PW;function qut(r){PW=r.wasm.cwrap(cs,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Kut(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dilations:u}=n;if(o.dtype!==s.dtype)throw new Error(`Dilation2D error: x must have the same dtype as filter. Got ${o.dtype} and ${s.dtype}`);let l=S.computeDilation2DInfo(o.shape,s.shape,i,a,"NHWC",u),c=e.makeOutput(l.outShape,o.dtype);return PW(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(c.dataId).id,Nt[o.dtype],l.batchSize,l.inChannels,l.inHeight,l.inWidth,l.outHeight,l.outWidth,l.strideHeight,l.strideWidth,l.dilationHeight,l.dilationWidth,l.filterHeight,l.filterWidth,l.padInfo.top,l.padInfo.left),c}var MW={kernelName:cs,backendName:"wasm",setupFunc:qut,kernelFunc:Kut};var LW;function jut(r){LW=r.wasm.cwrap(ou,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Xut(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s,dy:i}=t,{strides:a,pad:u,dilations:l}=n;if(o.dtype!==s.dtype||o.dtype!==i.dtype)throw new Error(`Dilation2DBackpropFilter error: x must have the same dtype as filter and dy. Got ${o.dtype}, ${s.dtype}, and ${i.dtype}`);let c=S.computeDilation2DInfo(o.shape,s.shape,a,u,"NHWC",l),p=e.makeOutput(s.shape,s.dtype);return LW(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(i.dataId).id,e.dataIdMap.get(p.dataId).id,Nt[o.dtype],c.batchSize,c.inChannels,c.inHeight,c.inWidth,c.outHeight,c.outWidth,c.strideHeight,c.strideWidth,c.dilationHeight,c.dilationWidth,c.filterHeight,c.filterWidth,c.padInfo.top,c.padInfo.left),p}var zW={kernelName:ou,backendName:"wasm",setupFunc:jut,kernelFunc:Xut};var BW;function Yut(r){BW=r.wasm.cwrap(nu,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Zut(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s,dy:i}=t,{strides:a,pad:u,dilations:l}=n;if(o.dtype!==s.dtype||o.dtype!==i.dtype)throw new Error(`Dilation2DBackpropInput error: x must have the same dtype as filter and dy. Got ${o.dtype}, ${s.dtype}, and ${i.dtype}`);let c=S.computeDilation2DInfo(o.shape,s.shape,a,u,"NHWC",l),p=e.makeOutput(o.shape,o.dtype);return BW(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(i.dataId).id,e.dataIdMap.get(p.dataId).id,Nt[o.dtype],c.batchSize,c.inChannels,c.inHeight,c.inWidth,c.outHeight,c.outWidth,c.strideHeight,c.strideWidth,c.dilationHeight,c.dilationWidth,c.filterHeight,c.filterWidth,c.padInfo.top,c.padInfo.left),p}var VW={kernelName:nu,backendName:"wasm",setupFunc:Yut,kernelFunc:Zut};var GW=yt(ms);var WW;function Jut(r){WW=r.wasm.cwrap(Ga,null,["number","number","number"])}function Qut(r){let{inputs:t,backend:e}=r,{dy:n,y:o}=t,s=e.makeOutput(o.shape,"float32"),i=a=>e.dataIdMap.get(a.dataId).id;return WW(i(o),i(n),i(s)),s}var UW={kernelName:Ga,backendName:"wasm",setupFunc:Jut,kernelFunc:Qut};var tct=!1,HW=ee(Wa,tct,"bool");var qW=yt(fs);var KW=yt(ds,"float32");function NC(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),mr({inputs:{x:o},backend:n,attrs:{shape:a}})}var jW={kernelName:Li,backendName:"wasm",kernelFunc:NC};var XW=yt(hs,"float32");function H1(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 YW={kernelName:su,backendName:"wasm",kernelFunc:H1};var ZW;function ect(r){ZW=r.wasm.cwrap(Ua,null,["number","number","number","number","number","number"])}function rct(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 ZW(s,a,u,l,c,i),o}var JW={kernelName:Ua,backendName:"wasm",kernelFunc:rct,setupFunc:ect};var QW=yt(gs);var nct=!1,tU=ee(xs,nct);var eU;function oct(r){eU=r.wasm.cwrap(ys,null,["number","number","number","number","number","number","number"])}function sct(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 eU(c,p,m,f,d,o,g),h}var rU={kernelName:ys,backendName:"wasm",setupFunc:oct,kernelFunc:sct};var nU;function ict(r){nU=r.wasm.cwrap(Ji,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 act(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=nc[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,I=0;if(i!=null){let ot=n.dataIdMap.get(i.dataId);if(ot.shape.length!==1)throw new Error(`FusedConv2D only supports rank-1 bias but got rank ${ot.shape.length}.`);if(ot.shape[0]!==w)throw new Error(`FusedConv2D bias shape (${ot.shape}) does not match the number of output channels (${w})`);I=ot.id}let N=h.filterHeight,E=h.filterWidth,A=h.padInfo.top,D=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,K=h.padInfo.type==="SAME"?1:0,X=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 nt=n.makeOutput(h.outShape,"float32"),st=n.dataIdMap.get(nt.dataId).id,at=a==null?0:n.dataIdMap.get(a.dataId).id;return nU(x,X,Z,et,b,N,E,I,A,D,F,P,K,V,G,W,q,H,w,g,at,d||0,st),nt}var oU={kernelName:Ji,backendName:"wasm",setupFunc:ict,kernelFunc:act};var sU;function lct(r){sU=r.wasm.cwrap(Qi,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 uct(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=nc[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,I=0;if(i!=null){let ot=n.dataIdMap.get(i.dataId);if(ot.shape.length!==1)throw new Error(`FusedDepthwiseConv2D only supports rank-1 bias but got rank ${ot.shape.length}.`);if(ot.shape[0]!==w)throw new Error(`FusedDepthwiseConv2D bias shape (${ot.shape}) does not match the number of output channels (${w})`);I=ot.id}let N=h.filterHeight,E=h.filterWidth,A=h.padInfo.top,D=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,K=h.padInfo.type==="SAME"?1:0,X=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 nt=n.makeOutput(h.outShape,"float32"),st=n.dataIdMap.get(nt.dataId).id,at=a==null?0:n.dataIdMap.get(a.dataId).id;return sU(x,X,Z,et,b,N,E,I,A,D,F,P,K,V,G,W,q,H,w,g,at,d||0,st),nt}var iU={kernelName:Qi,backendName:"wasm",setupFunc:lct,kernelFunc:uct};var aU;function cct(r){aU=r.wasm.cwrap(Ha,null,["number","number","number","number","number","number","array","number"])}function pct(r){let{backend:t,inputs:e}=r,{params:n,indices:o}=e,[s,i,a,u]=Dy.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 aU(f,Nt[n.dtype],h,i,p,a,g,x),l}var lU={kernelName:Ha,backendName:"wasm",setupFunc:cct,kernelFunc:pct};var uU;function mct(r){uU=r.wasm.cwrap("Gather",null,["number","number","array","number","number","number","array","number"])}function fct(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=mr({inputs:{x:o},attrs:{shape:[p.batchSize,p.outerSize,p.dimSize,p.sliceSize]},backend:t}),f=y.sizeFromShape(s.shape),d=mr({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),D=new Uint8Array(new Int32Array(y.computeStrides(h)).buffer);return uU(w,Nt[o.dtype],A,x,N,p.batchSize,D,E),t.disposeData(m.dataId),t.disposeData(d.dataId),g.shape=p.outputShape,g}var cU={kernelName:zi,backendName:"wasm",setupFunc:mct,kernelFunc:fct};var dct=!1,pU=ee(qa,dct,"bool");var hct=!1,mU=ee(bs,hct,"bool");var fU=yt(ws,"bool");var dU=yt(Is,"bool");var hU=yt(Cs,"bool");var gU;function gct(r){gU=r.wasm.cwrap(vs,null,["number","number","number","number"])}function xct(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;gU(o,Nt[t.dtype],e,i)}return s}var xU={kernelName:vs,backendName:"wasm",setupFunc:gct,kernelFunc:xct};var yct=!1,yU=ee(Ka,yct,"bool");var bct=!1,bU=ee(ja,bct,"bool");var wU;function wct(r){wU=r.wasm.cwrap(Xa,null,["number","number","number","number"])}function Ict(r){let{attrs:t,backend:e}=r,{start:n,stop:o,num:s}=t,i=Math.floor(s),a=e.makeOutput([i],"float32");return wU(e.dataIdMap.get(a.dataId).id,n,o,i),a}var IU={kernelName:Xa,backendName:"wasm",setupFunc:wct,kernelFunc:Ict};var CU=yt(Ss);var vU=yt(Ns);var Cct=!1,SU=ee(Ya,Cct,"bool");var NU=yt(Za);var vct=!1,kU=ee(Ja,vct,"bool");var Sct=!1,TU=ee(v_,Sct,"bool");var _U;function Nct(r){_U=r.wasm.cwrap(ks,null,["number","number","number","number","number","number","number"])}function kct(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{depthRadius:s,bias:i,alpha:a,beta:u}=n;if(o.dtype!=="float32")throw new Error("LRN error: x must have dtype float32");let l=e.makeOutput(o.shape,o.dtype);return _U(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(l.dataId).id,o.shape[3],s,i,a,u),l}var EU={kernelName:ks,backendName:"wasm",setupFunc:Nct,kernelFunc:kct};var AU;function Tct(r){AU=r.wasm.cwrap(Qa,null,["number","number","number","number","number","number","number","number","number"])}function _ct(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;if(o.dtype!=="float32"||s.dtype!=="float32"||i.dtype!=="float32")throw new Error("LRNGrad error: x, y, and dy must have dtype float32");let p=e.makeOutput(o.shape,o.dtype);return AU(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(i.dataId).id,e.dataIdMap.get(p.dataId).id,i.shape[3],a,u,l,c),p}var DU={kernelName:Qa,backendName:"wasm",setupFunc:Tct,kernelFunc:_ct};var $U;function Ect(r){$U=r.wasm.cwrap(Ts,null,["number","number","number","number"])}function Act(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}=Sn(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;$U(u,Nt[i.dtype],x,w)}if(f&&t.disposeData(c.dataId),s){let w=S.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var RU={kernelName:Ts,backendName:"wasm",setupFunc:Ect,kernelFunc:Act};var Dct=!1,FU=ee(_s,Dct);var OU;function $ct(r){OU=r.wasm.cwrap(Es,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Rct(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,I=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"),D=n.dataIdMap.get(A.dataId).id;return OU(s,o.shape[0],o.shape[1],o.shape[2],p,m,f,d,h,g,x,b,w,I,N,E,D),A}var PU={kernelName:Es,backendName:"wasm",setupFunc:$ct,kernelFunc:Rct};var MU;function Fct(r){MU=r.wasm.cwrap("MaxPool3D",null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Oct(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u,dataFormat:l}=n,c=S.computePool3DInfo(o.shape,s,i,1,a,u,l),p=e.makeOutput(c.outShape,o.dtype);return MU(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(p.dataId).id,c.batchSize,c.inChannels,c.inDepth,c.inHeight,c.inWidth,c.outDepth,c.outHeight,c.outWidth,c.strideDepth,c.strideHeight,c.strideWidth,c.dilationDepth,c.dilationHeight,c.dilationWidth,c.effectiveFilterDepth,c.effectiveFilterHeight,c.effectiveFilterWidth,c.padInfo.front,c.padInfo.top,c.padInfo.left),p}var LU={kernelName:Bi,backendName:"wasm",setupFunc:Fct,kernelFunc:Oct};var zU;function Pct(r){zU=r.wasm.cwrap("MaxPool3DGrad",null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Mct(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,{filterSize:i,strides:a,pad:u,dimRoundingMode:l}=n,c=S.computePool3DInfo(s.shape,i,a,1,u,l),p=e.makeOutput(s.shape,s.dtype);return zU(e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(p.dataId).id,c.batchSize,c.inChannels,c.inDepth,c.inHeight,c.inWidth,c.outDepth,c.outHeight,c.outWidth,c.strideDepth,c.strideHeight,c.strideWidth,c.dilationDepth,c.dilationHeight,c.dilationWidth,c.effectiveFilterDepth,c.effectiveFilterHeight,c.effectiveFilterWidth,c.padInfo.front,c.padInfo.top,c.padInfo.left),p}var BU={kernelName:au,backendName:"wasm",setupFunc:Pct,kernelFunc:Mct};var VU;function Lct(r){VU=r.wasm.cwrap("MaxPoolGrad",null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function zct(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,{filterSize:i,strides:a,pad:u,dimRoundingMode:l}=n,c=S.computePool2DInfo(s.shape,i,a,1,u,l),p=e.makeOutput(s.shape,s.dtype);return VU(e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(p.dataId).id,c.batchSize,c.inChannels,c.inHeight,c.inWidth,c.outHeight,c.outWidth,c.strideHeight,c.strideWidth,c.dilationHeight,c.dilationWidth,c.effectiveFilterHeight,c.effectiveFilterWidth,c.padInfo.top,c.padInfo.left),p}var GU={kernelName:iu,backendName:"wasm",setupFunc:Lct,kernelFunc:zct};var WU;function Bct(r){WU=r.wasm.cwrap("MaxPoolWithArgmax",null,["number","number","number","number","boolean","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Vct(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,includeBatchInIndex:u}=n;y.assert(o.shape.length===4,()=>`Error in maxPool: input must be rank 4 but got rank ${o.shape.length}.`);let l=[1,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,[1,1],a),p=e.makeOutput(c.outShape,o.dtype),m=e.makeOutput(c.outShape,"int32");return WU(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(p.dataId).id,e.dataIdMap.get(m.dataId).id,Nt[o.dtype],u,c.batchSize,c.inChannels,c.inHeight,c.inWidth,c.outHeight,c.outWidth,c.strideHeight,c.strideWidth,c.dilationHeight,c.dilationWidth,c.effectiveFilterHeight,c.effectiveFilterWidth,c.padInfo.top,c.padInfo.left),[p,m]}var UU={kernelName:lu,backendName:"wasm",setupFunc:Bct,kernelFunc:Vct};var HU;function Gct(r){HU=r.wasm.cwrap(As,null,["number, number, number"])}function Wct(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}=Sn(i,o,t),d=p;if(f){let I=t.dataIdMap.get(c.dataId).id;I!==a&&(l=c,u=I,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=Mn({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 I=t.dataIdMap.get(w.dataId).id;HU(u,x,I)}if(f&&t.disposeData(c.dataId),s){let I=S.expandShapeToKeepDim(w.shape,m);w.shape=I}return l.dtype!=="float32"&&t.disposeData(b.dataId),w}var qU={kernelName:As,backendName:"wasm",setupFunc:Gct,kernelFunc:Wct};var KU;function Uct(r){KU=r.wasm.cwrap(Ds,null,["number","number","number","number"])}function Hct(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}=Sn(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;KU(u,Nt[i.dtype],x,w)}if(f&&t.disposeData(c.dataId),s){let w=S.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var jU={kernelName:Ds,backendName:"wasm",setupFunc:Uct,kernelFunc:Hct};var qct=!1,XU=ee($s,qct);var q1;(function(r){r[r.reflect=0]="reflect",r[r.symmetric=1]="symmetric"})(q1||(q1={}));var YU;function Kct(r){YU=r.wasm.cwrap(Rs,null,["number","array","number","number","array","array","number","number"])}function jct(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 YU(i,l,t.shape.length,Nt[t.dtype],m,f,q1[o],u),a}var ZU={kernelName:Rs,backendName:"wasm",kernelFunc:jct,setupFunc:Kct};var JU;function Xct(r){JU=r.wasm.cwrap(ni,null,["number","number","number","number"])}function K1(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||JU(o,i,a,u),s}var QU={kernelName:ni,backendName:"wasm",setupFunc:Xct,kernelFunc:K1};var t4;function Yct(r){t4=r.wasm.cwrap(tl,null,["number","number","number","number","number","number"])}function Zct(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{numSamples:s,seed:i,normalized:a}=n;if(o.dtype!=="float32")throw new Error(`Tensor logits must have dtype float32, got ${o.dtype}`);let u=a?o:K1({inputs:{logits:o},backend:e,attrs:{dim:o.shape.length-1}}),[l,c]=u.shape,p=e.makeOutput([l,s],"int32");return t4(e.dataIdMap.get(u.dataId).id,l,c,s,i,e.dataIdMap.get(p.dataId).id),a||e.disposeData(u.dataId),p}var e4={kernelName:tl,backendName:"wasm",setupFunc:Yct,kernelFunc:Zct};var r4=ee(Fs,!0);var Jct=!0,n4=ee(Os,Jct);var o4=yt(Vi);function Hd(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 s4;function Qct(r){s4=r.wasm.cwrap(rl,"number",["number","number","number","number","number"])}function tpt(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=s4(l,c,s,o,i),{pSelectedIndices:m,selectedSize:f,pSelectedScores:d,pValidOutputs:h}=Hd(t,p);return t.wasm._free(d),t.wasm._free(h),t.makeOutput([f],"int32",m)}var i4={kernelName:rl,backendName:"wasm",setupFunc:Qct,kernelFunc:tpt};var a4;function ept(r){a4=r.wasm.cwrap(nl,"number",["number","number","number","number","number","bool"])}function rpt(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=a4(c,p,s,o,i,a),{pSelectedIndices:f,selectedSize:d,pSelectedScores:h,pValidOutputs:g}=Hd(t,m);t.wasm._free(h);let x=t.makeOutput([d],"int32",f),b=t.makeOutput([],"int32",g);return[x,b]}var l4={kernelName:nl,backendName:"wasm",setupFunc:ept,kernelFunc:rpt};var u4;function npt(r){u4=r.wasm.cwrap(ol,"number",["number","number","number","number","number","number"])}function opt(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=u4(c,p,s,o,i,a),{pSelectedIndices:f,selectedSize:d,pSelectedScores:h,pValidOutputs:g}=Hd(t,m);t.wasm._free(g);let x=t.makeOutput([d],"int32",f),b=t.makeOutput([d],"float32",h);return[x,b]}var c4={kernelName:ol,backendName:"wasm",setupFunc:npt,kernelFunc:opt};var spt=!1,p4=ee(el,spt,"bool");var m4;function ipt(r){m4=r.wasm.cwrap(Ps,null,["number","number","number","number","number"])}function apt(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 m4(m,i,a,u,c),l}var f4={kernelName:Ps,backendName:"wasm",setupFunc:ipt,kernelFunc:apt};function lpt(r){let{inputs:{x:t},backend:e}=r,n=e.makeOutput(t.shape,t.dtype);return e.typedArrayFromHeap(n).fill(1),n}var d4={kernelName:Gi,backendName:"wasm",kernelFunc:lpt};function upt(r){let{inputs:t,backend:e,attrs:n}=r,{axis:o}=n;if(t.length===1)return NC({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=NC({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=W1({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeData(c.dataId)),l}var h4={kernelName:Wi,backendName:"wasm",kernelFunc:upt};var g4;function cpt(r){g4=r.wasm.cwrap(Ms,null,["number","array","number","number","array","array","number","number"])}function ppt(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 H1({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 g4(i,c,t.shape.length,Nt[t.dtype],f,d,o,l),a}var kC={kernelName:Ms,backendName:"wasm",kernelFunc:ppt,setupFunc:cpt};var mpt=!1,x4=ee(Ls,mpt);var y4;function fpt(r){y4=r.wasm.cwrap(zs,null,["number","number","number"])}function dpt(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=Mn({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 y4(a,i,p),u.dtype!=="float32"&&e.disposeData(l.dataId),c}var b4={kernelName:zs,backendName:"wasm",setupFunc:fpt,kernelFunc:dpt};var w4;function hpt(r){w4=r.wasm.cwrap(Bs,null,["number","number","number","number"])}function gpt(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}=Sn(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;w4(u,x,Nt[b.dtype],w)}if(f&&t.disposeData(c.dataId),s){let w=S.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var I4={kernelName:Bs,backendName:"wasm",setupFunc:hpt,kernelFunc:gpt};var xpt=r=>{let{backend:t,attrs:e}=r,{start:n,stop:o,step:s,dtype:i}=e,a=up(n,o,s,i),u=t.makeOutput([a.length],i);return t.typedArrayFromHeap(u).set(a),u},C4={kernelName:uu,backendName:"wasm",kernelFunc:xpt};var ypt=!0,v4=ee(ps,ypt);var S4=yt(Vs);var N4=yt(Gs);var k4=yt(Hs);var T4;function bpt(r){T4=r.wasm.cwrap(Us,null,["number","number","number","number","number","number","number","number","number","number"])}function wpt(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=Mn({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 T4(x,c,p,m,f,u,l,s?1:0,i?1:0,w),g!=null&&t.disposeData(g.dataId),b}var _4={kernelName:Us,backendName:"wasm",setupFunc:bpt,kernelFunc:wpt};var E4;function Ipt(r){E4=r.wasm.cwrap(il,null,["number","number","number","array","array","boolean"])}function Cpt(r){let{inputs:t,backend:e,attrs:n}=r,{images:o,dy:s}=t,{alignCorners:i}=n,a=e.makeOutput(o.shape,"float32"),u=e.dataIdMap.get(o.dataId),l;return u.dtype!=="float32"&&(l=Mn({backend:e,inputs:{x:o},attrs:{dtype:"float32"}}),u=e.dataIdMap.get(l.dataId)),E4(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(a.dataId).id,new Uint8Array(new Int32Array(o.shape).buffer),new Uint8Array(new Int32Array(s.shape).buffer),i),l!=null&&e.disposeData(l.dataId),a}var A4={kernelName:il,backendName:"wasm",setupFunc:Ipt,kernelFunc:Cpt};var D4;function vpt(r){D4=r.wasm.cwrap(Ws,null,["number","number","number","number","number","number","number","number","number","number"])}function Spt(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=Mn({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 D4(b,c,p,m,f,u,l,s?1:0,i?1:0,w),x!=null&&t.disposeData(x.dataId),h}var $4={kernelName:Ws,backendName:"wasm",setupFunc:vpt,kernelFunc:Spt};var R4;function Npt(r){R4=r.wasm.cwrap(sl,null,["number","number","number","array","array","boolean"])}function kpt(r){let{inputs:t,backend:e,attrs:n}=r,{images:o,dy:s}=t,{alignCorners:i}=n,a=e.makeOutput(o.shape,"float32"),u=e.dataIdMap.get(o.dataId),l;return u.dtype!=="float32"&&(l=Mn({backend:e,inputs:{x:o},attrs:{dtype:"float32"}}),u=e.dataIdMap.get(l.dataId)),R4(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(a.dataId).id,new Uint8Array(new Int32Array(o.shape).buffer),new Uint8Array(new Int32Array(s.shape).buffer),i),l!=null&&e.disposeData(l.dataId),a}var F4={kernelName:sl,backendName:"wasm",setupFunc:Npt,kernelFunc:kpt};var O4;function Tpt(r){O4=r.wasm.cwrap(qs,null,["number","array","number","array","number","number"])}function _pt(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 Tp({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);O4(u,c,i.length,p,o.shape.length,l);let m=mr({inputs:{x:a},attrs:{shape:o.shape},backend:e});return e.disposeData(a.dataId),m}var P4={kernelName:qs,backendName:"wasm",kernelFunc:_pt,setupFunc:Tpt};var M4;function Ept(r){M4=r.wasm.cwrap(hl,null,["number","number","number","number","number","number","number","number","array","number","number"])}function Apt(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],I=new Uint8Array(new Int32Array(w).buffer);return M4(l,p,m,f,d,s,h,g,I,w.length,c),u}var L4={kernelName:hl,backendName:"wasm",kernelFunc:Apt,setupFunc:Ept};var z4=yt(Ks);var B4=yt(js);var V4;function Dpt(r){V4=r.wasm.cwrap(al,null,["number","number","number","number","number","number","array","number","number"])}function $pt(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}=Mu.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 V4(d,g,Nt[s.dtype],u,l,c,x,m,b),a}var G4={kernelName:al,backendName:"wasm",setupFunc:Dpt,kernelFunc:$pt};var W4;function Rpt(r){W4=r.wasm.cwrap(ul,null,["number","number","number","number","number","number","bool","number"])}function Fpt(r){let{inputs:t,backend:e,attrs:n}=r,{sortedSequence:o,values:s}=t,{side:i}=n;if(o.dtype!==s.dtype)throw new Error(`SearchSorted error: sorted_sequence must have the same dtype as values. Got ${o.dtype} and ${s.dtype}`);let a=e.makeOutput(s.shape,"int32");function u(l){return e.dataIdMap.get(l.dataId).id}return W4(u(o),u(s),o.shape[0],o.shape[1],s.shape[1],Nt[o.dtype],i==="left",u(a)),a}var U4={kernelName:ul,backendName:"wasm",setupFunc:Rpt,kernelFunc:Fpt};var H4;function Opt(r){H4=r.wasm.cwrap("SelectV2",null,["number","number","number","number","number"])}function Ppt(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 H4(i,a,u,f,c),l}var q4={kernelName:Hi,backendName:"wasm",kernelFunc:Ppt,setupFunc:Opt};var K4=yt(Xs);var j4;function Mpt(r){j4=r.wasm.cwrap(Qs,null,["number","number"])}function Lpt(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||j4(n,s),o}var X4={kernelName:"Sigmoid",backendName:"wasm",setupFunc:Mpt,kernelFunc:Lpt};var Y4=yt(Js);var Z4=yt(Ys);var J4=yt(Zs);var Q4=yt(ti);function zpt(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;P4(m,kt[o.dtype],o.shape[0],f,d,g,b,t,0);let w=e.readSync(x.dataId),I;switch(w[0]){case 0:{I=S.getSparseSegmentReductionNegativeSegmentIdsErrorMessage();break}case 1:{I=S.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage();break}case 2:I=S.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(w[1],w[2]);break;case 3:I=S.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(w[1],w[2],w[3]);break;default:I=""}if(e.disposeData(x.dataId),I)throw e.disposeData(h.dataId),new Error(I);return h}function lpt(r){return _C(r,!0)}var M4={kernelName:iu,backendName:"wasm",setupFunc:TC,kernelFunc:lpt};function upt(r){return _C(r,!1)}var L4={kernelName:au,backendName:"wasm",setupFunc:TC,kernelFunc:upt};var z4;function cpt(r){z4=r.wasm.cwrap(ul,null,["number","number","number","number","number","number","number","number","array","number","number"])}function ppt(r){let{backend:t,inputs:e,attrs:n}=r,{sparseIndices:o,sparseValues:s,defaultValue:i}=e,{outputShape:a}=n,u=t.makeOutput(a,i.dtype);if(y.sizeFromShape(a)===0)return u;let{sliceRank:l,numUpdates:c,sliceSize:p,strides:m,outputSize:f}=S.calculateShapes(s,o,a),d=t.dataIdMap.get(o.dataId).id,h=t.dataIdMap.get(s.dataId).id,g=t.dataIdMap.get(i.dataId).id,x=new Uint8Array(new Int32Array(m).buffer),b=t.dataIdMap.get(u.dataId).id;return z4(d,h,s.shape.length,g,kt[i.dtype],l,c,p,x,f,b),u}var B4={kernelName:ul,backendName:"wasm",setupFunc:cpt,kernelFunc:ppt};function mpt(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=Vo({inputs:{x:o},attrs:{begin:l,size:m},backend:n});return l[a]+=p,f})}var V4={kernelName:Ui,backendName:"wasm",kernelFunc:mpt};var G4=Ct(Zs);var W4=Ct(lu);var fpt=!0,U4=ae(ti,fpt);var H4;function dpt(r){H4=r.wasm.cwrap(yo,null,["number","number","number","number"])}function hpt(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 H4(i,o,kt[s.dtype],u),a}var q4={kernelName:yo,backendName:"wasm",setupFunc:dpt,kernelFunc:hpt};var K4;function gpt(r){K4=r.wasm.cwrap(cl,null,["number","array","number","array","array","array","array","array","number","number"])}function xpt(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:I}=ze.sliceInfo(o.shape,s,i,a,u,l,c,p,m),N;if(h)N=mr({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=ze.computeOutShape(b,w,I),A=Vo({inputs:{x:o},backend:t,attrs:{begin:b,size:E}});N=mr({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,D=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(I).buffer),G=new Uint8Array(new Int32Array(f).buffer),W=new Uint8Array(new Int32Array(y.computeStrides(f)).buffer),q=t.dataIdMap.get(E.dataId).id;K4(A,D,o.shape.length,F,P,V,G,W,f.length,q),N=mr({inputs:{x:E},backend:t,attrs:{shape:d}}),t.disposeData(E.dataId)}return N}var j4={kernelName:cl,backendName:"wasm",setupFunc:gpt,kernelFunc:xpt};function ypt(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]=ip(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 X4={kernelName:uu,backendName:"wasm",kernelFunc:ypt};function bpt(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]=ap(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 Y4={kernelName:cu,backendName:"wasm",kernelFunc:bpt};function wpt(r){let{backend:t,inputs:e,attrs:n}=r,{input:o}=e,{numBuckets:s}=n,i=t.readSync(o.dataId),a=lp(i,s),u=t.makeOutput(o.shape,"int32");return t.typedArrayFromHeap(u).set(a),u}var Z4={kernelName:pu,backendName:"wasm",kernelFunc:wpt};var Ipt=!0,J4=ae(ei,Ipt);var Q4;function Cpt(r){Q4=r.wasm.cwrap(Js,null,["number","number","number","number"])}function vpt(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}=vn(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;Q4(u,x,kt[b.dtype],w)}if(f&&t.disposeData(c.dataId),s){let w=S.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var tH={kernelName:Js,backendName:"wasm",setupFunc:Cpt,kernelFunc:vpt};var eH=Ct(ri);var rH=Ct(ni);var nH;function Spt(r){nH=r.wasm.cwrap(sl,null,["number","number","number","number","number","number","array","number","number","number"])}function Npt(r){let{backend:t,inputs:e,attrs:n}=r,{tensor:o,indices:s,updates:i}=e,{}=n,a=t.makeOutput(o.shape,o.dtype);if(y.sizeFromShape(o.shape)===0)return a;let{sliceRank:u,numUpdates:l,sliceSize:c,strides:p,outputSize:m}=$u.calculateShapes(i,s,o.shape),d=t.dataIdMap.get(s.dataId).id,g=t.dataIdMap.get(i.dataId).id,b=t.dataIdMap.get(o.dataId).id,w=new Uint8Array(new Int32Array(p).buffer),I=t.dataIdMap.get(a.dataId).id;return nH(d,g,kt[i.dtype],u,l,c,w,m,I,b),a}var oH={kernelName:sl,backendName:"wasm",setupFunc:Spt,kernelFunc:Npt};var sH;function kpt(r){sH=r.wasm.cwrap(so,null,["number","array","number","array","number","number"])}function Tpt(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 aH(i,a,n.shape.length,kt[n.dtype],o,s,c,m),[l,p]},lH={kernelName:pl,backendName:"wasm",setupFunc:_pt,kernelFunc:Ept};var uH;function Apt(r){uH=r.wasm.cwrap(ml,null,["number","number","bool","number","number","number","number","number","number","array","number","array","number","number","number","number","number"])}function Dpt(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),I=t.dataIdMap.get(w.dataId).id,E=t.dataIdMap.get(o.dataId).id,D=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 uH(E,D,s.shape[0]>1,c,d,h,f,m,p,x,o.shape.length-1,b,g.length-1,F,P,u,I),w}var cH={kernelName:ml,backendName:"wasm",setupFunc:Apt,kernelFunc:Dpt};function $pt(r){let{inputs:t,attrs:e,backend:n}=r,{axis:o}=e,{x:s}=t,{outputValues:i,outputShape:a,indices:u}=up(n.readSync(s.dataId),o,s.shape,s.dtype);return[n.makeOutput(a,s.dtype,void 0,i),n.makeOutput([u.length],"int32",void 0,u)]}var pH={kernelName:mu,backendName:"wasm",kernelFunc:$pt};function Rpt(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 mH={kernelName:Hi,backendName:"wasm",kernelFunc:Rpt};function Fpt(r){let{inputs:{x:t},backend:e}=r,n=e.makeOutput(t.shape,t.dtype);return e.typedArrayFromHeap(n).fill(0),n}var fH={kernelName:qi,backendName:"wasm",kernelFunc:Fpt};var Opt=[lG,uG,cG,pG,mG,dG,bG,IG,CG,vG,SG,NG,kG,TG,_G,AG,$G,FG,MG,zG,VG,GG,WG,UG,qG,KG,XG,ZG,QG,eW,nW,oW,sW,aW,uW,pW,fW,hW,xW,bW,IW,vW,NW,kW,_W,EW,AW,DW,$W,RW,OW,PW,MW,zW,VW,WW,HW,KW,jW,XW,hG,YW,ZW,JW,tU,eU,rU,oU,iU,sU,aU,lU,uU,cU,mU,dU,gU,xU,bU,IU,vU,NU,TU,_U,AU,FU,OU,PU,LU,BU,GU,WU,HU,qU,KU,kC,XU,ZU,QU,t4,e4,r4,n4,o4,OG,i4,l4,c4,m4,d4,g4,x4,y4,w4,C4,S4,N4,T4,_4,E4,LG,$U,A4,D4,R4,O4,M4,L4,B4,V4,G4,W4,U4,q4,j4,X4,Y4,Z4,J4,tH,eH,rH,oH,iH,lH,cH,xG,pH,mH,fH];for(let r of Opt)ic(r);var V1=L();V1.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}});V1.registerFlag("WASM_HAS_MULTITHREAD_SUPPORT",async()=>{if(V1.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 j1=Kl(xH()),vH=Kl(bH()),X1=Kl(wH());var IH=j1.default||j1,Ppt=X1.default||X1,Ig=class extends Wo{constructor(t){super(),this.wasm=t,this.dataIdNextNumber=1,this.wasm.tfjs.initWithThreadsCount(NH),K1=this.wasm.tfjs.getThreadsCount(),this.dataIdMap=new Ta(this,Vn())}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)>>>0;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 Lpt(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,o){let s;if(n==null)s=this.write(o!=null?o:null,t,e);else{let i=this.dataIdNextNumber++;s={id:i},this.dataIdMap.set(s,{id:i,memoryOffset:n,shape:t,dtype:e,refCount:1});let a=y.sizeFromShape(t);this.wasm.tfjs.registerTensor(i,a,n)}return{dataId:s,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 Mpt(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 CH(r,t,e){if(DC!=null)return DC;let n="tfjs-backend-wasm.wasm";return r&&t?n="tfjs-backend-wasm-threaded-simd.wasm":r&&(n="tfjs-backend-wasm-simd.wasm"),bg!=null&&bg[n]!=null?bg[n]:e+n}async function SH(){let[r,t]=await Promise.all([L().getAsync("WASM_HAS_SIMD_SUPPORT"),L().getAsync("WASM_HAS_MULTITHREAD_SUPPORT")]);return new Promise((e,n)=>{let o={};o.locateFile=(a,u)=>{if(a.endsWith(".worker.js")){let l=vH.wasmWorkerContents.replace(/\n/g,"\\n"),c=new Blob([l],{type:"application/javascript"});return URL.createObjectURL(c)}return a.endsWith(".wasm")?CH(r,t,yg!=null?yg:u):u+a},Y1&&(o.instantiateWasm=Mpt(CH(r,t,yg!=null?yg:"")));let s=!1;o.onAbort=()=>{if(s||wg)return;wg=!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&&DC==null?(o.mainScriptUrlOrBlob=new Blob(["var WasmBackendModuleThreadedSimd = "+IH.toString()],{type:"text/javascript"}),i=IH(o)):i=Ppt(o),i.then(a=>{s=!0,wg=!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 Lpt(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 zpt=["tfjs-backend-wasm.wasm","tfjs-backend-wasm-simd.wasm","tfjs-backend-wasm-threaded-simd.wasm"],DC=null,yg=null,bg={},wg=!1,Y1=!1;function Bpt(r,t=!1){if(B0("setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release."),wg)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`");DC=r,Y1=t}function Vpt(r,t=!1){if(wg)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")yg=r;else{bg=r;let e=zpt.filter(n=>bg[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.`)}Y1=t}var NH=-1,K1=-1;function Gpt(r){NH=r}function Wpt(){if(K1===-1)throw new Error("WASM backend not initialized.");return K1}var Upt="4.5.0";var Hpt=2;sm("wasm",async()=>{let{wasm:r}=await SH();return new Ig(r)},Hpt);var kH="4.5.0",qpt="4.5.0",Kpt="4.5.0",jpt="4.5.0",Xpt="4.5.0",Ypt={tfjs:kH,"tfjs-core":kH,"tfjs-converter":qpt,"tfjs-backend-cpu":Kpt,"tfjs-backend-webgl":jpt,"tfjs-backend-wasm":Xpt};export{_i as Abs,Ho as Acos,qo as Acosh,Tc as AdadeltaOptimizer,_c as AdagradOptimizer,Ec as AdamOptimizer,Ac as AdamaxOptimizer,oo as Add,Ko as AddN,Ea as All,Aa as Any,Ei as ArgMax,Ai as ArgMin,jo as Asin,Xo as Asinh,Yo as Atan,Jo as Atan2,Zo as Atanh,Qo as AvgPool,Di as AvgPool3D,Xl as AvgPool3DGrad,Fp as AvgPoolGrad,Ig as BackendWasm,ts as BatchMatMul,$i as BatchToSpaceND,Da as Bincount,nh as BitwiseAnd,Yl as BroadcastArgs,h_ as BroadcastTo,Mb as Callback,Yy as CallbackList,ho as Cast,es as Ceil,go as ClipByValue,Op as Complex,Zl as ComplexAbs,Ri as Concat,rs as Conv2D,Pp as Conv2DBackpropFilter,ns as Conv2DBackpropInput,os as Conv3D,$a as Conv3DBackpropFilterV2,Ra as Conv3DBackpropInputV2,ss as Cos,is as Cosh,Oa as CropAndResize,Fa as Cumprod,as as Cumsum,Jy as CustomCallback,Ta as DataStorage,Jl as DenseBincount,Pa as DepthToSpace,ls as DepthwiseConv2dNative,Mp as DepthwiseConv2dNativeBackpropFilter,Lp as DepthwiseConv2dNativeBackpropInput,Ql as Diag,us as Dilation2D,eu as Dilation2DBackpropFilter,tu as Dilation2DBackpropInput,u0 as ENV,Lb as EarlyStopping,zp as Einsum,ps as Elu,Ma as EluGrad,eh as Environment,za as Equal,La as Erf,ms as Exp,Fi as ExpandDims,fs as Expm1,Bp as FFT,ru as Fill,Ba as FlipLeftRight,ds as Floor,hs as FloorDiv,oh as FromPixels,gs as FusedBatchNorm,ji as FusedConv2D,Xi as FusedDepthwiseConv2D,hp as GPGPUContext,Va as GatherNd,Oi as GatherV2,jh as GraphModel,Ga as Greater,xs as GreaterEqual,Zy as History,Vp as IFFT,xo as Identity,Gp as Imag,Ie as InputSpec,ys as IsFinite,bs as IsInf,ws as IsNan,Wo as KernelBackend,Ss as LRN,Xa as LRNGrad,Dh as LayerVariable,qn as LayersModel,Is as LeakyRelu,Wa as Less,Ua as LessEqual,Ha as LinSpace,Cs as Log,vs as Log1p,x_ as LogSoftmax,qa as LogicalAnd,Ka as LogicalNot,ja as LogicalOr,g_ as LogicalXor,rmt as LowerBound,Uu as MathBackendCPU,ju as MathBackendWebGL,nmt as MatrixBandPart,Ns as Max,Ts as MaxPool,Pi as MaxPool3D,nu as MaxPool3DGrad,Wp as MaxPoolGrad,Up as MaxPoolWithArgmax,ks as Maximum,_s as Mean,Es as Min,As as Minimum,Ds as MirrorPad,Ya as Mod,Dc as MomentumOptimizer,Za as Multinomial,$s as Multiply,Mi as Neg,Qa as NonMaxSuppressionV3,tl as NonMaxSuppressionV4,el as NonMaxSuppressionV5,Ja as NotEqual,A0 as OP_SCOPE_SUFFIX,Rs as OneHot,Li as OnesLike,qr as Optimizer,Nh as OptimizerConstructors,zi as Pack,Fs as PadV2,omt as Pool,Os as Pow,Ps as Prelu,Ms as Prod,$c as RMSPropOptimizer,An as RNN,Hp as RaggedGather,qp as RaggedRange,Kp as RaggedTensorToTensor,ou as Range,w0 as Rank,jp as Real,cs as RealDiv,Ls as Reciprocal,Ze as Reduction,zs as Relu,Gs as Relu6,Bi as Reshape,Vs as ResizeBilinear,nl as ResizeBilinearGrad,Bs as ResizeNearestNeighbor,rl as ResizeNearestNeighborGrad,Ws as Reverse,fl as RotateWithOffset,Us as Round,Hs as Rsqrt,Cl as SGDOptimizer,ol as ScatterNd,il as SearchSorted,Vi as Select,qs as Selu,xa as Sequential,Xs as Sigmoid,js as Sign,Ks as Sin,al as Sinh,Gi as Slice,Qs as Softmax,Ys as Softplus,Wi as SpaceToBatchND,su as SparseFillEmptyRows,ll as SparseReshape,iu as SparseSegmentMean,au as SparseSegmentSum,ul as SparseToDense,Ui as SplitV,Zs as Sqrt,lu as Square,ti as SquaredDifference,sc as StaticRegexReplace,yo as Step,cl as StridedSlice,uu as StringNGrams,cu as StringSplit,pu as StringToHashBucketFast,ei as Sub,Js as Sum,rn as SymbolicTensor,ri as Tan,ni as Tanh,Pt as Tensor,le as TensorBuffer,sl as TensorScatterUpdate,so as Tile,pl as TopK,ml as Transform,io as Transpose,mu as Unique,Hi as Unpack,fu as UnsortedSegmentSum,smt as UpperBound,dl as Variable,qi as ZerosLike,Ki as _FusedMatMul,Ee as abs,dx as acos,hx as acosh,Y as add,fE as addN,am as all,dc as any,ta as argMax,gx as argMin,xx as asin,yx as asinh,bx as atan,wx as atan2,Ix as atanh,bu as avgPool,Cx as avgPool3d,mE as backend,S as backend_util,gE as basicLSTMCell,na as batchNorm,vx as batchNorm2d,Sx as batchNorm3d,Nx as batchNorm4d,wu as batchToSpaceND,kx as bincount,yE as bitwiseAnd,c5 as booleanMaskAsync,bE as broadcastArgs,oa as broadcastTo,Ur as broadcast_util,Ay as browser,bt as buffer,T9 as callbacks,Q as cast,Tx as ceil,vr as clipByValue,un as clone,Nn as complex,se as concat,_x as concat1d,Ex as concat2d,Ax as concat3d,Dx as concat4d,nR as constraints,um as conv1d,kn as conv2d,pm as conv2dTranspose,$x as conv3d,Fx as conv3dTranspose,mmt as copyRegisteredKernels,Iu as cos,mm as cosh,Ih as cosineWindow,gc as cumprod,fm as cumsum,mn as customGrad,VF as data,gh as denseBincount,B0 as deprecationWarn,Ox as depthToSpace,sa as depthwiseConv2d,D9 as deregisterOp,xu as device_util,wE as diag,Px as dilation2d,vdt as disableDeprecationWarnings,Tt as dispose,Sdt as disposeVariables,ct as div,Mx as divNoNan,Lx as dot,nN as dropout,CE as einsum,ia as elu,Cdt as enableDebugMode,Idt as enableProdMode,oN as enclosingPowerOfTwo,Vn as engine,vE as ensureShape,L as env,Rr as equal,zx as erf,Bx as euclideanNorm,ir as exp,ar as expandDims,Vx as expm1,xc as eye,Au as fft,vo as fill,Adt as findBackend,Ddt as findBackendFactory,aa as floor,im as floorDiv,Dz as forceHalfFloat,Ru as fused,la as gather,w5 as gatherND,Dy as gather_util,_dt as getBackend,m0 as getGradient,ih as getKernel,Zg as getKernelsForBackend,Wpt as getThreadsCount,f1 as gpgpu_util,f6 as grad,d6 as grads,Fe as greater,pn as greaterEqual,Il as ifft,Cu as imag,dn as image,v5 as inTopKAsync,oR as initializers,BN as input,Mr as io,km as irfft,Gx as isFinite,Wx as isInf,Ux as isNaN,$e as keep,Kr as kernel_impls,LR as layers,vu as leakyRelu,bl as less,Gn as lessEqual,iN as linalg,kE as linspace,TQ as loadGraphModel,_Q as loadGraphModelSync,SR as loadLayersModel,Hx as localResponseNormalization,Nr as log,Su as log1p,jx as logSigmoid,dm as logSoftmax,hm as logSumExp,Or as logicalAnd,Nu as logicalNot,gm as logicalOr,Xx as logicalXor,S8 as losses,TE as lowerBound,Bt as matMul,y2 as math,Sr as max,ku as maxPool,Zx as maxPool3d,_E as maxPoolWithArgmax,Tn as maximum,ke as mean,fh as memory,EE as meshgrid,zR as metrics,xl as min,uo as minimum,Jx as mirrorPad,Qx as mod,T7 as model,BR as models,yc as moments,f5 as movingAverage,$ as mul,AE as multiRNNCell,DE as multinomial,Ut as neg,kh as nextFrame,yl as norm,li as notEqual,ua as oneHot,dr as ones,Ir as onesLike,k as op,$E as outerProduct,fn as pad,RE as pad1d,FE as pad2d,OE as pad3d,PE as pad4d,ty as pool,cn as pow,_u as prelu,fx as print,ey as prod,Ndt as profile,ME as raggedGather,LE as raggedRange,zE as raggedTensorToTensor,BE as rand,aA as randomGamma,Ic as randomNormal,lA as randomStandardNormal,Wn as randomUniform,uA as randomUniformInt,ca as range,Tdt as ready,wl as real,ay as reciprocal,sm as registerBackend,E7 as registerCallbackConstructor,b_ as registerGradient,ic as registerKernel,A9 as registerOp,VR as regularizers,Pr as relu,xm as relu6,Edt as removeBackend,R as reshape,hr as reverse,cA as reverse1d,pA as reverse2d,mA as reverse3d,fA as reverse4d,Du as rfft,ym as round,bm as rsqrt,ft as scalar,h5 as scatterND,$u as scatter_util,yh as searchSorted,wm as selu,Im as separableConv2d,_7 as sequential,J as serialization,bK as setBackend,$dt as setPlatform,Gpt as setThreadsCount,Bpt as setWasmPath,Vpt as setWasmPaths,TT as setWebGLContext,dA as setdiff1dAsync,Nw as shared,tn as sigmoid,ly as sign,v8 as signal,Cm as sin,vm as sinh,Ot as slice,Sm as slice1d,wh as slice2d,Nm as slice3d,Cc as slice4d,ze as slice_util,Eu as softmax,ai as softplus,Tu as spaceToBatchND,N8 as sparse,y5 as sparseToDense,C8 as spectral,gr as split,Ne as sqrt,Wt as square,Tm as squaredDifference,Un as squeeze,qe as stack,No as step,uy as stridedSlice,k8 as string,lt as sub,pt as sum,mc as sumOutType,cy as tan,ra as tanh,sr as tensor,Ke as tensor1d,ui as tensor2d,py as tensor3d,hA as tensor4d,gA as tensor5d,xA as tensor6d,bA as tensorScatterUpdate,Co as tensor_util,iA as test_util,B as tidy,Fr as tile,kdt as time,my as topk,Fc as train,Vt as transpose,Em as truncatedNormal,fy as unique,pmt as unregisterGradient,cmt as unregisterKernel,Am as unsortedSegmentSum,xr as unstack,ur as upcastType,wA as upperBound,y as util,h6 as valueAndGrad,g6 as valueAndGrads,dy as variable,qx as variableGrads,Ypt as version,IF as version_converter,A2 as version_core,TO as version_cpu,tf as version_layers,Upt as version_wasm,Az as version_webgl,aDe as webgl,Td as webgl_util,be as where,gy as whereAsync,Te as zeros,vt 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;nH(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)),I=Array.from(t.readSync(f.dataId));b=S.getSparseReshapeInputOutputMultipleErrorMessage(w,I);break}case 4:{let w=Array.from(t.readSync(o.dataId)),I=Array.from(t.readSync(f.dataId));b=S.getSparseReshapeInputOutputMismatchErrorMessage(w,I);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 oH={kernelName:cl,backendName:"wasm",setupFunc:Gpt,kernelFunc:Wpt};var sH;function TC(r){sH=r.wasm.cwrap("SparseSegmentReduction",null,["number","number","number","number","number","number","number","number","number"])}function _C(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;sH(m,Nt[o.dtype],o.shape[0],f,d,g,b,t,0);let w=e.readSync(x.dataId),I;switch(w[0]){case 0:{I=S.getSparseSegmentReductionNegativeSegmentIdsErrorMessage();break}case 1:{I=S.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage();break}case 2:I=S.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(w[1],w[2]);break;case 3:I=S.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(w[1],w[2],w[3]);break;default:I=""}if(e.disposeData(x.dataId),I)throw e.disposeData(h.dataId),new Error(I);return h}function Upt(r){return _C(r,!0)}var iH={kernelName:pu,backendName:"wasm",setupFunc:TC,kernelFunc:Upt};function Hpt(r){return _C(r,!1)}var aH={kernelName:mu,backendName:"wasm",setupFunc:TC,kernelFunc:Hpt};var lH;function qpt(r){lH=r.wasm.cwrap(pl,null,["number","number","number","number","number","number","number","number","array","number","number"])}function Kpt(r){let{backend:t,inputs:e,attrs:n}=r,{sparseIndices:o,sparseValues:s,defaultValue:i}=e,{outputShape:a}=n,u=t.makeOutput(a,i.dtype);if(y.sizeFromShape(a)===0)return u;let{sliceRank:l,numUpdates:c,sliceSize:p,strides:m,outputSize:f}=S.calculateShapes(s,o,a),d=t.dataIdMap.get(o.dataId).id,h=t.dataIdMap.get(s.dataId).id,g=t.dataIdMap.get(i.dataId).id,x=new Uint8Array(new Int32Array(m).buffer),b=t.dataIdMap.get(u.dataId).id;return lH(d,h,s.shape.length,g,Nt[i.dtype],l,c,p,x,f,b),u}var uH={kernelName:pl,backendName:"wasm",setupFunc:qpt,kernelFunc:Kpt};function jpt(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=Go({inputs:{x:o},attrs:{begin:l,size:m},backend:n});return l[a]+=p,f})}var cH={kernelName:ji,backendName:"wasm",kernelFunc:jpt};var pH=yt(ei);var mH=yt(fu);var Xpt=!0,fH=ee(oi,Xpt);var dH;function Ypt(r){dH=r.wasm.cwrap(wo,null,["number","number","number","number"])}function Zpt(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 dH(i,o,Nt[s.dtype],u),a}var hH={kernelName:wo,backendName:"wasm",setupFunc:Ypt,kernelFunc:Zpt};var gH;function Jpt(r){gH=r.wasm.cwrap(ml,null,["number","array","number","array","array","array","array","array","number","number"])}function Qpt(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:I}=ze.sliceInfo(o.shape,s,i,a,u,l,c,p,m),N;if(h)N=mr({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=ze.computeOutShape(b,w,I),A=Go({inputs:{x:o},backend:t,attrs:{begin:b,size:E}});N=mr({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,D=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(I).buffer),G=new Uint8Array(new Int32Array(f).buffer),W=new Uint8Array(new Int32Array(y.computeStrides(f)).buffer),q=t.dataIdMap.get(E.dataId).id;gH(A,D,o.shape.length,F,P,V,G,W,f.length,q),N=mr({inputs:{x:E},backend:t,attrs:{shape:d}}),t.disposeData(E.dataId)}return N}var xH={kernelName:ml,backendName:"wasm",setupFunc:Jpt,kernelFunc:Qpt};function tmt(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]=pp(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 yH={kernelName:du,backendName:"wasm",kernelFunc:tmt};function emt(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]=mp(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 bH={kernelName:hu,backendName:"wasm",kernelFunc:emt};function rmt(r){let{backend:t,inputs:e,attrs:n}=r,{input:o}=e,{numBuckets:s}=n,i=t.readSync(o.dataId),a=fp(i,s),u=t.makeOutput(o.shape,"int32");return t.typedArrayFromHeap(u).set(a),u}var wH={kernelName:gu,backendName:"wasm",kernelFunc:rmt};var nmt=!0,IH=ee(si,nmt);var CH;function omt(r){CH=r.wasm.cwrap(ri,null,["number","number","number","number"])}function smt(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}=Sn(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;CH(u,x,Nt[b.dtype],w)}if(f&&t.disposeData(c.dataId),s){let w=S.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var vH={kernelName:ri,backendName:"wasm",setupFunc:omt,kernelFunc:smt};var SH=yt(ii);var NH=yt(ai);var kH;function imt(r){kH=r.wasm.cwrap(ll,null,["number","number","number","number","number","number","array","number","number","number"])}function amt(r){let{backend:t,inputs:e,attrs:n}=r,{tensor:o,indices:s,updates:i}=e,{}=n,a=t.makeOutput(o.shape,o.dtype);if(y.sizeFromShape(o.shape)===0)return a;let{sliceRank:u,numUpdates:l,sliceSize:c,strides:p,outputSize:m}=Mu.calculateShapes(i,s,o.shape),d=t.dataIdMap.get(s.dataId).id,g=t.dataIdMap.get(i.dataId).id,b=t.dataIdMap.get(o.dataId).id,w=new Uint8Array(new Int32Array(p).buffer),I=t.dataIdMap.get(a.dataId).id;return kH(d,g,Nt[i.dtype],u,l,c,w,m,I,b),a}var TH={kernelName:ll,backendName:"wasm",setupFunc:imt,kernelFunc:amt};var _H;function lmt(r){_H=r.wasm.cwrap(lo,null,["number","array","number","array","number","number"])}function umt(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 AH(i,a,n.shape.length,Nt[n.dtype],o,s,c,m),[l,p]},DH={kernelName:fl,backendName:"wasm",setupFunc:cmt,kernelFunc:pmt};var $H;function mmt(r){$H=r.wasm.cwrap(dl,null,["number","number","bool","number","number","number","number","number","number","array","number","array","number","number","number","number","number"])}function fmt(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),I=t.dataIdMap.get(w.dataId).id,E=t.dataIdMap.get(o.dataId).id,D=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 $H(E,D,s.shape[0]>1,c,d,h,f,m,p,x,o.shape.length-1,b,g.length-1,F,P,u,I),w}var RH={kernelName:dl,backendName:"wasm",setupFunc:mmt,kernelFunc:fmt};function dmt(r){let{inputs:t,attrs:e,backend:n}=r,{axis:o}=e,{x:s}=t,{outputValues:i,outputShape:a,indices:u}=dp(n.readSync(s.dataId),o,s.shape,s.dtype);return[n.makeOutput(a,s.dtype,void 0,i),n.makeOutput([u.length],"int32",void 0,u)]}var FH={kernelName:xu,backendName:"wasm",kernelFunc:dmt};function hmt(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 OH={kernelName:Xi,backendName:"wasm",kernelFunc:hmt};function gmt(r){let{inputs:{x:t},backend:e}=r,n=e.makeOutput(t.shape,t.dtype);return e.typedArrayFromHeap(n).fill(0),n}var PH={kernelName:Yi,backendName:"wasm",kernelFunc:gmt};var xmt=[IG,CG,vG,SG,NG,TG,$G,FG,OG,PG,MG,LG,zG,BG,VG,WG,XG,HG,KG,JG,tW,rW,nW,oW,sW,iW,lW,uW,pW,fW,hW,xW,bW,wW,IW,vW,NW,TW,EW,DW,RW,OW,MW,zW,VW,GW,UW,HW,qW,KW,jW,XW,YW,JW,QW,tU,rU,oU,iU,lU,cU,pU,mU,_G,fU,dU,hU,xU,yU,bU,IU,vU,CU,SU,NU,kU,TU,EU,DU,RU,FU,PU,LU,BU,GU,UU,qU,jU,XU,ZU,e4,r4,n4,o4,i4,l4,c4,p4,f4,d4,h4,kC,x4,b4,I4,C4,v4,S4,N4,k4,YG,_4,A4,$4,F4,P4,L4,z4,B4,G4,U4,q4,K4,X4,Y4,Z4,J4,QG,QU,Q4,tH,rH,oH,iH,aH,uH,cH,pH,mH,fH,hH,xH,yH,bH,wH,IH,vH,SH,NH,TH,EH,DH,RH,AG,FH,OH,PH];for(let r of xmt)pc(r);var j1=L();j1.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}});j1.registerFlag("WASM_HAS_MULTITHREAD_SUPPORT",async()=>{if(j1.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 e_=Xl(BH()),qH=Xl(GH()),r_=Xl(WH());var UH=e_.default||e_,ymt=r_.default||r_,Ig=class extends Uo{constructor(t){super(),this.wasm=t,this.dataIdNextNumber=1,this.wasm.tfjs.initWithThreadsCount(jH),t_=this.wasm.tfjs.getThreadsCount(),this.dataIdMap=new Da(this,Wn())}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)>>>0;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 wmt(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,o){let s;if(n==null)s=this.write(o!=null?o:null,t,e);else{let i=this.dataIdNextNumber++;s={id:i},this.dataIdMap.set(s,{id:i,memoryOffset:n,shape:t,dtype:e,refCount:1});let a=y.sizeFromShape(t);this.wasm.tfjs.registerTensor(i,a,n)}return{dataId:s,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 bmt(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 HH(r,t,e){if(DC!=null)return DC;let n="tfjs-backend-wasm.wasm";return r&&t?n="tfjs-backend-wasm-threaded-simd.wasm":r&&(n="tfjs-backend-wasm-simd.wasm"),bg!=null&&bg[n]!=null?bg[n]:e+n}async function KH(){let[r,t]=await Promise.all([L().getAsync("WASM_HAS_SIMD_SUPPORT"),L().getAsync("WASM_HAS_MULTITHREAD_SUPPORT")]);return new Promise((e,n)=>{let o={};o.locateFile=(a,u)=>{if(a.endsWith(".worker.js")){let l=qH.wasmWorkerContents.replace(/\n/g,"\\n"),c=new Blob([l],{type:"application/javascript"});return URL.createObjectURL(c)}return a.endsWith(".wasm")?HH(r,t,yg!=null?yg:u):u+a},n_&&(o.instantiateWasm=bmt(HH(r,t,yg!=null?yg:"")));let s=!1;o.onAbort=()=>{if(s||wg)return;wg=!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&&DC==null?(o.mainScriptUrlOrBlob=new Blob(["var WasmBackendModuleThreadedSimd = "+UH.toString()],{type:"text/javascript"}),i=UH(o)):i=ymt(o),i.then(a=>{s=!0,wg=!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 wmt(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 Imt=["tfjs-backend-wasm.wasm","tfjs-backend-wasm-simd.wasm","tfjs-backend-wasm-threaded-simd.wasm"],DC=null,yg=null,bg={},wg=!1,n_=!1;function Cmt(r,t=!1){if(K0("setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release."),wg)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`");DC=r,n_=t}function vmt(r,t=!1){if(wg)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")yg=r;else{bg=r;let e=Imt.filter(n=>bg[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.`)}n_=t}var jH=-1,t_=-1;function Smt(r){jH=r}function Nmt(){if(t_===-1)throw new Error("WASM backend not initialized.");return t_}var kmt="4.7.0";var Tmt=2;im("wasm",async()=>{let{wasm:r}=await KH();return new Ig(r)},Tmt);var XH="4.7.0",_mt="4.7.0",Emt="4.7.0",Amt="4.7.0",Dmt="4.7.0",$mt={tfjs:XH,"tfjs-core":XH,"tfjs-converter":_mt,"tfjs-backend-cpu":Emt,"tfjs-backend-webgl":Amt,"tfjs-backend-wasm":Dmt};export{$i as Abs,qo as Acos,Ko as Acosh,$c as AdadeltaOptimizer,Rc as AdagradOptimizer,Fc as AdamOptimizer,Oc as AdamaxOptimizer,ao as Add,jo as AddN,Ra as All,Fa as Any,Ri as ArgMax,Fi as ArgMin,Xo as Asin,Yo as Asinh,Zo as Atan,Qo as Atan2,Jo as Atanh,ts as AvgPool,Oi as AvgPool3D,Jl as AvgPool3DGrad,Zl as AvgPoolGrad,Ig as BackendWasm,es as BatchMatMul,Pi as BatchToSpaceND,Oa as Bincount,Pa as BitwiseAnd,Ql as BroadcastArgs,C_ as BroadcastTo,Mb as Callback,Yy as CallbackList,xo as Cast,rs as Ceil,yo as ClipByValue,zp as Complex,tu as ComplexAbs,Mi as Concat,ns as Conv2D,Bp as Conv2DBackpropFilter,os as Conv2DBackpropInput,ss as Conv3D,Ma as Conv3DBackpropFilterV2,La as Conv3DBackpropInputV2,is as Cos,as as Cosh,Ba as CropAndResize,za as Cumprod,ls as Cumsum,Jy as CustomCallback,Da as DataStorage,eu as DenseBincount,Va as DepthToSpace,us as DepthwiseConv2dNative,Vp as DepthwiseConv2dNativeBackpropFilter,Gp as DepthwiseConv2dNativeBackpropInput,ru as Diag,cs as Dilation2D,ou as Dilation2DBackpropFilter,nu as Dilation2DBackpropInput,Zg as Draw,g0 as ENV,Lb as EarlyStopping,Wp as Einsum,ms as Elu,Ga as EluGrad,rh as Environment,Wa as Equal,fs as Erf,ds as Exp,Li as ExpandDims,hs as Expm1,Up as FFT,su as Fill,Ua as FlipLeftRight,gs as Floor,xs as FloorDiv,oh as FromPixels,ys as FusedBatchNorm,Ji as FusedConv2D,Qi as FusedDepthwiseConv2D,wp as GPGPUContext,Ha as GatherNd,zi as GatherV2,jh as GraphModel,qa as Greater,bs as GreaterEqual,Zy as History,Hp as IFFT,bo as Identity,qp as Imag,Ie as InputSpec,ws as IsFinite,Is as IsInf,Cs as IsNan,Uo as KernelBackend,ks as LRN,Qa as LRNGrad,Dh as LayerVariable,jn as LayersModel,vs as LeakyRelu,Ka as Less,ja as LessEqual,Xa as LinSpace,Ss as Log,Ns as Log1p,S_ as LogSoftmax,Ya as LogicalAnd,Za as LogicalNot,Ja as LogicalOr,v_ as LogicalXor,Lmt as LowerBound,Xu as MathBackendCPU,Qu as MathBackendWebGL,zmt as MatrixBandPart,Ts as Max,Es as MaxPool,Bi as MaxPool3D,au as MaxPool3DGrad,iu as MaxPoolGrad,lu as MaxPoolWithArgmax,_s as Maximum,As as Mean,Ds as Min,$s as Minimum,Rs as MirrorPad,Fs as Mod,Pc as MomentumOptimizer,tl as Multinomial,Os as Multiply,Vi as Neg,rl as NonMaxSuppressionV3,nl as NonMaxSuppressionV4,ol as NonMaxSuppressionV5,el as NotEqual,M0 as OP_SCOPE_SUFFIX,Ps as OneHot,Gi as OnesLike,Kr as Optimizer,Nh as OptimizerConstructors,Wi as Pack,Ms as PadV2,Bmt as Pool,Ls as Pow,zs as Prelu,Bs as Prod,Mc as RMSPropOptimizer,Dn as RNN,Kp as RaggedGather,jp as RaggedRange,Xp as RaggedTensorToTensor,uu as Range,T0 as Rank,Yp as Real,ps as RealDiv,Vs as Reciprocal,Ze as Reduction,Gs as Relu,Hs as Relu6,Ui as Reshape,Us as ResizeBilinear,il as ResizeBilinearGrad,Ws as ResizeNearestNeighbor,sl as ResizeNearestNeighborGrad,qs as Reverse,hl as RotateWithOffset,Ks as Round,js as Rsqrt,Sl as SGDOptimizer,al as ScatterNd,ul as SearchSorted,Hi as Select,Xs as Selu,Ia as Sequential,Qs as Sigmoid,Js as Sign,Ys as Sin,Zs as Sinh,qi as Slice,ni as Softmax,ti as Softplus,Ki as SpaceToBatchND,cu as SparseFillEmptyRows,cl as SparseReshape,pu as SparseSegmentMean,mu as SparseSegmentSum,pl as SparseToDense,ji as SplitV,ei as Sqrt,fu as Square,oi as SquaredDifference,cc as StaticRegexReplace,wo as Step,ml as StridedSlice,du as StringNGrams,hu as StringSplit,gu as StringToHashBucketFast,si as Sub,ri as Sum,nn as SymbolicTensor,ii as Tan,ai as Tanh,Ot as Tensor,le as TensorBuffer,ll as TensorScatterUpdate,lo as Tile,fl as TopK,dl as Transform,uo as Transpose,xu as Unique,Xi as Unpack,yu as UnsortedSegmentSum,Vmt as UpperBound,gl as Variable,Yi as ZerosLike,Zi as _FusedMatMul,Ee as abs,hx as acos,gx as acosh,Y as add,IE as addN,lm as all,bc as any,oa as argMax,xx as argMin,yx as asin,bx as asinh,wx as atan,Ix as atan2,Cx as atanh,Su as avgPool,vx as avgPool3d,wE as backend,S as backend_util,SE as basicLSTMCell,aa as batchNorm,Sx as batchNorm2d,Nx as batchNorm3d,kx as batchNorm4d,Nu as batchToSpaceND,Tx as bincount,kE as bitwiseAnd,F5 as booleanMaskAsync,TE as broadcastArgs,la as broadcastTo,Hr as broadcast_util,Ay as browser,wt as buffer,J9 as callbacks,Q as cast,_x as ceil,Sr as clipByValue,cn as clone,kn as complex,ie as concat,Ex as concat1d,Ax as concat2d,Dx as concat3d,$x as concat4d,fR as constraints,cm as conv1d,Tn as conv2d,mm as conv2dTranspose,Rx as conv3d,Ox as conv3dTranspose,jmt as copyRegisteredKernels,ku as cos,fm as cosh,Ih as cosineWindow,Ic as cumprod,dm as cumsum,fn as customGrad,ZF as data,gh as denseBincount,K0 as deprecationWarn,Px as depthToSpace,ua as depthwiseConv2d,rQ as deregisterOp,Cu as device_util,_E as diag,Mx as dilation2d,uht as disableDeprecationWarnings,Tt as dispose,cht as disposeVariables,ct as div,Lx as divNoNan,zx as dot,cN as dropout,AE as einsum,ca as elu,lht as enableDebugMode,aht as enableProdMode,pN as enclosingPowerOfTwo,Wn as engine,DE as ensureShape,L as env,Fr as equal,Bx as erf,Vx as euclideanNorm,ir as exp,ar as expandDims,Gx as expm1,Cc as eye,Ou as fft,No as fill,ght as findBackend,xht as findBackendFactory,pa as floor,am as floorDiv,Wz as forceHalfFloat,Lu as fused,ma as gather,U5 as gatherND,Dy as gather_util,dht as getBackend,b0 as getGradient,ih as getKernel,Jg as getKernelsForBackend,Nmt as getThreadsCount,w1 as gpgpu_util,M6 as grad,L6 as grads,Fe as greater,mn as greaterEqual,vl as ifft,Tu as imag,hn as image,K5 as inTopKAsync,dR as initializers,KN as input,Lr as io,Tm as irfft,Wx as isFinite,Ux as isInf,Hx as isNaN,$e as keep,jr as kernel_impls,jR as layers,_u as leakyRelu,Il as less,Un as lessEqual,fN as linalg,FE as linspace,JQ as loadGraphModel,QQ as loadGraphModelSync,FR as loadLayersModel,qx as localResponseNormalization,kr as log,Eu as log1p,Xx as logSigmoid,hm as logSoftmax,gm as logSumExp,Pr as logicalAnd,Au as logicalNot,xm as logicalOr,Yx as logicalXor,j8 as losses,OE as lowerBound,Bt as matMul,k2 as math,Nr as max,Du as maxPool,Jx as maxPool3d,PE as maxPoolWithArgmax,_n as maximum,ke as mean,fh as memory,ME as meshgrid,XR as metrics,bl as min,mo as minimum,Qx as mirrorPad,ty as mod,JZ as model,YR as models,vc as moments,M5 as movingAverage,$ as mul,LE as multiRNNCell,zE as multinomial,Ut as neg,kh as nextFrame,wl as norm,mi as notEqual,fa as oneHot,dr as ones,Ir as onesLike,k as op,BE as outerProduct,dn as pad,VE as pad1d,GE as pad2d,WE as pad3d,UE as pad4d,ey as pool,pn as pow,Ru as prelu,dx as print,ry as prod,pht as profile,HE as raggedGather,qE as raggedRange,KE as raggedTensorToTensor,jE as rand,hA as randomGamma,kc as randomNormal,gA as randomStandardNormal,Hn as randomUniform,xA as randomUniformInt,da as range,fht as ready,Cl as real,ly as reciprocal,im as registerBackend,tJ as registerCallbackConstructor,k_ as registerGradient,pc as registerKernel,eQ as registerOp,ZR as regularizers,Mr as relu,ym as relu6,hht as removeBackend,R as reshape,hr as reverse,yA as reverse1d,bA as reverse2d,wA as reverse3d,IA as reverse4d,Pu as rfft,bm as round,wm as rsqrt,ft as scalar,z5 as scatterND,Mu as scatter_util,yh as searchSorted,Im as selu,Cm as separableConv2d,QZ as sequential,J as serialization,WK as setBackend,yht as setPlatform,Smt as setThreadsCount,Cmt as setWasmPath,vmt as setWasmPaths,FT as setWebGLContext,CA as setdiff1dAsync,Nw as shared,en as sigmoid,uy as sign,K8 as signal,vm as sin,Sm as sinh,Pt as slice,Nm as slice1d,wh as slice2d,km as slice3d,Tc as slice4d,ze as slice_util,Fu as softmax,pi as softplus,$u as spaceToBatchND,X8 as sparse,G5 as sparseToDense,q8 as spectral,gr as split,Ne as sqrt,Wt as square,_m as squaredDifference,qn as squeeze,qe as stack,To as step,cy as stridedSlice,Y8 as string,lt as sub,pt as sum,xc as sumOutType,py as tan,ia as tanh,sr as tensor,Ke as tensor1d,fi as tensor2d,my as tensor3d,vA as tensor4d,SA as tensor5d,NA as tensor6d,TA as tensorScatterUpdate,So as tensor_util,dA as test_util,B as tidy,Or as tile,mht as time,fy as topk,zc as train,Vt as transpose,Am as truncatedNormal,dy as unique,Kmt as unregisterGradient,qmt as unregisterKernel,Dm as unsortedSegmentSum,xr as unstack,ur as upcastType,_A as upperBound,y as util,z6 as valueAndGrad,B6 as valueAndGrads,hy as variable,Kx as variableGrads,$mt as version,DF as version_converter,B2 as version_core,MO as version_cpu,ef as version_layers,kmt as version_wasm,Gz as version_webgl,JDe as webgl,_d as webgl_util,be as where,xy as whereAsync,Te as zeros,vt as zerosLike}; diff --git a/dist/tfjs.version.js b/dist/tfjs.version.js index 653c831..4f836f1 100644 --- a/dist/tfjs.version.js +++ b/dist/tfjs.version.js @@ -4,4 +4,4 @@ author: ' */ -var e="4.5.0";var s="4.5.0";var t="4.5.0";var n="4.5.0";var i="4.5.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}; +var e="4.7.0";var s="4.7.0";var t="4.7.0";var n="4.7.0";var i="4.7.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/src/dom/getContext2dOrThrow.ts b/src/dom/getContext2dOrThrow.ts index a4dc282..8a100c1 100644 --- a/src/dom/getContext2dOrThrow.ts +++ b/src/dom/getContext2dOrThrow.ts @@ -3,21 +3,10 @@ import { resolveInput } from './resolveInput'; export function getContext2dOrThrow(canvasArg: string | HTMLCanvasElement | CanvasRenderingContext2D): CanvasRenderingContext2D { const { Canvas, CanvasRenderingContext2D } = env.getEnv(); - - if (canvasArg instanceof CanvasRenderingContext2D) { - return canvasArg; - } - + if (canvasArg instanceof CanvasRenderingContext2D) return canvasArg; const canvas = resolveInput(canvasArg); - - if (!(canvas instanceof Canvas)) { - throw new Error('resolveContext2d - expected canvas to be of instance of Canvas'); - } - - const ctx = canvas.getContext('2d'); - if (!ctx) { - throw new Error('resolveContext2d - canvas 2d context is null'); - } - + if (!(canvas instanceof Canvas)) throw new Error('resolveContext2d - expected canvas to be of instance of Canvas'); + const ctx = canvas.getContext('2d', { willReadFrequently: true }); + if (!ctx) throw new Error('resolveContext2d - canvas 2d context is null'); return ctx; } diff --git a/typedoc/classes/AgeGenderNet.html b/typedoc/classes/AgeGenderNet.html index 27db6ad..404e13d 100644 --- a/typedoc/classes/AgeGenderNet.html +++ b/typedoc/classes/AgeGenderNet.html @@ -1,4 +1,4 @@ -AgeGenderNet | @vladmandic/face-api - v1.7.11
+AgeGenderNet | @vladmandic/face-api - v1.7.12
  • Preparing search index...
  • -
  • The search index is not available
@vladmandic/face-api - v1.7.11
+
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -396,7 +396,7 @@

    Modules

    diff --git a/typedoc/classes/BoundingBox.html b/typedoc/classes/BoundingBox.html index a89bdae..cd6ae75 100644 --- a/typedoc/classes/BoundingBox.html +++ b/typedoc/classes/BoundingBox.html @@ -1,4 +1,4 @@ -BoundingBox | @vladmandic/face-api - v1.7.11
    +BoundingBox | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -403,7 +403,7 @@

    Modules

    diff --git a/typedoc/classes/Box.html b/typedoc/classes/Box.html index bf516dd..caaf968 100644 --- a/typedoc/classes/Box.html +++ b/typedoc/classes/Box.html @@ -1,4 +1,4 @@ -Box | @vladmandic/face-api - v1.7.11
    +Box | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -389,7 +389,7 @@

    Modules

    diff --git a/typedoc/classes/ComposableTask.html b/typedoc/classes/ComposableTask.html index 4f0f060..a1d79b8 100644 --- a/typedoc/classes/ComposableTask.html +++ b/typedoc/classes/ComposableTask.html @@ -1,4 +1,4 @@ -ComposableTask | @vladmandic/face-api - v1.7.11
    +ComposableTask | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -107,7 +107,7 @@

    Modules

    diff --git a/typedoc/classes/ComputeAllFaceDescriptorsTask.html b/typedoc/classes/ComputeAllFaceDescriptorsTask.html index 65f8804..a78e727 100644 --- a/typedoc/classes/ComputeAllFaceDescriptorsTask.html +++ b/typedoc/classes/ComputeAllFaceDescriptorsTask.html @@ -1,4 +1,4 @@ -ComputeAllFaceDescriptorsTask | @vladmandic/face-api - v1.7.11
    +ComputeAllFaceDescriptorsTask | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -135,7 +135,7 @@

    Modules

    diff --git a/typedoc/classes/ComputeFaceDescriptorsTaskBase.html b/typedoc/classes/ComputeFaceDescriptorsTaskBase.html index c6c43c2..64cf027 100644 --- a/typedoc/classes/ComputeFaceDescriptorsTaskBase.html +++ b/typedoc/classes/ComputeFaceDescriptorsTaskBase.html @@ -1,4 +1,4 @@ -ComputeFaceDescriptorsTaskBase | @vladmandic/face-api - v1.7.11
    +ComputeFaceDescriptorsTaskBase | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12

    Class ComputeFaceDescriptorsTaskBase<TReturn, TParentReturn>

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

    Modules

    diff --git a/typedoc/classes/ComputeSingleFaceDescriptorTask.html b/typedoc/classes/ComputeSingleFaceDescriptorTask.html index 99991b0..4673703 100644 --- a/typedoc/classes/ComputeSingleFaceDescriptorTask.html +++ b/typedoc/classes/ComputeSingleFaceDescriptorTask.html @@ -1,4 +1,4 @@ -ComputeSingleFaceDescriptorTask | @vladmandic/face-api - v1.7.11
    +ComputeSingleFaceDescriptorTask | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -135,7 +135,7 @@

    Modules

    diff --git a/typedoc/classes/DetectAllFaceLandmarksTask.html b/typedoc/classes/DetectAllFaceLandmarksTask.html index 5c82753..cbaf0f5 100644 --- a/typedoc/classes/DetectAllFaceLandmarksTask.html +++ b/typedoc/classes/DetectAllFaceLandmarksTask.html @@ -1,4 +1,4 @@ -DetectAllFaceLandmarksTask | @vladmandic/face-api - v1.7.11
    +DetectAllFaceLandmarksTask | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -146,7 +146,7 @@

    Modules

    diff --git a/typedoc/classes/DetectAllFacesTask.html b/typedoc/classes/DetectAllFacesTask.html index 1ad410d..5267066 100644 --- a/typedoc/classes/DetectAllFacesTask.html +++ b/typedoc/classes/DetectAllFacesTask.html @@ -1,4 +1,4 @@ -DetectAllFacesTask | @vladmandic/face-api - v1.7.11
    +DetectAllFacesTask | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -139,7 +139,7 @@

    Modules

    diff --git a/typedoc/classes/DetectFaceLandmarksTaskBase.html b/typedoc/classes/DetectFaceLandmarksTaskBase.html index f3d213b..07da4a8 100644 --- a/typedoc/classes/DetectFaceLandmarksTaskBase.html +++ b/typedoc/classes/DetectFaceLandmarksTaskBase.html @@ -1,4 +1,4 @@ -DetectFaceLandmarksTaskBase | @vladmandic/face-api - v1.7.11
    +DetectFaceLandmarksTaskBase | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12

    Class DetectFaceLandmarksTaskBase<TReturn, TParentReturn>

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

    Modules

    diff --git a/typedoc/classes/DetectFacesTaskBase.html b/typedoc/classes/DetectFacesTaskBase.html index 689ed50..50bf2eb 100644 --- a/typedoc/classes/DetectFacesTaskBase.html +++ b/typedoc/classes/DetectFacesTaskBase.html @@ -1,4 +1,4 @@ -DetectFacesTaskBase | @vladmandic/face-api - v1.7.11
    +DetectFacesTaskBase | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -120,7 +120,7 @@

    Modules

    diff --git a/typedoc/classes/DetectSingleFaceLandmarksTask.html b/typedoc/classes/DetectSingleFaceLandmarksTask.html index 80cc640..dc6d43e 100644 --- a/typedoc/classes/DetectSingleFaceLandmarksTask.html +++ b/typedoc/classes/DetectSingleFaceLandmarksTask.html @@ -1,4 +1,4 @@ -DetectSingleFaceLandmarksTask | @vladmandic/face-api - v1.7.11
    +DetectSingleFaceLandmarksTask | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -146,7 +146,7 @@

    Modules

    diff --git a/typedoc/classes/DetectSingleFaceTask.html b/typedoc/classes/DetectSingleFaceTask.html index 73bf338..471f918 100644 --- a/typedoc/classes/DetectSingleFaceTask.html +++ b/typedoc/classes/DetectSingleFaceTask.html @@ -1,4 +1,4 @@ -DetectSingleFaceTask | @vladmandic/face-api - v1.7.11
    +DetectSingleFaceTask | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -139,7 +139,7 @@

    Modules

    diff --git a/typedoc/classes/Dimensions.html b/typedoc/classes/Dimensions.html index 687ac41..fef831e 100644 --- a/typedoc/classes/Dimensions.html +++ b/typedoc/classes/Dimensions.html @@ -1,4 +1,4 @@ -Dimensions | @vladmandic/face-api - v1.7.11
    +Dimensions | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -106,7 +106,7 @@

    Modules

    diff --git a/typedoc/classes/FaceDetection.html b/typedoc/classes/FaceDetection.html index 0160336..75881e8 100644 --- a/typedoc/classes/FaceDetection.html +++ b/typedoc/classes/FaceDetection.html @@ -1,4 +1,4 @@ -FaceDetection | @vladmandic/face-api - v1.7.11
    +FaceDetection | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -181,7 +181,7 @@

    Modules

    diff --git a/typedoc/classes/FaceDetectionNet.html b/typedoc/classes/FaceDetectionNet.html index fa55d29..a9ec291 100644 --- a/typedoc/classes/FaceDetectionNet.html +++ b/typedoc/classes/FaceDetectionNet.html @@ -1,4 +1,4 @@ -FaceDetectionNet | @vladmandic/face-api - v1.7.11
    +FaceDetectionNet | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -340,7 +340,7 @@

    Modules

    diff --git a/typedoc/classes/FaceExpressionNet.html b/typedoc/classes/FaceExpressionNet.html index c1a417e..acf8f72 100644 --- a/typedoc/classes/FaceExpressionNet.html +++ b/typedoc/classes/FaceExpressionNet.html @@ -1,4 +1,4 @@ -FaceExpressionNet | @vladmandic/face-api - v1.7.11
    +FaceExpressionNet | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -400,7 +400,7 @@

    Modules

    diff --git a/typedoc/classes/FaceExpressions.html b/typedoc/classes/FaceExpressions.html index f8d13ca..4d3b5b1 100644 --- a/typedoc/classes/FaceExpressions.html +++ b/typedoc/classes/FaceExpressions.html @@ -1,4 +1,4 @@ -FaceExpressions | @vladmandic/face-api - v1.7.11
    +FaceExpressions | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -122,7 +122,7 @@

    Modules

    diff --git a/typedoc/classes/FaceLandmark68Net.html b/typedoc/classes/FaceLandmark68Net.html index 7f436bb..3488c0b 100644 --- a/typedoc/classes/FaceLandmark68Net.html +++ b/typedoc/classes/FaceLandmark68Net.html @@ -1,4 +1,4 @@ -FaceLandmark68Net | @vladmandic/face-api - v1.7.11
    +FaceLandmark68Net | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -424,7 +424,7 @@

    Modules

    diff --git a/typedoc/classes/FaceLandmark68TinyNet.html b/typedoc/classes/FaceLandmark68TinyNet.html index b7e8ad7..fb09b41 100644 --- a/typedoc/classes/FaceLandmark68TinyNet.html +++ b/typedoc/classes/FaceLandmark68TinyNet.html @@ -1,4 +1,4 @@ -FaceLandmark68TinyNet | @vladmandic/face-api - v1.7.11
    +FaceLandmark68TinyNet | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -422,7 +422,7 @@

    Modules

    diff --git a/typedoc/classes/FaceLandmarkNet.html b/typedoc/classes/FaceLandmarkNet.html index 319828c..ddb12ca 100644 --- a/typedoc/classes/FaceLandmarkNet.html +++ b/typedoc/classes/FaceLandmarkNet.html @@ -1,4 +1,4 @@ -FaceLandmarkNet | @vladmandic/face-api - v1.7.11
    +FaceLandmarkNet | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -422,7 +422,7 @@

    Modules

    diff --git a/typedoc/classes/FaceLandmarks.html b/typedoc/classes/FaceLandmarks.html index 083a506..01829f6 100644 --- a/typedoc/classes/FaceLandmarks.html +++ b/typedoc/classes/FaceLandmarks.html @@ -1,4 +1,4 @@ -FaceLandmarks | @vladmandic/face-api - v1.7.11
    +FaceLandmarks | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -222,7 +222,7 @@ it's current shift.

    Modules

    diff --git a/typedoc/classes/FaceLandmarks5.html b/typedoc/classes/FaceLandmarks5.html index b9321a1..6e3307e 100644 --- a/typedoc/classes/FaceLandmarks5.html +++ b/typedoc/classes/FaceLandmarks5.html @@ -1,4 +1,4 @@ -FaceLandmarks5 | @vladmandic/face-api - v1.7.11
    +FaceLandmarks5 | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -225,7 +225,7 @@ it's current shift.

    Modules

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

    Modules

    diff --git a/typedoc/classes/FaceMatch.html b/typedoc/classes/FaceMatch.html index 1a9e2e6..2ae2ac6 100644 --- a/typedoc/classes/FaceMatch.html +++ b/typedoc/classes/FaceMatch.html @@ -1,4 +1,4 @@ -FaceMatch | @vladmandic/face-api - v1.7.11
    +FaceMatch | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -111,7 +111,7 @@

    Modules

    diff --git a/typedoc/classes/FaceMatcher.html b/typedoc/classes/FaceMatcher.html index 35eb683..d862449 100644 --- a/typedoc/classes/FaceMatcher.html +++ b/typedoc/classes/FaceMatcher.html @@ -1,4 +1,4 @@ -FaceMatcher | @vladmandic/face-api - v1.7.11
    +FaceMatcher | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -158,7 +158,7 @@

    Modules

    diff --git a/typedoc/classes/FaceRecognitionNet.html b/typedoc/classes/FaceRecognitionNet.html index 1aa542c..4941d94 100644 --- a/typedoc/classes/FaceRecognitionNet.html +++ b/typedoc/classes/FaceRecognitionNet.html @@ -1,4 +1,4 @@ -FaceRecognitionNet | @vladmandic/face-api - v1.7.11
    +FaceRecognitionNet | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -335,7 +335,7 @@

    Modules

    diff --git a/typedoc/classes/LabeledBox.html b/typedoc/classes/LabeledBox.html index 68fd6f8..a057b98 100644 --- a/typedoc/classes/LabeledBox.html +++ b/typedoc/classes/LabeledBox.html @@ -1,4 +1,4 @@ -LabeledBox | @vladmandic/face-api - v1.7.11
    +LabeledBox | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -416,7 +416,7 @@

    Modules

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

    Modules

    diff --git a/typedoc/classes/NetInput.html b/typedoc/classes/NetInput.html index 9a23484..00959bb 100644 --- a/typedoc/classes/NetInput.html +++ b/typedoc/classes/NetInput.html @@ -1,4 +1,4 @@ -NetInput | @vladmandic/face-api - v1.7.11
    +NetInput | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -229,7 +229,7 @@ with size [batchSize, inputSize, inputSize, 3].

    Modules

    diff --git a/typedoc/classes/NeuralNetwork.html b/typedoc/classes/NeuralNetwork.html index 64c4b48..1653679 100644 --- a/typedoc/classes/NeuralNetwork.html +++ b/typedoc/classes/NeuralNetwork.html @@ -1,4 +1,4 @@ -NeuralNetwork | @vladmandic/face-api - v1.7.11
    +NeuralNetwork | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -291,7 +291,7 @@

    Modules

    diff --git a/typedoc/classes/ObjectDetection.html b/typedoc/classes/ObjectDetection.html index 1a4f55b..9bc10e0 100644 --- a/typedoc/classes/ObjectDetection.html +++ b/typedoc/classes/ObjectDetection.html @@ -1,4 +1,4 @@ -ObjectDetection | @vladmandic/face-api - v1.7.11
    +ObjectDetection | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -169,7 +169,7 @@

    Modules

    diff --git a/typedoc/classes/Point.html b/typedoc/classes/Point.html index c4f4577..5a90554 100644 --- a/typedoc/classes/Point.html +++ b/typedoc/classes/Point.html @@ -1,4 +1,4 @@ -Point | @vladmandic/face-api - v1.7.11
    +Point | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -180,7 +180,7 @@

    Modules

    diff --git a/typedoc/classes/PredictedBox.html b/typedoc/classes/PredictedBox.html index 8a163d8..34b0945 100644 --- a/typedoc/classes/PredictedBox.html +++ b/typedoc/classes/PredictedBox.html @@ -1,4 +1,4 @@ -PredictedBox | @vladmandic/face-api - v1.7.11
    +PredictedBox | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -454,7 +454,7 @@

    Modules

    diff --git a/typedoc/classes/Rect.html b/typedoc/classes/Rect.html index 33b50fe..ce34092 100644 --- a/typedoc/classes/Rect.html +++ b/typedoc/classes/Rect.html @@ -1,4 +1,4 @@ -Rect | @vladmandic/face-api - v1.7.11
    +Rect | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -403,7 +403,7 @@

    Modules

    diff --git a/typedoc/classes/SsdMobilenetv1.html b/typedoc/classes/SsdMobilenetv1.html index 61c9428..45195a3 100644 --- a/typedoc/classes/SsdMobilenetv1.html +++ b/typedoc/classes/SsdMobilenetv1.html @@ -1,4 +1,4 @@ -SsdMobilenetv1 | @vladmandic/face-api - v1.7.11
    +SsdMobilenetv1 | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -339,7 +339,7 @@

    Modules

    diff --git a/typedoc/classes/SsdMobilenetv1Options.html b/typedoc/classes/SsdMobilenetv1Options.html index 89e5f29..e32a567 100644 --- a/typedoc/classes/SsdMobilenetv1Options.html +++ b/typedoc/classes/SsdMobilenetv1Options.html @@ -1,4 +1,4 @@ -SsdMobilenetv1Options | @vladmandic/face-api - v1.7.11
    +SsdMobilenetv1Options | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -84,7 +84,7 @@

    Modules

    diff --git a/typedoc/classes/TinyFaceDetector.html b/typedoc/classes/TinyFaceDetector.html index e55018d..5fe1753 100644 --- a/typedoc/classes/TinyFaceDetector.html +++ b/typedoc/classes/TinyFaceDetector.html @@ -1,4 +1,4 @@ -TinyFaceDetector | @vladmandic/face-api - v1.7.11
    +TinyFaceDetector | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -440,7 +440,7 @@

    Modules

    diff --git a/typedoc/classes/TinyFaceDetectorOptions.html b/typedoc/classes/TinyFaceDetectorOptions.html index c2bab6d..2705f20 100644 --- a/typedoc/classes/TinyFaceDetectorOptions.html +++ b/typedoc/classes/TinyFaceDetectorOptions.html @@ -1,4 +1,4 @@ -TinyFaceDetectorOptions | @vladmandic/face-api - v1.7.11
    +TinyFaceDetectorOptions | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -89,7 +89,7 @@

    Modules

    diff --git a/typedoc/classes/TinyYolov2.html b/typedoc/classes/TinyYolov2.html index e669ba6..7ba6cba 100644 --- a/typedoc/classes/TinyYolov2.html +++ b/typedoc/classes/TinyYolov2.html @@ -1,4 +1,4 @@ -TinyYolov2 | @vladmandic/face-api - v1.7.11
    +TinyYolov2 | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -454,7 +454,7 @@

    Modules

    diff --git a/typedoc/classes/TinyYolov2Options.html b/typedoc/classes/TinyYolov2Options.html index 411005e..6e7ba15 100644 --- a/typedoc/classes/TinyYolov2Options.html +++ b/typedoc/classes/TinyYolov2Options.html @@ -1,4 +1,4 @@ -TinyYolov2Options | @vladmandic/face-api - v1.7.11
    +TinyYolov2Options | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -86,7 +86,7 @@

    Modules

    diff --git a/typedoc/classes/draw.DrawBox.html b/typedoc/classes/draw.DrawBox.html index 9258fed..70f8359 100644 --- a/typedoc/classes/draw.DrawBox.html +++ b/typedoc/classes/draw.DrawBox.html @@ -1,4 +1,4 @@ -DrawBox | @vladmandic/face-api - v1.7.11
    +DrawBox | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -100,7 +100,7 @@

    Modules

    diff --git a/typedoc/classes/draw.DrawBoxOptions.html b/typedoc/classes/draw.DrawBoxOptions.html index 34d79e9..0736a08 100644 --- a/typedoc/classes/draw.DrawBoxOptions.html +++ b/typedoc/classes/draw.DrawBoxOptions.html @@ -1,4 +1,4 @@ -DrawBoxOptions | @vladmandic/face-api - v1.7.11
    +DrawBoxOptions | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -91,7 +91,7 @@

    Modules

    diff --git a/typedoc/classes/draw.DrawFaceLandmarks.html b/typedoc/classes/draw.DrawFaceLandmarks.html index ee26cb4..3fc5cb5 100644 --- a/typedoc/classes/draw.DrawFaceLandmarks.html +++ b/typedoc/classes/draw.DrawFaceLandmarks.html @@ -1,4 +1,4 @@ -DrawFaceLandmarks | @vladmandic/face-api - v1.7.11
    +DrawFaceLandmarks | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -100,7 +100,7 @@

    Modules

    diff --git a/typedoc/classes/draw.DrawFaceLandmarksOptions.html b/typedoc/classes/draw.DrawFaceLandmarksOptions.html index 1e23061..7452477 100644 --- a/typedoc/classes/draw.DrawFaceLandmarksOptions.html +++ b/typedoc/classes/draw.DrawFaceLandmarksOptions.html @@ -1,4 +1,4 @@ -DrawFaceLandmarksOptions | @vladmandic/face-api - v1.7.11
    +DrawFaceLandmarksOptions | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -103,7 +103,7 @@

    Modules

    diff --git a/typedoc/classes/draw.DrawTextField.html b/typedoc/classes/draw.DrawTextField.html index 9fbf823..72c9bea 100644 --- a/typedoc/classes/draw.DrawTextField.html +++ b/typedoc/classes/draw.DrawTextField.html @@ -1,4 +1,4 @@ -DrawTextField | @vladmandic/face-api - v1.7.11
    +DrawTextField | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -147,7 +147,7 @@

    Modules

    diff --git a/typedoc/classes/draw.DrawTextFieldOptions.html b/typedoc/classes/draw.DrawTextFieldOptions.html index da5b20d..1db8a06 100644 --- a/typedoc/classes/draw.DrawTextFieldOptions.html +++ b/typedoc/classes/draw.DrawTextFieldOptions.html @@ -1,4 +1,4 @@ -DrawTextFieldOptions | @vladmandic/face-api - v1.7.11
    +DrawTextFieldOptions | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -113,7 +113,7 @@

    Modules

    diff --git a/typedoc/enums/Gender.html b/typedoc/enums/Gender.html index 54eef6f..899ebbb 100644 --- a/typedoc/enums/Gender.html +++ b/typedoc/enums/Gender.html @@ -1,4 +1,4 @@ -Gender | @vladmandic/face-api - v1.7.11
    +Gender | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -45,7 +45,7 @@

    Modules

    diff --git a/typedoc/functions/allFacesSsdMobilenetv1.html b/typedoc/functions/allFacesSsdMobilenetv1.html index e52bbd8..25a5c8c 100644 --- a/typedoc/functions/allFacesSsdMobilenetv1.html +++ b/typedoc/functions/allFacesSsdMobilenetv1.html @@ -1,4 +1,4 @@ -allFacesSsdMobilenetv1 | @vladmandic/face-api - v1.7.11
    +allFacesSsdMobilenetv1 | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -45,7 +45,7 @@

    Modules

    diff --git a/typedoc/functions/allFacesTinyYolov2.html b/typedoc/functions/allFacesTinyYolov2.html index 10f01d8..b0bdd8f 100644 --- a/typedoc/functions/allFacesTinyYolov2.html +++ b/typedoc/functions/allFacesTinyYolov2.html @@ -1,4 +1,4 @@ -allFacesTinyYolov2 | @vladmandic/face-api - v1.7.11
    +allFacesTinyYolov2 | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -45,7 +45,7 @@

    Modules

    diff --git a/typedoc/functions/awaitMediaLoaded.html b/typedoc/functions/awaitMediaLoaded.html index 448cc41..4982d67 100644 --- a/typedoc/functions/awaitMediaLoaded.html +++ b/typedoc/functions/awaitMediaLoaded.html @@ -1,4 +1,4 @@ -awaitMediaLoaded | @vladmandic/face-api - v1.7.11
    +awaitMediaLoaded | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/functions/bufferToImage.html b/typedoc/functions/bufferToImage.html index c8ca6ec..cdfc5b1 100644 --- a/typedoc/functions/bufferToImage.html +++ b/typedoc/functions/bufferToImage.html @@ -1,4 +1,4 @@ -bufferToImage | @vladmandic/face-api - v1.7.11
    +bufferToImage | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/functions/computeFaceDescriptor.html b/typedoc/functions/computeFaceDescriptor.html index 1d491e0..78a1d2b 100644 --- a/typedoc/functions/computeFaceDescriptor.html +++ b/typedoc/functions/computeFaceDescriptor.html @@ -1,4 +1,4 @@ -computeFaceDescriptor | @vladmandic/face-api - v1.7.11
    +computeFaceDescriptor | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -50,7 +50,7 @@ face descriptors.

    Modules

    diff --git a/typedoc/functions/createCanvas.html b/typedoc/functions/createCanvas.html index 0553203..ba703e2 100644 --- a/typedoc/functions/createCanvas.html +++ b/typedoc/functions/createCanvas.html @@ -1,4 +1,4 @@ -createCanvas | @vladmandic/face-api - v1.7.11
    +createCanvas | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/functions/createCanvasFromMedia.html b/typedoc/functions/createCanvasFromMedia.html index 7469c2d..3e31012 100644 --- a/typedoc/functions/createCanvasFromMedia.html +++ b/typedoc/functions/createCanvasFromMedia.html @@ -1,4 +1,4 @@ -createCanvasFromMedia | @vladmandic/face-api - v1.7.11
    +createCanvasFromMedia | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -45,7 +45,7 @@

    Modules

    diff --git a/typedoc/functions/createFaceDetectionNet.html b/typedoc/functions/createFaceDetectionNet.html index 079fdfd..758f28d 100644 --- a/typedoc/functions/createFaceDetectionNet.html +++ b/typedoc/functions/createFaceDetectionNet.html @@ -1,4 +1,4 @@ -createFaceDetectionNet | @vladmandic/face-api - v1.7.11
    +createFaceDetectionNet | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -43,7 +43,7 @@

    Modules

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

    Modules

    diff --git a/typedoc/functions/createSsdMobilenetv1.html b/typedoc/functions/createSsdMobilenetv1.html index e98b9ed..2eda649 100644 --- a/typedoc/functions/createSsdMobilenetv1.html +++ b/typedoc/functions/createSsdMobilenetv1.html @@ -1,4 +1,4 @@ -createSsdMobilenetv1 | @vladmandic/face-api - v1.7.11
    +createSsdMobilenetv1 | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/functions/createTinyFaceDetector.html b/typedoc/functions/createTinyFaceDetector.html index cc485da..b6f5bac 100644 --- a/typedoc/functions/createTinyFaceDetector.html +++ b/typedoc/functions/createTinyFaceDetector.html @@ -1,4 +1,4 @@ -createTinyFaceDetector | @vladmandic/face-api - v1.7.11
    +createTinyFaceDetector | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/functions/createTinyYolov2.html b/typedoc/functions/createTinyYolov2.html index 9e2831f..61c03dd 100644 --- a/typedoc/functions/createTinyYolov2.html +++ b/typedoc/functions/createTinyYolov2.html @@ -1,4 +1,4 @@ -createTinyYolov2 | @vladmandic/face-api - v1.7.11
    +createTinyYolov2 | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -45,7 +45,7 @@

    Modules

    diff --git a/typedoc/functions/detectAllFaces.html b/typedoc/functions/detectAllFaces.html index 0c4b755..f2cb736 100644 --- a/typedoc/functions/detectAllFaces.html +++ b/typedoc/functions/detectAllFaces.html @@ -1,4 +1,4 @@ -detectAllFaces | @vladmandic/face-api - v1.7.11
    +detectAllFaces | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -45,7 +45,7 @@

    Modules

    diff --git a/typedoc/functions/detectFaceLandmarks.html b/typedoc/functions/detectFaceLandmarks.html index 69a1ffd..99b6347 100644 --- a/typedoc/functions/detectFaceLandmarks.html +++ b/typedoc/functions/detectFaceLandmarks.html @@ -1,4 +1,4 @@ -detectFaceLandmarks | @vladmandic/face-api - v1.7.11
    +detectFaceLandmarks | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -47,7 +47,7 @@

    Modules

    diff --git a/typedoc/functions/detectFaceLandmarksTiny.html b/typedoc/functions/detectFaceLandmarksTiny.html index 503f7f5..ac35500 100644 --- a/typedoc/functions/detectFaceLandmarksTiny.html +++ b/typedoc/functions/detectFaceLandmarksTiny.html @@ -1,4 +1,4 @@ -detectFaceLandmarksTiny | @vladmandic/face-api - v1.7.11
    +detectFaceLandmarksTiny | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -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 664d87e..ad5b7f5 100644 --- a/typedoc/functions/detectLandmarks.html +++ b/typedoc/functions/detectLandmarks.html @@ -1,4 +1,4 @@ -detectLandmarks | @vladmandic/face-api - v1.7.11
    +detectLandmarks | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -47,7 +47,7 @@

    Modules

    diff --git a/typedoc/functions/detectSingleFace.html b/typedoc/functions/detectSingleFace.html index 8dbcaab..d784119 100644 --- a/typedoc/functions/detectSingleFace.html +++ b/typedoc/functions/detectSingleFace.html @@ -1,4 +1,4 @@ -detectSingleFace | @vladmandic/face-api - v1.7.11
    +detectSingleFace | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -45,7 +45,7 @@

    Modules

    diff --git a/typedoc/functions/draw.drawContour.html b/typedoc/functions/draw.drawContour.html index 7379d72..394a0f5 100644 --- a/typedoc/functions/draw.drawContour.html +++ b/typedoc/functions/draw.drawContour.html @@ -1,4 +1,4 @@ -drawContour | @vladmandic/face-api - v1.7.11
    +drawContour | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -48,7 +48,7 @@

    Modules

    diff --git a/typedoc/functions/draw.drawDetections.html b/typedoc/functions/draw.drawDetections.html index cb5b4aa..c9bdc18 100644 --- a/typedoc/functions/draw.drawDetections.html +++ b/typedoc/functions/draw.drawDetections.html @@ -1,4 +1,4 @@ -drawDetections | @vladmandic/face-api - v1.7.11
    +drawDetections | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -46,7 +46,7 @@

    Modules

    diff --git a/typedoc/functions/draw.drawFaceExpressions.html b/typedoc/functions/draw.drawFaceExpressions.html index 41e65ed..0668ca2 100644 --- a/typedoc/functions/draw.drawFaceExpressions.html +++ b/typedoc/functions/draw.drawFaceExpressions.html @@ -1,4 +1,4 @@ -drawFaceExpressions | @vladmandic/face-api - v1.7.11
    +drawFaceExpressions | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -50,7 +50,7 @@

    Modules

    diff --git a/typedoc/functions/draw.drawFaceLandmarks-1.html b/typedoc/functions/draw.drawFaceLandmarks-1.html index 20f853d..6ce595e 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.11
    +drawFaceLandmarks | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -46,7 +46,7 @@

    Modules

    diff --git a/typedoc/functions/euclideanDistance.html b/typedoc/functions/euclideanDistance.html index 9553fe8..875383a 100644 --- a/typedoc/functions/euclideanDistance.html +++ b/typedoc/functions/euclideanDistance.html @@ -1,4 +1,4 @@ -euclideanDistance | @vladmandic/face-api - v1.7.11
    +euclideanDistance | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -45,7 +45,7 @@

    Modules

    diff --git a/typedoc/functions/extendWithAge.html b/typedoc/functions/extendWithAge.html index b4b83f3..3e4135a 100644 --- a/typedoc/functions/extendWithAge.html +++ b/typedoc/functions/extendWithAge.html @@ -1,4 +1,4 @@ -extendWithAge | @vladmandic/face-api - v1.7.11
    +extendWithAge | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -50,7 +50,7 @@

    Modules

    diff --git a/typedoc/functions/extendWithFaceDescriptor.html b/typedoc/functions/extendWithFaceDescriptor.html index 6965a53..cadb26e 100644 --- a/typedoc/functions/extendWithFaceDescriptor.html +++ b/typedoc/functions/extendWithFaceDescriptor.html @@ -1,4 +1,4 @@ -extendWithFaceDescriptor | @vladmandic/face-api - v1.7.11
    +extendWithFaceDescriptor | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -50,7 +50,7 @@

    Modules

    diff --git a/typedoc/functions/extendWithFaceDetection.html b/typedoc/functions/extendWithFaceDetection.html index b93e8f9..05e0f58 100644 --- a/typedoc/functions/extendWithFaceDetection.html +++ b/typedoc/functions/extendWithFaceDetection.html @@ -1,4 +1,4 @@ -extendWithFaceDetection | @vladmandic/face-api - v1.7.11
    +extendWithFaceDetection | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -50,7 +50,7 @@

    Modules

    diff --git a/typedoc/functions/extendWithFaceExpressions.html b/typedoc/functions/extendWithFaceExpressions.html index dd701a3..9e899fc 100644 --- a/typedoc/functions/extendWithFaceExpressions.html +++ b/typedoc/functions/extendWithFaceExpressions.html @@ -1,4 +1,4 @@ -extendWithFaceExpressions | @vladmandic/face-api - v1.7.11
    +extendWithFaceExpressions | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -50,7 +50,7 @@

    Modules

    diff --git a/typedoc/functions/extendWithFaceLandmarks.html b/typedoc/functions/extendWithFaceLandmarks.html index 9f1c447..9bd3ca9 100644 --- a/typedoc/functions/extendWithFaceLandmarks.html +++ b/typedoc/functions/extendWithFaceLandmarks.html @@ -1,4 +1,4 @@ -extendWithFaceLandmarks | @vladmandic/face-api - v1.7.11
    +extendWithFaceLandmarks | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -52,7 +52,7 @@

    Modules

    diff --git a/typedoc/functions/extendWithGender.html b/typedoc/functions/extendWithGender.html index 7c16ee5..252be0e 100644 --- a/typedoc/functions/extendWithGender.html +++ b/typedoc/functions/extendWithGender.html @@ -1,4 +1,4 @@ -extendWithGender | @vladmandic/face-api - v1.7.11
    +extendWithGender | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -52,7 +52,7 @@

    Modules

    diff --git a/typedoc/functions/extractFaceTensors.html b/typedoc/functions/extractFaceTensors.html index ff9cf90..9d6336e 100644 --- a/typedoc/functions/extractFaceTensors.html +++ b/typedoc/functions/extractFaceTensors.html @@ -1,4 +1,4 @@ -extractFaceTensors | @vladmandic/face-api - v1.7.11
    +extractFaceTensors | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -56,7 +56,7 @@ converting them to tensors individually.

    Modules

    diff --git a/typedoc/functions/extractFaces.html b/typedoc/functions/extractFaces.html index f7129f4..e358b42 100644 --- a/typedoc/functions/extractFaces.html +++ b/typedoc/functions/extractFaces.html @@ -1,4 +1,4 @@ -extractFaces | @vladmandic/face-api - v1.7.11
    +extractFaces | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -53,7 +53,7 @@

    Modules

    diff --git a/typedoc/functions/fetchImage.html b/typedoc/functions/fetchImage.html index 3f665bc..18261d8 100644 --- a/typedoc/functions/fetchImage.html +++ b/typedoc/functions/fetchImage.html @@ -1,4 +1,4 @@ -fetchImage | @vladmandic/face-api - v1.7.11
    +fetchImage | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/functions/fetchJson.html b/typedoc/functions/fetchJson.html index 85e79d0..9c8581a 100644 --- a/typedoc/functions/fetchJson.html +++ b/typedoc/functions/fetchJson.html @@ -1,4 +1,4 @@ -fetchJson | @vladmandic/face-api - v1.7.11
    +fetchJson | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -48,7 +48,7 @@

    Modules

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

    Modules

    diff --git a/typedoc/functions/fetchOrThrow.html b/typedoc/functions/fetchOrThrow.html index 59de6fb..223460b 100644 --- a/typedoc/functions/fetchOrThrow.html +++ b/typedoc/functions/fetchOrThrow.html @@ -1,4 +1,4 @@ -fetchOrThrow | @vladmandic/face-api - v1.7.11
    +fetchOrThrow | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -45,7 +45,7 @@

    Modules

    diff --git a/typedoc/functions/fetchVideo.html b/typedoc/functions/fetchVideo.html index 11d7e95..630df97 100644 --- a/typedoc/functions/fetchVideo.html +++ b/typedoc/functions/fetchVideo.html @@ -1,4 +1,4 @@ -fetchVideo | @vladmandic/face-api - v1.7.11
    +fetchVideo | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -43,7 +43,7 @@

    Modules

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

    Modules

    diff --git a/typedoc/functions/getMediaDimensions.html b/typedoc/functions/getMediaDimensions.html index b5d253e..9aa27da 100644 --- a/typedoc/functions/getMediaDimensions.html +++ b/typedoc/functions/getMediaDimensions.html @@ -1,4 +1,4 @@ -getMediaDimensions | @vladmandic/face-api - v1.7.11
    +getMediaDimensions | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/functions/imageTensorToCanvas.html b/typedoc/functions/imageTensorToCanvas.html index 8d296cc..6f98c96 100644 --- a/typedoc/functions/imageTensorToCanvas.html +++ b/typedoc/functions/imageTensorToCanvas.html @@ -1,4 +1,4 @@ -imageTensorToCanvas | @vladmandic/face-api - v1.7.11
    +imageTensorToCanvas | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -45,7 +45,7 @@

    Modules

    diff --git a/typedoc/functions/imageToSquare.html b/typedoc/functions/imageToSquare.html index 669282d..ef975bb 100644 --- a/typedoc/functions/imageToSquare.html +++ b/typedoc/functions/imageToSquare.html @@ -1,4 +1,4 @@ -imageToSquare | @vladmandic/face-api - v1.7.11
    +imageToSquare | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -47,7 +47,7 @@

    Modules

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

    Modules

    diff --git a/typedoc/functions/iou.html b/typedoc/functions/iou.html index a14b384..4866c6c 100644 --- a/typedoc/functions/iou.html +++ b/typedoc/functions/iou.html @@ -1,4 +1,4 @@ -iou | @vladmandic/face-api - v1.7.11
    +iou | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -47,7 +47,7 @@

    Modules

    diff --git a/typedoc/functions/isMediaElement.html b/typedoc/functions/isMediaElement.html index 68fbdf6..06794ae 100644 --- a/typedoc/functions/isMediaElement.html +++ b/typedoc/functions/isMediaElement.html @@ -1,4 +1,4 @@ -isMediaElement | @vladmandic/face-api - v1.7.11
    +isMediaElement | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/functions/isMediaLoaded.html b/typedoc/functions/isMediaLoaded.html index 657baaf..7e42caa 100644 --- a/typedoc/functions/isMediaLoaded.html +++ b/typedoc/functions/isMediaLoaded.html @@ -1,4 +1,4 @@ -isMediaLoaded | @vladmandic/face-api - v1.7.11
    +isMediaLoaded | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/functions/isWithAge.html b/typedoc/functions/isWithAge.html index fc09ff9..7cbfb4c 100644 --- a/typedoc/functions/isWithAge.html +++ b/typedoc/functions/isWithAge.html @@ -1,4 +1,4 @@ -isWithAge | @vladmandic/face-api - v1.7.11
    +isWithAge | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/functions/isWithFaceDetection.html b/typedoc/functions/isWithFaceDetection.html index 0c09818..d365079 100644 --- a/typedoc/functions/isWithFaceDetection.html +++ b/typedoc/functions/isWithFaceDetection.html @@ -1,4 +1,4 @@ -isWithFaceDetection | @vladmandic/face-api - v1.7.11
    +isWithFaceDetection | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -43,7 +43,7 @@

    Modules

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

    Modules

    diff --git a/typedoc/functions/isWithFaceLandmarks.html b/typedoc/functions/isWithFaceLandmarks.html index b3833e5..782603d 100644 --- a/typedoc/functions/isWithFaceLandmarks.html +++ b/typedoc/functions/isWithFaceLandmarks.html @@ -1,4 +1,4 @@ -isWithFaceLandmarks | @vladmandic/face-api - v1.7.11
    +isWithFaceLandmarks | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/functions/isWithGender.html b/typedoc/functions/isWithGender.html index 31058b1..47912e6 100644 --- a/typedoc/functions/isWithGender.html +++ b/typedoc/functions/isWithGender.html @@ -1,4 +1,4 @@ -isWithGender | @vladmandic/face-api - v1.7.11
    +isWithGender | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/functions/loadAgeGenderModel.html b/typedoc/functions/loadAgeGenderModel.html index a068336..c08f8a3 100644 --- a/typedoc/functions/loadAgeGenderModel.html +++ b/typedoc/functions/loadAgeGenderModel.html @@ -1,4 +1,4 @@ -loadAgeGenderModel | @vladmandic/face-api - v1.7.11
    +loadAgeGenderModel | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/functions/loadFaceDetectionModel.html b/typedoc/functions/loadFaceDetectionModel.html index 1d3a01c..e81861d 100644 --- a/typedoc/functions/loadFaceDetectionModel.html +++ b/typedoc/functions/loadFaceDetectionModel.html @@ -1,4 +1,4 @@ -loadFaceDetectionModel | @vladmandic/face-api - v1.7.11
    +loadFaceDetectionModel | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/functions/loadFaceExpressionModel.html b/typedoc/functions/loadFaceExpressionModel.html index 97178b2..739ec9b 100644 --- a/typedoc/functions/loadFaceExpressionModel.html +++ b/typedoc/functions/loadFaceExpressionModel.html @@ -1,4 +1,4 @@ -loadFaceExpressionModel | @vladmandic/face-api - v1.7.11
    +loadFaceExpressionModel | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/functions/loadFaceLandmarkModel.html b/typedoc/functions/loadFaceLandmarkModel.html index 053d2fc..8676072 100644 --- a/typedoc/functions/loadFaceLandmarkModel.html +++ b/typedoc/functions/loadFaceLandmarkModel.html @@ -1,4 +1,4 @@ -loadFaceLandmarkModel | @vladmandic/face-api - v1.7.11
    +loadFaceLandmarkModel | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/functions/loadFaceLandmarkTinyModel.html b/typedoc/functions/loadFaceLandmarkTinyModel.html index f05279b..178d85d 100644 --- a/typedoc/functions/loadFaceLandmarkTinyModel.html +++ b/typedoc/functions/loadFaceLandmarkTinyModel.html @@ -1,4 +1,4 @@ -loadFaceLandmarkTinyModel | @vladmandic/face-api - v1.7.11
    +loadFaceLandmarkTinyModel | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/functions/loadFaceRecognitionModel.html b/typedoc/functions/loadFaceRecognitionModel.html index bc0bab2..4d93b6f 100644 --- a/typedoc/functions/loadFaceRecognitionModel.html +++ b/typedoc/functions/loadFaceRecognitionModel.html @@ -1,4 +1,4 @@ -loadFaceRecognitionModel | @vladmandic/face-api - v1.7.11
    +loadFaceRecognitionModel | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/functions/loadSsdMobilenetv1Model.html b/typedoc/functions/loadSsdMobilenetv1Model.html index 216b114..fbc39d0 100644 --- a/typedoc/functions/loadSsdMobilenetv1Model.html +++ b/typedoc/functions/loadSsdMobilenetv1Model.html @@ -1,4 +1,4 @@ -loadSsdMobilenetv1Model | @vladmandic/face-api - v1.7.11
    +loadSsdMobilenetv1Model | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/functions/loadTinyFaceDetectorModel.html b/typedoc/functions/loadTinyFaceDetectorModel.html index 3d95c5a..dff2a20 100644 --- a/typedoc/functions/loadTinyFaceDetectorModel.html +++ b/typedoc/functions/loadTinyFaceDetectorModel.html @@ -1,4 +1,4 @@ -loadTinyFaceDetectorModel | @vladmandic/face-api - v1.7.11
    +loadTinyFaceDetectorModel | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/functions/loadTinyYolov2Model.html b/typedoc/functions/loadTinyYolov2Model.html index cd872a0..cf7579c 100644 --- a/typedoc/functions/loadTinyYolov2Model.html +++ b/typedoc/functions/loadTinyYolov2Model.html @@ -1,4 +1,4 @@ -loadTinyYolov2Model | @vladmandic/face-api - v1.7.11
    +loadTinyYolov2Model | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/functions/loadWeightMap.html b/typedoc/functions/loadWeightMap.html index caafffb..6ab20a1 100644 --- a/typedoc/functions/loadWeightMap.html +++ b/typedoc/functions/loadWeightMap.html @@ -1,4 +1,4 @@ -loadWeightMap | @vladmandic/face-api - v1.7.11
    +loadWeightMap | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -45,7 +45,7 @@

    Modules

    diff --git a/typedoc/functions/locateFaces.html b/typedoc/functions/locateFaces.html index 0611509..1728eae 100644 --- a/typedoc/functions/locateFaces.html +++ b/typedoc/functions/locateFaces.html @@ -1,4 +1,4 @@ -locateFaces | @vladmandic/face-api - v1.7.11
    +locateFaces | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -53,7 +53,7 @@

    Modules

    diff --git a/typedoc/functions/matchDimensions.html b/typedoc/functions/matchDimensions.html index 03f2244..e75fa9a 100644 --- a/typedoc/functions/matchDimensions.html +++ b/typedoc/functions/matchDimensions.html @@ -1,4 +1,4 @@ -matchDimensions | @vladmandic/face-api - v1.7.11
    +matchDimensions | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -52,7 +52,7 @@

    Modules

    diff --git a/typedoc/functions/minBbox.html b/typedoc/functions/minBbox.html index a830c97..38f452e 100644 --- a/typedoc/functions/minBbox.html +++ b/typedoc/functions/minBbox.html @@ -1,4 +1,4 @@ -minBbox | @vladmandic/face-api - v1.7.11
    +minBbox | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/functions/nonMaxSuppression.html b/typedoc/functions/nonMaxSuppression.html index 4019641..7faddd8 100644 --- a/typedoc/functions/nonMaxSuppression.html +++ b/typedoc/functions/nonMaxSuppression.html @@ -1,4 +1,4 @@ -nonMaxSuppression | @vladmandic/face-api - v1.7.11
    +nonMaxSuppression | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -49,7 +49,7 @@

    Modules

    diff --git a/typedoc/functions/normalize.html b/typedoc/functions/normalize.html index ae9cc31..9000ba9 100644 --- a/typedoc/functions/normalize.html +++ b/typedoc/functions/normalize.html @@ -1,4 +1,4 @@ -normalize | @vladmandic/face-api - v1.7.11
    +normalize | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -45,7 +45,7 @@

    Modules

    diff --git a/typedoc/functions/padToSquare.html b/typedoc/functions/padToSquare.html index 8a98625..ddad3c2 100644 --- a/typedoc/functions/padToSquare.html +++ b/typedoc/functions/padToSquare.html @@ -1,4 +1,4 @@ -padToSquare | @vladmandic/face-api - v1.7.11
    +padToSquare | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -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 eb62891..0757ab5 100644 --- a/typedoc/functions/predictAgeAndGender.html +++ b/typedoc/functions/predictAgeAndGender.html @@ -1,4 +1,4 @@ -predictAgeAndGender | @vladmandic/face-api - v1.7.11
    +predictAgeAndGender | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -47,7 +47,7 @@

    Modules

    diff --git a/typedoc/functions/recognizeFaceExpressions.html b/typedoc/functions/recognizeFaceExpressions.html index ffeddcc..a21023c 100644 --- a/typedoc/functions/recognizeFaceExpressions.html +++ b/typedoc/functions/recognizeFaceExpressions.html @@ -1,4 +1,4 @@ -recognizeFaceExpressions | @vladmandic/face-api - v1.7.11
    +recognizeFaceExpressions | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -47,7 +47,7 @@

    Modules

    diff --git a/typedoc/functions/resizeResults.html b/typedoc/functions/resizeResults.html index 6a27243..f67e3a2 100644 --- a/typedoc/functions/resizeResults.html +++ b/typedoc/functions/resizeResults.html @@ -1,4 +1,4 @@ -resizeResults | @vladmandic/face-api - v1.7.11
    +resizeResults | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -50,7 +50,7 @@

    Modules

    diff --git a/typedoc/functions/resolveInput.html b/typedoc/functions/resolveInput.html index 2a7e501..1bfe851 100644 --- a/typedoc/functions/resolveInput.html +++ b/typedoc/functions/resolveInput.html @@ -1,4 +1,4 @@ -resolveInput | @vladmandic/face-api - v1.7.11
    +resolveInput | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/functions/shuffleArray.html b/typedoc/functions/shuffleArray.html index e981012..09c4b0a 100644 --- a/typedoc/functions/shuffleArray.html +++ b/typedoc/functions/shuffleArray.html @@ -1,4 +1,4 @@ -shuffleArray | @vladmandic/face-api - v1.7.11
    +shuffleArray | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/functions/sigmoid.html b/typedoc/functions/sigmoid.html index 4c9d652..1b837af 100644 --- a/typedoc/functions/sigmoid.html +++ b/typedoc/functions/sigmoid.html @@ -1,4 +1,4 @@ -sigmoid | @vladmandic/face-api - v1.7.11
    +sigmoid | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/functions/ssdMobilenetv1-1.html b/typedoc/functions/ssdMobilenetv1-1.html index 682e98c..b68c7d7 100644 --- a/typedoc/functions/ssdMobilenetv1-1.html +++ b/typedoc/functions/ssdMobilenetv1-1.html @@ -1,4 +1,4 @@ -ssdMobilenetv1 | @vladmandic/face-api - v1.7.11
    +ssdMobilenetv1 | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -53,7 +53,7 @@

    Modules

    diff --git a/typedoc/functions/tinyFaceDetector-1.html b/typedoc/functions/tinyFaceDetector-1.html index db15e0a..c8839f1 100644 --- a/typedoc/functions/tinyFaceDetector-1.html +++ b/typedoc/functions/tinyFaceDetector-1.html @@ -1,4 +1,4 @@ -tinyFaceDetector | @vladmandic/face-api - v1.7.11
    +tinyFaceDetector | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -53,7 +53,7 @@

    Modules

    diff --git a/typedoc/functions/tinyYolov2-1.html b/typedoc/functions/tinyYolov2-1.html index b2adc18..9851bcf 100644 --- a/typedoc/functions/tinyYolov2-1.html +++ b/typedoc/functions/tinyYolov2-1.html @@ -1,4 +1,4 @@ -tinyYolov2 | @vladmandic/face-api - v1.7.11
    +tinyYolov2 | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -53,7 +53,7 @@

    Modules

    diff --git a/typedoc/functions/toNetInput.html b/typedoc/functions/toNetInput.html index 26d8e71..0ca87a4 100644 --- a/typedoc/functions/toNetInput.html +++ b/typedoc/functions/toNetInput.html @@ -1,4 +1,4 @@ -toNetInput | @vladmandic/face-api - v1.7.11
    +toNetInput | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -48,7 +48,7 @@ to be finished loading.

    Modules

    diff --git a/typedoc/functions/utils.computeReshapedDimensions.html b/typedoc/functions/utils.computeReshapedDimensions.html index 0b67ee0..6c1c75b 100644 --- a/typedoc/functions/utils.computeReshapedDimensions.html +++ b/typedoc/functions/utils.computeReshapedDimensions.html @@ -1,4 +1,4 @@ -computeReshapedDimensions | @vladmandic/face-api - v1.7.11
    +computeReshapedDimensions | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -46,7 +46,7 @@

    Modules

    diff --git a/typedoc/functions/utils.getCenterPoint.html b/typedoc/functions/utils.getCenterPoint.html index 3ef842e..e7cb449 100644 --- a/typedoc/functions/utils.getCenterPoint.html +++ b/typedoc/functions/utils.getCenterPoint.html @@ -1,4 +1,4 @@ -getCenterPoint | @vladmandic/face-api - v1.7.11
    +getCenterPoint | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -44,7 +44,7 @@

    Modules

    diff --git a/typedoc/functions/utils.isDimensions.html b/typedoc/functions/utils.isDimensions.html index 24322c5..dbb19a1 100644 --- a/typedoc/functions/utils.isDimensions.html +++ b/typedoc/functions/utils.isDimensions.html @@ -1,4 +1,4 @@ -isDimensions | @vladmandic/face-api - v1.7.11
    +isDimensions | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -44,7 +44,7 @@

    Modules

    diff --git a/typedoc/functions/utils.isEven.html b/typedoc/functions/utils.isEven.html index 96c8b04..a46482f 100644 --- a/typedoc/functions/utils.isEven.html +++ b/typedoc/functions/utils.isEven.html @@ -1,4 +1,4 @@ -isEven | @vladmandic/face-api - v1.7.11
    +isEven | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -44,7 +44,7 @@

    Modules

    diff --git a/typedoc/functions/utils.isFloat.html b/typedoc/functions/utils.isFloat.html index 819a9c4..b6730ac 100644 --- a/typedoc/functions/utils.isFloat.html +++ b/typedoc/functions/utils.isFloat.html @@ -1,4 +1,4 @@ -isFloat | @vladmandic/face-api - v1.7.11
    +isFloat | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -44,7 +44,7 @@

    Modules

    diff --git a/typedoc/functions/utils.isTensor.html b/typedoc/functions/utils.isTensor.html index 785119b..b7e55db 100644 --- a/typedoc/functions/utils.isTensor.html +++ b/typedoc/functions/utils.isTensor.html @@ -1,4 +1,4 @@ -isTensor | @vladmandic/face-api - v1.7.11
    +isTensor | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -46,7 +46,7 @@

    Modules

    diff --git a/typedoc/functions/utils.isTensor1D.html b/typedoc/functions/utils.isTensor1D.html index 5d53fcb..8b3f48f 100644 --- a/typedoc/functions/utils.isTensor1D.html +++ b/typedoc/functions/utils.isTensor1D.html @@ -1,4 +1,4 @@ -isTensor1D | @vladmandic/face-api - v1.7.11
    +isTensor1D | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -44,7 +44,7 @@

    Modules

    diff --git a/typedoc/functions/utils.isTensor2D.html b/typedoc/functions/utils.isTensor2D.html index d680651..1a796e3 100644 --- a/typedoc/functions/utils.isTensor2D.html +++ b/typedoc/functions/utils.isTensor2D.html @@ -1,4 +1,4 @@ -isTensor2D | @vladmandic/face-api - v1.7.11
    +isTensor2D | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -44,7 +44,7 @@

    Modules

    diff --git a/typedoc/functions/utils.isTensor3D.html b/typedoc/functions/utils.isTensor3D.html index cb142a2..95ea33f 100644 --- a/typedoc/functions/utils.isTensor3D.html +++ b/typedoc/functions/utils.isTensor3D.html @@ -1,4 +1,4 @@ -isTensor3D | @vladmandic/face-api - v1.7.11
    +isTensor3D | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -44,7 +44,7 @@

    Modules

    diff --git a/typedoc/functions/utils.isTensor4D.html b/typedoc/functions/utils.isTensor4D.html index c1c1721..2aa8e91 100644 --- a/typedoc/functions/utils.isTensor4D.html +++ b/typedoc/functions/utils.isTensor4D.html @@ -1,4 +1,4 @@ -isTensor4D | @vladmandic/face-api - v1.7.11
    +isTensor4D | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -44,7 +44,7 @@

    Modules

    diff --git a/typedoc/functions/utils.isValidNumber.html b/typedoc/functions/utils.isValidNumber.html index ac789f3..aca0289 100644 --- a/typedoc/functions/utils.isValidNumber.html +++ b/typedoc/functions/utils.isValidNumber.html @@ -1,4 +1,4 @@ -isValidNumber | @vladmandic/face-api - v1.7.11
    +isValidNumber | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -44,7 +44,7 @@

    Modules

    diff --git a/typedoc/functions/utils.isValidProbablitiy.html b/typedoc/functions/utils.isValidProbablitiy.html index ca3e3d7..6833836 100644 --- a/typedoc/functions/utils.isValidProbablitiy.html +++ b/typedoc/functions/utils.isValidProbablitiy.html @@ -1,4 +1,4 @@ -isValidProbablitiy | @vladmandic/face-api - v1.7.11
    +isValidProbablitiy | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -44,7 +44,7 @@

    Modules

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

    Modules

    diff --git a/typedoc/functions/utils.round.html b/typedoc/functions/utils.round.html index 0014b03..4eca2fb 100644 --- a/typedoc/functions/utils.round.html +++ b/typedoc/functions/utils.round.html @@ -1,4 +1,4 @@ -round | @vladmandic/face-api - v1.7.11
    +round | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -46,7 +46,7 @@

    Modules

    diff --git a/typedoc/functions/validateConfig.html b/typedoc/functions/validateConfig.html index 967d8b0..ec65b51 100644 --- a/typedoc/functions/validateConfig.html +++ b/typedoc/functions/validateConfig.html @@ -1,4 +1,4 @@ -validateConfig | @vladmandic/face-api - v1.7.11
    +validateConfig | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/index.html b/typedoc/index.html index 2b4a709..66d4548 100644 --- a/typedoc/index.html +++ b/typedoc/index.html @@ -1,4 +1,4 @@ -@vladmandic/face-api - v1.7.11
    +@vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    -

    @vladmandic/face-api - v1.7.11

    +

    @vladmandic/face-api - v1.7.12

    @@ -215,7 +215,7 @@

    Modules

    diff --git a/typedoc/interfaces/IBoundingBox.html b/typedoc/interfaces/IBoundingBox.html index 98ccf64..99f1ae4 100644 --- a/typedoc/interfaces/IBoundingBox.html +++ b/typedoc/interfaces/IBoundingBox.html @@ -1,4 +1,4 @@ -IBoundingBox | @vladmandic/face-api - v1.7.11
    +IBoundingBox | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -76,7 +76,7 @@

    Modules

    diff --git a/typedoc/interfaces/IDimensions.html b/typedoc/interfaces/IDimensions.html index bedee6b..df1014f 100644 --- a/typedoc/interfaces/IDimensions.html +++ b/typedoc/interfaces/IDimensions.html @@ -1,4 +1,4 @@ -IDimensions | @vladmandic/face-api - v1.7.11
    +IDimensions | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -63,7 +63,7 @@

    Modules

    diff --git a/typedoc/interfaces/IFaceDetecion.html b/typedoc/interfaces/IFaceDetecion.html index 82031a5..4dade1c 100644 --- a/typedoc/interfaces/IFaceDetecion.html +++ b/typedoc/interfaces/IFaceDetecion.html @@ -1,4 +1,4 @@ -IFaceDetecion | @vladmandic/face-api - v1.7.11
    +IFaceDetecion | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -63,7 +63,7 @@

    Modules

    diff --git a/typedoc/interfaces/IFaceLandmarks.html b/typedoc/interfaces/IFaceLandmarks.html index 49e9fa6..22d3fff 100644 --- a/typedoc/interfaces/IFaceLandmarks.html +++ b/typedoc/interfaces/IFaceLandmarks.html @@ -1,4 +1,4 @@ -IFaceLandmarks | @vladmandic/face-api - v1.7.11
    +IFaceLandmarks | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -63,7 +63,7 @@

    Modules

    diff --git a/typedoc/interfaces/IFaceMatch.html b/typedoc/interfaces/IFaceMatch.html index c0af694..b165e39 100644 --- a/typedoc/interfaces/IFaceMatch.html +++ b/typedoc/interfaces/IFaceMatch.html @@ -1,4 +1,4 @@ -IFaceMatch | @vladmandic/face-api - v1.7.11
    +IFaceMatch | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -63,7 +63,7 @@

    Modules

    diff --git a/typedoc/interfaces/IPoint.html b/typedoc/interfaces/IPoint.html index 14c4979..be2cf4b 100644 --- a/typedoc/interfaces/IPoint.html +++ b/typedoc/interfaces/IPoint.html @@ -1,4 +1,4 @@ -IPoint | @vladmandic/face-api - v1.7.11
    +IPoint | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -63,7 +63,7 @@

    Modules

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

    Modules

    diff --git a/typedoc/interfaces/ISsdMobilenetv1Options.html b/typedoc/interfaces/ISsdMobilenetv1Options.html index 0e9ee42..e363672 100644 --- a/typedoc/interfaces/ISsdMobilenetv1Options.html +++ b/typedoc/interfaces/ISsdMobilenetv1Options.html @@ -1,4 +1,4 @@ -ISsdMobilenetv1Options | @vladmandic/face-api - v1.7.11
    +ISsdMobilenetv1Options | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -59,7 +59,7 @@

    Modules

    diff --git a/typedoc/interfaces/ITinyYolov2Options.html b/typedoc/interfaces/ITinyYolov2Options.html index 3ac8d4f..3685091 100644 --- a/typedoc/interfaces/ITinyYolov2Options.html +++ b/typedoc/interfaces/ITinyYolov2Options.html @@ -1,4 +1,4 @@ -ITinyYolov2Options | @vladmandic/face-api - v1.7.11
    +ITinyYolov2Options | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -59,7 +59,7 @@

    Modules

    diff --git a/typedoc/interfaces/draw.IDrawBoxOptions.html b/typedoc/interfaces/draw.IDrawBoxOptions.html index 993cf25..b735ced 100644 --- a/typedoc/interfaces/draw.IDrawBoxOptions.html +++ b/typedoc/interfaces/draw.IDrawBoxOptions.html @@ -1,4 +1,4 @@ -IDrawBoxOptions | @vladmandic/face-api - v1.7.11
    +IDrawBoxOptions | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -72,7 +72,7 @@

    Modules

    diff --git a/typedoc/interfaces/draw.IDrawFaceLandmarksOptions.html b/typedoc/interfaces/draw.IDrawFaceLandmarksOptions.html index fb2d40f..9afa74b 100644 --- a/typedoc/interfaces/draw.IDrawFaceLandmarksOptions.html +++ b/typedoc/interfaces/draw.IDrawFaceLandmarksOptions.html @@ -1,4 +1,4 @@ -IDrawFaceLandmarksOptions | @vladmandic/face-api - v1.7.11
    +IDrawFaceLandmarksOptions | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -84,7 +84,7 @@

    Modules

    diff --git a/typedoc/interfaces/draw.IDrawTextFieldOptions.html b/typedoc/interfaces/draw.IDrawTextFieldOptions.html index e6b649a..4fbb47f 100644 --- a/typedoc/interfaces/draw.IDrawTextFieldOptions.html +++ b/typedoc/interfaces/draw.IDrawTextFieldOptions.html @@ -1,4 +1,4 @@ -IDrawTextFieldOptions | @vladmandic/face-api - v1.7.11
    +IDrawTextFieldOptions | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -88,7 +88,7 @@

    Modules

    diff --git a/typedoc/modules/draw.html b/typedoc/modules/draw.html index c93e7a8..6b05efa 100644 --- a/typedoc/modules/draw.html +++ b/typedoc/modules/draw.html @@ -1,4 +1,4 @@ -draw | @vladmandic/face-api - v1.7.11
    +draw | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    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 a4490e3..876a2f1 100644 --- a/typedoc/types/BatchNorm.html +++ b/typedoc/types/BatchNorm.html @@ -1,4 +1,4 @@ -BatchNorm | @vladmandic/face-api - v1.7.11
    +BatchNorm | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    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 4b873ae..7552be3 100644 --- a/typedoc/types/ConvWithBatchNorm.html +++ b/typedoc/types/ConvWithBatchNorm.html @@ -1,4 +1,4 @@ -ConvWithBatchNorm | @vladmandic/face-api - v1.7.11
    +ConvWithBatchNorm | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    ConvWithBatchNorm: {
        bn: BatchNorm;
        conv: ConvParams;
    }
    @@ -41,7 +41,7 @@

    Modules

    diff --git a/typedoc/types/DefaultTinyYolov2NetParams.html b/typedoc/types/DefaultTinyYolov2NetParams.html index fd77680..cf47180 100644 --- a/typedoc/types/DefaultTinyYolov2NetParams.html +++ b/typedoc/types/DefaultTinyYolov2NetParams.html @@ -1,4 +1,4 @@ -DefaultTinyYolov2NetParams | @vladmandic/face-api - v1.7.11
    +DefaultTinyYolov2NetParams | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    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 3112aae..7318474 100644 --- a/typedoc/types/Environment.html +++ b/typedoc/types/Environment.html @@ -1,4 +1,4 @@ -Environment | @vladmandic/face-api - v1.7.11
    +Environment | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    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 310f793..cecaad1 100644 --- a/typedoc/types/FaceDetectionOptions.html +++ b/typedoc/types/FaceDetectionOptions.html @@ -1,4 +1,4 @@ -FaceDetectionOptions | @vladmandic/face-api - v1.7.11
    +FaceDetectionOptions | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    FileSystem: {
        readFile: ((filePath: string) => Promise<any>);
    }
    @@ -50,7 +50,7 @@

    Modules

    diff --git a/typedoc/types/ITinyFaceDetectorOptions.html b/typedoc/types/ITinyFaceDetectorOptions.html index 16cebf9..153bc69 100644 --- a/typedoc/types/ITinyFaceDetectorOptions.html +++ b/typedoc/types/ITinyFaceDetectorOptions.html @@ -1,4 +1,4 @@ -ITinyFaceDetectorOptions | @vladmandic/face-api - v1.7.11
    +ITinyFaceDetectorOptions | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    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 2497d52..c71f31d 100644 --- a/typedoc/types/NetOutput.html +++ b/typedoc/types/NetOutput.html @@ -1,4 +1,4 @@ -NetOutput | @vladmandic/face-api - v1.7.11
    +NetOutput | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    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 a1a486f..b9b0770 100644 --- a/typedoc/types/NetParams.html +++ b/typedoc/types/NetParams.html @@ -1,4 +1,4 @@ -NetParams | @vladmandic/face-api - v1.7.11
    +NetParams | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    NetParams: {
        fc: {
            age: FCParams;
            gender: FCParams;
        };
    }
    @@ -44,7 +44,7 @@

    Modules

    diff --git a/typedoc/types/TMediaElement.html b/typedoc/types/TMediaElement.html index 6f2e006..5124ccf 100644 --- a/typedoc/types/TMediaElement.html +++ b/typedoc/types/TMediaElement.html @@ -1,4 +1,4 @@ -TMediaElement | @vladmandic/face-api - v1.7.11
    +TMediaElement | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    TMediaElement: HTMLImageElement | HTMLVideoElement | HTMLCanvasElement
    TNetInput: string | TResolvedNetInput | (string | TResolvedNetInput)[] | NetInput
    TResolvedNetInput: TMediaElement | tf | tf
    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 feb03be..fb6b7b6 100644 --- a/typedoc/types/TinyYolov2NetParams.html +++ b/typedoc/types/TinyYolov2NetParams.html @@ -1,4 +1,4 @@ -TinyYolov2NetParams | @vladmandic/face-api - v1.7.11
    +TinyYolov2NetParams | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    WithAge<TSource>: TSource & {
        age: number;
    }
    @@ -39,7 +39,7 @@

    Modules

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

    Modules

    diff --git a/typedoc/types/WithFaceDetection.html b/typedoc/types/WithFaceDetection.html index 8a4ccf1..6a238be 100644 --- a/typedoc/types/WithFaceDetection.html +++ b/typedoc/types/WithFaceDetection.html @@ -1,4 +1,4 @@ -WithFaceDetection | @vladmandic/face-api - v1.7.11
    +WithFaceDetection | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    WithFaceDetection<TSource>: TSource & {
        detection: FaceDetection;
    }
    @@ -39,7 +39,7 @@

    Modules

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

    Modules

    diff --git a/typedoc/types/WithFaceLandmarks.html b/typedoc/types/WithFaceLandmarks.html index eb9d000..b26eedb 100644 --- a/typedoc/types/WithFaceLandmarks.html +++ b/typedoc/types/WithFaceLandmarks.html @@ -1,4 +1,4 @@ -WithFaceLandmarks | @vladmandic/face-api - v1.7.11
    +WithFaceLandmarks | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12

    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 543236a..4fa8283 100644 --- a/typedoc/types/WithGender.html +++ b/typedoc/types/WithGender.html @@ -1,4 +1,4 @@ -WithGender | @vladmandic/face-api - v1.7.11
    +WithGender | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    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 8ccc3f6..4dc395c 100644 --- a/typedoc/types/draw.DrawFaceExpressionsInput.html +++ b/typedoc/types/draw.DrawFaceExpressionsInput.html @@ -1,4 +1,4 @@ -DrawFaceExpressionsInput | @vladmandic/face-api - v1.7.11
    +DrawFaceExpressionsInput | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -35,7 +35,7 @@

    Modules

    diff --git a/typedoc/types/draw.DrawFaceLandmarksInput.html b/typedoc/types/draw.DrawFaceLandmarksInput.html index a3dd0d8..857fa18 100644 --- a/typedoc/types/draw.DrawFaceLandmarksInput.html +++ b/typedoc/types/draw.DrawFaceLandmarksInput.html @@ -1,4 +1,4 @@ -DrawFaceLandmarksInput | @vladmandic/face-api - v1.7.11
    +DrawFaceLandmarksInput | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -35,7 +35,7 @@

    Modules

    diff --git a/typedoc/types/draw.TDrawDetectionsInput.html b/typedoc/types/draw.TDrawDetectionsInput.html index 962d257..2d932b9 100644 --- a/typedoc/types/draw.TDrawDetectionsInput.html +++ b/typedoc/types/draw.TDrawDetectionsInput.html @@ -1,4 +1,4 @@ -TDrawDetectionsInput | @vladmandic/face-api - v1.7.11
    +TDrawDetectionsInput | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    @@ -35,7 +35,7 @@

    Modules

    diff --git a/typedoc/variables/FACE_EXPRESSION_LABELS.html b/typedoc/variables/FACE_EXPRESSION_LABELS.html index 7f73c5a..f876317 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.11
    +FACE_EXPRESSION_LABELS | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    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 d1560f8..1804b49 100644 --- a/typedoc/variables/nets.html +++ b/typedoc/variables/nets.html @@ -1,4 +1,4 @@ -nets | @vladmandic/face-api - v1.7.11
    +nets | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    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 7d1b176..a66aa12 100644 --- a/typedoc/variables/version.html +++ b/typedoc/variables/version.html @@ -1,4 +1,4 @@ -version | @vladmandic/face-api - v1.7.11
    +version | @vladmandic/face-api - v1.7.12
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.11
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.12
    version: string = ...