diff --git a/assets/index.bbe9be11.js b/assets/index.bbe9be11.js new file mode 100644 index 0000000..6019497 --- /dev/null +++ b/assets/index.bbe9be11.js @@ -0,0 +1,7 @@ +var Mt=Object.defineProperty;var It=(t,e,r)=>e in t?Mt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var u=(t,e,r)=>(It(t,typeof e!="symbol"?e+"":e,r),r);import{f as p,c as ke,p as Le,v as pe,a as Tt,b as oe,g as Rt,s as Pt,d as Nt,l as $,e as At,h as Ot,u as _t,i as A,j as x,k as l,r as o,F as D,S as Ft,P as Bt,m as Dt,X as Wt,_ as De,n as Ht,o as Xt,q as We,t as Vt,w as Yt,x as Gt,R as jt}from"./vendor.ec2365ba.js";(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const n of document.querySelectorAll('link[rel="modulepreload"]'))a(n);new MutationObserver(n=>{for(const s of n)if(s.type==="childList")for(const i of s.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&a(i)}).observe(document,{childList:!0,subtree:!0});function r(n){const s={};return n.integrity&&(s.integrity=n.integrity),n.referrerpolicy&&(s.referrerPolicy=n.referrerpolicy),n.crossorigin==="use-credentials"?s.credentials="include":n.crossorigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function a(n){if(n.ep)return;n.ep=!0;const s=r(n);fetch(n.href,s)}})();const re=(t,e)=>Math.floor(Math.random()*(e-t+1))+t,de=t=>t&&typeof t=="string"?`/paint-board/${t}`:"",Ne=(t,e)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2)),st=()=>/phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone|Mobi|Android|iPhone|iPad/i.test(navigator.userAgent);let Me=!1,ve=st();class zt{constructor(){u(this,"canvas",null)}initCanvas(e){this.canvas=e,this._initBrushMouse()}_initBrushMouse(){p.fabric.util.object.extend(this.canvas,{_onMouseDownInDrawingMode:function(){},_onMouseMoveInDrawingMode:function(e){ve||(Me?p.fabric.Canvas.prototype._onMouseMoveInDrawingMode.call(this,e):(Me=!0,p.fabric.Canvas.prototype._onMouseDownInDrawingMode.call(this,e)))},_onMouseUpInDrawingMode:function(e){ve||(Me=!1,p.fabric.Canvas.prototype._onMouseUpInDrawingMode.call(this,e))}})}updateIsDisableDraw(e){ve=e}}const ot=new zt;class Ut{constructor(){u(this,"openAlignGuideLine",!0)}updateOpenState(e){this.openAlignGuideLine=e}init(e,r){const a=e.getSelectionContext(),n=5,s=4,i=1,d="rgb(102, 204, 138)";let h,g=1;this.openAlignGuideLine=r;function f(w){R(w.x+.5,w.y1>w.y2?w.y2:w.y1,w.x+.5,w.y2>w.y1?w.y2:w.y1)}function v(w){R(w.x1>w.x2?w.x2:w.x1,w.y+.5,w.x2>w.x1?w.x2:w.x1,w.y+.5)}function R(w,C,M,I){h!=null&&(a.save(),a.lineWidth=i,a.strokeStyle=d,a.beginPath(),a.moveTo(w*g+h[4],C*g+h[5]),a.lineTo(M*g+h[4],I*g+h[5]),a.stroke(),a.restore())}function k(w,C){w=Math.round(w),C=Math.round(C);for(let M=w-s,I=w+s;M<=I;M++)if(M===C)return!0;return!1}const S=[],b=[];e.on("mouse:down",()=>{h=e.viewportTransform,g=e.getZoom()}),e.on("object:moving",w=>{if(h===void 0||w.target===void 0||!this.openAlignGuideLine)return;const C=w.target,M=e.getObjects(),I=C.getCenterPoint(),L=I.x,y=I.y,z=C.getBoundingRect(),B=z.height/h[3],j=z.width/h[0];let K=!1,se=!1;if(!!e._currentTransform){for(let xe=M.length;xe--;){if(M[xe]===C)continue;const Fe=M[xe].getCenterPoint(),W=Fe.x,H=Fe.y,Be=M[xe].getBoundingRect(),Q=Be.height/h[3],ee=Be.width/h[0];k(W,L)&&(se=!0,S.push({x:W,y1:HH?y+B/2+n:y-B/2-n}),C.setPositionByOrigin(new p.fabric.Point(W,y),"center","center")),k(W-ee/2,L-j/2)&&(se=!0,S.push({x:W-ee/2,y1:HH?y+B/2+n:y-B/2-n}),C.setPositionByOrigin(new p.fabric.Point(W-ee/2+j/2,y),"center","center")),k(W+ee/2,L+j/2)&&(se=!0,S.push({x:W+ee/2,y1:HH?y+B/2+n:y-B/2-n}),C.setPositionByOrigin(new p.fabric.Point(W+ee/2-j/2,y),"center","center")),k(H,y)&&(K=!0,b.push({y:H,x1:WW?L+j/2+n:L-j/2-n}),C.setPositionByOrigin(new p.fabric.Point(L,H),"center","center")),k(H-Q/2,y-B/2)&&(K=!0,b.push({y:H-Q/2,x1:WW?L+j/2+n:L-j/2-n}),C.setPositionByOrigin(new p.fabric.Point(L,H-Q/2+B/2),"center","center")),k(H+Q/2,y+B/2)&&(K=!0,b.push({y:H+Q/2,x1:WW?L+j/2+n:L-j/2-n}),C.setPositionByOrigin(new p.fabric.Point(L,H+Q/2-B/2),"center","center"))}K||(b.length=0),se||(S.length=0)}}),e.on("before:render",()=>{try{e.clearContext(e.contextTop)}catch(w){console.log(w)}}),e.on("after:render",()=>{for(let w=S.length;w--;)f(S[w]);for(let w=b.length;w--;)v(b[w]);S.length=0,b.length=0}),e.on("mouse:up",()=>{S.length=0,b.length=0,e.renderAll()})}}const it=new Ut,F={DRAW:"draw",ERASE:"erase",SELECT:"select",Board:"board"},Zt={IMAGE:"image",I_TEXT:"itext",RAINBOW:"rainbow",SHAPE:"shape",PIXELS:"pixels",DRAW_TEXT:"drawText",MULTI_LINE:"multiLine",RETICULATE:"reticulate",MULTI_POINT:"multiPoint",WIGGLE:"wiggle",THORN:"thorn"},Ae={SHAPE_LINE:"shapeLine",SHAPE_RECT:"shapeRect",SHAPE_CIRCLE:"shapeCircle",SHAPE_ELLIPSE:"shapeEllipse",SHAPE_TRIANGLE:"shapeTriangle",SHAPE_ARROW_LINE:"shapeArrowLine",SHAPE_ARROW_OUTLINE:"shapeArrowOutline",SHAPE_CLOUD:"shapeCloud",SHAPE_TOOLTIPS:"shapeTooltips",SHAPE_LIGHTNING:"shapeLightning",SHAPE_CLOSE:"shapeClose",SHAPE_CHECK:"shapeCheck",SHAPE_INFO:"shapeInfo",SHAPE_BACKSPACE:"shapeBackspace",SHAPE_BLOCK:"shapeBlock",SHAPE_SPEAKER:"shapeSpeaker",SHAPE_SEARCH:"shapeSearch",SHAPE_INFO_OUTLINE:"shapeInfoOutline",SHAPE_HEART:"shapeHeart",SHAPE_ALERT:"shapeAlert"},P={...Zt,...Ae},ce={FreeStyle:"freeStyle",Shape:"shape"},E={Basic:"basic",Rainbow:"rainbow",Shape:"shape",Material:"material",Pixels:"pixels",MultiColor:"multiColor",Text:"text",MultiLine:"multiLine",Reticulate:"reticulate",MultiPoint:"multiPoint",Wiggle:"wiggle",Thorn:"thorn"},V={Bubble:"bubble",Star:"star",Love:"love",Butterfly:"butterfly",Snow:"snow",Music:"music",Sun:"sun",Moon:"moon",Leaf:"leaf",Flower:"flower"};function He(t,e=1){const r=parseInt(t.slice(1),16),a=r>>16&255,n=r>>8&255,s=r&255;return`rgba(${a}, ${n}, ${s}, ${e})`}function $t(t){if(!t)return t;const e=t.match(/\d+/g);return`#${((1<<24)+(parseInt(e[0])<<16)+(parseInt(e[1])<<8)+parseInt(e[2])).toString(16).slice(1)}`}function Xe(t){const e=t.match(/rgba?\((\d+),\s*(\d+),\s*(\d+),\s*([\d.]+)\)/);return e?parseFloat(e[4]):1}function qt(t,e){const r=t.match(/rgba?\((.*?)\)/);if(!r)return t;const a=r[1].split(",").map(s=>s.trim());return e=Math.min(1,Math.max(0,e)),`rgba(${a[0]}, ${a[1]}, ${a[2]}, ${e})`}function Kt(t){return/^#([0-9A-Fa-f]{3}){1,2}$/.test(t)}function Jt(t){return/^rgba?\((\d+,\s*){2}\d+,\s*(0(\.\d+)?|1(\.0)?)\)$/.test(t)}function Qt(t){return Kt(t)?"hex":Jt(t)?"rgba":"unknown"}const ue=(t=!0)=>{var r,a;const e=(r=c==null?void 0:c.canvas)==null?void 0:r.backgroundImage;e&&(ct(e),t&&((a=c.canvas)==null||a.requestRenderAll()))},er=t=>{const e=c.canvas;!e||p.fabric.Image.fromURL(t,r=>{ct(r),e.setBackgroundImage(r,()=>{c.render()})},{crossOrigin:"anonymous"})},ct=t=>{const e=c==null?void 0:c.canvas;if(!e)return;const r=e.getWidth(),a=e.getHeight(),n=t.width,s=t.height,i=r/n,d=a/s,h=Math.min(i,d);t.scale(h);const g=r/2-n*h/2,f=a/2-s*h/2;t.set({left:g,top:f,originX:"left",originY:"top",opacity:N.getState().backgroundImageOpacity})},tr=["en","en-US","en-us"].includes(navigator.language)?"en":"zh",N=ke()(Le((t,e)=>({mode:F.DRAW,drawType:ce.FreeStyle,language:tr,canvasWidth:1,canvasHeight:1,backgroundColor:"rgba(255, 255, 255, 1)",backgroundOpacity:1,hasBackgroundImage:!1,backgroundImageOpacity:1,isObjectCaching:!0,openGuideLine:!1,updateMode:r=>{e().mode!==r&&(c.handleMode(r),t({mode:r}))},updateDrawType:r=>{e().drawType!==r&&(t({drawType:r}),c.handleMode())},updateLanguage(r){t({language:r})},initBackground:()=>{var n,s;const r=(n=c==null?void 0:c.canvas)==null?void 0:n.backgroundColor;if(r&&typeof r=="string"){const i=Qt(r);if(i==="hex"){const d=He(r),h=Xe(d);t({backgroundColor:d,backgroundOpacity:h})}else if(i==="rgba"){const d=Xe(r);t({backgroundColor:r,backgroundOpacity:d})}}else c!=null&&c.canvas&&(c.canvas.backgroundColor="rgba(255, 255, 255, 1)",t({backgroundColor:"rgba(255, 255, 255, 1)",backgroundOpacity:1}));const a=(s=c==null?void 0:c.canvas)==null?void 0:s.backgroundImage;a?(ue(),t({hasBackgroundImage:!0,backgroundOpacity:a.opacity})):t({hasBackgroundImage:!1,backgroundOpacity:1})},updateCanvasWidth:r=>{e().canvasWidth!==r&&(t({canvasWidth:r}),c.updateCanvasWidth(r))},updateCanvasHeight:r=>{e().canvasHeight!==r&&(t({canvasHeight:r}),c.updateCanvasHeight(r))},updateBackgroundColor:r=>{const a=c.canvas;a&&r!==(a==null?void 0:a.backgroundColor)&&t(n=>{const s=He(r,n.backgroundOpacity);return a.backgroundColor=s,{backgroundColor:s}})},updateBackgroundOpacity:r=>{t(a=>{const n=c.canvas;if(n&&r!==a.backgroundOpacity){const s=qt(a.backgroundColor,r);return n.backgroundColor=s,{backgroundOpacity:r,backgroundColor:s}}return{}})},updateBackgroundImage:r=>{const a=c.canvas,n=a==null?void 0:a.backgroundImage;a&&r!==(n==null?void 0:n.src)&&(er(r),t({hasBackgroundImage:!0}))},cleanBackgroundImage:()=>{t({hasBackgroundImage:!1});const r=c.canvas;r&&r.setBackgroundImage(null,()=>{c.render()})},updateBackgroundImageOpacity:r=>{t(a=>{const n=c.canvas;if(n&&r!==a.backgroundImageOpacity){const s=n==null?void 0:n.backgroundImage;return s&&s.set({opacity:r}),{backgroundImageOpacity:r}}return{}})},updateCacheState(){var a;const r=e().isObjectCaching;t({isObjectCaching:!r}),p.fabric.Object.prototype.set({objectCaching:N.getState().isObjectCaching}),(a=c==null?void 0:c.canvas)==null||a.renderAll()},updateOpenGuideLine(){const r=!e().openGuideLine;t({openGuideLine:r}),it.updateOpenState(r)}}),{name:"PAINT-BOARD-STORE"})),rr={getItem:async t=>await Rt(t)||null,setItem:async(t,e)=>{await Pt(t,e)},removeItem:async t=>{await Nt(t)}},Ve=pe(),Ce="1.5.1",te=ke()(Le((t,e)=>({currentId:Ve,files:[{id:Ve,title:"paint-board",boardVersion:Ce,boardData:{},zoom:1,canvasWidth:1,canvasHeight:1}],updateCurrentFile(r){const a=e().currentId;r!==a&&t({currentId:r})},updateTitle(r,a){var i;const n=e().files,s=n==null?void 0:n.findIndex(d=>d.id===a);((i=n==null?void 0:n[s])==null?void 0:i.title)!==r&&t(oe(d=>{d.files[s].title=r}))},updateBoardData(r){const a=e().files,n=a==null?void 0:a.findIndex(s=>s.id===e().currentId);t(oe(s=>{s.files[n].boardVersion=Ce,s.files[n].boardData=r}))},updateZoom(r){const a=e().files,n=a==null?void 0:a.findIndex(s=>s.id===e().currentId);n>-1&&t(oe(s=>{s.files[n].zoom=r}))},updateTransform(r){const a=e().files,n=a==null?void 0:a.findIndex(s=>s.id===e().currentId);n>-1&&t(oe(s=>{s.files[n].viewportTransform=r}))},updateCanvasWidth(r){const a=e().files,n=a==null?void 0:a.findIndex(s=>s.id===e().currentId);n>-1&&t(oe(s=>{s.files[n].canvasWidth=r}))},updateCanvasHeight(r){const a=e().files,n=a==null?void 0:a.findIndex(s=>s.id===e().currentId);n>-1&&t(oe(s=>{s.files[n].canvasHeight=r}))},addFile(){const r=pe();t(oe(a=>{a.files.unshift({id:r,title:"empty title",boardVersion:Ce,boardData:{},zoom:1,canvasWidth:N.getState().canvasWidth,canvasHeight:N.getState().canvasHeight})}))},deleteFile(){const r=e().files;if(r.length>1){const a=r==null?void 0:r.findIndex(n=>n.id===e().currentId);t(oe(n=>{n.files.splice(a,1),n.currentId=n.files[0].id}))}},saveJSON(){var a;const r=(a=e().files)==null?void 0:a.find(n=>n.id===e().currentId);if(r){const n=JSON.stringify(r),s=new Blob([n],{type:"application/json"}),i=document.createElement("a");i.href=URL.createObjectURL(s),i.download="paint-board.json",i.click(),URL.revokeObjectURL(i.href)}},uploadFile(r){return new Promise(a=>{if(r){const n=new FileReader;n.onload=s=>{var h;const i=(h=s.target)==null?void 0:h.result;let d=!1;if(i){const g=JSON.parse(i);if((g==null?void 0:g.boardData)&&(g==null?void 0:g.title)){const f=pe();t(oe(v=>{v.files.unshift({id:f,title:g==null?void 0:g.title,boardVersion:(g==null?void 0:g.boardVersion)||Ce,boardData:g==null?void 0:g.boardData,canvasWidth:(g==null?void 0:g.canvasWidth)||1,canvasHeight:(g==null?void 0:g.canvasHeight)||1}),v.currentId=v.files[0].id})),d=!0}}a(d)},n.onerror=s=>{console.log("reader fail",s),a(!1)},n.readAsText(r)}else a(!1)})}}),{name:"PAINT-BOARD-FILES",storage:Tt(()=>rr)}));function lt(t){const e=new p.fabric.Point(t.strokeUniform?1/t.scaleX:1,t.strokeUniform?1/t.scaleY:1).multiply(t.strokeWidth);return new p.fabric.Point(t.width+e.x,t.height+e.y)}const dt=function(t,e,r){var i;const a=r.points,n=a[this.pointIndex].x-r.pathOffset.x,s=a[this.pointIndex].y-r.pathOffset.y;return p.fabric.util.transformPoint({x:n,y:s},p.fabric.util.multiplyTransformMatrices((i=r.canvas)==null?void 0:i.viewportTransform,r.calcTransformMatrix()))},ht=function(t,e,r,a){const n=e.target,s=n.controls[n.__corner],i=n.toLocalPoint(new p.fabric.Point(r,a),"center","center"),d=lt(n),h=n._getTransformedDimensions(0,0),g={x:i.x*d.x/h.x+n.pathOffset.x,y:i.y*d.y/h.y+n.pathOffset.y},f=n.points;return f[s.pointIndex]=g,!0};function pt(t,e){return function(r,a,n,s){const i=a.target,d=i.points,h=p.fabric.util.transformPoint({x:d[t].x-i.pathOffset.x,y:d[t].y-i.pathOffset.y},i.calcTransformMatrix()),g=e(r,a,n,s);i._setPositionDimensions({});const f=lt(i),v=(d[t].x-i.pathOffset.x)/f.x,R=(d[t].y-i.pathOffset.y)/f.y;return i.setPositionByOrigin(h,v+.5,R+.5),g}}function ut(t,e,r,a,n){const s=Math.atan2(n-r,a-e),i=10,d=a-i*Math.cos(s-Math.PI/6),h=n-i*Math.sin(s-Math.PI/6),g=a-i*Math.cos(s+Math.PI/6),f=n-i*Math.sin(s+Math.PI/6);return t[t.length-4][1]=a,t[t.length-4][2]=n,t[t.length-3][1]=d,t[t.length-3][2]=h,t[t.length-2][1]=a,t[t.length-2][2]=n,t[t.length-1][1]=g,t[t.length-1][2]=f,t}function gt(t){const e=new p.fabric.Point(t.strokeUniform?1/t.scaleX:1,t.strokeUniform?1/t.scaleY:1).multiply(t.strokeWidth);return new p.fabric.Point(t.width+e.x,t.height+e.y)}const mt=function(t,e,r){var i;const a=r.path,n=a[this.pointIndex][1]-r.pathOffset.x,s=a[this.pointIndex][2]-r.pathOffset.y;return p.fabric.util.transformPoint({x:n,y:s},p.fabric.util.multiplyTransformMatrices((i=r.canvas)==null?void 0:i.viewportTransform,r.calcTransformMatrix()))},ft=function(t,e,r,a){const n=e.target,s=n.controls[n.__corner],i=n.toLocalPoint(new p.fabric.Point(r,a),"center","center"),d=gt(n),h=n._getTransformedDimensions(0,0),g={x:i.x*d.x/h.x+n.pathOffset.x,y:i.y*d.y/h.y+n.pathOffset.y},f=n.path;if(f[s.pointIndex][1]=g.x,f[s.pointIndex][2]=g.y,s.pointIndex===(f==null?void 0:f.length)-5||s.pointIndex===(f==null?void 0:f.length)-6){const v=f[f.length-6],R=f[f.length-5],k=ut(f,v[1],v[2],R[1],R[2]);n._setPath(k)}return!0};function wt(t,e){return function(r,a,n,s){const i=a.target,d=i.path,h=p.fabric.util.transformPoint({x:d[t][1]-i.pathOffset.x,y:d[t][2]-i.pathOffset.y},i.calcTransformMatrix()),g=e(r,a,n,s);i._setPath(i.path);const f=gt(i),v=(d[t][1]-i.pathOffset.x)/f.x,R=(d[t][2]-i.pathOffset.y)/f.y;return i.setPositionByOrigin(h,v+.5,R+.5),g}}const Ie=()=>{var e;const t=c==null?void 0:c.canvas;return t?(e=t.toDatalessJSON(["id","_customType","perPixelTargetFind","objectCaching"]))!=null?e:{}:{}},Te=t=>{t.getObjects().forEach(e=>{if(e._customType===P.SHAPE_LINE){const r=e.points,a=r.length-1;e.controls=r.reduce(function(n,s,i){return n["p"+i]=new p.fabric.Control({positionHandler:dt,actionHandler:pt(i>0?i-1:a,ht),actionName:"polylineEndPoint",pointIndex:i}),n},{})}if(e._customType===P.SHAPE_ARROW_LINE){const r=e.path;e.controls=r.slice(0,r.length-4).reduce(function(a,n,s){return a["p"+s]=new p.fabric.Control({positionHandler:mt,actionHandler:wt(s>0?s-1:r.length-5,ft),actionName:"pathEndPoint",pointIndex:s}),a},{})}})},ar={};class nr{constructor(){u(this,"diffs",[]);u(this,"canvasData",{});u(this,"index",0);if(c.canvas){const r=Ie();this.canvasData=$.exports.cloneDeep(r!=null?r:{})}}saveState(){if(c==null?void 0:c.canvas){this.diffs=this.diffs.slice(0,this.index);const r=Ie(),a=At(r,this.canvasData);this.diffs.push(a),this.diffs.length>50?this.diffs.shift():this.index++,this.canvasData=$.exports.cloneDeep(r!=null?r:{}),te.getState().updateBoardData(r)}}undo(){const e=c==null?void 0:c.canvas;if(e&&this.index>0){const r=this.diffs[this.index-1];this.index--;const a=Ot(this.canvasData,r);e.loadFromJSON(a,()=>{Te(e),e.requestRenderAll(),te.getState().updateBoardData(a),this.canvasData=$.exports.cloneDeep(a!=null?a:{}),c.triggerHook(),r!=null&&r.backgroundImage&&ue()})}}redo(){const e=c==null?void 0:c.canvas;if(this.index{Te(e),e.requestRenderAll(),te.getState().updateBoardData(a),this.canvasData=$.exports.cloneDeep(a!=null?a:{}),c.triggerHook(),r!=null&&r.backgroundImage&&ue()})}}clean(){var e;(e=c==null?void 0:c.canvas)==null||e.clear(),this.index=0,this.diffs=[],this.canvasData={},te.getState().updateBoardData(ar),N.getState().updateBackgroundColor("#ffffff"),N.getState().cleanBackgroundImage()}initHistory(){if(c.canvas){const r=Ie();this.canvasData=r,this.index=0,this.diffs=[]}}}const T={Line:"line",Rect:"rect",Circle:"cricle",Ellipse:"ellipse",Triangle:"triangle",ArrowLine:"arrowLine",ArrowOutline:"arrowOutline",Cloud:"cloud",Tooltips:"tooltips",Lightning:"lightning",Close:"close",Check:"check",Info:"info",Backspace:"backspace",Block:"block",Speaker:"speaker",Search:"search",InfoOutline:"infoOutline",Heart:"heart",Alert:"alert"},J={Solid:"solid",Dashed:"dashed",Dotted:"dotted"},ie={Transparent:"transparent",Full:"full"},fe=t=>{var e,r;return(t!=null?t:m.getState().drawWidth)/((r=(e=c.canvas)==null?void 0:e.getZoom())!=null?r:1)},Oe=t=>{var e,r;return(t!=null?t:m.getState().eraserWidth)/((r=(e=c.canvas)==null?void 0:e.getZoom())!=null?r:1)},we=t=>{var e,r;return(t!=null?t:m.getState().shadowWidth)/((r=(e=c.canvas)==null?void 0:e.getZoom())!=null?r:1)},_=(t,e)=>{const r=pe();t.set({id:r,_customType:e})},X={CRAYON:"crayon",CARBON:"carbon",CLOTH:"cloth",OIL:"oil",CRAYON_DARK:"crayonDark"};class sr{constructor(){u(this,"initPromise",null);u(this,"crayonImage",null);u(this,"carbonImage",null);u(this,"clothImage",null);u(this,"oilImage",null);u(this,"crayonDarkImage",null);this.initMaterial()}async initMaterial(){this.initPromise=Promise.all([this.loadImage(X.CRAYON),this.loadImage(X.CARBON),this.loadImage(X.CLOTH),this.loadImage(X.OIL),this.loadImage(X.CRAYON_DARK)])}render({materialType:e=m.getState().materialType,color:r=m.getState().drawColors[0]}){var a;(a=this.initPromise)==null||a.then(()=>{switch(e){case X.CRAYON:this.renderMaterial(this.crayonImage,r);break;case X.CARBON:this.renderMaterial(this.carbonImage,r);break;case X.CLOTH:this.renderMaterial(this.clothImage,r);break;case X.OIL:this.renderMaterial(this.oilImage,r);break;case X.CRAYON_DARK:this.renderMaterial(this.crayonDarkImage,r);break}})}renderMaterial(e,r,a=1){if(c.canvas){const n=new p.fabric.PatternBrush(c.canvas),s=document.createElement("canvas");s.width=s.height=100;const i=s.getContext("2d");i&&(i.fillStyle=r,i.fillRect(0,0,100,100),e&&(i.globalAlpha=a,i.drawImage(e,0,0,100,100))),n.getPatternSrc=()=>s,n.getPatternSrcFunction=()=>s,c.canvas.freeDrawingBrush=n,c.canvas.freeDrawingBrush.width=fe(),c.canvas.freeDrawingBrush.shadow=new p.fabric.Shadow({blur:we(),offsetX:0,offsetY:0,color:m.getState().shadowColor})}}loadImage(e){return new Promise(r=>{const a=new Image;a.src=de(`pattern/${e}.png`),a.onload=()=>{switch(e){case X.CARBON:this.carbonImage=a;break;case X.CRAYON:this.crayonImage=a;break;case X.CLOTH:this.clothImage=a;break;case X.OIL:this.oilImage=a;break;case X.CRAYON_DARK:this.crayonDarkImage=a;break}r(!0)},a.onerror=()=>{r(!1)}})}}const Re=new sr,he=5,ne={COL:"col",ROW:"row",CIRCLE:"circle"},Pe=t=>{var d,h;const e=c.canvas;if(!e)return;const r=(d=t==null?void 0:t.colors)!=null?d:m.getState().drawColors,a=(h=t==null?void 0:t.type)!=null?h:m.getState().multiColorType,n=new p.fabric.PatternBrush(e),s=document.createElement("canvas"),i=s.getContext("2d");if(i){switch(a){case ne.COL:or(s,i,r);break;case ne.ROW:ir(s,i,r);break;case ne.CIRCLE:cr(s,i,r);break}n.getPatternSrc=()=>s,n.getPatternSrcFunction=()=>s,e.isDrawingMode=!0,e.freeDrawingBrush=n,e.freeDrawingBrush.width=fe(),e.freeDrawingBrush.shadow=new p.fabric.Shadow({blur:we(),offsetX:0,offsetY:0,color:m.getState().shadowColor})}};function or(t,e,r){t.width=he*r.length,t.height=20,r.forEach((a,n)=>{e.fillStyle=a,e.fillRect(he*n,0,he,20)})}function ir(t,e,r){t.width=20,t.height=he*r.length,r.forEach((a,n)=>{e.fillStyle=a,e.fillRect(0,he*n,20,he)})}function cr(t,e,r){const s=r.length,i=2*5+s*10*2+(s-1)*5;t.width=i,t.height=10*2+2*5;let d=5+10;const h=5+10;for(let g=0;g({drawWidth:10,drawColors:["#000000"],shadowWidth:0,shadowColor:"#000000",drawTextValue:"draw",drawStyle:E.Basic,drawShapeCount:2,materialType:X.CRAYON,drawShape:V.Bubble,eraserWidth:20,multiColorType:ne.COL,textFontFamily:"Georgia",fontStyles:[],updateDrawWidth(r){e().drawWidth!==r&&c.canvas&&(c.canvas.freeDrawingBrush.width=fe(r),t({drawWidth:r}))},updateDrawColors:r=>{t(a=>{switch(a.drawStyle){case E.Basic:c.canvas&&(c.canvas.freeDrawingBrush.color=r[0]);break;case E.Material:a.drawColors[0]!==r[0]&&Re.render({});break;case E.MultiColor:Pe({colors:r});break}return{drawColors:r}})},updateShadowWidth:r=>{t(()=>(c.canvas&&(c.canvas.freeDrawingBrush.shadow.blur=we(r)),{shadowWidth:r}))},updateShadowColor:r=>{t(()=>(c.canvas&&(c.canvas.freeDrawingBrush.shadow.color=r),{shadowColor:r}))},updateDrawShape:r=>t({drawShape:r}),updateDrawStyle:r=>{t({drawStyle:r}),c.handleDrawStyle()},updateDrawShapeCount:r=>t({drawShapeCount:r}),updateDrawTextValue:r=>t({drawTextValue:r}),updateMaterialType(r){t(a=>(a.materialType!==r&&Re.render({materialType:r}),{materialType:r}))},updateEraserWidth(r){t(a=>(a.drawWidth!==r&&c.canvas&&(c.canvas.freeDrawingBrush.width=Oe(r)),{eraserWidth:r}))},updateMultiColorType(r){t(a=>(a.multiColorType!==r&&Pe({type:r}),{multiColorType:r}))},updateTextFontFamily(r){t({textFontFamily:r})},updateFontStyles(r){const a=[...e().fontStyles],n=a.findIndex(s=>s===r);n!==-1?a.splice(n,1):a.push(r),t({fontStyles:a})}}),{name:"PAINT-BOARD-DRAW-STORE"}));class lr{constructor(){u(this,"lastTime",0);u(this,"points",[]);u(this,"group");var r;const e=new p.fabric.Group([],{perPixelTargetFind:!0});(r=c.canvas)==null||r.add(e),this.group=e,_(e,P.RETICULATE)}addPosition(e){var n;if(!e)return;const r=Date.now();if(r-this.lastTime<30)return;this.lastTime=r;const a=new p.fabric.Point(e.x,e.y);this.points.push(a),!(this.points.length<2)&&(this.group.addWithUpdate(dr(this.points)),(n=c.canvas)==null||n.requestRenderAll())}destroy(){var e;(e=c.canvas)==null||e.remove(this.group)}}function dr(t){var s,i,d,h;const e=m.getState().drawColors[0],r=Math.ceil(m.getState().drawWidth/3/((i=(s=c.canvas)==null?void 0:s.getZoom())!=null?i:1)),a=[];a.push(new p.fabric.Line([t[t.length-1].x,t[t.length-1].y,t[t.length-2].x,t[t.length-2].y],{stroke:e,strokeWidth:r}));const n=1e3/((h=(d=c.canvas)==null?void 0:d.getZoom())!=null?h:1);for(let g=0;g{const d=re(e*.3,e),h=i>m.getState().drawColors.length-1?m.getState().drawColors[0]:m.getState().drawColors[i];return new p.fabric.Circle({left:s.x,top:s.y,radius:d,opacity:Math.random(),fill:h})});return new p.fabric.Group(a)}function pr(t,e){if(m.getState().drawShapeCount===1){const r=Ye(e);return r.set({left:t.x-e,top:t.y-e,fill:m.getState().drawColors[0]}),r}else{const a=ae(t==null?void 0:t.x,t==null?void 0:t.y,e*3,m.getState().drawShapeCount).map((s,i)=>{const d=i>m.getState().drawColors.length-1?m.getState().drawColors[0]:m.getState().drawColors[i],h=Ye(e);return h.set({left:s.x,top:s.y,fill:d}),h});return new p.fabric.Group(a)}}function Ye(t){const e=re(t,t*2)*2,r=e*(9/10),a=r/2,n=e/2,s=Math.PI/5,i=[];for(let h=0;h<10;h++){const g=h%2===0?r/2:r/4,f=a+g*Math.cos(h*s),v=n+g*Math.sin(h*s);i.push({x:f,y:v})}return new p.fabric.Polygon(i,{opacity:Math.random()})}function ur(t,e){if(m.getState().drawShapeCount===1){const r=Ge(e);return r.set({left:t.x-e,top:t.y-e,fill:m.getState().drawColors[0]}),r}else{const a=ae(t==null?void 0:t.x,t==null?void 0:t.y,e*3,m.getState().drawShapeCount).map((s,i)=>{const d=i>m.getState().drawColors.length-1?m.getState().drawColors[0]:m.getState().drawColors[i],h=Ge(e);return h.set({left:s.x,top:s.y,fill:d}),h});return new p.fabric.Group(a)}}function Ge(t){const e=re(t*1.5,t*3),r="M20.808,11.079C19.829,16.132,12,20.5,12,20.5s-7.829-4.368-8.808-9.421C2.227,6.1,5.066,3.5,8,3.5a4.444,4.444,0,0,1,4,2,4.444,4.444,0,0,1,4-2C18.934,3.5,21.773,6.1,20.808,11.079Z",a=new p.fabric.Path(r,{opacity:Math.random()}),n=a.getBoundingRect(),s=e/n.width,i=e/n.height,d=Math.min(s,i);return a.scale(d),a}function gr(t,e){if(m.getState().drawShapeCount===1){const r=je(e);return r.set({left:t.x-e,top:t.y-e,fill:m.getState().drawColors[0]}),r}else{const a=ae(t==null?void 0:t.x,t==null?void 0:t.y,e*3,m.getState().drawShapeCount).map((s,i)=>{const d=i>m.getState().drawColors.length-1?m.getState().drawColors[0]:m.getState().drawColors[i],h=je(e);return h.set({left:s.x,top:s.y,fill:d}),h});return new p.fabric.Group(a)}}function je(t){const e=re(t*1.5,t*3),r="M214.37 208H70.57c-31 0-57.37 14.9-67.26 45.33C1.57 258.71 0 265.54 0 272c0 48 96 128 144 128 28.95 0 53.24-10.67 75.72-33.14-8.58 11.05-13.81 23.47-15.72 37.28-6.98 49.25 1.73 83.2 27.23 91.48C255.99 503.66 288 512 304 512c48 0 53.35-109.18 26.33-144.39L214.37 208zm29.29-21.28L288.1 49.96C297.68 20.47 320 0 352 0c5.66 0 12.64.62 18.78 2.61 45.65 14.84 92.07 130.86 77.23 176.51-8.94 27.54-26.59 47.34-54.91 61.77 13.15-4.74 26.59-5.88 40.31-3.42 49 8.58 78.59 27.35 78.59 54.16 0 26.04-1.96 59.05-6.91 74.27-14.83 45.65-120.32 17.01-145.46-19.58l-115.97-159.6z",a=new p.fabric.Path(r,{opacity:Math.random()}),n=a.getBoundingRect(),s=e/n.width,i=e/n.height,d=Math.min(s,i);return a.scale(d),a}function mr(t,e){if(m.getState().drawShapeCount===1){const r=ze(e);return r.set({left:t.x-e,top:t.y-e,stroke:m.getState().drawColors[0],strokeWidth:2}),r}else{const a=ae(t==null?void 0:t.x,t==null?void 0:t.y,e*3,m.getState().drawShapeCount).map((s,i)=>{const d=i>m.getState().drawColors.length-1?m.getState().drawColors[0]:m.getState().drawColors[i],h=ze(e);return h.set({left:s.x,top:s.y,stroke:d,strokeWidth:2}),h});return new p.fabric.Group(a)}}function ze(t){const e=re(t*1.5,t*3),r="M11.9994 3V7M11.9994 7V17M11.9994 7L8.99943 4M11.9994 7L14.9994 4M11.9994 17V21M11.9994 17L8.99943 20M11.9994 17L14.9994 20M4.20624 7.49999L7.67034 9.49999M7.67034 9.49999L16.3306 14.5M7.67034 9.49999L3.57227 10.5981M7.67034 9.49999L6.57227 5.40191M16.3306 14.5L19.7947 16.5M16.3306 14.5L17.4287 18.5981M16.3306 14.5L20.4287 13.4019M4.2067 16.5L7.6708 14.5M7.6708 14.5L16.3311 9.49999M7.6708 14.5L3.57273 13.4019M7.6708 14.5L6.57273 18.5981M16.3311 9.49999L19.7952 7.49999M16.3311 9.49999L17.4291 5.40192M16.3311 9.49999L20.4291 10.5981",a=new p.fabric.Path(r,{opacity:Math.random()}),n=a.getBoundingRect(),s=e/n.width,i=e/n.height,d=Math.min(s,i);return a.scale(d),a}function fr(t,e){if(m.getState().drawShapeCount===1){const r=Ue(e);return r.set({left:t.x-e,top:t.y-e,fill:m.getState().drawColors[0]}),r}else{const a=ae(t==null?void 0:t.x,t==null?void 0:t.y,e*3,m.getState().drawShapeCount).map((s,i)=>{const d=i>m.getState().drawColors.length-1?m.getState().drawColors[0]:m.getState().drawColors[i],h=Ue(e);return h.set({left:s.x,top:s.y,fill:d}),h});return new p.fabric.Group(a)}}function Ue(t){const e=re(t*1.5,t*3),r="M10.0909 11.9629L19.3636 8.63087V14.1707C18.8126 13.8538 18.1574 13.67 17.4545 13.67C15.4964 13.67 13.9091 15.096 13.9091 16.855C13.9091 18.614 15.4964 20.04 17.4545 20.04C19.4126 20.04 21 18.614 21 16.855C21 16.855 21 16.8551 21 16.855L21 7.49236C21 6.37238 21 5.4331 20.9123 4.68472C20.8999 4.57895 20.8852 4.4738 20.869 4.37569C20.7845 3.86441 20.6352 3.38745 20.347 2.98917C20.2028 2.79002 20.024 2.61055 19.8012 2.45628C19.7594 2.42736 19.716 2.39932 19.6711 2.3722L19.6621 2.36679C18.8906 1.90553 18.0233 1.93852 17.1298 2.14305C16.2657 2.34086 15.1944 2.74368 13.8808 3.23763L11.5963 4.09656C10.9806 4.32806 10.4589 4.52419 10.0494 4.72734C9.61376 4.94348 9.23849 5.1984 8.95707 5.57828C8.67564 5.95817 8.55876 6.36756 8.50501 6.81203C8.4545 7.22978 8.45452 7.7378 8.45455 8.33743V16.1307C7.90347 15.8138 7.24835 15.63 6.54545 15.63C4.58735 15.63 3 17.056 3 18.815C3 20.574 4.58735 22 6.54545 22C8.50355 22 10.0909 20.574 10.0909 18.815C10.0909 18.815 10.0909 18.8151 10.0909 18.815L10.0909 11.9629Z",a=new p.fabric.Path(r,{opacity:Math.random()}),n=a.getBoundingRect(),s=e/n.width,i=e/n.height,d=Math.min(s,i);return a.scale(d),a}function wr(t,e){if(m.getState().drawShapeCount===1){const r=Ze(e);return r.set({left:t.x-e,top:t.y-e,fill:m.getState().drawColors[0]}),r}else{const a=ae(t==null?void 0:t.x,t==null?void 0:t.y,e*3,m.getState().drawShapeCount).map((s,i)=>{const d=i>m.getState().drawColors.length-1?m.getState().drawColors[0]:m.getState().drawColors[i],h=Ze(e);return h.set({left:s.x,top:s.y,fill:d}),h});return new p.fabric.Group(a)}}function Ze(t){const e=re(t*1.5,t*3),r="M23.395 14.106c2.958-1.383 2.828-6.068 5.758-5.884-4.125-2.74-4.019 3.106-9.089 1.235 1.107-3.068-2.292-6.286-0.091-8.227-4.855 0.979-0.645 5.039-5.555 7.301-1.384-2.958-6.068-2.828-5.884-5.758-2.74 4.125 3.106 4.019 1.235 9.089-3.068-1.107-6.286 2.292-8.227 0.091 0.979 4.855 5.039 0.645 7.301 5.555-2.958 1.384-2.828 6.068-5.758 5.884 4.125 2.74 4.019-3.106 9.089-1.235-1.107 3.068 2.292 6.286 0.091 8.227 4.855-0.979 0.645-5.039 5.555-7.301 1.384 2.958 6.068 2.828 5.884 5.758 2.74-4.125-3.106-4.019-1.235-9.089 3.068 1.107 6.286-2.292 8.226-0.091-0.979-4.855-5.039-0.645-7.301-5.555z",a=new p.fabric.Path(r,{opacity:Math.random()}),n=a.getBoundingRect(),s=e/n.width,i=e/n.height,d=Math.min(s,i);return a.scale(d),a}function xr(t,e){if(m.getState().drawShapeCount===1){const r=$e(e);return r.set({left:t.x-e,top:t.y-e,fill:m.getState().drawColors[0]}),r}else{const a=ae(t==null?void 0:t.x,t==null?void 0:t.y,e*3,m.getState().drawShapeCount).map((s,i)=>{const d=i>m.getState().drawColors.length-1?m.getState().drawColors[0]:m.getState().drawColors[i],h=$e(e);return h.set({left:s.x,top:s.y,fill:d}),h});return new p.fabric.Group(a)}}function $e(t){const e=re(t*1.5,t*3),r="M8.23129 2.24048C9.24338 1.78695 10.1202 2.81145 9.80357 3.70098C8.72924 6.71928 9.38932 10.1474 11.6193 12.3765C13.8606 14.617 17.3114 15.2755 20.3395 14.1819C21.2206 13.8637 22.2173 14.7319 21.7817 15.7199C21.7688 15.7491 21.7558 15.7782 21.7427 15.8074C20.9674 17.5266 19.7272 19.1434 18.1227 20.2274C16.4125 21.3828 14.3957 22.0001 12.3316 22.0001H12.3306C9.93035 21.9975 7.6057 21.1603 5.75517 19.6321C3.90463 18.1039 2.64345 15.9797 2.18793 13.6237C1.73241 11.2677 2.11094 8.82672 3.2586 6.71917C4.34658 4.72121 6.17608 3.16858 8.20153 2.25386L8.23129 2.24048Z",a=new p.fabric.Path(r,{opacity:Math.random()}),n=a.getBoundingRect(),s=e/n.width,i=e/n.height,d=Math.min(s,i);return a.scale(d),a}function vr(t,e){if(m.getState().drawShapeCount===1){const r=qe(e);return r.set({left:t.x-e,top:t.y-e,fill:m.getState().drawColors[0]}),r}else{const a=ae(t==null?void 0:t.x,t==null?void 0:t.y,e*3,m.getState().drawShapeCount).map((s,i)=>{const d=i>m.getState().drawColors.length-1?m.getState().drawColors[0]:m.getState().drawColors[i],h=qe(e);return h.set({left:s.x,top:s.y,fill:d}),h});return new p.fabric.Group(a)}}function qe(t){const e=re(t*1.5,t*3),r="M15.362,9.69c0,0-0.75,1.108-1.068,0c-0.318-1.109-1.346-4.949-1.762-5.226 c-0.417-0.278-0.417-0.278-0.417-0.278s-0.078,1.506-0.594,1.307c-0.515-0.198-4.313-2.217-4.63-2.652L6.574,2.444 c0,0,0.355,3.328-0.515,2.615c0,0,1.113,2.771-2.573,3.048c0,0,1.186,3.087,4.552,4.75c0,0,1.148,1.783-0.949,1.503 c0,0-2.932-0.395-3.325-0.752c0,0-1.548,3.01-3.764,3.128c0,0,2.656,1.504,2.337,4.156c0,0,5.107,0.041,4.911,0.832 c-0.2,0.795-0.555,1.601-0.555,1.601s4.71-0.929,5.422-2.194c0,0,0.989,0.99,1.071,1.939c0,0,2.693-0.594,2.452-2.296 c0,0,1.269,0.948,1.427,2.551l0.554-0.375c0,0-0.319-1.661-1.464-2.967c0,0-0.517-1.308,0.789-0.633c0,0,3.085,1.029,5.7-0.833 c0,0-2.888-0.948-3.006-1.978c0,0,5.394-3.326,5.625-5.542c0,0-1.944,0.198-2.972-0.633c0,0-1.309-0.396,0.394-4.791 c0,0-1.227,0.724-1.62-3.636c0,0-3.051,4.665-4.518,3.082C16.548,5.018,15.165,8.066,15.362,9.69z",a=new p.fabric.Path(r,{opacity:Math.random()}),n=a.getBoundingRect(),s=e/n.width,i=e/n.height,d=Math.min(s,i);return a.scale(d),a}function Cr(t,e){if(m.getState().drawShapeCount===1){const r=Ke(e);return r.set({left:t.x-e,top:t.y-e,fill:m.getState().drawColors[0]}),r}else{const a=ae(t==null?void 0:t.x,t==null?void 0:t.y,e*3,m.getState().drawShapeCount).map((s,i)=>{const d=i>m.getState().drawColors.length-1?m.getState().drawColors[0]:m.getState().drawColors[i],h=Ke(e);return h.set({left:s.x,top:s.y,fill:d}),h});return new p.fabric.Group(a)}}function Ke(t){const e=re(t*1.5,t*3),r="M512,224.438c0-63.766-51.703-115.469-115.484-115.469c-8.781,0-17.328,1-25.531,2.859 C365.656,52.984,316.219,6.875,256,6.875c-60.234,0-109.672,46.109-114.984,104.953c-8.219-1.859-16.766-2.859-25.531-2.859 C51.703,108.969,0,160.672,0,224.438c0,47.594,28.797,88.469,69.906,106.141c-10.297,17.281-16.234,37.484-16.234,59.063 c0,63.766,51.703,115.484,115.484,115.484c34.625,0,65.672-15.266,86.844-39.406c21.156,24.141,52.219,39.406,86.844,39.406 c63.781,0,115.484-51.719,115.484-115.484c0-21.578-5.938-41.781-16.25-59.063C483.203,312.906,512,272.031,512,224.438z M256,372.531c-53.563,0-97-43.406-97-97c0-53.563,43.438-96.984,97-96.984s96.984,43.422,96.984,96.984 C352.984,329.125,309.563,372.531,256,372.531z",a=new p.fabric.Path(r,{opacity:Math.random()}),n=a.getBoundingRect(),s=e/n.width,i=e/n.height,d=Math.min(s,i);return a.scale(d),a}class br{constructor(){u(this,"lastTime",0);u(this,"group");var r;const e=new p.fabric.Group([],{perPixelTargetFind:!0});(r=c.canvas)==null||r.add(e),this.group=e,_(e,P.SHAPE)}addPosition(e){var i,d,h;const r=Date.now();if(r-this.lastTime<30||!e)return;this.lastTime=r;const a=new p.fabric.Point(e.x,e.y),n=m.getState().drawWidth/((d=(i=c==null?void 0:c.canvas)==null?void 0:i.getZoom())!=null?d:1);let s=null;switch(m.getState().drawShape){case V.Bubble:s=hr(a,n);break;case V.Star:s=pr(a,n);break;case V.Love:s=ur(a,n);break;case V.Butterfly:s=gr(a,n);break;case V.Snow:s=mr(a,n);break;case V.Music:s=fr(a,n);break;case V.Sun:s=wr(a,n);break;case V.Moon:s=xr(a,n);break;case V.Leaf:s=vr(a,n);break;case V.Flower:s=Cr(a,n);break}s&&(this.group.addWithUpdate(s),(h=c.canvas)==null||h.requestRenderAll())}destroy(){var e;(e=c.canvas)==null||e.remove(this.group)}}class yr{constructor(){u(this,"lastTime",0);u(this,"group");var r;const e=new p.fabric.Group([],{perPixelTargetFind:!0});(r=c.canvas)==null||r.add(e),this.group=e,_(e,P.PIXELS)}addPosition(e){var n;const r=Date.now();if(r-this.lastTime<30||!e)return;this.lastTime=r;const a=new p.fabric.Point(e.x,e.y);this.group.addWithUpdate(Sr(a.x,a.y)),(n=c.canvas)==null||n.requestRenderAll()}destroy(){var e;(e=c.canvas)==null||e.remove(this.group)}}function Sr(t,e){var s,i,d,h,g,f;const r=[],a=Number((m.getState().drawWidth/((i=(s=c==null?void 0:c.canvas)==null?void 0:s.getZoom())!=null?i:1)).toFixed(2)),n=Number((m.getState().drawWidth/3/((h=(d=c==null?void 0:c.canvas)==null?void 0:d.getZoom())!=null?h:1)).toFixed(2));for(let v=-a;v.5){const k=(f=(g=m.getState().drawColors)==null?void 0:g[re(0,m.getState().drawColors.length-1)])!=null?f:m.getState().drawColors[0],S=new p.fabric.Rect({left:t+v,top:e+R,width:n,height:n,fill:k});r.push(S)}return new p.fabric.Group(r)}const kr=3;class Lr{constructor(){u(this,"lastTime",0);u(this,"points",[]);u(this,"group");u(this,"counter",0);u(this,"position",{x:0,y:window.innerHeight/2});var r;const e=new p.fabric.Group([],{perPixelTargetFind:!0});(r=c.canvas)==null||r.add(e),this.group=e,_(e,P.DRAW_TEXT)}addPosition(e){var n;if(!e)return;const r=new p.fabric.Point(e.x,e.y);if(this.points.push(r),this.points.length<2){this.position={x:r.x,y:r.y};return}const a=Date.now();a-this.lastTime<30||(this.lastTime=a,this.group.addWithUpdate(Er(this)),(n=c.canvas)==null||n.requestRenderAll())}destroy(){var e;(e=c.canvas)==null||e.remove(this.group)}}function Er(t){const e=t.points,r=e[e.length-1],a=Ne(t.position,r),n=kr+a/2,s=m.getState().drawTextValue[t.counter%m.getState().drawTextValue.length],i=Mr(s,n);if(i&&a>i){const d=Math.atan2(r.y-t.position.y,r.x-t.position.x),h=new p.fabric.Text(s,{fontSize:n,top:t.position.y,left:t.position.x,fontFamily:m.getState().textFontFamily,originX:"left",originY:"bottom",angle:p.fabric.util.radiansToDegrees(d),fill:m.getState().drawColors[0]});return t.position={x:t.position.x+Math.cos(d)*i,y:t.position.y+Math.sin(d)*i},t.counter++,t.counter>m.getState().drawTextValue.length-1&&(t.counter=0),h}}function Mr(t,e){return new p.fabric.Text(t,{fontSize:e,fontFamily:m.getState().textFontFamily}).width}class Ir{constructor(){u(this,"lastTime",0);u(this,"points",[]);u(this,"group");var r;const e=new p.fabric.Group([],{perPixelTargetFind:!0});(r=c.canvas)==null||r.add(e),this.group=e,_(e,P.MULTI_LINE)}addPosition(e){var n;if(!e)return;const r=Date.now();if(r-this.lastTime<30)return;this.lastTime=r;const a=new p.fabric.Point(e.x,e.y);this.points.push(a),!(this.points.length<2)&&(this.group.addWithUpdate(Tr(this.points)),(n=c.canvas)==null||n.renderAll())}destroy(){var e;(e=c.canvas)==null||e.remove(this.group)}}function Tr(t){var n,s;const e=m.getState().drawColors[0],r=Math.ceil(m.getState().drawWidth/3/((s=(n=c.canvas)==null?void 0:n.getZoom())!=null?s:1)),a=[];if(a.push(new p.fabric.Line([t[t.length-1].x,t[t.length-1].y,t[t.length-2].x,t[t.length-2].y],{stroke:e,strokeWidth:r})),t.length%5===0)for(let i=t.length-5,d=0;i>=0&&d<3;i=i-5,d++)a.push(new p.fabric.Line([t[t.length-1].x,t[t.length-1].y,t[i].x,t[i].y],{stroke:e,strokeWidth:r/3}));return new p.fabric.Group(a)}let be=0;class Rr{constructor(){u(this,"points",[]);u(this,"group");var r;const e=new p.fabric.Group([],{perPixelTargetFind:!0});(r=c.canvas)==null||r.add(e),this.group=e,_(e,P.RAINBOW)}addPosition(e){var a;if(!e)return;const r=new p.fabric.Point(e.x,e.y);this.points.push(r),!(this.points.length<2)&&(this.group.addWithUpdate(Pr(this.points)),(a=c.canvas)==null||a.requestRenderAll())}destroy(){var e;(e=c.canvas)==null||e.remove(this.group)}}function Pr(t){var d,h;const e=Math.ceil(m.getState().drawWidth/((h=(d=c.canvas)==null?void 0:d.getZoom())!=null?h:1));be=be<360?be+1:0;const r=t[t.length-1].x,a=t[t.length-1].y,n=t[t.length-2].x,s=t[t.length-2].y;return new p.fabric.Line([n,s,r,a],{stroke:`hsl(${be}, 90%, 50%)`,strokeWidth:e,originX:"center",originY:"center"})}class Nr{constructor(){u(this,"lastTime",0);u(this,"lastPoint",null);u(this,"group");var r;const e=new p.fabric.Group([],{perPixelTargetFind:!0});(r=c.canvas)==null||r.add(e),this.group=e,_(e,P.THORN)}addPosition(e){var n;if(!e)return;const r=Date.now();if(r-this.lastTime<30)return;this.lastTime=r;const a=new p.fabric.Point(e.x,e.y);if(!this.lastPoint){this.lastPoint=a;return}this.group.addWithUpdate(Ar(this,a)),(n=c.canvas)==null||n.renderAll()}destroy(){var e;(e=c.canvas)==null||e.remove(this.group)}}function Ar(t,e){var d,h;const r=t.lastPoint,a=Ne(r,e),n=p.fabric.util.radiansToDegrees(Math.atan2(e.y-r.y,e.x-r.x)),s=3/((h=(d=c.canvas)==null?void 0:d.getZoom())!=null?h:1),i=new p.fabric.Ellipse({left:e.x,top:e.y,originX:"center",originY:"center",fill:m.getState().drawColors[0],opacity:Math.random(),rx:a*5+s,ry:s});return i.rotate(n),t.lastPoint=e,i}class Or{constructor(){u(this,"lastTime",0);u(this,"lastCoordinates",[]);u(this,"points",[]);u(this,"group");u(this,"shadow");var r;const e=new p.fabric.Group([],{perPixelTargetFind:!0});(r=c.canvas)==null||r.add(e),this.group=e,this.shadow=new p.fabric.Shadow({blur:3,offsetX:0,offsetY:0,color:m.getState().drawColors[0]}),_(e,P.MULTI_POINT)}addPosition(e){var n;if(!e)return;const r=Date.now();if(r-this.lastTime<30)return;this.lastTime=r;const a=new p.fabric.Point(e.x,e.y);this.points.push(a),!(this.points.length<2)&&(this.group.addWithUpdate(_r(this)),(n=c.canvas)==null||n.renderAll())}destroy(){var e;(e=c.canvas)==null||e.remove(this.group)}}function _r(t){var R,k;const{points:e,lastCoordinates:r}=t,a=(k=(R=c.canvas)==null?void 0:R.getZoom())!=null?k:1,n=Math.ceil(m.getState().drawWidth*3/a),s=6/a,i=2/a,d=e[e.length-1].x,h=e[e.length-1].y,g=[],f=ae(d,h,n,m.getState().drawShapeCount),v=f.map(S=>new p.fabric.Circle({left:S.x,top:S.y,radius:s,fill:m.getState().drawColors[0]}));if(g.push(...v),r!=null&&r.length){const S=r.map((b,w)=>new p.fabric.Line([b.x+s,b.y+s,f[w].x+s,f[w].y+s],{stroke:m.getState().drawColors[0],strokeWidth:i}));g.push(...S)}return t.lastCoordinates=f,new p.fabric.Group(g)}class Fr{constructor(){u(this,"lastTime",0);u(this,"flip",1);u(this,"lastPoint",null);u(this,"group");var r;const e=new p.fabric.Group([],{perPixelTargetFind:!0});(r=c.canvas)==null||r.add(e),this.group=e,_(e,P.WIGGLE)}addPosition(e){var n;if(!e)return;const r=Date.now();if(r-this.lastTime<30)return;this.lastTime=r;const a=new p.fabric.Point(e.x,e.y);if(!this.lastPoint){this.lastPoint=a;return}this.group.addWithUpdate(Br(this,a)),(n=c.canvas)==null||n.renderAll()}destroy(){var e;(e=c.canvas)==null||e.remove(this.group)}}function Br(t,e){var f,v;const r=t.lastPoint,a=Ne(r,e),n=(r.x+e.x)/2,s=(r.y+e.y)/2,i=p.fabric.util.radiansToDegrees(Math.atan2(e.y-r.y,e.x-r.x)),d=p.fabric.util.radiansToDegrees(t.flip%2*Math.PI),h=3/((v=(f=c.canvas)==null?void 0:f.getZoom())!=null?v:1),g=new p.fabric.Circle({top:s,left:n,originX:"center",originY:"center",radius:a/2,startAngle:i+d,endAngle:i+d+p.fabric.util.radiansToDegrees(Math.PI),stroke:m.getState().drawColors[0],strokeWidth:h,fill:"",strokeLineJoin:"round",strokeLineCap:"round"});return t.lastPoint=e,t.flip++,g}const O=ke()(Le((t,e)=>({shapeStyle:T.Rect,borderType:J.Solid,borderColor:"#000000",borderWidth:3,fillColor:"#FFFFFF",fillType:ie.Transparent,shapeLinePointCount:3,updateShapeStyle(r){e().shapeStyle!==r&&t({shapeStyle:r})},updateBorderType(r){e().borderType!==r&&t({borderType:r})},updateBorderColor:r=>{e().borderColor!==r&&t({borderColor:r})},updateBorderWidth:r=>{e().borderWidth!==r&&t({borderWidth:r})},updateFillColor:r=>{e().fillColor!==r&&t({fillColor:r})},updateFillType(r){e().fillType!==r&&t({fillType:r})},updateShapeLinePointCount(r){const a=e().shapeLinePointCount;r!==a&&t({shapeLinePointCount:r})}}),{name:"PAINT-BOARD-SHAPE-STORE"})),Y=()=>O.getState().borderWidth,G=(t=5)=>{const e=O.getState().borderType,r=Math.round(t);switch(e){case J.Dashed:return[r*3,r*2];case J.Dotted:return[r,r*3];default:return}},U=()=>{const{fillType:t,fillColor:e}=O.getState();switch(t){case ie.Transparent:return"transparent";case ie.Full:return e;default:return}};class Dr{constructor(e){u(this,"shapeInstance");u(this,"startX",0);u(this,"startY",0);var n;if(!e)return;const r=Y(),a=new p.fabric.Rect({left:e.x,top:e.y,width:0,height:0,rx:3,ry:3,stroke:O.getState().borderColor,strokeWidth:r,fill:U(),strokeUniform:!0,strokeLineCap:"round",strokeDashArray:G(r),perPixelTargetFind:!0});(n=c.canvas)==null||n.add(a),this.shapeInstance=a,this.startX=e.x,this.startY=e.y,_(a,P.SHAPE_RECT)}addPosition(e){var h;if(!e||!this.shapeInstance)return;const{x:r,y:a}=new p.fabric.Point(e.x,e.y),n=Math.abs(r-this.startX),s=Math.abs(a-this.startY),i=r>this.startX?this.startX:this.startX-n,d=a>this.startY?this.startY:this.startY-s;this.shapeInstance.set({width:n,height:s,left:i,top:d}),this.shapeInstance.setCoords(),(h=c.canvas)==null||h.requestRenderAll()}destroy(){var e;this.shapeInstance&&((e=c.canvas)==null||e.remove(this.shapeInstance))}}class Wr{constructor(e){u(this,"shapeInstance");u(this,"startX",0);u(this,"startY",0);var n;if(!e)return;const r=Y(),a=new p.fabric.Circle({left:e.x,top:e.y,radius:0,stroke:O.getState().borderColor,strokeWidth:r,fill:U(),strokeUniform:!0,strokeLineCap:"round",strokeDashArray:G(r),perPixelTargetFind:!0});(n=c.canvas)==null||n.add(a),this.shapeInstance=a,this.startX=e.x,this.startY=e.y,_(a,P.SHAPE_CIRCLE)}addPosition(e){var g;if(!e||!this.shapeInstance)return;const{x:r,y:a}=new p.fabric.Point(e.x,e.y),n=Math.abs(r-this.startX),s=Math.abs(a-this.startY),i=Math.min(n,s)/2,d=r>this.startX?this.startX:this.startX-i*2,h=a>this.startY?this.startY:this.startY-i*2;this.shapeInstance.set({radius:i,left:d,top:h}),this.shapeInstance.setCoords(),(g=c.canvas)==null||g.requestRenderAll()}destroy(){var e;this.shapeInstance&&((e=c.canvas)==null||e.remove(this.shapeInstance))}}class Je{constructor(e){u(this,"shapeInstance");u(this,"startX",0);u(this,"startY",0);var s;if(!e)return;this.startX=e.x,this.startY=e.y;const r=Y(),a=[];for(let i=0;i0?s-1:r,ht),actionName:"polylineEndPoint",pointIndex:s}),a},{}),this.shapeInstance._setPositionDimensions({}),this.shapeInstance.setCoords()}destroy(){var e;this.shapeInstance&&((e=c.canvas)==null||e.remove(this.shapeInstance))}}class Hr{constructor(e){u(this,"shapeInstance");u(this,"startX",0);u(this,"startY",0);var n;if(!e)return;const r=Y(),a=new p.fabric.Ellipse({left:e.x,top:e.y,rx:0,ry:0,stroke:O.getState().borderColor,strokeWidth:r,fill:U(),strokeUniform:!0,strokeLineCap:"round",strokeDashArray:G(r),perPixelTargetFind:!0});(n=c.canvas)==null||n.add(a),this.shapeInstance=a,this.startX=e.x,this.startY=e.y,_(a,P.SHAPE_ELLIPSE)}addPosition(e){var h;if(!e||!this.shapeInstance)return;const{x:r,y:a}=new p.fabric.Point(e.x,e.y),n=Math.abs(r-this.startX)/2,s=Math.abs(a-this.startY)/2,i=r>this.startX?this.startX:this.startX-n*2,d=a>this.startY?this.startY:this.startY-s*2;this.shapeInstance.set({rx:n,ry:s,left:i,top:d}),this.shapeInstance.setCoords(),(h=c.canvas)==null||h.requestRenderAll()}destroy(){var e;this.shapeInstance&&((e=c.canvas)==null||e.remove(this.shapeInstance))}}class Xr{constructor(e){u(this,"shapeInstance");u(this,"startX",0);u(this,"startY",0);var n;if(!e)return;const r=Y(),a=new p.fabric.Triangle({left:e.x,top:e.y,width:0,height:0,stroke:O.getState().borderColor,strokeWidth:r,fill:U(),strokeUniform:!0,strokeLineCap:"round",strokeDashArray:G(r),perPixelTargetFind:!0});(n=c.canvas)==null||n.add(a),this.shapeInstance=a,this.startX=e.x,this.startY=e.y,_(a,P.SHAPE_TRIANGLE)}addPosition(e){var h;if(!e||!this.shapeInstance)return;const{x:r,y:a}=new p.fabric.Point(e.x,e.y),n=Math.abs(r-this.startX),s=Math.abs(a-this.startY),i=r>this.startX?this.startX:this.startX-n,d=a>this.startY?this.startY:this.startY-s;this.shapeInstance.set({width:n,height:s,left:i,top:d}),this.shapeInstance.setCoords(),(h=c.canvas)==null||h.requestRenderAll()}destroy(){var e;this.shapeInstance&&((e=c.canvas)==null||e.remove(this.shapeInstance))}}class Vr{constructor(e){u(this,"shapeInstance");u(this,"startX",0);u(this,"startY",0);var s;if(!e)return;const r=Y(),a="m446.24196,887.47009l-175.7696,0c-27.01653,-0.68266 -50.176,-10.68373 -69.23946,-29.7472c-16.91307,-16.896 -26.88,-36.62506 -29.61067,-58.58986a99.1744,99.1744 0 0 1 -1.00693,-14.06294c0,-4.3008 0.29013,-8.89173 0.85333,-13.80693l0,-395.79307l-154.45333,0a17.1008,17.1008 0 0 1 -12.06614,-29.1328l341.33334,-341.33333a17.0496,17.0496 0 0 1 24.13226,0l340.3264,340.3264a17.06667,17.06667 0 0 1 -9.8816,30.99307l-153.94133,0l0,410.45333c-0.64853,27.46027 -10.5984,51.11467 -29.52533,70.74133c-19.98507,19.3536 -43.63947,29.2864 -70.74134,29.96907l-0.4096,-0.01707z",n=new p.fabric.Path(a,{left:e.x,top:e.y,scaleX:0,scaleY:0,stroke:O.getState().borderColor,strokeWidth:r,fill:U(),strokeUniform:!0,strokeLineCap:"round",strokeDashArray:G(r),perPixelTargetFind:!0});(s=c.canvas)==null||s.add(n),this.shapeInstance=n,this.startX=e.x,this.startY=e.y,_(n,P.SHAPE_ARROW_OUTLINE)}addPosition(e){var h;if(!e||!this.shapeInstance)return;const{x:r,y:a}=new p.fabric.Point(e.x,e.y),n=Math.abs(r-this.startX),s=Math.abs(a-this.startY),i=r>this.startX?this.startX:this.startX-n,d=a>this.startY?this.startY:this.startY-s;this.shapeInstance.set({scaleX:n/718,scaleY:s/887,left:i,top:d}),this.shapeInstance.setCoords(),(h=c.canvas)==null||h.requestRenderAll()}destroy(){var e;this.shapeInstance&&((e=c.canvas)==null||e.remove(this.shapeInstance))}}class Yr{constructor(e){u(this,"shapeInstance");u(this,"startX",0);u(this,"startY",0);var s;if(!e)return;const r=Y(),a="m853.33333,42.66667a192,192 0 0 1 -192,192l-512,0c-129.6,0 -234.66666,-105.06667 -234.66666,-234.66667c0,-126.03733 99.37066,-228.864 224.02133,-234.432a298.41067,298.41067 0 0 1 245.312,-128.23467c134.10133,0 249.45067,88.96 286.35733,213.54667a192,192 0 0 1 182.976,191.78667z",n=new p.fabric.Path(a,{left:e.x,top:e.y,scaleX:0,scaleY:0,stroke:O.getState().borderColor,strokeWidth:r,fill:U(),strokeUniform:!0,strokeLineCap:"round",strokeDashArray:G(r),perPixelTargetFind:!0});(s=c.canvas)==null||s.add(n),this.shapeInstance=n,this.startX=e.x,this.startY=e.y,_(n,P.SHAPE_CLOUD)}addPosition(e){var h;if(!e||!this.shapeInstance)return;const{x:r,y:a}=new p.fabric.Point(e.x,e.y),n=Math.abs(r-this.startX),s=Math.abs(a-this.startY),i=r>this.startX?this.startX:this.startX-n,d=a>this.startY?this.startY:this.startY-s;this.shapeInstance.set({scaleX:n/939,scaleY:s/598,left:i,top:d}),this.shapeInstance.setCoords(),(h=c.canvas)==null||h.requestRenderAll()}destroy(){var e;this.shapeInstance&&((e=c.canvas)==null||e.remove(this.shapeInstance))}}class Gr{constructor(e){u(this,"shapeInstance");u(this,"startX",0);u(this,"startY",0);var s;if(!e)return;const r=Y(),a="m1020.60467,131.15818c0,-72.31603 -58.84215,-131.15818 -131.18785,-131.15818l-758.24124,0c-72.32933,0 -131.17558,58.84215 -131.17558,131.15818l0,493.79948c0,72.31602 58.84625,131.05994 131.17558,131.05994l125.70907,0l0,193.82749c0,20.83861 12.4127,39.45562 31.62528,47.46299c19.29136,8.0043 41.26994,3.59897 56.02703,-11.15915l230.14873,-230.13236l314.72908,0c72.3457,0 131.18786,-58.74391 131.18786,-131.05994l-0.00001,-493.79845l0.00205,0z",n=new p.fabric.Path(a,{left:e.x,top:e.y,scaleX:0,scaleY:0,stroke:O.getState().borderColor,strokeWidth:r,fill:U(),strokeUniform:!0,strokeLineCap:"round",strokeDashArray:G(r),perPixelTargetFind:!0});(s=c.canvas)==null||s.add(n),this.shapeInstance=n,this.startX=e.x,this.startY=e.y,_(n,P.SHAPE_TOOLTIPS)}addPosition(e){var h;if(!e||!this.shapeInstance)return;const{x:r,y:a}=new p.fabric.Point(e.x,e.y),n=Math.abs(r-this.startX),s=Math.abs(a-this.startY),i=r>this.startX?this.startX:this.startX-n,d=a>this.startY?this.startY:this.startY-s;this.shapeInstance.set({scaleX:n/1020,scaleY:s/1002,left:i,top:d}),this.shapeInstance.setCoords(),(h=c.canvas)==null||h.requestRenderAll()}destroy(){var e;this.shapeInstance&&((e=c.canvas)==null||e.remove(this.shapeInstance))}}class jr{constructor(e){u(this,"shapeInstance");u(this,"startX",0);u(this,"startY",0);var s;if(!e)return;const r=Y(),a="m-329.49334,256l271.25334,66.66667a5.33333,5.33333 0 0 1 4,5.97333l-51.04,335.68a5.33333,5.33333 0 0 0 9.22666,4.32l434.77334,-490.34667a5.33333,5.33333 0 0 0 -2.72,-8.69333l-271.25334,-66.66667a5.33333,5.33333 0 0 1 -4,-5.97333l51.04,-335.62667a5.33333,5.33333 0 0 0 -9.22666,-4.37333l-434.77334,490.34667a5.33333,5.33333 0 0 0 2.72,8.69333z",n=new p.fabric.Path(a,{left:e.x,top:e.y,scaleX:0,scaleY:0,stroke:O.getState().borderColor,strokeWidth:r,fill:U(),strokeUniform:!0,strokeLineCap:"round",strokeDashArray:G(r),perPixelTargetFind:!0});(s=c.canvas)==null||s.add(n),this.shapeInstance=n,this.startX=e.x,this.startY=e.y,_(n,P.SHAPE_LIGHTNING)}addPosition(e){var h;if(!e||!this.shapeInstance)return;const{x:r,y:a}=new p.fabric.Point(e.x,e.y),n=Math.abs(r-this.startX),s=Math.abs(a-this.startY),i=r>this.startX?this.startX:this.startX-n,d=a>this.startY?this.startY:this.startY-s;this.shapeInstance.set({scaleX:n/674,scaleY:s/915,left:i,top:d}),this.shapeInstance.setCoords(),(h=c.canvas)==null||h.requestRenderAll()}destroy(){var e;this.shapeInstance&&((e=c.canvas)==null||e.remove(this.shapeInstance))}}class zr{constructor(e){u(this,"shapeInstance");u(this,"startX",0);u(this,"startY",0);var s;if(!e)return;const r=Y(),a="m678.76571,546.23086q0,22.82057 -16.01829,38.83886l-77.67771,77.67771q-16.01829,16.01829 -38.83886,16.01829t-38.83885,-16.01829l-168.00915,-168.00914l-168.00914,168.00914q-16.01829,16.01829 -38.83886,16.01829t-38.83885,-16.01829l-77.67772,-77.67771q-16.01828,-16.01829 -16.01828,-38.83886t16.01828,-38.83886l168.00915,-168.00914l-168.00915,-168.00914q-16.01828,-16.01829 -16.01828,-38.83886t16.01828,-38.83886l77.67772,-77.67771q16.01828,-16.01829 38.83885,-16.01829t38.83886,16.01829l168.00914,168.00914l168.00915,-168.00914q16.01828,-16.01829 38.83885,-16.01829t38.83886,16.01829l77.67771,77.67771q16.01829,16.01829 16.01829,38.83886t-16.01829,38.83886l-168.00914,168.00914l168.00914,168.00914q16.01829,16.01829 16.01829,38.83886z",n=new p.fabric.Path(a,{left:e.x,top:e.y,scaleX:0,scaleY:0,stroke:O.getState().borderColor,strokeWidth:r,fill:U(),strokeUniform:!0,strokeLineCap:"round",strokeDashArray:G(r),perPixelTargetFind:!0});(s=c.canvas)==null||s.add(n),this.shapeInstance=n,this.startX=e.x,this.startY=e.y,_(n,P.SHAPE_CLOSE)}addPosition(e){var h;if(!e||!this.shapeInstance)return;const{x:r,y:a}=new p.fabric.Point(e.x,e.y),n=Math.abs(r-this.startX),s=Math.abs(a-this.startY),i=r>this.startX?this.startX:this.startX-n,d=a>this.startY?this.startY:this.startY-s;this.shapeInstance.set({scaleX:n/679,scaleY:s/679,left:i,top:d}),this.shapeInstance.setCoords(),(h=c.canvas)==null||h.requestRenderAll()}destroy(){var e;this.shapeInstance&&((e=c.canvas)==null||e.remove(this.shapeInstance))}}class Ur{constructor(e){u(this,"shapeInstance");u(this,"startX",0);u(this,"startY",0);var s;if(!e)return;const r=Y(),a="m855.08247,17.19428c-43.5,-30.3 -104,-19.5 -134.6,24.1l-425.8,606l-127,-135.7c-36.4,-38.9 -98.1,-41.1 -137,-4.8c-39,36.2 -41.1,97.7 -4.7,136.6l206.5,220.7c4.7,5 9.8,9.4 15.1,13.1c0.7,0.5 1.4,1 2.2,1.5c43.5,30.3 104,19.5 134.6,-24.1l494,-703.2c30.7,-43.5 20.1,-103.9 -23.3,-134.2z",n=new p.fabric.Path(a,{left:e.x,top:e.y,scaleX:0,scaleY:0,stroke:O.getState().borderColor,strokeWidth:r,fill:U(),strokeUniform:!0,strokeLineCap:"round",strokeDashArray:G(r),perPixelTargetFind:!0});(s=c.canvas)==null||s.add(n),this.shapeInstance=n,this.startX=e.x,this.startY=e.y,_(n,P.SHAPE_CHECK)}addPosition(e){var h;if(!e||!this.shapeInstance)return;const{x:r,y:a}=new p.fabric.Point(e.x,e.y),n=Math.abs(r-this.startX),s=Math.abs(a-this.startY),i=r>this.startX?this.startX:this.startX-n,d=a>this.startY?this.startY:this.startY-s;this.shapeInstance.set({scaleX:n/896,scaleY:s/896,left:i,top:d}),this.shapeInstance.setCoords(),(h=c.canvas)==null||h.requestRenderAll()}destroy(){var e;this.shapeInstance&&((e=c.canvas)==null||e.remove(this.shapeInstance))}}class Zr{constructor(e){u(this,"shapeInstance");u(this,"startX",0);u(this,"startY",0);var s;if(!e)return;const r=Y(),a="m512,1024c282.771,0 512,-229.23 512,-512s-229.23,-512 -512,-512s-512,229.23 -512,512s229.23,512 512,512zm-80,-768c0,-44.183 35.817,-80 80,-80s80,35.817 80,80l0,31.999c0,44.183 -35.817,80 -80,80s-80,-35.817 -80,-80l0,-31.999zm-0.001,256c0,-44.183 35.817,-80 80,-80s80,35.817 80,80l0,256c0,44.183 -35.817,80 -80,80s-80,-35.817 -80,-80l0,-256z",n=new p.fabric.Path(a,{left:e.x,top:e.y,scaleX:0,scaleY:0,stroke:O.getState().borderColor,strokeWidth:r,fill:U(),strokeUniform:!0,strokeLineCap:"round",strokeDashArray:G(r),perPixelTargetFind:!0});(s=c.canvas)==null||s.add(n),this.shapeInstance=n,this.startX=e.x,this.startY=e.y,_(n,P.SHAPE_INFO)}addPosition(e){var h;if(!e||!this.shapeInstance)return;const{x:r,y:a}=new p.fabric.Point(e.x,e.y),n=Math.abs(r-this.startX),s=Math.abs(a-this.startY),i=r>this.startX?this.startX:this.startX-n,d=a>this.startY?this.startY:this.startY-s;this.shapeInstance.set({scaleX:n/1024,scaleY:s/1024,left:i,top:d}),this.shapeInstance.setCoords(),(h=c.canvas)==null||h.requestRenderAll()}destroy(){var e;this.shapeInstance&&((e=c.canvas)==null||e.remove(this.shapeInstance))}}class $r{constructor(e){u(this,"shapeInstance");u(this,"startX",0);u(this,"startY",0);var s;if(!e)return;const r=Y(),a="m714.52777,0a138.66667,138.66667 0 0 1 138.45333,130.816l0.21334,7.85066l0,405.33334a138.66667,138.66667 0 0 1 -130.816,138.45333l-7.85067,0.21333l-362.70933,0a138.66667,138.66667 0 0 1 -88.96,-32.256l-6.61334,-5.93066l-213.16266,-202.66667a138.66667,138.66667 0 0 1 -4.90667,-196.01067l4.90667,-4.94933l213.16266,-202.66667a138.66667,138.66667 0 0 1 86.69867,-37.888l8.87467,-0.29866l362.66666,0l0.04267,0zm0,64l-362.70933,0a74.66667,74.66667 0 0 0 -46.08,15.872l-5.376,4.69333l-213.16267,202.66667l-2.64533,2.64533a74.66667,74.66667 0 0 0 -2.34667,100.352l4.992,5.20533l213.16267,202.66667c12.11733,11.52 27.73333,18.64533 44.288,20.224l7.168,0.34133l362.66666,0a74.66667,74.66667 0 0 0 74.45334,-68.56533l0.256,-6.10133l0,-405.33334a74.66667,74.66667 0 0 0 -68.56534,-74.41066l-6.10133,-0.256zm-311.63733,123.60533l3.584,3.11467l105.38666,105.344l105.38667,-105.38667a32,32 0 0 1 48.34133,41.68533l-3.11466,3.584l-105.38667,105.38667l105.38667,105.38667a32,32 0 0 1 -41.64267,48.34133l-3.584,-3.11467l-105.38667,-105.344l-105.38666,105.38667a32,32 0 0 1 -48.34134,-41.68533l3.072,-3.584l105.42934,-105.38667l-105.38667,-105.38667a32,32 0 0 1 41.68533,-48.34133l-0.04266,0z",n=new p.fabric.Path(a,{left:e.x,top:e.y,scaleX:0,scaleY:0,stroke:O.getState().borderColor,strokeWidth:r,fill:U(),strokeUniform:!0,strokeLineCap:"round",strokeDashArray:G(r),perPixelTargetFind:!0});(s=c.canvas)==null||s.add(n),this.shapeInstance=n,this.startX=e.x,this.startY=e.y,_(n,P.SHAPE_BACKSPACE)}addPosition(e){var h;if(!e||!this.shapeInstance)return;const{x:r,y:a}=new p.fabric.Point(e.x,e.y),n=Math.abs(r-this.startX),s=Math.abs(a-this.startY),i=r>this.startX?this.startX:this.startX-n,d=a>this.startY?this.startY:this.startY-s;this.shapeInstance.set({scaleX:n/853,scaleY:s/682,left:i,top:d}),this.shapeInstance.setCoords(),(h=c.canvas)==null||h.requestRenderAll()}destroy(){var e;this.shapeInstance&&((e=c.canvas)==null||e.remove(this.shapeInstance))}}class qr{constructor(e){u(this,"shapeInstance");u(this,"startX",0);u(this,"startY",0);var s;if(!e)return;const r=Y(),a="m426.66667,0c235.648,0 426.66667,191.06134 426.66667,426.66667c0,235.69067 -191.01867,426.66667 -426.66667,426.66667c-235.60533,0 -426.66667,-190.976 -426.66667,-426.66667c0,-235.56267 191.06134,-426.66667 426.66667,-426.66667zm0,64a362.66667,362.66667 0 1 0 0,725.33334a362.66667,362.66667 0 0 0 0,-725.33334zm-181.33333,330.66667l362.66666,0a32,32 0 0 1 4.352,63.70133l-4.352,0.29867l-362.66666,0a32,32 0 0 1 -4.352,-63.70133l4.352,-0.29867l362.66666,0l-362.66666,0z",n=new p.fabric.Path(a,{left:e.x,top:e.y,scaleX:0,scaleY:0,stroke:O.getState().borderColor,strokeWidth:r,fill:U(),strokeUniform:!0,strokeLineCap:"round",strokeDashArray:G(r),perPixelTargetFind:!0});(s=c.canvas)==null||s.add(n),this.shapeInstance=n,this.startX=e.x,this.startY=e.y,_(n,P.SHAPE_BLOCK)}addPosition(e){var h;if(!e||!this.shapeInstance)return;const{x:r,y:a}=new p.fabric.Point(e.x,e.y),n=Math.abs(r-this.startX),s=Math.abs(a-this.startY),i=r>this.startX?this.startX:this.startX-n,d=a>this.startY?this.startY:this.startY-s;this.shapeInstance.set({scaleX:n/853,scaleY:s/853,left:i,top:d}),this.shapeInstance.setCoords(),(h=c.canvas)==null||h.requestRenderAll()}destroy(){var e;this.shapeInstance&&((e=c.canvas)==null||e.remove(this.shapeInstance))}}class Kr{constructor(e){u(this,"shapeInstance");u(this,"startX",0);u(this,"startY",0);var s;if(!e)return;const r=Y(),a="m489.01486,786.432c29.14743,0 50.13943,-21.43086 50.13943,-50.13943l0,-683.57486c0,-28.70857 -20.992,-52.71771 -50.99886,-52.71771c-20.992,0 -34.70628,10.29486 -57.856,30.86629l-201.43543,178.70628c-2.56,2.56 -6.41828,3.85829 -10.69714,3.85829l-127.28686,0c-60.87314,0 -90.88,30.42743 -90.88,95.14057l0,170.58743c0,64.73143 30.00686,95.14057 90.88,95.14057l127.26858,0c4.29714,0 8.15542,1.28 10.71542,3.85828l201.45372,180.40686c20.992,18.87086 37.72343,27.86743 58.71543,27.86743l-0.01829,0z",n=new p.fabric.Path(a,{left:e.x,top:e.y,scaleX:0,scaleY:0,stroke:O.getState().borderColor,strokeWidth:r,fill:U(),strokeUniform:!0,strokeLineCap:"round",strokeDashArray:G(r),perPixelTargetFind:!0});(s=c.canvas)==null||s.add(n),this.shapeInstance=n,this.startX=e.x,this.startY=e.y,_(n,P.SHAPE_SPEAKER)}addPosition(e){var h;if(!e||!this.shapeInstance)return;const{x:r,y:a}=new p.fabric.Point(e.x,e.y),n=Math.abs(r-this.startX),s=Math.abs(a-this.startY),i=r>this.startX?this.startX:this.startX-n,d=a>this.startY?this.startY:this.startY-s;this.shapeInstance.set({scaleX:n/539,scaleY:s/786,left:i,top:d}),this.shapeInstance.setCoords(),(h=c.canvas)==null||h.requestRenderAll()}destroy(){var e;this.shapeInstance&&((e=c.canvas)==null||e.remove(this.shapeInstance))}}class Jr{constructor(e){u(this,"shapeInstance");u(this,"startX",0);u(this,"startY",0);var s;if(!e)return;const r=Y(),a="m309.28596,0a309.33333,309.33333 0 0 1 240.21333,504.27734l209.06667,209.06666a32,32 0 0 1 -41.64267,48.384l-3.584,-3.11466l-209.10933,-209.06667a309.33333,309.33333 0 1 1 -194.944,-549.54667zm0,64a245.33333,245.33333 0 1 0 0,490.66667a245.33333,245.33333 0 0 0 0,-490.66667z",n=new p.fabric.Path(a,{left:e.x,top:e.y,scaleX:0,scaleY:0,stroke:O.getState().borderColor,strokeWidth:r,fill:U(),strokeUniform:!0,strokeLineCap:"round",strokeDashArray:G(r),perPixelTargetFind:!0});(s=c.canvas)==null||s.add(n),this.shapeInstance=n,this.startX=e.x,this.startY=e.y,_(n,P.SHAPE_SEARCH)}addPosition(e){var h;if(!e||!this.shapeInstance)return;const{x:r,y:a}=new p.fabric.Point(e.x,e.y),n=Math.abs(r-this.startX),s=Math.abs(a-this.startY),i=r>this.startX?this.startX:this.startX-n,d=a>this.startY?this.startY:this.startY-s;this.shapeInstance.set({scaleX:n/768,scaleY:s/768,left:i,top:d}),this.shapeInstance.setCoords(),(h=c.canvas)==null||h.requestRenderAll()}destroy(){var e;this.shapeInstance&&((e=c.canvas)==null||e.remove(this.shapeInstance))}}class Qr{constructor(e){u(this,"shapeInstance");u(this,"startX",0);u(this,"startY",0);var s;if(!e)return;const r=Y(),a="m89.68,0c16.93,12.78 35.09,21 56.38,20.55c2.3,0 4.59,-0.06 6.88,0.07a64.3,64.3 0 0 0 35.55,-7.85c4.37,-2.42 8.6,-2.67 13.2,-1.85a8.08,8.08 0 0 1 5.09,2.86c12,14.42 27.73,20.48 46.19,20.6c8.12,0 16,-0.64 23.46,-4.15a13.82,13.82 0 0 1 5.81,-1c2.25,0 4.13,2.72 3.63,4.92a26.24,26.24 0 0 1 -1.32,3.12c-4.65,12.17 -1.88,23.2 5.92,33c2.17,2.71 6.09,4.07 9.32,5.86c2.49,1.38 5.26,2.26 7.68,3.74a3.54,3.54 0 0 1 0.19,5.87a20.31,20.31 0 0 1 -2.87,1.84c-14.12,7.91 -20.69,21 -23.88,36c-1.13,5.36 0.93,10.75 2.65,15.94a57.2,57.2 0 0 1 2.28,7.35c0.63,3.33 -1.25,5.55 -4.74,5.64a33.64,33.64 0 0 1 -6.76,-0.74c-19,-3.33 -36.39,0.36 -51.73,12.4c-2.24,1.76 -4.26,3.83 -6.44,5.67c-2.93,2.47 -5.43,2.7 -8.59,0.86a15.43,15.43 0 0 1 -2.1,-1.5c-6.69,-5.62 -14.73,-7.23 -23.14,-8c-13.19,-1.23 -25.78,1.36 -37.68,6.62c-6.7,3 -11.49,0.84 -16.33,-3.12c-2.65,-2.18 -5.15,-4.55 -7.64,-6.91a24.73,24.73 0 0 0 -12.93,-6.4c-15.06,-2.69 -30.13,-3.61 -45.11,0.76c-4.93,1.44 -10,2.46 -14.87,4.11s-8.33,-0.65 -11.48,-3.67c-0.87,-0.83 -1,-2.56 -1.19,-3.92c-0.87,-5.65 -1.52,-11.33 -2.46,-17a24.82,24.82 0 0 0 -12.9,-18.3c-4.95,-2.78 -9.12,-7.08 -15.62,-7.77l-4.13,-7.6c3.06,-2.94 5.88,-5.71 8.77,-8.4c10.63,-9.91 14.4,-22.38 13.5,-36.5a10.73,10.73 0 0 0 -2.27,-5.31c-2.75,-3.66 -2.57,-7.3 -0.65,-11.71c6.28,0.84 12.44,1.81 18.63,2.47c10.02,1.06 19.28,-1.55 28.27,-5.63a36.86,36.86 0 0 0 14.36,-11.82c1.8,-2.39 3.17,-5 3.15,-7.8c0,-4.54 2.41,-8.06 4,-11.93c0.24,-0.44 0.94,-0.67 1.92,-1.37z",n=new p.fabric.Path(a,{left:e.x,top:e.y,scaleX:0,scaleY:0,stroke:O.getState().borderColor,strokeWidth:r,fill:U(),strokeUniform:!0,strokeLineCap:"round",strokeDashArray:G(r),perPixelTargetFind:!0});(s=c.canvas)==null||s.add(n),this.shapeInstance=n,this.startX=e.x,this.startY=e.y,_(n,P.SHAPE_INFO_OUTLINE)}addPosition(e){var h;if(!e||!this.shapeInstance)return;const{x:r,y:a}=new p.fabric.Point(e.x,e.y),n=Math.abs(r-this.startX),s=Math.abs(a-this.startY),i=r>this.startX?this.startX:this.startX-n,d=a>this.startY?this.startY:this.startY-s;this.shapeInstance.set({scaleX:n/309,scaleY:s/172,left:i,top:d}),this.shapeInstance.setCoords(),(h=c.canvas)==null||h.requestRenderAll()}destroy(){var e;this.shapeInstance&&((e=c.canvas)==null||e.remove(this.shapeInstance))}}class ea{constructor(e){u(this,"shapeInstance");u(this,"startX",0);u(this,"startY",0);var s;if(!e)return;const r=Y(),a="m760.384,0.00803c47.808,0 91.968,11.968 132.352,35.84a264.32,264.32 0 0 1 95.872,97.152a263.68,263.68 0 0 1 35.392,133.888c0,34.752 -6.592,68.544 -19.712,101.312a262.4,262.4 0 0 1 -57.536,87.424l-434.752,440.384l-434.752,-440.32a268.8,268.8 0 0 1 -77.248,-188.8c0,-48.384 11.776,-93.056 35.392,-133.952a264.32,264.32 0 0 1 95.808,-97.088a255.296,255.296 0 0 1 132.48,-35.84a260.736,260.736 0 0 1 186.24,78.208l62.08,62.912l62.144,-62.912a258.944,258.944 0 0 1 86.336,-58.24a259.584,259.584 0 0 1 100.032,-19.968l-0.128,0z",n=new p.fabric.Path(a,{left:e.x,top:e.y,scaleX:0,scaleY:0,stroke:O.getState().borderColor,strokeWidth:r,fill:U(),strokeUniform:!0,strokeLineCap:"round",strokeDashArray:G(r),perPixelTargetFind:!0});(s=c.canvas)==null||s.add(n),this.shapeInstance=n,this.startX=e.x,this.startY=e.y,_(n,P.SHAPE_HEART)}addPosition(e){var h;if(!e||!this.shapeInstance)return;const{x:r,y:a}=new p.fabric.Point(e.x,e.y),n=Math.abs(r-this.startX),s=Math.abs(a-this.startY),i=r>this.startX?this.startX:this.startX-n,d=a>this.startY?this.startY:this.startY-s;this.shapeInstance.set({scaleX:n/1024,scaleY:s/896,left:i,top:d}),this.shapeInstance.setCoords(),(h=c.canvas)==null||h.requestRenderAll()}destroy(){var e;this.shapeInstance&&((e=c.canvas)==null||e.remove(this.shapeInstance))}}class ta{constructor(e){u(this,"shapeInstance");u(this,"startX",0);u(this,"startY",0);var s;if(!e)return;const r=Y(),a="M 300 0 C 204.92302 0 120 65.17035 120 155 A 40 40 0 0 0 120.72852 160.5332 A 40 40 0 0 0 119.83984 165 C 119.83984 285.43738 70.949871 389.48179 19.386719 420.81836 A 40 40 0 0 0 0.33984375 456.98438 A 40 40 0 0 0 0 460 A 40 40 0 0 0 40 500 L 164.75586 500 C 173.8133 535.3936 198.4031 565.81344 231.86914 583.36328 C 274.50045 605.71947 325.49955 605.71947 368.13086 583.36328 C 401.5969 565.81344 426.1867 535.3936 435.24414 500 L 560 500 A 40 40 0 0 0 600 460 A 40 40 0 0 0 599.49023 453.71094 A 40 40 0 0 0 580.45312 415.81836 C 528.88999 384.48179 480 280.43738 480 160 A 40 40 0 0 0 479.78125 156.66016 A 40 40 0 0 0 480 155 C 480 65.17035 395.07698 0 300 0 z",n=new p.fabric.Path(a,{left:e.x,top:e.y,scaleX:0,scaleY:0,stroke:O.getState().borderColor,strokeWidth:r,fill:U(),strokeUniform:!0,strokeLineCap:"round",strokeDashArray:G(r),perPixelTargetFind:!0});(s=c.canvas)==null||s.add(n),this.shapeInstance=n,this.startX=e.x,this.startY=e.y,_(n,P.SHAPE_ALERT)}addPosition(e){var h;if(!e||!this.shapeInstance)return;const{x:r,y:a}=new p.fabric.Point(e.x,e.y),n=Math.abs(r-this.startX),s=Math.abs(a-this.startY),i=r>this.startX?this.startX:this.startX-n,d=a>this.startY?this.startY:this.startY-s;this.shapeInstance.set({scaleX:n/600,scaleY:s/600,left:i,top:d}),this.shapeInstance.setCoords(),(h=c.canvas)==null||h.requestRenderAll()}destroy(){var e;this.shapeInstance&&((e=c.canvas)==null||e.remove(this.shapeInstance))}}class Qe{constructor(e){u(this,"shapeLine");u(this,"startX",0);u(this,"startY",0);var s;if(!e)return;this.startX=e.x,this.startY=e.y;const r=Y();let a=`M ${this.startX} ${this.startY}`;for(let i=0;i0?n-1:e.length-5,ft),actionName:"pathEndPoint",pointIndex:n}),r},{}),this.shapeLine.setCoords()}destroy(){var e;this.shapeLine&&((e=c.canvas)==null||e.remove(this.shapeLine))}}class ra{constructor(){u(this,"isMouseDown",!1);u(this,"isSpaceKeyDown",!1);u(this,"startPoint");u(this,"currentElement",null);this.initClickEvent()}initClickEvent(){const e=c.canvas;e==null||e.on("mouse:down",r=>{if(this.isMouseDown=!0,this.isSpaceKeyDown)return;this.startPoint=r.absolutePointer;let a=null;if(N.getState().mode===F.DRAW){if(N.getState().drawType===ce.Shape)switch(O.getState().shapeStyle){case T.Rect:a=new Dr(r.absolutePointer);break;case T.Circle:a=new Wr(r.absolutePointer);break;case T.Line:a=new Je(r.absolutePointer);break;case T.Ellipse:a=new Hr(r.absolutePointer);break;case T.Triangle:a=new Xr(r.absolutePointer);break;case T.ArrowLine:a=new Qe(r.absolutePointer);break;case T.ArrowOutline:a=new Vr(r.absolutePointer);break;case T.Cloud:a=new Yr(r.absolutePointer);break;case T.Tooltips:a=new Gr(r.absolutePointer);break;case T.Lightning:a=new jr(r.absolutePointer);break;case T.Close:a=new zr(r.absolutePointer);break;case T.Check:a=new Ur(r.absolutePointer);break;case T.Info:a=new Zr(r.absolutePointer);break;case T.Backspace:a=new $r(r.absolutePointer);break;case T.Block:a=new qr(r.absolutePointer);break;case T.Speaker:a=new Kr(r.absolutePointer);break;case T.Search:a=new Jr(r.absolutePointer);break;case T.InfoOutline:a=new Qr(r.absolutePointer);break;case T.Heart:a=new ea(r.absolutePointer);break;case T.Alert:a=new ta(r.absolutePointer);break}else if(N.getState().drawType===ce.FreeStyle)switch(m.getState().drawStyle){case E.Shape:a=new br;break;case E.Pixels:a=new yr;break;case E.Text:a=new Lr;break;case E.MultiLine:a=new Ir;break;case E.Reticulate:a=new lr;break;case E.Rainbow:a=new Rr;break;case E.Thorn:a=new Nr;break;case E.MultiPoint:a=new Or;break;case E.Wiggle:a=new Fr;break}}this.currentElement=a}),e==null||e.on("mouse:move",r=>{var a;if(this.isMouseDown){if(this.isSpaceKeyDown){e.relativePan(new p.fabric.Point(r.e.movementX,r.e.movementY));return}if((a=c.evnet)!=null&&a.touchEvent.isTwoTouch)return;N.getState().mode===F.DRAW&&this.currentElement&&this.currentElement.addPosition(r.absolutePointer)}}),e==null||e.on("mouse:up",r=>{var a,n;if(this.isMouseDown=!1,this.currentElement){let s=!1;if(this.startPoint&&r.absolutePointer){const{x:i,y:d}=this.startPoint,{x:h,y:g}=r.absolutePointer;i===h&&d===g&&(this.currentElement.destroy(),s=!0)}s||((this.currentElement instanceof Je||this.currentElement instanceof Qe)&&((a=this.currentElement)==null||a.mouseUp()),(n=c.history)==null||n.saveState()),this.currentElement=null}}),e==null||e.on("mouse:dblclick",r=>{var a;if(r!=null&&r.absolutePointer){const{x:n,y:s}=r.absolutePointer;(a=c.textElement)==null||a.loadText(n,s)}})}setSpaceKeyDownState(e){this.isSpaceKeyDown=e}}class aa{constructor(){this.initObjectEvent(),this.initTextEvent()}initObjectEvent(){const e=c==null?void 0:c.canvas;e==null||e.on("selection:created",()=>{c.triggerHook()}),e==null||e.on("selection:updated",()=>{c.triggerHook()}),e==null||e.on("selection:cleared",()=>{c.triggerHook()}),e==null||e.on("path:created",r=>{var n;const{mode:a}=N.getState();if([F.DRAW,F.ERASE].includes(a)){if(a===F.DRAW){const s=pe();r.path.set({id:s,perPixelTargetFind:!0})}(n=c.history)==null||n.saveState()}}),e==null||e.on("object:modified",r=>{var a,n;if(((a=r.target)==null?void 0:a.type)==="i-text"){const s=r.target;if(s._textBeforeEdit===s.text)return}r.action&&r.target&&((n=c.history)==null||n.saveState())})}initTextEvent(){const e=c==null?void 0:c.canvas;e==null||e.on("text:editing:entered",()=>{c.textElement.isTextEditing=!0}),e==null||e.on("text:editing:exited",r=>{const a=r==null?void 0:r.target;a&&(c.textElement.isTextEditing=!1,a!=null&&a._customType||_(a,P.I_TEXT),(a==null?void 0:a._textBeforeEdit)!==(a==null?void 0:a.text)&&(e.discardActiveObject(),c.render()))})}}let ge;const me=.3,ye=5;class na{constructor(){u(this,"updateZoomPercentage",$.exports.debounce((e=!0,r)=>{var n;const a=this.handleZoomPercentage(e);return te.getState().updateZoom(r),N.getState().isObjectCaching||p.fabric.Object.prototype.set({objectCaching:!1}),(n=c.canvas)==null||n.requestRenderAll(),a},500));this.initWheelEvent()}initWheelEvent(){const e=c==null?void 0:c.canvas;e==null||e.on("mouse:wheel",r=>{var d;(d=c.textElement)==null||d.resetText();const a=r.e.deltaY;let n=e.getZoom();if(n=a>0?n*1.1:n/1.1,nye)return;N.getState().isObjectCaching||p.fabric.Object.prototype.set({objectCaching:!0});const s=((e==null?void 0:e.width)||1)/2,i=((e==null?void 0:e.height)||1)/2;n=Math.max(me,Math.min(ye,n)),e.zoomToPoint({x:s,y:i},n),r.e.preventDefault(),r.e.stopPropagation(),this.updateZoomPercentage(!0,n)})}initZoom(){const e=c.canvas;if(e){const r=((e==null?void 0:e.width)||1)/2,a=((e==null?void 0:e.height)||1)/2;e.zoomToPoint(new p.fabric.Point(r,a),1),this.updateZoomPercentage(!0,1)}}handleZoomPercentage(e=!0){const r=c.canvas;let a=1;if(r){const n=r.getZoom();a=Math.round((n-me)/(ye-me)*100),sa()}return e&&ge&&(ge==null||ge(a)),a}setZoomHook(e){ge=e}}const sa=()=>{var e;const t=(e=c.canvas)==null?void 0:e.freeDrawingBrush;if(!!t)switch(N.getState().mode){case F.ERASE:t.width=Oe();break;case F.DRAW:[E.Basic,E.Material,E.MultiColor].includes(m.getState().drawStyle)&&(t.width=fe(),m.getState().drawStyle===E.Basic&&t.shadow&&(t.shadow.blur=we()));break}};class oa{constructor(){u(this,"isTwoTouch",!1);u(this,"isDragging",!1);u(this,"startDistance",1);u(this,"startX",0);u(this,"startY",0);u(this,"startScale",1);u(this,"lastPan");u(this,"touchStartFn",e=>{e.preventDefault();const r=c.canvas;if(!r)return;const a=e.touches;if(ot.updateIsDisableDraw(a.length>=2),a.length===2){this.isTwoTouch=!0;const n=a[0],s=a[1];this.startDistance=Math.hypot(s.pageX-n.pageX,s.pageY-n.pageY),this.startX=(n.pageX+s.pageX)/2,this.startY=(n.pageY+s.pageY)/2,this.startScale=r.getZoom()}});u(this,"touchMoveFn",e=>{var n;e.preventDefault();const r=c.canvas;if(!r)return;const a=e.touches;if(a.length===2){const s=a[0],i=a[1],d=Math.hypot(i.pageX-s.pageX,i.pageY-s.pageY),h=(s.pageX+i.pageX)/2,g=(s.pageY+i.pageY)/2;let f=this.startScale*(d/this.startDistance);f=Math.max(me,Math.min(ye,f)),N.getState().isObjectCaching||p.fabric.Object.prototype.set({objectCaching:!0}),r.zoomToPoint(new p.fabric.Point(this.startX,this.startY),f),(n=c.evnet)==null||n.zoomEvent.updateZoomPercentage(!0,f);const v=new p.fabric.Point(h-this.startX,g-this.startY);this.isDragging?this.lastPan&&(N.getState().isObjectCaching||p.fabric.Object.prototype.set({objectCaching:!0}),r.relativePan(new p.fabric.Point(v.x-this.lastPan.x,v.y-this.lastPan.y)),this.lastPan=v,this.saveTransform()):(this.isDragging=!0,this.lastPan=v)}});u(this,"touchEndFn",e=>{this.isDragging=!1,this.isTwoTouch&&e.touches.length===0&&(this.isTwoTouch=!1)});u(this,"saveTransform",$.exports.debounce(()=>{var r,a;const e=(r=c.canvas)==null?void 0:r.viewportTransform;e&&(te.getState().updateTransform(e),N.getState().isObjectCaching||p.fabric.Object.prototype.set({objectCaching:!1}),(a=c.canvas)==null||a.requestRenderAll())},500));this.initTouchEvent()}initTouchEvent(){var r;const e=(r=c==null?void 0:c.canvas)==null?void 0:r.upperCanvasEl;e&&(e.addEventListener("touchstart",this.touchStartFn,{passive:!1}),e.addEventListener("touchmove",this.touchMoveFn,{passive:!1}),e.addEventListener("touchend",this.touchEndFn,{passive:!1}))}removeTouchEvent(){var r;const e=(r=c==null?void 0:c.canvas)==null?void 0:r.upperCanvasEl;e&&(e.removeEventListener("touchstart",this.touchStartFn),e.removeEventListener("touchmove",this.touchMoveFn),e.removeEventListener("touchend",this.touchEndFn))}}var Se=(t=>(t.SPACE="Space",t.BACKSPACE="Backspace",t))(Se||{});class xt{constructor(){u(this,"image",null)}addImage(e){const r=c.canvas;!r||p.fabric.Image.fromURL(e,a=>{const n=r.getVpCenter(),s=r.getWidth()/2/((a==null?void 0:a.width)||1),i=r.getHeight()/2/((a==null?void 0:a.height)||1),d=Math.min(s,i,1);a.scale(d),a.set({left:n.x-a.getScaledWidth()/2,top:n.y-a.getScaledHeight()/2}),_(a,P.IMAGE),r.add(a),c.render()},{crossOrigin:"anonymous"})}}function ia(t,e){var a,n,s,i,d,h,g,f,v,R,k,S,b,w,C,M,I,L;const r=(n=(a=t.filters)==null?void 0:a.findIndex(y=>(y==null?void 0:y.type)===e))!=null?n:-1;if(r>-1)(s=t.filters)==null||s.splice(r,1);else switch(e){case"Grayscale":(i=t.filters)==null||i.push(new p.fabric.Image.filters.Grayscale);break;case"Invert":(d=t.filters)==null||d.push(new p.fabric.Image.filters.Invert);break;case"BlackWhite":(h=t.filters)==null||h.push(new p.fabric.Image.filters.BlackWhite);break;case"Sepia":(g=t.filters)==null||g.push(new p.fabric.Image.filters.Sepia);break;case"Blur":(f=t.filters)==null||f.push(new p.fabric.Image.filters.Blur({blur:.5}));break;case"Vintage":(v=t.filters)==null||v.push(new p.fabric.Image.filters.Vintage);break;case"BlendColor":(R=t.filters)==null||R.push(new p.fabric.Image.filters.BlendColor({color:"#66CC89",mode:"diff"}));break;case"Brownie":(k=t.filters)==null||k.push(new p.fabric.Image.filters.Brownie);break;case"Kodachrome":(S=t.filters)==null||S.push(new p.fabric.Image.filters.Kodachrome);break;case"Pixelate":(b=t.filters)==null||b.push(new p.fabric.Image.filters.Pixelate);break;case"Polaroid":(w=t.filters)==null||w.push(new p.fabric.Image.filters.Polaroid);break;case"Technicolor":(C=t.filters)==null||C.push(new p.fabric.Image.filters.Technicolor);break;case"Brightness":(M=t.filters)==null||M.push(new p.fabric.Image.filters.Brightness({brightness:.6}));break;case"Noise":(I=t.filters)==null||I.push(new p.fabric.Image.filters.Noise({noise:100}));break;case"Convolute":(L=t.filters)==null||L.push(new p.fabric.Image.filters.Convolute({matrix:[1,1,1,1,.7,-1,-1,-1,-1]}));break}t.applyFilters()}class ca{constructor(){this.initWindowEvent()}initWindowEvent(){window.addEventListener("keydown",this.keydownFn),window.addEventListener("keyup",this.keyupFn),window.addEventListener("paste",this.pasteFn),window.addEventListener("resize",this.resizeFn),window.addEventListener("orientationchange",this.resizeFn)}removeWindowEvent(){window.removeEventListener("keydown",this.keydownFn),window.removeEventListener("keyup",this.keyupFn),window.removeEventListener("paste",this.pasteFn),window.removeEventListener("resize",this.resizeFn),window.removeEventListener("orientationchange",this.resizeFn)}keydownFn(e){var a;const r=c==null?void 0:c.canvas;switch(e.code){case Se.SPACE:(a=c==null?void 0:c.evnet)==null||a.clickEvent.setSpaceKeyDownState(!0),r&&(N.getState().isObjectCaching||p.fabric.Object.prototype.set({objectCaching:!0}),r.defaultCursor="pointer",r.isDrawingMode=!1,r.selection=!1,p.fabric.Object.prototype.set({selectable:!1,hoverCursor:"pointer"}));break;case Se.BACKSPACE:c.deleteObject();break}}keyupFn(e){var r,a;if(e.code===Se.SPACE){(r=c.evnet)==null||r.clickEvent.setSpaceKeyDownState(!1),c.canvas&&(c.canvas.defaultCursor="default");const n=(a=c.canvas)==null?void 0:a.viewportTransform;n&&(te.getState().updateTransform(n),N.getState().isObjectCaching||p.fabric.Object.prototype.set({objectCaching:!1}),c.handleMode())}}pasteFn(e){if(e.clipboardData&&e.clipboardData.items){const r=e.clipboardData.items,a=Array.from(r).find(n=>n.kind==="file"&&n.type.indexOf("image")!==-1);if(a){const n=a.getAsFile();if(n){const s=new FileReader;s.onload=i=>{var h;const d=(h=i.target)==null?void 0:h.result;d&&typeof d=="string"&&new xt().addImage(d)},s.readAsDataURL(n)}}}}resizeFn(){const e=c.canvas;e&&(e.setWidth(window.innerWidth*N.getState().canvasWidth),e.setHeight(window.innerHeight*N.getState().canvasHeight),ue())}}class la{constructor(){u(this,"clickEvent");u(this,"zoomEvent");u(this,"objectEvent");u(this,"windowEvent");u(this,"touchEvent");const e=new ra;this.clickEvent=e;const r=new na;this.zoomEvent=r;const a=new aa;this.objectEvent=a;const n=new ca;this.windowEvent=n;const s=new oa;this.touchEvent=s}removeEvent(){this.windowEvent.removeWindowEvent(),this.touchEvent.removeTouchEvent()}}const Z={BOLD:"bold",ITALIC:"italic",UNDER_LINE:"underline",LINE_THROUGH:"linethrough"};class da{constructor(){u(this,"text",null);u(this,"isTextEditing",!1)}loadText(e,r){var n;const a=c==null?void 0:c.canvas;if(a){const s=a.getVpCenter(),{fontStyles:i,drawColors:d,textFontFamily:h}=m.getState(),g=$.exports.isUndefined(e)&&$.exports.isUndefined(r),f=new p.fabric.IText("Type here...",{originX:g?"center":"left",originY:g?"center":"top",left:g?s.x:e,top:g?s.y:r,fill:d[0],fontSize:25/((n=a==null?void 0:a.getZoom())!=null?n:1),fontFamily:h,fontWeight:i.includes(Z.BOLD)?"bold":"normal",fontStyle:i.includes(Z.ITALIC)?"italic":"normal",underline:i.includes(Z.UNDER_LINE),linethrough:i.includes(Z.LINE_THROUGH)});this.text=f,a.add(f),a.setActiveObject(f),f.enterEditing(),f.selectAll()}}resetText(){this!=null&&this.text&&(this.text.exitEditing(),this.text=null)}}const ha=()=>{const t=c.canvas;if(!t)return;const e=new p.fabric.PencilBrush(t);t.isDrawingMode=!0,t.freeDrawingBrush=e,t.freeDrawingBrush.width=fe(),t.freeDrawingBrush.color=m.getState().drawColors[0],t.freeDrawingBrush.shadow=new p.fabric.Shadow({blur:we(),offsetX:0,offsetY:0,color:m.getState().shadowColor})};class pa{constructor(){u(this,"canvas",null);u(this,"evnet",null);u(this,"history",null);u(this,"textElement");u(this,"hookFn",[]);u(this,"updateCanvasWidth",$.exports.debounce(e=>{this.canvas&&(this.canvas.setWidth(window.innerWidth*e),ue(),te.getState().updateCanvasWidth(e))},500));u(this,"updateCanvasHeight",$.exports.debounce(e=>{this.canvas&&(this.canvas.setHeight(window.innerHeight*e),ue(),te.getState().updateCanvasHeight(e))},500));this.textElement=new da}initCanvas(e){return new Promise(async r=>{this.canvas=new p.fabric.Canvas(e,{selectionColor:"rgba(101, 204, 138, 0.3)",preserveObjectStacking:!0,enableRetinaScaling:!0,backgroundVpt:!1}),p.fabric.Object.prototype.set({borderColor:"#65CC8A",cornerColor:"#65CC8A",cornerStyle:"circle",borderDashArray:[3,3],transparentCorners:!1}),p.fabric.Line.prototype.strokeLineJoin="round",p.fabric.Line.prototype.strokeLineCap="round",st()&&ot.initCanvas(this.canvas),it.init(this.canvas,N.getState().openGuideLine),this.evnet=new la,this.handleMode(),await this.initCanvasStorage(),r(!0)})}removeCanvas(){var e,r;this.canvas&&((e=this==null?void 0:this.canvas)==null||e.dispose(),(r=this.evnet)==null||r.removeEvent(),this.canvas=null)}initCanvasStorage(){return new Promise(e=>{setTimeout(()=>{const{files:r,currentId:a}=te.getState(),n=r==null?void 0:r.find(s=>(s==null?void 0:s.id)===a);n&&this.canvas?(this.canvas.clear(),this.canvas.loadFromJSON(n.boardData,()=>{this.canvas&&(n.viewportTransform&&this.canvas.setViewportTransform(n.viewportTransform),(n==null?void 0:n.zoom)&&this.canvas.width&&this.canvas.height&&this.canvas.zoomToPoint(new p.fabric.Point(this.canvas.width/2,this.canvas.height/2),n.zoom),this.canvas.setWidth(window.innerWidth*((n==null?void 0:n.canvasWidth)||1)),N.getState().updateCanvasWidth((n==null?void 0:n.canvasWidth)||1),this.canvas.setHeight(window.innerHeight*((n==null?void 0:n.canvasHeight)||1)),N.getState().initBackground(),N.getState().updateCanvasHeight((n==null?void 0:n.canvasHeight)||1),Te(this.canvas),p.fabric.Object.prototype.set({objectCaching:N.getState().isObjectCaching}),this.canvas.renderAll(),this.triggerHook(),this.history=new nr),e(!0)})):e(!0)},300)})}handleMode(e=N.getState().mode){if(!this.canvas)return;let r=!1,a=!1;const n={selectable:!1,hoverCursor:"default"};switch(e){case F.DRAW:N.getState().drawType===ce.FreeStyle&&[E.Basic,E.Material,E.MultiColor].includes(m.getState().drawStyle)&&(r=!0,this.handleDrawStyle()),this.canvas.discardActiveObject();break;case F.ERASE:r=!0,this.canvas.freeDrawingBrush=new p.fabric.EraserBrush(this.canvas),this.canvas.freeDrawingBrush.width=Oe(),this.canvas.freeDrawingBrush.color="#FFF",this.canvas.discardActiveObject();break;case F.Board:case F.SELECT:n.selectable=!0,n.hoverCursor=void 0,a=!0;break}this.canvas.isDrawingMode=r,this.canvas.selection=a,p.fabric.Object.prototype.set(n),this.canvas.forEachObject(s=>{s._customType===P.I_TEXT&&(s.selectable=n.selectable,s.hoverCursor=n.hoverCursor)}),this.canvas.requestRenderAll()}handleDrawStyle(){if(!this.canvas)return;switch(m.getState().drawStyle){case E.Basic:ha();break;case E.Material:this.canvas.isDrawingMode=!0,Re.render({});break;case E.MultiColor:Pe({});break;default:this.canvas.isDrawingMode=!1;break}}deleteObject(){if(!this.textElement.isTextEditing&&this.canvas){const e=this.canvas.getActiveObjects();e!=null&&e.length&&(this.canvas.discardActiveObject(),e==null||e.forEach(r=>{var a;(a=this.canvas)==null||a.remove(r)}),this.render())}}render(){var e,r;this.canvas&&((e=this.canvas)==null||e.requestRenderAll(),(r=this.history)==null||r.saveState())}copyObject(){const e=this.canvas;if(!e)return;const r=e.getActiveObjects();if(r.length<=0)return;e.discardActiveObject();const a=r.map(n=>new Promise(s=>{n==null||n.clone(i=>{const d=pe();i.set({left:((i==null?void 0:i.left)||0)+10,top:((i==null?void 0:i.top)||0)+10,evented:!0,id:d,perPixelTargetFind:!0}),s(i),e.add(i)})}));Promise.all(a).then(n=>{const s=new p.fabric.ActiveSelection(n,{canvas:e});e.setActiveObject(s),this.render()})}bringForWard(){const e=this.canvas;if(e){const r=e.getActiveObject();r&&(e.bringForward(r,!0),this.render())}}seendBackWard(){const e=this.canvas;if(e){const r=e.getActiveObject();r&&(e.sendBackwards(r,!0),this.render())}}bringToFront(){const e=this.canvas;if(e){const r=e.getActiveObject();r&&(e.bringToFront(r),this.render())}}sendToBack(){const e=this.canvas;if(e){const r=e.getActiveObject();r&&(e.sendToBack(r),this.render())}}addHookFn(e){this.hookFn.push(e)}removeHookFn(e){const r=this.hookFn.findIndex(a=>a===e);r>-1&&this.hookFn.splice(r,1)}triggerHook(){this.hookFn.map(e=>{e==null||e()})}}const c=new pa,ua=[{type:F.DRAW,text:"tool.draw"},{type:F.ERASE,text:"tool.eraser"},{type:F.SELECT,text:"tool.select"},{type:F.Board,text:"tool.board"}],ga=[{type:ce.FreeStyle,text:"drawType.freeStyle"},{type:ce.Shape,text:"drawType.shape"}],ma=()=>{const{drawShapeCount:t,updateDrawShapeCount:e}=m(),{t:r}=A();return x("div",{className:"mt-3",children:[l("div",{className:"font-bold text-sm font-fredokaOne",children:r("title.shapeCount")}),l("input",{type:"range",min:"1",max:"5",value:t,className:"range range-primary range-xs",step:"1",onChange:a=>e(Number(a.target.value))}),x("div",{className:"w-full flex justify-between text-xs px-2 font-fredokaOne",children:[l("span",{children:"1"}),l("span",{children:"2"}),l("span",{children:"3"}),l("span",{children:"4"}),l("span",{children:"5"})]})]})},fa=t=>o.exports.createElement("svg",{height:"18px",width:"18px",id:"_x32_",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512",xmlSpace:"preserve",fill:"currentColor",...t},o.exports.createElement("g",{id:"SVGRepo_bgCarrier",strokeWidth:0}),o.exports.createElement("g",{id:"SVGRepo_tracerCarrier",strokeLinecap:"round",strokeLinejoin:"round"}),o.exports.createElement("g",{id:"SVGRepo_iconCarrier"},o.exports.createElement("g",null,o.exports.createElement("path",{fill:"currentColor",d:"M133.048,121.218c-1.663,0-3.296,0.337-4.841,0.996c-20.036,8.606-36.119,24.218-45.306,43.973 c-1.381,2.966-1.522,6.3-0.4,9.375c1.122,3.083,3.382,5.546,6.371,6.936c1.64,0.761,3.373,1.146,5.17,1.146 c4.762,0,9.14-2.794,11.14-7.116c6.646-14.27,18.256-25.544,32.715-31.726c3.013-1.294,5.342-3.68,6.567-6.732 c1.216-3.044,1.177-6.386-0.118-9.398C142.408,124.144,137.967,121.218,133.048,121.218z"}),o.exports.createElement("path",{fill:"currentColor",d:"M325.854,203.342c-0.016-89.821-73.11-162.915-162.932-162.931C73.102,40.427,0.015,113.521,0,203.342 c0.015,89.821,73.102,162.908,162.923,162.924C252.744,366.25,325.838,293.163,325.854,203.342z M162.923,334.344 c-34.974-0.008-67.869-13.636-92.629-38.372c-24.736-24.768-38.364-57.664-38.372-92.63c0.008-34.982,13.635-67.877,38.372-92.63 c24.775-24.743,57.671-38.371,92.629-38.379c34.967,0.008,67.862,13.636,92.63,38.379c24.744,24.768,38.372,57.664,38.38,92.63 c-0.008,34.959-13.635,67.854-38.38,92.63C230.793,320.708,197.898,334.336,162.923,334.344z"}),o.exports.createElement("path",{fill:"currentColor",d:"M427.458,69.815c-46.6,0.008-84.532,37.932-84.549,84.541c0.016,46.601,37.948,84.525,84.549,84.541 c46.601-0.016,84.526-37.94,84.542-84.541C511.984,107.747,474.06,69.823,427.458,69.815z M464.661,191.575 c-9.963,9.924-23.175,15.392-37.203,15.4c-14.035-0.008-27.247-5.476-37.218-15.408c-9.924-9.963-15.392-23.175-15.4-37.21 c0.008-14.035,5.476-27.246,15.408-37.219c9.963-9.924,23.175-15.392,37.21-15.4c14.028,0.008,27.24,5.477,37.211,15.408 c9.924,9.964,15.4,23.184,15.408,37.211C480.07,168.383,474.593,181.603,464.661,191.575z"}),o.exports.createElement("path",{fill:"currentColor",d:"M349.076,251.325c-2.683,10.434-6.261,20.664-10.654,30.487c16.146,2.808,30.761,10.379,42.428,22.03 c15.024,15.047,23.292,35.029,23.301,56.258c-0.008,21.23-8.277,41.212-23.301,56.258c-15.048,15.024-35.03,23.301-56.258,23.309 c-21.23-0.008-41.212-8.284-56.266-23.309c-11.015-11.03-18.421-24.822-21.559-40.042c-9.666,4.691-19.746,8.574-30.056,11.572 c12.655,49.386,56.699,83.686,107.882,83.701c61.46-0.015,111.473-50.029,111.489-111.489 C436.065,308.038,399.608,262.661,349.076,251.325z"})))),wa=t=>o.exports.createElement("svg",{fill:"#ffffff",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"16px",height:"16px",viewBox:"0 0 940.688 940.688",xmlSpace:"preserve",stroke:"currentColor",...t},o.exports.createElement("g",{id:"SVGRepo_bgCarrier",strokeWidth:0}),o.exports.createElement("g",{id:"SVGRepo_tracerCarrier",strokeLinecap:"round",strokeLinejoin:"round"}),o.exports.createElement("g",{id:"SVGRepo_iconCarrier"},o.exports.createElement("g",null,o.exports.createElement("path",{fill:"currentColor",d:"M885.344,319.071l-258-3.8l-102.7-264.399c-19.8-48.801-88.899-48.801-108.6,0l-102.7,264.399l-258,3.8 c-53.4,3.101-75.1,70.2-33.7,103.9l209.2,181.4l-71.3,247.7c-14,50.899,41.1,92.899,86.5,65.899l224.3-122.7l224.3,122.601 c45.4,27,100.5-15,86.5-65.9l-71.3-247.7l209.2-181.399C960.443,389.172,938.744,322.071,885.344,319.071z"})))),xa=t=>o.exports.createElement("svg",{fill:"currentColor",width:"20px",height:"20px",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",...t},o.exports.createElement("g",{id:"SVGRepo_bgCarrier",strokeWidth:0}),o.exports.createElement("g",{id:"SVGRepo_tracerCarrier",strokeLinecap:"round",strokeLinejoin:"round"}),o.exports.createElement("g",{id:"SVGRepo_iconCarrier"},o.exports.createElement("path",{d:"M20.808,11.079C19.829,16.132,12,20.5,12,20.5s-7.829-4.368-8.808-9.421C2.227,6.1,5.066,3.5,8,3.5a4.444,4.444,0,0,1,4,2,4.444,4.444,0,0,1,4-2C18.934,3.5,21.773,6.1,20.808,11.079Z"}))),va=t=>o.exports.createElement("svg",{fill:"currentColor",width:"16px",height:"16px",viewBox:"0 0 512 512",xmlns:"http://www.w3.org/2000/svg",...t},o.exports.createElement("g",{id:"SVGRepo_bgCarrier",strokeWidth:0}),o.exports.createElement("g",{id:"SVGRepo_tracerCarrier",strokeLinecap:"round",strokeLinejoin:"round"}),o.exports.createElement("g",{id:"SVGRepo_iconCarrier"},o.exports.createElement("path",{d:"M214.37 208H70.57c-31 0-57.37 14.9-67.26 45.33C1.57 258.71 0 265.54 0 272c0 48 96 128 144 128 28.95 0 53.24-10.67 75.72-33.14-8.58 11.05-13.81 23.47-15.72 37.28-6.98 49.25 1.73 83.2 27.23 91.48C255.99 503.66 288 512 304 512c48 0 53.35-109.18 26.33-144.39L214.37 208zm29.29-21.28L288.1 49.96C297.68 20.47 320 0 352 0c5.66 0 12.64.62 18.78 2.61 45.65 14.84 92.07 130.86 77.23 176.51-8.94 27.54-26.59 47.34-54.91 61.77 13.15-4.74 26.59-5.88 40.31-3.42 49 8.58 78.59 27.35 78.59 54.16 0 26.04-1.96 59.05-6.91 74.27-14.83 45.65-120.32 17.01-145.46-19.58l-115.97-159.6z"}))),Ca=t=>o.exports.createElement("svg",{width:"18px",height:"18px",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",stroke:"currentColor",...t},o.exports.createElement("g",{id:"SVGRepo_bgCarrier",strokeWidth:0}),o.exports.createElement("g",{id:"SVGRepo_tracerCarrier",strokeLinecap:"round",strokeLinejoin:"round"}),o.exports.createElement("g",{id:"SVGRepo_iconCarrier"},o.exports.createElement("path",{d:"M11.9994 3V7M11.9994 7V17M11.9994 7L8.99943 4M11.9994 7L14.9994 4M11.9994 17V21M11.9994 17L8.99943 20M11.9994 17L14.9994 20M4.20624 7.49999L7.67034 9.49999M7.67034 9.49999L16.3306 14.5M7.67034 9.49999L3.57227 10.5981M7.67034 9.49999L6.57227 5.40191M16.3306 14.5L19.7947 16.5M16.3306 14.5L17.4287 18.5981M16.3306 14.5L20.4287 13.4019M4.2067 16.5L7.6708 14.5M7.6708 14.5L16.3311 9.49999M7.6708 14.5L3.57273 13.4019M7.6708 14.5L6.57273 18.5981M16.3311 9.49999L19.7952 7.49999M16.3311 9.49999L17.4291 5.40192M16.3311 9.49999L20.4291 10.5981",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"}))),ba=t=>o.exports.createElement("svg",{width:"18px",height:"18px",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...t},o.exports.createElement("g",{id:"SVGRepo_bgCarrier",strokeWidth:0}),o.exports.createElement("g",{id:"SVGRepo_tracerCarrier",strokeLinecap:"round",strokeLinejoin:"round"}),o.exports.createElement("g",{id:"SVGRepo_iconCarrier"},o.exports.createElement("path",{d:"M10.0909 11.9629L19.3636 8.63087V14.1707C18.8126 13.8538 18.1574 13.67 17.4545 13.67C15.4964 13.67 13.9091 15.096 13.9091 16.855C13.9091 18.614 15.4964 20.04 17.4545 20.04C19.4126 20.04 21 18.614 21 16.855C21 16.855 21 16.8551 21 16.855L21 7.49236C21 6.37238 21 5.4331 20.9123 4.68472C20.8999 4.57895 20.8852 4.4738 20.869 4.37569C20.7845 3.86441 20.6352 3.38745 20.347 2.98917C20.2028 2.79002 20.024 2.61055 19.8012 2.45628C19.7594 2.42736 19.716 2.39932 19.6711 2.3722L19.6621 2.36679C18.8906 1.90553 18.0233 1.93852 17.1298 2.14305C16.2657 2.34086 15.1944 2.74368 13.8808 3.23763L11.5963 4.09656C10.9806 4.32806 10.4589 4.52419 10.0494 4.72734C9.61376 4.94348 9.23849 5.1984 8.95707 5.57828C8.67564 5.95817 8.55876 6.36756 8.50501 6.81203C8.4545 7.22978 8.45452 7.7378 8.45455 8.33743V16.1307C7.90347 15.8138 7.24835 15.63 6.54545 15.63C4.58735 15.63 3 17.056 3 18.815C3 20.574 4.58735 22 6.54545 22C8.50355 22 10.0909 20.574 10.0909 18.815C10.0909 18.815 10.0909 18.8151 10.0909 18.815L10.0909 11.9629Z",fill:"currentColor"}))),ya=t=>o.exports.createElement("svg",{fill:"currentColor",width:"20px",height:"20px",viewBox:"0 0 32 32",xmlns:"http://www.w3.org/2000/svg",...t},o.exports.createElement("g",{id:"SVGRepo_bgCarrier",strokeWidth:0}),o.exports.createElement("g",{id:"SVGRepo_tracerCarrier",strokeLinecap:"round",strokeLinejoin:"round"}),o.exports.createElement("g",{id:"SVGRepo_iconCarrier"},o.exports.createElement("title",null,"sun"),o.exports.createElement("path",{d:"M23.395 14.106c2.958-1.383 2.828-6.068 5.758-5.884-4.125-2.74-4.019 3.106-9.089 1.235 1.107-3.068-2.292-6.286-0.091-8.227-4.855 0.979-0.645 5.039-5.555 7.301-1.384-2.958-6.068-2.828-5.884-5.758-2.74 4.125 3.106 4.019 1.235 9.089-3.068-1.107-6.286 2.292-8.227 0.091 0.979 4.855 5.039 0.645 7.301 5.555-2.958 1.384-2.828 6.068-5.758 5.884 4.125 2.74 4.019-3.106 9.089-1.235-1.107 3.068 2.292 6.286 0.091 8.227 4.855-0.979 0.645-5.039 5.555-7.301 1.384 2.958 6.068 2.828 5.884 5.758 2.74-4.125-3.106-4.019-1.235-9.089 3.068 1.107 6.286-2.292 8.226-0.091-0.979-4.855-5.039-0.645-7.301-5.555z"}))),Sa=t=>o.exports.createElement("svg",{width:"18px",height:"18px",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",stroke:"currentColor",...t},o.exports.createElement("g",{id:"SVGRepo_bgCarrier",strokeWidth:0}),o.exports.createElement("g",{id:"SVGRepo_tracerCarrier",strokeLinecap:"round",strokeLinejoin:"round"}),o.exports.createElement("g",{id:"SVGRepo_iconCarrier"},o.exports.createElement("path",{d:"M12 22C17.5228 22 22 17.5228 22 12C22 11.5373 21.3065 11.4608 21.0672 11.8568C19.9289 13.7406 17.8615 15 15.5 15C11.9101 15 9 12.0899 9 8.5C9 6.13845 10.2594 4.07105 12.1432 2.93276C12.5392 2.69347 12.4627 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z",fill:"currentColor"}))),ka=t=>o.exports.createElement("svg",{height:"16px",width:"16px",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",viewBox:"0 0 25.263 25.263",xmlSpace:"preserve",fill:"currentColor",stroke:"currentColor",...t},o.exports.createElement("g",{id:"SVGRepo_bgCarrier",strokeWidth:0}),o.exports.createElement("g",{id:"SVGRepo_tracerCarrier",strokeLinecap:"round",strokeLinejoin:"round"}),o.exports.createElement("g",{id:"SVGRepo_iconCarrier"},o.exports.createElement("g",null,o.exports.createElement("path",{d:"M15.362,9.69c0,0-0.75,1.108-1.068,0c-0.318-1.109-1.346-4.949-1.762-5.226 c-0.417-0.278-0.417-0.278-0.417-0.278s-0.078,1.506-0.594,1.307c-0.515-0.198-4.313-2.217-4.63-2.652L6.574,2.444 c0,0,0.355,3.328-0.515,2.615c0,0,1.113,2.771-2.573,3.048c0,0,1.186,3.087,4.552,4.75c0,0,1.148,1.783-0.949,1.503 c0,0-2.932-0.395-3.325-0.752c0,0-1.548,3.01-3.764,3.128c0,0,2.656,1.504,2.337,4.156c0,0,5.107,0.041,4.911,0.832 c-0.2,0.795-0.555,1.601-0.555,1.601s4.71-0.929,5.422-2.194c0,0,0.989,0.99,1.071,1.939c0,0,2.693-0.594,2.452-2.296 c0,0,1.269,0.948,1.427,2.551l0.554-0.375c0,0-0.319-1.661-1.464-2.967c0,0-0.517-1.308,0.789-0.633c0,0,3.085,1.029,5.7-0.833 c0,0-2.888-0.948-3.006-1.978c0,0,5.394-3.326,5.625-5.542c0,0-1.944,0.198-2.972-0.633c0,0-1.309-0.396,0.394-4.791 c0,0-1.227,0.724-1.62-3.636c0,0-3.051,4.665-4.518,3.082C16.548,5.018,15.165,8.066,15.362,9.69z"})))),La=t=>o.exports.createElement("svg",{id:"_x32_",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"16px",height:"16px",viewBox:"0 0 512 512",xmlSpace:"preserve",fill:"currentColor",...t},o.exports.createElement("g",{id:"SVGRepo_bgCarrier",strokeWidth:0}),o.exports.createElement("g",{id:"SVGRepo_tracerCarrier",strokeLinecap:"round",strokeLinejoin:"round"}),o.exports.createElement("g",{id:"SVGRepo_iconCarrier"},o.exports.createElement("g",null,o.exports.createElement("path",{d:"M512,224.438c0-63.766-51.703-115.469-115.484-115.469c-8.781,0-17.328,1-25.531,2.859 C365.656,52.984,316.219,6.875,256,6.875c-60.234,0-109.672,46.109-114.984,104.953c-8.219-1.859-16.766-2.859-25.531-2.859 C51.703,108.969,0,160.672,0,224.438c0,47.594,28.797,88.469,69.906,106.141c-10.297,17.281-16.234,37.484-16.234,59.063 c0,63.766,51.703,115.484,115.484,115.484c34.625,0,65.672-15.266,86.844-39.406c21.156,24.141,52.219,39.406,86.844,39.406 c63.781,0,115.484-51.719,115.484-115.484c0-21.578-5.938-41.781-16.25-59.063C483.203,312.906,512,272.031,512,224.438z M256,372.531c-53.563,0-97-43.406-97-97c0-53.563,43.438-96.984,97-96.984s96.984,43.422,96.984,96.984 C352.984,329.125,309.563,372.531,256,372.531z"})))),et={line_1:[{type:V.Bubble,icon:fa},{type:V.Star,icon:wa},{type:V.Love,icon:xa},{type:V.Butterfly,icon:va},{type:V.Snow,icon:Ca}],line_2:[{type:V.Music,icon:ba},{type:V.Sun,icon:ya},{type:V.Moon,icon:Sa},{type:V.Leaf,icon:ka},{type:V.Flower,icon:La}]},Ea=()=>{const{drawShape:t,updateDrawShape:e}=m(),{t:r}=A();return x("div",{className:"mt-3",children:[l("div",{className:"font-bold text-sm font-fredokaOne",children:r("title.shapeType")}),Object.keys(et).map(a=>l("div",{className:"btn-group mt-1 flex",children:et[a].map(({type:n,icon:s})=>l("button",{className:`btn btn-xs flex-grow text-white ${t===n?"btn-active":""}`,onClick:()=>{e(n)},children:s({})},n))},a))]})},Ma=()=>{const{t}=A(),{shadowColor:e,updateShadowColor:r,shadowWidth:a,updateShadowWidth:n}=m();return x("div",{className:"mt-3",children:[l("div",{className:"font-bold text-sm font-fredokaOne",children:t("title.shadow")}),x("div",{className:"flex mt-1 items-center",children:[l("div",{className:"w-7 h-7 cursor-pointer",children:l("input",{type:"color",value:e,onChange:s=>{r(s.target.value)},className:"colorInput"})}),l("div",{className:"divider divider-horizontal mx-1"}),l("div",{className:"text-lg font-fredokaOne mr-2 text-primary-focus",children:a}),l("input",{type:"range",min:"0",max:"50",step:"5",value:a,className:"range range-primary range-xs cursor-pointer",onChange:s=>n(Number(s.target.value))})]})]})},le={georgia:"Georgia",fredokaOne:"Fredoka One",hanaleiFill:"Hanalei Fill",ruslanDisplay:"Ruslan Display",lobster:"Lobster",pacifico:"Pacifico",gloriaHallelujah:"Gloria Hallelujah"},vt=({fontFamily:t,updateFontFamily:e})=>{const{textFontFamily:r,updateTextFontFamily:a}=m(),{t:n}=A();return x(D,{children:[l("div",{className:"font-bold text-sm font-fredokaOne mt-3",children:n("title.fontFamily")}),l("div",{children:Object.keys(le).map(s=>x("label",{className:"flex justify-between items-center mt-2 w-full cursor-pointer",children:[l("div",{style:{fontFamily:`${le[s]}`},className:"text-xs",children:le[s]}),l("input",{type:"radio",name:"radio-5",className:"radio radio-success radio-sm",checked:(t||r)===le[s],onChange:()=>{a(le[s]),e==null||e(le[s])}})]},s))})]})},Ia=()=>{const{t}=A(),{drawTextValue:e,updateDrawTextValue:r}=m();return x("div",{className:"mt-3",children:[l("div",{className:"font-bold text-sm font-fredokaOne",children:t("title.drawText")}),l("div",{className:"flex mt-1 justify-between px-3 py-1.5 rounded-lg bg-primary cursor-pointer",children:l("input",{value:e,className:"px-2 rounded-lg flex-1",onInput:a=>r(a.target.value)})}),l(vt,{})]})},Ta=[{type:X.CARBON,image:de("pattern/carbon.png")},{type:X.CLOTH,image:de("pattern/cloth.png")},{type:X.CRAYON,image:de("pattern/crayon.png")},{type:X.OIL,image:de("pattern/oil.png")},{type:X.CRAYON_DARK,image:de("pattern/crayonDark.png")}],Ra=()=>{const{materialType:t,updateMaterialType:e,drawColors:r}=m(),{t:a}=A();return l(D,{children:x("div",{className:"mt-3",children:[l("div",{className:"font-bold text-sm font-fredokaOne",children:a("title.materialType")}),l("div",{className:"btn-group mt-1 flex",children:Ta.map(({type:n,image:s},i)=>l("button",{className:`btn btn-xs flex-grow ${t===n?"btn-active":""}`,onClick:()=>{e(n)},children:l("img",{src:s,alt:"",className:"w-5 h-3 opacity-60 rounded-sm",style:{backgroundColor:r[0]}})},i))})]})})},Pa=[ne.COL,ne.ROW,ne.CIRCLE],Na=()=>{const{multiColorType:t,updateMultiColorType:e,drawColors:r}=m(),{t:a}=A();return l(D,{children:x("div",{className:"mt-3",children:[l("div",{className:"font-bold text-sm font-fredokaOne",children:a("title.multiColorType")}),l("div",{className:"btn-group mt-1 flex",children:Pa.map((n,s)=>x("button",{className:`btn btn-xs flex-grow ${t===n?"btn-active":""}`,onClick:()=>{e(n)},children:[n===ne.COL&&l("div",{className:"flex w-4/6 h-4/6 rounded-lg overflow-hidden ",children:r.map((i,d)=>l("div",{className:"h-full flex-1",style:{backgroundColor:i}},d))}),n===ne.ROW&&l("div",{className:"flex flex-col w-4/6 h-4/6 rounded-lg overflow-hidden ",children:r.map((i,d)=>l("div",{className:"h-full flex-1",style:{backgroundColor:i}},d))}),n===ne.CIRCLE&&l("div",{className:"w-4/6 h-4/6 relative",children:r.map((i,d)=>l("div",{className:"h-4 w-4 rounded-full absolute top-0",style:{backgroundColor:i,left:`${d*5}px`}},d))})]},s))})]})})},Aa=()=>{const{t}=A(),{drawWidth:e,updateDrawWidth:r}=m();return x("div",{className:"mt-2",children:[l("div",{className:"font-bold text-sm font-fredokaOne",children:t("title.drawWidth")}),x("div",{className:"flex items-center",children:[l("div",{className:"text-lg font-fredokaOne mr-2 text-primary-focus",children:e}),l("input",{type:"range",min:"5",max:"30",step:"1",value:e,className:"range range-primary range-xs",onChange:a=>r(Number(a.target.value))})]})]})},Oa=t=>o.exports.createElement("svg",{fill:"#000000",width:"1.75rem",height:"1.75rem",viewBox:"5 5 22.00 22.00",xmlns:"http://www.w3.org/2000/svg",...t},o.exports.createElement("g",{id:"SVGRepo_bgCarrier",strokeWidth:0}),o.exports.createElement("g",{id:"SVGRepo_tracerCarrier",strokeLinecap:"round",strokeLinejoin:"round"}),o.exports.createElement("g",{id:"SVGRepo_iconCarrier"},o.exports.createElement("title",null,"add"),o.exports.createElement("path",{d:"M26.5 27h-3c-0.276 0-0.5-0.224-0.5-0.5s0.224-0.5 0.5-0.5h2.5v-2.5c0-0.276 0.224-0.5 0.5-0.5 0.275 0 0.5 0.224 0.5 0.5v3c0 0.276-0.225 0.5-0.5 0.5zM26.5 21c-0.276 0-0.5-0.224-0.5-0.5v-3c0-0.276 0.224-0.5 0.5-0.5 0.275 0 0.5 0.224 0.5 0.5v3c0 0.276-0.225 0.5-0.5 0.5zM26.5 15c-0.276 0-0.5-0.224-0.5-0.5v-3c0-0.276 0.224-0.5 0.5-0.5 0.275 0 0.5 0.224 0.5 0.5v3c0 0.276-0.225 0.5-0.5 0.5zM26.5 9c-0.276 0-0.5-0.224-0.5-0.5v-2.5h-2.5c-0.276 0-0.5-0.224-0.5-0.5s0.224-0.5 0.5-0.5h3c0.275 0 0.5 0.224 0.5 0.5v3c0 0.276-0.225 0.5-0.5 0.5zM20.5 27h-3c-0.276 0-0.5-0.224-0.5-0.5s0.224-0.5 0.5-0.5h3c0.275 0 0.5 0.224 0.5 0.5s-0.225 0.5-0.5 0.5zM20.5 6h-3c-0.276 0-0.5-0.224-0.5-0.5s0.224-0.5 0.5-0.5h3c0.275 0 0.5 0.224 0.5 0.5s-0.225 0.5-0.5 0.5zM19.938 15c0.552 0 1 0.447 1 1 0 0.552-0.448 1-1 1h-3v3c0 0.552-0.448 1-1 1-0.553 0-1-0.448-1-1v-3h-3c-0.552 0-1-0.448-1-1 0-0.553 0.447-1 1-1h3v-3c0-0.553 0.447-1 1-1 0.552 0 1 0.447 1 1v3h3zM14.5 6h-3c-0.276 0-0.5-0.224-0.5-0.5s0.224-0.5 0.5-0.5h3c0.275 0 0.5 0.224 0.5 0.5s-0.225 0.5-0.5 0.5zM8.5 27h-3c-0.276 0-0.5-0.224-0.5-0.5v-3c0-0.276 0.224-0.5 0.5-0.5s0.5 0.224 0.5 0.5v2.5h2.5c0.276 0 0.5 0.224 0.5 0.5s-0.224 0.5-0.5 0.5zM8.5 6h-2.5v2.5c0 0.276-0.224 0.5-0.5 0.5s-0.5-0.224-0.5-0.5v-3c0-0.276 0.224-0.5 0.5-0.5h3c0.276 0 0.5 0.224 0.5 0.5s-0.224 0.5-0.5 0.5zM5.5 11c0.276 0 0.5 0.224 0.5 0.5v3c0 0.276-0.224 0.5-0.5 0.5s-0.5-0.224-0.5-0.5v-3c0-0.276 0.224-0.5 0.5-0.5zM5.5 17c0.276 0 0.5 0.224 0.5 0.5v3c0 0.276-0.224 0.5-0.5 0.5s-0.5-0.224-0.5-0.5v-3c0-0.276 0.224-0.5 0.5-0.5zM11.5 26h3c0.275 0 0.5 0.224 0.5 0.5s-0.225 0.5-0.5 0.5h-3c-0.276 0-0.5-0.224-0.5-0.5s0.224-0.5 0.5-0.5z"}))),Ct=t=>o.exports.createElement("svg",{width:"64px",height:"64px",viewBox:"0 0 16 16",xmlns:"http://www.w3.org/2000/svg",fill:"#65CC8A",...t},o.exports.createElement("g",{id:"SVGRepo_bgCarrier",strokeWidth:0}),o.exports.createElement("g",{id:"SVGRepo_tracerCarrier",strokeLinecap:"round",strokeLinejoin:"round"}),o.exports.createElement("g",{id:"SVGRepo_iconCarrier"},o.exports.createElement("path",{fill:"#65CC8A",fillRule:"evenodd",d:"M8,16 C12.4183,16 16,12.4183 16,8 C16,3.58172 12.4183,0 8,0 C3.58172,0 0,3.58172 0,8 C0,12.4183 3.58172,16 8,16 Z M4.29289,4.29289 C4.68342,3.90237 5.31658,3.90237 5.70711,4.29289 L8,6.58579 L10.2929,4.29289 C10.6834,3.90237 11.3166,3.90237 11.7071,4.29289 C12.0976,4.68342 12.0976,5.31658 11.7071,5.70711 L9.41421,8 L11.7071,10.2929 C12.0976,10.6834 12.0976,11.3166 11.7071,11.7071 C11.3166,12.0976 10.6834,12.0976 10.2929,11.7071 L8,9.41421 L5.70711,11.7071 C5.31658,12.0976 4.68342,12.0976 4.29289,11.7071 C3.90237,11.3166 3.90237,10.6834 4.29289,10.2929 L6.58579,8 L4.29289,5.70711 C3.90237,5.31658 3.90237,4.68342 4.29289,4.29289 Z"}))),_a=()=>{const{drawColors:t,updateDrawColors:e}=m(),{t:r}=A(),a=(s,i)=>{const d=[...t];d[i]=s,e(d)},n=s=>{const i=[...t];i.splice(s,1),e(i)};return x("div",{className:"form-control mt-3",children:[l("div",{className:"font-bold text-sm font-fredokaOne",children:r("title.drawColor")}),x("div",{className:"mt-2 flex items-center w-full",children:[t.map((s,i)=>x("div",{className:"w-7 h-7 mr-2 relative group",children:[l("input",{type:"color",value:s,onChange:d=>{a(d.target.value,i)},className:"colorInput"}),t.length>1&&l(Ct,{onClick:()=>n(i),className:"absolute top-[-6px] right-[-6px] rounded-full w-3 h-3 cursor-pointer inline-block xl:hidden group-hover:inline-block hover:opacity-80"})]},i)),t.length<5&&l(Oa,{className:"cursor-pointer hover:opacity-60",onClick:()=>{a("#000000",t.length)}})]})]})},tt={line_1:[{type:E.Basic,text:"style.basic"},{type:E.Rainbow,text:"style.rainbow"},{type:E.Shape,text:"style.shape"}],line_2:[{type:E.Material,text:"style.material"},{type:E.Pixels,text:"style.pixels"},{type:E.MultiColor,text:"style.multiColor"}],line_3:[{type:E.Text,text:"style.text"},{type:E.MultiLine,text:"style.multiLine"},{type:E.Reticulate,text:"style.reticulate"}],line_4:[{type:E.MultiPoint,text:"style.multiPoint"},{type:E.Wiggle,text:"style.wiggle"},{type:E.Thorn,text:"style.thorn"}]},Fa=()=>{const{t}=A(),{drawStyle:e,updateDrawStyle:r}=m();return x("div",{className:"mt-2",children:[l("div",{className:"font-bold text-sm font-fredokaOne",children:t("title.drawStyle")}),Object.keys(tt).map(a=>l("div",{className:"btn-group mt-1 flex",children:tt[a].map(({type:n,text:s})=>l("button",{className:`btn btn-xs flex-grow font-fredokaOne text-xs font-normal ${e===n?"btn-active font-semibold":""}`,onClick:()=>r(n),children:t(s)},n))},a))]})},Ba=()=>{const{drawStyle:t}=m();return x(D,{children:[l(Fa,{}),t===E.Shape&&l(Ea,{}),(t===E.Shape||t===E.MultiPoint)&&l(ma,{}),t===E.Material&&l(Ra,{}),t===E.MultiColor&&l(Na,{}),![E.Text,E.Wiggle,E.Thorn].includes(t)&&l(Aa,{}),t!==E.Rainbow&&l(_a,{}),[E.Basic,E.Material,E.MultiColor].includes(t)&&l(Ma,{}),t===E.Text&&l(Ia,{})]})},bt=t=>{var i,d,h;const{t:e}=A(),{borderColor:r,updateBorderColor:a,borderWidth:n,updateBorderWidth:s}=O();return x("div",{className:"mt-3",children:[l("div",{className:"font-bold text-sm font-fredokaOne",children:e("title.borderStyle")}),x("div",{className:"flex mt-1 items-center",children:[l("div",{className:"w-7 h-7 cursor-pointer",children:l("input",{type:"color",value:(i=t==null?void 0:t.borderColor)!=null?i:r,onChange:g=>{var f;a(g.target.value),(f=t==null?void 0:t.updateBorderColor)==null||f.call(t,g.target.value)},className:"colorInput"})}),l("div",{className:"divider divider-horizontal mx-2"}),l("div",{className:"text-lg font-fredokaOne mr-2 text-primary-focus",children:(d=t==null?void 0:t.borderWidth)!=null?d:n}),l("input",{type:"range",min:"1",max:"20",step:"1",value:(h=t==null?void 0:t.borderWidth)!=null?h:n,className:"range range-primary range-xs cursor-pointer",onChange:g=>{var f;s(Number(g.target.value)),(f=t==null?void 0:t.updateBorderWidth)==null||f.call(t,Number(g.target.value))}})]})]})},Da=t=>o.exports.createElement("svg",{width:"20px",height:"20px",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...t},o.exports.createElement("g",{id:"SVGRepo_bgCarrier",strokeWidth:0}),o.exports.createElement("g",{id:"SVGRepo_tracerCarrier",strokeLinecap:"round",strokeLinejoin:"round"}),o.exports.createElement("g",{id:"SVGRepo_iconCarrier"},o.exports.createElement("path",{d:"M4 12L20 12",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"}))),Wa=t=>o.exports.createElement("svg",{t:1705739078408,className:"icon",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg","p-id":5340,xmlnsXlink:"http://www.w3.org/1999/xlink",width:20,height:20,...t},o.exports.createElement("path",{fill:"currentColor",d:"M0 480h160v64H0zM288 480H448v64H288zM576 480h160v64H576zM864 480H1024v64h-160z","p-id":5341})),Ha=t=>o.exports.createElement("svg",{width:"20px",height:"20px",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",fill:"currentColor",...t},o.exports.createElement("g",{id:"SVGRepo_bgCarrier",strokeWidth:0}),o.exports.createElement("g",{id:"SVGRepo_tracerCarrier",strokeLinecap:"round",strokeLinejoin:"round"}),o.exports.createElement("g",{id:"SVGRepo_iconCarrier"},o.exports.createElement("path",{d:"M3 13H1v-2h2zm4-2H5v2h2zm12 0h-2v2h2zm4 0h-2v2h2zm-12 0H9v2h2zm4 0h-2v2h2z"}),o.exports.createElement("path",{fill:"none",d:"M0 0h24v24H0z"}))),rt={line_1:[{type:J.Solid,icon:Da},{type:J.Dashed,icon:Wa},{type:J.Dotted,icon:Ha}]},yt=t=>{const{borderType:e,updateBorderType:r}=O(),{t:a}=A();return x("div",{className:"mt-3",children:[l("div",{className:"font-bold text-sm font-fredokaOne",children:a("title.borderType")}),Object.keys(rt).map(n=>l("div",{className:"btn-group mt-1 flex",children:rt[n].map(({type:s,icon:i})=>l("button",{className:`btn btn-xs flex-grow ${(t.borderType||e)===s?"btn-active":""}`,onClick:()=>{var d;r(s),(d=t==null?void 0:t.updateBorderType)==null||d.call(t,s)},children:i({})},s))},n))]})},Xa=t=>o.exports.createElement("svg",{t:1702136520403,className:"icon",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg","p-id":1624,xmlnsXlink:"http://www.w3.org/1999/xlink",width:15,height:15,...t},o.exports.createElement("path",{d:"M0 0h192v192H0z","p-id":1625,fill:"CURRENTCOLOR"}),o.exports.createElement("path",{d:"M192 192h192v192H192z",opacity:.6,"p-id":1626,fill:"CURRENTCOLOR"}),o.exports.createElement("path",{d:"M384 0h192v192H384z",opacity:.8,"p-id":1627,fill:"CURRENTCOLOR"}),o.exports.createElement("path",{d:"M576 192h192v192H576z",opacity:.4,"p-id":1628,fill:"CURRENTCOLOR"}),o.exports.createElement("path",{d:"M768 0h192v192h-192z",opacity:.6,"p-id":1629,fill:"CURRENTCOLOR"}),o.exports.createElement("path",{d:"M0 384h192v192H0z",opacity:.8,"p-id":1630,fill:"CURRENTCOLOR"}),o.exports.createElement("path",{d:"M192 576h192v192H192zM384 384h192v192H384z",opacity:.4,"p-id":1631,fill:"CURRENTCOLOR"}),o.exports.createElement("path",{d:"M576 576h192v192H576zM768 384h192v192h-192z",opacity:.2,"p-id":1632,fill:"CURRENTCOLOR"}),o.exports.createElement("path",{d:"M0 768h192v192H0z",opacity:.4,"p-id":1633,fill:"CURRENTCOLOR"}),o.exports.createElement("path",{d:"M384 768h192v192H384z",opacity:.2,"p-id":1634,fill:"CURRENTCOLOR"}),o.exports.createElement("path",{d:"M768 768h192v192h-192z",opacity:.1,"p-id":1635,fill:"CURRENTCOLOR"})),Va=t=>o.exports.createElement("svg",{fill:"currentColor",width:"20px",height:"20px",viewBox:"0 0 32 32",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",xmlSpace:"preserve","xmlns:serif":"http://www.serif.com/",style:{fillRule:"evenodd",clipRule:"evenodd",strokeLinejoin:"round",strokeMiterlimit:2},...t},o.exports.createElement("g",{id:"SVGRepo_bgCarrier",strokeWidth:0}),o.exports.createElement("g",{id:"SVGRepo_tracerCarrier",strokeLinecap:"round",strokeLinejoin:"round"}),o.exports.createElement("g",{id:"SVGRepo_iconCarrier"},o.exports.createElement("path",{d:"M4,29.987l24,0c0.828,0 1.5,-0.672 1.5,-1.5c0,-0.827 -0.672,-1.5 -1.5,-1.5l-24,0c-0.828,0 -1.5,0.673 -1.5,1.5c0,0.828 0.672,1.5 1.5,1.5Z"}),o.exports.createElement("path",{d:"M9.138,22.244c1.323,0.328 2.775,0.118 3.995,-0.702l9.873,-6.712c0.458,-0.308 0.58,-0.929 0.273,-1.388l-6.717,-10c-0.308,-0.458 -0.929,-0.58 -1.388,-0.272c0,-0 -6.027,4.048 -9.961,6.691c-2.293,1.539 -2.903,4.646 -1.363,6.938c0.725,1.08 1.53,2.279 2.256,3.359c0.738,1.099 1.836,1.812 3.032,2.086Zm11.448,-9.223l-15.418,0c0.207,-0.591 0.599,-1.124 1.16,-1.5c-0,-0 9.131,-6.133 9.131,-6.133l5.127,7.633Z"}),o.exports.createElement("path",{d:"M26.339,15.455c-0.185,-0.284 -0.5,-0.455 -0.839,-0.455c-0.339,-0 -0.654,0.171 -0.839,0.455c0,0 -1.274,1.965 -2.039,3.732c-0.379,0.876 -0.622,1.717 -0.622,2.313c-0,1.932 1.568,3.5 3.5,3.5c1.932,0 3.5,-1.568 3.5,-3.5c-0,-0.596 -0.243,-1.437 -0.622,-2.313c-0.765,-1.767 -2.039,-3.732 -2.039,-3.732Z"}))),Ya=[{type:ie.Transparent,icon:Xa},{type:ie.Full,icon:Va}],St=t=>{const{t:e}=A(),{fillColor:r,updateFillColor:a,fillType:n,updateFillType:s}=O();return x("div",{className:"mt-3",children:[l("div",{className:"font-bold text-sm font-fredokaOne",children:e("title.fillStyle")}),x("div",{className:"flex mt-1 items-center",children:[l("div",{className:"w-7 h-7 cursor-pointer",children:l("input",{type:"color",value:(t==null?void 0:t.fillColor)||r,onChange:i=>{var d;a(i.target.value),(d=t==null?void 0:t.updateFillColor)==null||d.call(t,i.target.value)},className:"colorInput"})}),l("div",{className:"divider divider-horizontal mx-2"}),l("div",{className:"tabs tabs-boxed bg-[#333C4D] flex",children:Ya.map(({type:i,icon:d})=>l("button",{className:`tab tab-xs flex-grow text-[#eef1ff] ${((t==null?void 0:t.fillType)||n)===i?"tab-active":""}`,onClick:()=>{var h;s(i),(h=t==null?void 0:t.updateFillType)==null||h.call(t,i)},children:d({})},i))})]})]})},Ga=()=>{const{shapeLinePointCount:t,updateShapeLinePointCount:e}=O(),{t:r}=A();return x("div",{className:"mt-3",children:[l("div",{className:"font-bold text-sm font-fredokaOne",children:r("title.shapeLinePointCount")}),l("input",{type:"range",min:"2",max:"5",value:t,className:"range range-primary range-xs mt-1",step:"1",onChange:a=>e(Number(a.target.value))}),x("div",{className:"w-full flex justify-between text-xs px-2 font-fredokaOne",children:[l("span",{children:"2"}),l("span",{children:"3"}),l("span",{children:"4"}),l("span",{children:"5"})]})]})},ja=t=>o.exports.createElement("svg",{width:"20px",height:"20px",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...t},o.exports.createElement("g",{id:"SVGRepo_bgCarrier",strokeWidth:0}),o.exports.createElement("g",{id:"SVGRepo_tracerCarrier",strokeLinecap:"round",strokeLinejoin:"round"}),o.exports.createElement("g",{id:"SVGRepo_iconCarrier"},o.exports.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M18 5C17.4477 5 17 5.44772 17 6C17 6.27642 17.1108 6.52505 17.2929 6.70711C17.475 6.88917 17.7236 7 18 7C18.5523 7 19 6.55228 19 6C19 5.44772 18.5523 5 18 5ZM15 6C15 4.34315 16.3431 3 18 3C19.6569 3 21 4.34315 21 6C21 7.65685 19.6569 9 18 9C17.5372 9 17.0984 8.8948 16.7068 8.70744L8.70744 16.7068C8.8948 17.0984 9 17.5372 9 18C9 19.6569 7.65685 21 6 21C4.34315 21 3 19.6569 3 18C3 16.3431 4.34315 15 6 15C6.46278 15 6.90157 15.1052 7.29323 15.2926L15.2926 7.29323C15.1052 6.90157 15 6.46278 15 6ZM6 17C5.44772 17 5 17.4477 5 18C5 18.5523 5.44772 19 6 19C6.55228 19 7 18.5523 7 18C7 17.7236 6.88917 17.475 6.70711 17.2929C6.52505 17.1108 6.27642 17 6 17Z",fill:"currentColor"}))),za=t=>o.exports.createElement("svg",{width:"20px",height:"20px",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...t},o.exports.createElement("g",{id:"SVGRepo_bgCarrier",strokeWidth:0}),o.exports.createElement("g",{id:"SVGRepo_tracerCarrier",strokeLinecap:"round",strokeLinejoin:"round"}),o.exports.createElement("g",{id:"SVGRepo_iconCarrier"},o.exports.createElement("path",{d:"M3 6.6C3 6.03995 3 5.75992 3.10899 5.54601C3.20487 5.35785 3.35785 5.20487 3.54601 5.10899C3.75992 5 4.03995 5 4.6 5H10.4C10.9601 5 11.2401 5 11.454 5.10899C11.6422 5.20487 11.7951 5.35785 11.891 5.54601C12 5.75992 12 6.03995 12 6.6V8.4C12 8.96005 12 9.24008 11.891 9.45399C11.7951 9.64215 11.6422 9.79513 11.454 9.89101C11.2401 10 10.9601 10 10.4 10H4.6C4.03995 10 3.75992 10 3.54601 9.89101C3.35785 9.79513 3.20487 9.64215 3.10899 9.45399C3 9.24008 3 8.96005 3 8.4V6.6Z",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"}),o.exports.createElement("path",{d:"M5 15.6C5 15.0399 5 14.7599 5.10899 14.546C5.20487 14.3578 5.35785 14.2049 5.54601 14.109C5.75992 14 6.03995 14 6.6 14H10.4C10.9601 14 11.2401 14 11.454 14.109C11.6422 14.2049 11.7951 14.3578 11.891 14.546C12 14.7599 12 15.0399 12 15.6V17.4C12 17.9601 12 18.2401 11.891 18.454C11.7951 18.6422 11.6422 18.7951 11.454 18.891C11.2401 19 10.9601 19 10.4 19H6.6C6.03995 19 5.75992 19 5.54601 18.891C5.35785 18.7951 5.20487 18.6422 5.10899 18.454C5 18.2401 5 17.9601 5 17.4V15.6Z",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"}),o.exports.createElement("path",{d:"M16 6.6C16 6.03995 16 5.75992 16.109 5.54601C16.2049 5.35785 16.3578 5.20487 16.546 5.10899C16.7599 5 17.0399 5 17.6 5H19.4C19.9601 5 20.2401 5 20.454 5.10899C20.6422 5.20487 20.7951 5.35785 20.891 5.54601C21 5.75992 21 6.03995 21 6.6V14.4C21 14.9601 21 15.2401 20.891 15.454C20.7951 15.6422 20.6422 15.7951 20.454 15.891C20.2401 16 19.9601 16 19.4 16H17.6C17.0399 16 16.7599 16 16.546 15.891C16.3578 15.7951 16.2049 15.6422 16.109 15.454C16 15.2401 16 14.9601 16 14.4V6.6Z",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"}))),Ua=t=>o.exports.createElement("svg",{width:"20px",height:"20px",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...t},o.exports.createElement("g",{id:"SVGRepo_bgCarrier",strokeWidth:0}),o.exports.createElement("g",{id:"SVGRepo_tracerCarrier",strokeLinecap:"round",strokeLinejoin:"round"}),o.exports.createElement("g",{id:"SVGRepo_iconCarrier"},o.exports.createElement("path",{d:"M21 12C21 16.9706 16.9706 21 12 21C7.02944 21 3 16.9706 3 12C3 7.02944 7.02944 3 12 3C16.9706 3 21 7.02944 21 12Z",stroke:"currentColor",strokeWidth:2}))),Za=t=>o.exports.createElement("svg",{t:1705756373807,className:"icon",viewBox:"0 0 1066 1024",xmlns:"http://www.w3.org/2000/svg","p-id":15154,xmlnsXlink:"http://www.w3.org/1999/xlink",width:25,height:20,...t},o.exports.createElement("path",{d:"M298.24 366.506667C236.373333 407.68 204.8 459.946667 204.8 512c0 52.010667 31.573333 104.277333 93.44 145.493333 61.610667 41.045333 149.12 67.84 247.893333 67.84 98.773333 0 186.282667-26.794667 247.893334-67.84 61.866667-41.216 93.44-93.482667 93.44-145.493333 0-52.010667-31.573333-104.277333-93.44-145.493333C732.373333 325.376 644.864 298.666667 546.133333 298.666667c-98.773333 0-186.282667 26.752-247.893333 67.84zM250.965333 295.424C328.362667 243.84 432.853333 213.333333 546.133333 213.333333c113.28 0 217.770667 30.549333 295.210667 82.133334C918.442667 346.88 972.8 422.613333 972.8 512s-54.357333 165.12-131.456 216.533333C763.904 780.16 659.413333 810.666667 546.133333 810.666667c-113.28 0-217.770667-30.549333-295.210666-82.133334C173.824 677.12 119.466667 601.386667 119.466667 512s54.357333-165.12 131.456-216.533333z",fill:"currentColor","p-id":15155})),$a=t=>o.exports.createElement("svg",{width:"20px",height:"20px",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...t},o.exports.createElement("g",{id:"SVGRepo_bgCarrier",strokeWidth:0}),o.exports.createElement("g",{id:"SVGRepo_tracerCarrier",strokeLinecap:"round",strokeLinejoin:"round"}),o.exports.createElement("g",{id:"SVGRepo_iconCarrier"},o.exports.createElement("g",{id:"Shape / Triangle"},o.exports.createElement("path",{id:"Vector",d:"M4.37891 15.1999C3.46947 16.775 3.01489 17.5634 3.08281 18.2097C3.14206 18.7734 3.43792 19.2851 3.89648 19.6182C4.42204 20.0001 5.3309 20.0001 7.14853 20.0001H16.8515C18.6691 20.0001 19.5778 20.0001 20.1034 19.6182C20.5619 19.2851 20.8579 18.7734 20.9172 18.2097C20.9851 17.5634 20.5307 16.775 19.6212 15.1999L14.7715 6.79986C13.8621 5.22468 13.4071 4.43722 12.8135 4.17291C12.2957 3.94236 11.704 3.94236 11.1862 4.17291C10.5928 4.43711 10.1381 5.22458 9.22946 6.79845L4.37891 15.1999Z",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"})))),qa=t=>o.exports.createElement("svg",{width:"20px",height:"20px",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...t},o.exports.createElement("g",{id:"SVGRepo_bgCarrier",strokeWidth:0}),o.exports.createElement("g",{id:"SVGRepo_tracerCarrier",strokeLinecap:"round",strokeLinejoin:"round"}),o.exports.createElement("g",{id:"SVGRepo_iconCarrier"},o.exports.createElement("g",{id:"Arrow / Arrow_Down_Up"},o.exports.createElement("path",{id:"Vector",d:"M11 16L8 19M8 19L5 16M8 19V5M13 8L16 5M16 5L19 8M16 5V19",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"})))),Ka=t=>o.exports.createElement("svg",{width:"20px",height:"20px",viewBox:"-11.98 -11.98 143.74 143.74",xmlns:"http://www.w3.org/2000/svg",fill:"currentColor",...t},o.exports.createElement("g",{id:"SVGRepo_bgCarrier",strokeWidth:0}),o.exports.createElement("g",{id:"SVGRepo_tracerCarrier",strokeLinecap:"round",strokeLinejoin:"round"}),o.exports.createElement("g",{id:"SVGRepo_iconCarrier"},o.exports.createElement("defs",null),o.exports.createElement("g",{id:"Layer_2","data-name":"Layer 2"},o.exports.createElement("g",{id:"Layer_1-2","data-name":"Layer 1"},o.exports.createElement("path",{d:"M60.3,78.46c-.31,5-.39,9-.82,12.91-.86,7.85-7.86,11.57-14.92,7.85A63.53,63.53,0,0,1,34.4,92.84Q19.67,81,5.29,68.78C-.35,64-1.3,58.65,1.58,51.82a30.86,30.86,0,0,1,2.19-4.65A302.23,302.23,0,0,1,31.91,9.31a48.7,48.7,0,0,1,7.64-6.84C46-2.3,51.84,0,53.52,7.92a65.45,65.45,0,0,1,.78,7.69c.14,1.66.24,3.33.4,5.53a32.54,32.54,0,0,0,4.39.14c7.11-.83,14.18-2.09,21.3-2.57a246.17,246.17,0,0,1,24.89-.54c7.68.26,11.38,3.91,12.77,11.46a112.58,112.58,0,0,1,1.63,24.8c-.05,1.42-.31,2.84-.49,4.25-1,8.35-5.08,13.81-14,14.64a17.63,17.63,0,0,0-4.09,1.24A65.73,65.73,0,0,1,78.3,78.24C72.6,78.16,66.9,78.37,60.3,78.46ZM43.47,14c-9,5.63-27.46,31.38-32.4,44.91,10.7,9.07,21.55,18.33,32.52,27.45,1.38,1.15,3.39,1.55,5.33,2.4,1.38-4.27.25-8,.35-11.62.13-4.81.95-6.57,5.41-7.27,5-.8,10.21-.76,15.33-1,7.4-.41,14.84-.49,22.2-1.28a39.24,39.24,0,0,0,16.08-5c2.55-12.13,1.56-25-2.65-33.79-4.31-1.14-8.87-1.08-13.42-.95-10.86.31-21.7.61-32.42,2.73-5.51,1.09-10.8.41-15.4-3.89C44.12,22.77,43.83,18.81,43.47,14Z"}))))),Ja=t=>o.exports.createElement("svg",{width:"20px",height:"20px",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...t},o.exports.createElement("g",{id:"SVGRepo_bgCarrier",strokeWidth:0}),o.exports.createElement("g",{id:"SVGRepo_tracerCarrier",strokeLinecap:"round",strokeLinejoin:"round"}),o.exports.createElement("g",{id:"SVGRepo_iconCarrier"},o.exports.createElement("path",{d:"M3 13.6493C3 16.6044 5.41766 19 8.4 19L16.5 19C18.9853 19 21 16.9839 21 14.4969C21 12.6503 19.8893 10.9449 18.3 10.25C18.1317 7.32251 15.684 5 12.6893 5C10.3514 5 8.34694 6.48637 7.5 8.5C4.8 8.9375 3 11.2001 3 13.6493Z",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"}))),Qa=t=>o.exports.createElement("svg",{width:"20px",height:"20px",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",fill:"none",...t},o.exports.createElement("g",{id:"SVGRepo_bgCarrier",strokeWidth:0}),o.exports.createElement("g",{id:"SVGRepo_tracerCarrier",strokeLinecap:"round",strokeLinejoin:"round"}),o.exports.createElement("g",{id:"SVGRepo_iconCarrier"},o.exports.createElement("path",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M20 10h-8a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h.93a2 2 0 0 1 1.664.89l.574.862a1 1 0 0 0 1.664 0l.574-.861A2 2 0 0 1 19.07 20H20a2 2 0 0 0 2-2v-6a2 2 0 0 0-2-2zm-6-3V4a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h.93a2 2 0 0 1 1.664.89L7 13.5"}))),en=t=>o.exports.createElement("svg",{t:1705816188032,className:"icon",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg","p-id":11440,xmlnsXlink:"http://www.w3.org/1999/xlink",width:18,height:18,...t},o.exports.createElement("path",{d:"M508.746667 299.2L485.333333 452.373333a5.333333 5.333333 0 0 0 4 5.973334l217.386667 53.333333a5.333333 5.333333 0 0 1 2.72 8.693333l-184.906667 208.8a5.333333 5.333333 0 0 1-9.28-4.32l23.413334-153.226666a5.333333 5.333333 0 0 0-4-5.973334L317.173333 512a5.333333 5.333333 0 0 1-2.506666-8.48l184.8-208.693333a5.333333 5.333333 0 0 1 9.28 4.373333z m-329.493334 256l271.253334 66.666667a5.333333 5.333333 0 0 1 4 5.973333l-51.04 335.68a5.333333 5.333333 0 0 0 9.226666 4.32l434.773334-490.346667a5.333333 5.333333 0 0 0-2.72-8.693333l-271.253334-66.666667a5.333333 5.333333 0 0 1-4-5.973333l51.04-335.626667a5.333333 5.333333 0 0 0-9.226666-4.373333L176.533333 546.506667a5.333333 5.333333 0 0 0 2.72 8.693333z","p-id":11441,fill:"currentColor"})),tn=t=>o.exports.createElement("svg",{t:1705817265217,className:"icon",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg","p-id":12421,xmlnsXlink:"http://www.w3.org/1999/xlink",width:16,height:16,...t},o.exports.createElement("path",{d:"M851.456 755.419429q0 22.820571-16.018286 38.838857l-77.677714 77.677714q-16.018286 16.018286-38.838857 16.018286t-38.838857-16.018286l-168.009143-168.009143-168.009143 168.009143q-16.018286 16.018286-38.838857 16.018286t-38.838857-16.018286l-77.677714-77.677714q-16.018286-16.018286-16.018286-38.838857t16.018286-38.838857l168.009143-168.009143-168.009143-168.009143q-16.018286-16.018286-16.018286-38.838857t16.018286-38.838857l77.677714-77.677714q16.018286-16.018286 38.838857-16.018286t38.838857 16.018286l168.009143 168.009143 168.009143-168.009143q16.018286-16.018286 38.838857-16.018286t38.838857 16.018286l77.677714 77.677714q16.018286 16.018286 16.018286 38.838857t-16.018286 38.838857l-168.009143 168.009143 168.009143 168.009143q16.018286 16.018286 16.018286 38.838857z",fill:"currentColor","p-id":12422})),rn=t=>o.exports.createElement("svg",{t:1705817679376,className:"icon",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg","p-id":15379,xmlnsXlink:"http://www.w3.org/1999/xlink",width:16,height:16,...t},o.exports.createElement("path",{d:"M918.8 83.7c-43.5-30.3-104-19.5-134.6 24.1l-425.8 606-127-135.7c-36.4-38.9-98.1-41.1-137-4.8-39 36.2-41.1 97.7-4.7 136.6l206.5 220.7c4.7 5 9.8 9.4 15.1 13.1 0.7 0.5 1.4 1 2.2 1.5 43.5 30.3 104 19.5 134.6-24.1l494-703.2c30.7-43.5 20.1-103.9-23.3-134.2z",fill:"currentColor","p-id":15380})),an=t=>o.exports.createElement("svg",{t:1705818171661,className:"icon",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg","p-id":16367,width:16,height:16,xmlnsXlink:"http://www.w3.org/1999/xlink",...t},o.exports.createElement("path",{d:"M512 1024c282.771 0 512-229.23 512-512s-229.23-512-512-512-512 229.23-512 512 229.23 512 512 512zM432 256c0-44.183 35.817-80 80-80s80 35.817 80 80v31.999c0 44.183-35.817 80-80 80s-80-35.817-80-80v-31.999zM431.999 512c0-44.183 35.817-80 80-80s80 35.817 80 80v256c0 44.183-35.817 80-80 80s-80-35.817-80-80v-256z","p-id":16368,fill:"currentColor"})),nn=t=>o.exports.createElement("svg",{t:1705818590143,className:"icon",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg","p-id":15111,xmlnsXlink:"http://www.w3.org/1999/xlink",width:18,height:18,...t},o.exports.createElement("path",{d:"M800 170.666667a138.666667 138.666667 0 0 1 138.453333 130.816L938.666667 309.333333v405.333334a138.666667 138.666667 0 0 1-130.816 138.453333L800 853.333333h-362.709333a138.666667 138.666667 0 0 1-88.96-32.256l-6.613334-5.930666-213.162666-202.666667a138.666667 138.666667 0 0 1-4.906667-196.010667l4.906667-4.949333 213.162666-202.666667a138.666667 138.666667 0 0 1 86.698667-37.888L437.290667 170.666667h362.666666z m0 64h-362.709333a74.666667 74.666667 0 0 0-46.08 15.872l-5.376 4.693333-213.162667 202.666667-2.645333 2.645333a74.666667 74.666667 0 0 0-2.346667 100.352l4.992 5.205333 213.162667 202.666667c12.117333 11.52 27.733333 18.645333 44.288 20.224l7.168 0.341333h362.666666a74.666667 74.666667 0 0 0 74.453334-68.565333l0.256-6.101333v-405.333334a74.666667 74.666667 0 0 0-68.565334-74.410666L800 234.666667z m-311.637333 123.605333l3.584 3.114667L597.333333 466.730667l105.386667-105.386667a32 32 0 0 1 48.341333 41.685333l-3.114666 3.584L642.56 512l105.386667 105.386667a32 32 0 0 1-41.642667 48.341333l-3.584-3.114667L597.333333 557.269333l-105.386666 105.386667a32 32 0 0 1-48.341334-41.685333l3.072-3.584L552.106667 512l-105.386667-105.386667a32 32 0 0 1 41.685333-48.341333z",fill:"currentColor","p-id":15112})),sn=t=>o.exports.createElement("svg",{t:1705819045470,className:"icon",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg","p-id":15265,xmlnsXlink:"http://www.w3.org/1999/xlink",width:16,height:16,...t},o.exports.createElement("path",{d:"M512 85.333333c235.648 0 426.666667 191.061333 426.666667 426.666667 0 235.690667-191.018667 426.666667-426.666667 426.666667-235.605333 0-426.666667-190.976-426.666667-426.666667C85.333333 276.437333 276.394667 85.333333 512 85.333333z m0 64a362.666667 362.666667 0 1 0 0 725.333334 362.666667 362.666667 0 0 0 0-725.333334z m-181.333333 330.666667h362.666666a32 32 0 0 1 4.352 63.701333l-4.352 0.298667h-362.666666a32 32 0 0 1-4.352-63.701333l4.352-0.298667h362.666666-362.666666z",fill:"currentColor","p-id":15266})),on=t=>o.exports.createElement("svg",{t:1705819674136,className:"icon",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg","p-id":16477,xmlnsXlink:"http://www.w3.org/1999/xlink",width:16,height:16,...t},o.exports.createElement("path",{d:"M731.428571 905.216c29.147429 0 50.139429-21.430857 50.139429-50.139429V171.501714c0-28.708571-20.992-52.717714-50.998857-52.717714-20.992 0-34.706286 10.294857-57.856 30.866286l-201.435429 178.706285c-2.56 2.56-6.418286 3.858286-10.697143 3.858286h-127.286857c-60.873143 0-90.88 30.427429-90.88 95.140572V597.942857c0 64.731429 30.006857 95.140571 90.88 95.140572h127.268572c4.297143 0 8.155429 1.28 10.715428 3.858285L672.731429 877.348571c20.992 18.870857 37.723429 27.867429 58.715428 27.867429z m-24.868571-90.422857c-2.139429 0-4.699429-1.28-7.277714-3.858286L509.44 639.926857c-10.276571-9.435429-18.834286-11.574857-30.427429-11.574857h-142.701714c-16.713143 0-24.868571-7.716571-24.868571-24.868571v-181.705143c0-16.713143 8.155429-24.850286 24.868571-24.850286h142.701714c11.574857 0 19.712-1.718857 30.427429-11.574857l189.860571-172.288c2.139429-1.700571 4.717714-3.419429 7.296-3.419429 3.84 0 5.997714 2.56 5.997715 5.997715v592.713142c0 3.858286-2.139429 6.436571-5.997715 6.436572z","p-id":16478,fill:"currentColor"})),cn=t=>o.exports.createElement("svg",{t:1705820436292,className:"icon",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg","p-id":1989,xmlnsXlink:"http://www.w3.org/1999/xlink",width:16,height:16,...t},o.exports.createElement("path",{d:"M426.666667 117.333333a309.333333 309.333333 0 0 1 240.213333 504.277334l209.066667 209.066666a32 32 0 0 1-41.642667 48.384l-3.584-3.114666-209.109333-209.066667A309.333333 309.333333 0 1 1 426.666667 117.333333z m0 64a245.333333 245.333333 0 1 0 0 490.666667 245.333333 245.333333 0 0 0 0-490.666667z",fill:"currentColor","p-id":1990})),ln=t=>o.exports.createElement("svg",{width:"20px",height:"20px",viewBox:"0 -68.62 309.13 309.13",xmlns:"http://www.w3.org/2000/svg",fill:"currentColor",...t},o.exports.createElement("g",{id:"SVGRepo_bgCarrier",strokeWidth:0}),o.exports.createElement("g",{id:"SVGRepo_tracerCarrier",strokeLinecap:"round",strokeLinejoin:"round"}),o.exports.createElement("g",{id:"SVGRepo_iconCarrier"},o.exports.createElement("defs",null),o.exports.createElement("g",{id:"Layer_2","data-name":"Layer 2"},o.exports.createElement("g",{id:"Layer_1-2","data-name":"Layer 1"},o.exports.createElement("path",{d:"M89.68,0c16.93,12.78,35.09,21,56.38,20.55,2.3,0,4.59-.06,6.88.07a64.3,64.3,0,0,0,35.55-7.85c4.37-2.42,8.6-2.67,13.2-1.85a8.08,8.08,0,0,1,5.09,2.86c12,14.42,27.73,20.48,46.19,20.6,8.12,0,16-.64,23.46-4.15a13.82,13.82,0,0,1,5.81-1c2.25,0,4.13,2.72,3.63,4.92a26.24,26.24,0,0,1-1.32,3.12c-4.65,12.17-1.88,23.2,5.92,33,2.17,2.71,6.09,4.07,9.32,5.86,2.49,1.38,5.26,2.26,7.68,3.74a3.54,3.54,0,0,1,.19,5.87,20.31,20.31,0,0,1-2.87,1.84c-14.12,7.91-20.69,21-23.88,36-1.13,5.36.93,10.75,2.65,15.94a57.2,57.2,0,0,1,2.28,7.35c.63,3.33-1.25,5.55-4.74,5.64a33.64,33.64,0,0,1-6.76-.74c-19-3.33-36.39.36-51.73,12.4-2.24,1.76-4.26,3.83-6.44,5.67-2.93,2.47-5.43,2.7-8.59.86a15.43,15.43,0,0,1-2.1-1.5c-6.69-5.62-14.73-7.23-23.14-8-13.19-1.23-25.78,1.36-37.68,6.62-6.7,3-11.49.84-16.33-3.12-2.65-2.18-5.15-4.55-7.64-6.91a24.73,24.73,0,0,0-12.93-6.4c-15.06-2.69-30.13-3.61-45.11.76-4.93,1.44-10,2.46-14.87,4.11s-8.33-.65-11.48-3.67c-.87-.83-1-2.56-1.19-3.92-.87-5.65-1.52-11.33-2.46-17a24.82,24.82,0,0,0-12.9-18.3c-4.95-2.78-9.12-7.08-15.62-7.77L0,98c3.06-2.94,5.88-5.71,8.77-8.4,10.63-9.91,14.4-22.38,13.5-36.5A10.73,10.73,0,0,0,20,47.79c-2.75-3.66-2.57-7.3-.65-11.71,6.28.84,12.44,1.81,18.63,2.47C48,39.61,57.26,37,66.25,32.92A36.86,36.86,0,0,0,80.61,21.1c1.8-2.39,3.17-5,3.15-7.8,0-4.54,2.41-8.06,4-11.93C88,.93,88.7.7,89.68,0ZM194.84,20.36c-15.43,9.11-32.61,10.91-50.33,10.35s-34.57-4-49.91-13.77c-1.85,2.88-3.4,5.25-4.9,7.64a45.12,45.12,0,0,1-19,17c-9.12,4.34-18.77,7-29,6.82-2.49,0-5,.21-7.58.33-1.24,4.16-.63,7.9-.72,11.56A44.6,44.6,0,0,1,17.54,94.14c-1,.85-2.52,1.5-1.94,3.56,4.17,2.69,8.46,5.52,12.8,8.24a34.44,34.44,0,0,1,15,20.23c1,3.26,1.18,6.74,1.75,10.11.47,2.76,0,5.82,2.82,8.21a20.18,20.18,0,0,0,3.86-.54,90.34,90.34,0,0,1,31.26-4.72c8,.32,16,.8,24,1.71,10.57,1.22,19.9,5.19,26.92,13.63a33.67,33.67,0,0,0,4.06,3.5c24-8,48-11.37,71.22-.21,5.26-3,9.8-6,14.66-8.33a99.28,99.28,0,0,1,15.19-5.81,104.18,104.18,0,0,1,16-3.1c5.26-.64,10.6-.6,16.3-.87a55.92,55.92,0,0,0-1.45-7.14c-1.8-5.13-1-10.05.25-15.17a66,66,0,0,1,16.47-29.69c1.3-1.39,2.5-2.86,3.56-4.08-3.62-3.09-7.22-5.55-10-8.71a37.14,37.14,0,0,1-9.39-25.18c0-2.21.67-4.61-1.41-6.57a126.89,126.89,0,0,1-31.51-.33,59.93,59.93,0,0,1-29.87-12C203.69,27.6,199.53,24.12,194.84,20.36Z"}),o.exports.createElement("path",{d:"M194.84,20.36c4.69,3.76,8.85,7.24,13.15,10.53a59.93,59.93,0,0,0,29.87,12,126.89,126.89,0,0,0,31.51.33c2.08,2,1.39,4.36,1.41,6.57A37.14,37.14,0,0,0,280.17,75c2.81,3.16,6.41,5.62,10,8.71-1.06,1.22-2.26,2.69-3.56,4.08a66,66,0,0,0-16.47,29.69c-1.28,5.12-2.05,10-.25,15.17a55.92,55.92,0,0,1,1.45,7.14c-5.7.27-11,.23-16.3.87a104.18,104.18,0,0,0-16,3.1,99.28,99.28,0,0,0-15.19,5.81c-4.86,2.32-9.4,5.31-14.66,8.33C186,146.7,162,150.06,138,158.07a33.67,33.67,0,0,1-4.06-3.5c-7-8.44-16.35-12.41-26.92-13.63-7.94-.91-16-1.39-24-1.71A90.34,90.34,0,0,0,51.83,144a20.18,20.18,0,0,1-3.86.54c-2.84-2.39-2.35-5.45-2.82-8.21-.57-3.37-.79-6.85-1.75-10.11a34.44,34.44,0,0,0-15-20.23c-4.34-2.72-8.63-5.55-12.8-8.24-.58-2.06,1-2.71,1.94-3.56A44.6,44.6,0,0,0,33.4,60.26c.09-3.66-.52-7.4.72-11.56,2.6-.12,5.09-.37,7.58-.33,10.26.16,19.91-2.48,29-6.82a45.12,45.12,0,0,0,19-17c1.5-2.39,3-4.76,4.9-7.64,15.34,9.79,32.21,13.21,49.91,13.77S179.41,29.47,194.84,20.36Z"}))))),dn=t=>o.exports.createElement("svg",{t:1705821505982,className:"icon",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg","p-id":2318,xmlnsXlink:"http://www.w3.org/1999/xlink",width:16,height:16,...t},o.exports.createElement("path",{d:"M760.384 64c47.808 0 91.968 11.968 132.352 35.84a264.32 264.32 0 0 1 95.872 97.152A263.68 263.68 0 0 1 1024 330.88c0 34.752-6.592 68.544-19.712 101.312a262.4 262.4 0 0 1-57.536 87.424L512 960 77.248 519.68A268.8 268.8 0 0 1 0 330.88c0-48.384 11.776-93.056 35.392-133.952A264.32 264.32 0 0 1 131.2 99.84 255.296 255.296 0 0 1 263.68 64 260.736 260.736 0 0 1 449.92 142.208l62.08 62.912 62.144-62.912a258.944 258.944 0 0 1 86.336-58.24A259.584 259.584 0 0 1 760.512 64h-0.128z",fill:"currentColor","p-id":2319})),hn=t=>o.exports.createElement("svg",{t:1705823230352,className:"icon",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg","p-id":3291,xmlnsXlink:"http://www.w3.org/1999/xlink",width:16,height:16,...t},o.exports.createElement("path",{d:"M877.714286 658.285714 877.714286 365.714286C877.714286 163.766857 713.947429 0 512 0 310.052571 0 146.285714 163.766857 146.285714 365.714286L146.285714 658.285714 0 950.857143 409.014857 950.857143C424.118857 993.389714 464.274286 1024 512 1024 559.725714 1024 599.881143 993.389714 614.985143 950.857143L1024 950.857143 877.714286 658.285714",fill:"currentColor","p-id":3292})),at={line_1:[{type:T.Line,icon:ja},{type:T.Rect,icon:za},{type:T.Circle,icon:Ua},{type:T.Ellipse,icon:Za},{type:T.Triangle,icon:$a}],line_2:[{type:T.ArrowLine,icon:qa},{type:T.ArrowOutline,icon:Ka},{type:T.Cloud,icon:Ja},{type:T.Tooltips,icon:Qa},{type:T.Lightning,icon:en}],line_3:[{type:T.Close,icon:tn},{type:T.Check,icon:rn},{type:T.Info,icon:an},{type:T.Backspace,icon:nn},{type:T.Block,icon:sn}],line_4:[{type:T.Speaker,icon:on},{type:T.Search,icon:cn},{type:T.InfoOutline,icon:ln},{type:T.Heart,icon:dn},{type:T.Alert,icon:hn}]},pn=()=>{const{shapeStyle:t,updateShapeStyle:e}=O(),{t:r}=A();return x("div",{className:"mt-3",children:[l("div",{className:"font-bold text-sm font-fredokaOne",children:r("title.shapeType")}),Object.keys(at).map(a=>l("div",{className:"btn-group mt-1 flex",children:at[a].map(({type:n,icon:s})=>l("button",{className:`btn btn-xs flex-grow text-[#eef1ff] ${t===n?"btn-active":""}`,onClick:()=>{e(n)},children:s({})},n))},a))]})},un=()=>{const{shapeStyle:t}=O(),e=o.exports.useMemo(()=>[T.Line,T.ArrowLine].includes(t),[t]);return x(D,{children:[l(pn,{}),e&&l(Ga,{}),l(yt,{}),l(bt,{}),!e&&l(St,{})]})},gn=()=>{const{t}=A(),{drawType:e,updateDrawType:r}=N();return x(D,{children:[l("div",{className:"font-bold text-sm font-fredokaOne mt-2",children:t("title.drawType")}),l("div",{className:"btn-group flex mt-1",children:ga.map(({type:a,text:n})=>l("button",{className:`btn btn-xs flex-grow font-fredokaOne font-normal ${e===a?"btn-active font-semibold":""}`,onClick:()=>{r(a)},children:t(n)},a))}),e===ce.FreeStyle&&l(Ba,{}),e===ce.Shape&&l(un,{})]})},mn=()=>{const{t}=A(),{eraserWidth:e,updateEraserWidth:r}=m();return l(D,{children:x("div",{className:"mt-3",children:[l("div",{className:"font-bold text-sm font-fredokaOne",children:t("title.eraserWidth")}),x("div",{className:"flex items-center",children:[l("div",{className:"text-lg font-fredokaOne mr-2 text-primary-focus",children:e}),l("input",{type:"range",min:"5",max:"50",step:"1",value:e,className:"range range-primary range-xs",onChange:a=>r(Number(a.target.value))})]})]})})},fn=t=>o.exports.createElement("svg",{width:"36px",height:"36px",viewBox:"0 0 76 76",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",baseProfile:"full",enableBackground:"new 0 0 76.00 76.00",xmlSpace:"preserve",fill:"#66CC89",...t},o.exports.createElement("g",{id:"SVGRepo_bgCarrier",strokeWidth:0}),o.exports.createElement("g",{id:"SVGRepo_tracerCarrier",strokeLinecap:"round",strokeLinejoin:"round"}),o.exports.createElement("g",{id:"SVGRepo_iconCarrier"},o.exports.createElement("path",{fill:"#66CC89",fillOpacity:1,strokeWidth:.2,strokeLinejoin:"round",d:"M 58.5835,58.5836L 53.0417,58.5836L 58.5835,53.0418L 58.5835,58.5836 Z M 34.0418,52.2504L 30.0836,56.2086L 30.0836,52.2503L 34.0418,52.2504 Z M 41.9584,52.2504L 35.6253,58.5835L 30.0836,58.5835L 30.0833,57.7918L 35.6249,52.2504L 41.9584,52.2504 Z M 49.8746,52.2504L 43.5419,58.5835L 37.2085,58.5835L 43.5415,52.2504L 49.8746,52.2504 Z M 58.5835,45.1241L 58.5835,51.4587L 51.4586,58.5835L 45.125,58.5835L 58.5835,45.1241 Z M 52.2504,34.0418L 52.2503,30.0835L 56.2087,30.0836L 52.2504,34.0418 Z M 58.5835,35.6253L 52.2504,41.9584L 52.2504,35.6249L 57.7918,30.0833L 58.5835,30.0836L 58.5835,35.6253 Z M 58.5835,43.541L 52.2504,49.8745L 52.2504,43.5415L 58.5835,37.2084L 58.5835,43.541 Z M 19,50.6667L 19,19L 50.6667,19L 50.6671,50.6661L 19,50.6667 Z "}))),wn=t=>o.exports.createElement("svg",{width:"36px",height:"36px",viewBox:"0 0 76 76",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",baseProfile:"full",enableBackground:"new 0 0 76.00 76.00",xmlSpace:"preserve",fill:"#66CC89",...t},o.exports.createElement("g",{id:"SVGRepo_bgCarrier",strokeWidth:0}),o.exports.createElement("g",{id:"SVGRepo_tracerCarrier",strokeLinecap:"round",strokeLinejoin:"round"}),o.exports.createElement("g",{id:"SVGRepo_iconCarrier"},o.exports.createElement("path",{fill:"#66CC89",fillOpacity:1,strokeWidth:.2,strokeLinejoin:"round",d:"M 19,50.6667L 19,19L 50.6667,19L 50.6668,28.5003L 28.5,28.5002L 28.5,50.6667L 19,50.6667 Z M 58.5835,58.5836L 53.0415,58.5833L 58.5833,53.0416L 58.5835,58.5836 Z M 58.5833,45.1249L 58.5833,51.4585L 51.4584,58.5833L 45.1249,58.5833L 58.5833,45.1249 Z M 58.5833,35.6251L 35.6251,58.5834L 30.0833,58.5834L 30.0833,57.7918L 57.7918,30.0834L 58.5835,30.0836L 58.5833,35.6251 Z M 58.5833,43.5418L 43.5418,58.5833L 37.2082,58.5833L 58.5833,37.2082L 58.5833,43.5418 Z M 56.2084,30.0833L 30.0833,56.2085L 30.0833,49.8749L 49.8749,30.0834L 56.2084,30.0833 Z M 48.2918,30.0834L 30.0833,48.2918L 30.0833,41.9582L 41.9582,30.0834L 48.2918,30.0834 Z M 40.3751,30.0833L 30.0833,40.3751L 30.0833,34.0416L 34.0415,30.0833L 40.3751,30.0833 Z "}))),xn=t=>o.exports.createElement("svg",{width:"36px",height:"36px",viewBox:"0 0 76 76",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",baseProfile:"full",enableBackground:"new 0 0 76.00 76.00",xmlSpace:"preserve",fill:"#66CC89",...t},o.exports.createElement("g",{id:"SVGRepo_bgCarrier",strokeWidth:0}),o.exports.createElement("g",{id:"SVGRepo_tracerCarrier",strokeLinecap:"round",strokeLinejoin:"round"}),o.exports.createElement("g",{id:"SVGRepo_iconCarrier"},o.exports.createElement("path",{fill:"#66CC89",fillOpacity:1,strokeWidth:.2,strokeLinejoin:"round",d:"M 50.6667,25.3333L 50.6667,50.6667L 25.3333,50.6667L 25.3333,25.3333L 50.6667,25.3333 Z M 17.4169,17.417L 19.7919,17.417L 17.4169,19.7921L 17.4169,17.417 Z M 27.7088,17.417L 17.4168,27.709L 17.4168,21.3752L 21.3751,17.417L 27.7088,17.417 Z M 36.417,18.6045L 36.4168,23.7503L 30.8754,23.7503L 36.0213,18.6045L 36.417,18.6045 Z M 18.6043,36.4173L 18.6043,36.0216L 23.7502,30.8755L 23.7502,36.417L 18.6043,36.4173 Z M 17.4168,29.2924L 29.2919,17.417L 35.6255,17.417L 29.2922,23.7503L 23.7502,23.7503L 23.7502,29.2923L 17.4168,35.6257L 17.4168,29.2924 Z M 58.5833,58.5833L 56.2082,58.5833L 58.5833,56.2082L 58.5833,58.5833 Z M 48.2914,58.5833L 58.5833,48.2913L 58.5833,54.6251L 54.6251,58.5833L 48.2914,58.5833 Z M 39.5832,57.3958L 39.5833,52.25L 45.1248,52.25L 39.9788,57.3958L 39.5832,57.3958 Z M 57.3959,39.583L 57.3959,39.9787L 52.25,45.1248L 52.25,39.5833L 57.3959,39.583 Z M 58.5833,46.708L 46.7082,58.5833L 40.3747,58.5833L 46.708,52.25L 52.25,52.25L 52.25,46.708L 58.5833,40.3746L 58.5833,46.708 Z "}))),vn=t=>o.exports.createElement("svg",{width:"36px",height:"36px",viewBox:"0 0 76 76",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",baseProfile:"full",enableBackground:"new 0 0 76.00 76.00",xmlSpace:"preserve",fill:"#66CC89",stroke:"#66CC89",...t},o.exports.createElement("g",{id:"SVGRepo_bgCarrier",strokeWidth:0}),o.exports.createElement("g",{id:"SVGRepo_tracerCarrier",strokeLinecap:"round",strokeLinejoin:"round"}),o.exports.createElement("g",{id:"SVGRepo_iconCarrier"},o.exports.createElement("path",{fill:"#66CC89",fillOpacity:1,strokeWidth:.2,strokeLinejoin:"round",d:"M 50.6667,25.3333L 50.6667,41.1667L 41.1667,41.1667L 41.1667,50.6667L 25.3333,50.6667L 25.3333,34.8333L 34.8333,34.8333L 34.8333,25.3333L 50.6667,25.3333 Z M 14.25,14.25L 16.6251,14.25L 14.25,16.6251L 14.25,14.25 Z M 24.542,14.2501L 14.25,24.5421L 14.25,18.2083L 18.2082,14.25L 24.542,14.2501 Z M 15.0415,33.2503L 33.25,15.0419L 33.2499,21.3759L 21.3751,33.2503L 15.0415,33.2503 Z M 14.25,26.1254L 26.1251,14.25L 32.4586,14.25L 14.25,32.4587L 14.25,26.1254 Z M 22.9584,33.2503L 33.25,22.9585L 33.25,29.2918L 29.2922,33.2503L 22.9584,33.2503 Z M 61.75,61.75L 59.3749,61.75L 61.75,59.3749L 61.75,61.75 Z M 51.458,61.75L 61.75,51.458L 61.75,57.7918L 57.7918,61.75L 51.458,61.75 Z M 60.9584,42.7497L 42.75,60.9581L 42.75,54.6241L 54.6249,42.7497L 60.9584,42.7497 Z M 61.75,49.8746L 49.8749,61.75L 43.5414,61.75L 61.75,43.5413L 61.75,49.8746 Z M 53.0415,42.7497L 42.75,53.0415L 42.75,46.7082L 46.7078,42.7497L 53.0415,42.7497 Z "}))),Cn=()=>{const{t}=A();return x(D,{children:[l("div",{className:"font-bold font-fredokaOne mt-3 text-sm",children:t("title.layer")}),x("ul",{className:"menu menu-vertical lg:menu-horizontal bg-base-100 rounded-box mt-1 flex-row w-max",children:[l("li",{children:l("a",{className:"px-1.5 py-1",onClick:()=>c.bringForWard(),children:l(fn,{})})}),l("li",{children:l("a",{className:"px-1.5 py-1",onClick:()=>c.seendBackWard(),children:l(wn,{})})}),l("li",{children:l("a",{className:"px-1.5 py-1",onClick:()=>c.bringToFront(),children:l(xn,{})})}),l("li",{children:l("a",{className:"px-1.5 py-1",onClick:()=>c.sendToBack(),children:l(vn,{})})})]})]})},bn=({refreshCount:t})=>{const{t:e}=A(),r=o.exports.useMemo(()=>{var h;let s=!1,i=1;const d=(h=c.canvas)==null?void 0:h.getActiveObjects();if(d!=null&&d.length){s=!0;const g=d==null?void 0:d.map(f=>{var v;return(v=f.opacity)!=null?v:1});g.length&&(i=Math.max(...g))}return{show:s,opacity:i}},[t]),a=o.exports.useCallback($.exports.debounce(()=>{var s;(s=c.history)==null||s.saveState()},500),[]),n=s=>{var d,h,g;const i=(d=c.canvas)==null?void 0:d.getActiveObjects();i!=null&&i.length&&(i==null||i.forEach(f=>{f.opacity=s}),(h=c.canvas)==null||h.fire("selection:updated"),(g=c.canvas)==null||g.renderAll(),a())};return l(D,{children:r.show&&x(D,{children:[l("div",{className:"font-bold font-fredokaOne mt-3 text-sm",children:e("title.opacity")}),l("div",{className:"mt-1 flex items-center w-full",children:l("input",{className:"range range-primary range-xs",type:"range",min:"0",max:"1",step:"0.01",value:r.opacity,onChange:s=>n(Number(s.target.value))})})]})})},yn=[{type:"Sepia",text:"filters.Sepia"},{type:"Invert",text:"filters.Invert"},{type:"BlackWhite",text:"filters.BlackWhite"},{type:"Grayscale",text:"filters.Grayscale"},{type:"Blur",text:"filters.Blur"},{type:"Vintage",text:"filters.Vintage"},{type:"BlendColor",text:"filters.BlendColor"},{type:"Brownie",text:"filters.Brownie"},{type:"Kodachrome",text:"filters.Kodachrome"},{type:"Pixelate",text:"filters.Pixelate"},{type:"Polaroid",text:"filters.Polaroid"},{type:"Technicolor",text:"filters.Technicolor"},{type:"Brightness",text:"filters.Brightness"},{type:"Noise",text:"filters.Noise"},{type:"Convolute",text:"filters.Convolute"}],Sn=()=>{const{t}=A(),e=r=>{var n;const a=(n=c.canvas)==null?void 0:n.getActiveObject();ia(a,r),c.render(),c.triggerHook()};return x(D,{children:[l("div",{className:"font-bold font-fredokaOne mt-3 text-sm",children:t("title.imageFilters")}),l("div",{className:"flex flex-row flex-wrap w-72 items-center justify-between",children:yn.map((r,a)=>{var n,s,i,d;return x("label",{className:"cursor-pointer label inline-flex w-32",children:[l("span",{className:"label-text mr-2",children:t(r.text)}),l("input",{type:"checkbox",checked:((d=(i=(s=(n=c.canvas)==null?void 0:n.getActiveObject())==null?void 0:s.filters)==null?void 0:i.map(h=>{var g;return(g=h==null?void 0:h.type)!=null?g:""}))!=null?d:[]).includes(r.type),onChange:()=>e(r.type),className:"checkbox checkbox-success"})]},a)})})]})},kn=[{type:Z.BOLD,text:"fontStyle.bold"},{type:Z.ITALIC,text:"fontStyle.italic"},{type:Z.UNDER_LINE,text:"fontStyle.underLine"},{type:Z.LINE_THROUGH,text:"fontStyle.lineThrough"}],Ln=({refreshCount:t})=>{const{t:e}=A(),{updateFontStyles:r}=m(),a=o.exports.useMemo(()=>{var d;const s=(d=c.canvas)==null?void 0:d.getActiveObject(),i=[];return s.fontWeight==="bold"&&i.push(Z.BOLD),s.fontStyle==="italic"&&i.push(Z.ITALIC),s.underline&&i.push(Z.UNDER_LINE),s.linethrough&&i.push(Z.LINE_THROUGH),i},[t]),n=s=>{var d;r(s);const i=(d=c.canvas)==null?void 0:d.getActiveObject();switch(s){case Z.BOLD:i.set({fontWeight:i.fontWeight==="bold"?"normal":"bold"});break;case Z.ITALIC:i.set({fontStyle:i.fontStyle==="italic"?"normal":"italic"});break;case Z.UNDER_LINE:i.set({underline:!i.underline});break;case Z.LINE_THROUGH:i.set({linethrough:!i.linethrough});break}c.render(),c.triggerHook()};return x(D,{children:[l("div",{className:"font-bold font-fredokaOne mt-3 text-sm",children:e("title.fontStyle")}),l("div",{className:"flex flex-row flex-wrap items-center w-56 mt-2",children:kn.map((s,i)=>x("label",{className:"cursor-pointer label inline-flex justify-start w-28 px-0 py-1",children:[l("span",{className:"label-text mr-2 font-fredokaOne text-xs",children:e(s.text)}),l("input",{type:"checkbox",checked:a==null?void 0:a.includes(s.type),onChange:()=>n(s.type),className:"checkbox checkbox-success checkbox-sm"})]},i))})]})},En=({refreshCount:t})=>{var k,S;const{fillColor:e}=O(),r=b=>{if(Array.isArray(b)){const[w,C]=b;return w>C?J.Dashed:J.Dotted}else return b?"":J.Solid},a=o.exports.useMemo(()=>{var w,C;const b=(C=(w=c.canvas)==null?void 0:w.getActiveObject())==null?void 0:C.strokeDashArray;return r(b)},[t]),n=b=>{var M,I,L,y;const w=(I=(M=c.canvas)==null?void 0:M.getActiveObject())==null?void 0:I.strokeWidth;if(!w)return;let C;switch(b){case J.Dashed:C=[w*3,w*2];break;case J.Dotted:C=[w,w*3];break}(y=(L=c.canvas)==null?void 0:L.getActiveObject())==null||y.set({strokeDashArray:C}),c.render(),c.triggerHook()},s=o.exports.useMemo(()=>{var b,w,C;return(C=(w=(b=c.canvas)==null?void 0:b.getActiveObject())==null?void 0:w.stroke)!=null?C:void 0},[t]),i=o.exports.useCallback($.exports.debounce(b=>{var w,C;(C=(w=c.canvas)==null?void 0:w.getActiveObject())==null||C.set({stroke:b}),c.render(),c.triggerHook()},500),[]),d=o.exports.useMemo(()=>{var b,w,C;return(C=(w=(b=c.canvas)==null?void 0:b.getActiveObject())==null?void 0:w.strokeWidth)!=null?C:void 0},[t]),h=o.exports.useCallback($.exports.debounce(b=>{var I,L,y,z;const w=(L=(I=c.canvas)==null?void 0:I.getActiveObject())==null?void 0:L.strokeDashArray,C=r(w);let M;switch(C){case J.Dashed:M=[b*3,b*2];break;case J.Dotted:M=[b,b*3];break}(z=(y=c.canvas)==null?void 0:y.getActiveObject())==null||z.set({strokeWidth:b,strokeDashArray:M}),c.render(),c.triggerHook()},500),[]),g=o.exports.useMemo(()=>{var b,w;return(w=(b=c.canvas)==null?void 0:b.getActiveObject())==null?void 0:w.fill},[t]),f=o.exports.useCallback($.exports.debounce(b=>{var C,M,I,L;((M=(C=c.canvas)==null?void 0:C.getActiveObject())==null?void 0:M.fill)!=="transparent"&&((L=(I=c.canvas)==null?void 0:I.getActiveObject())==null||L.set({fill:b}),c.render(),c.triggerHook())},500),[]),v=o.exports.useMemo(()=>{var w,C;return((C=(w=c.canvas)==null?void 0:w.getActiveObject())==null?void 0:C.fill)==="transparent"?ie.Transparent:ie.Full},[t]),R=b=>{var w,C,M,I;switch(b){case ie.Transparent:(C=(w=c.canvas)==null?void 0:w.getActiveObject())==null||C.set({fill:"transparent"});break;case ie.Full:(I=(M=c.canvas)==null?void 0:M.getActiveObject())==null||I.set({fill:e});break}c.render(),c.triggerHook()};return x(D,{children:[l(yt,{borderType:a,updateBorderType:n}),l(bt,{borderColor:s,updateBorderColor:i,borderWidth:d,updateBorderWidth:h}),Object.values($.exports.omit(Ae,["SHAPE_LINE","SHAPE_ARROW_LINE"])).includes((S=(k=c.canvas)==null?void 0:k.getActiveObject())==null?void 0:S._customType)&&l(St,{fillColor:g,fillType:v,updateFillColor:f,updateFillType:R})]})},Mn=({refreshCount:t})=>{const e=a=>{var s;const n=(s=c.canvas)==null?void 0:s.getActiveObject();(n==null?void 0:n._customType)===P.I_TEXT?n.set("fontFamily",a):(n==null?void 0:n._customType)===P.DRAW_TEXT&&n._objects.forEach(i=>{i.set("fontFamily",a)}),c.render(),c.triggerHook()},r=o.exports.useMemo(()=>{var n,s,i;const a=(n=c.canvas)==null?void 0:n.getActiveObject();return(a==null?void 0:a._customType)===P.I_TEXT?(a==null?void 0:a.fontFamily)||"":(a==null?void 0:a._customType)===P.DRAW_TEXT&&((i=(s=a._objects)==null?void 0:s[0])==null?void 0:i.fontFamily)||""},[t]);return l(vt,{fontFamily:r,updateFontFamily:e})},In=()=>{var r,a,n,s,i,d,h,g,f;const[t,e]=o.exports.useState(0);return o.exports.useEffect(()=>{const v=()=>e(R=>R+1);return c.addHookFn(v),()=>{c.removeHookFn(v)}},[e]),x("div",{className:"form-control",children:[l(bn,{refreshCount:t}),((r=c.canvas)==null?void 0:r.getActiveObject())&&l(Cn,{}),((n=(a=c.canvas)==null?void 0:a.getActiveObject())==null?void 0:n._customType)===P.IMAGE&&l(Sn,{}),((i=(s=c.canvas)==null?void 0:s.getActiveObject())==null?void 0:i._customType)===P.I_TEXT&&l(Ln,{refreshCount:t}),[P.DRAW_TEXT,P.I_TEXT].includes((h=(d=c.canvas)==null?void 0:d.getActiveObject())==null?void 0:h._customType)&&l(Mn,{refreshCount:t}),Object.values(Ae).includes((f=(g=c.canvas)==null?void 0:g.getActiveObject())==null?void 0:f._customType)&&l(En,{refreshCount:t})]})},nt=t=>o.exports.createElement("svg",{t:1702136520403,className:"icon",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg","p-id":1624,xmlnsXlink:"http://www.w3.org/1999/xlink",width:36,height:36,...t},o.exports.createElement("path",{d:"M0 0h192v192H0z","p-id":1625,fill:"#65CC8A"}),o.exports.createElement("path",{d:"M192 192h192v192H192z",opacity:.6,"p-id":1626,fill:"#65CC8A"}),o.exports.createElement("path",{d:"M384 0h192v192H384z",opacity:.8,"p-id":1627,fill:"#65CC8A"}),o.exports.createElement("path",{d:"M576 192h192v192H576z",opacity:.4,"p-id":1628,fill:"#65CC8A"}),o.exports.createElement("path",{d:"M768 0h192v192h-192z",opacity:.6,"p-id":1629,fill:"#65CC8A"}),o.exports.createElement("path",{d:"M0 384h192v192H0z",opacity:.8,"p-id":1630,fill:"#65CC8A"}),o.exports.createElement("path",{d:"M192 576h192v192H192zM384 384h192v192H384z",opacity:.4,"p-id":1631,fill:"#65CC8A"}),o.exports.createElement("path",{d:"M576 576h192v192H576zM768 384h192v192h-192z",opacity:.2,"p-id":1632,fill:"#65CC8A"}),o.exports.createElement("path",{d:"M0 768h192v192H0z",opacity:.4,"p-id":1633,fill:"#65CC8A"}),o.exports.createElement("path",{d:"M384 768h192v192H384z",opacity:.2,"p-id":1634,fill:"#65CC8A"}),o.exports.createElement("path",{d:"M768 768h192v192h-192z",opacity:.1,"p-id":1635,fill:"#65CC8A"})),kt=t=>o.exports.createElement("svg",{width:"28px",height:"28px",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...t},o.exports.createElement("g",{id:"SVGRepo_bgCarrier",strokeWidth:0}),o.exports.createElement("g",{id:"SVGRepo_tracerCarrier",strokeLinecap:"round",strokeLinejoin:"round"}),o.exports.createElement("g",{id:"SVGRepo_iconCarrier"},o.exports.createElement("path",{d:"M13 4H8.8C7.11984 4 6.27976 4 5.63803 4.32698C5.07354 4.6146 4.6146 5.07354 4.32698 5.63803C4 6.27976 4 7.11984 4 8.8V15.2C4 16.8802 4 17.7202 4.32698 18.362C4.6146 18.9265 5.07354 19.3854 5.63803 19.673C6.27976 20 7.11984 20 8.8 20H15.2C16.8802 20 17.7202 20 18.362 19.673C18.9265 19.3854 19.3854 18.9265 19.673 18.362C20 17.7202 20 16.8802 20 15.2V11",stroke:"#66CC89",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"}),o.exports.createElement("path",{d:"M4 16L8.29289 11.7071C8.68342 11.3166 9.31658 11.3166 9.70711 11.7071L13 15M13 15L15.7929 12.2071C16.1834 11.8166 16.8166 11.8166 17.2071 12.2071L20 15M13 15L15.25 17.25",stroke:"#66CC89",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"}),o.exports.createElement("path",{d:"M18 8V3M18 3L16 5M18 3L20 5",stroke:"#66CC89",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"}))),Tn=t=>o.exports.createElement("svg",{id:"Layer_1",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512",xmlSpace:"preserve",width:"64px",height:"64px",fill:"#000000",...t},o.exports.createElement("g",{id:"SVGRepo_bgCarrier",strokeWidth:0}),o.exports.createElement("g",{id:"SVGRepo_tracerCarrier",strokeLinecap:"round",strokeLinejoin:"round"}),o.exports.createElement("g",{id:"SVGRepo_iconCarrier"},o.exports.createElement("polygon",{style:{fill:"#00954A"},points:"504.082,303.505 504.082,414.351 324.091,304.35 324.619,303.505 398.515,234.887 "}),o.exports.createElement("polygon",{style:{fill:"#0EB14C"},points:"504.082,414.351 504.082,451.299 7.918,451.299 7.918,377.402 219.052,240.165 324.091,304.35 "}),o.exports.createElement("polygon",{style:{fill:"#0071BC"},points:"504.082,60.701 504.082,303.505 398.515,234.887 324.619,303.505 324.091,304.35 219.052,240.165 7.918,377.402 7.918,60.701 "}),o.exports.createElement("polygon",{style:{fill:"#008647"},points:"504.082,371.515 355.794,274.557 324.619,303.505 324.091,304.35 504.082,414.351 "}),o.exports.createElement("polygon",{style:{fill:"#00AB4F"},points:"504.082,451.299 504.082,414.351 324.091,304.35 219.052,240.165 180.422,265.274 496.315,451.299 "}),o.exports.createElement("polygon",{style:{fill:"#0089CC"},points:"7.918,60.701 7.918,377.402 219.052,240.165 256,262.743 256,60.701 "}),o.exports.createElement("path",{style:{fill:"#FFD311"},d:"M306.144,102.928c30.614,0,55.423,24.808,55.423,55.423s-24.808,55.423-55.423,55.423 s-55.423-24.808-55.423-55.423S275.53,102.928,306.144,102.928z"}),o.exports.createElement("path",{style:{fill:"#FABB1B"},d:"M277.166,111.299c-15.814,9.76-26.445,27.099-26.445,47.051c0,30.614,24.808,55.423,55.423,55.423 c14.673,0,27.919-5.805,37.833-15.11C311.607,179.552,287.312,148.41,277.166,111.299z"}),o.exports.createElement("path",{style:{fill:"#F1F2F2"},d:"M155.711,139.876c14.568,0,26.392,11.824,26.392,26.392s-11.824,26.392-26.392,26.392 s-55.845,0-68.619,0c-14.568,0-26.392-11.824-26.392-26.392s11.824-26.392,26.392-26.392c0.211,0,0.317,0,0.528,0.106 c2.428-12.14,13.09-21.219,25.864-21.219c14.568,0,26.392,11.823,26.392,26.392v0.106 C144.31,141.988,149.694,139.876,155.711,139.876z"}),o.exports.createElement("path",{d:"M0,52.784v406.433h512V52.784H0z M496.165,68.619v220.297l-98.512-64.033l-74.788,69.445l-103.944-63.522L15.835,362.813 V68.619H496.165z M496.165,400.233L336.9,302.905l62.477-58.015l96.788,62.913V400.233z M15.835,443.381v-61.683l203.346-132.175 l100.78,61.581l176.204,107.686v24.591H15.835z"}),o.exports.createElement("path",{d:"M306.144,221.691c34.926,0,63.34-28.414,63.34-63.34s-28.414-63.34-63.34-63.34s-63.34,28.414-63.34,63.34 S271.219,221.691,306.144,221.691z M306.144,110.845c26.194,0,47.505,21.311,47.505,47.505s-21.311,47.505-47.505,47.505 s-47.505-21.311-47.505-47.505S279.95,110.845,306.144,110.845z"}),o.exports.createElement("path",{d:"M87.093,200.577h68.619c18.918,0,34.309-15.392,34.309-34.309s-15.392-34.309-34.309-34.309 c-3.388,0-6.733,0.517-9.961,1.525c-4.785-13.191-17.443-22.639-32.265-22.639c-14.154,0-26.688,8.76-31.827,21.543 c-16.344,2.614-28.874,16.81-28.874,33.88C52.784,185.186,68.175,200.577,87.093,200.577z M85.654,147.851l7.698,3.849l2.033-10.165 c1.721-8.607,9.333-14.854,18.099-14.854c10.186,0,18.474,8.288,18.474,18.474v15.791l12.619-9.314 c3.45-2.546,7.195-3.836,11.133-3.836c10.186,0,18.474,8.288,18.474,18.474c0,10.186-8.288,18.474-18.474,18.474H87.093 c-10.186,0-18.474-8.288-18.474-18.474C68.619,156.572,76.126,148.596,85.654,147.851z"}),o.exports.createElement("g",null,o.exports.createElement("rect",{x:204.892,y:329.91,transform:"matrix(-0.8526 -0.5226 0.5226 -0.8526 380.8123 783.0786)",style:{fill:"#FFFFFF"},width:191.924,height:15.835}),o.exports.createElement("rect",{x:374.107,y:314.087,transform:"matrix(-0.8396 -0.5433 0.5433 -0.8396 611.5624 824.6218)",style:{fill:"#FFFFFF"},width:106.882,height:15.836}),o.exports.createElement("rect",{x:414.351,y:100.289,style:{fill:"#FFFFFF"},width:36.948,height:15.835}),o.exports.createElement("rect",{x:440.742,y:137.237,style:{fill:"#FFFFFF"},width:36.948,height:15.835}),o.exports.createElement("rect",{x:39.588,y:95.01,style:{fill:"#FFFFFF"},width:36.948,height:15.835}),o.exports.createElement("rect",{x:197.938,y:105.567,style:{fill:"#FFFFFF"},width:36.948,height:15.835}),o.exports.createElement("rect",{x:39.588,y:274.474,style:{fill:"#FFFFFF"},width:36.948,height:15.835}),o.exports.createElement("rect",{x:92.371,y:232.247,style:{fill:"#FFFFFF"},width:36.948,height:15.835}),o.exports.createElement("rect",{x:387.959,y:168.907,style:{fill:"#FFFFFF"},width:36.948,height:15.835})))),Rn=()=>{const{backgroundColor:t,backgroundOpacity:e,hasBackgroundImage:r,backgroundImageOpacity:a,updateBackgroundColor:n,updateBackgroundOpacity:s,updateBackgroundImage:i,updateBackgroundImageOpacity:d,cleanBackgroundImage:h,initBackground:g}=N(),{t:f}=A(),v=o.exports.useCallback($.exports.debounce(()=>{c.render()},500),[]);o.exports.useEffect(()=>(c.addHookFn(g),()=>{c.removeHookFn(g)}),[g]);const R=S=>{var C;const b=(C=S.target.files)==null?void 0:C[0];if(!b)return;const w=new FileReader;w.onload=M=>{var L;const I=(L=M.target)==null?void 0:L.result;I&&I&&typeof I=="string"&&i(I),S.target.value=""},w.readAsDataURL(b)},k=S=>{S.preventDefault(),S.stopPropagation(),h()};return x("div",{className:"form-control mt-3",children:[l("div",{className:"font-bold font-fredokaOne text-sm",children:f("title.canvasBackground")}),x("div",{className:"mt-1 flex items-center w-full",children:[l("div",{className:"w-7 h-7",children:l("input",{type:"color",value:$t(t||""),onChange:S=>{n(S.target.value),v()},className:"colorInput"})}),l("div",{className:"divider divider-horizontal mx-3"}),l(nt,{className:"mr-2"}),l("input",{className:"range range-primary range-xs",type:"range",min:"0",max:"1",step:"0.01",value:String(e),onChange:S=>{s(Number(S.target.value)),v()}})]}),x("div",{className:"mt-3 flex items-center w-full",children:[l("label",{htmlFor:"background-image-upload",className:"shrink-0 cursor-pointer rounded relative hover:bg-slate-200",children:r?x(D,{children:[l(Ct,{onClick:k,className:"absolute top-[-6px] right-[-6px] rounded-full w-3 h-3 cursor-pointer"}),l(Tn,{className:"w-7 h-7 object-contain"})]}):l(kt,{})}),l("input",{type:"file",id:"background-image-upload",accept:".jpeg, .jpg, .png",className:"hidden",onChange:R}),l("div",{className:"divider divider-horizontal mx-3"}),l(nt,{className:"mr-2"}),l("input",{className:"range range-primary range-xs",type:"range",min:"0",max:"1",step:"0.01",value:String(a),onChange:S=>{d(Number(S.target.value)),v()}})]})]})},Pn=()=>{const{canvasWidth:t,canvasHeight:e,updateCanvasWidth:r,updateCanvasHeight:a}=N(),{t:n}=A();return x("div",{className:"form-control mt-3",children:[l("div",{className:"font-bold font-fredokaOne text-sm",children:n("title.canvasSize")}),x("div",{className:"mt-1 flex items-center w-full",children:[l("div",{className:"text-sm font-fredokaOne w-12 mr-2 shrink-0",children:n("canvasSize.width")}),l("div",{className:"text-sm font-fredokaOne mr-2 text-primary-focus w-9 shrink-0",children:(t*100).toFixed(0)+"%"}),l("input",{className:"range range-primary range-xs",type:"range",min:"0.1",max:"1",step:"0.01",value:String(t),onChange:s=>{r(Number(s.target.value))}})]}),x("div",{className:"mt-1 flex items-center w-full",children:[l("div",{className:"text-sm font-fredokaOne w-12 mr-2 shrink-0",children:n("canvasSize.height")}),l("div",{className:"text-sm font-fredokaOne mr-2 text-primary-focus w-9 shrink-0",children:(e*100).toFixed(0)+"%"}),l("input",{className:"range range-primary range-xs",type:"range",min:"0.1",max:"1",step:"0.01",value:String(e),onChange:s=>{a(Number(s.target.value))}})]})]})},Nn=()=>{const{t}=A(),{isObjectCaching:e,updateCacheState:r}=N();return x("div",{className:"form-control mt-3",children:[l("div",{className:"font-bold font-fredokaOne text-sm",children:t("title.drawCache")}),x("div",{className:"mt-1 flex items-start w-full",children:[l("input",{type:"checkbox",className:"toggle toggle-success",checked:e,onChange:r}),l("div",{className:"text-xs w-40 ml-3",children:t("boardConfig.cacheTip")})]})]})},An=()=>{const{openGuideLine:t,updateOpenGuideLine:e}=N(),{t:r}=A();return x("div",{className:"form-control mt-3",children:[l("div",{className:"font-bold font-fredokaOne text-sm",children:r("title.guideLine")}),l("div",{className:"mt-1 flex items-start w-full",children:l("input",{type:"checkbox",className:"toggle toggle-success",checked:t,onChange:e})})]})},On=()=>x(D,{children:[l(Rn,{}),l(Pn,{}),l(Nn,{}),l(An,{})]}),Lt=t=>o.exports.createElement("svg",{className:"{className} ",xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 512 512",...t},o.exports.createElement("path",{d:"M64,384H448V341.33H64Zm0-106.67H448V234.67H64ZM64,128v42.67H448V128Z"})),Et=t=>o.exports.createElement("svg",{className:"{className} ",xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 512 512",...t},o.exports.createElement("polygon",{points:"400 145.49 366.51 112 256 222.51 145.49 112 112 145.49 222.51 256 112 366.51 145.49 400 256 289.49 366.51 400 400 366.51 289.49 256 400 145.49"})),_n=()=>{const{t}=A(),{mode:e,updateMode:r}=N(),[a,n]=o.exports.useState(!0);return x("div",{className:`fixed top-7 left-7 flex flex-col card shadow-xl overflow-visible z-3 bg-[#eef1ff] max-h-[80%] max-w-[85%] ${a?"p-5":""}`,children:[x("label",{className:"btn btn-circle swap swap-rotate absolute -top-3 -left-3 h-7 w-7 min-h-0",children:[l("input",{type:"checkbox",onChange:()=>n(s=>!s)}),l(Lt,{className:"swap-on fill-current"}),l(Et,{className:"swap-off fill-current"})]}),a&&x("div",{className:"max-h-[100%] overflow-y-auto noScrollbar",children:[l("div",{className:"tabs tabs-boxed bg-[#333C4D]",children:ua.map(({type:s,text:i})=>l("a",{className:`tab tab-sm flex-grow font-fredokaOne text-white font-medium ${e===s?"tab-active":""}`,onClick:()=>{r(s)},children:t(i)},s))}),e===F.DRAW&&l(gn,{}),e===F.ERASE&&l(mn,{}),e===F.SELECT&&l(In,{}),e===F.Board&&l(On,{})]})]})},Fn=t=>o.exports.createElement("svg",{fill:"#65CC8A",width:"28px",height:"28px",viewBox:"0 0 32 32",xmlns:"http://www.w3.org/2000/svg",...t},o.exports.createElement("g",{id:"SVGRepo_bgCarrier",strokeWidth:0}),o.exports.createElement("g",{id:"SVGRepo_tracerCarrier",strokeLinecap:"round",strokeLinejoin:"round"}),o.exports.createElement("g",{id:"SVGRepo_iconCarrier"},o.exports.createElement("title",null,"info1"),o.exports.createElement("path",{d:"M16 3c-7.18 0-13 5.82-13 13s5.82 13 13 13 13-5.82 13-13-5.82-13-13-13zM18.039 20.783c-0.981 1.473-1.979 2.608-3.658 2.608-1.146-0.187-1.617-1.008-1.369-1.845l2.16-7.154c0.053-0.175-0.035-0.362-0.195-0.419-0.159-0.056-0.471 0.151-0.741 0.447l-1.306 1.571c-0.035-0.264-0.004-0.7-0.004-0.876 0.981-1.473 2.593-2.635 3.686-2.635 1.039 0.106 1.531 0.937 1.35 1.85l-2.175 7.189c-0.029 0.162 0.057 0.327 0.204 0.379 0.16 0.056 0.496-0.151 0.767-0.447l1.305-1.57c0.035 0.264-0.024 0.726-0.024 0.902zM17.748 11.439c-0.826 0-1.496-0.602-1.496-1.488s0.67-1.487 1.496-1.487 1.496 0.602 1.496 1.487c0 0.887-0.67 1.488-1.496 1.488z"}))),Bn=()=>{var r;const[t,e]=o.exports.useState((r=c.evnet)==null?void 0:r.zoomEvent.handleZoomPercentage(!1));return o.exports.useEffect(()=>{var a;(a=c.evnet)==null||a.zoomEvent.setZoomHook(n=>{e(n)})},[e]),l("div",{className:"radial-progress bg-primary text-primary-content border-4 border-primary cursor-pointer ml-2",style:{"--value":t,"--size":"1.1rem","--thickness":"0.2rem"},onClick:()=>{var a;return(a=c.evnet)==null?void 0:a.zoomEvent.initZoom()}})},_e=({show:t,clickMask:e,children:r})=>l("div",{className:`fixed top-0 left-0 right-0 bottom-0 bg-black z-10 bg-opacity-75 ${t?"block":"hidden"}`,onClick:e,children:l("div",{className:"absolute top-1/2 left-1/2 -translate-x-2/4 -translate-y-2/4",onClick:a=>a.stopPropagation(),children:r})});const Dn=[{imageList:["https://raw.githubusercontent.com/LHRUN/file-store/main/paint-board/guideInfo/drawMode_freeStyle_1.3.0.png"],title:"FreeStyle",textList:["line1","line2","line3","line4","line5"]},{imageList:["https://raw.githubusercontent.com/LHRUN/file-store/main/paint-board/guideInfo/drawMode_shape_1.3.0.png"],title:"ShapeDraw",textList:["line1"]},{imageList:["https://raw.githubusercontent.com/LHRUN/file-store/main/paint-board/guideInfo/eraserMode_1.3.0.png"],title:"EraserMode",textList:["line1","line2"]},{imageList:["https://raw.githubusercontent.com/LHRUN/file-store/main/paint-board/guideInfo/selectMode_1.3.0.png"],title:"SelectMode",textList:["line1","line2","line3","line4","line5","line6"]},{imageList:["https://raw.githubusercontent.com/LHRUN/file-store/main/paint-board/guideInfo/boardMode_1.3.0.png"],title:"BoardMode",textList:["line1","line2","line3","line4"]},{imageList:["https://raw.githubusercontent.com/LHRUN/file-store/main/paint-board/borderConfig.png"],title:"BorderConfig",textList:["line1","line2","line3","line4"]},{imageList:["https://raw.githubusercontent.com/LHRUN/file-store/main/paint-board/files.png"],title:"FileConfig",textList:["line1"]}],Wn=()=>{const{t}=A();return l(Ft,{slidesPerView:1,spaceBetween:20,modules:[Bt],pagination:{dynamicBullets:!0,clickable:!0},autoHeight:!0,grabCursor:!0,className:"max-w-[500px] xs:max-w-[80vw]",children:Dn.map((e,r)=>l(Dt,{children:l("div",{className:"max-h-[50vh] overflow-y-auto noScrollbar",children:x("div",{className:"flex w-full rounded-2xl p-3 bg-[#66CC8920] box-border justify-between",children:[l("div",{className:"shrink-0 w-[49%] flex flex-col items-center justify-start",children:e.imageList.map((a,n)=>l("img",{className:"max-w-full max-h-full rounded-2xl mt-5 first:mt-0",src:a},n))}),x("div",{className:"w-[48%] shrink-0 p-3 rounded-2xl bg-[#eef1ff] box-border h-max",children:[l("div",{className:"text-lg font-fredokaOne",children:e.title}),e.textList.map((a,n)=>x("div",{className:"text-sm mt-3",children:[n+1,". ",t(`info.${e.title}.${a}`)]},n))]})]})})},r))})},Hn=()=>{const{t,i18n:e}=A(),{language:r,updateLanguage:a}=N(),[n,s]=o.exports.useState(!1),i=()=>{const d=r==="en"?"zh":"en";e.changeLanguage(d),a(d)};return x(D,{children:[x("div",{className:"fixed bottom-5 left-5 flex flex-row justify-center items-center px-2.5 py-1.5 rounded-full bg-[#eef1ff]",children:[l(Fn,{className:"bg-white rounded-full cursor-pointer hover:opacity-70",onClick:()=>s(!0)}),l(Bn,{})]}),l(_e,{show:n,clickMask:()=>{s(!1)},children:x("div",{className:"flex flex-col bg-white rounded-2xl overflow-hidden p-3 max-h-[80vh]",children:[x("div",{className:"flex items-center justify-between font-bold mb-4 ",children:[x("div",{className:"text-sm",children:["repo:",l("a",{className:"link link-primary inline-block ml-1 mr-3 break-all",href:"https://github.com/LHRUN/paint-board",target:"_blank",rel:"noreferrer",children:"github.com/LHRUN/paint-board"}),t("info.welecome"),"\u2B50\uFE0F"]}),x("div",{className:`ml-5 h-8 w-8 rounded-full cursor-pointer relative shrink-0 hover:opacity-80 ${r==="en"?"bg-primary-content":"bg-primary"}`,onClick:i,children:[l("span",{className:`w-6 h-6 transition-all duration-500 absolute top-1 left-1 text-neutral-content text-center origin-center ${r==="en"?"opacity-100 rotate-0":"opacity-0 -rotate-45"}`,children:"\u4E2D"}),l("span",{className:`w-6 h-6 transition-all duration-500 absolute top-1 left-1 text-primary-content text-center text-base origin-center ${r==="zh"?"opacity-100 rotate-0":"opacity-0 rotate-45"}`,children:"En"})]})]}),l(Wn,{})]})})]})},Xn=()=>{const{t}=A(),e=()=>{var r;(r=c.history)==null||r.clean()};return x(D,{children:[l("input",{type:"checkbox",id:"clean-modal",className:"modal-toggle"}),l("label",{htmlFor:"clean-modal",className:"modal cursor-pointer",children:x("label",{className:"modal-box relative flex flex-col justify-center items-center",htmlFor:"",children:[l("h3",{className:"text-lg font-bold text-center",children:t("cleanModal.title")}),x("div",{className:"w-64 flex justify-between mt-10",children:[l("label",{htmlFor:"clean-modal",className:"btn btn-active btn-primary btn-sm w-2/5",onClick:e,children:t("confirm")}),l("label",{htmlFor:"clean-modal",className:"btn btn-active btn-ghost btn-sm w-2/5",children:t("cancel")})]})]})})]})},Vn=t=>o.exports.createElement("svg",{className:"icon",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg","p-id":6082,width:26,height:26,...t},o.exports.createElement("path",{d:"M553.510259 201.860177c-312.055513 53.779187-655.249802 337.402216-45.768564 793.695176C283.646139 771.440335 83.62989 414.41051 555.277559 433.448208l1.201715 162.84822 297.307743-261.013025L552.261108 30.273979 553.510259 201.860177 553.510259 201.860177zM553.510259 201.860177","p-id":6083,fill:"#65CC8A"})),Yn=t=>o.exports.createElement("svg",{className:"icon",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg","p-id":6082,width:26,height:26,...t},o.exports.createElement("path",{d:"M553.510259 201.860177c-312.055513 53.779187-655.249802 337.402216-45.768564 793.695176C283.646139 771.440335 83.62989 414.41051 555.277559 433.448208l1.201715 162.84822 297.307743-261.013025L552.261108 30.273979 553.510259 201.860177 553.510259 201.860177zM553.510259 201.860177","p-id":6083,fill:"#65CC8A"})),Gn=t=>o.exports.createElement("svg",{width:"28px",height:"28px",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...t},o.exports.createElement("g",{id:"SVGRepo_bgCarrier",strokeWidth:0}),o.exports.createElement("g",{id:"SVGRepo_tracerCarrier",strokeLinecap:"round",strokeLinejoin:"round"}),o.exports.createElement("g",{id:"SVGRepo_iconCarrier"},o.exports.createElement("g",{id:"System / Save"},o.exports.createElement("path",{id:"Vector",d:"M17 21.0002L7 21M17 21.0002L17.8031 21C18.921 21 19.48 21 19.9074 20.7822C20.2837 20.5905 20.5905 20.2843 20.7822 19.908C21 19.4806 21 18.921 21 17.8031V9.21955C21 8.77072 21 8.54521 20.9521 8.33105C20.9095 8.14 20.8393 7.95652 20.7432 7.78595C20.6366 7.59674 20.487 7.43055 20.1929 7.10378L17.4377 4.04241C17.0969 3.66374 16.9242 3.47181 16.7168 3.33398C16.5303 3.21 16.3242 3.11858 16.1073 3.06287C15.8625 3 15.5998 3 15.075 3H6.2002C5.08009 3 4.51962 3 4.0918 3.21799C3.71547 3.40973 3.40973 3.71547 3.21799 4.0918C3 4.51962 3 5.08009 3 6.2002V17.8002C3 18.9203 3 19.4796 3.21799 19.9074C3.40973 20.2837 3.71547 20.5905 4.0918 20.7822C4.5192 21 5.07899 21 6.19691 21H7M17 21.0002V17.1969C17 16.079 17 15.5192 16.7822 15.0918C16.5905 14.7155 16.2837 14.4097 15.9074 14.218C15.4796 14 14.9203 14 13.8002 14H10.2002C9.08009 14 8.51962 14 8.0918 14.218C7.71547 14.4097 7.40973 14.7155 7.21799 15.0918C7 15.5196 7 16.0801 7 17.2002V21M15 7H9",stroke:"#65CC8A",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"})))),jn=t=>o.exports.createElement("svg",{t:1702137196077,className:"icon",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg","p-id":4092,xmlnsXlink:"http://www.w3.org/1999/xlink",width:26,height:26,...t},o.exports.createElement("path",{d:"M512 0a170.666667 170.666667 0 0 1 170.569143 164.815238L682.666667 170.666667v146.285714h146.285714a146.285714 146.285714 0 0 1 146.18819 140.8L975.238095 463.238095v24.380953a146.334476 146.334476 0 0 1-97.523809 137.947428V877.714286a146.285714 146.285714 0 0 1-140.8 146.18819L731.428571 1024H292.571429a146.285714 146.285714 0 0 1-146.188191-140.8L146.285714 877.714286V625.590857a146.358857 146.358857 0 0 1-97.426285-132.486095L48.761905 487.619048v-24.380953a146.285714 146.285714 0 0 1 140.8-146.18819L195.047619 316.952381h146.285714V170.666667A170.666667 170.666667 0 0 1 506.148571 0.097524L512 0z m268.190476 633.904762H243.809524v243.809524a48.761905 48.761905 0 0 0 41.374476 48.201143l3.754667 0.438857L292.571429 926.47619h24.380952v-46.567619a48.761905 48.761905 0 1 1 97.523809 0V926.47619l48.761905 0.024381v-133.022476a48.761905 48.761905 0 1 1 97.52381 0V926.47619h48.761905v-219.428571a48.761905 48.761905 0 1 1 97.523809 0v219.428571h24.380952a48.761905 48.761905 0 0 0 48.64-45.104761L780.190476 877.714286V633.904762z m48.761905-219.428572H195.047619a48.761905 48.761905 0 0 0-48.64 45.104762L146.285714 463.238095v24.380953a48.761905 48.761905 0 0 0 45.104762 48.64L195.047619 536.380952h633.904762a48.761905 48.761905 0 0 0 48.64-45.104762L877.714286 487.619048v-24.380953a48.761905 48.761905 0 0 0-48.761905-48.761905zM512 97.52381a73.142857 73.142857 0 0 0-73.020952 68.851809L438.857143 170.666667v146.285714h146.285714V170.666667a73.142857 73.142857 0 0 0-64.609524-72.655238l-4.242285-0.365715L512 97.52381z",fill:"#65CC8A","p-id":4093})),zn=t=>o.exports.createElement("svg",{width:"26px",height:"26px",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...t},o.exports.createElement("g",{id:"SVGRepo_bgCarrier",strokeWidth:0}),o.exports.createElement("g",{id:"SVGRepo_tracerCarrier",strokeLinecap:"round",strokeLinejoin:"round"}),o.exports.createElement("g",{id:"SVGRepo_iconCarrier"},o.exports.createElement("path",{d:"M10.5 2.0028C9.82495 2.01194 9.4197 2.05103 9.09202 2.21799C8.71569 2.40973 8.40973 2.71569 8.21799 3.09202C8.05103 3.4197 8.01194 3.82495 8.0028 4.5M19.5 2.0028C20.1751 2.01194 20.5803 2.05103 20.908 2.21799C21.2843 2.40973 21.5903 2.71569 21.782 3.09202C21.949 3.4197 21.9881 3.82494 21.9972 4.49999M21.9972 13.5C21.9881 14.175 21.949 14.5803 21.782 14.908C21.5903 15.2843 21.2843 15.5903 20.908 15.782C20.5803 15.949 20.1751 15.9881 19.5 15.9972M22 7.99999V9.99999M14.0001 2H16M5.2 22H12.8C13.9201 22 14.4802 22 14.908 21.782C15.2843 21.5903 15.5903 21.2843 15.782 20.908C16 20.4802 16 19.9201 16 18.8V11.2C16 10.0799 16 9.51984 15.782 9.09202C15.5903 8.71569 15.2843 8.40973 14.908 8.21799C14.4802 8 13.9201 8 12.8 8H5.2C4.0799 8 3.51984 8 3.09202 8.21799C2.71569 8.40973 2.40973 8.71569 2.21799 9.09202C2 9.51984 2 10.0799 2 11.2V18.8C2 19.9201 2 20.4802 2.21799 20.908C2.40973 21.2843 2.71569 21.5903 3.09202 21.782C3.51984 22 4.07989 22 5.2 22Z",stroke:"#66CC89",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"}))),Un=t=>o.exports.createElement("svg",{width:"26px",height:"26px",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...t},o.exports.createElement("g",{id:"SVGRepo_bgCarrier",strokeWidth:0}),o.exports.createElement("g",{id:"SVGRepo_tracerCarrier",strokeLinecap:"round",strokeLinejoin:"round"}),o.exports.createElement("g",{id:"SVGRepo_iconCarrier"},o.exports.createElement("path",{d:"M3.5 3.5C3.5 2.94772 3.94772 2.5 4.5 2.5H19.5C20.0523 2.5 20.5 2.94772 20.5 3.5V6.5C20.5 7.05228 20.0523 7.5 19.5 7.5H18.5C17.9477 7.5 17.5 7.05228 17.5 6.5V5.5H13.5V18.5H15.5C16.0523 18.5 16.5 18.9477 16.5 19.5V20.5C16.5 21.0523 16.0523 21.5 15.5 21.5H8.5C7.94772 21.5 7.5 21.0523 7.5 20.5V19.5C7.5 18.9477 7.94772 18.5 8.5 18.5H10.5V5.5H6.5V6.5C6.5 7.05228 6.05228 7.5 5.5 7.5H4.5C3.94772 7.5 3.5 7.05228 3.5 6.5V3.5Z",fill:"#65CC8A"}))),Zn=t=>o.exports.createElement("svg",{width:"28px",height:"28px",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...t},o.exports.createElement("g",{id:"SVGRepo_bgCarrier",strokeWidth:0}),o.exports.createElement("g",{id:"SVGRepo_tracerCarrier",strokeLinecap:"round",strokeLinejoin:"round"}),o.exports.createElement("g",{id:"SVGRepo_iconCarrier"},o.exports.createElement("path",{d:"M10 11V17",stroke:"#66CC89",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"}),o.exports.createElement("path",{d:"M14 11V17",stroke:"#66CC89",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"}),o.exports.createElement("path",{d:"M4 7H20",stroke:"#66CC89",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"}),o.exports.createElement("path",{d:"M6 7H12H18V18C18 19.6569 16.6569 21 15 21H9C7.34315 21 6 19.6569 6 18V7Z",stroke:"#66CC89",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"}),o.exports.createElement("path",{d:"M9 5C9 3.89543 9.89543 3 11 3H13C14.1046 3 15 3.89543 15 5V7H9V5Z",stroke:"#66CC89",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"}))),$n=t=>o.exports.createElement("svg",{width:"26px",height:"26px",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...t},o.exports.createElement("g",{id:"SVGRepo_bgCarrier",strokeWidth:0}),o.exports.createElement("g",{id:"SVGRepo_tracerCarrier",strokeLinecap:"round",strokeLinejoin:"round"}),o.exports.createElement("g",{id:"SVGRepo_iconCarrier"},o.exports.createElement("rect",{x:4,y:4,width:16,height:18,rx:3,stroke:"#65CC8A",strokeWidth:2}),o.exports.createElement("path",{d:"M16 10L8 10",stroke:"#65CC8A",strokeWidth:2,strokeLinecap:"round"}),o.exports.createElement("path",{d:"M16 13L8 13",stroke:"#65CC8A",strokeWidth:2,strokeLinecap:"round"}),o.exports.createElement("path",{d:"M16 16L8 16",stroke:"#65CC8A",strokeWidth:2,strokeLinecap:"round"}))),qn=t=>o.exports.createElement("svg",{width:"26px",height:"26px",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...t},o.exports.createElement("g",{id:"SVGRepo_bgCarrier",strokeWidth:0}),o.exports.createElement("g",{id:"SVGRepo_tracerCarrier",strokeLinecap:"round",strokeLinejoin:"round"}),o.exports.createElement("g",{id:"SVGRepo_iconCarrier"},o.exports.createElement("g",{id:"Edit / Add_Plus_Square"},o.exports.createElement("path",{id:"Vector",d:"M8 12H12M12 12H16M12 12V16M12 12V8M4 16.8002V7.2002C4 6.08009 4 5.51962 4.21799 5.0918C4.40973 4.71547 4.71547 4.40973 5.0918 4.21799C5.51962 4 6.08009 4 7.2002 4H16.8002C17.9203 4 18.4801 4 18.9079 4.21799C19.2842 4.40973 19.5905 4.71547 19.7822 5.0918C20.0002 5.51962 20.0002 6.07967 20.0002 7.19978V16.7998C20.0002 17.9199 20.0002 18.48 19.7822 18.9078C19.5905 19.2841 19.2842 19.5905 18.9079 19.7822C18.4805 20 17.9215 20 16.8036 20H7.19691C6.07899 20 5.5192 20 5.0918 19.7822C4.71547 19.5905 4.40973 19.2842 4.21799 18.9079C4 18.4801 4 17.9203 4 16.8002Z",stroke:"#65CC8A",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"})))),Kn=t=>o.exports.createElement("svg",{width:"26px",height:"26px",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...t},o.exports.createElement("g",{id:"SVGRepo_bgCarrier",strokeWidth:0}),o.exports.createElement("g",{id:"SVGRepo_tracerCarrier",strokeLinecap:"round",strokeLinejoin:"round"}),o.exports.createElement("g",{id:"SVGRepo_iconCarrier"},o.exports.createElement("g",{id:"Edit / Add_Minus_Square"},o.exports.createElement("path",{id:"Vector",d:"M8 12H16M4 16.8002V7.2002C4 6.08009 4 5.51962 4.21799 5.0918C4.40973 4.71547 4.71547 4.40973 5.0918 4.21799C5.51962 4 6.08009 4 7.2002 4H16.8002C17.9203 4 18.4801 4 18.9079 4.21799C19.2842 4.40973 19.5905 4.71547 19.7822 5.0918C20.0002 5.51962 20.0002 6.07967 20.0002 7.19978V16.7998C20.0002 17.9199 20.0002 18.48 19.7822 18.9078C19.5905 19.2841 19.2842 19.5905 18.9079 19.7822C18.4805 20 17.9215 20 16.8036 20H7.19691C6.07899 20 5.5192 20 5.0918 19.7822C4.71547 19.5905 4.40973 19.2842 4.21799 18.9079C4 18.4801 4 17.9203 4 16.8002Z",stroke:"#65CC8A",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"})))),Jn=t=>o.exports.createElement("svg",{fill:"#65CC8A",width:"64px",height:"64px",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",...t},o.exports.createElement("g",{id:"SVGRepo_bgCarrier",strokeWidth:0}),o.exports.createElement("g",{id:"SVGRepo_tracerCarrier",strokeLinecap:"round",strokeLinejoin:"round"}),o.exports.createElement("g",{id:"SVGRepo_iconCarrier"},o.exports.createElement("path",{d:"M11 16h2V7h3l-4-5-4 5h3z"}),o.exports.createElement("path",{d:"M5 22h14c1.103 0 2-.897 2-2v-9c0-1.103-.897-2-2-2h-4v2h4v9H5v-9h4V9H5c-1.103 0-2 .897-2 2v9c0 1.103.897 2 2 2z"}))),Qn=t=>o.exports.createElement("svg",{fill:"#65CC8A",width:"64px",height:"64px",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",...t},o.exports.createElement("g",{id:"SVGRepo_bgCarrier",strokeWidth:0}),o.exports.createElement("g",{id:"SVGRepo_tracerCarrier",strokeLinecap:"round",strokeLinejoin:"round"}),o.exports.createElement("g",{id:"SVGRepo_iconCarrier"},o.exports.createElement("path",{d:"m12 18 4-5h-3V2h-2v11H8z"}),o.exports.createElement("path",{d:"M19 9h-4v2h4v9H5v-9h4V9H5c-1.103 0-2 .897-2 2v9c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-9c0-1.103-.897-2-2-2z"}))),es=({message:t})=>{const{t:e}=A();return l("div",{className:"toast toast-top toast-center",children:l("div",{className:"alert alert-success",children:l("div",{children:l("span",{className:"whitespace-nowrap",children:e(t)})})})})},ts=({updateShow:t})=>{const{files:e,currentId:r,updateCurrentFile:a,updateTitle:n,addFile:s,saveJSON:i,uploadFile:d}=te(),{updateMode:h}=N(),[g,f]=o.exports.useState(!1),v=k=>{a(k),c.initCanvasStorage(),h(F.DRAW)},R=k=>{d(k).then(S=>{S?(c.initCanvasStorage(),h(F.DRAW)):(f(!0),setTimeout(()=>{f(!1)},1500))})};return x("div",{className:"drawer drawer-end fixed top-0 z-[1]",children:[l("input",{id:"my-drawer-4",type:"checkbox",className:"drawer-toggle"}),x("div",{className:"drawer-side",children:[l("label",{htmlFor:"my-drawer-4",className:"drawer-overlay",onClick:()=>t(!1)}),x("div",{className:"h-screen bg-white px-5 py-7 overflow-hidden max-w-[80%]",children:[l("div",{className:"font-fredokaOne text-2xl text-center",children:"PAINT-BOARD FILES"}),x("div",{className:"bg-[#eef1ff] rounded-2xl mt-5 py-2 w-max max-w-full",children:[x("div",{className:"flex justify-end items-center px-4 pb-2",children:[l(qn,{className:"hover:bg-slate-200 cursor-pointer p-1 rounded-lg w-9 h-9",onClick:s}),l("label",{htmlFor:"delete-file-modal",children:l(Kn,{className:"hover:bg-slate-200 cursor-pointer p-1 rounded-lg w-9 h-9"})}),l(Jn,{className:"hover:bg-slate-200 cursor-pointer p-1 rounded-lg w-9 h-9",onClick:i}),l("label",{htmlFor:"file-upload",className:"cursor-pointer",children:l(Qn,{className:"hover:bg-slate-200 cursor-pointer p-1 rounded-lg w-9 h-9"})}),l("input",{type:"file",accept:"application/json",id:"file-upload",className:"hidden",onChange:k=>{var S;return R((S=k.target.files)==null?void 0:S[0])}})]}),l("ul",{className:"menu text-base-content my-2 mx-4 py-3 px-2 rounded-xl bg-white max-h-[70vh] xs:max-h-[40vh] overflow-y-auto noScrollbar flex-nowrap max-w-full",children:e.map(k=>l("li",{className:"my-1 block rounded-lg overflow-hidden",onClick:()=>v(k.id),children:l("a",{className:`${k.id===r?"active":""}`,children:l("input",{value:k.title,className:"px-2 max-w-full",onChange:S=>n(S.target.value,k.id)})})},k.id))})]})]})]}),g&&l(es,{message:"toast.uploadFileFail"})]})};function rs(t,e,r){o.exports.useEffect(()=>{const a=setTimeout(()=>{t.apply(void 0,r)},e);return()=>{clearTimeout(a)}},r)}const as=Math.PI/180;async function ns(t,e,r,a=1,n=0){var S;const s=e.getContext("2d");if(!s)throw new Error("No 2d context");const i=t.naturalWidth/t.width,d=t.naturalHeight/t.height,h=(S=window.devicePixelRatio)!=null?S:1;e.width=Math.floor(r.width*i*h),e.height=Math.floor(r.height*d*h),s.scale(h,h),s.imageSmoothingQuality="high";const g=r.x*i,f=r.y*d,v=n*as,R=t.naturalWidth/2,k=t.naturalHeight/2;s.save(),s.translate(-g,-f),s.translate(R,k),s.rotate(v),s.scale(a,a),s.translate(-R,-k),s.drawImage(t,0,0,t.naturalWidth,t.naturalHeight,0,0,t.naturalWidth,t.naturalHeight),s.restore()}const ss=t=>o.exports.createElement("svg",{width:"28px",height:"28px",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...t},o.exports.createElement("g",{id:"SVGRepo_bgCarrier",strokeWidth:0}),o.exports.createElement("g",{id:"SVGRepo_tracerCarrier",strokeLinecap:"round",strokeLinejoin:"round"}),o.exports.createElement("g",{id:"SVGRepo_iconCarrier"},o.exports.createElement("path",{d:"M7.25 22H11.75C15.5 22 17 20.5 17 16.75V12.25C17 8.5 15.5 7 11.75 7H7.25C3.5 7 2 8.5 2 12.25V16.75C2 20.5 3.5 22 7.25 22Z",stroke:"#65CC8A",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round"}),o.exports.createElement("path",{d:"M22 9C22 5.13 18.87 2 15 2L16.05 3.75",stroke:"#65CC8A",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round"}))),os=t=>o.exports.createElement("svg",{width:"22px",height:"22px",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...t},o.exports.createElement("g",{id:"SVGRepo_bgCarrier",strokeWidth:0}),o.exports.createElement("g",{id:"SVGRepo_tracerCarrier",strokeLinecap:"round",strokeLinejoin:"round"}),o.exports.createElement("g",{id:"SVGRepo_iconCarrier"},o.exports.createElement("path",{d:"M11 2C6.94493 2.0073 4.8215 2.10686 3.46447 3.46389C2 4.92835 2 7.28538 2 11.9994C2 16.7135 2 19.0705 3.46447 20.535C4.92893 21.9994 7.28596 21.9994 12 21.9994C16.714 21.9994 19.0711 21.9994 20.5355 20.535C21.8926 19.1779 21.9921 17.0545 21.9994 12.9994",stroke:"#65CC8A",strokeWidth:1.5,strokeLinecap:"round"}),o.exports.createElement("path",{d:"M13 11L22 2M22 2H16.6562M22 2V7.34375M21 3L12 12M12 12H16M12 12V8",stroke:"#65CC8A",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round"})));const is=({url:t,showModal:e,setShowModal:r})=>{const{t:a}=A(),[n,s]=o.exports.useState(0),[i,d]=o.exports.useState(1),[h,g]=o.exports.useState(),[f,v]=o.exports.useState(),R=o.exports.useRef(null),k=o.exports.useRef(null),S=o.exports.useRef(null),b=o.exports.useRef(""),w=I=>{const{width:L,height:y}=I.currentTarget,z={unit:"px",x:.1*L,y:.1*y,width:.8*L,height:.8*y};v({...z}),g({...z})},C=()=>{if(R.current){const{width:I,height:L}=R.current,y={unit:"px",x:.1*I,y:.1*L,width:.8*I,height:.8*L};v({...y}),g({...y})}s(0),d(1)},M=async()=>{const I=R.current,L=k.current;if(!I||!L||!h)throw new Error("Crop canvas does not exist");const y=I.naturalWidth/I.width,z=I.naturalHeight/I.height,B=new OffscreenCanvas(h.width*y,h.height*z),j=B.getContext("2d");if(!j)throw new Error("No 2d context");j.drawImage(L,0,0,L.width,L.height,0,0,B.width,B.height);const K=await B.convertToBlob({type:"image/png"});b.current&&URL.revokeObjectURL(b.current),b.current=URL.createObjectURL(K),S.current&&(S.current.href=b.current,S.current.click())};return rs(async()=>{(h==null?void 0:h.width)&&(h==null?void 0:h.height)&&R.current&&k.current&&ns(R.current,k.current,h,i,n)},100,[h,i,n]),l(_e,{show:e,clickMask:()=>{r(!1)},children:x("div",{className:"p-6 bg-[#eef1ff] card shadow-xl overflow-auto max-w-[800px] w-[80vw] h-fit max-h-[60vh]",children:[h&&x("div",{className:"w-full flex justify-between",children:[x("div",{className:"w-[48%]",children:[x("div",{className:"flex items-center",children:[l(ss,{className:"mr-[6px] shrink-0"}),l("input",{className:"range range-primary range-xs",type:"range",min:"0",max:"360",step:"1",value:String(n),onChange:I=>{s(Number(I.target.value))}})]}),x("div",{className:"flex items-center mt-3",children:[l(os,{className:"mr-[12px] shrink-0"}),l("input",{className:"range range-primary range-xs",type:"range",min:"0.2",max:"1.5",step:"0.1",value:String(i),onChange:I=>{d(Number(I.target.value))}})]})]}),x("div",{className:"w-[48%] flex flex-wrap gap-4",children:[l("button",{className:"btn btn-ghost btn-outline btn-sm",onClick:()=>r(!1),children:a("cancel")}),l("button",{className:"btn btn-secondary btn-sm",onClick:C,children:a("reset")}),l("button",{className:"btn btn-primary btn-sm",onClick:M,children:a("download")}),l("a",{href:"#hidden",ref:S,download:"paint-board",style:{position:"absolute",top:"-200vh",visibility:"hidden"},children:"Hidden download"})]})]}),x("div",{className:"w-full flex justify-between mt-3",children:[t&&l("div",{className:"w-[48%] shrink-0",children:l("div",{className:"w-fit bg-transparent bg-[length:13px_13px] bg-white flex",children:l(Wt,{crop:f,onChange:v,onComplete:g,minHeight:100,minWidth:100,children:l("img",{ref:R,src:t,style:{transform:`scale(${i}) rotate(${n}deg)`},onLoad:w})})})}),h&&l("div",{className:"w-[48%] shrink-0",children:l("canvas",{ref:k,className:"object-contain border border-base-content border-dashed",style:{width:h.width,height:h.height}})})]})]})})},cs=t=>o.exports.createElement("svg",{width:"16px",height:"16px",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...t},o.exports.createElement("g",{id:"SVGRepo_bgCarrier",strokeWidth:0}),o.exports.createElement("g",{id:"SVGRepo_tracerCarrier",strokeLinecap:"round",strokeLinejoin:"round"}),o.exports.createElement("g",{id:"SVGRepo_iconCarrier"},o.exports.createElement("path",{d:"M12 7C12.5523 7 13 7.44772 13 8V13C13 13.5523 12.5523 14 12 14C11.4477 14 11 13.5523 11 13V8C11 7.44772 11.4477 7 12 7Z",fill:"#000000"}),o.exports.createElement("path",{d:"M12 17C12.5523 17 13 16.5523 13 16C13 15.4477 12.5523 15 12 15C11.4477 15 11 15.4477 11 16C11 16.5523 11.4477 17 12 17Z",fill:"#000000"}),o.exports.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2ZM4 12C4 7.58172 7.58172 4 12 4C16.4183 4 20 7.58172 20 12C20 16.4183 16.4183 20 12 20C7.58172 20 4 16.4183 4 12Z",fill:"#000000"}))),q={LOADING:0,NO_SUPPORT_WEBGPU:1,LOAD_ERROR:2,LOAD_SUCCESS:3,PROCESSING:4,PROCESSING_SUCCESS:5},ls=({url:t,showModal:e,setShowModal:r})=>{const{t:a}=A(),[n,s]=o.exports.useState(),[i,d]=o.exports.useState(""),[h,g]=o.exports.useState(!0),f=o.exports.useRef(),v=o.exports.useRef(),R=o.exports.useMemo(()=>{switch(n){case q.LOADING:return"uploadImage.removeBackgroundLoading";case q.NO_SUPPORT_WEBGPU:return"uploadImage.webGPUTip";case q.LOAD_ERROR:return"uploadImage.removeBackgroundFailed";case q.LOAD_SUCCESS:return"uploadImage.removeBackgroundSuccess";case q.PROCESSING:return"uploadImage.removeBackgroundProcessing";case q.PROCESSING_SUCCESS:return"uploadImage.removeBackgroundProcessingSuccess";default:return""}},[n]);o.exports.useEffect(()=>{(async()=>{var w,C;try{if(!e||f.current||v.current||n===q.LOADING)return;if(s(q.LOADING),console.log("loading"),!(navigator!=null&&navigator.gpu)){s(q.NO_SUPPORT_WEBGPU);return}const M="Xenova/modnet";De.backends.onnx.wasm&&(De.backends.onnx.wasm.proxy=!1),(w=f.current)!=null||(f.current=await Ht.from_pretrained(M,{device:"webgpu"})),(C=v.current)!=null||(v.current=await Xt.from_pretrained(M)),s(q.LOAD_SUCCESS)}catch(M){console.log("err",M),s(q.LOAD_ERROR)}})()},[e,f,v]);const k=()=>{r(!1),g(!0),d("")},S=async()=>{if(i){g(!h);return}const w=f.current,C=v.current;if(!w||!C)return;s(q.PROCESSING);const M=await We.fromURL(t),{pixel_values:I}=await C(M),{output:L}=await w({input:I}),y=(await We.fromTensor(L[0].mul(255).to("uint8")).resize(M.width,M.height)).data,z=document.createElement("canvas");z.width=M.width,z.height=M.height;const B=z.getContext("2d");B.drawImage(M.toCanvas(),0,0);const j=B.getImageData(0,0,M.width,M.height);for(let K=0;K{k()},children:x("div",{className:"p-6 bg-[#eef1ff] card shadow-xl overflow-auto",children:[x("div",{className:"flex items-center gap-x-3 w-[50vw] max-w-[400px]",children:[l("button",{className:"btn btn-primary btn-sm",onClick:()=>{const w=new xt;h?(w.addImage(t),k()):i&&(w.addImage(i),k())},children:a("uploadImage.upload")}),l("button",{className:"btn btn-ghost btn-outline btn-sm",onClick:k,children:a("cancel")}),l("button",{className:`btn btn-primary btn-sm ${[q.LOAD_SUCCESS,q.PROCESSING_SUCCESS,void 0].includes(n)?"":"btn-disabled"}`,onClick:S,children:a(h?"uploadImage.removeBackground":"uploadImage.restore")})]}),x("div",{className:"text-xs text-base-content mt-2 w-[50vw] max-w-[400px] flex",children:[l(cs,{className:"shrink-0"}),l("span",{className:"ml-1",children:a(R)})]}),x("div",{className:"relative mt-4 border border-base-content border-dashed rounded-lg overflow-hidden",children:[l("img",{className:`w-[50vw] max-w-[400px] h-[50vh] max-h-[400px] transition-opacity duration-300 object-contain ${h?"opacity-100":"opacity-0"}`,src:t}),i&&l("img",{className:`w-full h-full absolute top-0 left-0 z-[2] transition-opacity duration-300 object-contain ${h?"opacity-0":"opacity-100"}`,src:i})]})]})})},ds=()=>{const{t}=A(),{mode:e}=N(),[r,a]=o.exports.useState(!1),[n,s]=o.exports.useState(!0),[i,d]=o.exports.useState(""),[h,g]=o.exports.useState(!1),[f,v]=o.exports.useState(""),[R,k]=o.exports.useState(!1),S=()=>{c.copyObject()},b=()=>{c.deleteObject()},w=()=>{var y;(y=c.history)==null||y.undo()},C=()=>{var y;(y=c.history)==null||y.redo()},M=()=>{var y;(y=c.textElement)==null||y.loadText()},I=y=>{var j;const z=(j=y.target.files)==null?void 0:j[0];if(!z)return;const B=new FileReader;B.onload=K=>{var Ee;const se=(Ee=K.target)==null?void 0:Ee.result;se&&se&&typeof se=="string"&&(v(se),k(!0)),y.target.value=""},B.readAsDataURL(z)},L=()=>{if(c.canvas){const y=c.canvas.toDataURL();d(y),g(!0)}};return x(D,{children:[x("div",{className:"fixed bottom-5 left-2/4 -translate-x-2/4 flex items-center bg-[#eef1ff] rounded-full xs:flex-col xs:right-5 xs:left-auto xs:translate-x-0 xs:justify-normal xs:max-h-[70vh] xs:overflow-y-auto xs:noScrollbar",children:[n&&x(D,{children:[l("div",{onClick:w,className:"min-xs:tooltip cursor-pointer py-1.5 pl-3 pr-2 rounded-l-full hover:bg-slate-200 xs:pl-2 xs:rounded-l-none xs:rounded-t-full","data-tip":t("operate.undo"),children:l(Vn,{className:"transform scale-x-[-1] scale-y-[1]"})}),l("div",{onClick:C,className:"min-xs:tooltip cursor-pointer py-1.5 px-2 hover:bg-slate-200","data-tip":t("operate.redo"),children:l(Yn,{})}),[F.SELECT,F.Board].includes(e)&&x(D,{children:[l("div",{onClick:S,className:"min-xs:tooltip cursor-pointer py-1.5 px-2 hover:bg-slate-200","data-tip":t("operate.copy"),children:l(zn,{})}),l("div",{onClick:b,className:"min-xs:tooltip cursor-pointer py-1.5 px-2 hover:bg-slate-200","data-tip":t("operate.delete"),children:l(Zn,{})})]}),l("div",{"data-tip":t("operate.text"),className:"min-xs:tooltip cursor-pointer py-1.5 px-2 hover:bg-slate-200",onClick:M,children:l(Un,{})}),x("div",{className:"min-xs:tooltip cursor-pointer py-1.5 px-2 hover:bg-slate-200","data-tip":t("operate.image"),children:[l("label",{htmlFor:"image-upload",className:"cursor-pointer",children:l(kt,{})}),l("input",{type:"file",id:"image-upload",accept:".jpeg, .jpg, .png",className:"hidden",onChange:I})]}),l("label",{htmlFor:"clean-modal",className:"min-xs:tooltip cursor-pointer py-1.5 px-2 hover:bg-slate-200","data-tip":t("operate.clean"),children:l(jn,{})}),l("div",{onClick:L,className:"min-xs:tooltip cursor-pointer py-1.5 px-2 hover:bg-slate-200","data-tip":t("operate.save"),children:l(Gn,{})}),l("label",{htmlFor:"my-drawer-4",className:"min-xs:tooltip cursor-pointer py-1.5 pl-2 pr-3 rounded-r-full hover:bg-slate-200 xs:pr-2 xs:rounded-r-none xs:rounded-b-full","data-tip":t("operate.fileList"),onClick:()=>a(!0),children:l($n,{})})]}),x("label",{className:"btn btn-circle swap swap-rotate w-7 h-7 min-h-0 my-1.5 mx-2 min-xs:hidden",children:[l("input",{type:"checkbox",onChange:()=>s(y=>!y)}),l(Lt,{className:"swap-on fill-current"}),l(Et,{className:"swap-off fill-current"})]})]}),r&&l(ts,{updateShow:a}),h&&i&&l(is,{url:i,showModal:h,setShowModal:g}),l(ls,{url:f,showModal:R,setShowModal:k})]})},hs=()=>{const{t}=A(),{files:e,deleteFile:r}=te(),{updateMode:a}=N(),n=()=>{e.length>1&&(r(),c.initCanvasStorage(),a(F.DRAW))};return x(D,{children:[l("input",{type:"checkbox",id:"delete-file-modal",className:"modal-toggle"}),l("label",{htmlFor:"delete-file-modal",className:"modal cursor-pointer",children:x("label",{className:"modal-box relative flex flex-col justify-center items-center",htmlFor:"",children:[l("h3",{className:"text-lg font-bold text-center",children:t("deleteFileModal.title")}),x("div",{className:"w-64 flex justify-between mt-10",children:[l("label",{htmlFor:"delete-file-modal",className:"btn btn-active btn-primary btn-sm w-2/5",onClick:n,children:t("confirm")}),l("label",{htmlFor:"delete-file-modal",className:"btn btn-active btn-ghost btn-sm w-2/5",children:t("cancel")})]})]})})]})},ps=()=>{const t=o.exports.useRef(null),[e,r]=o.exports.useState(!1);return o.exports.useEffect(()=>(t.current&&c.initCanvas(t.current).then(a=>{r(a)}),()=>{c.removeCanvas()}),[]),x("div",{children:[l("div",{className:"w-screen h-screen flex justify-center items-center bg-slate-100",children:l("canvas",{className:"w-full h-full block",ref:t})}),e&&x(D,{children:[l(_n,{}),l(Hn,{}),l(Xn,{}),l(hs,{}),l(ds,{})]})]})};function us(){return l("div",{children:l(ps,{})})}const gs="Confirm",ms="Cancel",fs="Download",ws="Reset",xs={draw:"Draw",eraser:"Eraser",select:"Select",board:"Board"},vs={drawType:"Draw Type",drawStyle:"Draw Style",drawWidth:"Draw Width",drawColor:"Draw Color",shadow:"Shadow",AI:"AI",shapeType:"Shape Type",shapeCount:"Shape Count",materialType:"Material Type",multiColorType:"MultiColor Type",drawText:"Draw Text",fontFamily:"Font Family",shapeLinePointCount:"Point Count",borderType:"Border Type",borderStyle:"Border Style",fillStyle:"Fill Style",eraserWidth:"Eraser Width",opacity:"Opacity",layer:"Layer",imageFilters:"Image Filters",fontStyle:"Font Style",canvasBackground:"Canvas Background",canvasSize:"Canvas Size",drawCache:"Draw Cache",guideLine:"GuideLine"},Cs={width:"Width",height:"Height"},bs={freeStyle:"FreeStyle",shape:"Shape"},ys={basic:"Basic",rainbow:"Rainbow",shape:"Shape",material:"Material",pixels:"Pixels",multiColor:"MultiColor",text:"Text",multiLine:"MultiLine",reticulate:"Reticulate",multiPoint:"MultiPoint",wiggle:"Wiggle",thorn:"Thorn"},Ss={undo:"undo",redo:"redo",copy:"copy",delete:"delete",text:"add text",image:"upload image",clean:"clean",save:"Save as image",fileList:"File List"},ks={welecome:"Welcome to star",FreeStyle:{line1:"Provides 12 different styles of brushes, including Basic Brush, Rainbow Brush, Multi-Shape Brush, Multi-Material Brush, Pixel Brush, Multi-Color Brush, Text Brush, Multi-Line Connection Brush, Reticulate Brush, Multi-Point Connection Brush, Wiggle Brush, Thorn Brush. Satisfy the diversified drawing",line2:"All brushes support color and brush width configurations",line3:"MultiShape allows flexible configuration of shape types and quantities",line4:"Material and MultiColor allows you to adjust the material type of the brush",line5:"Text drawing support for cyclic text and font configuration"},ShapeDraw:{line1:"A variety of common shapes are provided for drawing, with support for multi-point segments and arrows. The shapes support border and fill styles."},EraserMode:{line1:"Eraser mode linearly erases all content",line2:"Supports linear width configurations"},SelectMode:{line1:"In selection mode, you can click on the content of the drawing to select it",line2:"Click handle supports drag and drop, zoom and rotate operations, providing flexible editing options",line3:"Selecting images supports multiple filter configurations",line4:"Support for font configuration when selecting text",line5:"Layer settings are supported for all drawings, including Move Layer Up, Move Layer Down, Move to Top, and Move to Bottom",line6:"All drawings support transparency configurations"},BoardMode:{line1:"The drawing board supports background configuration, including colour, background image, and transparency",line2:"The drawing board supports customized width and height configurations",line3:"Support for drawing cache enable. Enabling caching will improve drawing performance in the presence of large amounts of drawing content, while disabling caching will improve canvas clarity.",line4:"Supports guide line on and off"},BorderConfig:{line1:"The bottom left button shows the current zoom ratio in real time, click it to reset the zoom ratio",line2:"The list of buttons in the center, in order from left to right, are: Undo, Redo, Copy Current Selection, Delete Current Selection, Draw Text, Upload Image, Clear Drawing, Save as Image, and Open File List",line3:"PC: Hold down the Space key and click the left mouse button to move the canvas, scroll the mouse wheel to realize the canvas zoom, hold down the Backspace key to delete the selected content, and hold down the Ctrl + V keys to paste the clipboard image at the same time",line4:"Mobile: support for dragging and zooming the canvas after a two-finger press"},FileConfig:{line1:"Multi-file configuration: support multiple canvas switching, each canvas can be customized title, add, delete, and provide upload and download"}},Ls={title:"Confirm clearing content?"},Es={title:"Confirm deleting the current file?"},Ms={uploadFileFail:"Upload failed, please try again"},Is={Sepia:"Sepia",Invert:"Invert",BlackWhite:"BlackWhite",Grayscale:"Grayscale",Blur:"Blur",Vintage:"Vintage",BlendColor:"BlendColor",Brownie:"Brownie",Kodachrome:"Kodachrome",Pixelate:"Pixelate",Polaroid:"Polaroid",Technicolor:"Technicolor",Brightness:"Brightness",Noise:"Noise",Convolute:"Emboss"},Ts={bold:"Bold",italic:"Italic",underLine:"UnderLine",lineThrough:"LineThrough"},Rs={cacheTip:"In the presence of a large amount of drawing content, enabling caching will improve drawing performance, while disabling caching will improve canvas sharpness"},Ps={tip:"Please feel free to draw...",loading:"Loading data, please wait...",error:"Something went wrong. Please try again later."},Ns={removeBackground:"Remove Background",webGPUTip:"WebGPU is not supported in this browser, to use the remove background function, please use the latest version of Google Chrome",removeBackgroundLoading:"Remove background function loading",removeBackgroundFailed:"Remove background function failed to load",removeBackgroundSuccess:"Remove background function loaded successfully",removeBackgroundProcessing:"Remove Background Processing",removeBackgroundProcessingSuccess:"Remove Background Processing Success",restore:"Restore",upload:"Upload"},As={confirm:gs,cancel:ms,download:fs,reset:ws,tool:xs,title:vs,canvasSize:Cs,drawType:bs,style:ys,operate:Ss,info:ks,cleanModal:Ls,deleteFileModal:Es,toast:Ms,filters:Is,fontStyle:Ts,boardConfig:Rs,request:Ps,uploadImage:Ns},Os="\u786E\u8BA4",_s="\u53D6\u6D88",Fs="\u4E0B\u8F7D",Bs="\u91CD\u7F6E",Ds={draw:"\u7ED8\u753B",eraser:"\u6A61\u76AE\u64E6",select:"\u9009\u62E9",board:"\u753B\u677F"},Ws={drawType:"\u7ED8\u753B\u7C7B\u578B",drawStyle:"\u7ED8\u753B\u98CE\u683C",drawWidth:"\u753B\u7B14\u5BBD\u5EA6",drawColor:"\u753B\u7B14\u989C\u8272",shadow:"\u9634\u5F71",AI:"AI",shapeType:"\u5F62\u72B6\u7C7B\u578B",shapeCount:"\u5F62\u72B6\u6570\u91CF",materialType:"\u7D20\u6750\u7C7B\u578B",multiColorType:"\u591A\u8272\u7C7B\u578B",drawText:"\u6587\u5B57\u5185\u5BB9",fontFamily:"\u5B57\u4F53",shapeLinePointCount:"\u7EBF\u6BB5\u7AEF\u70B9",borderType:"\u8FB9\u6846\u7C7B\u578B",borderStyle:"\u8FB9\u6846\u6837\u5F0F",fillStyle:"\u586B\u5145\u6837\u5F0F",eraserWidth:"\u6A61\u76AE\u64E6\u5BBD\u5EA6",opacity:"\u900F\u660E\u5EA6",layer:"\u56FE\u5C42",imageFilters:"\u56FE\u50CF\u6EE4\u955C",fontStyle:"\u5B57\u4F53\u6837\u5F0F",canvasBackground:"\u753B\u677F\u80CC\u666F",canvasSize:"\u753B\u677F\u5C3A\u5BF8",drawCache:"\u7ED8\u5236\u7F13\u5B58",guideLine:"\u8F85\u52A9\u7EBF"},Hs={width:"\u5BBD\u5EA6",height:"\u9AD8\u5EA6"},Xs={freeStyle:"\u81EA\u7531\u7ED8\u753B",shape:"\u5F62\u72B6\u7ED8\u753B"},Vs={basic:"\u57FA\u7840",rainbow:"\u5F69\u8679 ",shape:"\u591A\u5F62\u72B6",material:"\u7D20\u6750",pixels:"\u50CF\u7D20",multiColor:"\u591A\u8272",text:"\u6587\u5B57",multiLine:"\u591A\u7EBF\u8FDE\u63A5",reticulate:"\u7F51\u72B6",multiPoint:"\u591A\u70B9\u8FDE\u63A5",wiggle:"\u6CE2\u6D6A\u66F2\u7EBF",thorn:"\u8346\u68D8"},Ys={undo:"\u64A4\u9500",redo:"\u91CD\u505A",copy:"\u590D\u5236",delete:"\u5220\u9664",text:"\u6DFB\u52A0\u6587\u5B57",image:"\u4E0A\u4F20\u56FE\u7247",clean:"\u6E05\u9664\u753B\u677F",save:"\u4FDD\u5B58\u4E3A\u56FE\u7247",fileList:"\u6587\u4EF6\u5217\u8868"},Gs={welecome:"\u6B22\u8FCEStar",FreeStyle:{line1:"\u63D0\u4F9B\u4E86 12 \u79CD\u4E0D\u540C\u98CE\u683C\u7684\u753B\u7B14\uFF0C\u5305\u62EC\u57FA\u672C\u753B\u7B14\uFF0C\u5F69\u8679\u753B\u7B14\uFF0C\u591A\u5F62\u72B6\u753B\u7B14\uFF0C\u591A\u7D20\u6750\u753B\u7B14\uFF0C\u50CF\u7D20\u753B\u7B14\uFF0C\u591A\u8272\u753B\u7B14\uFF0C\u6587\u5B57\u753B\u7B14\uFF0C\u591A\u7EBF\u8FDE\u63A5\u753B\u7B14\uFF0C\u7F51\u72B6\u753B\u7B14\uFF0C\u591A\u70B9\u8FDE\u63A5\u753B\u7B14\uFF0C\u6CE2\u6D6A\u66F2\u7EBF\u753B\u7B14\uFF0C\u8346\u68D8\u753B\u7B14\u3002\u6EE1\u8DB3\u591A\u6837\u5316\u7684\u7ED8\u753B",line2:"\u6240\u6709\u753B\u7B14\u5747\u652F\u6301\u989C\u8272\u548C\u753B\u7B14\u5BBD\u5EA6\u7684\u914D\u7F6E",line3:"\u591A\u5F62\u72B6\u53EF\u4EE5\u7075\u6D3B\u914D\u7F6E\u5F62\u72B6\u7C7B\u578B\u548C\u6570\u91CF",line4:"\u7D20\u6750\u548C\u591A\u8272\u53EF\u4EE5\u8C03\u6574\u753B\u7B14\u7684\u7D20\u6750\u7C7B\u578B",line5:"\u6587\u5B57\u7ED8\u5236\u652F\u6301\u5FAA\u73AF\u6587\u6848\u914D\u7F6E\u548C\u5B57\u4F53\u4FEE\u6539"},ShapeDraw:{line1:"\u63D0\u4F9B\u4E86\u591A\u79CD\u5E38\u89C1\u5F62\u72B6\u7684\u7ED8\u5236, \u5E76\u652F\u6301\u591A\u7AEF\u70B9\u7EBF\u6BB5\u4EE5\u53CA\u7BAD\u5934. \u5E76\u4E14\u8FD9\u4E9B\u5F62\u72B6\u5747\u652F\u6301\u8FB9\u6846\u548C\u586B\u5145\u7684\u6837\u5F0F\u914D\u7F6E"},EraserMode:{line1:"\u6A61\u76AE\u64E6\u6A21\u5F0F\u53EF\u4EE5\u7EBF\u6027\u64E6\u9664\u6240\u6709\u5185\u5BB9",line2:"\u652F\u6301\u7EBF\u6027\u5BBD\u5EA6\u914D\u7F6E"},SelectMode:{line1:"\u5728\u9009\u62E9\u6A21\u5F0F\u4E0B\uFF0C\u53EF\u4EE5\u901A\u8FC7\u70B9\u51FB\u7ED8\u753B\u5185\u5BB9\u8FDB\u884C\u6846\u9009",line2:"\u70B9\u51FB\u624B\u67C4\u652F\u6301\u62D6\u62FD\u3001\u7F29\u653E\u548C\u65CB\u8F6C\u64CD\u4F5C\uFF0C\u63D0\u4F9B\u7075\u6D3B\u7684\u7F16\u8F91\u65B9\u5F0F",line3:"\u9009\u62E9\u56FE\u7247\u652F\u6301\u591A\u79CD\u6EE4\u955C\u914D\u7F6E",line4:"\u9009\u62E9\u6587\u5B57\u65F6\uFF0C\u652F\u6301\u5B57\u4F53\u8BBE\u7F6E",line5:"\u6240\u6709\u7ED8\u5236\u5185\u5BB9\u5747\u652F\u6301\u56FE\u5C42\u8BBE\u7F6E\uFF0C\u5305\u62EC\u5411\u4E0A\u79FB\u52A8\u5C42\u7EA7\u3001\u5411\u4E0B\u79FB\u52A8\u5C42\u7EA7\u3001\u79FB\u52A8\u81F3\u9876\u5C42\u548C\u79FB\u52A8\u81F3\u5E95\u5C42",line6:"\u6240\u6709\u7ED8\u5236\u5185\u5BB9\u652F\u6301\u900F\u660E\u5EA6\u914D\u7F6E"},BoardMode:{line1:"\u753B\u677F\u652F\u6301\u914D\u7F6E\u80CC\u666F\u914D\u7F6E, \u5305\u62EC\u989C\u8272, \u80CC\u666F\u56FE, \u900F\u660E\u5EA6",line2:"\u753B\u677F\u652F\u6301\u81EA\u5B9A\u4E49\u5BBD\u9AD8\u914D\u7F6E",line3:"\u652F\u6301\u7ED8\u5236\u7F13\u5B58\u5F00\u542F. \u5728\u5B58\u5728\u5927\u91CF\u7ED8\u5236\u5185\u5BB9\u7684\u60C5\u51B5\u4E0B\uFF0C\u542F\u7528\u7F13\u5B58\u5C06\u63D0\u9AD8\u7ED8\u5236\u6027\u80FD\uFF0C\u800C\u7981\u7528\u7F13\u5B58\u5219\u4F1A\u63D0\u5347\u753B\u5E03\u6E05\u6670\u5EA6",line4:"\u652F\u6301\u8F85\u52A9\u7EBF\u7684\u5F00\u542F\u4E0E\u5173\u95ED"},BorderConfig:{line1:"\u5DE6\u4E0B\u89D2\u6309\u94AE\u5B9E\u65F6\u663E\u793A\u5F53\u524D\u7F29\u653E\u6BD4\u4F8B\uFF0C\u70B9\u51FB\u5373\u53EF\u91CD\u7F6E\u7F29\u653E\u6BD4\u4F8B",line2:"\u4E2D\u95F4\u6309\u94AE\u5217\u8868\u6309\u4ECE\u5DE6\u5230\u53F3\u7684\u987A\u5E8F\u5206\u522B\u4E3A\uFF1A\u64A4\u9500\u3001\u53CD\u64A4\u9500\u3001\u590D\u5236\u5F53\u524D\u9009\u62E9\u5185\u5BB9\u3001\u5220\u9664\u5F53\u524D\u9009\u62E9\u5185\u5BB9\u3001\u7ED8\u5236\u6587\u5B57\u3001\u4E0A\u4F20\u56FE\u7247\u3001\u6E05\u9664\u7ED8\u5236\u5185\u5BB9\u3001\u4FDD\u5B58\u4E3A\u56FE\u7247\u3001\u6253\u5F00\u6587\u4EF6\u5217\u8868",line3:"\u7535\u8111\u7AEF\uFF1A\u6309\u4F4F Space \u952E\u5E76\u70B9\u51FB\u9F20\u6807\u5DE6\u952E\u53EF\u79FB\u52A8\u753B\u5E03\uFF0C\u6EDA\u52A8\u9F20\u6807\u6EDA\u8F6E\u5B9E\u73B0\u753B\u5E03\u7F29\u653E\uFF0C\u6309\u4F4F Backspace \u952E\u53EF\u5220\u9664\u5DF2\u9009\u5185\u5BB9\uFF0C\u540C\u65F6\u6309\u4F4F Ctrl \u952E + V \u952E\u53EF\u7C98\u8D34\u526A\u8D34\u677F\u56FE\u7247",line4:"\u79FB\u52A8\u7AEF\uFF1A\u652F\u6301\u53CC\u6307\u6309\u538B\u540E\u62D6\u62FD\u548C\u7F29\u653E\u753B\u5E03"},FileConfig:{line1:"\u591A\u6587\u4EF6\u914D\u7F6E\uFF1A\u652F\u6301\u591A\u4E2A\u753B\u5E03\u5207\u6362\uFF0C\u6BCF\u4E2A\u753B\u5E03\u53EF\u81EA\u5B9A\u4E49\u6807\u9898\u3001\u589E\u52A0\u3001\u5220\u9664\uFF0C\u5E76\u63D0\u4F9B\u4E0A\u4F20\u548C\u4E0B\u8F7D\u529F\u80FD"}},js={title:"\u786E\u8BA4\u6E05\u9664\u5185\u5BB9\uFF1F"},zs={title:"\u786E\u8BA4\u5220\u9664\u5F53\u524D\u6587\u4EF6\u5417\uFF1F"},Us={uploadFileFail:"\u4E0A\u4F20\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5"},Zs={Sepia:"\u590D\u53E4",Invert:"\u5E95\u7247",BlackWhite:"\u9ED1\u767D",Grayscale:"\u7070\u5EA6",Blur:"\u6A21\u7CCA",Vintage:"\u53E4\u5178",BlendColor:"\u6DF7\u8272",Brownie:"\u68D5\u4ED9",Kodachrome:"\u80F6\u7247",Pixelate:"\u50CF\u7D20",Polaroid:"\u5B9D\u4E3D\u6765",Technicolor:"\u5F69\u8272",Brightness:"\u589E\u4EAE",Noise:"\u566A\u70B9",Convolute:"\u6D6E\u96D5"},$s={bold:"\u7C97\u4F53",italic:"\u659C\u4F53",underLine:"\u4E0B\u5212\u7EBF",lineThrough:"\u5220\u9664\u7EBF"},qs={cacheTip:"\u5728\u5B58\u5728\u5927\u91CF\u7ED8\u5236\u5185\u5BB9\u7684\u60C5\u51B5\u4E0B\uFF0C\u542F\u7528\u7F13\u5B58\u5C06\u63D0\u9AD8\u7ED8\u5236\u6027\u80FD\uFF0C\u800C\u7981\u7528\u7F13\u5B58\u5219\u4F1A\u63D0\u5347\u753B\u5E03\u6E05\u6670\u5EA6"},Ks={tip:"\u8BF7\u81EA\u7531\u7ED8\u753B...",loading:"\u6B63\u5728\u52A0\u8F7D\u6570\u636E\uFF0C\u8BF7\u7A0D\u5019...",error:"\u51FA\u9519\u4E86\u3002\u8BF7\u7A0D\u540E\u518D\u8BD5\u3002"},Js={removeBackground:"\u53BB\u9664\u80CC\u666F",webGPUTip:"\u672C\u6D4F\u89C8\u5668\u4E0D\u652F\u6301WebGPU, \u8981\u4F7F\u7528\u53BB\u9664\u80CC\u666F\u529F\u80FD\u8BF7\u4F7F\u7528\u6700\u65B0\u7248\u8C37\u6B4C\u6D4F\u89C8\u5668",removeBackgroundLoading:"\u53BB\u9664\u80CC\u666F\u529F\u80FD\u52A0\u8F7D\u4E2D",removeBackgroundFailed:"\u53BB\u9664\u80CC\u666F\u529F\u80FD\u52A0\u8F7D\u5931\u8D25",removeBackgroundSuccess:"\u53BB\u9664\u80CC\u666F\u529F\u80FD\u52A0\u8F7D\u6210\u529F",removeBackgroundProcessing:"\u53BB\u9664\u80CC\u666F\u5904\u7406\u4E2D",removeBackgroundProcessingSuccess:"\u53BB\u9664\u80CC\u666F\u5904\u7406\u6210\u529F",restore:"\u8FD8\u539F",upload:"\u4E0A\u4F20"},Qs={confirm:Os,cancel:_s,download:Fs,reset:Bs,tool:Ds,title:Ws,canvasSize:Hs,drawType:Xs,style:Vs,operate:Ys,info:Gs,cleanModal:js,deleteFileModal:zs,toast:Us,filters:Zs,fontStyle:$s,boardConfig:qs,request:Ks,uploadImage:Js},eo=N.getState().language;Vt.use(Yt).init({resources:{en:{translation:As},zh:{translation:Qs}},lng:eo});{const t=document.createElement("script");t.textContent=` + (function(c,l,a,r,i,t,y){ + c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)}; + t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i; + y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y); + })(window, document, "clarity", "script", "k06rclje17"); + `,t.async=!0,document.body.appendChild(t)}Gt.createRoot(document.getElementById("root")).render(l(jt.StrictMode,{children:l(us,{})})); diff --git a/assets/index.df7f0347.css b/assets/index.df7f0347.css new file mode 100644 index 0000000..88073c9 --- /dev/null +++ b/assets/index.df7f0347.css @@ -0,0 +1 @@ +@import"https://fonts.googleapis.com/css2?family=Fredoka+One:wght@400;700&display=swap";@import"https://fonts.font.im/css?family=Hanalei+Fill:wght@400;700&display=swap";@import"https://fonts.font.im/css?family=Ruslan+Display:wght@400;700&display=swap";@import"https://fonts.font.im/css?family=Lobster:wght@400;700&display=swap";@import"https://fonts.font.im/css?family=Pacifico:wght@400;700&display=swap";@import"https://fonts.font.im/css?family=Gloria+Hallelujah:wght@400;700&display=swap";@import"https://fonts.font.im/css?family=Permanent+Marker:wght@400;700&display=swap";@font-face{font-family:swiper-icons;src:url(data:application/font-woff;charset=utf-8;base64,\ d09GRgABAAAAAAZgABAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAGRAAAABoAAAAci6qHkUdERUYAAAWgAAAAIwAAACQAYABXR1BPUwAABhQAAAAuAAAANuAY7+xHU1VCAAAFxAAAAFAAAABm2fPczU9TLzIAAAHcAAAASgAAAGBP9V5RY21hcAAAAkQAAACIAAABYt6F0cBjdnQgAAACzAAAAAQAAAAEABEBRGdhc3AAAAWYAAAACAAAAAj//wADZ2x5ZgAAAywAAADMAAAD2MHtryVoZWFkAAABbAAAADAAAAA2E2+eoWhoZWEAAAGcAAAAHwAAACQC9gDzaG10eAAAAigAAAAZAAAArgJkABFsb2NhAAAC0AAAAFoAAABaFQAUGG1heHAAAAG8AAAAHwAAACAAcABAbmFtZQAAA/gAAAE5AAACXvFdBwlwb3N0AAAFNAAAAGIAAACE5s74hXjaY2BkYGAAYpf5Hu/j+W2+MnAzMYDAzaX6QjD6/4//Bxj5GA8AuRwMYGkAPywL13jaY2BkYGA88P8Agx4j+/8fQDYfA1AEBWgDAIB2BOoAeNpjYGRgYNBh4GdgYgABEMnIABJzYNADCQAACWgAsQB42mNgYfzCOIGBlYGB0YcxjYGBwR1Kf2WQZGhhYGBiYGVmgAFGBiQQkOaawtDAoMBQxXjg/wEGPcYDDA4wNUA2CCgwsAAAO4EL6gAAeNpj2M0gyAACqxgGNWBkZ2D4/wMA+xkDdgAAAHjaY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQrMOgyWDLEM1T9/w8UBfEMgLzE////P/5//f/V/xv+r4eaAAeMbAxwIUYmIMHEgKYAYjUcsDAwsLKxc3BycfPw8jEQA/gZBASFhEVExcQlJKWkZWTl5BUUlZRVVNXUNTQZBgMAAMR+E+gAEQFEAAAAKgAqACoANAA+AEgAUgBcAGYAcAB6AIQAjgCYAKIArAC2AMAAygDUAN4A6ADyAPwBBgEQARoBJAEuATgBQgFMAVYBYAFqAXQBfgGIAZIBnAGmAbIBzgHsAAB42u2NMQ6CUAyGW568x9AneYYgm4MJbhKFaExIOAVX8ApewSt4Bic4AfeAid3VOBixDxfPYEza5O+Xfi04YADggiUIULCuEJK8VhO4bSvpdnktHI5QCYtdi2sl8ZnXaHlqUrNKzdKcT8cjlq+rwZSvIVczNiezsfnP/uznmfPFBNODM2K7MTQ45YEAZqGP81AmGGcF3iPqOop0r1SPTaTbVkfUe4HXj97wYE+yNwWYxwWu4v1ugWHgo3S1XdZEVqWM7ET0cfnLGxWfkgR42o2PvWrDMBSFj/IHLaF0zKjRgdiVMwScNRAoWUoH78Y2icB/yIY09An6AH2Bdu/UB+yxopYshQiEvnvu0dURgDt8QeC8PDw7Fpji3fEA4z/PEJ6YOB5hKh4dj3EvXhxPqH/SKUY3rJ7srZ4FZnh1PMAtPhwP6fl2PMJMPDgeQ4rY8YT6Gzao0eAEA409DuggmTnFnOcSCiEiLMgxCiTI6Cq5DZUd3Qmp10vO0LaLTd2cjN4fOumlc7lUYbSQcZFkutRG7g6JKZKy0RmdLY680CDnEJ+UMkpFFe1RN7nxdVpXrC4aTtnaurOnYercZg2YVmLN/d/gczfEimrE/fs/bOuq29Zmn8tloORaXgZgGa78yO9/cnXm2BpaGvq25Dv9S4E9+5SIc9PqupJKhYFSSl47+Qcr1mYNAAAAeNptw0cKwkAAAMDZJA8Q7OUJvkLsPfZ6zFVERPy8qHh2YER+3i/BP83vIBLLySsoKimrqKqpa2hp6+jq6RsYGhmbmJqZSy0sraxtbO3sHRydnEMU4uR6yx7JJXveP7WrDycAAAAAAAH//wACeNpjYGRgYOABYhkgZgJCZgZNBkYGLQZtIJsFLMYAAAw3ALgAeNolizEKgDAQBCchRbC2sFER0YD6qVQiBCv/H9ezGI6Z5XBAw8CBK/m5iQQVauVbXLnOrMZv2oLdKFa8Pjuru2hJzGabmOSLzNMzvutpB3N42mNgZGBg4GKQYzBhYMxJLMlj4GBgAYow/P/PAJJhLM6sSoWKfWCAAwDAjgbRAAB42mNgYGBkAIIbCZo5IPrmUn0hGA0AO8EFTQAA);font-weight:400;font-style:normal}:root{--swiper-theme-color: #007aff}:host{position:relative;display:block;margin-left:auto;margin-right:auto;z-index:1}.swiper{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1;display:block}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function, initial);box-sizing:content-box}.swiper-android .swiper-slide,.swiper-ios .swiper-slide,.swiper-wrapper{transform:translateZ(0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}.swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform;display:block}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden .swiper-slide{transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px}.swiper-3d .swiper-slide,.swiper-3d .swiper-cube-shadow{transform-style:preserve-3d}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-css-mode.swiper-horizontal>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-css-mode.swiper-vertical>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-css-mode.swiper-free-mode>.swiper-wrapper{scroll-snap-type:none}.swiper-css-mode.swiper-free-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:none}.swiper-css-mode.swiper-centered>.swiper-wrapper:before{content:"";flex-shrink:0;order:9999}.swiper-css-mode.swiper-centered>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center;scroll-snap-stop:always}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{-webkit-margin-start:var(--swiper-centered-offset-before);margin-inline-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper:before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{-webkit-margin-before:var(--swiper-centered-offset-before);margin-block-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper:before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top,.swiper-3d .swiper-slide-shadow-bottom{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-3d .swiper-slide-shadow{background:rgba(0,0,0,.15)}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-right{background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color, var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader,.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader{animation:swiper-preloader-spin 1s infinite linear}.swiper-lazy-preloader-white{--swiper-preloader-color: #fff}.swiper-lazy-preloader-black{--swiper-preloader-color: #000}@keyframes swiper-preloader-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translateZ(0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-disabled>.swiper-pagination,.swiper-pagination.swiper-pagination-disabled{display:none!important}.swiper-pagination-fraction,.swiper-pagination-custom,.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal{bottom:var(--swiper-pagination-bottom, 8px);top:var(--swiper-pagination-top, auto);left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active,.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:var(--swiper-pagination-bullet-width, var(--swiper-pagination-bullet-size, 8px));height:var(--swiper-pagination-bullet-height, var(--swiper-pagination-bullet-size, 8px));display:inline-block;border-radius:var(--swiper-pagination-bullet-border-radius, 50%);background:var(--swiper-pagination-bullet-inactive-color, #000);opacity:var(--swiper-pagination-bullet-inactive-opacity, .2)}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet:only-child{display:none!important}.swiper-pagination-bullet-active{opacity:var(--swiper-pagination-bullet-opacity, 1);background:var(--swiper-pagination-color, var(--swiper-theme-color))}.swiper-vertical>.swiper-pagination-bullets,.swiper-pagination-vertical.swiper-pagination-bullets{right:var(--swiper-pagination-right, 8px);left:var(--swiper-pagination-left, auto);top:50%;transform:translate3d(0,-50%,0)}.swiper-vertical>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet{margin:var(--swiper-pagination-bullet-vertical-gap, 6px) 0;display:block}.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap, 4px)}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translate(-50%);white-space:nowrap}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.swiper-pagination-fraction{color:var(--swiper-pagination-fraction-color, inherit)}.swiper-pagination-progressbar{background:var(--swiper-pagination-progressbar-bg-color, rgba(0, 0, 0, .25));position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color, var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite{width:100%;height:var(--swiper-pagination-progressbar-size, 4px);left:0;top:0}.swiper-vertical>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite{width:var(--swiper-pagination-progressbar-size, 4px);height:100%;left:0;top:0}.swiper-pagination-lock{display:none}@-webkit-keyframes marching-ants{0%{background-position:0 0,0 100%,0 0,100% 0}to{background-position:20px 0,-20px 100%,0 -20px,100% 20px}}@keyframes marching-ants{0%{background-position:0 0,0 100%,0 0,100% 0}to{background-position:20px 0,-20px 100%,0 -20px,100% 20px}}:root{--rc-drag-handle-size: 12px;--rc-drag-handle-mobile-size: 24px;--rc-drag-handle-bg-colour: rgba(0, 0, 0, .2);--rc-drag-bar-size: 6px;--rc-border-color: rgba(255, 255, 255, .7);--rc-focus-color: #0088ff}.ReactCrop{position:relative;display:inline-block;cursor:crosshair;max-width:100%}.ReactCrop *,.ReactCrop *:before,.ReactCrop *:after{-webkit-box-sizing:border-box;box-sizing:border-box}.ReactCrop--disabled,.ReactCrop--locked{cursor:inherit}.ReactCrop__child-wrapper{overflow:hidden;max-height:inherit}.ReactCrop__child-wrapper>img,.ReactCrop__child-wrapper>video{display:block;max-width:100%;max-height:inherit}.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>img,.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>video{-ms-touch-action:none;touch-action:none}.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__crop-selection{-ms-touch-action:none;touch-action:none}.ReactCrop__crop-mask{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.ReactCrop__crop-selection{position:absolute;top:0;left:0;-webkit-transform:translateZ(0);transform:translateZ(0);cursor:move}.ReactCrop--disabled .ReactCrop__crop-selection{cursor:inherit}.ReactCrop--circular-crop .ReactCrop__crop-selection{border-radius:50%}.ReactCrop--circular-crop .ReactCrop__crop-selection:after{pointer-events:none;content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border:1px solid var(--rc-border-color);opacity:.3}.ReactCrop--no-animate .ReactCrop__crop-selection{outline:1px dashed white}.ReactCrop__crop-selection:not(.ReactCrop--no-animate .ReactCrop__crop-selection){-webkit-animation:marching-ants 1s;animation:marching-ants 1s;background-image:-webkit-gradient(linear,left top,right top,color-stop(50%,#fff),color-stop(50%,#444)),-webkit-gradient(linear,left top,right top,color-stop(50%,#fff),color-stop(50%,#444)),-webkit-gradient(linear,left top,left bottom,color-stop(50%,#fff),color-stop(50%,#444)),-webkit-gradient(linear,left top,left bottom,color-stop(50%,#fff),color-stop(50%,#444));background-image:-o-linear-gradient(left,#fff 50%,#444 50%),-o-linear-gradient(left,#fff 50%,#444 50%),-o-linear-gradient(top,#fff 50%,#444 50%),-o-linear-gradient(top,#fff 50%,#444 50%);background-image:linear-gradient(to right,#fff 50%,#444 50%),linear-gradient(to right,#fff 50%,#444 50%),linear-gradient(to bottom,#fff 50%,#444 50%),linear-gradient(to bottom,#fff 50%,#444 50%);background-size:10px 1px,10px 1px,1px 10px,1px 10px;background-position:0 0,0 100%,0 0,100% 0;background-repeat:repeat-x,repeat-x,repeat-y,repeat-y;color:#fff;-webkit-animation-play-state:running;animation-play-state:running;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.ReactCrop__crop-selection:focus{outline:2px solid var(--rc-focus-color);outline-offset:-1px}.ReactCrop--invisible-crop .ReactCrop__crop-mask,.ReactCrop--invisible-crop .ReactCrop__crop-selection{display:none}.ReactCrop__rule-of-thirds-vt:before,.ReactCrop__rule-of-thirds-vt:after,.ReactCrop__rule-of-thirds-hz:before,.ReactCrop__rule-of-thirds-hz:after{content:"";display:block;position:absolute;background-color:#fff6}.ReactCrop__rule-of-thirds-vt:before,.ReactCrop__rule-of-thirds-vt:after{width:1px;height:100%}.ReactCrop__rule-of-thirds-vt:before{left:33.3333333333%}.ReactCrop__rule-of-thirds-vt:after{left:66.6666666667%}.ReactCrop__rule-of-thirds-hz:before,.ReactCrop__rule-of-thirds-hz:after{width:100%;height:1px}.ReactCrop__rule-of-thirds-hz:before{top:33.3333333333%}.ReactCrop__rule-of-thirds-hz:after{top:66.6666666667%}.ReactCrop__drag-handle{position:absolute;width:var(--rc-drag-handle-size);height:var(--rc-drag-handle-size);background-color:var(--rc-drag-handle-bg-colour);border:1px solid var(--rc-border-color)}.ReactCrop__drag-handle:focus{background:var(--rc-focus-color)}.ReactCrop .ord-nw{top:0;left:0;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);cursor:nw-resize}.ReactCrop .ord-n{top:0;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);cursor:n-resize}.ReactCrop .ord-ne{top:0;right:0;-webkit-transform:translate(50%,-50%);transform:translate(50%,-50%);cursor:ne-resize}.ReactCrop .ord-e{top:50%;right:0;-webkit-transform:translate(50%,-50%);transform:translate(50%,-50%);cursor:e-resize}.ReactCrop .ord-se{bottom:0;right:0;-webkit-transform:translate(50%,50%);transform:translate(50%,50%);cursor:se-resize}.ReactCrop .ord-s{bottom:0;left:50%;-webkit-transform:translate(-50%,50%);transform:translate(-50%,50%);cursor:s-resize}.ReactCrop .ord-sw{bottom:0;left:0;-webkit-transform:translate(-50%,50%);transform:translate(-50%,50%);cursor:sw-resize}.ReactCrop .ord-w{top:50%;left:0;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);cursor:w-resize}.ReactCrop__disabled .ReactCrop__drag-handle{cursor:inherit}.ReactCrop__drag-bar{position:absolute}.ReactCrop__drag-bar.ord-n{top:0;left:0;width:100%;height:var(--rc-drag-bar-size);-webkit-transform:translateY(-50%);transform:translateY(-50%)}.ReactCrop__drag-bar.ord-e{right:0;top:0;width:var(--rc-drag-bar-size);height:100%;-webkit-transform:translate(50%);transform:translate(50%)}.ReactCrop__drag-bar.ord-s{bottom:0;left:0;width:100%;height:var(--rc-drag-bar-size);-webkit-transform:translateY(50%);transform:translateY(50%)}.ReactCrop__drag-bar.ord-w{top:0;left:0;width:var(--rc-drag-bar-size);height:100%;-webkit-transform:translate(-50%);transform:translate(-50%)}.ReactCrop--new-crop .ReactCrop__drag-bar,.ReactCrop--new-crop .ReactCrop__drag-handle,.ReactCrop--fixed-aspect .ReactCrop__drag-bar,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-n,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-e,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-s,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-w{display:none}@media (pointer: coarse){.ReactCrop .ord-n,.ReactCrop .ord-e,.ReactCrop .ord-s,.ReactCrop .ord-w{display:none}.ReactCrop__drag-handle{width:var(--rc-drag-handle-mobile-size);height:var(--rc-drag-handle-mobile-size)}}*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}:root,[data-theme]{background-color:hsla(var(--b1) / var(--tw-bg-opacity, 1));color:hsla(var(--bc) / var(--tw-text-opacity, 1))}html{-webkit-tap-highlight-color:transparent}:root{color-scheme:light;--pf: 141 50% 48%;--sf: 219 96% 48%;--af: 10 81% 45%;--nf: 219 20% 20%;--b2: 0 0% 90%;--b3: 0 0% 81%;--in: 198 93% 60%;--su: 158 64% 52%;--wa: 43 96% 56%;--er: 0 91% 71%;--inc: 198 100% 12%;--suc: 158 100% 10%;--wac: 43 100% 11%;--erc: 0 100% 14%;--rounded-box: 1rem;--rounded-btn: .5rem;--rounded-badge: 1.9rem;--btn-text-case: uppercase;--border-btn: 1px;--tab-border: 1px;--tab-radius: .5rem;--p: 141 50% 60%;--pc: 151 28% 19%;--s: 219 96% 60%;--sc: 210 20% 98%;--a: 10 81% 56%;--ac: 210 20% 98%;--n: 219 20% 25%;--nc: 210 20% 98%;--b1: 0 0% 100%;--bc: 219 20% 25%;--animation-btn: 0;--animation-input: 0;--btn-focus-scale: 1}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.alert{display:flex;width:100%;flex-direction:column;align-items:center;justify-content:space-between;gap:1rem;--tw-bg-opacity: 1;background-color:hsl(var(--b2, var(--b1)) / var(--tw-bg-opacity));padding:1rem;border-radius:var(--rounded-box, 1rem)}.alert>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}@media (min-width: 768px){.alert{flex-direction:row}.alert>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}}.alert>:where(*){display:flex;align-items:center;gap:.5rem}.btn{display:inline-flex;flex-shrink:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-wrap:wrap;align-items:center;justify-content:center;border-color:transparent;border-color:hsl(var(--n) / var(--tw-border-opacity));text-align:center;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1);border-radius:var(--rounded-btn, .5rem);height:3rem;padding-left:1rem;padding-right:1rem;font-size:.875rem;line-height:1.25rem;line-height:1em;min-height:3rem;font-weight:600;text-transform:uppercase;text-transform:var(--btn-text-case, uppercase);text-decoration-line:none;border-width:var(--border-btn, 1px);animation:button-pop var(--animation-btn, .25s) ease-out;--tw-border-opacity: 1;--tw-bg-opacity: 1;background-color:hsl(var(--n) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--nc) / var(--tw-text-opacity))}.btn-disabled,.btn[disabled]{pointer-events:none}.btn-circle{height:3rem;width:3rem;border-radius:9999px;padding:0}.btn.loading,.btn.loading:hover{pointer-events:none}.btn.loading:before{margin-right:.5rem;height:1rem;width:1rem;border-radius:9999px;border-width:2px;animation:spin 2s linear infinite;content:"";border-top-color:transparent;border-left-color:transparent;border-bottom-color:currentColor;border-right-color:currentColor}@media (prefers-reduced-motion: reduce){.btn.loading:before{animation:spin 10s linear infinite}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.btn-group{display:inline-flex}.btn-group>input[type=radio].btn{-webkit-appearance:none;-moz-appearance:none;appearance:none}.btn-group>input[type=radio].btn:before{content:attr(data-title)}.card{position:relative;display:flex;flex-direction:column;border-radius:var(--rounded-box, 1rem)}.card:focus{outline:2px solid transparent;outline-offset:2px}.card figure{display:flex;align-items:center;justify-content:center}.card.image-full{display:grid}.card.image-full:before{position:relative;content:"";z-index:10;--tw-bg-opacity: 1;background-color:hsl(var(--n) / var(--tw-bg-opacity));opacity:.75;border-radius:var(--rounded-box, 1rem)}.card.image-full:before,.card.image-full>*{grid-column-start:1;grid-row-start:1}.card.image-full>figure img{height:100%;-o-object-fit:cover;object-fit:cover}.card.image-full>.card-body{position:relative;z-index:20;--tw-text-opacity: 1;color:hsl(var(--nc) / var(--tw-text-opacity))}.checkbox{flex-shrink:0;--chkbg: var(--bc);--chkfg: var(--b1);height:1.5rem;width:1.5rem;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-width:1px;border-color:hsl(var(--bc) / var(--tw-border-opacity));--tw-border-opacity: .2;border-radius:var(--rounded-btn, .5rem)}.divider{display:flex;flex-direction:row;align-items:center;align-self:stretch;margin-top:1rem;margin-bottom:1rem;height:1rem;white-space:nowrap}.divider:before,.divider:after{content:"";flex-grow:1;height:.125rem;width:100%}.drawer{display:grid;width:100%;overflow:hidden;height:100vh;height:100dvh}.drawer.drawer-end{direction:rtl}.drawer.drawer-end>*{direction:ltr}.drawer.drawer-end>.drawer-toggle~.drawer-side>.drawer-overlay+*{--tw-translate-x: 100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));justify-self:end}.drawer.drawer-end>.drawer-toggle:checked~.drawer-side>.drawer-overlay+*{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}:where(.drawer-toggle ~ .drawer-content){height:inherit}.drawer-toggle{position:absolute;height:0px;width:0px;-webkit-appearance:none;-moz-appearance:none;appearance:none;opacity:0}.drawer-toggle~.drawer-content{z-index:0;grid-column-start:1;grid-row-start:1;overflow-y:auto;transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.drawer-toggle~.drawer-side{grid-column-start:1;grid-row-start:1;display:grid;max-height:100vh;overflow-x:hidden}.drawer-toggle~.drawer-side>.drawer-overlay{visibility:hidden;grid-column-start:1;grid-row-start:1;opacity:0;cursor:pointer;--tw-bg-opacity: 1;background-color:hsl(var(--nf, var(--n)) / var(--tw-bg-opacity));transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.drawer-toggle~.drawer-side>.drawer-overlay+*{z-index:10;grid-column-start:1;grid-row-start:1;--tw-translate-x: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.drawer-toggle:checked~.drawer-side{isolation:isolate;overflow-y:auto;overflow-x:hidden}.drawer-toggle:checked~.drawer-side>.drawer-overlay{visibility:visible;opacity:.999999;--tw-bg-opacity: .4}.drawer-toggle:checked~.drawer-side>.drawer-overlay+*{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}[dir=rtl] .drawer-toggle~.drawer-side>.drawer-overlay+*{--tw-translate-x: 100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}[dir=rtl] .drawer-toggle:checked~.drawer-side>.drawer-overlay+*{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}[dir=rtl] .drawer.drawer-end>.drawer-toggle~.drawer-side>.drawer-overlay+*{--tw-translate-x: -100%}[dir=rtl] .drawer.drawer-end>.drawer-toggle:checked~.drawer-side>.drawer-overlay+*{--tw-translate-x: 0px}[dir=rtl] .drawer.drawer-end>.drawer-toggle:checked~.drawer-content{--tw-translate-x: .5rem}@media (min-width: 1024px){.drawer-mobile{grid-auto-columns:max-content auto}.drawer-mobile>.drawer-toggle~.drawer-content{height:auto}@media (min-width: 1024px){.drawer-mobile>.drawer-toggle~.drawer-content{grid-column-start:2}.drawer-mobile>.drawer-toggle~.drawer-side>.drawer-overlay{visibility:visible}.drawer-mobile>.drawer-toggle~.drawer-side>.drawer-overlay+*{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.drawer-mobile.drawer-end>.drawer-toggle~.drawer-content{grid-column-start:1}.drawer-mobile.drawer-end>.drawer-toggle~.drawer-side{grid-column-start:2}.drawer-mobile.drawer-end>.drawer-toggle~.drawer-side>.drawer-overlay{visibility:visible}.drawer-mobile.drawer-end>.drawer-toggle~.drawer-side>.drawer-overlay+*{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}}.drawer-mobile>.drawer-toggle~.drawer-side{overflow-y:auto}.drawer-mobile.drawer-end{grid-auto-columns:auto max-content;direction:ltr}.drawer-mobile.drawer-end>.drawer-toggle~.drawer-content{height:auto}.drawer-mobile.drawer-end>.drawer-toggle~.drawer-side{overflow-y:auto}.drawer-mobile>.drawer-toggle:checked~.drawer-content{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}}.form-control{display:flex;flex-direction:column}.label{display:flex;-webkit-user-select:none;-moz-user-select:none;user-select:none;align-items:center;justify-content:space-between;padding:.5rem .25rem}.input{flex-shrink:1;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1);height:3rem;padding-left:1rem;padding-right:1rem;font-size:1rem;line-height:2;line-height:1.5rem;border-width:1px;border-color:hsl(var(--bc) / var(--tw-border-opacity));--tw-border-opacity: 0;--tw-bg-opacity: 1;background-color:hsl(var(--b1) / var(--tw-bg-opacity));border-radius:var(--rounded-btn, .5rem)}.input-group>.input{isolation:isolate}.input-group>*,.input-group>.input,.input-group>.select{border-radius:0}.link{cursor:pointer;text-decoration-line:underline}.menu{display:flex;flex-direction:column;flex-wrap:wrap}.menu.horizontal{display:inline-flex;flex-direction:row}.menu.horizontal :where(li){flex-direction:row}:where(.menu li){position:relative;display:flex;flex-shrink:0;flex-direction:column;flex-wrap:wrap;align-items:stretch}.menu :where(li:not(.menu-title))>:where(*:not(ul)){display:flex}.menu :where(li:not(.disabled):not(.menu-title))>:where(*:not(ul)){cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;align-items:center;outline:2px solid transparent;outline-offset:2px}.menu>:where(li > *:not(ul):focus){outline:2px solid transparent;outline-offset:2px}.menu>:where(li.disabled > *:not(ul):focus){cursor:auto}.menu>:where(li) :where(ul){display:flex;flex-direction:column;align-items:stretch}.menu>:where(li)>:where(ul){position:absolute;display:none;top:initial;left:100%;border-top-left-radius:inherit;border-top-right-radius:inherit;border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.menu>:where(li:hover)>:where(ul){display:flex}.menu>:where(li:focus)>:where(ul){display:flex}.modal{pointer-events:none;visibility:hidden;position:fixed;top:0px;right:0px;bottom:0px;left:0px;display:flex;justify-content:center;opacity:0;z-index:999;background-color:hsl(var(--nf, var(--n)) / var(--tw-bg-opacity));--tw-bg-opacity: .4;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-property:transform,opacity,visibility;overflow-y:hidden;overscroll-behavior:contain}:where(.modal){align-items:center}.modal-box{max-height:calc(100vh - 5em);--tw-bg-opacity: 1;background-color:hsl(var(--b1) / var(--tw-bg-opacity));padding:1.5rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1);width:91.666667%;max-width:32rem;--tw-scale-x: .9;--tw-scale-y: .9;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));border-top-left-radius:var(--rounded-box, 1rem);border-top-right-radius:var(--rounded-box, 1rem);border-bottom-left-radius:var(--rounded-box, 1rem);border-bottom-right-radius:var(--rounded-box, 1rem);box-shadow:0 25px 50px -12px #00000040;overflow-y:auto;overscroll-behavior:contain}.modal-open,.modal:target,.modal-toggle:checked+.modal{pointer-events:auto;visibility:visible;opacity:1}.modal-toggle{position:fixed;height:0px;width:0px;-webkit-appearance:none;-moz-appearance:none;appearance:none;opacity:0}.radial-progress{position:relative;display:inline-grid;height:var(--size);width:var(--size);place-content:center;border-radius:9999px;background-color:transparent;vertical-align:middle;box-sizing:content-box;--value: 0;--size: 5rem;--thickness: calc(var(--size) / 10)}.radial-progress::-moz-progress-bar{-moz-appearance:none;appearance:none;background-color:transparent}.radial-progress::-webkit-progress-value{-webkit-appearance:none;appearance:none;background-color:transparent}.radial-progress::-webkit-progress-bar{-webkit-appearance:none;appearance:none;background-color:transparent}.radial-progress:before,.radial-progress:after{position:absolute;border-radius:9999px;content:""}.radial-progress:before{top:0px;right:0px;bottom:0px;left:0px;background:radial-gradient(farthest-side,currentColor 98%,#0000) top/var(--thickness) var(--thickness) no-repeat,conic-gradient(currentColor calc(var(--value) * 1%),#0000 0);-webkit-mask:radial-gradient(farthest-side,#0000 calc(99% - var(--thickness)),#000 calc(100% - var(--thickness)));mask:radial-gradient(farthest-side,#0000 calc(99% - var(--thickness)),#000 calc(100% - var(--thickness)))}.radial-progress:after{inset:calc(50% - var(--thickness) / 2);transform:rotate(calc(var(--value) * 3.6deg - 90deg)) translate(calc(var(--size) / 2 - 50%));background-color:currentColor}.radio{flex-shrink:0;--chkbg: var(--bc);height:1.5rem;width:1.5rem;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:9999px;border-width:1px;border-color:hsl(var(--bc) / var(--tw-border-opacity));--tw-border-opacity: .2;transition:background,box-shadow var(--animation-input, .2s) ease-in-out}.range{height:1.5rem;width:100%;cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none;--range-shdw: var(--bc);overflow:hidden;background-color:transparent;border-radius:var(--rounded-box, 1rem)}.range:focus{outline:none}.select{display:inline-flex;flex-shrink:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:3rem;padding-left:1rem;padding-right:2.5rem;font-size:.875rem;line-height:1.25rem;line-height:2;min-height:3rem;border-width:1px;border-color:hsl(var(--bc) / var(--tw-border-opacity));--tw-border-opacity: 0;--tw-bg-opacity: 1;background-color:hsl(var(--b1) / var(--tw-bg-opacity));font-weight:600;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1);border-radius:var(--rounded-btn, .5rem);background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - 20px) calc(1px + 50%),calc(100% - 16px) calc(1px + 50%);background-size:4px 4px,4px 4px;background-repeat:no-repeat}.select[multiple]{height:auto}.steps{display:inline-grid;grid-auto-flow:column;overflow:hidden;overflow-x:auto;counter-reset:step;grid-auto-columns:1fr}.steps .step{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));grid-template-columns:auto;grid-template-rows:repeat(2,minmax(0,1fr));grid-template-rows:40px 1fr;place-items:center;text-align:center;min-width:4rem}.swap{position:relative;display:inline-grid;-webkit-user-select:none;-moz-user-select:none;user-select:none;place-content:center;cursor:pointer}.swap>*{grid-column-start:1;grid-row-start:1;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-property:transform,opacity}.swap input{-webkit-appearance:none;-moz-appearance:none;appearance:none}.swap .swap-on,.swap .swap-indeterminate,.swap input:indeterminate~.swap-on{opacity:0}.swap input:checked~.swap-off,.swap.swap-active .swap-off,.swap input:indeterminate~.swap-off{opacity:0}.swap input:checked~.swap-on,.swap-active .swap-on,.swap input:indeterminate~.swap-indeterminate{opacity:1}.tabs{display:flex;flex-wrap:wrap;align-items:flex-end}.tab{position:relative;display:inline-flex;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-wrap:wrap;align-items:center;justify-content:center;text-align:center;height:2rem;font-size:.875rem;line-height:1.25rem;line-height:2;--tab-padding: 1rem;--tw-text-opacity: .5;--tab-color: hsla(var(--bc) / var(--tw-text-opacity, 1));--tab-bg: hsla(var(--b1) / var(--tw-bg-opacity, 1));--tab-border-color: hsla(var(--b3) / var(--tw-bg-opacity, 1));color:var(--tab-color);padding-left:var(--tab-padding, 1rem);padding-right:var(--tab-padding, 1rem)}.toast{position:fixed;display:flex;min-width:-moz-fit-content;min-width:fit-content;flex-direction:column;gap:.5rem;padding:1rem}.toggle{flex-shrink:0;--tglbg: hsl(var(--b1));--handleoffset: 1.5rem;--handleoffsetcalculator: calc(var(--handleoffset) * -1);--togglehandleborder: 0 0;height:1.5rem;width:3rem;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-width:1px;border-color:hsl(var(--bc) / var(--tw-border-opacity));--tw-border-opacity: .2;background-color:hsl(var(--bc) / var(--tw-bg-opacity));--tw-bg-opacity: .5;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1);border-radius:var(--rounded-badge, 1.9rem);transition:background,box-shadow var(--animation-input, .2s) ease-in-out;box-shadow:var(--handleoffsetcalculator) 0 0 2px var(--tglbg) inset,0 0 0 2px var(--tglbg) inset,var(--togglehandleborder)}.alert-success{--tw-bg-opacity: 1;background-color:hsl(var(--su) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--suc, var(--nc)) / var(--tw-text-opacity))}.btn-outline .badge{--tw-border-opacity: 1;border-color:hsl(var(--nf, var(--n)) / var(--tw-border-opacity));--tw-text-opacity: 1;color:hsl(var(--nc) / var(--tw-text-opacity))}.btn-outline.btn-primary .badge{--tw-border-opacity: 1;border-color:hsl(var(--p) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--p) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--pc) / var(--tw-text-opacity))}.btn-outline.btn-secondary .badge{--tw-border-opacity: 1;border-color:hsl(var(--s) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--s) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--sc) / var(--tw-text-opacity))}.btn-outline.btn-accent .badge{--tw-border-opacity: 1;border-color:hsl(var(--a) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--a) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--ac) / var(--tw-text-opacity))}.btn-outline .badge.outline{--tw-border-opacity: 1;border-color:hsl(var(--nf, var(--n)) / var(--tw-border-opacity));background-color:transparent}.btn-outline.btn-primary .badge-outline{--tw-border-opacity: 1;border-color:hsl(var(--p) / var(--tw-border-opacity));background-color:transparent;--tw-text-opacity: 1;color:hsl(var(--p) / var(--tw-text-opacity))}.btn-outline.btn-secondary .badge-outline{--tw-border-opacity: 1;border-color:hsl(var(--s) / var(--tw-border-opacity));background-color:transparent;--tw-text-opacity: 1;color:hsl(var(--s) / var(--tw-text-opacity))}.btn-outline.btn-accent .badge-outline{--tw-border-opacity: 1;border-color:hsl(var(--a) / var(--tw-border-opacity));background-color:transparent;--tw-text-opacity: 1;color:hsl(var(--a) / var(--tw-text-opacity))}.btn-outline.btn-info .badge-outline{--tw-border-opacity: 1;border-color:hsl(var(--in) / var(--tw-border-opacity));background-color:transparent;--tw-text-opacity: 1;color:hsl(var(--in) / var(--tw-text-opacity))}.btn-outline.btn-success .badge-outline{--tw-border-opacity: 1;border-color:hsl(var(--su) / var(--tw-border-opacity));background-color:transparent;--tw-text-opacity: 1;color:hsl(var(--su) / var(--tw-text-opacity))}.btn-outline.btn-warning .badge-outline{--tw-border-opacity: 1;border-color:hsl(var(--wa) / var(--tw-border-opacity));background-color:transparent;--tw-text-opacity: 1;color:hsl(var(--wa) / var(--tw-text-opacity))}.btn-outline.btn-error .badge-outline{--tw-border-opacity: 1;border-color:hsl(var(--er) / var(--tw-border-opacity));background-color:transparent;--tw-text-opacity: 1;color:hsl(var(--er) / var(--tw-text-opacity))}.btn-outline:hover .badge{--tw-border-opacity: 1;border-color:hsl(var(--b2, var(--b1)) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--b2, var(--b1)) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--bc) / var(--tw-text-opacity))}.btn-outline:hover .badge.outline{--tw-border-opacity: 1;border-color:hsl(var(--b2, var(--b1)) / var(--tw-border-opacity));--tw-text-opacity: 1;color:hsl(var(--nc) / var(--tw-text-opacity))}.btn-outline.btn-primary:hover .badge{--tw-border-opacity: 1;border-color:hsl(var(--pc) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--pc) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--p) / var(--tw-text-opacity))}.btn-outline.btn-primary:hover .badge.outline{--tw-border-opacity: 1;border-color:hsl(var(--pc) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--pf, var(--p)) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--pc) / var(--tw-text-opacity))}.btn-outline.btn-secondary:hover .badge{--tw-border-opacity: 1;border-color:hsl(var(--sc) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--sc) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--s) / var(--tw-text-opacity))}.btn-outline.btn-secondary:hover .badge.outline{--tw-border-opacity: 1;border-color:hsl(var(--sc) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--sf, var(--s)) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--sc) / var(--tw-text-opacity))}.btn-outline.btn-accent:hover .badge{--tw-border-opacity: 1;border-color:hsl(var(--ac) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--ac) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--a) / var(--tw-text-opacity))}.btn-outline.btn-accent:hover .badge.outline{--tw-border-opacity: 1;border-color:hsl(var(--ac) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--af, var(--a)) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--ac) / var(--tw-text-opacity))}.btm-nav>*:where(.active){border-top-width:2px;--tw-bg-opacity: 1;background-color:hsl(var(--b1) / var(--tw-bg-opacity))}.btm-nav>*.disabled,.btm-nav>*.disabled:hover,.btm-nav>*[disabled],.btm-nav>*[disabled]:hover{pointer-events:none;--tw-border-opacity: 0;background-color:hsl(var(--n) / var(--tw-bg-opacity));--tw-bg-opacity: .1;color:hsl(var(--bc) / var(--tw-text-opacity));--tw-text-opacity: .2}.btm-nav>* .label{font-size:1rem;line-height:1.5rem}.btn:active:hover,.btn:active:focus{animation:none;transform:scale(var(--btn-focus-scale, .95))}.btn:hover,.btn-active{--tw-border-opacity: 1;border-color:hsl(var(--nf, var(--n)) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--nf, var(--n)) / var(--tw-bg-opacity))}.btn:focus-visible{outline:2px solid hsl(var(--nf));outline-offset:2px}.btn-primary{--tw-border-opacity: 1;border-color:hsl(var(--p) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--p) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--pc) / var(--tw-text-opacity))}.btn-primary:hover,.btn-primary.btn-active{--tw-border-opacity: 1;border-color:hsl(var(--pf, var(--p)) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--pf, var(--p)) / var(--tw-bg-opacity))}.btn-primary:focus-visible{outline:2px solid hsl(var(--p))}.btn-secondary{--tw-border-opacity: 1;border-color:hsl(var(--s) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--s) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--sc) / var(--tw-text-opacity))}.btn-secondary:hover,.btn-secondary.btn-active{--tw-border-opacity: 1;border-color:hsl(var(--sf, var(--s)) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--sf, var(--s)) / var(--tw-bg-opacity))}.btn-secondary:focus-visible{outline:2px solid hsl(var(--s))}.btn-accent:hover,.btn-accent.btn-active{--tw-border-opacity: 1;border-color:hsl(var(--af, var(--a)) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--af, var(--a)) / var(--tw-bg-opacity))}.btn-info:hover,.btn-info.btn-active{--tw-border-opacity: 1;border-color:hsl(var(--in) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--in) / var(--tw-bg-opacity))}.btn-success:hover,.btn-success.btn-active{--tw-border-opacity: 1;border-color:hsl(var(--su) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--su) / var(--tw-bg-opacity))}.btn-warning:hover,.btn-warning.btn-active{--tw-border-opacity: 1;border-color:hsl(var(--wa) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--wa) / var(--tw-bg-opacity))}.btn-error:hover,.btn-error.btn-active{--tw-border-opacity: 1;border-color:hsl(var(--er) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--er) / var(--tw-bg-opacity))}.btn.glass:hover,.btn.glass.btn-active{--glass-opacity: 25%;--glass-border-opacity: 15%}.btn.glass:focus-visible{outline:2px solid currentColor}.btn-ghost{border-width:1px;border-color:transparent;background-color:transparent;color:currentColor}.btn-ghost:hover,.btn-ghost.btn-active{--tw-border-opacity: 0;background-color:hsl(var(--bc) / var(--tw-bg-opacity));--tw-bg-opacity: .2}.btn-ghost:focus-visible{outline:2px solid currentColor}.btn-link:hover,.btn-link.btn-active{border-color:transparent;background-color:transparent;text-decoration-line:underline}.btn-outline{border-color:currentColor;background-color:transparent;--tw-text-opacity: 1;color:hsl(var(--bc) / var(--tw-text-opacity))}.btn-outline:hover,.btn-outline.btn-active{--tw-border-opacity: 1;border-color:hsl(var(--bc) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--bc) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--b1) / var(--tw-text-opacity))}.btn-outline.btn-primary{--tw-text-opacity: 1;color:hsl(var(--p) / var(--tw-text-opacity))}.btn-outline.btn-primary:hover,.btn-outline.btn-primary.btn-active{--tw-border-opacity: 1;border-color:hsl(var(--pf, var(--p)) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--pf, var(--p)) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--pc) / var(--tw-text-opacity))}.btn-outline.btn-secondary{--tw-text-opacity: 1;color:hsl(var(--s) / var(--tw-text-opacity))}.btn-outline.btn-secondary:hover,.btn-outline.btn-secondary.btn-active{--tw-border-opacity: 1;border-color:hsl(var(--sf, var(--s)) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--sf, var(--s)) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--sc) / var(--tw-text-opacity))}.btn-outline.btn-accent{--tw-text-opacity: 1;color:hsl(var(--a) / var(--tw-text-opacity))}.btn-outline.btn-accent:hover,.btn-outline.btn-accent.btn-active{--tw-border-opacity: 1;border-color:hsl(var(--af, var(--a)) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--af, var(--a)) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--ac) / var(--tw-text-opacity))}.btn-outline.btn-success{--tw-text-opacity: 1;color:hsl(var(--su) / var(--tw-text-opacity))}.btn-outline.btn-success:hover,.btn-outline.btn-success.btn-active{--tw-border-opacity: 1;border-color:hsl(var(--su) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--su) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--suc, var(--nc)) / var(--tw-text-opacity))}.btn-outline.btn-info{--tw-text-opacity: 1;color:hsl(var(--in) / var(--tw-text-opacity))}.btn-outline.btn-info:hover,.btn-outline.btn-info.btn-active{--tw-border-opacity: 1;border-color:hsl(var(--in) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--in) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--inc, var(--nc)) / var(--tw-text-opacity))}.btn-outline.btn-warning{--tw-text-opacity: 1;color:hsl(var(--wa) / var(--tw-text-opacity))}.btn-outline.btn-warning:hover,.btn-outline.btn-warning.btn-active{--tw-border-opacity: 1;border-color:hsl(var(--wa) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--wa) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--wac, var(--nc)) / var(--tw-text-opacity))}.btn-outline.btn-error{--tw-text-opacity: 1;color:hsl(var(--er) / var(--tw-text-opacity))}.btn-outline.btn-error:hover,.btn-outline.btn-error.btn-active{--tw-border-opacity: 1;border-color:hsl(var(--er) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--er) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--erc, var(--nc)) / var(--tw-text-opacity))}.btn-disabled,.btn-disabled:hover,.btn[disabled],.btn[disabled]:hover{--tw-border-opacity: 0;background-color:hsl(var(--n) / var(--tw-bg-opacity));--tw-bg-opacity: .2;color:hsl(var(--bc) / var(--tw-text-opacity));--tw-text-opacity: .2}.btn.loading.btn-square:before,.btn.loading.btn-circle:before{margin-right:0}.btn.loading.btn-xl:before,.btn.loading.btn-lg:before{height:1.25rem;width:1.25rem}.btn.loading.btn-sm:before,.btn.loading.btn-xs:before{height:.75rem;width:.75rem}.btn-group>input[type=radio]:checked.btn,.btn-group>.btn-active{--tw-border-opacity: 1;border-color:hsl(var(--p) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--p) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--pc) / var(--tw-text-opacity))}.btn-group>input[type=radio]:checked.btn:focus-visible,.btn-group>.btn-active:focus-visible{outline:2px solid hsl(var(--p))}@keyframes button-pop{0%{transform:scale(var(--btn-focus-scale, .95))}40%{transform:scale(1.02)}to{transform:scale(1)}}.card :where(figure:first-child){overflow:hidden;border-start-start-radius:inherit;border-start-end-radius:inherit;border-end-start-radius:unset;border-end-end-radius:unset}.card :where(figure:last-child){overflow:hidden;border-start-start-radius:unset;border-start-end-radius:unset;border-end-start-radius:inherit;border-end-end-radius:inherit}.card:focus-visible{outline:2px solid currentColor;outline-offset:2px}.card.bordered{border-width:1px;--tw-border-opacity: 1;border-color:hsl(var(--b2, var(--b1)) / var(--tw-border-opacity))}.card.compact .card-body{padding:1rem;font-size:.875rem;line-height:1.25rem}.card.image-full :where(figure){overflow:hidden;border-radius:inherit}.checkbox:focus-visible{outline:2px solid hsl(var(--bc));outline-offset:2px}.checkbox:checked,.checkbox[checked=true],.checkbox[aria-checked=true]{--tw-bg-opacity: 1;background-color:hsl(var(--bc) / var(--tw-bg-opacity));background-repeat:no-repeat;animation:checkmark var(--animation-input, .2s) ease-in-out;background-image:linear-gradient(-45deg,transparent 65%,hsl(var(--chkbg)) 65.99%),linear-gradient(45deg,transparent 75%,hsl(var(--chkbg)) 75.99%),linear-gradient(-45deg,hsl(var(--chkbg)) 40%,transparent 40.99%),linear-gradient(45deg,hsl(var(--chkbg)) 30%,hsl(var(--chkfg)) 30.99%,hsl(var(--chkfg)) 40%,transparent 40.99%),linear-gradient(-45deg,hsl(var(--chkfg)) 50%,hsl(var(--chkbg)) 50.99%)}.checkbox:indeterminate{--tw-bg-opacity: 1;background-color:hsl(var(--bc) / var(--tw-bg-opacity));background-repeat:no-repeat;animation:checkmark var(--animation-input, .2s) ease-in-out;background-image:linear-gradient(90deg,transparent 80%,hsl(var(--chkbg)) 80%),linear-gradient(-90deg,transparent 80%,hsl(var(--chkbg)) 80%),linear-gradient(0deg,hsl(var(--chkbg)) 43%,hsl(var(--chkfg)) 43%,hsl(var(--chkfg)) 57%,hsl(var(--chkbg)) 57%)}.checkbox-success{--chkbg: var(--su);--chkfg: var(--suc);--tw-border-opacity: 1;border-color:hsl(var(--su) / var(--tw-border-opacity))}.checkbox-success:hover{--tw-border-opacity: 1;border-color:hsl(var(--su) / var(--tw-border-opacity))}.checkbox-success:focus-visible{outline:2px solid hsl(var(--su))}.checkbox-success:checked,.checkbox-success[checked=true],.checkbox-success[aria-checked=true]{--tw-border-opacity: 1;border-color:hsl(var(--su) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--su) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--suc, var(--nc)) / var(--tw-text-opacity))}.checkbox:disabled{cursor:not-allowed;border-color:transparent;--tw-bg-opacity: 1;background-color:hsl(var(--bc) / var(--tw-bg-opacity));opacity:.2}@keyframes checkmark{0%{background-position-y:5px}50%{background-position-y:-2px}to{background-position-y:0}}[dir=rtl] .checkbox:checked,[dir=rtl] .checkbox[checked=true],[dir=rtl] .checkbox[aria-checked=true]{background-image:linear-gradient(45deg,transparent 65%,hsl(var(--chkbg)) 65.99%),linear-gradient(-45deg,transparent 75%,hsl(var(--chkbg)) 75.99%),linear-gradient(45deg,hsl(var(--chkbg)) 40%,transparent 40.99%),linear-gradient(-45deg,hsl(var(--chkbg)) 30%,hsl(var(--chkfg)) 30.99%,hsl(var(--chkfg)) 40%,transparent 40.99%),linear-gradient(45deg,hsl(var(--chkfg)) 50%,hsl(var(--chkbg)) 50.99%)}.divider:before{background-color:hsl(var(--bc) / var(--tw-bg-opacity));--tw-bg-opacity: .1}.divider:after{background-color:hsl(var(--bc) / var(--tw-bg-opacity));--tw-bg-opacity: .1}.divider:not(:empty){gap:1rem}.drawer.drawer-end>.drawer-toggle:checked~.drawer-content{--tw-translate-x: -.5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.drawer-toggle:checked~.drawer-content{--tw-translate-x: .5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.drawer-toggle:focus-visible~.drawer-content .drawer-button{outline:2px solid hsl(var(--nf));outline-offset:2px}.drawer-toggle:focus-visible~.drawer-content .drawer-button.btn-primary{outline:2px solid hsl(var(--p))}.drawer-toggle:focus-visible~.drawer-content .drawer-button.btn-secondary{outline:2px solid hsl(var(--s))}.drawer-toggle:focus-visible~.drawer-content .drawer-button.btn-accent{outline:2px solid hsl(var(--a))}.drawer-toggle:focus-visible~.drawer-content .drawer-button.btn-info{outline:2px solid hsl(var(--in))}.drawer-toggle:focus-visible~.drawer-content .drawer-button.btn-success{outline:2px solid hsl(var(--su))}.drawer-toggle:focus-visible~.drawer-content .drawer-button.btn-warning{outline:2px solid hsl(var(--wa))}.drawer-toggle:focus-visible~.drawer-content .drawer-button.btn-error{outline:2px solid hsl(var(--er))}.drawer-toggle:focus-visible~.drawer-content .drawer-button.glass{outline:2px solid currentColor}.drawer-toggle:focus-visible~.drawer-content .drawer-button.btn-ghost{outline:2px solid currentColor}.drawer-toggle:focus-visible~.drawer-content .drawer-button.btn-link{outline:2px solid currentColor}.label-text{font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:hsl(var(--bc) / var(--tw-text-opacity))}.label a:hover{--tw-text-opacity: 1;color:hsl(var(--bc) / var(--tw-text-opacity))}.input[list]::-webkit-calendar-picker-indicator{line-height:1em}.input:focus{outline:2px solid hsla(var(--bc) / .2);outline-offset:2px}.input-disabled,.input[disabled]{cursor:not-allowed;--tw-border-opacity: 1;border-color:hsl(var(--b2, var(--b1)) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--b2, var(--b1)) / var(--tw-bg-opacity));--tw-text-opacity: .2}.input-disabled::-moz-placeholder,.input[disabled]::-moz-placeholder{color:hsl(var(--bc) / var(--tw-placeholder-opacity));--tw-placeholder-opacity: .2}.input-disabled::placeholder,.input[disabled]::placeholder{color:hsl(var(--bc) / var(--tw-placeholder-opacity));--tw-placeholder-opacity: .2}.link-primary{--tw-text-opacity: 1;color:hsl(var(--p) / var(--tw-text-opacity))}.link-primary:hover{--tw-text-opacity: 1;color:hsl(var(--pf, var(--p)) / var(--tw-text-opacity))}.link:focus{outline:2px solid transparent;outline-offset:2px}.link:focus-visible{outline:2px solid currentColor;outline-offset:2px}.menu.horizontal li.bordered>a,.menu.horizontal li.bordered>button,.menu.horizontal li.bordered>span{border-left-width:0px;border-bottom-width:4px;--tw-border-opacity: 1;border-color:hsl(var(--p) / var(--tw-border-opacity))}.menu[class*=" px-"]:not(.menu[class*=" px-0"]) li>*,.menu[class^=px-]:not(.menu[class^="px-0"]) li>*,.menu[class*=" p-"]:not(.menu[class*=" p-0"]) li>*,.menu[class^=p-]:not(.menu[class^="p-0"]) li>*{border-radius:var(--rounded-btn, .5rem)}.menu :where(li.bordered > *){border-left-width:4px;--tw-border-opacity: 1;border-color:hsl(var(--p) / var(--tw-border-opacity))}.menu :where(li)>:where(*:not(ul)){gap:.75rem;padding:.75rem 1rem;color:currentColor}.menu :where(li:not(.menu-title):not(:empty))>:where(*:not(ul):focus),.menu :where(li:not(.menu-title):not(:empty))>:where(*:not(ul):hover){background-color:hsl(var(--bc) / var(--tw-bg-opacity));--tw-bg-opacity: .1}.menu :where(li:not(.menu-title):not(:empty))>:where(:not(ul).active),.menu :where(li:not(.menu-title):not(:empty))>:where(*:not(ul):active){--tw-bg-opacity: 1;background-color:hsl(var(--p) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--pc) / var(--tw-text-opacity))}.menu :where(li:empty){margin:.5rem 1rem;height:1px;background-color:hsl(var(--bc) / var(--tw-bg-opacity));--tw-bg-opacity: .1}.menu li.disabled>*{-webkit-user-select:none;-moz-user-select:none;user-select:none;color:hsl(var(--bc) / var(--tw-text-opacity));--tw-text-opacity: .2}.menu li.disabled>*:hover{background-color:transparent}.menu li.hover-bordered a{border-left-width:4px;border-color:transparent}.menu li.hover-bordered a:hover{--tw-border-opacity: 1;border-color:hsl(var(--p) / var(--tw-border-opacity))}.menu.compact li>a,.menu.compact li>span{padding-top:.5rem;padding-bottom:.5rem;font-size:.875rem;line-height:1.25rem}.menu .menu-title>*{padding-top:.25rem;padding-bottom:.25rem;font-size:.75rem;line-height:1rem;font-weight:700;color:hsl(var(--bc) / var(--tw-text-opacity));--tw-text-opacity: .4}.menu :where(li:not(.disabled))>:where(*:not(ul)){outline:2px solid transparent;outline-offset:2px;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.menu>:where(li:first-child){border-top-left-radius:inherit;border-top-right-radius:inherit;border-bottom-right-radius:unset;border-bottom-left-radius:unset}.menu>:where(li:first-child)>:where(:not(ul)){border-top-left-radius:inherit;border-top-right-radius:inherit;border-bottom-right-radius:unset;border-bottom-left-radius:unset}.menu>:where(li:last-child){border-top-left-radius:unset;border-top-right-radius:unset;border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.menu>:where(li:last-child)>:where(:not(ul)){border-top-left-radius:unset;border-top-right-radius:unset;border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.menu>:where(li)>:where(ul) :where(li){width:100%;white-space:nowrap}.menu>:where(li)>:where(ul) :where(li) :where(ul){padding-left:1rem}.menu>:where(li)>:where(ul) :where(li)>:where(:not(ul)){width:100%;white-space:nowrap}.menu>:where(li)>:where(ul)>:where(li:first-child){border-top-left-radius:inherit;border-top-right-radius:inherit;border-bottom-right-radius:unset;border-bottom-left-radius:unset}.menu>:where(li)>:where(ul)>:where(li:first-child)>:where(:not(ul)){border-top-left-radius:inherit;border-top-right-radius:inherit;border-bottom-right-radius:unset;border-bottom-left-radius:unset}.menu>:where(li)>:where(ul)>:where(li:last-child){border-top-left-radius:unset;border-top-right-radius:unset;border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.menu>:where(li)>:where(ul)>:where(li:last-child)>:where(:not(ul)){border-top-left-radius:unset;border-top-right-radius:unset;border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.mockup-phone .display{overflow:hidden;border-radius:40px;margin-top:-25px}.modal-open .modal-box,.modal-toggle:checked+.modal .modal-box,.modal:target .modal-box{--tw-translate-y: 0px;--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes progress-loading{50%{left:107%}}.radio:focus-visible{outline:2px solid hsl(var(--bc));outline-offset:2px}.radio:checked,.radio[aria-checked=true]{--tw-bg-opacity: 1;background-color:hsl(var(--bc) / var(--tw-bg-opacity));animation:radiomark var(--animation-input, .2s) ease-in-out;box-shadow:0 0 0 4px hsl(var(--b1)) inset,0 0 0 4px hsl(var(--b1)) inset}.radio-success{--chkbg: var(--su);--tw-border-opacity: 1;border-color:hsl(var(--su) / var(--tw-border-opacity))}.radio-success:hover{--tw-border-opacity: 1;border-color:hsl(var(--su) / var(--tw-border-opacity))}.radio-success:focus-visible{outline:2px solid hsl(var(--su))}.radio-success:checked,.radio-success[aria-checked=true]{--tw-border-opacity: 1;border-color:hsl(var(--su) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--su) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--suc, var(--nc)) / var(--tw-text-opacity))}.radio:disabled{cursor:not-allowed;opacity:.2}@keyframes radiomark{0%{box-shadow:0 0 0 12px hsl(var(--b1)) inset,0 0 0 12px hsl(var(--b1)) inset}50%{box-shadow:0 0 0 3px hsl(var(--b1)) inset,0 0 0 3px hsl(var(--b1)) inset}to{box-shadow:0 0 0 4px hsl(var(--b1)) inset,0 0 0 4px hsl(var(--b1)) inset}}.range:focus-visible::-webkit-slider-thumb{--focus-shadow: 0 0 0 6px hsl(var(--b1)) inset, 0 0 0 2rem hsl(var(--range-shdw)) inset}.range:focus-visible::-moz-range-thumb{--focus-shadow: 0 0 0 6px hsl(var(--b1)) inset, 0 0 0 2rem hsl(var(--range-shdw)) inset}.range::-webkit-slider-runnable-track{height:.5rem;width:100%;border-radius:var(--rounded-box, 1rem);background-color:hsla(var(--bc) / .1)}.range::-moz-range-track{height:.5rem;width:100%;border-radius:var(--rounded-box, 1rem);background-color:hsla(var(--bc) / .1)}.range::-webkit-slider-thumb{background-color:hsl(var(--b1));position:relative;height:1.5rem;width:1.5rem;border-style:none;border-radius:var(--rounded-box, 1rem);appearance:none;-webkit-appearance:none;top:50%;color:hsl(var(--range-shdw));transform:translateY(-50%);--filler-size: 100rem;--filler-offset: .6rem;box-shadow:0 0 0 3px hsl(var(--range-shdw)) inset,var(--focus-shadow, 0 0),calc(var(--filler-size) * -1 - var(--filler-offset)) 0 0 var(--filler-size)}.range::-moz-range-thumb{background-color:hsl(var(--b1));position:relative;height:1.5rem;width:1.5rem;border-style:none;border-radius:var(--rounded-box, 1rem);top:50%;color:hsl(var(--range-shdw));--filler-size: 100rem;--filler-offset: .5rem;box-shadow:0 0 0 3px hsl(var(--range-shdw)) inset,var(--focus-shadow, 0 0),calc(var(--filler-size) * -1 - var(--filler-offset)) 0 0 var(--filler-size)}.range-primary{--range-shdw: var(--p)}@keyframes rating-pop{0%{transform:translateY(-.125em)}40%{transform:translateY(-.125em)}to{transform:translateY(0)}}.select:focus{outline:2px solid hsla(var(--bc) / .2);outline-offset:2px}.select-disabled,.select[disabled]{cursor:not-allowed;--tw-border-opacity: 1;border-color:hsl(var(--b2, var(--b1)) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--b2, var(--b1)) / var(--tw-bg-opacity));--tw-text-opacity: .2}.select-disabled::-moz-placeholder,.select[disabled]::-moz-placeholder{color:hsl(var(--bc) / var(--tw-placeholder-opacity));--tw-placeholder-opacity: .2}.select-disabled::placeholder,.select[disabled]::placeholder{color:hsl(var(--bc) / var(--tw-placeholder-opacity));--tw-placeholder-opacity: .2}.select-multiple,.select[multiple],.select[size].select:not([size="1"]){background-image:none;padding-right:1rem}.steps .step:before{top:0px;grid-column-start:1;grid-row-start:1;height:.5rem;width:100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));--tw-bg-opacity: 1;background-color:hsl(var(--b3, var(--b2)) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--bc) / var(--tw-text-opacity));content:"";margin-left:-100%}.steps .step:after{content:counter(step);counter-increment:step;z-index:1;position:relative;grid-column-start:1;grid-row-start:1;display:grid;height:2rem;width:2rem;place-items:center;place-self:center;border-radius:9999px;--tw-bg-opacity: 1;background-color:hsl(var(--b3, var(--b2)) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--bc) / var(--tw-text-opacity))}.steps .step:first-child:before{content:none}.steps .step[data-content]:after{content:attr(data-content)}.steps .step-neutral+.step-neutral:before,.steps .step-neutral:after{--tw-bg-opacity: 1;background-color:hsl(var(--n) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--nc) / var(--tw-text-opacity))}.steps .step-primary+.step-primary:before,.steps .step-primary:after{--tw-bg-opacity: 1;background-color:hsl(var(--p) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--pc) / var(--tw-text-opacity))}.steps .step-secondary+.step-secondary:before,.steps .step-secondary:after{--tw-bg-opacity: 1;background-color:hsl(var(--s) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--sc) / var(--tw-text-opacity))}.steps .step-accent+.step-accent:before,.steps .step-accent:after{--tw-bg-opacity: 1;background-color:hsl(var(--a) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--ac) / var(--tw-text-opacity))}.steps .step-info+.step-info:before{--tw-bg-opacity: 1;background-color:hsl(var(--in) / var(--tw-bg-opacity))}.steps .step-info:after{--tw-bg-opacity: 1;background-color:hsl(var(--in) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--inc, var(--nc)) / var(--tw-text-opacity))}.steps .step-success+.step-success:before{--tw-bg-opacity: 1;background-color:hsl(var(--su) / var(--tw-bg-opacity))}.steps .step-success:after{--tw-bg-opacity: 1;background-color:hsl(var(--su) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--suc, var(--nc)) / var(--tw-text-opacity))}.steps .step-warning+.step-warning:before{--tw-bg-opacity: 1;background-color:hsl(var(--wa) / var(--tw-bg-opacity))}.steps .step-warning:after{--tw-bg-opacity: 1;background-color:hsl(var(--wa) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--wac, var(--nc)) / var(--tw-text-opacity))}.steps .step-error+.step-error:before{--tw-bg-opacity: 1;background-color:hsl(var(--er) / var(--tw-bg-opacity))}.steps .step-error:after{--tw-bg-opacity: 1;background-color:hsl(var(--er) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--erc, var(--nc)) / var(--tw-text-opacity))}.swap-rotate .swap-on,.swap-rotate .swap-indeterminate,.swap-rotate input:indeterminate~.swap-on{--tw-rotate: 45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.swap-rotate input:checked~.swap-off,.swap-rotate.swap-active .swap-off,.swap-rotate input:indeterminate~.swap-off{--tw-rotate: -45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.swap-rotate input:checked~.swap-on,.swap-rotate.swap-active .swap-on,.swap-rotate input:indeterminate~.swap-indeterminate{--tw-rotate: 0deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.swap-flip .swap-on,.swap-flip .swap-indeterminate,.swap-flip input:indeterminate~.swap-on{transform:rotateY(180deg);-webkit-backface-visibility:hidden;backface-visibility:hidden;opacity:1}.swap-flip input:checked~.swap-off,.swap-flip.swap-active .swap-off,.swap-flip input:indeterminate~.swap-off{transform:rotateY(-180deg);-webkit-backface-visibility:hidden;backface-visibility:hidden;opacity:1}.swap-flip input:checked~.swap-on,.swap-flip.swap-active .swap-on,.swap-flip input:indeterminate~.swap-indeterminate{transform:rotateY(0)}.tab:hover{--tw-text-opacity: 1}.tab.tab-active{border-color:hsl(var(--bc) / var(--tw-border-opacity));--tw-border-opacity: 1;--tw-text-opacity: 1}.tab:focus{outline:2px solid transparent;outline-offset:2px}.tab:focus-visible{outline:2px solid currentColor;outline-offset:-3px}.tab:focus-visible.tab-lifted{border-bottom-right-radius:var(--tab-radius, .5rem);border-bottom-left-radius:var(--tab-radius, .5rem)}.tab-lifted.tab-active{background-color:var(--tab-bg);border-width:var(--tab-border, 1px) var(--tab-border, 1px) 0 var(--tab-border, 1px);border-left-color:var(--tab-border-color);border-right-color:var(--tab-border-color);border-top-color:var(--tab-border-color);padding-left:calc(var(--tab-padding, 1rem) - var(--tab-border, 1px));padding-right:calc(var(--tab-padding, 1rem) - var(--tab-border, 1px));padding-bottom:var(--tab-border, 1px);padding-top:0}.tab-lifted.tab-active:before,.tab-lifted.tab-active:after{z-index:1;content:"";display:block;position:absolute;width:var(--tab-radius, .5rem);height:var(--tab-radius, .5rem);bottom:0;--tab-grad: calc(68% - var(--tab-border, 1px));--tab-corner-bg: radial-gradient(circle at var(--circle-pos), transparent var(--tab-grad), var(--tab-border-color) calc(var(--tab-grad) + .3px), var(--tab-border-color) calc(var(--tab-grad) + var(--tab-border, 1px)), var(--tab-bg) calc(var(--tab-grad) + var(--tab-border, 1px) + .3px))}.tab-lifted.tab-active:before{left:calc(var(--tab-radius, .5rem) * -1);--circle-pos: top left;background-image:var(--tab-corner-bg)}[dir=rtl] .tab-lifted.tab-active:before{--circle-pos: top right}.tab-lifted.tab-active:after{right:calc(var(--tab-radius, .5rem) * -1);--circle-pos: top right;background-image:var(--tab-corner-bg)}[dir=rtl] .tab-lifted.tab-active:after{--circle-pos: top left}.tab-lifted.tab-active:first-child:before{background:none}.tab-lifted.tab-active:last-child:after{background:none}.tab-lifted.tab-active+.tab-lifted.tab-active:before{background:none}.tabs-boxed{--tw-bg-opacity: 1;background-color:hsl(var(--b2, var(--b1)) / var(--tw-bg-opacity));padding:.25rem;border-radius:var(--rounded-btn, .5rem)}.tabs-boxed .tab-active{--tw-bg-opacity: 1;background-color:hsl(var(--p) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--pc) / var(--tw-text-opacity));border-radius:var(--rounded-btn, .5rem)}.tabs-boxed .tab-active:hover{--tw-text-opacity: 1;color:hsl(var(--pc) / var(--tw-text-opacity))}.table tr.active th,.table tr.active td,.table tr.active:nth-child(even) th,.table tr.active:nth-child(even) td{--tw-bg-opacity: 1;background-color:hsl(var(--b3, var(--b2)) / var(--tw-bg-opacity))}.toast>*{animation:toast-pop .25s ease-out}@keyframes toast-pop{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}[dir=rtl] .toggle{--handleoffsetcalculator: calc(var(--handleoffset) * 1)}.toggle:focus-visible{outline:2px solid hsl(var(--bc));outline-offset:2px}.toggle:checked,.toggle[checked=true],.toggle[aria-checked=true]{--handleoffsetcalculator: var(--handleoffset);--tw-border-opacity: 1;--tw-bg-opacity: 1}[dir=rtl] .toggle:checked,[dir=rtl] .toggle[checked=true],[dir=rtl] .toggle[aria-checked=true]{--handleoffsetcalculator: calc(var(--handleoffset) * -1)}.toggle:indeterminate{--tw-border-opacity: 1;--tw-bg-opacity: 1;box-shadow:calc(var(--handleoffset) / 2) 0 0 2px var(--tglbg) inset,calc(var(--handleoffset) / -2) 0 0 2px var(--tglbg) inset,0 0 0 2px var(--tglbg) inset}[dir=rtl] .toggle:indeterminate{box-shadow:calc(var(--handleoffset) / 2) 0 0 2px var(--tglbg) inset,calc(var(--handleoffset) / -2) 0 0 2px var(--tglbg) inset,0 0 0 2px var(--tglbg) inset}.toggle-success:focus-visible{outline:2px solid hsl(var(--su))}.toggle-success:checked,.toggle-success[checked=true],.toggle-success[aria-checked=true]{border-color:hsl(var(--su) / var(--tw-border-opacity));--tw-border-opacity: .1;--tw-bg-opacity: 1;background-color:hsl(var(--su) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--suc, var(--nc)) / var(--tw-text-opacity))}.toggle:disabled{cursor:not-allowed;--tw-border-opacity: 1;border-color:hsl(var(--bc) / var(--tw-border-opacity));background-color:transparent;opacity:.3;--togglehandleborder: 0 0 0 3px hsl(var(--bc)) inset, var(--handleoffsetcalculator) 0 0 3px hsl(var(--bc)) inset}.rounded-box{border-radius:var(--rounded-box, 1rem)}.glass,.glass:hover,.glass.btn-active{border:none;-webkit-backdrop-filter:blur(var(--glass-blur, 40px));backdrop-filter:blur(var(--glass-blur, 40px));background-color:transparent;background-image:linear-gradient(135deg,rgb(255 255 255 / var(--glass-opacity, 30%)) 0%,rgb(0 0 0 / 0%) 100%),linear-gradient(var(--glass-reflex-degree, 100deg),rgb(255 255 255 / var(--glass-reflex-opacity, 10%)) 25%,rgb(0 0 0 / 0%) 25%);box-shadow:0 0 0 1px rgb(255 255 255 / var(--glass-border-opacity, 10%)) inset,0 0 0 2px #0000000d;text-shadow:0 1px rgb(0 0 0 / var(--glass-text-shadow-opacity, 5%))}.artboard.phone{width:320px}.artboard.phone-1.horizontal,.artboard.phone-1.artboard-horizontal{width:568px;height:320px}.artboard.phone-2.horizontal,.artboard.phone-2.artboard-horizontal{width:667px;height:375px}.artboard.phone-3.horizontal,.artboard.phone-3.artboard-horizontal{width:736px;height:414px}.artboard.phone-4.horizontal,.artboard.phone-4.artboard-horizontal{width:812px;height:375px}.artboard.phone-5.horizontal,.artboard.phone-5.artboard-horizontal{width:896px;height:414px}.artboard.phone-6.horizontal,.artboard.phone-6.artboard-horizontal{width:1024px;height:320px}.btm-nav-xs>*:where(.active){border-top-width:1px}.btm-nav-sm>*:where(.active){border-top-width:2px}.btm-nav-md>*:where(.active){border-top-width:2px}.btm-nav-lg>*:where(.active){border-top-width:4px}.btn-xs{height:1.5rem;padding-left:.5rem;padding-right:.5rem;min-height:1.5rem;font-size:.75rem}.btn-sm{height:2rem;padding-left:.75rem;padding-right:.75rem;min-height:2rem;font-size:.875rem}.btn-square:where(.btn-xs){height:1.5rem;width:1.5rem;padding:0}.btn-square:where(.btn-sm){height:2rem;width:2rem;padding:0}.btn-circle:where(.btn-xs){height:1.5rem;width:1.5rem;border-radius:9999px;padding:0}.btn-circle:where(.btn-sm){height:2rem;width:2rem;border-radius:9999px;padding:0}.btn-circle:where(.btn-md){height:3rem;width:3rem;border-radius:9999px;padding:0}.btn-circle:where(.btn-lg){height:4rem;width:4rem;border-radius:9999px;padding:0}.checkbox-sm{height:1.25rem;width:1.25rem}.divider-horizontal{flex-direction:column}.divider-horizontal:before{height:100%;width:.125rem}.divider-horizontal:after{height:100%;width:.125rem}.menu-vertical{flex-direction:column}.menu-vertical :where(li){flex-direction:column}.menu-vertical>:where(li)>:where(ul){top:initial;left:100%}.radio-sm{height:1.25rem;width:1.25rem}.range-xs{height:1rem}.range-xs::-webkit-slider-runnable-track{height:.25rem}.range-xs::-moz-range-track{height:.25rem}.range-xs::-webkit-slider-thumb{height:1rem;width:1rem;--filler-offset: .4rem}.range-xs::-moz-range-thumb{height:1rem;width:1rem;--filler-offset: .4rem}.steps-horizontal .step{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));place-items:center;text-align:center}.steps-vertical .step{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(1,minmax(0,1fr))}.tab-sm{height:1.5rem;font-size:.875rem;line-height:.75rem;--tab-padding: .75rem}.tab-xs{height:1.25rem;font-size:.75rem;line-height:.75rem;--tab-padding: .5rem}:where(.toast){right:0px;left:auto;top:auto;bottom:0px;--tw-translate-x: 0px;--tw-translate-y: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.toast:where(.toast-start){right:auto;left:0px;--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.toast:where(.toast-center){right:50%;left:50%;--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.toast:where(.toast-end){right:0px;left:auto;--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.toast:where(.toast-bottom){top:auto;bottom:0px;--tw-translate-y: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.toast:where(.toast-middle){top:50%;bottom:auto;--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.toast:where(.toast-top){top:0px;bottom:auto;--tw-translate-y: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.btn-group .btn:not(:first-child):not(:last-child),.btn-group.btn-group-horizontal .btn:not(:first-child):not(:last-child){border-radius:0}.btn-group .btn:first-child:not(:last-child),.btn-group.btn-group-horizontal .btn:first-child:not(:last-child){margin-left:-1px;margin-top:-0px;border-top-left-radius:var(--rounded-btn, .5rem);border-top-right-radius:0;border-bottom-left-radius:var(--rounded-btn, .5rem);border-bottom-right-radius:0}.btn-group .btn:last-child:not(:first-child),.btn-group.btn-group-horizontal .btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:var(--rounded-btn, .5rem);border-bottom-left-radius:0;border-bottom-right-radius:var(--rounded-btn, .5rem)}.btn-group.btn-group-vertical .btn:first-child:not(:last-child){margin-left:-0px;margin-top:-1px;border-top-left-radius:var(--rounded-btn, .5rem);border-top-right-radius:var(--rounded-btn, .5rem);border-bottom-left-radius:0;border-bottom-right-radius:0}.btn-group.btn-group-vertical .btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:var(--rounded-btn, .5rem);border-bottom-right-radius:var(--rounded-btn, .5rem)}.divider-horizontal{margin-top:0;margin-bottom:0;margin-left:1rem;margin-right:1rem;height:auto;width:1rem}.menu-vertical :where(li.bordered > *){border-left-width:4px;border-bottom-width:0px}.menu-vertical>:where(li:first-child){border-top-left-radius:inherit;border-top-right-radius:inherit;border-bottom-right-radius:unset;border-bottom-left-radius:unset}.menu-vertical>:where(li:first-child)>:where(*:not(ul)){border-top-left-radius:inherit;border-top-right-radius:inherit;border-bottom-right-radius:unset;border-bottom-left-radius:unset}.menu-vertical>:where(li:last-child){border-top-left-radius:unset;border-top-right-radius:unset;border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.menu-vertical>:where(li:last-child)>:where(*:not(ul)){border-top-left-radius:unset;border-top-right-radius:unset;border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.modal-bottom :where(.modal-box){width:100%;max-width:none;--tw-translate-y: 2.5rem;--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));border-bottom-right-radius:0;border-bottom-left-radius:0}.modal-middle :where(.modal-box){width:91.666667%;max-width:32rem;--tw-translate-y: 0px;--tw-scale-x: .9;--tw-scale-y: .9;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));border-bottom-left-radius:var(--rounded-box, 1rem);border-bottom-right-radius:var(--rounded-box, 1rem)}.steps-horizontal .step{grid-template-rows:40px 1fr;grid-template-columns:auto;min-width:4rem}.steps-horizontal .step:before{height:.5rem;width:100%;--tw-translate-y: 0px;--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));content:"";margin-left:-100%}.steps-vertical .step{gap:.5rem;grid-template-columns:40px 1fr;grid-template-rows:auto;min-height:4rem;justify-items:start}.steps-vertical .step:before{height:100%;width:.5rem;--tw-translate-y: -50%;--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));margin-left:50%}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.bottom-5{bottom:1.25rem}.left-2\/4{left:50%}.left-5{left:1.25rem}.top-1{top:.25rem}.left-1{left:.25rem}.top-0{top:0px}.left-0{left:0px}.right-0{right:0px}.bottom-0{bottom:0px}.top-1\/2{top:50%}.left-1\/2{left:50%}.top-7{top:1.75rem}.left-7{left:1.75rem}.-top-3{top:-.75rem}.-left-3{left:-.75rem}.top-\[-6px\]{top:-6px}.right-\[-6px\]{right:-6px}.z-10{z-index:10}.z-\[1\]{z-index:1}.z-\[2\]{z-index:2}.my-1\.5{margin-top:.375rem;margin-bottom:.375rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-3{margin-left:.75rem;margin-right:.75rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.mt-10{margin-top:2.5rem}.mb-4{margin-bottom:1rem}.ml-1{margin-left:.25rem}.mr-3{margin-right:.75rem}.ml-5{margin-left:1.25rem}.ml-2{margin-left:.5rem}.mr-\[6px\]{margin-right:6px}.mt-3{margin-top:.75rem}.mr-\[12px\]{margin-right:12px}.mt-5{margin-top:1.25rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-1{margin-top:.25rem}.mr-2{margin-right:.5rem}.ml-3{margin-left:.75rem}.box-border{box-sizing:border-box}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.hidden{display:none}.h-7{height:1.75rem}.h-8{height:2rem}.h-6{height:1.5rem}.h-screen{height:100vh}.h-full{height:100%}.h-fit{height:-moz-fit-content;height:fit-content}.h-9{height:2.25rem}.h-\[50vh\]{height:50vh}.h-max{height:-moz-max-content;height:max-content}.h-3{height:.75rem}.h-4\/6{height:66.666667%}.h-4{height:1rem}.max-h-\[80vh\]{max-height:80vh}.max-h-\[80\%\]{max-height:80%}.max-h-\[100\%\]{max-height:100%}.max-h-\[60vh\]{max-height:60vh}.max-h-\[70vh\]{max-height:70vh}.max-h-\[400px\]{max-height:400px}.max-h-\[50vh\]{max-height:50vh}.max-h-full{max-height:100%}.min-h-0{min-height:0px}.w-7{width:1.75rem}.w-64{width:16rem}.w-2\/5{width:40%}.w-8{width:2rem}.w-6{width:1.5rem}.w-screen{width:100vw}.w-full{width:100%}.w-\[80vw\]{width:80vw}.w-\[48\%\]{width:48%}.w-fit{width:-moz-fit-content;width:fit-content}.w-max{width:-moz-max-content;width:max-content}.w-9{width:2.25rem}.w-\[50vw\]{width:50vw}.w-\[49\%\]{width:49%}.w-3{width:.75rem}.w-40{width:10rem}.w-12{width:3rem}.w-56{width:14rem}.w-28{width:7rem}.w-72{width:18rem}.w-32{width:8rem}.w-5{width:1.25rem}.w-4\/6{width:66.666667%}.w-4{width:1rem}.max-w-\[85\%\]{max-width:85%}.max-w-\[800px\]{max-width:800px}.max-w-\[80\%\]{max-width:80%}.max-w-full{max-width:100%}.max-w-\[400px\]{max-width:400px}.max-w-\[500px\]{max-width:500px}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.origin-center{transform-origin:center}.-translate-x-2\/4{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-2\/4{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-0{--tw-rotate: 0deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-rotate-45{--tw-rotate: -45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-45{--tw-rotate: 45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-x-\[-1\]{--tw-scale-x: -1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-y-\[1\]{--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\!transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.cursor-pointer{cursor:pointer}.resize{resize:both}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-4{gap:1rem}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-y-auto{overflow-y:auto}.whitespace-nowrap{white-space:nowrap}.break-all{word-break:break-all}.rounded-full{border-radius:9999px}.rounded-2xl{border-radius:1rem}.rounded-lg{border-radius:.5rem}.rounded-xl{border-radius:.75rem}.rounded{border-radius:.25rem}.rounded-sm{border-radius:.125rem}.rounded-l-full{border-top-left-radius:9999px;border-bottom-left-radius:9999px}.rounded-r-full{border-top-right-radius:9999px;border-bottom-right-radius:9999px}.border{border-width:1px}.border-4{border-width:4px}.border-dashed{border-style:dashed}.border-primary{--tw-border-opacity: 1;border-color:hsl(var(--p) / var(--tw-border-opacity))}.border-base-content{--tw-border-opacity: 1;border-color:hsl(var(--bc) / var(--tw-border-opacity))}.bg-\[\#eef1ff\]{--tw-bg-opacity: 1;background-color:rgb(238 241 255 / var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bg-primary-content{--tw-bg-opacity: 1;background-color:hsl(var(--pc) / var(--tw-bg-opacity))}.bg-primary{--tw-bg-opacity: 1;background-color:hsl(var(--p) / var(--tw-bg-opacity))}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity))}.bg-\[\#333C4D\]{--tw-bg-opacity: 1;background-color:rgb(51 60 77 / var(--tw-bg-opacity))}.bg-slate-100{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity))}.bg-transparent{background-color:transparent}.bg-\[\#66CC8920\]{background-color:#66cc8920}.bg-base-100{--tw-bg-opacity: 1;background-color:hsl(var(--b1) / var(--tw-bg-opacity))}.bg-opacity-75{--tw-bg-opacity: .75}.bg-transparent{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAMUlEQVQ4T2NkYGAQYcAP3uCTZhw1gGGYhAGBZIA/nYDCgBDAm9BGDWAAJyRCgLaBCAAgXwixzAS0pgAAAABJRU5ErkJggg==)}.bg-\[length\:13px_13px\]{background-size:13px 13px}.fill-current{fill:currentColor}.object-contain{-o-object-fit:contain;object-fit:contain}.p-3{padding:.75rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-1{padding:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.py-7{padding-top:1.75rem;padding-bottom:1.75rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.px-4{padding-left:1rem;padding-right:1rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.px-0{padding-left:0;padding-right:0}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-3{padding-left:.75rem;padding-right:.75rem}.pl-3{padding-left:.75rem}.pr-2{padding-right:.5rem}.pl-2{padding-left:.5rem}.pr-3{padding-right:.75rem}.pb-2{padding-bottom:.5rem}.text-center{text-align:center}.font-fredokaOne{font-family:Fredoka One,PingFang SC,Microsoft Yahei,Helvetica,Arial,sans-serif}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-base{font-size:1rem;line-height:1.5rem}.text-2xl{font-size:1.5rem;line-height:2rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.italic{font-style:italic}.text-neutral-content{--tw-text-opacity: 1;color:hsl(var(--nc) / var(--tw-text-opacity))}.text-primary-content{--tw-text-opacity: 1;color:hsl(var(--pc) / var(--tw-text-opacity))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.text-base-content{--tw-text-opacity: 1;color:hsl(var(--bc) / var(--tw-text-opacity))}.text-primary-focus{--tw-text-opacity: 1;color:hsl(var(--pf, var(--p)) / var(--tw-text-opacity))}.text-\[\#eef1ff\]{--tw-text-opacity: 1;color:rgb(238 241 255 / var(--tw-text-opacity))}.underline{text-decoration-line:underline}.opacity-100{opacity:1}.opacity-0{opacity:0}.opacity-60{opacity:.6}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-500{transition-duration:.5s}.duration-300{transition-duration:.3s}.noScrollbar::-webkit-scrollbar{display:none}.noScrollbar{-ms-overflow-style:none;scrollbar-width:none}.colorInput{width:1.75rem;height:1.75rem;padding:0;cursor:pointer;border:none;border-radius:4px}.colorInput::-webkit-color-swatch-wrapper{width:1.75rem;height:1.75rem;padding:0;border:none;border-radius:4px}.colorInput::-webkit-color-swatch{width:1.75rem;height:1.75rem;padding:0;border:none;border-radius:4px}body{overflow:hidden}.btn:not(.btn-active):hover{color:#ffffff80;background-color:hsl(var(--n, var(--n)) / var(--tw-bg-opacity));border-color:hsl(var(--n, var(--n)) / var(--tw-border-opacity))}.tab:not(.tab-active):hover{color:#ffffff80}.radial-progress:hover:after{opacity:.5}.radial-progress:hover:before{opacity:.5}.first\:mt-0:first-child{margin-top:0}.hover\:bg-slate-200:hover{--tw-bg-opacity: 1;background-color:rgb(226 232 240 / var(--tw-bg-opacity))}.hover\:opacity-70:hover{opacity:.7}.hover\:opacity-80:hover{opacity:.8}.hover\:opacity-60:hover{opacity:.6}.group:hover .group-hover\:inline-block{display:inline-block}@media (min-width: 1024px){.lg\:menu-horizontal{display:inline-flex;width:-moz-max-content;width:max-content;flex-direction:row}.lg\:menu-horizontal :where(li){flex-direction:row}.lg\:menu-horizontal>:where(li)>:where(ul){top:100%;left:initial}.lg\:menu-horizontal :where(li.bordered > *){border-left-width:0px;border-bottom-width:4px}.lg\:menu-horizontal>:where(li:first-child){border-top-left-radius:inherit;border-top-right-radius:unset;border-bottom-right-radius:unset;border-bottom-left-radius:inherit}.lg\:menu-horizontal>:where(li:first-child)>:where(*:not(ul)){border-top-left-radius:inherit;border-top-right-radius:unset;border-bottom-right-radius:unset;border-bottom-left-radius:inherit}.lg\:menu-horizontal>:where(li:last-child){border-top-left-radius:unset;border-top-right-radius:inherit;border-bottom-right-radius:inherit;border-bottom-left-radius:unset}.lg\:menu-horizontal>:where(li:last-child)>:where(*:not(ul)){border-top-left-radius:unset;border-top-right-radius:inherit;border-bottom-right-radius:inherit;border-bottom-left-radius:unset}}@media (min-width: 1280px){.xl\:hidden{display:none}}@media (max-width: 750px){.xs\:right-5{right:1.25rem}.xs\:left-auto{left:auto}.xs\:max-h-\[70vh\]{max-height:70vh}.xs\:max-h-\[40vh\]{max-height:40vh}.xs\:max-w-\[80vw\]{max-width:80vw}.xs\:translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.xs\:flex-col{flex-direction:column}.xs\:overflow-y-auto{overflow-y:auto}.xs\:rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.xs\:rounded-t-full{border-top-left-radius:9999px;border-top-right-radius:9999px}.xs\:rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.xs\:rounded-b-full{border-bottom-right-radius:9999px;border-bottom-left-radius:9999px}.xs\:pl-2{padding-left:.5rem}.xs\:pr-2{padding-right:.5rem}.xs\:noScrollbar::-webkit-scrollbar{display:none}.xs\:noScrollbar{-ms-overflow-style:none;scrollbar-width:none}}@media (min-width: 750px){.min-xs\:hidden{display:none}.min-xs\:tooltip{position:relative;display:inline-block;--tooltip-offset: calc(100% + 1px + var(--tooltip-tail, 0px));text-align:center;--tooltip-tail: 3px;--tooltip-color: hsl(var(--n));--tooltip-text-color: hsl(var(--nc));--tooltip-tail-offset: calc(100% + 1px - var(--tooltip-tail))}.min-xs\:tooltip:before{position:absolute;pointer-events:none;z-index:1;content:attr(data-tip);max-width:20rem;border-radius:.25rem;padding:.25rem .5rem;font-size:.875rem;line-height:1.25rem;background-color:var(--tooltip-color);color:var(--tooltip-text-color);width:-moz-max-content;width:max-content;transform:translate(-50%);top:auto;left:50%;right:auto;bottom:var(--tooltip-offset)}.min-xs\:tooltip:before,.min-xs\:tooltip:after{opacity:0;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-delay:.1s;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.min-xs\:tooltip:after{position:absolute;content:"";border-style:solid;border-width:var(--tooltip-tail, 0);width:0;height:0;display:block}.min-xs\:tooltip.tooltip-open:before,.min-xs\:tooltip.tooltip-open:after,.min-xs\:tooltip:hover:before,.min-xs\:tooltip:hover:after{opacity:1;transition-delay:75ms}.min-xs\:tooltip:after{transform:translate(-50%);border-color:var(--tooltip-color) transparent transparent transparent;top:auto;left:50%;right:auto;bottom:var(--tooltip-tail-offset)}} diff --git a/assets/vendor.ec2365ba.js b/assets/vendor.ec2365ba.js new file mode 100644 index 0000000..e497bbd --- /dev/null +++ b/assets/vendor.ec2365ba.js @@ -0,0 +1,3183 @@ +var fE=Object.defineProperty;var hE=(t,e,n)=>e in t?fE(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var ut=(t,e,n)=>(hE(t,typeof e!="symbol"?e+"":e,n),n);var lg=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function tC(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function pE(t){var e=t.default;if(typeof e=="function"){var n=function(){return e.apply(this,arguments)};n.prototype=e.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(t).forEach(function(r){var l=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(n,r,l.get?l:{enumerable:!0,get:function(){return t[r]}})}),n}var rr={exports:{}},xr={};/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var n_=Symbol.for("react.element"),mE=Symbol.for("react.portal"),gE=Symbol.for("react.fragment"),_E=Symbol.for("react.strict_mode"),vE=Symbol.for("react.profiler"),yE=Symbol.for("react.provider"),wE=Symbol.for("react.context"),bE=Symbol.for("react.forward_ref"),xE=Symbol.for("react.suspense"),SE=Symbol.for("react.memo"),TE=Symbol.for("react.lazy"),eS=Symbol.iterator;function CE(t){return t===null||typeof t!="object"?null:(t=eS&&t[eS]||t["@@iterator"],typeof t=="function"?t:null)}var nC={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},rC=Object.assign,iC={};function _m(t,e,n){this.props=t,this.context=e,this.refs=iC,this.updater=n||nC}_m.prototype.isReactComponent={};_m.prototype.setState=function(t,e){if(typeof t!="object"&&typeof t!="function"&&t!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,t,e,"setState")};_m.prototype.forceUpdate=function(t){this.updater.enqueueForceUpdate(this,t,"forceUpdate")};function sC(){}sC.prototype=_m.prototype;function Rb(t,e,n){this.props=t,this.context=e,this.refs=iC,this.updater=n||nC}var zb=Rb.prototype=new sC;zb.constructor=Rb;rC(zb,_m.prototype);zb.isPureReactComponent=!0;var tS=Array.isArray,aC=Object.prototype.hasOwnProperty,Bb={current:null},oC={key:!0,ref:!0,__self:!0,__source:!0};function lC(t,e,n){var r,l={},m=null,S=null;if(e!=null)for(r in e.ref!==void 0&&(S=e.ref),e.key!==void 0&&(m=""+e.key),e)aC.call(e,r)&&!oC.hasOwnProperty(r)&&(l[r]=e[r]);var g=arguments.length-2;if(g===1)l.children=n;else if(1>>1,fe=ee[se];if(0>>1;sel(te,K))gel(Oe,te)?(ee[se]=Oe,ee[ge]=K,se=ge):(ee[se]=te,ee[ue]=K,se=ue);else if(gel(Oe,K))ee[se]=Oe,ee[ge]=K,se=ge;else break e}}return W}function l(ee,W){var K=ee.sortIndex-W.sortIndex;return K!==0?K:ee.id-W.id}if(typeof performance=="object"&&typeof performance.now=="function"){var m=performance;t.unstable_now=function(){return m.now()}}else{var S=Date,g=S.now();t.unstable_now=function(){return S.now()-g}}var s=[],c=[],p=1,a=null,u=3,o=!1,_=!1,y=!1,h=typeof setTimeout=="function"?setTimeout:null,v=typeof clearTimeout=="function"?clearTimeout:null,b=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function T(ee){for(var W=n(c);W!==null;){if(W.callback===null)r(c);else if(W.startTime<=ee)r(c),W.sortIndex=W.expirationTime,e(s,W);else break;W=n(c)}}function M(ee){if(y=!1,T(ee),!_)if(n(s)!==null)_=!0,Ze(O);else{var W=n(c);W!==null&&Ie(M,W.startTime-ee)}}function O(ee,W){_=!1,y&&(y=!1,v(R),R=-1),o=!0;var K=u;try{for(T(W),a=n(s);a!==null&&(!(a.expirationTime>W)||ee&&!pe());){var se=a.callback;if(typeof se=="function"){a.callback=null,u=a.priorityLevel;var fe=se(a.expirationTime<=W);W=t.unstable_now(),typeof fe=="function"?a.callback=fe:a===n(s)&&r(s),T(W)}else r(s);a=n(s)}if(a!==null)var de=!0;else{var ue=n(c);ue!==null&&Ie(M,ue.startTime-W),de=!1}return de}finally{a=null,u=K,o=!1}}var F=!1,D=null,R=-1,Q=5,ie=-1;function pe(){return!(t.unstable_now()-ieee||125se?(ee.sortIndex=K,e(c,ee),n(s)===null&&ee===n(c)&&(y?(v(R),R=-1):y=!0,Ie(M,K-se))):(ee.sortIndex=fe,e(s,ee),_||o||(_=!0,Ze(O))),ee},t.unstable_shouldYield=pe,t.unstable_wrapCallback=function(ee){var W=u;return function(){var K=u;u=W;try{return ee.apply(this,arguments)}finally{u=K}}}})(dC);(function(t){t.exports=dC})(cC);/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var fC=rr.exports,Wa=cC.exports;function Kt(t){for(var e="https://reactjs.org/docs/error-decoder.html?invariant="+t,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),I1=Object.prototype.hasOwnProperty,OE=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,iS={},sS={};function AE(t){return I1.call(sS,t)?!0:I1.call(iS,t)?!1:OE.test(t)?sS[t]=!0:(iS[t]=!0,!1)}function IE(t,e,n,r){if(n!==null&&n.type===0)return!1;switch(typeof e){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(t=t.toLowerCase().slice(0,5),t!=="data-"&&t!=="aria-");default:return!1}}function FE(t,e,n,r){if(e===null||typeof e>"u"||IE(t,e,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!e;case 4:return e===!1;case 5:return isNaN(e);case 6:return isNaN(e)||1>e}return!1}function qs(t,e,n,r,l,m,S){this.acceptsBooleans=e===2||e===3||e===4,this.attributeName=r,this.attributeNamespace=l,this.mustUseProperty=n,this.propertyName=t,this.type=e,this.sanitizeURL=m,this.removeEmptyString=S}var ds={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(t){ds[t]=new qs(t,0,!1,t,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(t){var e=t[0];ds[e]=new qs(e,1,!1,t[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(t){ds[t]=new qs(t,2,!1,t.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(t){ds[t]=new qs(t,2,!1,t,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(t){ds[t]=new qs(t,3,!1,t.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(t){ds[t]=new qs(t,3,!0,t,null,!1,!1)});["capture","download"].forEach(function(t){ds[t]=new qs(t,4,!1,t,null,!1,!1)});["cols","rows","size","span"].forEach(function(t){ds[t]=new qs(t,6,!1,t,null,!1,!1)});["rowSpan","start"].forEach(function(t){ds[t]=new qs(t,5,!1,t.toLowerCase(),null,!1,!1)});var jb=/[\-:]([a-z])/g;function Wb(t){return t[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(t){var e=t.replace(jb,Wb);ds[e]=new qs(e,1,!1,t,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(t){var e=t.replace(jb,Wb);ds[e]=new qs(e,1,!1,t,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(t){var e=t.replace(jb,Wb);ds[e]=new qs(e,1,!1,t,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(t){ds[t]=new qs(t,1,!1,t.toLowerCase(),null,!1,!1)});ds.xlinkHref=new qs("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(t){ds[t]=new qs(t,1,!1,t.toLowerCase(),null,!0,!0)});function Vb(t,e,n,r){var l=ds.hasOwnProperty(e)?ds[e]:null;(l!==null?l.type!==0:r||!(2g||l[S]!==m[g]){var s=` +`+l[S].replace(" at new "," at ");return t.displayName&&s.includes("")&&(s=s.replace("",t.displayName)),s}while(1<=S&&0<=g);break}}}finally{Gw=!1,Error.prepareStackTrace=n}return(t=t?t.displayName||t.name:"")?wg(t):""}function $E(t){switch(t.tag){case 5:return wg(t.type);case 16:return wg("Lazy");case 13:return wg("Suspense");case 19:return wg("SuspenseList");case 0:case 2:case 15:return t=Hw(t.type,!1),t;case 11:return t=Hw(t.type.render,!1),t;case 1:return t=Hw(t.type,!0),t;default:return""}}function L1(t){if(t==null)return null;if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t;switch(t){case Wp:return"Fragment";case jp:return"Portal";case F1:return"Profiler";case Ub:return"StrictMode";case $1:return"Suspense";case D1:return"SuspenseList"}if(typeof t=="object")switch(t.$$typeof){case mC:return(t.displayName||"Context")+".Consumer";case pC:return(t._context.displayName||"Context")+".Provider";case Gb:var e=t.render;return t=t.displayName,t||(t=e.displayName||e.name||"",t=t!==""?"ForwardRef("+t+")":"ForwardRef"),t;case Hb:return e=t.displayName||null,e!==null?e:L1(t.type)||"Memo";case Gd:e=t._payload,t=t._init;try{return L1(t(e))}catch{}}return null}function DE(t){var e=t.type;switch(t.tag){case 24:return"Cache";case 9:return(e.displayName||"Context")+".Consumer";case 10:return(e._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return t=e.render,t=t.displayName||t.name||"",e.displayName||(t!==""?"ForwardRef("+t+")":"ForwardRef");case 7:return"Fragment";case 5:return e;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return L1(e);case 8:return e===Ub?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e}return null}function lf(t){switch(typeof t){case"boolean":case"number":case"string":case"undefined":return t;case"object":return t;default:return""}}function _C(t){var e=t.type;return(t=t.nodeName)&&t.toLowerCase()==="input"&&(e==="checkbox"||e==="radio")}function LE(t){var e=_C(t)?"checked":"value",n=Object.getOwnPropertyDescriptor(t.constructor.prototype,e),r=""+t[e];if(!t.hasOwnProperty(e)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var l=n.get,m=n.set;return Object.defineProperty(t,e,{configurable:!0,get:function(){return l.call(this)},set:function(S){r=""+S,m.call(this,S)}}),Object.defineProperty(t,e,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(S){r=""+S},stopTracking:function(){t._valueTracker=null,delete t[e]}}}}function Vv(t){t._valueTracker||(t._valueTracker=LE(t))}function vC(t){if(!t)return!1;var e=t._valueTracker;if(!e)return!0;var n=e.getValue(),r="";return t&&(r=_C(t)?t.checked?"true":"false":t.value),t=r,t!==n?(e.setValue(t),!0):!1}function T0(t){if(t=t||(typeof document<"u"?document:void 0),typeof t>"u")return null;try{return t.activeElement||t.body}catch{return t.body}}function R1(t,e){var n=e.checked;return pi({},e,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n!=null?n:t._wrapperState.initialChecked})}function oS(t,e){var n=e.defaultValue==null?"":e.defaultValue,r=e.checked!=null?e.checked:e.defaultChecked;n=lf(e.value!=null?e.value:n),t._wrapperState={initialChecked:r,initialValue:n,controlled:e.type==="checkbox"||e.type==="radio"?e.checked!=null:e.value!=null}}function yC(t,e){e=e.checked,e!=null&&Vb(t,"checked",e,!1)}function z1(t,e){yC(t,e);var n=lf(e.value),r=e.type;if(n!=null)r==="number"?(n===0&&t.value===""||t.value!=n)&&(t.value=""+n):t.value!==""+n&&(t.value=""+n);else if(r==="submit"||r==="reset"){t.removeAttribute("value");return}e.hasOwnProperty("value")?B1(t,e.type,n):e.hasOwnProperty("defaultValue")&&B1(t,e.type,lf(e.defaultValue)),e.checked==null&&e.defaultChecked!=null&&(t.defaultChecked=!!e.defaultChecked)}function lS(t,e,n){if(e.hasOwnProperty("value")||e.hasOwnProperty("defaultValue")){var r=e.type;if(!(r!=="submit"&&r!=="reset"||e.value!==void 0&&e.value!==null))return;e=""+t._wrapperState.initialValue,n||e===t.value||(t.value=e),t.defaultValue=e}n=t.name,n!==""&&(t.name=""),t.defaultChecked=!!t._wrapperState.initialChecked,n!==""&&(t.name=n)}function B1(t,e,n){(e!=="number"||T0(t.ownerDocument)!==t)&&(n==null?t.defaultValue=""+t._wrapperState.initialValue:t.defaultValue!==""+n&&(t.defaultValue=""+n))}var bg=Array.isArray;function Zp(t,e,n,r){if(t=t.options,e){e={};for(var l=0;l"+e.valueOf().toString()+"",e=Uv.firstChild;t.firstChild;)t.removeChild(t.firstChild);for(;e.firstChild;)t.appendChild(e.firstChild)}});function Lg(t,e){if(e){var n=t.firstChild;if(n&&n===t.lastChild&&n.nodeType===3){n.nodeValue=e;return}}t.textContent=e}var Cg={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},RE=["Webkit","ms","Moz","O"];Object.keys(Cg).forEach(function(t){RE.forEach(function(e){e=e+t.charAt(0).toUpperCase()+t.substring(1),Cg[e]=Cg[t]})});function SC(t,e,n){return e==null||typeof e=="boolean"||e===""?"":n||typeof e!="number"||e===0||Cg.hasOwnProperty(t)&&Cg[t]?(""+e).trim():e+"px"}function TC(t,e){t=t.style;for(var n in e)if(e.hasOwnProperty(n)){var r=n.indexOf("--")===0,l=SC(n,e[n],r);n==="float"&&(n="cssFloat"),r?t.setProperty(n,l):t[n]=l}}var zE=pi({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function W1(t,e){if(e){if(zE[t]&&(e.children!=null||e.dangerouslySetInnerHTML!=null))throw Error(Kt(137,t));if(e.dangerouslySetInnerHTML!=null){if(e.children!=null)throw Error(Kt(60));if(typeof e.dangerouslySetInnerHTML!="object"||!("__html"in e.dangerouslySetInnerHTML))throw Error(Kt(61))}if(e.style!=null&&typeof e.style!="object")throw Error(Kt(62))}}function V1(t,e){if(t.indexOf("-")===-1)return typeof e.is=="string";switch(t){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var U1=null;function Xb(t){return t=t.target||t.srcElement||window,t.correspondingUseElement&&(t=t.correspondingUseElement),t.nodeType===3?t.parentNode:t}var G1=null,em=null,tm=null;function dS(t){if(t=s_(t)){if(typeof G1!="function")throw Error(Kt(280));var e=t.stateNode;e&&(e=uy(e),G1(t.stateNode,t.type,e))}}function CC(t){em?tm?tm.push(t):tm=[t]:em=t}function MC(){if(em){var t=em,e=tm;if(tm=em=null,dS(t),e)for(t=0;t>>=0,t===0?32:31-(YE(t)/KE|0)|0}var Gv=64,Hv=4194304;function xg(t){switch(t&-t){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return t&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return t}}function P0(t,e){var n=t.pendingLanes;if(n===0)return 0;var r=0,l=t.suspendedLanes,m=t.pingedLanes,S=n&268435455;if(S!==0){var g=S&~l;g!==0?r=xg(g):(m&=S,m!==0&&(r=xg(m)))}else S=n&~l,S!==0?r=xg(S):m!==0&&(r=xg(m));if(r===0)return 0;if(e!==0&&e!==r&&(e&l)===0&&(l=r&-r,m=e&-e,l>=m||l===16&&(m&4194240)!==0))return e;if((r&4)!==0&&(r|=n&16),e=t.entangledLanes,e!==0)for(t=t.entanglements,e&=r;0n;n++)e.push(t);return e}function r_(t,e,n){t.pendingLanes|=e,e!==536870912&&(t.suspendedLanes=0,t.pingedLanes=0),t=t.eventTimes,e=31-il(e),t[e]=n}function eP(t,e){var n=t.pendingLanes&~e;t.pendingLanes=e,t.suspendedLanes=0,t.pingedLanes=0,t.expiredLanes&=e,t.mutableReadLanes&=e,t.entangledLanes&=e,e=t.entanglements;var r=t.eventTimes;for(t=t.expirationTimes;0=Eg),wS=String.fromCharCode(32),bS=!1;function HC(t,e){switch(t){case"keyup":return PP.indexOf(e.keyCode)!==-1;case"keydown":return e.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function XC(t){return t=t.detail,typeof t=="object"&&"data"in t?t.data:null}var Vp=!1;function OP(t,e){switch(t){case"compositionend":return XC(e);case"keypress":return e.which!==32?null:(bS=!0,wS);case"textInput":return t=e.data,t===wS&&bS?null:t;default:return null}}function AP(t,e){if(Vp)return t==="compositionend"||!tx&&HC(t,e)?(t=UC(),h0=Jb=Yd=null,Vp=!1,t):null;switch(t){case"paste":return null;case"keypress":if(!(e.ctrlKey||e.altKey||e.metaKey)||e.ctrlKey&&e.altKey){if(e.char&&1=e)return{node:n,offset:e-t};t=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=CS(n)}}function QC(t,e){return t&&e?t===e?!0:t&&t.nodeType===3?!1:e&&e.nodeType===3?QC(t,e.parentNode):"contains"in t?t.contains(e):t.compareDocumentPosition?!!(t.compareDocumentPosition(e)&16):!1:!1}function JC(){for(var t=window,e=T0();e instanceof t.HTMLIFrameElement;){try{var n=typeof e.contentWindow.location.href=="string"}catch{n=!1}if(n)t=e.contentWindow;else break;e=T0(t.document)}return e}function nx(t){var e=t&&t.nodeName&&t.nodeName.toLowerCase();return e&&(e==="input"&&(t.type==="text"||t.type==="search"||t.type==="tel"||t.type==="url"||t.type==="password")||e==="textarea"||t.contentEditable==="true")}function NP(t){var e=JC(),n=t.focusedElem,r=t.selectionRange;if(e!==n&&n&&n.ownerDocument&&QC(n.ownerDocument.documentElement,n)){if(r!==null&&nx(n)){if(e=r.start,t=r.end,t===void 0&&(t=e),"selectionStart"in n)n.selectionStart=e,n.selectionEnd=Math.min(t,n.value.length);else if(t=(e=n.ownerDocument||document)&&e.defaultView||window,t.getSelection){t=t.getSelection();var l=n.textContent.length,m=Math.min(r.start,l);r=r.end===void 0?m:Math.min(r.end,l),!t.extend&&m>r&&(l=r,r=m,m=l),l=MS(n,m);var S=MS(n,r);l&&S&&(t.rangeCount!==1||t.anchorNode!==l.node||t.anchorOffset!==l.offset||t.focusNode!==S.node||t.focusOffset!==S.offset)&&(e=e.createRange(),e.setStart(l.node,l.offset),t.removeAllRanges(),m>r?(t.addRange(e),t.extend(S.node,S.offset)):(e.setEnd(S.node,S.offset),t.addRange(e)))}}for(e=[],t=n;t=t.parentNode;)t.nodeType===1&&e.push({element:t,left:t.scrollLeft,top:t.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,Up=null,Q1=null,kg=null,J1=!1;function ES(t,e,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;J1||Up==null||Up!==T0(r)||(r=Up,"selectionStart"in r&&nx(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),kg&&Wg(kg,r)||(kg=r,r=A0(Q1,"onSelect"),0Xp||(t.current=ib[Xp],ib[Xp]=null,Xp--)}function Hr(t,e){Xp++,ib[Xp]=t.current,t.current=e}var uf={},Ps=ff(uf),oa=ff(!1),Hh=uf;function om(t,e){var n=t.type.contextTypes;if(!n)return uf;var r=t.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===e)return r.__reactInternalMemoizedMaskedChildContext;var l={},m;for(m in n)l[m]=e[m];return r&&(t=t.stateNode,t.__reactInternalMemoizedUnmaskedChildContext=e,t.__reactInternalMemoizedMaskedChildContext=l),l}function la(t){return t=t.childContextTypes,t!=null}function F0(){ei(oa),ei(Ps)}function $S(t,e,n){if(Ps.current!==uf)throw Error(Kt(168));Hr(Ps,e),Hr(oa,n)}function oM(t,e,n){var r=t.stateNode;if(e=e.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var l in r)if(!(l in e))throw Error(Kt(108,DE(t)||"Unknown",l));return pi({},n,r)}function $0(t){return t=(t=t.stateNode)&&t.__reactInternalMemoizedMergedChildContext||uf,Hh=Ps.current,Hr(Ps,t),Hr(oa,oa.current),!0}function DS(t,e,n){var r=t.stateNode;if(!r)throw Error(Kt(169));n?(t=oM(t,e,Hh),r.__reactInternalMemoizedMergedChildContext=t,ei(oa),ei(Ps),Hr(Ps,t)):ei(oa),Hr(oa,n)}var ic=null,cy=!1,a1=!1;function lM(t){ic===null?ic=[t]:ic.push(t)}function JP(t){cy=!0,lM(t)}function hf(){if(!a1&&ic!==null){a1=!0;var t=0,e=Rr;try{var n=ic;for(Rr=1;t>=S,l-=S,sc=1<<32-il(e)+l|n<R?(Q=D,D=null):Q=D.sibling;var ie=u(v,D,T[R],M);if(ie===null){D===null&&(D=Q);break}t&&D&&ie.alternate===null&&e(v,D),b=m(ie,b,R),F===null?O=ie:F.sibling=ie,F=ie,D=Q}if(R===T.length)return n(v,D),si&&Lh(v,R),O;if(D===null){for(;RR?(Q=D,D=null):Q=D.sibling;var pe=u(v,D,ie.value,M);if(pe===null){D===null&&(D=Q);break}t&&D&&pe.alternate===null&&e(v,D),b=m(pe,b,R),F===null?O=pe:F.sibling=pe,F=pe,D=Q}if(ie.done)return n(v,D),si&&Lh(v,R),O;if(D===null){for(;!ie.done;R++,ie=T.next())ie=a(v,ie.value,M),ie!==null&&(b=m(ie,b,R),F===null?O=ie:F.sibling=ie,F=ie);return si&&Lh(v,R),O}for(D=r(v,D);!ie.done;R++,ie=T.next())ie=o(D,v,R,ie.value,M),ie!==null&&(t&&ie.alternate!==null&&D.delete(ie.key===null?R:ie.key),b=m(ie,b,R),F===null?O=ie:F.sibling=ie,F=ie);return t&&D.forEach(function(ke){return e(v,ke)}),si&&Lh(v,R),O}function h(v,b,T,M){if(typeof T=="object"&&T!==null&&T.type===Wp&&T.key===null&&(T=T.props.children),typeof T=="object"&&T!==null){switch(T.$$typeof){case Wv:e:{for(var O=T.key,F=b;F!==null;){if(F.key===O){if(O=T.type,O===Wp){if(F.tag===7){n(v,F.sibling),b=l(F,T.props.children),b.return=v,v=b;break e}}else if(F.elementType===O||typeof O=="object"&&O!==null&&O.$$typeof===Gd&&WS(O)===F.type){n(v,F.sibling),b=l(F,T.props),b.ref=pg(v,F,T),b.return=v,v=b;break e}n(v,F);break}else e(v,F);F=F.sibling}T.type===Wp?(b=Uh(T.props.children,v.mode,M,T.key),b.return=v,v=b):(M=b0(T.type,T.key,T.props,null,v.mode,M),M.ref=pg(v,b,T),M.return=v,v=M)}return S(v);case jp:e:{for(F=T.key;b!==null;){if(b.key===F)if(b.tag===4&&b.stateNode.containerInfo===T.containerInfo&&b.stateNode.implementation===T.implementation){n(v,b.sibling),b=l(b,T.children||[]),b.return=v,v=b;break e}else{n(v,b);break}else e(v,b);b=b.sibling}b=p1(T,v.mode,M),b.return=v,v=b}return S(v);case Gd:return F=T._init,h(v,b,F(T._payload),M)}if(bg(T))return _(v,b,T,M);if(ug(T))return y(v,b,T,M);Zv(v,T)}return typeof T=="string"&&T!==""||typeof T=="number"?(T=""+T,b!==null&&b.tag===6?(n(v,b.sibling),b=l(b,T),b.return=v,v=b):(n(v,b),b=h1(T,v.mode,M),b.return=v,v=b),S(v)):n(v,b)}return h}var um=gM(!0),_M=gM(!1),a_={},du=ff(a_),Hg=ff(a_),Xg=ff(a_);function jh(t){if(t===a_)throw Error(Kt(174));return t}function dx(t,e){switch(Hr(Xg,e),Hr(Hg,t),Hr(du,a_),t=e.nodeType,t){case 9:case 11:e=(e=e.documentElement)?e.namespaceURI:j1(null,"");break;default:t=t===8?e.parentNode:e,e=t.namespaceURI||null,t=t.tagName,e=j1(e,t)}ei(du),Hr(du,e)}function cm(){ei(du),ei(Hg),ei(Xg)}function vM(t){jh(Xg.current);var e=jh(du.current),n=j1(e,t.type);e!==n&&(Hr(Hg,t),Hr(du,n))}function fx(t){Hg.current===t&&(ei(du),ei(Hg))}var fi=ff(0);function N0(t){for(var e=t;e!==null;){if(e.tag===13){var n=e.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||n.data==="$?"||n.data==="$!"))return e}else if(e.tag===19&&e.memoizedProps.revealOrder!==void 0){if((e.flags&128)!==0)return e}else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break;for(;e.sibling===null;){if(e.return===null||e.return===t)return null;e=e.return}e.sibling.return=e.return,e=e.sibling}return null}var o1=[];function hx(){for(var t=0;tn?n:4,t(!0);var r=l1.transition;l1.transition={};try{t(!1),e()}finally{Rr=n,l1.transition=r}}function $M(){return wo().memoizedState}function nk(t,e,n){var r=sf(t);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},DM(t))LM(e,n);else if(n=fM(t,e,n,r),n!==null){var l=Hs();sl(n,t,r,l),RM(n,e,r)}}function rk(t,e,n){var r=sf(t),l={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(DM(t))LM(e,l);else{var m=t.alternate;if(t.lanes===0&&(m===null||m.lanes===0)&&(m=e.lastRenderedReducer,m!==null))try{var S=e.lastRenderedState,g=m(S,n);if(l.hasEagerState=!0,l.eagerState=g,ol(g,S)){var s=e.interleaved;s===null?(l.next=l,ux(e)):(l.next=s.next,s.next=l),e.interleaved=l;return}}catch{}finally{}n=fM(t,e,l,r),n!==null&&(l=Hs(),sl(n,t,r,l),RM(n,e,r))}}function DM(t){var e=t.alternate;return t===hi||e!==null&&e===hi}function LM(t,e){Og=j0=!0;var n=t.pending;n===null?e.next=e:(e.next=n.next,n.next=e),t.pending=e}function RM(t,e,n){if((n&4194240)!==0){var r=e.lanes;r&=t.pendingLanes,n|=r,e.lanes=n,Yb(t,n)}}var W0={readContext:yo,useCallback:Cs,useContext:Cs,useEffect:Cs,useImperativeHandle:Cs,useInsertionEffect:Cs,useLayoutEffect:Cs,useMemo:Cs,useReducer:Cs,useRef:Cs,useState:Cs,useDebugValue:Cs,useDeferredValue:Cs,useTransition:Cs,useMutableSource:Cs,useSyncExternalStore:Cs,useId:Cs,unstable_isNewReconciler:!1},ik={readContext:yo,useCallback:function(t,e){return au().memoizedState=[t,e===void 0?null:e],t},useContext:yo,useEffect:US,useImperativeHandle:function(t,e,n){return n=n!=null?n.concat([t]):null,_0(4194308,4,kM.bind(null,e,t),n)},useLayoutEffect:function(t,e){return _0(4194308,4,t,e)},useInsertionEffect:function(t,e){return _0(4,2,t,e)},useMemo:function(t,e){var n=au();return e=e===void 0?null:e,t=t(),n.memoizedState=[t,e],t},useReducer:function(t,e,n){var r=au();return e=n!==void 0?n(e):e,r.memoizedState=r.baseState=e,t={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:t,lastRenderedState:e},r.queue=t,t=t.dispatch=nk.bind(null,hi,t),[r.memoizedState,t]},useRef:function(t){var e=au();return t={current:t},e.memoizedState=t},useState:VS,useDebugValue:vx,useDeferredValue:function(t){return au().memoizedState=t},useTransition:function(){var t=VS(!1),e=t[0];return t=tk.bind(null,t[1]),au().memoizedState=t,[e,t]},useMutableSource:function(){},useSyncExternalStore:function(t,e,n){var r=hi,l=au();if(si){if(n===void 0)throw Error(Kt(407));n=n()}else{if(n=e(),ns===null)throw Error(Kt(349));(qh&30)!==0||bM(r,e,n)}l.memoizedState=n;var m={value:n,getSnapshot:e};return l.queue=m,US(SM.bind(null,r,m,t),[t]),r.flags|=2048,Kg(9,xM.bind(null,r,m,n,e),void 0,null),n},useId:function(){var t=au(),e=ns.identifierPrefix;if(si){var n=ac,r=sc;n=(r&~(1<<32-il(r)-1)).toString(32)+n,e=":"+e+"R"+n,n=qg++,0<\/script>",t=t.removeChild(t.firstChild)):typeof r.is=="string"?t=S.createElement(n,{is:r.is}):(t=S.createElement(n),n==="select"&&(S=t,r.multiple?S.multiple=!0:r.size&&(S.size=r.size))):t=S.createElementNS(t,n),t[ou]=e,t[Gg]=r,HM(t,e,!1,!1),e.stateNode=t;e:{switch(S=V1(n,r),n){case"dialog":Zr("cancel",t),Zr("close",t),l=r;break;case"iframe":case"object":case"embed":Zr("load",t),l=r;break;case"video":case"audio":for(l=0;lfm&&(e.flags|=128,r=!0,mg(m,!1),e.lanes=4194304)}else{if(!r)if(t=N0(S),t!==null){if(e.flags|=128,r=!0,n=t.updateQueue,n!==null&&(e.updateQueue=n,e.flags|=4),mg(m,!0),m.tail===null&&m.tailMode==="hidden"&&!S.alternate&&!si)return Ms(e),null}else 2*Ci()-m.renderingStartTime>fm&&n!==1073741824&&(e.flags|=128,r=!0,mg(m,!1),e.lanes=4194304);m.isBackwards?(S.sibling=e.child,e.child=S):(n=m.last,n!==null?n.sibling=S:e.child=S,m.last=S)}return m.tail!==null?(e=m.tail,m.rendering=e,m.tail=e.sibling,m.renderingStartTime=Ci(),e.sibling=null,n=fi.current,Hr(fi,r?n&1|2:n&1),e):(Ms(e),null);case 22:case 23:return Tx(),r=e.memoizedState!==null,t!==null&&t.memoizedState!==null!==r&&(e.flags|=8192),r&&(e.mode&1)!==0?(za&1073741824)!==0&&(Ms(e),e.subtreeFlags&6&&(e.flags|=8192)):Ms(e),null;case 24:return null;case 25:return null}throw Error(Kt(156,e.tag))}function fk(t,e){switch(ix(e),e.tag){case 1:return la(e.type)&&F0(),t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 3:return cm(),ei(oa),ei(Ps),hx(),t=e.flags,(t&65536)!==0&&(t&128)===0?(e.flags=t&-65537|128,e):null;case 5:return fx(e),null;case 13:if(ei(fi),t=e.memoizedState,t!==null&&t.dehydrated!==null){if(e.alternate===null)throw Error(Kt(340));lm()}return t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 19:return ei(fi),null;case 4:return cm(),null;case 10:return lx(e.type._context),null;case 22:case 23:return Tx(),null;case 24:return null;default:return null}}var t0=!1,Es=!1,hk=typeof WeakSet=="function"?WeakSet:Set,gn=null;function Qp(t,e){var n=t.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){yi(t,e,r)}else n.current=null}function gb(t,e,n){try{n()}catch(r){yi(t,e,r)}}var ZS=!1;function pk(t,e){if(Z1=k0,t=JC(),nx(t)){if("selectionStart"in t)var n={start:t.selectionStart,end:t.selectionEnd};else e:{n=(n=t.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var l=r.anchorOffset,m=r.focusNode;r=r.focusOffset;try{n.nodeType,m.nodeType}catch{n=null;break e}var S=0,g=-1,s=-1,c=0,p=0,a=t,u=null;t:for(;;){for(var o;a!==n||l!==0&&a.nodeType!==3||(g=S+l),a!==m||r!==0&&a.nodeType!==3||(s=S+r),a.nodeType===3&&(S+=a.nodeValue.length),(o=a.firstChild)!==null;)u=a,a=o;for(;;){if(a===t)break t;if(u===n&&++c===l&&(g=S),u===m&&++p===r&&(s=S),(o=a.nextSibling)!==null)break;a=u,u=a.parentNode}a=o}n=g===-1||s===-1?null:{start:g,end:s}}else n=null}n=n||{start:0,end:0}}else n=null;for(eb={focusedElem:t,selectionRange:n},k0=!1,gn=e;gn!==null;)if(e=gn,t=e.child,(e.subtreeFlags&1028)!==0&&t!==null)t.return=e,gn=t;else for(;gn!==null;){e=gn;try{var _=e.alternate;if((e.flags&1024)!==0)switch(e.tag){case 0:case 11:case 15:break;case 1:if(_!==null){var y=_.memoizedProps,h=_.memoizedState,v=e.stateNode,b=v.getSnapshotBeforeUpdate(e.elementType===e.type?y:Zo(e.type,y),h);v.__reactInternalSnapshotBeforeUpdate=b}break;case 3:var T=e.stateNode.containerInfo;T.nodeType===1?T.textContent="":T.nodeType===9&&T.documentElement&&T.removeChild(T.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(Kt(163))}}catch(M){yi(e,e.return,M)}if(t=e.sibling,t!==null){t.return=e.return,gn=t;break}gn=e.return}return _=ZS,ZS=!1,_}function Ag(t,e,n){var r=e.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var l=r=r.next;do{if((l.tag&t)===t){var m=l.destroy;l.destroy=void 0,m!==void 0&&gb(e,n,m)}l=l.next}while(l!==r)}}function hy(t,e){if(e=e.updateQueue,e=e!==null?e.lastEffect:null,e!==null){var n=e=e.next;do{if((n.tag&t)===t){var r=n.create;n.destroy=r()}n=n.next}while(n!==e)}}function _b(t){var e=t.ref;if(e!==null){var n=t.stateNode;switch(t.tag){case 5:t=n;break;default:t=n}typeof e=="function"?e(t):e.current=t}}function YM(t){var e=t.alternate;e!==null&&(t.alternate=null,YM(e)),t.child=null,t.deletions=null,t.sibling=null,t.tag===5&&(e=t.stateNode,e!==null&&(delete e[ou],delete e[Gg],delete e[rb],delete e[KP],delete e[QP])),t.stateNode=null,t.return=null,t.dependencies=null,t.memoizedProps=null,t.memoizedState=null,t.pendingProps=null,t.stateNode=null,t.updateQueue=null}function KM(t){return t.tag===5||t.tag===3||t.tag===4}function eT(t){e:for(;;){for(;t.sibling===null;){if(t.return===null||KM(t.return))return null;t=t.return}for(t.sibling.return=t.return,t=t.sibling;t.tag!==5&&t.tag!==6&&t.tag!==18;){if(t.flags&2||t.child===null||t.tag===4)continue e;t.child.return=t,t=t.child}if(!(t.flags&2))return t.stateNode}}function vb(t,e,n){var r=t.tag;if(r===5||r===6)t=t.stateNode,e?n.nodeType===8?n.parentNode.insertBefore(t,e):n.insertBefore(t,e):(n.nodeType===8?(e=n.parentNode,e.insertBefore(t,n)):(e=n,e.appendChild(t)),n=n._reactRootContainer,n!=null||e.onclick!==null||(e.onclick=I0));else if(r!==4&&(t=t.child,t!==null))for(vb(t,e,n),t=t.sibling;t!==null;)vb(t,e,n),t=t.sibling}function yb(t,e,n){var r=t.tag;if(r===5||r===6)t=t.stateNode,e?n.insertBefore(t,e):n.appendChild(t);else if(r!==4&&(t=t.child,t!==null))for(yb(t,e,n),t=t.sibling;t!==null;)yb(t,e,n),t=t.sibling}var us=null,el=!1;function jd(t,e,n){for(n=n.child;n!==null;)QM(t,e,n),n=n.sibling}function QM(t,e,n){if(cu&&typeof cu.onCommitFiberUnmount=="function")try{cu.onCommitFiberUnmount(sy,n)}catch{}switch(n.tag){case 5:Es||Qp(n,e);case 6:var r=us,l=el;us=null,jd(t,e,n),us=r,el=l,us!==null&&(el?(t=us,n=n.stateNode,t.nodeType===8?t.parentNode.removeChild(n):t.removeChild(n)):us.removeChild(n.stateNode));break;case 18:us!==null&&(el?(t=us,n=n.stateNode,t.nodeType===8?s1(t.parentNode,n):t.nodeType===1&&s1(t,n),Ng(t)):s1(us,n.stateNode));break;case 4:r=us,l=el,us=n.stateNode.containerInfo,el=!0,jd(t,e,n),us=r,el=l;break;case 0:case 11:case 14:case 15:if(!Es&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){l=r=r.next;do{var m=l,S=m.destroy;m=m.tag,S!==void 0&&((m&2)!==0||(m&4)!==0)&&gb(n,e,S),l=l.next}while(l!==r)}jd(t,e,n);break;case 1:if(!Es&&(Qp(n,e),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(g){yi(n,e,g)}jd(t,e,n);break;case 21:jd(t,e,n);break;case 22:n.mode&1?(Es=(r=Es)||n.memoizedState!==null,jd(t,e,n),Es=r):jd(t,e,n);break;default:jd(t,e,n)}}function tT(t){var e=t.updateQueue;if(e!==null){t.updateQueue=null;var n=t.stateNode;n===null&&(n=t.stateNode=new hk),e.forEach(function(r){var l=Sk.bind(null,t,r);n.has(r)||(n.add(r),r.then(l,l))})}}function Ko(t,e){var n=e.deletions;if(n!==null)for(var r=0;rl&&(l=S),r&=~m}if(r=l,r=Ci()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*gk(r/1960))-r,10t?16:t,Kd===null)var r=!1;else{if(t=Kd,Kd=null,G0=0,(Ar&6)!==0)throw Error(Kt(331));var l=Ar;for(Ar|=4,gn=t.current;gn!==null;){var m=gn,S=m.child;if((gn.flags&16)!==0){var g=m.deletions;if(g!==null){for(var s=0;sCi()-xx?Vh(t,0):bx|=n),ua(t,e)}function s2(t,e){e===0&&((t.mode&1)===0?e=1:(e=Hv,Hv<<=1,(Hv&130023424)===0&&(Hv=4194304)));var n=Hs();t=dc(t,e),t!==null&&(r_(t,e,n),ua(t,n))}function xk(t){var e=t.memoizedState,n=0;e!==null&&(n=e.retryLane),s2(t,n)}function Sk(t,e){var n=0;switch(t.tag){case 13:var r=t.stateNode,l=t.memoizedState;l!==null&&(n=l.retryLane);break;case 19:r=t.stateNode;break;default:throw Error(Kt(314))}r!==null&&r.delete(e),s2(t,n)}var a2;a2=function(t,e,n){if(t!==null)if(t.memoizedProps!==e.pendingProps||oa.current)aa=!0;else{if((t.lanes&n)===0&&(e.flags&128)===0)return aa=!1,ck(t,e,n);aa=(t.flags&131072)!==0}else aa=!1,si&&(e.flags&1048576)!==0&&uM(e,L0,e.index);switch(e.lanes=0,e.tag){case 2:var r=e.type;v0(t,e),t=e.pendingProps;var l=om(e,Ps.current);rm(e,n),l=mx(null,e,r,t,l,n);var m=gx();return e.flags|=1,typeof l=="object"&&l!==null&&typeof l.render=="function"&&l.$$typeof===void 0?(e.tag=1,e.memoizedState=null,e.updateQueue=null,la(r)?(m=!0,$0(e)):m=!1,e.memoizedState=l.state!==null&&l.state!==void 0?l.state:null,cx(e),l.updater=dy,e.stateNode=l,l._reactInternals=e,ub(e,r,t,n),e=fb(null,e,r,!0,m,n)):(e.tag=0,si&&m&&rx(e),Gs(null,e,l,n),e=e.child),e;case 16:r=e.elementType;e:{switch(v0(t,e),t=e.pendingProps,l=r._init,r=l(r._payload),e.type=r,l=e.tag=Ck(r),t=Zo(r,t),l){case 0:e=db(null,e,r,t,n);break e;case 1:e=KS(null,e,r,t,n);break e;case 11:e=qS(null,e,r,t,n);break e;case 14:e=YS(null,e,r,Zo(r.type,t),n);break e}throw Error(Kt(306,r,""))}return e;case 0:return r=e.type,l=e.pendingProps,l=e.elementType===r?l:Zo(r,l),db(t,e,r,l,n);case 1:return r=e.type,l=e.pendingProps,l=e.elementType===r?l:Zo(r,l),KS(t,e,r,l,n);case 3:e:{if(VM(e),t===null)throw Error(Kt(387));r=e.pendingProps,m=e.memoizedState,l=m.element,hM(t,e),B0(e,r,null,n);var S=e.memoizedState;if(r=S.element,m.isDehydrated)if(m={element:r,isDehydrated:!1,cache:S.cache,pendingSuspenseBoundaries:S.pendingSuspenseBoundaries,transitions:S.transitions},e.updateQueue.baseState=m,e.memoizedState=m,e.flags&256){l=dm(Error(Kt(423)),e),e=QS(t,e,r,n,l);break e}else if(r!==l){l=dm(Error(Kt(424)),e),e=QS(t,e,r,n,l);break e}else for(Na=tf(e.stateNode.containerInfo.firstChild),ja=e,si=!0,tl=null,n=_M(e,null,r,n),e.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(lm(),r===l){e=fc(t,e,n);break e}Gs(t,e,r,n)}e=e.child}return e;case 5:return vM(e),t===null&&ab(e),r=e.type,l=e.pendingProps,m=t!==null?t.memoizedProps:null,S=l.children,tb(r,l)?S=null:m!==null&&tb(r,m)&&(e.flags|=32),WM(t,e),Gs(t,e,S,n),e.child;case 6:return t===null&&ab(e),null;case 13:return UM(t,e,n);case 4:return dx(e,e.stateNode.containerInfo),r=e.pendingProps,t===null?e.child=um(e,null,r,n):Gs(t,e,r,n),e.child;case 11:return r=e.type,l=e.pendingProps,l=e.elementType===r?l:Zo(r,l),qS(t,e,r,l,n);case 7:return Gs(t,e,e.pendingProps,n),e.child;case 8:return Gs(t,e,e.pendingProps.children,n),e.child;case 12:return Gs(t,e,e.pendingProps.children,n),e.child;case 10:e:{if(r=e.type._context,l=e.pendingProps,m=e.memoizedProps,S=l.value,Hr(R0,r._currentValue),r._currentValue=S,m!==null)if(ol(m.value,S)){if(m.children===l.children&&!oa.current){e=fc(t,e,n);break e}}else for(m=e.child,m!==null&&(m.return=e);m!==null;){var g=m.dependencies;if(g!==null){S=m.child;for(var s=g.firstContext;s!==null;){if(s.context===r){if(m.tag===1){s=oc(-1,n&-n),s.tag=2;var c=m.updateQueue;if(c!==null){c=c.shared;var p=c.pending;p===null?s.next=s:(s.next=p.next,p.next=s),c.pending=s}}m.lanes|=n,s=m.alternate,s!==null&&(s.lanes|=n),ob(m.return,n,e),g.lanes|=n;break}s=s.next}}else if(m.tag===10)S=m.type===e.type?null:m.child;else if(m.tag===18){if(S=m.return,S===null)throw Error(Kt(341));S.lanes|=n,g=S.alternate,g!==null&&(g.lanes|=n),ob(S,n,e),S=m.sibling}else S=m.child;if(S!==null)S.return=m;else for(S=m;S!==null;){if(S===e){S=null;break}if(m=S.sibling,m!==null){m.return=S.return,S=m;break}S=S.return}m=S}Gs(t,e,l.children,n),e=e.child}return e;case 9:return l=e.type,r=e.pendingProps.children,rm(e,n),l=yo(l),r=r(l),e.flags|=1,Gs(t,e,r,n),e.child;case 14:return r=e.type,l=Zo(r,e.pendingProps),l=Zo(r.type,l),YS(t,e,r,l,n);case 15:return NM(t,e,e.type,e.pendingProps,n);case 17:return r=e.type,l=e.pendingProps,l=e.elementType===r?l:Zo(r,l),v0(t,e),e.tag=1,la(r)?(t=!0,$0(e)):t=!1,rm(e,n),mM(e,r,l),ub(e,r,l,n),fb(null,e,r,!0,t,n);case 19:return GM(t,e,n);case 22:return jM(t,e,n)}throw Error(Kt(156,e.tag))};function o2(t,e){return FC(t,e)}function Tk(t,e,n,r){this.tag=t,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=e,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function _o(t,e,n,r){return new Tk(t,e,n,r)}function Mx(t){return t=t.prototype,!(!t||!t.isReactComponent)}function Ck(t){if(typeof t=="function")return Mx(t)?1:0;if(t!=null){if(t=t.$$typeof,t===Gb)return 11;if(t===Hb)return 14}return 2}function af(t,e){var n=t.alternate;return n===null?(n=_o(t.tag,e,t.key,t.mode),n.elementType=t.elementType,n.type=t.type,n.stateNode=t.stateNode,n.alternate=t,t.alternate=n):(n.pendingProps=e,n.type=t.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=t.flags&14680064,n.childLanes=t.childLanes,n.lanes=t.lanes,n.child=t.child,n.memoizedProps=t.memoizedProps,n.memoizedState=t.memoizedState,n.updateQueue=t.updateQueue,e=t.dependencies,n.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext},n.sibling=t.sibling,n.index=t.index,n.ref=t.ref,n}function b0(t,e,n,r,l,m){var S=2;if(r=t,typeof t=="function")Mx(t)&&(S=1);else if(typeof t=="string")S=5;else e:switch(t){case Wp:return Uh(n.children,l,m,e);case Ub:S=8,l|=8;break;case F1:return t=_o(12,n,e,l|2),t.elementType=F1,t.lanes=m,t;case $1:return t=_o(13,n,e,l),t.elementType=$1,t.lanes=m,t;case D1:return t=_o(19,n,e,l),t.elementType=D1,t.lanes=m,t;case gC:return my(n,l,m,e);default:if(typeof t=="object"&&t!==null)switch(t.$$typeof){case pC:S=10;break e;case mC:S=9;break e;case Gb:S=11;break e;case Hb:S=14;break e;case Gd:S=16,r=null;break e}throw Error(Kt(130,t==null?t:typeof t,""))}return e=_o(S,n,e,l),e.elementType=t,e.type=r,e.lanes=m,e}function Uh(t,e,n,r){return t=_o(7,t,r,e),t.lanes=n,t}function my(t,e,n,r){return t=_o(22,t,r,e),t.elementType=gC,t.lanes=n,t.stateNode={isHidden:!1},t}function h1(t,e,n){return t=_o(6,t,null,e),t.lanes=n,t}function p1(t,e,n){return e=_o(4,t.children!==null?t.children:[],t.key,e),e.lanes=n,e.stateNode={containerInfo:t.containerInfo,pendingChildren:null,implementation:t.implementation},e}function Mk(t,e,n,r,l){this.tag=e,this.containerInfo=t,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=qw(0),this.expirationTimes=qw(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=qw(0),this.identifierPrefix=r,this.onRecoverableError=l,this.mutableSourceEagerHydrationData=null}function Ex(t,e,n,r,l,m,S,g,s){return t=new Mk(t,e,n,g,s),e===1?(e=1,m===!0&&(e|=8)):e=0,m=_o(3,null,null,e),t.current=m,m.stateNode=t,m.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},cx(m),t}function Ek(t,e,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(n){console.error(n)}}e(),t.exports=Ga})(uC);var uT=uC.exports;rS.createRoot=uT.createRoot,rS.hydrateRoot=uT.hydrateRoot;var Ik={};const Fk={},$k=Object.freeze(Object.defineProperty({__proto__:null,default:Fk},Symbol.toStringTag,{value:"Module"})),m1=pE($k);(function(t){/*! Fabric.js Copyright 2008-2015, Printio (Juriy Zaytsev, Maxim Chernyak) */var e=e||{version:"5.3.0"};if(t.fabric=e,typeof document<"u"&&typeof window<"u")document instanceof(typeof HTMLDocument<"u"?HTMLDocument:Document)?e.document=document:e.document=document.implementation.createHTMLDocument(""),e.window=window;else{var n=m1,r=new n.JSDOM(decodeURIComponent("%3C!DOCTYPE%20html%3E%3Chtml%3E%3Chead%3E%3C%2Fhead%3E%3Cbody%3E%3C%2Fbody%3E%3C%2Fhtml%3E"),{features:{FetchExternalResources:["img"]},resources:"usable"}).window;e.document=r.document,e.jsdomImplForWrapper=m1.implForWrapper,e.nodeCanvas=m1.Canvas,e.window=r,DOMParser=e.window.DOMParser}e.isTouchSupported="ontouchstart"in e.window||"ontouchstart"in e.document||e.window&&e.window.navigator&&e.window.navigator.maxTouchPoints>0,e.isLikelyNode=typeof Buffer<"u"&&typeof window>"u",e.SHARED_ATTRIBUTES=["display","transform","fill","fill-opacity","fill-rule","opacity","stroke","stroke-dasharray","stroke-linecap","stroke-dashoffset","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","id","paint-order","vector-effect","instantiated_by_use","clip-path"],e.DPI=96,e.reNum="(?:[-+]?(?:\\d+|\\d*\\.\\d+)(?:[eE][-+]?\\d+)?)",e.commaWsp="(?:\\s+,?\\s*|,\\s*)",e.rePathCommand=/([-+]?((\d+\.\d+)|((\d+)|(\.\d+)))(?:[eE][-+]?\d+)?)/ig,e.reNonWord=/[ \n\.,;!\?\-]/,e.fontPaths={},e.iMatrix=[1,0,0,1,0,0],e.svgNS="http://www.w3.org/2000/svg",e.perfLimitSizeTotal=2097152,e.maxCacheSideLimit=4096,e.minCacheSideLimit=256,e.charWidthsCache={},e.textureSize=2048,e.disableStyleCopyPaste=!1,e.enableGLFiltering=!0,e.devicePixelRatio=e.window.devicePixelRatio||e.window.webkitDevicePixelRatio||e.window.mozDevicePixelRatio||1,e.browserShadowBlurConstant=1,e.arcToSegmentsCache={},e.boundsOfCurveCache={},e.cachesBoundsOfCurve=!0,e.forceGLPutImageData=!1,e.initFilterBackend=function(){if(e.enableGLFiltering&&e.isWebglSupported&&e.isWebglSupported(e.textureSize))return console.log("max texture size: "+e.maxTextureSize),new e.WebglFilterBackend({tileSize:e.textureSize});if(e.Canvas2dFilterBackend)return new e.Canvas2dFilterBackend},typeof document<"u"&&typeof window<"u"&&(window.fabric=e),function(){function g(o,_){if(!!this.__eventListeners[o]){var y=this.__eventListeners[o];_?y[y.indexOf(_)]=!1:e.util.array.fill(y,!1)}}function s(o,_){if(this.__eventListeners||(this.__eventListeners={}),arguments.length===1)for(var y in o)this.on(y,o[y]);else this.__eventListeners[o]||(this.__eventListeners[o]=[]),this.__eventListeners[o].push(_);return this}function c(o,_){var y=function(){_.apply(this,arguments),this.off(o,y)}.bind(this);this.on(o,y)}function p(o,_){if(arguments.length===1)for(var y in o)c.call(this,y,o[y]);else c.call(this,o,_);return this}function a(o,_){if(!this.__eventListeners)return this;if(arguments.length===0)for(o in this.__eventListeners)g.call(this,o);else if(arguments.length===1&&typeof arguments[0]=="object")for(var y in o)g.call(this,y,o[y]);else g.call(this,o,_);return this}function u(o,_){if(!this.__eventListeners)return this;var y=this.__eventListeners[o];if(!y)return this;for(var h=0,v=y.length;h"u"?this._objects.concat():this._objects.filter(function(s){return s.type===g})},item:function(g){return this._objects[g]},isEmpty:function(){return this._objects.length===0},size:function(){return this._objects.length},contains:function(g,s){return this._objects.indexOf(g)>-1?!0:s?this._objects.some(function(c){return typeof c.contains=="function"&&c.contains(g,!0)}):!1},complexity:function(){return this._objects.reduce(function(g,s){return g+=s.complexity?s.complexity():0,g},0)}},e.CommonMethods={_setOptions:function(g){for(var s in g)this.set(s,g[s])},_initGradient:function(g,s){g&&g.colorStops&&!(g instanceof e.Gradient)&&this.set(s,new e.Gradient(g))},_initPattern:function(g,s,c){g&&g.source&&!(g instanceof e.Pattern)?this.set(s,new e.Pattern(g,c)):c&&c()},_setObject:function(g){for(var s in g)this._set(s,g[s])},set:function(g,s){return typeof g=="object"?this._setObject(g):this._set(g,s),this},_set:function(g,s){this[g]=s},toggle:function(g){var s=this.get(g);return typeof s=="boolean"&&this.set(g,!s),this},get:function(g){return this[g]}},function(g){var s=Math.sqrt,c=Math.atan2,p=Math.pow,a=Math.PI/180,u=Math.PI/2;e.util={cos:function(o){if(o===0)return 1;o<0&&(o=-o);var _=o/u;switch(_){case 1:case 3:return 0;case 2:return-1}return Math.cos(o)},sin:function(o){if(o===0)return 0;var _=o/u,y=1;switch(o<0&&(y=-1),_){case 1:return y;case 2:return 0;case 3:return-y}return Math.sin(o)},removeFromArray:function(o,_){var y=o.indexOf(_);return y!==-1&&o.splice(y,1),o},getRandomInt:function(o,_){return Math.floor(Math.random()*(_-o+1))+o},degreesToRadians:function(o){return o*a},radiansToDegrees:function(o){return o/a},rotatePoint:function(o,_,y){var h=new e.Point(o.x-_.x,o.y-_.y),v=e.util.rotateVector(h,y);return new e.Point(v.x,v.y).addEquals(_)},rotateVector:function(o,_){var y=e.util.sin(_),h=e.util.cos(_),v=o.x*h-o.y*y,b=o.x*y+o.y*h;return{x:v,y:b}},createVector:function(o,_){return new e.Point(_.x-o.x,_.y-o.y)},calcAngleBetweenVectors:function(o,_){return Math.acos((o.x*_.x+o.y*_.y)/(Math.hypot(o.x,o.y)*Math.hypot(_.x,_.y)))},getHatVector:function(o){return new e.Point(o.x,o.y).multiply(1/Math.hypot(o.x,o.y))},getBisector:function(o,_,y){var h=e.util.createVector(o,_),v=e.util.createVector(o,y),b=e.util.calcAngleBetweenVectors(h,v),T=e.util.calcAngleBetweenVectors(e.util.rotateVector(h,b),v),M=b*(T===0?1:-1)/2;return{vector:e.util.getHatVector(e.util.rotateVector(h,M)),angle:b}},projectStrokeOnPoints:function(o,_,y){var h=[],v=_.strokeWidth/2,b=_.strokeUniform?new e.Point(1/_.scaleX,1/_.scaleY):new e.Point(1,1),T=function(M){var O=v/Math.hypot(M.x,M.y);return new e.Point(M.x*O*b.x,M.y*O*b.y)};return o.length<=1||o.forEach(function(M,O){var F=new e.Point(M.x,M.y),D,R;O===0?(R=o[O+1],D=y?T(e.util.createVector(R,F)).addEquals(F):o[o.length-1]):O===o.length-1?(D=o[O-1],R=y?T(e.util.createVector(D,F)).addEquals(F):o[0]):(D=o[O-1],R=o[O+1]);var Q=e.util.getBisector(F,D,R),ie=Q.vector,pe=Q.angle,ke,Te;if(_.strokeLineJoin==="miter"&&(ke=-v/Math.sin(pe/2),Te=new e.Point(ie.x*ke*b.x,ie.y*ke*b.y),Math.hypot(Te.x,Te.y)/v<=_.strokeMiterLimit)){h.push(F.add(Te)),h.push(F.subtract(Te));return}ke=-v*Math.SQRT2,Te=new e.Point(ie.x*ke*b.x,ie.y*ke*b.y),h.push(F.add(Te)),h.push(F.subtract(Te))}),h},transformPoint:function(o,_,y){return y?new e.Point(_[0]*o.x+_[2]*o.y,_[1]*o.x+_[3]*o.y):new e.Point(_[0]*o.x+_[2]*o.y+_[4],_[1]*o.x+_[3]*o.y+_[5])},makeBoundingBoxFromPoints:function(o,_){if(_)for(var y=0;y"u"?1:o.scaleX,y=typeof o.scaleY>"u"?1:o.scaleY,h=[o.flipX?-_:_,0,0,o.flipY?-y:y,0,0],v=e.util.multiplyTransformMatrices,b=e.util.degreesToRadians;return o.skewX&&(h=v(h,[1,0,Math.tan(b(o.skewX)),1],!0)),o.skewY&&(h=v(h,[1,Math.tan(b(o.skewY)),0,1],!0)),h},composeMatrix:function(o){var _=[1,0,0,1,o.translateX||0,o.translateY||0],y=e.util.multiplyTransformMatrices;return o.angle&&(_=y(_,e.util.calcRotateMatrix(o))),(o.scaleX!==1||o.scaleY!==1||o.skewX||o.skewY||o.flipX||o.flipY)&&(_=y(_,e.util.calcDimensionsMatrix(o))),_},resetObjectTransform:function(o){o.scaleX=1,o.scaleY=1,o.skewX=0,o.skewY=0,o.flipX=!1,o.flipY=!1,o.rotate(0)},saveObjectTransform:function(o){return{scaleX:o.scaleX,scaleY:o.scaleY,skewX:o.skewX,skewY:o.skewY,angle:o.angle,left:o.left,flipX:o.flipX,flipY:o.flipY,top:o.top}},isTransparent:function(o,_,y,h){h>0&&(_>h?_-=h:_=0,y>h?y-=h:y=0);var v=!0,b,T,M=o.getImageData(_,y,h*2||1,h*2||1),O=M.data.length;for(b=3;b0){var D=e.util.hasStyleChanged(b,F,!0);D?T.push({start:v,end:v+1,style:F}):T[T.length-1].end++}b=F||{}}}return T},stylesFromArray:function(o,_){if(!Array.isArray(o))return o;for(var y=_.split(` +`),h=-1,v=0,b={},T=0;T0?wt-=2*ge:ue===1&&wt<0&&(wt+=2*ge);for(var Xt=Math.ceil(Math.abs(wt/ge*2)),Ft=[],jt=wt/Xt,Qt=8/3*Math.sin(jt/4)*Math.sin(jt/4)/Math.sin(jt/2),Mt=ht+jt,Zt=0;Zt=de?ue-de:2*Math.PI-(de-ue)}function o(W,K,se,fe,de,ue,te,ge){var Oe;if(e.cachesBoundsOfCurve&&(Oe=g.call(arguments),e.boundsOfCurveCache[Oe]))return e.boundsOfCurveCache[Oe];var Ue=Math.sqrt,Ae=Math.min,he=Math.max,Fe=Math.abs,He=[],$e=[[],[]],xe,De,Ge,Ne,tt,ct,J,_e;De=6*W-12*se+6*de,xe=-3*W+9*se-9*de+3*te,Ge=3*se-3*W;for(var G=0;G<2;++G){if(G>0&&(De=6*K-12*fe+6*ue,xe=-3*K+9*fe-9*ue+3*ge,Ge=3*fe-3*K),Fe(xe)<1e-12){if(Fe(De)<1e-12)continue;Ne=-Ge/De,01e-4;)te=de(se),Ae=se,ge=h(ue.x,ue.y,te.x,te.y),ge+fe>K?(se-=Oe,Oe/=2):(ue=te,se+=Oe,fe+=ge);return te.angle=Ue(Ae),te}function Re(W){for(var K=0,se=W.length,fe,de=0,ue=0,te=0,ge=0,Oe=[],Ue,Ae,he,Fe=0;Fe0&&feJ)for(var G=1,Pe=xe.length;G2;for(K=K||0,Ue&&(ge=W[2].xW[fe-2].x?1:de.x===W[fe-2].x?0:-1,Oe=de.y>W[fe-2].y?1:de.y===W[fe-2].y?0:-1),se.push(["L",de.x+ge*K,de.y+Oe*K]),se}function ee(W,K,se){return se&&(K=e.util.multiplyTransformMatrices(K,[1,0,0,1,-se.x,-se.y])),W.map(function(fe){for(var de=fe.slice(0),ue={},te=1;te=h})}function p(o,_){return u(o,_,function(y,h){return y/g,">")}function p(u){var o=0,_,y=[];for(o=0,_;o57343)return u.charAt(o);if(55296<=_&&_<=56319){if(u.length<=o+1)throw"High surrogate without following low surrogate";var y=u.charCodeAt(o+1);if(56320>y||y>57343)throw"High surrogate without following low surrogate";return u.charAt(o)+u.charAt(o+1)}if(o===0)throw"Low surrogate without preceding high surrogate";var h=u.charCodeAt(o-1);if(55296>h||h>56319)throw"Low surrogate without preceding high surrogate";return!1}e.util.string={camelize:g,capitalize:s,escapeXml:c,graphemeSplit:p}}(),function(){var g=Array.prototype.slice,s=function(){},c=function(){for(var _ in{toString:1})if(_==="toString")return!1;return!0}(),p=function(_,y,h){for(var v in y)v in _.prototype&&typeof _.prototype[v]=="function"&&(y[v]+"").indexOf("callSuper")>-1?_.prototype[v]=function(b){return function(){var T=this.constructor.superclass;this.constructor.superclass=h;var M=y[b].apply(this,arguments);if(this.constructor.superclass=T,b!=="initialize")return M}}(v):_.prototype[v]=y[v],c&&(y.toString!==Object.prototype.toString&&(_.prototype.toString=y.toString),y.valueOf!==Object.prototype.valueOf&&(_.prototype.valueOf=y.valueOf))};function a(){}function u(_){for(var y=null,h=this;h.constructor.superclass;){var v=h.constructor.superclass.prototype[_];if(h[_]!==v){y=v;break}h=h.constructor.superclass.prototype}return y?arguments.length>1?y.apply(this,g.call(arguments,1)):y.call(this):console.log("tried to callSuper "+_+", method not found in prototype chain",this)}function o(){var _=null,y=g.call(arguments,0);typeof y[0]=="function"&&(_=y.shift());function h(){this.initialize.apply(this,arguments)}h.superclass=_,h.subclasses=[],_&&(a.prototype=_.prototype,h.prototype=new a,_.subclasses.push(h));for(var v=0,b=y.length;v-1||p.pointerType==="touch"}}(),function(){function g(o,_){var y=o.style;if(!y)return o;if(typeof _=="string")return o.style.cssText+=";"+_,_.indexOf("opacity")>-1?u(o,_.match(/opacity:\s*(\d?\.?\d*)/)[1]):o;for(var h in _)if(h==="opacity")u(o,_[h]);else{var v=h==="float"||h==="cssFloat"?typeof y.styleFloat>"u"?"cssFloat":"styleFloat":h;y.setProperty(v,_[h])}return o}var s=e.document.createElement("div"),c=typeof s.style.opacity=="string",p=typeof s.style.filter=="string",a=/alpha\s*\(\s*opacity\s*=\s*([^\)]+)\)/,u=function(o){return o};c?u=function(o,_){return o.style.opacity=_,o}:p&&(u=function(o,_){var y=o.style;return o.currentStyle&&!o.currentStyle.hasLayout&&(y.zoom=1),a.test(y.filter)?(_=_>=.9999?"":"alpha(opacity="+_*100+")",y.filter=y.filter.replace(a,_)):y.filter+=" alpha(opacity="+_*100+")",o}),e.util.setStyle=g}(),function(){var g=Array.prototype.slice;function s(M){return typeof M=="string"?e.document.getElementById(M):M}var c,p=function(M){return g.call(M,0)};try{c=p(e.document.childNodes)instanceof Array}catch{}c||(p=function(M){for(var O=new Array(M.length),F=M.length;F--;)O[F]=M[F];return O});function a(M,O){var F=e.document.createElement(M);for(var D in O)D==="class"?F.className=O[D]:D==="for"?F.htmlFor=O[D]:F.setAttribute(D,O[D]);return F}function u(M,O){M&&(" "+M.className+" ").indexOf(" "+O+" ")===-1&&(M.className+=(M.className?" ":"")+O)}function o(M,O,F){return typeof O=="string"&&(O=a(O,F)),M.parentNode&&M.parentNode.replaceChild(O,M),O.appendChild(M),O}function _(M){for(var O=0,F=0,D=e.document.documentElement,R=e.document.body||{scrollLeft:0,scrollTop:0};M&&(M.parentNode||M.host)&&(M=M.parentNode||M.host,M===e.document?(O=R.scrollLeft||D.scrollLeft||0,F=R.scrollTop||D.scrollTop||0):(O+=M.scrollLeft||0,F+=M.scrollTop||0),!(M.nodeType===1&&M.style.position==="fixed")););return{left:O,top:F}}function y(M){var O,F=M&&M.ownerDocument,D={left:0,top:0},R={left:0,top:0},Q,ie={borderLeftWidth:"left",borderTopWidth:"top",paddingLeft:"left",paddingTop:"top"};if(!F)return R;for(var pe in ie)R[ie[pe]]+=parseInt(h(M,pe),10)||0;return O=F.documentElement,typeof M.getBoundingClientRect<"u"&&(D=M.getBoundingClientRect()),Q=_(M),{left:D.left+Q.left-(O.clientLeft||0)+R.left,top:D.top+Q.top-(O.clientTop||0)+R.top}}var h;e.document.defaultView&&e.document.defaultView.getComputedStyle?h=function(M,O){var F=e.document.defaultView.getComputedStyle(M,null);return F?F[O]:void 0}:h=function(M,O){var F=M.style[O];return!F&&M.currentStyle&&(F=M.currentStyle[O]),F},function(){var M=e.document.documentElement.style,O="userSelect"in M?"userSelect":"MozUserSelect"in M?"MozUserSelect":"WebkitUserSelect"in M?"WebkitUserSelect":"KhtmlUserSelect"in M?"KhtmlUserSelect":"";function F(R){return typeof R.onselectstart<"u"&&(R.onselectstart=e.util.falseFunction),O?R.style[O]="none":typeof R.unselectable=="string"&&(R.unselectable="on"),R}function D(R){return typeof R.onselectstart<"u"&&(R.onselectstart=null),O?R.style[O]="":typeof R.unselectable=="string"&&(R.unselectable=""),R}e.util.makeElementUnselectable=F,e.util.makeElementSelectable=D}();function v(M){var O=e.jsdomImplForWrapper(M);return O._canvas||O._image}function b(M){if(!!e.isLikelyNode){var O=e.jsdomImplForWrapper(M);O&&(O._image=null,O._canvas=null,O._currentSrc=null,O._attributes=null,O._classList=null)}}function T(M,O){M.imageSmoothingEnabled=M.imageSmoothingEnabled||M.webkitImageSmoothingEnabled||M.mozImageSmoothingEnabled||M.msImageSmoothingEnabled||M.oImageSmoothingEnabled,M.imageSmoothingEnabled=O}e.util.setImageSmoothing=T,e.util.getById=s,e.util.toArray=p,e.util.addClass=u,e.util.makeElement=a,e.util.wrapElement=o,e.util.getScrollLeftTop=_,e.util.getElementOffset=y,e.util.getNodeCanvas=v,e.util.cleanUpJsdomNode=b}(),function(){function g(p,a){return p+(/\?/.test(p)?"&":"?")+a}function s(){}function c(p,a){a||(a={});var u=a.method?a.method.toUpperCase():"GET",o=a.onComplete||function(){},_=new e.window.XMLHttpRequest,y=a.body||a.parameters;return _.onreadystatechange=function(){_.readyState===4&&(o(_),_.onreadystatechange=s)},u==="GET"&&(y=null,typeof a.parameters=="string"&&(p=g(p,a.parameters))),_.open(u,p,!0),(u==="POST"||u==="PUT")&&_.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),_.send(y),_}e.util.request=c}(),e.log=console.log,e.warn=console.warn,function(){var g=e.util.object.extend,s=e.util.object.clone,c=[];e.util.object.extend(c,{cancelAll:function(){var v=this.splice(0);return v.forEach(function(b){b.cancel()}),v},cancelByCanvas:function(v){if(!v)return[];var b=this.filter(function(T){return typeof T.target=="object"&&T.target.canvas===v});return b.forEach(function(T){T.cancel()}),b},cancelByTarget:function(v){var b=this.findAnimationsByTarget(v);return b.forEach(function(T){T.cancel()}),b},findAnimationIndex:function(v){return this.indexOf(this.findAnimation(v))},findAnimation:function(v){return this.find(function(b){return b.cancel===v})},findAnimationsByTarget:function(v){return v?this.filter(function(b){return b.target===v}):[]}});function p(){return!1}function a(v,b,T,M){return-T*Math.cos(v/M*(Math.PI/2))+T+b}function u(v){v||(v={});var b=!1,T,M=function(){var O=e.runningAnimations.indexOf(T);return O>-1&&e.runningAnimations.splice(O,1)[0]};return T=g(s(v),{cancel:function(){return b=!0,M()},currentValue:"startValue"in v?v.startValue:0,completionRate:0,durationRate:0}),e.runningAnimations.push(T),y(function(O){var F=O||+new Date,D=v.duration||500,R=F+D,Q,ie=v.onChange||p,pe=v.abort||p,ke=v.onComplete||p,Te=v.easing||a,Re="startValue"in v?v.startValue.length>0:!1,ze="startValue"in v?v.startValue:0,Ze="endValue"in v?v.endValue:100,Ie=v.byValue||(Re?ze.map(function(ee,W){return Ze[W]-ze[W]}):Ze-ze);v.onStart&&v.onStart(),function ee(W){Q=W||+new Date;var K=Q>R?D:Q-F,se=K/D,fe=Re?ze.map(function(ue,te){return Te(K,ze[te],Ie[te],D)}):Te(K,ze,Ie,D),de=Math.abs(Re?(fe[0]-ze[0])/Ie[0]:(fe-ze)/Ie);if(T.currentValue=Re?fe.slice():fe,T.completionRate=de,T.durationRate=se,!b){if(pe(fe,de,se)){M();return}if(Q>R){T.currentValue=Re?Ze.slice():Ze,T.completionRate=1,T.durationRate=1,ie(Re?Ze.slice():Ze,1,1),ke(Ze,1,1),M();return}else ie(fe,de,se),y(ee)}}(F)}),T.cancel}var o=e.window.requestAnimationFrame||e.window.webkitRequestAnimationFrame||e.window.mozRequestAnimationFrame||e.window.oRequestAnimationFrame||e.window.msRequestAnimationFrame||function(v){return e.window.setTimeout(v,1e3/60)},_=e.window.cancelAnimationFrame||e.window.clearTimeout;function y(){return o.apply(e.window,arguments)}function h(){return _.apply(e.window,arguments)}e.util.animate=u,e.util.requestAnimFrame=y,e.util.cancelAnimFrame=h,e.runningAnimations=c}(),function(){function g(c,p,a){var u="rgba("+parseInt(c[0]+a*(p[0]-c[0]),10)+","+parseInt(c[1]+a*(p[1]-c[1]),10)+","+parseInt(c[2]+a*(p[2]-c[2]),10);return u+=","+(c&&p?parseFloat(c[3]+a*(p[3]-c[3])):1),u+=")",u}function s(c,p,a,u){var o=new e.Color(c).getSource(),_=new e.Color(p).getSource(),y=u.onComplete,h=u.onChange;return u=u||{},e.util.animate(e.util.object.extend(u,{duration:a||500,startValue:o,endValue:_,byValue:_,easing:function(v,b,T,M){var O=u.colorEasing?u.colorEasing(v,M):1-Math.cos(v/M*(Math.PI/2));return g(b,T,O)},onComplete:function(v,b,T){if(y)return y(g(_,_,0),b,T)},onChange:function(v,b,T){if(h){if(Array.isArray(v))return h(g(v,v,0),b,T);h(v,b,T)}}}))}e.util.animateColor=s}(),function(){function g(W,K,se,fe){return W-1&&Fe>-1&&Fe-1)&&(te="stroke")}else{if(ue==="href"||ue==="xlink:href"||ue==="font")return te;if(ue==="imageSmoothing")return te==="optimizeQuality";Ae=Ue?te.map(u):u(te,Oe)}}return!Ue&&isNaN(Ae)?te:Ae}function R(ue){return new RegExp("^("+ue.join("|")+")\\b","i")}function Q(ue){for(var te in T)if(!(typeof ue[T[te]]>"u"||ue[te]==="")){if(typeof ue[te]>"u"){if(!s.Object.prototype[te])continue;ue[te]=s.Object.prototype[te]}if(ue[te].indexOf("url(")!==0){var ge=new s.Color(ue[te]);ue[te]=ge.setAlpha(a(ge.getAlpha()*ue[T[te]],2)).toRgba()}}return ue}function ie(ue,te){var ge,Oe=[],Ue,Ae,he;for(Ae=0,he=te.length;Ae1;)We.shift(),ht=s.util.multiplyTransformMatrices(ht,We[0]);return ht}}();function pe(ue,te){var ge,Oe;ue.replace(/;\s*$/,"").split(";").forEach(function(Ue){var Ae=Ue.split(":");ge=Ae[0].trim().toLowerCase(),Oe=Ae[1].trim(),te[ge]=Oe})}function ke(ue,te){var ge,Oe;for(var Ue in ue)typeof ue[Ue]>"u"||(ge=Ue.toLowerCase(),Oe=ue[Ue],te[ge]=Oe)}function Te(ue,te){var ge={};for(var Oe in s.cssRules[te])if(Re(ue,Oe.split(" ")))for(var Ue in s.cssRules[te][Oe])ge[Ue]=s.cssRules[te][Oe][Ue];return ge}function Re(ue,te){var ge,Oe=!0;return ge=Ze(ue,te.pop()),ge&&te.length&&(Oe=ze(ue,te)),ge&&Oe&&te.length===0}function ze(ue,te){for(var ge,Oe=!0;ue.parentNode&&ue.parentNode.nodeType===1&&te.length;)Oe&&(ge=te.pop()),ue=ue.parentNode,Oe=Ze(ue,ge);return te.length===0}function Ze(ue,te){var ge=ue.nodeName,Oe=ue.getAttribute("class"),Ue=ue.getAttribute("id"),Ae,he;if(Ae=new RegExp("^"+ge,"i"),te=te.replace(Ae,""),Ue&&te.length&&(Ae=new RegExp("#"+Ue+"(?![a-zA-Z\\-]+)","i"),te=te.replace(Ae,"")),Oe&&te.length)for(Oe=Oe.split(" "),he=Oe.length;he--;)Ae=new RegExp("\\."+Oe[he]+"(?![a-zA-Z\\-]+)","i"),te=te.replace(Ae,"");return te.length===0}function Ie(ue,te){var ge;if(ue.getElementById&&(ge=ue.getElementById(te)),ge)return ge;var Oe,Ue,Ae,he=ue.getElementsByTagName("*");for(Ue=0,Ae=he.length;UeOe?Oe:ge),tt.meetOrSlice==="slice"&&(Oe=ge=ge>Oe?ge:Oe),We=G.width-he*ge,ht=G.height-Fe*ge,tt.alignX==="Mid"&&(We/=2),tt.alignY==="Mid"&&(ht/=2),tt.alignX==="Min"&&(We=0),tt.alignY==="Min"&&(ht=0)),ge===1&&Oe===1&&Ue===0&&Ae===0&&Ge===0&&Ne===0)return G;if((Ge||Ne)&&ue.parentNode.nodeName!=="#document"&&(Pe=" translate("+u(Ge)+" "+u(Ne)+") "),He=Pe+" matrix("+ge+" 0 0 "+Oe+" "+(Ue*ge+We)+" "+(Ae*Oe+ht)+") ",ue.nodeName==="svg"){for($e=ue.ownerDocument.createElementNS(s.svgNS,"g");ue.firstChild;)$e.appendChild(ue.firstChild);ue.appendChild($e)}else $e=ue,$e.removeAttribute("x"),$e.removeAttribute("y"),He=$e.getAttribute("transform")+He;return $e.setAttribute("transform",He),G}function se(ue,te){for(;ue&&(ue=ue.parentNode);)if(ue.nodeName&&te.test(ue.nodeName.replace("svg:",""))&&!ue.getAttribute("instantiated_by_use"))return!0;return!1}s.parseSVGDocument=function(ue,te,ge,Oe){if(!!ue){ee(ue);var Ue=s.Object.__uid++,Ae,he,Fe=K(ue),He=s.util.toArray(ue.getElementsByTagName("*"));if(Fe.crossOrigin=Oe&&Oe.crossOrigin,Fe.svgUid=Ue,He.length===0&&s.isLikelyNode){He=ue.selectNodes('//*[name(.)!="svg"]');var $e=[];for(Ae=0,he=He.length;Ae"u"&&(ge=ue.getAttribute("svgUid")),ue.parentNode&&s.svgValidParentsRegEx.test(ue.parentNode.nodeName)&&(Ue=s.parseAttributes(ue.parentNode,te,ge));var Fe=te.reduce(function(tt,ct){return Oe=ue.getAttribute(ct),Oe&&(tt[ct]=Oe),tt},{}),He=c(Te(ue,ge),s.parseStyleAttribute(ue));Fe=c(Fe,He),He[O]&&ue.setAttribute(O,He[O]),Ae=he=Ue.fontSize||s.Text.DEFAULT_SVG_FONT_SIZE,Fe[M]&&(Fe[M]=Ae=u(Fe[M],he));var $e,xe,De={};for(var Ge in Fe)$e=F(Ge),xe=D($e,Fe[Ge],Ue,Ae),De[$e]=xe;De&&De.font&&s.parseFontDeclaration(De.font,De);var Ne=c(Ue,De);return s.svgValidParentsRegEx.test(ue.nodeName)?Ne:Q(Ne)}},parseElements:function(ue,te,ge,Oe,Ue){new s.ElementsParser(ue,te,ge,Oe,Ue).parse()},parseStyleAttribute:function(ue){var te={},ge=ue.getAttribute("style");return ge&&(typeof ge=="string"?pe(ge,te):ke(ge,te)),te},parsePointsAttribute:function(ue){if(!ue)return null;ue=ue.replace(/,/g," ").trim(),ue=ue.split(/\s+/);var te=[],ge,Oe;for(ge=0,Oe=ue.length;gep.x&&this.y>p.y},gte:function(p){return this.x>=p.x&&this.y>=p.y},lerp:function(p,a){return typeof a>"u"&&(a=.5),a=Math.max(Math.min(1,a),0),new c(this.x+(p.x-this.x)*a,this.y+(p.y-this.y)*a)},distanceFrom:function(p){var a=this.x-p.x,u=this.y-p.y;return Math.sqrt(a*a+u*u)},midPointFrom:function(p){return this.lerp(p)},min:function(p){return new c(Math.min(this.x,p.x),Math.min(this.y,p.y))},max:function(p){return new c(Math.max(this.x,p.x),Math.max(this.y,p.y))},toString:function(){return this.x+","+this.y},setXY:function(p,a){return this.x=p,this.y=a,this},setX:function(p){return this.x=p,this},setY:function(p){return this.y=p,this},setFromPoint:function(p){return this.x=p.x,this.y=p.y,this},swap:function(p){var a=this.x,u=this.y;this.x=p.x,this.y=p.y,p.x=a,p.y=u},clone:function(){return new c(this.x,this.y)}}}(t),function(g){var s=g.fabric||(g.fabric={});if(s.Intersection){s.warn("fabric.Intersection is already defined");return}function c(p){this.status=p,this.points=[]}s.Intersection=c,s.Intersection.prototype={constructor:c,appendPoint:function(p){return this.points.push(p),this},appendPoints:function(p){return this.points=this.points.concat(p),this}},s.Intersection.intersectLineLine=function(p,a,u,o){var _,y=(o.x-u.x)*(p.y-u.y)-(o.y-u.y)*(p.x-u.x),h=(a.x-p.x)*(p.y-u.y)-(a.y-p.y)*(p.x-u.x),v=(o.y-u.y)*(a.x-p.x)-(o.x-u.x)*(a.y-p.y);if(v!==0){var b=y/v,T=h/v;0<=b&&b<=1&&0<=T&&T<=1?(_=new c("Intersection"),_.appendPoint(new s.Point(p.x+b*(a.x-p.x),p.y+b*(a.y-p.y)))):_=new c}else y===0||h===0?_=new c("Coincident"):_=new c("Parallel");return _},s.Intersection.intersectLinePolygon=function(p,a,u){var o=new c,_=u.length,y,h,v,b;for(b=0;b<_;b++)y=u[b],h=u[(b+1)%_],v=c.intersectLineLine(p,a,y,h),o.appendPoints(v.points);return o.points.length>0&&(o.status="Intersection"),o},s.Intersection.intersectPolygonPolygon=function(p,a){var u=new c,o=p.length,_;for(_=0;_0&&(u.status="Intersection"),u},s.Intersection.intersectPolygonRectangle=function(p,a,u){var o=a.min(u),_=a.max(u),y=new s.Point(_.x,o.y),h=new s.Point(o.x,_.y),v=c.intersectLinePolygon(o,y,p),b=c.intersectLinePolygon(y,_,p),T=c.intersectLinePolygon(_,h,p),M=c.intersectLinePolygon(h,o,p),O=new c;return O.appendPoints(v.points),O.appendPoints(b.points),O.appendPoints(T.points),O.appendPoints(M.points),O.points.length>0&&(O.status="Intersection"),O}}(t),function(g){var s=g.fabric||(g.fabric={});if(s.Color){s.warn("fabric.Color is already defined.");return}function c(a){a?this._tryParsingColor(a):this.setSource([0,0,0,1])}s.Color=c,s.Color.prototype={_tryParsingColor:function(a){var u;a in c.colorNameMap&&(a=c.colorNameMap[a]),a==="transparent"&&(u=[255,255,255,0]),u||(u=c.sourceFromHex(a)),u||(u=c.sourceFromRgb(a)),u||(u=c.sourceFromHsl(a)),u||(u=[0,0,0,1]),u&&this.setSource(u)},_rgbToHsl:function(a,u,o){a/=255,u/=255,o/=255;var _,y,h,v=s.util.array.max([a,u,o]),b=s.util.array.min([a,u,o]);if(h=(v+b)/2,v===b)_=y=0;else{var T=v-b;switch(y=h>.5?T/(2-v-b):T/(v+b),v){case a:_=(u-o)/T+(u1&&(o-=1),o<1/6?a+(u-a)*6*o:o<1/2?u:o<2/3?a+(u-a)*(2/3-o)*6:a}s.Color.fromRgb=function(a){return c.fromSource(c.sourceFromRgb(a))},s.Color.sourceFromRgb=function(a){var u=a.match(c.reRGBa);if(u){var o=parseInt(u[1],10)/(/%$/.test(u[1])?100:1)*(/%$/.test(u[1])?255:1),_=parseInt(u[2],10)/(/%$/.test(u[2])?100:1)*(/%$/.test(u[2])?255:1),y=parseInt(u[3],10)/(/%$/.test(u[3])?100:1)*(/%$/.test(u[3])?255:1);return[parseInt(o,10),parseInt(_,10),parseInt(y,10),u[4]?parseFloat(u[4]):1]}},s.Color.fromRgba=c.fromRgb,s.Color.fromHsl=function(a){return c.fromSource(c.sourceFromHsl(a))},s.Color.sourceFromHsl=function(a){var u=a.match(c.reHSLa);if(!!u){var o=(parseFloat(u[1])%360+360)%360/360,_=parseFloat(u[2])/(/%$/.test(u[2])?100:1),y=parseFloat(u[3])/(/%$/.test(u[3])?100:1),h,v,b;if(_===0)h=v=b=y;else{var T=y<=.5?y*(_+1):y+_-y*_,M=y*2-T;h=p(M,T,o+1/3),v=p(M,T,o),b=p(M,T,o-1/3)}return[Math.round(h*255),Math.round(v*255),Math.round(b*255),u[4]?parseFloat(u[4]):1]}},s.Color.fromHsla=c.fromHsl,s.Color.fromHex=function(a){return c.fromSource(c.sourceFromHex(a))},s.Color.sourceFromHex=function(a){if(a.match(c.reHex)){var u=a.slice(a.indexOf("#")+1),o=u.length===3||u.length===4,_=u.length===8||u.length===4,y=o?u.charAt(0)+u.charAt(0):u.substring(0,2),h=o?u.charAt(1)+u.charAt(1):u.substring(2,4),v=o?u.charAt(2)+u.charAt(2):u.substring(4,6),b=_?o?u.charAt(3)+u.charAt(3):u.substring(6,8):"FF";return[parseInt(y,16),parseInt(h,16),parseInt(v,16),parseFloat((parseInt(b,16)/255).toFixed(2))]}},s.Color.fromSource=function(a){var u=new c;return u.setSource(a),u}}(t),function(g){var s=g.fabric||(g.fabric={}),c=["e","se","s","sw","w","nw","n","ne","e"],p=["ns","nesw","ew","nwse"],a={},u="left",o="top",_="right",y="bottom",h="center",v={top:y,bottom:o,left:_,right:u,center:h},b=s.util.radiansToDegrees,T=Math.sign||function($e){return($e>0)-($e<0)||+$e};function M($e,xe){var De=$e.angle+b(Math.atan2(xe.y,xe.x))+360;return Math.round(De%360/45)}function O($e,xe){var De=xe.transform.target,Ge=De.canvas,Ne=s.util.object.clone(xe);Ne.target=De,Ge&&Ge.fire("object:"+$e,Ne),De.fire($e,xe)}function F($e,xe){var De=xe.canvas,Ge=De.uniScaleKey,Ne=$e[Ge];return De.uniformScaling&&!Ne||!De.uniformScaling&&Ne}function D($e){return $e.originX===h&&$e.originY===h}function R($e,xe,De){var Ge=$e.lockScalingX,Ne=$e.lockScalingY;return!!(Ge&&Ne||!xe&&(Ge||Ne)&&De||Ge&&xe==="x"||Ne&&xe==="y")}function Q($e,xe,De){var Ge="not-allowed",Ne=F($e,De),tt="";if(xe.x!==0&&xe.y===0?tt="x":xe.x===0&&xe.y!==0&&(tt="y"),R(De,tt,Ne))return Ge;var ct=M(De,xe);return c[ct]+"-resize"}function ie($e,xe,De){var Ge="not-allowed";if(xe.x!==0&&De.lockSkewingY||xe.y!==0&&De.lockSkewingX)return Ge;var Ne=M(De,xe)%4;return p[Ne]+"-resize"}function pe($e,xe,De){return $e[De.canvas.altActionKey]?a.skewCursorStyleHandler($e,xe,De):a.scaleCursorStyleHandler($e,xe,De)}function ke($e,xe,De){var Ge=$e[De.canvas.altActionKey];if(xe.x===0)return Ge?"skewX":"scaleY";if(xe.y===0)return Ge?"skewY":"scaleX"}function Te($e,xe,De){return De.lockRotation?"not-allowed":xe.cursorStyle}function Re($e,xe,De,Ge){return{e:$e,transform:xe,pointer:{x:De,y:Ge}}}function ze($e){return function(xe,De,Ge,Ne){var tt=De.target,ct=tt.getCenterPoint(),J=tt.translateToOriginPoint(ct,De.originX,De.originY),_e=$e(xe,De,Ge,Ne);return tt.setPositionByOrigin(J,De.originX,De.originY),_e}}function Ze($e,xe){return function(De,Ge,Ne,tt){var ct=xe(De,Ge,Ne,tt);return ct&&O($e,Re(De,Ge,Ne,tt)),ct}}function Ie($e,xe,De,Ge,Ne){var tt=$e.target,ct=tt.controls[$e.corner],J=tt.canvas.getZoom(),_e=tt.padding/J,G=tt.toLocalPoint(new s.Point(Ge,Ne),xe,De);return G.x>=_e&&(G.x-=_e),G.x<=-_e&&(G.x+=_e),G.y>=_e&&(G.y-=_e),G.y<=_e&&(G.y+=_e),G.x-=ct.offsetX,G.y-=ct.offsetY,G}function ee($e){return $e.flipX!==$e.flipY}function W($e,xe,De,Ge,Ne){if($e[xe]!==0){var tt=$e._getTransformedDimensions()[Ge],ct=Ne/tt*$e[De];$e.set(De,ct)}}function K($e,xe,De,Ge){var Ne=xe.target,tt=Ne._getTransformedDimensions(0,Ne.skewY),ct=Ie(xe,xe.originX,xe.originY,De,Ge),J=Math.abs(ct.x*2)-tt.x,_e=Ne.skewX,G;J<2?G=0:(G=b(Math.atan2(J/Ne.scaleX,tt.y/Ne.scaleY)),xe.originX===u&&xe.originY===y&&(G=-G),xe.originX===_&&xe.originY===o&&(G=-G),ee(Ne)&&(G=-G));var Pe=_e!==G;if(Pe){var We=Ne._getTransformedDimensions().y;Ne.set("skewX",G),W(Ne,"skewY","scaleY","y",We)}return Pe}function se($e,xe,De,Ge){var Ne=xe.target,tt=Ne._getTransformedDimensions(Ne.skewX,0),ct=Ie(xe,xe.originX,xe.originY,De,Ge),J=Math.abs(ct.y*2)-tt.y,_e=Ne.skewY,G;J<2?G=0:(G=b(Math.atan2(J/Ne.scaleY,tt.x/Ne.scaleX)),xe.originX===u&&xe.originY===y&&(G=-G),xe.originX===_&&xe.originY===o&&(G=-G),ee(Ne)&&(G=-G));var Pe=_e!==G;if(Pe){var We=Ne._getTransformedDimensions().x;Ne.set("skewY",G),W(Ne,"skewX","scaleX","x",We)}return Pe}function fe($e,xe,De,Ge){var Ne=xe.target,tt=Ne.skewX,ct,J=xe.originY;if(Ne.lockSkewingX)return!1;if(tt===0){var _e=Ie(xe,h,h,De,Ge);_e.x>0?ct=u:ct=_}else tt>0&&(ct=J===o?u:_),tt<0&&(ct=J===o?_:u),ee(Ne)&&(ct=ct===u?_:u);xe.originX=ct;var G=Ze("skewing",ze(K));return G($e,xe,De,Ge)}function de($e,xe,De,Ge){var Ne=xe.target,tt=Ne.skewY,ct,J=xe.originX;if(Ne.lockSkewingY)return!1;if(tt===0){var _e=Ie(xe,h,h,De,Ge);_e.y>0?ct=o:ct=y}else tt>0&&(ct=J===u?o:y),tt<0&&(ct=J===u?y:o),ee(Ne)&&(ct=ct===o?y:o);xe.originY=ct;var G=Ze("skewing",ze(se));return G($e,xe,De,Ge)}function ue($e,xe,De,Ge){var Ne=xe,tt=Ne.target,ct=tt.translateToOriginPoint(tt.getCenterPoint(),Ne.originX,Ne.originY);if(tt.lockRotation)return!1;var J=Math.atan2(Ne.ey-ct.y,Ne.ex-ct.x),_e=Math.atan2(Ge-ct.y,De-ct.x),G=b(_e-J+Ne.theta),Pe=!0;if(tt.snapAngle>0){var We=tt.snapAngle,ht=tt.snapThreshold||We,wt=Math.ceil(G/We)*We,Xt=Math.floor(G/We)*We;Math.abs(G-Xt)T?(Q=b,o.scale(1,T/b),R=y*b/T):T>b?(Q=T,o.scale(b/T,1),D=_*T/b):Q=b,o.lineWidth=1,o.beginPath(),o.arc(D,R,Q/2,0,2*Math.PI,!1),o[O](),F&&o.stroke(),o.restore()}function u(o,_,y,h,v){h=h||{};var b=this.sizeX||h.cornerSize||v.cornerSize,T=this.sizeY||h.cornerSize||v.cornerSize,M=typeof h.transparentCorners<"u"?h.transparentCorners:v.transparentCorners,O=M?"stroke":"fill",F=!M&&(h.cornerStrokeColor||v.cornerStrokeColor),D=b/2,R=T/2;o.save(),o.fillStyle=h.cornerColor||v.cornerColor,o.strokeStyle=h.cornerStrokeColor||v.cornerStrokeColor,o.lineWidth=1,o.translate(_,y),o.rotate(c(v.angle)),o[O+"Rect"](-D,-R,b,T),F&&o.strokeRect(-D,-R,b,T),o.restore()}p.renderCircleControl=a,p.renderSquareControl=u}(t),function(g){var s=g.fabric||(g.fabric={});function c(p){for(var a in p)this[a]=p[a]}s.Control=c,s.Control.prototype={visible:!0,actionName:"scale",angle:0,x:0,y:0,offsetX:0,offsetY:0,sizeX:null,sizeY:null,touchSizeX:null,touchSizeY:null,cursorStyle:"crosshair",withConnection:!1,actionHandler:function(){},mouseDownHandler:function(){},mouseUpHandler:function(){},getActionHandler:function(){return this.actionHandler},getMouseDownHandler:function(){return this.mouseDownHandler},getMouseUpHandler:function(){return this.mouseUpHandler},cursorStyleHandler:function(p,a){return a.cursorStyle},getActionName:function(p,a){return a.actionName},getVisibility:function(p,a){var u=p._controlsVisibility;return u&&typeof u[a]<"u"?u[a]:this.visible},setVisibility:function(p){this.visible=p},positionHandler:function(p,a){var u=s.util.transformPoint({x:this.x*p.x+this.offsetX,y:this.y*p.y+this.offsetY},a);return u},calcCornerCoords:function(p,a,u,o,_){var y,h,v,b,T=_?this.touchSizeX:this.sizeX,M=_?this.touchSizeY:this.sizeY;if(T&&M&&T!==M){var O=Math.atan2(M,T),F=Math.sqrt(T*T+M*M)/2,D=O-s.util.degreesToRadians(p),R=Math.PI/2-O-s.util.degreesToRadians(p);y=F*s.util.cos(D),h=F*s.util.sin(D),v=F*s.util.cos(R),b=F*s.util.sin(R)}else{var Q=T&&M?T:a;F=Q*.7071067812;var D=s.util.degreesToRadians(45-p);y=v=F*s.util.cos(D),h=b=F*s.util.sin(D)}return{tl:{x:u-b,y:o-v},tr:{x:u+y,y:o-h},bl:{x:u-y,y:o+h},br:{x:u+b,y:o+v}}},render:function(p,a,u,o,_){switch(o=o||{},o.cornerStyle||_.cornerStyle){case"circle":s.controlsUtils.renderCircleControl.call(this,p,a,u,o,_);break;default:s.controlsUtils.renderSquareControl.call(this,p,a,u,o,_)}}}}(t),function(){function g(u,o){var _=u.getAttribute("style"),y=u.getAttribute("offset")||0,h,v,b,T;if(y=parseFloat(y)/(/%$/.test(y)?100:1),y=y<0?0:y>1?1:y,_){var M=_.split(/\s*;\s*/);for(M[M.length-1]===""&&M.pop(),T=M.length;T--;){var O=M[T].split(/\s*:\s*/),F=O[0].trim(),D=O[1].trim();F==="stop-color"?h=D:F==="stop-opacity"&&(b=D)}}return h||(h=u.getAttribute("stop-color")||"rgb(0,0,0)"),b||(b=u.getAttribute("stop-opacity")),h=new e.Color(h),v=h.getAlpha(),b=isNaN(parseFloat(b))?1:parseFloat(b),b*=v*o,{offset:y,color:h.toRgb(),opacity:b}}function s(u){return{x1:u.getAttribute("x1")||0,y1:u.getAttribute("y1")||0,x2:u.getAttribute("x2")||"100%",y2:u.getAttribute("y2")||0}}function c(u){return{x1:u.getAttribute("fx")||u.getAttribute("cx")||"50%",y1:u.getAttribute("fy")||u.getAttribute("cy")||"50%",r1:0,x2:u.getAttribute("cx")||"50%",y2:u.getAttribute("cy")||"50%",r2:u.getAttribute("r")||"50%"}}var p=e.util.object.clone;e.Gradient=e.util.createClass({offsetX:0,offsetY:0,gradientTransform:null,gradientUnits:"pixels",type:"linear",initialize:function(u){u||(u={}),u.coords||(u.coords={});var o,_=this;Object.keys(u).forEach(function(y){_[y]=u[y]}),this.id?this.id+="_"+e.Object.__uid++:this.id=e.Object.__uid++,o={x1:u.coords.x1||0,y1:u.coords.y1||0,x2:u.coords.x2||0,y2:u.coords.y2||0},this.type==="radial"&&(o.r1=u.coords.r1||0,o.r2=u.coords.r2||0),this.coords=o,this.colorStops=u.colorStops.slice()},addColorStop:function(u){for(var o in u){var _=new e.Color(u[o]);this.colorStops.push({offset:parseFloat(o),color:_.toRgb(),opacity:_.getAlpha()})}return this},toObject:function(u){var o={type:this.type,coords:this.coords,colorStops:this.colorStops,offsetX:this.offsetX,offsetY:this.offsetY,gradientUnits:this.gradientUnits,gradientTransform:this.gradientTransform?this.gradientTransform.concat():this.gradientTransform};return e.util.populateWithProperties(this,o,u),o},toSVG:function(u,v){var _=p(this.coords,!0),y,h,v=v||{},b,T,M=p(this.colorStops,!0),O=_.r1>_.r2,F=this.gradientTransform?this.gradientTransform.concat():e.iMatrix.concat(),D=-this.offsetX,R=-this.offsetY,Q=!!v.additionalTransform,ie=this.gradientUnits==="pixels"?"userSpaceOnUse":"objectBoundingBox";if(M.sort(function(ze,Ze){return ze.offset-Ze.offset}),ie==="objectBoundingBox"?(D/=u.width,R/=u.height):(D+=u.width/2,R+=u.height/2),u.type==="path"&&this.gradientUnits!=="percentage"&&(D-=u.pathOffset.x,R-=u.pathOffset.y),F[4]-=D,F[5]-=R,T='id="SVGID_'+this.id+'" gradientUnits="'+ie+'"',T+=' gradientTransform="'+(Q?v.additionalTransform+" ":"")+e.util.matrixToSVG(F)+'" ',this.type==="linear"?b=[" +`]:this.type==="radial"&&(b=[" +`]),this.type==="radial"){if(O)for(M=M.concat(),M.reverse(),y=0,h=M.length;y0){var ke=Math.max(_.r1,_.r2),Te=pe/ke;for(y=0,h=M.length;y +`)}return b.push(this.type==="linear"?` +`:` +`),b.join("")},toLive:function(u){var o,_=e.util.object.clone(this.coords),y,h;if(!!this.type){for(this.type==="linear"?o=u.createLinearGradient(_.x1,_.y1,_.x2,_.y2):this.type==="radial"&&(o=u.createRadialGradient(_.x1,_.y1,_.r1,_.x2,_.y2,_.r2)),y=0,h=this.colorStops.length;y1?1:h,isNaN(h)&&(h=1);var v=u.getElementsByTagName("stop"),b,T=u.getAttribute("gradientUnits")==="userSpaceOnUse"?"pixels":"percentage",M=u.getAttribute("gradientTransform")||"",O=[],F,D,R=0,Q=0,ie;for(u.nodeName==="linearGradient"||u.nodeName==="LINEARGRADIENT"?(b="linear",F=s(u)):(b="radial",F=c(u)),D=v.length;D--;)O.push(g(v[D],h));ie=e.parseTransformAttribute(M),a(o,F,y,T),T==="pixels"&&(R=-o.left,Q=-o.top);var pe=new e.Gradient({id:u.getAttribute("id"),type:b,coords:F,colorStops:O,gradientUnits:T,gradientTransform:ie,offsetX:R,offsetY:Q});return pe}});function a(u,o,_,y){var h,v;Object.keys(o).forEach(function(b){h=o[b],h==="Infinity"?v=1:h==="-Infinity"?v=0:(v=parseFloat(o[b],10),typeof h=="string"&&/^(\d+\.\d+)%|(\d+)%$/.test(h)&&(v*=.01,y==="pixels"&&((b==="x1"||b==="x2"||b==="r2")&&(v*=_.viewBoxWidth||_.width),(b==="y1"||b==="y2")&&(v*=_.viewBoxHeight||_.height)))),o[b]=v})}}(),function(){var g=e.util.toFixed;e.Pattern=e.util.createClass({repeat:"repeat",offsetX:0,offsetY:0,crossOrigin:"",patternTransform:null,initialize:function(s,c){if(s||(s={}),this.id=e.Object.__uid++,this.setOptions(s),!s.source||s.source&&typeof s.source!="string"){c&&c(this);return}else{var p=this;this.source=e.util.createImage(),e.util.loadImage(s.source,function(a,u){p.source=a,c&&c(p,u)},null,this.crossOrigin)}},toObject:function(s){var c=e.Object.NUM_FRACTION_DIGITS,p,a;return typeof this.source.src=="string"?p=this.source.src:typeof this.source=="object"&&this.source.toDataURL&&(p=this.source.toDataURL()),a={type:"pattern",source:p,repeat:this.repeat,crossOrigin:this.crossOrigin,offsetX:g(this.offsetX,c),offsetY:g(this.offsetY,c),patternTransform:this.patternTransform?this.patternTransform.concat():null},e.util.populateWithProperties(this,a,s),a},toSVG:function(s){var c=typeof this.source=="function"?this.source():this.source,p=c.width/s.width,a=c.height/s.height,u=this.offsetX/s.width,o=this.offsetY/s.height,_="";return(this.repeat==="repeat-x"||this.repeat==="no-repeat")&&(a=1,o&&(a+=Math.abs(o))),(this.repeat==="repeat-y"||this.repeat==="no-repeat")&&(p=1,u&&(p+=Math.abs(u))),c.src?_=c.src:c.toDataURL&&(_=c.toDataURL()),' + + +`},setOptions:function(s){for(var c in s)this[c]=s[c]},toLive:function(s){var c=this.source;return!c||typeof c.src<"u"&&(!c.complete||c.naturalWidth===0||c.naturalHeight===0)?"":s.createPattern(c,this.repeat)}})}(),function(g){var s=g.fabric||(g.fabric={}),c=s.util.toFixed;if(s.Shadow){s.warn("fabric.Shadow is already defined.");return}s.Shadow=s.util.createClass({color:"rgb(0,0,0)",blur:0,offsetX:0,offsetY:0,affectStroke:!1,includeDefaultValues:!0,nonScaling:!1,initialize:function(p){typeof p=="string"&&(p=this._parseShadow(p));for(var a in p)this[a]=p[a];this.id=s.Object.__uid++},_parseShadow:function(p){var a=p.trim(),u=s.Shadow.reOffsetsAndBlur.exec(a)||[],o=a.replace(s.Shadow.reOffsetsAndBlur,"")||"rgb(0,0,0)";return{color:o.trim(),offsetX:parseFloat(u[1],10)||0,offsetY:parseFloat(u[2],10)||0,blur:parseFloat(u[3],10)||0}},toString:function(){return[this.offsetX,this.offsetY,this.blur,this.color].join("px ")},toSVG:function(p){var a=40,u=40,o=s.Object.NUM_FRACTION_DIGITS,_=s.util.rotateVector({x:this.offsetX,y:this.offsetY},s.util.degreesToRadians(-p.angle)),y=20,h=new s.Color(this.color);return p.width&&p.height&&(a=c((Math.abs(_.x)+this.blur)/p.width,o)*100+y,u=c((Math.abs(_.y)+this.blur)/p.height,o)*100+y),p.flipX&&(_.x*=-1),p.flipY&&(_.y*=-1),' + + + + + + + + + +`},toObject:function(){if(this.includeDefaultValues)return{color:this.color,blur:this.blur,offsetX:this.offsetX,offsetY:this.offsetY,affectStroke:this.affectStroke,nonScaling:this.nonScaling};var p={},a=s.Shadow.prototype;return["color","blur","offsetX","offsetY","affectStroke","nonScaling"].forEach(function(u){this[u]!==a[u]&&(p[u]=this[u])},this),p}}),s.Shadow.reOffsetsAndBlur=/(?:\s|^)(-?\d+(?:\.\d*)?(?:px)?(?:\s?|$))?(-?\d+(?:\.\d*)?(?:px)?(?:\s?|$))?(\d+(?:\.\d*)?(?:px)?)?(?:\s?|$)(?:$|\s)/}(t),function(){if(e.StaticCanvas){e.warn("fabric.StaticCanvas is already defined.");return}var g=e.util.object.extend,s=e.util.getElementOffset,c=e.util.removeFromArray,p=e.util.toFixed,a=e.util.transformPoint,u=e.util.invertTransform,o=e.util.getNodeCanvas,_=e.util.createCanvasElement,y=new Error("Could not initialize `canvas` element");e.StaticCanvas=e.util.createClass(e.CommonMethods,{initialize:function(h,v){v||(v={}),this.renderAndResetBound=this.renderAndReset.bind(this),this.requestRenderAllBound=this.requestRenderAll.bind(this),this._initStatic(h,v)},backgroundColor:"",backgroundImage:null,overlayColor:"",overlayImage:null,includeDefaultValues:!0,stateful:!1,renderOnAddRemove:!0,controlsAboveOverlay:!1,allowTouchScrolling:!1,imageSmoothingEnabled:!0,viewportTransform:e.iMatrix.concat(),backgroundVpt:!0,overlayVpt:!0,enableRetinaScaling:!0,vptCoords:{},skipOffscreen:!0,clipPath:void 0,_initStatic:function(h,v){var b=this.requestRenderAllBound;this._objects=[],this._createLowerCanvas(h),this._initOptions(v),this.interactive||this._initRetinaScaling(),v.overlayImage&&this.setOverlayImage(v.overlayImage,b),v.backgroundImage&&this.setBackgroundImage(v.backgroundImage,b),v.backgroundColor&&this.setBackgroundColor(v.backgroundColor,b),v.overlayColor&&this.setOverlayColor(v.overlayColor,b),this.calcOffset()},_isRetinaScaling:function(){return e.devicePixelRatio>1&&this.enableRetinaScaling},getRetinaScaling:function(){return this._isRetinaScaling()?Math.max(1,e.devicePixelRatio):1},_initRetinaScaling:function(){if(!!this._isRetinaScaling()){var h=e.devicePixelRatio;this.__initRetinaScaling(h,this.lowerCanvasEl,this.contextContainer),this.upperCanvasEl&&this.__initRetinaScaling(h,this.upperCanvasEl,this.contextTop)}},__initRetinaScaling:function(h,v,b){v.setAttribute("width",this.width*h),v.setAttribute("height",this.height*h),b.scale(h,h)},calcOffset:function(){return this._offset=s(this.lowerCanvasEl),this},setOverlayImage:function(h,v,b){return this.__setBgOverlayImage("overlayImage",h,v,b)},setBackgroundImage:function(h,v,b){return this.__setBgOverlayImage("backgroundImage",h,v,b)},setOverlayColor:function(h,v){return this.__setBgOverlayColor("overlayColor",h,v)},setBackgroundColor:function(h,v){return this.__setBgOverlayColor("backgroundColor",h,v)},__setBgOverlayImage:function(h,v,b,T){return typeof v=="string"?e.util.loadImage(v,function(M,O){if(M){var F=new e.Image(M,T);this[h]=F,F.canvas=this}b&&b(M,O)},this,T&&T.crossOrigin):(T&&v.setOptions(T),this[h]=v,v&&(v.canvas=this),b&&b(v,!1)),this},__setBgOverlayColor:function(h,v,b){return this[h]=v,this._initGradient(v,h),this._initPattern(v,h,b),this},_createCanvasElement:function(){var h=_();if(!h||(h.style||(h.style={}),typeof h.getContext>"u"))throw y;return h},_initOptions:function(h){var v=this.lowerCanvasEl;this._setOptions(h),this.width=this.width||parseInt(v.width,10)||0,this.height=this.height||parseInt(v.height,10)||0,this.lowerCanvasEl.style&&(v.width=this.width,v.height=this.height,v.style.width=this.width+"px",v.style.height=this.height+"px",this.viewportTransform=this.viewportTransform.slice())},_createLowerCanvas:function(h){h&&h.getContext?this.lowerCanvasEl=h:this.lowerCanvasEl=e.util.getById(h)||this._createCanvasElement(),e.util.addClass(this.lowerCanvasEl,"lower-canvas"),this._originalCanvasStyle=this.lowerCanvasEl.style,this.interactive&&this._applyCanvasStyle(this.lowerCanvasEl),this.contextContainer=this.lowerCanvasEl.getContext("2d")},getWidth:function(){return this.width},getHeight:function(){return this.height},setWidth:function(h,v){return this.setDimensions({width:h},v)},setHeight:function(h,v){return this.setDimensions({height:h},v)},setDimensions:function(h,v){var b;v=v||{};for(var T in h)b=h[T],v.cssOnly||(this._setBackstoreDimension(T,h[T]),b+="px",this.hasLostContext=!0),v.backstoreOnly||this._setCssDimension(T,b);return this._isCurrentlyDrawing&&this.freeDrawingBrush&&this.freeDrawingBrush._setBrushStyles(this.contextTop),this._initRetinaScaling(),this.calcOffset(),v.cssOnly||this.requestRenderAll(),this},_setBackstoreDimension:function(h,v){return this.lowerCanvasEl[h]=v,this.upperCanvasEl&&(this.upperCanvasEl[h]=v),this.cacheCanvasEl&&(this.cacheCanvasEl[h]=v),this[h]=v,this},_setCssDimension:function(h,v){return this.lowerCanvasEl.style[h]=v,this.upperCanvasEl&&(this.upperCanvasEl.style[h]=v),this.wrapperEl&&(this.wrapperEl.style[h]=v),this},getZoom:function(){return this.viewportTransform[0]},setViewportTransform:function(h){var v=this._activeObject,b=this.backgroundImage,T=this.overlayImage,M,O,F;for(this.viewportTransform=h,O=0,F=this._objects.length;O +`),this._setSVGBgOverlayColor(b,"background"),this._setSVGBgOverlayImage(b,"backgroundImage",v),this._setSVGObjects(b,v),this.clipPath&&b.push(` +`),this._setSVGBgOverlayColor(b,"overlay"),this._setSVGBgOverlayImage(b,"overlayImage",v),b.push(""),b.join("")},_setSVGPreamble:function(h,v){v.suppressPreamble||h.push(' +`,' +`)},_setSVGHeader:function(h,v){var b=v.width||this.width,T=v.height||this.height,M,O='viewBox="0 0 '+this.width+" "+this.height+'" ',F=e.Object.NUM_FRACTION_DIGITS;v.viewBox?O='viewBox="'+v.viewBox.x+" "+v.viewBox.y+" "+v.viewBox.width+" "+v.viewBox.height+'" ':this.svgViewportTransformation&&(M=this.viewportTransform,O='viewBox="'+p(-M[4]/M[0],F)+" "+p(-M[5]/M[3],F)+" "+p(this.width/M[0],F)+" "+p(this.height/M[3],F)+'" '),h.push(" +`,"Created with Fabric.js ",e.version,` +`,` +`,this.createSVGFontFacesMarkup(),this.createSVGRefElementsMarkup(),this.createSVGClipPathMarkup(v),` +`)},createSVGClipPathMarkup:function(h){var v=this.clipPath;return v?(v.clipPathId="CLIPPATH_"+e.Object.__uid++,' +`+this.clipPath.toClipPathSVG(h.reviver)+` +`):""},createSVGRefElementsMarkup:function(){var h=this,v=["background","overlay"].map(function(b){var T=h[b+"Color"];if(T&&T.toLive){var M=h[b+"Vpt"],O=h.viewportTransform,F={width:h.width/(M?O[0]:1),height:h.height/(M?O[3]:1)};return T.toSVG(F,{additionalTransform:M?e.util.matrixToSVG(O):""})}});return v.join("")},createSVGFontFacesMarkup:function(){var h="",v={},b,T,M,O,F,D,R,Q,ie,pe=e.fontPaths,ke=[];for(this._objects.forEach(function Re(ze){ke.push(ze),ze._objects&&ze._objects.forEach(Re)}),Q=0,ie=ke.length;Q',` +`,h,"",` +`].join("")),h},_setSVGObjects:function(h,v){var b,T,M,O=this._objects;for(T=0,M=O.length;T +`)}else h.push(' +`)},sendToBack:function(h){if(!h)return this;var v=this._activeObject,b,T,M;if(h===v&&h.type==="activeSelection")for(M=v._objects,b=M.length;b--;)T=M[b],c(this._objects,T),this._objects.unshift(T);else c(this._objects,h),this._objects.unshift(h);return this.renderOnAddRemove&&this.requestRenderAll(),this},bringToFront:function(h){if(!h)return this;var v=this._activeObject,b,T,M;if(h===v&&h.type==="activeSelection")for(M=v._objects,b=0;b0+R&&(F=O-1,c(this._objects,M),this._objects.splice(F,0,M)),R++;else O=this._objects.indexOf(h),O!==0&&(F=this._findNewLowerIndex(h,O,v),c(this._objects,h),this._objects.splice(F,0,h));return this.renderOnAddRemove&&this.requestRenderAll(),this},_findNewLowerIndex:function(h,v,b){var T,M;if(b)for(T=v,M=v-1;M>=0;--M){var O=h.intersectsWithObject(this._objects[M])||h.isContainedWithinObject(this._objects[M])||this._objects[M].isContainedWithinObject(h);if(O){T=M;break}}else T=v-1;return T},bringForward:function(h,v){if(!h)return this;var b=this._activeObject,T,M,O,F,D,R=0;if(h===b&&h.type==="activeSelection")for(D=b._objects,T=D.length;T--;)M=D[T],O=this._objects.indexOf(M),O"}}),g(e.StaticCanvas.prototype,e.Observable),g(e.StaticCanvas.prototype,e.Collection),g(e.StaticCanvas.prototype,e.DataURLExporter),g(e.StaticCanvas,{EMPTY_JSON:'{"objects": [], "background": "white"}',supports:function(h){var v=_();if(!v||!v.getContext)return null;var b=v.getContext("2d");if(!b)return null;switch(h){case"setLineDash":return typeof b.setLineDash<"u";default:return null}}}),e.StaticCanvas.prototype.toJSON=e.StaticCanvas.prototype.toObject,e.isLikelyNode&&(e.StaticCanvas.prototype.createPNGStream=function(){var h=o(this.lowerCanvasEl);return h&&h.createPNGStream()},e.StaticCanvas.prototype.createJPEGStream=function(h){var v=o(this.lowerCanvasEl);return v&&v.createJPEGStream(h)})}(),e.BaseBrush=e.util.createClass({color:"rgb(0, 0, 0)",width:1,shadow:null,strokeLineCap:"round",strokeLineJoin:"round",strokeMiterLimit:10,strokeDashArray:null,limitedToCanvasSize:!1,_setBrushStyles:function(g){g.strokeStyle=this.color,g.lineWidth=this.width,g.lineCap=this.strokeLineCap,g.miterLimit=this.strokeMiterLimit,g.lineJoin=this.strokeLineJoin,g.setLineDash(this.strokeDashArray||[])},_saveAndTransform:function(g){var s=this.canvas.viewportTransform;g.save(),g.transform(s[0],s[1],s[2],s[3],s[4],s[5])},_setShadow:function(){if(!!this.shadow){var g=this.canvas,s=this.shadow,c=g.contextTop,p=g.getZoom();g&&g._isRetinaScaling()&&(p*=e.devicePixelRatio),c.shadowColor=s.color,c.shadowBlur=s.blur*p,c.shadowOffsetX=s.offsetX*p,c.shadowOffsetY=s.offsetY*p}},needsFullRender:function(){var g=new e.Color(this.color);return g.getAlpha()<1||!!this.shadow},_resetShadow:function(){var g=this.canvas.contextTop;g.shadowColor="",g.shadowBlur=g.shadowOffsetX=g.shadowOffsetY=0},_isOutSideCanvas:function(g){return g.x<0||g.x>this.canvas.getWidth()||g.y<0||g.y>this.canvas.getHeight()}}),function(){e.PencilBrush=e.util.createClass(e.BaseBrush,{decimate:.4,drawStraightLine:!1,straightLineKey:"shiftKey",initialize:function(g){this.canvas=g,this._points=[]},needsFullRender:function(){return this.callSuper("needsFullRender")||this._hasStraightLine},_drawSegment:function(g,s,c){var p=s.midPointFrom(c);return g.quadraticCurveTo(s.x,s.y,p.x,p.y),p},onMouseDown:function(g,s){!this.canvas._isMainEvent(s.e)||(this.drawStraightLine=s.e[this.straightLineKey],this._prepareForDrawing(g),this._captureDrawingPath(g),this._render())},onMouseMove:function(g,s){if(!!this.canvas._isMainEvent(s.e)&&(this.drawStraightLine=s.e[this.straightLineKey],!(this.limitedToCanvasSize===!0&&this._isOutSideCanvas(g))&&this._captureDrawingPath(g)&&this._points.length>1))if(this.needsFullRender())this.canvas.clearContext(this.canvas.contextTop),this._render();else{var c=this._points,p=c.length,a=this.canvas.contextTop;this._saveAndTransform(a),this.oldEnd&&(a.beginPath(),a.moveTo(this.oldEnd.x,this.oldEnd.y)),this.oldEnd=this._drawSegment(a,c[p-2],c[p-1],!0),a.stroke(),a.restore()}},onMouseUp:function(g){return this.canvas._isMainEvent(g.e)?(this.drawStraightLine=!1,this.oldEnd=void 0,this._finalizeAndAddPath(),!1):!0},_prepareForDrawing:function(g){var s=new e.Point(g.x,g.y);this._reset(),this._addPoint(s),this.canvas.contextTop.moveTo(s.x,s.y)},_addPoint:function(g){return this._points.length>1&&g.eq(this._points[this._points.length-1])?!1:(this.drawStraightLine&&this._points.length>1&&(this._hasStraightLine=!0,this._points.pop()),this._points.push(g),!0)},_reset:function(){this._points=[],this._setBrushStyles(this.canvas.contextTop),this._setShadow(),this._hasStraightLine=!1},_captureDrawingPath:function(g){var s=new e.Point(g.x,g.y);return this._addPoint(s)},_render:function(g){var s,c,p=this._points[0],a=this._points[1];if(g=g||this.canvas.contextTop,this._saveAndTransform(g),g.beginPath(),this._points.length===2&&p.x===a.x&&p.y===a.y){var u=this.width/1e3;p=new e.Point(p.x,p.y),a=new e.Point(a.x,a.y),p.x-=u,a.x+=u}for(g.moveTo(p.x,p.y),s=1,c=this._points.length;s=p&&(o=g[a],_.push(o));return _.push(g[u]),_},_finalizeAndAddPath:function(){var g=this.canvas.contextTop;g.closePath(),this.decimate&&(this._points=this.decimatePoints(this._points,this.decimate));var s=this.convertPointsToSVGPath(this._points);if(this._isEmptySVGPath(s)){this.canvas.requestRenderAll();return}var c=this.createPath(s);this.canvas.clearContext(this.canvas.contextTop),this.canvas.fire("before:path:created",{path:c}),this.canvas.add(c),this.canvas.requestRenderAll(),c.setCoords(),this._resetShadow(),this.canvas.fire("path:created",{path:c})}})}(),e.CircleBrush=e.util.createClass(e.BaseBrush,{width:10,initialize:function(g){this.canvas=g,this.points=[]},drawDot:function(g){var s=this.addPoint(g),c=this.canvas.contextTop;this._saveAndTransform(c),this.dot(c,s),c.restore()},dot:function(g,s){g.fillStyle=s.fill,g.beginPath(),g.arc(s.x,s.y,s.radius,0,Math.PI*2,!1),g.closePath(),g.fill()},onMouseDown:function(g){this.points.length=0,this.canvas.clearContext(this.canvas.contextTop),this._setShadow(),this.drawDot(g)},_render:function(){var g=this.canvas.contextTop,s,c,p=this.points;for(this._saveAndTransform(g),s=0,c=p.length;s0&&!this.preserveObjectStacking){o=[],_=[];for(var y=0,h=this._objects.length;y1&&(this._activeObject._objects=_),o.push.apply(o,_)}else o=this._objects;return o},renderAll:function(){this.contextTopDirty&&!this._groupSelector&&!this.isDrawingMode&&(this.clearContext(this.contextTop),this.contextTopDirty=!1),this.hasLostContext&&(this.renderTopLayer(this.contextTop),this.hasLostContext=!1);var a=this.contextContainer;return this.renderCanvas(a,this._chooseObjectsToRender()),this},renderTopLayer:function(a){a.save(),this.isDrawingMode&&this._isCurrentlyDrawing&&(this.freeDrawingBrush&&this.freeDrawingBrush._render(),this.contextTopDirty=!0),this.selection&&this._groupSelector&&(this._drawSelection(a),this.contextTopDirty=!0),a.restore()},renderTop:function(){var a=this.contextTop;return this.clearContext(a),this.renderTopLayer(a),this.fire("after:render"),this},_normalizePointer:function(a,u){var o=a.calcTransformMatrix(),_=e.util.invertTransform(o),y=this.restorePointerVpt(u);return e.util.transformPoint(y,_)},isTargetTransparent:function(a,u,o){if(a.shouldCache()&&a._cacheCanvas&&a!==this._activeObject){var _=this._normalizePointer(a,{x:u,y:o}),y=Math.max(a.cacheTranslationX+_.x*a.zoomX,0),h=Math.max(a.cacheTranslationY+_.y*a.zoomY,0),M=e.util.isTransparent(a._cacheContext,Math.round(y),Math.round(h),this.targetFindTolerance);return M}var v=this.contextCache,b=a.selectionBackgroundColor,T=this.viewportTransform;a.selectionBackgroundColor="",this.clearContext(v),v.save(),v.transform(T[0],T[1],T[2],T[3],T[4],T[5]),a.render(v),v.restore(),a.selectionBackgroundColor=b;var M=e.util.isTransparent(v,u,o,this.targetFindTolerance);return M},_isSelectionKeyPressed:function(a){var u=!1;return Array.isArray(this.selectionKey)?u=!!this.selectionKey.find(function(o){return a[o]===!0}):u=a[this.selectionKey],u},_shouldClearSelection:function(a,u){var o=this.getActiveObjects(),_=this._activeObject;return!u||u&&_&&o.length>1&&o.indexOf(u)===-1&&_!==u&&!this._isSelectionKeyPressed(a)||u&&!u.evented||u&&!u.selectable&&_&&_!==u},_shouldCenterTransform:function(a,u,o){if(!!a){var _;return u==="scale"||u==="scaleX"||u==="scaleY"||u==="resizing"?_=this.centeredScaling||a.centeredScaling:u==="rotate"&&(_=this.centeredRotation||a.centeredRotation),_?!o:o}},_getOriginFromCorner:function(a,u){var o={x:a.originX,y:a.originY};return u==="ml"||u==="tl"||u==="bl"?o.x="right":(u==="mr"||u==="tr"||u==="br")&&(o.x="left"),u==="tl"||u==="mt"||u==="tr"?o.y="bottom":(u==="bl"||u==="mb"||u==="br")&&(o.y="top"),o},_getActionFromCorner:function(a,u,o,_){if(!u||!a)return"drag";var y=_.controls[u];return y.getActionName(o,y,_)},_setupCurrentTransform:function(a,u,o){if(!!u){var _=this.getPointer(a),y=u.__corner,h=u.controls[y],v=o&&y?h.getActionHandler(a,u,h):e.controlsUtils.dragHandler,b=this._getActionFromCorner(o,y,a,u),T=this._getOriginFromCorner(u,y),M=a[this.centeredKey],O={target:u,action:b,actionHandler:v,corner:y,scaleX:u.scaleX,scaleY:u.scaleY,skewX:u.skewX,skewY:u.skewY,offsetX:_.x-u.left,offsetY:_.y-u.top,originX:T.x,originY:T.y,ex:_.x,ey:_.y,lastX:_.x,lastY:_.y,theta:s(u.angle),width:u.width*u.scaleX,shiftKey:a.shiftKey,altKey:M,original:e.util.saveObjectTransform(u)};this._shouldCenterTransform(u,b,M)&&(O.originX="center",O.originY="center"),O.original.originX=T.x,O.original.originY=T.y,this._currentTransform=O,this._beforeTransform(a)}},setCursor:function(a){this.upperCanvasEl.style.cursor=a},_drawSelection:function(a){var u=this._groupSelector,o=new e.Point(u.ex,u.ey),_=e.util.transformPoint(o,this.viewportTransform),y=new e.Point(u.ex+u.left,u.ey+u.top),h=e.util.transformPoint(y,this.viewportTransform),v=Math.min(_.x,h.x),b=Math.min(_.y,h.y),T=Math.max(_.x,h.x),M=Math.max(_.y,h.y),O=this.selectionLineWidth/2;this.selectionColor&&(a.fillStyle=this.selectionColor,a.fillRect(v,b,T-v,M-b)),!(!this.selectionLineWidth||!this.selectionBorderColor)&&(a.lineWidth=this.selectionLineWidth,a.strokeStyle=this.selectionBorderColor,v+=O,b+=O,T-=O,M-=O,e.Object.prototype._setLineDash.call(this,a,this.selectionDashArray),a.strokeRect(v,b,T-v,M-b))},findTarget:function(a,u){if(!this.skipTargetFind){var o=!0,_=this.getPointer(a,o),y=this._activeObject,h=this.getActiveObjects(),v,b,T=c(a),M=h.length>1&&!u||h.length===1;if(this.targets=[],M&&y._findTargetCorner(_,T)||h.length>1&&!u&&y===this._searchPossibleTargets([y],_))return y;if(h.length===1&&y===this._searchPossibleTargets([y],_))if(this.preserveObjectStacking)v=y,b=this.targets,this.targets=[];else return y;var O=this._searchPossibleTargets(this._objects,_);return a[this.altSelectionKey]&&O&&v&&O!==v&&(O=v,this.targets=b),O}},_checkTarget:function(a,u,o){if(u&&u.visible&&u.evented&&u.containsPoint(a))if((this.perPixelTargetFind||u.perPixelTargetFind)&&!u.isEditing){var _=this.isTargetTransparent(u,o.x,o.y);if(!_)return!0}else return!0},_searchPossibleTargets:function(a,u){for(var o,_=a.length,y;_--;){var h=a[_],v=h.group?this._normalizePointer(h.group,u):u;if(this._checkTarget(v,h,u)){o=a[_],o.subTargetCheck&&o instanceof e.Group&&(y=this._searchPossibleTargets(o._objects,u),y&&this.targets.push(y));break}}return o},restorePointerVpt:function(a){return e.util.transformPoint(a,e.util.invertTransform(this.viewportTransform))},getPointer:function(a,u){if(this._absolutePointer&&!u)return this._absolutePointer;if(this._pointer&&u)return this._pointer;var o=g(a),_=this.upperCanvasEl,y=_.getBoundingClientRect(),h=y.width||0,v=y.height||0,b;(!h||!v)&&("top"in y&&"bottom"in y&&(v=Math.abs(y.top-y.bottom)),"right"in y&&"left"in y&&(h=Math.abs(y.right-y.left))),this.calcOffset(),o.x=o.x-this._offset.left,o.y=o.y-this._offset.top,u||(o=this.restorePointerVpt(o));var T=this.getRetinaScaling();return T!==1&&(o.x/=T,o.y/=T),h===0||v===0?b={width:1,height:1}:b={width:_.width/h,height:_.height/v},{x:o.x*b.width,y:o.y*b.height}},_createUpperCanvas:function(){var a=this.lowerCanvasEl.className.replace(/\s*lower-canvas\s*/,""),u=this.lowerCanvasEl,o=this.upperCanvasEl;o?o.className="":(o=this._createCanvasElement(),this.upperCanvasEl=o),e.util.addClass(o,"upper-canvas "+a),this.wrapperEl.appendChild(o),this._copyCanvasStyle(u,o),this._applyCanvasStyle(o),this.contextTop=o.getContext("2d")},getTopContext:function(){return this.contextTop},_createCacheCanvas:function(){this.cacheCanvasEl=this._createCanvasElement(),this.cacheCanvasEl.setAttribute("width",this.width),this.cacheCanvasEl.setAttribute("height",this.height),this.contextCache=this.cacheCanvasEl.getContext("2d")},_initWrapperElement:function(){this.wrapperEl=e.util.wrapElement(this.lowerCanvasEl,"div",{class:this.containerClass}),e.util.setStyle(this.wrapperEl,{width:this.width+"px",height:this.height+"px",position:"relative"}),e.util.makeElementUnselectable(this.wrapperEl)},_applyCanvasStyle:function(a){var u=this.width||a.width,o=this.height||a.height;e.util.setStyle(a,{position:"absolute",width:u+"px",height:o+"px",left:0,top:0,"touch-action":this.allowTouchScrolling?"manipulation":"none","-ms-touch-action":this.allowTouchScrolling?"manipulation":"none"}),a.width=u,a.height=o,e.util.makeElementUnselectable(a)},_copyCanvasStyle:function(a,u){u.style.cssText=a.style.cssText},getSelectionContext:function(){return this.contextTop},getSelectionElement:function(){return this.upperCanvasEl},getActiveObject:function(){return this._activeObject},getActiveObjects:function(){var a=this._activeObject;return a?a.type==="activeSelection"&&a._objects?a._objects.slice(0):[a]:[]},_onObjectRemoved:function(a){a===this._activeObject&&(this.fire("before:selection:cleared",{target:a}),this._discardActiveObject(),this.fire("selection:cleared",{target:a}),a.fire("deselected")),a===this._hoveredTarget&&(this._hoveredTarget=null,this._hoveredTargets=[]),this.callSuper("_onObjectRemoved",a)},_fireSelectionEvents:function(a,u){var o=!1,_=this.getActiveObjects(),y=[],h=[];a.forEach(function(v){_.indexOf(v)===-1&&(o=!0,v.fire("deselected",{e:u,target:v}),h.push(v))}),_.forEach(function(v){a.indexOf(v)===-1&&(o=!0,v.fire("selected",{e:u,target:v}),y.push(v))}),a.length>0&&_.length>0?o&&this.fire("selection:updated",{e:u,selected:y,deselected:h}):_.length>0?this.fire("selection:created",{e:u,selected:y}):a.length>0&&this.fire("selection:cleared",{e:u,deselected:h})},setActiveObject:function(a,u){var o=this.getActiveObjects();return this._setActiveObject(a,u),this._fireSelectionEvents(o,u),this},_setActiveObject:function(a,u){return this._activeObject===a||!this._discardActiveObject(u,a)||a.onSelect({e:u})?!1:(this._activeObject=a,!0)},_discardActiveObject:function(a,u){var o=this._activeObject;if(o){if(o.onDeselect({e:a,object:u}))return!1;this._activeObject=null}return!0},discardActiveObject:function(a){var u=this.getActiveObjects(),o=this.getActiveObject();return u.length&&this.fire("before:selection:cleared",{target:o,e:a}),this._discardActiveObject(a),this._fireSelectionEvents(u,a),this},dispose:function(){var a=this.wrapperEl;return this.removeListeners(),a.removeChild(this.upperCanvasEl),a.removeChild(this.lowerCanvasEl),this.contextCache=null,this.contextTop=null,["upperCanvasEl","cacheCanvasEl"].forEach(function(u){e.util.cleanUpJsdomNode(this[u]),this[u]=void 0}.bind(this)),a.parentNode&&a.parentNode.replaceChild(this.lowerCanvasEl,this.wrapperEl),delete this.wrapperEl,e.StaticCanvas.prototype.dispose.call(this),this},clear:function(){return this.discardActiveObject(),this.clearContext(this.contextTop),this.callSuper("clear")},drawControls:function(a){var u=this._activeObject;u&&u._renderControls(a)},_toObject:function(a,u,o){var _=this._realizeGroupTransformOnObject(a),y=this.callSuper("_toObject",a,u,o);return this._unwindGroupTransformOnObject(a,_),y},_realizeGroupTransformOnObject:function(a){if(a.group&&a.group.type==="activeSelection"&&this._activeObject===a.group){var u=["angle","flipX","flipY","left","scaleX","scaleY","skewX","skewY","top"],o={};return u.forEach(function(_){o[_]=a[_]}),e.util.addTransformToObject(a,this._activeObject.calcOwnMatrix()),o}else return null},_unwindGroupTransformOnObject:function(a,u){u&&a.set(u)},_setSVGObject:function(a,u,o){var _=this._realizeGroupTransformOnObject(u);this.callSuper("_setSVGObject",a,u,o),this._unwindGroupTransformOnObject(u,_)},setViewportTransform:function(a){this.renderOnAddRemove&&this._activeObject&&this._activeObject.isEditing&&this._activeObject.clearContextTop(),e.StaticCanvas.prototype.setViewportTransform.call(this,a)}});for(var p in e.StaticCanvas)p!=="prototype"&&(e.Canvas[p]=e.StaticCanvas[p])}(),function(){var g=e.util.addListener,s=e.util.removeListener,c=3,p=2,a=1,u={passive:!1};function o(_,y){return _.button&&_.button===y-1}e.util.object.extend(e.Canvas.prototype,{mainTouchId:null,_initEventListeners:function(){this.removeListeners(),this._bindEvents(),this.addOrRemove(g,"add")},_getEventPrefix:function(){return this.enablePointerEvents?"pointer":"mouse"},addOrRemove:function(_,y){var h=this.upperCanvasEl,v=this._getEventPrefix();_(e.window,"resize",this._onResize),_(h,v+"down",this._onMouseDown),_(h,v+"move",this._onMouseMove,u),_(h,v+"out",this._onMouseOut),_(h,v+"enter",this._onMouseEnter),_(h,"wheel",this._onMouseWheel),_(h,"contextmenu",this._onContextMenu),_(h,"dblclick",this._onDoubleClick),_(h,"dragover",this._onDragOver),_(h,"dragenter",this._onDragEnter),_(h,"dragleave",this._onDragLeave),_(h,"drop",this._onDrop),this.enablePointerEvents||_(h,"touchstart",this._onTouchStart,u),typeof eventjs<"u"&&y in eventjs&&(eventjs[y](h,"gesture",this._onGesture),eventjs[y](h,"drag",this._onDrag),eventjs[y](h,"orientation",this._onOrientationChange),eventjs[y](h,"shake",this._onShake),eventjs[y](h,"longpress",this._onLongPress))},removeListeners:function(){this.addOrRemove(s,"remove");var _=this._getEventPrefix();s(e.document,_+"up",this._onMouseUp),s(e.document,"touchend",this._onTouchEnd,u),s(e.document,_+"move",this._onMouseMove,u),s(e.document,"touchmove",this._onMouseMove,u)},_bindEvents:function(){this.eventsBound||(this._onMouseDown=this._onMouseDown.bind(this),this._onTouchStart=this._onTouchStart.bind(this),this._onMouseMove=this._onMouseMove.bind(this),this._onMouseUp=this._onMouseUp.bind(this),this._onTouchEnd=this._onTouchEnd.bind(this),this._onResize=this._onResize.bind(this),this._onGesture=this._onGesture.bind(this),this._onDrag=this._onDrag.bind(this),this._onShake=this._onShake.bind(this),this._onLongPress=this._onLongPress.bind(this),this._onOrientationChange=this._onOrientationChange.bind(this),this._onMouseWheel=this._onMouseWheel.bind(this),this._onMouseOut=this._onMouseOut.bind(this),this._onMouseEnter=this._onMouseEnter.bind(this),this._onContextMenu=this._onContextMenu.bind(this),this._onDoubleClick=this._onDoubleClick.bind(this),this._onDragOver=this._onDragOver.bind(this),this._onDragEnter=this._simpleEventHandler.bind(this,"dragenter"),this._onDragLeave=this._simpleEventHandler.bind(this,"dragleave"),this._onDrop=this._onDrop.bind(this),this.eventsBound=!0)},_onGesture:function(_,y){this.__onTransformGesture&&this.__onTransformGesture(_,y)},_onDrag:function(_,y){this.__onDrag&&this.__onDrag(_,y)},_onMouseWheel:function(_){this.__onMouseWheel(_)},_onMouseOut:function(_){var y=this._hoveredTarget;this.fire("mouse:out",{target:y,e:_}),this._hoveredTarget=null,y&&y.fire("mouseout",{e:_});var h=this;this._hoveredTargets.forEach(function(v){h.fire("mouse:out",{target:y,e:_}),v&&y.fire("mouseout",{e:_})}),this._hoveredTargets=[]},_onMouseEnter:function(_){!this._currentTransform&&!this.findTarget(_)&&(this.fire("mouse:over",{target:null,e:_}),this._hoveredTarget=null,this._hoveredTargets=[])},_onOrientationChange:function(_,y){this.__onOrientationChange&&this.__onOrientationChange(_,y)},_onShake:function(_,y){this.__onShake&&this.__onShake(_,y)},_onLongPress:function(_,y){this.__onLongPress&&this.__onLongPress(_,y)},_onDragOver:function(_){_.preventDefault();var y=this._simpleEventHandler("dragover",_);this._fireEnterLeaveEvents(y,_)},_onDrop:function(_){return this._simpleEventHandler("drop:before",_),this._simpleEventHandler("drop",_)},_onContextMenu:function(_){return this.stopContextMenu&&(_.stopPropagation(),_.preventDefault()),!1},_onDoubleClick:function(_){this._cacheTransformEventData(_),this._handleEvent(_,"dblclick"),this._resetTransformEventData(_)},getPointerId:function(_){var y=_.changedTouches;return y?y[0]&&y[0].identifier:this.enablePointerEvents?_.pointerId:-1},_isMainEvent:function(_){return _.isPrimary===!0?!0:_.isPrimary===!1?!1:_.type==="touchend"&&_.touches.length===0?!0:_.changedTouches?_.changedTouches[0].identifier===this.mainTouchId:!0},_onTouchStart:function(_){_.preventDefault(),this.mainTouchId===null&&(this.mainTouchId=this.getPointerId(_)),this.__onMouseDown(_),this._resetTransformEventData();var y=this.upperCanvasEl,h=this._getEventPrefix();g(e.document,"touchend",this._onTouchEnd,u),g(e.document,"touchmove",this._onMouseMove,u),s(y,h+"down",this._onMouseDown)},_onMouseDown:function(_){this.__onMouseDown(_),this._resetTransformEventData();var y=this.upperCanvasEl,h=this._getEventPrefix();s(y,h+"move",this._onMouseMove,u),g(e.document,h+"up",this._onMouseUp),g(e.document,h+"move",this._onMouseMove,u)},_onTouchEnd:function(_){if(!(_.touches.length>0)){this.__onMouseUp(_),this._resetTransformEventData(),this.mainTouchId=null;var y=this._getEventPrefix();s(e.document,"touchend",this._onTouchEnd,u),s(e.document,"touchmove",this._onMouseMove,u);var h=this;this._willAddMouseDown&&clearTimeout(this._willAddMouseDown),this._willAddMouseDown=setTimeout(function(){g(h.upperCanvasEl,y+"down",h._onMouseDown),h._willAddMouseDown=0},400)}},_onMouseUp:function(_){this.__onMouseUp(_),this._resetTransformEventData();var y=this.upperCanvasEl,h=this._getEventPrefix();this._isMainEvent(_)&&(s(e.document,h+"up",this._onMouseUp),s(e.document,h+"move",this._onMouseMove,u),g(y,h+"move",this._onMouseMove,u))},_onMouseMove:function(_){!this.allowTouchScrolling&&_.preventDefault&&_.preventDefault(),this.__onMouseMove(_)},_onResize:function(){this.calcOffset()},_shouldRender:function(_){var y=this._activeObject;return!!y!=!!_||y&&_&&y!==_?!0:(y&&y.isEditing,!1)},__onMouseUp:function(_){var y,h=this._currentTransform,v=this._groupSelector,b=!1,T=!v||v.left===0&&v.top===0;if(this._cacheTransformEventData(_),y=this._target,this._handleEvent(_,"up:before"),o(_,c)){this.fireRightClick&&this._handleEvent(_,"up",c,T);return}if(o(_,p)){this.fireMiddleClick&&this._handleEvent(_,"up",p,T),this._resetTransformEventData();return}if(this.isDrawingMode&&this._isCurrentlyDrawing){this._onMouseUpInDrawingMode(_);return}if(!!this._isMainEvent(_)){if(h&&(this._finalizeCurrentTransform(_),b=h.actionPerformed),!T){var M=y===this._activeObject;this._maybeGroupObjects(_),b||(b=this._shouldRender(y)||!M&&y===this._activeObject)}var O,F;if(y){if(O=y._findTargetCorner(this.getPointer(_,!0),e.util.isTouchEvent(_)),y.selectable&&y!==this._activeObject&&y.activeOn==="up")this.setActiveObject(y,_),b=!0;else{var D=y.controls[O],R=D&&D.getMouseUpHandler(_,y,D);R&&(F=this.getPointer(_),R(_,h,F.x,F.y))}y.isMoving=!1}if(h&&(h.target!==y||h.corner!==O)){var Q=h.target&&h.target.controls[h.corner],ie=Q&&Q.getMouseUpHandler(_,y,D);F=F||this.getPointer(_),ie&&ie(_,h,F.x,F.y)}this._setCursorFromEvent(_,y),this._handleEvent(_,"up",a,T),this._groupSelector=null,this._currentTransform=null,y&&(y.__corner=0),b?this.requestRenderAll():T||this.renderTop()}},_simpleEventHandler:function(_,y){var h=this.findTarget(y),v=this.targets,b={e:y,target:h,subTargets:v};if(this.fire(_,b),h&&h.fire(_,b),!v)return h;for(var T=0;T1&&(a=new e.ActiveSelection(p.reverse(),{canvas:this}),this.setActiveObject(a,c))},_collectObjects:function(c){for(var p=[],a,u=this._groupSelector.ex,o=this._groupSelector.ey,_=u+this._groupSelector.left,y=o+this._groupSelector.top,h=new e.Point(g(u,_),g(o,y)),v=new e.Point(s(u,_),s(o,y)),b=!this.selectionFullyContained,T=u===_&&o===y,M=this._objects.length;M--&&(a=this._objects[M],!(!(!a||!a.selectable||!a.visible)&&(b&&a.intersectsWithRect(h,v,!0)||a.isContainedWithinRect(h,v,!0)||b&&a.containsPoint(h,null,!0)||b&&a.containsPoint(v,null,!0))&&(p.push(a),T))););return p.length>1&&(p=p.filter(function(O){return!O.onSelect({e:c})})),p},_maybeGroupObjects:function(c){this.selection&&this._groupSelector&&this._groupSelectedObjects(c),this.setCursor(this.defaultCursor),this._groupSelector=null}})}(),function(){e.util.object.extend(e.StaticCanvas.prototype,{toDataURL:function(g){g||(g={});var s=g.format||"png",c=g.quality||1,p=(g.multiplier||1)*(g.enableRetinaScaling?this.getRetinaScaling():1),a=this.toCanvasElement(p,g);return e.util.toDataURL(a,s,c)},toCanvasElement:function(g,s){g=g||1,s=s||{};var c=(s.width||this.width)*g,p=(s.height||this.height)*g,a=this.getZoom(),u=this.width,o=this.height,_=a*g,y=this.viewportTransform,h=(y[4]-(s.left||0))*g,v=(y[5]-(s.top||0))*g,b=this.interactive,T=[_,0,0,_,h,v],M=this.enableRetinaScaling,O=e.util.createCanvasElement(),F=this.contextTop;return O.width=c,O.height=p,this.contextTop=null,this.enableRetinaScaling=!1,this.interactive=!1,this.viewportTransform=T,this.width=c,this.height=p,this.calcViewportBoundaries(),this.renderCanvas(O.getContext("2d"),this._objects),this.viewportTransform=y,this.width=u,this.height=o,this.calcViewportBoundaries(),this.interactive=b,this.enableRetinaScaling=M,this.contextTop=F,O}})}(),e.util.object.extend(e.StaticCanvas.prototype,{loadFromJSON:function(g,s,c){if(!!g){var p=typeof g=="string"?JSON.parse(g):e.util.object.clone(g),a=this,u=p.clipPath,o=this.renderOnAddRemove;return this.renderOnAddRemove=!1,delete p.clipPath,this._enlivenObjects(p.objects,function(_){a.clear(),a._setBgOverlay(p,function(){u?a._enlivenObjects([u],function(y){a.clipPath=y[0],a.__setupCanvas.call(a,p,_,o,s)}):a.__setupCanvas.call(a,p,_,o,s)})},c),this}},__setupCanvas:function(g,s,c,p){var a=this;s.forEach(function(u,o){a.insertAt(u,o)}),this.renderOnAddRemove=c,delete g.objects,delete g.backgroundImage,delete g.overlayImage,delete g.background,delete g.overlay,this._setOptions(g),this.renderAll(),p&&p()},_setBgOverlay:function(g,s){var c={backgroundColor:!1,overlayColor:!1,backgroundImage:!1,overlayImage:!1};if(!g.backgroundImage&&!g.overlayImage&&!g.background&&!g.overlay){s&&s();return}var p=function(){c.backgroundImage&&c.overlayImage&&c.backgroundColor&&c.overlayColor&&s&&s()};this.__setBgOverlay("backgroundImage",g.backgroundImage,c,p),this.__setBgOverlay("overlayImage",g.overlayImage,c,p),this.__setBgOverlay("backgroundColor",g.background,c,p),this.__setBgOverlay("overlayColor",g.overlay,c,p)},__setBgOverlay:function(g,s,c,p){var a=this;if(!s){c[g]=!0,p&&p();return}g==="backgroundImage"||g==="overlayImage"?e.util.enlivenObjects([s],function(u){a[g]=u[0],c[g]=!0,p&&p()}):this["set"+e.util.string.capitalize(g,!0)](s,function(){c[g]=!0,p&&p()})},_enlivenObjects:function(g,s,c){if(!g||g.length===0){s&&s([]);return}e.util.enlivenObjects(g,function(p){s&&s(p)},null,c)},_toDataURL:function(g,s){this.clone(function(c){s(c.toDataURL(g))})},_toDataURLWithMultiplier:function(g,s,c){this.clone(function(p){c(p.toDataURLWithMultiplier(g,s))})},clone:function(g,s){var c=JSON.stringify(this.toJSON(s));this.cloneWithoutData(function(p){p.loadFromJSON(c,function(){g&&g(p)})})},cloneWithoutData:function(g){var s=e.util.createCanvasElement();s.width=this.width,s.height=this.height;var c=new e.Canvas(s);this.backgroundImage?(c.setBackgroundImage(this.backgroundImage.src,function(){c.renderAll(),g&&g(c)}),c.backgroundImageOpacity=this.backgroundImageOpacity,c.backgroundImageStretch=this.backgroundImageStretch):g&&g(c)}}),function(g){var s=g.fabric||(g.fabric={}),c=s.util.object.extend,p=s.util.object.clone,a=s.util.toFixed,u=s.util.string.capitalize,o=s.util.degreesToRadians,_=!s.isLikelyNode,y=2;s.Object||(s.Object=s.util.createClass(s.CommonMethods,{type:"object",originX:"left",originY:"top",top:0,left:0,width:0,height:0,scaleX:1,scaleY:1,flipX:!1,flipY:!1,opacity:1,angle:0,skewX:0,skewY:0,cornerSize:13,touchCornerSize:24,transparentCorners:!0,hoverCursor:null,moveCursor:null,padding:0,borderColor:"rgb(178,204,255)",borderDashArray:null,cornerColor:"rgb(178,204,255)",cornerStrokeColor:null,cornerStyle:"rect",cornerDashArray:null,centeredScaling:!1,centeredRotation:!0,fill:"rgb(0,0,0)",fillRule:"nonzero",globalCompositeOperation:"source-over",backgroundColor:"",selectionBackgroundColor:"",stroke:null,strokeWidth:1,strokeDashArray:null,strokeDashOffset:0,strokeLineCap:"butt",strokeLineJoin:"miter",strokeMiterLimit:4,shadow:null,borderOpacityWhenMoving:.4,borderScaleFactor:1,minScaleLimit:0,selectable:!0,evented:!0,visible:!0,hasControls:!0,hasBorders:!0,perPixelTargetFind:!1,includeDefaultValues:!0,lockMovementX:!1,lockMovementY:!1,lockRotation:!1,lockScalingX:!1,lockScalingY:!1,lockSkewingX:!1,lockSkewingY:!1,lockScalingFlip:!1,excludeFromExport:!1,objectCaching:_,statefullCache:!1,noScaleCache:!0,strokeUniform:!1,dirty:!0,__corner:0,paintFirst:"fill",activeOn:"down",stateProperties:"top left width height scaleX scaleY flipX flipY originX originY transformMatrix stroke strokeWidth strokeDashArray strokeLineCap strokeDashOffset strokeLineJoin strokeMiterLimit angle opacity fill globalCompositeOperation shadow visible backgroundColor skewX skewY fillRule paintFirst clipPath strokeUniform".split(" "),cacheProperties:"fill stroke strokeWidth strokeDashArray width height paintFirst strokeUniform strokeLineCap strokeDashOffset strokeLineJoin strokeMiterLimit backgroundColor clipPath".split(" "),colorProperties:"fill stroke backgroundColor".split(" "),clipPath:void 0,inverted:!1,absolutePositioned:!1,initialize:function(h){h&&this.setOptions(h)},_createCacheCanvas:function(){this._cacheProperties={},this._cacheCanvas=s.util.createCanvasElement(),this._cacheContext=this._cacheCanvas.getContext("2d"),this._updateCacheCanvas(),this.dirty=!0},_limitCacheSize:function(h){var v=s.perfLimitSizeTotal,b=h.width,T=h.height,M=s.maxCacheSideLimit,O=s.minCacheSideLimit;if(b<=M&&T<=M&&b*T<=v)return bQ&&(h.zoomX/=b/Q,h.width=Q,h.capped=!0),T>ie&&(h.zoomY/=T/ie,h.height=ie,h.capped=!0),h},_getCacheCanvasDimensions:function(){var h=this.getTotalObjectScaling(),v=this._getTransformedDimensions(0,0),b=v.x*h.scaleX/this.scaleX,T=v.y*h.scaleY/this.scaleY;return{width:b+y,height:T+y,zoomX:h.scaleX,zoomY:h.scaleY,x:b,y:T}},_updateCacheCanvas:function(){var h=this.canvas;if(this.noScaleCache&&h&&h._currentTransform){var v=h._currentTransform.target,b=h._currentTransform.action;if(this===v&&b.slice&&b.slice(0,5)==="scale")return!1}var T=this._cacheCanvas,M=this._limitCacheSize(this._getCacheCanvasDimensions()),O=s.minCacheSideLimit,F=M.width,D=M.height,R,Q,ie=M.zoomX,pe=M.zoomY,ke=F!==this.cacheWidth||D!==this.cacheHeight,Te=this.zoomX!==ie||this.zoomY!==pe,Re=ke||Te,ze=0,Ze=0,Ie=!1;if(ke){var ee=this._cacheCanvas.width,W=this._cacheCanvas.height,K=F>ee||D>W,se=(FO&&W>O;Ie=K||se,K&&!M.capped&&(F>O||D>O)&&(ze=F*.1,Ze=D*.1)}return this instanceof s.Text&&this.path&&(Re=!0,Ie=!0,ze+=this.getHeightOfLine(0)*this.zoomX,Ze+=this.getHeightOfLine(0)*this.zoomY),Re?(Ie?(T.width=Math.ceil(F+ze),T.height=Math.ceil(D+Ze)):(this._cacheContext.setTransform(1,0,0,1,0,0),this._cacheContext.clearRect(0,0,T.width,T.height)),R=M.x/2,Q=M.y/2,this.cacheTranslationX=Math.round(T.width/2-R)+R,this.cacheTranslationY=Math.round(T.height/2-Q)+Q,this.cacheWidth=F,this.cacheHeight=D,this._cacheContext.translate(this.cacheTranslationX,this.cacheTranslationY),this._cacheContext.scale(ie,pe),this.zoomX=ie,this.zoomY=pe,!0):!1},setOptions:function(h){this._setOptions(h),this._initGradient(h.fill,"fill"),this._initGradient(h.stroke,"stroke"),this._initPattern(h.fill,"fill"),this._initPattern(h.stroke,"stroke")},transform:function(h){var v=this.group&&!this.group._transformDone||this.group&&this.canvas&&h===this.canvas.contextTop,b=this.calcTransformMatrix(!v);h.transform(b[0],b[1],b[2],b[3],b[4],b[5])},toObject:function(h){var v=s.Object.NUM_FRACTION_DIGITS,b={type:this.type,version:s.version,originX:this.originX,originY:this.originY,left:a(this.left,v),top:a(this.top,v),width:a(this.width,v),height:a(this.height,v),fill:this.fill&&this.fill.toObject?this.fill.toObject():this.fill,stroke:this.stroke&&this.stroke.toObject?this.stroke.toObject():this.stroke,strokeWidth:a(this.strokeWidth,v),strokeDashArray:this.strokeDashArray?this.strokeDashArray.concat():this.strokeDashArray,strokeLineCap:this.strokeLineCap,strokeDashOffset:this.strokeDashOffset,strokeLineJoin:this.strokeLineJoin,strokeUniform:this.strokeUniform,strokeMiterLimit:a(this.strokeMiterLimit,v),scaleX:a(this.scaleX,v),scaleY:a(this.scaleY,v),angle:a(this.angle,v),flipX:this.flipX,flipY:this.flipY,opacity:a(this.opacity,v),shadow:this.shadow&&this.shadow.toObject?this.shadow.toObject():this.shadow,visible:this.visible,backgroundColor:this.backgroundColor,fillRule:this.fillRule,paintFirst:this.paintFirst,globalCompositeOperation:this.globalCompositeOperation,skewX:a(this.skewX,v),skewY:a(this.skewY,v)};return this.clipPath&&!this.clipPath.excludeFromExport&&(b.clipPath=this.clipPath.toObject(h),b.clipPath.inverted=this.clipPath.inverted,b.clipPath.absolutePositioned=this.clipPath.absolutePositioned),s.util.populateWithProperties(this,b,h),this.includeDefaultValues||(b=this._removeDefaultValues(b)),b},toDatalessObject:function(h){return this.toObject(h)},_removeDefaultValues:function(h){var v=s.util.getKlass(h.type).prototype,b=v.stateProperties;return b.forEach(function(T){T==="left"||T==="top"||(h[T]===v[T]&&delete h[T],Array.isArray(h[T])&&Array.isArray(v[T])&&h[T].length===0&&v[T].length===0&&delete h[T])}),h},toString:function(){return"#"},getObjectScaling:function(){if(!this.group)return{scaleX:this.scaleX,scaleY:this.scaleY};var h=s.util.qrDecompose(this.calcTransformMatrix());return{scaleX:Math.abs(h.scaleX),scaleY:Math.abs(h.scaleY)}},getTotalObjectScaling:function(){var h=this.getObjectScaling(),v=h.scaleX,b=h.scaleY;if(this.canvas){var T=this.canvas.getZoom(),M=this.canvas.getRetinaScaling();v*=T*M,b*=T*M}return{scaleX:v,scaleY:b}},getObjectOpacity:function(){var h=this.opacity;return this.group&&(h*=this.group.getObjectOpacity()),h},_set:function(h,v){var b=h==="scaleX"||h==="scaleY",T=this[h]!==v,M=!1;return b&&(v=this._constrainScale(v)),h==="scaleX"&&v<0?(this.flipX=!this.flipX,v*=-1):h==="scaleY"&&v<0?(this.flipY=!this.flipY,v*=-1):h==="shadow"&&v&&!(v instanceof s.Shadow)?v=new s.Shadow(v):h==="dirty"&&this.group&&this.group.set("dirty",v),this[h]=v,T&&(M=this.group&&this.group.isOnACache(),this.cacheProperties.indexOf(h)>-1?(this.dirty=!0,M&&this.group.set("dirty",!0)):M&&this.stateProperties.indexOf(h)>-1&&this.group.set("dirty",!0)),this},setOnGroup:function(){},getViewportTransform:function(){return this.canvas&&this.canvas.viewportTransform?this.canvas.viewportTransform:s.iMatrix.concat()},isNotVisible:function(){return this.opacity===0||!this.width&&!this.height&&this.strokeWidth===0||!this.visible},render:function(h){this.isNotVisible()||this.canvas&&this.canvas.skipOffscreen&&!this.group&&!this.isOnScreen()||(h.save(),this._setupCompositeOperation(h),this.drawSelectionBackground(h),this.transform(h),this._setOpacity(h),this._setShadow(h,this),this.shouldCache()?(this.renderCache(),this.drawCacheOnCanvas(h)):(this._removeCacheCanvas(),this.dirty=!1,this.drawObject(h),this.objectCaching&&this.statefullCache&&this.saveState({propertySet:"cacheProperties"})),h.restore())},renderCache:function(h){h=h||{},(!this._cacheCanvas||!this._cacheContext)&&this._createCacheCanvas(),this.isCacheDirty()&&(this.statefullCache&&this.saveState({propertySet:"cacheProperties"}),this.drawObject(this._cacheContext,h.forClipping),this.dirty=!1)},_removeCacheCanvas:function(){this._cacheCanvas=null,this._cacheContext=null,this.cacheWidth=0,this.cacheHeight=0},hasStroke:function(){return this.stroke&&this.stroke!=="transparent"&&this.strokeWidth!==0},hasFill:function(){return this.fill&&this.fill!=="transparent"},needsItsOwnCache:function(){return!!(this.paintFirst==="stroke"&&this.hasFill()&&this.hasStroke()&&typeof this.shadow=="object"||this.clipPath)},shouldCache:function(){return this.ownCaching=this.needsItsOwnCache()||this.objectCaching&&(!this.group||!this.group.isOnACache()),this.ownCaching},willDrawShadow:function(){return!!this.shadow&&(this.shadow.offsetX!==0||this.shadow.offsetY!==0)},drawClipPathOnCache:function(h,v){if(h.save(),v.inverted?h.globalCompositeOperation="destination-out":h.globalCompositeOperation="destination-in",v.absolutePositioned){var b=s.util.invertTransform(this.calcTransformMatrix());h.transform(b[0],b[1],b[2],b[3],b[4],b[5])}v.transform(h),h.scale(1/v.zoomX,1/v.zoomY),h.drawImage(v._cacheCanvas,-v.cacheTranslationX,-v.cacheTranslationY),h.restore()},drawObject:function(h,v){var b=this.fill,T=this.stroke;v?(this.fill="black",this.stroke="",this._setClippingProperties(h)):this._renderBackground(h),this._render(h),this._drawClipPath(h,this.clipPath),this.fill=b,this.stroke=T},_drawClipPath:function(h,v){!v||(v.canvas=this.canvas,v.shouldCache(),v._transformDone=!0,v.renderCache({forClipping:!0}),this.drawClipPathOnCache(h,v))},drawCacheOnCanvas:function(h){h.scale(1/this.zoomX,1/this.zoomY),h.drawImage(this._cacheCanvas,-this.cacheTranslationX,-this.cacheTranslationY)},isCacheDirty:function(h){if(this.isNotVisible())return!1;if(this._cacheCanvas&&this._cacheContext&&!h&&this._updateCacheCanvas())return!0;if(this.dirty||this.clipPath&&this.clipPath.absolutePositioned||this.statefullCache&&this.hasStateChanged("cacheProperties")){if(this._cacheCanvas&&this._cacheContext&&!h){var v=this.cacheWidth/this.zoomX,b=this.cacheHeight/this.zoomY;this._cacheContext.clearRect(-v/2,-b/2,v,b)}return!0}return!1},_renderBackground:function(h){if(!!this.backgroundColor){var v=this._getNonTransformedDimensions();h.fillStyle=this.backgroundColor,h.fillRect(-v.x/2,-v.y/2,v.x,v.y),this._removeShadow(h)}},_setOpacity:function(h){this.group&&!this.group._transformDone?h.globalAlpha=this.getObjectOpacity():h.globalAlpha*=this.opacity},_setStrokeStyles:function(h,v){var b=v.stroke;b&&(h.lineWidth=v.strokeWidth,h.lineCap=v.strokeLineCap,h.lineDashOffset=v.strokeDashOffset,h.lineJoin=v.strokeLineJoin,h.miterLimit=v.strokeMiterLimit,b.toLive?b.gradientUnits==="percentage"||b.gradientTransform||b.patternTransform?this._applyPatternForTransformedGradient(h,b):(h.strokeStyle=b.toLive(h,this),this._applyPatternGradientTransform(h,b)):h.strokeStyle=v.stroke)},_setFillStyles:function(h,v){var b=v.fill;b&&(b.toLive?(h.fillStyle=b.toLive(h,this),this._applyPatternGradientTransform(h,v.fill)):h.fillStyle=b)},_setClippingProperties:function(h){h.globalAlpha=1,h.strokeStyle="transparent",h.fillStyle="#000000"},_setLineDash:function(h,v){!v||v.length===0||(1&v.length&&v.push.apply(v,v),h.setLineDash(v))},_renderControls:function(h,v){var b=this.getViewportTransform(),T=this.calcTransformMatrix(),M,O,F;v=v||{},O=typeof v.hasBorders<"u"?v.hasBorders:this.hasBorders,F=typeof v.hasControls<"u"?v.hasControls:this.hasControls,T=s.util.multiplyTransformMatrices(b,T),M=s.util.qrDecompose(T),h.save(),h.translate(M.translateX,M.translateY),h.lineWidth=1*this.borderScaleFactor,this.group||(h.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1),this.flipX&&(M.angle-=180),h.rotate(o(this.group?M.angle:this.angle)),v.forActiveSelection||this.group?O&&this.drawBordersInGroup(h,M,v):O&&this.drawBorders(h,v),F&&this.drawControls(h,v),h.restore()},_setShadow:function(h){if(!!this.shadow){var v=this.shadow,b=this.canvas,T,M=b&&b.viewportTransform[0]||1,O=b&&b.viewportTransform[3]||1;v.nonScaling?T={scaleX:1,scaleY:1}:T=this.getObjectScaling(),b&&b._isRetinaScaling()&&(M*=s.devicePixelRatio,O*=s.devicePixelRatio),h.shadowColor=v.color,h.shadowBlur=v.blur*s.browserShadowBlurConstant*(M+O)*(T.scaleX+T.scaleY)/4,h.shadowOffsetX=v.offsetX*M*T.scaleX,h.shadowOffsetY=v.offsetY*O*T.scaleY}},_removeShadow:function(h){!this.shadow||(h.shadowColor="",h.shadowBlur=h.shadowOffsetX=h.shadowOffsetY=0)},_applyPatternGradientTransform:function(h,v){if(!v||!v.toLive)return{offsetX:0,offsetY:0};var b=v.gradientTransform||v.patternTransform,T=-this.width/2+v.offsetX||0,M=-this.height/2+v.offsetY||0;return v.gradientUnits==="percentage"?h.transform(this.width,0,0,this.height,T,M):h.transform(1,0,0,1,T,M),b&&h.transform(b[0],b[1],b[2],b[3],b[4],b[5]),{offsetX:T,offsetY:M}},_renderPaintInOrder:function(h){this.paintFirst==="stroke"?(this._renderStroke(h),this._renderFill(h)):(this._renderFill(h),this._renderStroke(h))},_render:function(){},_renderFill:function(h){!this.fill||(h.save(),this._setFillStyles(h,this),this.fillRule==="evenodd"?h.fill("evenodd"):h.fill(),h.restore())},_renderStroke:function(h){if(!(!this.stroke||this.strokeWidth===0)){if(this.shadow&&!this.shadow.affectStroke&&this._removeShadow(h),h.save(),this.strokeUniform&&this.group){var v=this.getObjectScaling();h.scale(1/v.scaleX,1/v.scaleY)}else this.strokeUniform&&h.scale(1/this.scaleX,1/this.scaleY);this._setLineDash(h,this.strokeDashArray),this._setStrokeStyles(h,this),h.stroke(),h.restore()}},_applyPatternForTransformedGradient:function(h,v){var b=this._limitCacheSize(this._getCacheCanvasDimensions()),T=s.util.createCanvasElement(),M,O=this.canvas.getRetinaScaling(),F=b.x/this.scaleX/O,D=b.y/this.scaleY/O;T.width=F,T.height=D,M=T.getContext("2d"),M.beginPath(),M.moveTo(0,0),M.lineTo(F,0),M.lineTo(F,D),M.lineTo(0,D),M.closePath(),M.translate(F/2,D/2),M.scale(b.zoomX/this.scaleX/O,b.zoomY/this.scaleY/O),this._applyPatternGradientTransform(M,v),M.fillStyle=v.toLive(h),M.fill(),h.translate(-this.width/2-this.strokeWidth/2,-this.height/2-this.strokeWidth/2),h.scale(O*this.scaleX/b.zoomX,O*this.scaleY/b.zoomY),h.strokeStyle=M.createPattern(T,"no-repeat")},_findCenterFromElement:function(){return{x:this.left+this.width/2,y:this.top+this.height/2}},_assignTransformMatrixProps:function(){if(this.transformMatrix){var h=s.util.qrDecompose(this.transformMatrix);this.flipX=!1,this.flipY=!1,this.set("scaleX",h.scaleX),this.set("scaleY",h.scaleY),this.angle=h.angle,this.skewX=h.skewX,this.skewY=0}},_removeTransformMatrix:function(h){var v=this._findCenterFromElement();this.transformMatrix&&(this._assignTransformMatrixProps(),v=s.util.transformPoint(v,this.transformMatrix)),this.transformMatrix=null,h&&(this.scaleX*=h.scaleX,this.scaleY*=h.scaleY,this.cropX=h.cropX,this.cropY=h.cropY,v.x+=h.offsetLeft,v.y+=h.offsetTop,this.width=h.width,this.height=h.height),this.setPositionByOrigin(v,"center","center")},clone:function(h,v){var b=this.toObject(v);this.constructor.fromObject?this.constructor.fromObject(b,h):s.Object._fromObject("Object",b,h)},cloneAsImage:function(h,v){var b=this.toCanvasElement(v);return h&&h(new s.Image(b)),this},toCanvasElement:function(h){h||(h={});var v=s.util,b=v.saveObjectTransform(this),T=this.group,M=this.shadow,O=Math.abs,F=(h.multiplier||1)*(h.enableRetinaScaling?s.devicePixelRatio:1);delete this.group,h.withoutTransform&&v.resetObjectTransform(this),h.withoutShadow&&(this.shadow=null);var D=s.util.createCanvasElement(),R=this.getBoundingRect(!0,!0),Q=this.shadow,ie,pe={x:0,y:0},ke,Te,Re;Q&&(ke=Q.blur,Q.nonScaling?ie={scaleX:1,scaleY:1}:ie=this.getObjectScaling(),pe.x=2*Math.round(O(Q.offsetX)+ke)*O(ie.scaleX),pe.y=2*Math.round(O(Q.offsetY)+ke)*O(ie.scaleY)),Te=R.width+pe.x,Re=R.height+pe.y,D.width=Math.ceil(Te),D.height=Math.ceil(Re);var ze=new s.StaticCanvas(D,{enableRetinaScaling:!1,renderOnAddRemove:!1,skipOffscreen:!1});h.format==="jpeg"&&(ze.backgroundColor="#fff"),this.setPositionByOrigin(new s.Point(ze.width/2,ze.height/2),"center","center");var Ze=this.canvas;ze.add(this);var Ie=ze.toCanvasElement(F||1,h);return this.shadow=M,this.set("canvas",Ze),T&&(this.group=T),this.set(b).setCoords(),ze._objects=[],ze.dispose(),ze=null,Ie},toDataURL:function(h){return h||(h={}),s.util.toDataURL(this.toCanvasElement(h),h.format||"png",h.quality||1)},isType:function(h){return arguments.length>1?Array.from(arguments).includes(this.type):this.type===h},complexity:function(){return 1},toJSON:function(h){return this.toObject(h)},rotate:function(h){var v=(this.originX!=="center"||this.originY!=="center")&&this.centeredRotation;return v&&this._setOriginToCenter(),this.set("angle",h),v&&this._resetOrigin(),this},centerH:function(){return this.canvas&&this.canvas.centerObjectH(this),this},viewportCenterH:function(){return this.canvas&&this.canvas.viewportCenterObjectH(this),this},centerV:function(){return this.canvas&&this.canvas.centerObjectV(this),this},viewportCenterV:function(){return this.canvas&&this.canvas.viewportCenterObjectV(this),this},center:function(){return this.canvas&&this.canvas.centerObject(this),this},viewportCenter:function(){return this.canvas&&this.canvas.viewportCenterObject(this),this},getLocalPointer:function(h,v){v=v||this.canvas.getPointer(h);var b=new s.Point(v.x,v.y),T=this._getLeftTopCoords();return this.angle&&(b=s.util.rotatePoint(b,T,o(-this.angle))),{x:b.x-T.x,y:b.y-T.y}},_setupCompositeOperation:function(h){this.globalCompositeOperation&&(h.globalCompositeOperation=this.globalCompositeOperation)},dispose:function(){s.runningAnimations&&s.runningAnimations.cancelByTarget(this)}}),s.util.createAccessors&&s.util.createAccessors(s.Object),c(s.Object.prototype,s.Observable),s.Object.NUM_FRACTION_DIGITS=2,s.Object.ENLIVEN_PROPS=["clipPath"],s.Object._fromObject=function(h,v,b,T){var M=s[h];v=p(v,!0),s.util.enlivenPatterns([v.fill,v.stroke],function(O){typeof O[0]<"u"&&(v.fill=O[0]),typeof O[1]<"u"&&(v.stroke=O[1]),s.util.enlivenObjectEnlivables(v,v,function(){var F=T?new M(v[T],v):new M(v);b&&b(F)})})},s.Object.__uid=0)}(t),function(){var g=e.util.degreesToRadians,s={left:-.5,center:0,right:.5},c={top:-.5,center:0,bottom:.5};e.util.object.extend(e.Object.prototype,{translateToGivenOrigin:function(p,a,u,o,_){var y=p.x,h=p.y,v,b,T;return typeof a=="string"?a=s[a]:a-=.5,typeof o=="string"?o=s[o]:o-=.5,v=o-a,typeof u=="string"?u=c[u]:u-=.5,typeof _=="string"?_=c[_]:_-=.5,b=_-u,(v||b)&&(T=this._getTransformedDimensions(),y=p.x+v*T.x,h=p.y+b*T.y),new e.Point(y,h)},translateToCenterPoint:function(p,a,u){var o=this.translateToGivenOrigin(p,a,u,"center","center");return this.angle?e.util.rotatePoint(o,p,g(this.angle)):o},translateToOriginPoint:function(p,a,u){var o=this.translateToGivenOrigin(p,"center","center",a,u);return this.angle?e.util.rotatePoint(o,p,g(this.angle)):o},getCenterPoint:function(){var p=new e.Point(this.left,this.top);return this.translateToCenterPoint(p,this.originX,this.originY)},getPointByOrigin:function(p,a){var u=this.getCenterPoint();return this.translateToOriginPoint(u,p,a)},toLocalPoint:function(p,a,u){var o=this.getCenterPoint(),_,y;return typeof a<"u"&&typeof u<"u"?_=this.translateToGivenOrigin(o,"center","center",a,u):_=new e.Point(this.left,this.top),y=new e.Point(p.x,p.y),this.angle&&(y=e.util.rotatePoint(y,o,-g(this.angle))),y.subtractEquals(_)},setPositionByOrigin:function(p,a,u){var o=this.translateToCenterPoint(p,a,u),_=this.translateToOriginPoint(o,this.originX,this.originY);this.set("left",_.x),this.set("top",_.y)},adjustPosition:function(p){var a=g(this.angle),u=this.getScaledWidth(),o=e.util.cos(a)*u,_=e.util.sin(a)*u,y,h;typeof this.originX=="string"?y=s[this.originX]:y=this.originX-.5,typeof p=="string"?h=s[p]:h=p-.5,this.left+=o*(h-y),this.top+=_*(h-y),this.setCoords(),this.originX=p},_setOriginToCenter:function(){this._originalOriginX=this.originX,this._originalOriginY=this.originY;var p=this.getCenterPoint();this.originX="center",this.originY="center",this.left=p.x,this.top=p.y},_resetOrigin:function(){var p=this.translateToOriginPoint(this.getCenterPoint(),this._originalOriginX,this._originalOriginY);this.originX=this._originalOriginX,this.originY=this._originalOriginY,this.left=p.x,this.top=p.y,this._originalOriginX=null,this._originalOriginY=null},_getLeftTopCoords:function(){return this.translateToOriginPoint(this.getCenterPoint(),"left","top")}})}(),function(){function g(u){return[new e.Point(u.tl.x,u.tl.y),new e.Point(u.tr.x,u.tr.y),new e.Point(u.br.x,u.br.y),new e.Point(u.bl.x,u.bl.y)]}var s=e.util,c=s.degreesToRadians,p=s.multiplyTransformMatrices,a=s.transformPoint;s.object.extend(e.Object.prototype,{oCoords:null,aCoords:null,lineCoords:null,ownMatrixCache:null,matrixCache:null,controls:{},_getCoords:function(u,o){return o?u?this.calcACoords():this.calcLineCoords():((!this.aCoords||!this.lineCoords)&&this.setCoords(!0),u?this.aCoords:this.lineCoords)},getCoords:function(u,o){return g(this._getCoords(u,o))},intersectsWithRect:function(u,o,_,y){var h=this.getCoords(_,y),v=e.Intersection.intersectPolygonRectangle(h,u,o);return v.status==="Intersection"},intersectsWithObject:function(u,o,_){var y=e.Intersection.intersectPolygonPolygon(this.getCoords(o,_),u.getCoords(o,_));return y.status==="Intersection"||u.isContainedWithinObject(this,o,_)||this.isContainedWithinObject(u,o,_)},isContainedWithinObject:function(u,o,_){for(var y=this.getCoords(o,_),h=o?u.aCoords:u.lineCoords,v=0,b=u._getImageLines(h);v<4;v++)if(!u.containsPoint(y[v],b))return!1;return!0},isContainedWithinRect:function(u,o,_,y){var h=this.getBoundingRect(_,y);return h.left>=u.x&&h.left+h.width<=o.x&&h.top>=u.y&&h.top+h.height<=o.y},containsPoint:function(u,v,_,y){var h=this._getCoords(_,y),v=v||this._getImageLines(h),b=this._findCrossPoints(u,v);return b!==0&&b%2===1},isOnScreen:function(u){if(!this.canvas)return!1;var o=this.canvas.vptCoords.tl,_=this.canvas.vptCoords.br,y=this.getCoords(!0,u);return y.some(function(h){return h.x<=_.x&&h.x>=o.x&&h.y<=_.y&&h.y>=o.y})||this.intersectsWithRect(o,_,!0,u)?!0:this._containsCenterOfCanvas(o,_,u)},_containsCenterOfCanvas:function(u,o,_){var y={x:(u.x+o.x)/2,y:(u.y+o.y)/2};return!!this.containsPoint(y,null,!0,_)},isPartiallyOnScreen:function(u){if(!this.canvas)return!1;var o=this.canvas.vptCoords.tl,_=this.canvas.vptCoords.br;if(this.intersectsWithRect(o,_,!0,u))return!0;var y=this.getCoords(!0,u).every(function(h){return(h.x>=_.x||h.x<=o.x)&&(h.y>=_.y||h.y<=o.y)});return y&&this._containsCenterOfCanvas(o,_,u)},_getImageLines:function(u){var o={topline:{o:u.tl,d:u.tr},rightline:{o:u.tr,d:u.br},bottomline:{o:u.br,d:u.bl},leftline:{o:u.bl,d:u.tl}};return o},_findCrossPoints:function(u,o){var _,y,h,v,b,T=0,M;for(var O in o)if(M=o[O],!(M.o.y=u.y&&M.d.y>=u.y)&&(M.o.x===M.d.x&&M.o.x>=u.x?b=M.o.x:(_=0,y=(M.d.y-M.o.y)/(M.d.x-M.o.x),h=u.y-_*u.x,v=M.o.y-y*M.o.x,b=-(h-v)/(_-y)),b>=u.x&&(T+=1),T===2))break;return T},getBoundingRect:function(u,o){var _=this.getCoords(u,o);return s.makeBoundingBoxFromPoints(_)},getScaledWidth:function(){return this._getTransformedDimensions().x},getScaledHeight:function(){return this._getTransformedDimensions().y},_constrainScale:function(u){return Math.abs(u)"u"&&(u=this.skewX),typeof o>"u"&&(o=this.skewY);var _,y,h,v=u===0&&o===0;if(this.strokeUniform?(y=this.width,h=this.height):(_=this._getNonTransformedDimensions(),y=_.x,h=_.y),v)return this._finalizeDimensions(y*this.scaleX,h*this.scaleY);var b=s.sizeAfterTransform(y,h,{scaleX:this.scaleX,scaleY:this.scaleY,skewX:u,skewY:o});return this._finalizeDimensions(b.x,b.y)},_finalizeDimensions:function(u,o){return this.strokeUniform?{x:u+this.strokeWidth,y:o+this.strokeWidth}:{x:u,y:o}},_calculateCurrentDimensions:function(){var u=this.getViewportTransform(),o=this._getTransformedDimensions(),_=a(o,u,!0);return _.scalarAdd(2*this.padding)}})}(),e.util.object.extend(e.Object.prototype,{sendToBack:function(){return this.group?e.StaticCanvas.prototype.sendToBack.call(this.group,this):this.canvas&&this.canvas.sendToBack(this),this},bringToFront:function(){return this.group?e.StaticCanvas.prototype.bringToFront.call(this.group,this):this.canvas&&this.canvas.bringToFront(this),this},sendBackwards:function(g){return this.group?e.StaticCanvas.prototype.sendBackwards.call(this.group,this,g):this.canvas&&this.canvas.sendBackwards(this,g),this},bringForward:function(g){return this.group?e.StaticCanvas.prototype.bringForward.call(this.group,this,g):this.canvas&&this.canvas.bringForward(this,g),this},moveTo:function(g){return this.group&&this.group.type!=="activeSelection"?e.StaticCanvas.prototype.moveTo.call(this.group,this,g):this.canvas&&this.canvas.moveTo(this,g),this}}),function(){function g(c,p){if(p){if(p.toLive)return c+": url(#SVGID_"+p.id+"); ";var a=new e.Color(p),u=c+": "+a.toRgb()+"; ",o=a.getAlpha();return o!==1&&(u+=c+"-opacity: "+o.toString()+"; "),u}else return c+": none; "}var s=e.util.toFixed;e.util.object.extend(e.Object.prototype,{getSvgStyles:function(c){var p=this.fillRule?this.fillRule:"nonzero",a=this.strokeWidth?this.strokeWidth:"0",u=this.strokeDashArray?this.strokeDashArray.join(" "):"none",o=this.strokeDashOffset?this.strokeDashOffset:"0",_=this.strokeLineCap?this.strokeLineCap:"butt",y=this.strokeLineJoin?this.strokeLineJoin:"miter",h=this.strokeMiterLimit?this.strokeMiterLimit:"4",v=typeof this.opacity<"u"?this.opacity:"1",b=this.visible?"":" visibility: hidden;",T=c?"":this.getSvgFilter(),M=g("fill",this.fill),O=g("stroke",this.stroke);return[O,"stroke-width: ",a,"; ","stroke-dasharray: ",u,"; ","stroke-linecap: ",_,"; ","stroke-dashoffset: ",o,"; ","stroke-linejoin: ",y,"; ","stroke-miterlimit: ",h,"; ",M,"fill-rule: ",p,"; ","opacity: ",v,";",T,b].join("")},getSvgSpanStyles:function(c,p){var a="; ",o=c.fontFamily?"font-family: "+(c.fontFamily.indexOf("'")===-1&&c.fontFamily.indexOf('"')===-1?"'"+c.fontFamily+"'":c.fontFamily)+a:"",u=c.strokeWidth?"stroke-width: "+c.strokeWidth+a:"",o=o,_=c.fontSize?"font-size: "+c.fontSize+"px"+a:"",y=c.fontStyle?"font-style: "+c.fontStyle+a:"",h=c.fontWeight?"font-weight: "+c.fontWeight+a:"",v=c.fill?g("fill",c.fill):"",b=c.stroke?g("stroke",c.stroke):"",T=this.getSvgTextDecoration(c),M=c.deltaY?"baseline-shift: "+-c.deltaY+"; ":"";return T&&(T="text-decoration: "+T+a),[b,u,o,_,y,h,T,v,M,p?"white-space: pre; ":""].join("")},getSvgTextDecoration:function(c){return["overline","underline","line-through"].filter(function(p){return c[p.replace("-","")]}).join(" ")},getSvgFilter:function(){return this.shadow?"filter: url(#SVGID_"+this.shadow.id+");":""},getSvgCommons:function(){return[this.id?'id="'+this.id+'" ':"",this.clipPath?'clip-path="url(#'+this.clipPath.clipPathId+')" ':""].join("")},getSvgTransform:function(c,p){var a=c?this.calcTransformMatrix():this.calcOwnMatrix(),u='transform="'+e.util.matrixToSVG(a);return u+(p||"")+'" '},_setSVGBg:function(c){if(this.backgroundColor){var p=e.Object.NUM_FRACTION_DIGITS;c.push(" +`)}},toSVG:function(c){return this._createBaseSVGMarkup(this._toSVG(c),{reviver:c})},toClipPathSVG:function(c){return" "+this._createBaseClipPathSVGMarkup(this._toSVG(c),{reviver:c})},_createBaseClipPathSVGMarkup:function(c,p){p=p||{};var a=p.reviver,u=p.additionalTransform||"",o=[this.getSvgTransform(!0,u),this.getSvgCommons()].join(""),_=c.indexOf("COMMON_PARTS");return c[_]=o,a?a(c.join("")):c.join("")},_createBaseSVGMarkup:function(c,p){p=p||{};var a=p.noStyle,u=p.reviver,o=a?"":'style="'+this.getSvgStyles()+'" ',_=p.withShadow?'style="'+this.getSvgFilter()+'" ':"",y=this.clipPath,h=this.strokeUniform?'vector-effect="non-scaling-stroke" ':"",v=y&&y.absolutePositioned,b=this.stroke,T=this.fill,M=this.shadow,O,F=[],D,R=c.indexOf("COMMON_PARTS"),Q=p.additionalTransform;return y&&(y.clipPathId="CLIPPATH_"+e.Object.__uid++,D=' +`+y.toClipPathSVG(u)+` +`),v&&F.push(" +`),F.push(" +`),O=[o,h,a?"":this.addPaintOrder()," ",Q?'transform="'+Q+'" ':""].join(""),c[R]=O,T&&T.toLive&&F.push(T.toSVG(this)),b&&b.toLive&&F.push(b.toSVG(this)),M&&F.push(M.toSVG(this)),y&&F.push(D),F.push(c.join("")),F.push(` +`),v&&F.push(` +`),u?u(F.join("")):F.join("")},addPaintOrder:function(){return this.paintFirst!=="fill"?' paint-order="'+this.paintFirst+'" ':""}})}(),function(){var g=e.util.object.extend,s="stateProperties";function c(a,u,o){var _={},y=!0;o.forEach(function(h){_[h]=a[h]}),g(a[u],_,y)}function p(a,u,o){if(a===u)return!0;if(Array.isArray(a)){if(!Array.isArray(u)||a.length!==u.length)return!1;for(var _=0,y=a.length;_=0;y--)if(h=_[y],!!this.isControlVisible(h)&&(o=this._getImageLines(c?this.oCoords[h].touchCorner:this.oCoords[h].corner),u=this._findCrossPoints({x:p,y:a},o),u!==0&&u%2===1))return this.__corner=h,h;return!1},forEachControl:function(s){for(var c in this.controls)s(this.controls[c],c,this)},_setCornerCoords:function(){var s=this.oCoords;for(var c in s){var p=this.controls[c];s[c].corner=p.calcCornerCoords(this.angle,this.cornerSize,s[c].x,s[c].y,!1),s[c].touchCorner=p.calcCornerCoords(this.angle,this.touchCornerSize,s[c].x,s[c].y,!0)}},drawSelectionBackground:function(s){if(!this.selectionBackgroundColor||this.canvas&&!this.canvas.interactive||this.canvas&&this.canvas._activeObject!==this)return this;s.save();var c=this.getCenterPoint(),p=this._calculateCurrentDimensions(),a=this.canvas.viewportTransform;return s.translate(c.x,c.y),s.scale(1/a[0],1/a[3]),s.rotate(g(this.angle)),s.fillStyle=this.selectionBackgroundColor,s.fillRect(-p.x/2,-p.y/2,p.x,p.y),s.restore(),this},drawBorders:function(s,c){c=c||{};var p=this._calculateCurrentDimensions(),a=this.borderScaleFactor,u=p.x+a,o=p.y+a,_=typeof c.hasControls<"u"?c.hasControls:this.hasControls,y=!1;return s.save(),s.strokeStyle=c.borderColor||this.borderColor,this._setLineDash(s,c.borderDashArray||this.borderDashArray),s.strokeRect(-u/2,-o/2,u,o),_&&(s.beginPath(),this.forEachControl(function(h,v,b){h.withConnection&&h.getVisibility(b,v)&&(y=!0,s.moveTo(h.x*u,h.y*o),s.lineTo(h.x*u+h.offsetX,h.y*o+h.offsetY))}),y&&s.stroke()),s.restore(),this},drawBordersInGroup:function(s,c,p){p=p||{};var a=e.util.sizeAfterTransform(this.width,this.height,c),u=this.strokeWidth,o=this.strokeUniform,_=this.borderScaleFactor,y=a.x+u*(o?this.canvas.getZoom():c.scaleX)+_,h=a.y+u*(o?this.canvas.getZoom():c.scaleY)+_;return s.save(),this._setLineDash(s,p.borderDashArray||this.borderDashArray),s.strokeStyle=p.borderColor||this.borderColor,s.strokeRect(-y/2,-h/2,y,h),s.restore(),this},drawControls:function(s,c){c=c||{},s.save();var p=this.canvas.getRetinaScaling(),a,u;return s.setTransform(p,0,0,p,0,0),s.strokeStyle=s.fillStyle=c.cornerColor||this.cornerColor,this.transparentCorners||(s.strokeStyle=c.cornerStrokeColor||this.cornerStrokeColor),this._setLineDash(s,c.cornerDashArray||this.cornerDashArray),this.setCoords(),this.group&&(a=this.group.calcTransformMatrix()),this.forEachControl(function(o,_,y){u=y.oCoords[_],o.getVisibility(y,_)&&(a&&(u=e.util.transformPoint(u,a)),o.render(s,u.x,u.y,c,y))}),s.restore(),this},isControlVisible:function(s){return this.controls[s]&&this.controls[s].getVisibility(this,s)},setControlVisible:function(s,c){return this._controlsVisibility||(this._controlsVisibility={}),this._controlsVisibility[s]=c,this},setControlsVisibility:function(s){s||(s={});for(var c in s)this.setControlVisible(c,s[c]);return this},onDeselect:function(){},onSelect:function(){}})}(),e.util.object.extend(e.StaticCanvas.prototype,{FX_DURATION:500,fxCenterObjectH:function(g,s){s=s||{};var c=function(){},p=s.onComplete||c,a=s.onChange||c,u=this;return e.util.animate({target:this,startValue:g.left,endValue:this.getCenterPoint().x,duration:this.FX_DURATION,onChange:function(o){g.set("left",o),u.requestRenderAll(),a()},onComplete:function(){g.setCoords(),p()}})},fxCenterObjectV:function(g,s){s=s||{};var c=function(){},p=s.onComplete||c,a=s.onChange||c,u=this;return e.util.animate({target:this,startValue:g.top,endValue:this.getCenterPoint().y,duration:this.FX_DURATION,onChange:function(o){g.set("top",o),u.requestRenderAll(),a()},onComplete:function(){g.setCoords(),p()}})},fxRemove:function(g,s){s=s||{};var c=function(){},p=s.onComplete||c,a=s.onChange||c,u=this;return e.util.animate({target:this,startValue:g.opacity,endValue:0,duration:this.FX_DURATION,onChange:function(o){g.set("opacity",o),u.requestRenderAll(),a()},onComplete:function(){u.remove(g),p()}})}}),e.util.object.extend(e.Object.prototype,{animate:function(){if(arguments[0]&&typeof arguments[0]=="object"){var g=[],s,c,p=[];for(s in arguments[0])g.push(s);for(var a=0,u=g.length;a-1||u&&a.colorProperties.indexOf(u[1])>-1,_=u?this.get(u[0])[u[1]]:this.get(g);"from"in c||(c.from=_),o||(~s.indexOf("=")?s=_+parseFloat(s.replace("=","")):s=parseFloat(s));var y={target:this,startValue:c.from,endValue:s,byValue:c.by,easing:c.easing,duration:c.duration,abort:c.abort&&function(h,v,b){return c.abort.call(a,h,v,b)},onChange:function(h,v,b){u?a[u[0]][u[1]]=h:a.set(g,h),!p&&c.onChange&&c.onChange(h,v,b)},onComplete:function(h,v,b){p||(a.setCoords(),c.onComplete&&c.onComplete(h,v,b))}};return o?e.util.animateColor(y.startValue,y.endValue,y.duration,y):e.util.animate(y)}}),function(g){var s=g.fabric||(g.fabric={}),c=s.util.object.extend,p=s.util.object.clone,a={x1:1,x2:1,y1:1,y2:1};if(s.Line){s.warn("fabric.Line is already defined");return}s.Line=s.util.createClass(s.Object,{type:"line",x1:0,y1:0,x2:0,y2:0,cacheProperties:s.Object.prototype.cacheProperties.concat("x1","x2","y1","y2"),initialize:function(o,_){o||(o=[0,0,0,0]),this.callSuper("initialize",_),this.set("x1",o[0]),this.set("y1",o[1]),this.set("x2",o[2]),this.set("y2",o[3]),this._setWidthHeight(_)},_setWidthHeight:function(o){o||(o={}),this.width=Math.abs(this.x2-this.x1),this.height=Math.abs(this.y2-this.y1),this.left="left"in o?o.left:this._getLeftToOriginX(),this.top="top"in o?o.top:this._getTopToOriginY()},_set:function(o,_){return this.callSuper("_set",o,_),typeof a[o]<"u"&&this._setWidthHeight(),this},_getLeftToOriginX:u({origin:"originX",axis1:"x1",axis2:"x2",dimension:"width"},{nearest:"left",center:"center",farthest:"right"}),_getTopToOriginY:u({origin:"originY",axis1:"y1",axis2:"y2",dimension:"height"},{nearest:"top",center:"center",farthest:"bottom"}),_render:function(o){o.beginPath();var _=this.calcLinePoints();o.moveTo(_.x1,_.y1),o.lineTo(_.x2,_.y2),o.lineWidth=this.strokeWidth;var y=o.strokeStyle;o.strokeStyle=this.stroke||o.fillStyle,this.stroke&&this._renderStroke(o),o.strokeStyle=y},_findCenterFromElement:function(){return{x:(this.x1+this.x2)/2,y:(this.y1+this.y2)/2}},toObject:function(o){return c(this.callSuper("toObject",o),this.calcLinePoints())},_getNonTransformedDimensions:function(){var o=this.callSuper("_getNonTransformedDimensions");return this.strokeLineCap==="butt"&&(this.width===0&&(o.y-=this.strokeWidth),this.height===0&&(o.x-=this.strokeWidth)),o},calcLinePoints:function(){var o=this.x1<=this.x2?-1:1,_=this.y1<=this.y2?-1:1,y=o*this.width*.5,h=_*this.height*.5,v=o*this.width*-.5,b=_*this.height*-.5;return{x1:y,x2:v,y1:h,y2:b}},_toSVG:function(){var o=this.calcLinePoints();return[" +`]}}),s.Line.ATTRIBUTE_NAMES=s.SHARED_ATTRIBUTES.concat("x1 y1 x2 y2".split(" ")),s.Line.fromElement=function(o,_,y){y=y||{};var h=s.parseAttributes(o,s.Line.ATTRIBUTE_NAMES),v=[h.x1||0,h.y1||0,h.x2||0,h.y2||0];_(new s.Line(v,c(h,y)))},s.Line.fromObject=function(o,_){function y(v){delete v.points,_&&_(v)}var h=p(o,!0);h.points=[o.x1,o.y1,o.x2,o.y2],s.Object._fromObject("Line",h,y,"points")};function u(o,_){var y=o.origin,h=o.axis1,v=o.axis2,b=o.dimension,T=_.nearest,M=_.center,O=_.farthest;return function(){switch(this.get(y)){case T:return Math.min(this.get(h),this.get(v));case M:return Math.min(this.get(h),this.get(v))+.5*this.get(b);case O:return Math.max(this.get(h),this.get(v))}}}}(t),function(g){var s=g.fabric||(g.fabric={}),c=s.util.degreesToRadians;if(s.Circle){s.warn("fabric.Circle is already defined.");return}s.Circle=s.util.createClass(s.Object,{type:"circle",radius:0,startAngle:0,endAngle:360,cacheProperties:s.Object.prototype.cacheProperties.concat("radius","startAngle","endAngle"),_set:function(a,u){return this.callSuper("_set",a,u),a==="radius"&&this.setRadius(u),this},toObject:function(a){return this.callSuper("toObject",["radius","startAngle","endAngle"].concat(a))},_toSVG:function(){var a,u=0,o=0,_=(this.endAngle-this.startAngle)%360;if(_===0)a=[" +`];else{var y=c(this.startAngle),h=c(this.endAngle),v=this.radius,b=s.util.cos(y)*v,T=s.util.sin(y)*v,M=s.util.cos(h)*v,O=s.util.sin(h)*v,F=_>180?"1":"0";a=[' +`]}return a},_render:function(a){a.beginPath(),a.arc(0,0,this.radius,c(this.startAngle),c(this.endAngle),!1),this._renderPaintInOrder(a)},getRadiusX:function(){return this.get("radius")*this.get("scaleX")},getRadiusY:function(){return this.get("radius")*this.get("scaleY")},setRadius:function(a){return this.radius=a,this.set("width",a*2).set("height",a*2)}}),s.Circle.ATTRIBUTE_NAMES=s.SHARED_ATTRIBUTES.concat("cx cy r".split(" ")),s.Circle.fromElement=function(a,u){var o=s.parseAttributes(a,s.Circle.ATTRIBUTE_NAMES);if(!p(o))throw new Error("value of `r` attribute is required and can not be negative");o.left=(o.left||0)-o.radius,o.top=(o.top||0)-o.radius,u(new s.Circle(o))};function p(a){return"radius"in a&&a.radius>=0}s.Circle.fromObject=function(a,u){s.Object._fromObject("Circle",a,u)}}(t),function(g){var s=g.fabric||(g.fabric={});if(s.Triangle){s.warn("fabric.Triangle is already defined");return}s.Triangle=s.util.createClass(s.Object,{type:"triangle",width:100,height:100,_render:function(c){var p=this.width/2,a=this.height/2;c.beginPath(),c.moveTo(-p,a),c.lineTo(0,-a),c.lineTo(p,a),c.closePath(),this._renderPaintInOrder(c)},_toSVG:function(){var c=this.width/2,p=this.height/2,a=[-c+" "+p,"0 "+-p,c+" "+p].join(",");return["']}}),s.Triangle.fromObject=function(c,p){return s.Object._fromObject("Triangle",c,p)}}(t),function(g){var s=g.fabric||(g.fabric={}),c=Math.PI*2;if(s.Ellipse){s.warn("fabric.Ellipse is already defined.");return}s.Ellipse=s.util.createClass(s.Object,{type:"ellipse",rx:0,ry:0,cacheProperties:s.Object.prototype.cacheProperties.concat("rx","ry"),initialize:function(p){this.callSuper("initialize",p),this.set("rx",p&&p.rx||0),this.set("ry",p&&p.ry||0)},_set:function(p,a){switch(this.callSuper("_set",p,a),p){case"rx":this.rx=a,this.set("width",a*2);break;case"ry":this.ry=a,this.set("height",a*2);break}return this},getRx:function(){return this.get("rx")*this.get("scaleX")},getRy:function(){return this.get("ry")*this.get("scaleY")},toObject:function(p){return this.callSuper("toObject",["rx","ry"].concat(p))},_toSVG:function(){return[" +`]},_render:function(p){p.beginPath(),p.save(),p.transform(1,0,0,this.ry/this.rx,0,0),p.arc(0,0,this.rx,0,c,!1),p.restore(),this._renderPaintInOrder(p)}}),s.Ellipse.ATTRIBUTE_NAMES=s.SHARED_ATTRIBUTES.concat("cx cy rx ry".split(" ")),s.Ellipse.fromElement=function(p,a){var u=s.parseAttributes(p,s.Ellipse.ATTRIBUTE_NAMES);u.left=(u.left||0)-u.rx,u.top=(u.top||0)-u.ry,a(new s.Ellipse(u))},s.Ellipse.fromObject=function(p,a){s.Object._fromObject("Ellipse",p,a)}}(t),function(g){var s=g.fabric||(g.fabric={}),c=s.util.object.extend;if(s.Rect){s.warn("fabric.Rect is already defined");return}s.Rect=s.util.createClass(s.Object,{stateProperties:s.Object.prototype.stateProperties.concat("rx","ry"),type:"rect",rx:0,ry:0,cacheProperties:s.Object.prototype.cacheProperties.concat("rx","ry"),initialize:function(p){this.callSuper("initialize",p),this._initRxRy()},_initRxRy:function(){this.rx&&!this.ry?this.ry=this.rx:this.ry&&!this.rx&&(this.rx=this.ry)},_render:function(p){var a=this.rx?Math.min(this.rx,this.width/2):0,u=this.ry?Math.min(this.ry,this.height/2):0,o=this.width,_=this.height,y=-this.width/2,h=-this.height/2,v=a!==0||u!==0,b=1-.5522847498;p.beginPath(),p.moveTo(y+a,h),p.lineTo(y+o-a,h),v&&p.bezierCurveTo(y+o-b*a,h,y+o,h+b*u,y+o,h+u),p.lineTo(y+o,h+_-u),v&&p.bezierCurveTo(y+o,h+_-b*u,y+o-b*a,h+_,y+o-a,h+_),p.lineTo(y+a,h+_),v&&p.bezierCurveTo(y+b*a,h+_,y,h+_-b*u,y,h+_-u),p.lineTo(y,h+u),v&&p.bezierCurveTo(y,h+b*u,y+b*a,h,y+a,h),p.closePath(),this._renderPaintInOrder(p)},toObject:function(p){return this.callSuper("toObject",["rx","ry"].concat(p))},_toSVG:function(){var p=-this.width/2,a=-this.height/2;return[" +`]}}),s.Rect.ATTRIBUTE_NAMES=s.SHARED_ATTRIBUTES.concat("x y rx ry width height".split(" ")),s.Rect.fromElement=function(p,a,u){if(!p)return a(null);u=u||{};var o=s.parseAttributes(p,s.Rect.ATTRIBUTE_NAMES);o.left=o.left||0,o.top=o.top||0,o.height=o.height||0,o.width=o.width||0;var _=new s.Rect(c(u?s.util.object.clone(u):{},o));_.visible=_.visible&&_.width>0&&_.height>0,a(_)},s.Rect.fromObject=function(p,a){return s.Object._fromObject("Rect",p,a)}}(t),function(g){var s=g.fabric||(g.fabric={}),c=s.util.object.extend,p=s.util.array.min,a=s.util.array.max,u=s.util.toFixed,o=s.util.projectStrokeOnPoints;if(s.Polyline){s.warn("fabric.Polyline is already defined");return}s.Polyline=s.util.createClass(s.Object,{type:"polyline",points:null,exactBoundingBox:!1,cacheProperties:s.Object.prototype.cacheProperties.concat("points"),initialize:function(_,y){y=y||{},this.points=_||[],this.callSuper("initialize",y),this._setPositionDimensions(y)},_projectStrokeOnPoints:function(){return o(this.points,this,!0)},_setPositionDimensions:function(_){var y=this._calcDimensions(_),h,v=this.exactBoundingBox?this.strokeWidth:0;this.width=y.width-v,this.height=y.height-v,_.fromSVG||(h=this.translateToGivenOrigin({x:y.left-this.strokeWidth/2+v/2,y:y.top-this.strokeWidth/2+v/2},"left","top",this.originX,this.originY)),typeof _.left>"u"&&(this.left=_.fromSVG?y.left:h.x),typeof _.top>"u"&&(this.top=_.fromSVG?y.top:h.y),this.pathOffset={x:y.left+this.width/2+v/2,y:y.top+this.height/2+v/2}},_calcDimensions:function(){var _=this.exactBoundingBox?this._projectStrokeOnPoints():this.points,y=p(_,"x")||0,h=p(_,"y")||0,v=a(_,"x")||0,b=a(_,"y")||0,T=v-y,M=b-h;return{left:y,top:h,width:T,height:M}},toObject:function(_){return c(this.callSuper("toObject",_),{points:this.points.concat()})},_toSVG:function(){for(var _=[],y=this.pathOffset.x,h=this.pathOffset.y,v=s.Object.NUM_FRACTION_DIGITS,b=0,T=this.points.length;b +`]},commonRender:function(_){var y,h=this.points.length,v=this.pathOffset.x,b=this.pathOffset.y;if(!h||isNaN(this.points[h-1].y))return!1;_.beginPath(),_.moveTo(this.points[0].x-v,this.points[0].y-b);for(var T=0;T"},toObject:function(_){return a(this.callSuper("toObject",_),{path:this.path.map(function(y){return y.slice()})})},toDatalessObject:function(_){var y=this.toObject(["sourcePath"].concat(_));return y.sourcePath&&delete y.path,y},_toSVG:function(){var _=s.util.joinPath(this.path);return[" +`]},_getOffsetTransform:function(){var _=s.Object.NUM_FRACTION_DIGITS;return" translate("+o(-this.pathOffset.x,_)+", "+o(-this.pathOffset.y,_)+")"},toClipPathSVG:function(_){var y=this._getOffsetTransform();return" "+this._createBaseClipPathSVGMarkup(this._toSVG(),{reviver:_,additionalTransform:y})},toSVG:function(_){var y=this._getOffsetTransform();return this._createBaseSVGMarkup(this._toSVG(),{reviver:_,additionalTransform:y})},complexity:function(){return this.path.length},_calcDimensions:function(){for(var _=[],y=[],h,v=0,b=0,T=0,M=0,O,F=0,D=this.path.length;F"},addWithUpdate:function(a){var u=!!this.group;return this._restoreObjectsState(),s.util.resetObjectTransform(this),a&&(u&&s.util.removeTransformFromObject(a,this.group.calcTransformMatrix()),this._objects.push(a),a.group=this,a._set("canvas",this.canvas)),this._calcBounds(),this._updateObjectsCoords(),this.dirty=!0,u?this.group.addWithUpdate():this.setCoords(),this},removeWithUpdate:function(a){return this._restoreObjectsState(),s.util.resetObjectTransform(this),this.remove(a),this._calcBounds(),this._updateObjectsCoords(),this.setCoords(),this.dirty=!0,this},_onObjectAdded:function(a){this.dirty=!0,a.group=this,a._set("canvas",this.canvas)},_onObjectRemoved:function(a){this.dirty=!0,delete a.group},_set:function(a,u){var o=this._objects.length;if(this.useSetOnGroup)for(;o--;)this._objects[o].setOnGroup(a,u);if(a==="canvas")for(;o--;)this._objects[o]._set(a,u);s.Object.prototype._set.call(this,a,u)},toObject:function(a){var u=this.includeDefaultValues,o=this._objects.filter(function(y){return!y.excludeFromExport}).map(function(y){var h=y.includeDefaultValues;y.includeDefaultValues=u;var v=y.toObject(a);return y.includeDefaultValues=h,v}),_=s.Object.prototype.toObject.call(this,a);return _.objects=o,_},toDatalessObject:function(a){var u,o=this.sourcePath;if(o)u=o;else{var _=this.includeDefaultValues;u=this._objects.map(function(h){var v=h.includeDefaultValues;h.includeDefaultValues=_;var b=h.toDatalessObject(a);return h.includeDefaultValues=v,b})}var y=s.Object.prototype.toDatalessObject.call(this,a);return y.objects=u,y},render:function(a){this._transformDone=!0,this.callSuper("render",a),this._transformDone=!1},shouldCache:function(){var a=s.Object.prototype.shouldCache.call(this);if(a){for(var u=0,o=this._objects.length;u +`],o=0,_=this._objects.length;o<_;o++)u.push(" ",this._objects[o].toSVG(a));return u.push(` +`),u},getSvgStyles:function(){var a=typeof this.opacity<"u"&&this.opacity!==1?"opacity: "+this.opacity+";":"",u=this.visible?"":" visibility: hidden;";return[a,this.getSvgFilter(),u].join("")},toClipPathSVG:function(a){for(var u=[],o=0,_=this._objects.length;o<_;o++)u.push(" ",this._objects[o].toClipPathSVG(a));return this._createBaseClipPathSVGMarkup(u,{reviver:a})}}),s.Group.fromObject=function(a,u){var o=a.objects,_=s.util.object.clone(a,!0);if(delete _.objects,typeof o=="string"){s.loadSVGFromURL(o,function(y){var h=s.util.groupSVGElements(y,a,o),v=_.clipPath;delete _.clipPath,h.set(_),v?s.util.enlivenObjects([v],function(b){h.clipPath=b[0],u&&u(h)}):u&&u(h)});return}s.util.enlivenObjects(o,function(y){s.util.enlivenObjectEnlivables(a,_,function(){u&&u(new s.Group(y,_,!0))})})})}(t),function(g){var s=g.fabric||(g.fabric={});s.ActiveSelection||(s.ActiveSelection=s.util.createClass(s.Group,{type:"activeSelection",initialize:function(c,p){p=p||{},this._objects=c||[];for(var a=this._objects.length;a--;)this._objects[a].group=this;p.originX&&(this.originX=p.originX),p.originY&&(this.originY=p.originY),this._calcBounds(),this._updateObjectsCoords(),s.Object.prototype.initialize.call(this,p),this.setCoords()},toGroup:function(){var c=this._objects.concat();this._objects=[];var p=s.Object.prototype.toObject.call(this),a=new s.Group([]);if(delete p.type,a.set(p),c.forEach(function(o){o.canvas.remove(o),o.group=a}),a._objects=c,!this.canvas)return a;var u=this.canvas;return u.add(a),u._activeObject=a,a.setCoords(),a},onDeselect:function(){return this.destroy(),!1},toString:function(){return"#"},shouldCache:function(){return!1},isOnACache:function(){return!1},_renderControls:function(c,p,a){c.save(),c.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,this.callSuper("_renderControls",c,p),a=a||{},typeof a.hasControls>"u"&&(a.hasControls=!1),a.forActiveSelection=!0;for(var u=0,o=this._objects.length;u +`,' +`,` +`),y=' clip-path="url(#imageCrop_'+v+')" '}if(this.imageSmoothing||(h='" image-rendering="optimizeSpeed'),p.push(" +`),this.stroke||this.strokeDashArray){var b=this.fill;this.fill=null,a=[" +`],this.fill=b}return this.paintFirst!=="fill"?c=c.concat(a,p):c=c.concat(p,a),c},getSrc:function(c){var p=c?this._element:this._originalElement;return p?p.toDataURL?p.toDataURL():this.srcFromAttribute?p.getAttribute("src"):p.src:this.src||""},setSrc:function(c,p,a){return e.util.loadImage(c,function(u,o){this.setElement(u,a),this._setWidthHeight(),p&&p(this,o)},this,a&&a.crossOrigin),this},toString:function(){return'#'},applyResizeFilters:function(){var c=this.resizeFilter,p=this.minimumScaleTrigger,a=this.getTotalObjectScaling(),u=a.scaleX,o=a.scaleY,_=this._filteredEl||this._originalElement;if(this.group&&this.set("dirty",!0),!c||u>p&&o>p){this._element=_,this._filterScalingX=1,this._filterScalingY=1,this._lastScaleX=u,this._lastScaleY=o;return}e.filterBackend||(e.filterBackend=e.initFilterBackend());var y=e.util.createCanvasElement(),h=this._filteredEl?this.cacheKey+"_filtered":this.cacheKey,v=_.width,b=_.height;y.width=v,y.height=b,this._element=y,this._lastScaleX=c.scaleX=u,this._lastScaleY=c.scaleY=o,e.filterBackend.applyFilters([c],_,v,b,this._element,h),this._filterScalingX=y.width/this._originalElement.width,this._filterScalingY=y.height/this._originalElement.height},applyFilters:function(c){if(c=c||this.filters||[],c=c.filter(function(_){return _&&!_.isNeutralState()}),this.set("dirty",!0),this.removeTexture(this.cacheKey+"_filtered"),c.length===0)return this._element=this._originalElement,this._filteredEl=null,this._filterScalingX=1,this._filterScalingY=1,this;var p=this._originalElement,a=p.naturalWidth||p.width,u=p.naturalHeight||p.height;if(this._element===this._originalElement){var o=e.util.createCanvasElement();o.width=a,o.height=u,this._element=o,this._filteredEl=o}else this._element=this._filteredEl,this._filteredEl.getContext("2d").clearRect(0,0,a,u),this._lastScaleX=1,this._lastScaleY=1;return e.filterBackend||(e.filterBackend=e.initFilterBackend()),e.filterBackend.applyFilters(c,this._originalElement,a,u,this._element,this.cacheKey),(this._originalElement.width!==this._element.width||this._originalElement.height!==this._element.height)&&(this._filterScalingX=this._element.width/this._originalElement.width,this._filterScalingY=this._element.height/this._originalElement.height),this},_render:function(c){e.util.setImageSmoothing(c,this.imageSmoothing),this.isMoving!==!0&&this.resizeFilter&&this._needsResize()&&this.applyResizeFilters(),this._stroke(c),this._renderPaintInOrder(c)},drawCacheOnCanvas:function(c){e.util.setImageSmoothing(c,this.imageSmoothing),e.Object.prototype.drawCacheOnCanvas.call(this,c)},shouldCache:function(){return this.needsItsOwnCache()},_renderFill:function(c){var p=this._element;if(!!p){var a=this._filterScalingX,u=this._filterScalingY,o=this.width,_=this.height,y=Math.min,h=Math.max,v=h(this.cropX,0),b=h(this.cropY,0),T=p.naturalWidth||p.width,M=p.naturalHeight||p.height,O=v*a,F=b*u,D=y(o*a,T-O),R=y(_*u,M-F),Q=-o/2,ie=-_/2,pe=y(o,T/a-v),ke=y(_,M/u-b);p&&c.drawImage(p,O,F,D,R,Q,ie,pe,ke)}},_needsResize:function(){var c=this.getTotalObjectScaling();return c.scaleX!==this._lastScaleX||c.scaleY!==this._lastScaleY},_resetWidthHeight:function(){this.set(this.getOriginalSize())},_initElement:function(c,p){this.setElement(e.util.getById(c),p),e.util.addClass(this.getElement(),e.Image.CSS_CANVAS)},_initConfig:function(c){c||(c={}),this.setOptions(c),this._setWidthHeight(c)},_initFilters:function(c,p){c&&c.length?e.util.enlivenObjects(c,function(a){p&&p(a)},"fabric.Image.filters"):p&&p()},_setWidthHeight:function(c){c||(c={});var p=this.getElement();this.width=c.width||p.naturalWidth||p.width||0,this.height=c.height||p.naturalHeight||p.height||0},parsePreserveAspectRatioAttribute:function(){var c=e.util.parsePreserveAspectRatioAttribute(this.preserveAspectRatio||""),p=this._element.width,a=this._element.height,u=1,o=1,_=0,y=0,h=0,v=0,b,T=this.width,M=this.height,O={width:T,height:M};return c&&(c.alignX!=="none"||c.alignY!=="none")?(c.meetOrSlice==="meet"&&(u=o=e.util.findScaleToFit(this._element,O),b=(T-p*u)/2,c.alignX==="Min"&&(_=-b),c.alignX==="Max"&&(_=b),b=(M-a*o)/2,c.alignY==="Min"&&(y=-b),c.alignY==="Max"&&(y=b)),c.meetOrSlice==="slice"&&(u=o=e.util.findScaleToCover(this._element,O),b=p-T/u,c.alignX==="Mid"&&(h=b/2),c.alignX==="Max"&&(h=b),b=a-M/o,c.alignY==="Mid"&&(v=b/2),c.alignY==="Max"&&(v=b),p=T/u,a=M/o)):(u=T/p,o=M/a),{width:p,height:a,scaleX:u,scaleY:o,offsetLeft:_,offsetTop:y,cropX:h,cropY:v}}}),e.Image.CSS_CANVAS="canvas-img",e.Image.prototype.getSvgSrc=e.Image.prototype.getSrc,e.Image.fromObject=function(c,p){var a=e.util.object.clone(c);e.util.loadImage(a.src,function(u,o){if(o){p&&p(null,!0);return}e.Image.prototype._initFilters.call(a,a.filters,function(_){a.filters=_||[],e.Image.prototype._initFilters.call(a,[a.resizeFilter],function(y){a.resizeFilter=y[0],e.util.enlivenObjectEnlivables(a,a,function(){var h=new e.Image(u,a);p(h,!1)})})})},null,a.crossOrigin)},e.Image.fromURL=function(c,p,a){e.util.loadImage(c,function(u,o){p&&p(new e.Image(u,a),o)},null,a&&a.crossOrigin)},e.Image.ATTRIBUTE_NAMES=e.SHARED_ATTRIBUTES.concat("x y width height preserveAspectRatio xlink:href crossOrigin image-rendering".split(" ")),e.Image.fromElement=function(c,p,a){var u=e.parseAttributes(c,e.Image.ATTRIBUTE_NAMES);e.Image.fromURL(u["xlink:href"],p,s(a?e.util.object.clone(a):{},u))}}(t),e.util.object.extend(e.Object.prototype,{_getAngleValueForStraighten:function(){var g=this.angle%360;return g>0?Math.round((g-1)/90)*90:Math.round(g/90)*90},straighten:function(){return this.rotate(this._getAngleValueForStraighten())},fxStraighten:function(g){g=g||{};var s=function(){},c=g.onComplete||s,p=g.onChange||s,a=this;return e.util.animate({target:this,startValue:this.get("angle"),endValue:this._getAngleValueForStraighten(),duration:this.FX_DURATION,onChange:function(u){a.rotate(u),p()},onComplete:function(){a.setCoords(),c()}})}}),e.util.object.extend(e.StaticCanvas.prototype,{straightenObject:function(g){return g.straighten(),this.requestRenderAll(),this},fxStraightenObject:function(g){return g.fxStraighten({onChange:this.requestRenderAllBound})}}),function(){function g(c,p){var a="precision "+p+` float; +void main(){}`,u=c.createShader(c.FRAGMENT_SHADER);return c.shaderSource(u,a),c.compileShader(u),!!c.getShaderParameter(u,c.COMPILE_STATUS)}e.isWebglSupported=function(c){if(e.isLikelyNode)return!1;c=c||e.WebglFilterBackend.prototype.tileSize;var p=document.createElement("canvas"),a=p.getContext("webgl")||p.getContext("experimental-webgl"),u=!1;if(a){e.maxTextureSize=a.getParameter(a.MAX_TEXTURE_SIZE),u=e.maxTextureSize>=c;for(var o=["highp","mediump","lowp"],_=0;_<3;_++)if(g(a,o[_])){e.webGlPrecision=o[_];break}}return this.isSupported=u,u},e.WebglFilterBackend=s;function s(c){c&&c.tileSize&&(this.tileSize=c.tileSize),this.setupGLContext(this.tileSize,this.tileSize),this.captureGPUInfo()}s.prototype={tileSize:2048,resources:{},setupGLContext:function(c,p){this.dispose(),this.createWebGLCanvas(c,p),this.aPosition=new Float32Array([0,0,0,1,1,0,1,1]),this.chooseFastestCopyGLTo2DMethod(c,p)},chooseFastestCopyGLTo2DMethod:function(c,p){var a=typeof window.performance<"u",u;try{new ImageData(1,1),u=!0}catch{u=!1}var o=typeof ArrayBuffer<"u",_=typeof Uint8ClampedArray<"u";if(!!(a&&u&&o&&_)){var y=e.util.createCanvasElement(),h=new ArrayBuffer(c*p*4);if(e.forceGLPutImageData){this.imageBuffer=h,this.copyGLTo2D=S;return}var v={imageBuffer:h,destinationWidth:c,destinationHeight:p,targetCanvas:y},b,T,M;y.width=c,y.height=p,b=window.performance.now(),m.call(v,this.gl,v),T=window.performance.now()-b,b=window.performance.now(),S.call(v,this.gl,v),M=window.performance.now()-b,T>M?(this.imageBuffer=h,this.copyGLTo2D=S):this.copyGLTo2D=m}},createWebGLCanvas:function(c,p){var a=e.util.createCanvasElement();a.width=c,a.height=p;var u={alpha:!0,premultipliedAlpha:!1,depth:!1,stencil:!1,antialias:!1},o=a.getContext("webgl",u);o||(o=a.getContext("experimental-webgl",u)),o&&(o.clearColor(0,0,0,0),this.canvas=a,this.gl=o)},applyFilters:function(c,p,a,u,o,_){var y=this.gl,h;_&&(h=this.getCachedTexture(_,p));var v={originalWidth:p.width||p.originalWidth,originalHeight:p.height||p.originalHeight,sourceWidth:a,sourceHeight:u,destinationWidth:a,destinationHeight:u,context:y,sourceTexture:this.createTexture(y,a,u,!h&&p),targetTexture:this.createTexture(y,a,u),originalTexture:h||this.createTexture(y,a,u,!h&&p),passes:c.length,webgl:!0,aPosition:this.aPosition,programCache:this.programCache,pass:0,filterBackend:this,targetCanvas:o},b=y.createFramebuffer();return y.bindFramebuffer(y.FRAMEBUFFER,b),c.forEach(function(T){T&&T.applyTo(v)}),l(v),this.copyGLTo2D(y,v),y.bindTexture(y.TEXTURE_2D,null),y.deleteTexture(v.sourceTexture),y.deleteTexture(v.targetTexture),y.deleteFramebuffer(b),o.getContext("2d").setTransform(1,0,0,1,0,0),v},dispose:function(){this.canvas&&(this.canvas=null,this.gl=null),this.clearWebGLCaches()},clearWebGLCaches:function(){this.programCache={},this.textureCache={}},createTexture:function(c,p,a,u,o){var _=c.createTexture();return c.bindTexture(c.TEXTURE_2D,_),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MAG_FILTER,o||c.NEAREST),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MIN_FILTER,o||c.NEAREST),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_S,c.CLAMP_TO_EDGE),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_T,c.CLAMP_TO_EDGE),u?c.texImage2D(c.TEXTURE_2D,0,c.RGBA,c.RGBA,c.UNSIGNED_BYTE,u):c.texImage2D(c.TEXTURE_2D,0,c.RGBA,p,a,0,c.RGBA,c.UNSIGNED_BYTE,null),_},getCachedTexture:function(c,p){if(this.textureCache[c])return this.textureCache[c];var a=this.createTexture(this.gl,p.width,p.height,p);return this.textureCache[c]=a,a},evictCachesForKey:function(c){this.textureCache[c]&&(this.gl.deleteTexture(this.textureCache[c]),delete this.textureCache[c])},copyGLTo2D:m,captureGPUInfo:function(){if(this.gpuInfo)return this.gpuInfo;var c=this.gl,p={renderer:"",vendor:""};if(!c)return p;var a=c.getExtension("WEBGL_debug_renderer_info");if(a){var u=c.getParameter(a.UNMASKED_RENDERER_WEBGL),o=c.getParameter(a.UNMASKED_VENDOR_WEBGL);u&&(p.renderer=u.toLowerCase()),o&&(p.vendor=o.toLowerCase())}return this.gpuInfo=p,p}}}();function l(g){var s=g.targetCanvas,c=s.width,p=s.height,a=g.destinationWidth,u=g.destinationHeight;(c!==a||p!==u)&&(s.width=a,s.height=u)}function m(g,s){var c=g.canvas,p=s.targetCanvas,a=p.getContext("2d");a.translate(0,p.height),a.scale(1,-1);var u=c.height-p.height;a.drawImage(c,0,u,p.width,p.height,0,0,p.width,p.height)}function S(g,s){var c=s.targetCanvas,p=c.getContext("2d"),a=s.destinationWidth,u=s.destinationHeight,o=a*u*4,_=new Uint8Array(this.imageBuffer,0,o),y=new Uint8ClampedArray(this.imageBuffer,0,o);g.readPixels(0,0,a,u,g.RGBA,g.UNSIGNED_BYTE,_);var h=new ImageData(y,a,u);p.putImageData(h,0,0)}(function(){var g=function(){};e.Canvas2dFilterBackend=s;function s(){}s.prototype={evictCachesForKey:g,dispose:g,clearWebGLCaches:g,resources:{},applyFilters:function(c,p,a,u,o){var _=o.getContext("2d");_.drawImage(p,0,0,a,u);var y=_.getImageData(0,0,a,u),h=_.getImageData(0,0,a,u),v={sourceWidth:a,sourceHeight:u,imageData:y,originalEl:p,originalImageData:h,canvasEl:o,ctx:_,filterBackend:this};return c.forEach(function(b){b.applyTo(v)}),(v.imageData.width!==a||v.imageData.height!==u)&&(o.width=v.imageData.width,o.height=v.imageData.height),_.putImageData(v.imageData,0,0),v}}})(),e.Image=e.Image||{},e.Image.filters=e.Image.filters||{},e.Image.filters.BaseFilter=e.util.createClass({type:"BaseFilter",vertexSource:`attribute vec2 aPosition; +varying vec2 vTexCoord; +void main() { +vTexCoord = aPosition; +gl_Position = vec4(aPosition * 2.0 - 1.0, 0.0, 1.0); +}`,fragmentSource:`precision highp float; +varying vec2 vTexCoord; +uniform sampler2D uTexture; +void main() { +gl_FragColor = texture2D(uTexture, vTexCoord); +}`,initialize:function(g){g&&this.setOptions(g)},setOptions:function(g){for(var s in g)this[s]=g[s]},createProgram:function(g,s,c){s=s||this.fragmentSource,c=c||this.vertexSource,e.webGlPrecision!=="highp"&&(s=s.replace(/precision highp float/g,"precision "+e.webGlPrecision+" float"));var p=g.createShader(g.VERTEX_SHADER);if(g.shaderSource(p,c),g.compileShader(p),!g.getShaderParameter(p,g.COMPILE_STATUS))throw new Error("Vertex shader compile error for "+this.type+": "+g.getShaderInfoLog(p));var a=g.createShader(g.FRAGMENT_SHADER);if(g.shaderSource(a,s),g.compileShader(a),!g.getShaderParameter(a,g.COMPILE_STATUS))throw new Error("Fragment shader compile error for "+this.type+": "+g.getShaderInfoLog(a));var u=g.createProgram();if(g.attachShader(u,p),g.attachShader(u,a),g.linkProgram(u),!g.getProgramParameter(u,g.LINK_STATUS))throw new Error('Shader link error for "${this.type}" '+g.getProgramInfoLog(u));var o=this.getAttributeLocations(g,u),_=this.getUniformLocations(g,u)||{};return _.uStepW=g.getUniformLocation(u,"uStepW"),_.uStepH=g.getUniformLocation(u,"uStepH"),{program:u,attributeLocations:o,uniformLocations:_}},getAttributeLocations:function(g,s){return{aPosition:g.getAttribLocation(s,"aPosition")}},getUniformLocations:function(){return{}},sendAttributeData:function(g,s,c){var p=s.aPosition,a=g.createBuffer();g.bindBuffer(g.ARRAY_BUFFER,a),g.enableVertexAttribArray(p),g.vertexAttribPointer(p,2,g.FLOAT,!1,0,0),g.bufferData(g.ARRAY_BUFFER,c,g.STATIC_DRAW)},_setupFrameBuffer:function(g){var s=g.context,c,p;g.passes>1?(c=g.destinationWidth,p=g.destinationHeight,(g.sourceWidth!==c||g.sourceHeight!==p)&&(s.deleteTexture(g.targetTexture),g.targetTexture=g.filterBackend.createTexture(s,c,p)),s.framebufferTexture2D(s.FRAMEBUFFER,s.COLOR_ATTACHMENT0,s.TEXTURE_2D,g.targetTexture,0)):(s.bindFramebuffer(s.FRAMEBUFFER,null),s.finish())},_swapTextures:function(g){g.passes--,g.pass++;var s=g.targetTexture;g.targetTexture=g.sourceTexture,g.sourceTexture=s},isNeutralState:function(){var g=this.mainParameter,s=e.Image.filters[this.type].prototype;if(g)if(Array.isArray(s[g])){for(var c=s[g].length;c--;)if(this[g][c]!==s[g][c])return!1;return!0}else return s[g]===this[g];else return!1},applyTo:function(g){g.webgl?(this._setupFrameBuffer(g),this.applyToWebGL(g),this._swapTextures(g)):this.applyTo2d(g)},retrieveShader:function(g){return g.programCache.hasOwnProperty(this.type)||(g.programCache[this.type]=this.createProgram(g.context)),g.programCache[this.type]},applyToWebGL:function(g){var s=g.context,c=this.retrieveShader(g);g.pass===0&&g.originalTexture?s.bindTexture(s.TEXTURE_2D,g.originalTexture):s.bindTexture(s.TEXTURE_2D,g.sourceTexture),s.useProgram(c.program),this.sendAttributeData(s,c.attributeLocations,g.aPosition),s.uniform1f(c.uniformLocations.uStepW,1/g.sourceWidth),s.uniform1f(c.uniformLocations.uStepH,1/g.sourceHeight),this.sendUniformData(s,c.uniformLocations),s.viewport(0,0,g.destinationWidth,g.destinationHeight),s.drawArrays(s.TRIANGLE_STRIP,0,4)},bindAdditionalTexture:function(g,s,c){g.activeTexture(c),g.bindTexture(g.TEXTURE_2D,s),g.activeTexture(g.TEXTURE0)},unbindAdditionalTexture:function(g,s){g.activeTexture(s),g.bindTexture(g.TEXTURE_2D,null),g.activeTexture(g.TEXTURE0)},getMainParameter:function(){return this[this.mainParameter]},setMainParameter:function(g){this[this.mainParameter]=g},sendUniformData:function(){},createHelpLayer:function(g){if(!g.helpLayer){var s=document.createElement("canvas");s.width=g.sourceWidth,s.height=g.sourceHeight,g.helpLayer=s}},toObject:function(){var g={type:this.type},s=this.mainParameter;return s&&(g[s]=this[s]),g},toJSON:function(){return this.toObject()}}),e.Image.filters.BaseFilter.fromObject=function(g,s){var c=new e.Image.filters[g.type](g);return s&&s(c),c},function(g){var s=g.fabric||(g.fabric={}),c=s.Image.filters,p=s.util.createClass;c.ColorMatrix=p(c.BaseFilter,{type:"ColorMatrix",fragmentSource:`precision highp float; +uniform sampler2D uTexture; +varying vec2 vTexCoord; +uniform mat4 uColorMatrix; +uniform vec4 uConstants; +void main() { +vec4 color = texture2D(uTexture, vTexCoord); +color *= uColorMatrix; +color += uConstants; +gl_FragColor = color; +}`,matrix:[1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0],mainParameter:"matrix",colorsOnly:!0,initialize:function(a){this.callSuper("initialize",a),this.matrix=this.matrix.slice(0)},applyTo2d:function(a){var u=a.imageData,o=u.data,_=o.length,y=this.matrix,h,v,b,T,M,O=this.colorsOnly;for(M=0;M<_;M+=4)h=o[M],v=o[M+1],b=o[M+2],O?(o[M]=h*y[0]+v*y[1]+b*y[2]+y[4]*255,o[M+1]=h*y[5]+v*y[6]+b*y[7]+y[9]*255,o[M+2]=h*y[10]+v*y[11]+b*y[12]+y[14]*255):(T=o[M+3],o[M]=h*y[0]+v*y[1]+b*y[2]+T*y[3]+y[4]*255,o[M+1]=h*y[5]+v*y[6]+b*y[7]+T*y[8]+y[9]*255,o[M+2]=h*y[10]+v*y[11]+b*y[12]+T*y[13]+y[14]*255,o[M+3]=h*y[15]+v*y[16]+b*y[17]+T*y[18]+y[19]*255)},getUniformLocations:function(a,u){return{uColorMatrix:a.getUniformLocation(u,"uColorMatrix"),uConstants:a.getUniformLocation(u,"uConstants")}},sendUniformData:function(a,u){var o=this.matrix,_=[o[0],o[1],o[2],o[3],o[5],o[6],o[7],o[8],o[10],o[11],o[12],o[13],o[15],o[16],o[17],o[18]],y=[o[4],o[9],o[14],o[19]];a.uniformMatrix4fv(u.uColorMatrix,!1,_),a.uniform4fv(u.uConstants,y)}}),s.Image.filters.ColorMatrix.fromObject=s.Image.filters.BaseFilter.fromObject}(t),function(g){var s=g.fabric||(g.fabric={}),c=s.Image.filters,p=s.util.createClass;c.Brightness=p(c.BaseFilter,{type:"Brightness",fragmentSource:`precision highp float; +uniform sampler2D uTexture; +uniform float uBrightness; +varying vec2 vTexCoord; +void main() { +vec4 color = texture2D(uTexture, vTexCoord); +color.rgb += uBrightness; +gl_FragColor = color; +}`,brightness:0,mainParameter:"brightness",applyTo2d:function(a){if(this.brightness!==0){var u=a.imageData,o=u.data,_,y=o.length,h=Math.round(this.brightness*255);for(_=0;_=T||ke<0||ke>=b)&&(Re=(Te*b+ke)*4,ze=y[W*h+ee],D+=_[Re]*ze,R+=_[Re+1]*ze,Q+=_[Re+2]*ze,F||(ie+=_[Re+3]*ze));O[pe]=D,O[pe+1]=R,O[pe+2]=Q,F?O[pe+3]=_[pe+3]:O[pe+3]=ie}u.imageData=M},getUniformLocations:function(u,o){return{uMatrix:u.getUniformLocation(o,"uMatrix"),uOpaque:u.getUniformLocation(o,"uOpaque"),uHalfSize:u.getUniformLocation(o,"uHalfSize"),uSize:u.getUniformLocation(o,"uSize")}},sendUniformData:function(u,o){u.uniform1fv(o.uMatrix,this.matrix)},toObject:function(){return c(this.callSuper("toObject"),{opaque:this.opaque,matrix:this.matrix})}}),s.Image.filters.Convolute.fromObject=s.Image.filters.BaseFilter.fromObject}(t),function(g){var s=g.fabric||(g.fabric={}),c=s.Image.filters,p=s.util.createClass;c.Grayscale=p(c.BaseFilter,{type:"Grayscale",fragmentSource:{average:`precision highp float; +uniform sampler2D uTexture; +varying vec2 vTexCoord; +void main() { +vec4 color = texture2D(uTexture, vTexCoord); +float average = (color.r + color.b + color.g) / 3.0; +gl_FragColor = vec4(average, average, average, color.a); +}`,lightness:`precision highp float; +uniform sampler2D uTexture; +uniform int uMode; +varying vec2 vTexCoord; +void main() { +vec4 col = texture2D(uTexture, vTexCoord); +float average = (max(max(col.r, col.g),col.b) + min(min(col.r, col.g),col.b)) / 2.0; +gl_FragColor = vec4(average, average, average, col.a); +}`,luminosity:`precision highp float; +uniform sampler2D uTexture; +uniform int uMode; +varying vec2 vTexCoord; +void main() { +vec4 col = texture2D(uTexture, vTexCoord); +float average = 0.21 * col.r + 0.72 * col.g + 0.07 * col.b; +gl_FragColor = vec4(average, average, average, col.a); +}`},mode:"average",mainParameter:"mode",applyTo2d:function(a){var u=a.imageData,o=u.data,_,y=o.length,h,v=this.mode;for(_=0;_O[0]&&b>O[1]&&T>O[2]&&v 0.0) { +`+this.fragmentSource[a]+`} +}`},retrieveShader:function(a){var u=this.type+"_"+this.mode,o;return a.programCache.hasOwnProperty(u)||(o=this.buildSource(this.mode),a.programCache[u]=this.createProgram(a.context,o)),a.programCache[u]},applyTo2d:function(a){var u=a.imageData,o=u.data,_=o.length,y,h,v,b,T,M,O,F=1-this.alpha;O=new s.Color(this.color).getSource(),y=O[0]*this.alpha,h=O[1]*this.alpha,v=O[2]*this.alpha;for(var D=0;D<_;D+=4)switch(b=o[D],T=o[D+1],M=o[D+2],this.mode){case"multiply":o[D]=b*y/255,o[D+1]=T*h/255,o[D+2]=M*v/255;break;case"screen":o[D]=255-(255-b)*(255-y)/255,o[D+1]=255-(255-T)*(255-h)/255,o[D+2]=255-(255-M)*(255-v)/255;break;case"add":o[D]=b+y,o[D+1]=T+h,o[D+2]=M+v;break;case"diff":case"difference":o[D]=Math.abs(b-y),o[D+1]=Math.abs(T-h),o[D+2]=Math.abs(M-v);break;case"subtract":o[D]=b-y,o[D+1]=T-h,o[D+2]=M-v;break;case"darken":o[D]=Math.min(b,y),o[D+1]=Math.min(T,h),o[D+2]=Math.min(M,v);break;case"lighten":o[D]=Math.max(b,y),o[D+1]=Math.max(T,h),o[D+2]=Math.max(M,v);break;case"overlay":o[D]=y<128?2*b*y/255:255-2*(255-b)*(255-y)/255,o[D+1]=h<128?2*T*h/255:255-2*(255-T)*(255-h)/255,o[D+2]=v<128?2*M*v/255:255-2*(255-M)*(255-v)/255;break;case"exclusion":o[D]=y+b-2*y*b/255,o[D+1]=h+T-2*h*T/255,o[D+2]=v+M-2*v*M/255;break;case"tint":o[D]=y+b*F,o[D+1]=h+T*F,o[D+2]=v+M*F}},getUniformLocations:function(a,u){return{uColor:a.getUniformLocation(u,"uColor")}},sendUniformData:function(a,u){var o=new s.Color(this.color).getSource();o[0]=this.alpha*o[0]/255,o[1]=this.alpha*o[1]/255,o[2]=this.alpha*o[2]/255,o[3]=this.alpha,a.uniform4fv(u.uColor,o)},toObject:function(){return{type:this.type,color:this.color,mode:this.mode,alpha:this.alpha}}}),s.Image.filters.BlendColor.fromObject=s.Image.filters.BaseFilter.fromObject}(t),function(g){var s=g.fabric,c=s.Image.filters,p=s.util.createClass;c.BlendImage=p(c.BaseFilter,{type:"BlendImage",image:null,mode:"multiply",alpha:1,vertexSource:`attribute vec2 aPosition; +varying vec2 vTexCoord; +varying vec2 vTexCoord2; +uniform mat3 uTransformMatrix; +void main() { +vTexCoord = aPosition; +vTexCoord2 = (uTransformMatrix * vec3(aPosition, 1.0)).xy; +gl_Position = vec4(aPosition * 2.0 - 1.0, 0.0, 1.0); +}`,fragmentSource:{multiply:`precision highp float; +uniform sampler2D uTexture; +uniform sampler2D uImage; +uniform vec4 uColor; +varying vec2 vTexCoord; +varying vec2 vTexCoord2; +void main() { +vec4 color = texture2D(uTexture, vTexCoord); +vec4 color2 = texture2D(uImage, vTexCoord2); +color.rgba *= color2.rgba; +gl_FragColor = color; +}`,mask:`precision highp float; +uniform sampler2D uTexture; +uniform sampler2D uImage; +uniform vec4 uColor; +varying vec2 vTexCoord; +varying vec2 vTexCoord2; +void main() { +vec4 color = texture2D(uTexture, vTexCoord); +vec4 color2 = texture2D(uImage, vTexCoord2); +color.a = color2.a; +gl_FragColor = color; +}`},retrieveShader:function(a){var u=this.type+"_"+this.mode,o=this.fragmentSource[this.mode];return a.programCache.hasOwnProperty(u)||(a.programCache[u]=this.createProgram(a.context,o)),a.programCache[u]},applyToWebGL:function(a){var u=a.context,o=this.createTexture(a.filterBackend,this.image);this.bindAdditionalTexture(u,o,u.TEXTURE1),this.callSuper("applyToWebGL",a),this.unbindAdditionalTexture(u,u.TEXTURE1)},createTexture:function(a,u){return a.getCachedTexture(u.cacheKey,u._element)},calculateMatrix:function(){var a=this.image,u=a._element.width,o=a._element.height;return[1/a.scaleX,0,0,0,1/a.scaleY,0,-a.left/u,-a.top/o,1]},applyTo2d:function(a){var u=a.imageData,o=a.filterBackend.resources,_=u.data,y=_.length,h=u.width,v=u.height,b,T,M,O,F,D,R,Q,ie,pe,ke=this.image,Te;o.blendImage||(o.blendImage=s.util.createCanvasElement()),ie=o.blendImage,pe=ie.getContext("2d"),ie.width!==h||ie.height!==v?(ie.width=h,ie.height=v):pe.clearRect(0,0,h,v),pe.setTransform(ke.scaleX,0,0,ke.scaleY,ke.left,ke.top),pe.drawImage(ke._element,0,0,h,v),Te=pe.getImageData(0,0,h,v).data;for(var Re=0;Re=b||T<=-b)return 0;if(T<11920929e-14&&T>-11920929e-14)return 1;T*=Math.PI;var M=T/b;return _(T)/T*_(M)/M}},applyTo2d:function(b){var T=b.imageData,M=this.scaleX,O=this.scaleY;this.rcpScaleX=1/M,this.rcpScaleY=1/O;var F=T.width,D=T.height,R=o(F*M),Q=o(D*O),ie;this.resizeType==="sliceHack"?ie=this.sliceByTwo(b,F,D,R,Q):this.resizeType==="hermite"?ie=this.hermiteFastResize(b,F,D,R,Q):this.resizeType==="bilinear"?ie=this.bilinearFiltering(b,F,D,R,Q):this.resizeType==="lanczos"&&(ie=this.lanczosResize(b,F,D,R,Q)),b.imageData=ie},sliceByTwo:function(b,T,M,O,F){var D=b.imageData,R=.5,Q=!1,ie=!1,pe=T*R,ke=M*R,Te=s.filterBackend.resources,Re,ze,Ze=0,Ie=0,ee=T,W=0;for(Te.sliceByTwo||(Te.sliceByTwo=document.createElement("canvas")),Re=Te.sliceByTwo,(Re.width=T)){Fe=p(1e3*u(de-W.x)),ee[Fe]||(ee[Fe]={});for(var $e=K.y-Ie;$e<=K.y+Ie;$e++)$e<0||$e>=M||(He=p(1e3*u($e-W.y)),ee[Fe][He]||(ee[Fe][He]=pe(a(c(Fe*Re,2)+c(He*ze,2))/1e3)),ue=ee[Fe][He],ue>0&&(te=($e*T+de)*4,ge+=ue,Oe+=ue*R[te],Ue+=ue*R[te+1],Ae+=ue*R[te+2],he+=ue*R[te+3]))}te=(fe*O+se)*4,ie[te]=Oe/ge,ie[te+1]=Ue/ge,ie[te+2]=Ae/ge,ie[te+3]=he/ge}return++se1&&He<-1||(ee=2*He*He*He-3*He*He+1,ee>0&&(Fe=4*(he+ge*T),ue+=ee*ke[Fe+3],K+=ee,ke[Fe+3]<255&&(ee=ee*ke[Fe+3]/250),se+=ee*ke[Fe],fe+=ee*ke[Fe+1],de+=ee*ke[Fe+2],W+=ee))}Re[Ie]=se/W,Re[Ie+1]=fe/W,Re[Ie+2]=de/W,Re[Ie+3]=ue/K}return Te},toObject:function(){return{type:this.type,scaleX:this.scaleX,scaleY:this.scaleY,resizeType:this.resizeType,lanczosLobes:this.lanczosLobes}}}),s.Image.filters.Resize.fromObject=s.Image.filters.BaseFilter.fromObject}(t),function(g){var s=g.fabric||(g.fabric={}),c=s.Image.filters,p=s.util.createClass;c.Contrast=p(c.BaseFilter,{type:"Contrast",fragmentSource:`precision highp float; +uniform sampler2D uTexture; +uniform float uContrast; +varying vec2 vTexCoord; +void main() { +vec4 color = texture2D(uTexture, vTexCoord); +float contrastF = 1.015 * (uContrast + 1.0) / (1.0 * (1.015 - uContrast)); +color.rgb = contrastF * (color.rgb - 0.5) + 0.5; +gl_FragColor = color; +}`,contrast:0,mainParameter:"contrast",applyTo2d:function(a){if(this.contrast!==0){var u=a.imageData,o,y,_=u.data,y=_.length,h=Math.floor(this.contrast*255),v=259*(h+255)/(255*(259-h));for(o=0;o1&&(a=1/this.aspectRatio):this.aspectRatio<1&&(a=this.aspectRatio),o=a*this.blur*.12,this.horizontal?u[0]=o:u[1]=o,u}}),c.Blur.fromObject=s.Image.filters.BaseFilter.fromObject}(t),function(g){var s=g.fabric||(g.fabric={}),c=s.Image.filters,p=s.util.createClass;c.Gamma=p(c.BaseFilter,{type:"Gamma",fragmentSource:`precision highp float; +uniform sampler2D uTexture; +uniform vec3 uGamma; +varying vec2 vTexCoord; +void main() { +vec4 color = texture2D(uTexture, vTexCoord); +vec3 correction = (1.0 / uGamma); +color.r = pow(color.r, correction.r); +color.g = pow(color.g, correction.g); +color.b = pow(color.b, correction.b); +gl_FragColor = color; +gl_FragColor.rgb *= color.a; +}`,gamma:[1,1,1],mainParameter:"gamma",initialize:function(a){this.gamma=[1,1,1],c.BaseFilter.prototype.initialize.call(this,a)},applyTo2d:function(a){var u=a.imageData,o=u.data,_=this.gamma,y=o.length,h=1/_[0],v=1/_[1],b=1/_[2],T;for(this.rVals||(this.rVals=new Uint8Array(256),this.gVals=new Uint8Array(256),this.bVals=new Uint8Array(256)),T=0,y=256;T'},_getCacheCanvasDimensions:function(){var a=this.callSuper("_getCacheCanvasDimensions"),u=this.fontSize;return a.width+=u*a.zoomX,a.height+=u*a.zoomY,a},_render:function(a){var u=this.path;u&&!u.isNotVisible()&&u._render(a),this._setTextStyles(a),this._renderTextLinesBackground(a),this._renderTextDecoration(a,"underline"),this._renderText(a),this._renderTextDecoration(a,"overline"),this._renderTextDecoration(a,"linethrough")},_renderText:function(a){this.paintFirst==="stroke"?(this._renderTextStroke(a),this._renderTextFill(a)):(this._renderTextFill(a),this._renderTextStroke(a))},_setTextStyles:function(a,u,o){if(a.textBaseline="alphabetical",this.path)switch(this.pathAlign){case"center":a.textBaseline="middle";break;case"ascender":a.textBaseline="top";break;case"descender":a.textBaseline="bottom";break}a.font=this._getFontDeclaration(u,o)},calcTextWidth:function(){for(var a=this.getLineWidth(0),u=1,o=this._textLines.length;ua&&(a=_)}return a},_renderTextLine:function(a,u,o,_,y,h){this._renderChars(a,u,o,_,y,h)},_renderTextLinesBackground:function(a){if(!(!this.textBackgroundColor&&!this.styleHas("textBackgroundColor"))){for(var u,o,_=a.fillStyle,y,h,v=this._getLeftOffset(),b=this._getTopOffset(),T=0,M=0,O,F,D=this.path,R,Q=0,ie=this._textLines.length;Q=0:oF?M%=F:M<0&&(M+=F),this._setGraphemeOnPath(M,v,O),M+=v.kernedWidth}return{width:u,numOfSpaces:b}},_setGraphemeOnPath:function(a,u,o){var _=a+u.kernedWidth/2,y=this.path,h=s.util.getPointOnPath(y.path,_,y.segmentsInfo);u.renderLeft=h.x-o.x,u.renderTop=h.y-o.y,u.angle=h.angle+(this.pathSide==="right"?Math.PI:0)},_getGraphemeBox:function(a,u,o,_,y){var h=this.getCompleteStyleDeclaration(u,o),v=_?this.getCompleteStyleDeclaration(u,o-1):{},b=this._measureChar(a,h,_,v),T=b.kernedWidth,M=b.width,O;this.charSpacing!==0&&(O=this._getWidthOfCharSpacing(),M+=O,T+=O);var F={width:M,left:0,height:h.fontSize,kernedWidth:T,deltaY:h.deltaY};if(o>0&&!y){var D=this.__charBounds[u][o-1];F.left=D.left+D.width+b.kernedWidth-b.width}return F},getHeightOfLine:function(a){if(this.__lineHeights[a])return this.__lineHeights[a];for(var u=this._textLines[a],o=this.getHeightOfChar(a,0),_=1,y=u.length;_0){var fe=O+h+R;this.direction==="rtl"&&(fe=this.width-fe-Q),M&&Re&&(a.fillStyle=Re,a.fillRect(fe,D+Ie*_+v,Q,this.fontSize/15)),R=ie.left,Q=ie.width,M=pe,Re=Te,_=y,v=b}else Q+=ie.kernedWidth;var fe=O+h+R;this.direction==="rtl"&&(fe=this.width-fe-Q),a.fillStyle=Te,pe&&Te&&a.fillRect(fe,D+Ie*_+v,Q-Ze,this.fontSize/15),F+=o}this._removeShadow(a)}},_getFontDeclaration:function(a,u){var o=a||this,_=this.fontFamily,y=s.Text.genericFonts.indexOf(_.toLowerCase())>-1,h=_===void 0||_.indexOf("'")>-1||_.indexOf(",")>-1||_.indexOf('"')>-1||y?o.fontFamily:'"'+o.fontFamily+'"';return[s.isLikelyNode?o.fontWeight:o.fontStyle,s.isLikelyNode?o.fontStyle:o.fontWeight,u?this.CACHE_FONT_SIZE+"px":o.fontSize+"px",h].join(" ")},render:function(a){!this.visible||this.canvas&&this.canvas.skipOffscreen&&!this.group&&!this.isOnScreen()||(this._shouldClearDimensionCache()&&this.initDimensions(),this.callSuper("render",a))},_splitTextIntoLines:function(a){for(var u=a.split(this._reNewline),o=new Array(u.length),_=[` +`],y=[],h=0;h"u"?this.styles:{line:this.styles[g]};for(var c in s)for(var p in s[c])for(var a in s[c][p])return!1;return!0},styleHas:function(g,s){if(!this.styles||!g||g===""||typeof s<"u"&&!this.styles[s])return!1;var c=typeof s>"u"?this.styles:{0:this.styles[s]};for(var p in c)for(var a in c[p])if(typeof c[p][a][g]<"u")return!0;return!1},cleanStyle:function(g){if(!this.styles||!g||g==="")return!1;var s=this.styles,c=0,p,a,u=!0,o=0,_;for(var y in s){p=0;for(var h in s[y]){var _=s[y][h],v=_.hasOwnProperty(g);c++,v?(a?_[g]!==a&&(u=!1):a=_[g],_[g]===this[g]&&delete _[g]):u=!1,Object.keys(_).length!==0?p++:delete s[y][h]}p===0&&delete s[y]}for(var b=0;b"u"&&(g=this.selectionStart);for(var c=s?this._unwrappedTextLines:this._textLines,p=c.length,a=0;a"u"&&(g=this.selectionStart||0),typeof s>"u"&&(s=this.selectionEnd||g);for(var p=[],a=g;a"u"&&(s=this.selectionStart||0),typeof c>"u"&&(c=this.selectionEnd||s);for(var p=s;p"u"?this[a]:c[a];return p},_setStyleDeclaration:function(g,s,c){this.styles[g][s]=c},_deleteStyleDeclaration:function(g,s){delete this.styles[g][s]},_getLineStyle:function(g){return!!this.styles[g]},_setLineStyle:function(g){this.styles[g]={}},_deleteLineStyle:function(g){delete this.styles[g]}})}(),function(){function g(s){s.textDecoration&&(s.textDecoration.indexOf("underline")>-1&&(s.underline=!0),s.textDecoration.indexOf("line-through")>-1&&(s.linethrough=!0),s.textDecoration.indexOf("overline")>-1&&(s.overline=!0),delete s.textDecoration)}e.IText=e.util.createClass(e.Text,e.Observable,{type:"i-text",selectionStart:0,selectionEnd:0,selectionColor:"rgba(17,119,255,0.3)",isEditing:!1,editable:!0,editingBorderColor:"rgba(102,153,255,0.25)",cursorWidth:2,cursorColor:"",cursorDelay:1e3,cursorDuration:600,caching:!0,hiddenTextareaContainer:null,_reSpace:/\s|\n/,_currentCursorOpacity:0,_selectionDirection:null,_abortCursorAnimation:!1,__widthOfSpace:[],inCompositionMode:!1,initialize:function(s,c){this.callSuper("initialize",s,c),this.initBehavior()},setSelectionStart:function(s){s=Math.max(s,0),this._updateAndFire("selectionStart",s)},setSelectionEnd:function(s){s=Math.min(s,this.text.length),this._updateAndFire("selectionEnd",s)},_updateAndFire:function(s,c){this[s]!==c&&(this._fireSelectionChanged(),this[s]=c),this._updateTextarea()},_fireSelectionChanged:function(){this.fire("selection:changed"),this.canvas&&this.canvas.fire("text:selection:changed",{target:this})},initDimensions:function(){this.isEditing&&this.initDelayedCursor(),this.clearContextTop(),this.callSuper("initDimensions")},render:function(s){this.clearContextTop(),this.callSuper("render",s),this.cursorOffsetCache={},this.renderCursorOrSelection()},_render:function(s){this.callSuper("_render",s)},clearContextTop:function(s){if(!(!this.isEditing||!this.canvas||!this.canvas.contextTop)){var c=this.canvas.contextTop,p=this.canvas.viewportTransform;c.save(),c.transform(p[0],p[1],p[2],p[3],p[4],p[5]),this.transform(c),this._clearTextArea(c),s||c.restore()}},renderCursorOrSelection:function(){if(!(!this.isEditing||!this.canvas||!this.canvas.contextTop)){var s=this._getCursorBoundaries(),c=this.canvas.contextTop;this.clearContextTop(!0),this.selectionStart===this.selectionEnd?this.renderCursor(s,c):this.renderSelection(s,c),c.restore()}},_clearTextArea:function(s){var c=this.width+4,p=this.height+4;s.clearRect(-c/2,-p/2,c,p)},_getCursorBoundaries:function(s){typeof s>"u"&&(s=this.selectionStart);var c=this._getLeftOffset(),p=this._getTopOffset(),a=this._getCursorBoundariesOffsets(s);return{left:c,top:p,leftOffset:a.left,topOffset:a.top}},_getCursorBoundariesOffsets:function(s){if(this.cursorOffsetCache&&"top"in this.cursorOffsetCache)return this.cursorOffsetCache;var c,p,a,u=0,o=0,_,y=this.get2DCursorLocation(s);a=y.charIndex,p=y.lineIndex;for(var h=0;h0?o:0)},this.direction==="rtl"&&(_.left*=-1),this.cursorOffsetCache=_,this.cursorOffsetCache},renderCursor:function(s,c){var p=this.get2DCursorLocation(),a=p.lineIndex,u=p.charIndex>0?p.charIndex-1:0,o=this.getValueOfPropertyAt(a,u,"fontSize"),_=this.scaleX*this.canvas.getZoom(),y=this.cursorWidth/_,h=s.topOffset,v=this.getValueOfPropertyAt(a,u,"deltaY");h+=(1-this._fontSizeFraction)*this.getHeightOfLine(a)/this.lineHeight-o*(1-this._fontSizeFraction),this.inCompositionMode&&this.renderSelection(s,c),c.fillStyle=this.cursorColor||this.getValueOfPropertyAt(a,u,"fill"),c.globalAlpha=this.__isMousedown?1:this._currentCursorOpacity,c.fillRect(s.left+s.leftOffset-y/2,h+s.top+v,y,o)},renderSelection:function(s,c){for(var p=this.inCompositionMode?this.hiddenTextarea.selectionStart:this.selectionStart,a=this.inCompositionMode?this.hiddenTextarea.selectionEnd:this.selectionEnd,u=this.textAlign.indexOf("justify")!==-1,o=this.get2DCursorLocation(p),_=this.get2DCursorLocation(a),y=o.lineIndex,h=_.lineIndex,v=o.charIndex<0?0:o.charIndex,b=_.charIndex<0?0:_.charIndex,T=y;T<=h;T++){var M=this._getLineLeftOffset(T)||0,O=this.getHeightOfLine(T),F=0,D=0,R=0;if(T===y&&(D=this.__charBounds[y][v].left),T>=y&&T1)&&(O/=this.lineHeight);var ie=s.left+M+D,pe=R-D,ke=O,Te=0;this.inCompositionMode?(c.fillStyle=this.compositionColor||"black",ke=1,Te=O):c.fillStyle=this.selectionColor,this.direction==="rtl"&&(ie=this.width-ie-pe),c.fillRect(ie,s.top+s.topOffset+Te,pe,ke),s.topOffset+=F}},getCurrentCharFontSize:function(){var s=this._getCurrentCharIndex();return this.getValueOfPropertyAt(s.l,s.c,"fontSize")},getCurrentCharColor:function(){var s=this._getCurrentCharIndex();return this.getValueOfPropertyAt(s.l,s.c,"fill")},_getCurrentCharIndex:function(){var s=this.get2DCursorLocation(this.selectionStart,!0),c=s.charIndex>0?s.charIndex-1:0;return{l:s.lineIndex,c}}}),e.IText.fromObject=function(s,c){var p=e.util.stylesFromArray(s.styles,s.text),a=Object.assign({},s,{styles:p});if(g(a),a.styles)for(var u in a.styles)for(var o in a.styles[u])g(a.styles[u][o]);e.Object._fromObject("IText",a,c,"text")}}(),function(){var g=e.util.object.clone;e.util.object.extend(e.IText.prototype,{initBehavior:function(){this.initAddedHandler(),this.initRemovedHandler(),this.initCursorSelectionHandlers(),this.initDoubleClickSimulation(),this.mouseMoveHandler=this.mouseMoveHandler.bind(this)},onDeselect:function(){this.isEditing&&this.exitEditing(),this.selected=!1},initAddedHandler:function(){var s=this;this.on("added",function(){var c=s.canvas;c&&(c._hasITextHandlers||(c._hasITextHandlers=!0,s._initCanvasHandlers(c)),c._iTextInstances=c._iTextInstances||[],c._iTextInstances.push(s))})},initRemovedHandler:function(){var s=this;this.on("removed",function(){var c=s.canvas;c&&(c._iTextInstances=c._iTextInstances||[],e.util.removeFromArray(c._iTextInstances,s),c._iTextInstances.length===0&&(c._hasITextHandlers=!1,s._removeCanvasHandlers(c)))})},_initCanvasHandlers:function(s){s._mouseUpITextHandler=function(){s._iTextInstances&&s._iTextInstances.forEach(function(c){c.__isMousedown=!1})},s.on("mouse:up",s._mouseUpITextHandler)},_removeCanvasHandlers:function(s){s.off("mouse:up",s._mouseUpITextHandler)},_tick:function(){this._currentTickState=this._animateCursor(this,1,this.cursorDuration,"_onTickComplete")},_animateCursor:function(s,c,p,a){var u;return u={isAborted:!1,abort:function(){this.isAborted=!0}},s.animate("_currentCursorOpacity",c,{duration:p,onComplete:function(){u.isAborted||s[a]()},onChange:function(){s.canvas&&s.selectionStart===s.selectionEnd&&s.renderCursorOrSelection()},abort:function(){return u.isAborted}}),u},_onTickComplete:function(){var s=this;this._cursorTimeout1&&clearTimeout(this._cursorTimeout1),this._cursorTimeout1=setTimeout(function(){s._currentTickCompleteState=s._animateCursor(s,0,this.cursorDuration/2,"_tick")},100)},initDelayedCursor:function(s){var c=this,p=s?0:this.cursorDelay;this.abortCursorAnimation(),this._currentCursorOpacity=1,this._cursorTimeout2=setTimeout(function(){c._tick()},p)},abortCursorAnimation:function(){var s=this._currentTickState||this._currentTickCompleteState,c=this.canvas;this._currentTickState&&this._currentTickState.abort(),this._currentTickCompleteState&&this._currentTickCompleteState.abort(),clearTimeout(this._cursorTimeout1),clearTimeout(this._cursorTimeout2),this._currentCursorOpacity=0,s&&c&&c.clearContext(c.contextTop||c.contextContainer)},selectAll:function(){return this.selectionStart=0,this.selectionEnd=this._text.length,this._fireSelectionChanged(),this._updateTextarea(),this},getSelectedText:function(){return this._text.slice(this.selectionStart,this.selectionEnd).join("")},findWordBoundaryLeft:function(s){var c=0,p=s-1;if(this._reSpace.test(this._text[p]))for(;this._reSpace.test(this._text[p]);)c++,p--;for(;/\S/.test(this._text[p])&&p>-1;)c++,p--;return s-c},findWordBoundaryRight:function(s){var c=0,p=s;if(this._reSpace.test(this._text[p]))for(;this._reSpace.test(this._text[p]);)c++,p++;for(;/\S/.test(this._text[p])&&p-1;)c++,p--;return s-c},findLineBoundaryRight:function(s){for(var c=0,p=s;!/\n/.test(this._text[p])&&p0&&athis.__selectionStartOnMouseDown?(this.selectionStart=this.__selectionStartOnMouseDown,this.selectionEnd=c):(this.selectionStart=c,this.selectionEnd=this.__selectionStartOnMouseDown),(this.selectionStart!==p||this.selectionEnd!==a)&&(this.restartCursorIfNeeded(),this._fireSelectionChanged(),this._updateTextarea(),this.renderCursorOrSelection()))}},_setEditingProps:function(){this.hoverCursor="text",this.canvas&&(this.canvas.defaultCursor=this.canvas.moveCursor="text"),this.borderColor=this.editingBorderColor,this.hasControls=this.selectable=!1,this.lockMovementX=this.lockMovementY=!0},fromStringToGraphemeSelection:function(s,c,p){var a=p.slice(0,s),u=e.util.string.graphemeSplit(a).length;if(s===c)return{selectionStart:u,selectionEnd:u};var o=p.slice(s,c),_=e.util.string.graphemeSplit(o).length;return{selectionStart:u,selectionEnd:u+_}},fromGraphemeToStringSelection:function(s,c,p){var a=p.slice(0,s),u=a.join("").length;if(s===c)return{selectionStart:u,selectionEnd:u};var o=p.slice(s,c),_=o.join("").length;return{selectionStart:u,selectionEnd:u+_}},_updateTextarea:function(){if(this.cursorOffsetCache={},!!this.hiddenTextarea){if(!this.inCompositionMode){var s=this.fromGraphemeToStringSelection(this.selectionStart,this.selectionEnd,this._text);this.hiddenTextarea.selectionStart=s.selectionStart,this.hiddenTextarea.selectionEnd=s.selectionEnd}this.updateTextareaPosition()}},updateFromTextArea:function(){if(!!this.hiddenTextarea){this.cursorOffsetCache={},this.text=this.hiddenTextarea.value,this._shouldClearDimensionCache()&&(this.initDimensions(),this.setCoords());var s=this.fromStringToGraphemeSelection(this.hiddenTextarea.selectionStart,this.hiddenTextarea.selectionEnd,this.hiddenTextarea.value);this.selectionEnd=this.selectionStart=s.selectionEnd,this.inCompositionMode||(this.selectionStart=s.selectionStart),this.updateTextareaPosition()}},updateTextareaPosition:function(){if(this.selectionStart===this.selectionEnd){var s=this._calcTextareaPosition();this.hiddenTextarea.style.left=s.left,this.hiddenTextarea.style.top=s.top}},_calcTextareaPosition:function(){if(!this.canvas)return{x:1,y:1};var s=this.inCompositionMode?this.compositionStart:this.selectionStart,c=this._getCursorBoundaries(s),p=this.get2DCursorLocation(s),a=p.lineIndex,u=p.charIndex,o=this.getValueOfPropertyAt(a,u,"fontSize")*this.lineHeight,_=c.leftOffset,y=this.calcTransformMatrix(),h={x:c.left+_,y:c.top+c.topOffset+o},v=this.canvas.getRetinaScaling(),b=this.canvas.upperCanvasEl,T=b.width/v,M=b.height/v,O=T-o,F=M-o,D=b.clientWidth/T,R=b.clientHeight/M;return h=e.util.transformPoint(h,y),h=e.util.transformPoint(h,this.canvas.viewportTransform),h.x*=D,h.y*=R,h.x<0&&(h.x=0),h.x>O&&(h.x=O),h.y<0&&(h.y=0),h.y>F&&(h.y=F),h.x+=this.canvas._offset.left,h.y+=this.canvas._offset.top,{left:h.x+"px",top:h.y+"px",fontSize:o+"px",charHeight:o}},_saveEditingProps:function(){this._savedProps={hasControls:this.hasControls,borderColor:this.borderColor,lockMovementX:this.lockMovementX,lockMovementY:this.lockMovementY,hoverCursor:this.hoverCursor,selectable:this.selectable,defaultCursor:this.canvas&&this.canvas.defaultCursor,moveCursor:this.canvas&&this.canvas.moveCursor}},_restoreEditingProps:function(){!this._savedProps||(this.hoverCursor=this._savedProps.hoverCursor,this.hasControls=this._savedProps.hasControls,this.borderColor=this._savedProps.borderColor,this.selectable=this._savedProps.selectable,this.lockMovementX=this._savedProps.lockMovementX,this.lockMovementY=this._savedProps.lockMovementY,this.canvas&&(this.canvas.defaultCursor=this._savedProps.defaultCursor,this.canvas.moveCursor=this._savedProps.moveCursor))},exitEditing:function(){var s=this._textBeforeEdit!==this.text,c=this.hiddenTextarea;return this.selected=!1,this.isEditing=!1,this.selectionEnd=this.selectionStart,c&&(c.blur&&c.blur(),c.parentNode&&c.parentNode.removeChild(c)),this.hiddenTextarea=null,this.abortCursorAnimation(),this._restoreEditingProps(),this._currentCursorOpacity=0,this._shouldClearDimensionCache()&&(this.initDimensions(),this.setCoords()),this.fire("editing:exited"),s&&this.fire("modified"),this.canvas&&(this.canvas.off("mouse:move",this.mouseMoveHandler),this.canvas.fire("text:editing:exited",{target:this}),s&&this.canvas.fire("object:modified",{target:this})),this},_removeExtraneousStyles:function(){for(var s in this.styles)this._textLines[s]||delete this.styles[s]},removeStyleFromTo:function(s,c){var p=this.get2DCursorLocation(s,!0),a=this.get2DCursorLocation(c,!0),u=p.lineIndex,o=p.charIndex,_=a.lineIndex,y=a.charIndex,h,v;if(u!==_){if(this.styles[u])for(h=o;h=y&&(v[T-b]=v[M],delete v[M])}},shiftLineStyles:function(s,c){var p=g(this.styles);for(var a in this.styles){var u=parseInt(a,10);u>s&&(this.styles[u+c]=p[u],p[u-c]||delete this.styles[u])}},restartCursorIfNeeded:function(){(!this._currentTickState||this._currentTickState.isAborted||!this._currentTickCompleteState||this._currentTickCompleteState.isAborted)&&this.initDelayedCursor()},insertNewlineStyleObject:function(s,c,p,a){var u,o={},_=!1,y=this._unwrappedTextLines[s].length===c;p||(p=1),this.shiftLineStyles(s,p),this.styles[s]&&(u=this.styles[s][c===0?c:c-1]);for(var h in this.styles[s]){var v=parseInt(h,10);v>=c&&(_=!0,o[v-c]=this.styles[s][h],y&&c===0||delete this.styles[s][h])}var b=!1;for(_&&!y&&(this.styles[s+p]=o,b=!0),b&&p--;p>0;)a&&a[p-1]?this.styles[s+p]={0:g(a[p-1])}:u?this.styles[s+p]={0:g(u)}:delete this.styles[s+p],p--;this._forceClearCache=!0},insertCharStyleObject:function(s,c,p,a){this.styles||(this.styles={});var u=this.styles[s],o=u?g(u):{};p||(p=1);for(var _ in o){var y=parseInt(_,10);y>=c&&(u[y+p]=o[y],o[y-p]||delete u[y])}if(this._forceClearCache=!0,a){for(;p--;)!Object.keys(a[p]).length||(this.styles[s]||(this.styles[s]={}),this.styles[s][c+p]=g(a[p]));return}if(!!u)for(var h=u[c?c-1:1];h&&p--;)this.styles[s][c+p]=g(h)},insertNewStyleBlock:function(s,c,p){for(var a=this.get2DCursorLocation(c,!0),u=[0],o=0,_=0;_0&&(this.insertCharStyleObject(a.lineIndex,a.charIndex,u[0],p),p=p&&p.slice(u[0]+1)),o&&this.insertNewlineStyleObject(a.lineIndex,a.charIndex+u[0],o);for(var _=1;_0?this.insertCharStyleObject(a.lineIndex+_,0,u[_],p):p&&this.styles[a.lineIndex+_]&&p[0]&&(this.styles[a.lineIndex+_][0]=p[0]),p=p&&p.slice(u[_]+1);u[_]>0&&this.insertCharStyleObject(a.lineIndex+_,0,u[_],p)},setSelectionStartEndWithShift:function(s,c,p){p<=s?(c===s?this._selectionDirection="left":this._selectionDirection==="right"&&(this._selectionDirection="left",this.selectionEnd=s),this.selectionStart=p):p>s&&ps?this.selectionStart=s:this.selectionStart<0&&(this.selectionStart=0),this.selectionEnd>s?this.selectionEnd=s:this.selectionEnd<0&&(this.selectionEnd=0)}})}(),e.util.object.extend(e.IText.prototype,{initDoubleClickSimulation:function(){this.__lastClickTime=+new Date,this.__lastLastClickTime=+new Date,this.__lastPointer={},this.on("mousedown",this.onMouseDown)},onMouseDown:function(g){if(!!this.canvas){this.__newClickTime=+new Date;var s=g.pointer;this.isTripleClick(s)&&(this.fire("tripleclick",g),this._stopEvent(g.e)),this.__lastLastClickTime=this.__lastClickTime,this.__lastClickTime=this.__newClickTime,this.__lastPointer=s,this.__lastIsEditing=this.isEditing,this.__lastSelected=this.selected}},isTripleClick:function(g){return this.__newClickTime-this.__lastClickTime<500&&this.__lastClickTime-this.__lastLastClickTime<500&&this.__lastPointer.x===g.x&&this.__lastPointer.y===g.y},_stopEvent:function(g){g.preventDefault&&g.preventDefault(),g.stopPropagation&&g.stopPropagation()},initCursorSelectionHandlers:function(){this.initMousedownHandler(),this.initMouseupHandler(),this.initClicks()},doubleClickHandler:function(g){!this.isEditing||this.selectWord(this.getSelectionStartFromPointer(g.e))},tripleClickHandler:function(g){!this.isEditing||this.selectLine(this.getSelectionStartFromPointer(g.e))},initClicks:function(){this.on("mousedblclick",this.doubleClickHandler),this.on("tripleclick",this.tripleClickHandler)},_mouseDownHandler:function(g){!this.canvas||!this.editable||g.e.button&&g.e.button!==1||(this.__isMousedown=!0,this.selected&&(this.inCompositionMode=!1,this.setCursorByClick(g.e)),this.isEditing&&(this.__selectionStartOnMouseDown=this.selectionStart,this.selectionStart===this.selectionEnd&&this.abortCursorAnimation(),this.renderCursorOrSelection()))},_mouseDownHandlerBefore:function(g){!this.canvas||!this.editable||g.e.button&&g.e.button!==1||(this.selected=this===this.canvas._activeObject)},initMousedownHandler:function(){this.on("mousedown",this._mouseDownHandler),this.on("mousedown:before",this._mouseDownHandlerBefore)},initMouseupHandler:function(){this.on("mouseup",this.mouseUpHandler)},mouseUpHandler:function(g){if(this.__isMousedown=!1,!(!this.editable||this.group||g.transform&&g.transform.actionPerformed||g.e.button&&g.e.button!==1)){if(this.canvas){var s=this.canvas._activeObject;if(s&&s!==this)return}this.__lastSelected&&!this.__corner?(this.selected=!1,this.__lastSelected=!1,this.enterEditing(g.e),this.selectionStart===this.selectionEnd?this.initDelayedCursor(!0):this.renderCursorOrSelection()):this.selected=!0}},setCursorByClick:function(g){var s=this.getSelectionStartFromPointer(g),c=this.selectionStart,p=this.selectionEnd;g.shiftKey?this.setSelectionStartEndWithShift(c,p,s):(this.selectionStart=s,this.selectionEnd=s),this.isEditing&&(this._fireSelectionChanged(),this._updateTextarea())},getSelectionStartFromPointer:function(g){for(var s=this.getLocalPointer(g),c=0,p=0,a=0,u=0,o=0,_,y,h=0,v=this._textLines.length;h0&&(u+=this._textLines[h-1].length+this.missingNewlineOffset(h-1));_=this._getLineLeftOffset(o),p=_*this.scaleX,y=this._textLines[o],this.direction==="rtl"&&(s.x=this.width*this.scaleX-s.x+p);for(var b=0,T=y.length;bu||o<0?0:1,y=p+_;return this.flipX&&(y=a-y),y>this._text.length&&(y=this._text.length),y}}),e.util.object.extend(e.IText.prototype,{initHiddenTextarea:function(){this.hiddenTextarea=e.document.createElement("textarea"),this.hiddenTextarea.setAttribute("autocapitalize","off"),this.hiddenTextarea.setAttribute("autocorrect","off"),this.hiddenTextarea.setAttribute("autocomplete","off"),this.hiddenTextarea.setAttribute("spellcheck","false"),this.hiddenTextarea.setAttribute("data-fabric-hiddentextarea",""),this.hiddenTextarea.setAttribute("wrap","off");var g=this._calcTextareaPosition();this.hiddenTextarea.style.cssText="position: absolute; top: "+g.top+"; left: "+g.left+"; z-index: -999; opacity: 0; width: 1px; height: 1px; font-size: 1px; padding-top: "+g.fontSize+";",this.hiddenTextareaContainer?this.hiddenTextareaContainer.appendChild(this.hiddenTextarea):e.document.body.appendChild(this.hiddenTextarea),e.util.addListener(this.hiddenTextarea,"keydown",this.onKeyDown.bind(this)),e.util.addListener(this.hiddenTextarea,"keyup",this.onKeyUp.bind(this)),e.util.addListener(this.hiddenTextarea,"input",this.onInput.bind(this)),e.util.addListener(this.hiddenTextarea,"copy",this.copy.bind(this)),e.util.addListener(this.hiddenTextarea,"cut",this.copy.bind(this)),e.util.addListener(this.hiddenTextarea,"paste",this.paste.bind(this)),e.util.addListener(this.hiddenTextarea,"compositionstart",this.onCompositionStart.bind(this)),e.util.addListener(this.hiddenTextarea,"compositionupdate",this.onCompositionUpdate.bind(this)),e.util.addListener(this.hiddenTextarea,"compositionend",this.onCompositionEnd.bind(this)),!this._clickHandlerInitialized&&this.canvas&&(e.util.addListener(this.canvas.upperCanvasEl,"click",this.onClick.bind(this)),this._clickHandlerInitialized=!0)},keysMap:{9:"exitEditing",27:"exitEditing",33:"moveCursorUp",34:"moveCursorDown",35:"moveCursorRight",36:"moveCursorLeft",37:"moveCursorLeft",38:"moveCursorUp",39:"moveCursorRight",40:"moveCursorDown"},keysMapRtl:{9:"exitEditing",27:"exitEditing",33:"moveCursorUp",34:"moveCursorDown",35:"moveCursorLeft",36:"moveCursorRight",37:"moveCursorRight",38:"moveCursorUp",39:"moveCursorLeft",40:"moveCursorDown"},ctrlKeysMapUp:{67:"copy",88:"cut"},ctrlKeysMapDown:{65:"selectAll"},onClick:function(){this.hiddenTextarea&&this.hiddenTextarea.focus()},onKeyDown:function(g){if(!!this.isEditing){var s=this.direction==="rtl"?this.keysMapRtl:this.keysMap;if(g.keyCode in s)this[s[g.keyCode]](g);else if(g.keyCode in this.ctrlKeysMapDown&&(g.ctrlKey||g.metaKey))this[this.ctrlKeysMapDown[g.keyCode]](g);else return;g.stopImmediatePropagation(),g.preventDefault(),g.keyCode>=33&&g.keyCode<=40?(this.inCompositionMode=!1,this.clearContextTop(),this.renderCursorOrSelection()):this.canvas&&this.canvas.requestRenderAll()}},onKeyUp:function(g){if(!this.isEditing||this._copyDone||this.inCompositionMode){this._copyDone=!1;return}if(g.keyCode in this.ctrlKeysMapUp&&(g.ctrlKey||g.metaKey))this[this.ctrlKeysMapUp[g.keyCode]](g);else return;g.stopImmediatePropagation(),g.preventDefault(),this.canvas&&this.canvas.requestRenderAll()},onInput:function(g){var s=this.fromPaste;if(this.fromPaste=!1,g&&g.stopPropagation(),!!this.isEditing){var c=this._splitTextIntoLines(this.hiddenTextarea.value).graphemeText,p=this._text.length,a=c.length,u,o,_=a-p,y=this.selectionStart,h=this.selectionEnd,v=y!==h,b,T,M;if(this.hiddenTextarea.value===""){this.styles={},this.updateFromTextArea(),this.fire("changed"),this.canvas&&(this.canvas.fire("text:changed",{target:this}),this.canvas.requestRenderAll());return}var O=this.fromStringToGraphemeSelection(this.hiddenTextarea.selectionStart,this.hiddenTextarea.selectionEnd,this.hiddenTextarea.value),F=y>O.selectionStart;v?(u=this._text.slice(y,h),_+=h-y):a0&&(p=this.__charBounds[g][s-1],c+=p.left+p.width),c},getDownCursorOffset:function(g,s){var c=this._getSelectionForOffset(g,s),p=this.get2DCursorLocation(c),a=p.lineIndex;if(a===this._textLines.length-1||g.metaKey||g.keyCode===34)return this._text.length-c;var u=p.charIndex,o=this._getWidthBeforeCursor(a,u),_=this._getIndexOnLine(a+1,o),y=this._textLines[a].slice(u);return y.length+_+1+this.missingNewlineOffset(a)},_getSelectionForOffset:function(g,s){return g.shiftKey&&this.selectionStart!==this.selectionEnd&&s?this.selectionEnd:this.selectionStart},getUpCursorOffset:function(g,s){var c=this._getSelectionForOffset(g,s),p=this.get2DCursorLocation(c),a=p.lineIndex;if(a===0||g.metaKey||g.keyCode===33)return-c;var u=p.charIndex,o=this._getWidthBeforeCursor(a,u),_=this._getIndexOnLine(a-1,o),y=this._textLines[a].slice(0,u),h=this.missingNewlineOffset(a-1);return-this._textLines[a-1].length+_-y.length+(1-h)},_getIndexOnLine:function(g,s){for(var c=this._textLines[g],p=this._getLineLeftOffset(g),a=p,u=0,o,_,y=0,h=c.length;ys){_=!0;var v=a-o,b=a,T=Math.abs(v-s),M=Math.abs(b-s);u=M=this._text.length&&this.selectionEnd>=this._text.length||this._moveCursorUpOrDown("Down",g)},moveCursorUp:function(g){this.selectionStart===0&&this.selectionEnd===0||this._moveCursorUpOrDown("Up",g)},_moveCursorUpOrDown:function(g,s){var c="get"+g+"CursorOffset",p=this[c](s,this._selectionDirection==="right");s.shiftKey?this.moveCursorWithShift(p):this.moveCursorWithoutShift(p),p!==0&&(this.setSelectionInBoundaries(),this.abortCursorAnimation(),this._currentCursorOpacity=1,this.initDelayedCursor(),this._fireSelectionChanged(),this._updateTextarea())},moveCursorWithShift:function(g){var s=this._selectionDirection==="left"?this.selectionStart+g:this.selectionEnd+g;return this.setSelectionStartEndWithShift(this.selectionStart,this.selectionEnd,s),g!==0},moveCursorWithoutShift:function(g){return g<0?(this.selectionStart+=g,this.selectionEnd=this.selectionStart):(this.selectionEnd+=g,this.selectionStart=this.selectionEnd),g!==0},moveCursorLeft:function(g){this.selectionStart===0&&this.selectionEnd===0||this._moveCursorLeftOrRight("Left",g)},_move:function(g,s,c){var p;if(g.altKey)p=this["findWordBoundary"+c](this[s]);else if(g.metaKey||g.keyCode===35||g.keyCode===36)p=this["findLineBoundary"+c](this[s]);else return this[s]+=c==="Left"?-1:1,!0;if(typeof p<"u"&&this[s]!==p)return this[s]=p,!0},_moveLeft:function(g,s){return this._move(g,s,"Left")},_moveRight:function(g,s){return this._move(g,s,"Right")},moveCursorLeftWithoutShift:function(g){var s=!0;return this._selectionDirection="left",this.selectionEnd===this.selectionStart&&this.selectionStart!==0&&(s=this._moveLeft(g,"selectionStart")),this.selectionEnd=this.selectionStart,s},moveCursorLeftWithShift:function(g){if(this._selectionDirection==="right"&&this.selectionStart!==this.selectionEnd)return this._moveLeft(g,"selectionEnd");if(this.selectionStart!==0)return this._selectionDirection="left",this._moveLeft(g,"selectionStart")},moveCursorRight:function(g){this.selectionStart>=this._text.length&&this.selectionEnd>=this._text.length||this._moveCursorLeftOrRight("Right",g)},_moveCursorLeftOrRight:function(g,s){var c="moveCursor"+g+"With";this._currentCursorOpacity=1,s.shiftKey?c+="Shift":c+="outShift",this[c](s)&&(this.abortCursorAnimation(),this.initDelayedCursor(),this._fireSelectionChanged(),this._updateTextarea())},moveCursorRightWithShift:function(g){if(this._selectionDirection==="left"&&this.selectionStart!==this.selectionEnd)return this._moveRight(g,"selectionStart");if(this.selectionEnd!==this._text.length)return this._selectionDirection="right",this._moveRight(g,"selectionEnd")},moveCursorRightWithoutShift:function(g){var s=!0;return this._selectionDirection="right",this.selectionStart===this.selectionEnd?(s=this._moveRight(g,"selectionStart"),this.selectionEnd=this.selectionStart):this.selectionStart=this.selectionEnd,s},removeChars:function(g,s){typeof s>"u"&&(s=g+1),this.removeStyleFromTo(g,s),this._text.splice(g,s-g),this.text=this._text.join(""),this.set("dirty",!0),this._shouldClearDimensionCache()&&(this.initDimensions(),this.setCoords()),this._removeExtraneousStyles()},insertChars:function(g,s,c,p){typeof p>"u"&&(p=c),p>c&&this.removeStyleFromTo(c,p);var a=e.util.string.graphemeSplit(g);this.insertNewStyleBlock(a,c,s),this._text=[].concat(this._text.slice(0,c),a,this._text.slice(p)),this.text=this._text.join(""),this.set("dirty",!0),this._shouldClearDimensionCache()&&(this.initDimensions(),this.setCoords()),this._removeExtraneousStyles()}}),function(){var g=e.util.toFixed,s=/ +/g;e.util.object.extend(e.Text.prototype,{_toSVG:function(){var c=this._getSVGLeftTopOffsets(),p=this._getSVGTextAndBg(c.textTop,c.textLeft);return this._wrapSVGTextAndBg(p)},toSVG:function(c){return this._createBaseSVGMarkup(this._toSVG(),{reviver:c,noStyle:!0,withShadow:!0})},_getSVGLeftTopOffsets:function(){return{textLeft:-this.width/2,textTop:-this.height/2,lineTop:this.getHeightOfLine(0)}},_wrapSVGTextAndBg:function(c){var p=!0,a=this.getSvgTextDecoration(this);return[c.textBgRects.join(""),' ",c.textSpans.join(""),` +`]},_getSVGTextAndBg:function(c,p){var a=[],u=[],o=c,_;this._setSVGBg(u);for(var y=0,h=this._textLines.length;y",e.util.string.escapeXml(c),""].join("")},_setSVGTextLineText:function(c,p,a,u){var o=this.getHeightOfLine(p),_=this.textAlign.indexOf("justify")!==-1,y,h,v="",b,T,M=0,O=this._textLines[p],F;u+=o*(1-this._fontSizeFraction)/this.lineHeight;for(var D=0,R=O.length-1;D<=R;D++)F=D===R||this.charSpacing,v+=O[D],b=this.__charBounds[p][D],M===0?(a+=b.kernedWidth-b.width,M+=b.width):M+=b.kernedWidth,_&&!F&&this._reSpaceAndTab.test(O[D])&&(F=!0),F||(y=y||this.getCompleteStyleDeclaration(p,D),h=this.getCompleteStyleDeclaration(p,D+1),F=e.util.hasStyleChanged(y,h,!0)),F&&(T=this._getStyleDeclaration(p,D)||{},c.push(this._createTextCharSpan(v,T,a,u)),v="",y=h,a+=M,M=0)},_pushTextBgRect:function(c,p,a,u,o,_){var y=e.Object.NUM_FRACTION_DIGITS;c.push(" +`)},_setSVGTextLineBg:function(c,p,a,u){for(var o=this._textLines[p],_=this.getHeightOfLine(p)/this.lineHeight,y=0,h=0,v,b,T=this.getValueOfPropertyAt(p,0,"textBackgroundColor"),M=0,O=o.length;Mthis.width&&this._set("width",this.dynamicMinWidth),this.textAlign.indexOf("justify")!==-1&&this.enlargeSpaces(),this.height=this.calcTextHeight(),this.saveState({propertySet:"_dimensionAffectingProps"}))},_generateStyleMap:function(c){for(var p=0,a=0,u=0,o={},_=0;_0?(a=0,u++,p++):!this.splitByGrapheme&&this._reSpaceAndTab.test(c.graphemeText[u])&&_>0&&(a++,u++),o[_]={line:p,offset:a},u+=c.graphemeLines[_].length,a+=c.graphemeLines[_].length;return o},styleHas:function(c,p){if(this._styleMap&&!this.isWrapping){var a=this._styleMap[p];a&&(p=a.line)}return s.Text.prototype.styleHas.call(this,c,p)},isEmptyStyles:function(c){if(!this.styles)return!0;var p=0,a=c+1,u,o,_=!1,y=this._styleMap[c],h=this._styleMap[c+1];y&&(c=y.line,p=y.offset),h&&(a=h.line,_=a===c,u=h.offset),o=typeof c>"u"?this.styles:{line:this.styles[c]};for(var v in o)for(var b in o[v])if(b>=p&&(!_||ba&&!R?(y.push(h),h=[],o=O,R=!0):o+=Q,!R&&!_&&h.push(M),h=h.concat(b),F=_?0:this._measureWord([M],p,T),T++,R=!1,O>D&&(D=O);return pe&&y.push(h),D+ie>this.dynamicMinWidth&&(this.dynamicMinWidth=D-Q+ie),y},isEndOfWrapping:function(c){return!this._styleMap[c+1]||this._styleMap[c+1].line!==this._styleMap[c].line},missingNewlineOffset:function(c){return this.splitByGrapheme?this.isEndOfWrapping(c)?1:0:1},_splitTextIntoLines:function(c){for(var p=s.Text.prototype._splitTextIntoLines.call(this,c),a=this._wrapText(p.lines,this.width),u=new Array(a.length),o=0;o',this.eraser.toSVG(s),"",` +`].join("")):""},_createBaseClipPathSVGMarkup:function(s,c){return[this._createEraserSVGMarkup(c&&c.reviver),l.call(this,s,c)].join("")},_createBaseSVGMarkup:function(s,c){return[this._createEraserSVGMarkup(c&&c.reviver),m.call(this,s,c)].join("")}});var S=fabric.Group.prototype._restoreObjectsState;fabric.util.object.extend(fabric.Group.prototype,{_addEraserPathToObjects:function(s){this._objects.forEach(function(c){fabric.EraserBrush.prototype._addPathToObjectEraser.call(fabric.EraserBrush.prototype,c,s)})},applyEraserToObjects:function(){var s=this,c=this.eraser;if(c){delete this.eraser;var p=s.calcTransformMatrix();c.clone(function(a){var u=s.clipPath;a.getObjects("path").forEach(function(o){var _=fabric.util.multiplyTransformMatrices(p,o.calcTransformMatrix());fabric.util.applyTransformToObject(o,_),u?u.clone(function(y){var h=fabric.EraserBrush.prototype.applyClipPathToPath.call(fabric.EraserBrush.prototype,o,y,p);s._addEraserPathToObjects(h)},["absolutePositioned","inverted"]):s._addEraserPathToObjects(o)})})}},_restoreObjectsState:function(){return this.erasable===!0&&this.applyEraserToObjects(),S.call(this)}}),fabric.Eraser=fabric.util.createClass(fabric.Group,{type:"eraser",originX:"center",originY:"center",drawObject:function(s){s.save(),s.fillStyle="black",s.fillRect(-this.width/2,-this.height/2,this.width,this.height),s.restore(),this.callSuper("drawObject",s)},_getBounds:function(){},_toSVG:function(s){var c=[" +`],p=-this.width/2,a=-this.height/2,u=[" +`].join("");c.push(" ",u);for(var o=0,_=this._objects.length;o<_;o++)c.push(" ",this._objects[o].toSVG(s));return c.push(` +`),c}}),fabric.Eraser.fromObject=function(s,c){var p=s.objects;fabric.util.enlivenObjects(p,function(a){var u=fabric.util.object.clone(s,!0);delete u.objects,fabric.util.enlivenObjectEnlivables(s,u,function(){c&&c(new fabric.Eraser(a,u,!0))})})};var g=fabric.Canvas.prototype._renderOverlay;fabric.util.object.extend(fabric.Canvas.prototype,{isErasing:function(){return this.isDrawingMode&&this.freeDrawingBrush&&this.freeDrawingBrush.type==="eraser"&&this.freeDrawingBrush._isErasing},_renderOverlay:function(s){g.call(this,s),this.isErasing()&&!this.freeDrawingBrush.inverted&&this.freeDrawingBrush._render()}}),fabric.EraserBrush=fabric.util.createClass(fabric.PencilBrush,{type:"eraser",inverted:!1,_isErasing:!1,_isErasable:function(s){return s.erasable!==!1},_prepareCollectionTraversal:function(s,c,p){s.forEachObject(function(a){a.forEachObject&&a.erasable==="deep"?this._prepareCollectionTraversal(a,c,p):!this.inverted&&a.erasable&&a.visible?(a.visible=!1,s.dirty=!0,p.visibility.push(a),p.collection.push(s)):this.inverted&&a.visible&&(a.erasable&&a.eraser?(a.eraser.inverted=!0,a.dirty=!0,s.dirty=!0,p.eraser.push(a),p.collection.push(s)):(a.visible=!1,s.dirty=!0,p.visibility.push(a),p.collection.push(s)))},this)},preparePattern:function(){this._patternCanvas||(this._patternCanvas=fabric.util.createCanvasElement());var s=this._patternCanvas;s.width=this.canvas.width,s.height=this.canvas.height;var c=s.getContext("2d");if(this.canvas._isRetinaScaling()){var p=this.canvas.getRetinaScaling();this.canvas.__initRetinaScaling(p,s,c)}var a=this.canvas.backgroundImage,u=a&&this._isErasable(a),o=this.canvas.overlayImage,_=o&&this._isErasable(o);if(!this.inverted&&(a&&!u||!!this.canvas.backgroundColor))u&&(this.canvas.backgroundImage=void 0),this.canvas._renderBackground(c),u&&(this.canvas.backgroundImage=a);else if(this.inverted&&a&&u){var y=this.canvas.backgroundColor;this.canvas.backgroundColor=void 0,this.canvas._renderBackground(c),this.canvas.backgroundColor=y}c.save(),c.transform.apply(c,this.canvas.viewportTransform);var h={visibility:[],eraser:[],collection:[]};if(this._prepareCollectionTraversal(this.canvas,c,h),this.canvas._renderObjects(c,this.canvas._objects),h.visibility.forEach(function(v){v.visible=!0}),h.eraser.forEach(function(v){v.eraser.inverted=!1,v.dirty=!0}),h.collection.forEach(function(v){v.dirty=!0}),c.restore(),!this.inverted&&(o&&!_||!!this.canvas.overlayColor))_&&(this.canvas.overlayImage=void 0),g.call(this.canvas,c),_&&(this.canvas.overlayImage=o);else if(this.inverted&&o&&_){var y=this.canvas.overlayColor;this.canvas.overlayColor=void 0,g.call(this.canvas,c),this.canvas.overlayColor=y}},_setBrushStyles:function(s){this.callSuper("_setBrushStyles",s),s.strokeStyle="black"},_saveAndTransform:function(s){this.callSuper("_saveAndTransform",s),this._setBrushStyles(s),s.globalCompositeOperation=s===this.canvas.getContext()?"destination-out":"source-over"},needsFullRender:function(){return!0},onMouseDown:function(s,c){!this.canvas._isMainEvent(c.e)||(this._prepareForDrawing(s),this._captureDrawingPath(s),this.preparePattern(),this._isErasing=!0,this.canvas.fire("erasing:start"),this._render())},_render:function(){var s;this.inverted||(s=this.canvas.getContext(),this.callSuper("_render",s)),s=this.canvas.contextTop,this.canvas.clearContext(s),this.callSuper("_render",s),s.save();var c=this.canvas.getRetinaScaling(),p=1/c;s.scale(p,p),s.globalCompositeOperation="source-in",s.drawImage(this._patternCanvas,0,0),s.restore()},createPath:function(s){var c=this.callSuper("createPath",s);return c.globalCompositeOperation=this.inverted?"source-over":"destination-out",c.stroke=this.inverted?"white":"black",c},applyClipPathToPath:function(s,c,p){var a=fabric.util.invertTransform(s.calcTransformMatrix()),u=c.calcTransformMatrix(),o=c.absolutePositioned?a:fabric.util.multiplyTransformMatrices(a,p);return c.absolutePositioned=!1,fabric.util.applyTransformToObject(c,fabric.util.multiplyTransformMatrices(o,u)),s.clipPath=s.clipPath?fabric.util.mergeClipPaths(c,s.clipPath):c,s},clonePathWithClipPath:function(s,c,p){var a=c.calcTransformMatrix(),u=c.clipPath,o=this;s.clone(function(_){u.clone(function(y){p(o.applyClipPathToPath(_,y,a))},["absolutePositioned","inverted"])})},_addPathToObjectEraser:function(s,c){var p=this;if(s.forEachObject&&s.erasable==="deep"){var a=s._objects.filter(function(o){return o.erasable});a.length>0&&s.clipPath?this.clonePathWithClipPath(c,s,function(o){a.forEach(function(_){p._addPathToObjectEraser(_,o)})}):a.length>0&&a.forEach(function(o){p._addPathToObjectEraser(o,c)});return}var u=s.eraser;u||(u=new fabric.Eraser,s.eraser=u),c.clone(function(o){var _=fabric.util.multiplyTransformMatrices(fabric.util.invertTransform(s.calcTransformMatrix()),o.calcTransformMatrix());fabric.util.applyTransformToObject(o,_),u.addWithUpdate(o),s.set("dirty",!0),s.fire("erasing:end",{path:o}),s.group&&Array.isArray(p.__subTargets)&&p.__subTargets.push(s)})},applyEraserToCanvas:function(s){var c=this.canvas,p={};return["backgroundImage","overlayImage"].forEach(function(a){var u=c[a];u&&u.erasable&&(this._addPathToObjectEraser(u,s),p[a]=u)},this),p},_finalizeAndAddPath:function(){var s=this.canvas.contextTop,c=this.canvas;s.closePath(),this.decimate&&(this._points=this.decimatePoints(this._points,this.decimate)),c.clearContext(c.contextTop),this._isErasing=!1;var p=this._points&&this._points.length>1?this.convertPointsToSVGPath(this._points):null;if(!p||this._isEmptySVGPath(p)){c.fire("erasing:end"),c.requestRenderAll();return}var a=this.createPath(p);a.setCoords(),c.fire("before:path:created",{path:a});var u=this.applyEraserToCanvas(a),o=this;this.__subTargets=[];var _=[];c.forEachObject(function(y){y.erasable&&y.intersectsWithObject(a,!0,!0)&&(o._addPathToObjectEraser(y,a),_.push(y))}),c.fire("erasing:end",{path:a,targets:_,subTargets:this.__subTargets,drawables:u}),delete this.__subTargets,c.requestRenderAll(),this._resetShadow(),c.fire("path:created",{path:a})}})})();const cT=t=>{let e;const n=new Set,r=(s,c)=>{const p=typeof s=="function"?s(e):s;if(!Object.is(p,e)){const a=e;e=(c!=null?c:typeof p!="object"||p===null)?p:Object.assign({},e,p),n.forEach(u=>u(e,a))}},l=()=>e,g={setState:r,getState:l,subscribe:s=>(n.add(s),()=>n.delete(s)),destroy:()=>{n.clear()}};return e=t(r,l,g),g},Dk=t=>t?cT(t):cT;var d2={exports:{}},f2={},h2={exports:{}},p2={};/** + * @license React + * use-sync-external-store-shim.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var hm=rr.exports;function Lk(t,e){return t===e&&(t!==0||1/t===1/e)||t!==t&&e!==e}var Rk=typeof Object.is=="function"?Object.is:Lk,zk=hm.useState,Bk=hm.useEffect,Nk=hm.useLayoutEffect,jk=hm.useDebugValue;function Wk(t,e){var n=e(),r=zk({inst:{value:n,getSnapshot:e}}),l=r[0].inst,m=r[1];return Nk(function(){l.value=n,l.getSnapshot=e,g1(l)&&m({inst:l})},[t,n,e]),Bk(function(){return g1(l)&&m({inst:l}),t(function(){g1(l)&&m({inst:l})})},[t]),jk(n),n}function g1(t){var e=t.getSnapshot;t=t.value;try{var n=e();return!Rk(t,n)}catch{return!0}}function Vk(t,e){return e()}var Uk=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?Vk:Wk;p2.useSyncExternalStore=hm.useSyncExternalStore!==void 0?hm.useSyncExternalStore:Uk;(function(t){t.exports=p2})(h2);/** + * @license React + * use-sync-external-store-shim/with-selector.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var wy=rr.exports,Gk=h2.exports;function Hk(t,e){return t===e&&(t!==0||1/t===1/e)||t!==t&&e!==e}var Xk=typeof Object.is=="function"?Object.is:Hk,qk=Gk.useSyncExternalStore,Yk=wy.useRef,Kk=wy.useEffect,Qk=wy.useMemo,Jk=wy.useDebugValue;f2.useSyncExternalStoreWithSelector=function(t,e,n,r,l){var m=Yk(null);if(m.current===null){var S={hasValue:!1,value:null};m.current=S}else S=m.current;m=Qk(function(){function s(o){if(!c){if(c=!0,p=o,o=r(o),l!==void 0&&S.hasValue){var _=S.value;if(l(_,o))return a=_}return a=o}if(_=a,Xk(p,o))return _;var y=r(o);return l!==void 0&&l(_,y)?_:(p=o,a=y)}var c=!1,p,a,u=n===void 0?null:n;return[function(){return s(e())},u===null?void 0:function(){return s(u())}]},[e,n,r,l]);var g=qk(t,m[0],m[1]);return Kk(function(){S.hasValue=!0,S.value=g},[g]),Jk(g),g};(function(t){t.exports=f2})(d2);const Zk=tC(d2.exports),{useDebugValue:eO}=Gh,{useSyncExternalStoreWithSelector:tO}=Zk;function nO(t,e=t.getState,n){const r=tO(t.subscribe,t.getState,t.getServerState||t.getState,e,n);return eO(r),r}const dT=t=>{const e=typeof t=="function"?Dk(t):t,n=(r,l)=>nO(e,r,l);return Object.assign(n,e),n},MF=t=>t?dT(t):dT;function rO(t,e){let n;try{n=t()}catch{return}return{getItem:l=>{var m;const S=s=>s===null?null:JSON.parse(s,e==null?void 0:e.reviver),g=(m=n.getItem(l))!=null?m:null;return g instanceof Promise?g.then(S):S(g)},setItem:(l,m)=>n.setItem(l,JSON.stringify(m,e==null?void 0:e.replacer)),removeItem:l=>n.removeItem(l)}}const Jg=t=>e=>{try{const n=t(e);return n instanceof Promise?n:{then(r){return Jg(r)(n)},catch(r){return this}}}catch(n){return{then(r){return this},catch(r){return Jg(r)(n)}}}},iO=(t,e)=>(n,r,l)=>{let m={getStorage:()=>localStorage,serialize:JSON.stringify,deserialize:JSON.parse,partialize:h=>h,version:0,merge:(h,v)=>({...v,...h}),...e},S=!1;const g=new Set,s=new Set;let c;try{c=m.getStorage()}catch{}if(!c)return t((...h)=>{console.warn(`[zustand persist middleware] Unable to update item '${m.name}', the given storage is currently unavailable.`),n(...h)},r,l);const p=Jg(m.serialize),a=()=>{const h=m.partialize({...r()});let v;const b=p({state:h,version:m.version}).then(T=>c.setItem(m.name,T)).catch(T=>{v=T});if(v)throw v;return b},u=l.setState;l.setState=(h,v)=>{u(h,v),a()};const o=t((...h)=>{n(...h),a()},r,l);let _;const y=()=>{var h;if(!c)return;S=!1,g.forEach(b=>b(r()));const v=((h=m.onRehydrateStorage)==null?void 0:h.call(m,r()))||void 0;return Jg(c.getItem.bind(c))(m.name).then(b=>{if(b)return m.deserialize(b)}).then(b=>{if(b)if(typeof b.version=="number"&&b.version!==m.version){if(m.migrate)return m.migrate(b.state,b.version);console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}else return b.state}).then(b=>{var T;return _=m.merge(b,(T=r())!=null?T:o),n(_,!0),a()}).then(()=>{v==null||v(_,void 0),S=!0,s.forEach(b=>b(_))}).catch(b=>{v==null||v(void 0,b)})};return l.persist={setOptions:h=>{m={...m,...h},h.getStorage&&(c=h.getStorage())},clearStorage:()=>{c==null||c.removeItem(m.name)},getOptions:()=>m,rehydrate:()=>y(),hasHydrated:()=>S,onHydrate:h=>(g.add(h),()=>{g.delete(h)}),onFinishHydration:h=>(s.add(h),()=>{s.delete(h)})},y(),_||o},sO=(t,e)=>(n,r,l)=>{let m={storage:rO(()=>localStorage),partialize:y=>y,version:0,merge:(y,h)=>({...h,...y}),...e},S=!1;const g=new Set,s=new Set;let c=m.storage;if(!c)return t((...y)=>{console.warn(`[zustand persist middleware] Unable to update item '${m.name}', the given storage is currently unavailable.`),n(...y)},r,l);const p=()=>{const y=m.partialize({...r()});return c.setItem(m.name,{state:y,version:m.version})},a=l.setState;l.setState=(y,h)=>{a(y,h),p()};const u=t((...y)=>{n(...y),p()},r,l);let o;const _=()=>{var y,h;if(!c)return;S=!1,g.forEach(b=>{var T;return b((T=r())!=null?T:u)});const v=((h=m.onRehydrateStorage)==null?void 0:h.call(m,(y=r())!=null?y:u))||void 0;return Jg(c.getItem.bind(c))(m.name).then(b=>{if(b)if(typeof b.version=="number"&&b.version!==m.version){if(m.migrate)return m.migrate(b.state,b.version);console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}else return b.state}).then(b=>{var T;return o=m.merge(b,(T=r())!=null?T:u),n(o,!0),p()}).then(()=>{v==null||v(o,void 0),o=r(),S=!0,s.forEach(b=>b(o))}).catch(b=>{v==null||v(void 0,b)})};return l.persist={setOptions:y=>{m={...m,...y},y.storage&&(c=y.storage)},clearStorage:()=>{c==null||c.removeItem(m.name)},getOptions:()=>m,rehydrate:()=>_(),hasHydrated:()=>S,onHydrate:y=>(g.add(y),()=>{g.delete(y)}),onFinishHydration:y=>(s.add(y),()=>{s.delete(y)})},m.skipHydration||_(),o||u},aO=(t,e)=>"getStorage"in e||"serialize"in e||"deserialize"in e?iO(t,e):sO(t,e),EF=aO;function by(t){return new Promise((e,n)=>{t.oncomplete=t.onsuccess=()=>e(t.result),t.onabort=t.onerror=()=>n(t.error)})}function oO(t,e){const n=indexedDB.open(t);n.onupgradeneeded=()=>n.result.createObjectStore(e);const r=by(n);return(l,m)=>r.then(S=>m(S.transaction(e,l).objectStore(e)))}let _1;function Ax(){return _1||(_1=oO("keyval-store","keyval")),_1}function PF(t,e=Ax()){return e("readonly",n=>by(n.get(t)))}function kF(t,e,n=Ax()){return n("readwrite",r=>(r.put(e,t),by(r.transaction)))}function OF(t,e=Ax()){return e("readwrite",n=>(n.delete(t),by(n.transaction)))}let i0;const lO=new Uint8Array(16);function uO(){if(!i0&&(i0=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!i0))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return i0(lO)}const ls=[];for(let t=0;t<256;++t)ls.push((t+256).toString(16).slice(1));function cO(t,e=0){return ls[t[e+0]]+ls[t[e+1]]+ls[t[e+2]]+ls[t[e+3]]+"-"+ls[t[e+4]]+ls[t[e+5]]+"-"+ls[t[e+6]]+ls[t[e+7]]+"-"+ls[t[e+8]]+ls[t[e+9]]+"-"+ls[t[e+10]]+ls[t[e+11]]+ls[t[e+12]]+ls[t[e+13]]+ls[t[e+14]]+ls[t[e+15]]}const dO=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),fT={randomUUID:dO};function AF(t,e,n){if(fT.randomUUID&&!e&&!t)return fT.randomUUID();t=t||{};const r=t.random||(t.rng||uO)();if(r[6]=r[6]&15|64,r[8]=r[8]&63|128,e){n=n||0;for(let l=0;l<16;++l)e[n+l]=r[l];return e}return cO(r)}var fO=Object.defineProperty,hT=Object.getOwnPropertySymbols,hO=Object.prototype.hasOwnProperty,pO=Object.prototype.propertyIsEnumerable,pT=(t,e,n)=>e in t?fO(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,mO=(t,e)=>{for(var n in e||(e={}))hO.call(e,n)&&pT(t,n,e[n]);if(hT)for(var n of hT(e))pO.call(e,n)&&pT(t,n,e[n]);return t},m2=Symbol.for("immer-nothing"),mT=Symbol.for("immer-draftable"),Va=Symbol.for("immer-state");function nl(t,...e){throw new Error(`[Immer] minified error nr: ${t}. Full error at: https://bit.ly/3cXEKWf`)}var pm=Object.getPrototypeOf;function mm(t){return!!t&&!!t[Va]}function Qh(t){var e;return t?g2(t)||Array.isArray(t)||!!t[mT]||!!((e=t.constructor)!=null&&e[mT])||Sy(t)||Ty(t):!1}var gO=Object.prototype.constructor.toString();function g2(t){if(!t||typeof t!="object")return!1;const e=pm(t);if(e===null)return!0;const n=Object.hasOwnProperty.call(e,"constructor")&&e.constructor;return n===Object?!0:typeof n=="function"&&Function.toString.call(n)===gO}function Zg(t,e){xy(t)===0?Object.entries(t).forEach(([n,r])=>{e(n,r,t)}):t.forEach((n,r)=>e(r,n,t))}function xy(t){const e=t[Va];return e?e.type_:Array.isArray(t)?1:Sy(t)?2:Ty(t)?3:0}function Tb(t,e){return xy(t)===2?t.has(e):Object.prototype.hasOwnProperty.call(t,e)}function _2(t,e,n){const r=xy(t);r===2?t.set(e,n):r===3?t.add(n):t[e]=n}function _O(t,e){return t===e?t!==0||1/t===1/e:t!==t&&e!==e}function Sy(t){return t instanceof Map}function Ty(t){return t instanceof Set}function zh(t){return t.copy_||t.base_}function Cb(t,e){if(Sy(t))return new Map(t);if(Ty(t))return new Set(t);if(Array.isArray(t))return Array.prototype.slice.call(t);if(!e&&g2(t))return pm(t)?mO({},t):Object.assign(Object.create(null),t);const n=Object.getOwnPropertyDescriptors(t);delete n[Va];let r=Reflect.ownKeys(n);for(let l=0;l1&&(t.set=t.add=t.clear=t.delete=vO),Object.freeze(t),e&&Zg(t,(n,r)=>Ix(r,!0))),t}function vO(){nl(2)}function Cy(t){return Object.isFrozen(t)}var yO={};function Jh(t){const e=yO[t];return e||nl(0,t),e}var e_;function v2(){return e_}function wO(t,e){return{drafts_:[],parent_:t,immer_:e,canAutoFreeze_:!0,unfinalizedDrafts_:0}}function gT(t,e){e&&(Jh("Patches"),t.patches_=[],t.inversePatches_=[],t.patchListener_=e)}function Mb(t){Eb(t),t.drafts_.forEach(bO),t.drafts_=null}function Eb(t){t===e_&&(e_=t.parent_)}function _T(t){return e_=wO(e_,t)}function bO(t){const e=t[Va];e.type_===0||e.type_===1?e.revoke_():e.revoked_=!0}function vT(t,e){e.unfinalizedDrafts_=e.drafts_.length;const n=e.drafts_[0];return t!==void 0&&t!==n?(n[Va].modified_&&(Mb(e),nl(4)),Qh(t)&&(t=q0(e,t),e.parent_||Y0(e,t)),e.patches_&&Jh("Patches").generateReplacementPatches_(n[Va].base_,t,e.patches_,e.inversePatches_)):t=q0(e,n,[]),Mb(e),e.patches_&&e.patchListener_(e.patches_,e.inversePatches_),t!==m2?t:void 0}function q0(t,e,n){if(Cy(e))return e;const r=e[Va];if(!r)return Zg(e,(l,m)=>yT(t,r,e,l,m,n)),e;if(r.scope_!==t)return e;if(!r.modified_)return Y0(t,r.base_,!0),r.base_;if(!r.finalized_){r.finalized_=!0,r.scope_.unfinalizedDrafts_--;const l=r.copy_;let m=l,S=!1;r.type_===3&&(m=new Set(l),l.clear(),S=!0),Zg(m,(g,s)=>yT(t,r,l,g,s,n,S)),Y0(t,l,!1),n&&t.patches_&&Jh("Patches").generatePatches_(r,n,t.patches_,t.inversePatches_)}return r.copy_}function yT(t,e,n,r,l,m,S){if(mm(l)){const g=m&&e&&e.type_!==3&&!Tb(e.assigned_,r)?m.concat(r):void 0,s=q0(t,l,g);if(_2(n,r,s),mm(s))t.canAutoFreeze_=!1;else return}else S&&n.add(l);if(Qh(l)&&!Cy(l)){if(!t.immer_.autoFreeze_&&t.unfinalizedDrafts_<1)return;q0(t,l),(!e||!e.scope_.parent_)&&Y0(t,l)}}function Y0(t,e,n=!1){!t.parent_&&t.immer_.autoFreeze_&&t.canAutoFreeze_&&Ix(e,n)}function xO(t,e){const n=Array.isArray(t),r={type_:n?1:0,scope_:e?e.scope_:v2(),modified_:!1,finalized_:!1,assigned_:{},parent_:e,base_:t,draft_:null,copy_:null,revoke_:null,isManual_:!1};let l=r,m=Fx;n&&(l=[r],m=t_);const{revoke:S,proxy:g}=Proxy.revocable(l,m);return r.draft_=g,r.revoke_=S,g}var Fx={get(t,e){if(e===Va)return t;const n=zh(t);if(!Tb(n,e))return SO(t,n,e);const r=n[e];return t.finalized_||!Qh(r)?r:r===v1(t.base_,e)?(y1(t),t.copy_[e]=kb(r,t)):r},has(t,e){return e in zh(t)},ownKeys(t){return Reflect.ownKeys(zh(t))},set(t,e,n){const r=y2(zh(t),e);if(r!=null&&r.set)return r.set.call(t.draft_,n),!0;if(!t.modified_){const l=v1(zh(t),e),m=l==null?void 0:l[Va];if(m&&m.base_===n)return t.copy_[e]=n,t.assigned_[e]=!1,!0;if(_O(n,l)&&(n!==void 0||Tb(t.base_,e)))return!0;y1(t),Pb(t)}return t.copy_[e]===n&&(n!==void 0||e in t.copy_)||Number.isNaN(n)&&Number.isNaN(t.copy_[e])||(t.copy_[e]=n,t.assigned_[e]=!0),!0},deleteProperty(t,e){return v1(t.base_,e)!==void 0||e in t.base_?(t.assigned_[e]=!1,y1(t),Pb(t)):delete t.assigned_[e],t.copy_&&delete t.copy_[e],!0},getOwnPropertyDescriptor(t,e){const n=zh(t),r=Reflect.getOwnPropertyDescriptor(n,e);return r&&{writable:!0,configurable:t.type_!==1||e!=="length",enumerable:r.enumerable,value:n[e]}},defineProperty(){nl(11)},getPrototypeOf(t){return pm(t.base_)},setPrototypeOf(){nl(12)}},t_={};Zg(Fx,(t,e)=>{t_[t]=function(){return arguments[0]=arguments[0][0],e.apply(this,arguments)}});t_.deleteProperty=function(t,e){return t_.set.call(this,t,e,void 0)};t_.set=function(t,e,n){return Fx.set.call(this,t[0],e,n,t[0])};function v1(t,e){const n=t[Va];return(n?zh(n):t)[e]}function SO(t,e,n){var r;const l=y2(e,n);return l?"value"in l?l.value:(r=l.get)==null?void 0:r.call(t.draft_):void 0}function y2(t,e){if(!(e in t))return;let n=pm(t);for(;n;){const r=Object.getOwnPropertyDescriptor(n,e);if(r)return r;n=pm(n)}}function Pb(t){t.modified_||(t.modified_=!0,t.parent_&&Pb(t.parent_))}function y1(t){t.copy_||(t.copy_=Cb(t.base_,t.scope_.immer_.useStrictShallowCopy_))}var TO=class{constructor(t){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.produce=(e,n,r)=>{if(typeof e=="function"&&typeof n!="function"){const m=n;n=e;const S=this;return function(s=m,...c){return S.produce(s,p=>n.call(this,p,...c))}}typeof n!="function"&&nl(6),r!==void 0&&typeof r!="function"&&nl(7);let l;if(Qh(e)){const m=_T(this),S=kb(e,void 0);let g=!0;try{l=n(S),g=!1}finally{g?Mb(m):Eb(m)}return gT(m,r),vT(l,m)}else if(!e||typeof e!="object"){if(l=n(e),l===void 0&&(l=e),l===m2&&(l=void 0),this.autoFreeze_&&Ix(l,!0),r){const m=[],S=[];Jh("Patches").generateReplacementPatches_(e,l,m,S),r(m,S)}return l}else nl(1,e)},this.produceWithPatches=(e,n)=>{if(typeof e=="function")return(S,...g)=>this.produceWithPatches(S,s=>e(s,...g));let r,l;return[this.produce(e,n,(S,g)=>{r=S,l=g}),r,l]},typeof(t==null?void 0:t.autoFreeze)=="boolean"&&this.setAutoFreeze(t.autoFreeze),typeof(t==null?void 0:t.useStrictShallowCopy)=="boolean"&&this.setUseStrictShallowCopy(t.useStrictShallowCopy)}createDraft(t){Qh(t)||nl(8),mm(t)&&(t=CO(t));const e=_T(this),n=kb(t,void 0);return n[Va].isManual_=!0,Eb(e),n}finishDraft(t,e){const n=t&&t[Va];(!n||!n.isManual_)&&nl(9);const{scope_:r}=n;return gT(r,e),vT(void 0,r)}setAutoFreeze(t){this.autoFreeze_=t}setUseStrictShallowCopy(t){this.useStrictShallowCopy_=t}applyPatches(t,e){let n;for(n=e.length-1;n>=0;n--){const l=e[n];if(l.path.length===0&&l.op==="replace"){t=l.value;break}}n>-1&&(e=e.slice(n+1));const r=Jh("Patches").applyPatches_;return mm(t)?r(t,e):this.produce(t,l=>r(l,e))}};function kb(t,e){const n=Sy(t)?Jh("MapSet").proxyMap_(t,e):Ty(t)?Jh("MapSet").proxySet_(t,e):xO(t,e);return(e?e.scope_:v2()).drafts_.push(n),n}function CO(t){return mm(t)||nl(10,t),w2(t)}function w2(t){if(!Qh(t)||Cy(t))return t;const e=t[Va];let n;if(e){if(!e.modified_)return e.base_;e.finalized_=!0,n=Cb(t,e.scope_.immer_.useStrictShallowCopy_)}else n=Cb(t,!0);return Zg(n,(r,l)=>{_2(n,r,w2(l))}),e&&(e.finalized_=!1),n}var Ua=new TO,IF=Ua.produce;Ua.produceWithPatches.bind(Ua);Ua.setAutoFreeze.bind(Ua);Ua.setUseStrictShallowCopy.bind(Ua);Ua.applyPatches.bind(Ua);Ua.createDraft.bind(Ua);Ua.finishDraft.bind(Ua);class MO{constructor(e){this.selfOptions=e||{},this.pipes={}}options(e){return e&&(this.selfOptions=e),this.selfOptions}pipe(e,n){let r=n;if(typeof e=="string"){if(typeof r>"u")return this.pipes[e];this.pipes[e]=r}if(e&&e.name){if(r=e,r.processor===this)return r;this.pipes[r.name]=r}return r.processor=this,r}process(e,n){let r=e;r.options=this.options();let l=n||e.pipe||"default",m;for(;l;)typeof r.nextAfterChildren<"u"&&(r.next=r.nextAfterChildren,r.nextAfterChildren=null),typeof l=="string"&&(l=this.pipe(l)),l.process(r),m=l,l=null,r&&r.next&&(r=r.next,l=r.pipe||m);return r.hasResult?r.result:void 0}}const EO=MO;class PO{constructor(e){this.name=e,this.filters=[]}process(e){if(!this.processor)throw new Error("add this pipe to a processor before using it");const n=this.debug,r=this.filters.length,l=e;for(let m=0;me.filterName)}after(e,...n){const r=this.indexOf(e);return this.filters.splice(r+1,0,...n),this}before(e,...n){const r=this.indexOf(e);return this.filters.splice(r,0,...n),this}replace(e,...n){const r=this.indexOf(e);return this.filters.splice(r,1,...n),this}remove(e){const n=this.indexOf(e);return this.filters.splice(n,1),this}clear(){return this.filters.length=0,this}shouldHaveResult(e){if(e===!1){this.resultCheck=null;return}if(!this.resultCheck)return this.resultCheck=n=>{if(!n.hasResult){console.log(n);const r=new Error(`${this.name} failed`);throw r.noResult=!0,r}},this}}const w1=PO;class $x{setResult(e){return this.result=e,this.hasResult=!0,this}exit(){return this.exiting=!0,this}push(e,n){return e.parent=this,typeof n<"u"&&(e.childName=n),e.root=this.root||this,e.options=e.options||this.options,this.children?(this.children[this.children.length-1].next=e,this.children.push(e)):(this.children=[e],this.nextAfterChildren=this.next||null,this.next=e),e.next=this,this}}function kO(t){const e=/^\/(.*)\/([gimyu]*)$/.exec(t.toString());return new RegExp(e[1],e[2])}function K0(t){if(typeof t!="object")return t;if(t===null)return null;if(Array.isArray(t))return t.map(K0);if(t instanceof Date)return new Date(t.getTime());if(t instanceof RegExp)return kO(t);const e={};for(const n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=K0(t[n]));return e}class OO extends $x{constructor(e,n){super(),this.left=e,this.right=n,this.pipe="diff"}setResult(e){if(this.options.cloneDiffValues&&typeof e=="object"){const n=typeof this.options.cloneDiffValues=="function"?this.options.cloneDiffValues:K0;typeof e[0]=="object"&&(e[0]=n(e[0])),typeof e[1]=="object"&&(e[1]=n(e[1]))}return super.setResult(e)}}const Wh=OO;class AO extends $x{constructor(e,n){super(),this.left=e,this.delta=n,this.pipe="patch"}}const Dx=AO;class IO extends $x{constructor(e){super(),this.delta=e,this.pipe="reverse"}}const Lx=IO,b2=function(e){if(e.left===e.right){e.setResult(void 0).exit();return}if(typeof e.left>"u"){if(typeof e.right=="function")throw new Error("functions are not supported");e.setResult([e.right]).exit();return}if(typeof e.right>"u"){e.setResult([e.left,0,0]).exit();return}if(typeof e.left=="function"||typeof e.right=="function")throw new Error("functions are not supported");if(e.leftType=e.left===null?"null":typeof e.left,e.rightType=e.right===null?"null":typeof e.right,e.leftType!==e.rightType){e.setResult([e.left,e.right]).exit();return}if(e.leftType==="boolean"||e.leftType==="number"){e.setResult([e.left,e.right]).exit();return}if(e.leftType==="object"&&(e.leftIsArray=Array.isArray(e.left)),e.rightType==="object"&&(e.rightIsArray=Array.isArray(e.right)),e.leftIsArray!==e.rightIsArray){e.setResult([e.left,e.right]).exit();return}e.left instanceof RegExp&&(e.right instanceof RegExp?e.setResult([e.left.toString(),e.right.toString()]).exit():e.setResult([e.left,e.right]).exit())};b2.filterName="trivial";const x2=function(e){if(typeof e.delta>"u"){e.setResult(e.left).exit();return}if(e.nested=!Array.isArray(e.delta),e.nested)return;const n=e.delta;if(n.length===1){e.setResult(n[0]).exit();return}if(n.length===2){if(e.left instanceof RegExp){const r=/^\/(.*)\/([gimyu]+)$/.exec(n[1]);if(r){e.setResult(new RegExp(r[1],r[2])).exit();return}}e.setResult(n[1]).exit();return}n.length===3&&n[2]===0&&e.setResult(void 0).exit()};x2.filterName="trivial";const S2=function(e){if(typeof e.delta>"u"){e.setResult(e.delta).exit();return}if(e.nested=!Array.isArray(e.delta),e.nested)return;const n=e.delta;if(n.length===1){e.setResult([n[0],0,0]).exit();return}if(n.length===2){e.setResult([n[1],n[0]]).exit();return}n.length===3&&n[2]===0&&e.setResult([n[0]]).exit()};S2.filterName="trivial";const T2=t=>{if(!t||!t.children)return;const e=t.children.length;let n,r=t.result;for(let l=0;l"u")&&(r=r||{},r[n.childName]=n.result);r&&t.leftIsArray&&(r._t="a"),t.setResult(r).exit()};T2.filterName="collectChildren";const C2=t=>{if(t.leftIsArray||t.leftType!=="object")return;const e=t.left,n=t.right;let r,l;const m=t.options.propertyFilter;for(r in e)!Object.prototype.hasOwnProperty.call(e,r)||m&&!m(r,t)||(l=new Wh(e[r],n[r]),t.push(l,r));for(r in n)!Object.prototype.hasOwnProperty.call(n,r)||m&&!m(r,t)||typeof e[r]>"u"&&(l=new Wh(void 0,n[r]),t.push(l,r));if(!t.children||t.children.length===0){t.setResult(void 0).exit();return}t.exit()};C2.filterName="objects";const M2=function(e){if(!e.nested)return;const n=e.delta;if(n._t)return;const r=n;let l,m;for(l in r)m=new Dx(e.left[l],r[l]),e.push(m,l);e.exit()};M2.filterName="objects";const E2=function(e){if(!e||!e.children||e.delta._t)return;const r=e.left,l=e.children.length;let m;for(let S=0;S{if(!t||!t.children||t.delta._t)return;const n=t.children.length;let r;const l={};for(let m=0;mc?--m:--l}return S},LO=function(t,e,n,r){const l=r||{},m=$O(t,e,n||FO,l);return DO(m,t,e,l)},RO={get:LO},gm=3;function zO(t,e,n,r){for(let l=0;l"u"&&(l.hashCache1[n]=s=g(m,n)),typeof s>"u")return!1;l.hashCache2=l.hashCache2||[];let c=l.hashCache2[r];return typeof c>"u"&&(l.hashCache2[r]=c=g(S,r)),typeof c>"u"?!1:s===c}const O2=function(e){if(!e.leftIsArray)return;const n={objectHash:e.options&&e.options.objectHash,matchByPosition:e.options&&e.options.matchByPosition};let r=0,l=0,m,S,g;const s=e.left,c=e.right,p=s.length,a=c.length;let u;for(p>0&&a>0&&!n.objectHash&&typeof n.matchByPosition!="boolean"&&(n.matchByPosition=!zO(s,c,p,a));r0){for(let D=0;De[t]-n[t]}},A2=function(e){if(!e.nested)return;const n=e.delta;if(n._t!=="a")return;let r,l;const m=n,S=e.left;let g=[],s=[];const c=[];for(r in m)if(r!=="_t")if(r[0]==="_"){const o=r;if(m[o][2]===0||m[o][2]===gm)g.push(parseInt(r.slice(1),10));else throw new Error(`only removal or move can be applied at original array indices, invalid diff type: ${m[o][2]}`)}else{const o=r;m[o].length===1?s.push({index:parseInt(o,10),value:m[o][0]}):c.push({index:parseInt(o,10),delta:m[o]})}for(g=g.sort(wT.numerically),r=g.length-1;r>=0;r--){l=g[r];const o=m[`_${l}`],_=S.splice(l,1)[0];o[2]===gm&&s.push({index:o[1],value:_})}s=s.sort(wT.numericallyBy("index"));const p=s.length;for(r=0;r0)for(r=0;r{if(typeof e=="string"&&e[0]==="_")return parseInt(e.substring(1),10);if(Array.isArray(n)&&n[2]===0)return`_${e}`;let r=+e;for(const l in t){const m=t[l];if(Array.isArray(m))if(m[2]===gm){const S=parseInt(l.substring(1),10),g=m[1];if(g===+e)return S;S<=r&&g>r?r++:S>=r&&g{if(!t||!t.children)return;const e=t.delta;if(e._t!=="a")return;const n=e,r=t.children.length;let l;const m={_t:"a"};for(let S=0;S"u"&&(g=BO(n,l.childName,l.result)),m[g]!==l.result&&(m[g]=l.result)}t.setResult(m).exit()};$2.filterName="arraysCollectChildren";const D2=function(e){e.left instanceof Date?(e.right instanceof Date?e.left.getTime()!==e.right.getTime()?e.setResult([e.left,e.right]):e.setResult(void 0):e.setResult([e.left,e.right]),e.exit()):e.right instanceof Date&&e.setResult([e.left,e.right]).exit()};D2.filterName="dates";const Q0=2,NO=60;let b1=null;function L2(t,e){var n;if(!b1){let r;if(!((n=t==null?void 0:t.textDiff)===null||n===void 0)&&n.diffMatchPatch)r=new t.textDiff.diffMatchPatch;else{if(!e)return null;const l=new Error("The diff-match-patch library was not provided. Pass the library in through the options or use the `jsondiffpatch/with-text-diffs` entry-point.");throw l.diff_match_patch_not_found=!0,l}b1={diff:function(l,m){return r.patch_toText(r.patch_make(l,m))},patch:function(l,m){const S=r.patch_apply(r.patch_fromText(m),l);for(let g=0;g + * Copyright OpenJS Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + */(function(t,e){(function(){var n,r="4.17.21",l=200,m="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",S="Expected a function",g="Invalid `variable` option passed into `_.template`",s="__lodash_hash_undefined__",c=500,p="__lodash_placeholder__",a=1,u=2,o=4,_=1,y=2,h=1,v=2,b=4,T=8,M=16,O=32,F=64,D=128,R=256,Q=512,ie=30,pe="...",ke=800,Te=16,Re=1,ze=2,Ze=3,Ie=1/0,ee=9007199254740991,W=17976931348623157e292,K=0/0,se=4294967295,fe=se-1,de=se>>>1,ue=[["ary",D],["bind",h],["bindKey",v],["curry",T],["curryRight",M],["flip",Q],["partial",O],["partialRight",F],["rearg",R]],te="[object Arguments]",ge="[object Array]",Oe="[object AsyncFunction]",Ue="[object Boolean]",Ae="[object Date]",he="[object DOMException]",Fe="[object Error]",He="[object Function]",$e="[object GeneratorFunction]",xe="[object Map]",De="[object Number]",Ge="[object Null]",Ne="[object Object]",tt="[object Promise]",ct="[object Proxy]",J="[object RegExp]",_e="[object Set]",G="[object String]",Pe="[object Symbol]",We="[object Undefined]",ht="[object WeakMap]",wt="[object WeakSet]",Xt="[object ArrayBuffer]",Ft="[object DataView]",jt="[object Float32Array]",Qt="[object Float64Array]",Mt="[object Int8Array]",Zt="[object Int16Array]",Cn="[object Int32Array]",or="[object Uint8Array]",Gn="[object Uint8ClampedArray]",lr="[object Uint16Array]",bt="[object Uint32Array]",Me=/\b__p \+= '';/g,Je=/\b(__p \+=) '' \+/g,lt=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Ct=/&(?:amp|lt|gt|quot|#39);/g,at=/[&<>"']/g,xt=RegExp(Ct.source),Gt=RegExp(at.source),Ut=/<%-([\s\S]+?)%>/g,Jt=/<%([\s\S]+?)%>/g,Wt=/<%=([\s\S]+?)%>/g,rn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,on=/^\w*$/,tn=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,mn=/[\\^$.*+?()[\]{}|]/g,it=RegExp(mn.source),Et=/^\s+/,Lt=/\s/,vn=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,qn=/\{\n\/\* \[wrapped with (.+)\] \*/,Pr=/,? & /,zr=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,jn=/[()=,{}\[\]\/\s]/,Br=/\\(\\)?/g,Mr=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Li=/\w*$/,Sr=/^[-+]0x[0-9a-f]+$/i,bo=/^0b[01]+$/i,cl=/^\[object .+?Constructor\]$/,ca=/^0o[0-7]+$/i,dl=/^(?:0|[1-9]\d*)$/,fl=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,da=/($^)/,hl=/['\n\r\u2028\u2029\\]/g,fa="\\ud800-\\udfff",qa="\\u0300-\\u036f",ha="\\ufe20-\\ufe2f",fs="\\u20d0-\\u20ff",ks=qa+ha+fs,Ya="\\u2700-\\u27bf",hs="a-z\\xdf-\\xf6\\xf8-\\xff",xo="\\xac\\xb1\\xd7\\xf7",So="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",To="\\u2000-\\u206f",Sn=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",pa="A-Z\\xc0-\\xd6\\xd8-\\xde",Co="\\ufe0e\\ufe0f",Mo=xo+So+To+Sn,ma="['\u2019]",pl="["+fa+"]",Eo="["+Mo+"]",Os="["+ks+"]",Po="\\d+",Ke="["+Ya+"]",H="["+hs+"]",ve="[^"+fa+Mo+Po+Ya+hs+pa+"]",Le="\\ud83c[\\udffb-\\udfff]",Ye="(?:"+Os+"|"+Le+")",rt="[^"+fa+"]",gt="(?:\\ud83c[\\udde6-\\uddff]){2}",It="[\\ud800-\\udbff][\\udc00-\\udfff]",zt="["+pa+"]",Bt="\\u200d",en="(?:"+H+"|"+ve+")",En="(?:"+zt+"|"+ve+")",cr="(?:"+ma+"(?:d|ll|m|re|s|t|ve))?",vr="(?:"+ma+"(?:D|LL|M|RE|S|T|VE))?",tr=Ye+"?",kr="["+Co+"]?",Fn="(?:"+Bt+"(?:"+[rt,gt,It].join("|")+")"+kr+tr+")*",ir="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Mi="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Ei=kr+tr+Fn,dt="(?:"+[Ke,gt,It].join("|")+")"+Ei,qr="(?:"+[rt+Os+"?",Os,gt,It,pl].join("|")+")",mi=RegExp(ma,"g"),ps=RegExp(Os,"g"),ms=RegExp(Le+"(?="+Le+")|"+qr+Ei,"g"),bn=RegExp([zt+"?"+H+"+"+cr+"(?="+[Eo,zt,"$"].join("|")+")",En+"+"+vr+"(?="+[Eo,zt+en,"$"].join("|")+")",zt+"?"+en+"+"+cr,zt+"+"+vr,Mi,ir,Po,dt].join("|"),"g"),wi=RegExp("["+Bt+fa+ks+Co+"]"),Nr=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Hn=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],yr=-1,Ot={};Ot[jt]=Ot[Qt]=Ot[Mt]=Ot[Zt]=Ot[Cn]=Ot[or]=Ot[Gn]=Ot[lr]=Ot[bt]=!0,Ot[te]=Ot[ge]=Ot[Xt]=Ot[Ue]=Ot[Ft]=Ot[Ae]=Ot[Fe]=Ot[He]=Ot[xe]=Ot[De]=Ot[Ne]=Ot[J]=Ot[_e]=Ot[G]=Ot[ht]=!1;var cn={};cn[te]=cn[ge]=cn[Xt]=cn[Ft]=cn[Ue]=cn[Ae]=cn[jt]=cn[Qt]=cn[Mt]=cn[Zt]=cn[Cn]=cn[xe]=cn[De]=cn[Ne]=cn[J]=cn[_e]=cn[G]=cn[Pe]=cn[or]=cn[Gn]=cn[lr]=cn[bt]=!0,cn[Fe]=cn[He]=cn[ht]=!1;var Ka={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},ga={"&":"&","<":"<",">":">",'"':""","'":"'"},Ks={"&":"&","<":"<",">":">",""":'"',"'":"'"},fn={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},pu=parseFloat,Pt=parseInt,pn=typeof lg=="object"&&lg&&lg.Object===Object&&lg,pc=typeof self=="object"&&self&&self.Object===Object&&self,ti=pn||pc||Function("return this")(),mu=e&&!e.nodeType&&e,rs=mu&&!0&&t&&!t.nodeType&&t,Nn=rs&&rs.exports===mu,gu=Nn&&pn.process,Ri=function(){try{var nt=rs&&rs.require&&rs.require("util").types;return nt||gu&&gu.binding&&gu.binding("util")}catch{}}(),_a=Ri&&Ri.isArrayBuffer,mc=Ri&&Ri.isDate,pf=Ri&&Ri.isMap,zi=Ri&&Ri.isRegExp,mf=Ri&&Ri.isSet,gc=Ri&&Ri.isTypedArray;function Wr(nt,St,mt){switch(mt.length){case 0:return nt.call(St);case 1:return nt.call(St,mt[0]);case 2:return nt.call(St,mt[0],mt[1]);case 3:return nt.call(St,mt[0],mt[1],mt[2])}return nt.apply(St,mt)}function gf(nt,St,mt,ln){for(var Bn=-1,gr=nt==null?0:nt.length;++Bn-1}function _u(nt,St,mt){for(var ln=-1,Bn=nt==null?0:nt.length;++ln-1;);return mt}function Sc(nt,St){for(var mt=nt.length;mt--&&va(St,nt[mt],0)>-1;);return mt}function xf(nt,St){for(var mt=nt.length,ln=0;mt--;)nt[mt]===St&&++ln;return ln}var Tc=Yi(Ka),Sf=Yi(ga);function _s(nt){return"\\"+fn[nt]}function Cc(nt,St){return nt==null?n:nt[St]}function Qa(nt){return wi.test(nt)}function Tf(nt){return Nr.test(nt)}function Mc(nt){for(var St,mt=[];!(St=nt.next()).done;)mt.push(St.value);return mt}function Tu(nt){var St=-1,mt=Array(nt.size);return nt.forEach(function(ln,Bn){mt[++St]=[Bn,ln]}),mt}function Ec(nt,St){return function(mt){return nt(St(mt))}}function Is(nt,St){for(var mt=-1,ln=nt.length,Bn=0,gr=[];++mt-1}function Ma(f,w){var k=this.__data__,j=ka(k,f);return j<0?(++this.size,k.push([f,w])):k[j][1]=w,this}Fs.prototype.clear=Uf,Fs.prototype.delete=Gf,Fs.prototype.get=Ta,Fs.prototype.has=Ca,Fs.prototype.set=Ma;function vs(f){var w=-1,k=f==null?0:f.length;for(this.clear();++w=w?f:w)),f}function Wi(f,w,k,j,ne,we){var Be,Xe=w&a,st=w&u,kt=w&o;if(k&&(Be=ne?k(f,j,ne,we):k(f)),Be!==n)return Be;if(!br(f))return f;var At=Rt(f);if(At){if(Be=_i(f),!Xe)return Ii(f,Be)}else{var Nt=_n(f),sn=Nt==He||Nt==$e;if(yn(f))return ph(f,Xe);if(Nt==Ne||Nt==te||sn&&!ne){if(Be=st||sn?{}:Da(f),!Xe)return st?_h(f,Kf(Be,f)):wd(f,$s(Be,f))}else{if(!cn[Nt])return ne?f:{};Be=hp(f,Nt,Xe)}}we||(we=new ji);var wn=we.get(f);if(wn)return wn;we.set(f,Be),xp(f)?f.forEach(function(Ln){Be.add(Wi(Ln,w,k,Ln,f,we))}):Fh(f)&&f.forEach(function(Ln,ar){Be.set(ar,Wi(Ln,w,k,ar,f,we))});var Dn=kt?st?Od:Ju:st?os:Ti,er=At?n:Dn(f);return qi(er||f,function(Ln,ar){er&&(ar=Ln,Ln=f[ar]),Pa(Be,ar,Wi(Ln,w,k,ar,f,we))}),Be}function Qf(f){var w=Ti(f);return function(k){return Jf(k,f,w)}}function Jf(f,w,k){var j=k.length;if(f==null)return!j;for(f=Er(f);j--;){var ne=k[j],we=w[ne],Be=f[ne];if(Be===n&&!(ne in f)||!we(Be))return!1}return!0}function $u(f,w,k){if(typeof f!="function")throw new Ni(S);return Dr(function(){f.apply(n,k)},w)}function Vo(f,w,k,j){var ne=-1,we=ko,Be=!0,Xe=f.length,st=[],kt=w.length;if(!Xe)return st;k&&(w=$r(w,Pi(k))),j?(we=_u,Be=!1):w.length>=l&&(we=Oo,Be=!1,w=new Ea(w));e:for(;++nene?0:ne+k),j=j===n||j>ne?ne:zn(j),j<0&&(j+=ne),j=k>j?0:Gm(j);k0&&k(Xe)?w>1?ni(Xe,w-1,k,j,ne):As(ne,Xe):j||(ne[ne.length]=Xe)}return ne}var Il=bd(),Zc=bd(!0);function Ji(f,w){return f&&Il(f,w,Ti)}function Fl(f,w){return f&&Zc(f,w,Ti)}function Du(f,w){return Qs(w,function(k){return as(f[k])})}function Oa(f,w){w=Ia(w,f);for(var k=0,j=w.length;f!=null&&kw}function ed(f,w){return f!=null&&Tr.call(f,w)}function $l(f,w){return f!=null&&w in Er(f)}function th(f,w,k){return f>=ai(w,k)&&f=120&&At.length>=120)?new Ea(Be&&At):n}At=f[0];var Nt=-1,sn=Xe[0];e:for(;++Nt-1;)Xe!==f&&Sl.call(Xe,st,1),Sl.call(f,st,1);return f}function cd(f,w){for(var k=f?w.length:0,j=k-1;k--;){var ne=w[k];if(k==j||ne!==we){var we=ne;U(ne)?Sl.call(f,ne,1):Vu(f,ne)}}return f}function Rl(f,w){return f+Cl(Wc()*(w-f+1))}function lp(f,w,k,j){for(var ne=-1,we=Kr(Tl((w-f)/(k||1)),0),Be=mt(we);we--;)Be[j?we:++ne]=f,f+=k;return Be}function Wu(f,w){var k="";if(!f||w<1||w>ee)return k;do w%2&&(k+=f),w=Cl(w/2),w&&(f+=f);while(w);return k}function Un(f,w){return Vr(fr(f,w,Ss),f+"")}function uh(f){return Kc(tu(f))}function ch(f,w){var k=tu(f);return Jr(k,to(w,0,k.length))}function so(f,w,k,j){if(!br(f))return f;w=Ia(w,f);for(var ne=-1,we=w.length,Be=we-1,Xe=f;Xe!=null&&++nene?0:ne+w),k=k>ne?ne:k,k<0&&(k+=ne),ne=w>k?0:k-w>>>0,w>>>=0;for(var we=mt(ne);++j>>1,Be=f[we];Be!==null&&!xs(Be)&&(k?Be<=w:Be=l){var kt=w?null:wh(f);if(kt)return vl(kt);Be=!1,ne=Oo,st=new Ea}else st=w?[]:Xe;e:for(;++j=j?f:Zi(f,w,k)}var md=Ff||function(f){return ti.clearTimeout(f)};function ph(f,w){if(w)return f.slice();var k=f.length,j=Lc?Lc(k):new f.constructor(k);return f.copy(j),j}function gi(f){var w=new f.constructor(f.byteLength);return new Io(w).set(new Io(f)),w}function mh(f,w){var k=w?gi(f.buffer):f.buffer;return new f.constructor(k,f.byteOffset,f.byteLength)}function gd(f){var w=new f.constructor(f.source,Li.exec(f));return w.lastIndex=f.lastIndex,w}function Xu(f){return ki?Er(ki.call(f)):{}}function _d(f,w){var k=w?gi(f.buffer):f.buffer;return new f.constructor(k,f.byteOffset,f.length)}function Go(f,w){if(f!==w){var k=f!==n,j=f===null,ne=f===f,we=xs(f),Be=w!==n,Xe=w===null,st=w===w,kt=xs(w);if(!Xe&&!kt&&!we&&f>w||we&&Be&&st&&!Xe&&!kt||j&&Be&&st||!k&&st||!ne)return 1;if(!j&&!we&&!kt&&f=Xe)return st;var kt=k[j];return st*(kt=="desc"?-1:1)}}return f.index-w.index}function gh(f,w,k,j){for(var ne=-1,we=f.length,Be=k.length,Xe=-1,st=w.length,kt=Kr(we-Be,0),At=mt(st+kt),Nt=!j;++Xe1?k[ne-1]:n,Be=ne>2?k[2]:n;for(we=f.length>3&&typeof we=="function"?(ne--,we):n,Be&&re(k[0],k[1],Be)&&(we=ne<3?n:we,ne=1),w=Er(w);++j-1?ne[we?w[Be]:Be]:n}}function Td(f){return zs(function(w){var k=w.length,j=k,ne=Qi.prototype.thru;for(f&&w.reverse();j--;){var we=w[j];if(typeof we!="function")throw new Ni(S);if(ne&&!Be&&Ho(we)=="wrapper")var Be=new Qi([],!0)}for(j=Be?j:k;++j1&&pr.reverse(),At&&stXe))return!1;var kt=we.get(f),At=we.get(w);if(kt&&At)return kt==w&&At==f;var Nt=-1,sn=!0,wn=k&y?new Ea:n;for(we.set(f,w),we.set(w,f);++Nt1?"& ":"")+w[j],w=w.join(k>2?", ":" "),f.replace(vn,`{ +/* [wrapped with `+w+`] */ +`)}function Eh(f){return Rt(f)||Yn(f)||!!($o&&f&&f[$o])}function U(f,w){var k=typeof f;return w=w==null?ee:w,!!w&&(k=="number"||k!="symbol"&&dl.test(f))&&f>-1&&f%1==0&&f0){if(++w>=ke)return arguments[0]}else w=0;return f.apply(n,arguments)}}function Jr(f,w){var k=-1,j=f.length,ne=j-1;for(w=w===n?j:w;++k1?f[w-1]:n;return k=typeof k=="function"?(f.pop(),k):n,Em(f,k)});function vp(f){var w=me(f);return w.__chain__=!0,w}function Om(f,w){return w(f),f}function Dd(f,w){return w(f)}var Am=zs(function(f){var w=f.length,k=w?f[0]:0,j=this.__wrapped__,ne=function(we){return Fu(we,f)};return w>1||this.__actions__.length||!(j instanceof Qn)||!U(k)?this.thru(ne):(j=j.slice(k,+k+(w?1:0)),j.__actions__.push({func:Dd,args:[ne],thisArg:n}),new Qi(j,this.__chain__).thru(function(we){return w&&!we.length&&we.push(n),we}))});function Im(){return vp(this)}function Fm(){return new Qi(this.value(),this.__chain__)}function N_(){this.__values__===n&&(this.__values__=Jl(this.value()));var f=this.__index__>=this.__values__.length,w=f?n:this.__values__[this.__index__++];return{done:f,value:w}}function Yl(){return this}function bs(f){for(var w,k=this;k instanceof Wo;){var j=Ui(k);j.__index__=0,j.__values__=n,w?ne.__wrapped__=j:w=j;var ne=j;k=k.__wrapped__}return ne.__wrapped__=f,w}function Ld(){var f=this.__wrapped__;if(f instanceof Qn){var w=f;return this.__actions__.length&&(w=new Qn(this)),w=w.reverse(),w.__actions__.push({func:Dd,args:[gp],thisArg:n}),new Qi(w,this.__chain__)}return this.thru(gp)}function Oh(){return hd(this.__wrapped__,this.__actions__)}var Ah=Nl(function(f,w,k){Tr.call(f,k)?++f[k]:Ds(f,k,1)});function yp(f,w,k){var j=Rt(f)?_c:Zf;return k&&re(f,w,k)&&(w=n),j(f,Tn(w,3))}function $m(f,w){var k=Rt(f)?Qs:Al;return k(f,Tn(w,3))}var wp=Sd(bm),ec=Sd(mp);function tc(f,w){return ni(Ih(f,w),1)}function j_(f,w){return ni(Ih(f,w),Ie)}function W_(f,w,k){return k=k===n?1:zn(k),ni(Ih(f,w),k)}function Dm(f,w){var k=Rt(f)?qi:ys;return k(f,Tn(w,3))}function Lm(f,w){var k=Rt(f)?_f:Jc;return k(f,Tn(w,3))}var V_=Nl(function(f,w,k){Tr.call(f,k)?f[k].push(w):Ds(f,k,[w])});function U_(f,w,k,j){f=Rn(f)?f:tu(f),k=k&&!j?zn(k):0;var ne=f.length;return k<0&&(k=Kr(ne+k,0)),zd(f)?k<=ne&&f.indexOf(w,k)>-1:!!ne&&va(f,w,k)>-1}var G_=Un(function(f,w,k){var j=-1,ne=typeof w=="function",we=Rn(f)?mt(f.length):[];return ys(f,function(Be){we[++j]=ne?Wr(w,Be,k):ro(Be,w,k)}),we}),H_=Nl(function(f,w,k){Ds(f,k,w)});function Ih(f,w){var k=Rt(f)?$r:sd;return k(f,Tn(w,3))}function Rm(f,w,k,j){return f==null?[]:(Rt(w)||(w=w==null?[]:[w]),k=j?n:k,Rt(k)||(k=k==null?[]:[k]),ld(f,w,k))}var X_=Nl(function(f,w,k){f[k?0:1].push(w)},function(){return[[],[]]});function q_(f,w,k){var j=Rt(f)?vu:wu,ne=arguments.length<3;return j(f,Tn(w,4),k,ne,ys)}function Ny(f,w,k){var j=Rt(f)?gs:wu,ne=arguments.length<3;return j(f,Tn(w,4),k,ne,Jc)}function Y_(f,w){var k=Rt(f)?Qs:Al;return k(f,ae(Tn(w,3)))}function zm(f){var w=Rt(f)?Kc:uh;return w(f)}function Bm(f,w,k){(k?re(f,w,k):w===n)?w=1:w=zn(w);var j=Rt(f)?Qc:ch;return j(f,w)}function K_(f){var w=Rt(f)?sp:dd;return w(f)}function jy(f){if(f==null)return 0;if(Rn(f))return zd(f)?ya(f):f.length;var w=_n(f);return w==xe||w==_e?f.size:Nu(f).length}function Wy(f,w,k){var j=Rt(f)?ml:dh;return k&&re(f,w,k)&&(w=n),j(f,Tn(w,3))}var Vy=Un(function(f,w){if(f==null)return[];var k=w.length;return k>1&&re(f,w[0],w[1])?w=[]:k>2&&re(w[0],w[1],w[2])&&(w=[w[0]]),ld(f,ni(w,1),[])}),i=$f||function(){return ti.Date.now()};function d(f,w){if(typeof w!="function")throw new Ni(S);return f=zn(f),function(){if(--f<1)return w.apply(this,arguments)}}function x(f,w,k){return w=k?n:w,w=f&&w==null?f.length:w,Rs(f,D,n,n,n,n,w)}function C(f,w){var k;if(typeof w!="function")throw new Ni(S);return f=zn(f),function(){return--f>0&&(k=w.apply(this,arguments)),f<=1&&(w=n),k}}var E=Un(function(f,w,k){var j=h;if(k.length){var ne=Is(k,Fa(E));j|=O}return Rs(f,j,w,k,ne)}),A=Un(function(f,w,k){var j=h|v;if(k.length){var ne=Is(k,Fa(A));j|=O}return Rs(w,j,f,k,ne)});function P(f,w,k){w=k?n:w;var j=Rs(f,T,n,n,n,n,n,w);return j.placeholder=P.placeholder,j}function L(f,w,k){w=k?n:w;var j=Rs(f,M,n,n,n,n,n,w);return j.placeholder=L.placeholder,j}function z(f,w,k){var j,ne,we,Be,Xe,st,kt=0,At=!1,Nt=!1,sn=!0;if(typeof f!="function")throw new Ni(S);w=js(w)||0,br(k)&&(At=!!k.leading,Nt="maxWait"in k,we=Nt?Kr(js(k.maxWait)||0,w):we,sn="trailing"in k?!!k.trailing:sn);function wn(ii){var Ts=j,Yo=ne;return j=ne=n,kt=ii,Be=f.apply(Yo,Ts),Be}function Dn(ii){return kt=ii,Xe=Dr(ar,w),At?wn(ii):Be}function er(ii){var Ts=ii-st,Yo=ii-kt,xn=w-Ts;return Nt?ai(xn,we-Yo):xn}function Ln(ii){var Ts=ii-st,Yo=ii-kt;return st===n||Ts>=w||Ts<0||Nt&&Yo>=we}function ar(){var ii=i();if(Ln(ii))return pr(ii);Xe=Dr(ar,er(ii))}function pr(ii){return Xe=n,sn&&j?wn(ii):(j=ne=n,Be)}function Ws(){Xe!==n&&md(Xe),kt=0,j=st=ne=Xe=n}function es(){return Xe===n?Be:pr(i())}function Vs(){var ii=i(),Ts=Ln(ii);if(j=arguments,ne=this,st=ii,Ts){if(Xe===n)return Dn(st);if(Nt)return md(Xe),Xe=Dr(ar,w),wn(st)}return Xe===n&&(Xe=Dr(ar,w)),Be}return Vs.cancel=Ws,Vs.flush=es,Vs}var B=Un(function(f,w){return $u(f,1,w)}),X=Un(function(f,w,k){return $u(f,js(w)||0,k)});function Y(f){return Rs(f,Q)}function $(f,w){if(typeof f!="function"||w!=null&&typeof w!="function")throw new Ni(S);var k=function(){var j=arguments,ne=w?w.apply(this,j):j[0],we=k.cache;if(we.has(ne))return we.get(ne);var Be=f.apply(this,j);return k.cache=we.set(ne,Be)||we,Be};return k.cache=new($.Cache||vs),k}$.Cache=vs;function ae(f){if(typeof f!="function")throw new Ni(S);return function(){var w=arguments;switch(w.length){case 0:return!f.call(this);case 1:return!f.call(this,w[0]);case 2:return!f.call(this,w[0],w[1]);case 3:return!f.call(this,w[0],w[1],w[2])}return!f.apply(this,w)}}function ce(f){return C(2,f)}var le=dp(function(f,w){w=w.length==1&&Rt(w[0])?$r(w[0],Pi(Tn())):$r(ni(w,1),Pi(Tn()));var k=w.length;return Un(function(j){for(var ne=-1,we=ai(j.length,k);++ne=w}),Yn=td(function(){return arguments}())?td:function(f){return Fr(f)&&Tr.call(f,"callee")&&!Fo.call(f,"callee")},Rt=mt.isArray,Mn=_a?Pi(_a):zu;function Rn(f){return f!=null&&vi(f.length)&&!as(f)}function ft(f){return Fr(f)&&Rn(f)}function Yt(f){return f===!0||f===!1||Fr(f)&&Oi(f)==Ue}var yn=Df||ag,wr=mc?Pi(mc):ap;function ri(f){return Fr(f)&&f.nodeType===1&&!nc(f)}function ui(f){if(f==null)return!0;if(Rn(f)&&(Rt(f)||typeof f=="string"||typeof f.splice=="function"||yn(f)||ta(f)||Yn(f)))return!f.length;var w=_n(f);if(w==xe||w==_e)return!f.size;if(qt(f))return!Nu(f).length;for(var k in f)if(Tr.call(f,k))return!1;return!0}function Kl(f,w){return Uo(f,w)}function bp(f,w,k){k=typeof k=="function"?k:n;var j=k?k(f,w):n;return j===n?Uo(f,w,n,k):!!j}function Gi(f){if(!Fr(f))return!1;var w=Oi(f);return w==Fe||w==he||typeof f.message=="string"&&typeof f.name=="string"&&!nc(f)}function Si(f){return typeof f=="number"&&zc(f)}function as(f){if(!br(f))return!1;var w=Oi(f);return w==He||w==$e||w==Oe||w==ct}function ci(f){return typeof f=="number"&&f==zn(f)}function vi(f){return typeof f=="number"&&f>-1&&f%1==0&&f<=ee}function br(f){var w=typeof f;return f!=null&&(w=="object"||w=="function")}function Fr(f){return f!=null&&typeof f=="object"}var Fh=pf?Pi(pf):ih;function Rd(f,w){return f===w||nd(f,w,Zu(w))}function Nm(f,w,k){return k=typeof k=="function"?k:n,nd(f,w,Zu(w),k)}function Q_(f){return jm(f)&&f!=+f}function J_(f){if(Vt(f))throw new Bn(m);return rd(f)}function Z_(f){return f===null}function ev(f){return f==null}function jm(f){return typeof f=="number"||Fr(f)&&Oi(f)==De}function nc(f){if(!Fr(f)||Oi(f)!=Ne)return!1;var w=xl(f);if(w===null)return!0;var k=Tr.call(w,"constructor")&&w.constructor;return typeof k=="function"&&k instanceof k&&Ao.call(k)==Dc}var Wm=zi?Pi(zi):id;function Uy(f){return ci(f)&&f>=-ee&&f<=ee}var xp=mf?Pi(mf):sh;function zd(f){return typeof f=="string"||!Rt(f)&&Fr(f)&&Oi(f)==G}function xs(f){return typeof f=="symbol"||Fr(f)&&Oi(f)==Pe}var ta=gc?Pi(gc):op;function Ur(f){return f===n}function Vm(f){return Fr(f)&&_n(f)==ht}function tv(f){return Fr(f)&&Oi(f)==wt}var Um=Gl(Dl),Ql=Gl(function(f,w){return f<=w});function Jl(f){if(!f)return[];if(Rn(f))return zd(f)?Ki(f):Ii(f);if(Do&&f[Do])return Mc(f[Do]());var w=_n(f),k=w==xe?Tu:w==_e?vl:tu;return k(f)}function uo(f){if(!f)return f===0?f:0;if(f=js(f),f===Ie||f===-Ie){var w=f<0?-1:1;return w*W}return f===f?f:0}function zn(f){var w=uo(f),k=w%1;return w===w?k?w-k:w:0}function Gm(f){return f?to(zn(f),0,se):0}function js(f){if(typeof f=="number")return f;if(xs(f))return K;if(br(f)){var w=typeof f.valueOf=="function"?f.valueOf():f;f=br(w)?w+"":w}if(typeof f!="string")return f===0?f:+f;f=xc(f);var k=bo.test(f);return k||ca.test(f)?Pt(f.slice(2),k?2:8):Sr.test(f)?K:+f}function Hm(f){return ws(f,os(f))}function nv(f){return f?to(zn(f),-ee,ee):f===0?f:0}function Cr(f){return f==null?"":Ai(f)}var Gy=ao(function(f,w){if(qt(w)||Rn(w)){ws(w,Ti(w),f);return}for(var k in w)Tr.call(w,k)&&Pa(f,k,w[k])}),rv=ao(function(f,w){ws(w,os(w),f)}),Sp=ao(function(f,w,k,j){ws(w,os(w),f,j)}),Hy=ao(function(f,w,k,j){ws(w,Ti(w),f,j)}),iv=zs(Fu);function sv(f,w){var k=eo(f);return w==null?k:$s(k,w)}var av=Un(function(f,w){f=Er(f);var k=-1,j=w.length,ne=j>2?w[2]:n;for(ne&&re(w[0],w[1],ne)&&(j=1);++k1),we}),ws(f,Od(f),k),j&&(k=Wi(k,a|u|o,xh));for(var ne=w.length;ne--;)Vu(k,w[ne]);return k});function qm(f,w){return fo(f,ae(Tn(w)))}var Ym=zs(function(f,w){return f==null?{}:ud(f,w)});function fo(f,w){if(f==null)return{};var k=$r(Od(f),function(j){return[j]});return w=Tn(w),Ll(f,k,function(j,ne){return w(j,ne[0])})}function wv(f,w,k){w=Ia(w,f);var j=-1,ne=w.length;for(ne||(ne=1,f=n);++jw){var j=f;f=w,w=j}if(k||f%1||w%1){var ne=Wc();return ai(f+ne*(w-f+pu("1e-"+((ne+"").length-1))),w)}return Rl(f,w)}var Jy=oo(function(f,w,k){return w=w.toLowerCase(),f+(k?xv(w):w)});function xv(f){return kp(Cr(f).toLowerCase())}function Sv(f){return f=Cr(f),f&&f.replace(fl,Tc).replace(ps,"")}function Tv(f,w,k){f=Cr(f),w=Ai(w);var j=f.length;k=k===n?j:to(zn(k),0,j);var ne=k;return k-=w.length,k>=0&&f.slice(k,ne)==w}function Zy(f){return f=Cr(f),f&&Gt.test(f)?f.replace(at,Sf):f}function ew(f){return f=Cr(f),f&&it.test(f)?f.replace(mn,"\\$&"):f}var tw=oo(function(f,w,k){return f+(k?"-":"")+w.toLowerCase()}),nw=oo(function(f,w,k){return f+(k?" ":"")+w.toLowerCase()}),rw=Yu("toLowerCase");function iw(f,w,k){f=Cr(f),w=zn(w);var j=w?ya(f):0;if(!w||j>=w)return f;var ne=(w-j)/2;return Ul(Cl(ne),k)+f+Ul(Tl(ne),k)}function sw(f,w,k){f=Cr(f),w=zn(w);var j=w?ya(f):0;return w&&j>>0,k?(f=Cr(f),f&&(typeof w=="string"||w!=null&&!Wm(w))&&(w=Ai(w),!w&&Qa(f))?Ls(Ki(f),0,k):f.split(w,k)):[]}var uw=oo(function(f,w,k){return f+(k?" ":"")+kp(w)});function Jm(f,w,k){return f=Cr(f),k=k==null?0:to(zn(k),0,f.length),w=Ai(w),f.slice(k,k+w.length)==w}function cw(f,w,k){var j=me.templateSettings;k&&re(f,w,k)&&(w=n),f=Cr(f),w=Sp({},w,j,Ed);var ne=Sp({},w.imports,j.imports,Ed),we=Ti(ne),Be=xu(ne,we),Xe,st,kt=0,At=w.interpolate||da,Nt="__p += '",sn=Fc((w.escape||da).source+"|"+At.source+"|"+(At===Wt?Mr:da).source+"|"+(w.evaluate||da).source+"|$","g"),wn="//# sourceURL="+(Tr.call(w,"sourceURL")?(w.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++yr+"]")+` +`;f.replace(sn,function(Ln,ar,pr,Ws,es,Vs){return pr||(pr=Ws),Nt+=f.slice(kt,Vs).replace(hl,_s),ar&&(Xe=!0,Nt+=`' + +__e(`+ar+`) + +'`),es&&(st=!0,Nt+=`'; +`+es+`; +__p += '`),pr&&(Nt+=`' + +((__t = (`+pr+`)) == null ? '' : __t) + +'`),kt=Vs+Ln.length,Ln}),Nt+=`'; +`;var Dn=Tr.call(w,"variable")&&w.variable;if(!Dn)Nt=`with (obj) { +`+Nt+` +} +`;else if(jn.test(Dn))throw new Bn(g);Nt=(st?Nt.replace(Me,""):Nt).replace(Je,"$1").replace(lt,"$1;"),Nt="function("+(Dn||"obj")+`) { +`+(Dn?"":`obj || (obj = {}); +`)+"var __t, __p = ''"+(Xe?", __e = _.escape":"")+(st?`, __j = Array.prototype.join; +function print() { __p += __j.call(arguments, '') } +`:`; +`)+Nt+`return __p +}`;var er=eg(function(){return gr(we,wn+"return "+Nt).apply(n,Be)});if(er.source=Nt,Gi(er))throw er;return er}function dw(f){return Cr(f).toLowerCase()}function fw(f){return Cr(f).toUpperCase()}function Zm(f,w,k){if(f=Cr(f),f&&(k||w===n))return xc(f);if(!f||!(w=Ai(w)))return f;var j=Ki(f),ne=Ki(w),we=Su(j,ne),Be=Sc(j,ne)+1;return Ls(j,we,Be).join("")}function Mv(f,w,k){if(f=Cr(f),f&&(k||w===n))return f.slice(0,Oc(f)+1);if(!f||!(w=Ai(w)))return f;var j=Ki(f),ne=Sc(j,Ki(w))+1;return Ls(j,0,ne).join("")}function hw(f,w,k){if(f=Cr(f),f&&(k||w===n))return f.replace(Et,"");if(!f||!(w=Ai(w)))return f;var j=Ki(f),ne=Su(j,Ki(w));return Ls(j,ne).join("")}function Pp(f,w){var k=ie,j=pe;if(br(w)){var ne="separator"in w?w.separator:ne;k="length"in w?zn(w.length):k,j="omission"in w?Ai(w.omission):j}f=Cr(f);var we=f.length;if(Qa(f)){var Be=Ki(f);we=Be.length}if(k>=we)return f;var Xe=k-ya(j);if(Xe<1)return j;var st=Be?Ls(Be,0,Xe).join(""):f.slice(0,Xe);if(ne===n)return st+j;if(Be&&(Xe+=st.length-Xe),Wm(ne)){if(f.slice(Xe).search(ne)){var kt,At=st;for(ne.global||(ne=Fc(ne.source,Cr(Li.exec(ne))+"g")),ne.lastIndex=0;kt=ne.exec(At);)var Nt=kt.index;st=st.slice(0,Nt===n?Xe:Nt)}}else if(f.indexOf(Ai(ne),Xe)!=Xe){var sn=st.lastIndexOf(ne);sn>-1&&(st=st.slice(0,sn))}return st+j}function nu(f){return f=Cr(f),f&&xt.test(f)?f.replace(Ct,Ac):f}var ho=oo(function(f,w,k){return f+(k?" ":"")+w.toUpperCase()}),kp=Yu("toUpperCase");function $h(f,w,k){return f=Cr(f),w=k?n:w,w===n?Tf(f)?Pf(f):vc(f):f.match(w)||[]}var eg=Un(function(f,w){try{return Wr(f,n,w)}catch(k){return Gi(k)?k:new Bn(k)}}),Ev=zs(function(f,w){return qi(w,function(k){k=xi(k),Ds(f,k,E(f[k],f))}),f});function pw(f){var w=f==null?0:f.length,k=Tn();return f=w?$r(f,function(j){if(typeof j[1]!="function")throw new Ni(S);return[k(j[0]),j[1]]}):[],Un(function(j){for(var ne=-1;++neee)return[];var k=se,j=ai(f,se);w=Tn(w),f-=se;for(var ne=Bi(j,w);++k0||w<0)?new Qn(k):(f<0?k=k.takeRight(-f):f&&(k=k.drop(f)),w!==n&&(w=zn(w),k=w<0?k.dropRight(-w):k.take(w-f)),k)},Qn.prototype.takeRightWhile=function(f){return this.reverse().takeWhile(f).reverse()},Qn.prototype.toArray=function(){return this.take(se)},Ji(Qn.prototype,function(f,w){var k=/^(?:filter|find|map|reject)|While$/.test(w),j=/^(?:head|last)$/.test(w),ne=me[j?"take"+(w=="last"?"Right":""):w],we=j||/^find/.test(w);!ne||(me.prototype[w]=function(){var Be=this.__wrapped__,Xe=j?[1]:arguments,st=Be instanceof Qn,kt=Xe[0],At=st||Rt(Be),Nt=function(ar){var pr=ne.apply(me,As([ar],Xe));return j&&sn?pr[0]:pr};At&&k&&typeof kt=="function"&&kt.length!=1&&(st=At=!1);var sn=this.__chain__,wn=!!this.__actions__.length,Dn=we&&!sn,er=st&&!wn;if(!we&&At){Be=er?Be:new Qn(this);var Ln=f.apply(Be,Xe);return Ln.__actions__.push({func:Dd,args:[Nt],thisArg:n}),new Qi(Ln,sn)}return Dn&&er?f.apply(this,Xe):(Ln=this.thru(Nt),Dn?j?Ln.value()[0]:Ln.value():Ln)})}),qi(["pop","push","shift","sort","splice","unshift"],function(f){var w=yl[f],k=/^(?:push|sort|unshift)$/.test(f)?"tap":"thru",j=/^(?:pop|shift)$/.test(f);me.prototype[f]=function(){var ne=arguments;if(j&&!this.__chain__){var we=this.value();return w.apply(Rt(we)?we:[],ne)}return this[k](function(Be){return w.apply(Rt(Be)?Be:[],ne)})}}),Ji(Qn.prototype,function(f,w){var k=me[w];if(k){var j=k.name+"";Tr.call(xa,j)||(xa[j]=[]),xa[j].push({name:w,func:k})}}),xa[Wl(n,v).name]=[{name:"wrapper",func:n}],Qn.prototype.clone=Bf,Qn.prototype.reverse=Nf,Qn.prototype.value=ku,me.prototype.at=Am,me.prototype.chain=Im,me.prototype.commit=Fm,me.prototype.next=N_,me.prototype.plant=bs,me.prototype.reverse=Ld,me.prototype.toJSON=me.prototype.valueOf=me.prototype.value=Oh,me.prototype.first=me.prototype.head,Do&&(me.prototype[Do]=Yl),me},Ja=Ic();rs?((rs.exports=Ja)._=Ja,mu._=Ja):ti._=Ja}).call(lg)})(bT,bT.exports);function al(t){return al=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},al(t)}function VO(t,e){if(al(t)!=="object"||t===null)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,e||"default");if(al(r)!=="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function N2(t){var e=VO(t,"string");return al(e)==="symbol"?e:String(e)}function hu(t,e,n){return e=N2(e),e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function UO(){if(console&&console.warn){for(var t,e=arguments.length,n=new Array(e),r=0;r2&&arguments[2]!==void 0?arguments[2]:{},r=e.languages[0],l=e.options?e.options.fallbackLng:!1,m=e.languages[e.languages.length-1];if(r.toLowerCase()==="cimode")return!0;var S=function(s,c){var p=e.services.backendConnector.state["".concat(s,"|").concat(c)];return p===-1||p===2};return n.bindI18n&&n.bindI18n.indexOf("languageChanging")>-1&&e.services.backendConnector.backend&&e.isLanguageChangingTo&&!S(e.isLanguageChangingTo,t)?!1:!!(e.hasResourceBundle(r,t)||!e.services.backendConnector.backend||e.options.resources&&!e.options.partialBundledLanguages||S(r,t)&&(!l||S(m,t)))}function HO(t,e){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(!e.languages||!e.languages.length)return Ob("i18n.languages were undefined or empty",e.languages),!0;var r=e.options.ignoreJSONStructure!==void 0;return r?e.hasLoadedNamespace(t,{precheck:function(m,S){if(n.bindI18n&&n.bindI18n.indexOf("languageChanging")>-1&&m.services.backendConnector.backend&&m.isLanguageChangingTo&&!S(m.isLanguageChangingTo,t))return!1}}):GO(t,e,n)}var XO=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,qO={"&":"&","&":"&","<":"<","<":"<",">":">",">":">","'":"'","'":"'",""":'"',""":'"'," ":" "," ":" ","©":"\xA9","©":"\xA9","®":"\xAE","®":"\xAE","…":"\u2026","…":"\u2026","/":"/","/":"/"},YO=function(e){return qO[e]},KO=function(e){return e.replace(XO,YO)};function TT(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(l){return Object.getOwnPropertyDescriptor(t,l).enumerable})),n.push.apply(n,r)}return n}function CT(t){for(var e=1;e0&&arguments[0]!==void 0?arguments[0]:{};Ab=CT(CT({},Ab),t)}function JO(){return Ab}var j2;function ZO(t){j2=t}function eA(){return j2}function ll(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function MT(t,e){for(var n=0;nt.length)&&(e=t.length);for(var n=0,r=new Array(e);n1&&arguments[1]!==void 0?arguments[1]:{},n=e.i18n,r=rr.exports.useContext(tA)||{},l=r.i18n,m=r.defaultNS,S=n||l||eA();if(S&&!S.reportNamespaces&&(S.reportNamespaces=new nA),!S){Ob("You will need to pass in an i18next instance by using initReactI18next");var g=function(Q){return Array.isArray(Q)?Q[Q.length-1]:Q},s=[g,{},!1];return s.t=g,s.i18n={},s.ready=!1,s}S.options.react&&S.options.react.wait!==void 0&&Ob("It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.");var c=x1(x1(x1({},JO()),S.options.react),e),p=c.useSuspense,a=c.keyPrefix,u=t||m||S.options&&S.options.defaultNS;u=typeof u=="string"?[u]:u||["translation"],S.reportNamespaces.addUsedNamespaces&&S.reportNamespaces.addUsedNamespaces(u);var o=(S.isInitialized||S.initializedStoreOnce)&&u.every(function(R){return HO(R,S,c)});function _(){return S.getFixedT(null,c.nsMode==="fallback"?u:u[0],a)}var y=rr.exports.useState(_),h=iA(y,2),v=h[0],b=h[1],T=u.join(),M=sA(T),O=rr.exports.useRef(!0);rr.exports.useEffect(function(){var R=c.bindI18n,Q=c.bindI18nStore;O.current=!0,!o&&!p&&ST(S,u,function(){O.current&&b(_)}),o&&M&&M!==T&&O.current&&b(_);function ie(){O.current&&b(_)}return R&&S&&S.on(R,ie),Q&&S&&S.store.on(Q,ie),function(){O.current=!1,R&&S&&R.split(" ").forEach(function(pe){return S.off(pe,ie)}),Q&&S&&Q.split(" ").forEach(function(pe){return S.store.off(pe,ie)})}},[S,T]);var F=rr.exports.useRef(!0);rr.exports.useEffect(function(){O.current&&!F.current&&b(_),F.current=!1},[S,a]);var D=[v,S,o];if(D.t=v,D.i18n=S,D.ready=o,o||!o&&!p)return D;throw new Promise(function(R){ST(S,u,function(){R()})})}var My={exports:{}},Ey={};/** + * @license React + * react-jsx-runtime.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var aA=rr.exports,oA=Symbol.for("react.element"),lA=Symbol.for("react.fragment"),uA=Object.prototype.hasOwnProperty,cA=aA.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,dA={key:!0,ref:!0,__self:!0,__source:!0};function G2(t,e,n){var r,l={},m=null,S=null;n!==void 0&&(m=""+n),e.key!==void 0&&(m=""+e.key),e.ref!==void 0&&(S=e.ref);for(r in e)uA.call(e,r)&&!dA.hasOwnProperty(r)&&(l[r]=e[r]);if(t&&t.defaultProps)for(r in e=t.defaultProps,e)l[r]===void 0&&(l[r]=e[r]);return{$$typeof:oA,type:t,key:m,ref:S,props:l,_owner:cA.current}}Ey.Fragment=lA;Ey.jsx=G2;Ey.jsxs=G2;(function(t){t.exports=Ey})(My);const fA=My.exports.Fragment,Lr=My.exports.jsx,rl=My.exports.jsxs;function kT(t){return t!==null&&typeof t=="object"&&"constructor"in t&&t.constructor===Object}function zx(t,e){t===void 0&&(t={}),e===void 0&&(e={}),Object.keys(e).forEach(n=>{typeof t[n]>"u"?t[n]=e[n]:kT(e[n])&&kT(t[n])&&Object.keys(e[n]).length>0&&zx(t[n],e[n])})}const H2={body:{},addEventListener(){},removeEventListener(){},activeElement:{blur(){},nodeName:""},querySelector(){return null},querySelectorAll(){return[]},getElementById(){return null},createEvent(){return{initEvent(){}}},createElement(){return{children:[],childNodes:[],style:{},setAttribute(){},getElementsByTagName(){return[]}}},createElementNS(){return{}},importNode(){return null},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""}};function wm(){const t=typeof document<"u"?document:{};return zx(t,H2),t}const hA={document:H2,navigator:{userAgent:""},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""},history:{replaceState(){},pushState(){},go(){},back(){}},CustomEvent:function(){return this},addEventListener(){},removeEventListener(){},getComputedStyle(){return{getPropertyValue(){return""}}},Image(){},Date(){},screen:{},setTimeout(){},clearTimeout(){},matchMedia(){return{}},requestAnimationFrame(t){return typeof setTimeout>"u"?(t(),null):setTimeout(t,0)},cancelAnimationFrame(t){typeof setTimeout>"u"||clearTimeout(t)}};function Xa(){const t=typeof window<"u"?window:{};return zx(t,hA),t}function pA(t){return t===void 0&&(t=""),t.trim().split(" ").filter(e=>!!e.trim())}function mA(t){const e=t;Object.keys(e).forEach(n=>{try{e[n]=null}catch{}try{delete e[n]}catch{}})}function Ib(t,e){return e===void 0&&(e=0),setTimeout(t,e)}function J0(){return Date.now()}function gA(t){const e=Xa();let n;return e.getComputedStyle&&(n=e.getComputedStyle(t,null)),!n&&t.currentStyle&&(n=t.currentStyle),n||(n=t.style),n}function _A(t,e){e===void 0&&(e="x");const n=Xa();let r,l,m;const S=gA(t);return n.WebKitCSSMatrix?(l=S.transform||S.webkitTransform,l.split(",").length>6&&(l=l.split(", ").map(g=>g.replace(",",".")).join(", ")),m=new n.WebKitCSSMatrix(l==="none"?"":l)):(m=S.MozTransform||S.OTransform||S.MsTransform||S.msTransform||S.transform||S.getPropertyValue("transform").replace("translate(","matrix(1, 0, 0, 1,"),r=m.toString().split(",")),e==="x"&&(n.WebKitCSSMatrix?l=m.m41:r.length===16?l=parseFloat(r[12]):l=parseFloat(r[4])),e==="y"&&(n.WebKitCSSMatrix?l=m.m42:r.length===16?l=parseFloat(r[13]):l=parseFloat(r[5])),l||0}function a0(t){return typeof t=="object"&&t!==null&&t.constructor&&Object.prototype.toString.call(t).slice(8,-1)==="Object"}function vA(t){return typeof window<"u"&&typeof window.HTMLElement<"u"?t instanceof HTMLElement:t&&(t.nodeType===1||t.nodeType===11)}function Ba(){const t=Object(arguments.length<=0?void 0:arguments[0]),e=["__proto__","constructor","prototype"];for(let n=1;ne.indexOf(m)<0);for(let m=0,S=l.length;mm?"next":"prev",p=(u,o)=>c==="next"&&u>=o||c==="prev"&&u<=o,a=()=>{g=new Date().getTime(),S===null&&(S=g);const u=Math.max(Math.min((g-S)/s,1),0),o=.5-Math.cos(u*Math.PI)/2;let _=m+o*(n-m);if(p(_,n)&&(_=n),e.wrapperEl.scrollTo({[r]:_}),p(_,n)){e.wrapperEl.style.overflow="hidden",e.wrapperEl.style.scrollSnapType="",setTimeout(()=>{e.wrapperEl.style.overflow="",e.wrapperEl.scrollTo({[r]:_})}),l.cancelAnimationFrame(e.cssModeFrameID);return}e.cssModeFrameID=l.requestAnimationFrame(a)};a()}function lu(t,e){return e===void 0&&(e=""),[...t.children].filter(n=>n.matches(e))}function Z0(t){try{console.warn(t);return}catch{}}function ey(t,e){e===void 0&&(e=[]);const n=document.createElement(t);return n.classList.add(...Array.isArray(e)?e:pA(e)),n}function yA(t,e){const n=[];for(;t.previousElementSibling;){const r=t.previousElementSibling;e?r.matches(e)&&n.push(r):n.push(r),t=r}return n}function wA(t,e){const n=[];for(;t.nextElementSibling;){const r=t.nextElementSibling;e?r.matches(e)&&n.push(r):n.push(r),t=r}return n}function Qd(t,e){return Xa().getComputedStyle(t,null).getPropertyValue(e)}function ty(t){let e=t,n;if(e){for(n=0;(e=e.previousSibling)!==null;)e.nodeType===1&&(n+=1);return n}}function q2(t,e){const n=[];let r=t.parentElement;for(;r;)e?r.matches(e)&&n.push(r):n.push(r),r=r.parentElement;return n}function Fb(t,e,n){const r=Xa();return n?t[e==="width"?"offsetWidth":"offsetHeight"]+parseFloat(r.getComputedStyle(t,null).getPropertyValue(e==="width"?"margin-right":"margin-top"))+parseFloat(r.getComputedStyle(t,null).getPropertyValue(e==="width"?"margin-left":"margin-bottom")):t.offsetWidth}function bA(t,e,n,r){return t.params.createElements&&Object.keys(r).forEach(l=>{if(!n[l]&&n.auto===!0){let m=lu(t.el,`.${r[l]}`)[0];m||(m=ey("div",r[l]),m.className=r[l],t.el.append(m)),n[l]=m,e[l]=m}}),n}function _g(t){return t===void 0&&(t=""),`.${t.trim().replace(/([\.:!+\/])/g,"\\$1").replace(/ /g,".")}`}function zF(t){let{swiper:e,extendParams:n,on:r,emit:l}=t;const m="swiper-pagination";n({pagination:{el:null,bulletElement:"span",clickable:!1,hideOnClick:!1,renderBullet:null,renderProgressbar:null,renderFraction:null,renderCustom:null,progressbarOpposite:!1,type:"bullets",dynamicBullets:!1,dynamicMainBullets:1,formatFractionCurrent:b=>b,formatFractionTotal:b=>b,bulletClass:`${m}-bullet`,bulletActiveClass:`${m}-bullet-active`,modifierClass:`${m}-`,currentClass:`${m}-current`,totalClass:`${m}-total`,hiddenClass:`${m}-hidden`,progressbarFillClass:`${m}-progressbar-fill`,progressbarOppositeClass:`${m}-progressbar-opposite`,clickableClass:`${m}-clickable`,lockClass:`${m}-lock`,horizontalClass:`${m}-horizontal`,verticalClass:`${m}-vertical`,paginationDisabledClass:`${m}-disabled`}}),e.pagination={el:null,bullets:[]};let S,g=0;const s=b=>(Array.isArray(b)?b:[b]).filter(T=>!!T);function c(){return!e.params.pagination.el||!e.pagination.el||Array.isArray(e.pagination.el)&&e.pagination.el.length===0}function p(b,T){const{bulletActiveClass:M}=e.params.pagination;!b||(b=b[`${T==="prev"?"previous":"next"}ElementSibling`],b&&(b.classList.add(`${M}-${T}`),b=b[`${T==="prev"?"previous":"next"}ElementSibling`],b&&b.classList.add(`${M}-${T}-${T}`)))}function a(b){const T=b.target.closest(_g(e.params.pagination.bulletClass));if(!T)return;b.preventDefault();const M=ty(T)*e.params.slidesPerGroup;if(e.params.loop){if(e.realIndex===M)return;e.slideToLoop(M)}else e.slideTo(M)}function u(){const b=e.rtl,T=e.params.pagination;if(c())return;let M=e.pagination.el;M=s(M);let O,F;const D=e.virtual&&e.params.virtual.enabled?e.virtual.slides.length:e.slides.length,R=e.params.loop?Math.ceil(D/e.params.slidesPerGroup):e.snapGrid.length;if(e.params.loop?(F=e.previousRealIndex||0,O=e.params.slidesPerGroup>1?Math.floor(e.realIndex/e.params.slidesPerGroup):e.realIndex):typeof e.snapIndex<"u"?(O=e.snapIndex,F=e.previousSnapIndex):(F=e.previousIndex||0,O=e.activeIndex||0),T.type==="bullets"&&e.pagination.bullets&&e.pagination.bullets.length>0){const Q=e.pagination.bullets;let ie,pe,ke;if(T.dynamicBullets&&(S=Fb(Q[0],e.isHorizontal()?"width":"height",!0),M.forEach(Te=>{Te.style[e.isHorizontal()?"width":"height"]=`${S*(T.dynamicMainBullets+4)}px`}),T.dynamicMainBullets>1&&F!==void 0&&(g+=O-(F||0),g>T.dynamicMainBullets-1?g=T.dynamicMainBullets-1:g<0&&(g=0)),ie=Math.max(O-g,0),pe=ie+(Math.min(Q.length,T.dynamicMainBullets)-1),ke=(pe+ie)/2),Q.forEach(Te=>{const Re=[...["","-next","-next-next","-prev","-prev-prev","-main"].map(ze=>`${T.bulletActiveClass}${ze}`)].map(ze=>typeof ze=="string"&&ze.includes(" ")?ze.split(" "):ze).flat();Te.classList.remove(...Re)}),M.length>1)Q.forEach(Te=>{const Re=ty(Te);Re===O?Te.classList.add(...T.bulletActiveClass.split(" ")):e.isElement&&Te.setAttribute("part","bullet"),T.dynamicBullets&&(Re>=ie&&Re<=pe&&Te.classList.add(...`${T.bulletActiveClass}-main`.split(" ")),Re===ie&&p(Te,"prev"),Re===pe&&p(Te,"next"))});else{const Te=Q[O];if(Te&&Te.classList.add(...T.bulletActiveClass.split(" ")),e.isElement&&Q.forEach((Re,ze)=>{Re.setAttribute("part",ze===O?"bullet-active":"bullet")}),T.dynamicBullets){const Re=Q[ie],ze=Q[pe];for(let Ze=ie;Ze<=pe;Ze+=1)Q[Ze]&&Q[Ze].classList.add(...`${T.bulletActiveClass}-main`.split(" "));p(Re,"prev"),p(ze,"next")}}if(T.dynamicBullets){const Te=Math.min(Q.length,T.dynamicMainBullets+4),Re=(S*Te-S)/2-ke*S,ze=b?"right":"left";Q.forEach(Ze=>{Ze.style[e.isHorizontal()?ze:"top"]=`${Re}px`})}}M.forEach((Q,ie)=>{if(T.type==="fraction"&&(Q.querySelectorAll(_g(T.currentClass)).forEach(pe=>{pe.textContent=T.formatFractionCurrent(O+1)}),Q.querySelectorAll(_g(T.totalClass)).forEach(pe=>{pe.textContent=T.formatFractionTotal(R)})),T.type==="progressbar"){let pe;T.progressbarOpposite?pe=e.isHorizontal()?"vertical":"horizontal":pe=e.isHorizontal()?"horizontal":"vertical";const ke=(O+1)/R;let Te=1,Re=1;pe==="horizontal"?Te=ke:Re=ke,Q.querySelectorAll(_g(T.progressbarFillClass)).forEach(ze=>{ze.style.transform=`translate3d(0,0,0) scaleX(${Te}) scaleY(${Re})`,ze.style.transitionDuration=`${e.params.speed}ms`})}T.type==="custom"&&T.renderCustom?(Q.innerHTML=T.renderCustom(e,O+1,R),ie===0&&l("paginationRender",Q)):(ie===0&&l("paginationRender",Q),l("paginationUpdate",Q)),e.params.watchOverflow&&e.enabled&&Q.classList[e.isLocked?"add":"remove"](T.lockClass)})}function o(){const b=e.params.pagination;if(c())return;const T=e.virtual&&e.params.virtual.enabled?e.virtual.slides.length:e.grid&&e.params.grid.rows>1?e.slides.length/Math.ceil(e.params.grid.rows):e.slides.length;let M=e.pagination.el;M=s(M);let O="";if(b.type==="bullets"){let F=e.params.loop?Math.ceil(T/e.params.slidesPerGroup):e.snapGrid.length;e.params.freeMode&&e.params.freeMode.enabled&&F>T&&(F=T);for(let D=0;D`}b.type==="fraction"&&(b.renderFraction?O=b.renderFraction.call(e,b.currentClass,b.totalClass):O=` / `),b.type==="progressbar"&&(b.renderProgressbar?O=b.renderProgressbar.call(e,b.progressbarFillClass):O=``),e.pagination.bullets=[],M.forEach(F=>{b.type!=="custom"&&(F.innerHTML=O||""),b.type==="bullets"&&e.pagination.bullets.push(...F.querySelectorAll(_g(b.bulletClass)))}),b.type!=="custom"&&l("paginationRender",M[0])}function _(){e.params.pagination=bA(e,e.originalParams.pagination,e.params.pagination,{el:"swiper-pagination"});const b=e.params.pagination;if(!b.el)return;let T;typeof b.el=="string"&&e.isElement&&(T=e.el.querySelector(b.el)),!T&&typeof b.el=="string"&&(T=[...document.querySelectorAll(b.el)]),T||(T=b.el),!(!T||T.length===0)&&(e.params.uniqueNavElements&&typeof b.el=="string"&&Array.isArray(T)&&T.length>1&&(T=[...e.el.querySelectorAll(b.el)],T.length>1&&(T=T.filter(M=>q2(M,".swiper")[0]===e.el)[0])),Array.isArray(T)&&T.length===1&&(T=T[0]),Object.assign(e.pagination,{el:T}),T=s(T),T.forEach(M=>{b.type==="bullets"&&b.clickable&&M.classList.add(...(b.clickableClass||"").split(" ")),M.classList.add(b.modifierClass+b.type),M.classList.add(e.isHorizontal()?b.horizontalClass:b.verticalClass),b.type==="bullets"&&b.dynamicBullets&&(M.classList.add(`${b.modifierClass}${b.type}-dynamic`),g=0,b.dynamicMainBullets<1&&(b.dynamicMainBullets=1)),b.type==="progressbar"&&b.progressbarOpposite&&M.classList.add(b.progressbarOppositeClass),b.clickable&&M.addEventListener("click",a),e.enabled||M.classList.add(b.lockClass)}))}function y(){const b=e.params.pagination;if(c())return;let T=e.pagination.el;T&&(T=s(T),T.forEach(M=>{M.classList.remove(b.hiddenClass),M.classList.remove(b.modifierClass+b.type),M.classList.remove(e.isHorizontal()?b.horizontalClass:b.verticalClass),b.clickable&&(M.classList.remove(...(b.clickableClass||"").split(" ")),M.removeEventListener("click",a))})),e.pagination.bullets&&e.pagination.bullets.forEach(M=>M.classList.remove(...b.bulletActiveClass.split(" ")))}r("changeDirection",()=>{if(!e.pagination||!e.pagination.el)return;const b=e.params.pagination;let{el:T}=e.pagination;T=s(T),T.forEach(M=>{M.classList.remove(b.horizontalClass,b.verticalClass),M.classList.add(e.isHorizontal()?b.horizontalClass:b.verticalClass)})}),r("init",()=>{e.params.pagination.enabled===!1?v():(_(),o(),u())}),r("activeIndexChange",()=>{typeof e.snapIndex>"u"&&u()}),r("snapIndexChange",()=>{u()}),r("snapGridLengthChange",()=>{o(),u()}),r("destroy",()=>{y()}),r("enable disable",()=>{let{el:b}=e.pagination;b&&(b=s(b),b.forEach(T=>T.classList[e.enabled?"remove":"add"](e.params.pagination.lockClass)))}),r("lock unlock",()=>{u()}),r("click",(b,T)=>{const M=T.target,O=s(e.pagination.el);if(e.params.pagination.el&&e.params.pagination.hideOnClick&&O&&O.length>0&&!M.classList.contains(e.params.pagination.bulletClass)){if(e.navigation&&(e.navigation.nextEl&&M===e.navigation.nextEl||e.navigation.prevEl&&M===e.navigation.prevEl))return;const F=O[0].classList.contains(e.params.pagination.hiddenClass);l(F===!0?"paginationShow":"paginationHide"),O.forEach(D=>D.classList.toggle(e.params.pagination.hiddenClass))}});const h=()=>{e.el.classList.remove(e.params.pagination.paginationDisabledClass);let{el:b}=e.pagination;b&&(b=s(b),b.forEach(T=>T.classList.remove(e.params.pagination.paginationDisabledClass))),_(),o(),u()},v=()=>{e.el.classList.add(e.params.pagination.paginationDisabledClass);let{el:b}=e.pagination;b&&(b=s(b),b.forEach(T=>T.classList.add(e.params.pagination.paginationDisabledClass))),y()};Object.assign(e.pagination,{enable:h,disable:v,render:o,update:u,init:_,destroy:y})}let S1;function xA(){const t=Xa(),e=wm();return{smoothScroll:e.documentElement&&e.documentElement.style&&"scrollBehavior"in e.documentElement.style,touch:!!("ontouchstart"in t||t.DocumentTouch&&e instanceof t.DocumentTouch)}}function Y2(){return S1||(S1=xA()),S1}let T1;function SA(t){let{userAgent:e}=t===void 0?{}:t;const n=Y2(),r=Xa(),l=r.navigator.platform,m=e||r.navigator.userAgent,S={ios:!1,android:!1},g=r.screen.width,s=r.screen.height,c=m.match(/(Android);?[\s\/]+([\d.]+)?/);let p=m.match(/(iPad).*OS\s([\d_]+)/);const a=m.match(/(iPod)(.*OS\s([\d_]+))?/),u=!p&&m.match(/(iPhone\sOS|iOS)\s([\d_]+)/),o=l==="Win32";let _=l==="MacIntel";const y=["1024x1366","1366x1024","834x1194","1194x834","834x1112","1112x834","768x1024","1024x768","820x1180","1180x820","810x1080","1080x810"];return!p&&_&&n.touch&&y.indexOf(`${g}x${s}`)>=0&&(p=m.match(/(Version)\/([\d.]+)/),p||(p=[0,1,"13_0_0"]),_=!1),c&&!o&&(S.os="android",S.android=!0),(p||u||a)&&(S.os="ios",S.ios=!0),S}function TA(t){return t===void 0&&(t={}),T1||(T1=SA(t)),T1}let C1;function CA(){const t=Xa();let e=!1;function n(){const r=t.navigator.userAgent.toLowerCase();return r.indexOf("safari")>=0&&r.indexOf("chrome")<0&&r.indexOf("android")<0}if(n()){const r=String(t.navigator.userAgent);if(r.includes("Version/")){const[l,m]=r.split("Version/")[1].split(" ")[0].split(".").map(S=>Number(S));e=l<16||l===16&&m<2}}return{isSafari:e||n(),needPerspectiveFix:e,isWebView:/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(t.navigator.userAgent)}}function MA(){return C1||(C1=CA()),C1}function EA(t){let{swiper:e,on:n,emit:r}=t;const l=Xa();let m=null,S=null;const g=()=>{!e||e.destroyed||!e.initialized||(r("beforeResize"),r("resize"))},s=()=>{!e||e.destroyed||!e.initialized||(m=new ResizeObserver(a=>{S=l.requestAnimationFrame(()=>{const{width:u,height:o}=e;let _=u,y=o;a.forEach(h=>{let{contentBoxSize:v,contentRect:b,target:T}=h;T&&T!==e.el||(_=b?b.width:(v[0]||v).inlineSize,y=b?b.height:(v[0]||v).blockSize)}),(_!==u||y!==o)&&g()})}),m.observe(e.el))},c=()=>{S&&l.cancelAnimationFrame(S),m&&m.unobserve&&e.el&&(m.unobserve(e.el),m=null)},p=()=>{!e||e.destroyed||!e.initialized||r("orientationchange")};n("init",()=>{if(e.params.resizeObserver&&typeof l.ResizeObserver<"u"){s();return}l.addEventListener("resize",g),l.addEventListener("orientationchange",p)}),n("destroy",()=>{c(),l.removeEventListener("resize",g),l.removeEventListener("orientationchange",p)})}function PA(t){let{swiper:e,extendParams:n,on:r,emit:l}=t;const m=[],S=Xa(),g=function(p,a){a===void 0&&(a={});const u=S.MutationObserver||S.WebkitMutationObserver,o=new u(_=>{if(e.__preventObserver__)return;if(_.length===1){l("observerUpdate",_[0]);return}const y=function(){l("observerUpdate",_[0])};S.requestAnimationFrame?S.requestAnimationFrame(y):S.setTimeout(y,0)});o.observe(p,{attributes:typeof a.attributes>"u"?!0:a.attributes,childList:typeof a.childList>"u"?!0:a.childList,characterData:typeof a.characterData>"u"?!0:a.characterData}),m.push(o)},s=()=>{if(!!e.params.observer){if(e.params.observeParents){const p=q2(e.hostEl);for(let a=0;a{m.forEach(p=>{p.disconnect()}),m.splice(0,m.length)};n({observer:!1,observeParents:!1,observeSlideChildren:!1}),r("init",s),r("destroy",c)}var kA={on(t,e,n){const r=this;if(!r.eventsListeners||r.destroyed||typeof e!="function")return r;const l=n?"unshift":"push";return t.split(" ").forEach(m=>{r.eventsListeners[m]||(r.eventsListeners[m]=[]),r.eventsListeners[m][l](e)}),r},once(t,e,n){const r=this;if(!r.eventsListeners||r.destroyed||typeof e!="function")return r;function l(){r.off(t,l),l.__emitterProxy&&delete l.__emitterProxy;for(var m=arguments.length,S=new Array(m),g=0;g=0&&e.eventsAnyListeners.splice(n,1),e},off(t,e){const n=this;return!n.eventsListeners||n.destroyed||!n.eventsListeners||t.split(" ").forEach(r=>{typeof e>"u"?n.eventsListeners[r]=[]:n.eventsListeners[r]&&n.eventsListeners[r].forEach((l,m)=>{(l===e||l.__emitterProxy&&l.__emitterProxy===e)&&n.eventsListeners[r].splice(m,1)})}),n},emit(){const t=this;if(!t.eventsListeners||t.destroyed||!t.eventsListeners)return t;let e,n,r;for(var l=arguments.length,m=new Array(l),S=0;S{t.eventsAnyListeners&&t.eventsAnyListeners.length&&t.eventsAnyListeners.forEach(c=>{c.apply(r,[s,...n])}),t.eventsListeners&&t.eventsListeners[s]&&t.eventsListeners[s].forEach(c=>{c.apply(r,n)})}),t}};function OA(){const t=this;let e,n;const r=t.el;typeof t.params.width<"u"&&t.params.width!==null?e=t.params.width:e=r.clientWidth,typeof t.params.height<"u"&&t.params.height!==null?n=t.params.height:n=r.clientHeight,!(e===0&&t.isHorizontal()||n===0&&t.isVertical())&&(e=e-parseInt(Qd(r,"padding-left")||0,10)-parseInt(Qd(r,"padding-right")||0,10),n=n-parseInt(Qd(r,"padding-top")||0,10)-parseInt(Qd(r,"padding-bottom")||0,10),Number.isNaN(e)&&(e=0),Number.isNaN(n)&&(n=0),Object.assign(t,{width:e,height:n,size:t.isHorizontal()?e:n}))}function AA(){const t=this;function e(ie,pe){return parseFloat(ie.getPropertyValue(t.getDirectionLabel(pe))||0)}const n=t.params,{wrapperEl:r,slidesEl:l,size:m,rtlTranslate:S,wrongRTL:g}=t,s=t.virtual&&n.virtual.enabled,c=s?t.virtual.slides.length:t.slides.length,p=lu(l,`.${t.params.slideClass}, swiper-slide`),a=s?t.virtual.slides.length:p.length;let u=[];const o=[],_=[];let y=n.slidesOffsetBefore;typeof y=="function"&&(y=n.slidesOffsetBefore.call(t));let h=n.slidesOffsetAfter;typeof h=="function"&&(h=n.slidesOffsetAfter.call(t));const v=t.snapGrid.length,b=t.slidesGrid.length;let T=n.spaceBetween,M=-y,O=0,F=0;if(typeof m>"u")return;typeof T=="string"&&T.indexOf("%")>=0?T=parseFloat(T.replace("%",""))/100*m:typeof T=="string"&&(T=parseFloat(T)),t.virtualSize=-T,p.forEach(ie=>{S?ie.style.marginLeft="":ie.style.marginRight="",ie.style.marginBottom="",ie.style.marginTop=""}),n.centeredSlides&&n.cssMode&&(o0(r,"--swiper-centered-offset-before",""),o0(r,"--swiper-centered-offset-after",""));const D=n.grid&&n.grid.rows>1&&t.grid;D?t.grid.initSlides(p):t.grid&&t.grid.unsetSlides();let R;const Q=n.slidesPerView==="auto"&&n.breakpoints&&Object.keys(n.breakpoints).filter(ie=>typeof n.breakpoints[ie].slidesPerView<"u").length>0;for(let ie=0;ie1&&u.push(t.virtualSize-m)}if(s&&n.loop){const ie=_[0]+T;if(n.slidesPerGroup>1){const pe=Math.ceil((t.virtual.slidesBefore+t.virtual.slidesAfter)/n.slidesPerGroup),ke=ie*n.slidesPerGroup;for(let Te=0;Te!n.cssMode||n.loop?!0:ke!==p.length-1).forEach(pe=>{pe.style[ie]=`${T}px`})}if(n.centeredSlides&&n.centeredSlidesBounds){let ie=0;_.forEach(ke=>{ie+=ke+(T||0)}),ie-=T;const pe=ie-m;u=u.map(ke=>ke<=0?-y:ke>pe?pe+h:ke)}if(n.centerInsufficientSlides){let ie=0;if(_.forEach(pe=>{ie+=pe+(T||0)}),ie-=T,ie{u[Te]=ke-pe}),o.forEach((ke,Te)=>{o[Te]=ke+pe})}}if(Object.assign(t,{slides:p,snapGrid:u,slidesGrid:o,slidesSizesGrid:_}),n.centeredSlides&&n.cssMode&&!n.centeredSlidesBounds){o0(r,"--swiper-centered-offset-before",`${-u[0]}px`),o0(r,"--swiper-centered-offset-after",`${t.size/2-_[_.length-1]/2}px`);const ie=-t.snapGrid[0],pe=-t.slidesGrid[0];t.snapGrid=t.snapGrid.map(ke=>ke+ie),t.slidesGrid=t.slidesGrid.map(ke=>ke+pe)}if(a!==c&&t.emit("slidesLengthChange"),u.length!==v&&(t.params.watchOverflow&&t.checkOverflow(),t.emit("snapGridLengthChange")),o.length!==b&&t.emit("slidesGridLengthChange"),n.watchSlidesProgress&&t.updateSlidesOffset(),t.emit("slidesUpdated"),!s&&!n.cssMode&&(n.effect==="slide"||n.effect==="fade")){const ie=`${n.containerModifierClass}backface-hidden`,pe=t.el.classList.contains(ie);a<=n.maxBackfaceHiddenSlides?pe||t.el.classList.add(ie):pe&&t.el.classList.remove(ie)}}function IA(t){const e=this,n=[],r=e.virtual&&e.params.virtual.enabled;let l=0,m;typeof t=="number"?e.setTransition(t):t===!0&&e.setTransition(e.params.speed);const S=g=>r?e.slides[e.getSlideIndexByData(g)]:e.slides[g];if(e.params.slidesPerView!=="auto"&&e.params.slidesPerView>1)if(e.params.centeredSlides)(e.visibleSlides||[]).forEach(g=>{n.push(g)});else for(m=0;me.slides.length&&!r)break;n.push(S(g))}else n.push(S(e.activeIndex));for(m=0;ml?g:l}(l||l===0)&&(e.wrapperEl.style.height=`${l}px`)}function FA(){const t=this,e=t.slides,n=t.isElement?t.isHorizontal()?t.wrapperEl.offsetLeft:t.wrapperEl.offsetTop:0;for(let r=0;r"u"&&e.updateSlidesOffset();let S=-t;l&&(S=t),r.forEach(s=>{s.classList.remove(n.slideVisibleClass,n.slideFullyVisibleClass)}),e.visibleSlidesIndexes=[],e.visibleSlides=[];let g=n.spaceBetween;typeof g=="string"&&g.indexOf("%")>=0?g=parseFloat(g.replace("%",""))/100*e.size:typeof g=="string"&&(g=parseFloat(g));for(let s=0;s=0&&o<=e.size-e.slidesSizesGrid[s];(o>=0&&o1&&_<=e.size||o<=0&&_>=e.size)&&(e.visibleSlides.push(c),e.visibleSlidesIndexes.push(s),r[s].classList.add(n.slideVisibleClass)),y&&r[s].classList.add(n.slideFullyVisibleClass),c.progress=l?-a:a,c.originalProgress=l?-u:u}}function DA(t){const e=this;if(typeof t>"u"){const p=e.rtlTranslate?-1:1;t=e&&e.translate&&e.translate*p||0}const n=e.params,r=e.maxTranslate()-e.minTranslate();let{progress:l,isBeginning:m,isEnd:S,progressLoop:g}=e;const s=m,c=S;if(r===0)l=0,m=!0,S=!0;else{l=(t-e.minTranslate())/r;const p=Math.abs(t-e.minTranslate())<1,a=Math.abs(t-e.maxTranslate())<1;m=p||l<=0,S=a||l>=1,p&&(l=0),a&&(l=1)}if(n.loop){const p=e.getSlideIndexByData(0),a=e.getSlideIndexByData(e.slides.length-1),u=e.slidesGrid[p],o=e.slidesGrid[a],_=e.slidesGrid[e.slidesGrid.length-1],y=Math.abs(t);y>=u?g=(y-u)/_:g=(y+_-o)/_,g>1&&(g-=1)}Object.assign(e,{progress:l,progressLoop:g,isBeginning:m,isEnd:S}),(n.watchSlidesProgress||n.centeredSlides&&n.autoHeight)&&e.updateSlidesProgress(t),m&&!s&&e.emit("reachBeginning toEdge"),S&&!c&&e.emit("reachEnd toEdge"),(s&&!m||c&&!S)&&e.emit("fromEdge"),e.emit("progress",l)}function LA(){const t=this,{slides:e,params:n,slidesEl:r,activeIndex:l}=t,m=t.virtual&&n.virtual.enabled,S=t.grid&&n.grid&&n.grid.rows>1,g=a=>lu(r,`.${n.slideClass}${a}, swiper-slide${a}`)[0];e.forEach(a=>{a.classList.remove(n.slideActiveClass,n.slideNextClass,n.slidePrevClass)});let s,c,p;if(m)if(n.loop){let a=l-t.virtual.slidesBefore;a<0&&(a=t.virtual.slides.length+a),a>=t.virtual.slides.length&&(a-=t.virtual.slides.length),s=g(`[data-swiper-slide-index="${a}"]`)}else s=g(`[data-swiper-slide-index="${l}"]`);else S?(s=e.filter(a=>a.column===l)[0],p=e.filter(a=>a.column===l+1)[0],c=e.filter(a=>a.column===l-1)[0]):s=e[l];s&&(s.classList.add(n.slideActiveClass),S?(p&&p.classList.add(n.slideNextClass),c&&c.classList.add(n.slidePrevClass)):(p=wA(s,`.${n.slideClass}, swiper-slide`)[0],n.loop&&!p&&(p=e[0]),p&&p.classList.add(n.slideNextClass),c=yA(s,`.${n.slideClass}, swiper-slide`)[0],n.loop&&!c===0&&(c=e[e.length-1]),c&&c.classList.add(n.slidePrevClass))),t.emitSlidesClasses()}const x0=(t,e)=>{if(!t||t.destroyed||!t.params)return;const n=()=>t.isElement?"swiper-slide":`.${t.params.slideClass}`,r=e.closest(n());if(r){let l=r.querySelector(`.${t.params.lazyPreloaderClass}`);!l&&t.isElement&&(r.shadowRoot?l=r.shadowRoot.querySelector(`.${t.params.lazyPreloaderClass}`):requestAnimationFrame(()=>{r.shadowRoot&&(l=r.shadowRoot.querySelector(`.${t.params.lazyPreloaderClass}`),l&&l.remove())})),l&&l.remove()}},M1=(t,e)=>{if(!t.slides[e])return;const n=t.slides[e].querySelector('[loading="lazy"]');n&&n.removeAttribute("loading")},$b=t=>{if(!t||t.destroyed||!t.params)return;let e=t.params.lazyPreloadPrevNext;const n=t.slides.length;if(!n||!e||e<0)return;e=Math.min(e,n);const r=t.params.slidesPerView==="auto"?t.slidesPerViewDynamic():Math.ceil(t.params.slidesPerView),l=t.activeIndex;if(t.params.grid&&t.params.grid.rows>1){const S=l,g=[S-e];g.push(...Array.from({length:e}).map((s,c)=>S+r+c)),t.slides.forEach((s,c)=>{g.includes(s.column)&&M1(t,c)});return}const m=l+r-1;if(t.params.rewind||t.params.loop)for(let S=l-e;S<=m+e;S+=1){const g=(S%n+n)%n;(gm)&&M1(t,g)}else for(let S=Math.max(l-e,0);S<=Math.min(m+e,n-1);S+=1)S!==l&&(S>m||S=e[m]&&r=e[m]&&r=e[m]&&(l=m);return n.normalizeSlideIndex&&(l<0||typeof l>"u")&&(l=0),l}function zA(t){const e=this,n=e.rtlTranslate?e.translate:-e.translate,{snapGrid:r,params:l,activeIndex:m,realIndex:S,snapIndex:g}=e;let s=t,c;const p=o=>{let _=o-e.virtual.slidesBefore;return _<0&&(_=e.virtual.slides.length+_),_>=e.virtual.slides.length&&(_-=e.virtual.slides.length),_};if(typeof s>"u"&&(s=RA(e)),r.indexOf(n)>=0)c=r.indexOf(n);else{const o=Math.min(l.slidesPerGroupSkip,s);c=o+Math.floor((s-o)/l.slidesPerGroup)}if(c>=r.length&&(c=r.length-1),s===m&&!e.params.loop){c!==g&&(e.snapIndex=c,e.emit("snapIndexChange"));return}if(s===m&&e.params.loop&&e.virtual&&e.params.virtual.enabled){e.realIndex=p(s);return}const a=e.grid&&l.grid&&l.grid.rows>1;let u;if(e.virtual&&l.virtual.enabled&&l.loop)u=p(s);else if(a){const o=e.slides.filter(y=>y.column===s)[0];let _=parseInt(o.getAttribute("data-swiper-slide-index"),10);Number.isNaN(_)&&(_=Math.max(e.slides.indexOf(o),0)),u=Math.floor(_/l.grid.rows)}else if(e.slides[s]){const o=e.slides[s].getAttribute("data-swiper-slide-index");o?u=parseInt(o,10):u=s}else u=s;Object.assign(e,{previousSnapIndex:g,snapIndex:c,previousRealIndex:S,realIndex:u,previousIndex:m,activeIndex:s}),e.initialized&&$b(e),e.emit("activeIndexChange"),e.emit("snapIndexChange"),(e.initialized||e.params.runCallbacksOnInit)&&(S!==u&&e.emit("realIndexChange"),e.emit("slideChange"))}function BA(t,e){const n=this,r=n.params;let l=t.closest(`.${r.slideClass}, swiper-slide`);!l&&n.isElement&&e&&e.length>1&&e.includes(t)&&[...e.slice(e.indexOf(t)+1,e.length)].forEach(g=>{!l&&g.matches&&g.matches(`.${r.slideClass}, swiper-slide`)&&(l=g)});let m=!1,S;if(l){for(let g=0;gs?p=s:r&&tS?g="next":m=s.length&&(h=s.length-1);const v=-s[h];if(g.normalizeSlideIndex)for(let T=0;T=O&&M=O&&M=O&&(S=T)}if(m.initialized&&S!==a&&(!m.allowSlideNext&&(u?v>m.translate&&v>m.minTranslate():vm.translate&&v>m.maxTranslate()&&(a||0)!==S))return!1;S!==(p||0)&&n&&m.emit("beforeSlideChangeStart"),m.updateProgress(v);let b;if(S>a?b="next":S0?(m._cssModeVirtualInitialSet=!0,requestAnimationFrame(()=>{o[T?"scrollLeft":"scrollTop"]=M})):o[T?"scrollLeft":"scrollTop"]=M,O&&requestAnimationFrame(()=>{m.wrapperEl.style.scrollSnapType="",m._immediateVirtual=!1})}else{if(!m.support.smoothScroll)return X2({swiper:m,targetPosition:M,side:T?"left":"top"}),!0;o.scrollTo({[T?"left":"top"]:M,behavior:"smooth"})}return!0}return m.setTransition(e),m.setTranslate(v),m.updateActiveIndex(S),m.updateSlidesClasses(),m.emit("beforeTransitionStart",e,r),m.transitionStart(n,b),e===0?m.transitionEnd(n,b):m.animating||(m.animating=!0,m.onSlideToWrapperTransitionEnd||(m.onSlideToWrapperTransitionEnd=function(M){!m||m.destroyed||M.target===this&&(m.wrapperEl.removeEventListener("transitionend",m.onSlideToWrapperTransitionEnd),m.onSlideToWrapperTransitionEnd=null,delete m.onSlideToWrapperTransitionEnd,m.transitionEnd(n,b))}),m.wrapperEl.addEventListener("transitionend",m.onSlideToWrapperTransitionEnd)),!0}function JA(t,e,n,r){t===void 0&&(t=0),e===void 0&&(e=this.params.speed),n===void 0&&(n=!0),typeof t=="string"&&(t=parseInt(t,10));const l=this,m=l.grid&&l.params.grid&&l.params.grid.rows>1;let S=t;if(l.params.loop)if(l.virtual&&l.params.virtual.enabled)S=S+l.virtual.slidesBefore;else{let g;if(m){const u=S*l.params.grid.rows;g=l.slides.filter(o=>o.getAttribute("data-swiper-slide-index")*1===u)[0].column}else g=l.getSlideIndexByData(S);const s=m?Math.ceil(l.slides.length/l.params.grid.rows):l.slides.length,{centeredSlides:c}=l.params;let p=l.params.slidesPerView;p==="auto"?p=l.slidesPerViewDynamic():(p=Math.ceil(parseFloat(l.params.slidesPerView,10)),c&&p%2===0&&(p=p+1));let a=s-go.getAttribute("data-swiper-slide-index")*1===u)[0].column}else S=l.getSlideIndexByData(S)}return requestAnimationFrame(()=>{l.slideTo(S,e,n,r)}),l}function ZA(t,e,n){t===void 0&&(t=this.params.speed),e===void 0&&(e=!0);const r=this,{enabled:l,params:m,animating:S}=r;if(!l)return r;let g=m.slidesPerGroup;m.slidesPerView==="auto"&&m.slidesPerGroup===1&&m.slidesPerGroupAuto&&(g=Math.max(r.slidesPerViewDynamic("current",!0),1));const s=r.activeIndex{r.slideTo(r.activeIndex+s,t,e,n)}),!0}return m.rewind&&r.isEnd?r.slideTo(0,t,e,n):r.slideTo(r.activeIndex+s,t,e,n)}function eI(t,e,n){t===void 0&&(t=this.params.speed),e===void 0&&(e=!0);const r=this,{params:l,snapGrid:m,slidesGrid:S,rtlTranslate:g,enabled:s,animating:c}=r;if(!s)return r;const p=r.virtual&&l.virtual.enabled;if(l.loop){if(c&&!p&&l.loopPreventsSliding)return!1;r.loopFix({direction:"prev"}),r._clientLeft=r.wrapperEl.clientLeft}const a=g?r.translate:-r.translate;function u(v){return v<0?-Math.floor(Math.abs(v)):Math.floor(v)}const o=u(a),_=m.map(v=>u(v));let y=m[_.indexOf(o)-1];if(typeof y>"u"&&l.cssMode){let v;m.forEach((b,T)=>{o>=b&&(v=T)}),typeof v<"u"&&(y=m[v>0?v-1:v])}let h=0;if(typeof y<"u"&&(h=S.indexOf(y),h<0&&(h=r.activeIndex-1),l.slidesPerView==="auto"&&l.slidesPerGroup===1&&l.slidesPerGroupAuto&&(h=h-r.slidesPerViewDynamic("previous",!0)+1,h=Math.max(h,0))),l.rewind&&r.isBeginning){const v=r.params.virtual&&r.params.virtual.enabled&&r.virtual?r.virtual.slides.length-1:r.slides.length-1;return r.slideTo(v,t,e,n)}else if(l.loop&&r.activeIndex===0&&l.cssMode)return requestAnimationFrame(()=>{r.slideTo(h,t,e,n)}),!0;return r.slideTo(h,t,e,n)}function tI(t,e,n){t===void 0&&(t=this.params.speed),e===void 0&&(e=!0);const r=this;return r.slideTo(r.activeIndex,t,e,n)}function nI(t,e,n,r){t===void 0&&(t=this.params.speed),e===void 0&&(e=!0),r===void 0&&(r=.5);const l=this;let m=l.activeIndex;const S=Math.min(l.params.slidesPerGroupSkip,m),g=S+Math.floor((m-S)/l.params.slidesPerGroup),s=l.rtlTranslate?l.translate:-l.translate;if(s>=l.snapGrid[g]){const c=l.snapGrid[g],p=l.snapGrid[g+1];s-c>(p-c)*r&&(m+=l.params.slidesPerGroup)}else{const c=l.snapGrid[g-1],p=l.snapGrid[g];s-c<=(p-c)*r&&(m-=l.params.slidesPerGroup)}return m=Math.max(m,0),m=Math.min(m,l.slidesGrid.length-1),l.slideTo(m,t,e,n)}function rI(){const t=this,{params:e,slidesEl:n}=t,r=e.slidesPerView==="auto"?t.slidesPerViewDynamic():e.slidesPerView;let l=t.clickedIndex,m;const S=t.isElement?"swiper-slide":`.${e.slideClass}`;if(e.loop){if(t.animating)return;m=parseInt(t.clickedSlide.getAttribute("data-swiper-slide-index"),10),e.centeredSlides?lt.slides.length-t.loopedSlides+r/2?(t.loopFix(),l=t.getSlideIndex(lu(n,`${S}[data-swiper-slide-index="${m}"]`)[0]),Ib(()=>{t.slideTo(l)})):t.slideTo(l):l>t.slides.length-r?(t.loopFix(),l=t.getSlideIndex(lu(n,`${S}[data-swiper-slide-index="${m}"]`)[0]),Ib(()=>{t.slideTo(l)})):t.slideTo(l)}else t.slideTo(l)}var iI={slideTo:QA,slideToLoop:JA,slideNext:ZA,slidePrev:eI,slideReset:tI,slideToClosest:nI,slideToClickedSlide:rI};function sI(t){const e=this,{params:n,slidesEl:r}=e;if(!n.loop||e.virtual&&e.params.virtual.enabled)return;const l=()=>{lu(r,`.${n.slideClass}, swiper-slide`).forEach((a,u)=>{a.setAttribute("data-swiper-slide-index",u)})},m=e.grid&&n.grid&&n.grid.rows>1,S=n.slidesPerGroup*(m?n.grid.rows:1),g=e.slides.length%S!==0,s=m&&e.slides.length%n.grid.rows!==0,c=p=>{for(let a=0;a1;c.length"u"?m=s.getSlideIndex(c.filter(Te=>Te.classList.contains(o.slideActiveClass))[0]):O=m;const F=r==="next"||!r,D=r==="prev"||!r;let R=0,Q=0;const ie=b?Math.ceil(c.length/o.grid.rows):c.length,ke=(b?c[m].column:m)+(_&&typeof l>"u"?-y/2+.5:0);if(ke=0;Ze-=1)c[Ze].column===ze&&T.push(Ze)}else T.push(ie-Re-1)}}else if(ke+y>ie-v){Q=Math.max(ke-(ie-v*2),h);for(let Te=0;Te{ze.column===Re&&M.push(Ze)}):M.push(Re)}}if(s.__preventObserver__=!0,requestAnimationFrame(()=>{s.__preventObserver__=!1}),D&&T.forEach(Te=>{c[Te].swiperLoopMoveDOM=!0,u.prepend(c[Te]),c[Te].swiperLoopMoveDOM=!1}),F&&M.forEach(Te=>{c[Te].swiperLoopMoveDOM=!0,u.append(c[Te]),c[Te].swiperLoopMoveDOM=!1}),s.recalcSlides(),o.slidesPerView==="auto"?s.updateSlides():b&&(T.length>0&&D||M.length>0&&F)&&s.slides.forEach((Te,Re)=>{s.grid.updateSlide(Re,Te,s.slides)}),o.watchSlidesProgress&&s.updateSlidesOffset(),n){if(T.length>0&&D){if(typeof e>"u"){const Te=s.slidesGrid[O],ze=s.slidesGrid[O+R]-Te;g?s.setTranslate(s.translate-ze):(s.slideTo(O+R,0,!1,!0),l&&(s.touchEventsData.startTranslate=s.touchEventsData.startTranslate-ze,s.touchEventsData.currentTranslate=s.touchEventsData.currentTranslate-ze))}else if(l){const Te=b?T.length/o.grid.rows:T.length;s.slideTo(s.activeIndex+Te,0,!1,!0),s.touchEventsData.currentTranslate=s.translate}}else if(M.length>0&&F)if(typeof e>"u"){const Te=s.slidesGrid[O],ze=s.slidesGrid[O-Q]-Te;g?s.setTranslate(s.translate-ze):(s.slideTo(O-Q,0,!1,!0),l&&(s.touchEventsData.startTranslate=s.touchEventsData.startTranslate-ze,s.touchEventsData.currentTranslate=s.touchEventsData.currentTranslate-ze))}else{const Te=b?M.length/o.grid.rows:M.length;s.slideTo(s.activeIndex-Te,0,!1,!0)}}if(s.allowSlidePrev=p,s.allowSlideNext=a,s.controller&&s.controller.control&&!S){const Te={slideRealIndex:e,direction:r,setTranslate:l,activeSlideIndex:m,byController:!0};Array.isArray(s.controller.control)?s.controller.control.forEach(Re=>{!Re.destroyed&&Re.params.loop&&Re.loopFix({...Te,slideTo:Re.params.slidesPerView===o.slidesPerView?n:!1})}):s.controller.control instanceof s.constructor&&s.controller.control.params.loop&&s.controller.control.loopFix({...Te,slideTo:s.controller.control.params.slidesPerView===o.slidesPerView?n:!1})}s.emit("loopFix")}function oI(){const t=this,{params:e,slidesEl:n}=t;if(!e.loop||t.virtual&&t.params.virtual.enabled)return;t.recalcSlides();const r=[];t.slides.forEach(l=>{const m=typeof l.swiperSlideIndex>"u"?l.getAttribute("data-swiper-slide-index")*1:l.swiperSlideIndex;r[m]=l}),t.slides.forEach(l=>{l.removeAttribute("data-swiper-slide-index")}),r.forEach(l=>{n.append(l)}),t.recalcSlides(),t.slideTo(t.realIndex,0)}var lI={loopCreate:sI,loopFix:aI,loopDestroy:oI};function uI(t){const e=this;if(!e.params.simulateTouch||e.params.watchOverflow&&e.isLocked||e.params.cssMode)return;const n=e.params.touchEventsTarget==="container"?e.el:e.wrapperEl;e.isElement&&(e.__preventObserver__=!0),n.style.cursor="move",n.style.cursor=t?"grabbing":"grab",e.isElement&&requestAnimationFrame(()=>{e.__preventObserver__=!1})}function cI(){const t=this;t.params.watchOverflow&&t.isLocked||t.params.cssMode||(t.isElement&&(t.__preventObserver__=!0),t[t.params.touchEventsTarget==="container"?"el":"wrapperEl"].style.cursor="",t.isElement&&requestAnimationFrame(()=>{t.__preventObserver__=!1}))}var dI={setGrabCursor:uI,unsetGrabCursor:cI};function fI(t,e){e===void 0&&(e=this);function n(r){if(!r||r===wm()||r===Xa())return null;r.assignedSlot&&(r=r.assignedSlot);const l=r.closest(t);return!l&&!r.getRootNode?null:l||n(r.getRootNode().host)}return n(e)}function OT(t,e,n){const r=Xa(),{params:l}=t,m=l.edgeSwipeDetection,S=l.edgeSwipeThreshold;return m&&(n<=S||n>=r.innerWidth-S)?m==="prevent"?(e.preventDefault(),!0):!1:!0}function hI(t){const e=this,n=wm();let r=t;r.originalEvent&&(r=r.originalEvent);const l=e.touchEventsData;if(r.type==="pointerdown"){if(l.pointerId!==null&&l.pointerId!==r.pointerId)return;l.pointerId=r.pointerId}else r.type==="touchstart"&&r.targetTouches.length===1&&(l.touchId=r.targetTouches[0].identifier);if(r.type==="touchstart"){OT(e,r,r.targetTouches[0].pageX);return}const{params:m,touches:S,enabled:g}=e;if(!g||!m.simulateTouch&&r.pointerType==="mouse"||e.animating&&m.preventInteractionOnTransition)return;!e.animating&&m.cssMode&&m.loop&&e.loopFix();let s=r.target;if(m.touchEventsTarget==="wrapper"&&!e.wrapperEl.contains(s)||"which"in r&&r.which===3||"button"in r&&r.button>0||l.isTouched&&l.isMoved)return;const c=!!m.noSwipingClass&&m.noSwipingClass!=="",p=r.composedPath?r.composedPath():r.path;c&&r.target&&r.target.shadowRoot&&p&&(s=p[0]);const a=m.noSwipingSelector?m.noSwipingSelector:`.${m.noSwipingClass}`,u=!!(r.target&&r.target.shadowRoot);if(m.noSwiping&&(u?fI(a,s):s.closest(a))){e.allowClick=!0;return}if(m.swipeHandler&&!s.closest(m.swipeHandler))return;S.currentX=r.pageX,S.currentY=r.pageY;const o=S.currentX,_=S.currentY;if(!OT(e,r,o))return;Object.assign(l,{isTouched:!0,isMoved:!1,allowTouchCallbacks:!0,isScrolling:void 0,startMoving:void 0}),S.startX=o,S.startY=_,l.touchStartTime=J0(),e.allowClick=!0,e.updateSize(),e.swipeDirection=void 0,m.threshold>0&&(l.allowThresholdMove=!1);let y=!0;s.matches(l.focusableElements)&&(y=!1,s.nodeName==="SELECT"&&(l.isTouched=!1)),n.activeElement&&n.activeElement.matches(l.focusableElements)&&n.activeElement!==s&&n.activeElement.blur();const h=y&&e.allowTouchMove&&m.touchStartPreventDefault;(m.touchStartForcePreventDefault||h)&&!s.isContentEditable&&r.preventDefault(),m.freeMode&&m.freeMode.enabled&&e.freeMode&&e.animating&&!m.cssMode&&e.freeMode.onTouchStart(),e.emit("touchStart",r)}function pI(t){const e=wm(),n=this,r=n.touchEventsData,{params:l,touches:m,rtlTranslate:S,enabled:g}=n;if(!g||!l.simulateTouch&&t.pointerType==="mouse")return;let s=t;if(s.originalEvent&&(s=s.originalEvent),s.type==="pointermove"&&(r.touchId!==null||s.pointerId!==r.pointerId))return;let c;if(s.type==="touchmove"){if(c=[...s.changedTouches].filter(F=>F.identifier===r.touchId)[0],!c||c.identifier!==r.touchId)return}else c=s;if(!r.isTouched){r.startMoving&&r.isScrolling&&n.emit("touchMoveOpposite",s);return}const p=c.pageX,a=c.pageY;if(s.preventedByNestedSwiper){m.startX=p,m.startY=a;return}if(!n.allowTouchMove){s.target.matches(r.focusableElements)||(n.allowClick=!1),r.isTouched&&(Object.assign(m,{startX:p,startY:a,currentX:p,currentY:a}),r.touchStartTime=J0());return}if(l.touchReleaseOnEdges&&!l.loop){if(n.isVertical()){if(am.startY&&n.translate>=n.minTranslate()){r.isTouched=!1,r.isMoved=!1;return}}else if(pm.startX&&n.translate>=n.minTranslate())return}if(e.activeElement&&s.target===e.activeElement&&s.target.matches(r.focusableElements)){r.isMoved=!0,n.allowClick=!1;return}r.allowTouchCallbacks&&n.emit("touchMove",s),m.previousX=m.currentX,m.previousY=m.currentY,m.currentX=p,m.currentY=a;const u=m.currentX-m.startX,o=m.currentY-m.startY;if(n.params.threshold&&Math.sqrt(u**2+o**2)"u"){let F;n.isHorizontal()&&m.currentY===m.startY||n.isVertical()&&m.currentX===m.startX?r.isScrolling=!1:u*u+o*o>=25&&(F=Math.atan2(Math.abs(o),Math.abs(u))*180/Math.PI,r.isScrolling=n.isHorizontal()?F>l.touchAngle:90-F>l.touchAngle)}if(r.isScrolling&&n.emit("touchMoveOpposite",s),typeof r.startMoving>"u"&&(m.currentX!==m.startX||m.currentY!==m.startY)&&(r.startMoving=!0),r.isScrolling){r.isTouched=!1;return}if(!r.startMoving)return;n.allowClick=!1,!l.cssMode&&s.cancelable&&s.preventDefault(),l.touchMoveStopPropagation&&!l.nested&&s.stopPropagation();let _=n.isHorizontal()?u:o,y=n.isHorizontal()?m.currentX-m.previousX:m.currentY-m.previousY;l.oneWayMovement&&(_=Math.abs(_)*(S?1:-1),y=Math.abs(y)*(S?1:-1)),m.diff=_,_*=l.touchRatio,S&&(_=-_,y=-y);const h=n.touchesDirection;n.swipeDirection=_>0?"prev":"next",n.touchesDirection=y>0?"prev":"next";const v=n.params.loop&&!l.cssMode,b=n.touchesDirection==="next"&&n.allowSlideNext||n.touchesDirection==="prev"&&n.allowSlidePrev;if(!r.isMoved){if(v&&b&&n.loopFix({direction:n.swipeDirection}),r.startTranslate=n.getTranslate(),n.setTransition(0),n.animating){const F=new window.CustomEvent("transitionend",{bubbles:!0,cancelable:!0});n.wrapperEl.dispatchEvent(F)}r.allowMomentumBounce=!1,l.grabCursor&&(n.allowSlideNext===!0||n.allowSlidePrev===!0)&&n.setGrabCursor(!0),n.emit("sliderFirstMove",s)}let T;if(new Date().getTime(),r.isMoved&&r.allowThresholdMove&&h!==n.touchesDirection&&v&&b&&Math.abs(_)>=1){Object.assign(m,{startX:p,startY:a,currentX:p,currentY:a,startTranslate:r.currentTranslate}),r.loopSwapReset=!0,r.startTranslate=r.currentTranslate;return}n.emit("sliderMove",s),r.isMoved=!0,r.currentTranslate=_+r.startTranslate;let M=!0,O=l.resistanceRatio;if(l.touchReleaseOnEdges&&(O=0),_>0?(v&&b&&!T&&r.allowThresholdMove&&r.currentTranslate>(l.centeredSlides?n.minTranslate()-n.slidesSizesGrid[n.activeIndex+1]:n.minTranslate())&&n.loopFix({direction:"prev",setTranslate:!0,activeSlideIndex:0}),r.currentTranslate>n.minTranslate()&&(M=!1,l.resistance&&(r.currentTranslate=n.minTranslate()-1+(-n.minTranslate()+r.startTranslate+_)**O))):_<0&&(v&&b&&!T&&r.allowThresholdMove&&r.currentTranslate<(l.centeredSlides?n.maxTranslate()+n.slidesSizesGrid[n.slidesSizesGrid.length-1]:n.maxTranslate())&&n.loopFix({direction:"next",setTranslate:!0,activeSlideIndex:n.slides.length-(l.slidesPerView==="auto"?n.slidesPerViewDynamic():Math.ceil(parseFloat(l.slidesPerView,10)))}),r.currentTranslater.startTranslate&&(r.currentTranslate=r.startTranslate),!n.allowSlidePrev&&!n.allowSlideNext&&(r.currentTranslate=r.startTranslate),l.threshold>0)if(Math.abs(_)>l.threshold||r.allowThresholdMove){if(!r.allowThresholdMove){r.allowThresholdMove=!0,m.startX=m.currentX,m.startY=m.currentY,r.currentTranslate=r.startTranslate,m.diff=n.isHorizontal()?m.currentX-m.startX:m.currentY-m.startY;return}}else{r.currentTranslate=r.startTranslate;return}!l.followFinger||l.cssMode||((l.freeMode&&l.freeMode.enabled&&n.freeMode||l.watchSlidesProgress)&&(n.updateActiveIndex(),n.updateSlidesClasses()),l.freeMode&&l.freeMode.enabled&&n.freeMode&&n.freeMode.onTouchMove(),n.updateProgress(r.currentTranslate),n.setTranslate(r.currentTranslate))}function mI(t){const e=this,n=e.touchEventsData;let r=t;r.originalEvent&&(r=r.originalEvent);let l;if(r.type==="touchend"||r.type==="touchcancel"){if(l=[...r.changedTouches].filter(O=>O.identifier===n.touchId)[0],!l||l.identifier!==n.touchId)return}else{if(n.touchId!==null||r.pointerId!==n.pointerId)return;l=r}if(["pointercancel","pointerout","pointerleave","contextmenu"].includes(r.type)&&!(["pointercancel","contextmenu"].includes(r.type)&&(e.browser.isSafari||e.browser.isWebView)))return;n.pointerId=null,n.touchId=null;const{params:S,touches:g,rtlTranslate:s,slidesGrid:c,enabled:p}=e;if(!p||!S.simulateTouch&&r.pointerType==="mouse")return;if(n.allowTouchCallbacks&&e.emit("touchEnd",r),n.allowTouchCallbacks=!1,!n.isTouched){n.isMoved&&S.grabCursor&&e.setGrabCursor(!1),n.isMoved=!1,n.startMoving=!1;return}S.grabCursor&&n.isMoved&&n.isTouched&&(e.allowSlideNext===!0||e.allowSlidePrev===!0)&&e.setGrabCursor(!1);const a=J0(),u=a-n.touchStartTime;if(e.allowClick){const O=r.path||r.composedPath&&r.composedPath();e.updateClickedSlide(O&&O[0]||r.target,O),e.emit("tap click",r),u<300&&a-n.lastClickTime<300&&e.emit("doubleTap doubleClick",r)}if(n.lastClickTime=J0(),Ib(()=>{e.destroyed||(e.allowClick=!0)}),!n.isTouched||!n.isMoved||!e.swipeDirection||g.diff===0&&!n.loopSwapReset||n.currentTranslate===n.startTranslate&&!n.loopSwapReset){n.isTouched=!1,n.isMoved=!1,n.startMoving=!1;return}n.isTouched=!1,n.isMoved=!1,n.startMoving=!1;let o;if(S.followFinger?o=s?e.translate:-e.translate:o=-n.currentTranslate,S.cssMode)return;if(S.freeMode&&S.freeMode.enabled){e.freeMode.onTouchEnd({currentPos:o});return}const _=o>=-e.maxTranslate()&&!e.params.loop;let y=0,h=e.slidesSizesGrid[0];for(let O=0;O=c[O]&&o=c[O])&&(y=O,h=c[c.length-1]-c[c.length-2])}let v=null,b=null;S.rewind&&(e.isBeginning?b=S.virtual&&S.virtual.enabled&&e.virtual?e.virtual.slides.length-1:e.slides.length-1:e.isEnd&&(v=0));const T=(o-c[y])/h,M=yS.longSwipesMs){if(!S.longSwipes){e.slideTo(e.activeIndex);return}e.swipeDirection==="next"&&(T>=S.longSwipesRatio?e.slideTo(S.rewind&&e.isEnd?v:y+M):e.slideTo(y)),e.swipeDirection==="prev"&&(T>1-S.longSwipesRatio?e.slideTo(y+M):b!==null&&T<0&&Math.abs(T)>S.longSwipesRatio?e.slideTo(b):e.slideTo(y))}else{if(!S.shortSwipes){e.slideTo(e.activeIndex);return}e.navigation&&(r.target===e.navigation.nextEl||r.target===e.navigation.prevEl)?r.target===e.navigation.nextEl?e.slideTo(y+M):e.slideTo(y):(e.swipeDirection==="next"&&e.slideTo(v!==null?v:y+M),e.swipeDirection==="prev"&&e.slideTo(b!==null?b:y))}}function AT(){const t=this,{params:e,el:n}=t;if(n&&n.offsetWidth===0)return;e.breakpoints&&t.setBreakpoint();const{allowSlideNext:r,allowSlidePrev:l,snapGrid:m}=t,S=t.virtual&&t.params.virtual.enabled;t.allowSlideNext=!0,t.allowSlidePrev=!0,t.updateSize(),t.updateSlides(),t.updateSlidesClasses();const g=S&&e.loop;(e.slidesPerView==="auto"||e.slidesPerView>1)&&t.isEnd&&!t.isBeginning&&!t.params.centeredSlides&&!g?t.slideTo(t.slides.length-1,0,!1,!0):t.params.loop&&!S?t.slideToLoop(t.realIndex,0,!1,!0):t.slideTo(t.activeIndex,0,!1,!0),t.autoplay&&t.autoplay.running&&t.autoplay.paused&&(clearTimeout(t.autoplay.resizeTimeout),t.autoplay.resizeTimeout=setTimeout(()=>{t.autoplay&&t.autoplay.running&&t.autoplay.paused&&t.autoplay.resume()},500)),t.allowSlidePrev=l,t.allowSlideNext=r,t.params.watchOverflow&&m!==t.snapGrid&&t.checkOverflow()}function gI(t){const e=this;!e.enabled||e.allowClick||(e.params.preventClicks&&t.preventDefault(),e.params.preventClicksPropagation&&e.animating&&(t.stopPropagation(),t.stopImmediatePropagation()))}function _I(){const t=this,{wrapperEl:e,rtlTranslate:n,enabled:r}=t;if(!r)return;t.previousTranslate=t.translate,t.isHorizontal()?t.translate=-e.scrollLeft:t.translate=-e.scrollTop,t.translate===0&&(t.translate=0),t.updateActiveIndex(),t.updateSlidesClasses();let l;const m=t.maxTranslate()-t.minTranslate();m===0?l=0:l=(t.translate-t.minTranslate())/m,l!==t.progress&&t.updateProgress(n?-t.translate:t.translate),t.emit("setTranslate",t.translate,!1)}function vI(t){const e=this;x0(e,t.target),!(e.params.cssMode||e.params.slidesPerView!=="auto"&&!e.params.autoHeight)&&e.update()}function yI(){const t=this;t.documentTouchHandlerProceeded||(t.documentTouchHandlerProceeded=!0,t.params.touchReleaseOnEdges&&(t.el.style.touchAction="auto"))}const Q2=(t,e)=>{const n=wm(),{params:r,el:l,wrapperEl:m,device:S}=t,g=!!r.nested,s=e==="on"?"addEventListener":"removeEventListener",c=e;n[s]("touchstart",t.onDocumentTouchStart,{passive:!1,capture:g}),l[s]("touchstart",t.onTouchStart,{passive:!1}),l[s]("pointerdown",t.onTouchStart,{passive:!1}),n[s]("touchmove",t.onTouchMove,{passive:!1,capture:g}),n[s]("pointermove",t.onTouchMove,{passive:!1,capture:g}),n[s]("touchend",t.onTouchEnd,{passive:!0}),n[s]("pointerup",t.onTouchEnd,{passive:!0}),n[s]("pointercancel",t.onTouchEnd,{passive:!0}),n[s]("touchcancel",t.onTouchEnd,{passive:!0}),n[s]("pointerout",t.onTouchEnd,{passive:!0}),n[s]("pointerleave",t.onTouchEnd,{passive:!0}),n[s]("contextmenu",t.onTouchEnd,{passive:!0}),(r.preventClicks||r.preventClicksPropagation)&&l[s]("click",t.onClick,!0),r.cssMode&&m[s]("scroll",t.onScroll),r.updateOnWindowResize?t[c](S.ios||S.android?"resize orientationchange observerUpdate":"resize observerUpdate",AT,!0):t[c]("observerUpdate",AT,!0),l[s]("load",t.onLoad,{capture:!0})};function wI(){const t=this,{params:e}=t;t.onTouchStart=hI.bind(t),t.onTouchMove=pI.bind(t),t.onTouchEnd=mI.bind(t),t.onDocumentTouchStart=yI.bind(t),e.cssMode&&(t.onScroll=_I.bind(t)),t.onClick=gI.bind(t),t.onLoad=vI.bind(t),Q2(t,"on")}function bI(){Q2(this,"off")}var xI={attachEvents:wI,detachEvents:bI};const IT=(t,e)=>t.grid&&e.grid&&e.grid.rows>1;function SI(){const t=this,{realIndex:e,initialized:n,params:r,el:l}=t,m=r.breakpoints;if(!m||m&&Object.keys(m).length===0)return;const S=t.getBreakpoint(m,t.params.breakpointsBase,t.el);if(!S||t.currentBreakpoint===S)return;const s=(S in m?m[S]:void 0)||t.originalParams,c=IT(t,r),p=IT(t,s),a=r.enabled;c&&!p?(l.classList.remove(`${r.containerModifierClass}grid`,`${r.containerModifierClass}grid-column`),t.emitContainerClasses()):!c&&p&&(l.classList.add(`${r.containerModifierClass}grid`),(s.grid.fill&&s.grid.fill==="column"||!s.grid.fill&&r.grid.fill==="column")&&l.classList.add(`${r.containerModifierClass}grid-column`),t.emitContainerClasses()),["navigation","pagination","scrollbar"].forEach(v=>{if(typeof s[v]>"u")return;const b=r[v]&&r[v].enabled,T=s[v]&&s[v].enabled;b&&!T&&t[v].disable(),!b&&T&&t[v].enable()});const u=s.direction&&s.direction!==r.direction,o=r.loop&&(s.slidesPerView!==r.slidesPerView||u),_=r.loop;u&&n&&t.changeDirection(),Ba(t.params,s);const y=t.params.enabled,h=t.params.loop;Object.assign(t,{allowTouchMove:t.params.allowTouchMove,allowSlideNext:t.params.allowSlideNext,allowSlidePrev:t.params.allowSlidePrev}),a&&!y?t.disable():!a&&y&&t.enable(),t.currentBreakpoint=S,t.emit("_beforeBreakpoint",s),n&&(o?(t.loopDestroy(),t.loopCreate(e),t.updateSlides()):!_&&h?(t.loopCreate(e),t.updateSlides()):_&&!h&&t.loopDestroy()),t.emit("breakpoint",s)}function TI(t,e,n){if(e===void 0&&(e="window"),!t||e==="container"&&!n)return;let r=!1;const l=Xa(),m=e==="window"?l.innerHeight:n.clientHeight,S=Object.keys(t).map(g=>{if(typeof g=="string"&&g.indexOf("@")===0){const s=parseFloat(g.substr(1));return{value:m*s,point:g}}return{value:g,point:g}});S.sort((g,s)=>parseInt(g.value,10)-parseInt(s.value,10));for(let g=0;g{typeof r=="object"?Object.keys(r).forEach(l=>{r[l]&&n.push(e+l)}):typeof r=="string"&&n.push(e+r)}),n}function EI(){const t=this,{classNames:e,params:n,rtl:r,el:l,device:m}=t,S=MI(["initialized",n.direction,{"free-mode":t.params.freeMode&&n.freeMode.enabled},{autoheight:n.autoHeight},{rtl:r},{grid:n.grid&&n.grid.rows>1},{"grid-column":n.grid&&n.grid.rows>1&&n.grid.fill==="column"},{android:m.android},{ios:m.ios},{"css-mode":n.cssMode},{centered:n.cssMode&&n.centeredSlides},{"watch-progress":n.watchSlidesProgress}],n.containerModifierClass);e.push(...S),l.classList.add(...e),t.emitContainerClasses()}function PI(){const t=this,{el:e,classNames:n}=t;e.classList.remove(...n),t.emitContainerClasses()}var kI={addClasses:EI,removeClasses:PI};function OI(){const t=this,{isLocked:e,params:n}=t,{slidesOffsetBefore:r}=n;if(r){const l=t.slides.length-1,m=t.slidesGrid[l]+t.slidesSizesGrid[l]+r*2;t.isLocked=t.size>m}else t.isLocked=t.snapGrid.length===1;n.allowSlideNext===!0&&(t.allowSlideNext=!t.isLocked),n.allowSlidePrev===!0&&(t.allowSlidePrev=!t.isLocked),e&&e!==t.isLocked&&(t.isEnd=!1),e!==t.isLocked&&t.emit(t.isLocked?"lock":"unlock")}var AI={checkOverflow:OI},Db={init:!0,direction:"horizontal",oneWayMovement:!1,touchEventsTarget:"wrapper",initialSlide:0,speed:300,cssMode:!1,updateOnWindowResize:!0,resizeObserver:!0,nested:!1,createElements:!1,eventsPrefix:"swiper",enabled:!0,focusableElements:"input, select, option, textarea, button, video, label",width:null,height:null,preventInteractionOnTransition:!1,userAgent:null,url:null,edgeSwipeDetection:!1,edgeSwipeThreshold:20,autoHeight:!1,setWrapperSize:!1,virtualTranslate:!1,effect:"slide",breakpoints:void 0,breakpointsBase:"window",spaceBetween:0,slidesPerView:1,slidesPerGroup:1,slidesPerGroupSkip:0,slidesPerGroupAuto:!1,centeredSlides:!1,centeredSlidesBounds:!1,slidesOffsetBefore:0,slidesOffsetAfter:0,normalizeSlideIndex:!0,centerInsufficientSlides:!1,watchOverflow:!0,roundLengths:!1,touchRatio:1,touchAngle:45,simulateTouch:!0,shortSwipes:!0,longSwipes:!0,longSwipesRatio:.5,longSwipesMs:300,followFinger:!0,allowTouchMove:!0,threshold:5,touchMoveStopPropagation:!1,touchStartPreventDefault:!0,touchStartForcePreventDefault:!1,touchReleaseOnEdges:!1,uniqueNavElements:!0,resistance:!0,resistanceRatio:.85,watchSlidesProgress:!1,grabCursor:!1,preventClicks:!0,preventClicksPropagation:!0,slideToClickedSlide:!1,loop:!1,loopAddBlankSlides:!0,loopAdditionalSlides:0,loopPreventsSliding:!0,rewind:!1,allowSlidePrev:!0,allowSlideNext:!0,swipeHandler:null,noSwiping:!0,noSwipingClass:"swiper-no-swiping",noSwipingSelector:null,passiveListeners:!0,maxBackfaceHiddenSlides:10,containerModifierClass:"swiper-",slideClass:"swiper-slide",slideBlankClass:"swiper-slide-blank",slideActiveClass:"swiper-slide-active",slideVisibleClass:"swiper-slide-visible",slideFullyVisibleClass:"swiper-slide-fully-visible",slideNextClass:"swiper-slide-next",slidePrevClass:"swiper-slide-prev",wrapperClass:"swiper-wrapper",lazyPreloaderClass:"swiper-lazy-preloader",lazyPreloadPrevNext:0,runCallbacksOnInit:!0,_emitClasses:!1};function II(t,e){return function(r){r===void 0&&(r={});const l=Object.keys(r)[0],m=r[l];if(typeof m!="object"||m===null){Ba(e,r);return}if(t[l]===!0&&(t[l]={enabled:!0}),l==="navigation"&&t[l]&&t[l].enabled&&!t[l].prevEl&&!t[l].nextEl&&(t[l].auto=!0),["pagination","scrollbar"].indexOf(l)>=0&&t[l]&&t[l].enabled&&!t[l].el&&(t[l].auto=!0),!(l in t&&"enabled"in m)){Ba(e,r);return}typeof t[l]=="object"&&!("enabled"in t[l])&&(t[l].enabled=!0),t[l]||(t[l]={enabled:!1}),Ba(e,r)}}const E1={eventsEmitter:kA,update:NA,translate:HA,transition:KA,slide:iI,loop:lI,grabCursor:dI,events:xI,breakpoints:CI,checkOverflow:AI,classes:kI},P1={};class po{constructor(){let e,n;for(var r=arguments.length,l=new Array(r),m=0;m1){const p=[];return S.querySelectorAll(n.el).forEach(a=>{const u=Ba({},n,{el:a});p.push(new po(u))}),p}const g=this;g.__swiper__=!0,g.support=Y2(),g.device=TA({userAgent:n.userAgent}),g.browser=MA(),g.eventsListeners={},g.eventsAnyListeners=[],g.modules=[...g.__modules__],n.modules&&Array.isArray(n.modules)&&g.modules.push(...n.modules);const s={};g.modules.forEach(p=>{p({params:n,swiper:g,extendParams:II(n,s),on:g.on.bind(g),once:g.once.bind(g),off:g.off.bind(g),emit:g.emit.bind(g)})});const c=Ba({},Db,s);return g.params=Ba({},c,P1,n),g.originalParams=Ba({},g.params),g.passedParams=Ba({},n),g.params&&g.params.on&&Object.keys(g.params.on).forEach(p=>{g.on(p,g.params.on[p])}),g.params&&g.params.onAny&&g.onAny(g.params.onAny),Object.assign(g,{enabled:g.params.enabled,el:e,classNames:[],slides:[],slidesGrid:[],snapGrid:[],slidesSizesGrid:[],isHorizontal(){return g.params.direction==="horizontal"},isVertical(){return g.params.direction==="vertical"},activeIndex:0,realIndex:0,isBeginning:!0,isEnd:!1,translate:0,previousTranslate:0,progress:0,velocity:0,animating:!1,cssOverflowAdjustment(){return Math.trunc(this.translate/2**23)*2**23},allowSlideNext:g.params.allowSlideNext,allowSlidePrev:g.params.allowSlidePrev,touchEventsData:{isTouched:void 0,isMoved:void 0,allowTouchCallbacks:void 0,touchStartTime:void 0,isScrolling:void 0,currentTranslate:void 0,startTranslate:void 0,allowThresholdMove:void 0,focusableElements:g.params.focusableElements,lastClickTime:0,clickTimeout:void 0,velocities:[],allowMomentumBounce:void 0,startMoving:void 0,pointerId:null,touchId:null},allowClick:!0,allowTouchMove:g.params.allowTouchMove,touches:{startX:0,startY:0,currentX:0,currentY:0,diff:0},imagesToLoad:[],imagesLoaded:0}),g.emit("_swiper"),g.params.init&&g.init(),g}getDirectionLabel(e){return this.isHorizontal()?e:{width:"height","margin-top":"margin-left","margin-bottom ":"margin-right","margin-left":"margin-top","margin-right":"margin-bottom","padding-left":"padding-top","padding-right":"padding-bottom",marginRight:"marginBottom"}[e]}getSlideIndex(e){const{slidesEl:n,params:r}=this,l=lu(n,`.${r.slideClass}, swiper-slide`),m=ty(l[0]);return ty(e)-m}getSlideIndexByData(e){return this.getSlideIndex(this.slides.filter(n=>n.getAttribute("data-swiper-slide-index")*1===e)[0])}recalcSlides(){const e=this,{slidesEl:n,params:r}=e;e.slides=lu(n,`.${r.slideClass}, swiper-slide`)}enable(){const e=this;e.enabled||(e.enabled=!0,e.params.grabCursor&&e.setGrabCursor(),e.emit("enable"))}disable(){const e=this;!e.enabled||(e.enabled=!1,e.params.grabCursor&&e.unsetGrabCursor(),e.emit("disable"))}setProgress(e,n){const r=this;e=Math.min(Math.max(e,0),1);const l=r.minTranslate(),S=(r.maxTranslate()-l)*e+l;r.translateTo(S,typeof n>"u"?0:n),r.updateActiveIndex(),r.updateSlidesClasses()}emitContainerClasses(){const e=this;if(!e.params._emitClasses||!e.el)return;const n=e.el.className.split(" ").filter(r=>r.indexOf("swiper")===0||r.indexOf(e.params.containerModifierClass)===0);e.emit("_containerClasses",n.join(" "))}getSlideClasses(e){const n=this;return n.destroyed?"":e.className.split(" ").filter(r=>r.indexOf("swiper-slide")===0||r.indexOf(n.params.slideClass)===0).join(" ")}emitSlidesClasses(){const e=this;if(!e.params._emitClasses||!e.el)return;const n=[];e.slides.forEach(r=>{const l=e.getSlideClasses(r);n.push({slideEl:r,classNames:l}),e.emit("_slideClass",r,l)}),e.emit("_slideClasses",n)}slidesPerViewDynamic(e,n){e===void 0&&(e="current"),n===void 0&&(n=!1);const r=this,{params:l,slides:m,slidesGrid:S,slidesSizesGrid:g,size:s,activeIndex:c}=r;let p=1;if(typeof l.slidesPerView=="number")return l.slidesPerView;if(l.centeredSlides){let a=m[c]?m[c].swiperSlideSize:0,u;for(let o=c+1;os&&(u=!0));for(let o=c-1;o>=0;o-=1)m[o]&&!u&&(a+=m[o].swiperSlideSize,p+=1,a>s&&(u=!0))}else if(e==="current")for(let a=c+1;a=0;a-=1)S[c]-S[a]{S.complete&&x0(e,S)}),e.updateSize(),e.updateSlides(),e.updateProgress(),e.updateSlidesClasses();function l(){const S=e.rtlTranslate?e.translate*-1:e.translate,g=Math.min(Math.max(S,e.maxTranslate()),e.minTranslate());e.setTranslate(g),e.updateActiveIndex(),e.updateSlidesClasses()}let m;if(r.freeMode&&r.freeMode.enabled&&!r.cssMode)l(),r.autoHeight&&e.updateAutoHeight();else{if((r.slidesPerView==="auto"||r.slidesPerView>1)&&e.isEnd&&!r.centeredSlides){const S=e.virtual&&r.virtual.enabled?e.virtual.slides:e.slides;m=e.slideTo(S.length-1,0,!1,!0)}else m=e.slideTo(e.activeIndex,0,!1,!0);m||l()}r.watchOverflow&&n!==e.snapGrid&&e.checkOverflow(),e.emit("update")}changeDirection(e,n){n===void 0&&(n=!0);const r=this,l=r.params.direction;return e||(e=l==="horizontal"?"vertical":"horizontal"),e===l||e!=="horizontal"&&e!=="vertical"||(r.el.classList.remove(`${r.params.containerModifierClass}${l}`),r.el.classList.add(`${r.params.containerModifierClass}${e}`),r.emitContainerClasses(),r.params.direction=e,r.slides.forEach(m=>{e==="vertical"?m.style.width="":m.style.height=""}),r.emit("changeDirection"),n&&r.update()),r}changeLanguageDirection(e){const n=this;n.rtl&&e==="rtl"||!n.rtl&&e==="ltr"||(n.rtl=e==="rtl",n.rtlTranslate=n.params.direction==="horizontal"&&n.rtl,n.rtl?(n.el.classList.add(`${n.params.containerModifierClass}rtl`),n.el.dir="rtl"):(n.el.classList.remove(`${n.params.containerModifierClass}rtl`),n.el.dir="ltr"),n.update())}mount(e){const n=this;if(n.mounted)return!0;let r=e||n.params.el;if(typeof r=="string"&&(r=document.querySelector(r)),!r)return!1;r.swiper=n,r.parentNode&&r.parentNode.host&&r.parentNode.host.nodeName==="SWIPER-CONTAINER"&&(n.isElement=!0);const l=()=>`.${(n.params.wrapperClass||"").trim().split(" ").join(".")}`;let S=(()=>r&&r.shadowRoot&&r.shadowRoot.querySelector?r.shadowRoot.querySelector(l()):lu(r,l())[0])();return!S&&n.params.createElements&&(S=ey("div",n.params.wrapperClass),r.append(S),lu(r,`.${n.params.slideClass}`).forEach(g=>{S.append(g)})),Object.assign(n,{el:r,wrapperEl:S,slidesEl:n.isElement&&!r.parentNode.host.slideSlots?r.parentNode.host:S,hostEl:n.isElement?r.parentNode.host:r,mounted:!0,rtl:r.dir.toLowerCase()==="rtl"||Qd(r,"direction")==="rtl",rtlTranslate:n.params.direction==="horizontal"&&(r.dir.toLowerCase()==="rtl"||Qd(r,"direction")==="rtl"),wrongRTL:Qd(S,"display")==="-webkit-box"}),!0}init(e){const n=this;if(n.initialized||n.mount(e)===!1)return n;n.emit("beforeInit"),n.params.breakpoints&&n.setBreakpoint(),n.addClasses(),n.updateSize(),n.updateSlides(),n.params.watchOverflow&&n.checkOverflow(),n.params.grabCursor&&n.enabled&&n.setGrabCursor(),n.params.loop&&n.virtual&&n.params.virtual.enabled?n.slideTo(n.params.initialSlide+n.virtual.slidesBefore,0,n.params.runCallbacksOnInit,!1,!0):n.slideTo(n.params.initialSlide,0,n.params.runCallbacksOnInit,!1,!0),n.params.loop&&n.loopCreate(),n.attachEvents();const l=[...n.el.querySelectorAll('[loading="lazy"]')];return n.isElement&&l.push(...n.hostEl.querySelectorAll('[loading="lazy"]')),l.forEach(m=>{m.complete?x0(n,m):m.addEventListener("load",S=>{x0(n,S.target)})}),$b(n),n.initialized=!0,$b(n),n.emit("init"),n.emit("afterInit"),n}destroy(e,n){e===void 0&&(e=!0),n===void 0&&(n=!0);const r=this,{params:l,el:m,wrapperEl:S,slides:g}=r;return typeof r.params>"u"||r.destroyed||(r.emit("beforeDestroy"),r.initialized=!1,r.detachEvents(),l.loop&&r.loopDestroy(),n&&(r.removeClasses(),m.removeAttribute("style"),S.removeAttribute("style"),g&&g.length&&g.forEach(s=>{s.classList.remove(l.slideVisibleClass,l.slideFullyVisibleClass,l.slideActiveClass,l.slideNextClass,l.slidePrevClass),s.removeAttribute("style"),s.removeAttribute("data-swiper-slide-index")})),r.emit("destroy"),Object.keys(r.eventsListeners).forEach(s=>{r.off(s)}),e!==!1&&(r.el.swiper=null,mA(r)),r.destroyed=!0),null}static extendDefaults(e){Ba(P1,e)}static get extendedDefaults(){return P1}static get defaults(){return Db}static installModule(e){po.prototype.__modules__||(po.prototype.__modules__=[]);const n=po.prototype.__modules__;typeof e=="function"&&n.indexOf(e)<0&&n.push(e)}static use(e){return Array.isArray(e)?(e.forEach(n=>po.installModule(n)),po):(po.installModule(e),po)}}Object.keys(E1).forEach(t=>{Object.keys(E1[t]).forEach(e=>{po.prototype[e]=E1[t][e]})});po.use([EA,PA]);const J2=["eventsPrefix","injectStyles","injectStylesUrls","modules","init","_direction","oneWayMovement","touchEventsTarget","initialSlide","_speed","cssMode","updateOnWindowResize","resizeObserver","nested","focusableElements","_enabled","_width","_height","preventInteractionOnTransition","userAgent","url","_edgeSwipeDetection","_edgeSwipeThreshold","_freeMode","_autoHeight","setWrapperSize","virtualTranslate","_effect","breakpoints","breakpointsBase","_spaceBetween","_slidesPerView","maxBackfaceHiddenSlides","_grid","_slidesPerGroup","_slidesPerGroupSkip","_slidesPerGroupAuto","_centeredSlides","_centeredSlidesBounds","_slidesOffsetBefore","_slidesOffsetAfter","normalizeSlideIndex","_centerInsufficientSlides","_watchOverflow","roundLengths","touchRatio","touchAngle","simulateTouch","_shortSwipes","_longSwipes","longSwipesRatio","longSwipesMs","_followFinger","allowTouchMove","_threshold","touchMoveStopPropagation","touchStartPreventDefault","touchStartForcePreventDefault","touchReleaseOnEdges","uniqueNavElements","_resistance","_resistanceRatio","_watchSlidesProgress","_grabCursor","preventClicks","preventClicksPropagation","_slideToClickedSlide","_loop","loopAdditionalSlides","loopAddBlankSlides","loopPreventsSliding","_rewind","_allowSlidePrev","_allowSlideNext","_swipeHandler","_noSwiping","noSwipingClass","noSwipingSelector","passiveListeners","containerModifierClass","slideClass","slideActiveClass","slideVisibleClass","slideFullyVisibleClass","slideNextClass","slidePrevClass","slideBlankClass","wrapperClass","lazyPreloaderClass","lazyPreloadPrevNext","runCallbacksOnInit","observer","observeParents","observeSlideChildren","a11y","_autoplay","_controller","coverflowEffect","cubeEffect","fadeEffect","flipEffect","creativeEffect","cardsEffect","hashNavigation","history","keyboard","mousewheel","_navigation","_pagination","parallax","_scrollbar","_thumbs","virtual","zoom","control"];function Zh(t){return typeof t=="object"&&t!==null&&t.constructor&&Object.prototype.toString.call(t).slice(8,-1)==="Object"&&!t.__swiper__}function sm(t,e){const n=["__proto__","constructor","prototype"];Object.keys(e).filter(r=>n.indexOf(r)<0).forEach(r=>{typeof t[r]>"u"?t[r]=e[r]:Zh(e[r])&&Zh(t[r])&&Object.keys(e[r]).length>0?e[r].__swiper__?t[r]=e[r]:sm(t[r],e[r]):t[r]=e[r]})}function Z2(t){return t===void 0&&(t={}),t.navigation&&typeof t.navigation.nextEl>"u"&&typeof t.navigation.prevEl>"u"}function eE(t){return t===void 0&&(t={}),t.pagination&&typeof t.pagination.el>"u"}function tE(t){return t===void 0&&(t={}),t.scrollbar&&typeof t.scrollbar.el>"u"}function nE(t){t===void 0&&(t="");const e=t.split(" ").map(r=>r.trim()).filter(r=>!!r),n=[];return e.forEach(r=>{n.indexOf(r)<0&&n.push(r)}),n.join(" ")}function FI(t){return t===void 0&&(t=""),t?t.includes("swiper-wrapper")?t:`swiper-wrapper ${t}`:"swiper-wrapper"}function $I(t){let{swiper:e,slides:n,passedParams:r,changedParams:l,nextEl:m,prevEl:S,scrollbarEl:g,paginationEl:s}=t;const c=l.filter(Q=>Q!=="children"&&Q!=="direction"&&Q!=="wrapperClass"),{params:p,pagination:a,navigation:u,scrollbar:o,virtual:_,thumbs:y}=e;let h,v,b,T,M,O,F,D;l.includes("thumbs")&&r.thumbs&&r.thumbs.swiper&&p.thumbs&&!p.thumbs.swiper&&(h=!0),l.includes("controller")&&r.controller&&r.controller.control&&p.controller&&!p.controller.control&&(v=!0),l.includes("pagination")&&r.pagination&&(r.pagination.el||s)&&(p.pagination||p.pagination===!1)&&a&&!a.el&&(b=!0),l.includes("scrollbar")&&r.scrollbar&&(r.scrollbar.el||g)&&(p.scrollbar||p.scrollbar===!1)&&o&&!o.el&&(T=!0),l.includes("navigation")&&r.navigation&&(r.navigation.prevEl||S)&&(r.navigation.nextEl||m)&&(p.navigation||p.navigation===!1)&&u&&!u.prevEl&&!u.nextEl&&(M=!0);const R=Q=>{!e[Q]||(e[Q].destroy(),Q==="navigation"?(e.isElement&&(e[Q].prevEl.remove(),e[Q].nextEl.remove()),p[Q].prevEl=void 0,p[Q].nextEl=void 0,e[Q].prevEl=void 0,e[Q].nextEl=void 0):(e.isElement&&e[Q].el.remove(),p[Q].el=void 0,e[Q].el=void 0))};l.includes("loop")&&e.isElement&&(p.loop&&!r.loop?O=!0:!p.loop&&r.loop?F=!0:D=!0),c.forEach(Q=>{if(Zh(p[Q])&&Zh(r[Q]))Object.assign(p[Q],r[Q]),(Q==="navigation"||Q==="pagination"||Q==="scrollbar")&&"enabled"in r[Q]&&!r[Q].enabled&&R(Q);else{const ie=r[Q];(ie===!0||ie===!1)&&(Q==="navigation"||Q==="pagination"||Q==="scrollbar")?ie===!1&&R(Q):p[Q]=r[Q]}}),c.includes("controller")&&!v&&e.controller&&e.controller.control&&p.controller&&p.controller.control&&(e.controller.control=p.controller.control),l.includes("children")&&n&&_&&p.virtual.enabled?(_.slides=n,_.update(!0)):l.includes("virtual")&&_&&p.virtual.enabled&&(n&&(_.slides=n),_.update(!0)),l.includes("children")&&n&&p.loop&&(D=!0),h&&y.init()&&y.update(!0),v&&(e.controller.control=p.controller.control),b&&(e.isElement&&(!s||typeof s=="string")&&(s=document.createElement("div"),s.classList.add("swiper-pagination"),s.part.add("pagination"),e.el.appendChild(s)),s&&(p.pagination.el=s),a.init(),a.render(),a.update()),T&&(e.isElement&&(!g||typeof g=="string")&&(g=document.createElement("div"),g.classList.add("swiper-scrollbar"),g.part.add("scrollbar"),e.el.appendChild(g)),g&&(p.scrollbar.el=g),o.init(),o.updateSize(),o.setTranslate()),M&&(e.isElement&&((!m||typeof m=="string")&&(m=document.createElement("div"),m.classList.add("swiper-button-next"),m.innerHTML=e.hostEl.constructor.nextButtonSvg,m.part.add("button-next"),e.el.appendChild(m)),(!S||typeof S=="string")&&(S=document.createElement("div"),S.classList.add("swiper-button-prev"),S.innerHTML=e.hostEl.constructor.prevButtonSvg,S.part.add("button-prev"),e.el.appendChild(S))),m&&(p.navigation.nextEl=m),S&&(p.navigation.prevEl=S),u.init(),u.update()),l.includes("allowSlideNext")&&(e.allowSlideNext=r.allowSlideNext),l.includes("allowSlidePrev")&&(e.allowSlidePrev=r.allowSlidePrev),l.includes("direction")&&e.changeDirection(r.direction,!1),(O||D)&&e.loopDestroy(),(F||D)&&e.loopCreate(),e.update()}function DI(t,e){t===void 0&&(t={}),e===void 0&&(e=!0);const n={on:{}},r={},l={};sm(n,Db),n._emitClasses=!0,n.init=!1;const m={},S=J2.map(s=>s.replace(/_/,"")),g=Object.assign({},t);return Object.keys(g).forEach(s=>{typeof t[s]>"u"||(S.indexOf(s)>=0?Zh(t[s])?(n[s]={},l[s]={},sm(n[s],t[s]),sm(l[s],t[s])):(n[s]=t[s],l[s]=t[s]):s.search(/on[A-Z]/)===0&&typeof t[s]=="function"?e?r[`${s[2].toLowerCase()}${s.substr(3)}`]=t[s]:n.on[`${s[2].toLowerCase()}${s.substr(3)}`]=t[s]:m[s]=t[s])}),["navigation","pagination","scrollbar"].forEach(s=>{n[s]===!0&&(n[s]={}),n[s]===!1&&delete n[s]}),{params:n,passedParams:l,rest:m,events:r}}function LI(t,e){let{el:n,nextEl:r,prevEl:l,paginationEl:m,scrollbarEl:S,swiper:g}=t;Z2(e)&&r&&l&&(g.params.navigation.nextEl=r,g.originalParams.navigation.nextEl=r,g.params.navigation.prevEl=l,g.originalParams.navigation.prevEl=l),eE(e)&&m&&(g.params.pagination.el=m,g.originalParams.pagination.el=m),tE(e)&&S&&(g.params.scrollbar.el=S,g.originalParams.scrollbar.el=S),g.init(n)}function RI(t,e,n,r,l){const m=[];if(!e)return m;const S=s=>{m.indexOf(s)<0&&m.push(s)};if(n&&r){const s=r.map(l),c=n.map(l);s.join("")!==c.join("")&&S("children"),r.length!==n.length&&S("children")}return J2.filter(s=>s[0]==="_").map(s=>s.replace(/_/,"")).forEach(s=>{if(s in t&&s in e)if(Zh(t[s])&&Zh(e[s])){const c=Object.keys(t[s]),p=Object.keys(e[s]);c.length!==p.length?S(s):(c.forEach(a=>{t[s][a]!==e[s][a]&&S(s)}),p.forEach(a=>{t[s][a]!==e[s][a]&&S(s)}))}else t[s]!==e[s]&&S(s)}),m}const zI=t=>{!t||t.destroyed||!t.params.virtual||t.params.virtual&&!t.params.virtual.enabled||(t.updateSlides(),t.updateProgress(),t.updateSlidesClasses(),t.parallax&&t.params.parallax&&t.params.parallax.enabled&&t.parallax.setTranslate())};function rE(t){return t.type&&t.type.displayName&&t.type.displayName.includes("SwiperSlide")}function iE(t){const e=[];return Gh.Children.toArray(t).forEach(n=>{rE(n)?e.push(n):n.props&&n.props.children&&iE(n.props.children).forEach(r=>e.push(r))}),e}function BI(t){const e=[],n={"container-start":[],"container-end":[],"wrapper-start":[],"wrapper-end":[]};return Gh.Children.toArray(t).forEach(r=>{if(rE(r))e.push(r);else if(r.props&&r.props.slot&&n[r.props.slot])n[r.props.slot].push(r);else if(r.props&&r.props.children){const l=iE(r.props.children);l.length>0?l.forEach(m=>e.push(m)):n["container-end"].push(r)}else n["container-end"].push(r)}),{slides:e,slots:n}}function NI(t,e,n){if(!n)return null;const r=p=>{let a=p;return p<0?a=e.length+p:a>=e.length&&(a=a-e.length),a},l=t.isHorizontal()?{[t.rtlTranslate?"right":"left"]:`${n.offset}px`}:{top:`${n.offset}px`},{from:m,to:S}=n,g=t.params.loop?-e.length:0,s=t.params.loop?e.length*2:e.length,c=[];for(let p=g;p=m&&p<=S&&c.push(e[r(p)]);return c.map((p,a)=>Gh.cloneElement(p,{swiper:t,style:l,key:`slide-${a}`}))}function $g(t,e){return typeof window>"u"?rr.exports.useEffect(t,e):rr.exports.useLayoutEffect(t,e)}const FT=rr.exports.createContext(null),jI=rr.exports.createContext(null),WI=rr.exports.forwardRef(function(t,e){let{className:n,tag:r="div",wrapperTag:l="div",children:m,onSwiper:S,...g}=t===void 0?{}:t,s=!1;const[c,p]=rr.exports.useState("swiper"),[a,u]=rr.exports.useState(null),[o,_]=rr.exports.useState(!1),y=rr.exports.useRef(!1),h=rr.exports.useRef(null),v=rr.exports.useRef(null),b=rr.exports.useRef(null),T=rr.exports.useRef(null),M=rr.exports.useRef(null),O=rr.exports.useRef(null),F=rr.exports.useRef(null),D=rr.exports.useRef(null),{params:R,passedParams:Q,rest:ie,events:pe}=DI(g),{slides:ke,slots:Te}=BI(m),Re=()=>{_(!o)};Object.assign(R.on,{_containerClasses(W,K){p(K)}});const ze=()=>{Object.assign(R.on,pe),s=!0;const W={...R};if(delete W.wrapperClass,v.current=new po(W),v.current.virtual&&v.current.params.virtual.enabled){v.current.virtual.slides=ke;const K={cache:!1,slides:ke,renderExternal:u,renderExternalUpdate:!1};sm(v.current.params.virtual,K),sm(v.current.originalParams.virtual,K)}};h.current||ze(),v.current&&v.current.on("_beforeBreakpoint",Re);const Ze=()=>{s||!pe||!v.current||Object.keys(pe).forEach(W=>{v.current.on(W,pe[W])})},Ie=()=>{!pe||!v.current||Object.keys(pe).forEach(W=>{v.current.off(W,pe[W])})};rr.exports.useEffect(()=>()=>{v.current&&v.current.off("_beforeBreakpoint",Re)}),rr.exports.useEffect(()=>{!y.current&&v.current&&(v.current.emitSlidesClasses(),y.current=!0)}),$g(()=>{if(e&&(e.current=h.current),!!h.current)return v.current.destroyed&&ze(),LI({el:h.current,nextEl:M.current,prevEl:O.current,paginationEl:F.current,scrollbarEl:D.current,swiper:v.current},R),S&&S(v.current),()=>{v.current&&!v.current.destroyed&&v.current.destroy(!0,!1)}},[]),$g(()=>{Ze();const W=RI(Q,b.current,ke,T.current,K=>K.key);return b.current=Q,T.current=ke,W.length&&v.current&&!v.current.destroyed&&$I({swiper:v.current,slides:ke,passedParams:Q,changedParams:W,nextEl:M.current,prevEl:O.current,scrollbarEl:D.current,paginationEl:F.current}),()=>{Ie()}}),$g(()=>{zI(v.current)},[a]);function ee(){return R.virtual?NI(v.current,ke,a):ke.map((W,K)=>Gh.cloneElement(W,{swiper:v.current,swiperSlideIndex:K}))}return Lr(r,{ref:h,className:nE(`${c}${n?` ${n}`:""}`),...ie,children:rl(jI.Provider,{value:v.current,children:[Te["container-start"],rl(l,{className:FI(R.wrapperClass),children:[Te["wrapper-start"],ee(),Te["wrapper-end"]]}),Z2(R)&&rl(fA,{children:[Lr("div",{ref:O,className:"swiper-button-prev"}),Lr("div",{ref:M,className:"swiper-button-next"})]}),tE(R)&&Lr("div",{ref:D,className:"swiper-scrollbar"}),eE(R)&&Lr("div",{ref:F,className:"swiper-pagination"}),Te["container-end"]]})})});WI.displayName="Swiper";const VI=rr.exports.forwardRef(function(t,e){let{tag:n="div",children:r,className:l="",swiper:m,zoom:S,lazy:g,virtualIndex:s,swiperSlideIndex:c,...p}=t===void 0?{}:t;const a=rr.exports.useRef(null),[u,o]=rr.exports.useState("swiper-slide"),[_,y]=rr.exports.useState(!1);function h(M,O,F){O===a.current&&o(F)}$g(()=>{if(typeof c<"u"&&(a.current.swiperSlideIndex=c),e&&(e.current=a.current),!(!a.current||!m)){if(m.destroyed){u!=="swiper-slide"&&o("swiper-slide");return}return m.on("_slideClass",h),()=>{!m||m.off("_slideClass",h)}}}),$g(()=>{m&&a.current&&!m.destroyed&&o(m.getSlideClasses(a.current))},[m]);const v={isActive:u.indexOf("swiper-slide-active")>=0,isVisible:u.indexOf("swiper-slide-visible")>=0,isPrev:u.indexOf("swiper-slide-prev")>=0,isNext:u.indexOf("swiper-slide-next")>=0},b=()=>typeof r=="function"?r(v):r,T=()=>{y(!0)};return rl(n,{ref:a,className:nE(`${u}${l?` ${l}`:""}`),"data-swiper-slide-index":s,onLoad:T,...p,children:[S&&Lr(FT.Provider,{value:v,children:rl("div",{className:"swiper-zoom-container","data-swiper-zoom":typeof S=="number"?S:void 0,children:[b(),g&&!_&&Lr("div",{className:"swiper-lazy-preloader"})]})}),!S&&rl(FT.Provider,{value:v,children:[b(),g&&!_&&Lr("div",{className:"swiper-lazy-preloader"})]})]})});VI.displayName="SwiperSlide";const ny={x:0,y:0,width:0,height:0,unit:"px"},Dp=(t,e,n)=>Math.min(Math.max(t,e),n),UI=(...t)=>t.filter(e=>e&&typeof e=="string").join(" "),$T=(t,e)=>t===e||t.width===e.width&&t.height===e.height&&t.x===e.x&&t.y===e.y&&t.unit===e.unit;function Lp(t,e,n){return t.unit==="%"?{...ny,...t,unit:"%"}:{unit:"%",x:t.x?t.x/e*100:0,y:t.y?t.y/n*100:0,width:t.width?t.width/e*100:0,height:t.height?t.height/n*100:0}}function Wd(t,e,n){return t.unit?t.unit==="px"?{...ny,...t,unit:"px"}:{unit:"px",x:t.x?t.x*e/100:0,y:t.y?t.y*n/100:0,width:t.width?t.width*e/100:0,height:t.height?t.height*n/100:0}:{...ny,...t,unit:"px"}}function DT(t,e,n,r,l,m=0,S=0,g=r,s=l){const c={...t};let p=Math.min(m,r),a=Math.min(S,l),u=Math.min(g,r),o=Math.min(s,l);e&&(e>1?(p=S?S*e:p,a=p/e,u=g*e):(a=m?m/e:a,p=a*e,o=s/e)),c.y<0&&(c.height=Math.max(c.height+c.y,a),c.y=0),c.x<0&&(c.width=Math.max(c.width+c.x,p),c.x=0);const _=r-(c.x+c.width);_<0&&(c.x=Math.min(c.x,r-p),c.width+=_);const y=l-(c.y+c.height);if(y<0&&(c.y=Math.min(c.y,l-a),c.height+=y),c.widthu&&((n==="sw"||n=="nw")&&(c.x-=u-c.width),c.width=u),c.height>o&&((n==="nw"||n=="ne")&&(c.y-=o-c.height),c.height=o),e){const h=c.width/c.height;if(he){const v=Math.max(c.height*e,p);(n==="sw"||n=="nw")&&(c.x-=v-c.width),c.width=v}}return c}function GI(t,e,n,r){const l={...t};return e==="ArrowLeft"?r==="nw"?(l.x-=n,l.y-=n,l.width+=n,l.height+=n):r==="w"?(l.x-=n,l.width+=n):r==="sw"?(l.x-=n,l.width+=n,l.height+=n):r==="ne"?(l.y+=n,l.width-=n,l.height-=n):r==="e"?l.width-=n:r==="se"&&(l.width-=n,l.height-=n):e==="ArrowRight"&&(r==="nw"?(l.x+=n,l.y+=n,l.width-=n,l.height-=n):r==="w"?(l.x+=n,l.width-=n):r==="sw"?(l.x+=n,l.width-=n,l.height-=n):r==="ne"?(l.y-=n,l.width+=n,l.height+=n):r==="e"?l.width+=n:r==="se"&&(l.width+=n,l.height+=n)),e==="ArrowUp"?r==="nw"?(l.x-=n,l.y-=n,l.width+=n,l.height+=n):r==="n"?(l.y-=n,l.height+=n):r==="ne"?(l.y-=n,l.width+=n,l.height+=n):r==="sw"?(l.x+=n,l.width-=n,l.height-=n):r==="s"?l.height-=n:r==="se"&&(l.width-=n,l.height-=n):e==="ArrowDown"&&(r==="nw"?(l.x+=n,l.y+=n,l.width-=n,l.height-=n):r==="n"?(l.y+=n,l.height-=n):r==="ne"?(l.y+=n,l.width-=n,l.height-=n):r==="sw"?(l.x-=n,l.width+=n,l.height+=n):r==="s"?l.height+=n:r==="se"&&(l.width+=n,l.height+=n)),l}const Rp={capture:!0,passive:!1};let HI=0;const Ud=class Jo extends rr.exports.PureComponent{constructor(){super(...arguments),this.docMoveBound=!1,this.mouseDownOnCrop=!1,this.dragStarted=!1,this.evData={startClientX:0,startClientY:0,startCropX:0,startCropY:0,clientX:0,clientY:0,isResize:!0},this.componentRef=rr.exports.createRef(),this.mediaRef=rr.exports.createRef(),this.initChangeCalled=!1,this.instanceId=`rc-${HI++}`,this.state={cropIsActive:!1,newCropIsBeingDrawn:!1},this.onCropPointerDown=e=>{const{crop:n,disabled:r}=this.props,l=this.getBox();if(!n)return;const m=Wd(n,l.width,l.height);if(r)return;e.cancelable&&e.preventDefault(),this.bindDocMove(),this.componentRef.current.focus({preventScroll:!0});const S=e.target.dataset.ord,g=!!S;let s=e.clientX,c=e.clientY,p=m.x,a=m.y;if(S){const u=e.clientX-l.x,o=e.clientY-l.y;let _=0,y=0;S==="ne"||S=="e"?(_=u-(m.x+m.width),y=o-m.y,p=m.x,a=m.y+m.height):S==="se"||S==="s"?(_=u-(m.x+m.width),y=o-(m.y+m.height),p=m.x,a=m.y):S==="sw"||S=="w"?(_=u-m.x,y=o-(m.y+m.height),p=m.x+m.width,a=m.y):(S==="nw"||S=="n")&&(_=u-m.x,y=o-m.y,p=m.x+m.width,a=m.y+m.height),s=p+l.x+_,c=a+l.y+y}this.evData={startClientX:s,startClientY:c,startCropX:p,startCropY:a,clientX:e.clientX,clientY:e.clientY,isResize:g,ord:S},this.mouseDownOnCrop=!0,this.setState({cropIsActive:!0})},this.onComponentPointerDown=e=>{const{crop:n,disabled:r,locked:l,keepSelection:m,onChange:S}=this.props,g=this.getBox();if(r||l||m&&n)return;e.cancelable&&e.preventDefault(),this.bindDocMove(),this.componentRef.current.focus({preventScroll:!0});const s=e.clientX-g.x,c=e.clientY-g.y,p={unit:"px",x:s,y:c,width:0,height:0};this.evData={startClientX:e.clientX,startClientY:e.clientY,startCropX:s,startCropY:c,clientX:e.clientX,clientY:e.clientY,isResize:!0},this.mouseDownOnCrop=!0,S(Wd(p,g.width,g.height),Lp(p,g.width,g.height)),this.setState({cropIsActive:!0,newCropIsBeingDrawn:!0})},this.onDocPointerMove=e=>{const{crop:n,disabled:r,onChange:l,onDragStart:m}=this.props,S=this.getBox();if(r||!n||!this.mouseDownOnCrop)return;e.cancelable&&e.preventDefault(),this.dragStarted||(this.dragStarted=!0,m&&m(e));const{evData:g}=this;g.clientX=e.clientX,g.clientY=e.clientY;let s;g.isResize?s=this.resizeCrop():s=this.dragCrop(),$T(n,s)||l(Wd(s,S.width,S.height),Lp(s,S.width,S.height))},this.onComponentKeyDown=e=>{const{crop:n,disabled:r,onChange:l,onComplete:m}=this.props;if(r)return;const S=e.key;let g=!1;if(!n)return;const s=this.getBox(),c=this.makePixelCrop(s),p=(navigator.platform.match("Mac")?e.metaKey:e.ctrlKey)?Jo.nudgeStepLarge:e.shiftKey?Jo.nudgeStepMedium:Jo.nudgeStep;if(S==="ArrowLeft"?(c.x-=p,g=!0):S==="ArrowRight"?(c.x+=p,g=!0):S==="ArrowUp"?(c.y-=p,g=!0):S==="ArrowDown"&&(c.y+=p,g=!0),g){e.cancelable&&e.preventDefault(),c.x=Dp(c.x,0,s.width-c.width),c.y=Dp(c.y,0,s.height-c.height);const a=Wd(c,s.width,s.height),u=Lp(c,s.width,s.height);l(a,u),m&&m(a,u)}},this.onHandlerKeyDown=(e,n)=>{const{aspect:r=0,crop:l,disabled:m,minWidth:S=0,minHeight:g=0,maxWidth:s,maxHeight:c,onChange:p,onComplete:a}=this.props,u=this.getBox();if(m||!l)return;if(e.key==="ArrowUp"||e.key==="ArrowDown"||e.key==="ArrowLeft"||e.key==="ArrowRight")e.stopPropagation(),e.preventDefault();else return;const o=(navigator.platform.match("Mac")?e.metaKey:e.ctrlKey)?Jo.nudgeStepLarge:e.shiftKey?Jo.nudgeStepMedium:Jo.nudgeStep,_=Wd(l,u.width,u.height),y=GI(_,e.key,o,n),h=DT(y,r,n,u.width,u.height,S,g,s,c);if(!$T(l,h)){const v=Lp(h,u.width,u.height);p(h,v),a&&a(h,v)}},this.onDocPointerDone=e=>{const{crop:n,disabled:r,onComplete:l,onDragEnd:m}=this.props,S=this.getBox();this.unbindDocMove(),!(r||!n)&&this.mouseDownOnCrop&&(this.mouseDownOnCrop=!1,this.dragStarted=!1,m&&m(e),l&&l(Wd(n,S.width,S.height),Lp(n,S.width,S.height)),this.setState({cropIsActive:!1,newCropIsBeingDrawn:!1}))},this.onDragFocus=()=>{var e;(e=this.componentRef.current)==null||e.scrollTo(0,0)}}get document(){return document}getBox(){const e=this.mediaRef.current;if(!e)return{x:0,y:0,width:0,height:0};const{x:n,y:r,width:l,height:m}=e.getBoundingClientRect();return{x:n,y:r,width:l,height:m}}componentDidUpdate(e){const{crop:n,onComplete:r}=this.props;if(r&&!e.crop&&n){const{width:l,height:m}=this.getBox();l&&m&&r(Wd(n,l,m),Lp(n,l,m))}}componentWillUnmount(){this.resizeObserver&&this.resizeObserver.disconnect(),this.unbindDocMove()}bindDocMove(){this.docMoveBound||(this.document.addEventListener("pointermove",this.onDocPointerMove,Rp),this.document.addEventListener("pointerup",this.onDocPointerDone,Rp),this.document.addEventListener("pointercancel",this.onDocPointerDone,Rp),this.docMoveBound=!0)}unbindDocMove(){this.docMoveBound&&(this.document.removeEventListener("pointermove",this.onDocPointerMove,Rp),this.document.removeEventListener("pointerup",this.onDocPointerDone,Rp),this.document.removeEventListener("pointercancel",this.onDocPointerDone,Rp),this.docMoveBound=!1)}getCropStyle(){const{crop:e}=this.props;if(e)return{top:`${e.y}${e.unit}`,left:`${e.x}${e.unit}`,width:`${e.width}${e.unit}`,height:`${e.height}${e.unit}`}}dragCrop(){const{evData:e}=this,n=this.getBox(),r=this.makePixelCrop(n),l=e.clientX-e.startClientX,m=e.clientY-e.startClientY;return r.x=Dp(e.startCropX+l,0,n.width-r.width),r.y=Dp(e.startCropY+m,0,n.height-r.height),r}getPointRegion(e,n,r,l){const{evData:m}=this,S=m.clientX-e.x,g=m.clientY-e.y;let s;l&&n?s=n==="nw"||n==="n"||n==="ne":s=g1?m?[m,m/n]:[S*n,S]:S?[S*n,S]:[m,m/n]}resizeCrop(){const{evData:e}=this,{aspect:n=0,maxWidth:r,maxHeight:l}=this.props,m=this.getBox(),[S,g]=this.resolveMinDimensions(m,n,this.props.minWidth,this.props.minHeight);let s=this.makePixelCrop(m);const c=this.getPointRegion(m,e.ord,S,g),p=e.ord||c;let a=e.clientX-e.startClientX,u=e.clientY-e.startClientY;(S&&p==="nw"||p==="w"||p==="sw")&&(a=Math.min(a,-S)),(g&&p==="nw"||p==="n"||p==="ne")&&(u=Math.min(u,-g));const o={unit:"px",x:0,y:0,width:0,height:0};c==="ne"?(o.x=e.startCropX,o.width=a,n?(o.height=o.width/n,o.y=e.startCropY-o.height):(o.height=Math.abs(u),o.y=e.startCropY-o.height)):c==="se"?(o.x=e.startCropX,o.y=e.startCropY,o.width=a,n?o.height=o.width/n:o.height=u):c==="sw"?(o.x=e.startCropX+a,o.y=e.startCropY,o.width=Math.abs(a),n?o.height=o.width/n:o.height=u):c==="nw"&&(o.x=e.startCropX+a,o.width=Math.abs(a),n?(o.height=o.width/n,o.y=e.startCropY-o.height):(o.height=Math.abs(u),o.y=e.startCropY+u));const _=DT(o,n,c,m.width,m.height,S,g,r,l);return n||Jo.xyOrds.indexOf(p)>-1?s=_:Jo.xOrds.indexOf(p)>-1?(s.x=_.x,s.width=_.width):Jo.yOrds.indexOf(p)>-1&&(s.y=_.y,s.height=_.height),s.x=Dp(s.x,0,m.width-s.width),s.y=Dp(s.y,0,m.height-s.height),s}renderCropSelection(){const{ariaLabels:e=Jo.defaultProps.ariaLabels,disabled:n,locked:r,renderSelectionAddon:l,ruleOfThirds:m,crop:S}=this.props,g=this.getCropStyle();if(S)return rl("div",{style:g,className:"ReactCrop__crop-selection",onPointerDown:this.onCropPointerDown,"aria-label":e.cropArea,tabIndex:0,onKeyDown:this.onComponentKeyDown,role:"group",children:[!n&&!r&&rl("div",{className:"ReactCrop__drag-elements",onFocus:this.onDragFocus,children:[Lr("div",{className:"ReactCrop__drag-bar ord-n","data-ord":"n"}),Lr("div",{className:"ReactCrop__drag-bar ord-e","data-ord":"e"}),Lr("div",{className:"ReactCrop__drag-bar ord-s","data-ord":"s"}),Lr("div",{className:"ReactCrop__drag-bar ord-w","data-ord":"w"}),Lr("div",{className:"ReactCrop__drag-handle ord-nw","data-ord":"nw",tabIndex:0,"aria-label":e.nwDragHandle,onKeyDown:s=>this.onHandlerKeyDown(s,"nw"),role:"button"}),Lr("div",{className:"ReactCrop__drag-handle ord-n","data-ord":"n",tabIndex:0,"aria-label":e.nDragHandle,onKeyDown:s=>this.onHandlerKeyDown(s,"n"),role:"button"}),Lr("div",{className:"ReactCrop__drag-handle ord-ne","data-ord":"ne",tabIndex:0,"aria-label":e.neDragHandle,onKeyDown:s=>this.onHandlerKeyDown(s,"ne"),role:"button"}),Lr("div",{className:"ReactCrop__drag-handle ord-e","data-ord":"e",tabIndex:0,"aria-label":e.eDragHandle,onKeyDown:s=>this.onHandlerKeyDown(s,"e"),role:"button"}),Lr("div",{className:"ReactCrop__drag-handle ord-se","data-ord":"se",tabIndex:0,"aria-label":e.seDragHandle,onKeyDown:s=>this.onHandlerKeyDown(s,"se"),role:"button"}),Lr("div",{className:"ReactCrop__drag-handle ord-s","data-ord":"s",tabIndex:0,"aria-label":e.sDragHandle,onKeyDown:s=>this.onHandlerKeyDown(s,"s"),role:"button"}),Lr("div",{className:"ReactCrop__drag-handle ord-sw","data-ord":"sw",tabIndex:0,"aria-label":e.swDragHandle,onKeyDown:s=>this.onHandlerKeyDown(s,"sw"),role:"button"}),Lr("div",{className:"ReactCrop__drag-handle ord-w","data-ord":"w",tabIndex:0,"aria-label":e.wDragHandle,onKeyDown:s=>this.onHandlerKeyDown(s,"w"),role:"button"})]}),l&&Lr("div",{className:"ReactCrop__selection-addon",onPointerDown:s=>s.stopPropagation(),children:l(this.state)}),m&&Gh.createElement(Gh.Fragment,null,Lr("div",{className:"ReactCrop__rule-of-thirds-hz"}),Lr("div",{className:"ReactCrop__rule-of-thirds-vt"}))]})}makePixelCrop(e){const n={...ny,...this.props.crop||{}};return Wd(n,e.width,e.height)}render(){const{aspect:e,children:n,circularCrop:r,className:l,crop:m,disabled:S,locked:g,style:s,ruleOfThirds:c}=this.props,{cropIsActive:p,newCropIsBeingDrawn:a}=this.state,u=m?this.renderCropSelection():null,o=UI("ReactCrop",l,p&&"ReactCrop--active",S&&"ReactCrop--disabled",g&&"ReactCrop--locked",a&&"ReactCrop--new-crop",m&&e&&"ReactCrop--fixed-aspect",m&&r&&"ReactCrop--circular-crop",m&&c&&"ReactCrop--rule-of-thirds",!this.dragStarted&&m&&!m.width&&!m.height&&"ReactCrop--invisible-crop",r&&"ReactCrop--no-animate");return rl("div",{ref:this.componentRef,className:o,style:s,children:[Lr("div",{ref:this.mediaRef,className:"ReactCrop__child-wrapper",onPointerDown:this.onComponentPointerDown,children:n}),m?rl("svg",{className:"ReactCrop__crop-mask",width:"100%",height:"100%",children:[Lr("defs",{children:rl("mask",{id:`hole-${this.instanceId}`,children:[Lr("rect",{width:"100%",height:"100%",fill:"white"}),r?Lr("ellipse",{cx:`${m.x+m.width/2}${m.unit}`,cy:`${m.y+m.height/2}${m.unit}`,rx:`${m.width/2}${m.unit}`,ry:`${m.height/2}${m.unit}`,fill:"black"}):Lr("rect",{x:`${m.x}${m.unit}`,y:`${m.y}${m.unit}`,width:`${m.width}${m.unit}`,height:`${m.height}${m.unit}`,fill:"black"})]})}),Lr("rect",{fill:"black",fillOpacity:.5,width:"100%",height:"100%",mask:`url(#hole-${this.instanceId})`})]}):void 0,u]})}};Ud.xOrds=["e","w"],Ud.yOrds=["n","s"],Ud.xyOrds=["nw","ne","se","sw"],Ud.nudgeStep=1,Ud.nudgeStepMedium=10,Ud.nudgeStepLarge=100,Ud.defaultProps={ariaLabels:{cropArea:"Use the arrow keys to move the crop selection area",nwDragHandle:"Use the arrow keys to move the north west drag handle to change the crop selection area",nDragHandle:"Use the up and down arrow keys to move the north drag handle to change the crop selection area",neDragHandle:"Use the arrow keys to move the north east drag handle to change the crop selection area",eDragHandle:"Use the up and down arrow keys to move the east drag handle to change the crop selection area",seDragHandle:"Use the arrow keys to move the south east drag handle to change the crop selection area",sDragHandle:"Use the up and down arrow keys to move the south drag handle to change the crop selection area",swDragHandle:"Use the arrow keys to move the south west drag handle to change the crop selection area",wDragHandle:"Use the up and down arrow keys to move the west drag handle to change the crop selection area"}};let BF=Ud;var sE={"./node_modules/onnxruntime-web/dist/ort-wasm-simd-threaded.jsep.wasm":(t,e,n)=>{t.exports=n.p+"ort-wasm-simd-threaded.jsep.wasm"},"?2ce3":()=>{},"?7a2c":()=>{},"?a42a":()=>{},"?2b25":()=>{},"?569f":()=>{},"?3f59":()=>{},"?154a":()=>{},"./node_modules/@huggingface/jinja/dist/index.js":(t,e,n)=>{n.r(e),n.d(e,{Environment:()=>De,Interpreter:()=>Ge,Template:()=>ct,parse:()=>K,tokenize:()=>a});var r=Object.freeze({Text:"Text",NumericLiteral:"NumericLiteral",BooleanLiteral:"BooleanLiteral",StringLiteral:"StringLiteral",Identifier:"Identifier",Equals:"Equals",OpenParen:"OpenParen",CloseParen:"CloseParen",OpenStatement:"OpenStatement",CloseStatement:"CloseStatement",OpenExpression:"OpenExpression",CloseExpression:"CloseExpression",OpenSquareBracket:"OpenSquareBracket",CloseSquareBracket:"CloseSquareBracket",OpenCurlyBracket:"OpenCurlyBracket",CloseCurlyBracket:"CloseCurlyBracket",Comma:"Comma",Dot:"Dot",Colon:"Colon",Pipe:"Pipe",CallOperator:"CallOperator",AdditiveBinaryOperator:"AdditiveBinaryOperator",MultiplicativeBinaryOperator:"MultiplicativeBinaryOperator",ComparisonBinaryOperator:"ComparisonBinaryOperator",UnaryOperator:"UnaryOperator",Set:"Set",If:"If",For:"For",In:"In",Is:"Is",NotIn:"NotIn",Else:"Else",EndIf:"EndIf",ElseIf:"ElseIf",EndFor:"EndFor",And:"And",Or:"Or",Not:"UnaryOperator",Macro:"Macro",EndMacro:"EndMacro"}),l=Object.freeze({set:r.Set,for:r.For,in:r.In,is:r.Is,if:r.If,else:r.Else,endif:r.EndIf,elif:r.ElseIf,endfor:r.EndFor,and:r.And,or:r.Or,not:r.Not,"not in":r.NotIn,macro:r.Macro,endmacro:r.EndMacro,true:r.BooleanLiteral,false:r.BooleanLiteral,True:r.BooleanLiteral,False:r.BooleanLiteral}),m=class{constructor(J,_e){this.value=J,this.type=_e}};function S(J){return/\w/.test(J)}function g(J){return/[0-9]/.test(J)}var s=[["{%",r.OpenStatement],["%}",r.CloseStatement],["{{",r.OpenExpression],["}}",r.CloseExpression],["(",r.OpenParen],[")",r.CloseParen],["{",r.OpenCurlyBracket],["}",r.CloseCurlyBracket],["[",r.OpenSquareBracket],["]",r.CloseSquareBracket],[",",r.Comma],[".",r.Dot],[":",r.Colon],["|",r.Pipe],["<=",r.ComparisonBinaryOperator],[">=",r.ComparisonBinaryOperator],["==",r.ComparisonBinaryOperator],["!=",r.ComparisonBinaryOperator],["<",r.ComparisonBinaryOperator],[">",r.ComparisonBinaryOperator],["+",r.AdditiveBinaryOperator],["-",r.AdditiveBinaryOperator],["*",r.MultiplicativeBinaryOperator],["/",r.MultiplicativeBinaryOperator],["%",r.MultiplicativeBinaryOperator],["=",r.Equals]],c=new Map([["n",` +`],["t"," "],["r","\r"],["b","\b"],["f","\f"],["v","\v"],["'","'"],['"','"'],["\\","\\"]]);function p(J,_e={}){return J.endsWith(` +`)&&(J=J.slice(0,-1)),J=J.replace(/{#.*?#}/gs,"{##}"),_e.lstrip_blocks&&(J=J.replace(/^[ \t]*({[#%])/gm,"$1")),_e.trim_blocks&&(J=J.replace(/([#%]})\n/g,"$1")),J.replace(/{##}/g,"").replace(/-%}\s*/g,"%}").replace(/\s*{%-/g,"{%").replace(/-}}\s*/g,"}}").replace(/\s*{{-/g,"{{")}function a(J,_e={}){var wt,Xt,Ft;const G=[],Pe=p(J,_e);let We=0;const ht=jt=>{let Qt="";for(;jt(Pe[We]);){if(Pe[We]==="\\"){if(++We,We>=Pe.length)throw new SyntaxError("Unexpected end of input");const Mt=Pe[We++],Zt=c.get(Mt);if(Zt===void 0)throw new SyntaxError(`Unexpected escaped character: ${Mt}`);Qt+=Zt;continue}if(Qt+=Pe[We++],We>=Pe.length)throw new SyntaxError("Unexpected end of input")}return Qt};e:for(;We0){G.push(new m(Mt,r.Text));continue}}ht(Mt=>/\s/.test(Mt));const Qt=Pe[We];if(Qt==="-"||Qt==="+"){const Mt=(Xt=G.at(-1))==null?void 0:Xt.type;if(Mt===r.Text||Mt===void 0)throw new SyntaxError(`Unexpected character: ${Qt}`);switch(Mt){case r.Identifier:case r.NumericLiteral:case r.BooleanLiteral:case r.StringLiteral:case r.CloseParen:case r.CloseSquareBracket:break;default:{++We;const Zt=ht(g);G.push(new m(`${Qt}${Zt}`,Zt.length>0?r.NumericLiteral:r.UnaryOperator));continue}}}for(const[Mt,Zt]of s)if(Pe.slice(We,We+Mt.length)===Mt){G.push(new m(Mt,Zt)),We+=Mt.length;continue e}if(Qt==="'"||Qt==='"'){++We;const Mt=ht(Zt=>Zt!==Qt);G.push(new m(Mt,r.StringLiteral)),++We;continue}if(g(Qt)){const Mt=ht(g);G.push(new m(Mt,r.NumericLiteral));continue}if(S(Qt)){const Mt=ht(S),Zt=Object.hasOwn(l,Mt)?l[Mt]:r.Identifier;Zt===r.In&&((Ft=G.at(-1))==null?void 0:Ft.type)===r.Not?(G.pop(),G.push(new m("not in",r.NotIn))):G.push(new m(Mt,Zt));continue}throw new SyntaxError(`Unexpected character: ${Qt}`)}return G}var u=class{constructor(){ut(this,"type","Statement")}},o=class extends u{constructor(_e){super();ut(this,"type","Program");this.body=_e}},_=class extends u{constructor(_e,G,Pe){super();ut(this,"type","If");this.test=_e,this.body=G,this.alternate=Pe}},y=class extends u{constructor(_e,G,Pe,We){super();ut(this,"type","For");this.loopvar=_e,this.iterable=G,this.body=Pe,this.defaultBlock=We}},h=class extends u{constructor(_e,G){super();ut(this,"type","Set");this.assignee=_e,this.value=G}},v=class extends u{constructor(_e,G,Pe){super();ut(this,"type","Macro");this.name=_e,this.args=G,this.body=Pe}},b=class extends u{constructor(){super(...arguments);ut(this,"type","Expression")}},T=class extends b{constructor(_e,G,Pe){super();ut(this,"type","MemberExpression");this.object=_e,this.property=G,this.computed=Pe}},M=class extends b{constructor(_e,G){super();ut(this,"type","CallExpression");this.callee=_e,this.args=G}},O=class extends b{constructor(_e){super();ut(this,"type","Identifier");this.value=_e}},F=class extends b{constructor(_e){super();ut(this,"type","Literal");this.value=_e}},D=class extends F{constructor(){super(...arguments);ut(this,"type","NumericLiteral")}},R=class extends F{constructor(){super(...arguments);ut(this,"type","StringLiteral")}},Q=class extends F{constructor(){super(...arguments);ut(this,"type","BooleanLiteral")}},ie=class extends F{constructor(){super(...arguments);ut(this,"type","ArrayLiteral")}},pe=class extends F{constructor(){super(...arguments);ut(this,"type","TupleLiteral")}},ke=class extends F{constructor(){super(...arguments);ut(this,"type","ObjectLiteral")}},Te=class extends b{constructor(_e,G,Pe){super();ut(this,"type","BinaryExpression");this.operator=_e,this.left=G,this.right=Pe}},Re=class extends b{constructor(_e,G){super();ut(this,"type","FilterExpression");this.operand=_e,this.filter=G}},ze=class extends b{constructor(_e,G){super();ut(this,"type","SelectExpression");this.iterable=_e,this.test=G}},Ze=class extends b{constructor(_e,G,Pe){super();ut(this,"type","TestExpression");this.operand=_e,this.negate=G,this.test=Pe}},Ie=class extends b{constructor(_e,G){super();ut(this,"type","UnaryExpression");this.operator=_e,this.argument=G}},ee=class extends b{constructor(_e=void 0,G=void 0,Pe=void 0){super();ut(this,"type","SliceExpression");this.start=_e,this.stop=G,this.step=Pe}},W=class extends b{constructor(_e,G){super();ut(this,"type","KeywordArgumentExpression");this.key=_e,this.value=G}};function K(J){const _e=new o([]);let G=0;function Pe(it,Et){const Lt=J[G++];if(!Lt||Lt.type!==it)throw new Error(`Parser Error: ${Et}. ${Lt.type} !== ${it}.`);return Lt}function We(){switch(J[G].type){case r.Text:return Xt();case r.OpenStatement:return Ft();case r.OpenExpression:return jt();default:throw new SyntaxError(`Unexpected token type: ${J[G].type}`)}}function ht(...it){return G+it.length<=J.length&&it.some((Et,Lt)=>Et!==J[G+Lt].type)}function wt(...it){return G+it.length<=J.length&&it.every((Et,Lt)=>Et===J[G+Lt].type)}function Xt(){return new R(Pe(r.Text,"Expected text token").value)}function Ft(){Pe(r.OpenStatement,"Expected opening statement token");let it;switch(J[G].type){case r.Set:++G,it=Qt(),Pe(r.CloseStatement,"Expected closing statement token");break;case r.If:++G,it=Mt(),Pe(r.OpenStatement,"Expected {% token"),Pe(r.EndIf,"Expected endif token"),Pe(r.CloseStatement,"Expected %} token");break;case r.Macro:++G,it=Zt(),Pe(r.OpenStatement,"Expected {% token"),Pe(r.EndMacro,"Expected endmacro token"),Pe(r.CloseStatement,"Expected %} token");break;case r.For:++G,it=or(),Pe(r.OpenStatement,"Expected {% token"),Pe(r.EndFor,"Expected endfor token"),Pe(r.CloseStatement,"Expected %} token");break;default:throw new SyntaxError(`Unknown statement type: ${J[G].type}`)}return it}function jt(){Pe(r.OpenExpression,"Expected opening expression token");const it=Gn();return Pe(r.CloseExpression,"Expected closing expression token"),it}function Qt(){const it=Gn();if(wt(r.Equals)){++G;const Et=Qt();return new h(it,Et)}return it}function Mt(){var vn,qn,Pr,zr,jn,Br,Mr,Li;const it=Gn();Pe(r.CloseStatement,"Expected closing statement token");const Et=[],Lt=[];for(;!(((vn=J[G])==null?void 0:vn.type)===r.OpenStatement&&(((qn=J[G+1])==null?void 0:qn.type)===r.ElseIf||((Pr=J[G+1])==null?void 0:Pr.type)===r.Else||((zr=J[G+1])==null?void 0:zr.type)===r.EndIf));)Et.push(We());if(((jn=J[G])==null?void 0:jn.type)===r.OpenStatement&&((Br=J[G+1])==null?void 0:Br.type)!==r.EndIf)if(++G,wt(r.ElseIf))Pe(r.ElseIf,"Expected elseif token"),Lt.push(Mt());else for(Pe(r.Else,"Expected else token"),Pe(r.CloseStatement,"Expected closing statement token");!(((Mr=J[G])==null?void 0:Mr.type)===r.OpenStatement&&((Li=J[G+1])==null?void 0:Li.type)===r.EndIf);)Lt.push(We());return new _(it,Et,Lt)}function Zt(){const it=mn();if(it.type!=="Identifier")throw new SyntaxError("Expected identifier following macro statement");const Et=Gt();Pe(r.CloseStatement,"Expected closing statement token");const Lt=[];for(;ht(r.OpenStatement,r.EndMacro);)Lt.push(We());return new v(it,Et,Lt)}function Cn(it=!1){const Et=it?mn:Gn,Lt=[Et()],vn=wt(r.Comma);for(;vn&&(++G,Lt.push(Et()),!!wt(r.Comma)););return vn?new pe(Lt):Lt[0]}function or(){const it=Cn(!0);if(!(it instanceof O||it instanceof pe))throw new SyntaxError(`Expected identifier/tuple for the loop variable, got ${it.type} instead`);Pe(r.In,"Expected `in` keyword following loop variable");const Et=Gn();Pe(r.CloseStatement,"Expected closing statement token");const Lt=[];for(;ht(r.OpenStatement,r.EndFor)&&ht(r.OpenStatement,r.Else);)Lt.push(We());const vn=[];if(wt(r.OpenStatement,r.Else))for(++G,++G,Pe(r.CloseStatement,"Expected closing statement token");ht(r.OpenStatement,r.EndFor);)vn.push(We());return new y(it,Et,Lt,vn)}function Gn(){return lr()}function lr(){const it=bt();if(wt(r.If)){++G;const Et=bt();if(wt(r.Else)){++G;const Lt=bt();return new _(Et,[it],[Lt])}else return new ze(it,Et)}return it}function bt(){let it=Me();for(;wt(r.Or);){const Et=J[G];++G;const Lt=Me();it=new Te(Et,it,Lt)}return it}function Me(){let it=Je();for(;wt(r.And);){const Et=J[G];++G;const Lt=Je();it=new Te(Et,it,Lt)}return it}function Je(){let it;for(;wt(r.Not);){const Et=J[G];++G;const Lt=Je();it=new Ie(Et,Lt)}return it!=null?it:lt()}function lt(){let it=Ct();for(;wt(r.ComparisonBinaryOperator)||wt(r.In)||wt(r.NotIn);){const Et=J[G];++G;const Lt=Ct();it=new Te(Et,it,Lt)}return it}function Ct(){let it=rn();for(;wt(r.AdditiveBinaryOperator);){const Et=J[G];++G;const Lt=rn();it=new Te(Et,it,Lt)}return it}function at(){const it=Wt();return wt(r.OpenParen)?xt(it):it}function xt(it){let Et=new M(it,Gt());return wt(r.OpenParen)&&(Et=xt(Et)),Et}function Gt(){Pe(r.OpenParen,"Expected opening parenthesis for arguments list");const it=Ut();return Pe(r.CloseParen,"Expected closing parenthesis for arguments list"),it}function Ut(){const it=[];for(;!wt(r.CloseParen);){let Et=Gn();if(wt(r.Equals)){if(++G,!(Et instanceof O))throw new SyntaxError("Expected identifier for keyword argument");const Lt=Gn();Et=new W(Et,Lt)}it.push(Et),wt(r.Comma)&&++G}return it}function Jt(){const it=[];let Et=!1;for(;!wt(r.CloseSquareBracket);)wt(r.Colon)?(it.push(void 0),++G,Et=!0):(it.push(Gn()),wt(r.Colon)&&(++G,Et=!0));if(it.length===0)throw new SyntaxError("Expected at least one argument for member/slice expression");if(Et){if(it.length>3)throw new SyntaxError("Expected 0-3 arguments for slice expression");return new ee(...it)}return it[0]}function Wt(){let it=mn();for(;wt(r.Dot)||wt(r.OpenSquareBracket);){const Et=J[G];++G;let Lt;const vn=Et.type!==r.Dot;if(vn)Lt=Jt(),Pe(r.CloseSquareBracket,"Expected closing square bracket");else if(Lt=mn(),Lt.type!=="Identifier")throw new SyntaxError("Expected identifier following dot operator");it=new T(it,Lt,vn)}return it}function rn(){let it=on();for(;wt(r.MultiplicativeBinaryOperator);){const Et=J[G];++G;const Lt=on();it=new Te(Et,it,Lt)}return it}function on(){let it=tn();for(;wt(r.Is);){++G;const Et=wt(r.Not);Et&&++G;let Lt=mn();if(Lt instanceof Q&&(Lt=new O(Lt.value.toString())),!(Lt instanceof O))throw new SyntaxError("Expected identifier for the test");it=new Ze(it,Et,Lt)}return it}function tn(){let it=at();for(;wt(r.Pipe);){++G;let Et=mn();if(!(Et instanceof O))throw new SyntaxError("Expected identifier for the filter");wt(r.OpenParen)&&(Et=xt(Et)),it=new Re(it,Et)}return it}function mn(){const it=J[G];switch(it.type){case r.NumericLiteral:return++G,new D(Number(it.value));case r.StringLiteral:return++G,new R(it.value);case r.BooleanLiteral:return++G,new Q(it.value.toLowerCase()==="true");case r.Identifier:return++G,new O(it.value);case r.OpenParen:{++G;const Et=Cn();if(J[G].type!==r.CloseParen)throw new SyntaxError(`Expected closing parenthesis, got ${J[G].type} instead`);return++G,Et}case r.OpenSquareBracket:{++G;const Et=[];for(;!wt(r.CloseSquareBracket);)Et.push(Gn()),wt(r.Comma)&&++G;return++G,new ie(Et)}case r.OpenCurlyBracket:{++G;const Et=new Map;for(;!wt(r.CloseCurlyBracket);){const Lt=Gn();Pe(r.Colon,"Expected colon between key and value in object literal");const vn=Gn();Et.set(Lt,vn),wt(r.Comma)&&++G}return++G,new ke(Et)}default:throw new SyntaxError(`Unexpected token: ${it.type}`)}}for(;G=0?(_e=(_e!=null?_e:_e=0)<0?Math.max(J.length+_e,0):Math.min(_e,J.length),G=(G!=null?G:G=J.length)<0?Math.max(J.length+G,0):Math.min(G,J.length)):(_e=(_e!=null?_e:_e=J.length-1)<0?Math.max(J.length+_e,-1):Math.min(_e,J.length-1),G=(G!=null?G:G=-1)<-1?Math.max(J.length+G,-1):Math.min(G,J.length-1));const ht=[];for(let wt=_e;We*wt_e.toUpperCase())}var ue=class{constructor(J=void 0){ut(this,"type","RuntimeValue");ut(this,"value");ut(this,"builtins",new Map);this.value=J}__bool__(){return new Oe(!!this.value)}},te=class extends ue{constructor(){super(...arguments);ut(this,"type","NumericValue")}},ge=class extends ue{constructor(){super(...arguments);ut(this,"type","StringValue");ut(this,"builtins",new Map([["upper",new He(()=>new ge(this.value.toUpperCase()))],["lower",new He(()=>new ge(this.value.toLowerCase()))],["strip",new He(()=>new ge(this.value.trim()))],["title",new He(()=>new ge(de(this.value)))],["length",new te(this.value.length)]]))}},Oe=class extends ue{constructor(){super(...arguments);ut(this,"type","BooleanValue")}},Ue=class extends ue{constructor(){super(...arguments);ut(this,"type","ObjectValue");ut(this,"builtins",new Map([["get",new He(([_e,G])=>{var Pe,We;if(!(_e instanceof ge))throw new Error(`Object key must be a string: got ${_e.type}`);return(We=(Pe=this.value.get(_e.value))!=null?Pe:G)!=null?We:new $e})],["items",new He(()=>new he(Array.from(this.value.entries()).map(([_e,G])=>new he([new ge(_e),G]))))]]))}__bool__(){return new Oe(this.value.size>0)}},Ae=class extends Ue{constructor(){super(...arguments);ut(this,"type","KeywordArgumentsValue")}},he=class extends ue{constructor(){super(...arguments);ut(this,"type","ArrayValue");ut(this,"builtins",new Map([["length",new te(this.value.length)]]))}__bool__(){return new Oe(this.value.length>0)}},Fe=class extends he{constructor(){super(...arguments);ut(this,"type","TupleValue")}},He=class extends ue{constructor(){super(...arguments);ut(this,"type","FunctionValue")}},$e=class extends ue{constructor(){super(...arguments);ut(this,"type","NullValue")}},xe=class extends ue{constructor(){super(...arguments);ut(this,"type","UndefinedValue")}},De=class{constructor(J){ut(this,"variables",new Map([["namespace",new He(J=>{if(J.length===0)return new Ue(new Map);if(J.length!==1||!(J[0]instanceof Ue))throw new Error("`namespace` expects either zero arguments or a single object argument");return J[0]})]]));ut(this,"tests",new Map([["boolean",J=>J.type==="BooleanValue"],["callable",J=>J instanceof He],["odd",J=>{if(J.type!=="NumericValue")throw new Error(`Cannot apply test "odd" to type: ${J.type}`);return J.value%2!==0}],["even",J=>{if(J.type!=="NumericValue")throw new Error(`Cannot apply test "even" to type: ${J.type}`);return J.value%2===0}],["false",J=>J.type==="BooleanValue"&&!J.value],["true",J=>J.type==="BooleanValue"&&J.value],["string",J=>J.type==="StringValue"],["number",J=>J.type==="NumericValue"],["integer",J=>J.type==="NumericValue"&&Number.isInteger(J.value)],["iterable",J=>J instanceof he||J instanceof ge],["lower",J=>{const _e=J.value;return J.type==="StringValue"&&_e===_e.toLowerCase()}],["upper",J=>{const _e=J.value;return J.type==="StringValue"&&_e===_e.toUpperCase()}],["none",J=>J.type==="NullValue"],["defined",J=>J.type!=="UndefinedValue"],["undefined",J=>J.type==="UndefinedValue"],["equalto",(J,_e)=>J.value===_e.value],["eq",(J,_e)=>J.value===_e.value]]));this.parent=J}set(J,_e){return this.declareVariable(J,Ne(_e))}declareVariable(J,_e){if(this.variables.has(J))throw new SyntaxError(`Variable already declared: ${J}`);return this.variables.set(J,_e),_e}setVariable(J,_e){return this.variables.set(J,_e),_e}resolve(J){if(this.variables.has(J))return this;if(this.parent)return this.parent.resolve(J);throw new Error(`Unknown variable: ${J}`)}lookupVariable(J){var _e;try{return(_e=this.resolve(J).variables.get(J))!=null?_e:new xe}catch{return new xe}}},Ge=class{constructor(J){ut(this,"global");this.global=J!=null?J:new De}run(J){return this.evaluate(J,this.global)}evaluateBinaryExpression(J,_e){const G=this.evaluate(J.left,_e);switch(J.operator.value){case"and":return G.__bool__().value?this.evaluate(J.right,_e):G;case"or":return G.__bool__().value?G:this.evaluate(J.right,_e)}const Pe=this.evaluate(J.right,_e);switch(J.operator.value){case"==":return new Oe(G.value==Pe.value);case"!=":return new Oe(G.value!=Pe.value)}if(G instanceof xe||Pe instanceof xe)throw new Error("Cannot perform operation on undefined values");if(G instanceof $e||Pe instanceof $e)throw new Error("Cannot perform operation on null values");if(G instanceof te&&Pe instanceof te)switch(J.operator.value){case"+":return new te(G.value+Pe.value);case"-":return new te(G.value-Pe.value);case"*":return new te(G.value*Pe.value);case"/":return new te(G.value/Pe.value);case"%":return new te(G.value%Pe.value);case"<":return new Oe(G.value":return new Oe(G.value>Pe.value);case">=":return new Oe(G.value>=Pe.value);case"<=":return new Oe(G.value<=Pe.value)}else if(G instanceof he&&Pe instanceof he)switch(J.operator.value){case"+":return new he(G.value.concat(Pe.value))}else if(Pe instanceof he){const We=Pe.value.find(ht=>ht.value===G.value)!==void 0;switch(J.operator.value){case"in":return new Oe(We);case"not in":return new Oe(!We)}}if(G instanceof ge||Pe instanceof ge)switch(J.operator.value){case"+":return new ge(G.value.toString()+Pe.value.toString())}if(G instanceof ge&&Pe instanceof ge)switch(J.operator.value){case"in":return new Oe(Pe.value.includes(G.value));case"not in":return new Oe(!Pe.value.includes(G.value))}if(G instanceof ge&&Pe instanceof Ue)switch(J.operator.value){case"in":return new Oe(Pe.value.has(G.value));case"not in":return new Oe(!Pe.value.has(G.value))}throw new SyntaxError(`Unknown operator "${J.operator.value}" between ${G.type} and ${Pe.type}`)}evaluateArguments(J,_e){const G=[],Pe=new Map;for(const We of J)if(We.type==="KeywordArgumentExpression"){const ht=We;Pe.set(ht.key.value,this.evaluate(ht.value,_e))}else{if(Pe.size>0)throw new Error("Positional arguments must come before keyword arguments");G.push(this.evaluate(We,_e))}return[G,Pe]}evaluateFilterExpression(J,_e){var Pe,We,ht,wt,Xt,Ft,jt;const G=this.evaluate(J.operand,_e);if(J.filter.type==="Identifier"){const Qt=J.filter;if(Qt.value==="tojson")return new ge(tt(G));if(G instanceof he)switch(Qt.value){case"list":return G;case"first":return G.value[0];case"last":return G.value[G.value.length-1];case"length":return new te(G.value.length);case"reverse":return new he(G.value.reverse());case"sort":return new he(G.value.sort((Mt,Zt)=>{if(Mt.type!==Zt.type)throw new Error(`Cannot compare different types: ${Mt.type} and ${Zt.type}`);switch(Mt.type){case"NumericValue":return Mt.value-Zt.value;case"StringValue":return Mt.value.localeCompare(Zt.value);default:throw new Error(`Cannot compare type: ${Mt.type}`)}}));default:throw new Error(`Unknown ArrayValue filter: ${Qt.value}`)}else if(G instanceof ge)switch(Qt.value){case"length":return new te(G.value.length);case"upper":return new ge(G.value.toUpperCase());case"lower":return new ge(G.value.toLowerCase());case"title":return new ge(de(G.value));case"capitalize":return new ge(G.value.charAt(0).toUpperCase()+G.value.slice(1));case"trim":return new ge(G.value.trim());case"indent":return new ge(G.value.split(` +`).map((Mt,Zt)=>Zt===0||Mt.length===0?Mt:" "+Mt).join(` +`));case"string":return G;default:throw new Error(`Unknown StringValue filter: ${Qt.value}`)}else if(G instanceof te)switch(Qt.value){case"abs":return new te(Math.abs(G.value));default:throw new Error(`Unknown NumericValue filter: ${Qt.value}`)}else if(G instanceof Ue)switch(Qt.value){case"items":return new he(Array.from(G.value.entries()).map(([Mt,Zt])=>new he([new ge(Mt),Zt])));case"length":return new te(G.value.size);default:throw new Error(`Unknown ObjectValue filter: ${Qt.value}`)}throw new Error(`Cannot apply filter "${Qt.value}" to type: ${G.type}`)}else if(J.filter.type==="CallExpression"){const Qt=J.filter;if(Qt.callee.type!=="Identifier")throw new Error(`Unknown filter: ${Qt.callee.type}`);const Mt=Qt.callee.value;if(Mt==="tojson"){const[,Zt]=this.evaluateArguments(Qt.args,_e),Cn=(Pe=Zt.get("indent"))!=null?Pe:new $e;if(!(Cn instanceof te||Cn instanceof $e))throw new Error("If set, indent must be a number");return new ge(tt(G,Cn.value))}if(G instanceof he){switch(Mt){case"selectattr":{if(G.value.some(bt=>!(bt instanceof Ue)))throw new Error("`selectattr` can only be applied to array of objects");if(Qt.args.some(bt=>bt.type!=="StringLiteral"))throw new Error("arguments of `selectattr` must be strings");const[Zt,Cn,or]=Qt.args.map(bt=>this.evaluate(bt,_e));let Gn;if(Cn){const bt=_e.tests.get(Cn.value);if(!bt)throw new Error(`Unknown test: ${Cn.value}`);Gn=bt}else Gn=(...bt)=>bt[0].__bool__().value;const lr=G.value.filter(bt=>{const Me=bt.value.get(Zt.value);return Me?Gn(Me,or):!1});return new he(lr)}case"map":{const[,Zt]=this.evaluateArguments(Qt.args,_e);if(Zt.has("attribute")){const Cn=Zt.get("attribute");if(!(Cn instanceof ge))throw new Error("attribute must be a string");const or=Zt.get("default"),Gn=G.value.map(lr=>{var bt,Me;if(!(lr instanceof Ue))throw new Error("items in map must be an object");return(Me=(bt=lr.value.get(Cn.value))!=null?bt:or)!=null?Me:new xe});return new he(Gn)}else throw new Error("`map` expressions without `attribute` set are not currently supported.")}}throw new Error(`Unknown ArrayValue filter: ${Mt}`)}else if(G instanceof ge){switch(Mt){case"indent":{const[Zt,Cn]=this.evaluateArguments(Qt.args,_e),or=(ht=(We=Zt.at(0))!=null?We:Cn.get("width"))!=null?ht:new te(4);if(!(or instanceof te))throw new Error("width must be a number");const Gn=(Xt=(wt=Zt.at(1))!=null?wt:Cn.get("first"))!=null?Xt:new Oe(!1),lr=(jt=(Ft=Zt.at(2))!=null?Ft:Cn.get("blank"))!=null?jt:new Oe(!1),bt=G.value.split(` +`),Me=" ".repeat(or.value),Je=bt.map((lt,Ct)=>!Gn.value&&Ct===0||!lr.value&<.length===0?lt:Me+lt);return new ge(Je.join(` +`))}}throw new Error(`Unknown StringValue filter: ${Mt}`)}else throw new Error(`Cannot apply filter "${Mt}" to type: ${G.type}`)}throw new Error(`Unknown filter: ${J.filter.type}`)}evaluateTestExpression(J,_e){const G=this.evaluate(J.operand,_e),Pe=_e.tests.get(J.test.value);if(!Pe)throw new Error(`Unknown test: ${J.test.value}`);const We=Pe(G);return new Oe(J.negate?!We:We)}evaluateUnaryExpression(J,_e){const G=this.evaluate(J.argument,_e);switch(J.operator.value){case"not":return new Oe(!G.value);default:throw new SyntaxError(`Unknown operator: ${J.operator.value}`)}}evalProgram(J,_e){return this.evaluateBlock(J.body,_e)}evaluateBlock(J,_e){let G="";for(const Pe of J){const We=this.evaluate(Pe,_e);We.type!=="NullValue"&&We.type!=="UndefinedValue"&&(G+=We.value)}return new ge(G)}evaluateIdentifier(J,_e){return _e.lookupVariable(J.value)}evaluateCallExpression(J,_e){const[G,Pe]=this.evaluateArguments(J.args,_e);Pe.size>0&&G.push(new Ae(Pe));const We=this.evaluate(J.callee,_e);if(We.type!=="FunctionValue")throw new Error(`Cannot call something that is not a function: got ${We.type}`);return We.value(G,_e)}evaluateSliceExpression(J,_e,G){if(!(J instanceof he||J instanceof ge))throw new Error("Slice object must be an array or string");const Pe=this.evaluate(_e.start,G),We=this.evaluate(_e.stop,G),ht=this.evaluate(_e.step,G);if(!(Pe instanceof te||Pe instanceof xe))throw new Error("Slice start must be numeric or undefined");if(!(We instanceof te||We instanceof xe))throw new Error("Slice stop must be numeric or undefined");if(!(ht instanceof te||ht instanceof xe))throw new Error("Slice step must be numeric or undefined");return J instanceof he?new he(fe(J.value,Pe.value,We.value,ht.value)):new ge(fe(Array.from(J.value),Pe.value,We.value,ht.value).join(""))}evaluateMemberExpression(J,_e){var ht;const G=this.evaluate(J.object,_e);let Pe;if(J.computed){if(J.property.type==="SliceExpression")return this.evaluateSliceExpression(G,J.property,_e);Pe=this.evaluate(J.property,_e)}else Pe=new ge(J.property.value);let We;if(G instanceof Ue){if(!(Pe instanceof ge))throw new Error(`Cannot access property with non-string: got ${Pe.type}`);We=(ht=G.value.get(Pe.value))!=null?ht:G.builtins.get(Pe.value)}else if(G instanceof he||G instanceof ge)if(Pe instanceof te)We=G.value.at(Pe.value),G instanceof ge&&(We=new ge(G.value.at(Pe.value)));else if(Pe instanceof ge)We=G.builtins.get(Pe.value);else throw new Error(`Cannot access property with non-string/non-number: got ${Pe.type}`);else{if(!(Pe instanceof ge))throw new Error(`Cannot access property with non-string: got ${Pe.type}`);We=G.builtins.get(Pe.value)}return We instanceof ue?We:new xe}evaluateSet(J,_e){const G=this.evaluate(J.value,_e);if(J.assignee.type==="Identifier"){const Pe=J.assignee.value;_e.setVariable(Pe,G)}else if(J.assignee.type==="MemberExpression"){const Pe=J.assignee,We=this.evaluate(Pe.object,_e);if(!(We instanceof Ue))throw new Error("Cannot assign to member of non-object");if(Pe.property.type!=="Identifier")throw new Error("Cannot assign to member with non-identifier property");We.value.set(Pe.property.value,G)}else throw new Error(`Invalid LHS inside assignment expression: ${JSON.stringify(J.assignee)}`);return new $e}evaluateIf(J,_e){const G=this.evaluate(J.test,_e);return this.evaluateBlock(G.__bool__().value?J.body:J.alternate,_e)}evaluateFor(J,_e){const G=new De(_e);let Pe,We;if(J.iterable.type==="SelectExpression"){const jt=J.iterable;We=this.evaluate(jt.iterable,G),Pe=jt.test}else We=this.evaluate(J.iterable,G);if(!(We instanceof he))throw new Error(`Expected iterable type in for loop: got ${We.type}`);const ht=[],wt=[];for(let jt=0;jtCn.setVariable(J.loopvar.value,Mt);else if(J.loopvar.type==="TupleLiteral"){const Cn=J.loopvar;if(Mt.type!=="ArrayValue")throw new Error(`Cannot unpack non-iterable type: ${Mt.type}`);const or=Mt;if(Cn.value.length!==or.value.length)throw new Error(`Too ${Cn.value.length>or.value.length?"few":"many"} items to unpack`);Zt=Gn=>{for(let lr=0;lr0?ht[jt-1]:new xe],["nextitem",jt{var wt,Xt;const We=new De(Pe);G=G.slice();let ht;((wt=G.at(-1))==null?void 0:wt.type)==="KeywordArgumentsValue"&&(ht=G.pop());for(let Ft=0;Ftthis.evaluate(G,_e)));case"TupleLiteral":return new Fe(J.value.map(G=>this.evaluate(G,_e)));case"ObjectLiteral":{const G=new Map;for(const[Pe,We]of J.value){const ht=this.evaluate(Pe,_e);if(!(ht instanceof ge))throw new Error(`Object keys must be strings: got ${ht.type}`);G.set(ht.value,this.evaluate(We,_e))}return new Ue(G)}case"Identifier":return this.evaluateIdentifier(J,_e);case"CallExpression":return this.evaluateCallExpression(J,_e);case"MemberExpression":return this.evaluateMemberExpression(J,_e);case"UnaryExpression":return this.evaluateUnaryExpression(J,_e);case"BinaryExpression":return this.evaluateBinaryExpression(J,_e);case"FilterExpression":return this.evaluateFilterExpression(J,_e);case"TestExpression":return this.evaluateTestExpression(J,_e);default:throw new SyntaxError(`Unknown node type: ${J.type}`)}}};function Ne(J){switch(typeof J){case"number":return new te(J);case"string":return new ge(J);case"boolean":return new Oe(J);case"undefined":return new xe;case"object":return J===null?new $e:Array.isArray(J)?new he(J.map(Ne)):new Ue(new Map(Object.entries(J).map(([_e,G])=>[_e,Ne(G)])));case"function":return new He((_e,G)=>{var We;const Pe=(We=J(..._e.map(ht=>ht.value)))!=null?We:null;return Ne(Pe)});default:throw new Error(`Cannot convert to runtime value: ${J}`)}}function tt(J,_e,G){const Pe=G!=null?G:0;switch(J.type){case"NullValue":case"UndefinedValue":return"null";case"NumericValue":case"StringValue":case"BooleanValue":return JSON.stringify(J.value);case"ArrayValue":case"ObjectValue":{const We=_e?" ".repeat(_e):"",ht=` +`+We.repeat(Pe),wt=ht+We;if(J.type==="ArrayValue"){const Xt=J.value.map(Ft=>tt(Ft,_e,Pe+1));return _e?`[${wt}${Xt.join(`,${wt}`)}${ht}]`:`[${Xt.join(", ")}]`}else{const Xt=Array.from(J.value.entries()).map(([Ft,jt])=>{const Qt=`"${Ft}": ${tt(jt,_e,Pe+1)}`;return _e?`${wt}${Qt}`:Qt});return _e?`{${Xt.join(",")}${ht}}`:`{${Xt.join(", ")}}`}}default:throw new Error(`Cannot convert to JSON: ${J.type}`)}}var ct=class{constructor(J){ut(this,"parsed");const _e=a(J,{lstrip_blocks:!0,trim_blocks:!0});this.parsed=K(_e)}render(J){const _e=new De;_e.set("false",!1),_e.set("true",!0),_e.set("raise_exception",We=>{throw new Error(We)}),_e.set("range",se);for(const[We,ht]of Object.entries(J))_e.set(We,ht);return new Ge(_e).run(this.parsed).value}}},"./node_modules/onnxruntime-common/dist/esm/backend-impl.js":(t,e,n)=>{n.r(e),n.d(e,{registerBackend:()=>m,resolveBackendAndExecutionProviders:()=>g});const r=new Map,l=[],m=(s,c,p)=>{if(c&&typeof c.init=="function"&&typeof c.createInferenceSessionHandler=="function"){const a=r.get(s);if(a===void 0)r.set(s,{backend:c,priority:p});else{if(a.priority>p)return;if(a.priority===p&&a.backend!==c)throw new Error(`cannot register backend "${s}" using priority ${p}`)}if(p>=0){const u=l.indexOf(s);u!==-1&&l.splice(u,1);for(let o=0;o{const c=r.get(s);if(!c)return"backend not found.";if(c.initialized)return c.backend;if(c.aborted)return c.error;{const p=!!c.initPromise;try{return p||(c.initPromise=c.backend.init(s)),await c.initPromise,c.initialized=!0,c.backend}catch(a){return p||(c.error=`${a}`,c.aborted=!0),c.error}finally{delete c.initPromise}}},g=async s=>{const c=s.executionProviders||[],p=c.map(h=>typeof h=="string"?h:h.name),a=p.length===0?l:p;let u;const o=[],_=new Set;for(const h of a){const v=await S(h);typeof v=="string"?o.push({name:h,err:v}):(u||(u=v),u===v&&_.add(h))}if(!u)throw new Error(`no available backend found. ERR: ${o.map(h=>`[${h.name}] ${h.err}`).join(", ")}`);for(const{name:h,err:v}of o)p.includes(h)&&console.warn(`removing requested execution provider "${h}" from session options because it is not available: ${v}`);const y=c.filter(h=>_.has(typeof h=="string"?h:h.name));return[u,new Proxy(s,{get:(h,v)=>v==="executionProviders"?y:Reflect.get(h,v)})]}},"./node_modules/onnxruntime-common/dist/esm/backend.js":(t,e,n)=>{n.r(e),n.d(e,{registerBackend:()=>r.registerBackend});var r=n("./node_modules/onnxruntime-common/dist/esm/backend-impl.js")},"./node_modules/onnxruntime-common/dist/esm/env-impl.js":(t,e,n)=>{n.r(e),n.d(e,{env:()=>m});var r=n("./node_modules/onnxruntime-common/dist/esm/version.js");let l="warning";const m={wasm:{},webgl:{},webgpu:{},versions:{common:r.version},set logLevel(S){if(S!==void 0){if(typeof S!="string"||["verbose","info","warning","error","fatal"].indexOf(S)===-1)throw new Error(`Unsupported logging level: ${S}`);l=S}},get logLevel(){return l}};Object.defineProperty(m,"logLevel",{enumerable:!0})},"./node_modules/onnxruntime-common/dist/esm/env.js":(t,e,n)=>{n.r(e),n.d(e,{env:()=>l});var r=n("./node_modules/onnxruntime-common/dist/esm/env-impl.js");const l=r.env},"./node_modules/onnxruntime-common/dist/esm/index.js":(t,e,n)=>{n.r(e),n.d(e,{InferenceSession:()=>m.InferenceSession,TRACE:()=>g.TRACE,TRACE_FUNC_BEGIN:()=>g.TRACE_FUNC_BEGIN,TRACE_FUNC_END:()=>g.TRACE_FUNC_END,Tensor:()=>S.Tensor,TrainingSession:()=>s.TrainingSession,env:()=>l.env,registerBackend:()=>r.registerBackend});var r=n("./node_modules/onnxruntime-common/dist/esm/backend.js"),l=n("./node_modules/onnxruntime-common/dist/esm/env.js"),m=n("./node_modules/onnxruntime-common/dist/esm/inference-session.js"),S=n("./node_modules/onnxruntime-common/dist/esm/tensor.js");n("./node_modules/onnxruntime-common/dist/esm/tensor-conversion.js"),n("./node_modules/onnxruntime-common/dist/esm/tensor-factory.js");var g=n("./node_modules/onnxruntime-common/dist/esm/trace.js");n("./node_modules/onnxruntime-common/dist/esm/onnx-model.js"),n("./node_modules/onnxruntime-common/dist/esm/onnx-value.js");var s=n("./node_modules/onnxruntime-common/dist/esm/training-session.js")},"./node_modules/onnxruntime-common/dist/esm/inference-session-impl.js":(t,e,n)=>{n.r(e),n.d(e,{InferenceSession:()=>S});var r=n("./node_modules/onnxruntime-common/dist/esm/backend-impl.js"),l=n("./node_modules/onnxruntime-common/dist/esm/tensor.js"),m=n("./node_modules/onnxruntime-common/dist/esm/trace.js");class S{constructor(s){this.handler=s}async run(s,c,p){(0,m.TRACE_FUNC_BEGIN)();const a={};let u={};if(typeof s!="object"||s===null||s instanceof l.Tensor||Array.isArray(s))throw new TypeError("'feeds' must be an object that use input names as keys and OnnxValue as corresponding values.");let o=!0;if(typeof c=="object"){if(c===null)throw new TypeError("Unexpected argument[1]: cannot be null.");if(c instanceof l.Tensor)throw new TypeError("'fetches' cannot be a Tensor");if(Array.isArray(c)){if(c.length===0)throw new TypeError("'fetches' cannot be an empty array.");o=!1;for(const h of c){if(typeof h!="string")throw new TypeError("'fetches' must be a string array or an object.");if(this.outputNames.indexOf(h)===-1)throw new RangeError(`'fetches' contains invalid output name: ${h}.`);a[h]=null}if(typeof p=="object"&&p!==null)u=p;else if(typeof p<"u")throw new TypeError("'options' must be an object.")}else{let h=!1;const v=Object.getOwnPropertyNames(c);for(const b of this.outputNames)if(v.indexOf(b)!==-1){const T=c[b];(T===null||T instanceof l.Tensor)&&(h=!0,o=!1,a[b]=T)}if(h){if(typeof p=="object"&&p!==null)u=p;else if(typeof p<"u")throw new TypeError("'options' must be an object.")}else u=c}}else if(typeof c<"u")throw new TypeError("Unexpected argument[1]: must be 'fetches' or 'options'.");for(const h of this.inputNames)if(typeof s[h]>"u")throw new Error(`input '${h}' is missing in 'feeds'.`);if(o)for(const h of this.outputNames)a[h]=null;const _=await this.handler.run(s,a,u),y={};for(const h in _)if(Object.hasOwnProperty.call(_,h)){const v=_[h];v instanceof l.Tensor?y[h]=v:y[h]=new l.Tensor(v.type,v.data,v.dims)}return(0,m.TRACE_FUNC_END)(),y}async release(){return this.handler.dispose()}static async create(s,c,p,a){(0,m.TRACE_FUNC_BEGIN)();let u,o={};if(typeof s=="string"){if(u=s,typeof c=="object"&&c!==null)o=c;else if(typeof c<"u")throw new TypeError("'options' must be an object.")}else if(s instanceof Uint8Array){if(u=s,typeof c=="object"&&c!==null)o=c;else if(typeof c<"u")throw new TypeError("'options' must be an object.")}else if(s instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&s instanceof SharedArrayBuffer){const v=s;let b=0,T=s.byteLength;if(typeof c=="object"&&c!==null)o=c;else if(typeof c=="number"){if(b=c,!Number.isSafeInteger(b))throw new RangeError("'byteOffset' must be an integer.");if(b<0||b>=v.byteLength)throw new RangeError(`'byteOffset' is out of range [0, ${v.byteLength}).`);if(T=s.byteLength-b,typeof p=="number"){if(T=p,!Number.isSafeInteger(T))throw new RangeError("'byteLength' must be an integer.");if(T<=0||b+T>v.byteLength)throw new RangeError(`'byteLength' is out of range (0, ${v.byteLength-b}].`);if(typeof a=="object"&&a!==null)o=a;else if(typeof a<"u")throw new TypeError("'options' must be an object.")}else if(typeof p<"u")throw new TypeError("'byteLength' must be a number.")}else if(typeof c<"u")throw new TypeError("'options' must be an object.");u=new Uint8Array(v,b,T)}else throw new TypeError("Unexpected argument[0]: must be 'path' or 'buffer'.");const[_,y]=await(0,r.resolveBackendAndExecutionProviders)(o),h=await _.createInferenceSessionHandler(u,y);return(0,m.TRACE_FUNC_END)(),new S(h)}startProfiling(){this.handler.startProfiling()}endProfiling(){this.handler.endProfiling()}get inputNames(){return this.handler.inputNames}get outputNames(){return this.handler.outputNames}}},"./node_modules/onnxruntime-common/dist/esm/inference-session.js":(t,e,n)=>{n.r(e),n.d(e,{InferenceSession:()=>l});var r=n("./node_modules/onnxruntime-common/dist/esm/inference-session-impl.js");const l=r.InferenceSession},"./node_modules/onnxruntime-common/dist/esm/onnx-model.js":(t,e,n)=>{n.r(e)},"./node_modules/onnxruntime-common/dist/esm/onnx-value.js":(t,e,n)=>{n.r(e)},"./node_modules/onnxruntime-common/dist/esm/tensor-conversion-impl.js":(t,e,n)=>{n.r(e),n.d(e,{tensorToDataURL:()=>r,tensorToImageData:()=>l});const r=(m,S)=>{const g=typeof document<"u"?document.createElement("canvas"):new OffscreenCanvas(1,1);g.width=m.dims[3],g.height=m.dims[2];const s=g.getContext("2d");if(s!=null){let c,p;(S==null?void 0:S.tensorLayout)!==void 0&&S.tensorLayout==="NHWC"?(c=m.dims[2],p=m.dims[3]):(c=m.dims[3],p=m.dims[2]);const a=(S==null?void 0:S.format)!==void 0?S.format:"RGB",u=S==null?void 0:S.norm;let o,_;u===void 0||u.mean===void 0?o=[255,255,255,255]:typeof u.mean=="number"?o=[u.mean,u.mean,u.mean,u.mean]:(o=[u.mean[0],u.mean[1],u.mean[2],0],u.mean[3]!==void 0&&(o[3]=u.mean[3])),u===void 0||u.bias===void 0?_=[0,0,0,0]:typeof u.bias=="number"?_=[u.bias,u.bias,u.bias,u.bias]:(_=[u.bias[0],u.bias[1],u.bias[2],0],u.bias[3]!==void 0&&(_[3]=u.bias[3]));const y=p*c;let h=0,v=y,b=y*2,T=-1;a==="RGBA"?(h=0,v=y,b=y*2,T=y*3):a==="RGB"?(h=0,v=y,b=y*2):a==="RBG"&&(h=0,b=y,v=y*2);for(let M=0;M{const g=typeof document<"u"?document.createElement("canvas").getContext("2d"):new OffscreenCanvas(1,1).getContext("2d");let s;if(g!=null){let c,p,a;(S==null?void 0:S.tensorLayout)!==void 0&&S.tensorLayout==="NHWC"?(c=m.dims[2],p=m.dims[1],a=m.dims[3]):(c=m.dims[3],p=m.dims[2],a=m.dims[1]);const u=S!==void 0&&S.format!==void 0?S.format:"RGB",o=S==null?void 0:S.norm;let _,y;o===void 0||o.mean===void 0?_=[255,255,255,255]:typeof o.mean=="number"?_=[o.mean,o.mean,o.mean,o.mean]:(_=[o.mean[0],o.mean[1],o.mean[2],255],o.mean[3]!==void 0&&(_[3]=o.mean[3])),o===void 0||o.bias===void 0?y=[0,0,0,0]:typeof o.bias=="number"?y=[o.bias,o.bias,o.bias,o.bias]:(y=[o.bias[0],o.bias[1],o.bias[2],0],o.bias[3]!==void 0&&(y[3]=o.bias[3]));const h=p*c;if(S!==void 0&&(S.format!==void 0&&a===4&&S.format!=="RGBA"||a===3&&S.format!=="RGB"&&S.format!=="BGR"))throw new Error("Tensor format doesn't match input tensor dims");const v=4;let b=0,T=1,M=2,O=3,F=0,D=h,R=h*2,Q=-1;u==="RGBA"?(F=0,D=h,R=h*2,Q=h*3):u==="RGB"?(F=0,D=h,R=h*2):u==="RBG"&&(F=0,R=h,D=h*2),s=g.createImageData(c,p);for(let ie=0;ie{n.r(e)},"./node_modules/onnxruntime-common/dist/esm/tensor-factory-impl.js":(t,e,n)=>{n.r(e),n.d(e,{bufferToTensor:()=>l,tensorFromGpuBuffer:()=>g,tensorFromImage:()=>m,tensorFromPinnedBuffer:()=>s,tensorFromTexture:()=>S});var r=n("./node_modules/onnxruntime-common/dist/esm/tensor-impl.js");const l=(c,p)=>{var Re,ze,Ze;if(c===void 0)throw new Error("Image buffer must be defined");if(p.height===void 0||p.width===void 0)throw new Error("Image height and width must be defined");if(p.tensorLayout==="NHWC")throw new Error("NHWC Tensor layout is not supported yet");const{height:a,width:u}=p,o=(Re=p.norm)!=null?Re:{mean:255,bias:0};let _,y;typeof o.mean=="number"?_=[o.mean,o.mean,o.mean,o.mean]:_=[o.mean[0],o.mean[1],o.mean[2],(ze=o.mean[3])!=null?ze:255],typeof o.bias=="number"?y=[o.bias,o.bias,o.bias,o.bias]:y=[o.bias[0],o.bias[1],o.bias[2],(Ze=o.bias[3])!=null?Ze:0];const h=p.format!==void 0?p.format:"RGBA",v=p.tensorFormat!==void 0&&p.tensorFormat!==void 0?p.tensorFormat:"RGB",b=a*u,T=v==="RGBA"?new Float32Array(b*4):new Float32Array(b*3);let M=4,O=0,F=1,D=2,R=3,Q=0,ie=b,pe=b*2,ke=-1;h==="RGB"&&(M=3,O=0,F=1,D=2,R=-1),v==="RGBA"?ke=b*3:v==="RBG"?(Q=0,pe=b,ie=b*2):v==="BGR"&&(pe=0,ie=b,Q=b*2);for(let Ie=0;Ie{const a=typeof HTMLImageElement<"u"&&c instanceof HTMLImageElement,u=typeof ImageData<"u"&&c instanceof ImageData,o=typeof ImageBitmap<"u"&&c instanceof ImageBitmap,_=typeof c=="string";let y,h=p!=null?p:{};const v=()=>{if(typeof document<"u")return document.createElement("canvas");if(typeof OffscreenCanvas<"u")return new OffscreenCanvas(1,1);throw new Error("Canvas is not supported")},b=T=>T instanceof HTMLCanvasElement||T instanceof OffscreenCanvas?T.getContext("2d"):null;if(a){const T=v();T.width=c.width,T.height=c.height;const M=b(T);if(M!=null){let O=c.height,F=c.width;if(p!==void 0&&p.resizedHeight!==void 0&&p.resizedWidth!==void 0&&(O=p.resizedHeight,F=p.resizedWidth),p!==void 0){if(h=p,p.tensorFormat!==void 0)throw new Error("Image input config format must be RGBA for HTMLImageElement");h.tensorFormat="RGBA",h.height=O,h.width=F}else h.tensorFormat="RGBA",h.height=O,h.width=F;M.drawImage(c,0,0),y=M.getImageData(0,0,F,O).data}else throw new Error("Can not access image data")}else if(u){let T,M;if(p!==void 0&&p.resizedWidth!==void 0&&p.resizedHeight!==void 0?(T=p.resizedHeight,M=p.resizedWidth):(T=c.height,M=c.width),p!==void 0&&(h=p),h.format="RGBA",h.height=T,h.width=M,p!==void 0){const O=v();O.width=M,O.height=T;const F=b(O);if(F!=null)F.putImageData(c,0,0),y=F.getImageData(0,0,M,T).data;else throw new Error("Can not access image data")}else y=c.data}else if(o){if(p===void 0)throw new Error("Please provide image config with format for Imagebitmap");const T=v();T.width=c.width,T.height=c.height;const M=b(T);if(M!=null){const O=c.height,F=c.width;return M.drawImage(c,0,0,F,O),y=M.getImageData(0,0,F,O).data,h.height=O,h.width=F,l(y,h)}else throw new Error("Can not access image data")}else{if(_)return new Promise((T,M)=>{const O=v(),F=b(O);if(!c||!F)return M();const D=new Image;D.crossOrigin="Anonymous",D.src=c,D.onload=()=>{O.width=D.width,O.height=D.height,F.drawImage(D,0,0,O.width,O.height);const R=F.getImageData(0,0,O.width,O.height);h.height=O.height,h.width=O.width,T(l(R.data,h))}});throw new Error("Input data provided is not supported - aborted tensor creation")}if(y!==void 0)return l(y,h);throw new Error("Input data provided is not supported - aborted tensor creation")},S=(c,p)=>{const{width:a,height:u,download:o,dispose:_}=p,y=[1,u,a,4];return new r.Tensor({location:"texture",type:"float32",texture:c,dims:y,download:o,dispose:_})},g=(c,p)=>{const{dataType:a,dims:u,download:o,dispose:_}=p;return new r.Tensor({location:"gpu-buffer",type:a!=null?a:"float32",gpuBuffer:c,dims:u,download:o,dispose:_})},s=(c,p,a)=>new r.Tensor({location:"cpu-pinned",type:c,data:p,dims:a!=null?a:[p.length]})},"./node_modules/onnxruntime-common/dist/esm/tensor-factory.js":(t,e,n)=>{n.r(e)},"./node_modules/onnxruntime-common/dist/esm/tensor-impl-type-mapping.js":(t,e,n)=>{n.r(e),n.d(e,{NUMERIC_TENSOR_TYPEDARRAY_TO_TYPE_MAP:()=>l,NUMERIC_TENSOR_TYPE_TO_TYPEDARRAY_MAP:()=>r,checkTypedArray:()=>S});const r=new Map([["float32",Float32Array],["uint8",Uint8Array],["int8",Int8Array],["uint16",Uint16Array],["int16",Int16Array],["int32",Int32Array],["bool",Uint8Array],["float64",Float64Array],["uint32",Uint32Array]]),l=new Map([[Float32Array,"float32"],[Uint8Array,"uint8"],[Int8Array,"int8"],[Uint16Array,"uint16"],[Int16Array,"int16"],[Int32Array,"int32"],[Float64Array,"float64"],[Uint32Array,"uint32"]]);let m=!1;const S=()=>{if(!m){m=!0;const g=typeof BigInt64Array<"u"&&BigInt64Array.from,s=typeof BigUint64Array<"u"&&BigUint64Array.from,c=typeof Float16Array<"u"&&Float16Array.from;g&&(r.set("int64",BigInt64Array),l.set(BigInt64Array,"int64")),s&&(r.set("uint64",BigUint64Array),l.set(BigUint64Array,"uint64")),c?(r.set("float16",Float16Array),l.set(Float16Array,"float16")):r.set("float16",Uint16Array)}}},"./node_modules/onnxruntime-common/dist/esm/tensor-impl.js":(t,e,n)=>{n.r(e),n.d(e,{Tensor:()=>g});var r=n("./node_modules/onnxruntime-common/dist/esm/tensor-conversion-impl.js"),l=n("./node_modules/onnxruntime-common/dist/esm/tensor-factory-impl.js"),m=n("./node_modules/onnxruntime-common/dist/esm/tensor-impl-type-mapping.js"),S=n("./node_modules/onnxruntime-common/dist/esm/tensor-utils-impl.js");class g{constructor(c,p,a){(0,m.checkTypedArray)();let u,o;if(typeof c=="object"&&"location"in c)switch(this.dataLocation=c.location,u=c.type,o=c.dims,c.location){case"cpu-pinned":{const y=m.NUMERIC_TENSOR_TYPE_TO_TYPEDARRAY_MAP.get(u);if(!y)throw new TypeError(`unsupported type "${u}" to create tensor from pinned buffer`);if(!(c.data instanceof y))throw new TypeError(`buffer should be of type ${y.name}`);this.cpuData=c.data;break}case"texture":{if(u!=="float32")throw new TypeError(`unsupported type "${u}" to create tensor from texture`);this.gpuTextureData=c.texture,this.downloader=c.download,this.disposer=c.dispose;break}case"gpu-buffer":{if(u!=="float32"&&u!=="float16"&&u!=="int32"&&u!=="int64"&&u!=="uint32"&&u!=="uint8"&&u!=="bool")throw new TypeError(`unsupported type "${u}" to create tensor from gpu buffer`);this.gpuBufferData=c.gpuBuffer,this.downloader=c.download,this.disposer=c.dispose;break}default:throw new Error(`Tensor constructor: unsupported location '${this.dataLocation}'`)}else{let y,h;if(typeof c=="string")if(u=c,h=a,c==="string"){if(!Array.isArray(p))throw new TypeError("A string tensor's data must be a string array.");y=p}else{const v=m.NUMERIC_TENSOR_TYPE_TO_TYPEDARRAY_MAP.get(c);if(v===void 0)throw new TypeError(`Unsupported tensor type: ${c}.`);if(Array.isArray(p)){if(c==="float16"&&v===Uint16Array)throw new TypeError("Creating a float16 tensor from number array is not supported. Please use Uint16Array as data.");c==="uint64"||c==="int64"?y=v.from(p,BigInt):y=v.from(p)}else if(p instanceof v)y=p;else throw new TypeError(`A ${u} tensor's data must be type of ${v}`)}else if(h=p,Array.isArray(c)){if(c.length===0)throw new TypeError("Tensor type cannot be inferred from an empty array.");const v=typeof c[0];if(v==="string")u="string",y=c;else if(v==="boolean")u="bool",y=Uint8Array.from(c);else throw new TypeError(`Invalid element type of data array: ${v}.`)}else{const v=m.NUMERIC_TENSOR_TYPEDARRAY_TO_TYPE_MAP.get(c.constructor);if(v===void 0)throw new TypeError(`Unsupported type for tensor data: ${c.constructor}.`);u=v,y=c}if(h===void 0)h=[y.length];else if(!Array.isArray(h))throw new TypeError("A tensor's dims must be a number array");o=h,this.cpuData=y,this.dataLocation="cpu"}const _=(0,S.calculateSize)(o);if(this.cpuData&&_!==this.cpuData.length)throw new Error(`Tensor's size(${_}) does not match data length(${this.cpuData.length}).`);this.type=u,this.dims=o,this.size=_}static async fromImage(c,p){return(0,l.tensorFromImage)(c,p)}static fromTexture(c,p){return(0,l.tensorFromTexture)(c,p)}static fromGpuBuffer(c,p){return(0,l.tensorFromGpuBuffer)(c,p)}static fromPinnedBuffer(c,p,a){return(0,l.tensorFromPinnedBuffer)(c,p,a)}toDataURL(c){return(0,r.tensorToDataURL)(this,c)}toImageData(c){return(0,r.tensorToImageData)(this,c)}get data(){if(this.ensureValid(),!this.cpuData)throw new Error("The data is not on CPU. Use `getData()` to download GPU data to CPU, or use `texture` or `gpuBuffer` property to access the GPU data directly.");return this.cpuData}get location(){return this.dataLocation}get texture(){if(this.ensureValid(),!this.gpuTextureData)throw new Error("The data is not stored as a WebGL texture.");return this.gpuTextureData}get gpuBuffer(){if(this.ensureValid(),!this.gpuBufferData)throw new Error("The data is not stored as a WebGPU buffer.");return this.gpuBufferData}async getData(c){switch(this.ensureValid(),this.dataLocation){case"cpu":case"cpu-pinned":return this.data;case"texture":case"gpu-buffer":{if(!this.downloader)throw new Error("The current tensor is not created with a specified data downloader.");if(this.isDownloading)throw new Error("The current tensor is being downloaded.");try{this.isDownloading=!0;const p=await this.downloader();return this.downloader=void 0,this.dataLocation="cpu",this.cpuData=p,c&&this.disposer&&(this.disposer(),this.disposer=void 0),p}finally{this.isDownloading=!1}}default:throw new Error(`cannot get data from location: ${this.dataLocation}`)}}dispose(){if(this.isDownloading)throw new Error("The current tensor is being downloaded.");this.disposer&&(this.disposer(),this.disposer=void 0),this.cpuData=void 0,this.gpuTextureData=void 0,this.gpuBufferData=void 0,this.downloader=void 0,this.isDownloading=void 0,this.dataLocation="none"}ensureValid(){if(this.dataLocation==="none")throw new Error("The tensor is disposed.")}reshape(c){if(this.ensureValid(),this.downloader||this.disposer)throw new Error("Cannot reshape a tensor that owns GPU resource.");return(0,S.tensorReshape)(this,c)}}},"./node_modules/onnxruntime-common/dist/esm/tensor-utils-impl.js":(t,e,n)=>{n.r(e),n.d(e,{calculateSize:()=>l,tensorReshape:()=>m});var r=n("./node_modules/onnxruntime-common/dist/esm/tensor-impl.js");const l=S=>{let g=1;for(let s=0;s{switch(S.location){case"cpu":return new r.Tensor(S.type,S.data,g);case"cpu-pinned":return new r.Tensor({location:"cpu-pinned",data:S.data,type:S.type,dims:g});case"texture":return new r.Tensor({location:"texture",texture:S.texture,type:S.type,dims:g});case"gpu-buffer":return new r.Tensor({location:"gpu-buffer",gpuBuffer:S.gpuBuffer,type:S.type,dims:g});default:throw new Error(`tensorReshape: tensor location ${S.location} is not supported`)}}},"./node_modules/onnxruntime-common/dist/esm/tensor.js":(t,e,n)=>{n.r(e),n.d(e,{Tensor:()=>l});var r=n("./node_modules/onnxruntime-common/dist/esm/tensor-impl.js");const l=r.Tensor},"./node_modules/onnxruntime-common/dist/esm/trace.js":(t,e,n)=>{n.r(e),n.d(e,{TRACE:()=>l,TRACE_FUNC_BEGIN:()=>S,TRACE_FUNC_END:()=>g});var r=n("./node_modules/onnxruntime-common/dist/esm/env-impl.js");const l=(s,c)=>{(typeof r.env.trace>"u"?!r.env.wasm.trace:!r.env.trace)||console.timeStamp(`${s}::ORT::${c}`)},m=(s,c)=>{var u;const p=((u=new Error().stack)==null?void 0:u.split(/\r\n|\r|\n/g))||[];let a=!1;for(let o=0;o{(typeof r.env.trace>"u"?!r.env.wasm.trace:!r.env.trace)||m("BEGIN",s)},g=s=>{(typeof r.env.trace>"u"?!r.env.wasm.trace:!r.env.trace)||m("END",s)}},"./node_modules/onnxruntime-common/dist/esm/training-session-impl.js":(t,e,n)=>{n.r(e),n.d(e,{TrainingSession:()=>S});var r=n("./node_modules/onnxruntime-common/dist/esm/backend-impl.js"),l=n("./node_modules/onnxruntime-common/dist/esm/tensor.js");const m="Training backend could not be resolved. Make sure you're using the correct configuration & WebAssembly files.";class S{constructor(s,c,p){this.handler=s,this.hasOptimizerModel=c,this.hasEvalModel=p}get trainingInputNames(){return this.handler.inputNames}get trainingOutputNames(){return this.handler.outputNames}get evalInputNames(){if(this.hasEvalModel)return this.handler.evalInputNames;throw new Error("This training session has no evalModel loaded.")}get evalOutputNames(){if(this.hasEvalModel)return this.handler.evalOutputNames;throw new Error("This training session has no evalModel loaded.")}static async create(s,c){const p=s.evalModel||"",a=s.optimizerModel||"",u=c||{},[o,_]=await(0,r.resolveBackendAndExecutionProviders)(u);if(o.createTrainingSessionHandler){const y=await o.createTrainingSessionHandler(s.checkpointState,s.trainModel,p,a,_);return new S(y,!!s.optimizerModel,!!s.evalModel)}else throw new Error(m)}typeNarrowingForRunStep(s,c,p,a,u){const o={};let _={};if(typeof p!="object"||p===null||p instanceof l.Tensor||Array.isArray(p))throw new TypeError("'feeds' must be an object that use input names as keys and OnnxValue as corresponding values.");let y=!0;if(typeof a=="object"){if(a===null)throw new TypeError("Unexpected argument[1]: cannot be null.");if(a instanceof l.Tensor)throw new TypeError("'fetches' cannot be a Tensor");if(Array.isArray(a)){if(a.length===0)throw new TypeError("'fetches' cannot be an empty array.");y=!1;for(const h of a){if(typeof h!="string")throw new TypeError("'fetches' must be a string array or an object.");if(c.indexOf(h)===-1)throw new RangeError(`'fetches' contains invalid output name: ${h}.`);o[h]=null}if(typeof u=="object"&&u!==null)_=u;else if(typeof u<"u")throw new TypeError("'options' must be an object.")}else{let h=!1;const v=Object.getOwnPropertyNames(a);for(const b of c)if(v.indexOf(b)!==-1){const T=a[b];(T===null||T instanceof l.Tensor)&&(h=!0,y=!1,o[b]=T)}if(h){if(typeof u=="object"&&u!==null)_=u;else if(typeof u<"u")throw new TypeError("'options' must be an object.")}else _=a}}else if(typeof a<"u")throw new TypeError("Unexpected argument[1]: must be 'fetches' or 'options'.");for(const h of s)if(typeof p[h]>"u")throw new Error(`input '${h}' is missing in 'feeds'.`);if(y)for(const h of c)o[h]=null;return[o,_]}convertHandlerReturnTypeToMapOfTensors(s){const c={};for(const p in s)if(Object.hasOwnProperty.call(s,p)){const a=s[p];a instanceof l.Tensor?c[p]=a:c[p]=new l.Tensor(a.type,a.data,a.dims)}return c}async lazyResetGrad(){await this.handler.lazyResetGrad()}async runTrainStep(s,c,p){const[a,u]=this.typeNarrowingForRunStep(this.trainingInputNames,this.trainingOutputNames,s,c,p),o=await this.handler.runTrainStep(s,a,u);return this.convertHandlerReturnTypeToMapOfTensors(o)}async runOptimizerStep(s){if(this.hasOptimizerModel)await this.handler.runOptimizerStep(s||{});else throw new Error("This TrainingSession has no OptimizerModel loaded.")}async runEvalStep(s,c,p){if(this.hasEvalModel){const[a,u]=this.typeNarrowingForRunStep(this.evalInputNames,this.evalOutputNames,s,c,p),o=await this.handler.runEvalStep(s,a,u);return this.convertHandlerReturnTypeToMapOfTensors(o)}else throw new Error("This TrainingSession has no EvalModel loaded.")}async getParametersSize(s=!0){return this.handler.getParametersSize(s)}async loadParametersBuffer(s,c=!0){const p=await this.getParametersSize(c);if(s.length!==4*p)throw new Error("Size of the buffer passed into loadParametersBuffer must match the number of parameters in the model. Please use getParametersSize method to check.");return this.handler.loadParametersBuffer(s,c)}async getContiguousParameters(s=!0){return this.handler.getContiguousParameters(s)}async release(){return this.handler.dispose()}}},"./node_modules/onnxruntime-common/dist/esm/training-session.js":(t,e,n)=>{n.r(e),n.d(e,{TrainingSession:()=>l});var r=n("./node_modules/onnxruntime-common/dist/esm/training-session-impl.js");const l=r.TrainingSession},"./node_modules/onnxruntime-common/dist/esm/version.js":(t,e,n)=>{n.r(e),n.d(e,{version:()=>r});const r="1.19.2"},"./node_modules/onnxruntime-web/dist/ort.webgpu.bundle.min.mjs":(t,e,n)=>{n.r(e),n.d(e,{InferenceSession:()=>ct,TRACE:()=>He,TRACE_FUNC_BEGIN:()=>xe,TRACE_FUNC_END:()=>De,Tensor:()=>he,TrainingSession:()=>Ft,default:()=>Vy,env:()=>R,registerBackend:()=>_});/*! + * ONNX Runtime Web v1.20.0-dev.20241016-2b8fc5529b + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. + */var r=Object.defineProperty,l=Object.getOwnPropertyDescriptor,m=Object.getOwnPropertyNames,S=Object.prototype.hasOwnProperty,g=(i=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(i,{get:(d,x)=>(typeof require<"u"?require:d)[x]}):i)(function(i){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+i+'" is not supported')}),s=(i,d)=>()=>(i&&(d=i(i=0)),d),c=(i,d)=>{for(var x in d)r(i,x,{get:d[x],enumerable:!0})},p=(i,d,x,C)=>{if(d&&typeof d=="object"||typeof d=="function")for(let E of m(d))!S.call(i,E)&&E!==x&&r(i,E,{get:()=>d[E],enumerable:!(C=l(d,E))||C.enumerable});return i},a=i=>p(r({},"__esModule",{value:!0}),i),u,o,_,y,h,v=s(()=>{u=new Map,o=[],_=(i,d,x)=>{if(d&&typeof d.init=="function"&&typeof d.createInferenceSessionHandler=="function"){let C=u.get(i);if(C===void 0)u.set(i,{backend:d,priority:x});else{if(C.priority>x)return;if(C.priority===x&&C.backend!==d)throw new Error(`cannot register backend "${i}" using priority ${x}`)}if(x>=0){let E=o.indexOf(i);E!==-1&&o.splice(E,1);for(let A=0;A{let d=u.get(i);if(!d)return"backend not found.";if(d.initialized)return d.backend;if(d.aborted)return d.error;{let x=!!d.initPromise;try{return x||(d.initPromise=d.backend.init(i)),await d.initPromise,d.initialized=!0,d.backend}catch(C){return x||(d.error=`${C}`,d.aborted=!0),d.error}finally{delete d.initPromise}}},h=async i=>{let d=i.executionProviders||[],x=d.map(z=>typeof z=="string"?z:z.name),C=x.length===0?o:x,E,A=[],P=new Set;for(let z of C){let B=await y(z);typeof B=="string"?A.push({name:z,err:B}):(E||(E=B),E===B&&P.add(z))}if(!E)throw new Error(`no available backend found. ERR: ${A.map(z=>`[${z.name}] ${z.err}`).join(", ")}`);for(let{name:z,err:B}of A)x.includes(z)&&console.warn(`removing requested execution provider "${z}" from session options because it is not available: ${B}`);let L=d.filter(z=>P.has(typeof z=="string"?z:z.name));return[E,new Proxy(i,{get:(z,B)=>B==="executionProviders"?L:Reflect.get(z,B)})]}}),b=s(()=>{v()}),T,M=s(()=>{T="1.20.0-dev.20241016-2b8fc5529b"}),O,F,D=s(()=>{M(),O="warning",F={wasm:{},webgl:{},webgpu:{},versions:{common:T},set logLevel(i){if(i!==void 0){if(typeof i!="string"||["verbose","info","warning","error","fatal"].indexOf(i)===-1)throw new Error(`Unsupported logging level: ${i}`);O=i}},get logLevel(){return O}},Object.defineProperty(F,"logLevel",{enumerable:!0})}),R,Q=s(()=>{D(),R=F}),ie,pe,ke=s(()=>{ie=(i,d)=>{let x=typeof document<"u"?document.createElement("canvas"):new OffscreenCanvas(1,1);x.width=i.dims[3],x.height=i.dims[2];let C=x.getContext("2d");if(C!=null){let E,A;(d==null?void 0:d.tensorLayout)!==void 0&&d.tensorLayout==="NHWC"?(E=i.dims[2],A=i.dims[3]):(E=i.dims[3],A=i.dims[2]);let P=(d==null?void 0:d.format)!==void 0?d.format:"RGB",L=d==null?void 0:d.norm,z,B;L===void 0||L.mean===void 0?z=[255,255,255,255]:typeof L.mean=="number"?z=[L.mean,L.mean,L.mean,L.mean]:(z=[L.mean[0],L.mean[1],L.mean[2],0],L.mean[3]!==void 0&&(z[3]=L.mean[3])),L===void 0||L.bias===void 0?B=[0,0,0,0]:typeof L.bias=="number"?B=[L.bias,L.bias,L.bias,L.bias]:(B=[L.bias[0],L.bias[1],L.bias[2],0],L.bias[3]!==void 0&&(B[3]=L.bias[3]));let X=A*E,Y=0,$=X,ae=X*2,ce=-1;P==="RGBA"?(Y=0,$=X,ae=X*2,ce=X*3):P==="RGB"?(Y=0,$=X,ae=X*2):P==="RBG"&&(Y=0,ae=X,$=X*2);for(let le=0;le{let x=typeof document<"u"?document.createElement("canvas").getContext("2d"):new OffscreenCanvas(1,1).getContext("2d"),C;if(x!=null){let E,A,P;(d==null?void 0:d.tensorLayout)!==void 0&&d.tensorLayout==="NHWC"?(E=i.dims[2],A=i.dims[1],P=i.dims[3]):(E=i.dims[3],A=i.dims[2],P=i.dims[1]);let L=d!==void 0&&d.format!==void 0?d.format:"RGB",z=d==null?void 0:d.norm,B,X;z===void 0||z.mean===void 0?B=[255,255,255,255]:typeof z.mean=="number"?B=[z.mean,z.mean,z.mean,z.mean]:(B=[z.mean[0],z.mean[1],z.mean[2],255],z.mean[3]!==void 0&&(B[3]=z.mean[3])),z===void 0||z.bias===void 0?X=[0,0,0,0]:typeof z.bias=="number"?X=[z.bias,z.bias,z.bias,z.bias]:(X=[z.bias[0],z.bias[1],z.bias[2],0],z.bias[3]!==void 0&&(X[3]=z.bias[3]));let Y=A*E;if(d!==void 0&&(d.format!==void 0&&P===4&&d.format!=="RGBA"||P===3&&d.format!=="RGB"&&d.format!=="BGR"))throw new Error("Tensor format doesn't match input tensor dims");let $=4,ae=0,ce=1,le=2,Se=3,Ee=0,be=Y,Ve=Y*2,je=-1;L==="RGBA"?(Ee=0,be=Y,Ve=Y*2,je=Y*3):L==="RGB"?(Ee=0,be=Y,Ve=Y*2):L==="RBG"&&(Ee=0,Ve=Y,be=Y*2),C=x.createImageData(E,A);for(let et=0;et{Ae(),Te=(i,d)=>{var je,et,_t;if(i===void 0)throw new Error("Image buffer must be defined");if(d.height===void 0||d.width===void 0)throw new Error("Image height and width must be defined");if(d.tensorLayout==="NHWC")throw new Error("NHWC Tensor layout is not supported yet");let{height:x,width:C}=d,E=(je=d.norm)!=null?je:{mean:255,bias:0},A,P;typeof E.mean=="number"?A=[E.mean,E.mean,E.mean,E.mean]:A=[E.mean[0],E.mean[1],E.mean[2],(et=E.mean[3])!=null?et:255],typeof E.bias=="number"?P=[E.bias,E.bias,E.bias,E.bias]:P=[E.bias[0],E.bias[1],E.bias[2],(_t=E.bias[3])!=null?_t:0];let L=d.format!==void 0?d.format:"RGBA",z=d.tensorFormat!==void 0&&d.tensorFormat!==void 0?d.tensorFormat:"RGB",B=x*C,X=z==="RGBA"?new Float32Array(B*4):new Float32Array(B*3),Y=4,$=0,ae=1,ce=2,le=3,Se=0,Ee=B,be=B*2,Ve=-1;L==="RGB"&&(Y=3,$=0,ae=1,ce=2,le=-1),z==="RGBA"?Ve=B*3:z==="RBG"?(Se=0,be=B,Ee=B*2):z==="BGR"&&(be=0,Ee=B,Se=B*2);for(let ot=0;ot{let x=typeof HTMLImageElement<"u"&&i instanceof HTMLImageElement,C=typeof ImageData<"u"&&i instanceof ImageData,E=typeof ImageBitmap<"u"&&i instanceof ImageBitmap,A=typeof i=="string",P,L=d!=null?d:{},z=()=>{if(typeof document<"u")return document.createElement("canvas");if(typeof OffscreenCanvas<"u")return new OffscreenCanvas(1,1);throw new Error("Canvas is not supported")},B=X=>typeof HTMLCanvasElement<"u"&&X instanceof HTMLCanvasElement||X instanceof OffscreenCanvas?X.getContext("2d"):null;if(x){let X=z();X.width=i.width,X.height=i.height;let Y=B(X);if(Y!=null){let $=i.height,ae=i.width;if(d!==void 0&&d.resizedHeight!==void 0&&d.resizedWidth!==void 0&&($=d.resizedHeight,ae=d.resizedWidth),d!==void 0){if(L=d,d.tensorFormat!==void 0)throw new Error("Image input config format must be RGBA for HTMLImageElement");L.tensorFormat="RGBA",L.height=$,L.width=ae}else L.tensorFormat="RGBA",L.height=$,L.width=ae;Y.drawImage(i,0,0),P=Y.getImageData(0,0,ae,$).data}else throw new Error("Can not access image data")}else if(C){let X,Y;if(d!==void 0&&d.resizedWidth!==void 0&&d.resizedHeight!==void 0?(X=d.resizedHeight,Y=d.resizedWidth):(X=i.height,Y=i.width),d!==void 0&&(L=d),L.format="RGBA",L.height=X,L.width=Y,d!==void 0){let $=z();$.width=Y,$.height=X;let ae=B($);if(ae!=null)ae.putImageData(i,0,0),P=ae.getImageData(0,0,Y,X).data;else throw new Error("Can not access image data")}else P=i.data}else if(E){if(d===void 0)throw new Error("Please provide image config with format for Imagebitmap");let X=z();X.width=i.width,X.height=i.height;let Y=B(X);if(Y!=null){let $=i.height,ae=i.width;return Y.drawImage(i,0,0,ae,$),P=Y.getImageData(0,0,ae,$).data,L.height=$,L.width=ae,Te(P,L)}else throw new Error("Can not access image data")}else{if(A)return new Promise((X,Y)=>{let $=z(),ae=B($);if(!i||!ae)return Y();let ce=new Image;ce.crossOrigin="Anonymous",ce.src=i,ce.onload=()=>{$.width=ce.width,$.height=ce.height,ae.drawImage(ce,0,0,$.width,$.height);let le=ae.getImageData(0,0,$.width,$.height);L.height=$.height,L.width=$.width,X(Te(le.data,L))}});throw new Error("Input data provided is not supported - aborted tensor creation")}if(P!==void 0)return Te(P,L);throw new Error("Input data provided is not supported - aborted tensor creation")},ze=(i,d)=>{let{width:x,height:C,download:E,dispose:A}=d,P=[1,C,x,4];return new Ue({location:"texture",type:"float32",texture:i,dims:P,download:E,dispose:A})},Ze=(i,d)=>{let{dataType:x,dims:C,download:E,dispose:A}=d;return new Ue({location:"gpu-buffer",type:x!=null?x:"float32",gpuBuffer:i,dims:C,download:E,dispose:A})},Ie=(i,d)=>{let{dataType:x,dims:C,download:E,dispose:A}=d;return new Ue({location:"ml-tensor",type:x!=null?x:"float32",mlTensor:i,dims:C,download:E,dispose:A})},ee=(i,d,x)=>new Ue({location:"cpu-pinned",type:i,data:d,dims:x!=null?x:[d.length]})}),K,se,fe,de,ue=s(()=>{K=new Map([["float32",Float32Array],["uint8",Uint8Array],["int8",Int8Array],["uint16",Uint16Array],["int16",Int16Array],["int32",Int32Array],["bool",Uint8Array],["float64",Float64Array],["uint32",Uint32Array],["int4",Uint8Array],["uint4",Uint8Array]]),se=new Map([[Float32Array,"float32"],[Uint8Array,"uint8"],[Int8Array,"int8"],[Uint16Array,"uint16"],[Int16Array,"int16"],[Int32Array,"int32"],[Float64Array,"float64"],[Uint32Array,"uint32"]]),fe=!1,de=()=>{if(!fe){fe=!0;let i=typeof BigInt64Array<"u"&&BigInt64Array.from,d=typeof BigUint64Array<"u"&&BigUint64Array.from,x=typeof Float16Array<"u"&&Float16Array.from;i&&(K.set("int64",BigInt64Array),se.set(BigInt64Array,"int64")),d&&(K.set("uint64",BigUint64Array),se.set(BigUint64Array,"uint64")),x?(K.set("float16",Float16Array),se.set(Float16Array,"float16")):K.set("float16",Uint16Array)}}}),te,ge,Oe=s(()=>{Ae(),te=i=>{let d=1;for(let x=0;x{switch(i.location){case"cpu":return new Ue(i.type,i.data,d);case"cpu-pinned":return new Ue({location:"cpu-pinned",data:i.data,type:i.type,dims:d});case"texture":return new Ue({location:"texture",texture:i.texture,type:i.type,dims:d});case"gpu-buffer":return new Ue({location:"gpu-buffer",gpuBuffer:i.gpuBuffer,type:i.type,dims:d});case"ml-tensor":return new Ue({location:"ml-tensor",mlTensor:i.mlTensor,type:i.type,dims:d});default:throw new Error(`tensorReshape: tensor location ${i.location} is not supported`)}}}),Ue,Ae=s(()=>{ke(),W(),ue(),Oe(),Ue=class{constructor(i,d,x){de();let C,E;if(typeof i=="object"&&"location"in i)switch(this.dataLocation=i.location,C=i.type,E=i.dims,i.location){case"cpu-pinned":{let P=K.get(C);if(!P)throw new TypeError(`unsupported type "${C}" to create tensor from pinned buffer`);if(!(i.data instanceof P))throw new TypeError(`buffer should be of type ${P.name}`);this.cpuData=i.data;break}case"texture":{if(C!=="float32")throw new TypeError(`unsupported type "${C}" to create tensor from texture`);this.gpuTextureData=i.texture,this.downloader=i.download,this.disposer=i.dispose;break}case"gpu-buffer":{if(C!=="float32"&&C!=="float16"&&C!=="int32"&&C!=="int64"&&C!=="uint32"&&C!=="uint8"&&C!=="bool"&&C!=="uint4"&&C!=="int4")throw new TypeError(`unsupported type "${C}" to create tensor from gpu buffer`);this.gpuBufferData=i.gpuBuffer,this.downloader=i.download,this.disposer=i.dispose;break}case"ml-tensor":{if(C!=="float32"&&C!=="float16"&&C!=="int32"&&C!=="int64"&&C!=="uint32"&&C!=="uint64"&&C!=="int8"&&C!=="uint8"&&C!=="bool")throw new TypeError(`unsupported type "${C}" to create tensor from MLTensor`);this.mlTensorData=i.mlTensor,this.downloader=i.download,this.disposer=i.dispose;break}default:throw new Error(`Tensor constructor: unsupported location '${this.dataLocation}'`)}else{let P,L;if(typeof i=="string")if(C=i,L=x,i==="string"){if(!Array.isArray(d))throw new TypeError("A string tensor's data must be a string array.");P=d}else{let z=K.get(i);if(z===void 0)throw new TypeError(`Unsupported tensor type: ${i}.`);if(Array.isArray(d)){if(i==="float16"&&z===Uint16Array||i==="uint4"||i==="int4")throw new TypeError(`Creating a ${i} tensor from number array is not supported. Please use ${z.name} as data.`);i==="uint64"||i==="int64"?P=z.from(d,BigInt):P=z.from(d)}else if(d instanceof z)P=d;else if(d instanceof Uint8ClampedArray)if(i==="uint8")P=Uint8Array.from(d);else throw new TypeError("A Uint8ClampedArray tensor's data must be type of uint8");else throw new TypeError(`A ${C} tensor's data must be type of ${z}`)}else if(L=d,Array.isArray(i)){if(i.length===0)throw new TypeError("Tensor type cannot be inferred from an empty array.");let z=typeof i[0];if(z==="string")C="string",P=i;else if(z==="boolean")C="bool",P=Uint8Array.from(i);else throw new TypeError(`Invalid element type of data array: ${z}.`)}else if(i instanceof Uint8ClampedArray)C="uint8",P=Uint8Array.from(i);else{let z=se.get(i.constructor);if(z===void 0)throw new TypeError(`Unsupported type for tensor data: ${i.constructor}.`);C=z,P=i}if(L===void 0)L=[P.length];else if(!Array.isArray(L))throw new TypeError("A tensor's dims must be a number array");E=L,this.cpuData=P,this.dataLocation="cpu"}let A=te(E);if(this.cpuData&&A!==this.cpuData.length&&!((C==="uint4"||C==="int4")&&Math.ceil(A/2)===this.cpuData.length))throw new Error(`Tensor's size(${A}) does not match data length(${this.cpuData.length}).`);this.type=C,this.dims=E,this.size=A}static async fromImage(i,d){return Re(i,d)}static fromTexture(i,d){return ze(i,d)}static fromGpuBuffer(i,d){return Ze(i,d)}static fromMLTensor(i,d){return Ie(i,d)}static fromPinnedBuffer(i,d,x){return ee(i,d,x)}toDataURL(i){return ie(this,i)}toImageData(i){return pe(this,i)}get data(){if(this.ensureValid(),!this.cpuData)throw new Error("The data is not on CPU. Use `getData()` to download GPU data to CPU, or use `texture` or `gpuBuffer` property to access the GPU data directly.");return this.cpuData}get location(){return this.dataLocation}get texture(){if(this.ensureValid(),!this.gpuTextureData)throw new Error("The data is not stored as a WebGL texture.");return this.gpuTextureData}get gpuBuffer(){if(this.ensureValid(),!this.gpuBufferData)throw new Error("The data is not stored as a WebGPU buffer.");return this.gpuBufferData}get mlTensor(){if(this.ensureValid(),!this.mlTensorData)throw new Error("The data is not stored as a WebNN MLTensor.");return this.mlTensorData}async getData(i){switch(this.ensureValid(),this.dataLocation){case"cpu":case"cpu-pinned":return this.data;case"texture":case"gpu-buffer":case"ml-tensor":{if(!this.downloader)throw new Error("The current tensor is not created with a specified data downloader.");if(this.isDownloading)throw new Error("The current tensor is being downloaded.");try{this.isDownloading=!0;let d=await this.downloader();return this.downloader=void 0,this.dataLocation="cpu",this.cpuData=d,i&&this.disposer&&(this.disposer(),this.disposer=void 0),d}finally{this.isDownloading=!1}}default:throw new Error(`cannot get data from location: ${this.dataLocation}`)}}dispose(){if(this.isDownloading)throw new Error("The current tensor is being downloaded.");this.disposer&&(this.disposer(),this.disposer=void 0),this.cpuData=void 0,this.gpuTextureData=void 0,this.gpuBufferData=void 0,this.mlTensorData=void 0,this.downloader=void 0,this.isDownloading=void 0,this.dataLocation="none"}ensureValid(){if(this.dataLocation==="none")throw new Error("The tensor is disposed.")}reshape(i){if(this.ensureValid(),this.downloader||this.disposer)throw new Error("Cannot reshape a tensor that owns GPU resource.");return ge(this,i)}}}),he,Fe=s(()=>{Ae(),he=Ue}),He,$e,xe,De,Ge=s(()=>{D(),He=(i,d)=>{(typeof F.trace>"u"?!F.wasm.trace:!F.trace)||console.timeStamp(`${i}::ORT::${d}`)},$e=(i,d)=>{var E;let x=((E=new Error().stack)==null?void 0:E.split(/\r\n|\r|\n/g))||[],C=!1;for(let A=0;A{(typeof F.trace>"u"?!F.wasm.trace:!F.trace)||$e("BEGIN",i)},De=i=>{(typeof F.trace>"u"?!F.wasm.trace:!F.trace)||$e("END",i)}}),Ne,tt=s(()=>{v(),Fe(),Ge(),Ne=class aE{constructor(d){this.handler=d}async run(d,x,C){xe();let E={},A={};if(typeof d!="object"||d===null||d instanceof he||Array.isArray(d))throw new TypeError("'feeds' must be an object that use input names as keys and OnnxValue as corresponding values.");let P=!0;if(typeof x=="object"){if(x===null)throw new TypeError("Unexpected argument[1]: cannot be null.");if(x instanceof he)throw new TypeError("'fetches' cannot be a Tensor");if(Array.isArray(x)){if(x.length===0)throw new TypeError("'fetches' cannot be an empty array.");P=!1;for(let B of x){if(typeof B!="string")throw new TypeError("'fetches' must be a string array or an object.");if(this.outputNames.indexOf(B)===-1)throw new RangeError(`'fetches' contains invalid output name: ${B}.`);E[B]=null}if(typeof C=="object"&&C!==null)A=C;else if(typeof C<"u")throw new TypeError("'options' must be an object.")}else{let B=!1,X=Object.getOwnPropertyNames(x);for(let Y of this.outputNames)if(X.indexOf(Y)!==-1){let $=x[Y];($===null||$ instanceof he)&&(B=!0,P=!1,E[Y]=$)}if(B){if(typeof C=="object"&&C!==null)A=C;else if(typeof C<"u")throw new TypeError("'options' must be an object.")}else A=x}}else if(typeof x<"u")throw new TypeError("Unexpected argument[1]: must be 'fetches' or 'options'.");for(let B of this.inputNames)if(typeof d[B]>"u")throw new Error(`input '${B}' is missing in 'feeds'.`);if(P)for(let B of this.outputNames)E[B]=null;let L=await this.handler.run(d,E,A),z={};for(let B in L)if(Object.hasOwnProperty.call(L,B)){let X=L[B];X instanceof he?z[B]=X:z[B]=new he(X.type,X.data,X.dims)}return De(),z}async release(){return this.handler.dispose()}static async create(d,x,C,E){xe();let A,P={};if(typeof d=="string"){if(A=d,typeof x=="object"&&x!==null)P=x;else if(typeof x<"u")throw new TypeError("'options' must be an object.")}else if(d instanceof Uint8Array){if(A=d,typeof x=="object"&&x!==null)P=x;else if(typeof x<"u")throw new TypeError("'options' must be an object.")}else if(d instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&d instanceof SharedArrayBuffer){let X=d,Y=0,$=d.byteLength;if(typeof x=="object"&&x!==null)P=x;else if(typeof x=="number"){if(Y=x,!Number.isSafeInteger(Y))throw new RangeError("'byteOffset' must be an integer.");if(Y<0||Y>=X.byteLength)throw new RangeError(`'byteOffset' is out of range [0, ${X.byteLength}).`);if($=d.byteLength-Y,typeof C=="number"){if($=C,!Number.isSafeInteger($))throw new RangeError("'byteLength' must be an integer.");if($<=0||Y+$>X.byteLength)throw new RangeError(`'byteLength' is out of range (0, ${X.byteLength-Y}].`);if(typeof E=="object"&&E!==null)P=E;else if(typeof E<"u")throw new TypeError("'options' must be an object.")}else if(typeof C<"u")throw new TypeError("'byteLength' must be a number.")}else if(typeof x<"u")throw new TypeError("'options' must be an object.");A=new Uint8Array(X,Y,$)}else throw new TypeError("Unexpected argument[0]: must be 'path' or 'buffer'.");let[L,z]=await h(P),B=await L.createInferenceSessionHandler(A,z);return De(),new aE(B)}startProfiling(){this.handler.startProfiling()}endProfiling(){this.handler.endProfiling()}get inputNames(){return this.handler.inputNames}get outputNames(){return this.handler.outputNames}}}),ct,J=s(()=>{tt(),ct=Ne}),_e=s(()=>{}),G=s(()=>{}),Pe=s(()=>{}),We=s(()=>{}),ht,wt,Xt=s(()=>{v(),Fe(),ht="Training backend could not be resolved. Make sure you're using the correct configuration & WebAssembly files.",wt=class oE{constructor(d,x,C){this.handler=d,this.hasOptimizerModel=x,this.hasEvalModel=C}get trainingInputNames(){return this.handler.inputNames}get trainingOutputNames(){return this.handler.outputNames}get evalInputNames(){if(this.hasEvalModel)return this.handler.evalInputNames;throw new Error("This training session has no evalModel loaded.")}get evalOutputNames(){if(this.hasEvalModel)return this.handler.evalOutputNames;throw new Error("This training session has no evalModel loaded.")}static async create(d,x){let C=d.evalModel||"",E=d.optimizerModel||"",A=x||{},[P,L]=await h(A);if(P.createTrainingSessionHandler){let z=await P.createTrainingSessionHandler(d.checkpointState,d.trainModel,C,E,L);return new oE(z,!!d.optimizerModel,!!d.evalModel)}else throw new Error(ht)}typeNarrowingForRunStep(d,x,C,E,A){let P={},L={};if(typeof C!="object"||C===null||C instanceof he||Array.isArray(C))throw new TypeError("'feeds' must be an object that use input names as keys and OnnxValue as corresponding values.");let z=!0;if(typeof E=="object"){if(E===null)throw new TypeError("Unexpected argument[1]: cannot be null.");if(E instanceof he)throw new TypeError("'fetches' cannot be a Tensor");if(Array.isArray(E)){if(E.length===0)throw new TypeError("'fetches' cannot be an empty array.");z=!1;for(let B of E){if(typeof B!="string")throw new TypeError("'fetches' must be a string array or an object.");if(x.indexOf(B)===-1)throw new RangeError(`'fetches' contains invalid output name: ${B}.`);P[B]=null}if(typeof A=="object"&&A!==null)L=A;else if(typeof A<"u")throw new TypeError("'options' must be an object.")}else{let B=!1,X=Object.getOwnPropertyNames(E);for(let Y of x)if(X.indexOf(Y)!==-1){let $=E[Y];($===null||$ instanceof he)&&(B=!0,z=!1,P[Y]=$)}if(B){if(typeof A=="object"&&A!==null)L=A;else if(typeof A<"u")throw new TypeError("'options' must be an object.")}else L=E}}else if(typeof E<"u")throw new TypeError("Unexpected argument[1]: must be 'fetches' or 'options'.");for(let B of d)if(typeof C[B]>"u")throw new Error(`input '${B}' is missing in 'feeds'.`);if(z)for(let B of x)P[B]=null;return[P,L]}convertHandlerReturnTypeToMapOfTensors(d){let x={};for(let C in d)if(Object.hasOwnProperty.call(d,C)){let E=d[C];E instanceof he?x[C]=E:x[C]=new he(E.type,E.data,E.dims)}return x}async lazyResetGrad(){await this.handler.lazyResetGrad()}async runTrainStep(d,x,C){let[E,A]=this.typeNarrowingForRunStep(this.trainingInputNames,this.trainingOutputNames,d,x,C),P=await this.handler.runTrainStep(d,E,A);return this.convertHandlerReturnTypeToMapOfTensors(P)}async runOptimizerStep(d){if(this.hasOptimizerModel)await this.handler.runOptimizerStep(d||{});else throw new Error("This TrainingSession has no OptimizerModel loaded.")}async runEvalStep(d,x,C){if(this.hasEvalModel){let[E,A]=this.typeNarrowingForRunStep(this.evalInputNames,this.evalOutputNames,d,x,C),P=await this.handler.runEvalStep(d,E,A);return this.convertHandlerReturnTypeToMapOfTensors(P)}else throw new Error("This TrainingSession has no EvalModel loaded.")}async getParametersSize(d=!0){return this.handler.getParametersSize(d)}async loadParametersBuffer(d,x=!0){let C=await this.getParametersSize(x);if(d.length!==4*C)throw new Error("Size of the buffer passed into loadParametersBuffer must match the number of parameters in the model. Please use getParametersSize method to check.");return this.handler.loadParametersBuffer(d,x)}async getContiguousParameters(d=!0){return this.handler.getContiguousParameters(d)}async release(){return this.handler.dispose()}}}),Ft,jt=s(()=>{Xt(),Ft=wt}),Qt={};c(Qt,{InferenceSession:()=>ct,TRACE:()=>He,TRACE_FUNC_BEGIN:()=>xe,TRACE_FUNC_END:()=>De,Tensor:()=>he,TrainingSession:()=>Ft,env:()=>R,registerBackend:()=>_});var Mt=s(()=>{b(),Q(),J(),Fe(),_e(),G(),Ge(),Pe(),We(),jt()}),Zt=s(()=>{}),Cn={};c(Cn,{default:()=>lr});var or,Gn,lr,bt=s(()=>{var i;N_(),Br(),mn(),or="ort-wasm-proxy-worker",Gn=((i=globalThis.self)==null?void 0:i.name)===or,Gn&&(self.onmessage=d=>{let{type:x,in:C}=d.data;try{switch(x){case"init-wasm":zr(C.wasm).then(()=>{Pm(C).then(()=>{postMessage({type:x})},E=>{postMessage({type:x,err:E})})},E=>{postMessage({type:x,err:E})});break;case"init-ep":{let{epName:E,env:A}=C;km(A,E).then(()=>{postMessage({type:x})},P=>{postMessage({type:x,err:P})});break}case"copy-from":{let{buffer:E}=C,A=_p(E);postMessage({type:x,out:A});break}case"create":{let{model:E,options:A}=C;vp(E,A).then(P=>{postMessage({type:x,out:P})},P=>{postMessage({type:x,err:P})});break}case"release":Om(C),postMessage({type:x});break;case"run":{let{sessionId:E,inputIndices:A,inputs:P,outputIndices:L,options:z}=C;Am(E,A,P,L,new Array(L.length).fill(null),z).then(B=>{B.some(X=>X[3]!=="cpu")?postMessage({type:x,err:"Proxy does not support non-cpu tensor location."}):postMessage({type:x,out:B},Fm([...P,...B]))},B=>{postMessage({type:x,err:B})});break}case"end-profiling":Im(C),postMessage({type:x});break;default:}}catch(E){postMessage({type:x,err:E})}}),lr=Gn?null:d=>new Worker(d!=null?d:xt,{type:"module",name:or})}),Me={};c(Me,{default:()=>Ct});var Je,lt,Ct,at=s(()=>{var i;lt=(Je=import.meta.url,async function(d={}){var Jx;function x(){return Wn.buffer!=Mn.buffer&&Si(),Mn}function C(){return Wn.buffer!=Mn.buffer&&Si(),Rn}function E(){return Wn.buffer!=Mn.buffer&&Si(),ft}function A(){return Wn.buffer!=Mn.buffer&&Si(),Yt}function P(){return Wn.buffer!=Mn.buffer&&Si(),yn}function L(){return Wn.buffer!=Mn.buffer&&Si(),wr}function z(){return Wn.buffer!=Mn.buffer&&Si(),ri}function B(){return Wn.buffer!=Mn.buffer&&Si(),bp}var X,Y,$=Object.assign({},d),ae=new Promise((I,V)=>{X=I,Y=V}),ce=typeof window=="object",le=typeof importScripts=="function",Se=le&&self.name=="em-pthread";$.mountExternalData=(I,V)=>{I.startsWith("./")&&(I=I.substring(2)),($.Fb||($.Fb=new Map)).set(I,V)},$.unmountExternalData=()=>{delete $.Fb};var Ee=(Jx=globalThis.SharedArrayBuffer)!=null?Jx:new WebAssembly.Memory({initial:0,maximum:0,shared:!0}).buffer.constructor;let be=()=>{let I=(q,oe,ye)=>(...qe)=>{let Tt=ho,Dt=oe==null?void 0:oe();qe=q(...qe);let nn=oe==null?void 0:oe();return Dt!==nn&&(q=nn,ye(Dt),oe=ye=null),ho!=Tt?new Promise((un,On)=>{tg={resolve:un,reject:On}}):qe},V=q=>async(...oe)=>{var ye;try{if($.Eb)throw Error("Session already started");let qe=$.Eb={fc:oe[0],errors:[]},Tt=await q(...oe);if($.Eb!==qe)throw Error("Session mismatch");(ye=$.Gb)==null||ye.flush();let Dt=qe.errors;if(0un),0$._OrtCreateSession,q=>$._OrtCreateSession=q),$._OrtRun=V(I($._OrtRun,()=>$._OrtRun,q=>$._OrtRun=q)),$._OrtRunWithBinding=V(I($._OrtRunWithBinding,()=>$._OrtRunWithBinding,q=>$._OrtRunWithBinding=q)),$._OrtBindInput=I($._OrtBindInput,()=>$._OrtBindInput,q=>$._OrtBindInput=q),be=void 0};$.jsepInit=(I,V)=>{if(be==null||be(),I==="webgpu"){[$.Gb,$.Ub,$.Yb,$.Nb,$.Xb,$.jb,$.Zb,$.bc,$.Vb,$.Wb,$.$b]=V;let q=$.Gb;$.jsepRegisterBuffer=(oe,ye,qe,Tt)=>q.registerBuffer(oe,ye,qe,Tt),$.jsepGetBuffer=oe=>q.getBuffer(oe),$.jsepCreateDownloader=(oe,ye,qe)=>q.createDownloader(oe,ye,qe),$.jsepOnReleaseSession=oe=>{q.onReleaseSession(oe)},$.jsepOnRunStart=oe=>q.onRunStart(oe),$.cc=(oe,ye)=>{q.upload(oe,ye)}}else if(I==="webnn"){[$.Gb,$.ac,$.Ob,$.jsepEnsureTensor,$.dc,$.jsepDownloadTensor]=V,$.jsepReleaseTensorId=$.Ob;let q=$.Gb;$.jsepOnRunStart=oe=>q.onRunStart(oe),$.jsepRegisterMLContext=(oe,ye)=>{q.registerMLContext(oe,ye)},$.jsepOnReleaseSession=oe=>{q.onReleaseSession(oe)},$.jsepCreateMLTensorDownloader=(oe,ye)=>q.createMLTensorDownloader(oe,ye),$.jsepRegisterMLTensor=(oe,ye,qe)=>q.registerMLTensor(oe,ye,qe)}};var Ve,je,et=Object.assign({},$),_t="./this.program",ot=(I,V)=>{throw V},$t="";(ce||le)&&(le?$t=self.location.href:typeof document<"u"&&document.currentScript&&($t=document.currentScript.src),Je&&($t=Je),$t=$t.startsWith("blob:")?"":$t.substr(0,$t.replace(/[?#].*/,"").lastIndexOf("/")+1),le&&(je=I=>{var V=new XMLHttpRequest;return V.open("GET",I,!1),V.responseType="arraybuffer",V.send(null),new Uint8Array(V.response)}),Ve=(I,V,q)=>{var oe=new XMLHttpRequest;oe.open("GET",I,!0),oe.responseType="arraybuffer",oe.onload=()=>{oe.status==200||oe.status==0&&oe.response?V(oe.response):q()},oe.onerror=q,oe.send(null)});var Ht,dn=console.log.bind(console),Pn=console.error.bind(console),kn=dn,hn=Pn;if(Object.assign($,et),et=null,Se){let I=function(V){try{var q=V.data,oe=q.cmd;if(oe==="load"){let ye=[];self.onmessage=qe=>ye.push(qe),self.startWorker=()=>{postMessage({cmd:"loaded"});for(let qe of ye)I(qe);self.onmessage=I};for(let qe of q.handlers)$[qe]&&!$[qe].proxy||($[qe]=(...Tt)=>{postMessage({Mb:"callHandler",oc:qe,args:Tt})},qe=="print"&&(kn=$[qe]),qe=="printErr"&&(hn=$[qe]));Wn=q.wasmMemory,Si(),Xn(q.wasmModule)}else if(oe==="run"){Bw(q.pthread_ptr,0,0,1,0,0),Qm(q.pthread_ptr),Gy(),js(),Or||(jx(),Or=!0);try{rv(q.start_routine,q.arg)}catch(ye){if(ye!="unwind")throw ye}}else oe==="cancel"?Fp()&&Bv(-1):q.target!=="setimmediate"&&(oe==="checkMailbox"?Or&&Ep():oe&&(hn(`worker: received unknown command ${oe}`),hn(q)))}catch(ye){throw Wx(),ye}};var Xn,Or=!1;hn=function(...V){V=V.join(" "),console.error(V)},self.alert=function(...V){postMessage({Mb:"alert",text:V.join(" "),qc:Fp()})},$.instantiateWasm=(V,q)=>new Promise(oe=>{Xn=ye=>{ye=new WebAssembly.Instance(ye,jm()),q(ye),oe()}}),self.onunhandledrejection=V=>{throw V.reason||V},self.onmessage=I}$.wasmBinary&&(Ht=$.wasmBinary);var Wn,Yn,Rt,Mn,Rn,ft,Yt,yn,wr,ri,ui,Kl,bp,Gi=!1;function Si(){var I=Wn.buffer;$.HEAP8=Mn=new Int8Array(I),$.HEAP16=ft=new Int16Array(I),$.HEAPU8=Rn=new Uint8Array(I),$.HEAPU16=Yt=new Uint16Array(I),$.HEAP32=yn=new Int32Array(I),$.HEAPU32=wr=new Uint32Array(I),$.HEAPF32=ri=new Float32Array(I),$.HEAPF64=bp=new Float64Array(I),$.HEAP64=ui=new BigInt64Array(I),$.HEAPU64=Kl=new BigUint64Array(I)}if(!Se){if(!((Wn=new WebAssembly.Memory({initial:256,maximum:65536,shared:!0})).buffer instanceof Ee))throw hn("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"),Error("bad memory");Si()}var as=[],ci=[],vi=[],br=0,Fr=null;function Fh(){if(--br==0&&Fr){var I=Fr;Fr=null,I()}}function Rd(I){throw hn(I="Aborted("+I+")"),Gi=!0,Rt=1,I=new WebAssembly.RuntimeError(I+". Build with -sASSERTIONS for more info."),Y(I),I}var Nm,Q_=I=>I.startsWith("data:application/octet-stream;base64,"),J_=I=>I.startsWith("file://");function Z_(I){if(I==Nm&&Ht)return new Uint8Array(Ht);if(je)return je(I);throw"both async and sync fetching of the wasm failed"}function ev(I,V,q){return function(oe){if(!Ht&&(ce||le)){if(typeof fetch=="function"&&!J_(oe))return fetch(oe,{credentials:"same-origin"}).then(ye=>{if(!ye.ok)throw`failed to load wasm binary file at '${oe}'`;return ye.arrayBuffer()}).catch(()=>Z_(oe));if(Ve)return new Promise((ye,qe)=>{Ve(oe,Tt=>ye(new Uint8Array(Tt)),qe)})}return Promise.resolve().then(()=>Z_(oe))}(I).then(oe=>WebAssembly.instantiate(oe,V)).then(q,oe=>{hn(`failed to asynchronously prepare wasm: ${oe}`),Rd(oe)})}function jm(){return{a:{O:Uy,Aa:Wm,b:Hy,aa:sv,B:lv,qa:uv,Y:dv,_:fv,ra:Tp,oa:hv,ha:Cp,na:pv,L:mv,Z:gv,W:Ti,pa:os,X:_v,wa:yv,F:Xy,Q:bv,P:Yy,E:Qy,u:Jy,q:xv,G:Sv,A:sw,R:aw,ua:ow,ka:lw,U:uw,ba:cw,H:dw,ja:Qm,ta:fw,t:hw,x:mw,o:Ss,l:gw,c:Km,n:_w,j:yw,w:ww,p:bw,g:xw,s:Ov,m:Sw,e:Tw,k:Cw,i:sg,h:ag,d:Mw,ea:Ew,fa:Pw,ga:kw,ca:Fv,da:$v,T:Ow,f:Aw,D:Iw,I:Fw,M:$w,y:Dw,sa:Lw,V:Rw,v:Lv,z:zw,N:f,S:w,za:we,ya:Be,la:At,ma:Nt,$:Um,C:sn,K:wn,ia:Dn,J:Ln,a:Wn,xa:Vm,va:es,r:Vs}}}var nc={867620:(I,V,q,oe,ye)=>{if($===void 0||!$.Fb)return 1;if((I=Fi(I>>>0)).startsWith("./")&&(I=I.substring(2)),!(I=$.Fb.get(I)))return 2;if(oe>>>=0,(V>>>=0)+(q>>>=0)>I.byteLength)return 3;try{let qe=I.subarray(V,V+q);switch(ye){case 0:C().set(qe,oe>>>0);break;case 1:$.cc(oe,qe);break;default:return 4}return 0}catch{return 4}},868303:(I,V,q)=>{$.dc(I,C().subarray(V>>>0,V+q>>>0))},868366:()=>$.ac(),868407:I=>{$.Ob(I)},868443:()=>{$.Vb()},868474:()=>{$.Wb()},868503:()=>{$.$b()},868528:I=>$.Ub(I),868561:I=>$.Yb(I),868593:(I,V,q)=>{$.Nb(I,V,q,!0)},868632:(I,V,q)=>{$.Nb(I,V,q)},868665:()=>typeof wasmOffsetConverter<"u",868722:I=>{$.jb("Abs",I,void 0)},868773:I=>{$.jb("Neg",I,void 0)},868824:I=>{$.jb("Floor",I,void 0)},868877:I=>{$.jb("Ceil",I,void 0)},868929:I=>{$.jb("Reciprocal",I,void 0)},868987:I=>{$.jb("Sqrt",I,void 0)},869039:I=>{$.jb("Exp",I,void 0)},869090:I=>{$.jb("Erf",I,void 0)},869141:I=>{$.jb("Sigmoid",I,void 0)},869196:(I,V,q)=>{$.jb("HardSigmoid",I,{alpha:V,beta:q})},869275:I=>{$.jb("Log",I,void 0)},869326:I=>{$.jb("Sin",I,void 0)},869377:I=>{$.jb("Cos",I,void 0)},869428:I=>{$.jb("Tan",I,void 0)},869479:I=>{$.jb("Asin",I,void 0)},869531:I=>{$.jb("Acos",I,void 0)},869583:I=>{$.jb("Atan",I,void 0)},869635:I=>{$.jb("Sinh",I,void 0)},869687:I=>{$.jb("Cosh",I,void 0)},869739:I=>{$.jb("Asinh",I,void 0)},869792:I=>{$.jb("Acosh",I,void 0)},869845:I=>{$.jb("Atanh",I,void 0)},869898:I=>{$.jb("Tanh",I,void 0)},869950:I=>{$.jb("Not",I,void 0)},870001:(I,V,q)=>{$.jb("Clip",I,{min:V,max:q})},870070:I=>{$.jb("Clip",I,void 0)},870122:(I,V)=>{$.jb("Elu",I,{alpha:V})},870180:I=>{$.jb("Gelu",I,void 0)},870232:I=>{$.jb("Relu",I,void 0)},870284:(I,V)=>{$.jb("LeakyRelu",I,{alpha:V})},870348:(I,V)=>{$.jb("ThresholdedRelu",I,{alpha:V})},870418:(I,V)=>{$.jb("Cast",I,{to:V})},870476:I=>{$.jb("Add",I,void 0)},870527:I=>{$.jb("Sub",I,void 0)},870578:I=>{$.jb("Mul",I,void 0)},870629:I=>{$.jb("Div",I,void 0)},870680:I=>{$.jb("Pow",I,void 0)},870731:I=>{$.jb("Equal",I,void 0)},870784:I=>{$.jb("Greater",I,void 0)},870839:I=>{$.jb("GreaterOrEqual",I,void 0)},870901:I=>{$.jb("Less",I,void 0)},870953:I=>{$.jb("LessOrEqual",I,void 0)},871012:(I,V,q,oe,ye)=>{$.jb("ReduceMean",I,{keepDims:!!V,noopWithEmptyAxes:!!q,axes:oe?Array.from(P().subarray(oe>>>0,ye>>>0)):[]})},871171:(I,V,q,oe,ye)=>{$.jb("ReduceMax",I,{keepDims:!!V,noopWithEmptyAxes:!!q,axes:oe?Array.from(P().subarray(oe>>>0,ye>>>0)):[]})},871329:(I,V,q,oe,ye)=>{$.jb("ReduceMin",I,{keepDims:!!V,noopWithEmptyAxes:!!q,axes:oe?Array.from(P().subarray(oe>>>0,ye>>>0)):[]})},871487:(I,V,q,oe,ye)=>{$.jb("ReduceProd",I,{keepDims:!!V,noopWithEmptyAxes:!!q,axes:oe?Array.from(P().subarray(oe>>>0,ye>>>0)):[]})},871646:(I,V,q,oe,ye)=>{$.jb("ReduceSum",I,{keepDims:!!V,noopWithEmptyAxes:!!q,axes:oe?Array.from(P().subarray(oe>>>0,ye>>>0)):[]})},871804:(I,V,q,oe,ye)=>{$.jb("ReduceL1",I,{keepDims:!!V,noopWithEmptyAxes:!!q,axes:oe?Array.from(P().subarray(oe>>>0,ye>>>0)):[]})},871961:(I,V,q,oe,ye)=>{$.jb("ReduceL2",I,{keepDims:!!V,noopWithEmptyAxes:!!q,axes:oe?Array.from(P().subarray(oe>>>0,ye>>>0)):[]})},872118:(I,V,q,oe,ye)=>{$.jb("ReduceLogSum",I,{keepDims:!!V,noopWithEmptyAxes:!!q,axes:oe?Array.from(P().subarray(oe>>>0,ye>>>0)):[]})},872279:(I,V,q,oe,ye)=>{$.jb("ReduceSumSquare",I,{keepDims:!!V,noopWithEmptyAxes:!!q,axes:oe?Array.from(P().subarray(oe>>>0,ye>>>0)):[]})},872443:(I,V,q,oe,ye)=>{$.jb("ReduceLogSumExp",I,{keepDims:!!V,noopWithEmptyAxes:!!q,axes:oe?Array.from(P().subarray(oe>>>0,ye>>>0)):[]})},872607:I=>{$.jb("Where",I,void 0)},872660:(I,V,q)=>{$.jb("Transpose",I,{perm:V?Array.from(P().subarray(V>>>0,q>>>0)):[]})},872768:(I,V,q,oe)=>{$.jb("DepthToSpace",I,{blocksize:V,mode:Fi(q),format:oe?"NHWC":"NCHW"})},872901:(I,V,q,oe)=>{$.jb("DepthToSpace",I,{blocksize:V,mode:Fi(q),format:oe?"NHWC":"NCHW"})},873034:(I,V,q,oe,ye,qe,Tt,Dt,nn,un,On,_r,Ir,yt,mr)=>{$.jb("ConvTranspose",I,{format:nn?"NHWC":"NCHW",autoPad:V,dilations:[q],group:oe,kernelShape:[ye],pads:[qe,Tt],strides:[Dt],wIsConst:()=>!!x()[un>>>0],outputPadding:On?Array.from(P().subarray(On>>>0,_r>>>0)):[],outputShape:Ir?Array.from(P().subarray(Ir>>>0,yt>>>0)):[],activation:Fi(mr)})},873435:(I,V,q,oe,ye,qe,Tt,Dt,nn,un,On,_r,Ir,yt)=>{$.jb("ConvTranspose",I,{format:Dt?"NHWC":"NCHW",autoPad:V,dilations:Array.from(P().subarray(q>>>0,2+(q>>>0)>>>0)),group:oe,kernelShape:Array.from(P().subarray(ye>>>0,2+(ye>>>0)>>>0)),pads:Array.from(P().subarray(qe>>>0,4+(qe>>>0)>>>0)),strides:Array.from(P().subarray(Tt>>>0,2+(Tt>>>0)>>>0)),wIsConst:()=>!!x()[nn>>>0],outputPadding:un?Array.from(P().subarray(un>>>0,On>>>0)):[],outputShape:_r?Array.from(P().subarray(_r>>>0,Ir>>>0)):[],activation:Fi(yt)})},874e3:(I,V,q,oe,ye,qe,Tt,Dt,nn,un,On,_r,Ir,yt,mr)=>{$.jb("ConvTranspose",I,{format:nn?"NHWC":"NCHW",autoPad:V,dilations:[q],group:oe,kernelShape:[ye],pads:[qe,Tt],strides:[Dt],wIsConst:()=>!!x()[un>>>0],outputPadding:On?Array.from(P().subarray(On>>>0,_r>>>0)):[],outputShape:Ir?Array.from(P().subarray(Ir>>>0,yt>>>0)):[],activation:Fi(mr)})},874401:(I,V,q,oe,ye,qe,Tt,Dt,nn,un,On,_r,Ir,yt)=>{$.jb("ConvTranspose",I,{format:Dt?"NHWC":"NCHW",autoPad:V,dilations:Array.from(P().subarray(q>>>0,2+(q>>>0)>>>0)),group:oe,kernelShape:Array.from(P().subarray(ye>>>0,2+(ye>>>0)>>>0)),pads:Array.from(P().subarray(qe>>>0,4+(qe>>>0)>>>0)),strides:Array.from(P().subarray(Tt>>>0,2+(Tt>>>0)>>>0)),wIsConst:()=>!!x()[nn>>>0],outputPadding:un?Array.from(P().subarray(un>>>0,On>>>0)):[],outputShape:_r?Array.from(P().subarray(_r>>>0,Ir>>>0)):[],activation:Fi(yt)})},874966:(I,V)=>{$.jb("GlobalAveragePool",I,{format:V?"NHWC":"NCHW"})},875057:(I,V,q,oe,ye,qe,Tt,Dt,nn,un,On,_r,Ir,yt)=>{$.jb("AveragePool",I,{format:yt?"NHWC":"NCHW",auto_pad:V,ceil_mode:q,count_include_pad:oe,storage_order:ye,dilations:qe?Array.from(P().subarray(qe>>>0,Tt>>>0)):[],kernel_shape:Dt?Array.from(P().subarray(Dt>>>0,nn>>>0)):[],pads:un?Array.from(P().subarray(un>>>0,On>>>0)):[],strides:_r?Array.from(P().subarray(_r>>>0,Ir>>>0)):[]})},875472:(I,V)=>{$.jb("GlobalAveragePool",I,{format:V?"NHWC":"NCHW"})},875563:(I,V,q,oe,ye,qe,Tt,Dt,nn,un,On,_r,Ir,yt)=>{$.jb("AveragePool",I,{format:yt?"NHWC":"NCHW",auto_pad:V,ceil_mode:q,count_include_pad:oe,storage_order:ye,dilations:qe?Array.from(P().subarray(qe>>>0,Tt>>>0)):[],kernel_shape:Dt?Array.from(P().subarray(Dt>>>0,nn>>>0)):[],pads:un?Array.from(P().subarray(un>>>0,On>>>0)):[],strides:_r?Array.from(P().subarray(_r>>>0,Ir>>>0)):[]})},875978:(I,V)=>{$.jb("GlobalMaxPool",I,{format:V?"NHWC":"NCHW"})},876065:(I,V,q,oe,ye,qe,Tt,Dt,nn,un,On,_r,Ir,yt)=>{$.jb("MaxPool",I,{format:yt?"NHWC":"NCHW",auto_pad:V,ceil_mode:q,count_include_pad:oe,storage_order:ye,dilations:qe?Array.from(P().subarray(qe>>>0,Tt>>>0)):[],kernel_shape:Dt?Array.from(P().subarray(Dt>>>0,nn>>>0)):[],pads:un?Array.from(P().subarray(un>>>0,On>>>0)):[],strides:_r?Array.from(P().subarray(_r>>>0,Ir>>>0)):[]})},876476:(I,V)=>{$.jb("GlobalMaxPool",I,{format:V?"NHWC":"NCHW"})},876563:(I,V,q,oe,ye,qe,Tt,Dt,nn,un,On,_r,Ir,yt)=>{$.jb("MaxPool",I,{format:yt?"NHWC":"NCHW",auto_pad:V,ceil_mode:q,count_include_pad:oe,storage_order:ye,dilations:qe?Array.from(P().subarray(qe>>>0,Tt>>>0)):[],kernel_shape:Dt?Array.from(P().subarray(Dt>>>0,nn>>>0)):[],pads:un?Array.from(P().subarray(un>>>0,On>>>0)):[],strides:_r?Array.from(P().subarray(_r>>>0,Ir>>>0)):[]})},876974:(I,V,q,oe,ye)=>{$.jb("Gemm",I,{alpha:V,beta:q,transA:oe,transB:ye})},877078:I=>{$.jb("MatMul",I,void 0)},877132:(I,V,q,oe)=>{$.jb("ArgMax",I,{keepDims:!!V,selectLastIndex:!!q,axis:oe})},877240:(I,V,q,oe)=>{$.jb("ArgMin",I,{keepDims:!!V,selectLastIndex:!!q,axis:oe})},877348:(I,V)=>{$.jb("Softmax",I,{axis:V})},877411:(I,V)=>{$.jb("Concat",I,{axis:V})},877471:(I,V,q,oe,ye)=>{$.jb("Split",I,{axis:V,numOutputs:q,splitSizes:oe?Array.from(P().subarray(oe>>>0,ye>>>0)):[]})},877611:I=>{$.jb("Expand",I,void 0)},877665:(I,V)=>{$.jb("Gather",I,{axis:Number(V)})},877736:(I,V)=>{$.jb("GatherElements",I,{axis:Number(V)})},877815:(I,V,q,oe,ye,qe,Tt,Dt,nn,un,On)=>{$.jb("Resize",I,{antialias:V,axes:q?Array.from(P().subarray(q>>>0,oe>>>0)):[],coordinateTransformMode:Fi(ye),cubicCoeffA:qe,excludeOutside:Tt,extrapolationValue:Dt,keepAspectRatioPolicy:Fi(nn),mode:Fi(un),nearestMode:Fi(On)})},878161:(I,V,q,oe,ye,qe,Tt)=>{$.jb("Slice",I,{starts:V?Array.from(P().subarray(V>>>0,q>>>0)):[],ends:oe?Array.from(P().subarray(oe>>>0,ye>>>0)):[],axes:qe?Array.from(P().subarray(qe>>>0,Tt>>>0)):[]})},878377:I=>{$.jb("Tile",I,void 0)},878429:(I,V,q)=>{$.jb("InstanceNormalization",I,{epsilon:V,format:q?"NHWC":"NCHW"})},878543:(I,V,q)=>{$.jb("InstanceNormalization",I,{epsilon:V,format:q?"NHWC":"NCHW"})},878657:I=>{$.jb("Range",I,void 0)},878710:(I,V)=>{$.jb("Einsum",I,{equation:Fi(V)})},878791:(I,V,q,oe,ye)=>{$.jb("Pad",I,{mode:V,value:q,pads:oe?Array.from(P().subarray(oe>>>0,ye>>>0)):[]})},878918:(I,V,q,oe,ye,qe)=>{$.jb("BatchNormalization",I,{epsilon:V,momentum:q,spatial:!!ye,trainingMode:!!oe,format:qe?"NHWC":"NCHW"})},879087:(I,V,q,oe,ye,qe)=>{$.jb("BatchNormalization",I,{epsilon:V,momentum:q,spatial:!!ye,trainingMode:!!oe,format:qe?"NHWC":"NCHW"})},879256:(I,V,q)=>{$.jb("CumSum",I,{exclusive:Number(V),reverse:Number(q)})},879353:(I,V,q)=>{$.jb("DequantizeLinear",I,{axis:V,blockSize:q})},879443:(I,V,q,oe,ye,qe,Tt,Dt,nn)=>{$.jb("Attention",I,{numHeads:V,isUnidirectional:q,maskFilterValue:oe,scale:ye,doRotary:qe,qkvHiddenSizes:Tt?Array.from(P().subarray(Number(Dt)>>>0,Number(Dt)+Tt>>>0)):[],pastPresentShareBuffer:!!nn})},879715:I=>{$.jb("BiasAdd",I,void 0)},879770:I=>{$.jb("BiasSplitGelu",I,void 0)},879831:I=>{$.jb("FastGelu",I,void 0)},879887:(I,V,q,oe,ye,qe,Tt,Dt,nn,un,On,_r,Ir,yt,mr,di)=>{$.jb("Conv",I,{format:_r?"NHWC":"NCHW",auto_pad:V,dilations:q?Array.from(P().subarray(q>>>0,oe>>>0)):[],group:ye,kernel_shape:qe?Array.from(P().subarray(qe>>>0,Tt>>>0)):[],pads:Dt?Array.from(P().subarray(Dt>>>0,nn>>>0)):[],strides:un?Array.from(P().subarray(un>>>0,On>>>0)):[],w_is_const:()=>!!x()[Ir>>>0],activation:Fi(yt),activation_params:mr?Array.from(z().subarray(mr>>>0,di>>>0)):[]})},880383:I=>{$.jb("Gelu",I,void 0)},880435:(I,V,q,oe)=>{$.jb("GroupQueryAttention",I,{numHeads:V,kvNumHeads:q,scale:oe})},880548:(I,V,q,oe)=>{$.jb("LayerNormalization",I,{axis:V,epsilon:q,simplified:!!oe})},880659:(I,V,q,oe)=>{$.jb("LayerNormalization",I,{axis:V,epsilon:q,simplified:!!oe})},880770:(I,V,q,oe,ye,qe)=>{$.jb("MatMulNBits",I,{k:V,n:q,accuracyLevel:oe,bits:ye,blockSize:qe})},880897:(I,V,q,oe,ye,qe)=>{$.jb("MultiHeadAttention",I,{numHeads:V,isUnidirectional:q,maskFilterValue:oe,scale:ye,doRotary:qe})},881056:(I,V)=>{$.jb("QuickGelu",I,{alpha:V})},881120:(I,V,q,oe,ye)=>{$.jb("RotaryEmbedding",I,{interleaved:!!V,numHeads:q,rotaryEmbeddingDim:oe,scale:ye})},881259:(I,V,q)=>{$.jb("SkipLayerNormalization",I,{epsilon:V,simplified:!!q})},881361:(I,V,q)=>{$.jb("SkipLayerNormalization",I,{epsilon:V,simplified:!!q})},881463:(I,V,q,oe)=>{$.jb("GatherBlockQuantized",I,{gatherAxis:V,quantizeAxis:q,blockSize:oe})},881584:I=>{$.Zb(I)},881618:(I,V)=>$.bc(I,V,$.Eb.fc,$.Eb.errors)};function Wm(I,V,q){return Pv(async()=>{await $.Xb(I,V,q)})}function Uy(){return typeof wasmOffsetConverter<"u"}function xp(I){this.name="ExitStatus",this.message=`Program terminated with exit(${I})`,this.status=I}var zd=I=>{I.terminate(),I.onmessage=()=>{}},xs=I=>{Ql.length==0&&(nv(),Hm(Ql[0]));var V=Ql.pop();if(!V)return 6;Jl.push(V),zn[I.Ab]=V,V.Ab=I.Ab;var q={cmd:"run",start_routine:I.hc,arg:I.Qb,pthread_ptr:I.Ab};return V.postMessage(q,I.mc),0},ta=0,Ur=(I,V,...q)=>{for(var oe=2*q.length,ye=Ww(),qe=jw(8*oe),Tt=qe>>>3,Dt=0;Dt>>0]=nn)}return I=Vx(I,0,oe,qe,V),Nv(ye),I};function Vm(I){if(Se)return Ur(0,1,I);if(Rt=I,!(0{if(Rt=I,Se)throw tv(I),"unwind";Vm(I)},Ql=[],Jl=[],uo=[],zn={},Gm=I=>{var V=I.Ab;delete zn[V],Ql.push(I),Jl.splice(Jl.indexOf(I),1),I.Ab=0,Nw(V)};function js(){uo.forEach(I=>I())}var Hm=I=>new Promise(V=>{I.onmessage=ye=>{var qe=(ye=ye.data).cmd;if(ye.targetThread&&ye.targetThread!=Fp()){var Tt=zn[ye.targetThread];Tt?Tt.postMessage(ye,ye.transferList):hn(`Internal error! Worker sent a message "${qe}" to target pthread ${ye.targetThread}, but that thread no longer exists!`)}else qe==="checkMailbox"?Ep():qe==="spawnThread"?xs(ye):qe==="cleanupThread"?Gm(zn[ye.thread]):qe==="killThread"?(ye=ye.thread,qe=zn[ye],delete zn[ye],zd(qe),Nw(ye),Jl.splice(Jl.indexOf(qe),1),qe.Ab=0):qe==="cancelThread"?zn[ye.thread].postMessage({cmd:"cancel"}):qe==="loaded"?(I.loaded=!0,V(I)):qe==="alert"?alert(`Thread ${ye.threadId}: ${ye.text}`):ye.target==="setimmediate"?I.postMessage(ye):qe==="callHandler"?$[ye.handler](...ye.args):qe&&hn(`worker sent an unknown command ${qe}`)},I.onerror=ye=>{throw hn(`worker sent an error! ${ye.filename}:${ye.lineno}: ${ye.message}`),ye};var q,oe=[];for(q of[])$.hasOwnProperty(q)&&oe.push(q);I.postMessage({cmd:"load",handlers:oe,wasmMemory:Wn,wasmModule:Yn})});function nv(){var I=new Worker(new URL(import.meta.url),{type:"module",workerData:"em-pthread",name:"em-pthread"});Ql.push(I)}var Cr=I=>{for(;0{var I=Fp(),V=L()[I+52>>>2>>>0];I=L()[I+56>>>2>>>0],Gx(V,V-I),Nv(V)},rv=(I,V)=>{ta=0,I=Hx(I,V),0>>=0);throw V>>>=0,q>>>=0,L()[oe.Jb+16>>>2>>>0]=0,L()[oe.Jb+4>>>2>>>0]=V,L()[oe.Jb+8>>>2>>>0]=q,I}function iv(I,V,q,oe){return Se?Ur(2,1,I,V,q,oe):sv(I,V,q,oe)}function sv(I,V,q,oe){if(I>>>=0,V>>>=0,q>>>=0,oe>>>=0,Ee===void 0)return hn("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;var ye=[];return Se&&ye.length===0?iv(I,V,q,oe):(I={hc:q,Ab:I,Qb:oe,mc:ye},Se?(I.Mb="spawnThread",postMessage(I,ye),0):xs(I))}var av=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0,ov=(I,V,q)=>{var oe=(V>>>=0)+q;for(q=V;I[q]&&!(q>=oe);)++q;if(16(ye=(240&ye)==224?(15&ye)<<12|qe<<6|Tt:(7&ye)<<18|qe<<12|Tt<<6|63&I[V++])?oe+=String.fromCharCode(ye):(ye-=65536,oe+=String.fromCharCode(55296|ye>>10,56320|1023&ye))}}else oe+=String.fromCharCode(ye)}return oe},Fi=(I,V)=>(I>>>=0)?ov(C(),I,V):"";function lv(I,V,q){return Se?Ur(3,1,I,V,q):0}function uv(I,V){if(Se)return Ur(4,1,I,V)}var Xm=I=>{for(var V=0,q=0;q=oe?V++:2047>=oe?V+=2:55296<=oe&&57343>=oe?(V+=4,++q):V+=3}return V},cv=(I,V,q,oe)=>{if(!(0>>=0;oe=q+oe-1;for(var qe=0;qe=Tt&&(Tt=65536+((1023&Tt)<<10)|1023&I.charCodeAt(++qe)),127>=Tt){if(q>=oe)break;V[q++>>>0]=Tt}else{if(2047>=Tt){if(q+1>=oe)break;V[q++>>>0]=192|Tt>>6}else{if(65535>=Tt){if(q+2>=oe)break;V[q++>>>0]=224|Tt>>12}else{if(q+3>=oe)break;V[q++>>>0]=240|Tt>>18,V[q++>>>0]=128|Tt>>12&63}V[q++>>>0]=128|Tt>>6&63}V[q++>>>0]=128|63&Tt}}return V[q>>>0]=0,q-ye},Bd=(I,V,q)=>cv(I,C(),V,q);function dv(I,V){if(Se)return Ur(5,1,I,V)}function fv(I,V,q){if(Se)return Ur(6,1,I,V,q)}function Tp(I,V,q){return Se?Ur(7,1,I,V,q):0}function hv(I,V){if(Se)return Ur(8,1,I,V)}function Cp(I,V,q){if(Se)return Ur(9,1,I,V,q)}function pv(I,V,q,oe){if(Se)return Ur(10,1,I,V,q,oe)}function mv(I,V,q,oe){if(Se)return Ur(11,1,I,V,q,oe)}function gv(I,V,q,oe){if(Se)return Ur(12,1,I,V,q,oe)}function Ti(I){if(Se)return Ur(13,1,I)}function os(I,V){if(Se)return Ur(14,1,I,V)}function _v(I,V,q){if(Se)return Ur(15,1,I,V,q)}var vv,Zl,yv=()=>{Rd("")},co=I=>{for(var V="";C()[I>>>0];)V+=vv[C()[I++>>>0]];return V},qm={},Ym={};function fo(I,V,q={}){if(!("argPackAdvance"in V))throw new TypeError("registerType registeredInstance requires argPackAdvance");return function(oe,ye,qe={}){var Tt=ye.name;if(!oe)throw new Zl(`type "${Tt}" must have a positive integer typeid pointer`);if(Ym.hasOwnProperty(oe)){if(qe.Sb)return;throw new Zl(`Cannot register type '${Tt}' twice`)}Ym[oe]=ye,qm.hasOwnProperty(oe)&&(ye=qm[oe],delete qm[oe],ye.forEach(Dt=>Dt()))}(I,V,q)}var wv=(I,V,q)=>{switch(V){case 1:return q?oe=>x()[oe>>>0]:oe=>C()[oe>>>0];case 2:return q?oe=>E()[oe>>>1>>>0]:oe=>A()[oe>>>1>>>0];case 4:return q?oe=>P()[oe>>>2>>>0]:oe=>L()[oe>>>2>>>0];case 8:return q?oe=>ui[oe>>>3]:oe=>Kl[oe>>>3];default:throw new TypeError(`invalid integer width (${V}): ${I}`)}};function Xy(I,V,q){q>>>=0,fo(I>>>=0,{name:V=co(V>>>0),fromWireType:oe=>oe,toWireType:function(oe,ye){if(typeof ye!="bigint"&&typeof ye!="number")throw ye=ye===null?"null":(oe=typeof ye)=="object"||oe==="array"||oe==="function"?ye.toString():""+ye,new TypeError(`Cannot convert "${ye}" to ${this.name}`);return typeof ye=="number"&&(ye=BigInt(ye)),ye},argPackAdvance:eu,readValueFromPointer:wv(V,q,V.indexOf("u")==-1),Db:null})}var eu=8;function bv(I,V,q,oe){fo(I>>>=0,{name:V=co(V>>>0),fromWireType:function(ye){return!!ye},toWireType:function(ye,qe){return qe?q:oe},argPackAdvance:eu,readValueFromPointer:function(ye){return this.fromWireType(C()[ye>>>0])},Db:null})}var Mp=[],qo=[];function Km(I){9<(I>>>=0)&&--qo[I+1]==0&&(qo[I]=void 0,Mp.push(I))}var na=I=>{if(!I)throw new Zl("Cannot use deleted val. handle = "+I);return qo[I]},ra=I=>{switch(I){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:let V=Mp.pop()||qo.length;return qo[V]=I,qo[V+1]=1,V}};function tu(I){return this.fromWireType(L()[I>>>2>>>0])}var qy={name:"emscripten::val",fromWireType:I=>{var V=na(I);return Km(I),V},toWireType:(I,V)=>ra(V),argPackAdvance:eu,readValueFromPointer:tu,Db:null};function Yy(I){return fo(I>>>0,qy)}var Ky=(I,V)=>{switch(V){case 4:return function(q){return this.fromWireType(z()[q>>>2>>>0])};case 8:return function(q){return this.fromWireType(B()[q>>>3>>>0])};default:throw new TypeError(`invalid float width (${V}): ${I}`)}};function Qy(I,V,q){q>>>=0,fo(I>>>=0,{name:V=co(V>>>0),fromWireType:oe=>oe,toWireType:(oe,ye)=>ye,argPackAdvance:eu,readValueFromPointer:Ky(V,q),Db:null})}function Jy(I,V,q,oe,ye){if(I>>>=0,q>>>=0,V=co(V>>>0),ye===-1&&(ye=4294967295),ye=Dt=>Dt,oe===0){var qe=32-8*q;ye=Dt=>Dt<>>qe}var Tt=V.includes("unsigned")?function(Dt,nn){return nn>>>0}:function(Dt,nn){return nn};fo(I,{name:V,fromWireType:ye,toWireType:Tt,argPackAdvance:eu,readValueFromPointer:wv(V,q,oe!==0),Db:null})}function xv(I,V,q){function oe(qe){var Tt=L()[qe>>>2>>>0];return qe=L()[qe+4>>>2>>>0],new ye(x().buffer,qe,Tt)}var ye=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][V];fo(I>>>=0,{name:q=co(q>>>0),fromWireType:oe,argPackAdvance:eu,readValueFromPointer:oe},{Sb:!0})}function Sv(I,V){I>>>=0;var q=(V=co(V>>>0))==="std::string";fo(I,{name:V,fromWireType:function(oe){var ye=L()[oe>>>2>>>0],qe=oe+4;if(q)for(var Tt=qe,Dt=0;Dt<=ye;++Dt){var nn=qe+Dt;if(Dt==ye||C()[nn>>>0]==0){if(Tt=Fi(Tt,nn-Tt),un===void 0)var un=Tt;else un+=String.fromCharCode(0),un+=Tt;Tt=nn+1}}else{for(un=Array(ye),Dt=0;Dt>>0]);un=un.join("")}return ru(oe),un},toWireType:function(oe,ye){ye instanceof ArrayBuffer&&(ye=new Uint8Array(ye));var qe=typeof ye=="string";if(!(qe||ye instanceof Uint8Array||ye instanceof Uint8ClampedArray||ye instanceof Int8Array))throw new Zl("Cannot pass non-string to std::string");var Tt=q&&qe?Xm(ye):ye.length,Dt=zv(4+Tt+1),nn=Dt+4;if(L()[Dt>>>2>>>0]=Tt,q&&qe)Bd(ye,nn,Tt+1);else if(qe)for(qe=0;qe>>0]=un}else for(qe=0;qe>>0]=ye[qe];return oe!==null&&oe.push(ru,Dt),Dt},argPackAdvance:eu,readValueFromPointer:tu,Db(oe){ru(oe)}})}var Tv=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0,Zy=(I,V)=>{for(var q=I>>1,oe=q+V/2;!(q>=oe)&&A()[q>>>0];)++q;if(32<(q<<=1)-I&&Tv)return Tv.decode(C().slice(I,q));for(q="",oe=0;!(oe>=V/2);++oe){var ye=E()[I+2*oe>>>1>>>0];if(ye==0)break;q+=String.fromCharCode(ye)}return q},ew=(I,V,q)=>{if(q!=null||(q=2147483647),2>q)return 0;var oe=V;q=(q-=2)<2*I.length?q/2:I.length;for(var ye=0;ye>>1>>>0]=qe,V+=2}return E()[V>>>1>>>0]=0,V-oe},tw=I=>2*I.length,nw=(I,V)=>{for(var q=0,oe="";!(q>=V/4);){var ye=P()[I+4*q>>>2>>>0];if(ye==0)break;++q,65536<=ye?(ye-=65536,oe+=String.fromCharCode(55296|ye>>10,56320|1023&ye)):oe+=String.fromCharCode(ye)}return oe},rw=(I,V,q)=>{if(V>>>=0,q!=null||(q=2147483647),4>q)return 0;var oe=V;q=oe+q-4;for(var ye=0;ye=qe&&(qe=65536+((1023&qe)<<10)|1023&I.charCodeAt(++ye)),P()[V>>>2>>>0]=qe,(V+=4)+4>q)break}return P()[V>>>2>>>0]=0,V-oe},iw=I=>{for(var V=0,q=0;q=oe&&++q,V+=4}return V};function sw(I,V,q){if(I>>>=0,V>>>=0,q=co(q>>>=0),V===2)var oe=Zy,ye=ew,qe=tw,Tt=Dt=>A()[Dt>>>1>>>0];else V===4&&(oe=nw,ye=rw,qe=iw,Tt=Dt=>L()[Dt>>>2>>>0]);fo(I,{name:q,fromWireType:Dt=>{for(var nn,un=L()[Dt>>>2>>>0],On=Dt+4,_r=0;_r<=un;++_r){var Ir=Dt+4+_r*V;_r!=un&&Tt(Ir)!=0||(On=oe(On,Ir-On),nn===void 0?nn=On:(nn+=String.fromCharCode(0),nn+=On),On=Ir+V)}return ru(Dt),nn},toWireType:(Dt,nn)=>{if(typeof nn!="string")throw new Zl(`Cannot pass non-string to C++ string type ${q}`);var un=qe(nn),On=zv(4+un+V);return L()[On>>>2>>>0]=un/V,ye(nn,On+4,un+V),Dt!==null&&Dt.push(ru,On),On},argPackAdvance:eu,readValueFromPointer:tu,Db(Dt){ru(Dt)}})}function aw(I,V){fo(I>>>=0,{Tb:!0,name:V=co(V>>>0),argPackAdvance:0,fromWireType:()=>{},toWireType:()=>{}})}var ow=()=>1;function lw(I){Bw(I>>>0,!le,1,!ce,131072,!1),js()}var Cv=I=>{if(!Gi)try{if(I(),!(0>>=0,typeof Atomics.nc=="function"&&(Atomics.nc(P(),I>>>2,I).value.then(Ep),I+=128,Atomics.store(P(),I>>>2,1))}var Ep=()=>{var I=Fp();I&&(Qm(I),Cv(Ux))};function uw(I,V){(I>>>=0)==V>>>0?setTimeout(Ep):Se?postMessage({targetThread:I,cmd:"checkMailbox"}):(I=zn[I])&&I.postMessage({cmd:"checkMailbox"})}var Jm=[];function cw(I,V,q,oe,ye){for(V>>>=0,oe/=2,Jm.length=oe,q=ye>>>0>>>3,ye=0;ye>>0];return(V?nc[V]:Yo[I])(...Jm)}function dw(I){I>>>=0,Se?postMessage({cmd:"cleanupThread",thread:I}):Gm(zn[I])}function fw(I){}var Zm=(I,V)=>{var q=Ym[I];if(q===void 0)throw I=Nx(I),q=co(I),ru(I),new Zl(`${V} has unknown type ${q}`);return q},Mv=(I,V,q)=>{var oe=[];return I=I.toWireType(oe,q),oe.length&&(L()[V>>>2>>>0]=ra(oe)),I};function hw(I,V,q){return V>>>=0,q>>>=0,I=na(I>>>0),V=Zm(V,"emval::as"),Mv(V,q,I)}var Pp=I=>{try{I()}catch(V){Rd(V)}},nu=0,ho=null,kp=0,$h=[],eg={},Ev={},pw=0,tg=null,ng=[];function Pv(I){return function(V){if(!Gi){if(nu===0){var q=!1,oe=!1;V((ye=0)=>{if(!Gi&&(kp=ye,q=!0,oe)){nu=2,Pp(()=>Yx(ho)),typeof Browser<"u"&&Browser.Kb.Rb&&Browser.Kb.resume(),ye=!1;try{var qe=function(){var nn=P()[ho+8>>>2>>>0];return nn=xn[Ev[nn]],--ta,nn()}()}catch(nn){qe=nn,ye=!0}var Tt=!1;if(!ho){var Dt=tg;Dt&&(tg=null,(ye?Dt.reject:Dt.resolve)(qe),Tt=!0)}if(ye&&!Tt)throw qe}}),oe=!0,q||(nu=1,ho=function(){var ye=zv(65548),qe=ye+12;L()[ye>>>2>>>0]=qe,L()[ye+4>>>2>>>0]=qe+65536,qe=$h[0];var Tt=eg[qe];return Tt===void 0&&(Tt=pw++,eg[qe]=Tt,Ev[Tt]=qe),qe=Tt,P()[ye+8>>>2>>>0]=qe,ye}(),typeof Browser<"u"&&Browser.Kb.Rb&&Browser.Kb.pause(),Pp(()=>Xx(ho)))}else nu===2?(nu=0,Pp(Kx),ru(ho),ho=null,ng.forEach(Cv)):Rd(`invalid state: ${nu}`);return kp}}(V=>{I().then(V)})}function mw(I){return I>>>=0,Pv(()=>(I=na(I)).then(ra))}var Op=[];function Ss(I,V,q,oe){return q>>>=0,oe>>>=0,(I=Op[I>>>0])(null,V=na(V>>>0),q,oe)}var rg={},Ap=I=>{var V=rg[I];return V===void 0?co(I):V};function gw(I,V,q,oe,ye){return q>>>=0,oe>>>=0,ye>>>=0,(I=Op[I>>>0])(V=na(V>>>0),V[q=Ap(q)],oe,ye)}var kv=()=>typeof globalThis=="object"?globalThis:Function("return this")();function _w(I){return(I>>>=0)==0?ra(kv()):(I=Ap(I),ra(kv()[I]))}var ig=I=>{var V=Op.length;return Op.push(I),V},vw=(I,V)=>{for(var q=Array(I),oe=0;oe>>2>>>0],"parameter "+oe);return q},Ip=(I,V)=>Object.defineProperty(V,"name",{value:I});function yw(I,V,q){var oe=(V=vw(I,V>>>0)).shift();I--;var ye=`return function (obj, func, destructorsRef, args) { +`,qe=0,Tt=[];q===0&&Tt.push("obj");for(var Dt=["retType"],nn=[oe],un=0;unOn.name).join(", ")}) => ${oe.name}>`,ig(Ip(q,I))}function ww(I){return I=Ap(I>>>0),ra($[I])}function bw(I,V){return V>>>=0,I=na(I>>>0),V=na(V),ra(I[V])}function xw(I){9<(I>>>=0)&&(qo[I+1]+=1)}function Ov(){return ra([])}function Sw(I){I=na(I>>>0);for(var V=Array(I.length),q=0;q>>0))}function Cw(){return ra({})}function sg(I){for(var V=na(I>>>=0);V.length;){var q=V.pop();V.pop()(q)}Km(I)}function ag(I,V,q){V>>>=0,q>>>=0,I=na(I>>>0),V=na(V),q=na(q),I[V]=q}function Mw(I,V){return V>>>=0,I=(I=Zm(I>>>0,"_emval_take_value")).readValueFromPointer(V),ra(I)}function Ew(I,V){I=-9007199254740992>I||9007199254740992>>=0,I=new Date(1e3*I),P()[V>>>2>>>0]=I.getUTCSeconds(),P()[V+4>>>2>>>0]=I.getUTCMinutes(),P()[V+8>>>2>>>0]=I.getUTCHours(),P()[V+12>>>2>>>0]=I.getUTCDate(),P()[V+16>>>2>>>0]=I.getUTCMonth(),P()[V+20>>>2>>>0]=I.getUTCFullYear()-1900,P()[V+24>>>2>>>0]=I.getUTCDay(),I=(I.getTime()-Date.UTC(I.getUTCFullYear(),0,1,0,0,0,0))/864e5|0,P()[V+28>>>2>>>0]=I}var Nd=I=>I%4==0&&(I%100!=0||I%400==0),Av=[0,31,60,91,121,152,182,213,244,274,305,335],Iv=[0,31,59,90,120,151,181,212,243,273,304,334];function Pw(I,V){I=-9007199254740992>I||9007199254740992>>=0,I=new Date(1e3*I),P()[V>>>2>>>0]=I.getSeconds(),P()[V+4>>>2>>>0]=I.getMinutes(),P()[V+8>>>2>>>0]=I.getHours(),P()[V+12>>>2>>>0]=I.getDate(),P()[V+16>>>2>>>0]=I.getMonth(),P()[V+20>>>2>>>0]=I.getFullYear()-1900,P()[V+24>>>2>>>0]=I.getDay();var q=(Nd(I.getFullYear())?Av:Iv)[I.getMonth()]+I.getDate()-1|0;P()[V+28>>>2>>>0]=q,P()[V+36>>>2>>>0]=-60*I.getTimezoneOffset(),q=new Date(I.getFullYear(),6,1).getTimezoneOffset();var oe=new Date(I.getFullYear(),0,1).getTimezoneOffset();I=0|(q!=oe&&I.getTimezoneOffset()==Math.min(oe,q)),P()[V+32>>>2>>>0]=I}function kw(I){I>>>=0;var V=new Date(P()[I+20>>>2>>>0]+1900,P()[I+16>>>2>>>0],P()[I+12>>>2>>>0],P()[I+8>>>2>>>0],P()[I+4>>>2>>>0],P()[I>>>2>>>0],0),q=P()[I+32>>>2>>>0],oe=V.getTimezoneOffset(),ye=new Date(V.getFullYear(),6,1).getTimezoneOffset(),qe=new Date(V.getFullYear(),0,1).getTimezoneOffset(),Tt=Math.min(qe,ye);return 0>q?P()[I+32>>>2>>>0]=+(ye!=qe&&Tt==oe):0>>2>>>0]=V.getDay(),q=(Nd(V.getFullYear())?Av:Iv)[V.getMonth()]+V.getDate()-1|0,P()[I+28>>>2>>>0]=q,P()[I>>>2>>>0]=V.getSeconds(),P()[I+4>>>2>>>0]=V.getMinutes(),P()[I+8>>>2>>>0]=V.getHours(),P()[I+12>>>2>>>0]=V.getDate(),P()[I+16>>>2>>>0]=V.getMonth(),P()[I+20>>>2>>>0]=V.getYear(),I=V.getTime(),BigInt(isNaN(I)?-1:I/1e3)}function Fv(I,V,q,oe,ye,qe,Tt){return Se?Ur(16,1,I,V,q,oe,ye,qe,Tt):-52}function $v(I,V,q,oe,ye,qe){if(Se)return Ur(17,1,I,V,q,oe,ye,qe)}function Ow(I,V,q,oe){I>>>=0,V>>>=0,q>>>=0,oe>>>=0;var ye=new Date().getFullYear(),qe=new Date(ye,0,1),Tt=new Date(ye,6,1);ye=qe.getTimezoneOffset();var Dt=Tt.getTimezoneOffset(),nn=Math.max(ye,Dt);L()[I>>>2>>>0]=60*nn,P()[V>>>2>>>0]=+(ye!=Dt),qe=(I=un=>un.toLocaleTimeString(void 0,{hour12:!1,timeZoneName:"short"}).split(" ")[1])(qe),Tt=I(Tt),Dt{og.length=0;for(var q;q=C()[I++>>>0];){var oe=q!=105;V+=(oe&=q!=112)&&V%8?4:0,og.push(q==112?L()[V>>>2>>>0]:q==106?ui[V>>>3]:q==105?P()[V>>>2>>>0]:B()[V>>>3>>>0]),V+=oe?8:4}return og};function Aw(I,V,q){return I>>>=0,V=Dv(V>>>0,q>>>0),nc[I](...V)}function Iw(I,V,q){return I>>>=0,V=Dv(V>>>0,q>>>0),nc[I](...V)}var Fw=()=>{},$w=()=>Date.now();function Dw(I,V){return hn(Fi(I>>>0,V>>>0))}var Lv,Lw=()=>{throw ta+=1,"unwind"};function Rw(){return 4294901760}Lv=()=>performance.timeOrigin+performance.now();var zw=()=>navigator.hardwareConcurrency;function f(){return Rd("Cannot use emscripten_pc_get_function without -sUSE_OFFSET_CONVERTER"),0}function w(I){I>>>=0;var V=C().length;if(I<=V||4294901760=q;q*=2){var oe=V*(1+.2/q);oe=Math.min(oe,I+100663296);var ye=Math;oe=Math.max(I,oe);e:{ye=(ye.min.call(ye,4294901760,oe+(65536-oe%65536)%65536)-Wn.buffer.byteLength+65535)/65536;try{Wn.grow(ye),Si();var qe=1;break e}catch{}qe=void 0}if(qe)return!0}return!1}var k=()=>(Rd("Cannot use convertFrameToPC (needed by __builtin_return_address) without -sUSE_OFFSET_CONVERTER"),0),j={},ne=I=>{I.forEach(V=>{k()})};function we(){var I=Error().stack.toString().split(` +`);return I[0]=="Error"&&I.shift(),ne(I),j.Pb=k(),j.ec=I,j.Pb}function Be(I,V,q){if(I>>>=0,V>>>=0,j.Pb==I)var oe=j.ec;else(oe=Error().stack.toString().split(` +`))[0]=="Error"&&oe.shift(),ne(oe);for(var ye=3;oe[ye]&&k()!=I;)++ye;for(I=0;I>>2>>>0]=k();return I}var Xe,st={},kt=()=>{if(!Xe){var I,V={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:_t};for(I in st)st[I]===void 0?delete V[I]:V[I]=st[I];var q=[];for(I in V)q.push(`${I}=${V[I]}`);Xe=q}return Xe};function At(I,V){if(Se)return Ur(18,1,I,V);I>>>=0,V>>>=0;var q=0;return kt().forEach((oe,ye)=>{var qe=V+q;for(ye=L()[I+4*ye>>>2>>>0]=qe,qe=0;qe>>0]=oe.charCodeAt(qe);x()[ye>>>0]=0,q+=oe.length+1}),0}function Nt(I,V){if(Se)return Ur(19,1,I,V);I>>>=0,V>>>=0;var q=kt();L()[I>>>2>>>0]=q.length;var oe=0;return q.forEach(ye=>oe+=ye.length+1),L()[V>>>2>>>0]=oe,0}function sn(I){return Se?Ur(20,1,I):52}function wn(I,V,q,oe){return Se?Ur(21,1,I,V,q,oe):52}function Dn(I,V,q,oe){return Se?Ur(22,1,I,V,q,oe):70}var er=[null,[],[]];function Ln(I,V,q,oe){if(Se)return Ur(23,1,I,V,q,oe);V>>>=0,q>>>=0,oe>>>=0;for(var ye=0,qe=0;qe>>2>>>0],Dt=L()[V+4>>>2>>>0];V+=8;for(var nn=0;nn>>0],On=er[I];un===0||un===10?((I===1?kn:hn)(ov(On,0)),On.length=0):On.push(un)}ye+=Dt}return L()[oe>>>2>>>0]=ye,0}var ar=[31,29,31,30,31,30,31,31,30,31,30,31],pr=[31,28,31,30,31,30,31,31,30,31,30,31],Ws=(I,V)=>{x().set(I,V>>>0)};function es(I,V,q,oe){function ye(yt,mr,di){for(yt=typeof yt=="number"?yt.toString():yt||"";yt.lengthZx?-1:0Dh-yt.getDate())){yt.setDate(yt.getDate()+mr);break}mr-=Dh-yt.getDate()+1,yt.setDate(1),11>di?yt.setMonth(di+1):(yt.setMonth(0),yt.setFullYear(yt.getFullYear()+1))}return di=new Date(yt.getFullYear()+1,0,4),mr=Dt(new Date(yt.getFullYear(),0,4)),di=Dt(di),0>=Tt(mr,yt)?0>=Tt(di,yt)?yt.getFullYear()+1:yt.getFullYear():yt.getFullYear()-1}I>>>=0,V>>>=0,q>>>=0,oe>>>=0;var un=L()[oe+40>>>2>>>0];for(var On in oe={kc:P()[oe>>>2>>>0],jc:P()[oe+4>>>2>>>0],Hb:P()[oe+8>>>2>>>0],Lb:P()[oe+12>>>2>>>0],Ib:P()[oe+16>>>2>>>0],Cb:P()[oe+20>>>2>>>0],ub:P()[oe+24>>>2>>>0],Bb:P()[oe+28>>>2>>>0],rc:P()[oe+32>>>2>>>0],ic:P()[oe+36>>>2>>>0],lc:un?Fi(un):""},q=Fi(q),un={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"})q=q.replace(new RegExp(On,"g"),un[On]);var _r="Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),Ir="January February March April May June July August September October November December".split(" ");for(On in un={"%a":yt=>_r[yt.ub].substring(0,3),"%A":yt=>_r[yt.ub],"%b":yt=>Ir[yt.Ib].substring(0,3),"%B":yt=>Ir[yt.Ib],"%C":yt=>qe((yt.Cb+1900)/100|0,2),"%d":yt=>qe(yt.Lb,2),"%e":yt=>ye(yt.Lb,2," "),"%g":yt=>nn(yt).toString().substring(2),"%G":nn,"%H":yt=>qe(yt.Hb,2),"%I":yt=>((yt=yt.Hb)==0?yt=12:12{for(var mr=0,di=0;di<=yt.Ib-1;mr+=(Nd(yt.Cb+1900)?ar:pr)[di++]);return qe(yt.Lb+mr,3)},"%m":yt=>qe(yt.Ib+1,2),"%M":yt=>qe(yt.jc,2),"%n":()=>` +`,"%p":yt=>0<=yt.Hb&&12>yt.Hb?"AM":"PM","%S":yt=>qe(yt.kc,2),"%t":()=>" ","%u":yt=>yt.ub||7,"%U":yt=>qe(Math.floor((yt.Bb+7-yt.ub)/7),2),"%V":yt=>{var mr=Math.floor((yt.Bb+7-(yt.ub+6)%7)/7);if(2>=(yt.ub+371-yt.Bb-2)%7&&mr++,mr)mr==53&&((di=(yt.ub+371-yt.Bb)%7)==4||di==3&&Nd(yt.Cb)||(mr=1));else{mr=52;var di=(yt.ub+7-yt.Bb-1)%7;(di==4||di==5&&Nd(yt.Cb%400-1))&&mr++}return qe(mr,2)},"%w":yt=>yt.ub,"%W":yt=>qe(Math.floor((yt.Bb+7-(yt.ub+6)%7)/7),2),"%y":yt=>(yt.Cb+1900).toString().substring(2),"%Y":yt=>yt.Cb+1900,"%z":yt=>{var mr=0<=(yt=yt.ic);return yt=Math.abs(yt)/60,(mr?"+":"-")+("0000"+(yt/60*100+yt%60)).slice(-4)},"%Z":yt=>yt.lc,"%%":()=>"%"},q=q.replace(/%%/g,"\0\0"),un)q.includes(On)&&(q=q.replace(new RegExp(On,"g"),un[On](oe)));return On=function(yt){var mr=Array(Xm(yt)+1);return cv(yt,mr,0,mr.length),mr}(q=q.replace(/\0\0/g,"%")),On.length>V?0:(Ws(On,I),On.length-1)}function Vs(I,V,q,oe){return es(I>>>0,V>>>0,q>>>0,oe>>>0)}Se||function(){for(var I=$.numThreads-1;I--;)nv();as.unshift(()=>{br++,function(V){Se?V():Promise.all(Ql.map(Hm)).then(V)}(()=>Fh())})}();for(var ii=Array(256),Ts=0;256>Ts;++Ts)ii[Ts]=String.fromCharCode(Ts);vv=ii,Zl=$.BindingError=class extends Error{constructor(I){super(I),this.name="BindingError"}},$.InternalError=class extends Error{constructor(I){super(I),this.name="InternalError"}},qo.push(0,1,void 0,1,null,1,!0,1,!1,1),$.count_emval_handles=()=>qo.length/2-5-Mp.length;var Yo=[Vm,tv,iv,lv,uv,dv,fv,Tp,hv,Cp,pv,mv,gv,Ti,os,_v,Fv,$v,At,Nt,sn,wn,Dn,Ln],xn=function(){function I(q,oe){return xn=q.exports,xn=function(){var ye=xn,qe={};for(let[Tt,Dt]of Object.entries(ye))qe[Tt]=typeof Dt=="function"?(...nn)=>{$h.push(Tt);try{return Dt(...nn)}finally{Gi||($h.pop(),ho&&nu===1&&$h.length===0&&(nu=0,ta+=1,Pp(qx),typeof Fibers<"u"&&Fibers.sc()))}}:Dt;return qe}(),xn=function(){var ye=xn,qe=Dt=>nn=>Dt(nn)>>>0,Tt=Dt=>()=>Dt()>>>0;return(ye=Object.assign({},ye)).Ca=qe(ye.Ca),ye.fb=Tt(ye.fb),ye.gb=qe(ye.gb),ye.emscripten_main_runtime_thread_id=Tt(ye.emscripten_main_runtime_thread_id),ye.sb=qe(ye.sb),ye.tb=Tt(ye.tb),ye}(),uo.push(xn.ib),ci.unshift(xn.Ba),Yn=oe,Fh(),xn}var V=jm();if(br++,$.instantiateWasm)try{return $.instantiateWasm(V,I)}catch(q){hn(`Module.instantiateWasm callback failed with error: ${q}`),Y(q)}return Nm||(Nm=$.locateFile?Q_("ort-wasm-simd-threaded.jsep.wasm")?"ort-wasm-simd-threaded.jsep.wasm":$.locateFile?$.locateFile("ort-wasm-simd-threaded.jsep.wasm",$t):$t+"ort-wasm-simd-threaded.jsep.wasm":new URL(n("./node_modules/onnxruntime-web/dist/ort-wasm-simd-threaded.jsep.wasm"),n.b).href),function(q,oe){var ye=Nm;return Ht||typeof WebAssembly.instantiateStreaming!="function"||Q_(ye)||J_(ye)||typeof fetch!="function"?ev(ye,q,oe):fetch(ye,{credentials:"same-origin"}).then(qe=>WebAssembly.instantiateStreaming(qe,q).then(oe,function(Tt){return hn(`wasm streaming compile failed: ${Tt}`),hn("falling back to ArrayBuffer instantiation"),ev(ye,q,oe)}))}(V,function(q){I(q.instance,q.module)}).catch(Y),{}}(),Nx=I=>(Nx=xn.Ca)(I),jx=()=>(jx=xn.Da)();$._OrtInit=(I,V)=>($._OrtInit=xn.Ea)(I,V),$._OrtGetLastError=(I,V)=>($._OrtGetLastError=xn.Fa)(I,V),$._OrtCreateSessionOptions=(I,V,q,oe,ye,qe,Tt,Dt,nn,un)=>($._OrtCreateSessionOptions=xn.Ga)(I,V,q,oe,ye,qe,Tt,Dt,nn,un),$._OrtAppendExecutionProvider=(I,V)=>($._OrtAppendExecutionProvider=xn.Ha)(I,V),$._OrtAddFreeDimensionOverride=(I,V,q)=>($._OrtAddFreeDimensionOverride=xn.Ia)(I,V,q),$._OrtAddSessionConfigEntry=(I,V,q)=>($._OrtAddSessionConfigEntry=xn.Ja)(I,V,q),$._OrtReleaseSessionOptions=I=>($._OrtReleaseSessionOptions=xn.Ka)(I),$._OrtCreateSession=(I,V,q)=>($._OrtCreateSession=xn.La)(I,V,q),$._OrtReleaseSession=I=>($._OrtReleaseSession=xn.Ma)(I),$._OrtGetInputOutputCount=(I,V,q)=>($._OrtGetInputOutputCount=xn.Na)(I,V,q),$._OrtGetInputName=(I,V)=>($._OrtGetInputName=xn.Oa)(I,V),$._OrtGetOutputName=(I,V)=>($._OrtGetOutputName=xn.Pa)(I,V),$._OrtFree=I=>($._OrtFree=xn.Qa)(I),$._OrtCreateTensor=(I,V,q,oe,ye,qe)=>($._OrtCreateTensor=xn.Ra)(I,V,q,oe,ye,qe),$._OrtGetTensorData=(I,V,q,oe,ye)=>($._OrtGetTensorData=xn.Sa)(I,V,q,oe,ye),$._OrtReleaseTensor=I=>($._OrtReleaseTensor=xn.Ta)(I),$._OrtCreateRunOptions=(I,V,q,oe)=>($._OrtCreateRunOptions=xn.Ua)(I,V,q,oe),$._OrtAddRunConfigEntry=(I,V,q)=>($._OrtAddRunConfigEntry=xn.Va)(I,V,q),$._OrtReleaseRunOptions=I=>($._OrtReleaseRunOptions=xn.Wa)(I),$._OrtCreateBinding=I=>($._OrtCreateBinding=xn.Xa)(I),$._OrtBindInput=(I,V,q)=>($._OrtBindInput=xn.Ya)(I,V,q),$._OrtBindOutput=(I,V,q,oe)=>($._OrtBindOutput=xn.Za)(I,V,q,oe),$._OrtClearBoundOutputs=I=>($._OrtClearBoundOutputs=xn._a)(I),$._OrtReleaseBinding=I=>($._OrtReleaseBinding=xn.$a)(I),$._OrtRunWithBinding=(I,V,q,oe,ye)=>($._OrtRunWithBinding=xn.ab)(I,V,q,oe,ye),$._OrtRun=(I,V,q,oe,ye,qe,Tt,Dt)=>($._OrtRun=xn.bb)(I,V,q,oe,ye,qe,Tt,Dt),$._OrtEndProfiling=I=>($._OrtEndProfiling=xn.cb)(I),$._JsepOutput=(I,V,q)=>($._JsepOutput=xn.db)(I,V,q),$._JsepGetNodeName=I=>($._JsepGetNodeName=xn.eb)(I);var Rv,Fp=()=>(Fp=xn.fb)(),zv=$._malloc=I=>(zv=$._malloc=xn.gb)(I),ru=$._free=I=>(ru=$._free=xn.hb)(I),Bw=(I,V,q,oe,ye,qe)=>(Bw=xn.kb)(I,V,q,oe,ye,qe),Wx=()=>(Wx=xn.lb)(),Vx=(I,V,q,oe,ye)=>(Vx=xn.mb)(I,V,q,oe,ye),Nw=I=>(Nw=xn.nb)(I),Bv=I=>(Bv=xn.ob)(I),Ux=()=>(Ux=xn.pb)(),Gx=(I,V)=>(Gx=xn.qb)(I,V),Nv=I=>(Nv=xn.rb)(I),jw=I=>(jw=xn.sb)(I),Ww=()=>(Ww=xn.tb)(),Hx=$.dynCall_ii=(I,V)=>(Hx=$.dynCall_ii=xn.vb)(I,V),Xx=I=>(Xx=xn.wb)(I),qx=()=>(qx=xn.xb)(),Yx=I=>(Yx=xn.yb)(I),Kx=()=>(Kx=xn.zb)();function Qx(){0Ww(),$.stackRestore=I=>Nv(I),$.stackAlloc=I=>jw(I),$.UTF8ToString=Fi,$.stringToUTF8=Bd,$.lengthBytesUTF8=Xm,Fr=function I(){Rv||Qx(),Rv||(Fr=I)},Qx(),ae}),Ct=lt,((i=globalThis.self)==null?void 0:i.name)==="em-pthread"&<()}),xt,Gt,Ut,Jt,Wt,rn,on,tn,mn=s(()=>{var i,d,x;Zt(),xt=(x=import.meta.url)!=null?x:typeof document<"u"?(i=document.currentScript)==null?void 0:i.src:typeof self<"u"?(d=self.location)==null?void 0:d.href:void 0,Gt=typeof location>"u"?void 0:location.origin,Ut=(C,E)=>{try{let A=E!=null?E:xt;return(A?new URL(C,A):new URL(C)).origin===Gt}catch{return!1}},Jt=async C=>{let E=await(await fetch(C,{credentials:"same-origin"})).blob();return URL.createObjectURL(E)},Wt=(bt(),a(Cn)).default,rn=async()=>{if(!xt)throw new Error("Failed to load proxy worker: cannot determine the script source URL.");if(Ut(xt))return[void 0,Wt()];let C=await Jt(xt);return[C,Wt(C)]},on=(at(),a(Me)).default,tn=async(C,E,A)=>[void 0,on]}),it,Et,Lt,vn,qn,Pr,zr,jn,Br=s(()=>{mn(),Et=!1,Lt=!1,vn=!1,qn=()=>{if(typeof SharedArrayBuffer>"u")return!1;try{return typeof MessageChannel<"u"&&new MessageChannel().port1.postMessage(new SharedArrayBuffer(1)),WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,4,1,3,1,1,10,11,1,9,0,65,0,254,16,2,0,26,11]))}catch{return!1}},Pr=()=>{try{return WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,30,1,28,0,65,0,253,15,253,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,253,186,1,26,11]))}catch{return!1}},zr=async i=>{var le,Se;if(Et)return Promise.resolve();if(Lt)throw new Error("multiple calls to 'initializeWebAssembly()' detected.");if(vn)throw new Error("previous call to 'initializeWebAssembly()' failed.");Lt=!0;let d=i.initTimeout,x=i.numThreads;if(!Pr())throw new Error("WebAssembly SIMD is not supported in the current environment.");let C=qn();x>1&&!C&&(typeof self<"u"&&!self.crossOriginIsolated&&console.warn("env.wasm.numThreads is set to "+x+", but this will not work unless you enable crossOriginIsolated mode. See https://web.dev/cross-origin-isolation-guide/ for more info."),console.warn("WebAssembly multi-threading is not supported in the current environment. Falling back to single-threading."),i.numThreads=x=1);let E=i.wasmPaths,A=typeof E=="string"?E:void 0,P=E==null?void 0:E.mjs,L=(le=P==null?void 0:P.href)!=null?le:P,z=E==null?void 0:E.wasm,B=(Se=z==null?void 0:z.href)!=null?Se:z,X=i.wasmBinary,[Y,$]=await tn(L,A,x>1),ae=!1,ce=[];if(d>0&&ce.push(new Promise(Ee=>{setTimeout(()=>{ae=!0,Ee()},d)})),ce.push(new Promise((Ee,be)=>{let Ve={numThreads:x};X?Ve.wasmBinary=X:(B||A)&&(Ve.locateFile=(je,et)=>B!=null?B:(A!=null?A:et)+je),$(Ve).then(je=>{Lt=!1,Et=!0,it=je,Ee(),Y&&URL.revokeObjectURL(Y)},je=>{Lt=!1,vn=!0,be(je)})})),await Promise.race(ce),ae)throw new Error(`WebAssembly backend initializing failed due to timeout: ${d}ms`)},jn=()=>{if(Et&&it)return it;throw new Error("WebAssembly is not initialized yet.")}}),Mr,Li,Sr,bo=s(()=>{Br(),Mr=(i,d)=>{let x=jn(),C=x.lengthBytesUTF8(i)+1,E=x._malloc(C);return x.stringToUTF8(i,E,C),d.push(E),E},Li=(i,d,x,C)=>{if(typeof i=="object"&&i!==null){if(x.has(i))throw new Error("Circular reference in options");x.add(i)}Object.entries(i).forEach(([E,A])=>{let P=d?d+E:E;if(typeof A=="object")Li(A,P+".",x,C);else if(typeof A=="string"||typeof A=="number")C(P,A.toString());else if(typeof A=="boolean")C(P,A?"1":"0");else throw new Error(`Can't handle extra config type: ${typeof A}`)})},Sr=i=>{let d=jn(),x=d.stackSave();try{let C=d.stackAlloc(8);d._OrtGetLastError(C,C+4);let E=d.HEAP32[C/4],A=d.HEAPU32[C/4+1],P=A?d.UTF8ToString(A):"";throw new Error(`${i} ERROR_CODE: ${E}, ERROR_MESSAGE: ${P}`)}finally{d.stackRestore(x)}}}),cl,ca=s(()=>{Br(),bo(),cl=i=>{let d=jn(),x=0,C=[],E=i||{};try{if((i==null?void 0:i.logSeverityLevel)===void 0)E.logSeverityLevel=2;else if(typeof i.logSeverityLevel!="number"||!Number.isInteger(i.logSeverityLevel)||i.logSeverityLevel<0||i.logSeverityLevel>4)throw new Error(`log serverity level is not valid: ${i.logSeverityLevel}`);if((i==null?void 0:i.logVerbosityLevel)===void 0)E.logVerbosityLevel=0;else if(typeof i.logVerbosityLevel!="number"||!Number.isInteger(i.logVerbosityLevel))throw new Error(`log verbosity level is not valid: ${i.logVerbosityLevel}`);(i==null?void 0:i.terminate)===void 0&&(E.terminate=!1);let A=0;return(i==null?void 0:i.tag)!==void 0&&(A=Mr(i.tag,C)),x=d._OrtCreateRunOptions(E.logSeverityLevel,E.logVerbosityLevel,!!E.terminate,A),x===0&&Sr("Can't create run options."),(i==null?void 0:i.extra)!==void 0&&Li(i.extra,"",new WeakSet,(P,L)=>{let z=Mr(P,C),B=Mr(L,C);d._OrtAddRunConfigEntry(x,z,B)!==0&&Sr(`Can't set a run config entry: ${P} - ${L}.`)}),[x,C]}catch(A){throw x!==0&&d._OrtReleaseRunOptions(x),C.forEach(P=>d._free(P)),A}}}),dl,fl,da,hl,fa,qa=s(()=>{Br(),bo(),dl=i=>{switch(i){case"disabled":return 0;case"basic":return 1;case"extended":return 2;case"all":return 99;default:throw new Error(`unsupported graph optimization level: ${i}`)}},fl=i=>{switch(i){case"sequential":return 0;case"parallel":return 1;default:throw new Error(`unsupported execution mode: ${i}`)}},da=i=>{i.extra||(i.extra={}),i.extra.session||(i.extra.session={});let d=i.extra.session;d.use_ort_model_bytes_directly||(d.use_ort_model_bytes_directly="1"),i.executionProviders&&i.executionProviders.some(x=>(typeof x=="string"?x:x.name)==="webgpu")&&(i.enableMemPattern=!1)},hl=(i,d,x)=>{for(let C of d){let E=typeof C=="string"?C:C.name;switch(E){case"webnn":if(E="WEBNN",typeof C!="string"){let P=C==null?void 0:C.deviceType;if(P){let L=Mr("deviceType",x),z=Mr(P,x);jn()._OrtAddSessionConfigEntry(i,L,z)!==0&&Sr(`Can't set a session config entry: 'deviceType' - ${P}.`)}}break;case"webgpu":if(E="JS",typeof C!="string"){let P=C;if(P!=null&&P.preferredLayout){if(P.preferredLayout!=="NCHW"&&P.preferredLayout!=="NHWC")throw new Error(`preferredLayout must be either 'NCHW' or 'NHWC': ${P.preferredLayout}`);let L=Mr("preferredLayout",x),z=Mr(P.preferredLayout,x);jn()._OrtAddSessionConfigEntry(i,L,z)!==0&&Sr(`Can't set a session config entry: 'preferredLayout' - ${P.preferredLayout}.`)}}break;case"wasm":case"cpu":continue;default:throw new Error(`not supported execution provider: ${E}`)}let A=Mr(E,x);jn()._OrtAppendExecutionProvider(i,A)!==0&&Sr(`Can't append execution provider: ${E}.`)}},fa=i=>{var A,P,L,z;let d=jn(),x=0,C=[],E=i||{};da(E);try{let B=dl((A=E.graphOptimizationLevel)!=null?A:"all"),X=fl((P=E.executionMode)!=null?P:"sequential"),Y=typeof E.logId=="string"?Mr(E.logId,C):0,$=(L=E.logSeverityLevel)!=null?L:2;if(!Number.isInteger($)||$<0||$>4)throw new Error(`log serverity level is not valid: ${$}`);let ae=(z=E.logVerbosityLevel)!=null?z:0;if(!Number.isInteger(ae)||ae<0||ae>4)throw new Error(`log verbosity level is not valid: ${ae}`);let ce=typeof E.optimizedModelFilePath=="string"?Mr(E.optimizedModelFilePath,C):0;if(x=d._OrtCreateSessionOptions(B,!!E.enableCpuMemArena,!!E.enableMemPattern,X,!!E.enableProfiling,0,Y,$,ae,ce),x===0&&Sr("Can't create session options."),E.executionProviders&&hl(x,E.executionProviders,C),E.enableGraphCapture!==void 0){if(typeof E.enableGraphCapture!="boolean")throw new Error(`enableGraphCapture must be a boolean value: ${E.enableGraphCapture}`);let le=Mr("enableGraphCapture",C),Se=Mr(E.enableGraphCapture.toString(),C);d._OrtAddSessionConfigEntry(x,le,Se)!==0&&Sr(`Can't set a session config entry: 'enableGraphCapture' - ${E.enableGraphCapture}.`)}if(E.freeDimensionOverrides)for(let[le,Se]of Object.entries(E.freeDimensionOverrides)){if(typeof le!="string")throw new Error(`free dimension override name must be a string: ${le}`);if(typeof Se!="number"||!Number.isInteger(Se)||Se<0)throw new Error(`free dimension override value must be a non-negative integer: ${Se}`);let Ee=Mr(le,C);d._OrtAddFreeDimensionOverride(x,Ee,Se)!==0&&Sr(`Can't set a free dimension override: ${le} - ${Se}.`)}return E.extra!==void 0&&Li(E.extra,"",new WeakSet,(le,Se)=>{let Ee=Mr(le,C),be=Mr(Se,C);d._OrtAddSessionConfigEntry(x,Ee,be)!==0&&Sr(`Can't set a session config entry: ${le} - ${Se}.`)}),[x,C]}catch(B){throw x!==0&&d._OrtReleaseSessionOptions(x),C.forEach(X=>d._free(X)),B}}}),ha,fs,ks,Ya,hs,xo,So,To,Sn=s(()=>{ha=i=>{switch(i){case"int8":return 3;case"uint8":return 2;case"bool":return 9;case"int16":return 5;case"uint16":return 4;case"int32":return 6;case"uint32":return 12;case"float16":return 10;case"float32":return 1;case"float64":return 11;case"string":return 8;case"int64":return 7;case"uint64":return 13;case"int4":return 22;case"uint4":return 21;default:throw new Error(`unsupported data type: ${i}`)}},fs=i=>{switch(i){case 3:return"int8";case 2:return"uint8";case 9:return"bool";case 5:return"int16";case 4:return"uint16";case 6:return"int32";case 12:return"uint32";case 10:return"float16";case 1:return"float32";case 11:return"float64";case 8:return"string";case 7:return"int64";case 13:return"uint64";case 22:return"int4";case 21:return"uint4";default:throw new Error(`unsupported data type: ${i}`)}},ks=(i,d)=>{let x=[-1,4,1,1,2,2,4,8,-1,1,2,8,4,8,-1,-1,-1,-1,-1,-1,-1,.5,.5][i],C=typeof d=="number"?d:d.reduce((E,A)=>E*A,1);return x>0?Math.ceil(C*x):void 0},Ya=i=>{switch(i){case"float16":return typeof Float16Array<"u"&&Float16Array.from?Float16Array:Uint16Array;case"float32":return Float32Array;case"uint8":return Uint8Array;case"int8":return Int8Array;case"uint16":return Uint16Array;case"int16":return Int16Array;case"int32":return Int32Array;case"bool":return Uint8Array;case"float64":return Float64Array;case"uint32":return Uint32Array;case"int64":return BigInt64Array;case"uint64":return BigUint64Array;default:throw new Error(`unsupported type: ${i}`)}},hs=i=>{switch(i){case"verbose":return 0;case"info":return 1;case"warning":return 2;case"error":return 3;case"fatal":return 4;default:throw new Error(`unsupported logging level: ${i}`)}},xo=i=>i==="float32"||i==="float16"||i==="int32"||i==="int64"||i==="uint32"||i==="uint8"||i==="bool"||i==="uint4"||i==="int4",So=i=>i==="float32"||i==="float16"||i==="int32"||i==="int64"||i==="uint32"||i==="uint64"||i==="int8"||i==="uint8"||i==="bool",To=i=>{switch(i){case"none":return 0;case"cpu":return 1;case"cpu-pinned":return 2;case"texture":return 3;case"gpu-buffer":return 4;case"ml-tensor":return 5;default:throw new Error(`unsupported data location: ${i}`)}}}),pa,Co=s(()=>{Zt(),pa=async i=>{if(typeof i=="string"){let d=await fetch(i);if(!d.ok)throw new Error(`failed to load external data file: ${i}`);let x=d.headers.get("Content-Length"),C=x?parseInt(x,10):0;if(C<1073741824)return new Uint8Array(await d.arrayBuffer());{if(!d.body)throw new Error(`failed to load external data file: ${i}, no response body.`);let E=d.body.getReader(),A;try{A=new ArrayBuffer(C)}catch(L){if(L instanceof RangeError){let z=Math.ceil(C/65536);A=new WebAssembly.Memory({initial:z,maximum:z}).buffer}else throw L}let P=0;for(;;){let{done:L,value:z}=await E.read();if(L)break;let B=z.byteLength;new Uint8Array(A,P,B).set(z),P+=B}return new Uint8Array(A,0,C)}}else return i instanceof Blob?new Uint8Array(await i.arrayBuffer()):i instanceof Uint8Array?i:new Uint8Array(i)}}),Mo,ma,pl,Eo,Os,Po,Ke,H=s(()=>{Sn(),Mo=["V","I","W","E","F"],ma=(i,d)=>{console.log(`[${Mo[i]},${new Date().toISOString()}]${d}`)},Os=(i,d)=>{pl=i,Eo=d},Po=(i,d)=>{let x=hs(i),C=hs(pl);x>=C&&ma(x,typeof d=="function"?d():d)},Ke=(...i)=>{Eo&&Po(...i)}}),ve,Le=s(()=>{Sn(),ve=(i,d)=>new(Ya(d))(i)}),Ye=s(()=>{}),rt,gt,It,zt,Bt,en,En,cr,vr,tr=s(()=>{H(),Ye(),rt=new Map([[64,250],[128,200],[256,200],[512,200],[2048,230],[4096,200],[8192,50],[16384,50],[32768,50],[65536,50],[131072,50],[262144,50],[524288,50],[1048576,50],[2097152,30],[4194304,20],[8388608,10],[12582912,10],[16777216,10],[26214400,15],[33554432,22],[44236800,2],[58982400,6],[67108864,6],[134217728,6],[167772160,6]]),gt=[],It=i=>Math.ceil(i/16)*16,zt=i=>{for(let d=0;dBt++,En=async(i,d,x,C)=>{let E=It(x),A=i.device.createBuffer({size:E,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ});try{let P=i.getCommandEncoder();i.endComputePass(),P.copyBufferToBuffer(d,0,A,0,E),i.flush(),await A.mapAsync(GPUMapMode.READ);let L=A.getMappedRange();if(C){let z=C();return z.set(new Uint8Array(L,0,x)),z}else return new Uint8Array(L.slice(0,x))}finally{A.destroy()}},cr=class{constructor(i){this.backend=i,this.storageCache=new Map,this.freeBuffers=new Map,this.freeUniformBuffers=new Map,this.buffersForUploadingPending=[],this.buffersPending=[],this.capturedPendingBuffers=new Map;for(let[d]of rt)gt.push(d),this.freeBuffers.set(d,[]),this.freeUniformBuffers.set(d,[])}upload(i,d){let x=d.buffer,C=d.byteOffset,E=d.byteLength,A=It(E),P=this.storageCache.get(i);if(!P)throw new Error("gpu data for uploading does not exist");if(P.originalSize!==E)throw new Error(`inconsistent data size. gpu data size=${P.originalSize}, data size=${E}`);let L=this.backend.device.createBuffer({mappedAtCreation:!0,size:A,usage:GPUBufferUsage.MAP_WRITE|GPUBufferUsage.COPY_SRC}),z=L.getMappedRange();new Uint8Array(z).set(new Uint8Array(x,C,E)),L.unmap();let B=this.backend.getCommandEncoder();this.backend.endComputePass(),B.copyBufferToBuffer(L,0,P.gpuData.buffer,0,A),Ke("verbose",()=>`[WebGPU] GpuDataManager.upload(id=${i})`),this.buffersForUploadingPending.push(L)}memcpy(i,d){let x=this.storageCache.get(i);if(!x)throw new Error("source gpu data for memcpy does not exist");let C=this.storageCache.get(d);if(!C)throw new Error("destination gpu data for memcpy does not exist");if(x.originalSize!==C.originalSize)throw new Error("inconsistent source and destination gpu data size");let E=It(x.originalSize),A=this.backend.getCommandEncoder();this.backend.endComputePass(),A.copyBufferToBuffer(x.gpuData.buffer,0,C.gpuData.buffer,0,E)}registerExternalBuffer(i,d,x){let C;if(x){if(C=x[0],i===x[1])return Ke("verbose",()=>`[WebGPU] GpuDataManager.registerExternalBuffer(size=${d}) => id=${C}, buffer is the same, skip.`),C;if(this.backend.capturedCommandList.has(this.backend.currentSessionId))throw new Error(`Registering a different external buffer under graph capture mode is not supported yet. + Please use the previous external buffer!`)}else C=en();return this.storageCache.set(C,{gpuData:{id:C,type:0,buffer:i},originalSize:d}),Ke("verbose",()=>`[WebGPU] GpuDataManager.registerExternalBuffer(size=${d}) => id=${C}, registered.`),C}unregisterExternalBuffer(i){i!==void 0&&(this.storageCache.delete(i),Ke("verbose",()=>`[WebGPU] GpuDataManager.unregisterExternalBuffer() => id=${i}`))}create(i,d=GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_SRC|GPUBufferUsage.COPY_DST){let x=zt(i),C,E=(d&GPUBufferUsage.STORAGE)===GPUBufferUsage.STORAGE,A=(d&GPUBufferUsage.UNIFORM)===GPUBufferUsage.UNIFORM;if(E||A){let L=(E?this.freeBuffers:this.freeUniformBuffers).get(x);L?L.length>0?C=L.pop():C=this.backend.device.createBuffer({size:x,usage:d}):C=this.backend.device.createBuffer({size:x,usage:d})}else C=this.backend.device.createBuffer({size:x,usage:d});let P={id:en(),type:0,buffer:C};return this.storageCache.set(P.id,{gpuData:P,originalSize:i}),Ke("verbose",()=>`[WebGPU] GpuDataManager.create(size=${i}) => id=${P.id}`),P}get(i){var d;return(d=this.storageCache.get(i))==null?void 0:d.gpuData}release(i){let d=this.storageCache.get(i);if(!d)throw new Error("releasing data does not exist");return Ke("verbose",()=>`[WebGPU] GpuDataManager.release(id=${i}), gpuDataId=${d.gpuData.id}`),this.storageCache.delete(i),this.buffersPending.push(d.gpuData.buffer),d.originalSize}async download(i,d){let x=this.storageCache.get(i);if(!x)throw new Error("data does not exist");await En(this.backend,x.gpuData.buffer,x.originalSize,d)}refreshPendingBuffers(){for(let i of this.buffersForUploadingPending)i.destroy();if(this.buffersForUploadingPending=[],this.buffersPending.length!==0)if(this.backend.sessionStatus==="default"){for(let i of this.buffersPending){let d=rt.get(i.size);if((i.usage&GPUBufferUsage.STORAGE)===GPUBufferUsage.STORAGE){let x=this.freeBuffers.get(i.size)||[];d===void 0||x.length>=d?i.destroy():x.push(i)}else if((i.usage&GPUBufferUsage.UNIFORM)===GPUBufferUsage.UNIFORM){let x=this.freeUniformBuffers.get(i.size)||[];d===void 0||x.length>=d?i.destroy():x.push(i)}else i.destroy()}this.buffersPending=[]}else{let i=this.capturedPendingBuffers.get(this.backend.currentSessionId);i||(i=[],this.capturedPendingBuffers.set(this.backend.currentSessionId,i));for(let d of this.buffersPending)i.push(d);this.buffersPending=[]}}dispose(){this.freeBuffers.forEach(i=>{i.forEach(d=>{d.destroy()})}),this.freeUniformBuffers.forEach(i=>{i.forEach(d=>{d.destroy()})}),this.storageCache.forEach(i=>{i.gpuData.buffer.destroy()}),this.capturedPendingBuffers.forEach(i=>{i.forEach(d=>{d.destroy()})}),this.storageCache=new Map,this.freeBuffers=new Map,this.freeUniformBuffers=new Map,this.capturedPendingBuffers=new Map}onReleaseSession(i){let d=this.capturedPendingBuffers.get(i);d&&(d.forEach(x=>{x.destroy()}),this.capturedPendingBuffers.delete(i))}},vr=(...i)=>new cr(...i)}),kr,Fn,ir=s(()=>{kr=class{constructor(i){Object.assign(this,i)}get cacheKey(){return this.key||(this.key=Object.getOwnPropertyNames(this).sort().map(i=>`${this[i]}`).join(";")),this.key}},Fn=i=>new kr(i)}),Mi,Ei,dt,qr,mi,ps,ms,bn=s(()=>{Mi=class{static calcMatMulShape(i,d){return i[1]!==d[0]?void 0:[i[0],d[1]]}},Ei=class{static calcShape(i,d,x=!1){let C=i.length,E=d.length;if(C===0)return d;if(E===0)return i;let A=Math.max(i.length,d.length),P=new Array(A);if(x){if(C<2||E<2)return;let L=Mi.calcMatMulShape([i[C-2],i[C-1]],[d[E-2],d[E-1]]);if(L===void 0)return;[P[A-2],P[A-1]]=L}for(let L=x?3:1;L<=A;L++){let z=C-L<0?1:i[C-L],B=E-L<0?1:d[E-L];if(z!==B&&z>1&&B>1)return;let X=Math.max(z,B);if(z&&B)P[A-L]=Math.max(z,B);else{if(X>1)return;P[A-L]=0}}return P}static isValidBroadcast(i,d){let x=i.length,C=d.length;if(x>C)return!1;for(let E=1;E<=x;E++)if(i[x-E]!==1&&i[x-E]!==d[C-E])return!1;return!0}},dt=class S0{static size(d){return S0.getSizeFromDimensionRange(d,0,d.length)}static convertShape(d,x=4){let C=d.length;if(C===0)return[];let E=new Array(C),A=C-1;for(;A>=0;){if(d[A]%x===0){E[A]=d[A]/x;break}if(x%d[A]!==0)throw new Error("cannot convert shape");E[A]=1,x/=d[A],A--}for(A--;A>=0;A--)E[A]=d[A];return E}static sizeFromDimension(d,x){if(x<0||x>d.length)throw new Error(`invalid dimension of ${x} for sizeFromDimension as Tensor has ${d.length} dimensions.`);return S0.getSizeFromDimensionRange(d,x,d.length)}static sizeToDimension(d,x){if(x<0||x>d.length)throw new Error(`invalid dimension of ${x} for sizeToDimension as Tensor has ${d.length} dimensions.`);return S0.getSizeFromDimensionRange(d,0,x)}static getSizeFromDimensionRange(d,x,C){let E=1;for(let A=x;A=0;--E)C[E]=C[E+1]*d[E+1];return C}static normalizeAxis(d,x){if(d<-x&&d>=x)throw new Error("unsupported axis for this operation.");return d<0?d+x:d}static normalizeAxes(d,x){return d.map(C=>this.normalizeAxis(C,x!=null?x:d.length))}static sortBasedOnPerm(d,x){return x?x.map(C=>d[C]):d.slice().reverse()}static padShape(d,x){let C=d.length;return d.map((E,A)=>E+x[A]+x[A+C])}static areEqual(d,x){return d.length!==x.length?!1:d.every((C,E)=>C===x[E])}},qr=class Tg{static adjustPoolAttributes(d,x,C,E,A,P){if(!d&&C.length!==x.length-2)throw new Error("length of specified kernel shapes should be 2 less than length of input dimensions");if(d)for(let L=0;L=C.length?C.push(x[L+2]):C[L]=x[L+2];for(let L=0;L=C[L]||P[L+C.length]>=C[L])throw new Error("pads should be smaller than kernel")}}static adjustPadsBasedOnAutoPad(d,x,C,E,A,P,L){if(L){if(A.length!==2*(d.length-2))throw new Error("length of pads should be twice the length of data dimensions");if(x.length!==d.length-2)throw new Error("length of strides should be the length of data dimensions");if(E.length!==d.length-2)throw new Error("length of kernel shapes should be the length of data dimensions");for(let z=0;z{Sn(),bn(),wi=64,Nr=(i,d)=>{if(d===3)throw new Error("vec3 has same alignment as vec4, use vec4 instead");switch(i){case 10:return d>1?`vec${d}`:"f16";case 1:return d>1?`vec${d}`:"f32";case 6:return d>1?`vec${d}`:"i32";case 12:return d>1?`vec${d}`:"u32";case 7:if(d>1)throw new Error("currently not supported vecX of uint64 yet");return["vec2","i32"];case 13:if(d>1)throw new Error("currently not supported vecX of uint64 yet");return["vec2","u32"];case 9:if(d!==4)throw new Error("bool must be vec4");return["u32","vec4"];case 22:return"i32";case 21:return"u32";default:throw new Error(`Unknown data type: ${i}`)}},Hn=(i,d=1)=>{let x=Nr(i,d);return typeof x=="string"?x:x[0]},yr=(i,d=1)=>{let x=Nr(i,d);return typeof x=="string"?x:x[1]},Ot=(...i)=>{let d=[];return i.forEach(x=>{x.length!==0&&d.push({type:12,data:x},{type:12,data:dt.computeStrides(x)})}),d},cn=i=>i%4===0?4:i%2===0?2:1,Ka=(i="f32",d,x="0")=>!d||d===1?`${i}(${x})`:`vec${d}<${i}>(${x})`,ga=(i,d,x)=>i==="f32"?x:d===1?`f32(${x})`:`vec${d}(${x})`,Ks=(i,d)=>d===4?`(${i}.x + ${i}.y + ${i}.z + ${i}.w)`:d===2?`(${i}.x + ${i}.y)`:d===3?`(${i}.x + ${i}.y + ${i}.z)`:i,fn=(i,d,x,C)=>i.startsWith("uniforms.")&&x>4?typeof d=="string"?C==="f16"?`${i}[(${d}) / 8][(${d}) % 8 / 4][(${d}) % 8 % 4]`:`${i}[(${d}) / 4][(${d}) % 4]`:C==="f16"?`${i}[${Math.floor(d/8)}][${Math.floor(d%8/4)}][${d%8%4}]`:`${i}[${Math.floor(d/4)}][${d%4}]`:x>1?`${i}[${d}]`:i,pu=(i,d,x,C,E)=>{let A=typeof x=="number",P=A?x:x.length,L=[...new Array(P).keys()],z=P<2?"u32":P<=4?`vec${P}`:`array`,B=Nr(d,E),X=typeof B=="string"?B:B[1],Y=typeof B=="string"?B:B[0],$={indices:z,value:X,storage:Y,tensor:d},ae=ft=>typeof ft=="string"?ft:`${ft}u`,ce={offsetToIndices:!1,indicesToOffset:!1,broadcastedIndicesToOffset:!1,set:!1,setByIndices:!1,get:!1,getByIndices:!1},le=A?"uniforms.":"",Se=`${le}${i}_shape`,Ee=`${le}${i}_strides`,be="";for(let ft=0;ft ${$.indices} { + var indices: ${$.indices}; + var current = offset; + ${be} + return indices; + }`,je=ft=>(ce.offsetToIndices=!0,P<2?ft:`o2i_${i}(${ft})`),et=[];if(P>=2)for(let ft=P-1;ft>=0;ft--)et.push(`${fn(Ee,ft,P)} * (indices[${ft}])`);let _t=P<2?"":` + fn i2o_${i}(indices: ${$.indices}) -> u32 { + return ${et.join("+")}; + }`,ot=ft=>(ce.indicesToOffset=!0,P<2?ft:`i2o_${i}(${ft})`),$t=(...ft)=>P===0?"0u":`${$.indices}(${ft.map(ae).join(",")})`,Ht=(ft,Yt)=>P<2?`${ft}`:`${fn(ft,Yt,P)}`,dn=(ft,Yt,yn)=>P<2?`${ft}=${yn};`:`${fn(ft,Yt,P)}=${yn};`,Pn={},kn=(ft,Yt)=>{ce.broadcastedIndicesToOffset=!0;let yn=`${Yt.name}broadcastedIndicesTo${i}Offset`;if(yn in Pn)return`${yn}(${ft})`;let wr=[];for(let ri=P-1;ri>=0;ri--){let ui=Yt.indicesGet("outputIndices",ri+Yt.rank-P);wr.push(`${Ht(Ee,ri)} * (${ui} % ${Ht(Se,ri)})`)}return Pn[yn]=`fn ${yn}(outputIndices: ${Yt.type.indices}) -> u32 { + return ${wr.length>0?wr.join("+"):"0u"}; + }`,`${yn}(${ft})`},hn=(ft,Yt)=>(()=>{if($.storage===$.value)return`${i}[${ft}]=${Yt};`;if($.storage==="vec2"&&$.value==="i32")return`${i}[${ft}]=vec2(u32(${Yt}), select(0u, 0xFFFFFFFFu, ${Yt} < 0));`;if($.storage==="vec2"&&$.value==="u32")return`${i}[${ft}]=vec2(u32(${Yt}), 0u);`;if($.storage==="u32"&&$.value==="vec4")return`${i}[${ft}]=dot(vec4(0x1, 0x100, 0x10000, 0x1000000), vec4(${Yt}));`;throw new Error(`not supported combination of storage type ${$.storage} and value type ${$.value} yet`)})(),Xn=ft=>(()=>{if($.storage===$.value)return`${i}[${ft}]`;if($.storage==="vec2"&&$.value==="i32")return`i32(${i}[${ft}].x)`;if($.storage==="vec2"&&$.value==="u32")return`u32(${i}[${ft}].x)`;if($.storage==="u32"&&$.value==="vec4")return`vec4(bool(${i}[${ft}] & 0xFFu), bool(${i}[${ft}] & 0xFF00u), bool(${i}[${ft}] & 0xFF0000u), bool(${i}[${ft}] & 0xFF000000u))`;throw new Error(`not supported combination of storage type ${$.storage} and value type ${$.value} yet`)})(),Or=P<2?"":` + fn get_${i}ByIndices(indices: ${$.indices}) -> ${X} { + return ${Xn(`i2o_${i}(indices)`)}; + }`,Wn=P<2?"":(()=>{let ft=L.map(yn=>`d${yn}: u32`).join(", "),Yt=L.map(yn=>`d${yn}`).join(", ");return` + fn get_${i}(${ft}) -> ${X} { + return get_${i}ByIndices(${$t(Yt)}); + }`})(),Yn=(...ft)=>{if(ft.length!==P)throw new Error(`indices length must be ${P}`);let Yt=ft.map(ae).join(",");return P===0?Xn("0u"):P===1?Xn(Yt[0]):(ce.get=!0,ce.getByIndices=!0,ce.indicesToOffset=!0,`get_${i}(${Yt})`)},Rt=ft=>P<2?Xn(ft):(ce.getByIndices=!0,ce.indicesToOffset=!0,`get_${i}ByIndices(${ft})`),Mn=P<2?"":` + fn set_${i}ByIndices(indices: ${$.indices}, value: ${X}) { + ${hn(`i2o_${i}(indices)`,"value")} + }`,Rn=P<2?"":(()=>{let ft=L.map(yn=>`d${yn}: u32`).join(", "),Yt=L.map(yn=>`d${yn}`).join(", ");return` + fn set_${i}(${ft}, value: ${X}) { + set_${i}ByIndices(${$t(Yt)}, value); + }`})();return{impl:()=>{let ft=[],Yt=!1;return ce.offsetToIndices&&(ft.push(Ve),Yt=!0),ce.indicesToOffset&&(ft.push(_t),Yt=!0),ce.broadcastedIndicesToOffset&&(Object.values(Pn).forEach(yn=>ft.push(yn)),Yt=!0),ce.set&&(ft.push(Rn),Yt=!0),ce.setByIndices&&(ft.push(Mn),Yt=!0),ce.get&&(ft.push(Wn),Yt=!0),ce.getByIndices&&(ft.push(Or),Yt=!0),!A&&Yt&&ft.unshift(`const ${Se} = ${$.indices}(${x.join(",")});`,`const ${Ee} = ${$.indices}(${dt.computeStrides(x).join(",")});`),ft.join(` +`)},type:$,offsetToIndices:je,indicesToOffset:ot,broadcastedIndicesToOffset:kn,indices:$t,indicesGet:Ht,indicesSet:dn,set:(...ft)=>{if(ft.length!==P+1)throw new Error(`indices length must be ${P}`);let Yt=ft[P];if(typeof Yt!="string")throw new Error("value must be string");let yn=ft.slice(0,P).map(ae).join(",");return P===0?hn("0u",Yt):P===1?hn(yn[0],Yt):(ce.set=!0,ce.setByIndices=!0,ce.indicesToOffset=!0,`set_${i}(${yn}, ${Yt})`)},setByOffset:hn,setByIndices:(ft,Yt)=>P<2?hn(ft,Yt):(ce.setByIndices=!0,ce.indicesToOffset=!0,`set_${i}ByIndices(${ft}, ${Yt});`),get:Yn,getByOffset:Xn,getByIndices:Rt,usage:C,name:i,strides:Ee,shape:Se,rank:P}},Pt=(i,d,x,C=1)=>pu(i,d,x,"input",C),pn=(i,d,x,C=1)=>pu(i,d,x,"output",C),pc=(i,d,x,C=1)=>pu(i,d,x,"internal",C),ti=class{constructor(i,d){this.normalizedDispatchGroup=i,this.limits=d,this.internalVariables=[],this.variables=[],this.uniforms=[],this.variableIndex=0}guardAgainstOutOfBoundsWorkgroupSizes(i){return`if (global_idx >= ${typeof i=="number"?`${i}u`:i}) { return; }`}mainStart(i=wi){let d=typeof i=="number"?i:i[0],x=typeof i=="number"?1:i[1],C=typeof i=="number"?1:i[2];if(d>this.limits.maxComputeWorkgroupSizeX||x>this.limits.maxComputeWorkgroupSizeY||C>this.limits.maxComputeWorkgroupSizeZ)throw new Error(`workgroup size [${d}, ${x}, ${C}] exceeds the maximum workgroup size [${this.limits.maxComputeWorkgroupSizeX}, ${this.limits.maxComputeWorkgroupSizeY}, ${this.limits.maxComputeWorkgroupSizeZ}].`);if(d*x*C>this.limits.maxComputeInvocationsPerWorkgroup)throw new Error(`workgroup size [${d}, ${x}, ${C}] exceeds the maximum workgroup invocations ${this.limits.maxComputeInvocationsPerWorkgroup}.`);let E=this.normalizedDispatchGroup[1]===1&&this.normalizedDispatchGroup[2]===1,A=E?`@builtin(global_invocation_id) global_id : vec3, + @builtin(workgroup_id) workgroup_id : vec3, + @builtin(local_invocation_index) local_idx : u32, + @builtin(local_invocation_id) local_id : vec3`:`@builtin(global_invocation_id) global_id : vec3, + @builtin(local_invocation_id) local_id : vec3, + @builtin(local_invocation_index) local_idx : u32, + @builtin(workgroup_id) workgroup_id : vec3, + @builtin(num_workgroups) num_workgroups : vec3`,P=E?`let global_idx = global_id.x; + let workgroup_index = workgroup_id.x;`:`let workgroup_index = workgroup_id.z * num_workgroups[0] * num_workgroups[1] + + workgroup_id.y * num_workgroups[0] + workgroup_id.x; + let global_idx = workgroup_index * ${d*x*C}u + local_idx;`;return`@compute @workgroup_size(${d}, ${x}, ${C}) + fn main(${A}) { + ${P} + `}appendVariableUniforms(i){i.rank!==0&&(i.shape.startsWith("uniforms.")&&this.uniforms.push({name:i.shape.replace("uniforms.",""),type:"u32",length:i.rank}),i.strides.startsWith("uniforms.")&&this.uniforms.push({name:i.strides.replace("uniforms.",""),type:"u32",length:i.rank}))}declareVariable(i,d){if(i.usage==="internal")throw new Error("cannot use internal variable with declareVariable(). use registerInternalVariables() instead.");this.variables.push(i),this.appendVariableUniforms(i);let x=i.usage==="input"?"read":"read_write",C=i.type.storage;return`@group(0) @binding(${d}) var ${i.name}: array<${C}>;`}declareVariables(...i){return i.map(d=>this.declareVariable(d,this.variableIndex++)).join(` +`)}registerInternalVariable(i){if(i.usage!=="internal")throw new Error("cannot use input or output variable with registerInternalVariable(). use declareVariables() instead.");this.internalVariables.push(i),this.appendVariableUniforms(i)}registerInternalVariables(...i){return i.forEach(d=>this.registerInternalVariable(d)),this}registerUniform(i,d,x=1){return this.uniforms.push({name:i,type:d,length:x}),this}registerUniforms(i){return this.uniforms=this.uniforms.concat(i),this}uniformDeclaration(){if(this.uniforms.length===0)return"";let i=[];for(let{name:d,type:x,length:C}of this.uniforms)if(C&&C>4)x==="f16"?i.push(`@align(16) ${d}:array, ${Math.ceil(C/8)}>`):i.push(`${d}:array, ${Math.ceil(C/4)}>`);else{let E=C==null||C===1?x:`vec${C}<${x}>`;i.push(`${d}:${E}`)}return` + struct Uniforms { ${i.join(", ")} }; + @group(0) @binding(${this.variableIndex}) var uniforms: Uniforms;`}get additionalImplementations(){return this.uniformDeclaration()+this.variables.map(i=>i.impl()).join(` +`)+this.internalVariables.map(i=>i.impl()).join(` +`)}get variablesInfo(){if(this.uniforms.length===0)return;let i=d=>[12,10,1,6][["u32","f16","f32","i32"].indexOf(d)];return this.uniforms.map(d=>{var x;return[i(d.type),(x=d.length)!=null?x:1]})}},mu=(i,d)=>new ti(i,d),rs=(i,d)=>{let x=i.length,C=[];for(let E=0;E1&&P===1&&C.unshift(A)}return C}}),gu,Ri,_a,mc,pf,zi,mf,gc,Wr=s(()=>{Sn(),bn(),ir(),Nn(),gu=i=>{if(!i||i.length!==1)throw new Error("Transpose requires 1 input.")},Ri=(i,d)=>d&&d.length!==i?[...new Array(i).keys()].reverse():d,_a=(i,d)=>dt.sortBasedOnPerm(i,Ri(i.length,d)),mc=(i,d,x,C)=>{let E=`fn perm(i: ${C.type.indices}) -> ${x.type.indices} { + var a: ${x.type.indices};`;for(let A=0;A{let x=[],C=[];for(let E=0;E{let x=i.dataType,C=i.dims.length,E=Ri(C,d),A=_a(i.dims,E),{newShape:P,newPerm:L}=pf(i.dims,E),z=dt.areEqual(L,[2,3,1]),B=dt.areEqual(L,[3,1,2]),X=P.length===2&&L[0]>L[1]||z||B,Y=X?P:i.dims,$=A;X&&(Y=z?[P[0],P[1]*P[2]]:B?[P[0]*P[1],P[2]]:P,$=[Y[1],Y[0]]);let ae=Pt("a",x,Y.length),ce=pn("output",x,$.length),le=16,Se;return X?Se=Ee=>` + ${Ee.registerUniform("output_size","u32").declareVariables(ae,ce)} + var tile : array, ${le}>; + ${Ee.mainStart([le,le,1])} + let stride = (uniforms.output_shape[1] - 1) / ${le} + 1; + let workgroup_id_x = workgroup_index % stride; + let workgroup_id_y = workgroup_index / stride; + let input_col = workgroup_id_y * ${le}u + local_id.x; + let input_row = workgroup_id_x * ${le}u + local_id.y; + if (input_row < uniforms.a_shape[0] && input_col < uniforms.a_shape[1]) { + tile[local_id.y][local_id.x] = ${ae.getByIndices(`${ae.type.indices}(input_row, input_col)`)}; + } + workgroupBarrier(); + + let output_col = workgroup_id_x * ${le}u + local_id.x; + let output_row = workgroup_id_y * ${le}u + local_id.y; + if (output_row < uniforms.output_shape[0] && output_col < uniforms.output_shape[1]) { + ${ce.setByIndices(`${ce.type.indices}(output_row, output_col)`,"tile[local_id.x][local_id.y]")} + } + }`:Se=Ee=>` + ${Ee.registerUniform("output_size","u32").declareVariables(ae,ce)} + + ${mc(E,C,ae,ce)} + + ${Ee.mainStart()} + ${Ee.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + + let indices = ${ce.offsetToIndices("global_idx")}; + let aIndices = perm(indices); + + ${ce.setByOffset("global_idx",ae.getByIndices("aIndices"))} + }`,{name:X?"TransposeShared":"Transpose",shaderCache:{hint:`${d}`,inputDependencies:["rank"]},getRunData:()=>{let Ee=dt.size(A);return{outputs:[{dims:A,dataType:i.dataType}],dispatchGroup:X?{x:Math.ceil($[1]/le),y:Math.ceil($[0]/le)}:{x:Math.ceil(Ee/64)},programUniforms:[{type:12,data:Ee},...Ot(Y,$)]}},getShaderSource:Se}},mf=(i,d)=>{gu(i.inputs),i.compute(zi(i.inputs[0],d.perm))},gc=i=>Fn({perm:i.perm})}),gf,qi,_f,_c,Qs,ko,_u,$r,As,vu,gs,ml,vf,yf,vc,yc,gl,va,wf,wc,yu,bc=s(()=>{Sn(),bn(),Nn(),kc(),Wr(),gf={max:"select(bestValue, candidate, candidate > bestValue)",min:"select(bestValue, candidate, candidate < bestValue)",mean:"bestValue + candidate",sum:"bestValue + candidate",prod:"bestValue * candidate",sumSquare:"bestValue + candidate * candidate",logSumExp:"bestValue + exp(candidate)",l1:"bestValue + abs(candidate)",l2:"bestValue + candidate * candidate",logSum:"bestValue + candidate"},qi={max:"select(bestValue, candidate, candidate > bestValue)",min:"select(bestValue, candidate, candidate < bestValue)",mean:"bestValue + candidate",sum:"bestValue + candidate",prod:"bestValue * candidate",sumSquare:"bestValue + candidate",logSumExp:"bestValue + candidate",l1:"bestValue + candidate",l2:"bestValue + candidate",logSum:"bestValue + candidate"},_f={max:"_A[offset]",min:"_A[offset]",mean:"0",sum:"0",prod:"1",sumSquare:"0",logSumExp:"0",l1:"0",l2:"0",logSum:"0"},_c={max:"bestValue",min:"bestValue",sum:"bestValue",prod:"bestValue",sumSquare:"bestValue",logSumExp:"log(bestValue)",l1:"bestValue",l2:"sqrt(bestValue)",logSum:"log(bestValue)"},Qs=(i,d)=>{let x=[];for(let C=d-i;C{let x=[],C=i.length;for(let A=0;Ai[A]);return[x,E]},_u=(i,d)=>{let x=i.length+d.length,C=[],E=0;for(let A=0;A{for(let x=0;x{let x=[];if(!$r(i,d)){for(let C=0;Cx.push(C))}return x},vu=(i,d,x,C,E,A,P)=>{let L=x[0].dims,z=dt.size(A),B=dt.size(P),X=Pt("_A",x[0].dataType,L),Y=pn("output",E,A),$=32,ae=` + var aBestValues : array; + `;return{name:i,shaderCache:d,getShaderSource:ce=>` + ${ce.registerUniform("reduceSize","u32").declareVariables(X,Y)} + ${ae} + fn DIV_CEIL(a : u32, b : u32) -> u32 { + return ((a - 1u) / b + 1u); + } + ${ce.mainStart($)} + + let outputIndex = global_idx / ${$}; + let offset = outputIndex * uniforms.reduceSize; + + var bestValue = f32(${_f[C]}); + let Length = uniforms.reduceSize; + for (var k = local_idx; k < Length; k = k + ${$}) { + let candidate = f32(${X.getByOffset("offset + k")}); + bestValue = ${gf[C]}; + } + aBestValues[local_idx] = bestValue; + workgroupBarrier(); + + var reduceSize = min(Length, ${$}u); + for (var currentSize = reduceSize / 2u; reduceSize > 1u; + currentSize = reduceSize / 2u) { + let interval = DIV_CEIL(reduceSize, 2u); + if (local_idx < currentSize) { + let candidate = aBestValues[local_idx + interval]; + bestValue = ${qi[C]}; + aBestValues[local_idx] = bestValue; + } + reduceSize = interval; + workgroupBarrier(); + } + + if (local_idx == 0u) { + ${Y.setByOffset("outputIndex",`${C==="mean"?`${Y.type.storage}(bestValue / f32(uniforms.reduceSize))`:`${Y.type.storage}(${_c[C]})`}`)}; + } + }`,getRunData:()=>({outputs:[{dims:A,dataType:E}],dispatchGroup:{x:z},programUniforms:[{type:12,data:B}]})}},gs=(i,d,x,C)=>{let E=i.inputs.length===1?x:_l(i.inputs,x),A=E.axes;A.length===0&&!E.noopWithEmptyAxes&&(A=i.inputs[0].dims.map((ae,ce)=>ce));let P=dt.normalizeAxes(A,i.inputs[0].dims.length),L=P,z=i.inputs[0],B=As(L,i.inputs[0].dims.length);B.length>0&&(z=i.compute(zi(i.inputs[0],B),{inputs:[0],outputs:[-1]})[0],L=Qs(L.length,z.dims.length));let[X,Y]=ko(z.dims,L),$=X;E.keepDims&&($=_u(X,P)),i.compute(vu(d,{hint:E.cacheKey,inputDependencies:["type"]},[z],C,i.inputs[0].dataType,$,Y),{inputs:[z]})},ml=(i,d)=>{gs(i,"ReduceMeanShared",d,"mean")},vf=(i,d)=>{gs(i,"ReduceL1Shared",d,"l1")},yf=(i,d)=>{gs(i,"ReduceL2Shared",d,"l2")},vc=(i,d)=>{gs(i,"ReduceLogSumExpShared",d,"logSumExp")},yc=(i,d)=>{gs(i,"ReduceMaxShared",d,"max")},gl=(i,d)=>{gs(i,"ReduceMinShared",d,"min")},va=(i,d)=>{gs(i,"ReduceProdShared",d,"prod")},wf=(i,d)=>{gs(i,"ReduceSumShared",d,"sum")},wc=(i,d)=>{gs(i,"ReduceSumSquareShared",d,"sumSquare")},yu=(i,d)=>{gs(i,"ReduceLogSumShared",d,"logSum")}}),Yi,wu,bu,_l,Bi,bf,xc,Pi,xu,Oo,Su,Sc,xf,Tc,Sf,_s,Cc,Qa,Tf,Mc,Tu,Ec,Is,vl,Cf,Pc,kc=s(()=>{Sn(),bn(),ir(),Nn(),bc(),Yi=i=>{if(!i||i.length===0||i.length>2)throw new Error("Reduce op requires 1 or 2 inputs.");if(i.length===2&&i[1].dims.length!==1)throw new Error("Invalid axes input dims.")},wu=i=>["","",`var value = ${i.getByIndices("input_indices")};`,""],bu=(i,d,x,C,E,A,P=!1,L=!1)=>{let z=[],B=x[0].dims,X=B.length,Y=dt.normalizeAxes(E,X),$=!L&&Y.length===0;B.forEach((le,Se)=>{$||Y.indexOf(Se)>=0?P&&z.push(1):z.push(le)});let ae=z.length,ce=dt.size(z);return{name:i,shaderCache:d,getShaderSource:le=>{let Se=[],Ee=Pt("_A",x[0].dataType,X),be=pn("output",A,ae),Ve=C(Ee,be,Y),je=Ve[2];for(let et=0,_t=0;et=0?(P&&_t++,je=`for(var j${et}: u32 = 0; j${et} < ${B[et]}; j${et}++) { + ${Ve[2].includes("last_index")?`let last_index = j${et};`:""} + ${Ee.indicesSet("input_indices",et,`j${et}`)} + ${je} + }`):(Se.push(`${Ee.indicesSet("input_indices",et,be.indicesGet("output_indices",_t))};`),_t++);return` + + ${le.registerUniform("output_size","u32").declareVariables(Ee,be)} + + ${le.mainStart()} + ${le.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + var input_indices: ${Ee.type.indices}; + let output_indices = ${be.offsetToIndices("global_idx")}; + + ${Se.join(` +`)} + ${Ve[0]} // init ops for reduce max/min + ${Ve[1]} + ${je} + ${Ve[3]} + ${Ve.length===4?be.setByOffset("global_idx","value"):Ve.slice(4).join(` +`)} + }`},getRunData:()=>({outputs:[{dims:z,dataType:A}],dispatchGroup:{x:Math.ceil(ce/64)},programUniforms:[{type:12,data:ce},...Ot(B,z)]})}},_l=(i,d)=>{let x=[];return i[1].dims[0]>0&&i[1].getBigInt64Array().forEach(C=>x.push(Number(C))),Fn({axes:x,keepDims:d.keepDims,noopWithEmptyAxes:d.noopWithEmptyAxes})},Bi=(i,d,x,C)=>{let E=i.inputs,A=E.length===1?x:_l(E,x);i.compute(bu(d,{hint:A.cacheKey,inputDependencies:["rank"]},[E[0]],A.noopWithEmptyAxes&&A.axes.length===0?wu:C,A.axes,E[0].dataType,A.keepDims,A.noopWithEmptyAxes),{inputs:[0]})},bf=(i,d)=>{Yi(i.inputs),Bi(i,"ReduceLogSum",d,(x,C)=>[`var value = ${C.type.storage}(0);`,"",`value += ${x.getByIndices("input_indices")};`,"value = log(value);"])},xc=(i,d)=>{Yi(i.inputs),Bi(i,"ReduceL1",d,(x,C)=>[`var value = ${C.type.storage}(0);`,"",`value += abs(${x.getByIndices("input_indices")});`,""])},Pi=(i,d)=>{Yi(i.inputs),Bi(i,"ReduceL2",d,(x,C)=>[`var t = ${C.type.value}(0); var value = ${C.type.value}(0);`,"",`t = ${x.getByIndices("input_indices")}; value += (t * t);`,"value = sqrt(value);"])},xu=(i,d)=>{Yi(i.inputs),Bi(i,"ReduceLogSumExp",d,(x,C)=>[`var value = ${C.type.storage}(0);`,"",`value += exp(${x.getByIndices("input_indices")});`,"value = log(value);"])},Oo=(i,d)=>{Yi(i.inputs),Bi(i,"ReduceMax",d,(x,C,E)=>{let A=[];for(let P=0;P=0||E.length===0)&&A.push(x.indicesSet("input_indices",P,0));return[`${A.join(` +`)}`,`var value = ${x.getByIndices("input_indices")};`,`value = max(value, ${x.getByIndices("input_indices")});`,""]})},Su=(i,d)=>{Yi(i.inputs),Bi(i,"ReduceMean",d,(x,C,E)=>{let A=1;for(let P=0;P=0||E.length===0)&&(A*=i.inputs[0].dims[P]);return["var sum = f32(0);","",`sum += f32(${x.getByIndices("input_indices")});`,`let value = ${C.type.value}(sum / ${A});`]})},Sc=(i,d)=>{Yi(i.inputs),Bi(i,"ReduceMin",d,(x,C,E)=>{let A=[];for(let P=0;P=0||E.length===0)&&A.push(`input_indices[${P}] = 0;`);return[`${A.join(` +`)}`,`var value = ${x.getByIndices("input_indices")};`,`value = min(value, ${x.getByIndices("input_indices")});`,""]})},xf=(i,d)=>{Yi(i.inputs),Bi(i,"ReduceProd",d,(x,C)=>[`var value = ${C.type.storage}(1);`,"",`value *= ${x.getByIndices("input_indices")};`,""])},Tc=(i,d)=>{Yi(i.inputs),Bi(i,"ReduceSum",d,(x,C)=>[`var value = ${C.type.storage}(0);`,"",`value += ${x.getByIndices("input_indices")};`,""])},Sf=(i,d)=>{Yi(i.inputs),Bi(i,"ReduceSumSquare",d,(x,C)=>[`var t = ${C.type.value}(0); var value = ${C.type.value}(0);`,"",`t = ${x.getByIndices("input_indices")}; value += t * t;`,""])},_s=(i,d,x)=>{if(d.length===0)return x;let C=1,E=1;for(let A=0;A1024},Cc=(i,d)=>{_s(i.inputs[0].dims,d.axes,d.noopWithEmptyAxes)?Su(i,d):ml(i,d)},Qa=(i,d)=>{_s(i.inputs[0].dims,d.axes,d.noopWithEmptyAxes)?xc(i,d):vf(i,d)},Tf=(i,d)=>{_s(i.inputs[0].dims,d.axes,d.noopWithEmptyAxes)?Pi(i,d):yf(i,d)},Mc=(i,d)=>{_s(i.inputs[0].dims,d.axes,d.noopWithEmptyAxes)?xu(i,d):vc(i,d)},Tu=(i,d)=>{_s(i.inputs[0].dims,d.axes,d.noopWithEmptyAxes)?Oo(i,d):yc(i,d)},Ec=(i,d)=>{_s(i.inputs[0].dims,d.axes,d.noopWithEmptyAxes)?Sc(i,d):gl(i,d)},Is=(i,d)=>{_s(i.inputs[0].dims,d.axes,d.noopWithEmptyAxes)?xf(i,d):va(i,d)},vl=(i,d)=>{_s(i.inputs[0].dims,d.axes,d.noopWithEmptyAxes)?Tc(i,d):wf(i,d)},Cf=(i,d)=>{_s(i.inputs[0].dims,d.axes,d.noopWithEmptyAxes)?Sf(i,d):wc(i,d)},Pc=(i,d)=>{_s(i.inputs[0].dims,d.axes,d.noopWithEmptyAxes)?bf(i,d):yu(i,d)}}),ya,Ki,Oc,Ac,Mf=s(()=>{Sn(),ir(),kc(),ya=i=>{if(!i||i.length===0||i.length>2)throw new Error("ArgMinMaxOp op requires 1 or 2 inputs.");if(i[0].dataType!==1)throw new Error("Invalid input type.")},Ki=(i,d)=>{ya(i.inputs);let x=(C,E,A)=>{let P=[];for(let L=0;L=0||A.length===0)&&P.push(`input_indices[${L}] = 0;`);return[`${P.join(` +`)}`,`var value = ${C.getByIndices("input_indices")}; +var best_index : i32 = 0;`,`if (${C.getByIndices("input_indices")} ${d.selectLastIndex>0?"<=":"<"} value) { + value = ${C.getByIndices("input_indices")}; + best_index = i32(last_index); + }`,"",E.setByOffset("global_idx","best_index")]};i.compute(bu("ArgMin",{hint:d.cacheKey,inputDependencies:["rank"]},[i.inputs[0]],x,[d.axis],7,d.keepDims),{inputs:[0]})},Oc=(i,d)=>{ya(i.inputs);let x=(C,E,A)=>{let P=[];for(let L=0;L=0||A.length===0)&&P.push(`input_indices[${L}] = 0;`);return[`${P.join(` +`)}`,`var value = ${C.getByIndices("input_indices")}; +var best_index : i32 = 0;`,`if (${C.getByIndices("input_indices")} ${d.selectLastIndex>0?">=":">"} value) { + value = ${C.getByIndices("input_indices")}; + best_index = i32(last_index); + }`,"",E.setByOffset("global_idx","best_index")]};i.compute(bu("argMax",{hint:d.cacheKey,inputDependencies:["rank"]},[i.inputs[0]],x,[d.axis],7,d.keepDims),{inputs:[0]})},Ac=i=>Fn(i)}),Ef,Pf,Ic,Ja,nt,St,mt,ln=s(()=>{Sn(),bn(),Ye(),Nn(),Ef=(i,d)=>{let x=i[0],C=i[1],E=i[2],A=i[3],P=i[4],L=i[5];if(P&&L)throw new Error("Attention cannot have both past and attention_bias");if(x.dims.length!==3)throw new Error('Input "input" must have 3 dimensions');let z=x.dims[0],B=x.dims[1],X=x.dims[2];if(E.dims.length!==1)throw new Error('Input "bias" is expected to have 1 dimensions');if(C.dims.length!==2)throw new Error('Input "weights" is expected to have 2 dimensions');if(C.dims[0]!==X)throw new Error("Input 1 dimension 0 should have same length as dimension 2 of input 0");if(E.dims[0]!==C.dims[1])throw new Error('Input "bias" dimension 0 should have same length as dimension 1 of input "weights"');let Y=E.dims[0]/3,$=Y,ae=$;if(d.qkvHiddenSizes.length>0){if(d.qkvHiddenSizes.length!==3)throw new Error("qkv_hidden_sizes attribute should have 3 elements");for(let Ve of d.qkvHiddenSizes)if(Ve%d.numHeads!==0)throw new Error("qkv_hidden_sizes should be divisible by num_heads");Y=d.qkvHiddenSizes[0],$=d.qkvHiddenSizes[1],ae=d.qkvHiddenSizes[2]}let ce=B;if(Y!==$)throw new Error("qkv_hidden_sizes first element should be same as the second");if(E.dims[0]!==Y+$+ae)throw new Error('Input "bias" dimension 0 should have same length as sum of Q/K/V hidden sizes');let le=0;if(P){if($!==ae)throw new Error('Input "past" expect k_hidden_size == v_hidden_size');if(P.dims.length!==5)throw new Error('Input "past" must have 5 dimensions');if(P.dims[0]!==2)throw new Error('Input "past" first dimension must be 2');if(P.dims[1]!==z)throw new Error('Input "past" second dimension must be batch_size');if(P.dims[2]!==d.numHeads)throw new Error('Input "past" third dimension must be num_heads');if(P.dims[4]!==$/d.numHeads)throw new Error('Input "past" fifth dimension must be k_hidden_size / num_heads');d.pastPresentShareBuffer||(le=P.dims[3])}let Se=ce+le,Ee=-1,be=0;if(A)throw new Error("Mask not supported");if(P)throw new Error("past is not supported");if(L){if(L.dims.length!==4)throw new Error('Input "attention_bias" must have 4 dimensions');if(L.dims[0]!==z||L.dims[1]!==d.numHeads||L.dims[2]!==B||L.dims[3]!==Se)throw new Error('Expect "attention_bias" shape (batch_size, num_heads, sequence_length, total_sequence_length)')}return{batchSize:z,sequenceLength:B,pastSequenceLength:le,kvSequenceLength:ce,totalSequenceLength:Se,maxSequenceLength:Ee,inputHiddenSize:X,hiddenSize:Y,vHiddenSize:ae,headSize:Math.floor(Y/d.numHeads),vHeadSize:Math.floor(ae/d.numHeads),numHeads:d.numHeads,isUnidirectional:!1,pastPresentShareBuffer:!1,maskFilterValue:d.maskFilterValue,maskType:be,scale:d.scale,broadcastResPosBias:!1,passPastInKv:!1,qkvFormat:1}},Pf=(i,d,x)=>{let C=cn(x),E=64,A=x/C;A{let ae=pn("x",i.dataType,i.dims,C),ce=yr(i.dataType),le=[{name:"d_inv",type:"f32"},{name:"d_comp",type:"u32"},{name:"elements_per_thread",type:"u32"}];return` + var thread_max: array; + var thread_sum: array; + ${$.registerUniforms(le).declareVariables(ae)} + ${$.mainStart([E,1,1])} + let local_offset = local_idx * uniforms.elements_per_thread; + let offset = (global_idx / ${E}) * uniforms.d_comp + local_offset; + + var thread_max_vector = ${B}(-3.402823e+38f); + for (var i: u32 = 0; i < uniforms.elements_per_thread && i + local_offset < uniforms.d_comp; i++) { + thread_max_vector = max(${B}(x[offset + i]), thread_max_vector); + } + thread_max[local_idx] = ${(()=>{switch(C){case 1:return"thread_max_vector";case 2:return"max(thread_max_vector.x, thread_max_vector.y)";case 4:return"max(max(thread_max_vector.x, thread_max_vector.y), max(thread_max_vector.z, thread_max_vector.w))";default:throw new Error(`Unsupported components: ${C}`)}})()}; + workgroupBarrier(); + + var max_value = f32(-3.402823e+38f); + for (var i = 0u; i < ${E}; i++) { + max_value = max(thread_max[i], max_value); + } + + var sum_vector = ${B}(0); + for (var i: u32 = 0; i < uniforms.elements_per_thread && i + local_offset < uniforms.d_comp; i++) { + sum_vector += exp(${B}(x[offset + i]) - max_value); + } + thread_sum[local_idx] = ${(()=>{switch(C){case 1:return"sum_vector";case 2:return"sum_vector.x + sum_vector.y";case 4:return"sum_vector.x + sum_vector.y + sum_vector.z + sum_vector.w";default:throw new Error(`Unsupported components: ${C}`)}})()}; + workgroupBarrier(); + + var sum: f32 = 0; + for (var i = 0u; i < ${E}; i++) { + sum += thread_sum[i]; + } + + if (sum == 0) { + for (var i: u32 = 0; i < uniforms.elements_per_thread && i + local_offset < uniforms.d_comp; i++) { + x[offset + i] = ${ae.type.value}(${ce}(uniforms.d_inv)); + } + } else { + for (var i: u32 = 0; i < uniforms.elements_per_thread && i + local_offset < uniforms.d_comp; i++) { + var f32input = ${B}(x[offset + i]); + x[offset + i] = ${ae.type.value}(exp(f32input - max_value) / sum); + } + } + }`};return{name:"AttentionProbsSoftmax",shaderCache:{hint:`${E};${z};${C}`,inputDependencies:X},getShaderSource:Y,getRunData:()=>({outputs:[],dispatchGroup:{x:d},programUniforms:L})}},Ic=(i,d,x,C,E,A,P,L)=>{let z=L+A.kvSequenceLength,B=[A.batchSize,A.numHeads,A.sequenceLength,z],X=A.kvNumHeads===void 0&&i>1&&C,Y=X?[A.batchSize,A.numHeads,z,A.headSize]:void 0,$=P.scale===0?1/Math.sqrt(A.headSize):P.scale,ae=cn(A.headSize),ce=A.headSize/ae,le=12,Se={x:Math.ceil(z/le),y:Math.ceil(A.sequenceLength/le),z:A.batchSize*A.numHeads},Ee=[{type:12,data:A.sequenceLength},{type:12,data:ce},{type:12,data:z},{type:12,data:A.numHeads},{type:1,data:$},{type:12,data:L},{type:12,data:A.kvSequenceLength}],be=X&&C&&dt.size(C.dims)>0,Ve=["type","type"];be&&Ve.push("type"),E&&Ve.push("type");let je=[{dims:B,dataType:d.dataType,gpuDataType:0}];X&&je.push({dims:Y,dataType:d.dataType,gpuDataType:0});let et=_t=>{let ot=Pt("q",d.dataType,d.dims,ae),$t=Pt("key",x.dataType,x.dims,ae),Ht=[ot,$t];if(be){let Xn=Pt("past_key",C.dataType,C.dims,ae);Ht.push(Xn)}E&&Ht.push(Pt("attention_bias",E.dataType,E.dims));let dn=pn("output",d.dataType,B),Pn=[dn];X&&Pn.push(pn("present_key",d.dataType,Y,ae));let kn=yr(1,ae),hn=[{name:"M",type:"u32"},{name:"K",type:"u32"},{name:"N",type:"u32"},{name:"num_heads",type:"u32"},{name:"alpha",type:"f32"},{name:"past_sequence_length",type:"u32"},{name:"kv_sequence_length",type:"u32"}];return` + const TILE_SIZE = ${le}u; + + var tileQ: array<${ot.type.storage}, ${le*le}>; + var tileK: array<${ot.type.storage}, ${le*le}>; + ${_t.registerUniforms(hn).declareVariables(...Ht,...Pn)} + ${_t.mainStart([le,le,1])} + // x holds the N and y holds the M + let headIdx = workgroup_id.z; + let m = workgroup_id.y * TILE_SIZE; + let n = workgroup_id.x * TILE_SIZE; + let qOffset = uniforms.M * uniforms.K * headIdx + m * uniforms.K; + ${(()=>be&&X?` + let kOffset = uniforms.kv_sequence_length * uniforms.K * headIdx; + let pastKeyOffset = uniforms.past_sequence_length * uniforms.K * headIdx;`:` + let kOffset = uniforms.N * uniforms.K * headIdx + n * uniforms.K;`)()} + ${X?"let presentKeyOffset = headIdx * uniforms.N * uniforms.K;":""} + var value = ${kn}(0); + for (var w: u32 = 0u; w < uniforms.K; w += TILE_SIZE) { + if (global_id.y < uniforms.M && w + local_id.x < uniforms.K) { + tileQ[TILE_SIZE * local_id.y + local_id.x] = q[qOffset + local_id.y * uniforms.K + w + local_id.x]; + } + if (n + local_id.y < uniforms.N && w + local_id.x < uniforms.K) { + var idx = TILE_SIZE * local_id.y + local_id.x; + ${(()=>be&&X?` + if (n + local_id.y < uniforms.past_sequence_length) { + tileK[idx] = past_key[pastKeyOffset + (n + local_id.y) * uniforms.K + w + local_id.x]; + } else { + tileK[idx] = + key[kOffset + (n + local_id.y - uniforms.past_sequence_length) * uniforms.K + w + local_id.x]; + }`:"tileK[idx] = key[kOffset + local_id.y * uniforms.K + w + local_id.x];")()} + ${X?"present_key[presentKeyOffset + (n + local_id.y) * uniforms.K + w + local_id.x] = tileK[idx];":""} + } + workgroupBarrier(); + + for (var k: u32 = 0u; k < TILE_SIZE && w+k < uniforms.K; k++) { + value += ${kn}(tileQ[TILE_SIZE * local_id.y + k] * tileK[TILE_SIZE * local_id.x + k]); + } + + workgroupBarrier(); + } + + let headOffset = headIdx * uniforms.M * uniforms.N; + if (global_id.y < uniforms.M && global_id.x < uniforms.N) { + let outputIdx = headOffset + global_id.y * uniforms.N + global_id.x; + var sum: f32 = ${(()=>{switch(ae){case 1:return"value";case 2:return"value.x + value.y";case 4:return"value.x + value.y + value.z + value.w";default:throw new Error(`Unsupported components: ${ae}`)}})()}; + output[outputIdx] = ${dn.type.value} (sum * uniforms.alpha) + ${E?"attention_bias[outputIdx]":"0.0"}; + } + }`};return{name:"AttentionProbs",shaderCache:{hint:`${ae};${E!==void 0};${C!==void 0};${i}`,inputDependencies:Ve},getRunData:()=>({outputs:je,dispatchGroup:Se,programUniforms:Ee}),getShaderSource:et}},Ja=(i,d,x,C,E,A)=>{let P=A+E.kvSequenceLength,L=E.nReps?E.nReps:1,z=E.vHiddenSize*L,B=E.kvNumHeads==null&&i>1&&C,X=B?[E.batchSize,E.numHeads,P,E.headSize]:void 0,Y=[E.batchSize,E.sequenceLength,z],$=12,ae={x:Math.ceil(E.vHeadSize/$),y:Math.ceil(E.sequenceLength/$),z:E.batchSize*E.numHeads},ce=[{type:12,data:E.sequenceLength},{type:12,data:P},{type:12,data:E.vHeadSize},{type:12,data:E.numHeads},{type:12,data:z},{type:12,data:A},{type:12,data:E.kvSequenceLength}],le=B&&C&&dt.size(C.dims)>0,Se=["type","type"];le&&Se.push("type");let Ee=[{dims:Y,dataType:d.dataType,gpuDataType:0}];B&&Ee.push({dims:X,dataType:d.dataType,gpuDataType:0});let be=Ve=>{let je=Pt("probs",d.dataType,d.dims),et=Pt("v",x.dataType,x.dims),_t=[je,et];le&&_t.push(Pt("past_value",C.dataType,C.dims));let ot=[pn("output",d.dataType,Y)];B&&ot.push(pn("present_value",d.dataType,X));let $t=[{name:"M",type:"u32"},{name:"K",type:"u32"},{name:"N",type:"u32"},{name:"num_heads",type:"u32"},{name:"v_hidden_size",type:"u32"},{name:"past_sequence_length",type:"u32"},{name:"kv_sequence_length",type:"u32"}];return` + const TILE_SIZE = ${$}u; + var tileQ: array<${je.type.value}, ${$*$}>; + var tileK: array<${je.type.value}, ${$*$}>; + ${Ve.registerUniforms($t).declareVariables(..._t,...ot)} + ${Ve.mainStart([$,$,1])} + let headIdx = workgroup_id.z; + let m = global_id.y; + let n = global_id.x; + + let offsetA = headIdx * (uniforms.M * uniforms.K) + m * uniforms.K; + ${(()=>le&&B?` + let pastValueOffset = headIdx * uniforms.N * uniforms.past_sequence_length + n; + let vOffset = headIdx * uniforms.N * uniforms.kv_sequence_length + n; + `:` + let offsetB = headIdx * uniforms.N * uniforms.K + n; + `)()} + ${B?"let presentValueOffset = headIdx * uniforms.N * uniforms.K + n;":""} + var value = ${je.type.storage}(0); + for (var w: u32 = 0u; w < uniforms.K; w += TILE_SIZE) { + if (m < uniforms.M && w + local_id.x < uniforms.K) { + tileQ[TILE_SIZE * local_id.y + local_id.x] = probs[offsetA + w + local_id.x]; + } + if (n < uniforms.N && w + local_id.y < uniforms.K) { + var idx = TILE_SIZE * local_id.y + local_id.x; + ${(()=>le&&B?` + if (w + local_id.y < uniforms.past_sequence_length) { + tileK[idx] = past_value[pastValueOffset + (w + local_id.y) * uniforms.N]; + } else { + tileK[idx] = v[vOffset + (w + local_id.y - uniforms.past_sequence_length) * uniforms.N]; + } + `:` + tileK[idx] = v[offsetB + (w + local_id.y) * uniforms.N]; + `)()} + ${B?"present_value[presentValueOffset + (w + local_id.y) * uniforms.N] = tileK[idx];":""} + } + workgroupBarrier(); + for (var k: u32 = 0u; k < TILE_SIZE && w+k < uniforms.K; k++) { + value += tileQ[TILE_SIZE * local_id.y + k] * tileK[TILE_SIZE * k + local_id.x]; + } + workgroupBarrier(); + } + + // we need to transpose output from BNSH_v to BSND_v + let batchIdx = workgroup_id.z / uniforms.num_heads; + let currentBatchHeadNumber = workgroup_id.z % uniforms.num_heads; + if (m < uniforms.M && n < uniforms.N) { + let outputIdx = batchIdx * uniforms.M * uniforms.v_hidden_size + m * uniforms.v_hidden_size + + currentBatchHeadNumber * uniforms.N + n; + output[outputIdx] = value; + } + }`};return{name:"AttentionScore",shaderCache:{hint:`${C!==void 0};${i}`,inputDependencies:Se},getRunData:()=>({outputs:Ee,dispatchGroup:ae,programUniforms:ce}),getShaderSource:be}},nt=(i,d,x,C,E,A,P,L,z,B,X)=>{let Y=Math.min(i.outputCount,1+(P?1:0)+(L?1:0)),$=B.kvNumHeads!==void 0||Y>1?B.pastSequenceLength:0,ae=$+B.kvSequenceLength,ce=z&&dt.size(z.dims)>0?z:void 0,le=[d,x];B.kvNumHeads===void 0&&Y>1&&P&&dt.size(P.dims)>0&&le.push(P),ce&&le.push(ce);let Se=i.compute(Ic(Y,d,x,P,ce,B,X,$),{inputs:le,outputs:B.kvNumHeads===void 0&&Y>1?[-1,1]:[-1]})[0];i.compute(Pf(Se,B.batchSize*B.numHeads*B.sequenceLength,ae),{inputs:[Se],outputs:[]});let Ee=[Se,C];B.kvNumHeads===void 0&&Y>1&&L&&dt.size(L.dims)>0&&Ee.push(L),i.compute(Ja(Y,Se,C,L,B,$),{inputs:Ee,outputs:B.kvNumHeads===void 0&&Y>1?[0,2]:[0]})},St=(i,d)=>{let x=[d.batchSize,d.numHeads,d.sequenceLength,d.headSize],C=d.sequenceLength,E=d.inputHiddenSize,A=d.headSize,P=12,L={x:Math.ceil(d.headSize/P),y:Math.ceil(d.sequenceLength/P),z:d.batchSize*d.numHeads},z=[i.inputs[0],i.inputs[1],i.inputs[2]],B=[{type:12,data:C},{type:12,data:E},{type:12,data:A},{type:12,data:d.numHeads},{type:12,data:d.headSize},{type:12,data:d.hiddenSize},{type:12,data:d.hiddenSize+d.hiddenSize+d.vHiddenSize}],X=Y=>{let $=pn("output_q",z[0].dataType,x),ae=pn("output_k",z[0].dataType,x),ce=pn("output_v",z[0].dataType,x),le=Pt("input",z[0].dataType,z[0].dims),Se=Pt("weight",z[1].dataType,z[1].dims),Ee=Pt("bias",z[2].dataType,z[2].dims),be=le.type.storage,Ve=[{name:"M",type:"u32"},{name:"K",type:"u32"},{name:"N",type:"u32"},{name:"num_heads",type:"u32"},{name:"head_size",type:"u32"},{name:"hidden_size",type:"u32"},{name:"ldb",type:"u32"}];return` + const TILE_SIZE = ${P}u; + var tileInput: array<${be}, ${P*P}>; + var tileWeightQ: array<${be}, ${P*P}>; + var tileWeightK: array<${be}, ${P*P}>; + var tileWeightV: array<${be}, ${P*P}>; + ${Y.registerUniforms(Ve).declareVariables(le,Se,Ee,$,ae,ce)} + ${Y.mainStart([P,P,1])} + let batchIndex = workgroup_id.z / uniforms.num_heads; + let headNumber = workgroup_id.z % uniforms.num_heads; + let m = global_id.y; + let n = global_id.x; + + let inputOffset = batchIndex * (uniforms.M * uniforms.K) + m * uniforms.K; + let biasOffsetQ = headNumber * uniforms.head_size; + let biasOffsetK = uniforms.hidden_size + biasOffsetQ; + let biasOffsetV = uniforms.hidden_size + biasOffsetK; + + var valueQ = ${be}(0); + var valueK = ${be}(0); + var valueV = ${be}(0); + for (var w: u32 = 0u; w < uniforms.K; w += TILE_SIZE) { + if (m < uniforms.M && w + local_id.x < uniforms.K) { + tileInput[TILE_SIZE * local_id.y + local_id.x] = input[inputOffset + w + local_id.x]; + } + if (n < uniforms.N && w + local_id.y < uniforms.K) { + let offset = n + (w + local_id.y) * uniforms.ldb; + tileWeightQ[TILE_SIZE * local_id.y + local_id.x] = weight[biasOffsetQ + offset]; + tileWeightK[TILE_SIZE * local_id.y + local_id.x] = weight[biasOffsetK + offset]; + tileWeightV[TILE_SIZE * local_id.y + local_id.x] = weight[biasOffsetV + offset]; + } + workgroupBarrier(); + for (var k: u32 = 0u; k({outputs:[{dims:x,dataType:i.inputs[0].dataType,gpuDataType:0},{dims:x,dataType:i.inputs[0].dataType,gpuDataType:0},{dims:x,dataType:i.inputs[0].dataType,gpuDataType:0}],dispatchGroup:L,programUniforms:B}),getShaderSource:X},{inputs:z,outputs:[-1,-1,-1]})},mt=(i,d)=>{let x=Ef(i.inputs,d),[C,E,A]=St(i,x);return nt(i,C,E,A,i.inputs[4],void 0,void 0,void 0,i.inputs[5],x,d)}}),Bn,gr,Yr,Er,Fc=s(()=>{Mt(),Sn(),bn(),ir(),Nn(),Bn=(i,d)=>{if(!i||i.length!==5)throw new Error("BatchNormalization requires 5 inputs");let x=(C,E,A)=>{let P=E.length;if(P!==C.length)throw new Error(`${A}: num dimensions != ${P}`);E.forEach((L,z)=>{if(L!==C[z])throw new Error(`${A}: dim[${z}] do not match`)})};if(i[0].dims.length>1){let C=d.format==="NHWC"?d.spatial?i[0].dims.slice(-1):i[0].dims.slice(-1).concat(i[0].dims.slice(1,i[0].dims.length-1)):i[0].dims.slice(1,d.spatial?2:void 0);x(i[1].dims,C,"Invalid input scale"),x(i[2].dims,C,"Invalid input B"),x(i[3].dims,C,"Invalid input mean"),x(i[4].dims,C,"Invalid input var")}else x(i[1].dims,[1],"Invalid input scale"),x(i[2].dims,[1],"Invalid input B"),x(i[3].dims,[1],"Invalid input mean"),x(i[4].dims,[1],"Invalid input var")},gr=(i,d)=>{let{epsilon:x,spatial:C,format:E}=d,A=i[0].dims,P=C?cn(A[A.length-1]):1,L=E==="NHWC"&&A.length>1?P:1,z=dt.size(A)/P,B=C,X=B?A.length:A,Y=Pt("x",i[0].dataType,i[0].dims,P),$=Pt("scale",i[1].dataType,i[1].dims,L),ae=Pt("bias",i[2].dataType,i[2].dims,L),ce=Pt("inputMean",i[3].dataType,i[3].dims,L),le=Pt("inputVar",i[4].dataType,i[4].dims,L),Se=pn("y",i[0].dataType,X,P),Ee=()=>{let Ve="";if(C)Ve=`let cOffset = ${A.length===1?"0u":E==="NHWC"?`outputIndices[${A.length-1}] / ${P}`:"outputIndices[1]"};`;else if(E==="NCHW")Ve=` + ${Se.indicesSet("outputIndices","0","0")} + let cOffset = ${Se.indicesToOffset("outputIndices")};`;else{Ve=`var cIndices = ${$.type.indices}(0); + cIndices[0] = outputIndices[${A.length-1}];`;for(let je=1;je<$.rank;je++)Ve+=`cIndices[${je}] = outputIndices[${je}];`;Ve+=`let cOffset = ${$.indicesToOffset("cIndices")};`}return Ve},be=Ve=>` + const epsilon = ${x}; + ${Ve.registerUniform("outputSize","u32").declareVariables(Y,$,ae,ce,le,Se)} + ${Ve.mainStart()} + ${Ve.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")} + var outputIndices = ${Se.offsetToIndices(`global_idx * ${P}`)}; + ${Ee()} + let scale = ${$.getByOffset("cOffset")}; + let bias = ${ae.getByOffset("cOffset")}; + let inputMean = ${ce.getByOffset("cOffset")}; + let inputVar = ${le.getByOffset("cOffset")}; + let x = ${Y.getByOffset("global_idx")}; + let value = (x - inputMean) * inverseSqrt(inputVar + epsilon) * scale + bias; + ${Se.setByOffset("global_idx","value")} + }`;return{name:"BatchNormalization",shaderCache:{hint:`${d.epsilon}_${d.format}_${C}_${P}`,inputDependencies:B?["rank","type","type","type","type"]:void 0},getShaderSource:be,getRunData:()=>({outputs:[{dims:i[0].dims,dataType:i[0].dataType}],dispatchGroup:{x:Math.ceil(z/64)},programUniforms:B?[{type:12,data:z},...Ot(A)]:[{type:12,data:z}]})}},Yr=i=>Fn(i),Er=(i,d)=>{let{inputs:x,outputCount:C}=i,E=Yr({...d,outputCount:C});if(R.webgpu.validateInputContent&&Bn(x,E),d.trainingMode)throw new Error("BatchNormalization trainingMode is not supported yet.");i.compute(gr(x,E))}}),kf,Ni,yl,np=s(()=>{bn(),Nn(),kf=i=>{if(i[0].dims.length!==3)throw new Error("input should have 3 dimensions");if(![320,640,1280].includes(i[0].dims[2]))throw new Error("number of channels should be 320, 640 or 1280");if(i[1].dims.length!==1)throw new Error("bias is expected to have 1 dimensions");if(i[0].dims[2]!==i[1].dims[0])throw new Error("last dimension of input and bias are not the same")},Ni=i=>{let d=i[0].dims,x=i[0].dims[2],C=dt.size(d)/4,E=i[0].dataType,A=Pt("input",E,d,4),P=Pt("bias",E,[x],4),L=Pt("residual",E,d,4),z=pn("output",E,d,4);return{name:"BiasAdd",getRunData:()=>({outputs:[{dims:d,dataType:i[0].dataType}],dispatchGroup:{x:Math.ceil(C/64)}}),getShaderSource:B=>` + const channels = ${x}u / 4; + ${B.declareVariables(A,P,L,z)} + + ${B.mainStart()} + ${B.guardAgainstOutOfBoundsWorkgroupSizes(C)} + let value = ${A.getByOffset("global_idx")} + + ${P.getByOffset("global_idx % channels")} + ${L.getByOffset("global_idx")}; + ${z.setByOffset("global_idx","value")} + }`}},yl=i=>{kf(i.inputs),i.compute(Ni(i.inputs))}}),Za,Kn,Ao,Tr,Of,$c,wl,Dc,Af,If,bl,Js,Io,Lc,xl,Cu,Fo,Sl,$o,Do,wa,Lo,Ff,$f,Rc,Tl,Cl,Ro,Df,zc,Bc,Nc,Kr,ai,Lf,jc,Wc,Mu,Ml,zo,Eu,ba,Bo,No,jo,xa=s(()=>{Sn(),bn(),ir(),Nn(),Za=(i,d,x,C,E,A,P)=>{let L=Math.ceil(d/4),z="";typeof E=="string"?z=`${E}(a)`:z=E("a");let B=Pt("inputData",x,[L],4),X=pn("outputData",C,[L],4),Y=[{name:"vec_size",type:"u32"}];return P&&Y.push(...P),` + ${i.registerUniforms(Y).declareVariables(B,X)} + + ${A!=null?A:""} + + ${i.mainStart()} + ${i.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.vec_size")} + + let a = ${B.getByOffset("global_idx")}; + ${X.setByOffset("global_idx",z)} + }`},Kn=(i,d,x,C,E,A=i.dataType,P,L)=>{let z=[{type:12,data:Math.ceil(dt.size(i.dims)/4)}];return P&&z.push(...P),{name:d,shaderCache:{hint:E,inputDependencies:["type"]},getShaderSource:B=>Za(B,dt.size(i.dims),i.dataType,A,x,C,L),getRunData:B=>({outputs:[{dims:i.dims,dataType:A}],dispatchGroup:{x:Math.ceil(dt.size(B[0].dims)/64/4)},programUniforms:z})}},Ao=i=>{i.compute(Kn(i.inputs[0],"Abs","abs"))},Tr=i=>{i.compute(Kn(i.inputs[0],"Acos","acos"))},Of=i=>{i.compute(Kn(i.inputs[0],"Acosh","acosh"))},$c=i=>{i.compute(Kn(i.inputs[0],"Asin","asin"))},wl=i=>{i.compute(Kn(i.inputs[0],"Asinh","asinh"))},Dc=i=>{i.compute(Kn(i.inputs[0],"Atan","atan"))},Af=i=>{i.compute(Kn(i.inputs[0],"Atanh","atanh"))},If=i=>Fn(i),bl=(i,d)=>{let x;switch(d.to){case 10:x="vec4";break;case 1:x="vec4";break;case 12:x="vec4";break;case 6:x="vec4";break;case 9:x="vec4";break;default:throw new RangeError(`not supported type (specified in attribute 'to' from 'Cast' operator): ${d.to}`)}i.compute(Kn(i.inputs[0],"Cast",x,void 0,d.cacheKey,d.to))},Js=i=>{let d,x,C=i.length>=2&&i[1].data!==0,E=i.length>=3&&i[2].data!==0;switch(i[0].dataType){case 1:d=C?i[1].getFloat32Array()[0]:-34028234663852886e22,x=E?i[2].getFloat32Array()[0]:34028234663852886e22;break;case 10:d=C?i[1].getUint16Array()[0]:64511,x=E?i[2].getUint16Array()[0]:31743;break;default:throw new Error("Unsupport data type")}return Fn({min:d,max:x})},Io=(i,d)=>{let x=d||Js(i.inputs),C=yr(i.inputs[0].dataType);i.compute(Kn(i.inputs[0],"Clip",E=>`clamp(${E}, vec4<${C}>(uniforms.min), vec4<${C}>(uniforms.max))`,void 0,x.cacheKey,void 0,[{type:i.inputs[0].dataType,data:x.min},{type:i.inputs[0].dataType,data:x.max}],[{name:"min",type:C},{name:"max",type:C}]),{inputs:[0]})},Lc=i=>{i.compute(Kn(i.inputs[0],"Ceil","ceil"))},xl=i=>{i.compute(Kn(i.inputs[0],"Cos","cos"))},Cu=i=>{i.compute(Kn(i.inputs[0],"Cosh","cosh"))},Fo=i=>Fn(i),Sl=(i,d)=>{let x=yr(i.inputs[0].dataType);i.compute(Kn(i.inputs[0],"Elu",C=>`elu_vf32(${C})`,` + const elu_alpha_ = ${x}(${d.alpha}); + + fn elu_f32(a: ${x}) -> ${x} { + return select((exp(a) - 1.0) * elu_alpha_, a, a >= 0.0); + } + + fn elu_vf32(v: vec4<${x}>) -> vec4<${x}> { + return vec4(elu_f32(v.x), elu_f32(v.y), elu_f32(v.z), elu_f32(v.w)); + }`,d.cacheKey))},$o=(i="f32")=>` +const r0: ${i} = 0.3275911; +const r1: ${i} = 0.254829592; +const r2: ${i} = -0.284496736; +const r3: ${i} = 1.421413741; +const r4: ${i} = -1.453152027; +const r5: ${i} = 1.061405429; + +fn erf_vf32(v: vec4<${i}>) -> vec4<${i}> { + let absv = abs(v); + let x = 1.0 / (1.0 + r0 * absv); + return sign(v) * (1.0 - ((((r5 * x + r4) * x + r3) * x + r2) * x + r1) * x * exp(-absv * absv)); +}`,Do=i=>{let d=yr(i.inputs[0].dataType);i.compute(Kn(i.inputs[0],"Erf",x=>`erf_vf32(${x})`,$o(d)))},wa=i=>{i.compute(Kn(i.inputs[0],"Exp","exp"))},Lo=i=>{i.compute(Kn(i.inputs[0],"Floor","floor"))},Ff=i=>{let d=yr(i.inputs[0].dataType);i.compute(Kn(i.inputs[0],"Gelu",x=>`0.5 * ${x} * (1.0 + erf_vf32(${x} * 0.7071067811865475))`,$o(d)))},$f=(i,d)=>{let x=yr(i.inputs[0].dataType);i.compute(Kn(i.inputs[0],"LeakyRelu",C=>`select(leaky_relu_alpha_ * ${C}, ${C}, ${C} >= vec4<${x}>(0.0))`,`const leaky_relu_alpha_ = ${x}(${d.alpha});`,d.cacheKey))},Rc=i=>{i.compute(Kn(i.inputs[0],"Not",d=>`!${d}`))},Tl=i=>{i.compute(Kn(i.inputs[0],"Neg",d=>`-${d}`))},Cl=i=>{i.compute(Kn(i.inputs[0],"Reciprocal",d=>`1.0/${d}`))},Ro=i=>{let d=yr(i.inputs[0].dataType);i.compute(Kn(i.inputs[0],"Relu",x=>`select(vec4<${d}>(0.0), ${x}, ${x} > vec4<${d}>(0.0))`))},Df=i=>{i.compute(Kn(i.inputs[0],"Sigmoid",d=>`(1.0 / (1.0 + exp(-${d})))`))},zc=i=>Fn(i),Bc=(i,d)=>{let x=yr(i.inputs[0].dataType);i.compute(Kn(i.inputs[0],"HardSigmoid",C=>`max(vec4<${x}>(0.0), min(vec4<${x}>(1.0), ${d.alpha} * ${C} + vec4<${x}>(${d.beta})))`,void 0,d.cacheKey))},Nc=i=>{i.compute(Kn(i.inputs[0],"Sin","sin"))},Kr=i=>{i.compute(Kn(i.inputs[0],"Sinh","sinh"))},ai=i=>{i.compute(Kn(i.inputs[0],"Sqrt","sqrt"))},Lf=i=>{i.compute(Kn(i.inputs[0],"Tan","tan"))},jc=i=>`sign(${i}) * (1 - exp(-2 * abs(${i}))) / (1 + exp(-2 * abs(${i})))`,Wc=i=>{i.compute(Kn(i.inputs[0],"Tanh",jc))},Mu=(i="f32")=>` +const fast_gelu_a: ${i} = 0.5; +const fast_gelu_b: ${i} = 0.7978845608028654; +const fast_gelu_c: ${i} = 0.035677408136300125; + +fn tanh_v(v: vec4<${i}>) -> vec4<${i}> { + return ${jc("v")}; +} +`,Ml=i=>`(fast_gelu_a + fast_gelu_a * tanh_v(${i} * (fast_gelu_c * ${i} * ${i} + fast_gelu_b))) * ${i}`,zo=i=>{let d=yr(i.inputs[0].dataType);i.compute(Kn(i.inputs[0],"FastGelu",Ml,Mu(d),void 0,i.inputs[0].dataType))},Eu=(i,d)=>{let x=yr(i.inputs[0].dataType);return i.compute(Kn(i.inputs[0],"ThresholdedRelu",C=>`select(vec4<${x}>(0.0), ${C}, ${C} > thresholded_relu_alpha_)`,`const thresholded_relu_alpha_ = vec4<${x}>(${d.alpha});`,d.cacheKey)),0},ba=i=>{i.compute(Kn(i.inputs[0],"Log","log"))},Bo=(i,d)=>` +const alpha = vec4<${i}>(${d}); +const one = ${i}(1.0); +const zero = ${i}(0.0); + +fn quick_gelu_impl(x: vec4<${i}>) -> vec4<${i}> { + let v = x *alpha; + var x1 : vec4<${i}>; + for (var i = 0; i < 4; i = i + 1) { + if (v[i] >= zero) { + x1[i] = one / (one + exp(-v[i])); + } else { + x1[i] = one - one / (one + exp(v[i])); + } + } + return x * x1; +} +`,No=i=>`quick_gelu_impl(${i})`,jo=(i,d)=>{let x=yr(i.inputs[0].dataType);i.compute(Kn(i.inputs[0],"QuickGelu",No,Bo(x,d.alpha),d.cacheKey,i.inputs[0].dataType))}}),Rf,Vc,zf,rp=s(()=>{bn(),Nn(),xa(),Rf=i=>{if(i[0].dims.length!==3)throw new Error("input should have 3 dimensions");if(![2560,5120,10240].includes(i[0].dims[2]))throw new Error("hidden state should be 2560, 5120 or 10240");if(i[1].dims.length!==1)throw new Error("bias is expected to have 1 dimensions");if(i[0].dims[2]!==i[1].dims[0])throw new Error("last dimension of input and bias are not the same")},Vc=i=>{let d=i[0].dims.slice();d[2]=d[2]/2;let x=Pt("input",i[0].dataType,i[0].dims,4),C=Pt("bias",i[0].dataType,[i[0].dims[2]],4),E=pn("output",i[0].dataType,d,4),A=dt.size(d)/4,P=Hn(i[0].dataType);return{name:"BiasSplitGelu",getRunData:()=>({outputs:[{dims:d,dataType:i[0].dataType}],dispatchGroup:{x:Math.ceil(A/64)}}),getShaderSource:L=>` + const M_SQRT2 = sqrt(2.0); + const halfChannels = ${i[0].dims[2]/4/2}u; + + ${L.declareVariables(x,C,E)} + + ${$o(P)} + + ${L.mainStart()} + ${L.guardAgainstOutOfBoundsWorkgroupSizes(A)} + let biasIdx = global_idx % halfChannels; + let batchIndex = global_idx / halfChannels; + let inputOffset = biasIdx + batchIndex * halfChannels * 2; + let valueLeft = input[inputOffset] + bias[biasIdx]; + let valueRight = input[inputOffset + halfChannels] + bias[biasIdx + halfChannels]; + let geluRight = valueRight * 0.5 * (erf_vf32(valueRight / M_SQRT2) + 1); + + ${E.setByOffset("global_idx","valueLeft * geluRight")} + }`}},zf=i=>{Rf(i.inputs),i.compute(Vc(i.inputs))}}),Uc,El,ki,Pu,me,eo,Wo,Qi,Qn,Bf,Nf,ku,Sa,ip=s(()=>{Sn(),bn(),Nn(),Uc=(i,d,x,C,E,A,P,L,z,B,X,Y)=>{let $,ae;typeof L=="string"?$=ae=(be,Ve)=>`${L}((${be}),(${Ve}))`:typeof L=="function"?$=ae=L:($=L.scalar,ae=L.vector);let ce=pn("outputData",X,C.length,4),le=Pt("aData",z,d.length,4),Se=Pt("bData",B,x.length,4),Ee;if(E)if(A){let be=dt.size(d)===1,Ve=dt.size(x)===1,je=d.length>0&&d[d.length-1]%4===0,et=x.length>0&&x[x.length-1]%4===0;be||Ve?Ee=ce.setByOffset("global_idx",ae(be?`${le.type.value}(${le.getByOffset("0")}.x)`:le.getByOffset("global_idx"),Ve?`${Se.type.value}(${Se.getByOffset("0")}.x)`:Se.getByOffset("global_idx"))):Ee=` + let outputIndices = ${ce.offsetToIndices("global_idx * 4u")}; + let offsetA = ${le.broadcastedIndicesToOffset("outputIndices",ce)}; + let offsetB = ${Se.broadcastedIndicesToOffset("outputIndices",ce)}; + ${ce.setByOffset("global_idx",ae(P||je?le.getByOffset("offsetA / 4u"):`${le.type.value}(${le.getByOffset("offsetA / 4u")}[offsetA % 4u])`,P||et?Se.getByOffset("offsetB / 4u"):`${Se.type.value}(${Se.getByOffset("offsetB / 4u")}[offsetB % 4u])`))} + `}else Ee=ce.setByOffset("global_idx",ae(le.getByOffset("global_idx"),Se.getByOffset("global_idx")));else{if(!A)throw new Error("no necessary to use scalar implementation for element-wise binary op implementation.");let be=(Ve,je,et="")=>{let _t=`aData[indexA${je}][componentA${je}]`,ot=`bData[indexB${je}][componentB${je}]`;return` + let outputIndices${je} = ${ce.offsetToIndices(`global_idx * 4u + ${je}u`)}; + let offsetA${je} = ${le.broadcastedIndicesToOffset(`outputIndices${je}`,ce)}; + let offsetB${je} = ${Se.broadcastedIndicesToOffset(`outputIndices${je}`,ce)}; + let indexA${je} = offsetA${je} / 4u; + let indexB${je} = offsetB${je} / 4u; + let componentA${je} = offsetA${je} % 4u; + let componentB${je} = offsetB${je} % 4u; + ${Ve}[${je}] = ${et}(${$(_t,ot)}); + `};X===9?Ee=` + var data = vec4(0); + ${be("data",0,"u32")} + ${be("data",1,"u32")} + ${be("data",2,"u32")} + ${be("data",3,"u32")} + outputData[global_idx] = dot(vec4(0x1, 0x100, 0x10000, 0x1000000), vec4(data));`:Ee=` + ${be("outputData[global_idx]",0)} + ${be("outputData[global_idx]",1)} + ${be("outputData[global_idx]",2)} + ${be("outputData[global_idx]",3)} + `}return` + ${i.registerUniform("vec_size","u32").declareVariables(le,Se,ce)} + + ${Y!=null?Y:""} + + ${i.mainStart()} + ${i.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.vec_size")} + ${Ee} + }`},El=(i,d,x,C,E,A,P=x.dataType)=>{var ae,ce;let L=!dt.areEqual(x.dims,C.dims),z=x.dims,B=dt.size(x.dims),X=!1,Y=!1,$=[L];if(L){let le=Ei.calcShape(x.dims,C.dims,!1);if(!le)throw new Error("Can't perform binary op on the given tensors");z=le,B=dt.size(z);let Se=dt.size(x.dims)===1,Ee=dt.size(C.dims)===1,be=x.dims.length>0&&x.dims[x.dims.length-1]%4===0,Ve=C.dims.length>0&&C.dims[C.dims.length-1]%4===0;$.push(Se),$.push(Ee),$.push(be),$.push(Ve);let je=1;for(let et=1;etle.toString()).join("_"),inputDependencies:["rank","rank"]},getShaderSource:le=>Uc(le,x.dims,C.dims,z,X,L,Y,E,x.dataType,C.dataType,P,A),getRunData:()=>({outputs:[{dims:z,dataType:P}],dispatchGroup:{x:Math.ceil(B/64/4)},programUniforms:[{type:12,data:Math.ceil(dt.size(z)/4)},...Ot(x.dims,C.dims,z)]})}},ki=(i,d,x,C,E,A)=>{i.compute(El(d,E!=null?E:"",i.inputs[0],i.inputs[1],x,C,A))},Pu=i=>{ki(i,"Add",(d,x)=>`${d}+${x}`)},me=i=>{ki(i,"Div",(d,x)=>`${d}/${x}`)},eo=i=>{ki(i,"Equal",{scalar:(d,x)=>`u32(${d}==${x})`,vector:(d,x)=>`vec4(${d}==${x})`},void 0,void 0,9)},Wo=i=>{ki(i,"Mul",(d,x)=>`${d}*${x}`)},Qi=i=>{let d=Pt("input",i.inputs[0].dataType,i.inputs[0].dims).type.value;ki(i,"Pow",{scalar:(x,C)=>`pow_custom(${x},${C})`,vector:(x,C)=>`pow_vector_custom(${x},${C})`},` + fn pow_custom(a : ${d}, b : ${d}) -> ${d} { + if (b == ${d}(0.0)) { + return ${d}(1.0); + } else if (a < ${d}(0.0) && f32(b) != floor(f32(b))) { + return ${d}(pow(f32(a), f32(b))); // NaN + } + return select(sign(a), ${d}(1.0), round(f32(abs(b) % ${d}(2.0))) != 1.0) * ${d}(${d==="i32"?"round":""}(pow(f32(abs(a)), f32(b)))); + } + fn pow_vector_custom(a : vec4<${d}>, b : vec4<${d}>) -> vec4<${d}> { + // TODO: implement vectorized pow + return vec4<${d}>(pow_custom(a.x, b.x), pow_custom(a.y, b.y), pow_custom(a.z, b.z), pow_custom(a.w, b.w)); + } + `)},Qn=i=>{ki(i,"Sub",(d,x)=>`${d}-${x}`)},Bf=i=>{ki(i,"Greater",{scalar:(d,x)=>`u32(${d}>${x})`,vector:(d,x)=>`vec4(${d}>${x})`},void 0,void 0,9)},Nf=i=>{ki(i,"Less",{scalar:(d,x)=>`u32(${d}<${x})`,vector:(d,x)=>`vec4(${d}<${x})`},void 0,void 0,9)},ku=i=>{ki(i,"GreaterOrEqual",{scalar:(d,x)=>`u32(${d}>=${x})`,vector:(d,x)=>`vec4(${d}>=${x})`},void 0,void 0,9)},Sa=i=>{ki(i,"LessOrEqual",{scalar:(d,x)=>`u32(${d}<=${x})`,vector:(d,x)=>`vec4(${d}<=${x})`},void 0,void 0,9)}}),jf,Wf,Vf,Gc,Fs,Uf,Gf=s(()=>{Sn(),bn(),ir(),Nn(),jf=(i,d)=>{if(!i||i.length<1)throw new Error("too few inputs");let x=0,C=i[x],E=C.dataType,A=C.dims.length;i.forEach((P,L)=>{if(L!==x){if(P.dataType!==E)throw new Error("input tensors should be one type");if(P.dims.length!==A)throw new Error("input tensors should have the same shape");P.dims.forEach((z,B)=>{if(B!==d&&z!==C.dims[B])throw new Error("non concat dimensions must match")})}})},Wf=(i,d)=>` + fn calculateInputIndex(index: u32) -> u32 { + let sizeInConcatAxis = array(${d}); + for (var i: u32 = 0u; i < ${i}; i += 1u ) { + if (index < sizeInConcatAxis[i]) { + return i; + } + } + return ${i}u; + }`,Vf=(i,d)=>{let x=i.length,C=[];for(let E=0;E{let E=dt.size(x),A=new Array(i.length),P=new Array(i.length),L=0,z=[],B=[],X=[{type:12,data:E}];for(let le=0;le`uniforms.sizeInConcatAxis${le}`).join(","),ce=le=>` + + ${(()=>{le.registerUniform("outputSize","u32");for(let Se=0;Se(${ae}); + ${$} -= sizeInConcatAxis[inputIndex - 1u]; + } + + ${Vf(P,Y)} + }`;return{name:"Concat",shaderCache:{hint:`${d}`,inputDependencies:z},getRunData:()=>({outputs:[{dims:x,dataType:C}],dispatchGroup:{x:Math.ceil(E/64)},programUniforms:X}),getShaderSource:ce}},Fs=(i,d)=>{let x=i.inputs,C=x[0].dims,E=dt.normalizeAxis(d.axis,C.length);jf(x,E);let A=C.slice();A[E]=x.reduce((L,z)=>L+(z.dims.length>E?z.dims[E]:0),0);let P=x.filter(L=>dt.size(L.dims)>0);i.compute(Gc(P,E,A,x[0].dataType),{inputs:P})},Uf=i=>Fn({axis:i.axis})}),Ta,Ca,Ma,vs,Zs=s(()=>{Sn(),bn(),Ta=(i,d,x="f32")=>{switch(i.activation){case"Relu":return`value = max(value, ${d}(0.0));`;case"Sigmoid":return`value = (${d}(1.0) / (${d}(1.0) + exp(-value)));`;case"Clip":return`value = clamp(value, ${d}(${x}(uniforms.clip_min)), ${d}(${x}(uniforms.clip_max)));`;case"HardSigmoid":return`value = max(${d}(0.0), min(${d}(1.0), ${x}(uniforms.alpha) * value + ${x}(uniforms.beta)));`;case"LeakyRelu":return`value = select(${x}(uniforms.alpha) * value, value, value >= ${d}(0.0));`;case"Tanh":return`let e2x = exp(-2.0 * abs(value)); + value = sign(value) * (1.0 - e2x) / (1.0 + e2x); + `;case"":return"";default:throw new Error(`Unsupported activation ${i.activation}`)}},Ca=(i,d)=>{i.activation==="Clip"?d.push({type:1,data:i.clipMax},{type:1,data:i.clipMin}):i.activation==="HardSigmoid"?d.push({type:1,data:i.alpha},{type:1,data:i.beta}):i.activation==="LeakyRelu"&&d.push({type:1,data:i.alpha})},Ma=(i,d)=>{i.activation==="Clip"?d.push({name:"clip_max",type:"f32"},{name:"clip_min",type:"f32"}):i.activation==="HardSigmoid"?d.push({name:"alpha",type:"f32"},{name:"beta",type:"f32"}):i.activation==="LeakyRelu"&&d.push({name:"alpha",type:"f32"})},vs=i=>{let d=(i==null?void 0:i.activation)||"";if(d==="HardSigmoid"){let[x,C]=(i==null?void 0:i.activation_params)||[.2,.5];return{activation:d,alpha:x,beta:C}}else if(d==="Clip"){let[x,C]=(i==null?void 0:i.activation_params)||[ps,ms];return{activation:d,clipMax:C,clipMin:x}}else if(d==="LeakyRelu"){let[x]=(i==null?void 0:i.activation_params)||[.01];return{activation:d,alpha:x}}return{activation:d}}}),bi,Hc,Pl=s(()=>{bi=(i,d)=>{switch(i){case 1:return d;case 2:return`vec2<${d}>`;case 3:return`vec3<${d}>`;case 4:return`vec4<${d}>`;default:throw new Error(`${i}-component is not supported.`)}},Hc=i=>` + ${i?"value = value + getBiasByOutputCoords(coords);":""} + `}),Xc,Ea=s(()=>{Xc=i=>` +fn getIndexFromCoords4D(coords : vec4, shape : vec4) -> i32 { + return dot(coords, vec4( + shape.y * shape.z * shape.w, shape.z * shape.w, shape.w, 1)); +} +fn getOutputIndexFromCoords(coords : vec4) -> i32 { + return dot(coords, vec4( + i32(${i}.x), i32(${i}.y), i32(${i}.z), 1)); +} +`}),qc,Hf,ji,Ou,Xf,Au,qf,Yc,kl=s(()=>{Sn(),bn(),Nn(),Zs(),Pl(),qc=(i,d)=>i?` + mm_Asub[inputRow][inputCol] = mm_readA(batch, + kStart + inputRow, + globalRowStart / innerElementSize + inputCol${d?", batchIndices":""}); + `:` + mm_Asub[inputRow][inputCol] = mm_readA(batch, + globalRow + innerRow, + kStart / innerElementSize + inputCol${d?", batchIndices":""}); + `,Hf=(i,d)=>i?` + let ACached0 = mm_Asub[k * innerElementSize][localRow]; + let ACached1 = mm_Asub[k * innerElementSize + 1][localRow]; + let ACached2 = mm_Asub[k * innerElementSize + 2][localRow]; + ${d===3?"":"let ACached3 = mm_Asub[k * innerElementSize + 3][localRow];"} + for (var i = 0; i < rowPerThread; i = i + 1) { + acc[i] = BCached0 * ACached0[i] + acc[i]; + acc[i] = BCached1 * ACached1[i] + acc[i]; + acc[i] = BCached2 * ACached2[i] + acc[i]; + ${d===3?"":"acc[i] = BCached3 * ACached3[i] + acc[i];"} + }`:` + for (var i = 0; i < rowPerThread; i = i + 1) { + let ACached = mm_Asub[tileRow + i][k]; + acc[i] = BCached0 * ACached.x + acc[i]; + acc[i] = BCached1 * ACached.y + acc[i]; + acc[i] = BCached2 * ACached.z + acc[i]; + ${d===3?"":"acc[i] = BCached3 * ACached.w + acc[i];"} + }`,ji=(i,d,x="f32",C,E=!1,A=32,P=!1,L=32)=>{let z=d[1]*i[1],B=d[0]*i[0],X=E?z:A,Y=E?A:z,$=X/d[0],ae=A/d[1];if(!((E&&$===4&&i[1]===4||!E&&($===3||$===4))&&X%d[0]===0&&A%d[1]===0&&i[0]===4))throw new Error(`If transposeA ${E} is true, innerElementSize ${$} and workPerThread[1] ${i[1]} must be 4. + Otherwise, innerElementSize ${$} must be 3 or 4. + tileAWidth ${X} must be divisible by workgroupSize[0]${d[0]}. tileInner ${A} must be divisible by workgroupSize[1] ${d[1]}. colPerThread ${i[0]} must be 4.`);return` +var mm_Asub: array, ${X/$}>, ${Y}>; +var mm_Bsub: array, ${B/i[0]}>, ${A}>; + +const rowPerThread = ${i[1]}; +const colPerThread = ${i[0]}; +const innerElementSize = ${$}; +const tileInner = ${A}; + +@compute @workgroup_size(${d[0]}, ${d[1]}, ${d[2]}) +fn main(@builtin(local_invocation_id) localId : vec3, + @builtin(global_invocation_id) globalId : vec3, + @builtin(workgroup_id) workgroupId : vec3) { + let localRow = i32(localId.y); + let tileRow = localRow * rowPerThread; + let tileCol = i32(localId.x); + + let globalRow =i32(globalId.y) * rowPerThread; + let globalCol = i32(globalId.x); + let batch = ${P?"0":"i32(globalId.z)"}; + ${C?`let batchIndices = ${C.offsetToIndices("u32(batch)")};`:""} + let globalRowStart = i32(workgroupId.y) * ${z}; + + let num_tiles = ${P?`${Math.ceil(L/A)}`:"(uniforms.dim_inner - 1) / tileInner + 1"}; + var kStart = ${P?`i32(globalId.z) * ${L}`:"0"}; + + var acc: array, rowPerThread>; + + // Loop over shared dimension. + let tileRowB = localRow * ${ae}; + for (var t = 0; t < num_tiles; t = t + 1) { + // Load one tile of A into local memory. + for (var innerRow = 0; innerRow < rowPerThread; innerRow = innerRow + 1) { + let inputRow = tileRow + innerRow; + let inputCol = tileCol; + ${qc(E,C)} + } + + // Load one tile of B into local memory. + for (var innerRow = 0; innerRow < ${ae}; innerRow = innerRow + 1) { + let inputRow = tileRowB + innerRow; + let inputCol = tileCol; + mm_Bsub[inputRow][inputCol] = mm_readB(batch, kStart + inputRow, globalCol${C?", batchIndices":""}); + } + kStart = kStart + tileInner; + workgroupBarrier(); + + // Compute acc values for a single thread. + for (var k = 0; k < tileInner / innerElementSize; k = k + 1) { + let BCached0 = mm_Bsub[k * innerElementSize][tileCol]; + let BCached1 = mm_Bsub[k * innerElementSize + 1][tileCol]; + let BCached2 = mm_Bsub[k * innerElementSize + 2][tileCol]; + ${$===3?"":"let BCached3 = mm_Bsub[k * innerElementSize + 3][tileCol];"} + + ${Hf(E,$)} + } + + workgroupBarrier(); + } + + for (var innerRow = 0; innerRow < rowPerThread; innerRow = innerRow + 1) { + mm_write(batch, globalRow + innerRow, globalCol, acc[innerRow]); + } +}`},Ou=(i,d)=>i?` + mm_Asub[inputRow][inputCol] = mm_readA(batch, + kStart + inputRow, + globalRowStart + inputCol${d?", batchIndices":""}); + `:` + mm_Asub[inputRow][inputCol] = mm_readA(batch, + globalRowStart + inputRow, + kStart + inputCol${d?", batchIndices":""}); + `,Xf=i=>i?"let ACached = mm_Asub[k][tileRow + innerRow];":"let ACached = mm_Asub[tileRow + innerRow][k];",Au=(i,d,x="f32",C,E=!1,A=32,P=!1,L=32,z=!1)=>{let B=i[1]*d[1],X=i[0]*d[0],Y=E?B:A,$=E?A:B;if(!($%d[1]===0&&Y%d[0]===0&&A%d[1]===0))throw new Error(`tileAHight ${$} must be divisible by workgroupSize[1]${d[1]}, tileAWidth ${Y} must be divisible by workgroupSize[0]${d[0]}, tileInner ${A} must be divisible by workgroupSize[1]${d[1]}`);let ae=$/d[1],ce=Y/d[0],le=A/d[1],Se=z?` + let localRow = i32(localId.y); + let localCol = i32(localId.x); + let globalRowStart = i32(workgroupId.y) * ${B}; + let globalColStart = i32(workgroupId.x) * ${X}; + + // Loop over shared dimension. + for (var t = 0; t < num_tiles; t = t + 1) { + // Load one tile of A into local memory. + for (var inputRow = localRow; inputRow < ${$}; inputRow = inputRow + ${d[1]}) { + for (var inputCol = localCol; inputCol < ${Y}; inputCol = inputCol + ${d[0]}) { + ${Ou(E,C)} + } + } + // Load one tile of B into local memory. + for (var inputRow = localRow; inputRow < ${A}; inputRow = inputRow + ${d[1]}) { + for (var inputCol = localCol; inputCol < ${X}; inputCol = inputCol + ${d[0]}) { + mm_Bsub[inputRow][inputCol] = mm_readB(batch, + kStart + inputRow, + globalColStart + inputCol${C?", batchIndices":""}); + } + } + kStart = kStart + tileInner; + workgroupBarrier(); + + // Compute acc values for a single thread. + var BCached : array<${x}, colPerThread>; + for (var k = 0; k < tileInner; k = k + 1) { + for (var inner = 0; inner < colPerThread; inner = inner + 1) { + BCached[inner] = mm_Bsub[k][localCol + inner * ${d[0]}]; + } + for (var innerRow = 0; innerRow < rowPerThread; innerRow = innerRow + 1) { + let ACached = ${E?`mm_Asub[k][localRow + innerRow * ${d[1]}];`:`mm_Asub[localRow + innerRow * ${d[1]}][k];`} + for (var innerCol = 0; innerCol < colPerThread; innerCol = innerCol + 1) { + acc[innerRow][innerCol] = acc[innerRow][innerCol] + + ACached * BCached[innerCol]; + } + } + } + workgroupBarrier(); + } + for (var innerRow = 0; innerRow < rowPerThread; innerRow = innerRow + 1) { + let gRow = globalRowStart + localRow + innerRow * ${d[1]}; + for (var innerCol = 0; innerCol < colPerThread; innerCol = innerCol + 1) { + let gCol = globalColStart + localCol + innerCol * ${d[0]}; + mm_write(batch, gRow, gCol, acc[innerRow][innerCol]); + } + } + `:` +let tileRow = i32(localId.y) * rowPerThread; +let tileCol = i32(localId.x) * colPerThread; + +let globalRow = i32(globalId.y) * rowPerThread; +let globalCol = i32(globalId.x) * colPerThread; +let globalRowStart = i32(workgroupId.y) * ${B}; + +let tileRowA = i32(localId.y) * ${ae}; +let tileColA = i32(localId.x) * ${ce}; +let tileRowB = i32(localId.y) * ${le}; +// Loop over shared dimension. +for (var t = 0; t < num_tiles; t = t + 1) { + // Load one tile of A into local memory. + for (var innerRow = 0; innerRow < ${ae}; innerRow = innerRow + 1) { + for (var innerCol = 0; innerCol < ${ce}; innerCol = innerCol + 1) { + let inputRow = tileRowA + innerRow; + let inputCol = tileColA + innerCol; + ${Ou(E,C)} + } + } + + // Load one tile of B into local memory. + for (var innerRow = 0; innerRow < ${le}; innerRow = innerRow + 1) { + for (var innerCol = 0; innerCol < colPerThread; innerCol = innerCol + 1) { + let inputRow = tileRowB + innerRow; + let inputCol = tileCol + innerCol; + mm_Bsub[inputRow][inputCol] = mm_readB(batch, + kStart + inputRow, + globalCol + innerCol${C?", batchIndices":""}); + } + } + kStart = kStart + tileInner; + workgroupBarrier(); + + // Compute acc values for a single thread. + var BCached : array<${x}, colPerThread>; + for (var k = 0; k < tileInner; k = k + 1) { + for (var inner = 0; inner < colPerThread; inner = inner + 1) { + BCached[inner] = mm_Bsub[k][tileCol + inner]; + } + + for (var innerRow = 0; innerRow < rowPerThread; innerRow = innerRow + 1) { + ${Xf(E)} + for (var innerCol = 0; innerCol < colPerThread; innerCol = innerCol + 1) { + acc[innerRow][innerCol] = acc[innerRow][innerCol] + ACached * BCached[innerCol]; + } + } + } + + workgroupBarrier(); +} + +for (var innerRow = 0; innerRow < rowPerThread; innerRow = innerRow + 1) { + for (var innerCol = 0; innerCol < colPerThread; innerCol = innerCol + 1) { + mm_write(batch, globalRow + innerRow, globalCol + innerCol, + acc[innerRow][innerCol]); + } +} +`;return` + var mm_Asub : array, ${$}>; + var mm_Bsub : array, ${A}>; + const rowPerThread = ${i[1]}; + const colPerThread = ${i[0]}; + const tileInner = ${A}; + +@compute @workgroup_size(${d[0]}, ${d[1]}, ${d[2]}) +fn main(@builtin(local_invocation_id) localId : vec3, + @builtin(global_invocation_id) globalId : vec3, + @builtin(workgroup_id) workgroupId : vec3) { + let batch = ${P?"0":"i32(globalId.z)"}; + ${C?`let batchIndices = ${C.offsetToIndices("u32(batch)")};`:""} + let num_tiles = ${P?`${Math.ceil(L/A)}`:"(uniforms.dim_inner - 1) / tileInner + 1"}; + var kStart = ${P?`i32(globalId.z) * ${L}`:"0"}; + + var acc : array, rowPerThread>; + ${Se} + } +`},qf=(i,d,x,C,E,A=!1)=>{let[P,L,z]=E,[B,X,Y,$]=C,ae=rs(P,z),ce=rs(L,z),le=Hn(C[0].type.tensor),Se=()=>{let be=X.rank,Ve=B.rank,je=`var aIndices: ${X.type.indices};`;for(let et=be-2-1,_t=Ve-1;et>=0;et--,_t--)je+=` +aIndices[${et}] = ${Ve>1?`batchIndices[${_t}]`:"batchIndices"};`;return ae.forEach(et=>{je+=` +aIndices[${et}] = 0;`}),je+=` +aIndices[${be-2}] = u32(row); + aIndices[${be-1}] = u32(colIn);`,je},Ee=()=>{let be=Y.rank,Ve=B.rank,je=`var bIndices: ${Y.type.indices};`;for(let et=be-2-1,_t=Ve-1;et>=0;et--,_t--)je+=` +bIndices[${et}] = ${Ve>1?`batchIndices[${_t}]`:"batchIndices"};`;return ce.forEach(et=>{je+=` +bIndices[${et}] = 0;`}),je+=` +bIndices[${be-2}] = u32(row); + bIndices[${be-1}] = u32(colIn);`,je};return` + fn mm_readA(batch: i32, row: i32, colIn: i32, batchIndices: ${B.type.indices}) -> ${bi(i,le)} { + var value = ${bi(i,le)}(0.0); + let col = colIn * ${i}; + if(row < uniforms.dim_a_outer && col < uniforms.dim_inner) + { + ${Se()} + value = ${X.getByIndices("aIndices")}; + } + return value; + } + + fn mm_readB(batch: i32, row: i32, colIn: i32, batchIndices: ${B.type.indices}) -> ${bi(i,le)} { + var value = ${bi(i,le)}(0.0); + let col = colIn * ${i}; + if(row < uniforms.dim_inner && col < uniforms.dim_b_outer) + { + ${Ee()} + value = ${Y.getByIndices("bIndices")}; + } + return value; + } + + fn mm_write(batch: i32, row: i32, colIn: i32, valueIn: ${bi(i,le)}) { + let col = colIn * ${i}; + if (row < uniforms.dim_a_outer && col < uniforms.dim_b_outer) { + var value = valueIn; + let coords = vec3(batch, row, colIn); + ${d?`value = value + ${A?"bias[colIn]":`${bi(i,le)}(bias[row])`};`:""} + ${x} + ${$.setByIndices("vec3(coords)","value")} + } + } + `},Yc=(i,d,x,C,E=!1,A)=>{let P=i[0].dims,L=i[1].dims,z=P.slice(0,-2),B=L.slice(0,-2),X=C?C.slice(0,-2):x.slice(0,-2),Y=dt.size(X),$=P[P.length-2],ae=P[P.length-1],ce=L[L.length-1],le=ae%4===0&&ce%4===0,Se=$<=8?[4,1,1]:[4,4,1],Ee=[8,8,1],be=[Math.ceil(ce/Ee[0]/Se[0]),Math.ceil($/Ee[1]/Se[1]),Math.ceil(Y/Ee[2]/Se[2])],Ve=le?4:1,je=[...z,$,ae/Ve],et=je.length,_t=[...B,ae,ce/Ve],ot=_t.length,$t=[Y,$,ce/Ve],Ht=[{type:6,data:$},{type:6,data:ce},{type:6,data:ae}];Ca(d,Ht),Ht.push(...Ot(X,je,_t));let dn=["rank","rank"],Pn=i.length>2;Pn&&(Ht.push(...Ot(i[2].dims)),dn.push("rank")),Ht.push(...Ot($t));let kn=hn=>{let Xn=X.length,Or=pc("batchDims",i[0].dataType,Xn,1),Wn=Hn(i[0].dataType),Yn=Pt("a",i[0].dataType,et,Ve),Rt=Pt("b",i[1].dataType,ot,Ve),Mn=pn("result",i[0].dataType,$t.length,Ve),Rn=[Yn,Rt];if(Pn){let ri=E?Ve:1;Rn.push(Pt("bias",i[2].dataType,i[2].dims.length,ri))}let ft=[{name:"dim_a_outer",type:"i32"},{name:"dim_b_outer",type:"i32"},{name:"dim_inner",type:"i32"}];Ma(d,ft);let Yt=Hn(Mn.type.tensor),yn=Ta(d,Mn.type.value,Yt),wr=qf(Ve,Pn,yn,[Or,Yn,Rt,Mn],[z,B,X],E);return` + ${hn.registerUniforms(ft).registerInternalVariables(Or).declareVariables(...Rn,Mn)} + ${wr} + ${le?ji(Se,Ee,Wn,Or):Au(Se,Ee,Wn,Or)} + `};return{name:"MatMul",shaderCache:{hint:`${Se};${d.activation};${le};${E}`,inputDependencies:dn},getRunData:()=>({outputs:[{dims:A?A(x):x,dataType:i[0].dataType}],dispatchGroup:{x:be[0],y:be[1],z:be[2]},programUniforms:Ht}),getShaderSource:kn}}}),Kc,Qc,sp=s(()=>{Sn(),H(),Nn(),Zs(),Pl(),Ea(),kl(),Kc=(i,d,x,C,E=!1,A,P=4,L=4,z=4,B="f32")=>{let X=Ht=>{switch(Ht){case 1:return"resData = x[xIndex];";case 3:return`resData = vec3<${B}>(x[xIndex], x[xIndex + 1], x[xIndex + 2]);`;case 4:return"resData = x[xIndex / 4];";default:throw new Error(`innerElementSize ${Ht} is not supported.`)}},Y=Ht=>{switch(Ht){case 1:return"return w[row * i32(uniforms.w_shape[3]) + colIn];";case 4:return"return w[row * i32(uniforms.w_shape[3]) / 4 + colIn];";default:throw new Error(`innerElementSize ${Ht} is not supported.`)}},$=i?` + let coord = vec4(batch, xRow, xCol, xCh); + `:` + let coord = vec4(batch, xCh, xRow, xCol); + `,ae=i?` + let coords = vec4( + batch, + row / outWidth, + row % outWidth, + col); + `:` + let coords = vec4( + batch, + row, + col / outWidth, + col % outWidth); + `,ce=i?"i32(uniforms.x_shape[1])":"i32(uniforms.x_shape[2])",le=i?"i32(uniforms.x_shape[2])":"i32(uniforms.x_shape[3])",Se=i?"row":"col",Ee=i?"col":"row",be=` + let inChannels = i32(uniforms.w_shape[2]); + let outWidth = ${i?"i32(uniforms.result_shape[2])":"i32(uniforms.result_shape[3])"}; + let outRow = ${Se} / outWidth; + let outCol = ${Se} % outWidth; + + let WRow = ${Ee} / (i32(uniforms.w_shape[1]) * inChannels); + let WCol = ${Ee} / inChannels % i32(uniforms.w_shape[1]); + let xRow = outRow * uniforms.stride[0] + uniforms.dilation[0] * WRow - uniforms.pad[0]; + let xCol = outCol * uniforms.stride[1] + uniforms.dilation[1] * WCol - uniforms.pad[1]; + let xCh = ${Ee} % inChannels; + var resData = ${bi(P,B)}(0.0); + // The bounds checking is always needed since we use it to pad zero for + // the 'same' padding type. + if (xRow >= 0 && xRow < ${ce} && xCol >= 0 && xCol < ${le}) { + ${$} + let xIndex = getIndexFromCoords4D(coord, vec4(uniforms.x_shape)); + ${X(P)} + } + return resData;`,Ve=i?d&&C?` + let col = colIn * ${P}; + ${be}`:` + let col = colIn * ${P}; + if (row < uniforms.dim_a_outer && col < uniforms.dim_inner) { + ${be} + } + return ${bi(P,B)}(0.0);`:C&&x?` + let col = colIn * ${P}; + ${be}`:` + let col = colIn * ${P}; + if (row < uniforms.dim_inner && col < uniforms.dim_b_outer) { + ${be} + } + return ${bi(P,B)}(0.0);`,je=`${Y(L)}`,et=bi(z,B),_t=bi(i?P:L,B),ot=bi(i?L:P,B),$t=Ta(A,et,B);return` + fn mm_readA(batch: i32, row : i32, colIn : i32) -> ${_t} { + ${i?Ve:je} + } + + fn mm_readB(batch: i32, row : i32, colIn : i32) -> ${ot} { + ${i?je:Ve} + } + + fn mm_write(batch: i32, row : i32, colIn : i32, valueIn : ${et}) { + let col = colIn * ${z}; + if (row < uniforms.dim_a_outer && col < uniforms.dim_b_outer) + { + var value = valueIn; + let outWidth = ${i?"i32(uniforms.result_shape[2])":"i32(uniforms.result_shape[3])"}; + ${ae} + ${Hc(E)} + ${$t} + setOutputAtCoords(coords[0], coords[1], coords[2], coords[3], value); + } + }`},Qc=(i,d,x,C,E,A,P,L,z)=>{let B=d.format==="NHWC",X=B?i[0].dims[3]:i[0].dims[1],Y=x[0],$=B?x[2]:x[3],ae=B?x[1]:x[2],ce=B?x[3]:x[1],le=B&&(X%4===0||X%3===0)&&ce%4===0,Se=B?ce:$*ae,Ee=B?$*ae:ce,be=[8,8,1],Ve=C<=8?[4,1,1]:[4,4,1],je=[Math.ceil(Se/be[0]/Ve[0]),Math.ceil(Ee/be[1]/Ve[1]),Math.ceil(Y/be[2]/Ve[2])];Ke("verbose",()=>`[conv2d_mm_webgpu] dispatch = ${je}`);let et=le?B&&X%4!==0?3:4:1,_t=be[1]*Ve[1],ot=be[0]*Ve[0],$t=Math.max(be[0]*et,be[1]),Ht=C%_t===0,dn=E%ot===0,Pn=A%$t===0,kn=le?[et,4,4]:[1,1,1],hn=[{type:6,data:C},{type:6,data:E},{type:6,data:A},{type:6,data:[d.pads[0],d.pads[1]]},{type:6,data:d.strides},{type:6,data:d.dilations}];Ca(d,hn),hn.push(...Ot(i[0].dims,i[1].dims));let Xn=["rank","rank"];P&&(hn.push(...Ot(i[2].dims)),Xn.push("rank")),hn.push(...Ot(x));let Or=Wn=>{let Yn=[{name:"dim_a_outer",type:"i32"},{name:"dim_b_outer",type:"i32"},{name:"dim_inner",type:"i32"},{name:"pad",type:"i32",length:2},{name:"stride",type:"i32",length:2},{name:"dilation",type:"i32",length:2}];Ma(d,Yn);let Rt=le?4:1,Mn=Hn(i[0].dataType),Rn=` + fn setOutputAtIndex(flatIndex : i32, value : ${le?`vec4<${Mn}>`:Mn}) { + result[flatIndex] = ${le?`vec4<${Mn}>`:Mn}(value); + } + fn setOutputAtCoords(d0 : i32, d1 : i32, d2 : i32, d3 : i32, value : ${le?`vec4<${Mn}>`:Mn}) { + let flatIndex = getOutputIndexFromCoords(vec4(d0, d1, d2, d3)); + setOutputAtIndex(flatIndex ${le?"/ 4":""}, value); + }`,ft=Pt("x",i[0].dataType,i[0].dims.length,et===3?1:et),Yt=Pt("w",i[1].dataType,i[1].dims.length,Rt),yn=[ft,Yt],wr=pn("result",i[0].dataType,x.length,Rt);if(P){let ri=Pt("bias",i[2].dataType,i[2].dims.length,Rt);yn.push(ri),Rn+=` + fn getBiasByOutputCoords(coords : vec4) -> ${le?`vec4<${Mn}>`:Mn} { + return bias[coords.${B?"w":"y"}${le?"/ 4":""}]; + }`}return` + ${Xc("uniforms.result_strides")} + //struct Uniforms { xShape : vec4, wShape : vec4, outShape : vec4, + // outShapeStrides: vec3, filterDims : vec2, pad : vec2, stride : vec2, + // dilation : vec2, dimAOuter : i32, dimBOuter : i32, dimInner : i32 }; + ${Wn.registerUniforms(Yn).declareVariables(...yn,wr)} + ${Rn} + ${Kc(B,Ht,dn,Pn,P,d,kn[0],kn[1],kn[2],Mn)} + ${le?ji(Ve,be,Mn,void 0,!B,$t):Au(Ve,be,Mn,void 0,!B,$t,!1,void 0,L)}`};return{name:"Conv2DMatMul",shaderCache:{hint:`${d.cacheKey};${et};${le};${Ht};${dn};${Pn};${_t};${ot};${$t}`,inputDependencies:Xn},getRunData:()=>({outputs:[{dims:z?z(x):x,dataType:i[0].dataType}],dispatchGroup:{x:je[0],y:je[1],z:je[2]},programUniforms:hn}),getShaderSource:Or}}}),Iu,Pa,ka,Yf,$s,Kf,Ds,Fu,to=s(()=>{Sn(),H(),bn(),Nn(),Zs(),Pl(),Iu=i=>{let d=1;for(let x=0;xtypeof i=="number"?[i,i,i]:i,ka=(i,d)=>d<=1?i:i+(i-1)*(d-1),Yf=(i,d,x,C=1)=>{let E=ka(d,C);return Math.floor((i[0]*(x-1)-x+E)/2)},$s=(i,d,x,C,E)=>{E==null&&(E=Yf(i,d[0],C[0]));let A=[0,0,0,x];for(let P=0;P<3;P++)i[P]+2*E>=d[P]&&(A[P]=Math.trunc((i[P]-d[P]+2*E)/C[P]+1));return A},Kf=(i,d,x,C,E,A,P,L,z,B)=>{let X,Y,$,ae;if(i==="VALID"&&(i=0),typeof i=="number"){X={top:i,bottom:i,left:i,right:i,front:i,back:i};let ce=$s([d,x,C,1],[L,z,B],1,[E,A,P],i);Y=ce[0],$=ce[1],ae=ce[2]}else if(Array.isArray(i)){if(!i.every((le,Se,Ee)=>le===Ee[0]))throw Error(`Unsupported padding parameter: ${i}`);X={top:i[0],bottom:i[1],left:i[2],right:i[3],front:i[4],back:i[5]};let ce=$s([d,x,C,1],[L,z,B],1,[E,A,P],i[0]);Y=ce[0],$=ce[1],ae=ce[2]}else if(i==="SAME_UPPER"){Y=Math.ceil(d/E),$=Math.ceil(x/A),ae=Math.ceil(C/P);let ce=(Y-1)*E+L-d,le=($-1)*A+z-x,Se=(ae-1)*P+B-C,Ee=Math.floor(ce/2),be=ce-Ee,Ve=Math.floor(le/2),je=le-Ve,et=Math.floor(Se/2),_t=Se-et;X={top:Ve,bottom:je,left:et,right:_t,front:Ee,back:be}}else throw Error(`Unknown padding parameter: ${i}`);return{padInfo:X,outDepth:Y,outHeight:$,outWidth:ae}},Ds=(i,d,x,C,E,A=!1,P="channelsLast")=>{let L,z,B,X,Y;if(P==="channelsLast")[L,z,B,X,Y]=i;else if(P==="channelsFirst")[L,Y,z,B,X]=i;else throw new Error(`Unknown dataFormat ${P}`);let[$,,ae,ce,le]=d,[Se,Ee,be]=Pa(x),[Ve,je,et]=Pa(C),_t=ka(ae,Ve),ot=ka(ce,je),$t=ka(le,et),{padInfo:Ht,outDepth:dn,outHeight:Pn,outWidth:kn}=Kf(E,z,B,X,Se,Ee,be,_t,ot,$t),hn=A?$*Y:$,Xn=[0,0,0,0,0];return P==="channelsFirst"?Xn=[L,hn,dn,Pn,kn]:P==="channelsLast"&&(Xn=[L,dn,Pn,kn,hn]),{batchSize:L,dataFormat:P,inDepth:z,inHeight:B,inWidth:X,inChannels:Y,outDepth:dn,outHeight:Pn,outWidth:kn,outChannels:hn,padInfo:Ht,strideDepth:Se,strideHeight:Ee,strideWidth:be,filterDepth:ae,filterHeight:ce,filterWidth:le,effectiveFilterDepth:_t,effectiveFilterHeight:ot,effectiveFilterWidth:$t,dilationDepth:Ve,dilationHeight:je,dilationWidth:et,inShape:i,outShape:Xn,filterShape:d}},Fu=(i,d,x,C,E,A)=>{let P=A==="channelsLast";P?i[0].dims[3]:i[0].dims[1];let L=[64,1,1],z={x:x.map((Se,Ee)=>Ee)},B=[Math.ceil(Iu(z.x.map(Se=>x[Se]))/L[0]),1,1];Ke("verbose",()=>`[conv3d_naive_webgpu] dispatch = ${B}`);let X=1,Y=dt.size(x),$=[{type:12,data:Y},{type:12,data:C},{type:12,data:E},{type:12,data:d.strides},{type:12,data:d.dilations}];Ca(d,$),$.push(...Ot(i[0].dims,i[1].dims));let ae=["rank","rank"],ce=i.length===3;ce&&($.push(...Ot(i[2].dims)),ae.push("rank")),$.push(...Ot(x));let le=Se=>{let Ee=[{name:"output_size",type:"u32"},{name:"filter_dims",type:"u32",length:C.length},{name:"pads",type:"u32",length:E.length},{name:"strides",type:"u32",length:d.strides.length},{name:"dilations",type:"u32",length:d.dilations.length}];Ma(d,Ee);let be=1,Ve=Hn(i[0].dataType),je=Pt("x",i[0].dataType,i[0].dims.length,X),et=Pt("W",i[1].dataType,i[1].dims.length,be),_t=[je,et],ot=pn("result",i[0].dataType,x.length,be),$t="";if(ce){let Pn=Pt("bias",i[2].dataType,i[2].dims.length,be);_t.push(Pn),$t+=` + fn getBiasByOutputCoords(coords : array) -> ${Ve} { + return bias[${P?fn("coords",4,5):fn("coords",1,5)}]; + }`}let Ht=bi(X,Ve),dn=Ta(d,Ht,Ve);return` + ${$t} + fn getX(d0 : u32, d1 : u32, d2 : u32, d3 : u32, d4 : u32) -> f32 { + let aIndices = array(d0, d1, d2, d3, d4); + return ${je.getByIndices("aIndices")}; + } + fn getW(d0 : u32, d1 : u32, d2 : u32, d3 : u32, d4 : u32) -> f32 { + let aIndices = array(d0, d1, d2, d3, d4); + return ${et.getByIndices("aIndices")}; + } + ${Se.registerUniforms(Ee).declareVariables(..._t,ot)} + ${Se.mainStart()} + ${Se.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + let coords = ${ot.offsetToIndices("global_idx")}; + let batch = ${fn("coords",0,je.rank)}; + let d2 = ${P?fn("coords",je.rank-1,je.rank):fn("coords",1,je.rank)}; + let xFRCCorner = vec3(${P?fn("coords",1,je.rank):fn("coords",2,je.rank)}, + ${P?fn("coords",2,je.rank):fn("coords",3,je.rank)}, + ${P?fn("coords",3,je.rank):fn("coords",4,je.rank)}) * uniforms.strides - uniforms.pads; + let xFCorner = xFRCCorner.x; + let xRCorner = xFRCCorner.y; + let xCCorner = xFRCCorner.z; + let xShapeY = ${P?fn("uniforms.x_shape",1,je.rank):fn("uniforms.x_shape",2,je.rank)}; + let xShapeZ = ${P?fn("uniforms.x_shape",2,je.rank):fn("uniforms.x_shape",3,je.rank)}; + let xShapeW = ${P?fn("uniforms.x_shape",3,je.rank):fn("uniforms.x_shape",4,je.rank)}; + let xShapeU = ${P?fn("uniforms.x_shape",4,je.rank):fn("uniforms.x_shape",1,je.rank)}; + let inputDepthNearestVec4 = (xShapeU / 4) * 4; + let inputDepthVec4Remainder = xShapeU % 4; + + var value = 0.0; + for (var wF = 0u; wF < uniforms.filter_dims[0]; wF++) { + let xF = xFCorner + wF * uniforms.dilations[0]; + if (xF < 0 || xF >= xShapeY) { + continue; + } + + for (var wR = 0u; wR < uniforms.filter_dims[1]; wR++) { + let xR = xRCorner + wR * uniforms.dilations[1]; + if (xR < 0 || xR >= xShapeZ) { + continue; + } + + for (var wC = 0u; wC < uniforms.filter_dims[2]; wC++) { + let xC = xCCorner + wC * uniforms.dilations[2]; + if (xC < 0 || xC >= xShapeW) { + continue; + } + + for (var d1 = 0u; d1 < inputDepthNearestVec4; d1 += 4) { + ${P?`let xValues = vec4( + getX(batch, xF, xR, xC, d1), + getX(batch, xF, xR, xC, d1 + 1), + getX(batch, xF, xR, xC, d1 + 2), + getX(batch, xF, xR, xC, d1 + 3)); + `:`let xValues = vec4( + getX(batch, d1, xF, xR, xC), + getX(batch, d1 + 1, xF, xR, xC), + getX(batch, d1 + 2, xF, xR, xC), + getX(batch, d1 + 3, xF, xR, xC)); + `} + let wValues = vec4( + getW(d2, d1, wF, wR, wC), + getW(d2, d1 + 1, wF, wR, wC), + getW(d2, d1 + 2, wF, wR, wC), + getW(d2, d1 + 3, wF, wR, wC)); + value += dot(xValues, wValues); + } + if (inputDepthVec4Remainder == 1) { + ${P?`value += getX(batch, xF, xR, xC, inputDepthNearestVec4) + * getW(d2, inputDepthNearestVec4, wF, wR, wC);`:`value += getX(batch, inputDepthNearestVec4, xF, xR, xC) + * getW(d2, inputDepthNearestVec4, wF, wR, wC);`} + } else if (inputDepthVec4Remainder == 2) { + ${P?`let xValues = vec2( + getX(batch, xF, xR, xC, inputDepthNearestVec4), + getX(batch, xF, xR, xC, inputDepthNearestVec4 + 1)); + `:`let xValues = vec2( + getX(batch, inputDepthNearestVec4, xF, xR, xC), + getX(batch, inputDepthNearestVec4 + 1, xF, xR, xC)); + `} + let wValues = vec2( + getW(d2, inputDepthNearestVec4, wF, wR, wC), + getW(d2, inputDepthNearestVec4 + 1, wF, wR, wC)); + value += dot(xValues, wValues); + } else if (inputDepthVec4Remainder == 3) { + ${P?`let xValues = vec3( + getX(batch, xF, xR, xC, inputDepthNearestVec4), + getX(batch, xF, xR, xC, inputDepthNearestVec4 + 1), + getX(batch, xF, xR, xC, inputDepthNearestVec4 + 2)); + `:`let xValues = vec3( + getX(batch, inputDepthNearestVec4, xF, xR, xC), + getX(batch, inputDepthNearestVec4 + 1, xF, xR, xC), + getX(batch, inputDepthNearestVec4 + 2, xF, xR, xC)); + `} + let wValues = vec3( + getW(d2, inputDepthNearestVec4, wF, wR, wC), + getW(d2, inputDepthNearestVec4 + 1, wF, wR, wC), + getW(d2, inputDepthNearestVec4 + 2, wF, wR, wC)); + value += dot(xValues, wValues); + } + } + } + } + ${ce?"value = value + getBiasByOutputCoords(coords)":""}; + ${dn} + result[global_idx] = f32(value); + }`};return{name:"Conv3DNaive",shaderCache:{hint:`${d.cacheKey};${P};${X};${ce}`,inputDependencies:ae},getRunData:()=>({outputs:[{dims:x,dataType:i[0].dataType}],dispatchGroup:{x:B[0],y:B[1],z:B[2]},programUniforms:$}),getShaderSource:le}}}),Wi,Qf,Jf=s(()=>{Sn(),bn(),Nn(),Zs(),Wi=(i,d,x,C)=>{let E=i.length>2,A=E?"value += b[output_channel];":"",P=i[0].dims,L=i[1].dims,z=d.format==="NHWC",B=z?x[3]:x[1],X=B/d.group,Y=z&&X>=4?cn(B):1,$=dt.size(x)/Y,ae=[{type:12,data:$},{type:12,data:d.dilations},{type:12,data:[d.strides[0],d.strides[1]]},{type:12,data:[d.pads[0],d.pads[1]]},{type:12,data:X}];Ca(d,ae),ae.push(...Ot(P,[L[0],L[1],L[2],L[3]/Y]));let ce=E?["rank","rank","rank"]:["rank","rank"];ae.push(...Ot([x[0],x[1],x[2],x[3]/Y]));let le=Se=>{let Ee=pn("output",i[0].dataType,x.length,Y),be=Hn(Ee.type.tensor),Ve=Ta(d,Ee.type.value,be),je=Pt("x",i[0].dataType,P.length),et=Pt("w",i[1].dataType,L.length,Y),_t=[je,et];E&&_t.push(Pt("b",i[2].dataType,i[2].dims,Y));let ot=[{name:"output_size",type:"u32"},{name:"dilations",type:"u32",length:d.dilations.length},{name:"strides",type:"u32",length:2},{name:"pads",type:"u32",length:2},{name:"output_channels_per_group",type:"u32"}];Ma(d,ot);let $t=z?` + for (var wHeight: u32 = 0u; wHeight < uniforms.w_shape[0]; wHeight++) { + let xHeight = xRCCorner.x + wHeight * uniforms.dilations[0]; + + if (xHeight < 0u || xHeight >= uniforms.x_shape[1]) { + continue; + } + + for (var wWidth: u32 = 0u; wWidth < uniforms.w_shape[1]; wWidth++) { + let xWidth = xRCCorner.y + wWidth * uniforms.dilations[1]; + if (xWidth < 0u || xWidth >= uniforms.x_shape[2]) { + continue; + } + + for (var wInChannel: u32 = 0u; wInChannel < uniforms.w_shape[2]; wInChannel++) { + let input_channel = in_channel_offset + wInChannel; + let xVal = ${je.get("batch","xHeight","xWidth","input_channel")}; + let wVal = ${et.get("wHeight","wWidth","wInChannel","output_channel")}; + value += xVal * wVal; + } + } + } + `:` + for (var wInChannel: u32 = 0u; wInChannel < uniforms.w_shape[1]; wInChannel++) { + let input_channel = in_channel_offset + wInChannel; + for (var wHeight: u32 = 0u; wHeight < uniforms.w_shape[2]; wHeight++) { + let xHeight = xRCCorner.x + wHeight * uniforms.dilations[0]; + + if (xHeight < 0u || xHeight >= uniforms.x_shape[2]) { + continue; + } + + for (var wWidth: u32 = 0u; wWidth < uniforms.w_shape[3]; wWidth++) { + let xWidth = xRCCorner.y + wWidth * uniforms.dilations[1]; + if (xWidth < 0u || xWidth >= uniforms.x_shape[3]) { + continue; + } + + let xVal = ${je.get("batch","input_channel","xHeight","xWidth")}; + let wVal = ${et.get("output_channel","wInChannel","wHeight","wWidth")}; + value += xVal * wVal; + } + } + } + `;return` + ${Se.registerUniforms(ot).declareVariables(..._t,Ee)} + + ${Se.mainStart()} + ${Se.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + + let outputIndices = ${Ee.offsetToIndices("global_idx")}; + let batch: u32 = outputIndices[0]; + let output_channel: u32 = outputIndices[${z?3:1}]; + let xRCCorner: vec2 = vec2(outputIndices[${z?1:2}], outputIndices[${z?2:3}]) * uniforms.strides - uniforms.pads; + let group_id: u32 = output_channel * ${Y} / uniforms.output_channels_per_group; + var in_channel_offset = group_id * uniforms.w_shape[${z?2:1}]; + + var value: ${Ee.type.value} = ${Ee.type.value}(0); + ${$t} + ${A} + ${Ve} + ${Ee.setByOffset("global_idx","value")} + }`};return{name:"GroupedConv",shaderCache:{hint:`${d.cacheKey}_${Y}`,inputDependencies:ce},getRunData:()=>({outputs:[{dims:C?C(x):x,dataType:i[0].dataType}],dispatchGroup:{x:Math.ceil($/64)},programUniforms:ae}),getShaderSource:le}},Qf=(i,d,x,C)=>{let E=i.length>2,A=cn(x[3]),P=cn(x[2]),L=dt.size(x)/A/P,z=[i[0].dims[0],i[0].dims[1],i[0].dims[2],i[0].dims[3]/A],B=[i[1].dims[0],i[1].dims[1],i[1].dims[2],i[1].dims[3]/A],X=[x[0],x[1],x[2],x[3]/A],Y=[{type:12,data:L},{type:6,data:[d.strides[0],d.strides[1]]},{type:6,data:[d.pads[0],d.pads[1]]}];Ca(d,Y),Y.push(...Ot(z,B,X));let $=(P-1)*d.strides[1]+B[1],ae=ce=>{let le=pn("output",i[0].dataType,X.length,A),Se=Hn(le.type.tensor),Ee=Ta(d,le.type.value,Se),be=Pt("x",i[0].dataType,z.length,A),Ve=Pt("w",i[1].dataType,B.length,A),je=[be,Ve];E&&je.push(Pt("b",i[2].dataType,i[2].dims,A));let et=E?"value += b[output_channel];":"",_t=[{name:"output_size",type:"u32"},{name:"strides",type:"i32",length:2},{name:"pads",type:"i32",length:2}];return Ma(d,_t),` + ${ce.registerUniforms(_t).declareVariables(...je,le)} + ${ce.mainStart()} + ${ce.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + let width0 = uniforms.output_shape[3]; + let output_channel = global_idx % width0; + var index1 = global_idx / width0; + let width1 = uniforms.output_shape[2] / ${P}u; + let col = (index1 % width1) * ${P}u; + index1 = index1 / width1; + let row = index1 % uniforms.output_shape[1]; + let batch = index1 / uniforms.output_shape[1]; + + let x_corner = vec2(i32(row), i32(col)) * uniforms.strides - uniforms.pads; + + var x_vals: array<${be.type.value}, ${$}>; + var values: array<${le.type.value}, ${P}>; + let input_channel = output_channel; + // Use constant instead of uniform can give better performance for w's height/width. + for (var w_height: u32 = 0u; w_height < ${B[0]}; w_height++) { + let x_height = x_corner.x + i32(w_height); + if (x_height >= 0 && u32(x_height) < uniforms.x_shape[1]) { + for (var i = 0; i < ${$}; i++) { + let x_width = x_corner.y + i; + if (x_width >= 0 && u32(x_width) < uniforms.x_shape[2]) { + x_vals[i] = ${be.get("batch","u32(x_height)","u32(x_width)","input_channel")}; + } else { + x_vals[i] = ${be.type.value}(0); + } + } + for (var w_width: u32 = 0u; w_width < ${B[1]}; w_width++) { + let w_val = ${Ve.get("w_height","w_width","0","output_channel")}; + for (var i = 0u; i < ${P}u; i++) { + values[i] = fma(x_vals[i * u32(uniforms.strides[1]) + w_width], w_val, values[i]); + } + } + } + } + + for (var i = 0u; i < ${P}u; i++) { + var value = values[i]; + ${et} + ${Ee} + ${le.set("batch","row","col + i","output_channel","value")}; + } + }`};return{name:"GroupedConv-Vectorize",shaderCache:{hint:`${d.cacheKey};${A};${P};${$};${B[0]};${B[1]}`,inputDependencies:E?["rank","rank","type"]:["rank","rank"]},getRunData:()=>({outputs:[{dims:C?C(x):x,dataType:i[0].dataType}],dispatchGroup:{x:Math.ceil(L/64)},programUniforms:Y}),getShaderSource:ae}}}),$u,Vo,ys,Jc=s(()=>{Sn(),bn(),kl(),Nn(),Zs(),$u=(i,d,x,C,E=!1,A)=>{let P=i[0].dims,L=i[1].dims,z=P[P.length-2],B=L[L.length-1],X=P[P.length-1],Y=cn(B),$=cn(X),ae=cn(z),ce=dt.size(x)/Y/ae,le=i.length>2,Se=C?C.slice(0,-2):x.slice(0,-2),Ee=[dt.size(Se),z,B],be=[{type:12,data:ce},{type:12,data:z},{type:12,data:B},{type:12,data:X}];Ca(d,be),be.push(...Ot(Se,P,L)),le&&be.push(...Ot(i[2].dims)),be.push(...Ot(Ee));let Ve=je=>{let et=pc("batch_dims",i[0].dataType,Se.length),_t=Pt("a",i[0].dataType,P.length,$),ot=Pt("b",i[1].dataType,L.length,Y),$t=pn("output",i[0].dataType,Ee.length,Y),Ht=Hn($t.type.tensor),dn=Ta(d,$t.type.value,Ht),Pn=[_t,ot],kn="";if(le){let Rn=E?Y:1;Pn.push(Pt("bias",i[2].dataType,i[2].dims.length,Rn)),kn=`${E?`value += bias[col / ${Rn}];`:`value += ${$t.type.value}(bias[row + i]);`}`}let hn=P.slice(0,-2),Xn=L.slice(0,-2),Or=rs(hn,Se),Wn=rs(Xn,Se),Yn=[{name:"output_size",type:"u32"},{name:"M",type:"u32"},{name:"N",type:"u32"},{name:"K",type:"u32"}];Ma(d,Yn);let Rt=(Rn,ft)=>{let Yt=Rn.rank,yn=Rn.name;if(Yt===2)return`var ${yn}_indices = ${Rn.type.indices}(0u, 0u);`;let wr=et.rank,ri=`var ${yn}_indices: ${Rn.type.indices};`;for(let ui=Yt-2-1,Kl=wr-1;ui>=0;ui--,Kl--)ri+=` +${yn}_indices[${ui}] = ${wr>1?`batch_indices[${Kl}]`:"batch_indices"};`;return ft.forEach(ui=>{ri+=` +${yn}_indices[${ui}] = 0;`}),ri+=`${yn}_indices[${Yt-2}] = 0u; + ${yn}_indices[${Yt-1}] = 0u;`,ri},Mn=()=>{let Rn=`var a_data: ${_t.type.value};`;for(let ft=0;ft<$;ft++)Rn+=` + let b_data${ft} = b[(b_offset + (k + ${ft}) * uniforms.N + col) / ${Y}];`;for(let ft=0;ft; + for (var k: u32 = 0u; k < uniforms.K; k = k + ${$}) { + ${Mn()} + } + for (var i = 0u; i < ${ae}u; i++) { + var value = values[i]; + ${kn} + ${dn} + let cur_indices = ${$t.type.indices}(batch, row + i, col); + let offset = ${$t.indicesToOffset("cur_indices")}; + ${$t.setByOffset(`offset / ${Y}`,"value")}; + } + } + `};return{name:"MatMulNaive",shaderCache:{hint:`${d.activation};${Y};${$};${ae};${E}`,inputDependencies:le?["rank","rank","rank"]:["rank","rank"]},getRunData:()=>({outputs:[{dims:A?A(x):x,dataType:i[0].dataType}],dispatchGroup:{x:Math.ceil(ce/64)},programUniforms:be}),getShaderSource:Ve}},Vo=i=>{if(!i||i.length!==2)throw new Error("MatMul requires 2 inputs.");if(i[0].dims[i[0].dims.length-1]!==i[1].dims[i[1].dims.length-2])throw new Error("shared dimension does not match.")},ys=i=>{Vo(i.inputs);let d=Ei.calcShape(i.inputs[0].dims,i.inputs[1].dims,!0);if(!d)throw new Error("Can't use matmul on the given tensors");let x=d[d.length-1],C=i.inputs[0].dims[i.inputs[0].dims.length-1];x<8&&C<8?i.compute($u(i.inputs,{activation:""},d)):i.compute(Yc(i.inputs,{activation:""},d))}}),Zf,no,Ol,Al,ni,Il,Zc,Ji,Fl,Du=s(()=>{bn(),sp(),to(),kl(),Jf(),Zs(),Jc(),Wr(),Zf=(i,d,x,C,E,A)=>{let P=i[0],L=i.slice(A?1:2,A?3:4),z=L.length,B=d[0],X=d.slice(2).map(($,ae)=>$+($-1)*(x[ae]-1)),Y=L.map(($,ae)=>$+C[ae]+C[ae+z]).map(($,ae)=>Math.floor(($-X[ae]+E[ae])/E[ae]));return Y.splice(0,0,P),Y.splice(A?3:1,0,B),Y},no=[2,3,1,0],Ol=(i,d)=>{if(!i||i.length!==2&&i.length!==3)throw new Error("Conv requires 2 or 3 inputs");if(i[0].dims.length>5)throw new Error("greater than 5D is not supported");if(i[0].dims.length!==i[1].dims.length)throw new Error("filter does not have same dimension as input");let x=i[0].dims[d.format==="NHWC"?i[0].dims.length-1:1],C=i[1].dims[1]*d.group;if(x!==C)throw new Error("FILTER_IN_CHANNEL should be equal to DATA_CHANNEL");if(i.length===3&&(i[2].dims.length!==1||i[1].dims[0]!==i[2].dims[0]))throw new Error("invalid bias");let E=i[0].dims.length-2;if(d.dilations.length!==E)throw new Error(`dilations should be ${E}D`);if(d.strides.length!==E)throw new Error(`strides should be ${E}D`);if(d.pads.length!==E*2)throw new Error(`pads should be ${E*2}D`);if(d.kernelShape.length!==0&&d.kernelShape.length!==i[1].dims.length-2)throw new Error("invalid kernel shape")},Al=(i,d)=>{let x=i.kernelShape.slice();x.length{let d=vs(i),x=i.format,C=["NOTSET","VALID","SAME_UPPER","SAME_LOWER"][i.auto_pad],E=i.dilations,A=i.group,P=i.kernel_shape,L=i.pads,z=i.strides,B=i.w_is_const();return{autoPad:C,format:x,dilations:E,group:A,kernelShape:P,pads:L,strides:z,wIsConst:B,...d,cacheKey:`${i.format};${d.activation};`}},Il=(i,d,x,C)=>{var _t,ot,$t;let E=x.format==="NHWC",A=Zf(d[0].dims,d[1].dims,x.dilations,x.pads,x.strides,E);if(x.group!==1){let Ht=[d[0]];if(E){let dn=(_t=i.kernelCustomData.wT)!=null?_t:i.compute(zi(d[1],no),{inputs:[1],outputs:[x.wIsConst?-2:-1]})[0];x.wIsConst&&!i.kernelCustomData.wT&&(i.kernelCustomData.wT=dn),Ht.push(dn)}else Ht.push(d[1]);d.length===3&&Ht.push(d[2]),!i.adapterInfo.isArchitecture("ampere")&&E&&d[1].dims[0]===x.group&&d[1].dims[1]===1&&x.dilations[0]===1&&x.dilations[1]===1?i.compute(Qf(Ht,x,A,C),{inputs:Ht}):i.compute(Wi(Ht,x,A,C),{inputs:Ht});return}let P=d.length===3,L=d[0].dims[E?1:2],z=d[0].dims[E?2:3],B=d[0].dims[E?3:1],X=d[1].dims[2],Y=d[1].dims[3],$=A[E?1:2],ae=A[E?2:3],ce=A[E?3:1],le=E&&X===L&&Y===z&&x.pads[0]===0&&x.pads[1]===0;if(le||X===1&&Y===1&&x.dilations[0]===1&&x.dilations[1]===1&&x.strides[0]===1&&x.strides[1]===1&&x.pads[0]===0&&x.pads[1]===0){let Ht=A[0],dn,Pn,kn,hn=[];if(E){let Wn=(ot=i.kernelCustomData.wT)!=null?ot:i.compute(zi(d[1],no),{inputs:[1],outputs:[x.wIsConst?-2:-1]})[0];if(x.wIsConst&&!i.kernelCustomData.wT&&(i.kernelCustomData.wT=Wn),le){let Yn=L*z*B;dn=d[0].reshape([1,Ht,Yn]),Pn=Wn.reshape([1,Yn,ce]),kn=[1,Ht,ce]}else dn=d[0].reshape([Ht,L*z,B]),Pn=Wn.reshape([1,B,ce]),kn=[Ht,$*ae,ce];hn.push(dn),hn.push(Pn)}else dn=d[0].reshape([Ht,B,L*z]),Pn=d[1].reshape([1,ce,B]),kn=[Ht,ce,$*ae],hn.push(Pn),hn.push(dn);P&&hn.push(d[2]);let Xn=kn[2],Or=hn[0].dims[hn[0].dims.length-1];Xn<8&&Or<8?i.compute($u(hn,x,A,kn,E,C),{inputs:hn}):i.compute(Yc(hn,x,A,kn,E,C),{inputs:hn});return}let Se=!0,Ee=($t=i.kernelCustomData.wT)!=null?$t:i.compute(zi(d[1],no),{inputs:[1],outputs:[x.wIsConst?-2:-1]})[0];x.wIsConst&&!i.kernelCustomData.wT&&(i.kernelCustomData.wT=Ee);let be=[d[0],Ee];P&&be.push(d[2]);let Ve=E?$*ae:ce,je=E?ce:$*ae,et=X*Y*B;i.compute(Qc(be,x,A,Ve,je,et,P,Se,C),{inputs:be})},Zc=(i,d)=>{let x=d.format==="NHWC",C=[i.inputs[0].reshape(x?[i.inputs[0].dims[0],1,i.inputs[0].dims[1],i.inputs[0].dims[2]]:[i.inputs[0].dims[0],i.inputs[0].dims[1],1,i.inputs[0].dims[2]]),i.inputs[1].reshape([i.inputs[1].dims[0],i.inputs[1].dims[1],1,i.inputs[1].dims[2]])];i.inputs.length===3&&C.push(i.inputs[2]);let E=[0,d.pads[0],0,d.pads[1]],A=[1].concat(d.strides),P=[1].concat(d.dilations),L=[1].concat(d.kernelShape),z=Al({...d,pads:E,strides:A,dilations:P,kernelShape:L},C);Il(i,C,z,B=>x?[B[0],B[2],B[3]]:[B[0],B[1],B[3]])},Ji=(i,d,x)=>{let C=x.format==="NHWC"?"channelsLast":"channelsFirst",E=Al(x,d),A=x.autoPad==="NOTSET"?x.pads:x.autoPad,P=Ds(d[0].dims,d[1].dims,x.strides,x.dilations,A,!1,C);i.compute(Fu(d,E,P.outShape,[P.filterDepth,P.filterHeight,P.filterWidth],[P.padInfo.front,P.padInfo.top,P.padInfo.left],C))},Fl=(i,d)=>{if(Ol(i.inputs,d),i.inputs[0].dims.length===3)Zc(i,d);else if(i.inputs[0].dims.length===5)Ji(i,i.inputs,d);else{let x=Al(d,i.inputs);Il(i,i.inputs,x)}}}),Oa,eh,Oi=s(()=>{Sn(),H(),Nn(),Zs(),Pl(),Ea(),kl(),Oa=(i,d=!1,x,C,E=4)=>{let A=Se=>{switch(Se){case 1:return"return w[getIndexFromCoords4D(coord, vec4(uniforms.w_shape))];";case 4:return` + let coord1 = vec4(coordX, coordY, col + 1, rowInner); + let coord2 = vec4(coordX, coordY, col + 2, rowInner); + let coord3 = vec4(coordX, coordY, col + 3, rowInner); + let v0 = w[getIndexFromCoords4D(coord, vec4(uniforms.w_shape))]; + let v1 = w[getIndexFromCoords4D(coord1, vec4(uniforms.w_shape))]; + let v2 = w[getIndexFromCoords4D(coord2, vec4(uniforms.w_shape))]; + let v3 = w[getIndexFromCoords4D(coord3, vec4(uniforms.w_shape))]; + return ${C}(v0, v1, v2, v3); + `;default:throw new Error(`innerElementSize ${Se} is not supported.`)}},P=i?` + let coord = vec4(batch, iXR, iXC, xCh); + `:` + let coord = vec4(batch, xCh, iXR, iXC); + `,L=i?` + let coords = vec4( + batch, + row / outWidth, + row % outWidth, + col); + `:` + let coords = vec4( + batch, + row, + col / outWidth, + col % outWidth); + `,z=i?"i32(uniforms.x_shape[1])":"i32(uniforms.x_shape[2])",B=i?"i32(uniforms.x_shape[2])":"i32(uniforms.x_shape[3])",X=i?"row":"col",Y=i?"col":"row",$=` + let inChannels = ${i?"i32(uniforms.x_shape[3])":"i32(uniforms.x_shape[1])"}; + let outWidth = ${i?"i32(uniforms.result_shape[2])":"i32(uniforms.result_shape[3])"}; + let outRow = ${X} / outWidth; + let outCol = ${X} % outWidth; + + let WRow = ${Y} / (uniforms.filter_dims[1] * inChannels); + let WCol = ${Y} / inChannels % uniforms.filter_dims[1]; + let xR = f32(outRow - uniforms.pads[0] + uniforms.dilations[0] * WRow) / f32(uniforms.strides[0]); + let xC = f32(outCol - uniforms.pads[1] + uniforms.dilations[1] * WCol) / f32(uniforms.strides[1]); + if (xR < 0.0 || xR >= f32(${z}) || fract(xR) > 0.0) { + return ${C}(0.0); + } + if (xC < 0.0 || xC >= f32(${B}) || fract(xC) > 0.0) { + return ${C}(0.0); + } + let iXR = i32(xR); + let iXC = i32(xC); + let xCh = ${Y} % inChannels; + ${P} + return x[getIndexFromCoords4D(coord, vec4(uniforms.x_shape))/${E}];`,ae=i?` + let col = colIn * ${E}; + if (row < uniforms.dim_a_outer && col < uniforms.dim_inner) { + ${$} + } + return ${C}(0.0);`:` + let col = colIn * ${E}; + if (row < uniforms.dim_inner && col < uniforms.dim_b_outer) { + ${$} + } + return ${C}(0.0);`,ce=` + let col = colIn * ${E}; + let inChannels = ${i?"i32(uniforms.x_shape[3])":"i32(uniforms.x_shape[1])"}; + let coordX = uniforms.filter_dims[0] - 1 - row / (uniforms.filter_dims[1] * inChannels); + let coordY = uniforms.filter_dims[1] - 1 - (row / inChannels) % uniforms.filter_dims[1]; + if (${i?"row < uniforms.dim_inner && col < uniforms.dim_b_outer":"row < uniforms.dim_inner && col < uniforms.dim_a_outer"} && coordX >= 0 && coordY >= 0) { + let rowInner = row % inChannels; + let coord = vec4(coordX, coordY, col, rowInner); + ${A(E)} + } + return ${C}(0.0); + `,le=Ta(x,C);return` + fn mm_readA(batch: i32, row : i32, colIn : i32) -> ${C} { + ${i?ae:ce} + } + + fn mm_readB(batch: i32, row : i32, colIn : i32) -> ${C} { + ${i?ce:ae} + } + + fn mm_write(batch: i32, row : i32, colIn : i32, valueInput : ${C}) { + let col = colIn * ${E}; + if (row < uniforms.dim_a_outer && col < uniforms.dim_b_outer) { + var value = valueInput; + let outWidth = ${i?"i32(uniforms.result_shape[2])":"i32(uniforms.result_shape[3])"}; + ${L} + ${Hc(d)} + ${le} + result[getIndexFromCoords4D(coords, vec4(uniforms.result_shape))/${E}] = value; + } + }`},eh=(i,d,x,C,E,A,P,L)=>{let z=d.format==="NHWC",B=z?i[0].dims[3]:i[0].dims[1],X=x[0],Y=z?x[2]:x[3],$=z?x[1]:x[2],ae=z?x[3]:x[1],ce=z&&B%4===0&&B%3&&ae%4===0,le=z?ae:Y*$,Se=z?Y*$:ae,Ee=[8,8,1],be=C<=8?[4,1,1]:[4,4,1],Ve=[Math.ceil(le/Ee[0]/be[0]),Math.ceil(Se/Ee[1]/be[1]),Math.ceil(X/Ee[2]/be[2])];Ke("verbose",()=>`[conv_backprop_mm_webgpu] dispatch = ${Ve}`);let je=ce?4:1,et=Math.max(Ee[0]*je,Ee[1]),_t=ce?4:1,ot=[d.kernelShape[z?1:2],d.kernelShape[z?2:3]],$t=[ot[0]+(d.dilations[0]<=1?0:(ot[0]-1)*(d.dilations[0]-1)),ot[1]+(d.dilations[1]<=1?0:(ot[1]-1)*(d.dilations[1]-1))],Ht=[$t[0]-1-Math.floor((d.pads[0]+d.pads[2])/2),$t[1]-1-Math.floor((d.pads[1]+d.pads[3])/2)],dn=[{type:6,data:C},{type:6,data:E},{type:6,data:A},{type:6,data:d.strides},{type:6,data:d.dilations},{type:6,data:ot},{type:6,data:Ht}];Ca(d,dn),dn.push(...Ot(i[0].dims,i[1].dims));let Pn=["rank","rank"];P&&(dn.push(...Ot(i[2].dims)),Pn.push("rank")),dn.push(...Ot(x));let kn=hn=>{let Xn=Pt("x",i[0].dataType,i[0].dims.length,_t),Or=Pt("w",i[1].dataType,i[1].dims.length,1),Wn=pn("result",i[0].dataType,x.length,_t),Yn=[Xn,Or],Rt="";if(P){let ft=Pt("bias",i[2].dataType,i[2].dims.length,_t);Yn.push(ft),Rt+=` + fn getBiasByOutputCoords(coords : vec4) -> ${ft.type.value} { + return bias[coords.${z?"w":"y"}${ce?"/ 4":""}]; + }`}let Mn=[{name:"dim_a_outer",type:"i32"},{name:"dim_b_outer",type:"i32"},{name:"dim_inner",type:"i32"},{name:"strides",type:"i32",length:2},{name:"dilations",type:"i32",length:2},{name:"filter_dims",type:"i32",length:ot.length},{name:"pads",type:"i32",length:Ht.length}];Ma(d,Mn);let Rn=Hn(i[0].dataType,1);if(Rn!=="f16"&&Rn!=="f32")throw new Error(`elemType ${Rn} is not supported.`);return` + ${Xc("uniforms.result_strides")} + ${hn.registerUniforms(Mn).declareVariables(...Yn,Wn)}; + ${Rt} + ${Oa(z,P,d,Xn.type.value,je)} + ${ce?ji(be,Ee,Rn,void 0,!z,et):Au(be,Ee,Rn,void 0,!z,et,!1,void 0,L)}`};return{name:"Conv2DTransposeMatMul",shaderCache:{hint:`${d.cacheKey};${be};${Ee};${ce}`,inputDependencies:Pn},getRunData:()=>({outputs:[{dims:x,dataType:i[0].dataType}],dispatchGroup:{x:Ve[0],y:Ve[1],z:Ve[2]},programUniforms:dn}),getShaderSource:kn}}}),Lu,ed,$l=s(()=>{Sn(),H(),bn(),Nn(),Lu=(i,d,x,C,E,A=!1,P,L,z=!1)=>{let B=z?1:2,X=z?2:3,Y=z?3:1,$=A?2:1,ae=` + fn setOutputAtIndex(flatIndex : u32, value : ${A?`vec4<${P}>`:P}) { + result[flatIndex] = ${A?`vec4<${P}>`:P}(value); + }`;C&&(ae+=` + fn getBiasByOutputCoords(coords : vec4) -> ${A?`vec4<${P}>`:P} { + return bias[coords.${z?"w":"y"}${A?"/ 4":""}]; + }`);let ce=A?4:1,le=Pt("W",d[1].dataType,d[1].dims.length,ce),Se=Pt("Dy",d[0].dataType,d[0].dims.length,ce),Ee=[Se,le];C&&Ee.push(Pt("bias",d[2].dataType,[x[Y]].length,ce));let be=pn("result",d[0].dataType,x.length,ce),Ve=`{ + let batch: u32 = ${E?"global_id.z":"workgroup_id.z"} / uniforms.result_shape[1]; + let r = ${E?"global_id.z":"workgroup_id.z"} % uniforms.result_shape[1]; + let c = ${E?"global_id.y":"workgroup_id.y"} * ${$}; + let d1: u32 = ${E?"global_id.x":"workgroup_id.x"} * 4; + + let dyCorner = vec2(i32(r), i32(c)) - vec2(uniforms.pads); + + // Convolve dy(?, ?, d2) with w(:, :, d1, d2) to compute dx(xR, xC, d1). + // ? = to be determined. : = across all values in that axis. + var dotProd: array, ${$}>; + for (var i = 0; i < ${$}; i++) { + dotProd[i] = vec4<${P}>(0.0); + } + for (var wR: u32 = 0; wR < uniforms.filter_dims[0]; wR = wR + 1) { + var dyR = (${P}(dyCorner.x) + ${P}(wR)) / ${P}(uniforms.strides.x); + let wRPerm = uniforms.filter_dims[0] - 1 - wR; + if (dyR < 0.0 || dyR >= ${P}(uniforms.Dy_shape[1]) || + fract(dyR) > 0.0 || wRPerm < 0) { + continue; + } + let idyR: u32 = u32(dyR); + + for (var wC: u32 = 0; wC < uniforms.filter_dims[1]; wC = wC + 1) { + let dyC = (${P}(dyCorner.y) + ${P}(wC)) / ${P}(uniforms.strides.y); + let dyC2 = (${P}(dyCorner.y) + 1.0 + ${P}(wC)) / ${P}(uniforms.strides.y); + let wCPerm = uniforms.filter_dims[1] - 1 - wC; + if (wCPerm < 0) { + continue; + } + var bDyCVal = true; + var bDyCVal2 = true; + if (dyC < 0.0 || dyC >= ${P}(uniforms.Dy_shape[2]) || + fract(dyC) > 0.0) { + bDyCVal = false; + } + if (dyC2 < 0.0 || dyC2 >= ${P}(uniforms.Dy_shape[2]) || + fract(dyC2) > 0.0) { + bDyCVal2 = false; + } + + let idyC: u32 = u32(dyC); + let idyC2: u32 = u32(dyC2); + if (bDyCVal && bDyCVal2) { + let d2Length = uniforms.Dy_shape[3]; + for (var d2 :u32 = 0; d2 < d2Length; d2 = d2 + 4) { + let wValue0 = ${le.get("u32(wRPerm)","u32(wCPerm)","d1","d2")}; + let wValue1 = ${le.get("u32(wRPerm)","u32(wCPerm)","d1 + 1","d2")}; + let wValue2 = ${le.get("u32(wRPerm)","u32(wCPerm)","d1 + 2","d2")}; + let wValue3 = ${le.get("u32(wRPerm)","u32(wCPerm)","d1 + 3","d2")}; + + var xValue = ${Se.get("batch","idyR","idyC","d2")}; + let tmpval = vec4<${P}>(dot(xValue, wValue0), + dot(xValue, wValue1), + dot(xValue, wValue2), + dot(xValue, wValue3)); + dotProd[0] = dotProd[0] + tmpval; + + xValue = ${Se.get("batch","idyR","idyC2","d2")}; + + dotProd[1] = dotProd[1] + vec4<${P}>(dot(xValue, wValue0), + dot(xValue, wValue1), + dot(xValue, wValue2), + dot(xValue, wValue3)); + } + } else if (bDyCVal) { + let d2Length = uniforms.Dy_shape[${Y}]; + for (var d2: u32 = 0; d2 < d2Length; d2 = d2 + 4) { + let wValue0 = ${le.get("u32(wRPerm)","u32(wCPerm)","d1","d2")}; + let wValue1 = ${le.get("u32(wRPerm)","u32(wCPerm)","d1 + 1","d2")}; + let wValue2 = ${le.get("u32(wRPerm)","u32(wCPerm)","d1 + 2","d2")}; + let wValue3 = ${le.get("u32(wRPerm)","u32(wCPerm)","d1 + 3","d2")}; + + var xValue = ${Se.get("batch","idyR","idyC","d2")}; + let tmpval = vec4<${P}>(dot(xValue, wValue0), + dot(xValue, wValue1), + dot(xValue, wValue2), + dot(xValue, wValue3)); + dotProd[0] = dotProd[0] + tmpval; + } + } else if (bDyCVal2) { + let d2Length = uniforms.Dy_shape[3]; + for (var d2: u32 = 0; d2 < d2Length; d2 = d2 + 4) { + let wValue0 = ${le.get("u32(wRPerm)","u32(wCPerm)","d1","d2")}; + let wValue1 = ${le.get("u32(wRPerm)","u32(wCPerm)","d1 + 1","d2")}; + let wValue2 = ${le.get("u32(wRPerm)","u32(wCPerm)","d1 + 2","d2")}; + let wValue3 = ${le.get("u32(wRPerm)","u32(wCPerm)","d1 + 3","d2")}; + + var xValue = ${Se.get("batch","idyR","idyC2","d2")}; + let tmpval = vec4<${P}>(dot(xValue, wValue0), + dot(xValue, wValue1), + dot(xValue, wValue2), + dot(xValue, wValue3)); + dotProd[1] = dotProd[1] + tmpval; + } + } + } + } + + for (var i: u32 = 0; i < ${$}; i = i + 1) { + let value = dotProd[i] + ${C?"bias[c+i]":`vec4<${P}>(0.0)`}; + ${be.set("batch","r","c + i","d1","value")}; + } + }`,je=` + let outputIndices = ${be.offsetToIndices("global_idx")}; + let batch = ${be.indicesGet("outputIndices",0)}; + let d1 = ${be.indicesGet("outputIndices",Y)}; + let r = ${be.indicesGet("outputIndices",B)}; + let c = ${be.indicesGet("outputIndices",X)}; + let dyCorner = vec2(i32(r), i32(c)) - uniforms.pads; + let dyRCorner = dyCorner.x; + let dyCCorner = dyCorner.y; + let groupId = d1 / uniforms.output_channels_per_group; + let wOutChannel = d1 - groupId * uniforms.output_channels_per_group; + // Convolve dy(?, ?, d2) with w(:, :, d1, d2) to compute dx(xR, xC, d1). + // ? = to be determined. : = across all values in that axis. + var dotProd = ${P}(0.0); + for (var wR: u32 = 0; wR < uniforms.effective_filter_dims.x; wR = wR + 1) { + if (wR % uniforms.dilations.x != 0) { + continue; + } + let dyR = (${P}(dyRCorner) + ${P}(wR)) / ${P}(uniforms.strides[0]); + let wRPerm = uniforms.filter_dims.x - 1 - wR / uniforms.dilations.x; + if (dyR < 0.0 || dyR >= ${P}(uniforms.Dy_shape[${B}]) || fract(dyR) > 0.0 || + wRPerm < 0) { + continue; + } + let idyR: u32 = u32(dyR); + + for (var wC: u32 = 0; wC < uniforms.effective_filter_dims.y; wC = wC + 1) { + if (wC % uniforms.dilations.y != 0) { + continue; + } + let dyC = (${P}(dyCCorner) + ${P}(wC)) / ${P}(uniforms.strides.y); + let wCPerm = uniforms.filter_dims.y - 1 - wC / uniforms.dilations.y; + if (dyC < 0.0 || dyC >= ${P}(uniforms.Dy_shape[${X}]) || + fract(dyC) > 0.0 || wCPerm < 0) { + continue; + } + let idyC: u32 = u32(dyC); + var inputChannel = groupId * uniforms.input_channels_per_group; + for (var d2: u32 = 0; d2 < uniforms.input_channels_per_group; d2 = d2 + 1) { + let xValue = ${z?Se.get("batch","idyR","idyC","inputChannel"):Se.get("batch","inputChannel","idyR","idyC")}; + let wValue = ${le.get("inputChannel","wOutChannel","u32(wRPerm)","u32(wCPerm)")}; + dotProd = dotProd + xValue * wValue; + inputChannel = inputChannel + 1; + } + } + } + let value = dotProd + ${C?"bias[d1]":`${P}(0.0)`}; + ${be.setByOffset("global_idx","value")}; + `;return` + ${i.registerUniforms(L).declareVariables(...Ee,be)} + ${ae} + + ${i.mainStart()} + ${i.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")}; + ${A?Ve:je}}`},ed=(i,d,x)=>{let C=i.length>2,E=d.outputShape,A=dt.size(E),P=[Math.ceil(A/64),1,1];Ke("verbose",()=>`[conv2d_backprop_webgpu] dispatch = ${P}`);let L=d.format==="NHWC",z=["rank","rank"],B=[d.strides[0],d.strides[1]],X=[d.kernelShape[L?1:2],d.kernelShape[L?2:3]],Y=[d.dilations[0],d.dilations[1]],$=[X[0]+(d.dilations[0]<=1?0:(d.kernelShape[L?1:2]-1)*(d.dilations[0]-1)),X[1]+(d.dilations[1]<=1?0:(d.kernelShape[L?2:3]-1)*(d.dilations[1]-1))],ae=[$[0]-1-Math.floor((d.pads[0]+d.pads[2])/2),$[1]-1-Math.floor(d.pads[1]+d.pads[3])/2],ce=!1,le=d.group,Se=i[1].dims,Ee=Se[0]/le,be=Se[1],Ve=[{type:12,data:A},{type:12,data:B},{type:12,data:X},{type:12,data:Y},{type:12,data:$},{type:6,data:ae},{type:12,data:Ee},{type:12,data:be},...Ot(i[0].dims,i[1].dims)];C&&(Ve.push(...Ot(i[2].dims)),z.push("rank")),Ve.push(...Ot(E));let je=P[1]===1&&P[2]===1,et=_t=>{let ot=[{name:"output_size",type:"u32"},{name:"strides",type:"u32",length:B.length},{name:"filter_dims",type:"u32",length:X.length},{name:"dilations",type:"u32",length:X.length},{name:"effective_filter_dims",type:"u32",length:$.length},{name:"pads",type:"i32",length:ae.length},{name:"input_channels_per_group",type:"u32"},{name:"output_channels_per_group",type:"u32"}],$t=Hn(i[0].dataType);return`${Lu(_t,i,E,C,je,ce,$t,ot,L)}`};return{name:"ConvTranspose2D",shaderCache:{hint:`${d.cacheKey};`,inputDependencies:z},getRunData:()=>({dispatchGroup:{x:P[0],y:P[1],z:P[2]},outputs:[{dims:x?x(E):E,dataType:i[0].dataType}],programUniforms:Ve}),getShaderSource:et}}}),th,Ru,nh,ro,td,zu,ap,Uo,rh,ih,nd=s(()=>{Oi(),$l(),Zs(),Wr(),th=(i,d,x,C,E,A)=>(i-1)*d+x+(C-1)*E+1-A,Ru=(i,d,x,C,E)=>{let A=Math.floor(i/2);d==="SAME_UPPER"?(x[C]=A,x[E]=i-A):d==="SAME_LOWER"&&(x[C]=i-A,x[E]=A)},nh=(i,d,x,C,E,A,P,L,z,B)=>{let X=i.length-2,Y=B.length===0;z.length{let x=i.kernelShape.slice();if(i.kernelShape.length===0||i.kernelShape.reduce((Y,$)=>Y*$,1)===0){x.length=0;for(let Y=2;YY+$,0)===0){let Y=d[0].dims.length-2;z=new Array(Y).fill(1)}let B=i.strides.slice();if(B.reduce((Y,$)=>Y+$,0)===0){let Y=d[0].dims.length-2;B=new Array(Y).fill(1)}nh(L,x,z,i.autoPad,i.group,E,B,C,P,A);let X=Object.assign({},i);return Object.assign(X,{kernelShape:x,pads:E,outputPadding:P,outputShape:A,dilations:z,strides:B}),X},td=i=>{let d=vs(i),x=i.format,C=["NOTSET","VALID","SAME_UPPER","SAME_LOWER"][typeof i.autoPad>"u"?0:i.autoPad],E=i.dilations,A=i.group,P=i.kernelShape,L=i.pads,z=i.strides,B=i.wIsConst(),X=i.outputPadding,Y=i.outputShape;return{autoPad:C,format:x,dilations:E,group:A,kernelShape:P,outputPadding:X,outputShape:Y,pads:L,strides:z,wIsConst:B,...d,cacheKey:`${i.format};${d.activation};`}},zu=(i,d)=>{if(!i||i.length!==2&&i.length!==3)throw new Error("Conv requires 2 or 3 inputs");if(i[0].dims.length!==4&&i[0].dims.length!==3)throw new Error("currently only support 2-dimensional conv");if(i[0].dims.length!==i[1].dims.length)throw new Error("filter does not have same dimension as input");let x=i[0].dims[d.format==="NHWC"?i[0].dims.length-1:1],C=i[1].dims[0];if(x!==C)throw new Error("FILTER_IN_CHANNEL should be equal to DATA_CHANNEL");let E=i[1].dims[1]*d.group;if(i.length===3&&(i[2].dims.length!==1||i[2].dims[0]!==E))throw new Error("invalid bias");let A=i[0].dims.length-2;if(d.dilations.reduce((P,L)=>P+L,0)>0&&d.dilations.length!==A)throw new Error(`dilations should be ${A}D`);if(d.strides.reduce((P,L)=>P+L,0)>0&&d.strides.length!==A)throw new Error(`strides should be ${A}D`);if(d.pads.reduce((P,L)=>P+L,0)>0&&d.pads.length!==A*2)throw new Error(`pads should be ${A*2}D`);if(d.outputPadding.length!==A&&d.outputPadding.length!==0)throw new Error(`output_padding should be ${A}D`);if(d.kernelShape.reduce((P,L)=>P+L,0)>0&&d.kernelShape.length!==0&&d.kernelShape.length!==i[1].dims.length-2)throw new Error("invalid kernel shape");if(d.outputShape.length!==0&&d.outputShape.length!==i[0].dims.length-2)throw new Error("invalid output shape")},ap=[2,3,1,0],Uo=(i,d,x)=>{var Ve;let C=ro(x,d),E=x.format==="NHWC",A=C.outputShape,P=A[E?3:1],L=d[0].dims[E?3:1];if(C.group!==1||P===1&&L===1){i.compute(ed(d,C));return}let z=A[E?1:2],B=A[E?2:3],X=d[1].dims[2],Y=d[1].dims[3],$=E?z*B:P,ae=E?P:z*B,ce=X*Y*L,le=!0,Se=(Ve=i.kernelCustomData.wT)!=null?Ve:i.compute(zi(d[1],ap),{inputs:[1],outputs:[x.wIsConst?-2:-1]})[0];x.wIsConst&&!i.kernelCustomData.wT&&(i.kernelCustomData.wT=Se);let Ee=[d[0],Se],be=d.length===3;be&&(!E&&d[2].dims.length===1?Ee.push(d[2].reshape([d[2].dims[0],1,1])):Ee.push(d[2])),i.compute(eh(Ee,C,A,$,ae,ce,be,le),{inputs:Ee})},rh=(i,d)=>{let x=d.format==="NHWC",C=[i.inputs[0].reshape(x?[i.inputs[0].dims[0],1,i.inputs[0].dims[1],i.inputs[0].dims[2]]:[i.inputs[0].dims[0],i.inputs[0].dims[1],1,i.inputs[0].dims[2]]),i.inputs[1].reshape([i.inputs[1].dims[0],i.inputs[1].dims[1],1,i.inputs[1].dims[2]])];i.inputs.length===3&&C.push(i.inputs[2]);let E=d.kernelShape;(E.length===0||E[0]===0)&&(E=[i.inputs[1].dims[2]]);let A=d.dilations;(A.length===0||A[0]===0)&&(A=[1]);let P=d.strides;(P.length===0||P[0]===0)&&(P=[1]);let L=d.pads;L.length===0&&(L=[0,0]),L=[0,L[0],0,L[1]],P=[1].concat(P),A=[1].concat(A),E=[1].concat(E);let z=ro({...d,pads:L,strides:P,dilations:A,kernelShape:E},C);i.compute(ed(C,z,B=>x?[B[0],B[2],B[3]]:[B[0],B[1],B[3]]))},ih=(i,d)=>{zu(i.inputs,d),i.inputs[0].dims.length===3?rh(i,d):Uo(i,i.inputs,d)}}),rd,id,sh,op=s(()=>{Sn(),bn(),ir(),Nn(),rd=(i,d,x,C)=>{let E=dt.size(d),A=d.length,P=Pt("input",i,A),L=pn("output",i,A),z=x.dataType===6?x.getInt32Array()[0]:Number(x.getBigInt64Array()[0]),B=dt.normalizeAxis(z,A),X=Y=>{let $=` i32(${P.indicesGet("inputIndices","uniforms.axis")}) `,ae=fn("uniforms.input_shape","uniforms.axis",A),ce=C.reverse?$+(C.exclusive?" + 1":""):"0",le=C.reverse?ae:$+(C.exclusive?"":" + 1");return` + ${Y.registerUniform("outputSize","u32").registerUniform("axis","u32").declareVariables(P,L)} + ${Y.mainStart()} + ${Y.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")} + var inputIndices = ${L.offsetToIndices("global_idx")}; + var sum = ${L.type.value}(0); + let first : i32 = ${ce}; + let last : i32 = ${le}; + for (var i : i32 = first; i < last; i++) { + ${P.indicesSet("inputIndices","uniforms.axis","u32(i)")}; + sum = sum + ${P.getByIndices("inputIndices")}; + } + ${L.setByOffset("global_idx","sum")}; + }`};return{name:"CumSum",shaderCache:{hint:C.cacheKey,inputDependencies:["rank"]},getRunData:()=>({outputs:[{dims:d,dataType:i}],dispatchGroup:{x:Math.ceil(E/64)},programUniforms:[{type:12,data:E},{type:12,data:B},...Ot(d,d)]}),getShaderSource:X}},id=(i,d)=>{let x=i.inputs[0].dims,C=i.inputs[0].dataType,E=i.inputs[1];i.compute(rd(C,x,E,d),{inputs:[0]})},sh=i=>{let d=i.exclusive===1,x=i.reverse===1;return Fn({exclusive:d,reverse:x})}}),Bu,Nu,ah,Dl,sd,oh=s(()=>{Sn(),bn(),ir(),Nn(),Bu=i=>{if(!i||i.length!==1)throw new Error("DepthToSpace requires 1 input.");if(i[0].dims.length!==4)throw new Error("DepthToSpace requires 4D input.")},Nu=(i,d,x,C)=>{let E=[];E.push(`fn perm(i: ${C.type.indices}) -> ${x.type.indices} { + var a: ${x.type.indices};`);for(let A=0;A{let x,C,E,A,P,L,z=d.format==="NHWC",B=d.blocksize,X=d.mode==="DCR";z?([x,C,E,A]=i.dims,P=X?[x,C,E,B,B,A/B**2]:[x,C,E,A/B**2,B,B],L=X?[0,1,3,2,4,5]:[0,1,4,2,5,3]):([x,C,E,A]=[i.dims[0],i.dims[2],i.dims[3],i.dims[1]],P=X?[x,B,B,A/B**2,C,E]:[x,A/B**2,B,B,C,E],L=X?[0,3,4,1,5,2]:[0,1,4,2,5,3]);let Y=i.reshape(P),$=Y.dims.length,ae=i.dataType,ce=Pt("a",ae,$),le=pn("output",ae,$),Se=Ee=>` + ${Ee.registerUniform("output_size","u32").declareVariables(ce,le)} + + ${Nu(L,$,ce,le)} + + ${Ee.mainStart()} + ${Ee.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + + let indices = ${le.offsetToIndices("global_idx")}; + let aIndices = perm(indices); + + ${le.setByOffset("global_idx",ce.getByIndices("aIndices"))} + }`;return{name:"DepthToSpace",shaderCache:{hint:`${i.dims};${d.blocksize};${d.mode}`,inputDependencies:["rank"]},getRunData:Ee=>{let be=z?[x,C*B,E*B,A/B**2]:[x,A/B**2,C*B,E*B],Ve=dt.size(be),je=Y.dims,et=dt.sortBasedOnPerm(je,L);return{outputs:[{dims:be,dataType:Ee[0].dataType}],dispatchGroup:{x:Math.ceil(Ve/64)},programUniforms:[{type:12,data:Ve},...Ot(je,et)]}},getShaderSource:Se}},Dl=(i,d)=>{Bu(i.inputs),i.compute(ah(i.inputs[0],d))},sd=i=>Fn({blocksize:i.blocksize,mode:i.mode,format:i.format})}),io,Aa,ad,od,ld,ud,Ll,lh,ju,cd,Rl,lp=s(()=>{Sn(),bn(),ir(),Nn(),io="[a-zA-Z]|\\.\\.\\.",Aa="("+io+")+",ad="^"+Aa+"$",od="("+Aa+",)*"+Aa,ld="^"+od+"$",ud=class{constructor(i=-1){this.symbolToIndices=new Map,this.inputIndex=i}addSymbol(i,d){let x=this.symbolToIndices.get(i);x===void 0?x=[d]:x.push(d),this.symbolToIndices.set(i,x)}},Ll=class{constructor(i,d){var E;this.equation=d,this.hasEllipsis=!1,this.symbolToInfo=new Map,this.lhs=new Array,this.outputDims=[];let[x,C]=d.includes("->")?d.split("->",2):[d,""];if(!x.match(RegExp(ld)))throw new Error("Invalid LHS term");if(x.split(",").forEach((A,P)=>{let L=i[P].dims.slice();if(!A.match(RegExp(ad)))throw new Error("Invalid LHS term");let z=this.processTerm(A,!0,L,P);this.lhs.push(z)}),C==="")C+=[...this.symbolToInfo.entries()].filter(([A,P])=>P.count===1||A==="...").map(([A])=>A).join("");else if(!C.match(RegExp(Aa)))throw new Error("Invalid RHS");(E=C.match(RegExp(io,"g")))==null||E.forEach(A=>{if(A==="...")this.outputDims=this.outputDims.concat(this.ellipsisDims);else{let P=this.symbolToInfo.get(A);if(P===void 0)throw new Error("Invalid RHS symbol");this.outputDims.push(P.dimValue)}}),this.rhs=this.processTerm(C,!1,this.outputDims)}addSymbol(i,d,x){let C=this.symbolToInfo.get(i);if(C!==void 0){if(C.dimValue!==d&&C.count!==1)throw new Error("Dimension mismatch");C.count++,C.inputIndices.push(x)}else C={count:1,dimValue:d,inputIndices:[x]};this.symbolToInfo.set(i,C)}processTerm(i,d,x,C=-1){let E=x.length,A=!1,P=[],L=0;if(!i.match(RegExp(ad))&&!d&&i!=="")throw new Error("Invalid LHS term");let z=i.match(RegExp(io,"g")),B=new ud(C);return z==null||z.forEach((X,Y)=>{if(X==="..."){if(A)throw new Error("Only one ellipsis is allowed per input term");A=!0;let $=E-z.length+1;if($<0)throw new Error("Ellipsis out of bounds");if(P=x.slice(L,L+$),this.hasEllipsis){if(this.ellipsisDims.length!==P.length||this.ellipsisDims.toString()!==P.toString())throw new Error("Ellipsis dimensions mismatch")}else if(d)this.hasEllipsis=!0,this.ellipsisDims=P;else throw new Error("Ellipsis must be specified in the LHS");for(let ae=0;aei+"_max",ju=(i,d,x,C)=>{let E=i.map(B=>B.length).map((B,X)=>Pt(`input${X}`,d,B)),A=dt.size(C),P=pn("output",d,C.length),L=[...x.symbolToInfo.keys()].filter(B=>!x.rhs.symbolToIndices.has(B)),z=B=>{let X=[],Y="var prod = 1.0;",$="var sum = 0.0;",ae="sum += prod;",ce=[],le=[],Se=[],Ee=[],be=x.symbolToInfo.size===x.rhs.symbolToIndices.size;x.symbolToInfo.forEach((je,et)=>{var _t;if(x.rhs.symbolToIndices.has(et)){let ot=(_t=x.rhs.symbolToIndices.get(et))==null?void 0:_t[0];ot!==void 0&&x.lhs.forEach(($t,Ht)=>{if(je.inputIndices.includes(Ht)){let dn=$t.symbolToIndices.get(et);if(dn===void 0)throw new Error("Invalid symbol error");dn.forEach(Pn=>{X.push(`${E[Ht].indicesSet(`input${Ht}Indices`,Pn,P.indicesGet("outputIndices",ot))}`)})}})}else x.lhs.forEach((ot,$t)=>{if(je.inputIndices.includes($t)){let Ht=ot.symbolToIndices.get(et);if(Ht===void 0)throw new Error("Invalid symbol error");Ht.forEach(dn=>{ce.push(`${E[$t].indicesSet(`input${$t}Indices`,dn,`${et}`)}`)}),Ee.push(`prod *= ${E[$t].getByIndices(`input${$t}Indices`)};`)}}),le.push(`for(var ${et}: u32 = 0; ${et} < uniforms.${lh(et)}; ${et}++) {`),Se.push("}")});let Ve=be?[...X,`let sum = ${E.map((je,et)=>je.getByIndices(`input${et}Indices`)).join(" * ")};`]:[...X,$,...le,...ce,Y,...Ee,ae,...Se];return` + ${B.registerUniforms(L.map(je=>({name:`${lh(je)}`,type:"u32"}))).registerUniform("outputSize","u32").declareVariables(...E,P)} + + ${B.mainStart()} + ${B.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")} + var outputIndices = ${P.offsetToIndices("global_idx")}; + ${E.map((je,et)=>`var input${et}Indices: ${E[et].type.indices};`).join(` +`)} + ${Ve.join(` +`)}; + ${P.setByOffset("global_idx","sum")}; + }`};return{name:"Einsum",shaderCache:{hint:x.equation,inputDependencies:i.map(()=>"rank")},getRunData:()=>{let B=L.filter(Y=>x.symbolToInfo.has(Y)).map(Y=>{var $;return{type:12,data:(($=x.symbolToInfo.get(Y))==null?void 0:$.dimValue)||0}});B.push({type:12,data:A});let X=i.map((Y,$)=>[...Ot(Y)]).reduce((Y,$)=>Y.concat($),B);return X.push(...Ot(C)),{outputs:[{dims:C,dataType:d}],dispatchGroup:{x:Math.ceil(A/64)},programUniforms:X}},getShaderSource:z}},cd=(i,d)=>{let x=new Ll(i.inputs,d.equation),C=x.outputDims,E=i.inputs.map((A,P)=>A.dims);i.compute(ju(E,i.inputs[0].dataType,x,C))},Rl=i=>{let d=i.equation.replace(/\s+/g,"");return Fn({equation:d})}}),Wu,Un,uh,ch,so,up=s(()=>{Sn(),bn(),Nn(),Wu=i=>{if(!i||i.length!==2)throw new Error("Expand requires 2 input.");let d=i[0].dims,x=Array.from(i[1].getBigInt64Array(),Number),C=x.length{let x=i.length-d.length,C=[];for(let E=0;Ei.length>d.length?Un(i,d):Un(d,i),ch=i=>{let d=i[0].dims,x=Array.from(i[1].getBigInt64Array(),Number),C=uh(d,x),E=i[0].dataType,A=E===9?4:1,P=Math.ceil(dt.size(C)/A),L=B=>{let X=Pt("input",E,d.length,A),Y=pn("output",E,C.length,A),$;if(E===9){let ae=(ce,le,Se="")=>` + let outputIndices${le} = ${Y.offsetToIndices(`outputOffset + ${le}u`)}; + let offset${le} = ${X.broadcastedIndicesToOffset(`outputIndices${le}`,Y)}; + let index${le} = offset${le} / 4u; + let component${le} = offset${le} % 4u; + ${ce}[${le}] = ${Se}(${X.getByOffset(`index${le}`)}[component${le}]); + `;$=` + let outputOffset = global_idx * ${A}; + var data = vec4(0); + ${ae("data",0,"u32")} + ${ae("data",1,"u32")} + ${ae("data",2,"u32")} + ${ae("data",3,"u32")} + ${Y.setByOffset("global_idx","data")} + }`}else $=` + let outputIndices = ${Y.offsetToIndices("global_idx")}; + let inputOffset = ${X.broadcastedIndicesToOffset("outputIndices",Y)}; + ${Y.setByOffset("global_idx",X.getByOffset("inputOffset"))} + }`;return` + ${B.registerUniform("vec_size","u32").declareVariables(X,Y)} + ${B.mainStart()} + ${B.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.vec_size")} + ${$}`},z=[{type:12,data:P},...Ot(d,C)];return{name:"Expand",shaderCache:{hint:`${C.length}`,inputDependencies:["rank"]},getShaderSource:L,getRunData:()=>({outputs:[{dims:C,dataType:i[0].dataType}],dispatchGroup:{x:Math.ceil(P/64)},programUniforms:z})}},so=i=>{Wu(i.inputs),i.compute(ch(i.inputs),{inputs:[0]})}}),cp,dd,Zi=s(()=>{Sn(),bn(),Nn(),xa(),cp=i=>{let d=i[0].dataType,x=dt.size(i[0].dims),C=dt.size(i[1].dims),E=C%4===0,A=P=>{let L=Pt("x",d,[1],4),z=Pt("bias",d,[1],4),B=pn("y",d,[1],4),X=[{name:"output_vec_size",type:"u32"},{name:"bias_size",type:"u32"}],Y=ae=>` + let bias${ae}_offset: u32 = (global_idx * 4 + ${ae}) % uniforms.bias_size; + let bias${ae} = ${z.getByOffset(`bias${ae}_offset / 4`)}[bias${ae}_offset % 4];`,$=E?` + let bias = ${z.getByOffset("global_idx % (uniforms.bias_size / 4)")};`:`${Y(0)}${Y(1)}${Y(2)}${Y(3)} + let bias = ${L.type.value}(bias0, bias1, bias2, bias3);`;return`${P.registerUniforms(X).declareVariables(L,z,B)} + + ${Mu(yr(d))} + + ${P.mainStart(wi)} + ${P.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_vec_size")} + + let x = ${L.getByOffset("global_idx")}; + ${$} + let x_in = x + bias; + ${B.setByOffset("global_idx",Ml("x_in"))} + }`};return{name:"FastGeluWithBias",shaderCache:{hint:`${E}`,inputDependencies:["type","type"]},getShaderSource:A,getRunData:P=>({outputs:[{dims:P[0].dims,dataType:P[0].dataType}],programUniforms:[{type:12,data:Math.ceil(x/4)},{type:12,data:C}],dispatchGroup:{x:Math.ceil(x/wi/4)}})}},dd=i=>{i.inputs.length<2||dt.size(i.inputs[1].dims)===0?zo(i):i.compute(cp(i.inputs))}}),dh,zl,Bl,fd,fh=s(()=>{Sn(),bn(),ir(),Nn(),dh=i=>{if(!i||i.length!==2)throw new Error("Gather requires 2 inputs.")},zl=(i,d)=>{let x=i[0].dims,C=i[1].dims,E=x.length,A=dt.normalizeAxis(d.axis,E),P=x.slice(0);P.splice(A,1,...C);let L=x[A],z=i[0].dataType===9?4:1,B=Math.ceil(dt.size(P)/z),X=[{type:12,data:B},{type:6,data:L},{type:12,data:A},...Ot(i[0].dims,i[1].dims,P)],Y=$=>{let ae=Pt("data",i[0].dataType,i[0].dims.length,z),ce=Pt("inputIndices",i[1].dataType,i[1].dims.length),le=pn("output",i[0].dataType,P.length,z),Se=be=>{let Ve=C.length,je=`var indicesIndices${be} = ${ce.type.indices}(0);`;for(let et=0;et1?`indicesIndices${be}[${et}]`:`indicesIndices${be}`} = ${P.length>1?`outputIndices${be}[uniforms.axis + ${et}]`:`outputIndices${be}`};`;je+=` + var idx${be} = ${ce.getByIndices(`indicesIndices${be}`)}; + if (idx${be} < 0) { + idx${be} = idx${be} + uniforms.axisDimLimit; + } + var dataIndices${be} : ${ae.type.indices}; + `;for(let et=0,_t=0;et1?`dataIndices${be}[${et}]`:`dataIndices${be}`} = u32(idx${be});`,_t+=Ve):(je+=`${E>1?`dataIndices${be}[${et}]`:`dataIndices${be}`} = ${P.length>1?`outputIndices${be}[${_t}]`:`outputIndices${be}`};`,_t++);return je},Ee;if(i[0].dataType===9){let be=(Ve,je,et="")=>` + let outputIndices${je} = ${le.offsetToIndices(`outputOffset + ${je}u`)}; + ${Se(je)}; + let offset${je} = ${ae.indicesToOffset(`dataIndices${je}`)}; + let index${je} = offset${je} / 4u; + let component${je} = offset${je} % 4u; + ${Ve}[${je}] = ${et}(${ae.getByOffset(`index${je}`)}[component${je}]); + `;Ee=` + let outputOffset = global_idx * ${z}; + var value = vec4(0); + ${be("value",0,"u32")} + ${be("value",1,"u32")} + ${be("value",2,"u32")} + ${be("value",3,"u32")} + ${le.setByOffset("global_idx","value")} + `}else Ee=` + let outputIndices = ${le.offsetToIndices("global_idx")}; + ${Se("")}; + let value = ${ae.getByIndices("dataIndices")}; + ${le.setByOffset("global_idx","value")}; + `;return` + ${$.registerUniform("outputSize","u32").registerUniform("axisDimLimit","i32").registerUniform("axis","u32").declareVariables(ae,ce,le)} + ${$.mainStart()} + ${$.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")} + ${Ee} + }`};return{name:"Gather",shaderCache:{hint:d.cacheKey,inputDependencies:["rank","rank"]},getRunData:()=>({outputs:[{dims:P,dataType:i[0].dataType}],dispatchGroup:{x:Math.ceil(B/64)},programUniforms:X}),getShaderSource:Y}},Bl=i=>Fn({axis:i.axis}),fd=(i,d)=>{let x=i.inputs;dh(x),i.compute(zl(i.inputs,d))}}),Ai,ea,Vu,Uu,Gu=s(()=>{Sn(),bn(),ir(),Nn(),Ai=(i,d)=>{if(i.length<3||i.length>4)throw new Error("GatherBlockQuantized requires 3 or 4 inputs.");let x=dt.normalizeAxis(d.quantizeAxis,i[0].dims.length),C=d.blockSize,E=i[0],A=i[2],P=i.length===4?i[3]:void 0;if(A.dims.length!==E.dims.length||!E.dims.map((L,z)=>z===x?Math.ceil(L/C)===A.dims[z]:L===A.dims[z]).reduce((L,z)=>L&&z,!0))throw new Error("Scales must have the same rank as the input tensor and the dims should match except on gatherAxis.");if(P){if(P.dataType!==E.dataType)throw new Error("Zero point must have the same data type as the input tensor.");if(P.dims.length!==A.dims.length||!P.dims.map((L,z)=>L===A.dims[z]).reduce((L,z)=>L&&z,!0))throw new Error("Zero point must have the same rank as the input tensor and the dims should match except on quantizeAxis.")}},ea=(i,d)=>{let x=i[0].dims,C=i[1].dims,E=x.length,A=dt.normalizeAxis(d.gatherAxis,E),P=dt.normalizeAxis(d.quantizeAxis,E),L=x.slice(0);L.splice(A,1,...C);let z=dt.size(L),B=i[2].dataType,X=i[0].dataType===22,Y=[{type:12,data:z},{type:12,data:P},{type:12,data:A},{type:12,data:d.blockSize},...Ot(...i.map((ae,ce)=>ae.dims),L)],$=ae=>{let ce=Pt("data",i[0].dataType,i[0].dims.length),le=Pt("inputIndices",i[1].dataType,i[1].dims.length),Se=Pt("scales",i[2].dataType,i[2].dims.length),Ee=i.length>3?Pt("zeroPoint",i[3].dataType,i[3].dims.length):void 0,be=pn("output",B,L.length),Ve=[ce,le,Se];Ee&&Ve.push(Ee);let je=[{name:"output_size",type:"u32"},{name:"quantize_axis",type:"u32"},{name:"gather_axis",type:"u32"},{name:"block_size",type:"u32"}];return` + ${ae.registerUniforms(je).declareVariables(...Ve,be)} + ${ae.mainStart()} + let output_indices = ${be.offsetToIndices("global_idx")}; + var indices_indices = ${le.type.indices}(0); + ${(()=>C.length>1?` + for (var i: u32 = 0; i < ${C.length}; i++) { + let index = ${be.indicesGet("output_indices","uniforms.gather_axis + i")}; + ${le.indicesSet("indices_indices","i","index")}; + }`:`indices_indices = ${be.indicesGet("output_indices","uniforms.gather_axis")};`)()}; + var data_indices = ${ce.type.indices}(0); + for (var i: u32 = 0; i < uniforms.gather_axis; i++) { + let index = ${be.indicesGet("output_indices","i")}; + ${ce.indicesSet("data_indices","i","index")}; + } + var index_from_indices = ${le.getByIndices("indices_indices")}; + if (index_from_indices < 0) { + index_from_indices += ${x[A]}; + } + ${ce.indicesSet("data_indices","uniforms.gather_axis","u32(index_from_indices)")}; + for (var i = uniforms.gather_axis + 1; i < ${L.length}; i++) { + let index = ${be.indicesGet("output_indices",`i + ${C.length} - 1`)}; + ${ce.indicesSet("data_indices","i","index")}; + } + let data_offset = ${ce.indicesToOffset("data_indices")}; + let data_index = data_offset % 8; + // Convert 4-bit packed data to 8-bit packed data. + let packed_4bit_quantized_data = ${ce.getByOffset("data_offset / 8")}; + let packed_8bit_quantized_data = (packed_4bit_quantized_data >> (4 * (data_index % 2))) & 0x0f0f0f0f; + let quantized_data_vec = ${X?"unpack4xI8":"unpack4xU8"}(u32(packed_8bit_quantized_data)); + let quantized_data = quantized_data_vec[data_index / 2]; + var scale_indices = data_indices; + let quantize_axis_index = ${Se.indicesGet("data_indices","uniforms.quantize_axis")} / uniforms.block_size; + ${Se.indicesSet("scale_indices","uniforms.quantize_axis","quantize_axis_index")}; + var scale = ${Se.getByIndices("scale_indices")}; + ${(()=>Ee?` + let zero_point_indices = scale_indices; + let zero_point_offset = ${Ee.indicesToOffset("zero_point_indices")}; + let zero_point_index = zero_point_offset % 8; + let packed_4bit_zero_points = ${Ee.getByOffset("zero_point_offset / 8")}; + let packed_8bit_zero_points = (packed_4bit_zero_points >> (4 * (zero_point_index % 2))) & 0x0f0f0f0f; + let zero_point_vec = ${X?"unpack4xI8":"unpack4xU8"}(u32(packed_8bit_zero_points)); + let zero_point = zero_point_vec[zero_point_index / 2];`:"var zero_point = 0")()}; + let dequantized_data = ${yr(B)}(quantized_data - zero_point) * scale; + ${be.setByOffset("global_idx","dequantized_data")}; + }`};return{name:"GatherBlockQuantized",shaderCache:{hint:`${d.cacheKey};${i.filter((ae,ce)=>ce!==1).map(ae=>ae.dims.join("_")).join(";")}`,inputDependencies:Array.from({length:i.length},(ae,ce)=>"rank")},getRunData:()=>({outputs:[{dims:L,dataType:B}],dispatchGroup:{x:Math.ceil(z/64)},programUniforms:Y}),getShaderSource:$}},Vu=(i,d)=>{let x=i.inputs;Ai(x,d),i.compute(ea(i.inputs,d))},Uu=i=>Fn({blockSize:i.blockSize,gatherAxis:i.gatherAxis,quantizeAxis:i.quantizeAxis})}),hd,Hu,pd,dr,hh=s(()=>{Sn(),bn(),ir(),Nn(),hd=i=>{if(!i||i.length!==2)throw new Error("GatherElements requires 2 inputs.");if(i[0].dims.length<1)throw new Error("GatherElements requires that the data input be rank >= 1.");if(i[0].dims.length!==i[1].dims.length)throw new Error(`GatherElements requires that the data input and + indices input tensors be of same rank.`)},Hu=(i,d)=>{let x=i[0].dims,C=i[0].dataType,E=x.length,A=i[1].dims,P=i[1].dataType,L=dt.normalizeAxis(d.axis,E),z=x[L],B=A.slice(0),X=dt.size(B),Y=Pt("input",C,E),$=Pt("indicesInput",P,A.length),ae=pn("output",C,B.length),ce=[{type:12,data:X},{type:6,data:z},{type:12,data:L}];return ce.push(...Ot(x,A,B)),{name:"GatherElements",shaderCache:{inputDependencies:["rank","rank"]},getRunData:()=>({outputs:[{dims:B,dataType:i[0].dataType}],dispatchGroup:{x:Math.ceil(X/64)},programUniforms:ce}),getShaderSource:le=>` + ${le.registerUniform("outputSize","u32").registerUniform("axisDimLimit","i32").registerUniform("axis","u32").declareVariables(Y,$,ae)} + ${le.mainStart()} + ${le.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")} + + let outputIndices = ${ae.offsetToIndices("global_idx")}; + + var idx = ${$.getByOffset("global_idx")}; + if (idx < 0) { + idx = idx + uniforms.axisDimLimit; + } + var inputIndices = ${Y.type.indices}(outputIndices); + ${Y.indicesSet("inputIndices","uniforms.axis","u32(idx)")}; + let value = ${Y.getByIndices("inputIndices")}; + + ${ae.setByOffset("global_idx","value")}; + }`}},pd=i=>Fn({axis:i.axis}),dr=(i,d)=>{let x=i.inputs;hd(x),i.compute(Hu(i.inputs,d))}}),Ia,dp,Ls,md,ph=s(()=>{Sn(),bn(),Nn(),Ia=i=>{if(!i)throw new Error("Input is missing");if(i.length<2||i.length>3)throw new Error("Invaid input number.");if(i.length===3&&i[2].dims.length>2)throw new Error("Invalid input shape of C");if(i[0].dataType!==i[1].dataType||i.length===3&&i[0].dataType!==i[2].dataType)throw new Error("Input types are mismatched")},dp=(i,d)=>{let x=i[0].dims.slice(),C=i[1].dims.slice(),[E,A,P]=mi.getShapeOfGemmResult(x,d.transA,C,d.transB,i.length===3?i[2].dims:void 0),L=[E,A];if(!L)throw new Error("Can't use gemm on the given tensors");let z=dt.size(L),B=[{type:12,data:z},{type:12,data:E},{type:12,data:A},{type:12,data:P},{type:1,data:d.alpha},{type:1,data:d.beta}],X=["type","type"];i.length===3&&(B.push(...Ot(i[2].dims)),X.push("rank")),B.push(...Ot(L));let Y=$=>{let ae="";d.transA&&d.transB?ae="value += a[k * uniforms.M + m] * b[n * uniforms.K + k];":d.transA&&!d.transB?ae="value += a[k * uniforms.M + m] * b[k * uniforms.N + n];":!d.transA&&d.transB?ae="value += a[m * uniforms.K + k] * b[n * uniforms.K + k];":!d.transA&&!d.transB&&(ae="value += a[m * uniforms.K + k] * b[k * uniforms.N + n];");let ce=d.alpha===1?"":"value *= uniforms.alpha;",le=Pt("a",i[0].dataType,i[0].dims),Se=Pt("b",i[1].dataType,i[1].dims),Ee=le.type.value,be=null,Ve=[le,Se];i.length===3&&(be=Pt("c",i[2].dataType,i[2].dims.length),Ve.push(be));let je=pn("output",i[0].dataType,L.length);Ve.push(je);let et=[{name:"output_size",type:"u32"},{name:"M",type:"u32"},{name:"N",type:"u32"},{name:"K",type:"u32"},{name:"alpha",type:"f32"},{name:"beta",type:"f32"}];return` + ${$.registerUniforms(et).declareVariables(...Ve)} + + ${$.mainStart()} + ${$.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + + let m = global_idx / uniforms.N; + let n = global_idx % uniforms.N; + + var value = ${Ee}(0); + for (var k: u32 = 0u; k < uniforms.K; k++) { + ${ae} + } + + ${ce} + ${(()=>be!=null?`let cOffset = ${be.broadcastedIndicesToOffset("vec2(m, n)",je)}; value += ${Ee}(uniforms.beta) * ${be.getByOffset("cOffset")};`:"")()} + output[global_idx] = value; + }`};return{name:"Gemm",shaderCache:{hint:`${d.cacheKey}`,inputDependencies:X},getRunData:()=>({outputs:[{dims:L,dataType:i[0].dataType}],dispatchGroup:{x:Math.ceil(z/64)},programUniforms:B}),getShaderSource:Y}},Ls=i=>{let d=i.transA,x=i.transB,C=i.alpha,E=i.beta;return{transA:d,transB:x,alpha:C,beta:E,cacheKey:`${i.transA};${i.transB};${i.alpha===1}`}},md=(i,d)=>{Ia(i.inputs),i.compute(dp(i.inputs,d))}}),gi,mh,gd,Xu,_d,Go,vd,gh=s(()=>{Sn(),bn(),ir(),Ye(),ln(),Nn(),Wr(),gi=(i,d)=>i.length>d&&i[d].dims.length>0?i[d]:void 0,mh=(i,d)=>{let x=i[0],C=gi(i,1),E=gi(i,2),A=gi(i,3),P=gi(i,4),L=gi(i,5),z=gi(i,6),B=gi(i,7);if(x.dims.length!==3&&x.dims.length!==5)throw new Error("Input query is expected to have 3 or 5 dimensions");let X=x.dims[0],Y=x.dims[1],$=x.dims.length===3?x.dims[2]:d.numHeads*x.dims[4],ae=Y,ce=0,le=0,Se=Math.floor($/d.numHeads);if(z&&B&&dt.size(z.dims)&&dt.size(B.dims)){if(z.dims.length!==4)throw new Error('Input "past_key" is expected to have 4 dimensions');if(z.dims[0]!==X||z.dims[1]!==d.numHeads||z.dims[3]!==Se)throw new Error('Input "past_key" shape (batch_size, num_heads, past_sequence_length, head_size)');if(B.dims[0]!==X||B.dims[1]!==d.numHeads||B.dims[3]!==Se)throw new Error('Input "past_value" shape (batch_size, num_heads, past_sequence_length, head_size)');if(z.dims[2]!==B.dims[2])throw new Error('Input "past_key" and "past_value" shall have same dim 2 (past_sequence_length)');if(B.dims.length!==4)throw new Error('Input "past_value" is expected to have 4 dimensions');ce=z.dims[2],le=z.dims[2]}else if(z&&dt.size(z.dims)||B&&dt.size(B.dims))throw new Error('Input "past_key" and "past_value" shall be both present or both absent');let Ee;if(C&&dt.size(C.dims)>0){if(x.dims.length!==3)throw new Error('Input "query" is expected to have 3 dimensions when key is given');if(C.dims.length<3||C.dims.length>5)throw new Error('Input "key" is expected to have 3, 4, or 5 dimensions');if(x.dims[0]!==C.dims[0])throw new Error('Input "query" and "key" shall have same dim 0 (batch size)');if(C.dims.length===3){if(C.dims[2]!==x.dims[2])throw new Error('Input "query" and "key" shall have same dim 2 (hidden_size)');Ee=2,ae=C.dims[1]}else if(C.dims.length===5){if(C.dims[2]!==d.numHeads||C.dims[3]!==2||C.dims[4]!==Se)throw new Error('Expect "key" shape (batch_size, kv_sequence_length, num_heads, 2, head_size) for packed kv');if(E)throw new Error('Expect "value" be none when "key" has packed kv format.');Ee=5,ae=C.dims[1]}else{if(C.dims[1]!==d.numHeads||C.dims[3]!==Se)throw new Error('Expect "key" shape (batch_size, num_heads, kv_sequence_length, head_size) for past_key');Ee=0,ae=C.dims[2]}}else{if(x.dims.length!==5)throw new Error('Input "query" is expected to have 5 dimensions when key is empty');if(x.dims[2]!==d.numHeads||x.dims[3]!==3)throw new Error('Expect "query" shape (batch_size, kv_sequence_length, num_heads, 3, head_size) for packed kv');Ee=3}if(A&&dt.size(A.dims)>0){if(A.dims.length!==1)throw new Error('Input "bias" is expected to have 1 dimension');if(C&&C.dims.length===5&&C.dims[3]===2)throw new Error("bias is not allowed for packed kv.")}let be=ce+ae,Ve=0;if(P&&dt.size(P.dims)>0){Ve=8;let ot=P.dims;throw ot.length===1?ot[0]===X?Ve=1:ot[0]===3*X+2&&(Ve=3):ot.length===2&&ot[0]===X&&ot[1]===be&&(Ve=5),Ve===8?new Error('Input "key_padding_mask" shape shall be (batch_size) or (batch_size, total_sequence_length)'):new Error("Mask not supported")}let je=!1,et=$;if(E&&dt.size(E.dims)>0){if(E.dims.length!==3&&E.dims.length!==4)throw new Error('Input "value" is expected to have 3 or 4 dimensions');if(x.dims[0]!==E.dims[0])throw new Error('Input "query" and "value" shall have same dim 0 (batch_size)');if(E.dims.length===3){if(ae!==E.dims[1])throw new Error('Input "key" and "value" shall have the same dim 1 (kv_sequence_length)');et=E.dims[2]}else{if(ae!==E.dims[2])throw new Error('Input "key" and "value" shall have the same dim 2 (kv_sequence_length)');et=E.dims[1]*E.dims[3],je=!0}}let _t=!1;if(P&&dt.size(P.dims)>0)throw new Error("Key padding mask is not supported");if(L&&dt.size(L.dims)>0){if(L.dims.length!==4)throw new Error('Input "attention_bias" is expected to have 4 dimensions');if(L.dims[0]!==X||L.dims[1]!==d.numHeads||L.dims[2]!==Y||L.dims[3]!==be)throw new Error('Expect "attention_bias" shape (batch_size, num_heads, sequence_length, total_sequence_length)')}return{batchSize:X,sequenceLength:Y,pastSequenceLength:ce,kvSequenceLength:ae,totalSequenceLength:be,maxSequenceLength:le,inputHiddenSize:0,hiddenSize:$,vHiddenSize:et,headSize:Se,vHeadSize:Math.floor(et/d.numHeads),numHeads:d.numHeads,isUnidirectional:!1,pastPresentShareBuffer:!1,maskFilterValue:d.maskFilterValue,maskType:Ve,scale:d.scale,broadcastResPosBias:_t,passPastInKv:je,qkvFormat:Ee}},gd=i=>Fn({...i}),Xu=Fn({perm:[0,2,1,3]}),_d=(i,d,x,C,E,A,P)=>{let L=[C,E,A],z=dt.size(L),B=[{type:12,data:z},{type:12,data:P},{type:12,data:A}],X=Y=>{let $=pn("qkv_with_bias",d.dataType,L),ae=Pt("qkv",d.dataType,L),ce=Pt("bias",x.dataType,L),le=[{name:"output_size",type:"u32"},{name:"bias_offset",type:"u32"},{name:"hidden_size",type:"u32"}];return` + ${Y.registerUniforms(le).declareVariables(ae,ce,$)} + ${Y.mainStart()} + ${Y.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + let bias_offset_idx = (global_idx % uniforms.hidden_size) + uniforms.bias_offset; + + qkv_with_bias[global_idx] = qkv[global_idx] + bias[bias_offset_idx]; + }`};return i.compute({name:"MultiHeadAttentionAddBias",shaderCache:{inputDependencies:["type","type"]},getRunData:()=>({outputs:[{dims:L,dataType:d.dataType,gpuDataType:0}],dispatchGroup:{x:Math.ceil(z/64)},programUniforms:B}),getShaderSource:X},{inputs:[d,x],outputs:[-1]})[0]},Go=(i,d,x,C,E,A,P,L)=>{let z=A;if(P&&dt.size(P.dims)>0){if(C===1)throw new Error("AddBiasReshape is not implemented. Please export your model with packed QKV or KV");return z=_d(i,A,P,d,C,x*E,L),z=z.reshape([d,C,x,E]),x===1||C===1?z:i.compute(zi(z,Xu.perm),{inputs:[z],outputs:[-1]})[0]}else return A.dims.length===3&&(z=A.reshape([d,C,x,E])),x===1||C===1?z:i.compute(zi(z,Xu.perm),{inputs:[z],outputs:[-1]})[0]},vd=(i,d)=>{let x=mh(i.inputs,d),C=i.inputs[0],E=gi(i.inputs,1),A=gi(i.inputs,2),P=gi(i.inputs,3),L=gi(i.inputs,4),z=gi(i.inputs,5),B=gi(i.inputs,6),X=gi(i.inputs,7);if(C.dims.length===5)throw new Error("Packed QKV is not implemented");if((E==null?void 0:E.dims.length)===5)throw new Error("Packed KV is not implemented");let Y=E&&A&&E.dims.length===4&&A.dims.length===4,$=Go(i,x.batchSize,x.numHeads,x.sequenceLength,x.headSize,C,P,0);if(Y)return nt(i,$,E,A,L,void 0,B,X,z,x,d);if(!E||!A)throw new Error("key and value must be provided");let ae=Go(i,x.batchSize,x.numHeads,x.kvSequenceLength,x.headSize,E,P,x.hiddenSize),ce=Go(i,x.batchSize,x.numHeads,x.kvSequenceLength,x.vHeadSize,A,P,2*x.hiddenSize);nt(i,$,ae,ce,L,void 0,B,X,z,x,d)}}),yd,Ii,ws,wd,_h,Nl=s(()=>{Sn(),bn(),Nn(),yd=i=>Array.from(i.getBigInt64Array(),Number),Ii=i=>{if(!i||i.length!==2)throw new Error("Tile requires 2 inputs.");if(i[0].dataType!==1&&i[0].dataType!==10&&i[0].dataType!==6&&i[0].dataType!==12)throw new Error("Tile only support float, float16, int32, and uint32 data types");if(i[1].dataType!==7)throw new Error("Tile `repeats` input should be of int64 data type");if(i[1].dims.length!==1)throw new Error("Tile `repeats` input should be 1-D");if(yd(i[1]).length!==i[0].dims.length)throw new Error("Tile `repeats` input should have same number of elements as rank of input data tensor")},ws=(i,d)=>{let x=[];for(let C=0;C{let x=i[0].dims,C=d!=null?d:yd(i[1]),E=ws(x,C),A=dt.size(E),P=i[0].dataType,L=Pt("input",P,x.length),z=pn("output",P,E.length),B=X=>` + const inputShape = ${L.indices(...x)}; + ${X.registerUniform("output_size","u32").declareVariables(L,z)} + ${X.mainStart()} + ${X.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + let output_indices = ${z.offsetToIndices("global_idx")}; + var input_indices: ${L.type.indices}; + for (var i = 0; i < ${x.length}; i++) { + let input_dim_i = ${L.indicesGet("uniforms.input_shape","i")}; + let input_dim_value = ${z.indicesGet("output_indices","i")} % input_dim_i; + + ${L.indicesSet("input_indices","i","input_dim_value")} + } + ${z.setByOffset("global_idx",L.getByIndices("input_indices"))} + }`;return{name:"Tile",shaderCache:{hint:`${C}`,inputDependencies:["rank"]},getRunData:()=>({outputs:[{dims:E,dataType:i[0].dataType}],dispatchGroup:{x:Math.ceil(A/64)},programUniforms:[{type:12,data:A},...Ot(i[0].dims,E)]}),getShaderSource:B}},_h=i=>{Ii(i.inputs),i.compute(wd(i.inputs),{inputs:[0]})}}),ao,qu,bd,vh,Yu,oo,jl=s(()=>{Sn(),bn(),ir(),ln(),Nn(),gh(),Nl(),Wr(),ao=(i,d)=>{let x=i[0],C=i[1],E=i[2],A=i[3],P=i[4];if(x.dims.length!==3&&x.dims.length!==5)throw new Error("Input query is expected to have 3 or 5 dimensions");let L=!1,z=x.dims[0],B=x.dims[1],X=x.dims.length===3?L?x.dims[2]/3:x.dims[2]:d.numHeads*x.dims[4],Y=B,$=0,ae=0,ce=Math.floor(X/d.numHeads),le=A&&A.dims.length!==0,Se=P&&P.dims.length!==0,Ee=!0;if(le&&Se){if(A.dims.length!==4)throw new Error('Input "past_key" is expected to have 4 dimensions');if(P.dims.length!==4)throw new Error('Input "past_value" is expected to have 4 dimensions');$=A.dims[1],ae=A.dims[1]}else if(le||Se)throw new Error('Input "past_key" and "past_value" shall be both present or both absent');let be;if(C){if(x.dims.length!==3)throw new Error('Input "query" is expected to have 3 dimensions when key is given');if(C.dims.length<3||C.dims.length>5)throw new Error('Input "key" is expected to have 3, 4, or 5 dimensions');if(x.dims[0]!==C.dims[0])throw new Error('Input "query" and "key" shall have same dim 0 (batch size)');if(C.dims.length===3){if(x.dims[2]%C.dims[2]!==0)throw new Error('Dimension 2 of "query" should be a multiple of "key"');be=2,Y=C.dims[1]}else if(C.dims.length===5){if(C.dims[2]!==d.numHeads||C.dims[3]!==2||C.dims[4]!==ce)throw new Error('Expect "key" shape (batch_size, kv_sequence_length, num_heads, 2, head_size) for packed kv');if(E)throw new Error('Expect "value" be none when "key" has packed kv format.');be=5,Y=C.dims[1]}else{if(C.dims[1]!==d.numHeads||C.dims[3]!==ce)throw new Error('Expect "key" shape (batch_size, num_heads, kv_sequence_length, head_size) for past_key');be=0,Y=C.dims[2]}}else{if(x.dims.length!==3&&x.dims.length!==5)throw new Error('Input "query" is expected to have 3 or 5 dimensions when key is empty');if(x.dims.length===5&&(x.dims[2]!==d.numHeads||x.dims[3]!==3))throw new Error('Expect "query" shape (batch_size, kv_sequence_length, num_heads, 3, head_size) for packed kv');be=3}let Ve=0,je=!1,et=X;if(E){if(E.dims.length!==3&&E.dims.length!==4)throw new Error('Input "value" is expected to have 3 or 4 dimensions');if(x.dims[0]!==E.dims[0])throw new Error('Input "query" and "value" shall have same dim 0 (batch_size)');if(E.dims.length===3){if(Y!==E.dims[1])throw new Error('Input "key" and "value" shall have the same dim 1 (kv_sequence_length)');et=E.dims[2]}else{if(Y!==E.dims[2])throw new Error('Input "past_key" and "past_value" shall have the same dim 2 (kv_sequence_length)');et=E.dims[1]*E.dims[3],je=!0}}let _t=$+Y,ot=!1;return{batchSize:z,sequenceLength:B,pastSequenceLength:$,kvSequenceLength:Y,totalSequenceLength:_t,maxSequenceLength:ae,inputHiddenSize:0,hiddenSize:X,vHiddenSize:et,headSize:ce,vHeadSize:Math.floor(et/d.kvNumHeads),numHeads:d.numHeads,kvNumHeads:d.kvNumHeads,nReps:d.numHeads/d.kvNumHeads,pastPresentShareBuffer:!1,maskType:Ve,scale:d.scale,broadcastResPosBias:ot,passPastInKv:je,qkvFormat:be,isPastkvBSNH:Ee}},qu=(i,d,x,C)=>{let E=[C.batchSize,C.totalSequenceLength,C.kvNumHeads,C.headSize],A=4,P=dt.size(E)/A,L=C.totalSequenceLength,z=pn("present_kv",x,E.length,A),B=Pt("new_kv",i.dataType,i.dims.length,A),X=d?Pt("past_kv",d.dataType,d.dims.length,A):void 0,Y=Math.ceil(C.headSize/A),$={x:L,y:i.dims[0],z:1},ae=d?["rank","rank"]:["rank"],ce=[{type:12,data:P},{type:12,data:C.pastSequenceLength},{type:12,data:C.kvSequenceLength},{type:12,data:C.totalSequenceLength}],le=[B];X?(ce.push(...Ot(i.dims),...Ot(d.dims),...Ot(E)),le.push(X)):ce.push(...Ot(i.dims),...Ot(E));let Se=[{name:"output_size",type:"u32"},{name:"past_seqlen",type:"u32"},{name:"new_seqlen",type:"u32"},{name:"present_seqlen",type:"u32"}],Ee=` let past_batch_stride = uniforms.past_seqlen * num_heads * H; + var past_head_stride = uniforms.past_seqlen * H; + if (is_bsnh) { + past_head_stride = H; + } + let in_offset = b * past_batch_stride + s * row_stride + n * past_head_stride + h; + present_kv[out_offset] = past_kv[in_offset];`,be=` let new_batch_stride = uniforms.new_seqlen * num_heads * H; + let new_row_stride = num_heads * H; + let new_head_stride = H; + let in_offset = b * new_batch_stride + (s - past_seqlen) * new_row_stride + n * new_head_stride + h; + present_kv[out_offset] = new_kv[in_offset];`,Ve=d?`if (s < past_seqlen) { + ${Ee} + } else if (s < past_seqlen + uniforms.new_seqlen) { + ${be} + }`:`if (s < past_seqlen + uniforms.new_seqlen) { + ${be} + }`,je=et=>` + + ${et.registerUniforms(Se).declareVariables(...le,z)} + ${et.mainStart([Y,C.kvNumHeads,1])} + ${et.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + var indices = ${z.offsetToIndices("global_idx")}; + let h = local_id.x; + let n = local_id.y; + let s = workgroup_id.x; + let b = workgroup_id.y; + let num_heads = ${C.kvNumHeads}u; + let H = ${Y}u; + + let present_seqlen = uniforms.present_seqlen; + let present_batch_stride = present_seqlen * num_heads * H; + var row_stride = H; + let is_bsnh = ${C.isPastkvBSNH}; + + if (is_bsnh) { + row_stride = num_heads * H; + } + var present_head_stride = present_seqlen * H; + if (is_bsnh) { + present_head_stride = H; + } + + let past_seqlen = uniforms.past_seqlen; + + let out_offset = b * present_batch_stride + s * row_stride + n * present_head_stride + h; + ${Ve} + }`;return{name:"ConcatPastNew",shaderCache:{hint:`${C.kvNumHeads}${Y}${!!d}`,inputDependencies:ae},getRunData:()=>({outputs:[{dims:E,dataType:x}],dispatchGroup:$,programUniforms:ce}),getShaderSource:je}},bd=i=>Fn({...i}),vh=Fn({perm:[0,2,1,3]}),Yu=(i,d,x,C,E)=>{let A=d,P=C.kvNumHeads,L=C.nReps;return d.dims.length===3&&C.kvSequenceLength!==0&&(A=d.reshape([C.batchSize,C.kvSequenceLength,P,C.headSize])),x?A=i.compute(qu(A,x,A.dataType,C),{inputs:[A,x],outputs:[C.isPastkvBSNH?E:-1]})[0]:A=i.compute(qu(A,void 0,A.dataType,C),{inputs:[A],outputs:[C.isPastkvBSNH?E:-1]})[0],L!==1&&(A=i.compute(wd([A],[1,1,1,L]),{inputs:[A],outputs:[-1]})[0],A=A.reshape([C.batchSize,C.totalSequenceLength,P*L,C.headSize])),i.compute(zi(A,vh.perm),{inputs:[A],outputs:[-1]})[0]},oo=(i,d)=>{var z;let x=ao(i.inputs,d);if(i.inputs[0].dims.length===5)throw new Error("Packed QKV is not implemented");if(((z=i.inputs[1])==null?void 0:z.dims.length)===5)throw new Error("Packed KV is not implemented");let C=Go(i,x.batchSize,x.numHeads,x.sequenceLength,x.headSize,i.inputs[0],void 0,0),E=i.inputs[3]&&i.inputs[3].dims.length!==0?i.inputs[3]:void 0,A=i.inputs[4]&&i.inputs[4].dims.length!==0?i.inputs[4]:void 0,P=Yu(i,i.inputs[1],E,x,1),L=Yu(i,i.inputs[2],A,x,2);nt(i,C,P,L,void 0,void 0,void 0,void 0,void 0,x,d)}}),xd,Sd,Td,Wl,yh=s(()=>{Sn(),bn(),Wr(),Nn(),xd=(i,d,x,C,E,A,P,L)=>{let z=cn(A),B=z===1?"f32":`vec${z}f`,X=z===1?"vec2f":`mat2x${z}f`,Y=E*P,$=[E,P,A/z],ae=[E,P,2],ce=["rank","type","type"],le=[];le.push(...Ot($,ae));let Se=Ee=>{let be=Pt("x",d.dataType,3,z),Ve=Pt("scale",x.dataType,x.dims),je=Pt("bias",C.dataType,C.dims),et=pn("output",1,3,2),_t=[be,Ve,je,et],ot=64;return` + var workgroup_shared : array<${X}, ${ot}>; + const workgroup_size = ${ot}u; + ${Ee.declareVariables(..._t)} + ${Ee.mainStart(ot)} + let batch = workgroup_index / uniforms.x_shape[1]; + let channel = workgroup_index % uniforms.x_shape[1]; + let hight = uniforms.x_shape[2]; + // initialize workgroup memory + var sum = ${B}(0); + var squared_sum = ${B}(0); + for (var h = local_idx; h < hight; h += workgroup_size) { + let value = ${B}(${be.get("batch","channel","h")}); + sum += value; + squared_sum += value * value; + } + workgroup_shared[local_idx] = ${X}(sum, squared_sum); + workgroupBarrier(); + + for (var currSize = workgroup_size >> 1; currSize > 0; currSize = currSize >> 1) { + if (local_idx < currSize) { + workgroup_shared[local_idx] = workgroup_shared[local_idx] + workgroup_shared[local_idx + currSize]; + } + workgroupBarrier(); + } + if (local_idx == 0) { + let sum_final = ${Ks("workgroup_shared[0][0]",z)} / f32(hight * ${z}); + let squared_sum_final = ${Ks("workgroup_shared[0][1]",z)} / f32(hight * ${z}); + + let inv_std_dev = inverseSqrt(squared_sum_final - sum_final * sum_final + f32(${L})); + let channel_scale = inv_std_dev * f32(scale[channel]); + let channel_shift = f32(bias[channel]) - sum_final * channel_scale; + output[workgroup_index] = vec2f(channel_scale, channel_shift); + } + }`};return i.compute({name:"InstanceNormComputeChannelScaleShift",shaderCache:{hint:`${z};${L}`,inputDependencies:ce},getRunData:()=>({outputs:[{dims:ae,dataType:1}],dispatchGroup:{x:Y},programUniforms:le}),getShaderSource:Se},{inputs:[d,x,C],outputs:[-1]})[0]},Sd=(i,d,x)=>{let C=d[0].dims,E=C,A=2,P=C[0],L=C[1],z=dt.sizeFromDimension(C,A),B=cn(z),X=dt.size(E)/B,Y=xd(i,d[0],d[1],d[2],P,z,L,x.epsilon),$=[P,L,z/B],ae=[P,L],ce=["type","none"],le=Se=>{let Ee=Pt("x",d[0].dataType,$.length,B),be=Pt("scale_shift",1,ae.length,2),Ve=pn("output",d[0].dataType,$.length,B),je=[Ee,be,Ve];return` + ${Se.registerUniform("output_size","u32").declareVariables(...je)} + ${Se.mainStart()} + ${Se.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + let outputIndices = ${Ve.offsetToIndices("global_idx")}; + let batch = outputIndices[0]; + let channel = outputIndices[1]; + let scale_shift = ${be.getByIndices("vec2(batch, channel)")}; + let value = ${Ee.getByOffset("global_idx")} * ${Ve.type.value}(scale_shift.x) + ${Ve.type.value}(scale_shift.y); + ${Ve.setByOffset("global_idx","value")}; + }`};i.compute({name:"InstanceNormalization",shaderCache:{hint:`${B}`,inputDependencies:ce},getRunData:()=>({outputs:[{dims:E,dataType:d[0].dataType}],dispatchGroup:{x:Math.ceil(X/64)},programUniforms:[{type:12,data:X},...Ot($,ae,$)]}),getShaderSource:le},{inputs:[d[0],Y]})},Td=(i,d,x)=>{let C=d[0].dims,E=C,A=C[0],P=C[C.length-1],L=dt.sizeFromDimension(C,1)/P,z=cn(P),B=dt.size(E)/z,X=[{type:12,data:L},{type:12,data:Math.floor(P/z)}],Y=["type","type"],$=[0,C.length-1];for(let Se=0;Se{let Ee=Hn(d[0].dataType),be=z===1?"vec2f":`mat${z}x2f`,Ve=_t=>{let ot=_t===0?"x":"y",$t=z===1?"f32":`vec${z}f`;switch(z){case 1:return`${Ee}(${$t}(scale.${ot}))`;case 2:return`vec2<${Ee}>(${$t}(scale[0].${ot}, scale[1].${ot}))`;case 4:return`vec4<${Ee}>(${$t}(scale[0].${ot}, scale[1].${ot}, scale[2].${ot}, scale[3].${ot}))`;default:throw new Error(`Not supported compoents ${z}`)}},je=Pt("input",d[0].dataType,d[0].dims,z),et=pn("output",d[0].dataType,E,z);return` + @group(0) @binding(0) var input : array<${je.type.storage}>; + @group(0) @binding(1) var scale_input : array<${be}>; + @group(0) @binding(2) var output : array<${et.type.storage}>; + struct Uniforms {H: u32, C : u32}; + @group(0) @binding(3) var uniforms: Uniforms; + + ${Se.mainStart()} + let current_image_number = global_idx / (uniforms.C * uniforms.H); + let current_channel_number = global_idx % uniforms.C; + + let scale_offset = current_image_number * uniforms.C + current_channel_number; + let scale = scale_input[scale_offset]; + output[global_idx] = fma(input[global_idx], ${Ve(0)}, ${Ve(1)}); + }`};i.compute({name:"InstanceNormalizationNHWC",shaderCache:{hint:`${z}`,inputDependencies:Y},getRunData:()=>({outputs:[{dims:E,dataType:d[0].dataType}],dispatchGroup:{x:Math.ceil(B/64)},programUniforms:X}),getShaderSource:le},{inputs:[d[0],ce]})},Wl=(i,d)=>{d.format==="NHWC"?Td(i,i.inputs,d):Sd(i,i.inputs,d)}}),Ku,Vl,Ul,fp=s(()=>{Sn(),bn(),Nn(),Ku=i=>{if(!i||i.length<2)throw new Error("layerNorm requires at least 2 inputs.")},Vl=(i,d,x)=>{let C=d.simplified,E=i[0].dims,A=i[1],P=!C&&i[2],L=E,z=dt.normalizeAxis(d.axis,E.length),B=dt.sizeToDimension(E,z),X=dt.sizeFromDimension(E,z),Y=dt.size(A.dims),$=P?dt.size(P.dims):0;if(Y!==X||P&&$!==X)throw new Error(`Size of X.shape()[axis:] == ${X}. + Size of scale and bias (if provided) must match this. + Got scale size of ${Y} and bias size of ${$}`);let ae=[];for(let et=0;et1,be=x>2,Ve=et=>{let _t=Hn(i[0].dataType),ot=[Pt("x",i[0].dataType,i[0].dims,ce),Pt("scale",A.dataType,A.dims,ce)];P&&ot.push(Pt("bias",P.dataType,P.dims,ce)),ot.push(pn("output",i[0].dataType,L,ce)),Ee&&ot.push(pn("mean_data_output",1,ae)),be&&ot.push(pn("inv_std_output",1,ae));let $t=[{name:"norm_count",type:"u32"},{name:"norm_size",type:"f32"},{name:"norm_size_vectorized",type:"u32"},{name:"epsilon",type:"f32"}];return` + ${et.registerUniforms($t).declareVariables(...ot)} + ${et.mainStart()} + ${et.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.norm_count")} + let offset = global_idx * uniforms.norm_size_vectorized; + var mean_vector = ${Ka("f32",ce)}; + var mean_square_vector = ${Ka("f32",ce)}; + + for (var h: u32 = 0u; h < uniforms.norm_size_vectorized; h++) { + let value = ${ga(_t,ce,"x[h + offset]")}; + mean_vector += value; + mean_square_vector += value * value; + } + let mean = ${Ks("mean_vector",ce)} / uniforms.norm_size; + let inv_std_dev = inverseSqrt(${Ks("mean_square_vector",ce)} / uniforms.norm_size ${C?"":"- mean * mean"} + uniforms.epsilon); + + for (var j: u32 = 0; j < uniforms.norm_size_vectorized; j++) { + let f32input = ${ga(_t,ce,"x[j + offset]")}; + let f32scale = ${ga(_t,ce,"scale[j]")}; + output[j + offset] = ${ot[0].type.value}((f32input ${C?"":"- mean"}) * inv_std_dev * f32scale + ${P?`+ ${ga(_t,ce,"bias[j]")}`:""} + ); + } + + ${Ee?"mean_data_output[global_idx] = mean":""}; + ${be?"inv_std_output[global_idx] = inv_std_dev":""}; + }`},je=[{dims:L,dataType:i[0].dataType}];return Ee&&je.push({dims:ae,dataType:1}),be&&je.push({dims:ae,dataType:1}),{name:"LayerNormalization",shaderCache:{hint:`${ce};${x};${C}`,inputDependencies:le},getRunData:()=>({outputs:je,dispatchGroup:{x:Math.ceil(B/64)},programUniforms:Se}),getShaderSource:Ve}},Ul=(i,d)=>{Ku(i.inputs),i.compute(Vl(i.inputs,d,i.outputCount))}}),Cd,Gl,Md,Qu,wh,bh=s(()=>{Sn(),bn(),ir(),Nn(),Cd=(i,d)=>{if(i.length<3||i.length>4)throw new Error("MatMulNBits requires 3 or 4 inputs");let x=i[0],C=x.dims.length;if(x.dims[C-1]!==d.k)throw new Error("The last dim of input shape does not match the k value");let E=Math.floor((d.k+d.blockSize-1)/d.blockSize),A=d.blockSize/8*d.bits,P=i[1];if(!dt.areEqual(P.dims,[d.n,E,A]))throw new Error("The second inputs must be 3D tensor with shape N X nBlocksPerCol X blobSize");let L=i[2].dims;if(dt.size(L)!==d.n*E)throw new Error("scales input size error.");if(i.length===4){let z=i[3].dims,B=d.bits>4?d.n*E:d.n*Math.floor((E+1)/2);if(dt.size(z)!==B)throw new Error("zeroPoints input size error.")}},Gl=(i,d)=>{let x=i[0].dims,C=x.length,E=x[C-2],A=d.k,P=d.n,L=x.slice(0,C-2),z=dt.size(L),B=i[1].dims[2]/4,X=i[0].dataType,Y=cn(d.k),$=cn(B),ae=cn(P),ce=L.concat([E,P]),le=E>1&&P/ae%2===0?2:1,Se=dt.size(ce)/ae/le,Ee=64,be=[],Ve=[z,E,A/Y],je=dt.convertShape(i[1].dims).slice();je.splice(-1,1,B/$),be.push(...Ot(Ve)),be.push(...Ot(je)),be.push(...Ot(i[2].dims)),i.length===4&&be.push(...Ot(dt.convertShape(i[3].dims)));let et=[z,E,P/ae];be.push(...Ot(et));let _t=ot=>{let $t=Ve.length,Ht=Pt("a",i[0].dataType,$t,Y),dn=Pt("b",12,je.length,$),Pn=Pt("scales",i[2].dataType,i[2].dims.length),kn=[Ht,dn,Pn],hn=i.length===4?Pt("zero_points",12,i[3].dims.length):void 0;hn&&kn.push(hn);let Xn=et.length,Or=pn("output",i[0].dataType,Xn,ae),Wn=Hn(i[0].dataType),Yn=(()=>{switch(Y){case 1:return`array<${Wn}, 8>`;case 2:return`mat4x2<${Wn}>`;case 4:return`mat2x4<${Wn}>`;default:throw new Error(`${Y}-component is not supported.`)}})(),Rt=()=>{let ft=` + // reuse a data + var input_offset = ${Ht.indicesToOffset(`${Ht.type.indices}(batch, row, word_offset)`)}; + var a_data: ${Yn}; + for (var j: u32 = 0; j < ${8/Y}; j++) { + a_data[j] = ${Ht.getByOffset("input_offset")}; + input_offset++; + } + `;for(let Yt=0;Yt> 4) & b_mask); + b_quantized_values = ${Yn}(${Array.from({length:4},(yn,wr)=>`${Wn}(b_value_lower[${wr}]), ${Wn}(b_value_upper[${wr}])`).join(", ")}); + b_dequantized_values = ${(()=>Y===1?`${Yn}(${Array.from({length:8},(yn,wr)=>`(b_quantized_values[${wr}] - ${hn?`zero_point${Yt}`:"zero_point"}) * scale${Yt}`).join(", ")});`:`(b_quantized_values - ${Yn}(${Array(8).fill(`${hn?`zero_point${Yt}`:"zero_point"}`).join(",")})) * scale${Yt};`)()}; + workgroup_shared[local_id.x * ${le} + ${Math.floor(Yt/ae)}]${ae>1?`[${Yt%ae}]`:""} += ${Array.from({length:8/Y},(yn,wr)=>`${Y===1?`a_data[${wr}] * b_dequantized_values[${wr}]`:`dot(a_data[${wr}], b_dequantized_values[${wr}])`}`).join(" + ")}; + `;return ft},Mn=()=>{let ft=` + var col_index = col * ${ae}; + ${hn?` + let zero_point_bytes_per_col = (nBlocksPerCol + 1) / 2; + var zero_point_byte_count: u32; + var zero_point_word_index: u32; + var zero_point_byte_offset: u32; + let zero_point_nibble_offset: u32 = block & 0x1u; + var zero_point_bits_offset: u32; + var zero_point_word: u32;`:` + // The default zero point is 8 for unsigned 4-bit quantization. + let zero_point = ${Wn}(8);`} + `;for(let Yt=0;Yt> 0x1u); + zero_point_word_index = zero_point_byte_count >> 0x2u; + zero_point_byte_offset = zero_point_byte_count & 0x3u; + zero_point_bits_offset = (zero_point_byte_offset << 3) + (zero_point_nibble_offset << 2); + zero_point_word = ${hn.getByOffset("zero_point_word_index")} >> zero_point_bits_offset; + let zero_point${Yt} = ${Wn}((zero_point_word) & 0xFu);`:""} + col_index += 1;`;return ft},Rn=()=>{let ft=`col_index = col * ${ae};`;for(let Yt=0;Yt; + var b_value_upper: vec4; + var b_quantized_values: ${Yn}; + var b_dequantized_values: ${Yn};`,ft};return` + var workgroup_shared: array<${Or.type.value}, ${le*Ee}>; + ${ot.declareVariables(...kn,Or)} + ${ot.mainStart([Ee,1,1])} + let output_indices = ${Or.offsetToIndices(`(global_idx / ${Ee}) * ${le}`)}; + let col = output_indices[2]; + let row = output_indices[1]; + let batch = output_indices[0]; + let nBlocksPerCol = uniforms.b_shape[1]; + + for (var block = local_id.x; block < nBlocksPerCol; block += ${Ee}) { + //process one block + var word_offset: u32 = block * ${d.blockSize/Y}; + ${Mn()} + for (var word: u32 = 0; word < ${B}; word += ${$}) { + ${Rn()} + for (var i: u32 = 0; i < ${$}; i++) { + ${Rt()} + word_offset += ${8/Y}; + } + } + } + workgroupBarrier(); + + if (local_id.x < ${le}) { + var output_value: ${Or.type.value} = ${Or.type.value}(0); + var workgroup_shared_offset: u32 = local_id.x; + for (var b: u32 = 0u; b < ${Ee}u; b++) { + output_value += workgroup_shared[workgroup_shared_offset]; + workgroup_shared_offset += ${le}; + } + ${Or.setByIndices(`${Or.type.indices}(batch, row, col + local_id.x)`,"output_value")}; + } + }`};return{name:"MatMulNBits",shaderCache:{hint:`${d.blockSize};${d.bits};${Y};${$};${ae};${le};${Ee}`,inputDependencies:Array(i.length).fill("rank")},getRunData:()=>({outputs:[{dims:ce,dataType:X}],dispatchGroup:{x:Se},programUniforms:be}),getShaderSource:_t}},Md=(i,d)=>{let x=i[0].dims,C=x.length,E=x[C-2],A=d.k,P=d.n,L=x.slice(0,C-2),z=dt.size(L),B=i[1].dims[2]/4,X=i[0].dataType,Y=cn(d.k),$=cn(B),ae=L.concat([E,P]),ce=128,le=P%8===0?8:P%4===0?4:1,Se=ce/le,Ee=Se*$*8,be=Ee/Y,Ve=Ee/d.blockSize,je=dt.size(ae)/le,et=[],_t=[z,E,A/Y],ot=dt.convertShape(i[1].dims).slice();ot.splice(-1,1,B/$),et.push(...Ot(_t)),et.push(...Ot(ot)),et.push(...Ot(i[2].dims)),i.length===4&&et.push(...Ot(dt.convertShape(i[3].dims)));let $t=[z,E,P];et.push(...Ot($t));let Ht=dn=>{let Pn=_t.length,kn=Pt("a",i[0].dataType,Pn,Y),hn=Pt("b",12,ot.length,$),Xn=Pt("scales",i[2].dataType,i[2].dims.length),Or=[kn,hn,Xn],Wn=i.length===4?Pt("zero_points",12,i[3].dims.length):void 0;Wn&&Or.push(Wn);let Yn=$t.length,Rt=pn("output",i[0].dataType,Yn),Mn=Hn(i[0].dataType),Rn=()=>{switch(Y){case 1:return` + let a_data0 = vec4<${Mn}>(sub_a[word_offset], sub_a[word_offset + 1], sub_a[word_offset + 2], sub_a[word_offset + 3]); + let a_data1 = vec4<${Mn}>(sub_a[word_offset + 4], sub_a[word_offset + 5], sub_a[word_offset + 6], sub_a[word_offset + 7]);`;case 2:return` + let a_data0 = vec4<${Mn}>(sub_a[word_offset], sub_a[word_offset + 1]); + let a_data1 = vec4<${Mn}>(sub_a[word_offset + 2], sub_a[word_offset + 3]);`;case 4:return` + let a_data0 = sub_a[word_offset]; + let a_data1 = sub_a[word_offset + 1];`;default:throw new Error(`${Y}-component is not supported.`)}};return` + var sub_a: array<${kn.type.value}, ${be}>; + var inter_results: array, ${le}>; + ${dn.declareVariables(...Or,Rt)} + ${dn.mainStart([Se,le,1])} + let output_indices = ${Rt.offsetToIndices(`workgroup_index * ${le}`)}; + let col = output_indices[2]; + let row = output_indices[1]; + let batch = output_indices[0]; + let n_blocks_per_col = uniforms.b_shape[1]; + let num_tiles = (n_blocks_per_col - 1) / ${Ve} + 1; + + // Loop over shared dimension. + for (var tile: u32 = 0; tile < num_tiles; tile += 1) { + let a_col_start = tile * ${be}; + // load one tile A data into shared memory. + for (var a_offset = local_idx; a_offset < ${be}; a_offset += ${ce}) + { + let a_col = a_col_start + a_offset; + if (a_col < uniforms.a_shape[2]) + { + sub_a[a_offset] = ${kn.getByIndices(`${kn.type.indices}(batch, row, a_col)`)}; + } else { + sub_a[a_offset] = ${kn.type.value}(0); + } + } + workgroupBarrier(); + + // each thread process one block + let b_row = col + local_id.y; + let block = tile * ${Ve} + local_id.x; + ${Wn?` + let zero_point_bytes_per_col = (n_blocks_per_col + 1) / 2; + let zero_point_byte_count = b_row * zero_point_bytes_per_col + (block >> 0x1u); + let zero_point_word_index = zero_point_byte_count >> 0x2u; + let zero_point_byte_offset = zero_point_byte_count & 0x3u; + let zero_point_nibble_offset: u32 = block & 0x1u; + let zero_point_bits_offset = (zero_point_byte_offset << 3) + (zero_point_nibble_offset << 2); + let zero_point_word = ${Wn.getByOffset("zero_point_word_index")} >> zero_point_bits_offset; + let zero_point = ${Mn}((zero_point_word) & 0xFu);`:` + // The default zero point is 8 for unsigned 4-bit quantization. + let zero_point = ${Mn}(8);`} + let scale = ${Xn.getByOffset("b_row * n_blocks_per_col + block")}; + let b_data = ${hn.getByIndices(`${hn.type.indices}(b_row, block, 0)`)}; + var word_offset = local_id.x * ${d.blockSize/Y}; + for (var i: u32 = 0; i < ${$}; i++) { + ${Rn()} + let b_value = ${$===1?"b_data":"b_data[i]"}; + let b_value_lower = unpack4xU8(b_value & 0x0F0F0F0Fu); + let b_value_upper = unpack4xU8((b_value >> 4) & 0x0F0F0F0Fu); + let b_quantized_values = mat2x4<${Mn}>(${Array.from({length:4},(ft,Yt)=>`${Mn}(b_value_lower[${Yt}]), ${Mn}(b_value_upper[${Yt}])`).join(", ")}); + let b_dequantized_values = (b_quantized_values - mat2x4<${Mn}>(${Array(8).fill("zero_point").join(",")})) * scale; + inter_results[local_id.y][local_id.x] += ${Array.from({length:2},(ft,Yt)=>`${`dot(a_data${Yt}, b_dequantized_values[${Yt}])`}`).join(" + ")}; + word_offset += ${8/Y}; + } + workgroupBarrier(); + } + + if (local_idx < ${le}) { + var output_value: ${Rt.type.value} = ${Rt.type.value}(0); + for (var b = 0u; b < ${Se}; b++) { + output_value += inter_results[local_idx][b]; + } + if (col + local_idx < uniforms.output_shape[2]) + { + ${Rt.setByIndices(`${Rt.type.indices}(batch, row, col + local_idx)`,"output_value")} + } + } + }`};return{name:"BlockwiseMatMulNBits32",shaderCache:{hint:`${d.blockSize};${Y};${$};${Se};${le}`,inputDependencies:Array(i.length).fill("rank")},getRunData:()=>({outputs:[{dims:ae,dataType:X}],dispatchGroup:{x:je},programUniforms:et}),getShaderSource:Ht}},Qu=(i,d)=>{Cd(i.inputs,d),d.blockSize===32&&i.adapterInfo.isVendor("intel")&&i.adapterInfo.isArchitecture("gen-12lp")?i.compute(Md(i.inputs,d)):i.compute(Gl(i.inputs,d))},wh=i=>Fn(i)}),Rs,Ed,Pd,xh,kd,Sh,Th,zs,Ju,Od=s(()=>{Sn(),bn(),Nn(),Rs=i=>{if(!i||i.length<1)throw new Error("Too few inputs");if(i[0].dataType!==1&&i[0].dataType!==10)throw new Error("Input type must be float or float16.");if(i.length>=2){let d=i[0].dims.length*2===i[1].dims[0];if(i.length===4&&(d=i[3].dims[0]*2===i[1].dims[0]),!d)throw new Error("The pads should be a 1D tensor of shape [2 * input_rank] or [2 * num_axes].")}},Ed=(i,d,x)=>{let C="";for(let E=d-1;E>=0;--E)C+=` + k = i32(${i.indicesGet("indices",E)}) - ${fn("uniforms.pads",E,x)}; + if (k < 0) { + break; + } + if (k >= i32(${fn("uniforms.x_shape",E,d)})) { + break; + } + offset += k * i32(${fn("uniforms.x_strides",E,d)}); + `;return` + value = ${i.type.value}(uniforms.constant_value); + for (var i = 0; i < 1; i++) { + var offset = 0; + var k = 0; + ${C} + value = x[offset]; + } + `},Pd=(i,d,x)=>{let C="";for(let E=d-1;E>=0;--E)C+=` + k = i32(${i.indicesGet("indices",E)}) - ${fn("uniforms.pads",E,x)}; + if (k < 0) { + k = -k; + } + { + let _2n_1 = 2 * (i32(${fn("uniforms.x_shape",E,d)}) - 1); + k = k % _2n_1; + if(k >= i32(${fn("uniforms.x_shape",E,d)})) { + k = _2n_1 - k; + } + } + offset += k * i32(${fn("uniforms.x_strides",E,d)}); + `;return` + var offset = 0; + var k = 0; + ${C} + value = x[offset]; + `},xh=(i,d,x)=>{let C="";for(let E=d-1;E>=0;--E)C+=` + k = i32(${i.indicesGet("indices",E)}) - ${fn("uniforms.pads",E,x)}; + if (k < 0) { + k = 0; + } + if (k >= i32(${fn("uniforms.x_shape",E,d)})) { + k = i32(${fn("uniforms.x_shape",E,d)}) - 1; + } + offset += k * i32(${fn("uniforms.x_strides",E,d)}); + `;return` + var offset = 0; + var k = 0; + ${C} + value = x[offset]; + `},kd=(i,d,x)=>{let C="";for(let E=d-1;E>=0;--E)C+=` + k = i32(${i.indicesGet("indices",E)}) - ${fn("uniforms.pads",E,x)}; + if (k < 0) { + k += i32(${fn("uniforms.x_shape",E,d)}]); + } + if (k >= i32(${fn("uniforms.x_shape",E,d)})) { + k -= i32(${fn("uniforms.x_shape",E,d)}); + } + offset += k * i32(${fn("uniforms.x_strides",E,d)}); + `;return` + var offset = 0; + var k = 0; + ${C} + value = x[offset]; + `},Sh=(i,d,x)=>{switch(x.mode){case 0:return Ed(i,d,x.pads.length);case 1:return Pd(i,d,x.pads.length);case 2:return xh(i,d,x.pads.length);case 3:return kd(i,d,x.pads.length);default:throw new Error("Invalid mode")}},Th=(i,d)=>{let x=dt.padShape(i[0].dims.slice(),d.pads),C=i[0].dims,E=dt.size(x),A=[{type:12,data:E},{type:6,data:d.pads}],P=i.length>=3&&i[2].data;d.mode===0&&A.push({type:P?i[2].dataType:1,data:d.value}),A.push(...Ot(i[0].dims,x));let L=["rank"],z=B=>{let X=pn("output",i[0].dataType,x.length),Y=Pt("x",i[0].dataType,C.length),$=Y.type.value,ae=Sh(X,C.length,d),ce=[{name:"output_size",type:"u32"},{name:"pads",type:"i32",length:d.pads.length}];return d.mode===0&&ce.push({name:"constant_value",type:P?$:"f32"}),` + ${B.registerUniforms(ce).declareVariables(Y,X)} + ${B.mainStart()} + ${B.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + + let indices = ${X.offsetToIndices("global_idx")}; + + var value = ${$}(0); + ${ae} + output[global_idx] = value; + }`};return{name:"Pad",shaderCache:{hint:`${d.mode}${P}`,inputDependencies:L},getRunData:()=>({outputs:[{dims:x,dataType:i[0].dataType}],dispatchGroup:{x:Math.ceil(dt.size(x)/64)},programUniforms:A}),getShaderSource:z}},zs=(i,d)=>{if(i.length>1){let x=i[1].getBigInt64Array(),C=i.length>=3&&i[2].data?i[2].dataType===10?i[2].getUint16Array()[0]:i[2].getFloat32Array()[0]:0,E=i[0].dims.length,A=new Int32Array(2*E).fill(0);if(i.length>=4){let L=i[3].getBigInt64Array();for(let z=0;zA[Number(z)]=Number(L));let P=[];return A.forEach(L=>P.push(L)),{mode:d.mode,value:C,pads:P}}else return d},Ju=(i,d)=>{Rs(i.inputs);let x=zs(i.inputs,d);i.compute(Th(i.inputs,x),{inputs:[0]})}}),lo,Ho,Fa,Tn,Xo,Zu,$a,Ad,Hl,Ch,_n,Id,oi,li,_i,Da,hp,Mh,Eh,U=s(()=>{Mt(),Sn(),bn(),Nn(),lo=i=>{if(R.webgpu.validateInputContent&&(!i||i.length!==1))throw new Error("Pool ops requires 1 input.")},Ho=(i,d,x)=>{let C=d.format==="NHWC",E=i.dims.slice();C&&E.splice(1,0,E.pop());let A=Object.hasOwnProperty.call(d,"dilations"),P=d.kernelShape.slice(),L=d.strides.slice(),z=A?d.dilations.slice():[],B=d.pads.slice();qr.adjustPoolAttributes(x,E,P,L,z,B);let X=qr.computePoolOutputShape(x,E,L,z,P,B,d.autoPad),Y=Object.assign({},d);A?Object.assign(Y,{kernelShape:P,strides:L,pads:B,dilations:z,cacheKey:d.cacheKey}):Object.assign(Y,{kernelShape:P,strides:L,pads:B,cacheKey:d.cacheKey});let $=X.slice();return $.push($.splice(1,1)[0]),[Y,C?$:X]},Fa=(i,d)=>{let x=d.format==="NHWC",C=dt.size(i),E=dt.size(d.kernelShape),A=[{type:12,data:C},{type:12,data:E}],P=[{name:"outputSize",type:"u32"},{name:"kernelSize",type:"u32"}];if(d.kernelShape.length<=2){let L=d.kernelShape[d.kernelShape.length-1],z=d.strides[d.strides.length-1],B=d.pads[d.pads.length/2-1],X=d.pads[d.pads.length-1],Y=!!(B+X);A.push({type:12,data:L},{type:12,data:z},{type:12,data:B},{type:12,data:X}),P.push({name:"kw",type:"u32"},{name:"sw",type:"u32"},{name:"pwStart",type:"u32"},{name:"pwEnd",type:"u32"});let $=!1;if(d.kernelShape.length===2){let ae=d.kernelShape[d.kernelShape.length-2],ce=d.strides[d.strides.length-2],le=d.pads[d.pads.length/2-2],Se=d.pads[d.pads.length-2];$=!!(le+Se),A.push({type:12,data:ae},{type:12,data:ce},{type:12,data:le},{type:12,data:Se}),P.push({name:"kh",type:"u32"},{name:"sh",type:"u32"},{name:"phStart",type:"u32"},{name:"phEnd",type:"u32"})}return[A,P,!0,Y,$]}else{if(x)throw new Error("Pooling with kernelShape.length > 2 is not supported for NHWC format.");let L=dt.computeStrides(d.kernelShape);A.push({type:12,data:L},{type:12,data:d.pads},{type:12,data:d.strides}),P.push({name:"kernelStrides",type:"u32",length:L.length},{name:"pads",type:"u32",length:d.pads.length},{name:"strides",type:"u32",length:d.strides.length});let z=d.pads.reduce((B,X)=>B+X);return[A,P,!!z,!1,!1]}},Tn=(i,d,x,C,E,A,P,L,z,B,X,Y)=>{let $=E.format==="NHWC",ae=d.type.value,ce=pn("output",d.type.tensor,C);if(E.kernelShape.length<=2){let le="",Se="",Ee="",be=x-($?2:1);if(X?le=` + for (var i: u32 = 0u; i < uniforms.kw; i++) { + xIndices[${be}] = indices[${be}] * uniforms.sw - uniforms.pwStart + i; + if (xIndices[${be}] < 0 || xIndices[${be}] + >= uniforms.x_shape[${be}]) { + pad++; + continue; + } + let x_val = x[${d.indicesToOffset("xIndices")}]; + ${A} + }`:le=` + for (var i: u32 = 0u; i < uniforms.kw; i++) { + xIndices[${be}] = indices[${be}] * uniforms.sw - uniforms.pwStart + i; + let x_val = x[${d.indicesToOffset("xIndices")}]; + ${A} + }`,E.kernelShape.length===2){let Ve=x-($?3:2);Y?Se=` + for (var j: u32 = 0u; j < uniforms.kh; j++) { + xIndices[${Ve}] = indices[${Ve}] * uniforms.sh - uniforms.phStart + j; + if (xIndices[${Ve}] < 0 || xIndices[${Ve}] >= uniforms.x_shape[${Ve}]) { + pad += i32(uniforms.kw); + continue; + } + `:Se=` + for (var j: u32 = 0u; j < uniforms.kh; j++) { + xIndices[${Ve}] = indices[${Ve}] * uniforms.sh - uniforms.phStart + j; + `,Ee=` + } + `}return` + ${i.registerUniforms(z).declareVariables(d,ce)} + + ${i.mainStart()} + ${i.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")} + + let indices = ${ce.offsetToIndices("global_idx")}; + var xIndices = ${ce.offsetToIndices("global_idx")}; + + var value = ${ae}(${L}); + var pad = 0; + ${Se} + ${le} + ${Ee} + ${P} + + output[global_idx] = value; + }`}else{if($)throw new Error("Pooling with kernelShape.length > 2 is not supported for NHWC format.");let le=E.kernelShape.length,Se=E.pads.length,Ee="";return B?Ee=` + if (xIndices[j] >= uniforms.x_shape[j]) { + pad++; + isPad = true; + break; + } + } + if (!isPad) { + let x_val = x[${d.indicesToOffset("xIndices")}]; + ${A} + }`:Ee=` + } + let x_val = x[${d.indicesToOffset("xIndices")}]; + ${A} + `,` + ${i.registerUniforms(z).declareVariables(d,ce)} + + ${i.mainStart()} + ${i.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")} + let indices = ${ce.offsetToIndices("global_idx")}; + var xIndices = ${ce.offsetToIndices("global_idx")}; + + var offsets: array; + + var value = ${ae}(${L}); + var pad = 0; + var isPad = false; + + for (var i: u32 = 0u; i < uniforms.kernelSize; i++) { + var offset = i; + for (var j = 0u; j < ${le-1}u; j++) { + offsets[j] = offset / ${fn("uniforms.kernelStrides","j",le)}; + offset -= offsets[j] * ${fn("uniforms.kernelStrides","j",le)}; + } + offsets[${le-1}] = offset; + + isPad = false; + for (var j = ${x-le}u; j < ${x}u; j++) { + xIndices[j] = indices[j] * ${fn("uniforms.strides",`j - ${x-le}u`,le)} + + offsets[j - ${x-le}u] - ${fn("uniforms.pads","j - 2u",Se)}; + ${Ee} + } + ${P} + + output[global_idx] = value; + }`}},Xo=i=>`${i.format};${i.ceilMode};${i.autoPad};${i.kernelShape.length}`,Zu=i=>`${Xo(i)};${i.countIncludePad}`,$a=i=>`${Xo(i)};${i.storageOrder};${i.dilations}`,Ad=i=>({format:i.format,autoPad:["NOTSET","VALID","SAME_UPPER","SAME_LOWER"][i.auto_pad],ceilMode:i.ceil_mode,kernelShape:i.kernel_shape,strides:i.strides,pads:i.pads}),Hl=(i,d,x,C)=>{let[E,A]=Ho(d,C,x),P=Pt("x",d.dataType,d.dims.length),L=P.type.value,z="value += x_val;",B="";E.countIncludePad?B+=`value /= ${L}(uniforms.kernelSize);`:B+=`value /= ${L}(i32(uniforms.kernelSize) - pad);`;let[X,Y,$,ae,ce]=Fa(A,E);X.push(...Ot(d.dims,A));let le=["rank"];return{name:i,shaderCache:{hint:`${C.cacheKey};${$};${ae};${ce}`,inputDependencies:le},getRunData:()=>({outputs:[{dims:A,dataType:d.dataType}],dispatchGroup:{x:Math.ceil(dt.size(A)/64)},programUniforms:X}),getShaderSource:Se=>Tn(Se,P,d.dims.length,A.length,E,z,B,0,Y,$,ae,ce)}},Ch=i=>{let d=i.count_include_pad!==0,x=Ad(i);if(x.ceilMode!==0)throw new Error("using ceil() in shape computation is not yet supported for AveragePool");let C={countIncludePad:d,...x,cacheKey:""};return{...C,cacheKey:Zu(C)}},_n=(i,d)=>{lo(i.inputs),i.compute(Hl("AveragePool",i.inputs[0],!1,d))},Id={autoPad:"",ceilMode:0,countIncludePad:!1,kernelShape:[],strides:[],pads:[],storageOrder:0,dilations:[]},oi=i=>{let d=i.format;return{format:d,...Id,cacheKey:d}},li=(i,d)=>{lo(i.inputs),i.compute(Hl("GlobalAveragePool",i.inputs[0],!0,d))},_i=(i,d,x,C)=>{let[E,A]=Ho(d,C,x),P=` + value = max(x_val, value); + `,L="",z=Pt("x",d.dataType,d.dims.length),B=["rank"],[X,Y,$,ae,ce]=Fa(A,E);return X.push(...Ot(d.dims,A)),{name:i,shaderCache:{hint:`${C.cacheKey};${$};${ae};${ce}`,inputDependencies:B},getRunData:()=>({outputs:[{dims:A,dataType:d.dataType}],dispatchGroup:{x:Math.ceil(dt.size(A)/64)},programUniforms:X}),getShaderSource:le=>Tn(le,z,d.dims.length,A.length,E,P,L,d.dataType===10?-65504:-1e5,Y,$,ae,ce)}},Da=(i,d)=>{lo(i.inputs),i.compute(_i("MaxPool",i.inputs[0],!1,d))},hp=i=>{let d=i.storage_order,x=i.dilations,C=Ad(i);if(d!==0)throw new Error("column major storage order is not yet supported for MaxPool");if(C.ceilMode!==0)throw new Error("using ceil() in shape computation is not yet supported for MaxPool");let E={storageOrder:d,dilations:x,...C,cacheKey:""};return{...E,cacheKey:$a(E)}},Mh=i=>{let d=i.format;return{format:d,...Id,cacheKey:d}},Eh=(i,d)=>{lo(i.inputs),i.compute(_i("GlobalMaxPool",i.inputs[0],!0,d))}}),re,Ce,Qe,vt,pt=s(()=>{Sn(),bn(),ir(),Nn(),re=(i,d)=>{if(i.length<2||i.length>3)throw new Error("DequantizeLinear requires 2 or 3 inputs.");if(i.length===3&&i[1].dims===i[2].dims)throw new Error("x-scale and x-zero-point must have the same shape.");if(i.length===3&&i[0].dataType!==i[2].dataType)throw new Error("x and x-zero-point must have the same data type.");if(i[0].dataType===6&&i.length>2)throw new Error("In the case of dequantizing int32 there is no zero point.");if(i[1].dims.length!==0&&i[1].dims.length!==1&&i[1].dims.length!==i[0].dims.length)throw new Error("scale input must be a scalar, a 1D tensor, or have the same rank as the input tensor.");if(i.length>2){if(i[0].dataType!==i[2].dataType)throw new Error("x and x-zero-point must have the same data type.");if(i[1].dims.length!==i[2].dims.length)throw new Error("scale and zero-point inputs must have the same rank.");if(!i[1].dims.map((x,C)=>x===i[2].dims[C]).reduce((x,C)=>x&&C,!0))throw new Error("scale and zero-point inputs must have the same shape.")}if(d.blockSize>0){if(i[1].dims.length===0||i[1].dims.length===1&&i[1].dims[0]===1)throw new Error("blockSize must be set only for block quantization.");if(!i[1].dims.map((E,A)=>A===d.axis||E===i[0].dims[A]).reduce((E,A)=>E&&A,!0))throw new Error("For block qunatization, scale input shape to match the input shape except for the axis");if(i[1].dims.length!==i[0].dims.length)throw new Error("For block qunatization the scale input rank must be the same as the x rank.");let x=i[0].dims[d.axis],C=i[1].dims[d.axis];if(d.blockSizeMath.ceil(x/(C-1)-1))throw new Error("blockSize must be with in the range [ceil(dI / Si), ceil(dI / (Si - 1) - 1)].")}},Ce=(i,d)=>{let x=dt.normalizeAxis(d.axis,i[0].dims.length),C=i[0].dataType,E=C===3,A=i[0].dims,P=i[1].dataType,L=dt.size(A),z=C===3||C===2,B=z?[Math.ceil(dt.size(i[0].dims)/4)]:i[0].dims,X=i[1].dims,Y=i.length>2?i[2]:void 0,$=Y?z?[Math.ceil(dt.size(Y.dims)/4)]:Y.dims:void 0,ae=X.length===0||X.length===1&&X[0]===1,ce=ae===!1&&X.length===1,le=cn(L),Se=ae&&(!z||le===4),Ee=Se?le:1,be=Se&&!z?le:1,Ve=Pt("input",z?12:C,B.length,be),je=Pt("scale",P,X.length),et=Y?Pt("zero_point",z?12:C,$.length):void 0,_t=pn("output",P,A.length,Ee),ot=[Ve,je];et&&ot.push(et);let $t=[B,X];Y&&$t.push($);let Ht=[{type:12,data:L/Ee},{type:12,data:x},{type:12,data:d.blockSize},...Ot(...$t,A)],dn=Pn=>{let kn=[{name:"output_size",type:"u32"},{name:"axis",type:"u32"},{name:"block_size",type:"u32"}];return` + ${Pn.registerUniforms(kn).declareVariables(...ot,_t)} + ${Pn.mainStart()} + ${Pn.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + let output_indices = ${_t.offsetToIndices("global_idx")}; + + // Set input x + ${(()=>z?` + let input = ${Ve.getByOffset("global_idx / 4")}; + let x_vec = ${E?"unpack4xI8(input)":"unpack4xU8(input)"}; + let x_value = ${Ee===1?"x_vec[global_idx % 4]":"x_vec"};`:`let x_value = ${Ve.getByOffset("global_idx")};`)()}; + + // Set scale input + ${(()=>ae?`let scale_value= ${je.getByOffset("0")}`:ce?` + let scale_index = ${_t.indicesGet("output_indices","uniforms.axis")}; + let scale_value= ${je.getByOffset("scale_index")};`:` + var scale_indices: ${je.type.indices} = output_indices; + let index = ${je.indicesGet("scale_indices","uniforms.axis")} / uniforms.block_size; + ${je.indicesSet("scale_indices","uniforms.axis","index")}; + let scale_value= ${je.getByIndices("scale_indices")};`)()}; + + // Set zero-point input + ${(()=>et?ae?z?` + let zero_point_input = ${et.getByOffset("0")}; + let zero_point_vec = ${E?"unpack4xI8(zero_point_input)":"unpack4xU8(zero_point_input)"}; + let zero_point_value= zero_point_vec[0]`:`let zero_point_value = ${et.getByOffset("0")}`:ce?z?` + let zero_point_index = ${_t.indicesGet("output_indices","uniforms.axis")}; + let zero_point_input = ${et.getByOffset("zero_point_index / 4")}; + let zero_point_vec = ${E?"unpack4xI8(zero_point_input)":"unpack4xU8(zero_point_input)"}; + let zero_point_value = zero_point_vec[zero_point_index % 4]`:` + let zero_point_index = ${_t.indicesGet("output_indices","uniforms.axis")}; + let zero_point_value = ${et.getByOffset("zero_point_index")};`:z?` + let zero_point_offset = ${je.indicesToOffset("scale_indices")}; + let zero_point_input = ${et.getByOffset("zero_point_offset / 4")}; + let zero_point_vec = ${E?"unpack4xI8(zero_point_input)":"unpack4xU8(zero_point_input)"}; + let zero_point_value = zero_point_vec[zero_point_offset % 4];`:`let zero_point_value = ${et.getByIndices("scale_indices")};`:`let zero_point_value = ${z?E?"i32":"u32":Ve.type.value}(0);`)()}; + // Compute and write output + ${_t.setByOffset("global_idx",`${_t.type.value}(x_value - zero_point_value) * scale_value`)}; + }`};return{name:"DequantizeLinear",shaderCache:{hint:d.cacheKey,inputDependencies:et?["rank","rank","rank"]:["rank","rank"]},getShaderSource:dn,getRunData:()=>({outputs:[{dims:A,dataType:P}],dispatchGroup:{x:Math.ceil(L/Ee/64),y:1,z:1},programUniforms:Ht})}},Qe=(i,d)=>{re(i.inputs,d),i.compute(Ce(i.inputs,d))},vt=i=>Fn({axis:i.axis,blockSize:i.blockSize})}),Vt,qt,an,An=s(()=>{Mt(),Sn(),Nn(),Vt=(i,d,x)=>{let C=i===d,E=id&&x>0;if(C||E||A)throw new Error("Range these inputs' contents are invalid.")},qt=(i,d,x,C)=>{let E=Math.abs(Math.ceil((d-i)/x)),A=[E],P=E,L=[{type:12,data:P},{type:C,data:i},{type:C,data:x},...Ot(A)],z=B=>{let X=pn("output",C,A.length),Y=X.type.value,$=[{name:"outputSize",type:"u32"},{name:"start",type:Y},{name:"delta",type:Y}];return` + ${B.registerUniforms($).declareVariables(X)} + ${B.mainStart()} + ${B.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")} + output[global_idx] = uniforms.start + ${Y}(global_idx) * uniforms.delta; + }`};return{name:"Range",shaderCache:{hint:`${C}`},getShaderSource:z,getRunData:()=>({outputs:[{dims:A,dataType:C}],dispatchGroup:{x:Math.ceil(P/64)},programUniforms:L})}},an=i=>{let d=0,x=0,C=0;i.inputs[0].dataType===6?(d=i.inputs[0].getInt32Array()[0],x=i.inputs[1].getInt32Array()[0],C=i.inputs[2].getInt32Array()[0]):i.inputs[0].dataType===1&&(d=i.inputs[0].getFloat32Array()[0],x=i.inputs[1].getFloat32Array()[0],C=i.inputs[2].getFloat32Array()[0]),R.webgpu.validateInputContent&&Vt(d,x,C),i.compute(qt(d,x,C,i.inputs[0].dataType),{inputs:[]})}}),sr,ur,Jn,$n,fr,nr,Zn,hr,Vi,Dr,Vr,Qr,jr,Jr,Bs,xi,is,Fd,Ui,La=s(()=>{Sn(),bn(),ir(),Nn(),sr=(i,d)=>{if(i.every(x=>x>0||(()=>{throw new Error("Resize requires scales input values to be positive")})),i.length>0){if(d.mode==="linear"){if(!(i.length===2||i.length===3||i.length===4&&i[0]===1&&i[1]===1||i.length===4&&i[0]===1&&i[3]===1||i.length===5&&i[0]===1&&i[1]===1))throw new Error(`For linear mode, Resize requires scales to be 2D, 3D, 4D with either two outermost or one innermost and + one outermost scale values equal to 1, or 5D with two outermost scale values equal to 1`)}else if(d.mode==="cubic"&&!(i.length===2||i.length===4&&i[0]===1&&i[1]===1||i.length===4&&i[0]===1&&i[3]===1))throw new Error("Resize requires scales input size to be 2 or 4 for cubic mode")}},ur=(i,d,x)=>{d.every(E=>E>=0&&E{throw new Error("Resize requires axes input values to be positive and less than rank")}));let C=new Array(x).fill(1);return d.forEach((E,A)=>C[E]=i[A]),C},Jn=(i,d,x,C,E,A)=>{let[P,L,z]=x>10?[1,2,3]:[-1,i.length>1?1:-1,-1],B=i[0].dims.length;if(P>0&&i.length>P&&i[P].dims.length>0)i[P].getFloat32Array().forEach(X=>A.push(X));else if(d.coordinateTransformMode==="tf_crop_and_resize")throw new Error("Resize requires RoI input to be specified when coordinateTransformMode is tfCropAndResize");if(L>0&&i.length>L&&i[L].dims.length===1&&i[L].dims[0]>0){if(i[L].getFloat32Array().forEach(X=>C.push(X)),C.length!==0&&C.length!==B&&x>=18&&C.length!==d.axes.length)throw new Error("Resize requires scales input size to be same as input rank or axes size for opset 18 and up");sr(C,d),d.axes.length>0&&ur(C,d.axes,B).forEach((X,Y)=>C[Y]=X)}if(z>0&&i.length>z&&i[z].dims.length===1&&i[z].dims[0]>0&&(i[z].getBigInt64Array().forEach(X=>E.push(Number(X))),E.length!==0&&E.length!==B&&x>=18&&E.length!==d.axes.length))throw new Error("Resize requires sizes input size to be same as input rank or axes size for opset 18 and up");if(d.axes.length>0){if(C.length!==0&&C.length!==d.axes.length)throw new Error('Resize requires "scales" input size to be of axes rank when axes attributes is specified');if(E.length!==0&&E.length!==d.axes.length)throw new Error('Resize requires "sizes" input size to be of rank axes rank when axes attributes is specified')}if(typeof C<"u"&&typeof E<"u"&&C.length>0&&E.length>B)throw new Error("Resize requires only of scales or sizes to be specified")},$n=(i,d)=>`fn getOriginalCoordinateFromResizedCoordinate(xResized: u32, xScale: f32, lengthResized: u32, + lengthOriginal: u32, roiStart: f32, roiEnd: f32) -> ${d} { `+(()=>{switch(i){case"asymmetric":return`return ${d}(xResized) / ${d}(xScale);`;case"pytorch_half_pixel":return`if (lengthResized > 1) { + return (${d}(xResized) + 0.5) / ${d}(xScale) - 0.5; + } else { + return 0.0; + }`;case"tf_half_pixel_for_nn":return`return (${d}(xResized) + 0.5) / ${d}(xScale);`;case"align_corners":return`if (lengthResized == 1) { + return 0.0; + } else { + // The whole part and the fractional part are calculated separately due to inaccuracy of floating + // point division. As an example, f32(21) / f32(7) may evaluate to 2.99... instead of 3, causing an + // offset-by-one error later in floor(). + let whole = ${d}(xResized * (lengthOriginal - 1) / (lengthResized - 1)); + let fract = + ${d}(xResized * (lengthOriginal - 1) % (lengthResized - 1)) / ${d}(lengthResized - 1); + return whole + fract; + }`;case"tf_crop_and_resize":return`if (lengthResized > 1) { + return ${d}(roiStart) * ${d}(lengthOriginal - 1) + + (${d}(xResized) * ${d}(roiEnd - roiStart) * ${d}(lengthOriginal - 1)) / + ${d}(lengthResized - 1); + } else { + return 0.5 * ${d}(roiStart + roiEnd) * ${d}(lengthOriginal - 1); + }`;case"half_pixel_symmetric":return`const outputWidth = ${d}xScale * ${d}(lengthResized); + const adjustment = ${d}(lengthResized) / outputWidth; + const center = ${d}(lengthOriginal) / 2; + const offset = center * (1 - adjustment); + return offset + ((${d}(xResized) + 0.5) / ${d}(xScale)) - 0.5;`;case"half_pixel":return`return ((${d}(xResized) + 0.5) / ${d}(xScale)) - 0.5;`;default:throw new Error(`Coordinate transform mode ${i} is not supported`)}})()+"}",fr=(i,d,x)=>`fn getNearestPixelFromOriginal(xOriginal: ${x}, isDownSample: bool) -> ${x} {`+(()=>{switch(i){case"round_prefer_ceil":return"if (fract(xOriginal) == 0.5) { return ceil(xOriginal); } else { return round(xOriginal); }";case"floor":return"return floor(xOriginal);";case"ceil":return"return ceil(xOriginal);";case"round_prefer_floor":return"if (fract(xOriginal) == 0.5) { return floor(xOriginal); } else { return round(xOriginal); }";case"simple":default:if(d<11)return"if (isDownSample) { return ceil(xOriginal); } else { return xOriginal; }";throw new Error(`Nearest mode ${i} is not supported`)}})()+"}",nr=(i,d,x)=>{let C=new Array(x).fill(0).concat(new Array(x).fill(1)),E=i.length===0?C:i.slice();return d.length>0?(d.forEach((A,P)=>{C[A]=E[P],C[P+x]=E[d.length+P]}),C):E},Zn=(i,d,x,C)=>{let E=[];if(x.length>0)if(C.length>0){if(i.forEach(A=>E.push(A)),Math.max(...C)>i.length)throw new Error("axes is out of bound");C.forEach((A,P)=>E[A]=x[P])}else x.forEach(A=>E.push(A));else{if(d.length===0)throw new Error("Resize requires either scales or sizes.");E=i.map((A,P)=>Math.round(A*d[P]))}return E},hr=(i,d,x)=>{let C=(()=>{switch(x.keepAspectRatioPolicy){case"not_larger":return x.axes.length>0?Math.min(...x.axes.map(A=>d[A]),Number.MAX_VALUE):Math.min(...d,Number.MAX_VALUE);case"not_smaller":return x.axes.length>0?Math.max(...x.axes.map(A=>d[A]),Number.MIN_VALUE):Math.max(...d,Number.MIN_VALUE);default:throw new Error(`Keep aspect ratio policy ${x.keepAspectRatioPolicy} is not supported`)}})();d.fill(1,0,d.length);let E=i.slice();return x.axes.length>0?(x.axes.forEach(A=>d[A]=C),x.axes.forEach(A=>E[A]=Math.round(i[A]*d[A]))):(d.fill(C,0,d.length),E.forEach((A,P)=>E[P]=Math.round(A*d[P]))),E},Vi=(i,d,x,C,E)=>` + fn calculateOriginalIndicesFromOutputIndices(output_indices: ${i.type.indices}) -> array<${i.type.value}, ${x.length}> { + var original_indices: array<${i.type.value}, ${x.length}>; + for (var i:u32 = 0; i < ${x.length}; i++) { + var output_index = ${i.indicesGet("output_indices","i")}; + var scale = ${fn("uniforms.scales","i",C)}; + var roi_low = ${fn("uniforms.roi","i",E)}; + var roi_hi = ${fn("uniforms.roi",`i + ${d.length}`,E)}; + if (scale == 1.0) { + original_indices[i] = ${i.type.value}(output_index); + } else { + var input_shape_i = ${fn("uniforms.input_shape","i",d.length)}; + var output_shape_i = ${fn("uniforms.output_shape","i",x.length)}; + original_indices[i] = getOriginalCoordinateFromResizedCoordinate(output_index, scale, output_shape_i, + input_shape_i, roi_low, roi_hi); + } + } + return original_indices; + }`,Dr=(i,d,x,C,E,A,P)=>` + fn calculateInputIndicesFromOutputIndices(output_indices: ${d.type.indices}) -> ${i.type.indices} { + var input_indices: ${i.type.indices}; + for (var i:u32 = 0; i < ${C.length}; i++) { + var output_index = ${d.indicesGet("output_indices","i")}; + var input_index: u32; + var scale = ${fn("uniforms.scales","i",E)}; + if (scale == 1.0) { + input_index = output_index; + } else { + var roi_low = ${fn("uniforms.roi","i",A)}; + var roi_hi = ${fn("uniforms.roi",`i + ${x.length}`,A)}; + var input_shape_i = ${fn("uniforms.input_shape","i",x.length)}; + var output_shape_i = ${fn("uniforms.output_shape","i",C.length)}; + var original_idx = getOriginalCoordinateFromResizedCoordinate(output_index, scale, output_shape_i, + input_shape_i, roi_low, roi_hi); + if (!${P} || (original_idx >= 0 && original_idx < ${d.type.value}(input_shape_i))) { + if (original_idx < 0) { + input_index = 0; + } else if (original_idx > ${d.type.value}(input_shape_i - 1)) { + input_index = input_shape_i - 1; + } else { + input_index = u32(getNearestPixelFromOriginal(original_idx, scale < 1)); + } + } else { + input_index = u32(original_idx); + } + } + ${i.indicesSet("input_indices","i"," input_index")} + } + return input_indices; + }`,Vr=(i,d)=>` + fn checkInputIndices(input_indices: ${i.type.indices}) -> bool { + for (var i:u32 = 0; i < ${d.length}; i++) { + var input_index = ${i.indicesGet("input_indices","i")}; + if (input_index < 0 || input_index >= ${fn("uniforms.input_shape","i",d.length)}) { + return false; + } + } + return true; + }`,Qr=(i,d,x,C)=>i.rank>C?` + ${i.indicesSet("input_indices",d,"channel")}; + ${i.indicesSet("input_indices",x,"batch")}; +`:"",jr=(i,d,x,C,E)=>{let[A,P,L,z]=x.length===2?[-1,0,1,-1]:[0,2,3,1],B=i.type.value;return` + fn getInputValue(batch: u32, channel: u32, row: u32, col: u32) -> ${B} { + var input_indices: ${i.type.indices}; + ${i.indicesSet("input_indices",P,`max(0, min(row, ${x[P]} - 1))`)}; + ${i.indicesSet("input_indices",L,`max(0, min(col, ${x[L]} - 1))`)}; + ${Qr(i,z,A,2)} + return ${i.getByIndices("input_indices")}; + } + + fn bilinearInterpolation(output_indices: ${d.type.indices}) -> ${B} { + var originalIndices = calculateOriginalIndicesFromOutputIndices(output_indices); + var row:${B} = originalIndices[${P}]; + var col:${B} = originalIndices[${L}]; + ${C?`if (row < 0 || row > (${x[P]} - 1) || col < 0 || col > (${x[L]} - 1)) { + return ${E}; + }`:""}; + row = max(0, min(row, ${x[P]} - 1)); + col = max(0, min(col, ${x[L]} - 1)); + var row1: u32 = u32(row); + var col1: u32 = u32(col); + var row2: u32 = u32(row + 1); + var col2: u32 = u32(col + 1); + var channel: u32 = ${x.length>2?`u32(originalIndices[${z}])`:"0"}; + var batch: u32 = ${x.length>2?`u32(originalIndices[${A}])`:"0"}; + var x11: ${B} = getInputValue(batch, channel, row1, col1); + var x12: ${B} = getInputValue(batch, channel, row1, col2); + var x21: ${B} = getInputValue(batch, channel, row2, col1); + var x22: ${B} = getInputValue(batch, channel, row2, col2); + var dx1: ${B} = abs(row - ${B}(row1)); + var dx2: ${B} = abs(${B}(row2) - row); + var dy1: ${B} = abs(col - ${B}(col1)); + var dy2: ${B} = abs(${B}(col2) - col); + if (row1 == row2) { + dx1 = 0.5; + dx2 = 0.5; + } + if (col1 == col2) { + dy1 = 0.5; + dy2 = 0.5; + } + return (x11 * dx2 * dy2 + x12 * dx2 * dy1 + x21 * dx1 * dy2 + x22 * dx1 * dy1); + }`},Jr=(i,d,x,C,E,A,P,L,z,B)=>{let X=x.length===2,[Y,$]=X?[0,1]:[2,3],ae=i.type.value,ce=le=>{let Se=le===Y?"row":"col";return` + fn ${Se}CubicInterpolation(input_indices: ${i.type.indices}, output_indices: ${d.type.indices}) -> ${ae} { + var output_index = ${d.indicesGet("output_indices",le)}; + var originalIdx: ${ae} = getOriginalCoordinateFromResizedCoordinate(output_index, ${E[le]}, + ${C[le]}, ${x[le]}, ${A[le]}, ${A[le]} + ${x.length}); + var fractOriginalIdx: ${ae} = originalIdx - floor(originalIdx); + var coefs = getCubicInterpolationCoefs(fractOriginalIdx); + + if (${L} && (originalIdx < 0 || originalIdx > (${x[le]} - 1))) { + return ${z}; + } + var data: array<${ae}, 4> = array<${ae}, 4>(0.0, 0.0, 0.0, 0.0); + for (var i: i32 = -1; i < 3; i++) { + var ${Se}: ${ae} = originalIdx + ${ae}(i); + if (${Se} < 0 || ${Se} >= ${x[le]}) { + ${(()=>B?`coefs[i + 1] = 0.0; + continue;`:L?`return ${z};`:`${Se} = max(0, min(${Se}, ${x[le]} - 1));`)()}; + } + var input_indices_copy: ${i.type.indices} = input_indices; + ${i.indicesSet("input_indices_copy",le,`u32(${Se})`)}; + data[i + 1] = ${le===Y?i.getByIndices("input_indices_copy"):"rowCubicInterpolation(input_indices_copy, output_indices)"}; + } + return cubicInterpolation1D(data, coefs); + }`};return` + ${ce(Y)}; + ${ce($)}; + fn getCubicInterpolationCoefs(s: ${ae}) -> array<${ae}, 4> { + var absS = abs(s); + var coeffs: array<${ae}, 4> = array<${ae}, 4>(0.0, 0.0, 0.0, 0.0); + var oneMinusAbsS: ${ae} = 1.0 - absS; + var twoMinusAbsS: ${ae} = 2.0 - absS; + var onePlusAbsS: ${ae} = 1.0 + absS; + coeffs[0] = ((${P} * onePlusAbsS - 5 * ${P}) * onePlusAbsS + 8 * ${P}) * onePlusAbsS - 4 * ${P}; + coeffs[1] = ((${P} + 2) * absS - (${P} + 3)) * absS * absS + 1; + coeffs[2] = ((${P} + 2) * oneMinusAbsS - (${P} + 3)) * oneMinusAbsS * oneMinusAbsS + 1; + coeffs[3] = ((${P} * twoMinusAbsS - 5 * ${P}) * twoMinusAbsS + 8 * ${P}) * twoMinusAbsS - 4 * ${P}; + return coeffs; + } + + fn cubicInterpolation1D(x: array<${ae}, 4>, coefs: array<${ae}, 4>) -> ${ae} { + var coefsSum: ${ae} = coefs[0] + coefs[1] + coefs[2] + coefs[3]; + return (x[0] * coefs[0] + x[1] * coefs[1]+ x[2] * coefs[2]+ x[3] * coefs[3]) / coefsSum; + } + + fn bicubicInterpolation(output_indices: ${d.type.indices}) -> ${ae} { + var input_indices: ${i.type.indices} = output_indices; + return colCubicInterpolation(input_indices, output_indices); + } + `},Bs=(i,d,x,C,E)=>{let[A,P,L,z,B]=x.length===3?[-1,0,1,2,-1]:[0,2,3,4,1],X=i.type.value;return` + fn getInputValue(batch: u32, channel: u32, depth:u32, height: u32, width: u32) -> ${X} { + var input_indices: ${i.type.indices}; + ${i.indicesSet("input_indices",P,`max(0, min(depth, ${x[P]} - 1))`)}; + ${i.indicesSet("input_indices",L,`max(0, min(height, ${x[L]} - 1))`)}; + ${i.indicesSet("input_indices",z,`max(0, min(width, ${x[z]} - 1))`)}; + ${Qr(i,B,A,3)} + return ${i.getByIndices("input_indices")}; + } + + fn trilinearInterpolation(output_indices: ${d.type.indices}) -> ${X} { + var originalIndices = calculateOriginalIndicesFromOutputIndices(output_indices); + var depth:${X} = originalIndices[${P}]; + var height:${X} = originalIndices[${L}]; + var width:${X} = originalIndices[${z}]; + ${C?`if (depth < 0 || depth > (${x[P]} - 1) || height < 0 || height > (${x[L]} - 1) || width < 0 || (width > ${x[z]} - 1)) { + return ${E}; + }`:""}; + + depth = max(0, min(depth, ${x[P]} - 1)); + height = max(0, min(height, ${x[L]} - 1)); + width = max(0, min(width, ${x[z]} - 1)); + var depth1: u32 = u32(depth); + var height1: u32 = u32(height); + var width1: u32 = u32(width); + var depth2: u32 = u32(depth + 1); + var height2: u32 = u32(height + 1); + var width2: u32 = u32(width + 1); + var channel: u32 = ${x.length>3?`u32(originalIndices[${B}])`:"0"}; + var batch: u32 = ${x.length>3?`u32(originalIndices[${A}])`:"0"}; + + var x111: ${X} = getInputValue(batch, channel, depth1, height1, width1); + var x112: ${X} = getInputValue(batch, channel, depth1, height1, width2); + var x121: ${X} = getInputValue(batch, channel, depth1, height2, width1); + var x122: ${X} = getInputValue(batch, channel, depth1, height2, width2); + var x211: ${X} = getInputValue(batch, channel, depth2, height1, width1); + var x212: ${X} = getInputValue(batch, channel, depth2, height1, width2); + var x221: ${X} = getInputValue(batch, channel, depth2, height2, width1); + var x222: ${X} = getInputValue(batch, channel, depth2, height2, width2); + var dx1: ${X} = abs(depth - ${X}(depth1)); + var dx2: ${X} = abs(${X}(depth2) - depth); + var dy1: ${X} = abs(height - ${X}(height1)); + var dy2: ${X} = abs(${X}(height2) - height); + var dz1: ${X} = abs(width - ${X}(width1)); + var dz2: ${X} = abs(${X}(width2) - width); + if (depth1 == depth2) { + dx1 = 0.5; + dx2 = 0.5; + } + if (height1 == height2) { + dy1 = 0.5; + dy2 = 0.5; + } + if (width1 == width2) { + dz1 = 0.5; + dz2 = 0.5; + } + return (x111 * dx2 * dy2 * dz2 + x112 * dx2 * dy2 * dz1 + x121 * dx2 * dy1 *dz2 + x122 * dx2 * dy1 * dz1 + + x211 * dx1 * dy2 * dz2 + x212 * dx1 * dy2 * dz1 + x221 * dx1 * dy1 *dz2 + x222 * dx1 * dy1 * dz1); + }`},xi=(i,d,x,C,E,A)=>{let P=i.dims,L=nr(A,d.axes,P.length),z=Zn(P,C,E,d.axes),B=C.slice();C.length===0&&(B=P.map((be,Ve)=>be===0?1:z[Ve]/be),d.keepAspectRatioPolicy!=="stretch"&&(z=hr(P,B,d)));let X=pn("output",i.dataType,z.length),Y=Pt("input",i.dataType,P.length),$=dt.size(z),ae=P.length===z.length&&P.every((be,Ve)=>be===z[Ve]),ce=d.coordinateTransformMode==="tf_crop_and_resize",le=d.extrapolationValue,Se=Y.type.value,Ee=be=>` + ${ae?"":` + ${$n(d.coordinateTransformMode,Se)}; + ${(()=>{switch(d.mode){case"nearest":return` + ${Vr(Y,P)}; + ${fr(d.nearestMode,x,Se)}; + ${Dr(Y,X,P,z,B.length,L.length,ce)}; + `;case"linear":return` + ${Vi(X,P,z,B.length,L.length)}; + ${(()=>{if(P.length===2||P.length===4)return`${jr(Y,X,P,ce,le)}`;if(P.length===3||P.length===5)return`${Bs(Y,X,P,ce,le)}`;throw Error("Linear mode only supports input dims 2, 3, 4 and 5 are supported in linear mode.")})()}; + `;case"cubic":return` + ${(()=>{if(P.length===2||P.length===4)return`${Jr(Y,X,P,z,B,L,d.cubicCoeffA,ce,d.extrapolationValue,d.excludeOutside)}`;throw Error("Cubic mode only supports input dims 2 and 4 are supported in linear mode.")})()}; + `;default:throw Error("Invalid resize mode")}})()}; + `} + ${be.registerUniform("output_size","u32").registerUniform("scales","f32",B.length).registerUniform("roi","f32",L.length).declareVariables(Y,X)} + ${be.mainStart()} + ${be.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + ${ae?"output[global_idx] = input[global_idx];":` + let output_indices = ${X.offsetToIndices("global_idx")}; + var input_indices: ${Y.type.indices}; + ${(()=>{switch(d.mode){case"nearest":return`input_indices = calculateInputIndicesFromOutputIndices(output_indices); + if (checkInputIndices(input_indices)) { + output[global_idx] = ${Y.getByIndices("input_indices")}; + } else { + output[global_idx] = ${d.extrapolationValue}; + }`;case"linear":return`output[global_idx] = ${P.length===2||P.length===4?"bilinearInterpolation":"trilinearInterpolation"}(output_indices);`;case"cubic":return"output[global_idx] = bicubicInterpolation(output_indices);";default:throw Error(`Unsupported resize mode: ${d.mode}`)}})()}; +`} + }`;return{name:"Resize",shaderCache:{hint:`${d.cacheKey}|${x}|${B.length>0?B:""}|${E.length>0?E:""}|${L.length>0?L:""}|${ae}|${P}`,inputDependencies:["rank"]},getShaderSource:Ee,getRunData:()=>({outputs:[{dims:z,dataType:i.dataType}],dispatchGroup:{x:Math.ceil($/64)},programUniforms:[{type:12,data:$},{type:1,data:B},{type:1,data:L},...Ot(P,z)]})}},is=i=>{let d=i.customDataBuffer;return new Uint32Array(d,d.byteOffset,1)[0]},Fd=(i,d)=>{let x=[],C=[],E=[],A=is(i);if(d.antialias!==0)throw Error("Only default value (0) for Antialias attribute is supported");Jn(i.inputs,d,A,x,C,E),i.compute(xi(i.inputs[0],d,A,x,C,E),{inputs:[0]})},Ui=i=>{let d=i.antialias,x=i.axes,C=i.coordinateTransformMode,E=i.cubicCoeffA,A=i.excludeOutside!==0,P=i.extrapolationValue,L=i.keepAspectRatioPolicy,z=i.mode,B=i.nearestMode===""?"simple":i.nearestMode;return Fn({antialias:d,axes:x,coordinateTransformMode:C,cubicCoeffA:E,excludeOutside:A,extrapolationValue:P,keepAspectRatioPolicy:L,mode:z,nearestMode:B})}}),ss,Ra,Xl,Ph=s(()=>{Sn(),bn(),ir(),Nn(),ss=(i,d)=>{let[x,C,E,A]=i,{numHeads:P,rotaryEmbeddingDim:L}=d;if(x.dims.length!==3&&x.dims.length!==4)throw new Error(`Input 'x' is expected to have 3 or 4 dimensions, got ${x.dims.length}`);if(!dt.areEqual(C.dims,[])&&!dt.areEqual(C.dims,[1])&&C.dims.length!==2)throw new Error(`Input 'position_ids' is expected to have 0, 1, or 2 dimensions, got ${C.dims.length}`);if(E.dims.length!==2)throw new Error(`Input 'cos_cache' is expected to have 2 dimensions, got ${E.dims.length}`);if(A.dims.length!==2)throw new Error(`Input 'sin_cache' is expected to have 2 dimensions, got ${A.dims.length}`);if(!dt.areEqual(E.dims,A.dims))throw new Error("Inputs 'cos_cache' and 'sin_cache' are expected to have the same shape");if(L>0&&P===0)throw new Error("num_heads must be provided if rotary_embedding_dim is specified");let z=x.dims[0],B=x.dims[x.dims.length-2],X=E.dims[0],Y=dt.sizeFromDimension(x.dims,1)/B,$=L===0?E.dims[1]*2:Y/P;if(L>$)throw new Error("rotary_embedding_dim must be less than or equal to head_size");if(C.dims.length===2){if(z!==C.dims[0])throw new Error(`Input 'position_ids' dimension 0 should be of size batch_size, got ${C.dims[0]}`);if(B!==C.dims[1])throw new Error(`Input 'position_ids' dimension 1 should be of size sequence_length, got ${C.dims[1]}`)}if($/2!==E.dims[1]&&L/2!==E.dims[1])throw new Error(`Input 'cos_cache' dimension 1 should be same as head_size / 2 or rotary_embedding_dim / 2, got ${E.dims[1]}`);if(B>X)throw new Error("Updating cos_cache and sin_cache in RotaryEmbedding is not currently supported")},Ra=(i,d)=>{let{interleaved:x,numHeads:C,rotaryEmbeddingDim:E,scale:A}=d,P=i[0].dims[0],L=dt.sizeFromDimension(i[0].dims,1),z=i[0].dims[i[0].dims.length-2],B=L/z,X=i[2].dims[1],Y=E===0?X*2:B/C,$=new Array(P,z,B/Y,Y-X),ae=dt.computeStrides($),ce=[{type:1,data:A},{type:12,data:$},{type:12,data:ae},...i[0].dims.length===3?new Array({type:12,data:[L,B,Y,1]}):[],...i[0].dims.length===4?new Array({type:12,data:[L,Y,z*Y,1]}):[],...Ot(i[0].dims,i[1].dims,i[2].dims,i[3].dims,i[0].dims)],le=Se=>{let Ee=Pt("input",i[0].dataType,i[0].dims.length),be=Pt("position_ids",i[1].dataType,i[1].dims.length),Ve=Pt("cos_cache",i[2].dataType,i[2].dims.length),je=Pt("sin_cache",i[3].dataType,i[3].dims.length),et=pn("output",i[0].dataType,i[0].dims.length);return Se.registerUniforms([{name:"scale",type:"f32"},{name:"global_shape",type:"u32",length:$.length},{name:"global_strides",type:"u32",length:ae.length},{name:"input_output_strides",type:"u32",length:ae.length}]),` + ${Se.declareVariables(Ee,be,Ve,je,et)} + + ${Se.mainStart(wi)} + let half_rotary_emb_dim = uniforms.${Ve.name}_shape[1]; + let bsnh = global_idx / uniforms.global_strides % uniforms.global_shape; + let size = uniforms.global_shape[0] * uniforms.global_strides[0]; + ${Se.guardAgainstOutOfBoundsWorkgroupSizes("size")} + + if (bsnh[3] < half_rotary_emb_dim) { + let position_ids_idx = + ${be.broadcastedIndicesToOffset("bsnh.xy",pn("",be.type.tensor,2))}; + let position_id = + u32(${be.getByOffset("position_ids_idx")}) + select(0, bsnh[1], position_ids_idx == 0); + let i = dot(bsnh, uniforms.input_output_strides) + select(0, bsnh[3], ${x}); + let j = i + select(half_rotary_emb_dim, 1, ${x}); + let re = ${Ee.getByOffset("i")} * ${Ve.get("position_id","bsnh[3]")} - + ${Ee.getByOffset("j")} * ${je.get("position_id","bsnh[3]")}; + ${et.setByOffset("i","re")} + let im = ${Ee.getByOffset("i")} * ${je.get("position_id","bsnh[3]")} + + ${Ee.getByOffset("j")} * ${Ve.get("position_id","bsnh[3]")}; + ${et.setByOffset("j","im")} + } else { + let k = dot(bsnh, uniforms.input_output_strides) + half_rotary_emb_dim; + ${et.setByOffset("k",Ee.getByOffset("k"))} + } + }`};return{name:"RotaryEmbedding",shaderCache:{hint:Fn({interleaved:x}).cacheKey,inputDependencies:["rank","rank","rank","rank"]},getShaderSource:le,getRunData:()=>({outputs:[{dims:i[0].dims,dataType:i[0].dataType}],dispatchGroup:{x:Math.ceil(dt.size($)/wi)},programUniforms:ce})}},Xl=(i,d)=>{ss(i.inputs,d),i.compute(Ra(i.inputs,d))}}),pp,l_,u_,Oy=s(()=>{Sn(),bn(),Nn(),pp=i=>{if(!i||i.length<3)throw new Error("layerNorm requires at least 3 inputs.");let d=i[0],x=i[1],C=i[2];if(d.dataType!==x.dataType||d.dataType!==C.dataType)throw new Error("All inputs must have the same data type");if(d.dims.length!==3&&d.dims.length!==2)throw new Error("Input must be 2D or 3D");if(x.dims.length!==3&&x.dims.length!==2)throw new Error("Skip must be 2D or 3D");let E=d.dims[d.dims.length-1],A=d.dims[d.dims.length-2];if(x.dims[x.dims.length-1]!==E)throw new Error("Skip must have the same hidden size as input");if(x.dims[x.dims.length-2]!==A)throw new Error("Skip must have the same sequence length as input");if(C.dims.length!==1)throw new Error("Gamma must be 1D");if(C.dims[C.dims.length-1]!==E)throw new Error("Gamma must have the same hidden size as input");if(i.length>3){let P=i[3];if(P.dims.length!==1)throw new Error("Beta must be 1D");if(P.dims[P.dims.length-1]!==E)throw new Error("Beta must have the same hidden size as input")}if(i.length>4){let P=i[4];if(P.dims.length!==1)throw new Error("Bias must be 1D");if(P.dims[P.dims.length-1]!==E)throw new Error("Bias must have the same hidden size as input")}},l_=(i,d,x,C)=>{let E=d.simplified,A=i[0].dims,P=dt.size(A),L=A,z=P,B=A.slice(-1)[0],X=C?A.slice(0,-1).concat(1):[],Y=!E&&i.length>3,$=i.length>4,ae=C&&x>1,ce=C&&x>2,le=x>3,Se=64,Ee=cn(B),be=[{type:12,data:z},{type:12,data:Ee},{type:12,data:B},{type:1,data:d.epsilon}],Ve=et=>{let _t=[{name:"output_size",type:"u32"},{name:"components",type:"u32"},{name:"hidden_size",type:"u32"},{name:"epsilon",type:"f32"}],ot=[Pt("x",i[0].dataType,i[0].dims,Ee),Pt("skip",i[1].dataType,i[1].dims,Ee),Pt("gamma",i[2].dataType,i[2].dims,Ee)];Y&&ot.push(Pt("beta",i[3].dataType,i[3].dims,Ee)),$&&ot.push(Pt("bias",i[4].dataType,i[4].dims,Ee)),ot.push(pn("output",i[0].dataType,L,Ee)),ae&&ot.push(pn("mean_output",1,X)),ce&&ot.push(pn("inv_std_output",1,X)),le&&ot.push(pn("input_skip_bias_sum",i[0].dataType,L,Ee));let $t=Hn(i[0].dataType),Ht=Hn(1,Ee);return` + + ${et.registerUniforms(_t).declareVariables(...ot)} + var sum_shared : array<${Ht}, ${Se}>; + var sum_squared_shared : array<${Ht}, ${Se}>; + + ${et.mainStart([Se,1,1])} + let ix = local_id.x; + let iy = global_id.x / ${Se}; + + let hidden_size_vectorized: u32 = uniforms.hidden_size / uniforms.components; + var stride = hidden_size_vectorized / ${Se}; + let offset = ix * stride + iy * hidden_size_vectorized; + let offset1d = stride * ix; + if (ix == ${Se-1}) { + stride = hidden_size_vectorized - stride * ix; + } + for (var i: u32 = 0; i < stride; i++) { + let skip_value = skip[offset + i]; + let bias_value = ${$?"bias[offset1d + i]":$t+"(0.0)"}; + let input_value = x[offset + i]; + let value = input_value + skip_value + bias_value; + ${le?"input_skip_bias_sum[offset + i] = value;":""} + output[offset + i] = value; + let f32_value = ${ga($t,Ee,"value")}; + sum_shared[ix] += f32_value; + sum_squared_shared[ix] += f32_value * f32_value; + } + workgroupBarrier(); + + var reduce_size : u32 = ${Se}; + for (var curr_size = reduce_size >> 1; curr_size > 0; curr_size = reduce_size >> 1) { + reduce_size = curr_size + (reduce_size & 1); + if (ix < curr_size) { + sum_shared[ix] += sum_shared[ix + reduce_size]; + sum_squared_shared[ix] += sum_squared_shared[ix + reduce_size]; + } + workgroupBarrier(); + } + + let sum = sum_shared[0]; + let square_sum = sum_squared_shared[0]; + let mean = ${Ks("sum",Ee)} / f32(uniforms.hidden_size); + let inv_std_dev = inverseSqrt(${Ks("square_sum",Ee)} / f32(uniforms.hidden_size) ${E?"":"- mean * mean"} + uniforms.epsilon); + ${ae?"mean_output[global_idx] = mean;":""} + ${ce?"inv_std_output[global_idx] = inv_std_dev;":""} + + for (var i: u32 = 0; i < stride; i++) { + output[offset + i] = (output[offset + i] ${E?"":`- ${$t}(mean)`}) * + ${$t}(inv_std_dev) * gamma[offset1d + i] + ${Y?"+ beta[offset1d + i]":""}; + } + }`},je=[{dims:L,dataType:i[0].dataType}];return x>1&&je.push({dims:X,dataType:1}),x>2&&je.push({dims:X,dataType:1}),x>3&&je.push({dims:A,dataType:i[0].dataType}),{name:"SkipLayerNormalization",shaderCache:{hint:`${Ee};${ae};${ce};${le}`,inputDependencies:i.map((et,_t)=>"type")},getShaderSource:Ve,getRunData:()=>({outputs:je,dispatchGroup:{x:Math.ceil(z/B)},programUniforms:be})}},u_=(i,d)=>{pp(i.inputs);let x=[0];i.outputCount>1&&x.push(-3),i.outputCount>2&&x.push(-3),i.outputCount>3&&x.push(3),i.compute(l_(i.inputs,d,i.outputCount,!1),{outputs:x})}}),c_,kh,bm,mp,xm,d_,f_,h_,p_=s(()=>{Sn(),bn(),ir(),Nn(),c_=(i,d)=>{if(!i||i.length<1)throw new Error("too few inputs");if(d.axes.length!==0){if(d.axes.length!==d.starts.length||d.axes.length!==d.ends.length)throw new Error("axes, starts and ends must have the same length")}else if(d.starts.length!==d.ends.length)throw new Error("starts and ends must have the same length");i.slice(1).forEach((x,C)=>{if(i[C+1].dataType!==6&&i[C+1].dataType!==7)throw new Error(`Input ${C} must be an array of int32 or int64`)})},kh=(i,d)=>{let x=[];if(i.length>d)if(i[d].dataType===7)i[d].getBigInt64Array().forEach(C=>x.push(Number(C)));else if(i[d].dataType===6)i[d].getInt32Array().forEach(C=>x.push(Number(C)));else throw new Error(`Input ${d} must be an array of int32 or int64`);return x},bm=(i,d)=>{if(i.length>1){let x=kh(i,1),C=kh(i,2),E=kh(i,3);return E.length===0&&(E=[...Array(i[0].dims.length).keys()]),Fn({starts:x,ends:C,axes:E})}else return d},mp=(i,d,x,C,E)=>{let A=i;return i<0&&(A+=x[C[d]]),E[d]<0?Math.max(0,Math.min(A,x[C[d]]-1)):Math.max(0,Math.min(A,x[C[d]]))},xm=(i,d,x)=>`fn calculateInputIndices(output_indices: ${d.type.indices}) -> ${i.type.indices} { + var input_indices: ${i.type.indices}; + var carry = 0u; + for (var i = ${x.length}; i >= 0; i--) { + let input_shape_i = ${fn("uniforms.input_shape","i",x.length)}; + let steps_i = ${fn("uniforms.steps","i",x.length)}; + let signs_i = ${fn("uniforms.signs","i",x.length)}; + let starts_i = ${fn("uniforms.starts","i",x.length)}; + var output_index = ${d.indicesGet("output_indices","i")}; + var input_index = output_index * steps_i + starts_i + carry; + carry = input_index / input_shape_i; + input_index = input_index % input_shape_i; + if (signs_i < 0) { + input_index = input_shape_i - input_index - 1u + starts_i; + } + ${i.indicesSet("input_indices","i","input_index")}; + } + return input_indices; + }`,d_=(i,d)=>{let x=i[0].dims,C=dt.size(x),E=d.axes.length>0?dt.normalizeAxes(d.axes,x.length):[...Array(x.length).keys()],A=kh(i,4);A.forEach(Ee=>Ee!==0||(()=>{throw new Error("step cannot be 0")})),A.length===0&&(A=Array(E.length).fill(1));let P=d.starts.map((Ee,be)=>mp(Ee,be,x,E,A)),L=d.ends.map((Ee,be)=>mp(Ee,be,x,E,A));if(E.length!==P.length||E.length!==L.length)throw new Error("start, ends and axes should have the same number of elements");if(E.length!==x.length)for(let Ee=0;EeMath.sign(Ee));A.forEach((Ee,be,Ve)=>{if(Ee<0){let je=(L[be]-P[be])/Ee,et=P[be],_t=et+je*A[be];P[be]=_t,L[be]=et,Ve[be]=-Ee}});let B=x.slice(0);E.forEach((Ee,be)=>{B[Ee]=Math.ceil((L[Ee]-P[Ee])/A[Ee])});let X={dims:B,dataType:i[0].dataType},Y=pn("output",i[0].dataType,B.length),$=Pt("input",i[0].dataType,i[0].dims.length),ae=dt.size(B),ce=[{name:"outputSize",type:"u32"},{name:"starts",type:"u32",length:P.length},{name:"signs",type:"i32",length:z.length},{name:"steps",type:"u32",length:A.length}],le=[{type:12,data:ae},{type:12,data:P},{type:6,data:z},{type:12,data:A},...Ot(i[0].dims,B)],Se=Ee=>` + ${Ee.registerUniforms(ce).declareVariables($,Y)} + ${xm($,Y,x)} + ${Ee.mainStart()} + ${Ee.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")} + let output_indices = ${Y.offsetToIndices("global_idx")}; + let input_indices = calculateInputIndices(output_indices); + ${Y.setByOffset("global_idx",$.getByIndices("input_indices"))} + }`;return{name:"Slice",shaderCache:{hint:`${z.length}_${P.length}_${A.length}`,inputDependencies:["rank"]},getShaderSource:Se,getRunData:()=>({outputs:[X],dispatchGroup:{x:Math.ceil(C/64)},programUniforms:le})}},f_=(i,d)=>{c_(i.inputs,d);let x=bm(i.inputs,d);i.compute(d_(i.inputs,x),{inputs:[0]})},h_=i=>{let d=i.starts,x=i.ends,C=i.axes;return Fn({starts:d,ends:x,axes:C})}}),m_,g_,__,v_,Ay=s(()=>{Sn(),bn(),ir(),Wr(),Nn(),m_=i=>{if(!i||i.length!==1)throw new Error("Softmax op requires 1 input.")},g_=(i,d)=>{let x=i.inputs[0],C=x.dims,E=dt.size(C),A=64,P=C.length,L=dt.normalizeAxis(d.axis,P),z=L$t),X[L]=P-1,X[P-1]=L,B=i.compute(zi(x,X),{inputs:[x],outputs:[-1]})[0]):B=x;let Y=B.dims,$=Y[P-1],ae=E/$,ce=cn($),le=$/ce,Se=(ot,$t)=>$t===4?`max(max(${ot}.x, ${ot}.y), max(${ot}.z, ${ot}.w))`:$t===2?`max(${ot}.x, ${ot}.y)`:$t===3?`max(max(${ot}.x, ${ot}.y), ${ot}.z)`:ot,Ee=Pt("x",B.dataType,B.dims,ce),be=pn("result",B.dataType,B.dims,ce),Ve=Ee.type.value,je=Hn(B.dataType)==="f32"?`var threadMax = ${Ve}(-3.402823e+38f);`:`var threadMax = ${Ve}(-65504.0h);`,et=ot=>` + var rowMaxShared : ${Ve}; + var rowSumShared : ${Ve}; + var threadShared : array<${Ve}, ${A}>; + + fn getValue(row: i32, col: i32, row_stride: i32) -> ${Ve} { + let index = row * row_stride + col; + return x[index]; + } + + fn setValue(row: i32, col: i32, row_stride: i32, value: ${Ve}) { + let index = row * row_stride + col; + result[index] = value; + } + ${ot.registerUniform("packedCols","i32").declareVariables(Ee,be)} + ${ot.mainStart()} + let gindex = i32(global_idx); + let lindex = i32(local_idx); + const wg = ${A}; + let row = gindex / wg; + let cols = uniforms.packedCols; + let row_stride : i32 = uniforms.packedCols; + + // find the rows max + ${je} + for (var col = lindex; col < cols; col += wg) { + let value = getValue(row, col, row_stride); + threadMax = max(threadMax, value); + } + if (lindex < cols) { + threadShared[lindex] = threadMax; + } + workgroupBarrier(); + + var reduceSize = min(cols, wg); + for (var currSize = reduceSize >> 1; currSize > 0; currSize = reduceSize >> 1) { + reduceSize = currSize + (reduceSize & 1); + if (lindex < currSize) { + threadShared[lindex] = max(threadShared[lindex], threadShared[lindex + reduceSize]); + } + workgroupBarrier(); + } + if (lindex == 0) { + rowMaxShared = ${Ve}(${Se("threadShared[0]",ce)}); + } + workgroupBarrier(); + + // find the rows sum + var threadSum = ${Ve}(0.0); + for (var col = lindex; col < cols; col += wg) { + let subExp = exp(getValue(row, col, row_stride) - rowMaxShared); + threadSum += subExp; + } + threadShared[lindex] = threadSum; + workgroupBarrier(); + + for (var currSize = wg >> 1; currSize > 0; currSize = currSize >> 1) { + if (lindex < currSize) { + threadShared[lindex] = threadShared[lindex] + threadShared[lindex + currSize]; + } + workgroupBarrier(); + } + if (lindex == 0) { + rowSumShared = ${Ve}(${Ks("threadShared[0]",ce)}); + } + workgroupBarrier(); + + // calculate final value for each element in the row + for (var col = lindex; col < cols; col += wg) { + let value = exp(getValue(row, col, row_stride) - rowMaxShared) / rowSumShared; + setValue(row, col, row_stride, value); + } + }`,_t=i.compute({name:"Softmax",shaderCache:{hint:`${ce}`,inputDependencies:["type"]},getRunData:()=>({outputs:[{dims:Y,dataType:B.dataType}],dispatchGroup:{x:ae},programUniforms:[{type:6,data:le}]}),getShaderSource:et},{inputs:[B],outputs:[z?-1:0]})[0];z&&i.compute(zi(_t,X),{inputs:[_t]})},__=(i,d)=>{m_(i.inputs),g_(i,d)},v_=i=>Fn({axis:i.axis})}),y_,Ns,w_,b_,x_,Sm,S_,Iy=s(()=>{Sn(),bn(),ir(),Nn(),y_=i=>{if(!i||i.length<1)throw new Error("too few inputs")},Ns=(i,d)=>{let x=[],C=d.numOutputs;return i[1].dims[0]>0&&(i[1].getBigInt64Array().forEach(E=>x.push(Number(E))),C=x.length),Fn({numOutputs:C,axis:d.axis,splitSizes:x})},w_=i=>` +fn calculateOutputIndex(index: u32) -> u32 { + for (var i: u32 = 0u; i < ${i}u; i += 1u ) { + if (index < ${fn("uniforms.size_in_split_axis","i",i)}) { + return i; + } + } + return ${i}u; +}`,b_=i=>{let d=i.length,x=[];for(let C=0;C{let x=i[0].dims,C=dt.size(x),E=i[0].dataType,A=dt.normalizeAxis(d.axis,x.length),P=new Array(d.numOutputs),L=Pt("input",E,x.length),z=new Array(d.numOutputs),B=[],X=[],Y=0,$=[{type:12,data:C}];for(let ce=0;ce` + ${ce.registerUniform("input_size","u32").registerUniform("size_in_split_axis","u32",z.length).declareVariables(L,...P)} + ${w_(z.length)} + ${b_(P)} + + ${ce.mainStart()} + ${ce.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.input_size")} + + var indices = ${L.offsetToIndices("global_idx")}; + var index = ${L.indicesGet("indices",A)}; + let output_number = calculateOutputIndex(index); + if (output_number != 0) { + index -= ${fn("uniforms.size_in_split_axis","output_number - 1u",z.length)}; + ${L.indicesSet("indices",A,"index")}; + } + writeBufferData(output_number, indices, global_idx); + }`;return{name:"Split",shaderCache:{hint:d.cacheKey,inputDependencies:["rank"]},getShaderSource:ae,getRunData:()=>({outputs:B,dispatchGroup:{x:Math.ceil(C/64)},programUniforms:$})}},Sm=(i,d)=>{y_(i.inputs);let x=i.inputs.length===1?d:Ns(i.inputs,d);i.compute(x_(i.inputs,x),{inputs:[0]})},S_=i=>{let d=i.axis,x=i.splitSizes,C=i.numOutputs<0?x.length:i.numOutputs;if(C!==x.length)throw new Error("numOutputs and splitSizes lengh must be equal");return Fn({axis:d,numOutputs:C,splitSizes:x})}}),T_,C_,gp,Fy=s(()=>{Sn(),bn(),Nn(),T_=(i,d,x,C,E)=>{let A=pn("output_data",E,x.length,4),P=Pt("a_data",d[1].dataType,d[1].dims.length,4),L=Pt("b_data",d[2].dataType,d[2].dims.length,4),z=Pt("c_data",d[0].dataType,d[0].dims.length,4),B,X=(Y,$,ae)=>`select(${$}, ${Y}, ${ae})`;if(!C)B=A.setByOffset("global_idx",X(P.getByOffset("global_idx"),L.getByOffset("global_idx"),z.getByOffset("global_idx")));else{let Y=($,ae,ce="")=>{let le=`a_data[index_a${ae}][component_a${ae}]`,Se=`b_data[index_b${ae}][component_b${ae}]`,Ee=`bool(c_data[index_c${ae}] & (0xffu << (component_c${ae} * 8)))`;return` + let output_indices${ae} = ${A.offsetToIndices(`global_idx * 4u + ${ae}u`)}; + let offset_a${ae} = ${P.broadcastedIndicesToOffset(`output_indices${ae}`,A)}; + let offset_b${ae} = ${L.broadcastedIndicesToOffset(`output_indices${ae}`,A)}; + let offset_c${ae} = ${z.broadcastedIndicesToOffset(`output_indices${ae}`,A)}; + let index_a${ae} = offset_a${ae} / 4u; + let index_b${ae} = offset_b${ae} / 4u; + let index_c${ae} = offset_c${ae} / 4u; + let component_a${ae} = offset_a${ae} % 4u; + let component_b${ae} = offset_b${ae} % 4u; + let component_c${ae} = offset_c${ae} % 4u; + ${$}[${ae}] = ${ce}(${X(le,Se,Ee)}); + `};E===9?B=` + var data = vec4(0); + ${Y("data",0,"u32")} + ${Y("data",1,"u32")} + ${Y("data",2,"u32")} + ${Y("data",3,"u32")} + output_data[global_idx] = dot(vec4(0x1, 0x100, 0x10000, 0x1000000), vec4(data));`:B=` + ${Y("output_data[global_idx]",0)} + ${Y("output_data[global_idx]",1)} + ${Y("output_data[global_idx]",2)} + ${Y("output_data[global_idx]",3)} + `}return` + ${i.registerUniform("vec_size","u32").declareVariables(z,P,L,A)} + ${i.mainStart()} + ${i.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.vec_size")} + ${B} + }`},C_=i=>{let d=i[1].dims,x=i[2].dims,C=i[0].dims,E=i[1].dataType,A=!(dt.areEqual(d,x)&&dt.areEqual(x,C)),P=d,L=dt.size(d);if(A){let B=Ei.calcShape(Ei.calcShape(d,x,!1),C,!1);if(!B)throw new Error("Can't perform where op on the given tensors");P=B,L=dt.size(P)}let z=Math.ceil(L/4);return{name:"Where",shaderCache:{inputDependencies:["rank","rank","rank"]},getShaderSource:B=>T_(B,i,P,A,E),getRunData:()=>({outputs:[{dims:P,dataType:E}],dispatchGroup:{x:Math.ceil(L/64/4)},programUniforms:[{type:12,data:z},...Ot(C,d,x,P)]})}},gp=i=>{i.compute(C_(i.inputs))}}),M_,$y=s(()=>{Mf(),ln(),Fc(),np(),rp(),ip(),Gf(),Du(),nd(),op(),oh(),lp(),up(),Zi(),fh(),Gu(),hh(),ph(),jl(),yh(),fp(),Jc(),bh(),gh(),Od(),U(),pt(),An(),kc(),La(),Ph(),Oy(),p_(),Ay(),Iy(),Nl(),Wr(),xa(),Fy(),M_=new Map([["Abs",[Ao]],["Acos",[Tr]],["Acosh",[Of]],["Add",[Pu]],["ArgMax",[Oc,Ac]],["ArgMin",[Ki,Ac]],["Asin",[$c]],["Asinh",[wl]],["Atan",[Dc]],["Atanh",[Af]],["Attention",[mt]],["AveragePool",[_n,Ch]],["BatchNormalization",[Er]],["BiasAdd",[yl]],["BiasSplitGelu",[zf]],["Cast",[bl,If]],["Ceil",[Lc]],["Clip",[Io]],["Concat",[Fs,Uf]],["Conv",[Fl,ni]],["ConvTranspose",[ih,td]],["Cos",[xl]],["Cosh",[Cu]],["CumSum",[id,sh]],["DepthToSpace",[Dl,sd]],["DequantizeLinear",[Qe,vt]],["Div",[me]],["Einsum",[cd,Rl]],["Elu",[Sl,Fo]],["Equal",[eo]],["Erf",[Do]],["Exp",[wa]],["Expand",[so]],["FastGelu",[dd]],["Floor",[Lo]],["FusedConv",[Fl,ni]],["Gather",[fd,Bl]],["GatherElements",[dr,pd]],["GatherBlockQuantized",[Vu,Uu]],["Gelu",[Ff]],["Gemm",[md,Ls]],["GlobalAveragePool",[li,oi]],["GlobalMaxPool",[Eh,Mh]],["Greater",[Bf]],["GreaterOrEqual",[ku]],["GroupQueryAttention",[oo,bd]],["HardSigmoid",[Bc,zc]],["InstanceNormalization",[Wl]],["LayerNormalization",[Ul]],["LeakyRelu",[$f,Fo]],["Less",[Nf]],["LessOrEqual",[Sa]],["Log",[ba]],["MatMul",[ys]],["MatMulNBits",[Qu,wh]],["MaxPool",[Da,hp]],["Mul",[Wo]],["MultiHeadAttention",[vd,gd]],["Neg",[Tl]],["Not",[Rc]],["Pad",[Ju]],["Pow",[Qi]],["QuickGelu",[jo,Fo]],["Range",[an]],["Reciprocal",[Cl]],["ReduceMin",[Ec]],["ReduceMean",[Cc]],["ReduceMax",[Tu]],["ReduceSum",[vl]],["ReduceProd",[Is]],["ReduceL1",[Qa]],["ReduceL2",[Tf]],["ReduceLogSum",[Pc]],["ReduceLogSumExp",[Mc]],["ReduceSumSquare",[Cf]],["Relu",[Ro]],["Resize",[Fd,Ui]],["RotaryEmbedding",[Xl]],["Sigmoid",[Df]],["Sin",[Nc]],["Sinh",[Kr]],["Slice",[f_,h_]],["SkipLayerNormalization",[u_]],["Split",[Sm,S_]],["Sqrt",[ai]],["Softmax",[__,v_]],["Sub",[Qn]],["Tan",[Lf]],["Tanh",[Wc]],["ThresholdedRelu",[Eu,Fo]],["Tile",[_h]],["Transpose",[mf,gc]],["Where",[gp]]])}),E_,Dy=s(()=>{Mt(),H(),Nn(),E_=class{constructor(i){this.backend=i,this.repo=new Map,this.attributesBound=!1}getArtifact(i){return this.repo.get(i)}setArtifact(i,d){this.repo.set(i,d)}run(i,d,x,C,E){xe(i.programInfo.name);let A=this.backend.device,P=this.backend.getComputePassEncoder();this.backend.writeTimestamp(this.backend.pendingDispatchNumber*2);let L=[];for(let B of d)L.push({binding:L.length,resource:{buffer:B.buffer}});for(let B of x)L.push({binding:L.length,resource:{buffer:B.buffer}});E&&L.push({binding:L.length,resource:E});let z=A.createBindGroup({layout:i.computePipeline.getBindGroupLayout(0),entries:L,label:i.programInfo.name});if(this.backend.sessionStatus==="capturing"){let B={kernelId:this.backend.currentKernelId,computePipeline:i.computePipeline,bindGroup:z,dispatchGroup:C};this.backend.capturedCommandList.get(this.backend.currentSessionId).push(B)}P.setPipeline(i.computePipeline),P.setBindGroup(0,z),P.dispatchWorkgroups(...C),this.backend.writeTimestamp(this.backend.pendingDispatchNumber*2+1),this.backend.pendingDispatchNumber++,(this.backend.pendingDispatchNumber>=this.backend.maxDispatchNumber||this.backend.queryType==="at-passes")&&this.backend.endComputePass(),this.backend.pendingDispatchNumber>=this.backend.maxDispatchNumber&&this.backend.flush(),De(i.programInfo.name)}dispose(){}build(i,d){xe(i.name);let x=this.backend.device,C=[];x.features.has("shader-f16")&&C.push("enable f16;");let E=mu(d,this.backend.device.limits),A=i.getShaderSource(E),P=`${C.join(` +`)} +${E.additionalImplementations} +${A}`,L=x.createShaderModule({code:P,label:i.name});Ke("verbose",()=>`[WebGPU] ${i.name} shader code: ${P}`);let z=x.createComputePipeline({compute:{module:L,entryPoint:"main"},layout:"auto",label:i.name});return De(i.name),{programInfo:i,computePipeline:z,uniformVariablesInfo:E.variablesInfo}}normalizeDispatchGroupSize(i){let d=typeof i=="number"?i:i.x,x=typeof i=="number"?1:i.y||1,C=typeof i=="number"?1:i.z||1,E=this.backend.device.limits.maxComputeWorkgroupsPerDimension;if(d<=E&&x<=E&&C<=E)return[d,x,C];let A=d*x*C,P=Math.ceil(Math.sqrt(A));if(P>E){if(P=Math.ceil(Math.cbrt(A)),P>E)throw new Error("Total dispatch size exceeds WebGPU maximum.");return[P,P,P]}else return[P,P,1]}}}),P_,k_,O_,A_,Ly=s(()=>{Mt(),Sn(),H(),Le(),tr(),$y(),Dy(),P_=(i,d)=>{if(d.length!==i.length)throw new Error(`inputDependencies length ${d.length} is not equal to inputTensors length ${i.length}.`);let x=[];for(let C=0;C{var E,A,P;let C=i.name;return(E=i.shaderCache)!=null&&E.hint&&(C+="["+i.shaderCache.hint+"]"),C+=":"+x+`:${P_(d,(P=(A=i.shaderCache)==null?void 0:A.inputDependencies)!=null?P:new Array(d.length).fill("dims"))}`,C},O_=class{constructor(i){i&&(this.architecture=i.architecture,this.vendor=i.vendor)}isArchitecture(i){return this.architecture===i}isVendor(i){return this.vendor===i}},A_=class{constructor(){this.currentSessionId=null,this.currentKernelId=null,this.commandEncoder=null,this.computePassEncoder=null,this.maxDispatchNumber=16,this.pendingDispatchNumber=0,this.pendingKernels=[],this.pendingQueries=new Map,this.sessionStatus="default",this.capturedCommandList=new Map,this.capturedPendingKernels=new Map,this.sessionExternalDataMapping=new Map}get currentKernelCustomData(){if(this.currentKernelId===null)throw new Error("currentKernelCustomData(): currentKernelId is null. (should not happen)");let i=this.kernelCustomData.get(this.currentKernelId);return i||(i={},this.kernelCustomData.set(this.currentKernelId,i)),i}async initialize(i,d){this.env=i;let x=[],C={requiredLimits:{maxComputeWorkgroupStorageSize:d.limits.maxComputeWorkgroupStorageSize,maxComputeWorkgroupsPerDimension:d.limits.maxComputeWorkgroupsPerDimension,maxStorageBufferBindingSize:d.limits.maxStorageBufferBindingSize,maxBufferSize:d.limits.maxBufferSize,maxComputeInvocationsPerWorkgroup:d.limits.maxComputeInvocationsPerWorkgroup,maxComputeWorkgroupSizeX:d.limits.maxComputeWorkgroupSizeX,maxComputeWorkgroupSizeY:d.limits.maxComputeWorkgroupSizeY,maxComputeWorkgroupSizeZ:d.limits.maxComputeWorkgroupSizeZ},requiredFeatures:x};d.features.has("chromium-experimental-timestamp-query-inside-passes")?x.push("chromium-experimental-timestamp-query-inside-passes"):d.features.has("timestamp-query")&&x.push("timestamp-query"),d.features.has("shader-f16")&&x.push("shader-f16"),this.device=await d.requestDevice(C),this.adapterInfo=new O_(d.info||await d.requestAdapterInfo()),this.gpuDataManager=vr(this),this.programManager=new E_(this),this.kernels=new Map,this.kernelPersistentData=new Map,this.kernelCustomData=new Map,Os(i.logLevel,!!i.debug),this.device.onuncapturederror=E=>{E.error instanceof GPUValidationError&&console.error(`An uncaught WebGPU validation error was raised: ${E.error.message}`)},Object.defineProperty(this.env.webgpu,"device",{value:this.device,writable:!1,enumerable:!0,configurable:!1}),Object.defineProperty(this.env.webgpu,"adapter",{value:d,writable:!1,enumerable:!0,configurable:!1}),this.setQueryType()}dispose(){typeof this.querySet<"u"&&this.querySet.destroy(),this.gpuDataManager.dispose()}getCommandEncoder(){return this.commandEncoder||(this.commandEncoder=this.device.createCommandEncoder()),this.commandEncoder}getComputePassEncoder(){if(!this.computePassEncoder){let i=this.getCommandEncoder(),d={};this.queryType==="at-passes"&&(d.timestampWrites={querySet:this.querySet,beginningOfPassWriteIndex:this.pendingDispatchNumber*2,endOfPassWriteIndex:this.pendingDispatchNumber*2+1}),this.computePassEncoder=i.beginComputePass(d)}return this.computePassEncoder}endComputePass(){this.computePassEncoder&&(this.computePassEncoder.end(),this.computePassEncoder=null)}flush(){if(!this.commandEncoder)return;xe(),this.endComputePass();let i;this.queryType!=="none"&&(this.commandEncoder.resolveQuerySet(this.querySet,0,this.pendingDispatchNumber*2,this.queryResolveBuffer,0),i=this.device.createBuffer({size:this.pendingDispatchNumber*2*8,usage:GPUBufferUsage.MAP_READ|GPUBufferUsage.COPY_DST}),this.pendingQueries.set(i,this.pendingKernels),this.pendingKernels=[],this.commandEncoder.copyBufferToBuffer(this.queryResolveBuffer,0,i,0,this.pendingDispatchNumber*2*8)),this.device.queue.submit([this.commandEncoder.finish()]),this.gpuDataManager.refreshPendingBuffers(),this.commandEncoder=null,this.pendingDispatchNumber=0,this.queryType!=="none"&&i.mapAsync(GPUMapMode.READ).then(()=>{var C;let d=new BigUint64Array(i.getMappedRange()),x=this.pendingQueries.get(i);for(let E=0;E"u"&&(this.queryTimeBase=ae);let le=Number(ae-this.queryTimeBase),Se=Number(ce-this.queryTimeBase);if(!Number.isSafeInteger(le)||!Number.isSafeInteger(Se))throw new RangeError("incorrect timestamp range");if((C=this.env.webgpu.profiling)!=null&&C.ondata)this.env.webgpu.profiling.ondata({version:1,inputsMetadata:Y.map(Ee=>({dims:Ee.dims,dataType:fs(Ee.dataType)})),outputsMetadata:$.map(Ee=>({dims:Ee.dims,dataType:fs(Ee.dataType)})),kernelId:P,kernelType:z,kernelName:B,programName:X,startTime:le,endTime:Se});else{let Ee="";Y.forEach((Ve,je)=>{Ee+=`input[${je}]: [${Ve.dims}] | ${fs(Ve.dataType)}, `});let be="";$.forEach((Ve,je)=>{be+=`output[${je}]: [${Ve.dims}] | ${fs(Ve.dataType)}, `}),console.log(`[profiling] kernel "${P}|${z}|${B}|${X}" ${Ee}${be}execution time: ${Se-le} ns`)}He("GPU",`${X}::${ae}::${ce}`)}i.unmap(),this.pendingQueries.delete(i)}),De()}run(i,d,x,C,E,A){xe(i.name);let P=[];for(let be=0;beVe):x;if(X.length!==L.length)throw new Error(`Output size ${X.length} must be equal to ${L.length}.`);let Y=[],$=[];for(let be=0;be=A)throw new Error(`Invalid output index: ${X[be]}`);if(X[be]===-3)continue;let Ve=X[be]===-1,je=X[be]===-2,et=Ve||je?E(L[be].dataType,L[be].dims):C(X[be],L[be].dataType,L[be].dims);if(Y.push(et),et.data===0)continue;let _t=this.gpuDataManager.get(et.data);if(!_t)throw new Error(`no GPU data for output: ${et.data}`);if(Ve&&this.temporaryData.push(_t),je){let ot=this.kernelPersistentData.get(this.currentKernelId);ot||(ot=[],this.kernelPersistentData.set(this.currentKernelId,ot)),ot.push(_t)}$.push(_t)}if(P.length!==d.length||$.length!==Y.length){if($.length===0)return De(i.name),Y;throw new Error(`Program ${i.name} has zero-sized tensor(s) in inputs or outputs. This is not supported now.`)}let ae;if(B){let be=0,Ve=[];B.forEach(ot=>{let $t=typeof ot.data=="number"?[ot.data]:ot.data;if($t.length===0)return;let Ht=ot.type===10?2:4,dn,Pn;ot.type===10?(Pn=$t.length>4?16:$t.length>2?8:$t.length*Ht,dn=$t.length>4?16:Ht*$t.length):(Pn=$t.length<=2?$t.length*Ht:16,dn=16),be=Math.ceil(be/Pn)*Pn,Ve.push(be);let kn=ot.type===10?8:4;be+=$t.length>4?Math.ceil($t.length/kn)*dn:$t.length*Ht});let je=16;be=Math.ceil(be/je)*je;let et=new ArrayBuffer(be);B.forEach((ot,$t)=>{let Ht=Ve[$t],dn=typeof ot.data=="number"?[ot.data]:ot.data;if(ot.type===6)new Int32Array(et,Ht,dn.length).set(dn);else if(ot.type===12)new Uint32Array(et,Ht,dn.length).set(dn);else if(ot.type===10)new Uint16Array(et,Ht,dn.length).set(dn);else if(ot.type===1)new Float32Array(et,Ht,dn.length).set(dn);else throw new Error(`Unsupported uniform type: ${fs(ot.type)}`)});let _t=this.gpuDataManager.create(be,GPUBufferUsage.COPY_DST|GPUBufferUsage.UNIFORM);this.device.queue.writeBuffer(_t.buffer,0,et,0,be),this.gpuDataManager.release(_t.id),ae={offset:0,size:be,buffer:_t.buffer}}let ce=this.programManager.normalizeDispatchGroupSize(z),le=ce[1]===1&&ce[2]===1,Se=k_(i,d,le),Ee=this.programManager.getArtifact(Se);if(Ee||(Ee=this.programManager.build(i,ce),this.programManager.setArtifact(Se,Ee),Ke("info",()=>`[artifact] key: ${Se}, programName: ${i.name}`)),B&&Ee.uniformVariablesInfo){if(B.length!==Ee.uniformVariablesInfo.length)throw new Error(`Uniform variables count mismatch: expect ${Ee.uniformVariablesInfo.length}, got ${B.length} in program "${Ee.programInfo.name}".`);for(let be=0;be`[ProgramManager] run "${i.name}" (key=${Se}) with ${ce[0]}x${ce[1]}x${ce[2]}`),this.queryType!=="none"||this.sessionStatus==="capturing"){let be={kernelId:this.currentKernelId,programName:Ee.programInfo.name,inputTensorViews:d,outputTensorViews:Y};this.pendingKernels.push(be),this.sessionStatus==="capturing"&&this.capturedPendingKernels.get(this.currentSessionId).push(be)}return this.programManager.run(Ee,P,$,ce,ae),De(i.name),Y}upload(i,d){this.gpuDataManager.upload(i,d)}memcpy(i,d){this.gpuDataManager.memcpy(i,d)}async download(i,d){await this.gpuDataManager.download(i,d)}alloc(i){return this.gpuDataManager.create(i).id}free(i){return this.gpuDataManager.release(i)}createKernel(i,d,x,C){let E=M_.get(i);if(!E)throw new Error(`kernel not implemented: ${i}`);let A={kernelType:i,kernelName:C,kernelEntry:E[0],attributes:[E[1],x]};this.kernels.set(d,A)}releaseKernel(i){let d=this.kernelPersistentData.get(i);if(d){for(let x of d)this.gpuDataManager.release(x.id);this.kernelPersistentData.delete(i)}this.kernelCustomData.delete(i),this.kernels.delete(i)}computeKernel(i,d,x){let C=this.kernels.get(i);if(!C)throw new Error(`kernel not created: ${i}`);let E=C.kernelType,A=C.kernelName,P=C.kernelEntry,L=C.attributes;if(this.currentKernelId!==null)throw new Error(`kernel "[${E}] ${A}" is not allowed to be called recursively`);this.currentKernelId=i,L[0]&&(L[1]=L[0](L[1]),L[0]=void 0),Ke("info",()=>`[WebGPU] Start to run kernel "[${E}] ${A}"...`);let z=this.env.debug;this.temporaryData=[];try{return z&&this.device.pushErrorScope("validation"),P(d,L[1]),0}catch(B){return x.push(Promise.resolve(`[WebGPU] Kernel "[${E}] ${A}" failed. ${B}`)),1}finally{z&&x.push(this.device.popErrorScope().then(B=>B?`GPU validation error for kernel "[${E}] ${A}": ${B.message}`:null));for(let B of this.temporaryData)this.gpuDataManager.release(B.id);this.temporaryData=[],this.currentKernelId=null}}registerBuffer(i,d,x,C){let E=this.sessionExternalDataMapping.get(i);E||(E=new Map,this.sessionExternalDataMapping.set(i,E));let A=E.get(d),P=this.gpuDataManager.registerExternalBuffer(x,C,A);return E.set(d,[P,x]),P}unregisterBuffers(i){let d=this.sessionExternalDataMapping.get(i);d&&(d.forEach(x=>this.gpuDataManager.unregisterExternalBuffer(x[0])),this.sessionExternalDataMapping.delete(i))}getBuffer(i){let d=this.gpuDataManager.get(i);if(!d)throw new Error(`no GPU data for buffer: ${i}`);return d.buffer}createDownloader(i,d,x){return async()=>{let C=await En(this,i,d);return ve(C.buffer,x)}}writeTimestamp(i){this.queryType==="inside-passes"&&this.computePassEncoder.writeTimestamp(this.querySet,i)}setQueryType(){var i;this.queryType="none",(((i=this.env.webgpu.profiling)==null?void 0:i.mode)==="default"||(typeof this.env.trace>"u"?this.env.wasm.trace:this.env.trace))&&(this.device.features.has("chromium-experimental-timestamp-query-inside-passes")?this.queryType="inside-passes":this.device.features.has("timestamp-query")&&(this.queryType="at-passes"),this.queryType!=="none"&&typeof this.querySet>"u"&&(this.querySet=this.device.createQuerySet({type:"timestamp",count:this.maxDispatchNumber*2}),this.queryResolveBuffer=this.device.createBuffer({size:this.maxDispatchNumber*2*8,usage:GPUBufferUsage.COPY_SRC|GPUBufferUsage.QUERY_RESOLVE})))}captureBegin(){Ke("info","captureBegin"),this.capturedCommandList.get(this.currentSessionId)||this.capturedCommandList.set(this.currentSessionId,[]),this.capturedPendingKernels.get(this.currentSessionId)||this.capturedPendingKernels.set(this.currentSessionId,[]),this.flush(),this.sessionStatus="capturing"}captureEnd(){Ke("info","captureEnd"),this.flush(),this.sessionStatus="default"}replay(){Ke("info","replay"),this.sessionStatus="replaying";let i=this.capturedCommandList.get(this.currentSessionId),d=this.capturedPendingKernels.get(this.currentSessionId),x=i.length;this.pendingKernels=[];for(let C=0;C=this.maxDispatchNumber||this.queryType==="at-passes")&&this.endComputePass(),this.pendingDispatchNumber>=this.maxDispatchNumber&&this.flush()}this.flush(),this.sessionStatus="default"}onReleaseSession(i){this.unregisterBuffers(i),this.capturedCommandList.has(i)&&this.capturedCommandList.delete(i),this.capturedPendingKernels.has(i)&&this.capturedPendingKernels.delete(i),this.gpuDataManager.onReleaseSession(i)}onRunStart(i){this.currentSessionId=i,this.setQueryType()}}}),I_,Tm,Cm,F_,$_,Ry=s(()=>{H(),I_=1,Tm=()=>I_++,Cm=class{constructor(i,d){this.mlContext=i,this.tensorEntry=d,this.tensorCache=d?[d]:[]}get tensor(){var i;return(i=this.tensorEntry)==null?void 0:i[0]}get context(){if(!this.mlContext)throw new Error("MLContext has not been set.");return this.mlContext}set context(i){if(this.mlContext&&this.mlContext!==i)throw new Error("MLTensor in use in a different MLContext.");this.mlContext=i}destroy(){for(let[i]of this.tensorCache)i.destroy();this.tensorCache=[],this.tensorEntry=void 0}trySelectTensor(i,d){for(let[x,C,E]of this.tensorCache)if(d===x){if(this.context!==i)throw new Error("MLTensor cannot be registered with a different MLContext.");return this.tensorEntry=[x,C,E],!0}return!1}async ensureTensor(i,d,x){var A;if(this.tensorEntry){let[P,L,z]=this.tensorEntry;if(L===i&&z.every((B,X)=>B===d[X]))return P}for(let[P,L,z]of this.tensorCache)if(L===i&&z.every((B,X)=>B===d[X])){if(x&&this.tensorEntry){Ke("verbose",()=>`[WebNN] Slowdown may occur, having to copy existing tensor {dataType: ${i}, shape: ${d}}`);let B=await this.context.readTensor(this.tensorEntry[0]);this.context.writeTensor(P,B)}return this.tensorEntry=[P,L,z],P}Ke("verbose",()=>`[WebNN] MLContext.createTensor {dataType: ${i}, shape: ${d}}`);let C=MLTensorUsage.READ|MLTensorUsage.WRITE,E=await this.context.createTensor({dataType:i,shape:d,dimensions:d,usage:C});return this.tensorEntry=[E,i,d],this.tensorCache.push(this.tensorEntry),this.activeUpload&&((A=this.mlContext)==null||A.writeTensor(E,this.activeUpload),this.activeUpload=void 0),E}upload(i){var d;if(!this.tensorEntry){this.activeUpload=new Uint8Array(i);return}(d=this.mlContext)==null||d.writeTensor(this.tensorEntry[0],i)}async download(i){if(this.activeUpload)if(i){i instanceof ArrayBuffer?new Uint8Array(i).set(this.activeUpload):new Uint8Array(i.buffer,i.byteOffset,i.byteLength).set(this.activeUpload);return}else return this.activeUpload.buffer;if(!this.tensorEntry)throw new Error("Tensor has not been created.");return i?this.context.readTensor(this.tensorEntry[0],i):this.context.readTensor(this.tensorEntry[0])}},F_=class{constructor(i){this.backend=i,this.tensorsById=new Map,this.tensorIdsByContext=new Map}reserveTensorId(){let i=Tm();return this.tensorsById.set(i,new Cm),i}releaseTensorId(i){let d=this.tensorsById.get(i);if(d){d.destroy(),this.tensorsById.delete(i);for(let[x,C]of this.tensorIdsByContext)if(C.has(i)){C.delete(i),C.size===0&&this.tensorIdsByContext.delete(x);break}}}async ensureTensor(i,d,x,C){var A;Ke("verbose",()=>`[WebNN] TensorManager.ensureTensor {tensorId: ${i}, dataType: ${d}, shape: ${x}, copyOld: ${C}}`);let E=this.tensorsById.get(i);if(!E)throw new Error("Tensor not found.");return E.context=this.backend.currentContext,this.tensorIdsByContext.has(this.backend.currentContext)||this.tensorIdsByContext.set(this.backend.currentContext,new Set),(A=this.tensorIdsByContext.get(this.backend.currentContext))==null||A.add(i),E.ensureTensor(d,x,C)}upload(i,d){this.tensorsById.get(i).upload(d)}async download(i,d){return Ke("verbose",()=>`[WebNN] TensorManager.download {tensorId: ${i}, dstBuffer: ${d==null?void 0:d.byteLength}}`),this.tensorsById.get(i).download(d)}releaseTensorsForContext(i){let d=this.tensorIdsByContext.get(i);if(d){for(let x of d)this.tensorsById.get(x).destroy(),this.tensorsById.delete(x);this.tensorIdsByContext.delete(i)}}registerTensor(i,d,x,C){for(let[P,L]of this.tensorsById)if(L.trySelectTensor(i,d))return P;let E=Tm();this.tensorsById.set(E,new Cm(i,[d,x,C]));let A=this.tensorIdsByContext.get(i);return A||(A=new Set,this.tensorIdsByContext.set(i,A)),A.add(E),E}},$_=(...i)=>new F_(...i)}),Mm,D_,zy=s(()=>{Sn(),Br(),Le(),Ry(),H(),Mm=new Map([[1,"float32"],[10,"float16"],[6,"int32"],[12,"uint32"],[7,"int64"],[13,"uint64"],[3,"int8"],[2,"uint8"],[9,"uint8"]]),D_=class{constructor(i){this.tensorManager=$_(this),this.mlContextBySessionId=new Map,this.sessionIdsByMLContext=new Map,Os(i.logLevel,!!i.debug)}get currentSessionId(){if(this.activeSessionId===void 0)throw new Error("No active session");return this.activeSessionId}onRunStart(i){this.activeSessionId=i}get currentContext(){let i=this.getMLContext(this.currentSessionId);if(!i)throw new Error(`No MLContext found for session ${this.currentSessionId}`);return i}registerMLContext(i,d){this.mlContextBySessionId.set(i,d);let x=this.sessionIdsByMLContext.get(d);x||(x=new Set,this.sessionIdsByMLContext.set(d,x)),x.add(i)}onReleaseSession(i){let d=this.mlContextBySessionId.get(i);if(!d)return;this.mlContextBySessionId.delete(i);let x=this.sessionIdsByMLContext.get(d);x.delete(i),x.size===0&&(this.sessionIdsByMLContext.delete(d),this.tensorManager.releaseTensorsForContext(d))}getMLContext(i){return this.mlContextBySessionId.get(i)}reserveTensorId(){return this.tensorManager.reserveTensorId()}releaseTensorId(i){Ke("verbose",()=>`[WebNN] releaseTensorId {tensorId: ${i}}`),this.tensorManager.releaseTensorId(i)}async ensureTensor(i,d,x,C){let E=Mm.get(d);if(!E)throw new Error(`Unsupported ONNX data type: ${d}`);return this.tensorManager.ensureTensor(i,E,x,C)}uploadTensor(i,d){if(!jn().shouldTransferToMLTensor)throw new Error("Trying to upload to a MLTensor while shouldTransferToMLTensor is false");Ke("verbose",()=>`[WebNN] uploadTensor {tensorId: ${i}, data: ${d.byteLength}}`),this.tensorManager.upload(i,d)}async downloadTensor(i,d){return this.tensorManager.download(i,d)}createMLTensorDownloader(i,d){return async()=>{let x=await this.tensorManager.download(i);return ve(x,d)}}registerMLTensor(i,d,x){let C=Mm.get(d);if(!C)throw new Error(`Unsupported ONNX data type: ${d}`);let E=this.tensorManager.registerTensor(this.currentContext,i,C,x);return Ke("verbose",()=>`[WebNN] registerMLTensor {tensor: ${i}, dataType: ${C}, dimensions: ${x}} -> {tensorId: ${E}}`),E}flush(){}}}),L_={};c(L_,{init:()=>R_});var $d,Em,R_,By=s(()=>{Sn(),Ly(),H(),bn(),zy(),$d=class lE{constructor(d,x,C,E){this.module=d,this.dataType=x,this.data=C,this.dims=E}getFloat32Array(){if(this.dataType!==1)throw new Error("Invalid data type");let d=dt.size(this.dims);return d===0?new Float32Array:new Float32Array(this.module.HEAP8.buffer,this.data,d)}getBigInt64Array(){if(this.dataType!==7)throw new Error("Invalid data type");let d=dt.size(this.dims);return d===0?new BigInt64Array:new BigInt64Array(this.module.HEAP8.buffer,this.data,d)}getInt32Array(){if(this.dataType!==6)throw new Error("Invalid data type");let d=dt.size(this.dims);return d===0?new Int32Array:new Int32Array(this.module.HEAP8.buffer,this.data,d)}getUint16Array(){if(this.dataType!==10&&this.dataType!==4)throw new Error("Invalid data type");let d=dt.size(this.dims);return d===0?new Uint16Array:new Uint16Array(this.module.HEAP8.buffer,this.data,d)}reshape(d){if(dt.size(d)!==dt.size(this.dims))throw new Error("Invalid new shape");return new lE(this.module,this.dataType,this.data,d)}},Em=class{constructor(i,d,x){this.module=i,this.backend=d,this.customDataOffset=0,this.customDataSize=0,this.adapterInfo=d.adapterInfo;let C=i.HEAPU32,E=x>>>2;this.opKernelContext=C[E++];let A=C[E++];this.outputCount=C[E++],this.customDataOffset=C[E++],this.customDataSize=C[E++];let P=[];for(let L=0;Ltypeof B=="number"?this.inputs[B]:B))!=null?L:this.inputs,C=(z=d==null?void 0:d.outputs)!=null?z:[],E=(B,X,Y)=>new $d(this.module,X,this.output(B,Y),Y),A=(B,X)=>{let Y=ks(B,X);if(!Y)throw new Error(`Unsupported data type: ${B}`);let $=Y>0?this.backend.gpuDataManager.create(Y).id:0;return new $d(this.module,B,$,X)};return this.backend.run(i,x,C,E,A,this.outputCount)}output(i,d){let x=this.module.stackSave();try{let C=this.module.stackAlloc((1+d.length)*4),E=C>>2;this.module.HEAPU32[E++]=d.length;for(let A=0;A{let E=d.jsepInit;if(!E)throw new Error("Failed to initialize JSEP. The WebAssembly module is not built with JSEP support.");if(i==="webgpu"){let A=new A_;await A.initialize(x,C),E("webgpu",[A,P=>A.alloc(P),P=>A.free(P),(P,L,z,B=!1)=>{if(B)Ke("verbose",()=>`[WebGPU] jsepCopyGpuToGpu: src=${P}, dst=${L}, size=${z}`),A.memcpy(P,L);else{Ke("verbose",()=>`[WebGPU] jsepCopyCpuToGpu: dataOffset=${P}, gpuDataId=${L}, size=${z}`);let X=d.HEAPU8.subarray(P>>>0,(P>>>0)+z);A.upload(L,X)}},async(P,L,z)=>{Ke("verbose",()=>`[WebGPU] jsepCopyGpuToCpu: gpuDataId=${P}, dataOffset=${L}, size=${z}`),await A.download(P,()=>d.HEAPU8.subarray(L>>>0,(L>>>0)+z))},(P,L,z)=>A.createKernel(P,L,z,d.UTF8ToString(d._JsepGetNodeName(L))),P=>A.releaseKernel(P),(P,L,z,B)=>{Ke("verbose",()=>`[WebGPU] jsepRun: sessionHandle=${z}, kernel=${P}, contextDataOffset=${L}`);let X=new Em(d,A,L);return A.computeKernel(P,X,B)},()=>A.captureBegin(),()=>A.captureEnd(),()=>A.replay()])}else{let A=new D_(x);E("webnn",[A,()=>A.reserveTensorId(),P=>A.releaseTensorId(P),async(P,L,z,B)=>A.ensureTensor(P,L,z,B),(P,L)=>{A.uploadTensor(P,L)},async(P,L)=>A.downloadTensor(P,L)])}}}),z_,Pm,km,ql,B_,_p,vp,Om,Dd,Am,Im,Fm,N_=s(()=>{ca(),qa(),Sn(),Br(),bo(),Co(),z_=(i,d)=>{jn()._OrtInit(i,d)!==0&&Sr("Can't initialize onnxruntime.")},Pm=async i=>{z_(i.wasm.numThreads,hs(i.logLevel))},km=async(i,d)=>{{let x=(By(),a(L_)).init;if(d==="webgpu"){if(typeof navigator>"u"||!navigator.gpu)throw new Error("WebGPU is not supported in current environment");let C=i.webgpu.adapter;if(C){if(typeof C.limits!="object"||typeof C.features!="object"||typeof C.requestDevice!="function")throw new Error("Invalid GPU adapter set in `env.webgpu.adapter`. It must be a GPUAdapter object.")}else{let E=i.webgpu.powerPreference;if(E!==void 0&&E!=="low-power"&&E!=="high-performance")throw new Error(`Invalid powerPreference setting: "${E}"`);let A=i.webgpu.forceFallbackAdapter;if(A!==void 0&&typeof A!="boolean")throw new Error(`Invalid forceFallbackAdapter setting: "${A}"`);if(C=await navigator.gpu.requestAdapter({powerPreference:E,forceFallbackAdapter:A}),!C)throw new Error('Failed to get GPU adapter. You may need to enable flag "--enable-unsafe-webgpu" if you are using Chrome.')}await x("webgpu",jn(),i,C)}if(d==="webnn"){if(typeof navigator>"u"||!navigator.ml)throw new Error("WebNN is not supported in current environment");await x("webnn",jn(),i)}}},ql=new Map,B_=i=>{let d=jn(),x=d.stackSave();try{let C=d.stackAlloc(8);return d._OrtGetInputOutputCount(i,C,C+4)!==0&&Sr("Can't get session input/output count."),[d.HEAP32[C/4],d.HEAP32[C/4+1]]}finally{d.stackRestore(x)}},_p=i=>{let d=jn(),x=d._malloc(i.byteLength);if(x===0)throw new Error(`Can't create a session. failed to allocate a buffer of size ${i.byteLength}.`);return d.HEAPU8.set(i,x),[x,i.byteLength]},vp=async(i,d)=>{var Y,$,ae,ce;let x,C,E=jn();Array.isArray(i)?[x,C]=i:i.buffer===E.HEAPU8.buffer?[x,C]=[i.byteOffset,i.byteLength]:[x,C]=_p(i);let A=0,P=0,L=0,z=[],B=[],X=[];try{if([P,z]=fa(d),(d==null?void 0:d.externalData)&&E.mountExternalData){let _t=[];for(let ot of d.externalData){let $t=typeof ot=="string"?ot:ot.path;_t.push(pa(typeof ot=="string"?ot:ot.data).then(Ht=>{E.mountExternalData($t,Ht)}))}await Promise.all(_t)}for(let _t of(Y=d==null?void 0:d.executionProviders)!=null?Y:[])if((typeof _t=="string"?_t:_t.name)==="webnn"){if(E.shouldTransferToMLTensor=!1,E.currentContext)throw new Error("WebNN execution provider is already set.");if(typeof _t!="string"){let ot=_t,$t=ot==null?void 0:ot.context,Ht=ot==null?void 0:ot.gpuDevice,dn=ot==null?void 0:ot.deviceType,Pn=ot==null?void 0:ot.numThreads,kn=ot==null?void 0:ot.powerPreference;$t?E.currentContext=$t:Ht?E.currentContext=await navigator.ml.createContext(Ht):E.currentContext=await navigator.ml.createContext({deviceType:dn,numThreads:Pn,powerPreference:kn})}else E.currentContext=await navigator.ml.createContext();break}A=await E._OrtCreateSession(x,C,P),A===0&&Sr("Can't create a session."),E.currentContext&&(E.jsepRegisterMLContext(A,E.currentContext),E.currentContext=void 0,E.shouldTransferToMLTensor=!0);let[le,Se]=B_(A),Ee=!!(d!=null&&d.enableGraphCapture),be=[],Ve=[],je=[];for(let _t=0;_t_t==="gpu-buffer"||_t==="ml-tensor")&&(L=E._OrtCreateBinding(A),L===0&&Sr("Can't create IO binding."),et={handle:L,outputPreferredLocations:je,outputPreferredLocationsEncoded:je.map(_t=>To(_t))}),ql.set(A,[A,B,X,et,Ee,!1]),[A,be,Ve]}catch(le){throw B.forEach(Se=>E._OrtFree(Se)),X.forEach(Se=>E._OrtFree(Se)),L!==0&&E._OrtReleaseBinding(L),A!==0&&E._OrtReleaseSession(A),le}finally{E._free(x),P!==0&&E._OrtReleaseSessionOptions(P),z.forEach(le=>E._free(le)),(ce=E.unmountExternalData)==null||ce.call(E)}},Om=i=>{var z;let d=jn(),x=ql.get(i);if(!x)throw new Error(`cannot release session. invalid session id: ${i}`);let[C,E,A,P,L]=x;P&&(L&&d._OrtClearBoundOutputs(P.handle),d._OrtReleaseBinding(P.handle)),(z=d.jsepOnReleaseSession)==null||z.call(d,i),E.forEach(B=>d._OrtFree(B)),A.forEach(B=>d._OrtFree(B)),d._OrtReleaseSession(C),ql.delete(i)},Dd=(i,d,x,C,E,A=!1)=>{if(!i){d.push(0);return}let P=jn(),L=i[0],z=i[1],B=i[3],X,Y;if(L==="string"&&(B==="gpu-buffer"||B==="ml-tensor"))throw new Error("String tensor is not supported on GPU.");if(A&&B!=="gpu-buffer")throw new Error(`External buffer must be provided for input/output index ${E} when enableGraphCapture is true.`);if(B==="gpu-buffer"){let ce=i[2].gpuBuffer;Y=ks(ha(L),z);let le=P.jsepRegisterBuffer;if(!le)throw new Error('Tensor location "gpu-buffer" is not supported without using WebGPU.');X=le(C,E,ce,Y)}else if(B==="ml-tensor"){let ce=i[2].mlTensor;Y=ks(ha(L),z);let le=P.jsepRegisterMLTensor;if(!le)throw new Error('Tensor location "ml-tensor" is not supported without using WebNN.');X=le(ce,ha(L),z)}else{let ce=i[2];if(Array.isArray(ce)){Y=4*ce.length,X=P._malloc(Y),x.push(X);let le=X/4;for(let Se=0;SeP.HEAP32[ce++]=Se);let le=P._OrtCreateTensor(ha(L),X,Y,ae,z.length,To(B));le===0&&Sr(`Can't create tensor for input/output. session=${C}, index=${E}.`),d.push(le)}finally{P.stackRestore($)}},Am=async(i,d,x,C,E,A)=>{var dn,Pn;let P=jn(),L=ql.get(i);if(!L)throw new Error(`cannot run inference. invalid session id: ${i}`);let z=L[0],B=L[1],X=L[2],Y=L[3],$=L[4],ae=L[5],ce=d.length,le=C.length,Se=0,Ee=[],be=[],Ve=[],je=[],et=P.stackSave(),_t=P.stackAlloc(ce*4),ot=P.stackAlloc(ce*4),$t=P.stackAlloc(le*4),Ht=P.stackAlloc(le*4);try{(dn=P.jsepOnRunStart)==null||dn.call(P,z),[Se,Ee]=cl(A);for(let Rt=0;Rtci*vi,1);yn=fs(ui);let as=Y==null?void 0:Y.outputPreferredLocations[C[Rt]];if(yn==="string"){if(as==="gpu-buffer"||as==="ml-tensor")throw new Error("String tensor is not supported on GPU.");let ci=[],vi=wr/4;for(let br=0;br0){let ci=P.jsepGetBuffer;if(!ci)throw new Error('preferredLocation "gpu-buffer" is not supported without using WebGPU.');let vi=ci(wr),br=ks(ui,Si);if(br===void 0||!xo(yn))throw new Error(`Unsupported data type: ${yn}`);Yt=!0,Yn.push([yn,Gi,{gpuBuffer:vi,download:P.jsepCreateDownloader(vi,br,yn),dispose:()=>{P._OrtReleaseTensor(Mn)}},"gpu-buffer"])}else if(as==="ml-tensor"&&Si>0){let ci=P.jsepEnsureTensor;if(!ci)throw new Error('preferredLocation "ml-tensor" is not supported without using WebNN.');if(ks(ui,Si)===void 0||!So(yn))throw new Error(`Unsupported data type: ${yn}`);let vi=await ci(wr,ui,Gi,!1);Yt=!0,Yn.push([yn,Gi,{mlTensor:vi,download:P.jsepCreateMLTensorDownloader(wr,yn),dispose:()=>{P.jsepReleaseTensorId(wr),P._OrtReleaseTensor(Mn)}},"ml-tensor"])}else{let ci=Ya(yn),vi=new ci(Si);new Uint8Array(vi.buffer,vi.byteOffset,vi.byteLength).set(P.HEAPU8.subarray(wr,wr+vi.byteLength)),Yn.push([yn,Gi,vi,"cpu"])}}finally{P.stackRestore(Rn),yn==="string"&&wr&&P._free(wr),Yt||P._OrtReleaseTensor(Mn)}}return Y&&!$&&(P._OrtClearBoundOutputs(Y.handle),ql.set(i,[z,B,X,Y,$,!1])),Yn}finally{P.stackRestore(et),be.forEach(kn=>P._OrtReleaseTensor(kn)),Ve.forEach(kn=>P._OrtReleaseTensor(kn)),je.forEach(kn=>P._free(kn)),Se!==0&&P._OrtReleaseRunOptions(Se),Ee.forEach(kn=>P._free(kn))}},Im=i=>{let d=jn(),x=ql.get(i);if(!x)throw new Error("invalid session id");let C=x[0],E=d._OrtEndProfiling(C);E===0&&Sr("Can't get an profile file name."),d._OrtFree(E)},Fm=i=>{let d=[];for(let x of i){let C=x[2];!Array.isArray(C)&&"buffer"in C&&d.push(C.buffer)}return d}}),Yl,bs,Ld,Oh,Ah,yp,$m,wp,ec,tc,j_,W_,Dm,Lm,V_,U_,G_,H_,Ih=s(()=>{Mt(),N_(),Br(),mn(),Yl=()=>!!R.wasm.proxy&&typeof document<"u",Ld=!1,Oh=!1,Ah=!1,wp=new Map,ec=(i,d)=>{let x=wp.get(i);x?x.push(d):wp.set(i,[d])},tc=()=>{if(Ld||!Oh||Ah||!bs)throw new Error("worker not ready")},j_=i=>{switch(i.data.type){case"init-wasm":Ld=!1,i.data.err?(Ah=!0,$m[1](i.data.err)):(Oh=!0,$m[0]()),yp&&(URL.revokeObjectURL(yp),yp=void 0);break;case"init-ep":case"copy-from":case"create":case"release":case"run":case"end-profiling":{let d=wp.get(i.data.type);i.data.err?d.shift()[1](i.data.err):d.shift()[0](i.data.out);break}}},W_=async()=>{if(!Oh){if(Ld)throw new Error("multiple calls to 'initWasm()' detected.");if(Ah)throw new Error("previous call to 'initWasm()' failed.");if(Ld=!0,Yl())return new Promise((i,d)=>{bs==null||bs.terminate(),rn().then(([x,C])=>{try{bs=C,bs.onerror=A=>d(A),bs.onmessage=j_,$m=[i,d];let E={type:"init-wasm",in:R};bs.postMessage(E),yp=x}catch(E){d(E)}},d)});try{await zr(R.wasm),await Pm(R),Oh=!0}catch(i){throw Ah=!0,i}finally{Ld=!1}}},Dm=async i=>{if(Yl())return tc(),new Promise((d,x)=>{ec("init-ep",[d,x]);let C={type:"init-ep",in:{epName:i,env:R}};bs.postMessage(C)});await km(R,i)},Lm=async i=>Yl()?(tc(),new Promise((d,x)=>{ec("copy-from",[d,x]);let C={type:"copy-from",in:{buffer:i}};bs.postMessage(C,[i.buffer])})):_p(i),V_=async(i,d)=>{if(Yl()){if(d!=null&&d.preferredOutputLocation)throw new Error('session option "preferredOutputLocation" is not supported for proxy.');return tc(),new Promise((x,C)=>{ec("create",[x,C]);let E={type:"create",in:{model:i,options:{...d}}},A=[];i instanceof Uint8Array&&A.push(i.buffer),bs.postMessage(E,A)})}else return vp(i,d)},U_=async i=>{if(Yl())return tc(),new Promise((d,x)=>{ec("release",[d,x]);let C={type:"release",in:i};bs.postMessage(C)});Om(i)},G_=async(i,d,x,C,E,A)=>{if(Yl()){if(x.some(P=>P[3]!=="cpu"))throw new Error("input tensor on GPU is not supported for proxy.");if(E.some(P=>P))throw new Error("pre-allocated output tensor is not supported for proxy.");return tc(),new Promise((P,L)=>{ec("run",[P,L]);let z=x,B={type:"run",in:{sessionId:i,inputIndices:d,inputs:z,outputIndices:C,options:A}};bs.postMessage(B,Fm(z))})}else return Am(i,d,x,C,E,A)},H_=async i=>{if(Yl())return tc(),new Promise((d,x)=>{ec("end-profiling",[d,x]);let C={type:"end-profiling",in:i};bs.postMessage(C)});Im(i)}}),Rm,X_,q_,Ny=s(()=>{Mt(),Ih(),Sn(),Zt(),Co(),Rm=(i,d)=>{switch(i.location){case"cpu":return[i.type,i.dims,i.data,"cpu"];case"gpu-buffer":return[i.type,i.dims,{gpuBuffer:i.gpuBuffer},"gpu-buffer"];case"ml-tensor":return[i.type,i.dims,{mlTensor:i.mlTensor},"ml-tensor"];default:throw new Error(`invalid data location: ${i.location} for ${d()}`)}},X_=i=>{switch(i[3]){case"cpu":return new he(i[0],i[2],i[1]);case"gpu-buffer":{let d=i[0];if(!xo(d))throw new Error(`not supported data type: ${d} for deserializing GPU tensor`);let{gpuBuffer:x,download:C,dispose:E}=i[2];return he.fromGpuBuffer(x,{dataType:d,dims:i[1],download:C,dispose:E})}case"ml-tensor":{let d=i[0];if(!So(d))throw new Error(`not supported data type: ${d} for deserializing MLTensor tensor`);let{mlTensor:x,download:C,dispose:E}=i[2];return he.fromMLTensor(x,{dataType:d,dims:i[1],download:C,dispose:E})}default:throw new Error(`invalid data location: ${i[3]}`)}},q_=class{async fetchModelAndCopyToWasmMemory(i){return Lm(await pa(i))}async loadModel(i,d){xe();let x;typeof i=="string"?x=await this.fetchModelAndCopyToWasmMemory(i):x=i,[this.sessionId,this.inputNames,this.outputNames]=await V_(x,d),De()}async dispose(){return U_(this.sessionId)}async run(i,d,x){var Y;xe();let C=[],E=[];Object.entries(i).forEach($=>{let ae=$[0],ce=$[1],le=this.inputNames.indexOf(ae);if(le===-1)throw new Error(`invalid input '${ae}'`);C.push(ce),E.push(le)});let A=[],P=[];Object.entries(d).forEach($=>{let ae=$[0],ce=$[1],le=this.outputNames.indexOf(ae);if(le===-1)throw new Error(`invalid output '${ae}'`);A.push(ce),P.push(le)});let L=C.map(($,ae)=>Rm($,()=>`input "${this.inputNames[E[ae]]}"`)),z=A.map(($,ae)=>$?Rm($,()=>`output "${this.outputNames[P[ae]]}"`):null),B=await G_(this.sessionId,E,L,P,z,x),X={};for(let $=0;$Bm,initializeFlags:()=>zm,wasmBackend:()=>K_});var zm,Bm,K_,jy=s(()=>{Mt(),Ih(),Ny(),mn(),zm=()=>{if((typeof R.wasm.initTimeout!="number"||R.wasm.initTimeout<0)&&(R.wasm.initTimeout=0),R.wasm.simd===!1&&console.warn('Deprecated property "env.wasm.simd" is set to false. non-SIMD build is no longer provided, and this setting will be ignored.'),typeof R.wasm.proxy!="boolean"&&(R.wasm.proxy=!1),typeof R.wasm.trace!="boolean"&&(R.wasm.trace=!1),typeof R.wasm.numThreads!="number"||!Number.isInteger(R.wasm.numThreads)||R.wasm.numThreads<=0)if(typeof self<"u"&&!self.crossOriginIsolated)R.wasm.numThreads=1;else{let i=typeof navigator>"u"?g("node:os").cpus().length:navigator.hardwareConcurrency;R.wasm.numThreads=Math.min(4,Math.ceil((i||1)/2))}},Bm=class{async init(i){zm(),await W_(),await Dm(i)}async createInferenceSessionHandler(i,d){let x=new q_;return await x.loadModel(i,d),Promise.resolve(x)}},K_=new Bm});Mt(),Mt(),Mt();var Wy="1.20.0-dev.20241016-2b8fc5529b",Vy=Qt;{let i=(jy(),a(Y_)).wasmBackend;_("webgpu",i,5),_("webnn",i,5),_("cpu",i,10),_("wasm",i,10)}Object.defineProperty(R.versions,"web",{value:Wy,enumerable:!0});/** + * @license + * Copyright 2021 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + *//** + * @license + * Copyright 2020 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + *//** + * @license + * Copyright 2019 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */},"./src/backends/onnx.js":(t,e,n)=>{var r;n.r(e),n.d(e,{Tensor:()=>g.Tensor,createInferenceSession:()=>h,deviceToExecutionProviders:()=>_,isONNXProxy:()=>T,isONNXTensor:()=>v});var l=n("./src/env.js"),m=n("?2ce3"),S=n("./node_modules/onnxruntime-web/dist/ort.webgpu.bundle.min.mjs"),g=n("./node_modules/onnxruntime-common/dist/esm/index.js");const s=Object.freeze({auto:null,gpu:null,cpu:"cpu",wasm:"wasm",webgpu:"webgpu",cuda:"cuda",dml:"dml",webnn:{name:"webnn",deviceType:"cpu"},"webnn-npu":{name:"webnn",deviceType:"npu"},"webnn-gpu":{name:"webnn",deviceType:"gpu"},"webnn-cpu":{name:"webnn",deviceType:"cpu"}}),c=[];let p,a;const u=Symbol.for("onnxruntime");if(u in globalThis)a=globalThis[u];else if(l.apis.IS_NODE_ENV){switch(a=m!=null?m:r||(r=n.t(m,2)),process.platform){case"win32":c.push("dml");break;case"linux":process.arch==="x64"&&c.push("cuda");break}c.push("cpu"),p=["cpu"]}else a=S,l.apis.IS_WEBNN_AVAILABLE&&c.push("webnn-npu","webnn-gpu","webnn-cpu","webnn"),l.apis.IS_WEBGPU_AVAILABLE&&c.push("webgpu"),c.push("wasm"),p=["wasm"];const o=a.InferenceSession;function _(M=null){var O;if(!M)return p;switch(M){case"auto":return c;case"gpu":return c.filter(F=>["webgpu","cuda","dml","webnn-gpu"].includes(F))}if(c.includes(M))return[(O=s[M])!=null?O:M];throw new Error(`Unsupported device: "${M}". Should be one of: ${c.join(", ")}.`)}let y=null;async function h(M,O,F){y&&await y;const D=o.create(M,O);y!=null||(y=D);const R=await D;return R.config=F,R}function v(M){return M instanceof a.Tensor}const b=a==null?void 0:a.env;b!=null&&b.wasm&&(b.wasm.wasmPaths=`https://cdn.jsdelivr.net/npm/@huggingface/transformers@${l.env.version}/dist/`,b.wasm.proxy=!1,(typeof crossOriginIsolated>"u"||!crossOriginIsolated)&&(b.wasm.numThreads=1)),b!=null&&b.webgpu&&(b.webgpu.powerPreference="high-performance");function T(){var M;return(M=b==null?void 0:b.wasm)==null?void 0:M.proxy}l.env.backends.onnx=b},"./src/configs.js":(t,e,n)=>{n.r(e),n.d(e,{AutoConfig:()=>c,PretrainedConfig:()=>s,getKeyValueShapes:()=>g});var r=n("./src/utils/core.js"),l=n("./src/utils/hub.js");async function m(p,a){return await(0,l.getModelJSON)(p,"config.json",!0,a)}function S(p){const a={};let u={};switch(p.model_type){case"llava":case"paligemma":case"florence2":u=S(p.text_config);break;case"moondream1":u=S(p.phi_config);break;case"musicgen":u=S(p.decoder);break;case"gpt2":case"gptj":case"jais":case"codegen":case"gpt_bigcode":a.num_heads="n_head",a.num_layers="n_layer",a.hidden_size="n_embd";break;case"gpt_neox":case"stablelm":case"opt":case"phi":case"phi3":case"falcon":a.num_heads="num_attention_heads",a.num_layers="num_hidden_layers",a.hidden_size="hidden_size";break;case"llama":case"granite":case"cohere":case"mistral":case"starcoder2":case"qwen2":a.num_heads="num_key_value_heads",a.num_layers="num_hidden_layers",a.hidden_size="hidden_size",a.num_attention_heads="num_attention_heads";break;case"gemma":case"gemma2":a.num_heads="num_key_value_heads",a.num_layers="num_hidden_layers",a.dim_kv="head_dim";break;case"openelm":a.num_heads="num_kv_heads",a.num_layers="num_transformer_layers",a.dim_kv="head_dim";break;case"gpt_neo":case"donut-swin":a.num_heads="num_heads",a.num_layers="num_layers",a.hidden_size="hidden_size";break;case"bloom":a.num_heads="n_head",a.num_layers="n_layer",a.hidden_size="hidden_size";break;case"mpt":a.num_heads="n_heads",a.num_layers="n_layers",a.hidden_size="d_model";break;case"t5":case"mt5":case"longt5":a.num_decoder_layers="num_decoder_layers",a.num_decoder_heads="num_heads",a.decoder_dim_kv="d_kv",a.num_encoder_layers="num_layers",a.num_encoder_heads="num_heads",a.encoder_dim_kv="d_kv";break;case"bart":case"mbart":case"marian":case"whisper":case"m2m_100":case"blenderbot":case"blenderbot-small":case"florence2_language":a.num_decoder_layers="decoder_layers",a.num_decoder_heads="decoder_attention_heads",a.decoder_hidden_size="d_model",a.num_encoder_layers="encoder_layers",a.num_encoder_heads="encoder_attention_heads",a.encoder_hidden_size="d_model";break;case"speecht5":a.num_decoder_layers="decoder_layers",a.num_decoder_heads="decoder_attention_heads",a.decoder_hidden_size="hidden_size",a.num_encoder_layers="encoder_layers",a.num_encoder_heads="encoder_attention_heads",a.encoder_hidden_size="hidden_size";break;case"trocr":a.num_encoder_layers=a.num_decoder_layers="decoder_layers",a.num_encoder_heads=a.num_decoder_heads="decoder_attention_heads",a.encoder_hidden_size=a.decoder_hidden_size="d_model";break;case"musicgen_decoder":a.num_encoder_layers=a.num_decoder_layers="num_hidden_layers",a.num_encoder_heads=a.num_decoder_heads="num_attention_heads",a.encoder_hidden_size=a.decoder_hidden_size="hidden_size";break;case"vision-encoder-decoder":const _=S(p.decoder),y="num_decoder_layers"in _,h=(0,r.pick)(p,["model_type","is_encoder_decoder"]);return y?(h.num_decoder_layers=_.num_decoder_layers,h.num_decoder_heads=_.num_decoder_heads,h.decoder_hidden_size=_.decoder_hidden_size,h.num_encoder_layers=_.num_encoder_layers,h.num_encoder_heads=_.num_encoder_heads,h.encoder_hidden_size=_.encoder_hidden_size):(h.num_layers=_.num_layers,h.num_heads=_.num_heads,h.hidden_size=_.hidden_size),h}const o={...u,...(0,r.pick)(p,["model_type","multi_query","is_encoder_decoder"])};for(const _ in a)o[_]=p[a[_]];return o}function g(p,{prefix:a="past_key_values"}={}){var y,h,v,b;const u={},o=p.normalized_config,_=1;if(o.is_encoder_decoder&&"num_encoder_heads"in o&&"num_decoder_heads"in o){const T=(y=o.encoder_dim_kv)!=null?y:o.encoder_hidden_size/o.num_encoder_heads,M=(h=o.decoder_dim_kv)!=null?h:o.decoder_hidden_size/o.num_decoder_heads,O=[_,o.num_encoder_heads,0,T],F=[_,o.num_decoder_heads,0,M];for(let D=0;D{var R;n.r(e),n.d(e,{apis:()=>h,env:()=>F});var r=n("?569f"),l=n("?3f59"),m=n("?154a");const S="3.0.0",g=typeof self<"u",s=g&&self.constructor.name==="DedicatedWorkerGlobalScope",c=g&&"caches"in self,p=typeof navigator<"u"&&"gpu"in navigator,a=typeof navigator<"u"&&"ml"in navigator,u=typeof process<"u",o=u&&((R=process==null?void 0:process.release)==null?void 0:R.name)==="node",_=!D(r),y=!D(l),h=Object.freeze({IS_BROWSER_ENV:g,IS_WEBWORKER_ENV:s,IS_WEB_CACHE_AVAILABLE:c,IS_WEBGPU_AVAILABLE:p,IS_WEBNN_AVAILABLE:a,IS_PROCESS_AVAILABLE:u,IS_NODE_ENV:o,IS_FS_AVAILABLE:_,IS_PATH_AVAILABLE:y}),v=_&&y,b=v?l.dirname(l.dirname(m.fileURLToPath(import.meta.url))):"./",T=v?l.join(b,"/.cache/"):null,M="/models/",O=v?l.join(b,M):M,F={version:S,backends:{onnx:{}},allowRemoteModels:!0,remoteHost:"https://huggingface.co/",remotePathTemplate:"{model}/resolve/{revision}/",allowLocalModels:!g,localModelPath:O,useFS:_,useBrowserCache:c,useFSCache:_,cacheDir:T,useCustomCache:!1,customCache:null};function D(Q){return Object.keys(Q).length===0}},"./src/generation/configuration_utils.js":(t,e,n)=>{n.r(e),n.d(e,{GenerationConfig:()=>l});var r=n("./src/utils/core.js");class l{constructor(S){ut(this,"max_length",20);ut(this,"max_new_tokens",null);ut(this,"min_length",0);ut(this,"min_new_tokens",null);ut(this,"early_stopping",!1);ut(this,"max_time",null);ut(this,"do_sample",!1);ut(this,"num_beams",1);ut(this,"num_beam_groups",1);ut(this,"penalty_alpha",null);ut(this,"use_cache",!0);ut(this,"temperature",1);ut(this,"top_k",50);ut(this,"top_p",1);ut(this,"typical_p",1);ut(this,"epsilon_cutoff",0);ut(this,"eta_cutoff",0);ut(this,"diversity_penalty",0);ut(this,"repetition_penalty",1);ut(this,"encoder_repetition_penalty",1);ut(this,"length_penalty",1);ut(this,"no_repeat_ngram_size",0);ut(this,"bad_words_ids",null);ut(this,"force_words_ids",null);ut(this,"renormalize_logits",!1);ut(this,"constraints",null);ut(this,"forced_bos_token_id",null);ut(this,"forced_eos_token_id",null);ut(this,"remove_invalid_values",!1);ut(this,"exponential_decay_length_penalty",null);ut(this,"suppress_tokens",null);ut(this,"begin_suppress_tokens",null);ut(this,"forced_decoder_ids",null);ut(this,"guidance_scale",null);ut(this,"num_return_sequences",1);ut(this,"output_attentions",!1);ut(this,"output_hidden_states",!1);ut(this,"output_scores",!1);ut(this,"return_dict_in_generate",!1);ut(this,"pad_token_id",null);ut(this,"bos_token_id",null);ut(this,"eos_token_id",null);ut(this,"encoder_no_repeat_ngram_size",0);ut(this,"decoder_start_token_id",null);ut(this,"generation_kwargs",{});Object.assign(this,(0,r.pick)(S,Object.getOwnPropertyNames(this)))}}},"./src/generation/logits_process.js":(t,e,n)=>{n.r(e),n.d(e,{ClassifierFreeGuidanceLogitsProcessor:()=>v,ForcedBOSTokenLogitsProcessor:()=>s,ForcedEOSTokenLogitsProcessor:()=>c,LogitsProcessor:()=>m,LogitsProcessorList:()=>g,LogitsWarper:()=>S,MinLengthLogitsProcessor:()=>_,MinNewTokensLengthLogitsProcessor:()=>y,NoBadWordsLogitsProcessor:()=>h,NoRepeatNGramLogitsProcessor:()=>u,RepetitionPenaltyLogitsProcessor:()=>o,SuppressTokensAtBeginLogitsProcessor:()=>p,TemperatureLogitsWarper:()=>b,TopKLogitsWarper:()=>M,TopPLogitsWarper:()=>T,WhisperTimeStampLogitsProcessor:()=>a});var r=n("./src/utils/generic.js");n("./src/utils/tensor.js");var l=n("./src/utils/maths.js");class m extends r.Callable{_call(F,D){throw Error("`_call` should be implemented in a subclass")}}class S extends r.Callable{_call(F,D){throw Error("`_call` should be implemented in a subclass")}}class g extends r.Callable{constructor(){super(),this.processors=[]}push(F){this.processors.push(F)}extend(F){this.processors.push(...F)}_call(F,D){let R=D;for(const Q of this.processors)R=Q(F,R);return R}[Symbol.iterator](){return this.processors.values()}}class s extends m{constructor(F){super(),this.bos_token_id=F}_call(F,D){for(let R=0;R=1&&ie[ie.length-1]>=this.timestamp_begin,ke=ie.length<2||ie[ie.length-2]>=this.timestamp_begin;if(pe&&(ke?Q.subarray(this.timestamp_begin).fill(-1/0):Q.subarray(0,this.eos_token_id).fill(-1/0)),F[R].length===this.begin_index&&this.max_initial_timestamp_index!==null){const Ze=this.timestamp_begin+this.max_initial_timestamp_index;Q.subarray(Ze+1).fill(-1/0)}const Te=(0,l.log_softmax)(Q),Re=Math.log(Te.subarray(this.timestamp_begin).map(Math.exp).reduce((Ze,Ie)=>Ze+Ie)),ze=(0,l.max)(Te.subarray(0,this.timestamp_begin))[0];Re>ze&&Q.subarray(0,this.timestamp_begin).fill(-1/0)}return D}}class u extends m{constructor(F){super(),this.no_repeat_ngram_size=F}getNgrams(F){var ie;const D=F.length,R=[];for(let pe=0;pe1 to use the classifier free guidance processor, got guidance scale ${F}.`);this.guidance_scale=F}_call(F,D){if(D.dims[0]!==2*F.length)throw new Error(`Logits should have twice the batch size of the input ids, the first half of batches corresponding to the conditional inputs, and the second half of batches corresponding to the unconditional inputs. Got batch size ${D.dims[0]} for the logits and ${F.length} for the input ids.`);const R=F.length,Q=D.slice([0,R],null),ie=D.slice([R,D.dims[0]],null);for(let pe=0;pe1)throw new Error(`\`top_p\` must be a float > 0 and < 1, but is ${F}`);if(!Number.isInteger(R)||R<1)throw new Error(`\`min_tokens_to_keep\` must be a positive integer, but is ${R}`);this.top_p=F,this.filter_value=D,this.min_tokens_to_keep=R}}class M extends S{constructor(F,{filter_value:D=-1/0,min_tokens_to_keep:R=1}={}){if(super(),!Number.isInteger(F)||F<0)throw new Error(`\`top_k\` must be a positive integer, but is ${F}`);this.top_k=Math.max(F,R),this.filter_value=D}}},"./src/generation/logits_sampler.js":(t,e,n)=>{n.r(e),n.d(e,{LogitsSampler:()=>S});var r=n("./src/utils/generic.js"),l=n("./src/utils/tensor.js"),m=n("./src/utils/maths.js");n("./src/generation/configuration_utils.js");class S extends r.Callable{constructor(a){super(),this.generation_config=a}async _call(a){return this.sample(a)}async sample(a){throw Error("sample should be implemented in subclasses.")}getLogits(a,u){let o=a.dims.at(-1),_=a.data;if(u===-1)_=_.slice(-o);else{let y=u*o;_=_.slice(y,y+o)}return _}randomSelect(a){let u=0;for(let _=0;_1)return new c(a);if(a.num_return_sequences>1)throw Error(`num_return_sequences has to be 1 when doing greedy search, but is ${a.num_return_sequences}.`);return new g(a)}}class g extends S{async sample(a){const u=(0,m.max)(a.data)[1];return[[BigInt(u),0]]}}class s extends S{async sample(a){let u=a.dims.at(-1);this.generation_config.top_k>0&&(u=Math.min(this.generation_config.top_k,u));const[o,_]=await(0,l.topk)(a,u),y=(0,m.softmax)(o.data);return Array.from({length:this.generation_config.num_beams},()=>{const h=this.randomSelect(y);return[_.data[h],Math.log(y[h])]})}}class c extends S{async sample(a){let u=a.dims.at(-1);this.generation_config.top_k>0&&(u=Math.min(this.generation_config.top_k,u));const[o,_]=await(0,l.topk)(a,u),y=(0,m.softmax)(o.data);return Array.from({length:this.generation_config.num_beams},(h,v)=>[_.data[v],Math.log(y[v])])}}},"./src/generation/stopping_criteria.js":(t,e,n)=>{n.r(e),n.d(e,{EosTokenCriteria:()=>g,InterruptableStoppingCriteria:()=>s,MaxLengthCriteria:()=>S,StoppingCriteria:()=>l,StoppingCriteriaList:()=>m});var r=n("./src/utils/generic.js");class l extends r.Callable{_call(p,a){throw Error("StoppingCriteria needs to be subclassed")}}class m extends r.Callable{constructor(){super(),this.criteria=[]}push(p){this.criteria.push(p)}extend(p){p instanceof m?p=p.criteria:p instanceof l&&(p=[p]),this.criteria.push(...p)}_call(p,a){const u=new Array(p.length).fill(!1);for(const o of this.criteria){const _=o(p,a);for(let y=0;ya.length>=this.max_length)}}class g extends l{constructor(p){super(),Array.isArray(p)||(p=[p]),this.eos_token_id=p}_call(p,a){return p.map(u=>{const o=u.at(-1);return this.eos_token_id.some(_=>o==_)})}}class s extends l{constructor(){super(),this.interrupted=!1}interrupt(){this.interrupted=!0}reset(){this.interrupted=!1}_call(p,a){return new Array(p.length).fill(this.interrupted)}}},"./src/generation/streamers.js":(t,e,n)=>{n.r(e),n.d(e,{BaseStreamer:()=>S,TextStreamer:()=>s,WhisperTextStreamer:()=>c});var r=n("./src/utils/core.js"),l=n("./src/tokenizers.js"),m=n("./src/env.js");class S{put(a){throw Error("Not implemented")}end(){throw Error("Not implemented")}}const g=m.apis.IS_PROCESS_AVAILABLE?p=>process.stdout.write(p):p=>console.log(p);class s extends S{constructor(a,{skip_prompt:u=!1,callback_function:o=null,token_callback_function:_=null,decode_kwargs:y={},...h}={}){super(),this.tokenizer=a,this.skip_prompt=u,this.callback_function=o!=null?o:g,this.token_callback_function=_,this.decode_kwargs={...y,...h},this.token_cache=[],this.print_len=0,this.next_tokens_are_prompt=!0}put(a){var y;if(a.length>1)throw Error("TextStreamer only supports batch size of 1");if(this.skip_prompt&&this.next_tokens_are_prompt){this.next_tokens_are_prompt=!1;return}const u=a[0];(y=this.token_callback_function)==null||y.call(this,u),this.token_cache=(0,r.mergeArrays)(this.token_cache,u);const o=this.tokenizer.decode(this.token_cache,this.decode_kwargs);let _;o.endsWith(` +`)?(_=o.slice(this.print_len),this.token_cache=[],this.print_len=0):o.length>0&&(0,l.is_chinese_char)(o.charCodeAt(o.length-1))?(_=o.slice(this.print_len),this.print_len+=_.length):(_=o.slice(this.print_len,o.lastIndexOf(" ")+1),this.print_len+=_.length),this.on_finalized_text(_,!1)}end(){let a;this.token_cache.length>0?(a=this.tokenizer.decode(this.token_cache,this.decode_kwargs).slice(this.print_len),this.token_cache=[],this.print_len=0):a="",this.next_tokens_are_prompt=!0,this.on_finalized_text(a,!0)}on_finalized_text(a,u){var o,_;a.length>0&&((o=this.callback_function)==null||o.call(this,a)),u&&this.callback_function===g&&m.apis.IS_PROCESS_AVAILABLE&&((_=this.callback_function)==null||_.call(this,` +`))}}class c extends s{constructor(a,{skip_prompt:u=!1,callback_function:o=null,token_callback_function:_=null,on_chunk_start:y=null,on_chunk_end:h=null,on_finalize:v=null,time_precision:b=.02,skip_special_tokens:T=!0,decode_kwargs:M={}}={}){super(a,{skip_prompt:u,callback_function:o,token_callback_function:_,decode_kwargs:{skip_special_tokens:T,...M}}),this.timestamp_begin=a.timestamp_begin,this.on_chunk_start=y,this.on_chunk_end=h,this.on_finalize=v,this.time_precision=b,this.waiting_for_timestamp=!1}put(a){var o,_;if(a.length>1)throw Error("WhisperTextStreamer only supports batch size of 1");const u=a[0];if(u.length===1){const y=Number(u[0])-this.timestamp_begin;if(y>=0){const h=y*this.time_precision;this.waiting_for_timestamp?(o=this.on_chunk_end)==null||o.call(this,h):(_=this.on_chunk_start)==null||_.call(this,h),this.waiting_for_timestamp=!this.waiting_for_timestamp,a=[[]]}}return super.put(a)}end(){var a;super.end(),(a=this.on_finalize)==null||a.call(this)}}},"./src/models.js":(t,e,n)=>{n.r(e),n.d(e,{ASTForAudioClassification:()=>pu,ASTModel:()=>fn,ASTPreTrainedModel:()=>Ks,AlbertForMaskedLM:()=>Sn,AlbertForQuestionAnswering:()=>To,AlbertForSequenceClassification:()=>So,AlbertModel:()=>xo,AlbertPreTrainedModel:()=>hs,AutoModel:()=>Vl,AutoModelForAudioClassification:()=>lo,AutoModelForAudioFrameClassification:()=>Fa,AutoModelForCTC:()=>Od,AutoModelForCausalLM:()=>wh,AutoModelForDepthEstimation:()=>$a,AutoModelForDocumentQuestionAnswering:()=>Tn,AutoModelForImageClassification:()=>Pd,AutoModelForImageFeatureExtraction:()=>Hl,AutoModelForImageMatting:()=>Xo,AutoModelForImageSegmentation:()=>xh,AutoModelForImageToImage:()=>Zu,AutoModelForMaskGeneration:()=>Ju,AutoModelForMaskedLM:()=>bh,AutoModelForNormalEstimation:()=>Ad,AutoModelForObjectDetection:()=>Th,AutoModelForQuestionAnswering:()=>Rs,AutoModelForSemanticSegmentation:()=>kd,AutoModelForSeq2SeqLM:()=>Cd,AutoModelForSequenceClassification:()=>Ul,AutoModelForSpeechSeq2Seq:()=>Gl,AutoModelForTextToSpectrogram:()=>Md,AutoModelForTextToWaveform:()=>Qu,AutoModelForTokenClassification:()=>fp,AutoModelForUniversalSegmentation:()=>Sh,AutoModelForVision2Seq:()=>Ed,AutoModelForXVector:()=>Ho,AutoModelForZeroShotObjectDetection:()=>zs,BartForConditionalGeneration:()=>Le,BartForSequenceClassification:()=>Ye,BartModel:()=>ve,BartPretrainedModel:()=>H,BaseModelOutput:()=>te,BeitForImageClassification:()=>Cl,BeitModel:()=>Tl,BeitPreTrainedModel:()=>Rc,BertForMaskedLM:()=>Ue,BertForQuestionAnswering:()=>Fe,BertForSequenceClassification:()=>Ae,BertForTokenClassification:()=>he,BertModel:()=>Oe,BertPreTrainedModel:()=>ge,BlenderbotForConditionalGeneration:()=>cr,BlenderbotModel:()=>En,BlenderbotPreTrainedModel:()=>en,BlenderbotSmallForConditionalGeneration:()=>kr,BlenderbotSmallModel:()=>tr,BlenderbotSmallPreTrainedModel:()=>vr,BloomForCausalLM:()=>nt,BloomModel:()=>Ja,BloomPreTrainedModel:()=>Ic,CLIPModel:()=>mc,CLIPPreTrainedModel:()=>_a,CLIPSegForImageSegmentation:()=>$r,CLIPSegModel:()=>_u,CLIPSegPreTrainedModel:()=>ko,CLIPTextModel:()=>pf,CLIPTextModelWithProjection:()=>zi,CLIPVisionModel:()=>mf,CLIPVisionModelWithProjection:()=>gc,CamembertForMaskedLM:()=>or,CamembertForQuestionAnswering:()=>bt,CamembertForSequenceClassification:()=>Gn,CamembertForTokenClassification:()=>lr,CamembertModel:()=>Cn,CamembertPreTrainedModel:()=>Zt,CausalLMOutput:()=>Da,CausalLMOutputWithPast:()=>hp,ChineseCLIPModel:()=>Qs,ChineseCLIPPreTrainedModel:()=>_c,ClapAudioModelWithProjection:()=>od,ClapModel:()=>Aa,ClapPreTrainedModel:()=>io,ClapTextModelWithProjection:()=>ad,CodeGenForCausalLM:()=>xc,CodeGenModel:()=>bf,CodeGenPreTrainedModel:()=>Bi,CohereForCausalLM:()=>_s,CohereModel:()=>Sf,CoherePreTrainedModel:()=>Tc,ConvBertForMaskedLM:()=>G,ConvBertForQuestionAnswering:()=>ht,ConvBertForSequenceClassification:()=>Pe,ConvBertForTokenClassification:()=>We,ConvBertModel:()=>_e,ConvBertPreTrainedModel:()=>J,ConvNextForImageClassification:()=>Hc,ConvNextModel:()=>bi,ConvNextPreTrainedModel:()=>Zs,ConvNextV2ForImageClassification:()=>Ea,ConvNextV2Model:()=>Xc,ConvNextV2PreTrainedModel:()=>Pl,DPTForDepthEstimation:()=>Qn,DPTModel:()=>Qi,DPTPreTrainedModel:()=>Wo,DebertaForMaskedLM:()=>lt,DebertaForQuestionAnswering:()=>xt,DebertaForSequenceClassification:()=>Ct,DebertaForTokenClassification:()=>at,DebertaModel:()=>Je,DebertaPreTrainedModel:()=>Me,DebertaV2ForMaskedLM:()=>Jt,DebertaV2ForQuestionAnswering:()=>on,DebertaV2ForSequenceClassification:()=>Wt,DebertaV2ForTokenClassification:()=>rn,DebertaV2Model:()=>Ut,DebertaV2PreTrainedModel:()=>Gt,DecisionTransformerModel:()=>pd,DecisionTransformerPreTrainedModel:()=>Hu,DeiTForImageClassification:()=>No,DeiTModel:()=>Bo,DeiTPreTrainedModel:()=>ba,DepthAnythingForDepthEstimation:()=>Nf,DepthAnythingPreTrainedModel:()=>Bf,DepthProForDepthEstimation:()=>Vf,DepthProPreTrainedModel:()=>Wf,DetrForObjectDetection:()=>zc,DetrForSegmentation:()=>Bc,DetrModel:()=>Df,DetrObjectDetectionOutput:()=>Nc,DetrPreTrainedModel:()=>Ro,DetrSegmentationOutput:()=>Kr,Dinov2ForImageClassification:()=>ji,Dinov2Model:()=>Hf,Dinov2PreTrainedModel:()=>qc,DistilBertForMaskedLM:()=>vn,DistilBertForQuestionAnswering:()=>Lt,DistilBertForSequenceClassification:()=>it,DistilBertForTokenClassification:()=>Et,DistilBertModel:()=>mn,DistilBertPreTrainedModel:()=>tn,DonutSwinModel:()=>vs,DonutSwinPreTrainedModel:()=>Ma,EfficientNetForImageClassification:()=>ch,EfficientNetModel:()=>uh,EfficientNetPreTrainedModel:()=>Un,ElectraForMaskedLM:()=>Ft,ElectraForQuestionAnswering:()=>Mt,ElectraForSequenceClassification:()=>jt,ElectraForTokenClassification:()=>Qt,ElectraModel:()=>Xt,ElectraPreTrainedModel:()=>wt,EsmForMaskedLM:()=>zr,EsmForSequenceClassification:()=>jn,EsmForTokenClassification:()=>Br,EsmModel:()=>Pr,EsmPreTrainedModel:()=>qn,FalconForCausalLM:()=>oh,FalconModel:()=>sd,FalconPreTrainedModel:()=>Dl,FastViTForImageClassification:()=>If,FastViTModel:()=>Af,FastViTPreTrainedModel:()=>Dc,Florence2ForConditionalGeneration:()=>Ri,Florence2PreTrainedModel:()=>gu,GLPNForDepthEstimation:()=>Ca,GLPNModel:()=>Ta,GLPNPreTrainedModel:()=>Gf,GPT2LMHeadModel:()=>gs,GPT2Model:()=>vu,GPT2PreTrainedModel:()=>As,GPTBigCodeForCausalLM:()=>_l,GPTBigCodeModel:()=>bu,GPTBigCodePreTrainedModel:()=>wu,GPTJForCausalLM:()=>Yi,GPTJModel:()=>bc,GPTJPreTrainedModel:()=>yu,GPTNeoForCausalLM:()=>gl,GPTNeoModel:()=>yc,GPTNeoPreTrainedModel:()=>vc,GPTNeoXForCausalLM:()=>wc,GPTNeoXModel:()=>wf,GPTNeoXPreTrainedModel:()=>va,Gemma2ForCausalLM:()=>Ec,Gemma2Model:()=>Tu,Gemma2PreTrainedModel:()=>Mc,GemmaForCausalLM:()=>Tf,GemmaModel:()=>Qa,GemmaPreTrainedModel:()=>Cc,GraniteForCausalLM:()=>xf,GraniteModel:()=>Sc,GranitePreTrainedModel:()=>Su,GroupViTModel:()=>wl,GroupViTPreTrainedModel:()=>$c,HieraForImageClassification:()=>Rf,HieraModel:()=>xa,HieraPreTrainedModel:()=>jo,HubertForCTC:()=>Lu,HubertForSequenceClassification:()=>ed,HubertModel:()=>Oi,HubertPreTrainedModel:()=>eh,ImageMattingOutput:()=>Mh,JAISLMHeadModel:()=>yf,JAISModel:()=>vf,JAISPreTrainedModel:()=>ml,LlamaForCausalLM:()=>Oo,LlamaModel:()=>xu,LlamaPreTrainedModel:()=>Pi,LlavaForConditionalGeneration:()=>rs,LlavaPreTrainedModel:()=>mu,LongT5ForConditionalGeneration:()=>Eo,LongT5Model:()=>pl,LongT5PreTrainedModel:()=>ma,M2M100ForConditionalGeneration:()=>Yf,M2M100Model:()=>ka,M2M100PreTrainedModel:()=>Pa,MBartForCausalLM:()=>Bt,MBartForConditionalGeneration:()=>It,MBartForSequenceClassification:()=>zt,MBartModel:()=>gt,MBartPreTrainedModel:()=>rt,MPNetForMaskedLM:()=>fl,MPNetForQuestionAnswering:()=>fa,MPNetForSequenceClassification:()=>da,MPNetForTokenClassification:()=>hl,MPNetModel:()=>dl,MPNetPreTrainedModel:()=>ca,MT5ForConditionalGeneration:()=>Ke,MT5Model:()=>Po,MT5PreTrainedModel:()=>Os,MarianMTModel:()=>Iu,MarianModel:()=>sp,MarianPreTrainedModel:()=>Qc,MaskFormerForInstanceSegmentation:()=>Uf,MaskFormerModel:()=>Fs,MaskFormerPreTrainedModel:()=>Gc,MaskedLMOutput:()=>li,MistralForCausalLM:()=>op,MistralModel:()=>sh,MistralPreTrainedModel:()=>id,MobileBertForMaskedLM:()=>Sr,MobileBertForQuestionAnswering:()=>cl,MobileBertForSequenceClassification:()=>bo,MobileBertModel:()=>Li,MobileBertPreTrainedModel:()=>Mr,MobileNetV1ForImageClassification:()=>zl,MobileNetV1Model:()=>dh,MobileNetV1PreTrainedModel:()=>Zi,MobileNetV2ForImageClassification:()=>fh,MobileNetV2Model:()=>fd,MobileNetV2PreTrainedModel:()=>Bl,MobileNetV3ForImageClassification:()=>Vu,MobileNetV3Model:()=>ea,MobileNetV3PreTrainedModel:()=>Ai,MobileNetV4ForImageClassification:()=>hd,MobileNetV4Model:()=>Gu,MobileNetV4PreTrainedModel:()=>Uu,MobileViTForImageClassification:()=>xl,MobileViTModel:()=>Lc,MobileViTPreTrainedModel:()=>Io,MobileViTV2ForImageClassification:()=>Sl,MobileViTV2Model:()=>Fo,MobileViTV2PreTrainedModel:()=>Cu,ModelOutput:()=>ue,Moondream1ForConditionalGeneration:()=>Nn,MptForCausalLM:()=>ln,MptModel:()=>mt,MptPreTrainedModel:()=>St,MusicgenForCausalLM:()=>cp,MusicgenForConditionalGeneration:()=>dd,MusicgenModel:()=>up,MusicgenPreTrainedModel:()=>so,NomicBertModel:()=>$e,NomicBertPreTrainedModel:()=>He,OPTForCausalLM:()=>Yr,OPTModel:()=>gr,OPTPreTrainedModel:()=>Bn,OpenELMForCausalLM:()=>Cf,OpenELMModel:()=>vl,OpenELMPreTrainedModel:()=>Is,OwlViTForObjectDetection:()=>wa,OwlViTModel:()=>Do,OwlViTPreTrainedModel:()=>$o,Owlv2ForObjectDetection:()=>$f,Owlv2Model:()=>Ff,Owlv2PreTrainedModel:()=>Lo,Phi3ForCausalLM:()=>Pf,Phi3Model:()=>Ef,Phi3PreTrainedModel:()=>Mf,PhiForCausalLM:()=>Ac,PhiModel:()=>Oc,PhiPreTrainedModel:()=>Ki,PreTrainedModel:()=>de,PretrainedMixin:()=>dr,PvtForImageClassification:()=>np,PvtModel:()=>yl,PvtPreTrainedModel:()=>Ni,PyAnnoteForAudioFrameClassification:()=>Jf,PyAnnoteModel:()=>Qf,PyAnnotePreTrainedModel:()=>Wi,QuestionAnsweringModelOutput:()=>_i,Qwen2ForCausalLM:()=>ya,Qwen2Model:()=>kc,Qwen2PreTrainedModel:()=>Pc,RTDetrForObjectDetection:()=>jc,RTDetrModel:()=>Lf,RTDetrObjectDetectionOutput:()=>Wc,RTDetrPreTrainedModel:()=>ai,ResNetForImageClassification:()=>rp,ResNetModel:()=>zf,ResNetPreTrainedModel:()=>Vc,RoFormerForMaskedLM:()=>Ge,RoFormerForQuestionAnswering:()=>ct,RoFormerForSequenceClassification:()=>Ne,RoFormerForTokenClassification:()=>tt,RoFormerModel:()=>De,RoFormerPreTrainedModel:()=>xe,RobertaForMaskedLM:()=>Mi,RobertaForQuestionAnswering:()=>qr,RobertaForSequenceClassification:()=>Ei,RobertaForTokenClassification:()=>dt,RobertaModel:()=>ir,RobertaPreTrainedModel:()=>Fn,SamImageSegmentationOutput:()=>Kc,SamModel:()=>kl,SamPreTrainedModel:()=>Yc,SapiensForDepthEstimation:()=>ip,SapiensForNormalEstimation:()=>jf,SapiensForSemanticSegmentation:()=>Sa,SapiensPreTrainedModel:()=>ku,SegformerForImageClassification:()=>ju,SegformerForSemanticSegmentation:()=>cd,SegformerModel:()=>lh,SegformerPreTrainedModel:()=>Ll,Seq2SeqLMOutput:()=>Ch,SequenceClassifierOutput:()=>_n,SiglipModel:()=>gf,SiglipPreTrainedModel:()=>Wr,SiglipTextModel:()=>qi,SiglipVisionModel:()=>_f,SpeechT5ForSpeechToText:()=>Uo,SpeechT5ForTextToSpeech:()=>rh,SpeechT5HifiGan:()=>ih,SpeechT5Model:()=>ap,SpeechT5PreTrainedModel:()=>zu,SqueezeBertForMaskedLM:()=>fs,SqueezeBertForQuestionAnswering:()=>Ya,SqueezeBertForSequenceClassification:()=>ks,SqueezeBertModel:()=>ha,SqueezeBertPreTrainedModel:()=>qa,StableLmForCausalLM:()=>Wu,StableLmModel:()=>lp,StableLmPreTrainedModel:()=>Rl,Starcoder2ForCausalLM:()=>ah,Starcoder2Model:()=>Nu,Starcoder2PreTrainedModel:()=>Bu,Swin2SRForImageSuperResolution:()=>eo,Swin2SRModel:()=>me,Swin2SRPreTrainedModel:()=>Pu,SwinForImageClassification:()=>ki,SwinModel:()=>El,SwinPreTrainedModel:()=>Uc,T5ForConditionalGeneration:()=>Mo,T5Model:()=>Co,T5PreTrainedModel:()=>pa,TableTransformerForObjectDetection:()=>zo,TableTransformerModel:()=>Ml,TableTransformerObjectDetectionOutput:()=>Eu,TableTransformerPreTrainedModel:()=>Mu,TokenClassifierOutput:()=>oi,TrOCRForCausalLM:()=>rd,TrOCRPreTrainedModel:()=>nd,UniSpeechForCTC:()=>Zf,UniSpeechForSequenceClassification:()=>no,UniSpeechModel:()=>Jc,UniSpeechPreTrainedModel:()=>ys,UniSpeechSatForAudioFrameClassification:()=>Zc,UniSpeechSatForCTC:()=>ni,UniSpeechSatForSequenceClassification:()=>Il,UniSpeechSatModel:()=>Al,UniSpeechSatPreTrainedModel:()=>Ol,ViTForImageClassification:()=>kf,ViTMAEModel:()=>Kn,ViTMAEPreTrainedModel:()=>Za,ViTMSNForImageClassification:()=>Of,ViTMSNModel:()=>Tr,ViTMSNPreTrainedModel:()=>Ao,ViTModel:()=>Fc,ViTPreTrainedModel:()=>Er,VisionEncoderDecoderModel:()=>ti,VitMatteForImageMatting:()=>Js,VitMattePreTrainedModel:()=>bl,VitsModel:()=>ud,VitsModelOutput:()=>Eh,VitsPreTrainedModel:()=>ld,Wav2Vec2BertForCTC:()=>Du,Wav2Vec2BertForSequenceClassification:()=>Oa,Wav2Vec2BertModel:()=>Fl,Wav2Vec2BertPreTrainedModel:()=>Ji,Wav2Vec2ForAudioFrameClassification:()=>to,Wav2Vec2ForCTC:()=>Ds,Wav2Vec2ForSequenceClassification:()=>Fu,Wav2Vec2Model:()=>Kf,Wav2Vec2PreTrainedModel:()=>$s,WavLMForAudioFrameClassification:()=>td,WavLMForCTC:()=>Ru,WavLMForSequenceClassification:()=>nh,WavLMForXVector:()=>ro,WavLMModel:()=>th,WavLMPreTrainedModel:()=>$l,WeSpeakerResNetModel:()=>Vo,WeSpeakerResNetPreTrainedModel:()=>$u,WhisperForConditionalGeneration:()=>pc,WhisperModel:()=>pn,WhisperPreTrainedModel:()=>Pt,XLMForQuestionAnswering:()=>Nr,XLMForSequenceClassification:()=>bn,XLMForTokenClassification:()=>wi,XLMModel:()=>ps,XLMPreTrainedModel:()=>mi,XLMRobertaForMaskedLM:()=>Ot,XLMRobertaForQuestionAnswering:()=>ga,XLMRobertaForSequenceClassification:()=>cn,XLMRobertaForTokenClassification:()=>Ka,XLMRobertaModel:()=>yr,XLMRobertaPreTrainedModel:()=>Hn,XLMWithLMHeadModel:()=>ms,XVectorOutput:()=>Id,YolosForObjectDetection:()=>Au,YolosModel:()=>Xf,YolosObjectDetectionOutput:()=>qf,YolosPreTrainedModel:()=>Ou});var r=n("./src/configs.js"),l=n("./src/backends/onnx.js"),m=n("./src/utils/dtypes.js"),S=n("./src/utils/generic.js"),g=n("./src/utils/core.js"),s=n("./src/utils/hub.js"),c=n("./src/utils/constants.js"),p=n("./src/generation/logits_process.js"),a=n("./src/generation/configuration_utils.js"),u=n("./src/utils/tensor.js"),o=n("./src/utils/maths.js"),_=n("./src/generation/stopping_criteria.js"),y=n("./src/generation/logits_sampler.js"),h=n("./src/env.js"),v=n("./src/models/whisper/generation_whisper.js"),b=n("./src/models/whisper/common_whisper.js");const T={EncoderOnly:0,EncoderDecoder:1,Seq2Seq:2,Vision2Seq:3,DecoderOnly:4,MaskGeneration:5,ImageTextToText:6,Musicgen:7},M=new Map,O=new Map,F=new Map;async function D(U,re,Ce){var Dr,Vr,Qr,jr,Jr,Bs,xi,is,Fd,Ui,La;const Qe=(Vr=(Dr=Ce.config)==null?void 0:Dr["transformers.js_config"])!=null?Vr:{};let vt=(Qr=Ce.device)!=null?Qr:Qe.device;vt&&typeof vt!="string"&&(vt.hasOwnProperty(re)?vt=vt[re]:(console.warn(`device not specified for "${re}". Using the default device.`),vt=null));const pt=vt!=null?vt:h.apis.IS_NODE_ENV?"cpu":"wasm",Vt=(0,l.deviceToExecutionProviders)(pt);let qt=(jr=Ce.dtype)!=null?jr:Qe.dtype;typeof qt!="string"&&(qt&&qt.hasOwnProperty(re)?qt=qt[re]:(qt=(Jr=m.DEFAULT_DEVICE_DTYPE_MAPPING[pt])!=null?Jr:m.DATA_TYPES.fp32,console.warn(`dtype not specified for "${re}". Using the default dtype (${qt}) for this device (${pt}).`)));const an=qt;if(m.DEFAULT_DTYPE_SUFFIX_MAPPING.hasOwnProperty(an)){if(an===m.DATA_TYPES.fp16&&pt==="webgpu"&&!await(0,m.isWebGpuFp16Supported)())throw new Error(`The device (${pt}) does not support fp16.`)}else throw new Error(`Invalid dtype: ${an}. Should be one of: ${Object.keys(m.DATA_TYPES).join(", ")}`);const An=Qe.kv_cache_dtype?typeof Qe.kv_cache_dtype=="string"?Qe.kv_cache_dtype:(Bs=Qe.kv_cache_dtype[an])!=null?Bs:"float32":void 0;if(An&&!["float32","float16"].includes(An))throw new Error(`Invalid kv_cache_dtype: ${An}. Should be one of: float32, float16`);const sr={dtype:an,kv_cache_dtype:An},ur=m.DEFAULT_DTYPE_SUFFIX_MAPPING[an],Jn=`${(xi=Ce.subfolder)!=null?xi:""}/${re}${ur}.onnx`,$n={...Ce.session_options};(is=$n.executionProviders)!=null||($n.executionProviders=Vt);const fr=Qe.free_dimension_overrides;fr?(Fd=$n.freeDimensionOverrides)!=null||($n.freeDimensionOverrides=fr):pt.startsWith("webnn")&&!$n.freeDimensionOverrides&&console.warn('WebNN does not currently support dynamic shapes and requires `free_dimension_overrides` to be set in config.json as a field within "transformers.js_config". When `free_dimension_overrides` is not set, you may experience significant performance degradation.');const nr=(0,s.getModelFile)(U,Jn,!0,Ce),Zn=(Ui=Ce.use_external_data_format)!=null?Ui:Qe.use_external_data_format;let hr=[];if(Zn&&(Zn===!0||typeof Zn=="object"&&Zn.hasOwnProperty(re)&&Zn[re]===!0)){if(h.apis.IS_NODE_ENV)throw new Error("External data format is not yet supported in Node.js");const ss=`${re}${ur}.onnx_data`,Ra=`${(La=Ce.subfolder)!=null?La:""}/${ss}`;hr.push(new Promise(async(Xl,Ph)=>{const pp=await(0,s.getModelFile)(U,Ra,!0,Ce);Xl({path:ss,data:pp})}))}else $n.externalData!==void 0&&(hr=$n.externalData.map(async ss=>{if(typeof ss.data=="string"){const Ra=await(0,s.getModelFile)(U,ss.data,!0,Ce);return{...ss,data:Ra}}return ss}));if(hr.length>0&&($n.externalData=await Promise.all(hr)),pt==="webgpu"){const ss=(0,r.getKeyValueShapes)(Ce.config,{prefix:"present"});if(Object.keys(ss).length>0&&!(0,l.isONNXProxy)()){const Ra={};for(const Xl in ss)Ra[Xl]="gpu-buffer";$n.preferredOutputLocation=Ra}}return{buffer:await nr,session_options:$n,session_config:sr}}async function R(U,re,Ce){return Object.fromEntries(await Promise.all(Object.keys(re).map(async Qe=>{const{buffer:vt,session_options:pt,session_config:Vt}=await D(U,re[Qe],Ce),qt=await(0,l.createInferenceSession)(vt,pt,Vt);return[Qe,qt]})))}async function Q(U,re,Ce){return Object.fromEntries(await Promise.all(Object.keys(re).map(async Qe=>{const vt=await(0,s.getModelJSON)(U,re[Qe],!1,Ce);return[Qe,vt]})))}function ie(U,re){const Ce=Object.create(null),Qe=[];for(const Vt of U.inputNames){const qt=re[Vt];if(!(qt instanceof u.Tensor)){Qe.push(Vt);continue}Ce[Vt]=(0,l.isONNXProxy)()?qt.clone():qt}if(Qe.length>0)throw new Error(`An error occurred during model execution: "Missing the following inputs: ${Qe.join(", ")}.`);const vt=Object.keys(re).length,pt=U.inputNames.length;if(vt>pt){let Vt=Object.keys(re).filter(qt=>!U.inputNames.includes(qt));console.warn(`WARNING: Too many inputs were provided (${vt} > ${pt}). The following inputs will be ignored: "${Vt.join(", ")}".`)}return Ce}async function pe(U,re){const Ce=ie(U,re);try{const Qe=Object.fromEntries(Object.entries(Ce).map(([pt,Vt])=>[pt,Vt.ort_tensor]));let vt=await U.run(Qe);return vt=ke(vt),vt}catch(Qe){throw console.error(`An error occurred during model execution: "${Qe}".`),console.error("Inputs given to model:",Ce),Qe}}function ke(U){for(let re in U)(0,l.isONNXTensor)(U[re])?U[re]=new u.Tensor(U[re]):typeof U[re]=="object"&&ke(U[re]);return U}function Te(U){if(U instanceof u.Tensor)return U;if(U.length===0)throw Error("items must be non-empty");if(Array.isArray(U[0])){if(U.some(re=>re.length!==U[0].length))throw Error("Unable to create tensor, you should probably activate truncation and/or padding with 'padding=True' and/or 'truncation=True' to have batched tensors with the same length.");return new u.Tensor("int64",BigInt64Array.from(U.flat().map(re=>BigInt(re))),[U.length,U[0].length])}else return new u.Tensor("int64",BigInt64Array.from(U.map(re=>BigInt(re))),[1,U.length])}function Re(U){return new u.Tensor("bool",[U],[1])}async function ze(U,re){let{encoder_outputs:Ce,input_ids:Qe,decoder_input_ids:vt,...pt}=re;if(!Ce){const qt=(0,g.pick)(re,U.sessions.model.inputNames);Ce=(await Ze(U,qt)).last_hidden_state}return pt.input_ids=vt,pt.encoder_hidden_states=Ce,U.sessions.decoder_model_merged.inputNames.includes("encoder_attention_mask")&&(pt.encoder_attention_mask=re.attention_mask),await Ie(U,pt,!0)}async function Ze(U,re){const Ce=U.sessions.model,Qe=(0,g.pick)(re,Ce.inputNames);if(Ce.inputNames.includes("inputs_embeds")&&!Qe.inputs_embeds){if(!re.input_ids)throw new Error("Both `input_ids` and `inputs_embeds` are missing in the model inputs.");Qe.inputs_embeds=await U.encode_text({input_ids:re.input_ids})}return Ce.inputNames.includes("token_type_ids")&&!Qe.token_type_ids&&(Qe.token_type_ids=new u.Tensor("int64",new BigInt64Array(Qe.input_ids.data.length),Qe.input_ids.dims)),await pe(Ce,Qe)}async function Ie(U,re,Ce=!1){const Qe=U.sessions[Ce?"decoder_model_merged":"model"],{past_key_values:vt,...pt}=re;Qe.inputNames.includes("use_cache_branch")&&(pt.use_cache_branch=Re(!!vt)),Qe.inputNames.includes("position_ids")&&pt.attention_mask&&!pt.position_ids&&(pt.position_ids=W(pt,vt)),U.addPastKeyValues(pt,vt);const Vt=(0,g.pick)(pt,Qe.inputNames);return await pe(Qe,Vt)}async function ee(U,{input_ids:re=null,attention_mask:Ce=null,pixel_values:Qe=null,position_ids:vt=null,inputs_embeds:pt=null,past_key_values:Vt=null,generation_config:qt=null,logits_processor:an=null,...An}){if(!pt){if(pt=await U.encode_text({input_ids:re}),Qe&&re.dims[1]!==1){const ur=await U.encode_image({pixel_values:Qe});({inputs_embeds:pt,attention_mask:Ce}=U._merge_input_ids_with_image_features({image_features:ur,inputs_embeds:pt,input_ids:re,attention_mask:Ce}))}else if(Vt&&Qe&&re.dims[1]===1){const ur=re.dims[1],Jn=Object.values(Vt)[0].dims.at(-2);Ce=(0,u.cat)([(0,u.ones)([re.dims[0],Jn]),Ce.slice(null,[Ce.dims[1]-ur,Ce.dims[1]])],1)}}return await Ie(U,{inputs_embeds:pt,past_key_values:Vt,attention_mask:Ce,position_ids:vt,generation_config:qt,logits_processor:an},!0)}function W(U,re=null){const{input_ids:Ce,inputs_embeds:Qe,attention_mask:vt}=U,[pt,Vt]=vt.dims,qt=new BigInt64Array(vt.data.length);for(let An=0;Anpt.dims[1])){if(vtqt==U.config.image_token_index)){const qt=U.config.num_image_tokens;if(!qt)throw new Error("`num_image_tokens` is missing in the model configuration.");const an=pt.dims[1]-(vt-qt);Ce.input_ids=pt.slice(null,[-an,null]),Ce.attention_mask=(0,u.ones)([1,vt+an])}}}return Ce}function se(U,re,Ce,Qe){return Ce.past_key_values&&(re=re.map(vt=>[vt.at(-1)])),{...Ce,decoder_input_ids:Te(re)}}function fe(U,...re){return U.config.is_encoder_decoder?se(U,...re):K(U,...re)}class de extends S.Callable{constructor(Ce,Qe,vt){var qt;super();ut(this,"main_input_name","input_ids");ut(this,"forward_params",["input_ids","attention_mask"]);this.config=Ce,this.sessions=Qe,this.configs=vt;const pt=F.get(this.constructor),Vt=M.get(pt);switch(this.can_generate=!1,this._forward=null,this._prepare_inputs_for_generation=null,Vt){case T.DecoderOnly:this.can_generate=!0,this._forward=Ie,this._prepare_inputs_for_generation=K;break;case T.Seq2Seq:case T.Vision2Seq:case T.Musicgen:this.can_generate=!0,this._forward=ze,this._prepare_inputs_for_generation=se;break;case T.EncoderDecoder:this._forward=ze;break;case T.ImageTextToText:this.can_generate=!0,this._forward=ee,this._prepare_inputs_for_generation=fe;break;default:this._forward=Ze;break}this.can_generate&&this.forward_params.push("past_key_values"),this.custom_config=(qt=this.config["transformers.js_config"])!=null?qt:{}}async dispose(){var Qe;const Ce=[];for(const vt of Object.values(this.sessions))(Qe=vt==null?void 0:vt.handler)!=null&&Qe.dispose&&Ce.push(vt.handler.dispose());return await Promise.all(Ce)}static async from_pretrained(Ce,{progress_callback:Qe=null,config:vt=null,cache_dir:pt=null,local_files_only:Vt=!1,revision:qt="main",model_file_name:an=null,subfolder:An="onnx",device:sr=null,dtype:ur=null,use_external_data_format:Jn=null,session_options:$n={}}={}){var Vi,Dr;let fr={progress_callback:Qe,config:vt,cache_dir:pt,local_files_only:Vt,revision:qt,model_file_name:an,subfolder:An,device:sr,dtype:ur,use_external_data_format:Jn,session_options:$n};const nr=F.get(this),Zn=M.get(nr);vt=fr.config=await r.AutoConfig.from_pretrained(Ce,fr);let hr;if(Zn===T.DecoderOnly)hr=await Promise.all([R(Ce,{model:(Vi=fr.model_file_name)!=null?Vi:"model"},fr),Q(Ce,{generation_config:"generation_config.json"},fr)]);else if(Zn===T.Seq2Seq||Zn===T.Vision2Seq)hr=await Promise.all([R(Ce,{model:"encoder_model",decoder_model_merged:"decoder_model_merged"},fr),Q(Ce,{generation_config:"generation_config.json"},fr)]);else if(Zn===T.MaskGeneration)hr=await Promise.all([R(Ce,{model:"vision_encoder",prompt_encoder_mask_decoder:"prompt_encoder_mask_decoder"},fr)]);else if(Zn===T.EncoderDecoder)hr=await Promise.all([R(Ce,{model:"encoder_model",decoder_model_merged:"decoder_model_merged"},fr)]);else if(Zn===T.ImageTextToText){const Vr={embed_tokens:"embed_tokens",vision_encoder:"vision_encoder",decoder_model_merged:"decoder_model_merged"};vt.is_encoder_decoder&&(Vr.model="encoder_model"),hr=await Promise.all([R(Ce,Vr,fr),Q(Ce,{generation_config:"generation_config.json"},fr)])}else Zn===T.Musicgen?hr=await Promise.all([R(Ce,{model:"text_encoder",decoder_model_merged:"decoder_model_merged",encodec_decode:"encodec_decode"},fr),Q(Ce,{generation_config:"generation_config.json"},fr)]):(Zn!==T.EncoderOnly&&console.warn(`Model type for '${nr!=null?nr:vt==null?void 0:vt.model_type}' not found, assuming encoder-only architecture. Please report this at ${c.GITHUB_ISSUE_URL}.`),hr=await Promise.all([R(Ce,{model:(Dr=fr.model_file_name)!=null?Dr:"model"},fr)]));return new this(vt,...hr)}async _call(Ce){return await this.forward(Ce)}async forward(Ce){return await this._forward(this,Ce)}get generation_config(){var Ce,Qe;return(Qe=(Ce=this.configs)==null?void 0:Ce.generation_config)!=null?Qe:null}_get_logits_warper(Ce){const Qe=new p.LogitsProcessorList;return Ce.temperature!==null&&Ce.temperature!==1&&Qe.push(new p.TemperatureLogitsWarper(Ce.temperature)),Ce.top_k!==null&&Ce.top_k!==0&&Qe.push(new p.TopKLogitsWarper(Ce.top_k)),Ce.top_p!==null&&Ce.top_p<1&&Qe.push(new p.TopPLogitsWarper(Ce.top_p)),Qe}_get_logits_processor(Ce,Qe,vt=null){const pt=new p.LogitsProcessorList;if(Ce.repetition_penalty!==null&&Ce.repetition_penalty!==1&&pt.push(new p.RepetitionPenaltyLogitsProcessor(Ce.repetition_penalty)),Ce.no_repeat_ngram_size!==null&&Ce.no_repeat_ngram_size>0&&pt.push(new p.NoRepeatNGramLogitsProcessor(Ce.no_repeat_ngram_size)),Ce.bad_words_ids!==null&&pt.push(new p.NoBadWordsLogitsProcessor(Ce.bad_words_ids,Ce.eos_token_id)),Ce.min_length!==null&&Ce.eos_token_id!==null&&Ce.min_length>0&&pt.push(new p.MinLengthLogitsProcessor(Ce.min_length,Ce.eos_token_id)),Ce.min_new_tokens!==null&&Ce.eos_token_id!==null&&Ce.min_new_tokens>0&&pt.push(new p.MinNewTokensLengthLogitsProcessor(Qe,Ce.min_new_tokens,Ce.eos_token_id)),Ce.forced_bos_token_id!==null&&pt.push(new p.ForcedBOSTokenLogitsProcessor(Ce.forced_bos_token_id)),Ce.forced_eos_token_id!==null&&pt.push(new p.ForcedEOSTokenLogitsProcessor(Ce.max_length,Ce.forced_eos_token_id)),Ce.begin_suppress_tokens!==null){const Vt=Qe>1||Ce.forced_bos_token_id===null?Qe:Qe+1;pt.push(new p.SuppressTokensAtBeginLogitsProcessor(Ce.begin_suppress_tokens,Vt))}return Ce.guidance_scale!==null&&Ce.guidance_scale>1&&pt.push(new p.ClassifierFreeGuidanceLogitsProcessor(Ce.guidance_scale)),vt!==null&&pt.extend(vt),pt}_prepare_generation_config(Ce,Qe,vt=a.GenerationConfig){var qt;const pt={...this.config};for(const an of["decoder","generator","text_config"])an in pt&&Object.assign(pt,pt[an]);const Vt=new vt(pt);return Object.assign(Vt,(qt=this.generation_config)!=null?qt:{}),Ce&&Object.assign(Vt,Ce),Qe&&Object.assign(Vt,(0,g.pick)(Qe,Object.getOwnPropertyNames(Vt))),Vt}_get_stopping_criteria(Ce,Qe=null){var pt;const vt=new _.StoppingCriteriaList;return Ce.max_length!==null&&vt.push(new _.MaxLengthCriteria(Ce.max_length,(pt=this.config.max_position_embeddings)!=null?pt:null)),Ce.eos_token_id!==null&&vt.push(new _.EosTokenCriteria(Ce.eos_token_id)),Qe&&vt.extend(Qe),vt}_validate_model_class(){if(!this.can_generate){const Ce=[Xu,vd,gd,Ls],Qe=F.get(this.constructor),vt=new Set,pt=this.config.model_type;for(const qt of Ce){const an=qt.get(pt);an&&vt.add(an[0])}let Vt=`The current model class (${Qe}) is not compatible with \`.generate()\`, as it doesn't have a language model head.`;throw vt.size>0&&(Vt+=` Please use the following class instead: ${[...vt].join(", ")}`),Error(Vt)}}prepare_inputs_for_generation(...Ce){return this._prepare_inputs_for_generation(this,...Ce)}_update_model_kwargs_for_generation({generated_input_ids:Ce,outputs:Qe,model_inputs:vt,is_encoder_decoder:pt}){return vt.past_key_values=this.getPastKeyValues(Qe,vt.past_key_values),vt.input_ids=new u.Tensor("int64",Ce.flat(),[Ce.length,1]),pt||(vt.attention_mask=(0,u.cat)([vt.attention_mask,(0,u.ones)([vt.attention_mask.dims[0],1])],1)),vt.position_ids=null,vt}_prepare_model_inputs({inputs:Ce,bos_token_id:Qe,model_kwargs:vt}){const pt=(0,g.pick)(vt,this.forward_params),Vt=this.main_input_name;if(Vt in pt){if(Ce)throw new Error("`inputs`: {inputs}` were passed alongside {input_name} which is not allowed. Make sure to either pass {inputs} or {input_name}=...")}else pt[Vt]=Ce;return{inputs_tensor:pt[Vt],model_inputs:pt,model_input_name:Vt}}async _prepare_encoder_decoder_kwargs_for_generation({inputs_tensor:Ce,model_inputs:Qe,model_input_name:vt,generation_config:pt}){if(this.sessions.model.inputNames.includes("inputs_embeds")&&!Qe.inputs_embeds&&"_prepare_inputs_embeds"in this){const{input_ids:qt,pixel_values:an,attention_mask:An,...sr}=Qe,ur=await this._prepare_inputs_embeds(Qe);Qe={...sr,...(0,g.pick)(ur,["inputs_embeds","attention_mask"])}}let{last_hidden_state:Vt}=await Ze(this,Qe);if(pt.guidance_scale!==null&&pt.guidance_scale>1)Vt=(0,u.cat)([Vt,(0,u.full_like)(Vt,0)],0),"attention_mask"in Qe&&(Qe.attention_mask=(0,u.cat)([Qe.attention_mask,(0,u.zeros_like)(Qe.attention_mask)],0));else if(Qe.decoder_input_ids){const qt=Te(Qe.decoder_input_ids).dims[0];if(qt!==Vt.dims[0]){if(Vt.dims[0]!==1)throw new Error(`The encoder outputs have a different batch size (${Vt.dims[0]}) than the decoder inputs (${qt}).`);Vt=(0,u.cat)(Array.from({length:qt},()=>Vt),0)}}return Qe.encoder_outputs=Vt,Qe}_prepare_decoder_input_ids_for_generation({batch_size:Ce,model_input_name:Qe,model_kwargs:vt,decoder_start_token_id:pt,bos_token_id:Vt,generation_config:qt}){let{decoder_input_ids:an,...An}=vt;if(an)Array.isArray(an[0])||(an=Array.from({length:Ce},()=>an));else if(pt!=null||(pt=Vt),this.config.model_type==="musicgen")an=Array.from({length:Ce*this.config.decoder.num_codebooks},()=>[pt]);else if(Array.isArray(pt)){if(pt.length!==Ce)throw new Error(`\`decoder_start_token_id\` expcted to have length ${Ce} but got ${pt.length}`);an=pt}else an=Array.from({length:Ce},()=>[pt]);return an=Te(an),vt.decoder_attention_mask=(0,u.ones_like)(an),{input_ids:an,model_inputs:An}}async generate({inputs:Ce=null,generation_config:Qe=null,logits_processor:vt=null,stopping_criteria:pt=null,streamer:Vt=null,...qt}){this._validate_model_class(),Qe=this._prepare_generation_config(Qe,qt);let{inputs_tensor:an,model_inputs:An,model_input_name:sr}=this._prepare_model_inputs({inputs:Ce,model_kwargs:qt});const ur=this.config.is_encoder_decoder;ur&&("encoder_outputs"in An||(An=await this._prepare_encoder_decoder_kwargs_for_generation({inputs_tensor:an,model_inputs:An,model_input_name:sr,generation_config:Qe})));let Jn;ur?{input_ids:Jn,model_inputs:An}=this._prepare_decoder_input_ids_for_generation({batch_size:An[sr].dims.at(0),model_input_name:sr,model_kwargs:An,decoder_start_token_id:Qe.decoder_start_token_id,bos_token_id:Qe.bos_token_id,generation_config:Qe}):Jn=An[sr];let $n=Jn.dims.at(-1);Qe.max_new_tokens!==null&&(Qe.max_length=$n+Qe.max_new_tokens);const fr=this._get_logits_processor(Qe,$n,vt),nr=this._get_stopping_criteria(Qe,pt),Zn=An[sr].dims.at(0),hr=y.LogitsSampler.getSampler(Qe),Vi=new Array(Zn).fill(0),Dr=Jn.tolist();Vt&&Vt.put(Dr);let Vr,Qr={};for(;;){if(An=this.prepare_inputs_for_generation(Dr,An,Qe),Vr=await this.forward(An),Qe.output_attentions&&Qe.return_dict_in_generate){const Ui=this.getAttentions(Vr);for(const La in Ui)La in Qr||(Qr[La]=[]),Qr[La].push(Ui[La])}const Bs=Vr.logits.slice(null,-1,null),xi=fr(Dr,Bs),is=[];for(let Ui=0;UiUi))break;An=this._update_model_kwargs_for_generation({generated_input_ids:is,outputs:Vr,model_inputs:An,is_encoder_decoder:ur})}Vt&&Vt.end();const jr=this.getPastKeyValues(Vr,An.past_key_values,!0),Jr=new u.Tensor("int64",Dr.flat(),[Dr.length,Dr[0].length]);if(Qe.return_dict_in_generate)return{sequences:Jr,past_key_values:jr,...Qr};for(const Bs of Object.values(Vr))Bs.location==="gpu-buffer"&&Bs.dispose();return Jr}getPastKeyValues(Ce,Qe,vt=!1){const pt=Object.create(null);for(const Vt in Ce)if(Vt.startsWith("present")){const qt=Vt.replace("present","past_key_values"),an=Vt.includes("encoder");if(an&&Qe?pt[qt]=Qe[qt]:pt[qt]=Ce[Vt],Qe&&(!an||vt)){const An=Qe[qt];An.location==="gpu-buffer"&&An.dispose()}}return pt}getAttentions(Ce){const Qe={};for(const vt of["cross_attentions","encoder_attentions","decoder_attentions"])for(const pt in Ce)pt.startsWith(vt)&&(vt in Qe||(Qe[vt]=[]),Qe[vt].push(Ce[pt]));return Qe}addPastKeyValues(Ce,Qe){var vt,pt,Vt;if(Qe)Object.assign(Ce,Qe);else{const qt=(vt=this.sessions.decoder_model_merged)!=null?vt:this.sessions.model,an=(Vt=(pt=qt==null?void 0:qt.config)==null?void 0:pt.kv_cache_dtype)!=null?Vt:"float32",An=an==="float16"?new Uint16Array:[],sr=(0,r.getKeyValueShapes)(this.config);for(const ur in sr)Ce[ur]=new u.Tensor(an,An,sr[ur])}}async encode_image({pixel_values:Ce}){const Qe=(await pe(this.sessions.vision_encoder,{pixel_values:Ce})).image_features;return this.config.num_image_tokens||(console.warn(`The number of image tokens was not set in the model configuration. Setting it to the number of features detected by the vision encoder (${Qe.dims[1]}).`),this.config.num_image_tokens=Qe.dims[1]),Qe}async encode_text({input_ids:Ce}){return(await pe(this.sessions.embed_tokens,{input_ids:Ce})).inputs_embeds}}class ue{}class te extends ue{constructor({last_hidden_state:re,hidden_states:Ce=null,attentions:Qe=null}){super(),this.last_hidden_state=re,this.hidden_states=Ce,this.attentions=Qe}}class ge extends de{}class Oe extends ge{}class Ue extends ge{async _call(re){return new li(await super._call(re))}}class Ae extends ge{async _call(re){return new _n(await super._call(re))}}class he extends ge{async _call(re){return new oi(await super._call(re))}}class Fe extends ge{async _call(re){return new _i(await super._call(re))}}class He extends de{}class $e extends He{}class xe extends de{}class De extends xe{}class Ge extends xe{async _call(re){return new li(await super._call(re))}}class Ne extends xe{async _call(re){return new _n(await super._call(re))}}class tt extends xe{async _call(re){return new oi(await super._call(re))}}class ct extends xe{async _call(re){return new _i(await super._call(re))}}class J extends de{}class _e extends J{}class G extends J{async _call(re){return new li(await super._call(re))}}class Pe extends J{async _call(re){return new _n(await super._call(re))}}class We extends J{async _call(re){return new oi(await super._call(re))}}class ht extends J{async _call(re){return new _i(await super._call(re))}}class wt extends de{}class Xt extends wt{}class Ft extends wt{async _call(re){return new li(await super._call(re))}}class jt extends wt{async _call(re){return new _n(await super._call(re))}}class Qt extends wt{async _call(re){return new oi(await super._call(re))}}class Mt extends wt{async _call(re){return new _i(await super._call(re))}}class Zt extends de{}class Cn extends Zt{}class or extends Zt{async _call(re){return new li(await super._call(re))}}class Gn extends Zt{async _call(re){return new _n(await super._call(re))}}class lr extends Zt{async _call(re){return new oi(await super._call(re))}}class bt extends Zt{async _call(re){return new _i(await super._call(re))}}class Me extends de{}class Je extends Me{}class lt extends Me{async _call(re){return new li(await super._call(re))}}class Ct extends Me{async _call(re){return new _n(await super._call(re))}}class at extends Me{async _call(re){return new oi(await super._call(re))}}class xt extends Me{async _call(re){return new _i(await super._call(re))}}class Gt extends de{}class Ut extends Gt{}class Jt extends Gt{async _call(re){return new li(await super._call(re))}}class Wt extends Gt{async _call(re){return new _n(await super._call(re))}}class rn extends Gt{async _call(re){return new oi(await super._call(re))}}class on extends Gt{async _call(re){return new _i(await super._call(re))}}class tn extends de{}class mn extends tn{}class it extends tn{async _call(re){return new _n(await super._call(re))}}class Et extends tn{async _call(re){return new oi(await super._call(re))}}class Lt extends tn{async _call(re){return new _i(await super._call(re))}}class vn extends tn{async _call(re){return new li(await super._call(re))}}class qn extends de{}class Pr extends qn{}class zr extends qn{async _call(re){return new li(await super._call(re))}}class jn extends qn{async _call(re){return new _n(await super._call(re))}}class Br extends qn{async _call(re){return new oi(await super._call(re))}}class Mr extends de{}class Li extends Mr{}class Sr extends Mr{async _call(re){return new li(await super._call(re))}}class bo extends Mr{async _call(re){return new _n(await super._call(re))}}class cl extends Mr{async _call(re){return new _i(await super._call(re))}}class ca extends de{}class dl extends ca{}class fl extends ca{async _call(re){return new li(await super._call(re))}}class da extends ca{async _call(re){return new _n(await super._call(re))}}class hl extends ca{async _call(re){return new oi(await super._call(re))}}class fa extends ca{async _call(re){return new _i(await super._call(re))}}class qa extends de{}class ha extends qa{}class fs extends qa{async _call(re){return new li(await super._call(re))}}class ks extends qa{async _call(re){return new _n(await super._call(re))}}class Ya extends qa{async _call(re){return new _i(await super._call(re))}}class hs extends de{}class xo extends hs{}class So extends hs{async _call(re){return new _n(await super._call(re))}}class To extends hs{async _call(re){return new _i(await super._call(re))}}class Sn extends hs{async _call(re){return new li(await super._call(re))}}class pa extends de{constructor(){super(...arguments);ut(this,"forward_params",["input_ids","attention_mask","encoder_outputs","decoder_input_ids","decoder_attention_mask","past_key_values"])}}class Co extends pa{}class Mo extends pa{}class ma extends de{}class pl extends ma{}class Eo extends ma{}class Os extends de{}class Po extends Os{}class Ke extends Os{}class H extends de{}class ve extends H{}class Le extends H{}class Ye extends H{async _call(re){return new _n(await super._call(re))}}class rt extends de{}class gt extends rt{}class It extends rt{}class zt extends rt{async _call(re){return new _n(await super._call(re))}}class Bt extends rt{}class en extends de{}class En extends en{}class cr extends en{}class vr extends de{}class tr extends vr{}class kr extends vr{}class Fn extends de{}class ir extends Fn{}class Mi extends Fn{async _call(re){return new li(await super._call(re))}}class Ei extends Fn{async _call(re){return new _n(await super._call(re))}}class dt extends Fn{async _call(re){return new oi(await super._call(re))}}class qr extends Fn{async _call(re){return new _i(await super._call(re))}}class mi extends de{}class ps extends mi{}class ms extends mi{async _call(re){return new li(await super._call(re))}}class bn extends mi{async _call(re){return new _n(await super._call(re))}}class wi extends mi{async _call(re){return new oi(await super._call(re))}}class Nr extends mi{async _call(re){return new _i(await super._call(re))}}class Hn extends de{}class yr extends Hn{}class Ot extends Hn{async _call(re){return new li(await super._call(re))}}class cn extends Hn{async _call(re){return new _n(await super._call(re))}}class Ka extends Hn{async _call(re){return new oi(await super._call(re))}}class ga extends Hn{async _call(re){return new _i(await super._call(re))}}class Ks extends de{}class fn extends Ks{}class pu extends Ks{}class Pt extends de{constructor(){super(...arguments);ut(this,"requires_attention_mask",!1);ut(this,"main_input_name","input_features");ut(this,"forward_params",["input_features","attention_mask","decoder_input_ids","decoder_attention_mask","past_key_values"])}}class pn extends Pt{}class pc extends Pt{_prepare_generation_config(re,Ce){return super._prepare_generation_config(re,Ce,v.WhisperGenerationConfig)}_retrieve_init_tokens(re){const Ce=[re.decoder_start_token_id];let Qe=re.language;const vt=re.task;if(re.is_multilingual){Qe||(console.warn("No language specified - defaulting to English (en)."),Qe="en");const Vt=`<|${(0,b.whisper_language_to_code)(Qe)}|>`;Ce.push(re.lang_to_id[Vt]),Ce.push(re.task_to_id[vt!=null?vt:"transcribe"])}else if(Qe||vt)throw new Error("Cannot specify `task` or `language` for an English-only model. If the model is intended to be multilingual, pass `is_multilingual=true` to generate, or update the generation config.");return!re.return_timestamps&&re.no_timestamps_token_id&&Ce.at(-1)!==re.no_timestamps_token_id?Ce.push(re.no_timestamps_token_id):re.return_timestamps&&Ce.at(-1)===re.no_timestamps_token_id&&(console.warn("<|notimestamps|> prompt token is removed from generation_config since `return_timestamps` is set to `true`."),Ce.pop()),Ce.filter(pt=>pt!=null)}async generate({inputs:re=null,generation_config:Ce=null,logits_processor:Qe=null,stopping_criteria:vt=null,...pt}){var an;Ce=this._prepare_generation_config(Ce,pt);const Vt=(an=pt.decoder_input_ids)!=null?an:this._retrieve_init_tokens(Ce);if(Ce.return_timestamps&&(Qe!=null||(Qe=new p.LogitsProcessorList),Qe.push(new p.WhisperTimeStampLogitsProcessor(Ce,Vt))),Ce.begin_suppress_tokens&&(Qe!=null||(Qe=new p.LogitsProcessorList),Qe.push(new p.SuppressTokensAtBeginLogitsProcessor(Ce.begin_suppress_tokens,Vt.length))),Ce.return_token_timestamps){if(!Ce.alignment_heads)throw new Error("Model generation config has no `alignment_heads`, token-level timestamps not available. See https://gist.github.com/hollance/42e32852f24243b748ae6bc1f985b13a on how to add this property to the generation config.");Ce.task==="translate"&&console.warn("Token-level timestamps may not be reliable for task 'translate'."),Ce.output_attentions=!0,Ce.return_dict_in_generate=!0}const qt=await super.generate({inputs:re,generation_config:Ce,logits_processor:Qe,decoder_input_ids:Vt,...pt});return Ce.return_token_timestamps&&(qt.token_timestamps=this._extract_token_timestamps(qt,Ce.alignment_heads,Ce.num_frames)),qt}_extract_token_timestamps(re,Ce,Qe=null,vt=.02){if(!re.cross_attentions)throw new Error("Model outputs must contain cross attentions to extract timestamps. This is most likely because the model was not exported with `output_attentions=True`.");Qe==null&&console.warn("`num_frames` has not been set, meaning the entire audio will be analyzed. This may lead to inaccurate token-level timestamps for short audios (< 30 seconds).");let pt=this.config.median_filter_width;pt===void 0&&(console.warn("Model config has no `median_filter_width`, using default value of 7."),pt=7);const Vt=re.cross_attentions,qt=Array.from({length:this.config.decoder_layers},(nr,Zn)=>(0,u.cat)(Vt.map(hr=>hr[Zn]),2)),an=(0,u.stack)(Ce.map(([nr,Zn])=>{if(nr>=qt.length)throw new Error(`Layer index ${nr} is out of bounds for cross attentions (length ${qt.length}).`);return Qe?qt[nr].slice(null,Zn,null,[0,Qe]):qt[nr].slice(null,Zn)})).transpose(1,0,2,3),[An,sr]=(0,u.std_mean)(an,-2,0,!0),ur=an.clone();for(let nr=0;nrhr[Jr+1]-hr[Jr]),Vr=(0,g.mergeArrays)([1],Dr).map(jr=>!!jr),Qr=[];for(let jr=0;jrJn.findIndex($n=>$n==pt)),an=qt.every(Jn=>Jn===-1),An=qt.every(Jn=>Jn!==-1);if(!an&&!An)throw new Error("Every input should contain either 0 or 1 image token.");if(an)return{inputs_embeds:re,attention_mask:vt};const sr=[],ur=[];for(let Jn=0;Jnpt*Vt,1);re.input_labels=new u.Tensor("int64",new BigInt64Array(vt).fill(1n),Qe)}const Ce={image_embeddings:re.image_embeddings,image_positional_embeddings:re.image_positional_embeddings};return re.input_points&&(Ce.input_points=re.input_points),re.input_labels&&(Ce.input_labels=re.input_labels),re.input_boxes&&(Ce.input_boxes=re.input_boxes),await pe(this.sessions.prompt_encoder_mask_decoder,Ce)}async _call(re){return new Kc(await super._call(re))}}class Kc extends ue{constructor({iou_scores:re,pred_masks:Ce}){super(),this.iou_scores=re,this.pred_masks=Ce}}class Qc extends de{}class sp extends Qc{}class Iu extends Qc{}class Pa extends de{}class ka extends Pa{}class Yf extends Pa{}class $s extends de{}class Kf extends $s{}class Ds extends $s{async _call(re){return new Da(await super._call(re))}}class Fu extends $s{async _call(re){return new _n(await super._call(re))}}class to extends $s{async _call(re){return new oi(await super._call(re))}}class Wi extends de{}class Qf extends Wi{}class Jf extends Wi{async _call(re){return new oi(await super._call(re))}}class $u extends de{}class Vo extends $u{}class ys extends de{}class Jc extends ys{}class Zf extends ys{async _call(re){return new Da(await super._call(re))}}class no extends ys{async _call(re){return new _n(await super._call(re))}}class Ol extends de{}class Al extends Ol{}class ni extends Ol{async _call(re){return new Da(await super._call(re))}}class Il extends Ol{async _call(re){return new _n(await super._call(re))}}class Zc extends Ol{async _call(re){return new oi(await super._call(re))}}class Ji extends de{}class Fl extends Ji{}class Du extends Ji{async _call(re){return new Da(await super._call(re))}}class Oa extends Ji{async _call(re){return new _n(await super._call(re))}}class eh extends de{}class Oi extends $s{}class Lu extends $s{async _call(re){return new Da(await super._call(re))}}class ed extends $s{async _call(re){return new _n(await super._call(re))}}class $l extends de{}class th extends $l{}class Ru extends $l{async _call(re){return new Da(await super._call(re))}}class nh extends $l{async _call(re){return new _n(await super._call(re))}}class ro extends $l{async _call(re){return new Id(await super._call(re))}}class td extends $l{async _call(re){return new oi(await super._call(re))}}class zu extends de{}class ap extends zu{}class Uo extends zu{}class rh extends zu{async generate_speech(re,Ce,{threshold:Qe=.5,minlenratio:vt=0,maxlenratio:pt=20,vocoder:Vt=null}={}){const qt={input_ids:re},{encoder_outputs:an,encoder_attention_mask:An}=await Ze(this,qt),sr=an.dims[1]/this.config.reduction_factor,ur=Math.floor(sr*pt),Jn=Math.floor(sr*vt),$n=this.config.num_mel_bins;let fr=[],nr=null,Zn=null,hr=0;for(;;){++hr;const Vr=Re(!!Zn);let Qr;Zn?Qr=Zn.output_sequence_out:Qr=new u.Tensor("float32",new Float32Array($n),[1,1,$n]);let jr={use_cache_branch:Vr,output_sequence:Qr,encoder_attention_mask:An,speaker_embeddings:Ce,encoder_hidden_states:an};this.addPastKeyValues(jr,nr),Zn=await pe(this.sessions.decoder_model_merged,jr),nr=this.getPastKeyValues(Zn,nr);const{prob:Jr,spectrum:Bs}=Zn;if(fr.push(Bs),hr>=Jn&&(Array.from(Jr.data).filter(xi=>xi>=Qe).length>0||hr>=ur))break}const Vi=(0,u.cat)(fr),{waveform:Dr}=await pe(Vt.sessions.model,{spectrogram:Vi});return{spectrogram:Vi,waveform:Dr}}}class ih extends de{constructor(){super(...arguments);ut(this,"main_input_name","spectrogram")}}class nd extends de{}class rd extends nd{}class id extends de{}class sh extends id{}class op extends id{}class Bu extends de{}class Nu extends Bu{}class ah extends Bu{}class Dl extends de{}class sd extends Dl{}class oh extends Dl{}class io extends de{}class Aa extends io{}class ad extends io{static async from_pretrained(re,Ce={}){var Qe;return(Qe=Ce.model_file_name)!=null||(Ce.model_file_name="text_model"),super.from_pretrained(re,Ce)}}class od extends io{static async from_pretrained(re,Ce={}){var Qe;return(Qe=Ce.model_file_name)!=null||(Ce.model_file_name="audio_model"),super.from_pretrained(re,Ce)}}class ld extends de{}class ud extends ld{async _call(re){return new Eh(await super._call(re))}}class Ll extends de{}class lh extends Ll{}class ju extends Ll{}class cd extends Ll{}class Rl extends de{}class lp extends Rl{}class Wu extends Rl{}class Un extends de{}class uh extends Un{}class ch extends Un{async _call(re){return new _n(await super._call(re))}}class so extends de{}class up extends so{}class cp extends so{}class dd extends de{constructor(){super(...arguments);ut(this,"forward_params",["input_ids","attention_mask","encoder_outputs","decoder_input_ids","decoder_attention_mask","past_key_values"])}_apply_and_filter_by_delay_pattern_mask(Ce){const[Qe,vt]=Ce.dims,pt=this.config.decoder.num_codebooks,Vt=vt-pt;let qt=0;for(let sr=0;sr0&&$n<=Vt&&(Ce.data[qt++]=Ce.data[sr])}const an=Math.floor(Qe/pt),An=qt/(an*pt);return new u.Tensor(Ce.type,Ce.data.slice(0,qt),[an,pt,An])}prepare_inputs_for_generation(Ce,Qe,vt){let pt=structuredClone(Ce);for(let qt=0;qt=an&&(pt[qt][an]=BigInt(this.config.decoder.pad_token_id));return vt.guidance_scale!==null&&vt.guidance_scale>1&&(pt=pt.concat(pt)),super.prepare_inputs_for_generation(pt,Qe,vt)}async generate(Ce){const Qe=await super.generate(Ce),vt=this._apply_and_filter_by_delay_pattern_mask(Qe).unsqueeze_(0),{audio_values:pt}=await pe(this.sessions.encodec_decode,{audio_codes:vt});return pt}}class Zi extends de{}class dh extends Zi{}class zl extends Zi{async _call(re){return new _n(await super._call(re))}}class Bl extends de{}class fd extends Bl{}class fh extends Bl{async _call(re){return new _n(await super._call(re))}}class Ai extends de{}class ea extends Ai{}class Vu extends Ai{async _call(re){return new _n(await super._call(re))}}class Uu extends de{}class Gu extends Uu{}class hd extends Uu{async _call(re){return new _n(await super._call(re))}}class Hu extends de{}class pd extends Hu{}class dr{static async from_pretrained(re,{progress_callback:Ce=null,config:Qe=null,cache_dir:vt=null,local_files_only:pt=!1,revision:Vt="main",model_file_name:qt=null,subfolder:an="onnx",device:An=null,dtype:sr=null,use_external_data_format:ur=null,session_options:Jn={}}={}){const $n={progress_callback:Ce,config:Qe,cache_dir:vt,local_files_only:pt,revision:Vt,model_file_name:qt,subfolder:an,device:An,dtype:sr,use_external_data_format:ur,session_options:Jn};if($n.config=await r.AutoConfig.from_pretrained(re,$n),!this.MODEL_CLASS_MAPPINGS)throw new Error("`MODEL_CLASS_MAPPINGS` not implemented for this type of `AutoClass`: "+this.name);for(const fr of this.MODEL_CLASS_MAPPINGS){const nr=fr.get($n.config.model_type);if(!!nr)return await nr[1].from_pretrained(re,$n)}if(this.BASE_IF_FAIL)return console.warn(`Unknown model class "${$n.config.model_type}", attempting to construct from base class.`),await de.from_pretrained(re,$n);throw Error(`Unsupported model type: ${$n.config.model_type}`)}}ut(dr,"MODEL_CLASS_MAPPINGS",null),ut(dr,"BASE_IF_FAIL",!1);const hh=new Map([["bert",["BertModel",Oe]],["nomic_bert",["NomicBertModel",$e]],["roformer",["RoFormerModel",De]],["electra",["ElectraModel",Xt]],["esm",["EsmModel",Pr]],["convbert",["ConvBertModel",_e]],["camembert",["CamembertModel",Cn]],["deberta",["DebertaModel",Je]],["deberta-v2",["DebertaV2Model",Ut]],["mpnet",["MPNetModel",dl]],["albert",["AlbertModel",xo]],["distilbert",["DistilBertModel",mn]],["roberta",["RobertaModel",ir]],["xlm",["XLMModel",ps]],["xlm-roberta",["XLMRobertaModel",yr]],["clap",["ClapModel",Aa]],["clip",["CLIPModel",mc]],["clipseg",["CLIPSegModel",_u]],["chinese_clip",["ChineseCLIPModel",Qs]],["siglip",["SiglipModel",gf]],["mobilebert",["MobileBertModel",Li]],["squeezebert",["SqueezeBertModel",ha]],["wav2vec2",["Wav2Vec2Model",Kf]],["wav2vec2-bert",["Wav2Vec2BertModel",Fl]],["unispeech",["UniSpeechModel",Jc]],["unispeech-sat",["UniSpeechSatModel",Al]],["hubert",["HubertModel",Oi]],["wavlm",["WavLMModel",th]],["audio-spectrogram-transformer",["ASTModel",fn]],["vits",["VitsModel",ud]],["pyannote",["PyAnnoteModel",Qf]],["wespeaker-resnet",["WeSpeakerResNetModel",Vo]],["detr",["DetrModel",Df]],["rt_detr",["RTDetrModel",Lf]],["table-transformer",["TableTransformerModel",Ml]],["vit",["ViTModel",Fc]],["pvt",["PvtModel",yl]],["vit_msn",["ViTMSNModel",Tr]],["vit_mae",["ViTMAEModel",Kn]],["groupvit",["GroupViTModel",wl]],["fastvit",["FastViTModel",Af]],["mobilevit",["MobileViTModel",Lc]],["mobilevitv2",["MobileViTV2Model",Fo]],["owlvit",["OwlViTModel",Do]],["owlv2",["Owlv2Model",Ff]],["beit",["BeitModel",Tl]],["deit",["DeiTModel",Bo]],["hiera",["HieraModel",xa]],["convnext",["ConvNextModel",bi]],["convnextv2",["ConvNextV2Model",Xc]],["dinov2",["Dinov2Model",Hf]],["resnet",["ResNetModel",zf]],["swin",["SwinModel",El]],["swin2sr",["Swin2SRModel",me]],["donut-swin",["DonutSwinModel",vs]],["yolos",["YolosModel",Xf]],["dpt",["DPTModel",Qi]],["glpn",["GLPNModel",Ta]],["hifigan",["SpeechT5HifiGan",ih]],["efficientnet",["EfficientNetModel",uh]],["decision_transformer",["DecisionTransformerModel",pd]],["mobilenet_v1",["MobileNetV1Model",dh]],["mobilenet_v2",["MobileNetV2Model",fd]],["mobilenet_v3",["MobileNetV3Model",ea]],["mobilenet_v4",["MobileNetV4Model",Gu]],["maskformer",["MaskFormerModel",Fs]]]),Ia=new Map([["t5",["T5Model",Co]],["longt5",["LongT5Model",pl]],["mt5",["MT5Model",Po]],["bart",["BartModel",ve]],["mbart",["MBartModel",gt]],["marian",["MarianModel",sp]],["whisper",["WhisperModel",pn]],["m2m_100",["M2M100Model",ka]],["blenderbot",["BlenderbotModel",En]],["blenderbot-small",["BlenderbotSmallModel",tr]]]),dp=new Map([["bloom",["BloomModel",Ja]],["jais",["JAISModel",vf]],["gpt2",["GPT2Model",vu]],["gptj",["GPTJModel",bc]],["gpt_bigcode",["GPTBigCodeModel",bu]],["gpt_neo",["GPTNeoModel",yc]],["gpt_neox",["GPTNeoXModel",wf]],["codegen",["CodeGenModel",bf]],["llama",["LlamaModel",xu]],["granite",["GraniteModel",Sc]],["cohere",["CohereModel",Sf]],["gemma",["GemmaModel",Qa]],["gemma2",["Gemma2Model",Tu]],["openelm",["OpenELMModel",vl]],["qwen2",["Qwen2Model",kc]],["phi",["PhiModel",Oc]],["phi3",["Phi3Model",Ef]],["mpt",["MptModel",mt]],["opt",["OPTModel",gr]],["mistral",["MistralModel",sh]],["starcoder2",["Starcoder2Model",Nu]],["falcon",["FalconModel",sd]],["stablelm",["StableLmModel",lp]]]),Ls=new Map([["speecht5",["SpeechT5ForSpeechToText",Uo]],["whisper",["WhisperForConditionalGeneration",pc]]]),md=new Map([["speecht5",["SpeechT5ForTextToSpeech",rh]]]),ph=new Map([["vits",["VitsModel",ud]],["musicgen",["MusicgenForConditionalGeneration",dd]]]),gi=new Map([["bert",["BertForSequenceClassification",Ae]],["roformer",["RoFormerForSequenceClassification",Ne]],["electra",["ElectraForSequenceClassification",jt]],["esm",["EsmForSequenceClassification",jn]],["convbert",["ConvBertForSequenceClassification",Pe]],["camembert",["CamembertForSequenceClassification",Gn]],["deberta",["DebertaForSequenceClassification",Ct]],["deberta-v2",["DebertaV2ForSequenceClassification",Wt]],["mpnet",["MPNetForSequenceClassification",da]],["albert",["AlbertForSequenceClassification",So]],["distilbert",["DistilBertForSequenceClassification",it]],["roberta",["RobertaForSequenceClassification",Ei]],["xlm",["XLMForSequenceClassification",bn]],["xlm-roberta",["XLMRobertaForSequenceClassification",cn]],["bart",["BartForSequenceClassification",Ye]],["mbart",["MBartForSequenceClassification",zt]],["mobilebert",["MobileBertForSequenceClassification",bo]],["squeezebert",["SqueezeBertForSequenceClassification",ks]]]),mh=new Map([["bert",["BertForTokenClassification",he]],["roformer",["RoFormerForTokenClassification",tt]],["electra",["ElectraForTokenClassification",Qt]],["esm",["EsmForTokenClassification",Br]],["convbert",["ConvBertForTokenClassification",We]],["camembert",["CamembertForTokenClassification",lr]],["deberta",["DebertaForTokenClassification",at]],["deberta-v2",["DebertaV2ForTokenClassification",rn]],["mpnet",["MPNetForTokenClassification",hl]],["distilbert",["DistilBertForTokenClassification",Et]],["roberta",["RobertaForTokenClassification",dt]],["xlm",["XLMForTokenClassification",wi]],["xlm-roberta",["XLMRobertaForTokenClassification",Ka]]]),gd=new Map([["t5",["T5ForConditionalGeneration",Mo]],["longt5",["LongT5ForConditionalGeneration",Eo]],["mt5",["MT5ForConditionalGeneration",Ke]],["bart",["BartForConditionalGeneration",Le]],["mbart",["MBartForConditionalGeneration",It]],["marian",["MarianMTModel",Iu]],["m2m_100",["M2M100ForConditionalGeneration",Yf]],["blenderbot",["BlenderbotForConditionalGeneration",cr]],["blenderbot-small",["BlenderbotSmallForConditionalGeneration",kr]]]),Xu=new Map([["bloom",["BloomForCausalLM",nt]],["gpt2",["GPT2LMHeadModel",gs]],["jais",["JAISLMHeadModel",yf]],["gptj",["GPTJForCausalLM",Yi]],["gpt_bigcode",["GPTBigCodeForCausalLM",_l]],["gpt_neo",["GPTNeoForCausalLM",gl]],["gpt_neox",["GPTNeoXForCausalLM",wc]],["codegen",["CodeGenForCausalLM",xc]],["llama",["LlamaForCausalLM",Oo]],["granite",["GraniteForCausalLM",xf]],["cohere",["CohereForCausalLM",_s]],["gemma",["GemmaForCausalLM",Tf]],["gemma2",["Gemma2ForCausalLM",Ec]],["openelm",["OpenELMForCausalLM",Cf]],["qwen2",["Qwen2ForCausalLM",ya]],["phi",["PhiForCausalLM",Ac]],["phi3",["Phi3ForCausalLM",Pf]],["mpt",["MptForCausalLM",ln]],["opt",["OPTForCausalLM",Yr]],["mbart",["MBartForCausalLM",Bt]],["mistral",["MistralForCausalLM",op]],["starcoder2",["Starcoder2ForCausalLM",ah]],["falcon",["FalconForCausalLM",oh]],["trocr",["TrOCRForCausalLM",rd]],["stablelm",["StableLmForCausalLM",Wu]]]),_d=new Map([["bert",["BertForMaskedLM",Ue]],["roformer",["RoFormerForMaskedLM",Ge]],["electra",["ElectraForMaskedLM",Ft]],["esm",["EsmForMaskedLM",zr]],["convbert",["ConvBertForMaskedLM",G]],["camembert",["CamembertForMaskedLM",or]],["deberta",["DebertaForMaskedLM",lt]],["deberta-v2",["DebertaV2ForMaskedLM",Jt]],["mpnet",["MPNetForMaskedLM",fl]],["albert",["AlbertForMaskedLM",Sn]],["distilbert",["DistilBertForMaskedLM",vn]],["roberta",["RobertaForMaskedLM",Mi]],["xlm",["XLMWithLMHeadModel",ms]],["xlm-roberta",["XLMRobertaForMaskedLM",Ot]],["mobilebert",["MobileBertForMaskedLM",Sr]],["squeezebert",["SqueezeBertForMaskedLM",fs]]]),Go=new Map([["bert",["BertForQuestionAnswering",Fe]],["roformer",["RoFormerForQuestionAnswering",ct]],["electra",["ElectraForQuestionAnswering",Mt]],["convbert",["ConvBertForQuestionAnswering",ht]],["camembert",["CamembertForQuestionAnswering",bt]],["deberta",["DebertaForQuestionAnswering",xt]],["deberta-v2",["DebertaV2ForQuestionAnswering",on]],["mpnet",["MPNetForQuestionAnswering",fa]],["albert",["AlbertForQuestionAnswering",To]],["distilbert",["DistilBertForQuestionAnswering",Lt]],["roberta",["RobertaForQuestionAnswering",qr]],["xlm",["XLMForQuestionAnswering",Nr]],["xlm-roberta",["XLMRobertaForQuestionAnswering",ga]],["mobilebert",["MobileBertForQuestionAnswering",cl]],["squeezebert",["SqueezeBertForQuestionAnswering",Ya]]]),vd=new Map([["vision-encoder-decoder",["VisionEncoderDecoderModel",ti]]]),gh=new Map([["llava",["LlavaForConditionalGeneration",rs]],["moondream1",["Moondream1ForConditionalGeneration",Nn]],["florence2",["Florence2ForConditionalGeneration",Ri]]]),yd=new Map([["vision-encoder-decoder",["VisionEncoderDecoderModel",ti]]]),Ii=new Map([["vit",["ViTForImageClassification",kf]],["pvt",["PvtForImageClassification",np]],["vit_msn",["ViTMSNForImageClassification",Of]],["fastvit",["FastViTForImageClassification",If]],["mobilevit",["MobileViTForImageClassification",xl]],["mobilevitv2",["MobileViTV2ForImageClassification",Sl]],["beit",["BeitForImageClassification",Cl]],["deit",["DeiTForImageClassification",No]],["hiera",["HieraForImageClassification",Rf]],["convnext",["ConvNextForImageClassification",Hc]],["convnextv2",["ConvNextV2ForImageClassification",Ea]],["dinov2",["Dinov2ForImageClassification",ji]],["resnet",["ResNetForImageClassification",rp]],["swin",["SwinForImageClassification",ki]],["segformer",["SegformerForImageClassification",ju]],["efficientnet",["EfficientNetForImageClassification",ch]],["mobilenet_v1",["MobileNetV1ForImageClassification",zl]],["mobilenet_v2",["MobileNetV2ForImageClassification",fh]],["mobilenet_v3",["MobileNetV3ForImageClassification",Vu]],["mobilenet_v4",["MobileNetV4ForImageClassification",hd]]]),ws=new Map([["detr",["DetrForObjectDetection",zc]],["rt_detr",["RTDetrForObjectDetection",jc]],["table-transformer",["TableTransformerForObjectDetection",zo]],["yolos",["YolosForObjectDetection",Au]]]),wd=new Map([["owlvit",["OwlViTForObjectDetection",wa]],["owlv2",["Owlv2ForObjectDetection",$f]]]),_h=new Map([["detr",["DetrForSegmentation",Bc]],["clipseg",["CLIPSegForImageSegmentation",$r]]]),Nl=new Map([["segformer",["SegformerForSemanticSegmentation",cd]],["sapiens",["SapiensForSemanticSegmentation",Sa]]]),ao=new Map([["detr",["DetrForSegmentation",Bc]],["maskformer",["MaskFormerForInstanceSegmentation",Uf]]]),qu=new Map([["sam",["SamModel",kl]]]),bd=new Map([["wav2vec2",["Wav2Vec2ForCTC",Ds]],["wav2vec2-bert",["Wav2Vec2BertForCTC",Du]],["unispeech",["UniSpeechForCTC",Zf]],["unispeech-sat",["UniSpeechSatForCTC",ni]],["wavlm",["WavLMForCTC",Ru]],["hubert",["HubertForCTC",Lu]]]),vh=new Map([["wav2vec2",["Wav2Vec2ForSequenceClassification",Fu]],["wav2vec2-bert",["Wav2Vec2BertForSequenceClassification",Oa]],["unispeech",["UniSpeechForSequenceClassification",no]],["unispeech-sat",["UniSpeechSatForSequenceClassification",Il]],["wavlm",["WavLMForSequenceClassification",nh]],["hubert",["HubertForSequenceClassification",ed]],["audio-spectrogram-transformer",["ASTForAudioClassification",pu]]]),Yu=new Map([["wavlm",["WavLMForXVector",ro]]]),oo=new Map([["unispeech-sat",["UniSpeechSatForAudioFrameClassification",Zc]],["wavlm",["WavLMForAudioFrameClassification",td]],["wav2vec2",["Wav2Vec2ForAudioFrameClassification",to]],["pyannote",["PyAnnoteForAudioFrameClassification",Jf]]]),jl=new Map([["vitmatte",["VitMatteForImageMatting",Js]]]),xd=new Map([["swin2sr",["Swin2SRForImageSuperResolution",eo]]]),Sd=new Map([["dpt",["DPTForDepthEstimation",Qn]],["depth_anything",["DepthAnythingForDepthEstimation",Nf]],["glpn",["GLPNForDepthEstimation",Ca]],["sapiens",["SapiensForDepthEstimation",ip]],["depth_pro",["DepthProForDepthEstimation",Vf]]]),Td=new Map([["sapiens",["SapiensForNormalEstimation",jf]]]),Wl=new Map([["clip",["CLIPVisionModelWithProjection",gc]],["siglip",["SiglipVisionModel",_f]]]),yh=[[hh,T.EncoderOnly],[Ia,T.EncoderDecoder],[dp,T.DecoderOnly],[gi,T.EncoderOnly],[mh,T.EncoderOnly],[gd,T.Seq2Seq],[Ls,T.Seq2Seq],[Xu,T.DecoderOnly],[_d,T.EncoderOnly],[Go,T.EncoderOnly],[vd,T.Vision2Seq],[gh,T.ImageTextToText],[Ii,T.EncoderOnly],[_h,T.EncoderOnly],[ao,T.EncoderOnly],[Nl,T.EncoderOnly],[jl,T.EncoderOnly],[xd,T.EncoderOnly],[Sd,T.EncoderOnly],[Td,T.EncoderOnly],[ws,T.EncoderOnly],[wd,T.EncoderOnly],[qu,T.MaskGeneration],[bd,T.EncoderOnly],[vh,T.EncoderOnly],[md,T.Seq2Seq],[ph,T.EncoderOnly],[Yu,T.EncoderOnly],[oo,T.EncoderOnly],[Wl,T.EncoderOnly]];for(const[U,re]of yh)for(const[Ce,Qe]of U.values())M.set(Ce,re),F.set(Qe,Ce),O.set(Ce,Qe);const Ku=[["MusicgenForConditionalGeneration",dd,T.Musicgen],["CLIPTextModelWithProjection",zi,T.EncoderOnly],["SiglipTextModel",qi,T.EncoderOnly],["ClapTextModelWithProjection",ad,T.EncoderOnly],["ClapAudioModelWithProjection",od,T.EncoderOnly]];for(const[U,re,Ce]of Ku)M.set(U,Ce),F.set(re,U),O.set(U,re);class Vl extends dr{}ut(Vl,"MODEL_CLASS_MAPPINGS",yh.map(re=>re[0])),ut(Vl,"BASE_IF_FAIL",!0);class Ul extends dr{}ut(Ul,"MODEL_CLASS_MAPPINGS",[gi]);class fp extends dr{}ut(fp,"MODEL_CLASS_MAPPINGS",[mh]);class Cd extends dr{}ut(Cd,"MODEL_CLASS_MAPPINGS",[gd]);class Gl extends dr{}ut(Gl,"MODEL_CLASS_MAPPINGS",[Ls]);class Md extends dr{}ut(Md,"MODEL_CLASS_MAPPINGS",[md]);class Qu extends dr{}ut(Qu,"MODEL_CLASS_MAPPINGS",[ph]);class wh extends dr{}ut(wh,"MODEL_CLASS_MAPPINGS",[Xu]);class bh extends dr{}ut(bh,"MODEL_CLASS_MAPPINGS",[_d]);class Rs extends dr{}ut(Rs,"MODEL_CLASS_MAPPINGS",[Go]);class Ed extends dr{}ut(Ed,"MODEL_CLASS_MAPPINGS",[vd]);class Pd extends dr{}ut(Pd,"MODEL_CLASS_MAPPINGS",[Ii]);class xh extends dr{}ut(xh,"MODEL_CLASS_MAPPINGS",[_h]);class kd extends dr{}ut(kd,"MODEL_CLASS_MAPPINGS",[Nl]);class Sh extends dr{}ut(Sh,"MODEL_CLASS_MAPPINGS",[ao]);class Th extends dr{}ut(Th,"MODEL_CLASS_MAPPINGS",[ws]);class zs extends dr{}ut(zs,"MODEL_CLASS_MAPPINGS",[wd]);class Ju extends dr{}ut(Ju,"MODEL_CLASS_MAPPINGS",[qu]);class Od extends dr{}ut(Od,"MODEL_CLASS_MAPPINGS",[bd]);class lo extends dr{}ut(lo,"MODEL_CLASS_MAPPINGS",[vh]);class Ho extends dr{}ut(Ho,"MODEL_CLASS_MAPPINGS",[Yu]);class Fa extends dr{}ut(Fa,"MODEL_CLASS_MAPPINGS",[oo]);class Tn extends dr{}ut(Tn,"MODEL_CLASS_MAPPINGS",[yd]);class Xo extends dr{}ut(Xo,"MODEL_CLASS_MAPPINGS",[jl]);class Zu extends dr{}ut(Zu,"MODEL_CLASS_MAPPINGS",[xd]);class $a extends dr{}ut($a,"MODEL_CLASS_MAPPINGS",[Sd]);class Ad extends dr{}ut(Ad,"MODEL_CLASS_MAPPINGS",[Td]);class Hl extends dr{}ut(Hl,"MODEL_CLASS_MAPPINGS",[Wl]);class Ch extends ue{constructor({logits:re,past_key_values:Ce,encoder_outputs:Qe,decoder_attentions:vt=null,cross_attentions:pt=null}){super(),this.logits=re,this.past_key_values=Ce,this.encoder_outputs=Qe,this.decoder_attentions=vt,this.cross_attentions=pt}}class _n extends ue{constructor({logits:re}){super(),this.logits=re}}class Id extends ue{constructor({logits:re,embeddings:Ce}){super(),this.logits=re,this.embeddings=Ce}}class oi extends ue{constructor({logits:re}){super(),this.logits=re}}class li extends ue{constructor({logits:re}){super(),this.logits=re}}class _i extends ue{constructor({start_logits:re,end_logits:Ce}){super(),this.start_logits=re,this.end_logits=Ce}}class Da extends ue{constructor({logits:re}){super(),this.logits=re}}class hp extends ue{constructor({logits:re,past_key_values:Ce}){super(),this.logits=re,this.past_key_values=Ce}}class Mh extends ue{constructor({alphas:re}){super(),this.alphas=re}}class Eh extends ue{constructor({waveform:re,spectrogram:Ce}){super(),this.waveform=re,this.spectrogram=Ce}}},"./src/models/whisper/common_whisper.js":(t,e,n)=>{n.r(e),n.d(e,{WHISPER_LANGUAGE_MAPPING:()=>l,WHISPER_TO_LANGUAGE_CODE_MAPPING:()=>m,whisper_language_to_code:()=>S});const r=[["en","english"],["zh","chinese"],["de","german"],["es","spanish"],["ru","russian"],["ko","korean"],["fr","french"],["ja","japanese"],["pt","portuguese"],["tr","turkish"],["pl","polish"],["ca","catalan"],["nl","dutch"],["ar","arabic"],["sv","swedish"],["it","italian"],["id","indonesian"],["hi","hindi"],["fi","finnish"],["vi","vietnamese"],["he","hebrew"],["uk","ukrainian"],["el","greek"],["ms","malay"],["cs","czech"],["ro","romanian"],["da","danish"],["hu","hungarian"],["ta","tamil"],["no","norwegian"],["th","thai"],["ur","urdu"],["hr","croatian"],["bg","bulgarian"],["lt","lithuanian"],["la","latin"],["mi","maori"],["ml","malayalam"],["cy","welsh"],["sk","slovak"],["te","telugu"],["fa","persian"],["lv","latvian"],["bn","bengali"],["sr","serbian"],["az","azerbaijani"],["sl","slovenian"],["kn","kannada"],["et","estonian"],["mk","macedonian"],["br","breton"],["eu","basque"],["is","icelandic"],["hy","armenian"],["ne","nepali"],["mn","mongolian"],["bs","bosnian"],["kk","kazakh"],["sq","albanian"],["sw","swahili"],["gl","galician"],["mr","marathi"],["pa","punjabi"],["si","sinhala"],["km","khmer"],["sn","shona"],["yo","yoruba"],["so","somali"],["af","afrikaans"],["oc","occitan"],["ka","georgian"],["be","belarusian"],["tg","tajik"],["sd","sindhi"],["gu","gujarati"],["am","amharic"],["yi","yiddish"],["lo","lao"],["uz","uzbek"],["fo","faroese"],["ht","haitian creole"],["ps","pashto"],["tk","turkmen"],["nn","nynorsk"],["mt","maltese"],["sa","sanskrit"],["lb","luxembourgish"],["my","myanmar"],["bo","tibetan"],["tl","tagalog"],["mg","malagasy"],["as","assamese"],["tt","tatar"],["haw","hawaiian"],["ln","lingala"],["ha","hausa"],["ba","bashkir"],["jw","javanese"],["su","sundanese"]],l=new Map(r),m=new Map([...r.map(([g,s])=>[s,g]),["burmese","my"],["valencian","ca"],["flemish","nl"],["haitian","ht"],["letzeburgesch","lb"],["pushto","ps"],["panjabi","pa"],["moldavian","ro"],["moldovan","ro"],["sinhalese","si"],["castilian","es"]]);function S(g){g=g.toLowerCase();let s=m.get(g);if(s===void 0)if(l.has(g))s=g;else{const p=g.length===2?l.keys():l.values();throw new Error(`Language "${g}" is not supported. Must be one of: ${JSON.stringify(p)}`)}return s}},"./src/models/whisper/generation_whisper.js":(t,e,n)=>{n.r(e),n.d(e,{WhisperGenerationConfig:()=>l});var r=n("./src/generation/configuration_utils.js");class l extends r.GenerationConfig{constructor(){super(...arguments);ut(this,"return_timestamps",null);ut(this,"return_token_timestamps",null);ut(this,"num_frames",null);ut(this,"alignment_heads",null);ut(this,"task",null);ut(this,"language",null);ut(this,"no_timestamps_token_id",null);ut(this,"prompt_ids",null);ut(this,"is_multilingual",null);ut(this,"lang_to_id",null);ut(this,"task_to_id",null);ut(this,"max_initial_timestamp_index",1)}}},"./src/ops/registry.js":(t,e,n)=>{n.r(e),n.d(e,{TensorOpRegistry:()=>S});var r=n("./src/backends/onnx.js"),l=n("./src/utils/tensor.js");const m=async(g,s,c)=>{const p=await(0,r.createInferenceSession)(new Uint8Array(g),s);return async a=>{const u=Object.fromEntries(Object.entries(a).map(([_,y])=>[_,y.ort_tensor])),o=await p.run(u);return Array.isArray(c)?c.map(_=>new l.Tensor(o[_])):new l.Tensor(o[c])}};class S{static get bilinear_interpolate_4d(){return this._bilinear_interpolate_4d||(this._bilinear_interpolate_4d=m([8,9,18,0,58,128,1,10,40,10,1,120,10,0,10,0,10,1,115,18,1,121,34,6,82,101,115,105,122,101,42,17,10,4,109,111,100,101,34,6,108,105,110,101,97,114,160,1,3,18,1,114,90,31,10,1,120,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,99,10,3,18,1,104,10,3,18,1,119,90,15,10,1,115,18,10,10,8,8,7,18,4,10,2,8,4,98,31,10,1,121,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,99,10,3,18,1,104,10,3,18,1,119,66,2,16,20],this.session_options,"y")),this._bilinear_interpolate_4d}static get bicubic_interpolate_4d(){return this._bicubic_interpolate_4d||(this._bicubic_interpolate_4d=m([8,9,18,0,58,127,10,39,10,1,120,10,0,10,0,10,1,115,18,1,121,34,6,82,101,115,105,122,101,42,16,10,4,109,111,100,101,34,5,99,117,98,105,99,160,1,3,18,1,114,90,31,10,1,120,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,99,10,3,18,1,104,10,3,18,1,119,90,15,10,1,115,18,10,10,8,8,7,18,4,10,2,8,4,98,31,10,1,121,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,99,10,3,18,1,104,10,3,18,1,119,66,2,16,20],this.session_options,"y")),this._bicubic_interpolate_4d}static get matmul(){return this._matmul||(this._matmul=m([8,9,18,0,58,55,10,17,10,1,97,10,1,98,18,1,99,34,6,77,97,116,77,117,108,18,1,114,90,9,10,1,97,18,4,10,2,8,1,90,9,10,1,98,18,4,10,2,8,1,98,9,10,1,99,18,4,10,2,8,1,66,2,16,20],this.session_options,"c")),this._matmul}static get stft(){return this._stft||(this._stft=m([8,7,18,0,58,148,1,10,38,10,1,115,10,1,106,10,1,119,10,1,108,18,1,111,34,4,83,84,70,84,42,15,10,8,111,110,101,115,105,100,101,100,24,1,160,1,2,18,1,115,90,26,10,1,115,18,21,10,19,8,1,18,15,10,3,18,1,98,10,3,18,1,115,10,3,18,1,99,90,11,10,1,106,18,6,10,4,8,7,18,0,90,16,10,1,119,18,11,10,9,8,1,18,5,10,3,18,1,119,90,11,10,1,108,18,6,10,4,8,7,18,0,98,31,10,1,111,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,102,10,3,18,1,100,10,3,18,1,99,66,2,16,17],this.session_options,"o")),this._stft}static get rfft(){return this._rfft||(this._rfft=m([8,9,18,0,58,97,10,33,10,1,120,10,0,10,1,97,18,1,121,34,3,68,70,84,42,15,10,8,111,110,101,115,105,100,101,100,24,1,160,1,2,18,1,100,90,21,10,1,120,18,16,10,14,8,1,18,10,10,3,18,1,115,10,3,18,1,99,90,11,10,1,97,18,6,10,4,8,7,18,0,98,21,10,1,121,18,16,10,14,8,1,18,10,10,3,18,1,115,10,3,18,1,99,66,2,16,20],this.session_options,"y")),this._rfft}static get top_k(){return this._top_k||(this._top_k=m([8,10,18,0,58,73,10,18,10,1,120,10,1,107,18,1,118,18,1,105,34,4,84,111,112,75,18,1,116,90,9,10,1,120,18,4,10,2,8,1,90,15,10,1,107,18,10,10,8,8,7,18,4,10,2,8,1,98,9,10,1,118,18,4,10,2,8,1,98,9,10,1,105,18,4,10,2,8,7,66,2,16,21],this.session_options,["v","i"])),this._top_k}}ut(S,"session_options",{})},"./src/pipelines.js":(t,e,n)=>{n.r(e),n.d(e,{AudioClassificationPipeline:()=>ke,AutomaticSpeechRecognitionPipeline:()=>Re,DepthEstimationPipeline:()=>ue,DocumentQuestionAnsweringPipeline:()=>se,FeatureExtractionPipeline:()=>ie,FillMaskPipeline:()=>T,ImageClassificationPipeline:()=>Ze,ImageFeatureExtractionPipeline:()=>pe,ImageSegmentationPipeline:()=>Ie,ImageToImagePipeline:()=>de,ImageToTextPipeline:()=>ze,ObjectDetectionPipeline:()=>W,Pipeline:()=>y,QuestionAnsweringPipeline:()=>b,SummarizationPipeline:()=>O,Text2TextGenerationPipeline:()=>M,TextClassificationPipeline:()=>h,TextGenerationPipeline:()=>R,TextToAudioPipeline:()=>fe,TokenClassificationPipeline:()=>v,TranslationPipeline:()=>F,ZeroShotAudioClassificationPipeline:()=>Te,ZeroShotClassificationPipeline:()=>Q,ZeroShotImageClassificationPipeline:()=>ee,ZeroShotObjectDetectionPipeline:()=>K,pipeline:()=>Oe});var r=n("./src/tokenizers.js"),l=n("./src/models.js"),m=n("./src/processors.js"),S=n("./src/utils/generic.js"),g=n("./src/utils/core.js"),s=n("./src/utils/maths.js"),c=n("./src/utils/audio.js"),p=n("./src/utils/tensor.js"),a=n("./src/utils/image.js");async function u(Ae){return Array.isArray(Ae)||(Ae=[Ae]),await Promise.all(Ae.map(he=>a.RawImage.read(he)))}async function o(Ae,he){return Array.isArray(Ae)||(Ae=[Ae]),await Promise.all(Ae.map(Fe=>typeof Fe=="string"||Fe instanceof URL?(0,c.read_audio)(Fe,he):Fe instanceof Float64Array?new Float32Array(Fe):Fe))}function _(Ae,he){he&&(Ae=Ae.map(De=>De|0));const[Fe,He,$e,xe]=Ae;return{xmin:Fe,ymin:He,xmax:$e,ymax:xe}}class y extends S.Callable{constructor({task:he,model:Fe,tokenizer:He=null,processor:$e=null}){super(),this.task=he,this.model=Fe,this.tokenizer=He,this.processor=$e}async dispose(){await this.model.dispose()}}class h extends y{constructor(he){super(he)}async _call(he,{top_k:Fe=1}={}){const He=this.tokenizer(he,{padding:!0,truncation:!0}),$e=await this.model(He),xe=this.model.config.problem_type==="multi_label_classification"?Ne=>Ne.sigmoid():Ne=>new p.Tensor("float32",(0,s.softmax)(Ne.data),Ne.dims),De=this.model.config.id2label,Ge=[];for(const Ne of $e.logits){const tt=xe(Ne),ct=await(0,p.topk)(tt,Fe),J=ct[0].tolist(),G=ct[1].tolist().map((Pe,We)=>({label:De?De[Pe]:`LABEL_${Pe}`,score:J[We]}));Fe===1?Ge.push(...G):Ge.push(G)}return Array.isArray(he)||Fe===1?Ge:Ge[0]}}class v extends y{constructor(he){super(he)}async _call(he,{ignore_labels:Fe=["O"]}={}){const He=Array.isArray(he),$e=this.tokenizer(He?he:[he],{padding:!0,truncation:!0}),De=(await this.model($e)).logits,Ge=this.model.config.id2label,Ne=[];for(let tt=0;ttFt==this.tokenizer.sep_token_id);Ne[J].map((Ft,jt)=>Ft==1&&(jt===0||jt>G&&tt.findIndex(Qt=>Qt==_e[jt])===-1));const Pe=xe[J].tolist(),We=De[J].tolist();for(let Ft=1;Ftjt==_e[Ft])!==-1)&&(Pe[Ft]=-1/0,We[Ft]=-1/0);const ht=(0,s.softmax)(Pe).map((Ft,jt)=>[Ft,jt]),wt=(0,s.softmax)(We).map((Ft,jt)=>[Ft,jt]);ht[0][0]=0,wt[0][0]=0;const Xt=(0,g.product)(ht,wt).filter(Ft=>Ft[0][1]<=Ft[1][1]).map(Ft=>[Ft[0][1],Ft[1][1],Ft[0][0]*Ft[1][0]]).sort((Ft,jt)=>jt[2]-Ft[2]);for(let Ft=0;FtPe==this.tokenizer.mask_token_id);if(tt===-1)throw Error(`Mask token (${this.tokenizer.mask_token}) not found in text.`);const ct=$e[Ge][tt],J=await(0,p.topk)(new p.Tensor("float32",(0,s.softmax)(ct.data),ct.dims),Fe),_e=J[0].tolist(),G=J[1].tolist();xe.push(G.map((Pe,We)=>{const ht=Ne.slice();return ht[tt]=Pe,{score:_e[We],token:Number(Pe),token_str:this.tokenizer.model.vocab[Pe],sequence:this.tokenizer.decode(ht,{skip_special_tokens:!0})}}))}return Array.isArray(he)?xe:xe[0]}}class M extends y{constructor(Fe){super(Fe);ut(this,"_key","generated_text")}async _call(Fe,He={}){Array.isArray(Fe)||(Fe=[Fe]),this.model.config.prefix&&(Fe=Fe.map(tt=>this.model.config.prefix+tt));const $e=this.model.config.task_specific_params;$e&&$e[this.task]&&$e[this.task].prefix&&(Fe=Fe.map(tt=>$e[this.task].prefix+tt));const xe=this.tokenizer,De={padding:!0,truncation:!0};let Ge;this instanceof F&&"_build_translation_inputs"in xe?Ge=xe._build_translation_inputs(Fe,De,He):Ge=xe(Fe,De);const Ne=await this.model.generate({...Ge,...He});return xe.batch_decode(Ne,{skip_special_tokens:!0}).map(tt=>({[this._key]:tt}))}}class O extends M{constructor(Fe){super(Fe);ut(this,"_key","summary_text")}}class F extends M{constructor(Fe){super(Fe);ut(this,"_key","translation_text")}}function D(Ae){return Array.isArray(Ae)&&Ae.every(he=>"role"in he&&"content"in he)}class R extends y{constructor(he){super(he)}async _call(he,Fe={}){var G,Pe;let He=!1,$e=!1,xe;if(typeof he=="string")xe=he=[he];else if(Array.isArray(he)&&he.every(We=>typeof We=="string"))He=!0,xe=he;else{if(D(he))he=[he];else if(Array.isArray(he)&&he.every(D))He=!0;else throw new Error("Input must be a string, an array of strings, a Chat, or an array of Chats");$e=!0,xe=he.map(We=>this.tokenizer.apply_chat_template(We,{tokenize:!1,add_generation_prompt:!0}))}const De=(G=Fe.add_special_tokens)!=null?G:!1,Ge=$e?!1:(Pe=Fe.return_full_text)!=null?Pe:!0;this.tokenizer.padding_side="left";const Ne=this.tokenizer(xe,{add_special_tokens:De,padding:!0,truncation:!0}),tt=await this.model.generate({...Ne,...Fe}),ct=this.tokenizer.batch_decode(tt,{skip_special_tokens:!0});let J;!Ge&&Ne.input_ids.dims.at(-1)>0&&(J=this.tokenizer.batch_decode(Ne.input_ids,{skip_special_tokens:!0}).map(We=>We.length));const _e=Array.from({length:he.length},We=>[]);for(let We=0;We[He.toLowerCase(),$e])),this.entailment_id=this.label2id.entailment,this.entailment_id===void 0&&(console.warn("Could not find 'entailment' in label2id mapping. Using 2 as entailment_id."),this.entailment_id=2),this.contradiction_id=(Fe=this.label2id.contradiction)!=null?Fe:this.label2id.not_entailment,this.contradiction_id===void 0&&(console.warn("Could not find 'contradiction' in label2id mapping. Using 0 as contradiction_id."),this.contradiction_id=0)}async _call(he,Fe,{hypothesis_template:He="This example is {}.",multi_label:$e=!1}={}){const xe=Array.isArray(he);xe||(he=[he]),Array.isArray(Fe)||(Fe=[Fe]);const De=Fe.map(tt=>He.replace("{}",tt)),Ge=$e||Fe.length===1,Ne=[];for(const tt of he){const ct=[];for(const G of De){const Pe=this.tokenizer(tt,{text_pair:G,padding:!0,truncation:!0}),We=await this.model(Pe);Ge?ct.push([We.logits.data[this.contradiction_id],We.logits.data[this.entailment_id]]):ct.push(We.logits.data[this.entailment_id])}const _e=(Ge?ct.map(G=>(0,s.softmax)(G)[1]):(0,s.softmax)(ct)).map((G,Pe)=>[G,Pe]).sort((G,Pe)=>Pe[0]-G[0]);Ne.push({sequence:tt,labels:_e.map(G=>Fe[G[1]]),scores:_e.map(G=>G[0])})}return xe?Ne:Ne[0]}}class ie extends y{constructor(he){super(he)}async _call(he,{pooling:Fe="none",normalize:He=!1,quantize:$e=!1,precision:xe="binary"}={}){var tt,ct;const De=this.tokenizer(he,{padding:!0,truncation:!0}),Ge=await this.model(De);let Ne=(ct=(tt=Ge.last_hidden_state)!=null?tt:Ge.logits)!=null?ct:Ge.token_embeddings;if(Fe!=="none")if(Fe==="mean")Ne=(0,p.mean_pooling)(Ne,De.attention_mask);else if(Fe==="cls")Ne=Ne.slice(null,0);else throw Error(`Pooling method '${Fe}' not supported.`);return He&&(Ne=Ne.normalize(2,-1)),$e&&(Ne=(0,p.quantize_embeddings)(Ne,xe)),Ne}}class pe extends y{constructor(he){super(he)}async _call(he,{pool:Fe=null}={}){var Ge,Ne;const He=await u(he),{pixel_values:$e}=await this.processor(He),xe=await this.model({pixel_values:$e});let De;if(Fe){if(!("pooler_output"in xe))throw Error("No pooled output was returned. Make sure the model has a 'pooler' layer when using the 'pool' option.");De=xe.pooler_output}else De=(Ne=(Ge=xe.last_hidden_state)!=null?Ge:xe.logits)!=null?Ne:xe.image_embeds;return De}}class ke extends y{constructor(he){super(he)}async _call(he,{top_k:Fe=5}={}){const He=this.processor.feature_extractor.config.sampling_rate,$e=await o(he,He),xe=this.model.config.id2label,De=[];for(const Ge of $e){const Ne=await this.processor(Ge),ct=(await this.model(Ne)).logits[0],J=await(0,p.topk)(new p.Tensor("float32",(0,s.softmax)(ct.data),ct.dims),Fe),_e=J[0].tolist(),Pe=J[1].tolist().map((We,ht)=>({label:xe?xe[We]:`LABEL_${We}`,score:_e[ht]}));De.push(Pe)}return Array.isArray(he)?De:De[0]}}class Te extends y{constructor(he){super(he)}async _call(he,Fe,{hypothesis_template:He="This is a sound of {}."}={}){const $e=!Array.isArray(he);$e&&(he=[he]);const xe=Fe.map(ct=>He.replace("{}",ct)),De=this.tokenizer(xe,{padding:!0,truncation:!0}),Ge=this.processor.feature_extractor.config.sampling_rate,Ne=await o(he,Ge),tt=[];for(const ct of Ne){const J=await this.processor(ct),_e=await this.model({...De,...J}),G=(0,s.softmax)(_e.logits_per_audio.data);tt.push([...G].map((Pe,We)=>({score:Pe,label:Fe[We]})))}return $e?tt[0]:tt}}class Re extends y{constructor(he){super(he)}async _call(he,Fe={}){switch(this.model.config.model_type){case"whisper":return this._call_whisper(he,Fe);case"wav2vec2":case"wav2vec2-bert":case"unispeech":case"unispeech-sat":case"hubert":return this._call_wav2vec2(he,Fe);default:throw new Error(`AutomaticSpeechRecognitionPipeline does not support model type '${this.model.config.model_type}'.`)}}async _call_wav2vec2(he,Fe){Fe.language&&console.warn('`language` parameter is not yet supported for `wav2vec2` models, defaulting to "English".'),Fe.task&&console.warn('`task` parameter is not yet supported for `wav2vec2` models, defaulting to "transcribe".');const He=!Array.isArray(he);He&&(he=[he]);const $e=this.processor.feature_extractor.config.sampling_rate,xe=await o(he,$e),De=[];for(const Ge of xe){const Ne=await this.processor(Ge),ct=(await this.model(Ne)).logits[0],J=[];for(const G of ct)J.push((0,s.max)(G.data)[1]);const _e=this.tokenizer.decode(J);De.push({text:_e})}return He?De[0]:De}async _call_whisper(he,Fe){var Pe,We,ht,wt;const He=(Pe=Fe.return_timestamps)!=null?Pe:!1,$e=(We=Fe.chunk_length_s)!=null?We:0,xe=(ht=Fe.force_full_sequences)!=null?ht:!1;let De=(wt=Fe.stride_length_s)!=null?wt:null;const Ge={...Fe};He==="word"&&(Ge.return_token_timestamps=!0,Ge.return_timestamps=!1);const Ne=!Array.isArray(he);Ne&&(he=[he]);const tt=this.processor.feature_extractor.config.chunk_length/this.model.config.max_source_positions,ct=this.processor.feature_extractor.config.hop_length,J=this.processor.feature_extractor.config.sampling_rate,_e=await o(he,J),G=[];for(const Xt of _e){let Ft=[];if($e>0){if(De===null)De=$e/6;else if($e<=De)throw Error("`chunk_length_s` must be larger than `stride_length_s`.");const Mt=J*$e,Zt=J*De,Cn=Mt-2*Zt;let or=0;for(;;){const Gn=or+Mt,lr=Xt.subarray(or,Gn),bt=await this.processor(lr),Me=or===0,Je=Gn>=Xt.length;if(Ft.push({stride:[lr.length,Me?0:Zt,Je?0:Zt],input_features:bt.input_features,is_last:Je}),Je)break;or+=Cn}}else Ft=[{stride:[Xt.length,0,0],input_features:(await this.processor(Xt)).input_features,is_last:!0}];for(const Mt of Ft){Ge.num_frames=Math.floor(Mt.stride[0]/ct);const Zt=await this.model.generate({inputs:Mt.input_features,...Ge});He==="word"?(Mt.tokens=Zt.sequences.tolist()[0],Mt.token_timestamps=Zt.token_timestamps.tolist()[0].map(Cn=>(0,s.round)(Cn,2))):Mt.tokens=Zt[0].tolist(),Mt.stride=Mt.stride.map(Cn=>Cn/J)}const[jt,Qt]=this.tokenizer._decode_asr(Ft,{time_precision:tt,return_timestamps:He,force_full_sequences:xe});G.push({text:jt,...Qt})}return Ne?G[0]:G}}class ze extends y{constructor(he){super(he)}async _call(he,Fe={}){const He=Array.isArray(he),$e=await u(he),{pixel_values:xe}=await this.processor($e),De=[];for(const Ge of xe){Ge.dims=[1,...Ge.dims];const Ne=await this.model.generate({inputs:Ge,...Fe}),tt=this.tokenizer.batch_decode(Ne,{skip_special_tokens:!0}).map(ct=>({generated_text:ct.trim()}));De.push(tt)}return He?De:De[0]}}class Ze extends y{constructor(he){super(he)}async _call(he,{top_k:Fe=5}={}){const He=await u(he),{pixel_values:$e}=await this.processor(He),xe=await this.model({pixel_values:$e}),De=this.model.config.id2label,Ge=[];for(const Ne of xe.logits){const tt=await(0,p.topk)(new p.Tensor("float32",(0,s.softmax)(Ne.data),Ne.dims),Fe),ct=tt[0].tolist(),_e=tt[1].tolist().map((G,Pe)=>({label:De?De[G]:`LABEL_${G}`,score:ct[Pe]}));Ge.push(_e)}return Array.isArray(he)?Ge:Ge[0]}}class Ie extends y{constructor(he){super(he),this.subtasks_mapping={panoptic:"post_process_panoptic_segmentation",instance:"post_process_instance_segmentation",semantic:"post_process_semantic_segmentation"}}async _call(he,{threshold:Fe=.5,mask_threshold:He=.5,overlap_mask_area_threshold:$e=.8,label_ids_to_fuse:xe=null,target_sizes:De=null,subtask:Ge=null}={}){if(Array.isArray(he)&&he.length!==1)throw Error("Image segmentation pipeline currently only supports a batch size of 1.");const tt=await u(he),ct=tt.map(wt=>[wt.height,wt.width]),{pixel_values:J,pixel_mask:_e}=await this.processor(tt),G=await this.model({pixel_values:J,pixel_mask:_e});let Pe=null;if(Ge!==null)Pe=this.subtasks_mapping[Ge];else for(let[wt,Xt]of Object.entries(this.subtasks_mapping))if(Xt in this.processor.feature_extractor){Pe=this.processor.feature_extractor[Xt].bind(this.processor.feature_extractor),Ge=wt;break}const We=this.model.config.id2label,ht=[];if(Ge==="panoptic"||Ge==="instance"){const wt=Pe(G,Fe,He,$e,xe,De!=null?De:ct)[0],Xt=wt.segmentation;for(const Ft of wt.segments_info){const jt=new Uint8ClampedArray(Xt.data.length);for(let Mt=0;MtHe.replace("{}",_e)),Ge=this.tokenizer(De,{padding:this.model.config.model_type==="siglip"?"max_length":!0,truncation:!0}),{pixel_values:Ne}=await this.processor(xe),tt=await this.model({...Ge,pixel_values:Ne}),ct=this.model.config.model_type==="siglip"?_e=>_e.sigmoid().data:_e=>(0,s.softmax)(_e.data),J=[];for(const _e of tt.logits_per_image){const Pe=[...ct(_e)].map((We,ht)=>({score:We,label:Fe[ht]}));Pe.sort((We,ht)=>ht.score-We.score),J.push(Pe)}return $e?J:J[0]}}class W extends y{constructor(he){super(he)}async _call(he,{threshold:Fe=.9,percentage:He=!1}={}){const $e=Array.isArray(he);if($e&&he.length!==1)throw Error("Object detection pipeline currently only supports a batch size of 1.");const xe=await u(he),De=He?null:xe.map(G=>[G.height,G.width]),{pixel_values:Ge,pixel_mask:Ne}=await this.processor(xe),tt=await this.model({pixel_values:Ge,pixel_mask:Ne}),ct=this.processor.feature_extractor.post_process_object_detection(tt,Fe,De),J=this.model.config.id2label,_e=ct.map(G=>G.boxes.map((Pe,We)=>({score:G.scores[We],label:J[G.classes[We]],box:_(Pe,!He)})));return $e?_e:_e[0]}}class K extends y{constructor(he){super(he)}async _call(he,Fe,{threshold:He=.1,top_k:$e=null,percentage:xe=!1}={}){const De=Array.isArray(he),Ge=await u(he),Ne=this.tokenizer(Fe,{padding:!0,truncation:!0}),tt=await this.processor(Ge),ct=[];for(let J=0;J({score:ht.scores[Ft],label:Fe[ht.classes[Ft]],box:_(Xt,!xe)})).sort((Xt,Ft)=>Ft.score-Xt.score);$e!==null&&(wt=wt.slice(0,$e)),ct.push(wt)}return De?ct:ct[0]}}class se extends y{constructor(he){super(he)}async _call(he,Fe,He={}){throw new Error("This pipeline is not yet supported in Transformers.js v3.")}}class fe extends y{constructor(Fe){var He;super(Fe);ut(this,"DEFAULT_VOCODER_ID","Xenova/speecht5_hifigan");this.vocoder=(He=Fe.vocoder)!=null?He:null}async _call(Fe,{speaker_embeddings:He=null}={}){return this.processor?this._call_text_to_spectrogram(Fe,{speaker_embeddings:He}):this._call_text_to_waveform(Fe)}async _call_text_to_waveform(Fe){const He=this.tokenizer(Fe,{padding:!0,truncation:!0}),{waveform:$e}=await this.model(He),xe=this.model.config.sampling_rate;return{audio:$e.data,sampling_rate:xe}}async _call_text_to_spectrogram(Fe,{speaker_embeddings:He}){if(this.vocoder||(console.log("No vocoder specified, using default HifiGan vocoder."),this.vocoder=await l.AutoModel.from_pretrained(this.DEFAULT_VOCODER_ID,{dtype:"fp32"})),(typeof He=="string"||He instanceof URL)&&(He=new Float32Array(await(await fetch(He)).arrayBuffer())),He instanceof Float32Array)He=new p.Tensor("float32",He,[1,He.length]);else if(!(He instanceof p.Tensor))throw new Error("Speaker embeddings must be a `Tensor`, `Float32Array`, `string`, or `URL`.");const{input_ids:$e}=this.tokenizer(Fe,{padding:!0,truncation:!0}),{waveform:xe}=await this.model.generate_speech($e,He,{vocoder:this.vocoder}),De=this.processor.feature_extractor.config.sampling_rate;return{audio:xe.data,sampling_rate:De}}}class de extends y{constructor(he){super(he)}async _call(he){const Fe=await u(he),He=await this.processor(Fe),$e=await this.model(He),xe=[];for(const De of $e.reconstruction){const Ge=De.squeeze().clamp_(0,1).mul_(255).round_().to("uint8");xe.push(a.RawImage.fromTensor(Ge))}return xe.length>1?xe:xe[0]}}class ue extends y{constructor(he){super(he)}async _call(he){const Fe=await u(he),He=await this.processor(Fe),{predicted_depth:$e}=await this.model(He),xe=[];for(let De=0;De1?xe:xe[0]}}const te=Object.freeze({"text-classification":{tokenizer:r.AutoTokenizer,pipeline:h,model:l.AutoModelForSequenceClassification,default:{model:"Xenova/distilbert-base-uncased-finetuned-sst-2-english"},type:"text"},"token-classification":{tokenizer:r.AutoTokenizer,pipeline:v,model:l.AutoModelForTokenClassification,default:{model:"Xenova/bert-base-multilingual-cased-ner-hrl"},type:"text"},"question-answering":{tokenizer:r.AutoTokenizer,pipeline:b,model:l.AutoModelForQuestionAnswering,default:{model:"Xenova/distilbert-base-cased-distilled-squad"},type:"text"},"fill-mask":{tokenizer:r.AutoTokenizer,pipeline:T,model:l.AutoModelForMaskedLM,default:{model:"Xenova/bert-base-uncased"},type:"text"},summarization:{tokenizer:r.AutoTokenizer,pipeline:O,model:l.AutoModelForSeq2SeqLM,default:{model:"Xenova/distilbart-cnn-6-6"},type:"text"},translation:{tokenizer:r.AutoTokenizer,pipeline:F,model:l.AutoModelForSeq2SeqLM,default:{model:"Xenova/t5-small"},type:"text"},"text2text-generation":{tokenizer:r.AutoTokenizer,pipeline:M,model:l.AutoModelForSeq2SeqLM,default:{model:"Xenova/flan-t5-small"},type:"text"},"text-generation":{tokenizer:r.AutoTokenizer,pipeline:R,model:l.AutoModelForCausalLM,default:{model:"Xenova/gpt2"},type:"text"},"zero-shot-classification":{tokenizer:r.AutoTokenizer,pipeline:Q,model:l.AutoModelForSequenceClassification,default:{model:"Xenova/distilbert-base-uncased-mnli"},type:"text"},"audio-classification":{pipeline:ke,model:l.AutoModelForAudioClassification,processor:m.AutoProcessor,default:{model:"Xenova/wav2vec2-base-superb-ks"},type:"audio"},"zero-shot-audio-classification":{tokenizer:r.AutoTokenizer,pipeline:Te,model:l.AutoModel,processor:m.AutoProcessor,default:{model:"Xenova/clap-htsat-unfused"},type:"multimodal"},"automatic-speech-recognition":{tokenizer:r.AutoTokenizer,pipeline:Re,model:[l.AutoModelForSpeechSeq2Seq,l.AutoModelForCTC],processor:m.AutoProcessor,default:{model:"Xenova/whisper-tiny.en"},type:"multimodal"},"text-to-audio":{tokenizer:r.AutoTokenizer,pipeline:fe,model:[l.AutoModelForTextToWaveform,l.AutoModelForTextToSpectrogram],processor:[m.AutoProcessor,null],default:{model:"Xenova/speecht5_tts"},type:"text"},"image-to-text":{tokenizer:r.AutoTokenizer,pipeline:ze,model:l.AutoModelForVision2Seq,processor:m.AutoProcessor,default:{model:"Xenova/vit-gpt2-image-captioning"},type:"multimodal"},"image-classification":{pipeline:Ze,model:l.AutoModelForImageClassification,processor:m.AutoProcessor,default:{model:"Xenova/vit-base-patch16-224"},type:"multimodal"},"image-segmentation":{pipeline:Ie,model:[l.AutoModelForImageSegmentation,l.AutoModelForSemanticSegmentation,l.AutoModelForUniversalSegmentation],processor:m.AutoProcessor,default:{model:"Xenova/detr-resnet-50-panoptic"},type:"multimodal"},"zero-shot-image-classification":{tokenizer:r.AutoTokenizer,pipeline:ee,model:l.AutoModel,processor:m.AutoProcessor,default:{model:"Xenova/clip-vit-base-patch32"},type:"multimodal"},"object-detection":{pipeline:W,model:l.AutoModelForObjectDetection,processor:m.AutoProcessor,default:{model:"Xenova/detr-resnet-50"},type:"multimodal"},"zero-shot-object-detection":{tokenizer:r.AutoTokenizer,pipeline:K,model:l.AutoModelForZeroShotObjectDetection,processor:m.AutoProcessor,default:{model:"Xenova/owlvit-base-patch32"},type:"multimodal"},"document-question-answering":{tokenizer:r.AutoTokenizer,pipeline:se,model:l.AutoModelForDocumentQuestionAnswering,processor:m.AutoProcessor,default:{model:"Xenova/donut-base-finetuned-docvqa"},type:"multimodal"},"image-to-image":{pipeline:de,model:l.AutoModelForImageToImage,processor:m.AutoProcessor,default:{model:"Xenova/swin2SR-classical-sr-x2-64"},type:"image"},"depth-estimation":{pipeline:ue,model:l.AutoModelForDepthEstimation,processor:m.AutoProcessor,default:{model:"Xenova/dpt-large"},type:"image"},"feature-extraction":{tokenizer:r.AutoTokenizer,pipeline:ie,model:l.AutoModel,default:{model:"Xenova/all-MiniLM-L6-v2"},type:"text"},"image-feature-extraction":{processor:m.AutoProcessor,pipeline:pe,model:[l.AutoModelForImageFeatureExtraction,l.AutoModel],default:{model:"Xenova/vit-base-patch16-224-in21k"},type:"image"}}),ge=Object.freeze({"sentiment-analysis":"text-classification",ner:"token-classification",asr:"automatic-speech-recognition","text-to-speech":"text-to-audio",embeddings:"feature-extraction"});async function Oe(Ae,he=null,{progress_callback:Fe=null,config:He=null,cache_dir:$e=null,local_files_only:xe=!1,revision:De="main",device:Ge=null,dtype:Ne=null,model_file_name:tt=null,session_options:ct={}}={}){var ht;Ae=(ht=ge[Ae])!=null?ht:Ae;const J=te[Ae.split("_",1)[0]];if(!J)throw Error(`Unsupported pipeline: ${Ae}. Must be one of [${Object.keys(te)}]`);he||(he=J.default.model,console.log(`No model specified. Using default model: "${he}".`));const _e={progress_callback:Fe,config:He,cache_dir:$e,local_files_only:xe,revision:De,device:Ge,dtype:Ne,model_file_name:tt,session_options:ct},G=new Map([["tokenizer",J.tokenizer],["model",J.model],["processor",J.processor]]),Pe=await Ue(G,he,_e);Pe.task=Ae,(0,g.dispatchCallback)(Fe,{status:"ready",task:Ae,model:he});const We=J.pipeline;return new We(Pe)}async function Ue(Ae,he,Fe){const He=Object.create(null),$e=[];for(const[xe,De]of Ae.entries()){if(!De)continue;let Ge;Array.isArray(De)?Ge=new Promise(async(Ne,tt)=>{var J,_e;let ct;for(const G of De){if(G===null){Ne(null);return}try{Ne(await G.from_pretrained(he,Fe));return}catch(Pe){if((J=Pe.message)!=null&&J.includes("Unsupported model type"))ct=Pe;else if((_e=Pe.message)!=null&&_e.includes("Could not locate file"))ct=Pe;else{tt(Pe);return}}}tt(ct)}):Ge=De.from_pretrained(he,Fe),He[xe]=Ge,$e.push(Ge)}await Promise.all($e);for(const[xe,De]of Object.entries(He))He[xe]=await De;return He}},"./src/processors.js":(t,e,n)=>{n.r(e),n.d(e,{ASTFeatureExtractor:()=>Pe,AutoProcessor:()=>lr,BeitFeatureExtractor:()=>Fe,BitImageProcessor:()=>ie,CLIPFeatureExtractor:()=>ke,CLIPImageProcessor:()=>Te,ChineseCLIPFeatureExtractor:()=>Re,ClapFeatureExtractor:()=>We,ConvNextFeatureExtractor:()=>Ze,ConvNextImageProcessor:()=>Ie,DPTFeatureExtractor:()=>R,DPTImageProcessor:()=>Q,DeiTFeatureExtractor:()=>he,DetrFeatureExtractor:()=>xe,DonutFeatureExtractor:()=>He,EfficientNetImageProcessor:()=>K,FeatureExtractor:()=>T,Florence2Processor:()=>Gn,GLPNFeatureExtractor:()=>pe,ImageFeatureExtractor:()=>M,MaskFormerFeatureExtractor:()=>De,MobileNetV1FeatureExtractor:()=>se,MobileNetV2FeatureExtractor:()=>fe,MobileNetV3FeatureExtractor:()=>de,MobileNetV4FeatureExtractor:()=>ue,MobileViTFeatureExtractor:()=>te,MobileViTImageProcessor:()=>ge,NougatImageProcessor:()=>$e,OwlViTFeatureExtractor:()=>Oe,OwlViTProcessor:()=>or,Owlv2ImageProcessor:()=>Ue,Processor:()=>Ft,PvtImageProcessor:()=>D,PyAnnoteFeatureExtractor:()=>ht,PyAnnoteProcessor:()=>Zt,RTDetrImageProcessor:()=>Ae,SamImageProcessor:()=>Ne,SamProcessor:()=>jt,SapiensFeatureExtractor:()=>O,SeamlessM4TFeatureExtractor:()=>G,SegformerFeatureExtractor:()=>F,SiglipImageProcessor:()=>ze,SpeechT5FeatureExtractor:()=>Xt,SpeechT5Processor:()=>Cn,Swin2SRImageProcessor:()=>tt,ViTFeatureExtractor:()=>ee,ViTImageProcessor:()=>W,VitMatteImageProcessor:()=>ct,Wav2Vec2FeatureExtractor:()=>_e,Wav2Vec2ProcessorWithLM:()=>Mt,WeSpeakerFeatureExtractor:()=>wt,WhisperFeatureExtractor:()=>J,WhisperProcessor:()=>Qt,YolosFeatureExtractor:()=>Ge});var r=n("./src/utils/generic.js"),l=n("./src/utils/core.js"),m=n("./src/utils/hub.js"),S=n("./src/utils/maths.js"),g=n("./src/utils/tensor.js");n("./src/utils/image.js");var s=n("./src/utils/audio.js");function c([bt,Me,Je,lt]){return[bt-Je/2,Me-lt/2,bt+Je/2,Me+lt/2]}function p(bt,Me=.5,Je=null,lt=!1){const Ct=bt.logits,at=bt.pred_boxes,[xt,Gt,Ut]=Ct.dims;if(Je!==null&&Je.length!==xt)throw Error("Make sure that you pass in as many target sizes as the batch dimension of the logits");let Jt=[];for(let Wt=0;WtMe&&Lt.push(qn)}else{let qn=(0,S.max)(Et.data)[1];if(qn===Ut-1||(vn=(0,S.softmax)(Et.data),vn[qn]zr*rn[(jn+1)%2])),on.boxes.push(Pr),on.classes.push(qn),on.scores.push(vn[qn])}}Jt.push(on)}return Jt}function a(bt,Me=null){const Je=bt.logits,lt=Je.dims[0];if(Me!==null&&Me.length!==lt)throw Error("Make sure that you pass in as many target sizes as the batch dimension of the logits");const Ct=[];for(let at=0;atrn[Lt]&&(rn[Lt]=Et[Lt],on[Lt]=it)}const tn=new Array(Gt.dims[0]);for(let it=0;itit!==void 0);Ct.push({segmentation:Wt,labels:mn})}return Ct}function u(bt,Me,Je,lt){const Ct=[],at=[],xt=[];for(let Gt=0;GtJe&&(Ct.push(Jt),at.push(on),xt.push(Wt))}return[Ct,at,xt]}function o(bt,Me,Je,lt=.5,Ct=.8){const at=[];let xt=0,Gt=0;const Ut=Me[Je].data;for(let Wt=0;Wt=lt&&++Gt;let Jt=xt>0&&Gt>0;return Jt&&(Jt=xt/Gt>Ct),[Jt,at]}function _(bt,Me,Je,lt,Ct,at=null,xt=null){const[Gt,Ut]=xt!=null?xt:bt[0].dims,Jt=new g.Tensor("int32",new Int32Array(Gt*Ut),[Gt,Ut]),Wt=[];if(xt!==null)for(let it=0;iton[vn]&&(rn[vn]=it,on[vn]=Lt[vn])}let tn=0;const mn=Jt.data;for(let it=0;itlt&&(at=Math.floor(Ct)*Me),atat?Jt=Math.floor(at*Ut/Ct):at>Ct&&(Ut=Math.floor(Ct*Jt/at)),await Me.resize(Jt,Ut,{resample:lt}))}async crop_margin(Me,Je=200){const lt=Me.clone().grayscale(),Ct=(0,S.min)(lt.data)[0],xt=(0,S.max)(lt.data)[0]-Ct;if(xt===0)return Me;const Gt=Je/255;let Ut=lt.width,Jt=lt.height,Wt=0,rn=0;const on=lt.data;for(let tn=0;tnthis.preprocess(at)));return{pixel_values:(0,g.stack)(lt.map(at=>at.pixel_values),0),original_sizes:lt.map(at=>at.original_size),reshaped_input_sizes:lt.map(at=>at.reshaped_input_size)}}}class O extends M{post_process_semantic_segmentation(...Me){return a(...Me)}}class F extends M{post_process_semantic_segmentation(...Me){return a(...Me)}}class D extends M{}class R extends M{}class Q extends R{}class ie extends M{}class pe extends M{}class ke extends M{}class Te extends ke{}class Re extends M{}class ze extends M{}class Ze extends M{constructor(Me){var Je;super(Me),this.crop_pct=(Je=this.config.crop_pct)!=null?Je:224/256}async resize(Me){var lt;const Je=(lt=this.size)==null?void 0:lt.shortest_edge;if(Je===void 0)throw new Error("Size dictionary must contain 'shortest_edge' key.");if(Je<384){const Ct=Math.floor(Je/this.crop_pct),[at,xt]=this.get_resize_output_image_size(Me,{shortest_edge:Ct});Me=await Me.resize(at,xt,{resample:this.resample}),Me=await Me.center_crop(Je,Je)}else Me=await Me.resize(Je,Je,{resample:this.resample});return Me}}class Ie extends Ze{}class ee extends M{}class W extends M{}class K extends M{constructor(Me){var Je;super(Me),this.include_top=(Je=this.config.include_top)!=null?Je:!0,this.include_top&&(this.image_std=this.image_std.map(lt=>lt*lt))}}class se extends M{}class fe extends M{}class de extends M{}class ue extends M{}class te extends M{}class ge extends te{}class Oe extends M{post_process_object_detection(...Me){return p(...Me)}}class Ue extends Oe{}class Ae extends M{post_process_object_detection(...Me){return p(...Me)}}class he extends M{}class Fe extends M{}class He extends M{pad_image(Me,Je,lt,Ct={}){const[at,xt,Gt]=Je;let Ut=this.image_mean;Array.isArray(this.image_mean)||(Ut=new Array(Gt).fill(Ut));let Jt=this.image_std;Array.isArray(Jt)||(Jt=new Array(Gt).fill(Ut));const Wt=Ut.map((rn,on)=>-rn/Jt[on]);return super.pad_image(Me,Je,lt,{center:!0,constant_values:Wt,...Ct})}}class $e extends He{}class xe extends M{async _call(Me){const Je=await super._call(Me),lt=[Je.pixel_values.dims[0],64,64],Ct=(0,g.full)(lt,1n);return{...Je,pixel_mask:Ct}}post_process_object_detection(...Me){return p(...Me)}post_process_panoptic_segmentation(...Me){return y(...Me)}post_process_instance_segmentation(){throw Error("Not implemented yet")}}class De extends M{post_process_panoptic_segmentation(...Me){return y(...Me)}post_process_instance_segmentation(){throw Error("Not implemented yet")}}class Ge extends M{post_process_object_detection(...Me){return p(...Me)}}class Ne extends M{reshape_input_points(Me,Je,lt,Ct=!1){Me=structuredClone(Me);let at=(0,l.calculateDimensions)(Me);if(at.length===3)Ct||(at=[1,...at]),Me=[Me];else if(at.length!==4)throw Error("The input_points must be a 4D tensor of shape `batch_size`, `point_batch_size`, `nb_points_per_image`, `2`.");for(let xt=0;xtCt!==Je.dims[at]))throw Error(`The first ${lt.length} dimensions of 'input_points' and 'input_labels' must be the same.`);return new g.Tensor("int64",Me.flat(1/0).map(BigInt),lt)}async _call(Me,{input_points:Je=null,input_labels:lt=null,input_boxes:Ct=null}={}){const at=await super._call(Me);if(Je&&(at.input_points=this.reshape_input_points(Je,at.original_sizes,at.reshaped_input_sizes)),lt){if(!at.input_points)throw Error("`input_points` must be provided if `input_labels` are provided.");at.input_labels=this.add_input_labels(lt,at.input_points)}return Ct&&(at.input_boxes=this.reshape_input_points(Ct,at.original_sizes,at.reshaped_input_sizes,!0)),at}async post_process_masks(Me,Je,lt,{mask_threshold:Ct=0,binarize:at=!0,pad_size:xt=null}={}){const Gt=[];xt=xt!=null?xt:this.pad_size;const Ut=[xt.height,xt.width];for(let Jt=0;JtCt&&(mn[it]=1);on=new g.Tensor("bool",mn,on.dims)}Gt.push(on)}return Gt}generate_crop_boxes(Me,Je,{crop_n_layers:lt=0,overlap_ratio:Ct=512/1500,points_per_crop:at=32,crop_n_points_downscale_factor:xt=1}={}){}}class tt extends M{pad_image(Me,Je,lt,Ct={}){const[at,xt,Gt]=Je;return super.pad_image(Me,Je,{width:xt+(lt-xt%lt)%lt,height:at+(lt-at%lt)%lt},{mode:"symmetric",center:!1,constant_values:-1,...Ct})}}class ct extends M{async _call(Me,Je){Array.isArray(Me)||(Me=[Me]),Array.isArray(Je)||(Je=[Je]);const lt=await Promise.all(Me.map(xt=>this.preprocess(xt))),Ct=await Promise.all(Je.map(xt=>this.preprocess(xt,{do_normalize:!1,do_convert_rgb:!1,do_convert_grayscale:!0})));return{pixel_values:(0,g.stack)(lt.map((xt,Gt)=>(0,g.cat)([xt.pixel_values,Ct[Gt].pixel_values],0)),0),original_sizes:lt.map(xt=>xt.original_size),reshaped_input_sizes:lt.map(xt=>xt.reshaped_input_size)}}}class J extends T{constructor(Me){var Je,lt;super(Me),(lt=(Je=this.config).mel_filters)!=null||(Je.mel_filters=(0,s.mel_filter_bank)(Math.floor(1+this.config.n_fft/2),this.config.feature_size,0,8e3,this.config.sampling_rate,"slaney","slaney")),this.window=(0,s.window_function)(this.config.n_fft,"hann")}async _extract_fbank_features(Me){const Je=await(0,s.spectrogram)(Me,this.window,this.config.n_fft,this.config.hop_length,{power:2,mel_filters:this.config.mel_filters,log_mel:"log10",max_num_frames:this.config.nb_max_frames}),lt=Je.data,Ct=(0,S.max)(lt)[0];for(let at=0;atthis.config.n_samples?(console.warn("Attempting to extract features for audio longer than 30 seconds. If using a pipeline to extract transcript from a long audio clip, remember to specify `chunk_length_s` and/or `stride_length_s`."),Je=Me.slice(0,this.config.n_samples)):(Je=new Float32Array(this.config.n_samples),Je.set(Me)),{input_features:(await this._extract_fbank_features(Je)).unsqueeze_(0)}}}class _e extends T{_zero_mean_unit_var_norm(Me){const lt=Me.reduce((at,xt)=>at+xt,0)/Me.length,Ct=Me.reduce((at,xt)=>at+(xt-lt)**2,0)/Me.length;return Me.map(at=>(at-lt)/Math.sqrt(Ct+1e-7))}async _call(Me){h(Me,"Wav2Vec2FeatureExtractor"),Me instanceof Float64Array&&(Me=new Float32Array(Me));let Je=Me;this.config.do_normalize&&(Je=this._zero_mean_unit_var_norm(Je));const lt=[1,Je.length];return{input_values:new g.Tensor("float32",Je,lt),attention_mask:new g.Tensor("int64",new BigInt64Array(Je.length).fill(1n),lt)}}}class G extends T{constructor(Me){super(Me);const Je=this.config.sampling_rate,lt=(0,s.mel_filter_bank)(256,this.config.num_mel_bins,20,Math.floor(Je/2),Je,null,"kaldi",!0);for(let Ct=0;Ctlt*32768),(0,s.spectrogram)(Me,this.window,400,160,{fft_length:512,power:2,center:!1,preemphasis:.97,mel_filters:this.mel_filters,log_mel:"log",mel_floor:1192092955078125e-22,remove_dc_offset:!0,max_num_frames:Je,transpose:!0})}async _call(Me,{padding:Je=!0,pad_to_multiple_of:lt=2,do_normalize_per_mel_bins:Ct=!0,return_attention_mask:at=!0}={}){h(Me,"SeamlessM4TFeatureExtractor");let xt=await this._extract_fbank_features(Me,this.config.max_length);if(Ct){const[mn,it]=xt.dims,Et=xt.data;for(let Lt=0;Lt0){const vn=new Float32Array(it*(mn+Lt));vn.set(Et),vn.fill(this.config.padding_value,Et.length);const qn=mn+Lt;xt=new g.Tensor(xt.type,vn,[qn,it]),at&&(Gt=new g.Tensor("int64",new BigInt64Array(qn),[1,qn]),Gt.data.fill(1n,0,mn))}}const[Ut,Jt]=xt.dims,Wt=this.config.stride;if(Ut%Wt!==0)throw new Error(`The number of frames (${Ut}) must be a multiple of the stride (${Wt}).`);const on=xt.view(1,Math.floor(Ut/Wt),Jt*Wt),tn={input_features:on};if(at){const mn=on.dims[1],it=new BigInt64Array(mn);if(Gt){const Et=Gt.data;for(let Lt=1,vn=0;Lt0)if(lt==="rand_trunc"){const Gt=Math.floor(Math.random()*(xt+1));Me=Me.subarray(Gt,Gt+Je),at=await this._extract_fbank_features(Me,this.mel_filters_slaney,this.config.nb_max_samples)}else throw new Error(`Truncation strategy "${lt}" not implemented`);else{if(xt<0){let Gt=new Float64Array(Je);if(Gt.set(Me),Ct==="repeat")for(let Ut=Me.length;Ut({id:Ut,start:Jt*lt,end:Wt*lt,confidence:rn/(Wt-Jt)})))}return Ct}}class wt extends T{constructor(Me){super(Me);const Je=this.config.sampling_rate,lt=(0,s.mel_filter_bank)(256,this.config.num_mel_bins,20,Math.floor(Je/2),Je,null,"kaldi",!0);for(let Ct=0;CtJe*32768),(0,s.spectrogram)(Me,this.window,400,160,{fft_length:512,power:2,center:!1,preemphasis:.97,mel_filters:this.mel_filters,log_mel:"log",mel_floor:1192092955078125e-22,remove_dc_offset:!0,transpose:!0,min_num_frames:this.min_num_frames})}async _call(Me){h(Me,"WeSpeakerFeatureExtractor");const Je=(await this._extract_fbank_features(Me)).unsqueeze_(0);if(this.config.fbank_centering_span===null){const lt=Je.mean(1).data,Ct=Je.data,[at,xt,Gt]=Je.dims;for(let Ut=0;Ut/gm,bboxes:/([^<]+)?/gm},this.size_per_bin=1e3}construct_prompts(Me){typeof Me=="string"&&(Me=[Me]);const Je=[];for(const lt of Me)if(this.task_prompts_without_inputs.has(lt))Je.push(this.task_prompts_without_inputs.get(lt));else{for(const[Ct,at]of this.task_prompts_with_input)if(lt.includes(Ct)){Je.push(at.replaceAll("{input}",lt).replaceAll(Ct,""));break}Je.length!==Me.length&&Je.push(lt)}return Je}post_process_generation(Me,Je,lt){var xt,Gt;const Ct=(xt=this.tasks_answer_post_processing_type.get(Je))!=null?xt:"pure_text";Me=Me.replaceAll("","").replaceAll("","");let at;switch(Ct){case"pure_text":at=Me;break;case"description_with_bboxes":case"bboxes":case"phrase_grounding":case"ocr":const Ut=Ct==="ocr"?"quad_boxes":"bboxes",Jt=Me.matchAll(this.regexes[Ut]),Wt=[],rn=[];for(const[on,tn,...mn]of Jt)Wt.push(tn?tn.trim():(Gt=Wt.at(-1))!=null?Gt:""),rn.push(mn.map((it,Et)=>(Number(it)+.5)/this.size_per_bin*lt[Et%2]));at={labels:Wt,[Ut]:rn};break;default:throw new Error(`Task "${Je}" (of type "${Ct}") not yet implemented.`)}return{[Je]:at}}}class lr{static async from_pretrained(Me,{progress_callback:Je=null,config:lt=null,cache_dir:Ct=null,local_files_only:at=!1,revision:xt="main"}={}){var on,tn;let Gt=lt!=null?lt:await(0,m.getModelJSON)(Me,"preprocessor_config.json",!0,{progress_callback:Je,config:lt,cache_dir:Ct,local_files_only:at,revision:xt}),Ut=(on=Gt.feature_extractor_type)!=null?on:Gt.image_processor_type,Jt=this.FEATURE_EXTRACTOR_CLASS_MAPPING[Ut];if(!Jt)if(Gt.size!==void 0)console.warn(`Feature extractor type "${Ut}" not found, assuming ImageFeatureExtractor due to size parameter in config.`),Jt=M;else throw new Error(`Unknown Feature Extractor type: ${Ut}`);let Wt=(tn=this.PROCESSOR_CLASS_MAPPING[Gt.processor_class])!=null?tn:Ft,rn=new Jt(Gt);return new Wt(rn)}}ut(lr,"FEATURE_EXTRACTOR_CLASS_MAPPING",{ImageFeatureExtractor:M,WhisperFeatureExtractor:J,ViTFeatureExtractor:ee,MobileViTFeatureExtractor:te,MobileViTImageProcessor:ge,MobileNetV1FeatureExtractor:se,MobileNetV2FeatureExtractor:fe,MobileNetV3FeatureExtractor:de,MobileNetV4FeatureExtractor:ue,OwlViTFeatureExtractor:Oe,Owlv2ImageProcessor:Ue,CLIPFeatureExtractor:ke,CLIPImageProcessor:Te,Florence2Processor:Gn,ChineseCLIPFeatureExtractor:Re,SiglipImageProcessor:ze,ConvNextFeatureExtractor:Ze,ConvNextImageProcessor:Ie,SegformerFeatureExtractor:F,SapiensFeatureExtractor:O,BitImageProcessor:ie,DPTImageProcessor:Q,DPTFeatureExtractor:R,PvtImageProcessor:D,GLPNFeatureExtractor:pe,BeitFeatureExtractor:Fe,DeiTFeatureExtractor:he,DetrFeatureExtractor:xe,RTDetrImageProcessor:Ae,MaskFormerFeatureExtractor:De,YolosFeatureExtractor:Ge,DonutFeatureExtractor:He,NougatImageProcessor:$e,EfficientNetImageProcessor:K,ViTImageProcessor:W,VitMatteImageProcessor:ct,SamImageProcessor:Ne,Swin2SRImageProcessor:tt,Wav2Vec2FeatureExtractor:_e,SeamlessM4TFeatureExtractor:G,SpeechT5FeatureExtractor:Xt,ASTFeatureExtractor:Pe,ClapFeatureExtractor:We,PyAnnoteFeatureExtractor:ht,WeSpeakerFeatureExtractor:wt}),ut(lr,"PROCESSOR_CLASS_MAPPING",{WhisperProcessor:Qt,Wav2Vec2ProcessorWithLM:Mt,PyAnnoteProcessor:Zt,SamProcessor:jt,SpeechT5Processor:Cn,OwlViTProcessor:or,Florence2Processor:Gn})},"./src/tokenizers.js":(t,e,n)=>{n.r(e),n.d(e,{AlbertTokenizer:()=>Gt,AutoTokenizer:()=>Po,BartTokenizer:()=>zr,BertTokenizer:()=>xt,BlenderbotSmallTokenizer:()=>Mo,BlenderbotTokenizer:()=>Co,BloomTokenizer:()=>Li,CLIPTokenizer:()=>So,CamembertTokenizer:()=>Et,CodeGenTokenizer:()=>xo,CodeLlamaTokenizer:()=>cl,CohereTokenizer:()=>Os,ConvBertTokenizer:()=>tn,DebertaTokenizer:()=>Wt,DebertaV2Tokenizer:()=>rn,DistilBertTokenizer:()=>it,ElectraTokenizer:()=>vn,EsmTokenizer:()=>hl,FalconTokenizer:()=>fl,GPT2Tokenizer:()=>Pr,GPTNeoXTokenizer:()=>da,GemmaTokenizer:()=>qa,Grok1Tokenizer:()=>ha,HerbertTokenizer:()=>on,LlamaTokenizer:()=>bo,M2M100Tokenizer:()=>Ya,MBart50Tokenizer:()=>Br,MBartTokenizer:()=>jn,MPNetTokenizer:()=>dl,MarianTokenizer:()=>Sn,MobileBertTokenizer:()=>Ut,NllbTokenizer:()=>ks,NougatTokenizer:()=>pl,PreTrainedTokenizer:()=>at,Qwen2Tokenizer:()=>fa,RoFormerTokenizer:()=>mn,RobertaTokenizer:()=>Mr,SiglipTokenizer:()=>To,SpeechT5Tokenizer:()=>ma,SqueezeBertTokenizer:()=>Jt,T5Tokenizer:()=>qn,TokenizerModel:()=>pe,VitsTokenizer:()=>Eo,Wav2Vec2CTCTokenizer:()=>pa,WhisperTokenizer:()=>hs,XLMRobertaTokenizer:()=>ca,XLMTokenizer:()=>Lt,is_chinese_char:()=>T});var r=n("./src/utils/generic.js"),l=n("./src/utils/core.js"),m=n("./src/utils/hub.js"),S=n("./src/utils/maths.js"),g=n("./src/utils/tensor.js"),s=n("./src/utils/data-structures.js"),c=n("./node_modules/@huggingface/jinja/dist/index.js"),p=n("./src/models/whisper/common_whisper.js");n("./src/utils/constants.js");async function a(Ke,H){const ve=await Promise.all([(0,m.getModelJSON)(Ke,"tokenizer.json",!0,H),(0,m.getModelJSON)(Ke,"tokenizer_config.json",!0,H)]);return H.legacy!==null&&(ve[1].legacy=H.legacy),ve}function u(Ke,H){const ve=[];let Le=0;for(const Ye of Ke.matchAll(H)){const rt=Ye[0];Le0&&ve.push(rt),Le=Ye.index+rt.length}return Le=19968&&Ke<=40959||Ke>=13312&&Ke<=19903||Ke>=131072&&Ke<=173791||Ke>=173824&&Ke<=177983||Ke>=177984&&Ke<=178207||Ke>=178208&&Ke<=183983||Ke>=63744&&Ke<=64255||Ke>=194560&&Ke<=195103}function M(Ke,H,ve){var rt,gt;const Le=[];let Ye=0;for(;Ye{var Le;return(Le=this.tokens_to_ids.get(ve))!=null?Le:this.unk_token_id})}convert_ids_to_tokens(H){return H.map(ve=>{var Le;return(Le=this.vocab[ve])!=null?Le:this.unk_token})}}class ke extends pe{constructor(H){var ve;super(H),this.tokens_to_ids=_(H.vocab),this.unk_token_id=this.tokens_to_ids.get(H.unk_token),this.unk_token=H.unk_token,this.max_input_chars_per_word=(ve=H.max_input_chars_per_word)!=null?ve:100,this.vocab=new Array(this.tokens_to_ids.size);for(const[Le,Ye]of this.tokens_to_ids)this.vocab[Ye]=Le}encode(H){const ve=[];for(const Le of H){const Ye=[...Le];if(Ye.length>this.max_input_chars_per_word){ve.push(this.unk_token);continue}let rt=!1,gt=0;const It=[];for(;gt0&&(en=this.config.continuing_subword_prefix+en),this.tokens_to_ids.has(en)){Bt=en;break}--zt}if(Bt===null){rt=!0;break}It.push(Bt),gt=zt}rt?ve.push(this.unk_token):ve.push(...It)}return ve}}class Te extends pe{constructor(H,ve){super(H);const Le=H.vocab.length;this.vocab=new Array(Le),this.scores=new Array(Le);for(let Ye=0;Ye[Ye,rt])),this.bos_token=" ",this.bos_token_id=this.tokens_to_ids.get(this.bos_token),this.eos_token=ve.eos_token,this.eos_token_id=this.tokens_to_ids.get(this.eos_token),this.unk_token=this.vocab[this.unk_token_id],this.minScore=(0,S.min)(this.scores)[0],this.unk_score=this.minScore-10,this.scores[this.unk_token_id]=this.unk_score,this.trie=new s.CharTrie,this.trie.extend(this.vocab),this.fuse_unk=!0}populateNodes(H){const ve=H.chars,Le=1;let Ye=0;for(;Ye{const Ke=[...Array.from({length:"~".charCodeAt(0)-"!".charCodeAt(0)+1},(Ye,rt)=>rt+"!".charCodeAt(0)),...Array.from({length:"\xAC".charCodeAt(0)-"\xA1".charCodeAt(0)+1},(Ye,rt)=>rt+"\xA1".charCodeAt(0)),...Array.from({length:"\xFF".charCodeAt(0)-"\xAE".charCodeAt(0)+1},(Ye,rt)=>rt+"\xAE".charCodeAt(0))],H=Ke.slice();let ve=0;for(let Ye=0;Ye<256;++Ye)Ke.includes(Ye)||(Ke.push(Ye),H.push(256+ve),ve+=1);const Le=H.map(Ye=>String.fromCharCode(Ye));return Object.fromEntries(Ke.map((Ye,rt)=>[Ye,Le[rt]]))})(),ze=(0,l.reverseDictionary)(Re);class Ze extends pe{constructor(H){var Le,Ye,rt;super(H),this.tokens_to_ids=_(H.vocab),this.unk_token_id=this.tokens_to_ids.get(H.unk_token),this.unk_token=H.unk_token,this.vocab=new Array(this.tokens_to_ids.size);for(const[gt,It]of this.tokens_to_ids)this.vocab[It]=gt;const ve=Array.isArray(H.merges[0]);this.merges=ve?H.merges:H.merges.map(gt=>gt.split(" ",2)),this.bpe_ranks=new Map(this.merges.map((gt,It)=>[JSON.stringify(gt),It])),this.end_of_word_suffix=H.end_of_word_suffix,this.continuing_subword_suffix=(Le=H.continuing_subword_suffix)!=null?Le:null,this.byte_fallback=(Ye=this.config.byte_fallback)!=null?Ye:!1,this.byte_fallback&&(this.text_encoder=new TextEncoder),this.ignore_merges=(rt=this.config.ignore_merges)!=null?rt:!1,this.cache=new Map}bpe(H){if(H.length===0)return[];const ve=this.cache.get(H);if(ve!==void 0)return ve;const Le=Array.from(H);this.end_of_word_suffix&&(Le[Le.length-1]+=this.end_of_word_suffix);let Ye=[];if(Le.length>1){const rt=new s.PriorityQueue((zt,Bt)=>zt.score`<0x${It.toString(16).toUpperCase().padStart(2,"0")}>`);gt.every(It=>this.tokens_to_ids.has(It))?ve.push(...gt):ve.push(this.unk_token)}else ve.push(this.unk_token)}return ve}}class Ie extends pe{constructor(H,ve){super(H),this.tokens_to_ids=_(ve.target_lang?H.vocab[ve.target_lang]:H.vocab),this.bos_token=ve.bos_token,this.bos_token_id=this.tokens_to_ids.get(this.bos_token),this.eos_token=ve.eos_token,this.eos_token_id=this.tokens_to_ids.get(this.eos_token),this.pad_token=ve.pad_token,this.pad_token_id=this.tokens_to_ids.get(this.pad_token),this.unk_token=ve.unk_token,this.unk_token_id=this.tokens_to_ids.get(this.unk_token),this.vocab=new Array(this.tokens_to_ids.size);for(const[Le,Ye]of this.tokens_to_ids)this.vocab[Ye]=Le}encode(H){return H}}class ee extends r.Callable{constructor(H){super(),this.config=H}static fromConfig(H){if(H===null)return null;switch(H.type){case"BertNormalizer":return new Ue(H);case"Precompiled":return new or(H);case"Sequence":return new Oe(H);case"Replace":return new W(H);case"NFC":return new K(H);case"NFKC":return new se(H);case"NFKD":return new fe(H);case"Strip":return new de(H);case"StripAccents":return new ue(H);case"Lowercase":return new te(H);case"Prepend":return new ge(H);default:throw new Error(`Unknown Normalizer type: ${H.type}`)}}normalize(H){throw Error("normalize should be implemented in subclass.")}_call(H){return this.normalize(H)}}class W extends ee{normalize(H){const ve=o(this.config.pattern);return ve===null?H:H.replaceAll(ve,this.config.content)}}class K extends ee{normalize(H){return H=H.normalize("NFC"),H}}class se extends ee{normalize(H){return H=H.normalize("NFKC"),H}}class fe extends ee{normalize(H){return H=H.normalize("NFKD"),H}}class de extends ee{normalize(H){return this.config.strip_left&&this.config.strip_right?H=H.trim():(this.config.strip_left&&(H=H.trimStart()),this.config.strip_right&&(H=H.trimEnd())),H}}class ue extends ee{normalize(H){return H=v(H),H}}class te extends ee{normalize(H){return H=H.toLowerCase(),H}}class ge extends ee{normalize(H){return H=this.config.prepend+H,H}}class Oe extends ee{constructor(H){super(H),this.normalizers=H.normalizers.map(ve=>ee.fromConfig(ve))}normalize(H){return this.normalizers.reduce((ve,Le)=>Le.normalize(ve),H)}}class Ue extends ee{_tokenize_chinese_chars(H){const ve=[];for(let Le=0;Lethis.pre_tokenize_text(Le,ve)):this.pre_tokenize_text(H,ve)).flat()}_call(H,ve){return this.pre_tokenize(H,ve)}}class he extends Ae{constructor(H){super(),this.pattern=new RegExp(`[^\\s${F}]+|[${F}]`,"gu")}pre_tokenize_text(H,ve){return H.trim().match(this.pattern)||[]}}class Fe extends Ae{constructor(H){var ve;super(),this.config=H,this.add_prefix_space=this.config.add_prefix_space,this.trim_offsets=this.config.trim_offsets,this.use_regex=(ve=this.config.use_regex)!=null?ve:!0,this.pattern=/'s|'t|'re|'ve|'m|'ll|'d| ?\p{L}+| ?\p{N}+| ?[^\s\p{L}\p{N}]+|\s+(?!\S)|\s+/gu,this.byte_encoder=Re,this.text_encoder=new TextEncoder}pre_tokenize_text(H,ve){return this.add_prefix_space&&!H.startsWith(" ")&&(H=" "+H),(this.use_regex?H.match(this.pattern)||[]:[H]).map(Ye=>Array.from(this.text_encoder.encode(Ye),rt=>this.byte_encoder[rt]).join(""))}}class He extends Ae{constructor(H){super(),this.config=H,this.pattern=o(this.config.pattern,this.config.invert)}pre_tokenize_text(H,ve){return this.pattern===null?[]:this.config.invert?H.match(this.pattern)||[]:u(H,this.pattern)}}class $e extends Ae{constructor(H){super(),this.config=H,this.pattern=new RegExp(`[^${F}]+|[${F}]+`,"gu")}pre_tokenize_text(H,ve){return H.match(this.pattern)||[]}}class xe extends Ae{constructor(H){super(),this.config=H;const ve=`[^\\d]+|\\d${this.config.individual_digits?"":"+"}`;this.pattern=new RegExp(ve,"gu")}pre_tokenize_text(H,ve){return H.match(this.pattern)||[]}}class De extends r.Callable{constructor(H){super(),this.config=H}static fromConfig(H){if(H===null)return null;switch(H.type){case"TemplateProcessing":return new tt(H);case"ByteLevel":return new ct(H);case"RobertaProcessing":return new Ne(H);case"BertProcessing":return new Ge(H);case"Sequence":return new J(H);default:throw new Error(`Unknown PostProcessor type: ${H.type}`)}}post_process(H,...ve){throw Error("post_process should be implemented in subclass.")}_call(H,...ve){return this.post_process(H,...ve)}}class Ge extends De{constructor(H){super(H),this.cls=H.cls[0],this.sep=H.sep[0]}post_process(H,ve=null,{add_special_tokens:Le=!0}={}){Le&&(H=(0,l.mergeArrays)([this.cls],H,[this.sep]));let Ye=new Array(H.length).fill(0);if(ve!==null){const rt=Le&&this instanceof Ne?[this.sep]:[],gt=Le?[this.sep]:[];H=(0,l.mergeArrays)(H,rt,ve,gt),Ye=(0,l.mergeArrays)(Ye,new Array(ve.length+rt.length+gt.length).fill(1))}return{tokens:H,token_type_ids:Ye}}}class Ne extends Ge{}class tt extends De{constructor(H){super(H),this.single=H.single,this.pair=H.pair}post_process(H,ve=null,{add_special_tokens:Le=!0}={}){const Ye=ve===null?this.single:this.pair;let rt=[],gt=[];for(const It of Ye)"SpecialToken"in It?Le&&(rt.push(It.SpecialToken.id),gt.push(It.SpecialToken.type_id)):"Sequence"in It&&(It.Sequence.id==="A"?(rt=(0,l.mergeArrays)(rt,H),gt=(0,l.mergeArrays)(gt,new Array(H.length).fill(It.Sequence.type_id))):It.Sequence.id==="B"&&(rt=(0,l.mergeArrays)(rt,ve),gt=(0,l.mergeArrays)(gt,new Array(ve.length).fill(It.Sequence.type_id))));return{tokens:rt,token_type_ids:gt}}}class ct extends De{post_process(H,ve=null){return ve&&(H=(0,l.mergeArrays)(H,ve)),{tokens:H}}}class J extends De{constructor(H){super(H),this.processors=H.processors.map(ve=>De.fromConfig(ve))}post_process(H,ve=null,Le={}){let Ye;for(const rt of this.processors)if(rt instanceof ct)H=rt.post_process(H).tokens,ve&&(ve=rt.post_process(ve).tokens);else{const gt=rt.post_process(H,ve,Le);H=gt.tokens,Ye=gt.token_type_ids}return{tokens:H,token_type_ids:Ye}}}class _e extends r.Callable{constructor(H){super(),this.config=H,this.added_tokens=[],this.end_of_word_suffix=null,this.trim_offsets=H.trim_offsets}static fromConfig(H){if(H===null)return null;switch(H.type){case"WordPiece":return new wt(H);case"Metaspace":return new Cn(H);case"ByteLevel":return new Xt(H);case"Replace":return new G(H);case"ByteFallback":return new Pe(H);case"Fuse":return new We(H);case"Strip":return new ht(H);case"Sequence":return new jt(H);case"CTC":return new Ft(H);case"BPEDecoder":return new Qt(H);default:throw new Error(`Unknown Decoder type: ${H.type}`)}}_call(H){return this.decode(H)}decode(H){return this.decode_chain(H).join("")}decode_chain(H){throw Error("`decode_chain` should be implemented in subclass.")}}class G extends _e{decode_chain(H){const ve=o(this.config.pattern);return ve===null?H:H.map(Le=>Le.replaceAll(ve,this.config.content))}}class Pe extends _e{constructor(H){super(H),this.text_decoder=new TextDecoder}decode_chain(H){const ve=[];let Le=[];for(const Ye of H){let rt=null;if(Ye.length===6&&Ye.startsWith("<0x")&&Ye.endsWith(">")){const gt=parseInt(Ye.slice(3,5),16);isNaN(gt)||(rt=gt)}if(rt!==null)Le.push(rt);else{if(Le.length>0){const gt=this.text_decoder.decode(Uint8Array.from(Le));ve.push(gt),Le=[]}ve.push(Ye)}}if(Le.length>0){const Ye=this.text_decoder.decode(Uint8Array.from(Le));ve.push(Ye),Le=[]}return ve}}class We extends _e{decode_chain(H){return[H.join("")]}}class ht extends _e{constructor(H){super(H),this.content=this.config.content,this.start=this.config.start,this.stop=this.config.stop}decode_chain(H){return H.map(ve=>{let Le=0;for(let rt=0;rt(Le!==0&&(ve.startsWith(this.config.prefix)?ve=ve.replace(this.config.prefix,""):ve=" "+ve),this.cleanup&&(ve=h(ve)),ve))}}class Xt extends _e{constructor(H){super(H),this.byte_decoder=ze,this.text_decoder=new TextDecoder("utf-8",{fatal:!1,ignoreBOM:!0}),this.end_of_word_suffix=null}convert_tokens_to_string(H){const ve=H.join(""),Le=new Uint8Array([...ve].map(rt=>this.byte_decoder[rt]));return this.text_decoder.decode(Le)}decode_chain(H){const ve=[];let Le=[];for(const Ye of H)this.added_tokens.find(rt=>rt.content===Ye)!==void 0?(Le.length>0&&(ve.push(this.convert_tokens_to_string(Le)),Le=[]),ve.push(Ye)):Le.push(Ye);return Le.length>0&&ve.push(this.convert_tokens_to_string(Le)),ve}}class Ft extends _e{constructor(H){super(H),this.pad_token=this.config.pad_token,this.word_delimiter_token=this.config.word_delimiter_token,this.cleanup=this.config.cleanup}convert_tokens_to_string(H){if(H.length===0)return"";const ve=[H[0]];for(let rt=1;rtrt!==this.pad_token).join("");return this.cleanup&&(Ye=h(Ye).replaceAll(this.word_delimiter_token," ").trim()),Ye}decode_chain(H){return[this.convert_tokens_to_string(H)]}}class jt extends _e{constructor(H){super(H),this.decoders=H.decoders.map(ve=>_e.fromConfig(ve))}decode_chain(H){return this.decoders.reduce((ve,Le)=>Le.decode_chain(ve),H)}}class Qt extends _e{constructor(H){super(H),this.suffix=this.config.suffix}decode_chain(H){return H.map((ve,Le)=>ve.replaceAll(this.suffix,Le===H.length-1?"":" "))}}class Mt extends _e{decode_chain(H){let ve="";for(let Le=1;LeLe.normalize("NFKC")).join("\uFF5E"):H=H.normalize("NFKC"),H}}class Gn extends Ae{constructor(H){super(),this.tokenizers=H.pretokenizers.map(ve=>Ae.fromConfig(ve))}pre_tokenize_text(H,ve){return this.tokenizers.reduce((Le,Ye)=>Ye.pre_tokenize(Le,ve),[H])}}class lr extends Ae{constructor(H){super()}pre_tokenize_text(H,ve){return H.match(/\w+|[^\w\s]+/g)||[]}}class bt extends Ae{constructor(H){super()}pre_tokenize_text(H,ve){return O(H)}}class Me extends Ae{constructor(H){super(),this.config=H,this.pattern=o(this.config.pattern),this.content=this.config.content}pre_tokenize_text(H,ve){return this.pattern===null?[H]:[H.replaceAll(this.pattern,this.config.content)]}}const Je=["bos_token","eos_token","unk_token","sep_token","pad_token","cls_token","mask_token"];function lt(Ke,H,ve,Le){for(const Ye of Object.keys(Ke)){const rt=H-Ke[Ye].length,gt=ve(Ye),It=new Array(rt).fill(gt);Ke[Ye]=Le==="right"?(0,l.mergeArrays)(Ke[Ye],It):(0,l.mergeArrays)(It,Ke[Ye])}}function Ct(Ke,H){for(const ve of Object.keys(Ke))Ke[ve].length=H}class at extends r.Callable{constructor(ve,Le){var Ye,rt,gt,It;super();ut(this,"return_token_type_ids",!1);ut(this,"padding_side","right");this._tokenizer_config=Le,this.normalizer=ee.fromConfig(ve.normalizer),this.pre_tokenizer=Ae.fromConfig(ve.pre_tokenizer),this.model=pe.fromConfig(ve.model,Le),this.post_processor=De.fromConfig(ve.post_processor),this.decoder=_e.fromConfig(ve.decoder),this.special_tokens=[],this.all_special_ids=[],this.added_tokens=[];for(const zt of ve.added_tokens){const Bt=new ie(zt);this.added_tokens.push(Bt),this.model.tokens_to_ids.set(Bt.content,Bt.id),this.model.vocab[Bt.id]=Bt.content,Bt.special&&(this.special_tokens.push(Bt.content),this.all_special_ids.push(Bt.id))}if(this.additional_special_tokens=(Ye=Le.additional_special_tokens)!=null?Ye:[],this.special_tokens.push(...this.additional_special_tokens),this.special_tokens=[...new Set(this.special_tokens)],this.decoder&&(this.decoder.added_tokens=this.added_tokens,this.decoder.end_of_word_suffix=this.model.end_of_word_suffix),this.added_tokens_regex=this.added_tokens.length>0?new RegExp(this.added_tokens.slice().sort((zt,Bt)=>Bt.content.length-zt.content.length).map(zt=>`${zt.lstrip?"\\s*":""}(${(0,l.escapeRegExp)(zt.content)})${zt.rstrip?"\\s*":""}`).join("|")):null,this.mask_token=this.getToken("mask_token"),this.mask_token_id=this.model.tokens_to_ids.get(this.mask_token),this.pad_token=this.getToken("pad_token","eos_token"),this.pad_token_id=this.model.tokens_to_ids.get(this.pad_token),this.sep_token=this.getToken("sep_token"),this.sep_token_id=this.model.tokens_to_ids.get(this.sep_token),this.unk_token=this.getToken("unk_token"),this.unk_token_id=this.model.tokens_to_ids.get(this.unk_token),this.model_max_length=Le.model_max_length,this.remove_space=Le.remove_space,this.clean_up_tokenization_spaces=(rt=Le.clean_up_tokenization_spaces)!=null?rt:!0,this.do_lowercase_and_remove_accent=(gt=Le.do_lowercase_and_remove_accent)!=null?gt:!1,Le.padding_side&&(this.padding_side=Le.padding_side),this.legacy=!1,this.chat_template=(It=Le.chat_template)!=null?It:null,Array.isArray(this.chat_template)){const zt=Object.create(null);for(const{name:Bt,template:en}of this.chat_template){if(typeof Bt!="string"||typeof en!="string")throw new Error('Chat template must be a list of objects with "name" and "template" properties');zt[Bt]=en}this.chat_template=zt}this._compiled_template_cache=new Map}getToken(...ve){for(const Le of ve){const Ye=this._tokenizer_config[Le];if(!!Ye)if(typeof Ye=="object"){if(Ye.__type==="AddedToken")return Ye.content;throw Error(`Unknown token: ${Ye}`)}else return Ye}return null}static async from_pretrained(ve,{progress_callback:Le=null,config:Ye=null,cache_dir:rt=null,local_files_only:gt=!1,revision:It="main",legacy:zt=null}={}){const Bt=await a(ve,{progress_callback:Le,config:Ye,cache_dir:rt,local_files_only:gt,revision:It,legacy:zt});return new this(...Bt)}_call(ve,{text_pair:Le=null,add_special_tokens:Ye=!0,padding:rt=!1,truncation:gt=null,max_length:It=null,return_tensor:zt=!0,return_token_type_ids:Bt=null}={}){var vr;const en=Array.isArray(ve);let En;if(en){if(ve.length===0)throw Error("text array must be non-empty");if(Le!==null){if(Array.isArray(Le)){if(ve.length!==Le.length)throw Error("text and text_pair must have the same length")}else throw Error("text_pair must also be an array");En=ve.map((tr,kr)=>this._encode_plus(tr,{text_pair:Le[kr],add_special_tokens:Ye,return_token_type_ids:Bt}))}else En=ve.map(tr=>this._encode_plus(tr,{add_special_tokens:Ye,return_token_type_ids:Bt}))}else{if(ve==null)throw Error("text may not be null or undefined");if(Array.isArray(Le))throw Error("When specifying `text_pair`, since `text` is a string, `text_pair` must also be a string (i.e., not an array).");En=[this._encode_plus(ve,{text_pair:Le,add_special_tokens:Ye,return_token_type_ids:Bt})]}if(It===null?rt==="max_length"?It=this.model_max_length:It=(0,S.max)(En.map(tr=>tr.input_ids.length))[0]:gt||console.warn("Truncation was not explicitly activated but `max_length` is provided a specific value, please use `truncation=true` to explicitly truncate examples to max length."),It=Math.min(It,(vr=this.model_max_length)!=null?vr:1/0),rt||gt)for(let tr=0;trIt?gt&&Ct(En[tr],It):rt&<(En[tr],It,kr=>kr==="input_ids"?this.pad_token_id:0,this.padding_side));const cr={};if(zt){if(!(rt&>)&&En.some(kr=>{var Fn;for(const ir of Object.keys(kr))if(kr[ir].length!==((Fn=En[0][ir])==null?void 0:Fn.length))return!0;return!1}))throw Error("Unable to create tensor, you should probably activate truncation and/or padding with 'padding=true' and 'truncation=true' to have batched tensors with the same length.");const tr=[En.length,En[0].input_ids.length];for(const kr of Object.keys(En[0]))cr[kr]=new g.Tensor("int64",BigInt64Array.from(En.flatMap(Fn=>Fn[kr]).map(BigInt)),tr)}else{for(const tr of Object.keys(En[0]))cr[tr]=En.map(kr=>kr[tr]);if(!en)for(const tr of Object.keys(cr))cr[tr]=cr[tr][0]}return cr}_encode_text(ve){return ve===null?null:(this.added_tokens_regex?ve.split(this.added_tokens_regex).filter(rt=>rt):[ve]).map((rt,gt)=>{if(this.added_tokens.find(zt=>zt.content===rt)!==void 0)return rt;{if(this.remove_space===!0&&(rt=rt.trim().split(/\s+/).join(" ")),this.do_lowercase_and_remove_accent&&(rt=b(rt)),this.normalizer!==null&&(rt=this.normalizer(rt)),rt.length===0)return[];const zt=this.pre_tokenizer!==null?this.pre_tokenizer(rt,{section_index:gt}):[rt];return this.model(zt)}}).flat()}_encode_plus(ve,{text_pair:Le=null,add_special_tokens:Ye=!0,return_token_type_ids:rt=null}={}){const{tokens:gt,token_type_ids:It}=this._tokenize_helper(ve,{pair:Le,add_special_tokens:Ye}),zt=this.model.convert_tokens_to_ids(gt),Bt={input_ids:zt,attention_mask:new Array(zt.length).fill(1)};return(rt!=null?rt:this.return_token_type_ids)&&It&&(Bt.token_type_ids=It),Bt}_tokenize_helper(ve,{pair:Le=null,add_special_tokens:Ye=!1}={}){const rt=this._encode_text(ve),gt=this._encode_text(Le);return this.post_processor?this.post_processor(rt,gt,{add_special_tokens:Ye}):{tokens:(0,l.mergeArrays)(rt!=null?rt:[],gt!=null?gt:[])}}tokenize(ve,{pair:Le=null,add_special_tokens:Ye=!1}={}){return this._tokenize_helper(ve,{pair:Le,add_special_tokens:Ye}).tokens}encode(ve,{text_pair:Le=null,add_special_tokens:Ye=!0,return_token_type_ids:rt=null}={}){return this._encode_plus(ve,{text_pair:Le,add_special_tokens:Ye,return_token_type_ids:rt}).input_ids}batch_decode(ve,Le={}){return ve instanceof g.Tensor&&(ve=ve.tolist()),ve.map(Ye=>this.decode(Ye,Le))}decode(ve,Le={}){if(ve instanceof g.Tensor&&(ve=y(ve)),!Array.isArray(ve)||ve.length===0||!(0,l.isIntegralNumber)(ve[0]))throw Error("token_ids must be a non-empty array of integers.");return this.decode_single(ve,Le)}decode_single(ve,{skip_special_tokens:Le=!1,clean_up_tokenization_spaces:Ye=null}){let rt=this.model.convert_ids_to_tokens(ve);Le&&(rt=rt.filter(It=>!this.special_tokens.includes(It)));let gt=this.decoder?this.decoder(rt):rt.join(" ");return this.decoder&&this.decoder.end_of_word_suffix&&(gt=gt.replaceAll(this.decoder.end_of_word_suffix," "),Le&&(gt=gt.trim())),(Ye!=null?Ye:this.clean_up_tokenization_spaces)&&(gt=h(gt)),gt}get_chat_template({chat_template:ve=null,tools:Le=null}={}){if(this.chat_template&&typeof this.chat_template=="object"){const Ye=this.chat_template;if(ve!==null&&Object.hasOwn(Ye,ve))ve=Ye[ve];else if(ve===null)if(Le!==null&&"tool_use"in Ye)ve=Ye.tool_use;else if("default"in Ye)ve=Ye.default;else throw Error(`This model has multiple chat templates with no default specified! Please either pass a chat template or the name of the template you wish to use to the 'chat_template' argument. Available template names are ${Object.keys(Ye).sort()}.`)}else if(ve===null)if(this.chat_template)ve=this.chat_template;else throw Error("Cannot use apply_chat_template() because tokenizer.chat_template is not set and no template argument was passed! For information about writing templates and setting the tokenizer.chat_template attribute, please see the documentation at https://huggingface.co/docs/transformers/main/en/chat_templating");return ve}apply_chat_template(ve,{tools:Le=null,documents:Ye=null,chat_template:rt=null,add_generation_prompt:gt=!1,tokenize:It=!0,padding:zt=!1,truncation:Bt=!1,max_length:en=null,return_tensor:En=!0,return_dict:cr=!1,tokenizer_kwargs:vr={},...tr}={}){if(rt=this.get_chat_template({chat_template:rt,tools:Le}),typeof rt!="string")throw Error(`chat_template must be a string, but got ${typeof rt}`);let kr=this._compiled_template_cache.get(rt);kr===void 0&&(kr=new c.Template(rt),this._compiled_template_cache.set(rt,kr));const Fn=Object.create(null);for(const Mi of Je){const Ei=this.getToken(Mi);Ei&&(Fn[Mi]=Ei)}const ir=kr.render({messages:ve,add_generation_prompt:gt,tools:Le,documents:Ye,...Fn,...tr});if(It){const Mi=this._call(ir,{add_special_tokens:!1,padding:zt,truncation:Bt,max_length:en,return_tensor:En,...vr});return cr?Mi:Mi.input_ids}return ir}}class xt extends at{constructor(){super(...arguments);ut(this,"return_token_type_ids",!0)}}class Gt extends at{constructor(){super(...arguments);ut(this,"return_token_type_ids",!0)}}class Ut extends at{constructor(){super(...arguments);ut(this,"return_token_type_ids",!0)}}class Jt extends at{constructor(){super(...arguments);ut(this,"return_token_type_ids",!0)}}class Wt extends at{constructor(){super(...arguments);ut(this,"return_token_type_ids",!0)}}class rn extends at{constructor(){super(...arguments);ut(this,"return_token_type_ids",!0)}}class on extends at{constructor(){super(...arguments);ut(this,"return_token_type_ids",!0)}}class tn extends at{constructor(){super(...arguments);ut(this,"return_token_type_ids",!0)}}class mn extends at{constructor(){super(...arguments);ut(this,"return_token_type_ids",!0)}}class it extends at{}class Et extends at{}class Lt extends at{constructor(ve,Le){super(ve,Le);ut(this,"return_token_type_ids",!0);console.warn('WARNING: `XLMTokenizer` is not yet supported by Hugging Face\'s "fast" tokenizers library. Therefore, you may experience slightly inaccurate results.')}}class vn extends at{constructor(){super(...arguments);ut(this,"return_token_type_ids",!0)}}class qn extends at{}class Pr extends at{}class zr extends at{}class jn extends at{constructor(H,ve){super(H,ve),this.languageRegex=/^[a-z]{2}_[A-Z]{2}$/,this.language_codes=this.special_tokens.filter(Le=>this.languageRegex.test(Le)),this.lang_to_token=Le=>Le}_build_translation_inputs(H,ve,Le){return fs(this,H,ve,Le)}}class Br extends jn{}class Mr extends at{}class Li extends at{}const Sr="\u2581";class bo extends at{constructor(ve,Le){var Ye;super(ve,Le);ut(this,"padding_side","left");this.legacy=(Ye=Le.legacy)!=null?Ye:!0,this.legacy||(this.normalizer=null,this.pre_tokenizer=new Zt({replacement:Sr,add_prefix_space:!0,prepend_scheme:"first"}))}_encode_text(ve){if(ve===null)return null;if(this.legacy||ve.length===0)return super._encode_text(ve);let Le=super._encode_text(Sr+ve.replaceAll(Sr," "));return Le.length>1&&Le[0]===Sr&&this.special_tokens.includes(Le[1])&&(Le=Le.slice(1)),Le}}class cl extends at{}class ca extends at{}class dl extends at{}class fl extends at{}class da extends at{}class hl extends at{}class fa extends at{}class qa extends at{}class ha extends at{}function fs(Ke,H,ve,Le){if(!("language_codes"in Ke)||!Array.isArray(Ke.language_codes))throw new Error("Tokenizer must have `language_codes` attribute set and it should be an array of language ids.");if(!("languageRegex"in Ke)||!(Ke.languageRegex instanceof RegExp))throw new Error("Tokenizer must have `languageRegex` attribute set and it should be a regular expression.");if(!("lang_to_token"in Ke)||typeof Ke.lang_to_token!="function")throw new Error("Tokenizer must have `lang_to_token` attribute set and it should be a function.");const Ye=Le.src_lang,rt=Le.tgt_lang;if(!Ke.language_codes.includes(rt))throw new Error(`Target language code "${rt}" is not valid. Must be one of: {${Ke.language_codes.join(", ")}}`);if(Ye!==void 0){if(!Ke.language_codes.includes(Ye))throw new Error(`Source language code "${Ye}" is not valid. Must be one of: {${Ke.language_codes.join(", ")}}`);for(const gt of Ke.post_processor.config.single)if("SpecialToken"in gt&&Ke.languageRegex.test(gt.SpecialToken.id)){gt.SpecialToken.id=Ke.lang_to_token(Ye);break}}return Le.forced_bos_token_id=Ke.model.convert_tokens_to_ids([Ke.lang_to_token(rt)])[0],Ke._call(H,ve)}class ks extends at{constructor(H,ve){super(H,ve),this.languageRegex=/^[a-z]{3}_[A-Z][a-z]{3}$/,this.language_codes=this.special_tokens.filter(Le=>this.languageRegex.test(Le)),this.lang_to_token=Le=>Le}_build_translation_inputs(H,ve,Le){return fs(this,H,ve,Le)}}class Ya extends at{constructor(H,ve){super(H,ve),this.languageRegex=/^__[a-z]{2,3}__$/,this.language_codes=this.special_tokens.filter(Le=>this.languageRegex.test(Le)).map(Le=>Le.slice(2,-2)),this.lang_to_token=Le=>`__${Le}__`}_build_translation_inputs(H,ve,Le){return fs(this,H,ve,Le)}}class hs extends at{get timestamp_begin(){return this.model.convert_tokens_to_ids(["<|notimestamps|>"])[0]+1}_decode_asr(H,{return_timestamps:ve=!1,return_language:Le=!1,time_precision:Ye=null,force_full_sequences:rt=!0}={}){if(Ye===null)throw Error("Must specify time_precision");let gt=null;const It=ve==="word";function zt(){return{language:gt,timestamp:[null,null],text:""}}const Bt=[];let en=zt(),En=0;const cr=this.timestamp_begin;let vr=[],tr=[],kr=!1,Fn=null;const ir=new Set(this.all_special_ids);for(const dt of H){const qr=dt.tokens,mi=It?dt.token_timestamps:null;let ps=null,ms=cr;if("stride"in dt){const[Nr,Hn,yr]=dt.stride;if(En-=Hn,Fn=Nr-yr,Hn&&(ms=Hn/Ye+cr),yr)for(let Ot=qr.length-1;Ot>=0;--Ot){const cn=Number(qr[Ot]);if(cn>=cr){if(ps!==null&&(cn-cr)*Ye=cr){const yr=(Hn-cr)*Ye+En,Ot=(0,S.round)(yr,2);if(ps!==null&&Hn>=ps)kr=!0;else if(kr||vr.length>0&&Hn0?(vr.push(bn),It&&tr.push(wi)):vr.every(Nr=>Nr.length===0)&&(en=zt(),vr=[],bn=[],tr=[],wi=[])}if(vr.length>0){if(rt&&ve)throw new Error("Whisper did not predict an ending timestamp, which can happen if audio is cut off in the middle of a word. Also make sure WhisperTimeStampLogitsProcessor was used during generation.");const[dt,qr]=this.findLongestCommonSequence(vr,tr),mi=this.decode(dt);en.text=mi,It&&(en.words=this.collateWordTimestamps(dt,qr,gt)),Bt.push(en)}let Mi=Object.create(null);const Ei=Bt.map(dt=>dt.text).join("");if(ve||Le){for(let dt=0;dt0;let It=gt?[]:null,zt=gt?ve[0]:null;for(let Bt=1;BtOt===wi[cn]&&zt[qr+cn]<=ve[Bt][ms+cn]).length:Nr=ps.filter((Ot,cn)=>Ot===wi[cn]).length;const Hn=dt/1e4,yr=Nr/dt+Hn;Nr>1&&yr>En&&(En=yr,cr=[qr,mi,ms,bn])}const[tr,kr,Fn,ir]=cr,Mi=Math.floor((kr+tr)/2),Ei=Math.floor((ir+Fn)/2);rt.push(...Le.slice(0,Mi)),Le=en.slice(Ei),Ye=Le.length,gt&&(It.push(...zt.slice(0,Mi)),zt=ve[Bt].slice(Ei))}return rt.push(...Le),gt?(It.push(...zt),[rt,It]):[rt,[]]}collateWordTimestamps(H,ve,Le){const[Ye,rt,gt]=this.combineTokensIntoWords(H,Le),It=[];for(let zt=0;zt=Ye){const zt=((It-Ye)*Le).toFixed(2);rt.push(`<|${zt}|>`),rt.push([])}else rt[rt.length-1].push(It);return rt=rt.map(It=>typeof It=="string"?It:super.decode(It,ve)),rt.join("")}splitTokensOnUnicode(H){const ve=this.decode(H,{decode_with_timestamps:!0}),Le="\uFFFD",Ye=[],rt=[],gt=[];let It=[],zt=[],Bt=0;for(let en=0;en=this.model.tokens_to_ids.get("<|endoftext|>"),tr=en.startsWith(" "),kr=en.trim(),Fn=zt.test(kr);if(vr||tr||Fn||rt.length===0)rt.push(en),gt.push(En),It.push(cr);else{const ir=rt.length-1;rt[ir]+=en,gt[ir].push(...En),It[ir].push(...cr)}}return[rt,gt,It]}mergePunctuations(H,ve,Le,Ye,rt){const gt=structuredClone(H),It=structuredClone(ve),zt=structuredClone(Le);let Bt=gt.length-2,en=gt.length-1;for(;Bt>=0;)gt[Bt].startsWith(" ")&&Ye.includes(gt[Bt].trim())?(gt[en]=gt[Bt]+gt[en],It[en]=(0,l.mergeArrays)(It[Bt],It[en]),zt[en]=(0,l.mergeArrays)(zt[Bt],zt[en]),gt[Bt]="",It[Bt]=[],zt[Bt]=[]):en=Bt,--Bt;for(Bt=0,en=1;enEn),It.filter(En=>En.length>0),zt.filter(En=>En.length>0)]}}class xo extends at{}class So extends at{}class To extends at{}class Sn extends at{constructor(H,ve){super(H,ve),this.languageRegex=/^(>>\w+<<)\s*/g,this.supported_language_codes=this.model.vocab.filter(Le=>this.languageRegex.test(Le)),console.warn('WARNING: `MarianTokenizer` is not yet supported by Hugging Face\'s "fast" tokenizers library. Therefore, you may experience slightly inaccurate results.')}_encode_text(H){if(H===null)return null;const[ve,...Le]=H.trim().split(this.languageRegex);if(Le.length===0)return super._encode_text(ve);if(Le.length===2){const[Ye,rt]=Le;return this.supported_language_codes.includes(Ye)||console.warn(`Unsupported language code "${Ye}" detected, which may lead to unexpected behavior. Should be one of: ${JSON.stringify(this.supported_language_codes)}`),(0,l.mergeArrays)([Ye],super._encode_text(rt))}}}class pa extends at{}class Co extends at{}class Mo extends at{}class ma extends at{}class pl extends at{}class Eo extends at{constructor(H,ve){super(H,ve),this.decoder=new Mt({})}}class Os extends at{}class Po{static async from_pretrained(H,{progress_callback:ve=null,config:Le=null,cache_dir:Ye=null,local_files_only:rt=!1,revision:gt="main",legacy:It=null}={}){var cr,vr;const[zt,Bt]=await a(H,{progress_callback:ve,config:Le,cache_dir:Ye,local_files_only:rt,revision:gt,legacy:It}),en=(vr=(cr=Bt.tokenizer_class)==null?void 0:cr.replace(/Fast$/,""))!=null?vr:"PreTrainedTokenizer";let En=this.TOKENIZER_CLASS_MAPPING[en];return En||(console.warn(`Unknown tokenizer class "${en}", attempting to construct from base class.`),En=at),new En(zt,Bt)}}ut(Po,"TOKENIZER_CLASS_MAPPING",{T5Tokenizer:qn,DistilBertTokenizer:it,CamembertTokenizer:Et,DebertaTokenizer:Wt,DebertaV2Tokenizer:rn,BertTokenizer:xt,HerbertTokenizer:on,ConvBertTokenizer:tn,RoFormerTokenizer:mn,XLMTokenizer:Lt,ElectraTokenizer:vn,MobileBertTokenizer:Ut,SqueezeBertTokenizer:Jt,AlbertTokenizer:Gt,GPT2Tokenizer:Pr,BartTokenizer:zr,MBartTokenizer:jn,MBart50Tokenizer:Br,RobertaTokenizer:Mr,WhisperTokenizer:hs,CodeGenTokenizer:xo,CLIPTokenizer:So,SiglipTokenizer:To,MarianTokenizer:Sn,BloomTokenizer:Li,NllbTokenizer:ks,M2M100Tokenizer:Ya,LlamaTokenizer:bo,CodeLlamaTokenizer:cl,XLMRobertaTokenizer:ca,MPNetTokenizer:dl,FalconTokenizer:fl,GPTNeoXTokenizer:da,EsmTokenizer:hl,Wav2Vec2CTCTokenizer:pa,BlenderbotTokenizer:Co,BlenderbotSmallTokenizer:Mo,SpeechT5Tokenizer:ma,NougatTokenizer:pl,VitsTokenizer:Eo,Qwen2Tokenizer:fa,GemmaTokenizer:qa,Grok1Tokenizer:ha,CohereTokenizer:Os,PreTrainedTokenizer:at})},"./src/utils/audio.js":(t,e,n)=>{n.r(e),n.d(e,{hamming:()=>p,hanning:()=>c,mel_filter_bank:()=>v,read_audio:()=>g,spectrogram:()=>F,window_function:()=>D});var r=n("./src/utils/hub.js"),l=n("./src/utils/maths.js"),m=n("./src/utils/core.js"),S=n("./src/utils/tensor.js");async function g(R,Q){if(typeof AudioContext>"u")throw Error("Unable to load audio from path/URL since `AudioContext` is not available in your environment. Instead, audio data should be passed directly to the pipeline/processor. For more information and some example code, see https://huggingface.co/docs/transformers.js/guides/node-audio-processing.");const ie=await(await(0,r.getFile)(R)).arrayBuffer(),pe=new AudioContext({sampleRate:Q});typeof Q>"u"&&console.warn(`No sampling rate provided, using default of ${pe.sampleRate}Hz.`);const ke=await pe.decodeAudioData(ie);let Te;if(ke.numberOfChannels===2){const Re=Math.sqrt(2),ze=ke.getChannelData(0),Ze=ke.getChannelData(1);Te=new Float32Array(ze.length);for(let Ie=0;Ie2595*Math.log10(1+R/700),kaldi:R=>1127*Math.log(1+R/700),slaney:(R,Q=1e3,ie=15,pe=27/Math.log(6.4))=>R>=Q?ie+Math.log(R/Q)*pe:3*R/200};function u(R,Q="htk"){const ie=a[Q];if(!ie)throw new Error('mel_scale should be one of "htk", "slaney" or "kaldi".');return typeof R=="number"?ie(R):R.map(pe=>ie(pe))}const o={htk:R=>700*(10**(R/2595)-1),kaldi:R=>700*(Math.exp(R/1127)-1),slaney:(R,Q=1e3,ie=15,pe=Math.log(6.4)/27)=>R>=ie?Q*Math.exp(pe*(R-ie)):200*R/3};function _(R,Q="htk"){const ie=o[Q];if(!ie)throw new Error('mel_scale should be one of "htk", "slaney" or "kaldi".');return typeof R=="number"?ie(R):R.map(pe=>ie(pe))}function y(R,Q){const ie=Float64Array.from({length:Q.length-1},(Re,ze)=>Q[ze+1]-Q[ze]),pe=Array.from({length:R.length},()=>new Array(Q.length));for(let Re=0;Renew Array(R.length));for(let Re=0;ReR+pe*Te)}function v(R,Q,ie,pe,ke,Te=null,Re="htk",ze=!1){if(Te!==null&&Te!=="slaney")throw new Error('norm must be one of null or "slaney"');const Ze=u(ie,Re),Ie=u(pe,Re),ee=h(Ze,Ie,Q+2);let W=_(ee,Re),K;if(ze){const fe=ke/(R*2);K=u(Float64Array.from({length:R},(de,ue)=>ue*fe),Re),W=ee}else K=h(0,Math.floor(ke/2),R);const se=y(K,W);if(Te!==null&&Te==="slaney")for(let fe=0;feke)throw Error(`frame_length (${ie}) may not be larger than fft_length (${ke})`);if(Ae!==ie)throw new Error(`Length of the window (${Ae}) must equal frame_length (${ie})`);if(pe<=0)throw new Error("hop_length must be greater than zero");if(Te===null&&ee!==null)throw new Error("You have provided `mel_filters` but `power` is `None`. Mel spectrogram computation is not yet supported for complex-valued spectrogram. Specify `power` to fix this issue.");if(Re){if(ze!=="reflect")throw new Error(`pad_mode="${ze}" not implemented yet.`);const _e=Math.floor((ke-1)/2)+1;R=b(R,_e,_e)}let he=Math.floor(1+Math.floor((R.length-ie)/pe));te!==null&&hehe?Oe&&($e=ge):$e=He=ge);const xe=new l.FFT(ke),De=new Float64Array(ke),Ge=new Float64Array(xe.outputBufferSize),Ne=new Float32Array(Fe*$e);for(let _e=0;_e=1;--We)De[We]-=Ie*De[We-1];De[0]*=1-Ie}for(let We=0;WeMath.pow(ze,.85));break;default:throw new Error(`Unknown window type ${Q}.`)}if(ie&&(Re=Re.subarray(0,R)),pe===null)return Re;if(R>pe)throw new Error(`Length of the window (${R}) may not be larger than frame_length (${pe})`);return Re}},"./src/utils/constants.js":(t,e,n)=>{n.r(e),n.d(e,{GITHUB_ISSUE_URL:()=>r});const r="https://github.com/huggingface/transformers.js/issues/new/choose"},"./src/utils/core.js":(t,e,n)=>{n.r(e),n.d(e,{calculateDimensions:()=>s,calculateReflectOffset:()=>u,dispatchCallback:()=>r,escapeRegExp:()=>m,isIntegralNumber:()=>g,isTypedArray:()=>S,len:()=>_,mergeArrays:()=>p,pick:()=>o,pop:()=>c,product:()=>a,reverseDictionary:()=>l});function r(y,h){y&&y(h)}function l(y){return Object.fromEntries(Object.entries(y).map(([h,v])=>[v,h]))}function m(y){return y.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function S(y){var h,v,b;return((b=(v=(h=y==null?void 0:y.prototype)==null?void 0:h.__proto__)==null?void 0:v.constructor)==null?void 0:b.name)==="TypedArray"}function g(y){return Number.isInteger(y)||typeof y=="bigint"}function s(y){const h=[];let v=y;for(;Array.isArray(v);)h.push(v.length),v=v[0];return h}function c(y,h,v=void 0){const b=y[h];if(b!==void 0)return delete y[h],b;if(v===void 0)throw Error(`Key ${h} does not exist in object.`);return v}function p(...y){return Array.prototype.concat.apply([],y)}function a(...y){return y.reduce((h,v)=>h.flatMap(b=>v.map(T=>[b,T])))}function u(y,h){return Math.abs((y+h)%(2*h)-h)}function o(y,h){return Object.assign({},...h.map(v=>{if(y[v]!==void 0)return{[v]:y[v]}}))}function _(y){let h=0;for(const v of y)++h;return h}},"./src/utils/data-structures.js":(t,e,n)=>{n.r(e),n.d(e,{CharTrie:()=>l,PriorityQueue:()=>r,TokenLattice:()=>S});class r{constructor(c=(a,u)=>a>u,p=1/0){this._heap=[],this._comparator=c,this._maxSize=p}get size(){return this._heap.length}isEmpty(){return this.size===0}peek(){return this._heap[0]}push(...c){return this.extend(c)}extend(c){for(const p of c)if(this.size0&&this._swap(0,p),this._heap.pop(),this._siftDown(),c}replace(c){const p=this.peek();return this._heap[0]=c,this._siftDown(),p}_parent(c){return(c+1>>>1)-1}_left(c){return(c<<1)+1}_right(c){return c+1<<1}_greater(c,p){return this._comparator(this._heap[c],this._heap[p])}_swap(c,p){const a=this._heap[c];this._heap[c]=this._heap[p],this._heap[p]=a}_siftUp(){this._siftUpFrom(this.size-1)}_siftUpFrom(c){for(;c>0&&this._greater(c,this._parent(c));)this._swap(c,this._parent(c)),c=this._parent(c)}_siftDown(){let c=0;for(;this._left(c)[]),this.endNodes=Array.from({length:this.len+1},()=>[]);const u=new g(this.bosTokenId,0,0,0,0),o=new g(this.eosTokenId,1,this.len,0,0);this.nodes.push(u.clone()),this.nodes.push(o.clone()),this.beginNodes[this.len].push(o),this.endNodes[0].push(u)}insert(c,p,a,u){const o=this.nodes.length,_=new g(u,o,c,p,a);this.beginNodes[c].push(_),this.endNodes[c+p].push(_),this.nodes.push(_)}viterbi(){const c=this.len;let p=0;for(;p<=c;){if(this.beginNodes[p].length==0)return[];for(let y of this.beginNodes[p]){y.prev=null;let h=0,v=null;for(let b of this.endNodes[p]){const T=b.backtraceScore+y.score;(v===null||T>h)&&(v=b.clone(),h=T)}if(v!==null)y.prev=v,y.backtraceScore=h;else return[]}++p}const a=[],o=this.beginNodes[c][0].prev;if(o===null)return[];let _=o.clone();for(;_.prev!==null;)a.push(_.clone()),_=_.clone().prev.clone();return a.reverse(),a}piece(c){return this.chars.slice(c.pos,c.pos+c.length).join("")}tokens(){return this.viterbi().map(p=>this.piece(p))}tokenIds(){return this.viterbi().map(p=>p.tokenId)}}class g{constructor(c,p,a,u,o){this.tokenId=c,this.nodeId=p,this.pos=a,this.length=u,this.score=o,this.prev=null,this.backtraceScore=0}clone(){const c=new g(this.tokenId,this.nodeId,this.pos,this.length,this.score);return c.prev=this.prev,c.backtraceScore=this.backtraceScore,c}}},"./src/utils/devices.js":(t,e,n)=>{n.r(e),n.d(e,{DEVICE_TYPES:()=>r});const r=Object.freeze({auto:"auto",gpu:"gpu",cpu:"cpu",wasm:"wasm",webgpu:"webgpu",cuda:"cuda",dml:"dml",webnn:"webnn","webnn-npu":"webnn-npu","webnn-gpu":"webnn-gpu","webnn-cpu":"webnn-cpu"})},"./src/utils/dtypes.js":(t,e,n)=>{n.r(e),n.d(e,{DATA_TYPES:()=>S,DEFAULT_DEVICE_DTYPE_MAPPING:()=>g,DEFAULT_DTYPE_SUFFIX_MAPPING:()=>s,isWebGpuFp16Supported:()=>m});var r=n("./src/env.js"),l=n("./src/utils/devices.js");const m=function(){let c;return async function(){if(c===void 0)if(!r.apis.IS_WEBGPU_AVAILABLE)c=!1;else try{c=(await navigator.gpu.requestAdapter()).features.has("shader-f16")}catch{c=!1}return c}}(),S=Object.freeze({fp32:"fp32",fp16:"fp16",q8:"q8",int8:"int8",uint8:"uint8",q4:"q4",bnb4:"bnb4",q4f16:"q4f16"}),g=Object.freeze({[l.DEVICE_TYPES.wasm]:S.q8}),s=Object.freeze({[S.fp32]:"",[S.fp16]:"_fp16",[S.int8]:"_int8",[S.uint8]:"_uint8",[S.q8]:"_quantized",[S.q4]:"_q4",[S.q4f16]:"_q4f16",[S.bnb4]:"_bnb4"})},"./src/utils/generic.js":(t,e,n)=>{n.r(e),n.d(e,{Callable:()=>r});const r=class{constructor(){let l=function(...m){return l._call(...m)};return Object.setPrototypeOf(l,new.target.prototype)}_call(...l){throw Error("Must implement _call method in subclass")}}},"./src/utils/hub.js":(t,e,n)=>{n.r(e),n.d(e,{getFile:()=>p,getModelFile:()=>y,getModelJSON:()=>h});var r=n("?7a2c"),l=n("?a42a"),m=n("./src/env.js"),S=n("./src/utils/core.js");const g={txt:"text/plain",html:"text/html",css:"text/css",js:"text/javascript",json:"application/json",png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif"};class s{constructor(M){if(this.filePath=M,this.headers=new Headers,this.exists=r.existsSync(M),this.exists){this.status=200,this.statusText="OK";let O=r.statSync(M);this.headers.set("content-length",O.size.toString()),this.updateContentType();let F=this;this.body=new ReadableStream({start(D){F.arrayBuffer().then(R=>{D.enqueue(new Uint8Array(R)),D.close()})}})}else this.status=404,this.statusText="Not Found",this.body=null}updateContentType(){var O;const M=this.filePath.toString().split(".").pop().toLowerCase();this.headers.set("content-type",(O=g[M])!=null?O:"application/octet-stream")}clone(){let M=new s(this.filePath);return M.exists=this.exists,M.status=this.status,M.statusText=this.statusText,M.headers=new Headers(this.headers),M}async arrayBuffer(){return(await r.promises.readFile(this.filePath)).buffer}async blob(){const M=await r.promises.readFile(this.filePath);return new Blob([M],{type:this.headers.get("content-type")})}async text(){return await r.promises.readFile(this.filePath,"utf8")}async json(){return JSON.parse(await this.text())}}function c(T,M=null,O=null){let F;try{F=new URL(T)}catch{return!1}return!(M&&!M.includes(F.protocol)||O&&!O.includes(F.hostname))}async function p(T){var M,O,F,D,R;if(m.env.useFS&&!c(T,["http:","https:","blob:"]))return new s(T);if(typeof process<"u"&&((M=process==null?void 0:process.release)==null?void 0:M.name)==="node"){const Q=!!((O=process.env)!=null&&O.TESTING_REMOTELY),ie=m.env.version,pe=new Headers;if(pe.set("User-Agent",`transformers.js/${ie}; is_ci/${Q};`),c(T,["http:","https:"],["huggingface.co","hf.co"])){const Te=(R=(F=process.env)==null?void 0:F.HF_TOKEN)!=null?R:(D=process.env)==null?void 0:D.HF_ACCESS_TOKEN;Te&&pe.set("Authorization",`Bearer ${Te}`)}return fetch(T,{headers:pe})}else return fetch(T)}const a={400:"Bad request error occurred while trying to load file",401:"Unauthorized access to file",403:"Forbidden access to file",404:"Could not locate file",408:"Request timeout error occurred while trying to load file",500:"Internal server error error occurred while trying to load file",502:"Bad gateway error occurred while trying to load file",503:"Service unavailable error occurred while trying to load file",504:"Gateway timeout error occurred while trying to load file"};function u(T,M,O){var D;if(!O)return null;const F=(D=a[T])!=null?D:`Error (${T}) occurred while trying to load file`;throw Error(`${F}: "${M}".`)}class o{constructor(M){this.path=M}async match(M){let O=l.join(this.path,M),F=new s(O);if(F.exists)return F}async put(M,O){const F=Buffer.from(await O.arrayBuffer());let D=l.join(this.path,M);try{await r.promises.mkdir(l.dirname(D),{recursive:!0}),await r.promises.writeFile(D,F)}catch(R){console.warn("An error occurred while writing the file to cache:",R)}}}async function _(T,...M){for(let O of M)try{let F=await T.match(O);if(F)return F}catch{continue}}async function y(T,M,O=!0,F={}){var K,se;if(!m.env.allowLocalModels){if(F.local_files_only)throw Error("Invalid configuration detected: local models are disabled (`env.allowLocalModels=false`) but you have requested to only use local models (`local_files_only=true`).");if(!m.env.allowRemoteModels)throw Error("Invalid configuration detected: both local and remote models are disabled. Fix by setting `env.allowLocalModels` or `env.allowRemoteModels` to `true`.")}(0,S.dispatchCallback)(F.progress_callback,{status:"initiate",name:T,file:M});let D;if(!D&&m.env.useBrowserCache){if(typeof caches>"u")throw Error("Browser cache is not available in this environment.");try{D=await caches.open("transformers-cache")}catch(fe){console.warn("An error occurred while opening the browser cache:",fe)}}if(!D&&m.env.useFSCache&&(D=new o((K=F.cache_dir)!=null?K:m.env.cacheDir)),!D&&m.env.useCustomCache){if(!m.env.customCache)throw Error("`env.useCustomCache=true`, but `env.customCache` is not defined.");if(!m.env.customCache.match||!m.env.customCache.put)throw new Error("`env.customCache` must be an object which implements the `match` and `put` functions of the Web Cache API. For more information, see https://developer.mozilla.org/en-US/docs/Web/API/Cache");D=m.env.customCache}const R=(se=F.revision)!=null?se:"main";let Q=b(T,M),ie=b(m.env.localModelPath,Q),pe=b(m.env.remoteHost,m.env.remotePathTemplate.replaceAll("{model}",T).replaceAll("{revision}",encodeURIComponent(R)),M),ke=R==="main"?Q:b(T,R,M),Te,Re=D instanceof o?ke:pe,ze=!1,Ze;D&&(Ze=await _(D,ie,Re));const Ie=Ze!==void 0;if(Ze===void 0){if(m.env.allowLocalModels)if(c(Q,["http:","https:"])){if(F.local_files_only)throw new Error(`\`local_files_only=true\`, but attempted to load a remote file from: ${Q}.`);if(!m.env.allowRemoteModels)throw new Error(`\`env.allowRemoteModels=false\`, but attempted to load a remote file from: ${Q}.`)}else try{Ze=await p(ie),Te=ie}catch(de){console.warn(`Unable to load from local path "${ie}": "${de}"`)}if(Ze===void 0||Ze.status===404){if(F.local_files_only||!m.env.allowRemoteModels){if(O)throw Error(`\`local_files_only=true\` or \`env.allowRemoteModels=false\` and file was not found locally at "${ie}".`);return null}if(Ze=await p(pe),Ze.status!==200)return u(Ze.status,pe,O);Te=Re}ze=D&&typeof Response<"u"&&Ze instanceof Response&&Ze.status===200}(0,S.dispatchCallback)(F.progress_callback,{status:"download",name:T,file:M});const ee={status:"progress",name:T,file:M};let W;return F.progress_callback?Ie&&typeof navigator<"u"&&/firefox/i.test(navigator.userAgent)?(W=new Uint8Array(await Ze.arrayBuffer()),(0,S.dispatchCallback)(F.progress_callback,{...ee,progress:100,loaded:W.length,total:W.length})):W=await v(Ze,fe=>{(0,S.dispatchCallback)(F.progress_callback,{...ee,...fe})}):W=new Uint8Array(await Ze.arrayBuffer()),ze&&Te&&await D.match(Te)===void 0&&await D.put(Te,new Response(W,{headers:Ze.headers})).catch(fe=>{console.warn(`Unable to add response to browser cache: ${fe}.`)}),(0,S.dispatchCallback)(F.progress_callback,{status:"done",name:T,file:M}),W}async function h(T,M,O=!0,F={}){let D=await y(T,M,O,F);if(D===null)return{};let Q=new TextDecoder("utf-8").decode(D);return JSON.parse(Q)}async function v(T,M){const O=T.headers.get("Content-Length");O===null&&console.warn("Unable to determine content-length from response headers. Will expand buffer when needed.");let F=parseInt(O!=null?O:"0"),D=new Uint8Array(F),R=0;const Q=T.body.getReader();async function ie(){const{done:pe,value:ke}=await Q.read();if(pe)return;let Te=R+ke.length;if(Te>F){F=Te;let ze=new Uint8Array(F);ze.set(D),D=ze}D.set(ke,R),R=Te;const Re=R/F*100;return M({progress:Re,loaded:R,total:F}),ie()}return await ie(),D}function b(...T){return T=T.map((M,O)=>(O&&(M=M.replace(new RegExp("^/"),"")),O!==T.length-1&&(M=M.replace(new RegExp("/$"),"")),M)),T.join("/")}},"./src/utils/image.js":(t,e,n)=>{n.r(e),n.d(e,{RawImage:()=>_});var r=n("./src/utils/hub.js"),l=n("./src/env.js"),m=n("./src/utils/tensor.js"),S=n("?2b25");const g=typeof self<"u",s=g&&self.constructor.name==="DedicatedWorkerGlobalScope";let c,p,a;if(g)c=(y,h)=>{if(!self.OffscreenCanvas)throw new Error("OffscreenCanvas not supported by this browser.");return new self.OffscreenCanvas(y,h)},a=self.createImageBitmap,p=self.ImageData;else if(S)a=async y=>{const v=(await y.metadata()).channels,{data:b,info:T}=await y.rotate().raw().toBuffer({resolveWithObject:!0}),M=new _(new Uint8ClampedArray(b),T.width,T.height,T.channels);return v!==void 0&&v!==T.channels&&M.convert(v),M};else throw new Error("Unable to load image processing library.");const u={0:"nearest",1:"lanczos",2:"bilinear",3:"bicubic",4:"box",5:"hamming"},o=new Map([["png","image/png"],["jpg","image/jpeg"],["jpeg","image/jpeg"],["gif","image/gif"]]);class _{constructor(h,v,b,T){this.data=h,this.width=v,this.height=b,this.channels=T}get size(){return[this.width,this.height]}static async read(h){if(h instanceof _)return h;if(typeof h=="string"||h instanceof URL)return await this.fromURL(h);throw new Error(`Unsupported input type: ${typeof h}`)}static fromCanvas(h){if(!g)throw new Error("fromCanvas() is only supported in browser environments.");const b=h.getContext("2d").getImageData(0,0,h.width,h.height).data;return new _(b,h.width,h.height,4)}static async fromURL(h){const v=await(0,r.getFile)(h);if(v.status!==200)throw new Error(`Unable to read image from "${h}" (${v.status} ${v.statusText})`);const b=await v.blob();return this.fromBlob(b)}static async fromBlob(h){if(g){const v=await a(h),b=c(v.width,v.height).getContext("2d");return b.drawImage(v,0,0),new this(b.getImageData(0,0,v.width,v.height).data,v.width,v.height,4)}else{const v=S(await h.arrayBuffer());return await a(v)}}static fromTensor(h,v="CHW"){if(h.dims.length!==3)throw new Error(`Tensor should have 3 dimensions, but has ${h.dims.length} dimensions.`);if(v==="CHW")h=h.transpose(1,2,0);else if(v!=="HWC")throw new Error(`Unsupported channel format: ${v}`);if(!(h.data instanceof Uint8ClampedArray||h.data instanceof Uint8Array))throw new Error(`Unsupported tensor type: ${h.type}`);switch(h.dims[2]){case 1:case 2:case 3:case 4:return new _(h.data,h.dims[1],h.dims[0],h.dims[2]);default:throw new Error(`Unsupported number of channels: ${h.dims[2]}`)}}grayscale(){if(this.channels===1)return this;const h=new Uint8ClampedArray(this.width*this.height*1);switch(this.channels){case 3:case 4:for(let v=0,b=0;v=0?D=b:Q=-b,T>=0?R=T:ie=-T,F.drawImage(O,D,R,h,v,Q,ie,h,v),new _(F.getImageData(0,0,h,v).data,h,v,4).convert(M)}else{let M=this.toSharp();if(b>=0&&T>=0)M=M.extract({left:Math.floor(b),top:Math.floor(T),width:h,height:v});else if(b<=0&&T<=0){const O=Math.floor(-T),F=Math.floor(-b);M=M.extend({top:O,left:F,right:h-this.width-F,bottom:v-this.height-O})}else{let O=[0,0],F=0;T<0?(O[0]=Math.floor(-T),O[1]=v-this.height-O[0]):F=Math.floor(T);let D=[0,0],R=0;b<0?(D[0]=Math.floor(-b),D[1]=h-this.width-D[0]):R=Math.floor(b),M=M.extend({top:O[0],bottom:O[1],left:D[0],right:D[1]}).extract({left:R,top:F,width:h,height:v})}return await a(M)}}async toBlob(h="image/png",v=1){if(!g)throw new Error("toBlob() is only supported in browser environments.");return await this.toCanvas().convertToBlob({type:h,quality:v})}toTensor(h="CHW"){let v=new m.Tensor("uint8",new Uint8Array(this.data),[this.height,this.width,this.channels]);if(h!=="HWC")if(h==="CHW")v=v.permute(2,0,1);else throw new Error(`Unsupported channel format: ${h}`);return v}toCanvas(){if(!g)throw new Error("toCanvas() is only supported in browser environments.");const h=this.clone().rgba(),v=c(h.width,h.height),b=new p(h.data,h.width,h.height);return v.getContext("2d").putImageData(b,0,0),v}_update(h,v,b,T=null){return this.data=h,this.width=v,this.height=b,T!==null&&(this.channels=T),this}clone(){return new _(this.data.slice(),this.width,this.height,this.channels)}convert(h){if(this.channels===h)return this;switch(h){case 1:this.grayscale();break;case 3:this.rgb();break;case 4:this.rgba();break;default:throw new Error(`Conversion failed due to unsupported number of channels: ${this.channels}`)}return this}async save(h){var v;if(g){if(s)throw new Error("Unable to save an image from a Web Worker.");const b=h.split(".").pop().toLowerCase(),T=(v=o.get(b))!=null?v:"image/png",M=await this.toBlob(T),O=URL.createObjectURL(M),F=document.createElement("a");F.href=O,F.download=h,F.click(),F.remove()}else{if(l.env.useFS)return await this.toSharp().toFile(h);throw new Error("Unable to save the image because filesystem is disabled in this environment.")}}toSharp(){if(g)throw new Error("toSharp() is only supported in server-side environments.");return S(this.data,{raw:{width:this.width,height:this.height,channels:this.channels}})}}},"./src/utils/maths.js":(t,e,n)=>{n.r(e),n.d(e,{FFT:()=>y,bankers_round:()=>b,cos_sim:()=>s,dot:()=>g,dynamic_time_warping:()=>T,interpolate_data:()=>r,log_softmax:()=>S,magnitude:()=>c,max:()=>a,medianFilter:()=>h,min:()=>p,permute_data:()=>l,round:()=>v,softmax:()=>m});function r(M,[O,F,D],[R,Q],ie="bilinear",pe=!1){const ke=Q/D,Te=R/F,Re=new M.constructor(R*Q*O),ze=F*D,Ze=R*Q;for(let Ie=0;Ie=0;--pe)R[pe]=ke,D[pe]=O[F[pe]],ke*=D[pe];const Q=F.map((pe,ke)=>R[F.indexOf(ke)]),ie=new M.constructor(M.length);for(let pe=0;pe=0;--Te)ke+=Re%O[Te]*Q[Te],Re=Math.floor(Re/O[Te]);ie[ke]=M[pe]}return[ie,D]}function m(M){const O=a(M)[0],F=M.map(Q=>Math.exp(Q-O)),D=F.reduce((Q,ie)=>Q+ie,0);return F.map(Q=>Q/D)}function S(M){const O=a(M)[0];let F=0;for(let Q=0;QQ-O-D)}function g(M,O){let F=0;for(let D=0;DO+F*F,0))}function p(M){if(M.length===0)throw Error("Array must not be empty");let O=M[0],F=0;for(let D=1;DO&&(O=M[D],F=D);return[Number(O),F]}function u(M){return M>0&&(M&M-1)===0}class o{constructor(O){if(this.size=O|0,this.size<=1||!u(this.size))throw new Error("FFT size must be a power of two larger than 1");this._csize=O<<1,this.table=new Float64Array(this.size*2);for(let D=0;DD;D<<=1)++F;this._width=F%2===0?F-1:F,this._bitrev=new Int32Array(1<>>R&3)<>>1);for(let R=0;R>>1]=O[R];return D}toComplexArray(O,F){const D=F||this.createComplexArray();for(let R=0;R>>1],D[R+1]=0;return D}transform(O,F){if(O===F)throw new Error("Input and output buffers must be different");this._transform4(O,F,1)}realTransform(O,F){if(O===F)throw new Error("Input and output buffers must be different");this._realTransform4(O,F,1)}inverseTransform(O,F){if(O===F)throw new Error("Input and output buffers must be different");this._transform4(O,F,-1);for(let D=0;D>=2;ie>=2;ie>>=2){pe=R/ie<<1;const Ze=pe>>>2;for(ke=0;ke>>1,ie>>>1)}else for(ke=0,Te=0;ke>>1,ie>>>1,D)}const ze=this.table;for(ie>>=2;ie>=2;ie>>=2){pe=R/ie<<1;const Ie=pe>>>1,ee=Ie>>>1,W=ee>>>1;for(ke=0;ke>>1;for(let Ie=2;Ie>1;++Re){const ze=(Re+1-O)**2/2,Ze=Math.sqrt(ke**2+Te**2)**ze,Ie=ze*Math.atan2(Te,ke),ee=2*Re;Q[ee]=Ze*Math.cos(Ie),Q[ee+1]=Ze*Math.sin(Ie),ie[ee]=Q[ee],ie[ee+1]=-Q[ee+1]}this._slicedChirpBuffer=Q.subarray(F,D),this._f=new o(R>>1),this._f.transform(this._chirpBuffer,ie)}_transform(O,F,D){const R=this._buffer1,Q=this._buffer2,ie=this._outBuffer1,pe=this._outBuffer2,ke=this._chirpBuffer,Te=this._slicedChirpBuffer,Re=this._a;if(D)for(let ze=0;ze>1,ee=F[Ie];R[ze]=ee*Te[ze],R[Ze]=ee*Te[Ze]}else for(let ze=0;ze=M.length&&(ke=2*(M.length-1)-ke),D[ie++]=M[ke]}D.sort(),F[Q]=D[R]}return F}function v(M,O){const F=Math.pow(10,O);return Math.round(M*F)/F}function b(M){const O=Math.round(M);return Math.abs(M)%1===.5?O%2===0?O:O-1:O}function T(M){const O=M.length,F=M[0].length,D=[O+1,F+1],R=Array.from({length:D[0]},()=>Array(D[1]).fill(1/0));R[0][0]=0;const Q=Array.from({length:D[0]},()=>Array(D[1]).fill(-1));for(let Re=1;Re0||pe>0;)switch(ke.push(ie-1),Te.push(pe-1),Q[ie][pe]){case 0:--ie,--pe;break;case 1:--ie;break;case 2:--pe;break;default:throw new Error(`Internal error in dynamic time warping. Unexpected trace[${ie}, ${pe}]. Please file a bug report.`)}return ke.reverse(),Te.reverse(),[ke,Te]}},"./src/utils/tensor.js":(t,e,n)=>{n.r(e),n.d(e,{Tensor:()=>g,cat:()=>M,full:()=>ie,full_like:()=>pe,interpolate:()=>p,interpolate_4d:()=>a,layer_norm:()=>h,matmul:()=>u,mean:()=>D,mean_pooling:()=>y,ones:()=>ke,ones_like:()=>Te,permute:()=>c,quantize_embeddings:()=>Ze,rfft:()=>o,stack:()=>O,std_mean:()=>F,topk:()=>_,zeros:()=>Re,zeros_like:()=>ze});var r=n("./src/utils/maths.js"),l=n("./src/backends/onnx.js"),m=n("./src/ops/registry.js");const S=Object.freeze({float32:Float32Array,float16:Uint16Array,float64:Float64Array,string:Array,int8:Int8Array,uint8:Uint8Array,int16:Int16Array,uint16:Uint16Array,int32:Int32Array,uint32:Uint32Array,int64:BigInt64Array,uint64:BigUint64Array,bool:Uint8Array});class g{constructor(...ee){ut(this,"ort_tensor");return(0,l.isONNXTensor)(ee[0])?this.ort_tensor=ee[0]:this.ort_tensor=new l.Tensor(ee[0],ee[1],ee[2]),new Proxy(this,{get:(W,K)=>{if(typeof K=="string"){let se=Number(K);if(Number.isInteger(se))return W._getitem(se)}return W[K]},set:(W,K,se)=>W[K]=se})}get dims(){return this.ort_tensor.dims}set dims(ee){this.ort_tensor.dims=ee}get type(){return this.ort_tensor.type}get data(){return this.ort_tensor.data}get size(){return this.ort_tensor.size}get location(){return this.ort_tensor.location}dispose(){this.ort_tensor.dispose()}*[Symbol.iterator](){const[ee,...W]=this.dims;if(W.length>0){const K=W.reduce((se,fe)=>se*fe);for(let se=0;se0){const se=K.reduce((fe,de)=>fe*de);return this._subarray(ee,se,K)}else return new g(this.type,[this.data[ee]],K)}indexOf(ee){const W=this.data;for(let K=0;KAe)throw new Error(`Invalid slice: ${Oe}`);const he=[Math.max(Ue,0),Math.min(Ae,this.dims[ge])];K.push(he),W.push(he[1]-he[0])}else throw new Error(`Invalid slice: ${Oe}`)}const se=K.map(([ge,Oe])=>Oe-ge),fe=se.reduce((ge,Oe)=>ge*Oe),de=this.data,ue=new de.constructor(fe),te=this.stride();for(let ge=0;ge=0;--Ue){const he=se[Ue];Oe+=(Ae%he+K[Ue][0])*te[Ue],Ae=Math.floor(Ae/he)}ue[ge]=de[Oe]}return new g(this.type,ue,W)}permute(...ee){return c(this,ee)}transpose(...ee){return this.permute(...ee)}sum(ee=null,W=!1){return this.norm(1,ee,W)}norm(ee="fro",W=null,K=!1){if(ee==="fro")ee=2;else if(typeof ee=="string")throw Error(`Unsupported norm: ${ee}`);const se=this.data;if(W===null){let ue=se.reduce((te,ge)=>te+ge**ee,0)**(1/ee);return new g(this.type,[ue],[])}W=T(W,this.dims.length);const fe=this.dims.slice();fe[W]=1;const de=new se.constructor(se.length/this.dims[W]);for(let ue=0;ue=0;--ge){const Ae=this.dims[ge];if(ge!==W){const he=Oe%Ae;te+=he*Ue,Ue*=fe[ge]}Oe=Math.floor(Oe/Ae)}de[te]+=se[ue]**ee}if(ee!==1)for(let ue=0;ue=0;--te){const Ue=this.dims[te];if(te!==W){const Ae=ge%Ue;ue+=Ae*Oe,Oe*=this.dims[te]}ge=Math.floor(ge/Ue)}se[de]/=fe[ue]}return this}normalize(ee=2,W=1){return this.clone().normalize_(ee,W)}stride(){return R(this.dims)}squeeze(ee=null){return new g(this.type,this.data,v(this.dims,ee))}squeeze_(ee=null){return this.dims=v(this.dims,ee),this}unsqueeze(ee=null){return new g(this.type,this.data,b(this.dims,ee))}unsqueeze_(ee=null){return this.dims=b(this.dims,ee),this}flatten_(ee=0,W=-1){W=(W+this.dims.length)%this.dims.length;let K=this.dims.slice(0,ee),se=this.dims.slice(ee,W+1),fe=this.dims.slice(W+1);return this.dims=[...K,se.reduce((de,ue)=>de*ue,1),...fe],this}flatten(ee=0,W=-1){return this.clone().flatten_(ee,W)}view(...ee){let W=-1;for(let se=0;seue!==W?fe*de:fe,1);ee[W]=K.length/se}return new g(this.type,K,ee)}neg_(){const ee=this.data;for(let W=0;Wfe*de);if(W!==K)throw Error(`cannot reshape array of size ${W} into shape (${ee})`);let se=Ie;for(let fe=ee.length-1;fe>=0;fe--)se=se.reduce((de,ue)=>{let te=de[de.length-1];return te.lengthW!==1):typeof ee=="number"?Ie[ee]===1&&Ie.splice(ee,1):Array.isArray(ee)&&(Ie=Ie.filter((W,K)=>W!==1||!ee.includes(K))),Ie}function b(Ie,ee){return ee=T(ee,Ie.length+1),Ie=Ie.slice(),Ie.splice(ee,0,1),Ie}function T(Ie,ee,W=null,K=!0){if(K&&(Ie<-ee||Ie>=ee))throw new Error(`IndexError: index ${Ie} is out of bounds for dimension${W===null?"":" "+W} with size ${ee}`);return Ie<0&&(Ie=(Ie%ee+ee)%ee),Ie}function M(Ie,ee=0){ee=T(ee,Ie[0].dims.length);const W=Ie[0].dims.slice();W[ee]=Ie.reduce((de,ue)=>de+ue.dims[ee],0);const K=W.reduce((de,ue)=>de*ue,1),se=new Ie[0].data.constructor(K),fe=Ie[0].type;if(ee===0){let de=0;for(const ue of Ie){const te=ue.data;se.set(te,de),de+=te.length}}else{let de=0;for(let ue=0;ue=0;--Ae){const He=ge[Ae];let $e=he%He;Ae===ee&&($e+=de),Ue+=$e*Fe,Fe*=W[Ae],he=Math.floor(he/He)}se[Ue]=te[Oe]}de+=ge[ee]}}return new g(fe,se,W)}function O(Ie,ee=0){return M(Ie.map(W=>W.unsqueeze(ee)),ee)}function F(Ie,ee=null,W=1,K=!1){const se=Ie.data,fe=Ie.dims;if(ee===null){const Ae=se.reduce(($e,xe)=>$e+xe,0)/se.length,he=Math.sqrt(se.reduce(($e,xe)=>$e+(xe-Ae)**2,0)/(se.length-W)),Fe=new g(Ie.type,[Ae],[]);return[new g(Ie.type,[he],[]),Fe]}ee=T(ee,fe.length);const de=D(Ie,ee,K),ue=de.data,te=fe.slice();te[ee]=1;const ge=new se.constructor(se.length/fe[ee]);for(let Ue=0;Ue=0;--he){const $e=fe[he];if(he!==ee){const xe=Fe%$e;Ae+=xe*He,He*=te[he]}Fe=Math.floor(Fe/$e)}ge[Ae]+=(se[Ue]-ue[Ae])**2}for(let Ue=0;Uete+ge,0);return new g(Ie.type,[ue/K.length],[])}const se=Ie.dims;ee=T(ee,se.length);const fe=se.slice();fe[ee]=1;const de=new K.constructor(K.length/se[ee]);for(let ue=0;ue=0;--ge){const Ae=se[ge];if(ge!==ee){const he=Oe%Ae;te+=he*Ue,Ue*=fe[ge]}Oe=Math.floor(Oe/Ae)}de[te]+=K[ue]}if(se[ee]!==1)for(let ue=0;ue=0;--W)ee[W]=K,K*=Ie[W];return ee}function Q(Ie,ee,W,K){const se=Ie.reduce((fe,de)=>fe*de,1);return new g(W,new K(se).fill(ee),Ie)}function ie(Ie,ee){let W,K;if(typeof ee=="number")W="float32",K=Float32Array;else if(typeof ee=="bigint")W="int64",K=BigInt64Array;else throw new Error(`Unsupported data type: ${typeof ee}`);return Q(Ie,ee,W,K)}function pe(Ie,ee){return ie(Ie.dims,ee)}function ke(Ie){return Q(Ie,1n,"int64",BigInt64Array)}function Te(Ie){return ke(Ie.dims)}function Re(Ie){return Q(Ie,0n,"int64",BigInt64Array)}function ze(Ie){return Re(Ie.dims)}function Ze(Ie,ee){if(Ie.dims.length!==2)throw new Error("The tensor must have 2 dimensions");if(Ie.dims.at(-1)%8!==0)throw new Error("The last dimension of the tensor must be a multiple of 8");if(!["binary","ubinary"].includes(ee))throw new Error("The precision must be either 'binary' or 'ubinary'");const W=ee==="binary",K=W?"int8":"uint8",se=W?Int8Array:Uint8Array,fe=Ie.data,de=new se(fe.length/8);for(let ue=0;ue0?1:0,ge=Math.floor(ue/8),Oe=ue%8;de[ge]|=te<<7-Oe,W&&Oe===0&&(de[ge]-=128)}return new g(K,de,[Ie.dims[0],Ie.dims[1]/8])}}},LT={};function Xr(t){var e=LT[t];if(e!==void 0)return e.exports;var n=LT[t]={exports:{}};return sE[t](n,n.exports,Xr),n.exports}Xr.m=sE;(()=>{var t=Object.getPrototypeOf?n=>Object.getPrototypeOf(n):n=>n.__proto__,e;Xr.t=function(n,r){if(r&1&&(n=this(n)),r&8||typeof n=="object"&&n&&(r&4&&n.__esModule||r&16&&typeof n.then=="function"))return n;var l=Object.create(null);Xr.r(l);var m={};e=e||[null,t({}),t([]),t(t)];for(var S=r&2&&n;typeof S=="object"&&!~e.indexOf(S);S=t(S))Object.getOwnPropertyNames(S).forEach(g=>m[g]=()=>n[g]);return m.default=()=>n,Xr.d(l,m),l}})();Xr.d=(t,e)=>{for(var n in e)Xr.o(e,n)&&!Xr.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})};Xr.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);Xr.r=t=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};(()=>{var t;if(typeof import.meta.url=="string"&&(t=import.meta.url),!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),Xr.p=t})();Xr.b=new URL("./",self.location);var N={};/*!*****************************!*\ + !*** ./src/transformers.js ***! + \*****************************/Xr.r(N);Xr.d(N,{ASTFeatureExtractor:()=>In.ASTFeatureExtractor,ASTForAudioClassification:()=>Z.ASTForAudioClassification,ASTModel:()=>Z.ASTModel,ASTPreTrainedModel:()=>Z.ASTPreTrainedModel,AlbertForMaskedLM:()=>Z.AlbertForMaskedLM,AlbertForQuestionAnswering:()=>Z.AlbertForQuestionAnswering,AlbertForSequenceClassification:()=>Z.AlbertForSequenceClassification,AlbertModel:()=>Z.AlbertModel,AlbertPreTrainedModel:()=>Z.AlbertPreTrainedModel,AlbertTokenizer:()=>Vn.AlbertTokenizer,AudioClassificationPipeline:()=>Gr.AudioClassificationPipeline,AutoConfig:()=>k1.AutoConfig,AutoModel:()=>Z.AutoModel,AutoModelForAudioClassification:()=>Z.AutoModelForAudioClassification,AutoModelForAudioFrameClassification:()=>Z.AutoModelForAudioFrameClassification,AutoModelForCTC:()=>Z.AutoModelForCTC,AutoModelForCausalLM:()=>Z.AutoModelForCausalLM,AutoModelForDepthEstimation:()=>Z.AutoModelForDepthEstimation,AutoModelForDocumentQuestionAnswering:()=>Z.AutoModelForDocumentQuestionAnswering,AutoModelForImageClassification:()=>Z.AutoModelForImageClassification,AutoModelForImageFeatureExtraction:()=>Z.AutoModelForImageFeatureExtraction,AutoModelForImageMatting:()=>Z.AutoModelForImageMatting,AutoModelForImageSegmentation:()=>Z.AutoModelForImageSegmentation,AutoModelForImageToImage:()=>Z.AutoModelForImageToImage,AutoModelForMaskGeneration:()=>Z.AutoModelForMaskGeneration,AutoModelForMaskedLM:()=>Z.AutoModelForMaskedLM,AutoModelForNormalEstimation:()=>Z.AutoModelForNormalEstimation,AutoModelForObjectDetection:()=>Z.AutoModelForObjectDetection,AutoModelForQuestionAnswering:()=>Z.AutoModelForQuestionAnswering,AutoModelForSemanticSegmentation:()=>Z.AutoModelForSemanticSegmentation,AutoModelForSeq2SeqLM:()=>Z.AutoModelForSeq2SeqLM,AutoModelForSequenceClassification:()=>Z.AutoModelForSequenceClassification,AutoModelForSpeechSeq2Seq:()=>Z.AutoModelForSpeechSeq2Seq,AutoModelForTextToSpectrogram:()=>Z.AutoModelForTextToSpectrogram,AutoModelForTextToWaveform:()=>Z.AutoModelForTextToWaveform,AutoModelForTokenClassification:()=>Z.AutoModelForTokenClassification,AutoModelForUniversalSegmentation:()=>Z.AutoModelForUniversalSegmentation,AutoModelForVision2Seq:()=>Z.AutoModelForVision2Seq,AutoModelForXVector:()=>Z.AutoModelForXVector,AutoModelForZeroShotObjectDetection:()=>Z.AutoModelForZeroShotObjectDetection,AutoProcessor:()=>In.AutoProcessor,AutoTokenizer:()=>Vn.AutoTokenizer,AutomaticSpeechRecognitionPipeline:()=>Gr.AutomaticSpeechRecognitionPipeline,BartForConditionalGeneration:()=>Z.BartForConditionalGeneration,BartForSequenceClassification:()=>Z.BartForSequenceClassification,BartModel:()=>Z.BartModel,BartPretrainedModel:()=>Z.BartPretrainedModel,BartTokenizer:()=>Vn.BartTokenizer,BaseModelOutput:()=>Z.BaseModelOutput,BaseStreamer:()=>O1.BaseStreamer,BeitFeatureExtractor:()=>In.BeitFeatureExtractor,BeitForImageClassification:()=>Z.BeitForImageClassification,BeitModel:()=>Z.BeitModel,BeitPreTrainedModel:()=>Z.BeitPreTrainedModel,BertForMaskedLM:()=>Z.BertForMaskedLM,BertForQuestionAnswering:()=>Z.BertForQuestionAnswering,BertForSequenceClassification:()=>Z.BertForSequenceClassification,BertForTokenClassification:()=>Z.BertForTokenClassification,BertModel:()=>Z.BertModel,BertPreTrainedModel:()=>Z.BertPreTrainedModel,BertTokenizer:()=>Vn.BertTokenizer,BitImageProcessor:()=>In.BitImageProcessor,BlenderbotForConditionalGeneration:()=>Z.BlenderbotForConditionalGeneration,BlenderbotModel:()=>Z.BlenderbotModel,BlenderbotPreTrainedModel:()=>Z.BlenderbotPreTrainedModel,BlenderbotSmallForConditionalGeneration:()=>Z.BlenderbotSmallForConditionalGeneration,BlenderbotSmallModel:()=>Z.BlenderbotSmallModel,BlenderbotSmallPreTrainedModel:()=>Z.BlenderbotSmallPreTrainedModel,BlenderbotSmallTokenizer:()=>Vn.BlenderbotSmallTokenizer,BlenderbotTokenizer:()=>Vn.BlenderbotTokenizer,BloomForCausalLM:()=>Z.BloomForCausalLM,BloomModel:()=>Z.BloomModel,BloomPreTrainedModel:()=>Z.BloomPreTrainedModel,BloomTokenizer:()=>Vn.BloomTokenizer,CLIPFeatureExtractor:()=>In.CLIPFeatureExtractor,CLIPImageProcessor:()=>In.CLIPImageProcessor,CLIPModel:()=>Z.CLIPModel,CLIPPreTrainedModel:()=>Z.CLIPPreTrainedModel,CLIPSegForImageSegmentation:()=>Z.CLIPSegForImageSegmentation,CLIPSegModel:()=>Z.CLIPSegModel,CLIPSegPreTrainedModel:()=>Z.CLIPSegPreTrainedModel,CLIPTextModel:()=>Z.CLIPTextModel,CLIPTextModelWithProjection:()=>Z.CLIPTextModelWithProjection,CLIPTokenizer:()=>Vn.CLIPTokenizer,CLIPVisionModel:()=>Z.CLIPVisionModel,CLIPVisionModelWithProjection:()=>Z.CLIPVisionModelWithProjection,CamembertForMaskedLM:()=>Z.CamembertForMaskedLM,CamembertForQuestionAnswering:()=>Z.CamembertForQuestionAnswering,CamembertForSequenceClassification:()=>Z.CamembertForSequenceClassification,CamembertForTokenClassification:()=>Z.CamembertForTokenClassification,CamembertModel:()=>Z.CamembertModel,CamembertPreTrainedModel:()=>Z.CamembertPreTrainedModel,CamembertTokenizer:()=>Vn.CamembertTokenizer,CausalLMOutput:()=>Z.CausalLMOutput,CausalLMOutputWithPast:()=>Z.CausalLMOutputWithPast,ChineseCLIPFeatureExtractor:()=>In.ChineseCLIPFeatureExtractor,ChineseCLIPModel:()=>Z.ChineseCLIPModel,ChineseCLIPPreTrainedModel:()=>Z.ChineseCLIPPreTrainedModel,ClapAudioModelWithProjection:()=>Z.ClapAudioModelWithProjection,ClapFeatureExtractor:()=>In.ClapFeatureExtractor,ClapModel:()=>Z.ClapModel,ClapPreTrainedModel:()=>Z.ClapPreTrainedModel,ClapTextModelWithProjection:()=>Z.ClapTextModelWithProjection,CodeGenForCausalLM:()=>Z.CodeGenForCausalLM,CodeGenModel:()=>Z.CodeGenModel,CodeGenPreTrainedModel:()=>Z.CodeGenPreTrainedModel,CodeGenTokenizer:()=>Vn.CodeGenTokenizer,CodeLlamaTokenizer:()=>Vn.CodeLlamaTokenizer,CohereForCausalLM:()=>Z.CohereForCausalLM,CohereModel:()=>Z.CohereModel,CoherePreTrainedModel:()=>Z.CoherePreTrainedModel,CohereTokenizer:()=>Vn.CohereTokenizer,ConvBertForMaskedLM:()=>Z.ConvBertForMaskedLM,ConvBertForQuestionAnswering:()=>Z.ConvBertForQuestionAnswering,ConvBertForSequenceClassification:()=>Z.ConvBertForSequenceClassification,ConvBertForTokenClassification:()=>Z.ConvBertForTokenClassification,ConvBertModel:()=>Z.ConvBertModel,ConvBertPreTrainedModel:()=>Z.ConvBertPreTrainedModel,ConvBertTokenizer:()=>Vn.ConvBertTokenizer,ConvNextFeatureExtractor:()=>In.ConvNextFeatureExtractor,ConvNextForImageClassification:()=>Z.ConvNextForImageClassification,ConvNextImageProcessor:()=>In.ConvNextImageProcessor,ConvNextModel:()=>Z.ConvNextModel,ConvNextPreTrainedModel:()=>Z.ConvNextPreTrainedModel,ConvNextV2ForImageClassification:()=>Z.ConvNextV2ForImageClassification,ConvNextV2Model:()=>Z.ConvNextV2Model,ConvNextV2PreTrainedModel:()=>Z.ConvNextV2PreTrainedModel,DPTFeatureExtractor:()=>In.DPTFeatureExtractor,DPTForDepthEstimation:()=>Z.DPTForDepthEstimation,DPTImageProcessor:()=>In.DPTImageProcessor,DPTModel:()=>Z.DPTModel,DPTPreTrainedModel:()=>Z.DPTPreTrainedModel,DebertaForMaskedLM:()=>Z.DebertaForMaskedLM,DebertaForQuestionAnswering:()=>Z.DebertaForQuestionAnswering,DebertaForSequenceClassification:()=>Z.DebertaForSequenceClassification,DebertaForTokenClassification:()=>Z.DebertaForTokenClassification,DebertaModel:()=>Z.DebertaModel,DebertaPreTrainedModel:()=>Z.DebertaPreTrainedModel,DebertaTokenizer:()=>Vn.DebertaTokenizer,DebertaV2ForMaskedLM:()=>Z.DebertaV2ForMaskedLM,DebertaV2ForQuestionAnswering:()=>Z.DebertaV2ForQuestionAnswering,DebertaV2ForSequenceClassification:()=>Z.DebertaV2ForSequenceClassification,DebertaV2ForTokenClassification:()=>Z.DebertaV2ForTokenClassification,DebertaV2Model:()=>Z.DebertaV2Model,DebertaV2PreTrainedModel:()=>Z.DebertaV2PreTrainedModel,DebertaV2Tokenizer:()=>Vn.DebertaV2Tokenizer,DecisionTransformerModel:()=>Z.DecisionTransformerModel,DecisionTransformerPreTrainedModel:()=>Z.DecisionTransformerPreTrainedModel,DeiTFeatureExtractor:()=>In.DeiTFeatureExtractor,DeiTForImageClassification:()=>Z.DeiTForImageClassification,DeiTModel:()=>Z.DeiTModel,DeiTPreTrainedModel:()=>Z.DeiTPreTrainedModel,DepthAnythingForDepthEstimation:()=>Z.DepthAnythingForDepthEstimation,DepthAnythingPreTrainedModel:()=>Z.DepthAnythingPreTrainedModel,DepthEstimationPipeline:()=>Gr.DepthEstimationPipeline,DepthProForDepthEstimation:()=>Z.DepthProForDepthEstimation,DepthProPreTrainedModel:()=>Z.DepthProPreTrainedModel,DetrFeatureExtractor:()=>In.DetrFeatureExtractor,DetrForObjectDetection:()=>Z.DetrForObjectDetection,DetrForSegmentation:()=>Z.DetrForSegmentation,DetrModel:()=>Z.DetrModel,DetrObjectDetectionOutput:()=>Z.DetrObjectDetectionOutput,DetrPreTrainedModel:()=>Z.DetrPreTrainedModel,DetrSegmentationOutput:()=>Z.DetrSegmentationOutput,Dinov2ForImageClassification:()=>Z.Dinov2ForImageClassification,Dinov2Model:()=>Z.Dinov2Model,Dinov2PreTrainedModel:()=>Z.Dinov2PreTrainedModel,DistilBertForMaskedLM:()=>Z.DistilBertForMaskedLM,DistilBertForQuestionAnswering:()=>Z.DistilBertForQuestionAnswering,DistilBertForSequenceClassification:()=>Z.DistilBertForSequenceClassification,DistilBertForTokenClassification:()=>Z.DistilBertForTokenClassification,DistilBertModel:()=>Z.DistilBertModel,DistilBertPreTrainedModel:()=>Z.DistilBertPreTrainedModel,DistilBertTokenizer:()=>Vn.DistilBertTokenizer,DocumentQuestionAnsweringPipeline:()=>Gr.DocumentQuestionAnsweringPipeline,DonutFeatureExtractor:()=>In.DonutFeatureExtractor,DonutSwinModel:()=>Z.DonutSwinModel,DonutSwinPreTrainedModel:()=>Z.DonutSwinPreTrainedModel,EfficientNetForImageClassification:()=>Z.EfficientNetForImageClassification,EfficientNetImageProcessor:()=>In.EfficientNetImageProcessor,EfficientNetModel:()=>Z.EfficientNetModel,EfficientNetPreTrainedModel:()=>Z.EfficientNetPreTrainedModel,ElectraForMaskedLM:()=>Z.ElectraForMaskedLM,ElectraForQuestionAnswering:()=>Z.ElectraForQuestionAnswering,ElectraForSequenceClassification:()=>Z.ElectraForSequenceClassification,ElectraForTokenClassification:()=>Z.ElectraForTokenClassification,ElectraModel:()=>Z.ElectraModel,ElectraPreTrainedModel:()=>Z.ElectraPreTrainedModel,ElectraTokenizer:()=>Vn.ElectraTokenizer,EosTokenCriteria:()=>vg.EosTokenCriteria,EsmForMaskedLM:()=>Z.EsmForMaskedLM,EsmForSequenceClassification:()=>Z.EsmForSequenceClassification,EsmForTokenClassification:()=>Z.EsmForTokenClassification,EsmModel:()=>Z.EsmModel,EsmPreTrainedModel:()=>Z.EsmPreTrainedModel,EsmTokenizer:()=>Vn.EsmTokenizer,FFT:()=>ia.FFT,FalconForCausalLM:()=>Z.FalconForCausalLM,FalconModel:()=>Z.FalconModel,FalconPreTrainedModel:()=>Z.FalconPreTrainedModel,FalconTokenizer:()=>Vn.FalconTokenizer,FastViTForImageClassification:()=>Z.FastViTForImageClassification,FastViTModel:()=>Z.FastViTModel,FastViTPreTrainedModel:()=>Z.FastViTPreTrainedModel,FeatureExtractionPipeline:()=>Gr.FeatureExtractionPipeline,FeatureExtractor:()=>In.FeatureExtractor,FillMaskPipeline:()=>Gr.FillMaskPipeline,Florence2ForConditionalGeneration:()=>Z.Florence2ForConditionalGeneration,Florence2PreTrainedModel:()=>Z.Florence2PreTrainedModel,Florence2Processor:()=>In.Florence2Processor,GLPNFeatureExtractor:()=>In.GLPNFeatureExtractor,GLPNForDepthEstimation:()=>Z.GLPNForDepthEstimation,GLPNModel:()=>Z.GLPNModel,GLPNPreTrainedModel:()=>Z.GLPNPreTrainedModel,GPT2LMHeadModel:()=>Z.GPT2LMHeadModel,GPT2Model:()=>Z.GPT2Model,GPT2PreTrainedModel:()=>Z.GPT2PreTrainedModel,GPT2Tokenizer:()=>Vn.GPT2Tokenizer,GPTBigCodeForCausalLM:()=>Z.GPTBigCodeForCausalLM,GPTBigCodeModel:()=>Z.GPTBigCodeModel,GPTBigCodePreTrainedModel:()=>Z.GPTBigCodePreTrainedModel,GPTJForCausalLM:()=>Z.GPTJForCausalLM,GPTJModel:()=>Z.GPTJModel,GPTJPreTrainedModel:()=>Z.GPTJPreTrainedModel,GPTNeoForCausalLM:()=>Z.GPTNeoForCausalLM,GPTNeoModel:()=>Z.GPTNeoModel,GPTNeoPreTrainedModel:()=>Z.GPTNeoPreTrainedModel,GPTNeoXForCausalLM:()=>Z.GPTNeoXForCausalLM,GPTNeoXModel:()=>Z.GPTNeoXModel,GPTNeoXPreTrainedModel:()=>Z.GPTNeoXPreTrainedModel,GPTNeoXTokenizer:()=>Vn.GPTNeoXTokenizer,Gemma2ForCausalLM:()=>Z.Gemma2ForCausalLM,Gemma2Model:()=>Z.Gemma2Model,Gemma2PreTrainedModel:()=>Z.Gemma2PreTrainedModel,GemmaForCausalLM:()=>Z.GemmaForCausalLM,GemmaModel:()=>Z.GemmaModel,GemmaPreTrainedModel:()=>Z.GemmaPreTrainedModel,GemmaTokenizer:()=>Vn.GemmaTokenizer,GraniteForCausalLM:()=>Z.GraniteForCausalLM,GraniteModel:()=>Z.GraniteModel,GranitePreTrainedModel:()=>Z.GranitePreTrainedModel,Grok1Tokenizer:()=>Vn.Grok1Tokenizer,GroupViTModel:()=>Z.GroupViTModel,GroupViTPreTrainedModel:()=>Z.GroupViTPreTrainedModel,HerbertTokenizer:()=>Vn.HerbertTokenizer,HieraForImageClassification:()=>Z.HieraForImageClassification,HieraModel:()=>Z.HieraModel,HieraPreTrainedModel:()=>Z.HieraPreTrainedModel,HubertForCTC:()=>Z.HubertForCTC,HubertForSequenceClassification:()=>Z.HubertForSequenceClassification,HubertModel:()=>Z.HubertModel,HubertPreTrainedModel:()=>Z.HubertPreTrainedModel,ImageClassificationPipeline:()=>Gr.ImageClassificationPipeline,ImageFeatureExtractionPipeline:()=>Gr.ImageFeatureExtractionPipeline,ImageFeatureExtractor:()=>In.ImageFeatureExtractor,ImageMattingOutput:()=>Z.ImageMattingOutput,ImageSegmentationPipeline:()=>Gr.ImageSegmentationPipeline,ImageToImagePipeline:()=>Gr.ImageToImagePipeline,ImageToTextPipeline:()=>Gr.ImageToTextPipeline,InterruptableStoppingCriteria:()=>vg.InterruptableStoppingCriteria,JAISLMHeadModel:()=>Z.JAISLMHeadModel,JAISModel:()=>Z.JAISModel,JAISPreTrainedModel:()=>Z.JAISPreTrainedModel,LlamaForCausalLM:()=>Z.LlamaForCausalLM,LlamaModel:()=>Z.LlamaModel,LlamaPreTrainedModel:()=>Z.LlamaPreTrainedModel,LlamaTokenizer:()=>Vn.LlamaTokenizer,LlavaForConditionalGeneration:()=>Z.LlavaForConditionalGeneration,LlavaPreTrainedModel:()=>Z.LlavaPreTrainedModel,LongT5ForConditionalGeneration:()=>Z.LongT5ForConditionalGeneration,LongT5Model:()=>Z.LongT5Model,LongT5PreTrainedModel:()=>Z.LongT5PreTrainedModel,M2M100ForConditionalGeneration:()=>Z.M2M100ForConditionalGeneration,M2M100Model:()=>Z.M2M100Model,M2M100PreTrainedModel:()=>Z.M2M100PreTrainedModel,M2M100Tokenizer:()=>Vn.M2M100Tokenizer,MBart50Tokenizer:()=>Vn.MBart50Tokenizer,MBartForCausalLM:()=>Z.MBartForCausalLM,MBartForConditionalGeneration:()=>Z.MBartForConditionalGeneration,MBartForSequenceClassification:()=>Z.MBartForSequenceClassification,MBartModel:()=>Z.MBartModel,MBartPreTrainedModel:()=>Z.MBartPreTrainedModel,MBartTokenizer:()=>Vn.MBartTokenizer,MPNetForMaskedLM:()=>Z.MPNetForMaskedLM,MPNetForQuestionAnswering:()=>Z.MPNetForQuestionAnswering,MPNetForSequenceClassification:()=>Z.MPNetForSequenceClassification,MPNetForTokenClassification:()=>Z.MPNetForTokenClassification,MPNetModel:()=>Z.MPNetModel,MPNetPreTrainedModel:()=>Z.MPNetPreTrainedModel,MPNetTokenizer:()=>Vn.MPNetTokenizer,MT5ForConditionalGeneration:()=>Z.MT5ForConditionalGeneration,MT5Model:()=>Z.MT5Model,MT5PreTrainedModel:()=>Z.MT5PreTrainedModel,MarianMTModel:()=>Z.MarianMTModel,MarianModel:()=>Z.MarianModel,MarianPreTrainedModel:()=>Z.MarianPreTrainedModel,MarianTokenizer:()=>Vn.MarianTokenizer,MaskFormerFeatureExtractor:()=>In.MaskFormerFeatureExtractor,MaskFormerForInstanceSegmentation:()=>Z.MaskFormerForInstanceSegmentation,MaskFormerModel:()=>Z.MaskFormerModel,MaskFormerPreTrainedModel:()=>Z.MaskFormerPreTrainedModel,MaskedLMOutput:()=>Z.MaskedLMOutput,MaxLengthCriteria:()=>vg.MaxLengthCriteria,MistralForCausalLM:()=>Z.MistralForCausalLM,MistralModel:()=>Z.MistralModel,MistralPreTrainedModel:()=>Z.MistralPreTrainedModel,MobileBertForMaskedLM:()=>Z.MobileBertForMaskedLM,MobileBertForQuestionAnswering:()=>Z.MobileBertForQuestionAnswering,MobileBertForSequenceClassification:()=>Z.MobileBertForSequenceClassification,MobileBertModel:()=>Z.MobileBertModel,MobileBertPreTrainedModel:()=>Z.MobileBertPreTrainedModel,MobileBertTokenizer:()=>Vn.MobileBertTokenizer,MobileNetV1FeatureExtractor:()=>In.MobileNetV1FeatureExtractor,MobileNetV1ForImageClassification:()=>Z.MobileNetV1ForImageClassification,MobileNetV1Model:()=>Z.MobileNetV1Model,MobileNetV1PreTrainedModel:()=>Z.MobileNetV1PreTrainedModel,MobileNetV2FeatureExtractor:()=>In.MobileNetV2FeatureExtractor,MobileNetV2ForImageClassification:()=>Z.MobileNetV2ForImageClassification,MobileNetV2Model:()=>Z.MobileNetV2Model,MobileNetV2PreTrainedModel:()=>Z.MobileNetV2PreTrainedModel,MobileNetV3FeatureExtractor:()=>In.MobileNetV3FeatureExtractor,MobileNetV3ForImageClassification:()=>Z.MobileNetV3ForImageClassification,MobileNetV3Model:()=>Z.MobileNetV3Model,MobileNetV3PreTrainedModel:()=>Z.MobileNetV3PreTrainedModel,MobileNetV4FeatureExtractor:()=>In.MobileNetV4FeatureExtractor,MobileNetV4ForImageClassification:()=>Z.MobileNetV4ForImageClassification,MobileNetV4Model:()=>Z.MobileNetV4Model,MobileNetV4PreTrainedModel:()=>Z.MobileNetV4PreTrainedModel,MobileViTFeatureExtractor:()=>In.MobileViTFeatureExtractor,MobileViTForImageClassification:()=>Z.MobileViTForImageClassification,MobileViTImageProcessor:()=>In.MobileViTImageProcessor,MobileViTModel:()=>Z.MobileViTModel,MobileViTPreTrainedModel:()=>Z.MobileViTPreTrainedModel,MobileViTV2ForImageClassification:()=>Z.MobileViTV2ForImageClassification,MobileViTV2Model:()=>Z.MobileViTV2Model,MobileViTV2PreTrainedModel:()=>Z.MobileViTV2PreTrainedModel,ModelOutput:()=>Z.ModelOutput,Moondream1ForConditionalGeneration:()=>Z.Moondream1ForConditionalGeneration,MptForCausalLM:()=>Z.MptForCausalLM,MptModel:()=>Z.MptModel,MptPreTrainedModel:()=>Z.MptPreTrainedModel,MusicgenForCausalLM:()=>Z.MusicgenForCausalLM,MusicgenForConditionalGeneration:()=>Z.MusicgenForConditionalGeneration,MusicgenModel:()=>Z.MusicgenModel,MusicgenPreTrainedModel:()=>Z.MusicgenPreTrainedModel,NllbTokenizer:()=>Vn.NllbTokenizer,NomicBertModel:()=>Z.NomicBertModel,NomicBertPreTrainedModel:()=>Z.NomicBertPreTrainedModel,NougatImageProcessor:()=>In.NougatImageProcessor,NougatTokenizer:()=>Vn.NougatTokenizer,OPTForCausalLM:()=>Z.OPTForCausalLM,OPTModel:()=>Z.OPTModel,OPTPreTrainedModel:()=>Z.OPTPreTrainedModel,ObjectDetectionPipeline:()=>Gr.ObjectDetectionPipeline,OpenELMForCausalLM:()=>Z.OpenELMForCausalLM,OpenELMModel:()=>Z.OpenELMModel,OpenELMPreTrainedModel:()=>Z.OpenELMPreTrainedModel,OwlViTFeatureExtractor:()=>In.OwlViTFeatureExtractor,OwlViTForObjectDetection:()=>Z.OwlViTForObjectDetection,OwlViTModel:()=>Z.OwlViTModel,OwlViTPreTrainedModel:()=>Z.OwlViTPreTrainedModel,OwlViTProcessor:()=>In.OwlViTProcessor,Owlv2ForObjectDetection:()=>Z.Owlv2ForObjectDetection,Owlv2ImageProcessor:()=>In.Owlv2ImageProcessor,Owlv2Model:()=>Z.Owlv2Model,Owlv2PreTrainedModel:()=>Z.Owlv2PreTrainedModel,Phi3ForCausalLM:()=>Z.Phi3ForCausalLM,Phi3Model:()=>Z.Phi3Model,Phi3PreTrainedModel:()=>Z.Phi3PreTrainedModel,PhiForCausalLM:()=>Z.PhiForCausalLM,PhiModel:()=>Z.PhiModel,PhiPreTrainedModel:()=>Z.PhiPreTrainedModel,Pipeline:()=>Gr.Pipeline,PreTrainedModel:()=>Z.PreTrainedModel,PreTrainedTokenizer:()=>Vn.PreTrainedTokenizer,PretrainedConfig:()=>k1.PretrainedConfig,PretrainedMixin:()=>Z.PretrainedMixin,Processor:()=>In.Processor,PvtForImageClassification:()=>Z.PvtForImageClassification,PvtImageProcessor:()=>In.PvtImageProcessor,PvtModel:()=>Z.PvtModel,PvtPreTrainedModel:()=>Z.PvtPreTrainedModel,PyAnnoteFeatureExtractor:()=>In.PyAnnoteFeatureExtractor,PyAnnoteForAudioFrameClassification:()=>Z.PyAnnoteForAudioFrameClassification,PyAnnoteModel:()=>Z.PyAnnoteModel,PyAnnotePreTrainedModel:()=>Z.PyAnnotePreTrainedModel,PyAnnoteProcessor:()=>In.PyAnnoteProcessor,QuestionAnsweringModelOutput:()=>Z.QuestionAnsweringModelOutput,QuestionAnsweringPipeline:()=>Gr.QuestionAnsweringPipeline,Qwen2ForCausalLM:()=>Z.Qwen2ForCausalLM,Qwen2Model:()=>Z.Qwen2Model,Qwen2PreTrainedModel:()=>Z.Qwen2PreTrainedModel,Qwen2Tokenizer:()=>Vn.Qwen2Tokenizer,RTDetrForObjectDetection:()=>Z.RTDetrForObjectDetection,RTDetrImageProcessor:()=>In.RTDetrImageProcessor,RTDetrModel:()=>Z.RTDetrModel,RTDetrObjectDetectionOutput:()=>Z.RTDetrObjectDetectionOutput,RTDetrPreTrainedModel:()=>Z.RTDetrPreTrainedModel,RawImage:()=>qI.RawImage,ResNetForImageClassification:()=>Z.ResNetForImageClassification,ResNetModel:()=>Z.ResNetModel,ResNetPreTrainedModel:()=>Z.ResNetPreTrainedModel,RoFormerForMaskedLM:()=>Z.RoFormerForMaskedLM,RoFormerForQuestionAnswering:()=>Z.RoFormerForQuestionAnswering,RoFormerForSequenceClassification:()=>Z.RoFormerForSequenceClassification,RoFormerForTokenClassification:()=>Z.RoFormerForTokenClassification,RoFormerModel:()=>Z.RoFormerModel,RoFormerPreTrainedModel:()=>Z.RoFormerPreTrainedModel,RoFormerTokenizer:()=>Vn.RoFormerTokenizer,RobertaForMaskedLM:()=>Z.RobertaForMaskedLM,RobertaForQuestionAnswering:()=>Z.RobertaForQuestionAnswering,RobertaForSequenceClassification:()=>Z.RobertaForSequenceClassification,RobertaForTokenClassification:()=>Z.RobertaForTokenClassification,RobertaModel:()=>Z.RobertaModel,RobertaPreTrainedModel:()=>Z.RobertaPreTrainedModel,RobertaTokenizer:()=>Vn.RobertaTokenizer,SamImageProcessor:()=>In.SamImageProcessor,SamImageSegmentationOutput:()=>Z.SamImageSegmentationOutput,SamModel:()=>Z.SamModel,SamPreTrainedModel:()=>Z.SamPreTrainedModel,SamProcessor:()=>In.SamProcessor,SapiensFeatureExtractor:()=>In.SapiensFeatureExtractor,SapiensForDepthEstimation:()=>Z.SapiensForDepthEstimation,SapiensForNormalEstimation:()=>Z.SapiensForNormalEstimation,SapiensForSemanticSegmentation:()=>Z.SapiensForSemanticSegmentation,SapiensPreTrainedModel:()=>Z.SapiensPreTrainedModel,SeamlessM4TFeatureExtractor:()=>In.SeamlessM4TFeatureExtractor,SegformerFeatureExtractor:()=>In.SegformerFeatureExtractor,SegformerForImageClassification:()=>Z.SegformerForImageClassification,SegformerForSemanticSegmentation:()=>Z.SegformerForSemanticSegmentation,SegformerModel:()=>Z.SegformerModel,SegformerPreTrainedModel:()=>Z.SegformerPreTrainedModel,Seq2SeqLMOutput:()=>Z.Seq2SeqLMOutput,SequenceClassifierOutput:()=>Z.SequenceClassifierOutput,SiglipImageProcessor:()=>In.SiglipImageProcessor,SiglipModel:()=>Z.SiglipModel,SiglipPreTrainedModel:()=>Z.SiglipPreTrainedModel,SiglipTextModel:()=>Z.SiglipTextModel,SiglipTokenizer:()=>Vn.SiglipTokenizer,SiglipVisionModel:()=>Z.SiglipVisionModel,SpeechT5FeatureExtractor:()=>In.SpeechT5FeatureExtractor,SpeechT5ForSpeechToText:()=>Z.SpeechT5ForSpeechToText,SpeechT5ForTextToSpeech:()=>Z.SpeechT5ForTextToSpeech,SpeechT5HifiGan:()=>Z.SpeechT5HifiGan,SpeechT5Model:()=>Z.SpeechT5Model,SpeechT5PreTrainedModel:()=>Z.SpeechT5PreTrainedModel,SpeechT5Processor:()=>In.SpeechT5Processor,SpeechT5Tokenizer:()=>Vn.SpeechT5Tokenizer,SqueezeBertForMaskedLM:()=>Z.SqueezeBertForMaskedLM,SqueezeBertForQuestionAnswering:()=>Z.SqueezeBertForQuestionAnswering,SqueezeBertForSequenceClassification:()=>Z.SqueezeBertForSequenceClassification,SqueezeBertModel:()=>Z.SqueezeBertModel,SqueezeBertPreTrainedModel:()=>Z.SqueezeBertPreTrainedModel,SqueezeBertTokenizer:()=>Vn.SqueezeBertTokenizer,StableLmForCausalLM:()=>Z.StableLmForCausalLM,StableLmModel:()=>Z.StableLmModel,StableLmPreTrainedModel:()=>Z.StableLmPreTrainedModel,Starcoder2ForCausalLM:()=>Z.Starcoder2ForCausalLM,Starcoder2Model:()=>Z.Starcoder2Model,Starcoder2PreTrainedModel:()=>Z.Starcoder2PreTrainedModel,StoppingCriteria:()=>vg.StoppingCriteria,StoppingCriteriaList:()=>vg.StoppingCriteriaList,SummarizationPipeline:()=>Gr.SummarizationPipeline,Swin2SRForImageSuperResolution:()=>Z.Swin2SRForImageSuperResolution,Swin2SRImageProcessor:()=>In.Swin2SRImageProcessor,Swin2SRModel:()=>Z.Swin2SRModel,Swin2SRPreTrainedModel:()=>Z.Swin2SRPreTrainedModel,SwinForImageClassification:()=>Z.SwinForImageClassification,SwinModel:()=>Z.SwinModel,SwinPreTrainedModel:()=>Z.SwinPreTrainedModel,T5ForConditionalGeneration:()=>Z.T5ForConditionalGeneration,T5Model:()=>Z.T5Model,T5PreTrainedModel:()=>Z.T5PreTrainedModel,T5Tokenizer:()=>Vn.T5Tokenizer,TableTransformerForObjectDetection:()=>Z.TableTransformerForObjectDetection,TableTransformerModel:()=>Z.TableTransformerModel,TableTransformerObjectDetectionOutput:()=>Z.TableTransformerObjectDetectionOutput,TableTransformerPreTrainedModel:()=>Z.TableTransformerPreTrainedModel,Tensor:()=>$i.Tensor,Text2TextGenerationPipeline:()=>Gr.Text2TextGenerationPipeline,TextClassificationPipeline:()=>Gr.TextClassificationPipeline,TextGenerationPipeline:()=>Gr.TextGenerationPipeline,TextStreamer:()=>O1.TextStreamer,TextToAudioPipeline:()=>Gr.TextToAudioPipeline,TokenClassificationPipeline:()=>Gr.TokenClassificationPipeline,TokenClassifierOutput:()=>Z.TokenClassifierOutput,TokenizerModel:()=>Vn.TokenizerModel,TrOCRForCausalLM:()=>Z.TrOCRForCausalLM,TrOCRPreTrainedModel:()=>Z.TrOCRPreTrainedModel,TranslationPipeline:()=>Gr.TranslationPipeline,UniSpeechForCTC:()=>Z.UniSpeechForCTC,UniSpeechForSequenceClassification:()=>Z.UniSpeechForSequenceClassification,UniSpeechModel:()=>Z.UniSpeechModel,UniSpeechPreTrainedModel:()=>Z.UniSpeechPreTrainedModel,UniSpeechSatForAudioFrameClassification:()=>Z.UniSpeechSatForAudioFrameClassification,UniSpeechSatForCTC:()=>Z.UniSpeechSatForCTC,UniSpeechSatForSequenceClassification:()=>Z.UniSpeechSatForSequenceClassification,UniSpeechSatModel:()=>Z.UniSpeechSatModel,UniSpeechSatPreTrainedModel:()=>Z.UniSpeechSatPreTrainedModel,ViTFeatureExtractor:()=>In.ViTFeatureExtractor,ViTForImageClassification:()=>Z.ViTForImageClassification,ViTImageProcessor:()=>In.ViTImageProcessor,ViTMAEModel:()=>Z.ViTMAEModel,ViTMAEPreTrainedModel:()=>Z.ViTMAEPreTrainedModel,ViTMSNForImageClassification:()=>Z.ViTMSNForImageClassification,ViTMSNModel:()=>Z.ViTMSNModel,ViTMSNPreTrainedModel:()=>Z.ViTMSNPreTrainedModel,ViTModel:()=>Z.ViTModel,ViTPreTrainedModel:()=>Z.ViTPreTrainedModel,VisionEncoderDecoderModel:()=>Z.VisionEncoderDecoderModel,VitMatteForImageMatting:()=>Z.VitMatteForImageMatting,VitMatteImageProcessor:()=>In.VitMatteImageProcessor,VitMattePreTrainedModel:()=>Z.VitMattePreTrainedModel,VitsModel:()=>Z.VitsModel,VitsModelOutput:()=>Z.VitsModelOutput,VitsPreTrainedModel:()=>Z.VitsPreTrainedModel,VitsTokenizer:()=>Vn.VitsTokenizer,Wav2Vec2BertForCTC:()=>Z.Wav2Vec2BertForCTC,Wav2Vec2BertForSequenceClassification:()=>Z.Wav2Vec2BertForSequenceClassification,Wav2Vec2BertModel:()=>Z.Wav2Vec2BertModel,Wav2Vec2BertPreTrainedModel:()=>Z.Wav2Vec2BertPreTrainedModel,Wav2Vec2CTCTokenizer:()=>Vn.Wav2Vec2CTCTokenizer,Wav2Vec2FeatureExtractor:()=>In.Wav2Vec2FeatureExtractor,Wav2Vec2ForAudioFrameClassification:()=>Z.Wav2Vec2ForAudioFrameClassification,Wav2Vec2ForCTC:()=>Z.Wav2Vec2ForCTC,Wav2Vec2ForSequenceClassification:()=>Z.Wav2Vec2ForSequenceClassification,Wav2Vec2Model:()=>Z.Wav2Vec2Model,Wav2Vec2PreTrainedModel:()=>Z.Wav2Vec2PreTrainedModel,Wav2Vec2ProcessorWithLM:()=>In.Wav2Vec2ProcessorWithLM,WavLMForAudioFrameClassification:()=>Z.WavLMForAudioFrameClassification,WavLMForCTC:()=>Z.WavLMForCTC,WavLMForSequenceClassification:()=>Z.WavLMForSequenceClassification,WavLMForXVector:()=>Z.WavLMForXVector,WavLMModel:()=>Z.WavLMModel,WavLMPreTrainedModel:()=>Z.WavLMPreTrainedModel,WeSpeakerFeatureExtractor:()=>In.WeSpeakerFeatureExtractor,WeSpeakerResNetModel:()=>Z.WeSpeakerResNetModel,WeSpeakerResNetPreTrainedModel:()=>Z.WeSpeakerResNetPreTrainedModel,WhisperFeatureExtractor:()=>In.WhisperFeatureExtractor,WhisperForConditionalGeneration:()=>Z.WhisperForConditionalGeneration,WhisperModel:()=>Z.WhisperModel,WhisperPreTrainedModel:()=>Z.WhisperPreTrainedModel,WhisperProcessor:()=>In.WhisperProcessor,WhisperTextStreamer:()=>O1.WhisperTextStreamer,WhisperTokenizer:()=>Vn.WhisperTokenizer,XLMForQuestionAnswering:()=>Z.XLMForQuestionAnswering,XLMForSequenceClassification:()=>Z.XLMForSequenceClassification,XLMForTokenClassification:()=>Z.XLMForTokenClassification,XLMModel:()=>Z.XLMModel,XLMPreTrainedModel:()=>Z.XLMPreTrainedModel,XLMRobertaForMaskedLM:()=>Z.XLMRobertaForMaskedLM,XLMRobertaForQuestionAnswering:()=>Z.XLMRobertaForQuestionAnswering,XLMRobertaForSequenceClassification:()=>Z.XLMRobertaForSequenceClassification,XLMRobertaForTokenClassification:()=>Z.XLMRobertaForTokenClassification,XLMRobertaModel:()=>Z.XLMRobertaModel,XLMRobertaPreTrainedModel:()=>Z.XLMRobertaPreTrainedModel,XLMRobertaTokenizer:()=>Vn.XLMRobertaTokenizer,XLMTokenizer:()=>Vn.XLMTokenizer,XLMWithLMHeadModel:()=>Z.XLMWithLMHeadModel,XVectorOutput:()=>Z.XVectorOutput,YolosFeatureExtractor:()=>In.YolosFeatureExtractor,YolosForObjectDetection:()=>Z.YolosForObjectDetection,YolosModel:()=>Z.YolosModel,YolosObjectDetectionOutput:()=>Z.YolosObjectDetectionOutput,YolosPreTrainedModel:()=>Z.YolosPreTrainedModel,ZeroShotAudioClassificationPipeline:()=>Gr.ZeroShotAudioClassificationPipeline,ZeroShotClassificationPipeline:()=>Gr.ZeroShotClassificationPipeline,ZeroShotImageClassificationPipeline:()=>Gr.ZeroShotImageClassificationPipeline,ZeroShotObjectDetectionPipeline:()=>Gr.ZeroShotObjectDetectionPipeline,bankers_round:()=>ia.bankers_round,cat:()=>$i.cat,cos_sim:()=>ia.cos_sim,dot:()=>ia.dot,dynamic_time_warping:()=>ia.dynamic_time_warping,env:()=>XI.env,full:()=>$i.full,full_like:()=>$i.full_like,getKeyValueShapes:()=>k1.getKeyValueShapes,hamming:()=>zp.hamming,hanning:()=>zp.hanning,interpolate:()=>$i.interpolate,interpolate_4d:()=>$i.interpolate_4d,interpolate_data:()=>ia.interpolate_data,is_chinese_char:()=>Vn.is_chinese_char,layer_norm:()=>$i.layer_norm,log_softmax:()=>ia.log_softmax,magnitude:()=>ia.magnitude,matmul:()=>$i.matmul,max:()=>ia.max,mean:()=>$i.mean,mean_pooling:()=>$i.mean_pooling,medianFilter:()=>ia.medianFilter,mel_filter_bank:()=>zp.mel_filter_bank,min:()=>ia.min,ones:()=>$i.ones,ones_like:()=>$i.ones_like,permute:()=>$i.permute,permute_data:()=>ia.permute_data,pipeline:()=>Gr.pipeline,quantize_embeddings:()=>$i.quantize_embeddings,read_audio:()=>zp.read_audio,rfft:()=>$i.rfft,round:()=>ia.round,softmax:()=>ia.softmax,spectrogram:()=>zp.spectrogram,stack:()=>$i.stack,std_mean:()=>$i.std_mean,topk:()=>$i.topk,window_function:()=>zp.window_function,zeros:()=>$i.zeros,zeros_like:()=>$i.zeros_like});var XI=Xr("./src/env.js"),Gr=Xr("./src/pipelines.js"),Z=Xr("./src/models.js"),Vn=Xr("./src/tokenizers.js"),In=Xr("./src/processors.js"),k1=Xr("./src/configs.js"),zp=Xr("./src/utils/audio.js"),qI=Xr("./src/utils/image.js"),$i=Xr("./src/utils/tensor.js"),ia=Xr("./src/utils/maths.js"),O1=Xr("./src/generation/streamers.js"),vg=Xr("./src/generation/stopping_criteria.js");N.ASTFeatureExtractor;N.ASTForAudioClassification;N.ASTModel;N.ASTPreTrainedModel;N.AlbertForMaskedLM;N.AlbertForQuestionAnswering;N.AlbertForSequenceClassification;N.AlbertModel;N.AlbertPreTrainedModel;N.AlbertTokenizer;N.AudioClassificationPipeline;N.AutoConfig;var NF=N.AutoModel;N.AutoModelForAudioClassification;N.AutoModelForAudioFrameClassification;N.AutoModelForCTC;N.AutoModelForCausalLM;N.AutoModelForDepthEstimation;N.AutoModelForDocumentQuestionAnswering;N.AutoModelForImageClassification;N.AutoModelForImageFeatureExtraction;N.AutoModelForImageMatting;N.AutoModelForImageSegmentation;N.AutoModelForImageToImage;N.AutoModelForMaskGeneration;N.AutoModelForMaskedLM;N.AutoModelForNormalEstimation;N.AutoModelForObjectDetection;N.AutoModelForQuestionAnswering;N.AutoModelForSemanticSegmentation;N.AutoModelForSeq2SeqLM;N.AutoModelForSequenceClassification;N.AutoModelForSpeechSeq2Seq;N.AutoModelForTextToSpectrogram;N.AutoModelForTextToWaveform;N.AutoModelForTokenClassification;N.AutoModelForUniversalSegmentation;N.AutoModelForVision2Seq;N.AutoModelForXVector;N.AutoModelForZeroShotObjectDetection;var jF=N.AutoProcessor;N.AutoTokenizer;N.AutomaticSpeechRecognitionPipeline;N.BartForConditionalGeneration;N.BartForSequenceClassification;N.BartModel;N.BartPretrainedModel;N.BartTokenizer;N.BaseModelOutput;N.BaseStreamer;N.BeitFeatureExtractor;N.BeitForImageClassification;N.BeitModel;N.BeitPreTrainedModel;N.BertForMaskedLM;N.BertForQuestionAnswering;N.BertForSequenceClassification;N.BertForTokenClassification;N.BertModel;N.BertPreTrainedModel;N.BertTokenizer;N.BitImageProcessor;N.BlenderbotForConditionalGeneration;N.BlenderbotModel;N.BlenderbotPreTrainedModel;N.BlenderbotSmallForConditionalGeneration;N.BlenderbotSmallModel;N.BlenderbotSmallPreTrainedModel;N.BlenderbotSmallTokenizer;N.BlenderbotTokenizer;N.BloomForCausalLM;N.BloomModel;N.BloomPreTrainedModel;N.BloomTokenizer;N.CLIPFeatureExtractor;N.CLIPImageProcessor;N.CLIPModel;N.CLIPPreTrainedModel;N.CLIPSegForImageSegmentation;N.CLIPSegModel;N.CLIPSegPreTrainedModel;N.CLIPTextModel;N.CLIPTextModelWithProjection;N.CLIPTokenizer;N.CLIPVisionModel;N.CLIPVisionModelWithProjection;N.CamembertForMaskedLM;N.CamembertForQuestionAnswering;N.CamembertForSequenceClassification;N.CamembertForTokenClassification;N.CamembertModel;N.CamembertPreTrainedModel;N.CamembertTokenizer;N.CausalLMOutput;N.CausalLMOutputWithPast;N.ChineseCLIPFeatureExtractor;N.ChineseCLIPModel;N.ChineseCLIPPreTrainedModel;N.ClapAudioModelWithProjection;N.ClapFeatureExtractor;N.ClapModel;N.ClapPreTrainedModel;N.ClapTextModelWithProjection;N.CodeGenForCausalLM;N.CodeGenModel;N.CodeGenPreTrainedModel;N.CodeGenTokenizer;N.CodeLlamaTokenizer;N.CohereForCausalLM;N.CohereModel;N.CoherePreTrainedModel;N.CohereTokenizer;N.ConvBertForMaskedLM;N.ConvBertForQuestionAnswering;N.ConvBertForSequenceClassification;N.ConvBertForTokenClassification;N.ConvBertModel;N.ConvBertPreTrainedModel;N.ConvBertTokenizer;N.ConvNextFeatureExtractor;N.ConvNextForImageClassification;N.ConvNextImageProcessor;N.ConvNextModel;N.ConvNextPreTrainedModel;N.ConvNextV2ForImageClassification;N.ConvNextV2Model;N.ConvNextV2PreTrainedModel;N.DPTFeatureExtractor;N.DPTForDepthEstimation;N.DPTImageProcessor;N.DPTModel;N.DPTPreTrainedModel;N.DebertaForMaskedLM;N.DebertaForQuestionAnswering;N.DebertaForSequenceClassification;N.DebertaForTokenClassification;N.DebertaModel;N.DebertaPreTrainedModel;N.DebertaTokenizer;N.DebertaV2ForMaskedLM;N.DebertaV2ForQuestionAnswering;N.DebertaV2ForSequenceClassification;N.DebertaV2ForTokenClassification;N.DebertaV2Model;N.DebertaV2PreTrainedModel;N.DebertaV2Tokenizer;N.DecisionTransformerModel;N.DecisionTransformerPreTrainedModel;N.DeiTFeatureExtractor;N.DeiTForImageClassification;N.DeiTModel;N.DeiTPreTrainedModel;N.DepthAnythingForDepthEstimation;N.DepthAnythingPreTrainedModel;N.DepthEstimationPipeline;N.DepthProForDepthEstimation;N.DepthProPreTrainedModel;N.DetrFeatureExtractor;N.DetrForObjectDetection;N.DetrForSegmentation;N.DetrModel;N.DetrObjectDetectionOutput;N.DetrPreTrainedModel;N.DetrSegmentationOutput;N.Dinov2ForImageClassification;N.Dinov2Model;N.Dinov2PreTrainedModel;N.DistilBertForMaskedLM;N.DistilBertForQuestionAnswering;N.DistilBertForSequenceClassification;N.DistilBertForTokenClassification;N.DistilBertModel;N.DistilBertPreTrainedModel;N.DistilBertTokenizer;N.DocumentQuestionAnsweringPipeline;N.DonutFeatureExtractor;N.DonutSwinModel;N.DonutSwinPreTrainedModel;N.EfficientNetForImageClassification;N.EfficientNetImageProcessor;N.EfficientNetModel;N.EfficientNetPreTrainedModel;N.ElectraForMaskedLM;N.ElectraForQuestionAnswering;N.ElectraForSequenceClassification;N.ElectraForTokenClassification;N.ElectraModel;N.ElectraPreTrainedModel;N.ElectraTokenizer;N.EosTokenCriteria;N.EsmForMaskedLM;N.EsmForSequenceClassification;N.EsmForTokenClassification;N.EsmModel;N.EsmPreTrainedModel;N.EsmTokenizer;N.FFT;N.FalconForCausalLM;N.FalconModel;N.FalconPreTrainedModel;N.FalconTokenizer;N.FastViTForImageClassification;N.FastViTModel;N.FastViTPreTrainedModel;N.FeatureExtractionPipeline;N.FeatureExtractor;N.FillMaskPipeline;N.Florence2ForConditionalGeneration;N.Florence2PreTrainedModel;N.Florence2Processor;N.GLPNFeatureExtractor;N.GLPNForDepthEstimation;N.GLPNModel;N.GLPNPreTrainedModel;N.GPT2LMHeadModel;N.GPT2Model;N.GPT2PreTrainedModel;N.GPT2Tokenizer;N.GPTBigCodeForCausalLM;N.GPTBigCodeModel;N.GPTBigCodePreTrainedModel;N.GPTJForCausalLM;N.GPTJModel;N.GPTJPreTrainedModel;N.GPTNeoForCausalLM;N.GPTNeoModel;N.GPTNeoPreTrainedModel;N.GPTNeoXForCausalLM;N.GPTNeoXModel;N.GPTNeoXPreTrainedModel;N.GPTNeoXTokenizer;N.Gemma2ForCausalLM;N.Gemma2Model;N.Gemma2PreTrainedModel;N.GemmaForCausalLM;N.GemmaModel;N.GemmaPreTrainedModel;N.GemmaTokenizer;N.GraniteForCausalLM;N.GraniteModel;N.GranitePreTrainedModel;N.Grok1Tokenizer;N.GroupViTModel;N.GroupViTPreTrainedModel;N.HerbertTokenizer;N.HieraForImageClassification;N.HieraModel;N.HieraPreTrainedModel;N.HubertForCTC;N.HubertForSequenceClassification;N.HubertModel;N.HubertPreTrainedModel;N.ImageClassificationPipeline;N.ImageFeatureExtractionPipeline;N.ImageFeatureExtractor;N.ImageMattingOutput;N.ImageSegmentationPipeline;N.ImageToImagePipeline;N.ImageToTextPipeline;N.InterruptableStoppingCriteria;N.JAISLMHeadModel;N.JAISModel;N.JAISPreTrainedModel;N.LlamaForCausalLM;N.LlamaModel;N.LlamaPreTrainedModel;N.LlamaTokenizer;N.LlavaForConditionalGeneration;N.LlavaPreTrainedModel;N.LongT5ForConditionalGeneration;N.LongT5Model;N.LongT5PreTrainedModel;N.M2M100ForConditionalGeneration;N.M2M100Model;N.M2M100PreTrainedModel;N.M2M100Tokenizer;N.MBart50Tokenizer;N.MBartForCausalLM;N.MBartForConditionalGeneration;N.MBartForSequenceClassification;N.MBartModel;N.MBartPreTrainedModel;N.MBartTokenizer;N.MPNetForMaskedLM;N.MPNetForQuestionAnswering;N.MPNetForSequenceClassification;N.MPNetForTokenClassification;N.MPNetModel;N.MPNetPreTrainedModel;N.MPNetTokenizer;N.MT5ForConditionalGeneration;N.MT5Model;N.MT5PreTrainedModel;N.MarianMTModel;N.MarianModel;N.MarianPreTrainedModel;N.MarianTokenizer;N.MaskFormerFeatureExtractor;N.MaskFormerForInstanceSegmentation;N.MaskFormerModel;N.MaskFormerPreTrainedModel;N.MaskedLMOutput;N.MaxLengthCriteria;N.MistralForCausalLM;N.MistralModel;N.MistralPreTrainedModel;N.MobileBertForMaskedLM;N.MobileBertForQuestionAnswering;N.MobileBertForSequenceClassification;N.MobileBertModel;N.MobileBertPreTrainedModel;N.MobileBertTokenizer;N.MobileNetV1FeatureExtractor;N.MobileNetV1ForImageClassification;N.MobileNetV1Model;N.MobileNetV1PreTrainedModel;N.MobileNetV2FeatureExtractor;N.MobileNetV2ForImageClassification;N.MobileNetV2Model;N.MobileNetV2PreTrainedModel;N.MobileNetV3FeatureExtractor;N.MobileNetV3ForImageClassification;N.MobileNetV3Model;N.MobileNetV3PreTrainedModel;N.MobileNetV4FeatureExtractor;N.MobileNetV4ForImageClassification;N.MobileNetV4Model;N.MobileNetV4PreTrainedModel;N.MobileViTFeatureExtractor;N.MobileViTForImageClassification;N.MobileViTImageProcessor;N.MobileViTModel;N.MobileViTPreTrainedModel;N.MobileViTV2ForImageClassification;N.MobileViTV2Model;N.MobileViTV2PreTrainedModel;N.ModelOutput;N.Moondream1ForConditionalGeneration;N.MptForCausalLM;N.MptModel;N.MptPreTrainedModel;N.MusicgenForCausalLM;N.MusicgenForConditionalGeneration;N.MusicgenModel;N.MusicgenPreTrainedModel;N.NllbTokenizer;N.NomicBertModel;N.NomicBertPreTrainedModel;N.NougatImageProcessor;N.NougatTokenizer;N.OPTForCausalLM;N.OPTModel;N.OPTPreTrainedModel;N.ObjectDetectionPipeline;N.OpenELMForCausalLM;N.OpenELMModel;N.OpenELMPreTrainedModel;N.OwlViTFeatureExtractor;N.OwlViTForObjectDetection;N.OwlViTModel;N.OwlViTPreTrainedModel;N.OwlViTProcessor;N.Owlv2ForObjectDetection;N.Owlv2ImageProcessor;N.Owlv2Model;N.Owlv2PreTrainedModel;N.Phi3ForCausalLM;N.Phi3Model;N.Phi3PreTrainedModel;N.PhiForCausalLM;N.PhiModel;N.PhiPreTrainedModel;N.Pipeline;N.PreTrainedModel;N.PreTrainedTokenizer;N.PretrainedConfig;N.PretrainedMixin;N.Processor;N.PvtForImageClassification;N.PvtImageProcessor;N.PvtModel;N.PvtPreTrainedModel;N.PyAnnoteFeatureExtractor;N.PyAnnoteForAudioFrameClassification;N.PyAnnoteModel;N.PyAnnotePreTrainedModel;N.PyAnnoteProcessor;N.QuestionAnsweringModelOutput;N.QuestionAnsweringPipeline;N.Qwen2ForCausalLM;N.Qwen2Model;N.Qwen2PreTrainedModel;N.Qwen2Tokenizer;N.RTDetrForObjectDetection;N.RTDetrImageProcessor;N.RTDetrModel;N.RTDetrObjectDetectionOutput;N.RTDetrPreTrainedModel;var WF=N.RawImage;N.ResNetForImageClassification;N.ResNetModel;N.ResNetPreTrainedModel;N.RoFormerForMaskedLM;N.RoFormerForQuestionAnswering;N.RoFormerForSequenceClassification;N.RoFormerForTokenClassification;N.RoFormerModel;N.RoFormerPreTrainedModel;N.RoFormerTokenizer;N.RobertaForMaskedLM;N.RobertaForQuestionAnswering;N.RobertaForSequenceClassification;N.RobertaForTokenClassification;N.RobertaModel;N.RobertaPreTrainedModel;N.RobertaTokenizer;N.SamImageProcessor;N.SamImageSegmentationOutput;N.SamModel;N.SamPreTrainedModel;N.SamProcessor;N.SapiensFeatureExtractor;N.SapiensForDepthEstimation;N.SapiensForNormalEstimation;N.SapiensForSemanticSegmentation;N.SapiensPreTrainedModel;N.SeamlessM4TFeatureExtractor;N.SegformerFeatureExtractor;N.SegformerForImageClassification;N.SegformerForSemanticSegmentation;N.SegformerModel;N.SegformerPreTrainedModel;N.Seq2SeqLMOutput;N.SequenceClassifierOutput;N.SiglipImageProcessor;N.SiglipModel;N.SiglipPreTrainedModel;N.SiglipTextModel;N.SiglipTokenizer;N.SiglipVisionModel;N.SpeechT5FeatureExtractor;N.SpeechT5ForSpeechToText;N.SpeechT5ForTextToSpeech;N.SpeechT5HifiGan;N.SpeechT5Model;N.SpeechT5PreTrainedModel;N.SpeechT5Processor;N.SpeechT5Tokenizer;N.SqueezeBertForMaskedLM;N.SqueezeBertForQuestionAnswering;N.SqueezeBertForSequenceClassification;N.SqueezeBertModel;N.SqueezeBertPreTrainedModel;N.SqueezeBertTokenizer;N.StableLmForCausalLM;N.StableLmModel;N.StableLmPreTrainedModel;N.Starcoder2ForCausalLM;N.Starcoder2Model;N.Starcoder2PreTrainedModel;N.StoppingCriteria;N.StoppingCriteriaList;N.SummarizationPipeline;N.Swin2SRForImageSuperResolution;N.Swin2SRImageProcessor;N.Swin2SRModel;N.Swin2SRPreTrainedModel;N.SwinForImageClassification;N.SwinModel;N.SwinPreTrainedModel;N.T5ForConditionalGeneration;N.T5Model;N.T5PreTrainedModel;N.T5Tokenizer;N.TableTransformerForObjectDetection;N.TableTransformerModel;N.TableTransformerObjectDetectionOutput;N.TableTransformerPreTrainedModel;N.Tensor;N.Text2TextGenerationPipeline;N.TextClassificationPipeline;N.TextGenerationPipeline;N.TextStreamer;N.TextToAudioPipeline;N.TokenClassificationPipeline;N.TokenClassifierOutput;N.TokenizerModel;N.TrOCRForCausalLM;N.TrOCRPreTrainedModel;N.TranslationPipeline;N.UniSpeechForCTC;N.UniSpeechForSequenceClassification;N.UniSpeechModel;N.UniSpeechPreTrainedModel;N.UniSpeechSatForAudioFrameClassification;N.UniSpeechSatForCTC;N.UniSpeechSatForSequenceClassification;N.UniSpeechSatModel;N.UniSpeechSatPreTrainedModel;N.ViTFeatureExtractor;N.ViTForImageClassification;N.ViTImageProcessor;N.ViTMAEModel;N.ViTMAEPreTrainedModel;N.ViTMSNForImageClassification;N.ViTMSNModel;N.ViTMSNPreTrainedModel;N.ViTModel;N.ViTPreTrainedModel;N.VisionEncoderDecoderModel;N.VitMatteForImageMatting;N.VitMatteImageProcessor;N.VitMattePreTrainedModel;N.VitsModel;N.VitsModelOutput;N.VitsPreTrainedModel;N.VitsTokenizer;N.Wav2Vec2BertForCTC;N.Wav2Vec2BertForSequenceClassification;N.Wav2Vec2BertModel;N.Wav2Vec2BertPreTrainedModel;N.Wav2Vec2CTCTokenizer;N.Wav2Vec2FeatureExtractor;N.Wav2Vec2ForAudioFrameClassification;N.Wav2Vec2ForCTC;N.Wav2Vec2ForSequenceClassification;N.Wav2Vec2Model;N.Wav2Vec2PreTrainedModel;N.Wav2Vec2ProcessorWithLM;N.WavLMForAudioFrameClassification;N.WavLMForCTC;N.WavLMForSequenceClassification;N.WavLMForXVector;N.WavLMModel;N.WavLMPreTrainedModel;N.WeSpeakerFeatureExtractor;N.WeSpeakerResNetModel;N.WeSpeakerResNetPreTrainedModel;N.WhisperFeatureExtractor;N.WhisperForConditionalGeneration;N.WhisperModel;N.WhisperPreTrainedModel;N.WhisperProcessor;N.WhisperTextStreamer;N.WhisperTokenizer;N.XLMForQuestionAnswering;N.XLMForSequenceClassification;N.XLMForTokenClassification;N.XLMModel;N.XLMPreTrainedModel;N.XLMRobertaForMaskedLM;N.XLMRobertaForQuestionAnswering;N.XLMRobertaForSequenceClassification;N.XLMRobertaForTokenClassification;N.XLMRobertaModel;N.XLMRobertaPreTrainedModel;N.XLMRobertaTokenizer;N.XLMTokenizer;N.XLMWithLMHeadModel;N.XVectorOutput;N.YolosFeatureExtractor;N.YolosForObjectDetection;N.YolosModel;N.YolosObjectDetectionOutput;N.YolosPreTrainedModel;N.ZeroShotAudioClassificationPipeline;N.ZeroShotClassificationPipeline;N.ZeroShotImageClassificationPipeline;N.ZeroShotObjectDetectionPipeline;N.bankers_round;N.cat;N.cos_sim;N.dot;N.dynamic_time_warping;var VF=N.env;N.full;N.full_like;N.getKeyValueShapes;N.hamming;N.hanning;N.interpolate;N.interpolate_4d;N.interpolate_data;N.is_chinese_char;N.layer_norm;N.log_softmax;N.magnitude;N.matmul;N.max;N.mean;N.mean_pooling;N.medianFilter;N.mel_filter_bank;N.min;N.ones;N.ones_like;N.permute;N.permute_data;N.pipeline;N.quantize_embeddings;N.read_audio;N.rfft;N.round;N.softmax;N.spectrogram;N.stack;N.std_mean;N.topk;N.window_function;N.zeros;N.zeros_like;function of(t){if(t===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function Lb(t,e){return Lb=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,l){return r.__proto__=l,r},Lb(t,e)}function Py(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&Lb(t,e)}function o_(t,e){if(e&&(al(e)==="object"||typeof e=="function"))return e;if(e!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return of(t)}function fu(t){return fu=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},fu(t)}function YI(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function KI(t){return W2(t)||YI(t)||V2(t)||U2()}function RT(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(l){return Object.getOwnPropertyDescriptor(t,l).enumerable})),n.push.apply(n,r)}return n}function zT(t){for(var e=1;e1&&arguments[1]!==void 0?arguments[1]:{};ll(this,t),this.init(e,n)}return ul(t,[{key:"init",value:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.prefix=r.prefix||"i18next:",this.logger=n||QI,this.options=r,this.debug=r.debug}},{key:"setDebug",value:function(n){this.debug=n}},{key:"log",value:function(){for(var n=arguments.length,r=new Array(n),l=0;l1?r-1:0),m=1;m-1?g.replace(/###/g,"."):g}function l(){return!t||typeof t=="string"}for(var m=typeof e!="string"?[].concat(e):e.split(".");m.length>1;){if(l())return{};var S=r(m.shift());!t[S]&&n&&(t[S]=new n),Object.prototype.hasOwnProperty.call(t,S)?t=t[S]:t={}}return l()?{}:{obj:t,k:r(m.shift())}}function NT(t,e,n){var r=Bx(t,e,Object),l=r.obj,m=r.k;l[m]=n}function eF(t,e,n,r){var l=Bx(t,e,Object),m=l.obj,S=l.k;m[S]=m[S]||[],r&&(m[S]=m[S].concat(n)),r||m[S].push(n)}function ry(t,e){var n=Bx(t,e),r=n.obj,l=n.k;if(!!r)return r[l]}function jT(t,e,n){var r=ry(t,n);return r!==void 0?r:ry(e,n)}function uE(t,e,n){for(var r in e)r!=="__proto__"&&r!=="constructor"&&(r in t?typeof t[r]=="string"||t[r]instanceof String||typeof e[r]=="string"||e[r]instanceof String?n&&(t[r]=e[r]):uE(t[r],e[r],n):t[r]=e[r]);return t}function Bp(t){return t.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}var tF={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};function nF(t){return typeof t=="string"?t.replace(/[&<>"'\/]/g,function(e){return tF[e]}):t}var ky=typeof window<"u"&&window.navigator&&typeof window.navigator.userAgentData>"u"&&window.navigator.userAgent&&window.navigator.userAgent.indexOf("MSIE")>-1,rF=[" ",",","?","!",";"];function iF(t,e,n){e=e||"",n=n||"";var r=rF.filter(function(g){return e.indexOf(g)<0&&n.indexOf(g)<0});if(r.length===0)return!0;var l=new RegExp("(".concat(r.map(function(g){return g==="?"?"\\?":g}).join("|"),")")),m=!l.test(t);if(!m){var S=t.indexOf(n);S>0&&!l.test(t.substring(0,S))&&(m=!0)}return m}function WT(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(l){return Object.getOwnPropertyDescriptor(t,l).enumerable})),n.push.apply(n,r)}return n}function l0(t){for(var e=1;e"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function cE(t,e){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:".";if(!!t){if(t[e])return t[e];for(var r=e.split(n),l=t,m=0;mm+S;)S++,g=r.slice(m,m+S).join(n),s=l[g];if(s===void 0)return;if(s===null)return null;if(e.endsWith(g)){if(typeof s=="string")return s;if(g&&typeof s[g]=="string")return s[g]}var c=r.slice(m+S).join(n);return c?cE(s,c,n):void 0}l=l[r[m]]}return l}}var oF=function(t){Py(n,t);var e=sF(n);function n(r){var l,m=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{ns:["translation"],defaultNS:"translation"};return ll(this,n),l=e.call(this),ky&&cf.call(of(l)),l.data=r||{},l.options=m,l.options.keySeparator===void 0&&(l.options.keySeparator="."),l.options.ignoreJSONStructure===void 0&&(l.options.ignoreJSONStructure=!0),l}return ul(n,[{key:"addNamespaces",value:function(l){this.options.ns.indexOf(l)<0&&this.options.ns.push(l)}},{key:"removeNamespaces",value:function(l){var m=this.options.ns.indexOf(l);m>-1&&this.options.ns.splice(m,1)}},{key:"getResource",value:function(l,m,S){var g=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},s=g.keySeparator!==void 0?g.keySeparator:this.options.keySeparator,c=g.ignoreJSONStructure!==void 0?g.ignoreJSONStructure:this.options.ignoreJSONStructure,p=[l,m];S&&typeof S!="string"&&(p=p.concat(S)),S&&typeof S=="string"&&(p=p.concat(s?S.split(s):S)),l.indexOf(".")>-1&&(p=l.split("."));var a=ry(this.data,p);return a||!c||typeof S!="string"?a:cE(this.data&&this.data[l]&&this.data[l][m],S,s)}},{key:"addResource",value:function(l,m,S,g){var s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{silent:!1},c=this.options.keySeparator;c===void 0&&(c=".");var p=[l,m];S&&(p=p.concat(c?S.split(c):S)),l.indexOf(".")>-1&&(p=l.split("."),g=m,m=p[1]),this.addNamespaces(m),NT(this.data,p,g),s.silent||this.emit("added",l,m,S,g)}},{key:"addResources",value:function(l,m,S){var g=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{silent:!1};for(var s in S)(typeof S[s]=="string"||Object.prototype.toString.apply(S[s])==="[object Array]")&&this.addResource(l,m,s,S[s],{silent:!0});g.silent||this.emit("added",l,m,S)}},{key:"addResourceBundle",value:function(l,m,S,g,s){var c=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{silent:!1},p=[l,m];l.indexOf(".")>-1&&(p=l.split("."),g=S,S=m,m=p[1]),this.addNamespaces(m);var a=ry(this.data,p)||{};g?uE(a,S,s):a=l0(l0({},a),S),NT(this.data,p,a),c.silent||this.emit("added",l,m,S)}},{key:"removeResourceBundle",value:function(l,m){this.hasResourceBundle(l,m)&&delete this.data[l][m],this.removeNamespaces(m),this.emit("removed",l,m)}},{key:"hasResourceBundle",value:function(l,m){return this.getResource(l,m)!==void 0}},{key:"getResourceBundle",value:function(l,m){return m||(m=this.options.defaultNS),this.options.compatibilityAPI==="v1"?l0(l0({},{}),this.getResource(l,m)):this.getResource(l,m)}},{key:"getDataByLanguage",value:function(l){return this.data[l]}},{key:"hasLanguageSomeTranslations",value:function(l){var m=this.getDataByLanguage(l),S=m&&Object.keys(m)||[];return!!S.find(function(g){return m[g]&&Object.keys(m[g]).length>0})}},{key:"toJSON",value:function(){return this.data}}]),n}(cf),dE={processors:{},addPostProcessor:function(e){this.processors[e.name]=e},handle:function(e,n,r,l,m){var S=this;return e.forEach(function(g){S.processors[g]&&(n=S.processors[g].process(n,r,l,m))}),n}};function VT(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(l){return Object.getOwnPropertyDescriptor(t,l).enumerable})),n.push.apply(n,r)}return n}function Us(t){for(var e=1;e"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var UT={},GT=function(t){Py(n,t);var e=lF(n);function n(r){var l,m=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return ll(this,n),l=e.call(this),ky&&cf.call(of(l)),ZI(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],r,of(l)),l.options=m,l.options.keySeparator===void 0&&(l.options.keySeparator="."),l.logger=uu.create("translator"),l}return ul(n,[{key:"changeLanguage",value:function(l){l&&(this.language=l)}},{key:"exists",value:function(l){var m=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{interpolation:{}};if(l==null)return!1;var S=this.resolve(l,m);return S&&S.res!==void 0}},{key:"extractFromKey",value:function(l,m){var S=m.nsSeparator!==void 0?m.nsSeparator:this.options.nsSeparator;S===void 0&&(S=":");var g=m.keySeparator!==void 0?m.keySeparator:this.options.keySeparator,s=m.ns||this.options.defaultNS||[],c=S&&l.indexOf(S)>-1,p=!this.options.userDefinedKeySeparator&&!m.keySeparator&&!this.options.userDefinedNsSeparator&&!m.nsSeparator&&!iF(l,S,g);if(c&&!p){var a=l.match(this.interpolator.nestingRegexp);if(a&&a.length>0)return{key:l,namespaces:s};var u=l.split(S);(S!==g||S===g&&this.options.ns.indexOf(u[0])>-1)&&(s=u.shift()),l=u.join(g)}return typeof s=="string"&&(s=[s]),{key:l,namespaces:s}}},{key:"translate",value:function(l,m,S){var g=this;if(al(m)!=="object"&&this.options.overloadTranslationOptionHandler&&(m=this.options.overloadTranslationOptionHandler(arguments)),m||(m={}),l==null)return"";Array.isArray(l)||(l=[String(l)]);var s=m.returnDetails!==void 0?m.returnDetails:this.options.returnDetails,c=m.keySeparator!==void 0?m.keySeparator:this.options.keySeparator,p=this.extractFromKey(l[l.length-1],m),a=p.key,u=p.namespaces,o=u[u.length-1],_=m.lng||this.language,y=m.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(_&&_.toLowerCase()==="cimode"){if(y){var h=m.nsSeparator||this.options.nsSeparator;return s?(v.res="".concat(o).concat(h).concat(a),v):"".concat(o).concat(h).concat(a)}return s?(v.res=a,v):a}var v=this.resolve(l,m),b=v&&v.res,T=v&&v.usedKey||a,M=v&&v.exactUsedKey||a,O=Object.prototype.toString.apply(b),F=["[object Number]","[object Function]","[object RegExp]"],D=m.joinArrays!==void 0?m.joinArrays:this.options.joinArrays,R=!this.i18nFormat||this.i18nFormat.handleAsObject,Q=typeof b!="string"&&typeof b!="boolean"&&typeof b!="number";if(R&&b&&Q&&F.indexOf(O)<0&&!(typeof D=="string"&&O==="[object Array]")){if(!m.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");var ie=this.options.returnedObjectHandler?this.options.returnedObjectHandler(T,b,Us(Us({},m),{},{ns:u})):"key '".concat(a," (").concat(this.language,")' returned an object instead of string.");return s?(v.res=ie,v):ie}if(c){var pe=O==="[object Array]",ke=pe?[]:{},Te=pe?M:T;for(var Re in b)if(Object.prototype.hasOwnProperty.call(b,Re)){var ze="".concat(Te).concat(c).concat(Re);ke[Re]=this.translate(ze,Us(Us({},m),{joinArrays:!1,ns:u})),ke[Re]===ze&&(ke[Re]=b[Re])}b=ke}}else if(R&&typeof D=="string"&&O==="[object Array]")b=b.join(D),b&&(b=this.extendTranslation(b,l,m,S));else{var Ze=!1,Ie=!1,ee=m.count!==void 0&&typeof m.count!="string",W=n.hasDefaultValue(m),K=ee?this.pluralResolver.getSuffix(_,m.count,m):"",se=m["defaultValue".concat(K)]||m.defaultValue;!this.isValidLookup(b)&&W&&(Ze=!0,b=se),this.isValidLookup(b)||(Ie=!0,b=a);var fe=m.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey,de=fe&&Ie?void 0:b,ue=W&&se!==b&&this.options.updateMissing;if(Ie||Ze||ue){if(this.logger.log(ue?"updateKey":"missingKey",_,o,a,ue?se:b),c){var te=this.resolve(a,Us(Us({},m),{},{keySeparator:!1}));te&&te.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}var ge=[],Oe=this.languageUtils.getFallbackCodes(this.options.fallbackLng,m.lng||this.language);if(this.options.saveMissingTo==="fallback"&&Oe&&Oe[0])for(var Ue=0;Ue1&&arguments[1]!==void 0?arguments[1]:{},g,s,c,p,a;return typeof l=="string"&&(l=[l]),l.forEach(function(u){if(!m.isValidLookup(g)){var o=m.extractFromKey(u,S),_=o.key;s=_;var y=o.namespaces;m.options.fallbackNS&&(y=y.concat(m.options.fallbackNS));var h=S.count!==void 0&&typeof S.count!="string",v=h&&!S.ordinal&&S.count===0&&m.pluralResolver.shouldUseIntlApi(),b=S.context!==void 0&&(typeof S.context=="string"||typeof S.context=="number")&&S.context!=="",T=S.lngs?S.lngs:m.languageUtils.toResolveHierarchy(S.lng||m.language,S.fallbackLng);y.forEach(function(M){m.isValidLookup(g)||(a=M,!UT["".concat(T[0],"-").concat(M)]&&m.utils&&m.utils.hasLoadedNamespace&&!m.utils.hasLoadedNamespace(a)&&(UT["".concat(T[0],"-").concat(M)]=!0,m.logger.warn('key "'.concat(s,'" for languages "').concat(T.join(", "),`" won't get resolved as namespace "`).concat(a,'" was not yet loaded'),"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),T.forEach(function(O){if(!m.isValidLookup(g)){p=O;var F=[_];if(m.i18nFormat&&m.i18nFormat.addLookupKeys)m.i18nFormat.addLookupKeys(F,_,O,M,S);else{var D;h&&(D=m.pluralResolver.getSuffix(O,S.count,S));var R="".concat(m.options.pluralSeparator,"zero");if(h&&(F.push(_+D),v&&F.push(_+R)),b){var Q="".concat(_).concat(m.options.contextSeparator).concat(S.context);F.push(Q),h&&(F.push(Q+D),v&&F.push(Q+R))}}for(var ie;ie=F.pop();)m.isValidLookup(g)||(c=ie,g=m.getResource(O,M,ie,S))}}))})}}),{res:g,usedKey:s,exactUsedKey:c,usedLng:p,usedNS:a}}},{key:"isValidLookup",value:function(l){return l!==void 0&&!(!this.options.returnNull&&l===null)&&!(!this.options.returnEmptyString&&l==="")}},{key:"getResource",value:function(l,m,S){var g=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(l,m,S,g):this.resourceStore.getResource(l,m,S,g)}}],[{key:"hasDefaultValue",value:function(l){var m="defaultValue";for(var S in l)if(Object.prototype.hasOwnProperty.call(l,S)&&m===S.substring(0,m.length)&&l[S]!==void 0)return!0;return!1}}]),n}(cf);function A1(t){return t.charAt(0).toUpperCase()+t.slice(1)}var HT=function(){function t(e){ll(this,t),this.options=e,this.supportedLngs=this.options.supportedLngs||!1,this.logger=uu.create("languageUtils")}return ul(t,[{key:"getScriptPartFromCode",value:function(n){if(!n||n.indexOf("-")<0)return null;var r=n.split("-");return r.length===2||(r.pop(),r[r.length-1].toLowerCase()==="x")?null:this.formatLanguageCode(r.join("-"))}},{key:"getLanguagePartFromCode",value:function(n){if(!n||n.indexOf("-")<0)return n;var r=n.split("-");return this.formatLanguageCode(r[0])}},{key:"formatLanguageCode",value:function(n){if(typeof n=="string"&&n.indexOf("-")>-1){var r=["hans","hant","latn","cyrl","cans","mong","arab"],l=n.split("-");return this.options.lowerCaseLng?l=l.map(function(m){return m.toLowerCase()}):l.length===2?(l[0]=l[0].toLowerCase(),l[1]=l[1].toUpperCase(),r.indexOf(l[1].toLowerCase())>-1&&(l[1]=A1(l[1].toLowerCase()))):l.length===3&&(l[0]=l[0].toLowerCase(),l[1].length===2&&(l[1]=l[1].toUpperCase()),l[0]!=="sgn"&&l[2].length===2&&(l[2]=l[2].toUpperCase()),r.indexOf(l[1].toLowerCase())>-1&&(l[1]=A1(l[1].toLowerCase())),r.indexOf(l[2].toLowerCase())>-1&&(l[2]=A1(l[2].toLowerCase()))),l.join("-")}return this.options.cleanCode||this.options.lowerCaseLng?n.toLowerCase():n}},{key:"isSupportedCode",value:function(n){return(this.options.load==="languageOnly"||this.options.nonExplicitSupportedLngs)&&(n=this.getLanguagePartFromCode(n)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(n)>-1}},{key:"getBestMatchFromCodes",value:function(n){var r=this;if(!n)return null;var l;return n.forEach(function(m){if(!l){var S=r.formatLanguageCode(m);(!r.options.supportedLngs||r.isSupportedCode(S))&&(l=S)}}),!l&&this.options.supportedLngs&&n.forEach(function(m){if(!l){var S=r.getLanguagePartFromCode(m);if(r.isSupportedCode(S))return l=S;l=r.options.supportedLngs.find(function(g){if(g.indexOf(S)===0)return g})}}),l||(l=this.getFallbackCodes(this.options.fallbackLng)[0]),l}},{key:"getFallbackCodes",value:function(n,r){if(!n)return[];if(typeof n=="function"&&(n=n(r)),typeof n=="string"&&(n=[n]),Object.prototype.toString.apply(n)==="[object Array]")return n;if(!r)return n.default||[];var l=n[r];return l||(l=n[this.getScriptPartFromCode(r)]),l||(l=n[this.formatLanguageCode(r)]),l||(l=n[this.getLanguagePartFromCode(r)]),l||(l=n.default),l||[]}},{key:"toResolveHierarchy",value:function(n,r){var l=this,m=this.getFallbackCodes(r||this.options.fallbackLng||[],n),S=[],g=function(c){!c||(l.isSupportedCode(c)?S.push(c):l.logger.warn("rejecting language code not found in supportedLngs: ".concat(c)))};return typeof n=="string"&&n.indexOf("-")>-1?(this.options.load!=="languageOnly"&&g(this.formatLanguageCode(n)),this.options.load!=="languageOnly"&&this.options.load!=="currentOnly"&&g(this.getScriptPartFromCode(n)),this.options.load!=="currentOnly"&&g(this.getLanguagePartFromCode(n))):typeof n=="string"&&g(this.formatLanguageCode(n)),m.forEach(function(s){S.indexOf(s)<0&&g(l.formatLanguageCode(s))}),S}}]),t}(),cF=[{lngs:["ach","ak","am","arn","br","fil","gun","ln","mfe","mg","mi","oc","pt","pt-BR","tg","tl","ti","tr","uz","wa"],nr:[1,2],fc:1},{lngs:["af","an","ast","az","bg","bn","ca","da","de","dev","el","en","eo","es","et","eu","fi","fo","fur","fy","gl","gu","ha","hi","hu","hy","ia","it","kk","kn","ku","lb","mai","ml","mn","mr","nah","nap","nb","ne","nl","nn","no","nso","pa","pap","pms","ps","pt-PT","rm","sco","se","si","so","son","sq","sv","sw","ta","te","tk","ur","yo"],nr:[1,2],fc:2},{lngs:["ay","bo","cgg","fa","ht","id","ja","jbo","ka","km","ko","ky","lo","ms","sah","su","th","tt","ug","vi","wo","zh"],nr:[1],fc:3},{lngs:["be","bs","cnr","dz","hr","ru","sr","uk"],nr:[1,2,5],fc:4},{lngs:["ar"],nr:[0,1,2,3,11,100],fc:5},{lngs:["cs","sk"],nr:[1,2,5],fc:6},{lngs:["csb","pl"],nr:[1,2,5],fc:7},{lngs:["cy"],nr:[1,2,3,8],fc:8},{lngs:["fr"],nr:[1,2],fc:9},{lngs:["ga"],nr:[1,2,3,7,11],fc:10},{lngs:["gd"],nr:[1,2,3,20],fc:11},{lngs:["is"],nr:[1,2],fc:12},{lngs:["jv"],nr:[0,1],fc:13},{lngs:["kw"],nr:[1,2,3,4],fc:14},{lngs:["lt"],nr:[1,2,10],fc:15},{lngs:["lv"],nr:[1,2,0],fc:16},{lngs:["mk"],nr:[1,2],fc:17},{lngs:["mnk"],nr:[0,1,2],fc:18},{lngs:["mt"],nr:[1,2,11,20],fc:19},{lngs:["or"],nr:[2,1],fc:2},{lngs:["ro"],nr:[1,2,20],fc:20},{lngs:["sl"],nr:[5,1,2,3],fc:21},{lngs:["he","iw"],nr:[1,2,20,21],fc:22}],dF={1:function(e){return Number(e>1)},2:function(e){return Number(e!=1)},3:function(e){return 0},4:function(e){return Number(e%10==1&&e%100!=11?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2)},5:function(e){return Number(e==0?0:e==1?1:e==2?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5)},6:function(e){return Number(e==1?0:e>=2&&e<=4?1:2)},7:function(e){return Number(e==1?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2)},8:function(e){return Number(e==1?0:e==2?1:e!=8&&e!=11?2:3)},9:function(e){return Number(e>=2)},10:function(e){return Number(e==1?0:e==2?1:e<7?2:e<11?3:4)},11:function(e){return Number(e==1||e==11?0:e==2||e==12?1:e>2&&e<20?2:3)},12:function(e){return Number(e%10!=1||e%100==11)},13:function(e){return Number(e!==0)},14:function(e){return Number(e==1?0:e==2?1:e==3?2:3)},15:function(e){return Number(e%10==1&&e%100!=11?0:e%10>=2&&(e%100<10||e%100>=20)?1:2)},16:function(e){return Number(e%10==1&&e%100!=11?0:e!==0?1:2)},17:function(e){return Number(e==1||e%10==1&&e%100!=11?0:1)},18:function(e){return Number(e==0?0:e==1?1:2)},19:function(e){return Number(e==1?0:e==0||e%100>1&&e%100<11?1:e%100>10&&e%100<20?2:3)},20:function(e){return Number(e==1?0:e==0||e%100>0&&e%100<20?1:2)},21:function(e){return Number(e%100==1?1:e%100==2?2:e%100==3||e%100==4?3:0)},22:function(e){return Number(e==1?0:e==2?1:(e<0||e>10)&&e%10==0?2:3)}},fF=["v1","v2","v3"],XT={zero:0,one:1,two:2,few:3,many:4,other:5};function hF(){var t={};return cF.forEach(function(e){e.lngs.forEach(function(n){t[n]={numbers:e.nr,plurals:dF[e.fc]}})}),t}var pF=function(){function t(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};ll(this,t),this.languageUtils=e,this.options=n,this.logger=uu.create("pluralResolver"),(!this.options.compatibilityJSON||this.options.compatibilityJSON==="v4")&&(typeof Intl>"u"||!Intl.PluralRules)&&(this.options.compatibilityJSON="v3",this.logger.error("Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.")),this.rules=hF()}return ul(t,[{key:"addRule",value:function(n,r){this.rules[n]=r}},{key:"getRule",value:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(this.shouldUseIntlApi())try{return new Intl.PluralRules(n,{type:r.ordinal?"ordinal":"cardinal"})}catch{return}return this.rules[n]||this.rules[this.languageUtils.getLanguagePartFromCode(n)]}},{key:"needsPlural",value:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},l=this.getRule(n,r);return this.shouldUseIntlApi()?l&&l.resolvedOptions().pluralCategories.length>1:l&&l.numbers.length>1}},{key:"getPluralFormsOfKey",value:function(n,r){var l=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return this.getSuffixes(n,l).map(function(m){return"".concat(r).concat(m)})}},{key:"getSuffixes",value:function(n){var r=this,l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},m=this.getRule(n,l);return m?this.shouldUseIntlApi()?m.resolvedOptions().pluralCategories.sort(function(S,g){return XT[S]-XT[g]}).map(function(S){return"".concat(r.options.prepend).concat(S)}):m.numbers.map(function(S){return r.getSuffix(n,S,l)}):[]}},{key:"getSuffix",value:function(n,r){var l=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},m=this.getRule(n,l);return m?this.shouldUseIntlApi()?"".concat(this.options.prepend).concat(m.select(r)):this.getSuffixRetroCompatible(m,r):(this.logger.warn("no plural rule found for: ".concat(n)),"")}},{key:"getSuffixRetroCompatible",value:function(n,r){var l=this,m=n.noAbs?n.plurals(r):n.plurals(Math.abs(r)),S=n.numbers[m];this.options.simplifyPluralSuffix&&n.numbers.length===2&&n.numbers[0]===1&&(S===2?S="plural":S===1&&(S=""));var g=function(){return l.options.prepend&&S.toString()?l.options.prepend+S.toString():S.toString()};return this.options.compatibilityJSON==="v1"?S===1?"":typeof S=="number"?"_plural_".concat(S.toString()):g():this.options.compatibilityJSON==="v2"||this.options.simplifyPluralSuffix&&n.numbers.length===2&&n.numbers[0]===1?g():this.options.prepend&&m.toString()?this.options.prepend+m.toString():m.toString()}},{key:"shouldUseIntlApi",value:function(){return!fF.includes(this.options.compatibilityJSON)}}]),t}();function qT(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(l){return Object.getOwnPropertyDescriptor(t,l).enumerable})),n.push.apply(n,r)}return n}function Qo(t){for(var e=1;e0&&arguments[0]!==void 0?arguments[0]:{};ll(this,t),this.logger=uu.create("interpolator"),this.options=e,this.format=e.interpolation&&e.interpolation.format||function(n){return n},this.init(e)}return ul(t,[{key:"init",value:function(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};n.interpolation||(n.interpolation={escapeValue:!0});var r=n.interpolation;this.escape=r.escape!==void 0?r.escape:nF,this.escapeValue=r.escapeValue!==void 0?r.escapeValue:!0,this.useRawValueToEscape=r.useRawValueToEscape!==void 0?r.useRawValueToEscape:!1,this.prefix=r.prefix?Bp(r.prefix):r.prefixEscaped||"{{",this.suffix=r.suffix?Bp(r.suffix):r.suffixEscaped||"}}",this.formatSeparator=r.formatSeparator?r.formatSeparator:r.formatSeparator||",",this.unescapePrefix=r.unescapeSuffix?"":r.unescapePrefix||"-",this.unescapeSuffix=this.unescapePrefix?"":r.unescapeSuffix||"",this.nestingPrefix=r.nestingPrefix?Bp(r.nestingPrefix):r.nestingPrefixEscaped||Bp("$t("),this.nestingSuffix=r.nestingSuffix?Bp(r.nestingSuffix):r.nestingSuffixEscaped||Bp(")"),this.nestingOptionsSeparator=r.nestingOptionsSeparator?r.nestingOptionsSeparator:r.nestingOptionsSeparator||",",this.maxReplaces=r.maxReplaces?r.maxReplaces:1e3,this.alwaysFormat=r.alwaysFormat!==void 0?r.alwaysFormat:!1,this.resetRegExp()}},{key:"reset",value:function(){this.options&&this.init(this.options)}},{key:"resetRegExp",value:function(){var n="".concat(this.prefix,"(.+?)").concat(this.suffix);this.regexp=new RegExp(n,"g");var r="".concat(this.prefix).concat(this.unescapePrefix,"(.+?)").concat(this.unescapeSuffix).concat(this.suffix);this.regexpUnescape=new RegExp(r,"g");var l="".concat(this.nestingPrefix,"(.+?)").concat(this.nestingSuffix);this.nestingRegexp=new RegExp(l,"g")}},{key:"interpolate",value:function(n,r,l,m){var S=this,g,s,c,p=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{};function a(h){return h.replace(/\$/g,"$$$$")}var u=function(v){if(v.indexOf(S.formatSeparator)<0){var b=jT(r,p,v);return S.alwaysFormat?S.format(b,void 0,l,Qo(Qo(Qo({},m),r),{},{interpolationkey:v})):b}var T=v.split(S.formatSeparator),M=T.shift().trim(),O=T.join(S.formatSeparator).trim();return S.format(jT(r,p,M),O,l,Qo(Qo(Qo({},m),r),{},{interpolationkey:M}))};this.resetRegExp();var o=m&&m.missingInterpolationHandler||this.options.missingInterpolationHandler,_=m&&m.interpolation&&m.interpolation.skipOnVariables!==void 0?m.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables,y=[{regex:this.regexpUnescape,safeValue:function(v){return a(v)}},{regex:this.regexp,safeValue:function(v){return S.escapeValue?a(S.escape(v)):a(v)}}];return y.forEach(function(h){for(c=0;g=h.regex.exec(n);){var v=g[1].trim();if(s=u(v),s===void 0)if(typeof o=="function"){var b=o(n,g,m);s=typeof b=="string"?b:""}else if(m&&m.hasOwnProperty(v))s="";else if(_){s=g[0];continue}else S.logger.warn("missed to pass in variable ".concat(v," for interpolating ").concat(n)),s="";else typeof s!="string"&&!S.useRawValueToEscape&&(s=BT(s));var T=h.safeValue(s);if(n=n.replace(g[0],T),_?(h.regex.lastIndex+=s.length,h.regex.lastIndex-=g[0].length):h.regex.lastIndex=0,c++,c>=S.maxReplaces)break}}),n}},{key:"nest",value:function(n,r){var l=this,m=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},S,g,s;function c(o,_){var y=this.nestingOptionsSeparator;if(o.indexOf(y)<0)return o;var h=o.split(new RegExp("".concat(y,"[ ]*{"))),v="{".concat(h[1]);o=h[0],v=this.interpolate(v,s);var b=v.match(/'/g),T=v.match(/"/g);(b&&b.length%2===0&&!T||T.length%2!==0)&&(v=v.replace(/'/g,'"'));try{s=JSON.parse(v),_&&(s=Qo(Qo({},_),s))}catch(M){return this.logger.warn("failed parsing options string in nesting for key ".concat(o),M),"".concat(o).concat(y).concat(v)}return delete s.defaultValue,o}for(;S=this.nestingRegexp.exec(n);){var p=[];s=Qo({},m),s=s.replace&&typeof s.replace!="string"?s.replace:s,s.applyPostProcessor=!1,delete s.defaultValue;var a=!1;if(S[0].indexOf(this.formatSeparator)!==-1&&!/{.*}/.test(S[1])){var u=S[1].split(this.formatSeparator).map(function(o){return o.trim()});S[1]=u.shift(),p=u,a=!0}if(g=r(c.call(this,S[1].trim(),s),s),g&&S[0]===n&&typeof g!="string")return g;typeof g!="string"&&(g=BT(g)),g||(this.logger.warn("missed to resolve ".concat(S[1]," for nesting ").concat(n)),g=""),a&&(g=p.reduce(function(o,_){return l.format(o,_,m.lng,Qo(Qo({},m),{},{interpolationkey:S[1].trim()}))},g.trim())),n=n.replace(S[0],g),this.regexp.lastIndex=0}return n}}]),t}();function YT(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(l){return Object.getOwnPropertyDescriptor(t,l).enumerable})),n.push.apply(n,r)}return n}function Vd(t){for(var e=1;e-1){var r=t.split("(");e=r[0].toLowerCase().trim();var l=r[1].substring(0,r[1].length-1);if(e==="currency"&&l.indexOf(":")<0)n.currency||(n.currency=l.trim());else if(e==="relativetime"&&l.indexOf(":")<0)n.range||(n.range=l.trim());else{var m=l.split(";");m.forEach(function(S){if(!!S){var g=S.split(":"),s=KI(g),c=s[0],p=s.slice(1),a=p.join(":").trim().replace(/^'+|'+$/g,"");n[c.trim()]||(n[c.trim()]=a),a==="false"&&(n[c.trim()]=!1),a==="true"&&(n[c.trim()]=!0),isNaN(a)||(n[c.trim()]=parseInt(a,10))}})}}return{formatName:e,formatOptions:n}}function Np(t){var e={};return function(r,l,m){var S=l+JSON.stringify(m),g=e[S];return g||(g=t(l,m),e[S]=g),g(r)}}var _F=function(){function t(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};ll(this,t),this.logger=uu.create("formatter"),this.options=e,this.formats={number:Np(function(n,r){var l=new Intl.NumberFormat(n,r);return function(m){return l.format(m)}}),currency:Np(function(n,r){var l=new Intl.NumberFormat(n,Vd(Vd({},r),{},{style:"currency"}));return function(m){return l.format(m)}}),datetime:Np(function(n,r){var l=new Intl.DateTimeFormat(n,Vd({},r));return function(m){return l.format(m)}}),relativetime:Np(function(n,r){var l=new Intl.RelativeTimeFormat(n,Vd({},r));return function(m){return l.format(m,r.range||"day")}}),list:Np(function(n,r){var l=new Intl.ListFormat(n,Vd({},r));return function(m){return l.format(m)}})},this.init(e)}return ul(t,[{key:"init",value:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{interpolation:{}},l=r.interpolation;this.formatSeparator=l.formatSeparator?l.formatSeparator:l.formatSeparator||","}},{key:"add",value:function(n,r){this.formats[n.toLowerCase().trim()]=r}},{key:"addCached",value:function(n,r){this.formats[n.toLowerCase().trim()]=Np(r)}},{key:"format",value:function(n,r,l,m){var S=this,g=r.split(this.formatSeparator),s=g.reduce(function(c,p){var a=gF(p),u=a.formatName,o=a.formatOptions;if(S.formats[u]){var _=c;try{var y=m&&m.formatParams&&m.formatParams[m.interpolationkey]||{},h=y.locale||y.lng||m.locale||m.lng||l;_=S.formats[u](c,h,Vd(Vd(Vd({},o),m),y))}catch(v){S.logger.warn(v)}return _}else S.logger.warn("there was no format function for ".concat(u));return c},n);return s}}]),t}();function KT(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(l){return Object.getOwnPropertyDescriptor(t,l).enumerable})),n.push.apply(n,r)}return n}function QT(t){for(var e=1;e"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function wF(t,e){t.pending[e]!==void 0&&(delete t.pending[e],t.pendingCount--)}var bF=function(t){Py(n,t);var e=vF(n);function n(r,l,m){var S,g=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return ll(this,n),S=e.call(this),ky&&cf.call(of(S)),S.backend=r,S.store=l,S.services=m,S.languageUtils=m.languageUtils,S.options=g,S.logger=uu.create("backendConnector"),S.waitingReads=[],S.maxParallelReads=g.maxParallelReads||10,S.readingCalls=0,S.maxRetries=g.maxRetries>=0?g.maxRetries:5,S.retryTimeout=g.retryTimeout>=1?g.retryTimeout:350,S.state={},S.queue=[],S.backend&&S.backend.init&&S.backend.init(m,g.backend,g),S}return ul(n,[{key:"queueLoad",value:function(l,m,S,g){var s=this,c={},p={},a={},u={};return l.forEach(function(o){var _=!0;m.forEach(function(y){var h="".concat(o,"|").concat(y);!S.reload&&s.store.hasResourceBundle(o,y)?s.state[h]=2:s.state[h]<0||(s.state[h]===1?p[h]===void 0&&(p[h]=!0):(s.state[h]=1,_=!1,p[h]===void 0&&(p[h]=!0),c[h]===void 0&&(c[h]=!0),u[y]===void 0&&(u[y]=!0)))}),_||(a[o]=!0)}),(Object.keys(c).length||Object.keys(p).length)&&this.queue.push({pending:p,pendingCount:Object.keys(p).length,loaded:{},errors:[],callback:g}),{toLoad:Object.keys(c),pending:Object.keys(p),toLoadLanguages:Object.keys(a),toLoadNamespaces:Object.keys(u)}}},{key:"loaded",value:function(l,m,S){var g=l.split("|"),s=g[0],c=g[1];m&&this.emit("failedLoading",s,c,m),S&&this.store.addResourceBundle(s,c,S),this.state[l]=m?-1:2;var p={};this.queue.forEach(function(a){eF(a.loaded,[s],c),wF(a,l),m&&a.errors.push(m),a.pendingCount===0&&!a.done&&(Object.keys(a.loaded).forEach(function(u){p[u]||(p[u]={});var o=a.loaded[u];o.length&&o.forEach(function(_){p[u][_]===void 0&&(p[u][_]=!0)})}),a.done=!0,a.errors.length?a.callback(a.errors):a.callback())}),this.emit("loaded",p),this.queue=this.queue.filter(function(a){return!a.done})}},{key:"read",value:function(l,m,S){var g=this,s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,c=arguments.length>4&&arguments[4]!==void 0?arguments[4]:this.retryTimeout,p=arguments.length>5?arguments[5]:void 0;if(!l.length)return p(null,{});if(this.readingCalls>=this.maxParallelReads){this.waitingReads.push({lng:l,ns:m,fcName:S,tried:s,wait:c,callback:p});return}this.readingCalls++;var a=function(y,h){if(g.readingCalls--,g.waitingReads.length>0){var v=g.waitingReads.shift();g.read(v.lng,v.ns,v.fcName,v.tried,v.wait,v.callback)}if(y&&h&&s2&&arguments[2]!==void 0?arguments[2]:{},s=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),s&&s();typeof l=="string"&&(l=this.languageUtils.toResolveHierarchy(l)),typeof m=="string"&&(m=[m]);var c=this.queueLoad(l,m,g,s);if(!c.toLoad.length)return c.pending.length||s(),null;c.toLoad.forEach(function(p){S.loadOne(p)})}},{key:"load",value:function(l,m,S){this.prepareLoading(l,m,{},S)}},{key:"reload",value:function(l,m,S){this.prepareLoading(l,m,{reload:!0},S)}},{key:"loadOne",value:function(l){var m=this,S=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"",g=l.split("|"),s=g[0],c=g[1];this.read(s,c,"read",void 0,void 0,function(p,a){p&&m.logger.warn("".concat(S,"loading namespace ").concat(c," for language ").concat(s," failed"),p),!p&&a&&m.logger.log("".concat(S,"loaded namespace ").concat(c," for language ").concat(s),a),m.loaded(l,p,a)})}},{key:"saveMissing",value:function(l,m,S,g,s){var c=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{},p=arguments.length>6&&arguments[6]!==void 0?arguments[6]:function(){};if(this.services.utils&&this.services.utils.hasLoadedNamespace&&!this.services.utils.hasLoadedNamespace(m)){this.logger.warn('did not save key "'.concat(S,'" as the namespace "').concat(m,'" was not yet loaded'),"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!");return}if(!(S==null||S==="")){if(this.backend&&this.backend.create){var a=QT(QT({},c),{},{isUpdate:s}),u=this.backend.create.bind(this.backend);if(u.length<6)try{var o;u.length===5?o=u(l,m,S,g,a):o=u(l,m,S,g),o&&typeof o.then=="function"?o.then(function(_){return p(null,_)}).catch(p):p(null,o)}catch(_){p(_)}else u(l,m,S,g,p,a)}!l||!l[0]||this.store.addResource(l[0],m,S,g)}}}]),n}(cf);function JT(){return{debug:!1,initImmediate:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!0,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:function(e){var n={};if(al(e[1])==="object"&&(n=e[1]),typeof e[1]=="string"&&(n.defaultValue=e[1]),typeof e[2]=="string"&&(n.tDescription=e[2]),al(e[2])==="object"||al(e[3])==="object"){var r=e[3]||e[2];Object.keys(r).forEach(function(l){n[l]=r[l]})}return n},interpolation:{escapeValue:!0,format:function(e,n,r,l){return e},prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0}}}function ZT(t){return typeof t.ns=="string"&&(t.ns=[t.ns]),typeof t.fallbackLng=="string"&&(t.fallbackLng=[t.fallbackLng]),typeof t.fallbackNS=="string"&&(t.fallbackNS=[t.fallbackNS]),t.supportedLngs&&t.supportedLngs.indexOf("cimode")<0&&(t.supportedLngs=t.supportedLngs.concat(["cimode"])),t}function eC(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(l){return Object.getOwnPropertyDescriptor(t,l).enumerable})),n.push.apply(n,r)}return n}function su(t){for(var e=1;e"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function u0(){}function TF(t){var e=Object.getOwnPropertyNames(Object.getPrototypeOf(t));e.forEach(function(n){typeof t[n]=="function"&&(t[n]=t[n].bind(t))})}var iy=function(t){Py(n,t);var e=xF(n);function n(){var r,l=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},m=arguments.length>1?arguments[1]:void 0;if(ll(this,n),r=e.call(this),ky&&cf.call(of(r)),r.options=ZT(l),r.services={},r.logger=uu,r.modules={external:[]},TF(of(r)),m&&!r.isInitialized&&!l.isClone){if(!r.options.initImmediate)return r.init(l,m),o_(r,of(r));setTimeout(function(){r.init(l,m)},0)}return r}return ul(n,[{key:"init",value:function(){var l=this,m=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},S=arguments.length>1?arguments[1]:void 0;typeof m=="function"&&(S=m,m={}),!m.defaultNS&&m.defaultNS!==!1&&m.ns&&(typeof m.ns=="string"?m.defaultNS=m.ns:m.ns.indexOf("translation")<0&&(m.defaultNS=m.ns[0]));var g=JT();this.options=su(su(su({},g),this.options),ZT(m)),this.options.compatibilityAPI!=="v1"&&(this.options.interpolation=su(su({},g.interpolation),this.options.interpolation)),m.keySeparator!==void 0&&(this.options.userDefinedKeySeparator=m.keySeparator),m.nsSeparator!==void 0&&(this.options.userDefinedNsSeparator=m.nsSeparator);function s(v){return v?typeof v=="function"?new v:v:null}if(!this.options.isClone){this.modules.logger?uu.init(s(this.modules.logger),this.options):uu.init(null,this.options);var c;this.modules.formatter?c=this.modules.formatter:typeof Intl<"u"&&(c=_F);var p=new HT(this.options);this.store=new oF(this.options.resources,this.options);var a=this.services;a.logger=uu,a.resourceStore=this.store,a.languageUtils=p,a.pluralResolver=new pF(p,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),c&&(!this.options.interpolation.format||this.options.interpolation.format===g.interpolation.format)&&(a.formatter=s(c),a.formatter.init(a,this.options),this.options.interpolation.format=a.formatter.format.bind(a.formatter)),a.interpolator=new mF(this.options),a.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},a.backendConnector=new bF(s(this.modules.backend),a.resourceStore,a,this.options),a.backendConnector.on("*",function(v){for(var b=arguments.length,T=new Array(b>1?b-1:0),M=1;M1?b-1:0),M=1;M0&&u[0]!=="dev"&&(this.options.lng=u[0])}!this.services.languageDetector&&!this.options.lng&&this.logger.warn("init: no languageDetector is used and no lng is defined");var o=["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"];o.forEach(function(v){l[v]=function(){var b;return(b=l.store)[v].apply(b,arguments)}});var _=["addResource","addResources","addResourceBundle","removeResourceBundle"];_.forEach(function(v){l[v]=function(){var b;return(b=l.store)[v].apply(b,arguments),l}});var y=yg(),h=function(){var b=function(M,O){l.isInitialized&&!l.initializedStoreOnce&&l.logger.warn("init: i18next is already initialized. You should call init just once!"),l.isInitialized=!0,l.options.isClone||l.logger.log("initialized",l.options),l.emit("initialized",l.options),y.resolve(O),S(M,O)};if(l.languages&&l.options.compatibilityAPI!=="v1"&&!l.isInitialized)return b(null,l.t.bind(l));l.changeLanguage(l.options.lng,b)};return this.options.resources||!this.options.initImmediate?h():setTimeout(h,0),y}},{key:"loadResources",value:function(l){var m=this,S=arguments.length>1&&arguments[1]!==void 0?arguments[1]:u0,g=S,s=typeof l=="string"?l:this.language;if(typeof l=="function"&&(g=l),!this.options.resources||this.options.partialBundledLanguages){if(s&&s.toLowerCase()==="cimode")return g();var c=[],p=function(o){if(!!o){var _=m.services.languageUtils.toResolveHierarchy(o);_.forEach(function(y){c.indexOf(y)<0&&c.push(y)})}};if(s)p(s);else{var a=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);a.forEach(function(u){return p(u)})}this.options.preload&&this.options.preload.forEach(function(u){return p(u)}),this.services.backendConnector.load(c,this.options.ns,function(u){!u&&!m.resolvedLanguage&&m.language&&m.setResolvedLanguage(m.language),g(u)})}else g(null)}},{key:"reloadResources",value:function(l,m,S){var g=yg();return l||(l=this.languages),m||(m=this.options.ns),S||(S=u0),this.services.backendConnector.reload(l,m,function(s){g.resolve(),S(s)}),g}},{key:"use",value:function(l){if(!l)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!l.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return l.type==="backend"&&(this.modules.backend=l),(l.type==="logger"||l.log&&l.warn&&l.error)&&(this.modules.logger=l),l.type==="languageDetector"&&(this.modules.languageDetector=l),l.type==="i18nFormat"&&(this.modules.i18nFormat=l),l.type==="postProcessor"&&dE.addPostProcessor(l),l.type==="formatter"&&(this.modules.formatter=l),l.type==="3rdParty"&&this.modules.external.push(l),this}},{key:"setResolvedLanguage",value:function(l){if(!(!l||!this.languages)&&!(["cimode","dev"].indexOf(l)>-1))for(var m=0;m-1)&&this.store.hasLanguageSomeTranslations(S)){this.resolvedLanguage=S;break}}}},{key:"changeLanguage",value:function(l,m){var S=this;this.isLanguageChangingTo=l;var g=yg();this.emit("languageChanging",l);var s=function(u){S.language=u,S.languages=S.services.languageUtils.toResolveHierarchy(u),S.resolvedLanguage=void 0,S.setResolvedLanguage(u)},c=function(u,o){o?(s(o),S.translator.changeLanguage(o),S.isLanguageChangingTo=void 0,S.emit("languageChanged",o),S.logger.log("languageChanged",o)):S.isLanguageChangingTo=void 0,g.resolve(function(){return S.t.apply(S,arguments)}),m&&m(u,function(){return S.t.apply(S,arguments)})},p=function(u){!l&&!u&&S.services.languageDetector&&(u=[]);var o=typeof u=="string"?u:S.services.languageUtils.getBestMatchFromCodes(u);o&&(S.language||s(o),S.translator.language||S.translator.changeLanguage(o),S.services.languageDetector&&S.services.languageDetector.cacheUserLanguage&&S.services.languageDetector.cacheUserLanguage(o)),S.loadResources(o,function(_){c(_,o)})};return!l&&this.services.languageDetector&&!this.services.languageDetector.async?p(this.services.languageDetector.detect()):!l&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect.length===0?this.services.languageDetector.detect().then(p):this.services.languageDetector.detect(p):p(l),g}},{key:"getFixedT",value:function(l,m,S){var g=this,s=function c(p,a){var u;if(al(a)!=="object"){for(var o=arguments.length,_=new Array(o>2?o-2:0),y=2;y1&&arguments[1]!==void 0?arguments[1]:{};if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;var g=this.resolvedLanguage||this.languages[0],s=this.options?this.options.fallbackLng:!1,c=this.languages[this.languages.length-1];if(g.toLowerCase()==="cimode")return!0;var p=function(o,_){var y=m.services.backendConnector.state["".concat(o,"|").concat(_)];return y===-1||y===2};if(S.precheck){var a=S.precheck(this,p);if(a!==void 0)return a}return!!(this.hasResourceBundle(g,l)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||p(g,l)&&(!s||p(c,l)))}},{key:"loadNamespaces",value:function(l,m){var S=this,g=yg();return this.options.ns?(typeof l=="string"&&(l=[l]),l.forEach(function(s){S.options.ns.indexOf(s)<0&&S.options.ns.push(s)}),this.loadResources(function(s){g.resolve(),m&&m(s)}),g):(m&&m(),Promise.resolve())}},{key:"loadLanguages",value:function(l,m){var S=yg();typeof l=="string"&&(l=[l]);var g=this.options.preload||[],s=l.filter(function(c){return g.indexOf(c)<0});return s.length?(this.options.preload=g.concat(s),this.loadResources(function(c){S.resolve(),m&&m(c)}),S):(m&&m(),Promise.resolve())}},{key:"dir",value:function(l){if(l||(l=this.resolvedLanguage||(this.languages&&this.languages.length>0?this.languages[0]:this.language)),!l)return"rtl";var m=["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"],S=this.services&&this.services.languageUtils||new HT(JT());return m.indexOf(S.getLanguagePartFromCode(l))>-1||l.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}},{key:"cloneInstance",value:function(){var l=this,m=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},S=arguments.length>1&&arguments[1]!==void 0?arguments[1]:u0,g=su(su(su({},this.options),m),{isClone:!0}),s=new n(g);(m.debug!==void 0||m.prefix!==void 0)&&(s.logger=s.logger.clone(m));var c=["store","services","language"];return c.forEach(function(p){s[p]=l[p]}),s.services=su({},this.services),s.services.utils={hasLoadedNamespace:s.hasLoadedNamespace.bind(s)},s.translator=new GT(s.services,s.options),s.translator.on("*",function(p){for(var a=arguments.length,u=new Array(a>1?a-1:0),o=1;o0&&arguments[0]!==void 0?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0;return new iy(t,e)});var Ys=iy.createInstance();Ys.createInstance=iy.createInstance;Ys.createInstance;Ys.dir;Ys.init;Ys.loadResources;Ys.reloadResources;Ys.use;Ys.changeLanguage;Ys.getFixedT;Ys.t;Ys.exists;Ys.setDefaultNamespace;Ys.hasLoadedNamespace;Ys.loadNamespaces;Ys.loadLanguages;export{fA as F,zF as P,Gh as R,WI as S,BF as X,VF as _,rO as a,IF as b,MF as c,OF as d,FF as e,Ik as f,PF as g,$F as h,RF as i,rl as j,Lr as k,bT as l,VI as m,NF as n,jF as o,EF as p,WF as q,rr as r,kF as s,Ys as t,DF as u,AF as v,LF as w,rS as x}; diff --git a/canvas.svg b/canvas.svg new file mode 100644 index 0000000..8841b20 --- /dev/null +++ b/canvas.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..0f277b4 --- /dev/null +++ b/index.html @@ -0,0 +1,18 @@ + + + + + + + paint-board + + + + + + + +
+ + + diff --git a/manifest.webmanifest b/manifest.webmanifest new file mode 100644 index 0000000..4c57856 --- /dev/null +++ b/manifest.webmanifest @@ -0,0 +1 @@ +{"name":"PAINT-BOARD","short_name":"paint-board","start_url":"/paint-board/","display":"standalone","background_color":"#eef1ff","lang":"en","scope":"/paint-board/","theme_color":"#eef1ff","icons":[{"src":"/paint-board/pwa-192.png","sizes":"192x192","type":"image/png"},{"src":"/paint-board/pwa-512.png","sizes":"512x512","type":"image/png"}]} diff --git a/pattern/carbon.png b/pattern/carbon.png new file mode 100644 index 0000000..85da012 Binary files /dev/null and b/pattern/carbon.png differ diff --git a/pattern/cloth.png b/pattern/cloth.png new file mode 100644 index 0000000..ffc2cda Binary files /dev/null and b/pattern/cloth.png differ diff --git a/pattern/crayon.png b/pattern/crayon.png new file mode 100644 index 0000000..0011fac Binary files /dev/null and b/pattern/crayon.png differ diff --git a/pattern/crayonDark.png b/pattern/crayonDark.png new file mode 100644 index 0000000..1628453 Binary files /dev/null and b/pattern/crayonDark.png differ diff --git a/pattern/oil.png b/pattern/oil.png new file mode 100644 index 0000000..d0d66e4 Binary files /dev/null and b/pattern/oil.png differ diff --git a/pwa-192.png b/pwa-192.png new file mode 100644 index 0000000..902ca7c Binary files /dev/null and b/pwa-192.png differ diff --git a/pwa-512.png b/pwa-512.png new file mode 100644 index 0000000..b9040c1 Binary files /dev/null and b/pwa-512.png differ diff --git a/registerSW.js b/registerSW.js new file mode 100644 index 0000000..725a47c --- /dev/null +++ b/registerSW.js @@ -0,0 +1 @@ +if('serviceWorker' in navigator) {window.addEventListener('load', () => {navigator.serviceWorker.register('/paint-board/sw.js', { scope: '/paint-board/' })})} \ No newline at end of file diff --git a/sw.js b/sw.js new file mode 100644 index 0000000..40654a6 --- /dev/null +++ b/sw.js @@ -0,0 +1 @@ +if(!self.define){let e,n={};const s=(s,t)=>(s=new URL(s+".js",t).href,n[s]||new Promise((n=>{if("document"in self){const e=document.createElement("script");e.src=s,e.onload=n,document.head.appendChild(e)}else e=s,importScripts(s),n()})).then((()=>{let e=n[s];if(!e)throw new Error(`Module ${s} didn’t register its module`);return e})));self.define=(t,i)=>{const r=e||("document"in self?document.currentScript.src:"")||location.href;if(n[r])return;let o={};const c=e=>s(e,r),a={module:{uri:r},exports:o,require:c};n[r]=Promise.all(t.map((e=>a[e]||c(e)))).then((e=>(i(...e),o)))}}define(["./workbox-d761f494"],(function(e){"use strict";self.skipWaiting(),e.clientsClaim(),e.precacheAndRoute([{url:"assets/index.bbe9be11.js",revision:null},{url:"assets/index.df7f0347.css",revision:null},{url:"assets/vendor.ec2365ba.js",revision:null},{url:"canvas.svg",revision:"d7802a1962db98a9f7e1b5d2360f8b3f"},{url:"index.html",revision:"e82a0ffaef487abc690799cf42da6c56"},{url:"pattern/carbon.png",revision:"c0f5b6ebf96dc6793e37cc0b4fb75f6d"},{url:"pattern/cloth.png",revision:"97939a3f3ae4e22479facb3777365260"},{url:"pattern/crayon.png",revision:"fd693e9513bc860387dd22cbdaba7e99"},{url:"pattern/crayonDark.png",revision:"02464a71c93b4ed6a6ed1ed056c18481"},{url:"pattern/oil.png",revision:"5bef8d07b80ec85cd465031cbb69f61e"},{url:"pwa-192.png",revision:"203d9eb769f5d3da0f19bdbd96ced716"},{url:"pwa-512.png",revision:"9a1575ccb13734f6980b0f474fa65a35"},{url:"registerSW.js",revision:"06c3ade45b4ad6d8c6c32fdf9d77e367"},{url:"manifest.webmanifest",revision:"16cfb04e505a7252f80551b6793bc7e7"}],{}),e.cleanupOutdatedCaches(),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("index.html"))),e.registerRoute(/^https:\/\/raw\.githubusercontent\.com\//,new e.StaleWhileRevalidate({cacheName:"github-raw-content",plugins:[new e.ExpirationPlugin({maxEntries:100,maxAgeSeconds:2592e3})]}),"GET"),e.registerRoute(/^https:\/\/fonts\.googleapis\.com\//,new e.StaleWhileRevalidate({cacheName:"google-fonts-stylesheets",plugins:[new e.ExpirationPlugin({maxEntries:100,maxAgeSeconds:2592e3})]}),"GET"),e.registerRoute(/^https:\/\/fonts\.gstatic\.com\//,new e.StaleWhileRevalidate({cacheName:"google-fonts-webfonts",plugins:[new e.ExpirationPlugin({maxEntries:100,maxAgeSeconds:2592e3})]}),"GET"),e.registerRoute(/^https:\/\/fonts\.font\.im\//,new e.StaleWhileRevalidate({cacheName:"font-im",plugins:[new e.ExpirationPlugin({maxEntries:100,maxAgeSeconds:2592e3})]}),"GET")})); diff --git a/workbox-d761f494.js b/workbox-d761f494.js new file mode 100644 index 0000000..dc85e16 --- /dev/null +++ b/workbox-d761f494.js @@ -0,0 +1 @@ +define(["exports"],(function(t){"use strict";try{self["workbox:core:7.2.0"]&&_()}catch(t){}const e=(t,...e)=>{let s=t;return e.length>0&&(s+=` :: ${JSON.stringify(e)}`),s};class s extends Error{constructor(t,s){super(e(t,s)),this.name=t,this.details=s}}try{self["workbox:routing:7.2.0"]&&_()}catch(t){}const n=t=>t&&"object"==typeof t?t:{handle:t};class i{constructor(t,e,s="GET"){this.handler=n(e),this.match=t,this.method=s}setCatchHandler(t){this.catchHandler=n(t)}}class r extends i{constructor(t,e,s){super((({url:e})=>{const s=t.exec(e.href);if(s&&(e.origin===location.origin||0===s.index))return s.slice(1)}),e,s)}}class a{constructor(){this.t=new Map,this.i=new Map}get routes(){return this.t}addFetchListener(){self.addEventListener("fetch",(t=>{const{request:e}=t,s=this.handleRequest({request:e,event:t});s&&t.respondWith(s)}))}addCacheListener(){self.addEventListener("message",(t=>{if(t.data&&"CACHE_URLS"===t.data.type){const{payload:e}=t.data,s=Promise.all(e.urlsToCache.map((e=>{"string"==typeof e&&(e=[e]);const s=new Request(...e);return this.handleRequest({request:s,event:t})})));t.waitUntil(s),t.ports&&t.ports[0]&&s.then((()=>t.ports[0].postMessage(!0)))}}))}handleRequest({request:t,event:e}){const s=new URL(t.url,location.href);if(!s.protocol.startsWith("http"))return;const n=s.origin===location.origin,{params:i,route:r}=this.findMatchingRoute({event:e,request:t,sameOrigin:n,url:s});let a=r&&r.handler;const o=t.method;if(!a&&this.i.has(o)&&(a=this.i.get(o)),!a)return;let c;try{c=a.handle({url:s,request:t,event:e,params:i})}catch(t){c=Promise.reject(t)}const h=r&&r.catchHandler;return c instanceof Promise&&(this.o||h)&&(c=c.catch((async n=>{if(h)try{return await h.handle({url:s,request:t,event:e,params:i})}catch(t){t instanceof Error&&(n=t)}if(this.o)return this.o.handle({url:s,request:t,event:e});throw n}))),c}findMatchingRoute({url:t,sameOrigin:e,request:s,event:n}){const i=this.t.get(s.method)||[];for(const r of i){let i;const a=r.match({url:t,sameOrigin:e,request:s,event:n});if(a)return i=a,(Array.isArray(i)&&0===i.length||a.constructor===Object&&0===Object.keys(a).length||"boolean"==typeof a)&&(i=void 0),{route:r,params:i}}return{}}setDefaultHandler(t,e="GET"){this.i.set(e,n(t))}setCatchHandler(t){this.o=n(t)}registerRoute(t){this.t.has(t.method)||this.t.set(t.method,[]),this.t.get(t.method).push(t)}unregisterRoute(t){if(!this.t.has(t.method))throw new s("unregister-route-but-not-found-with-method",{method:t.method});const e=this.t.get(t.method).indexOf(t);if(!(e>-1))throw new s("unregister-route-route-not-registered");this.t.get(t.method).splice(e,1)}}let o;const c=()=>(o||(o=new a,o.addFetchListener(),o.addCacheListener()),o);function h(t,e,n){let a;if("string"==typeof t){const s=new URL(t,location.href);a=new i((({url:t})=>t.href===s.href),e,n)}else if(t instanceof RegExp)a=new r(t,e,n);else if("function"==typeof t)a=new i(t,e,n);else{if(!(t instanceof i))throw new s("unsupported-route-type",{moduleName:"workbox-routing",funcName:"registerRoute",paramName:"capture"});a=t}return c().registerRoute(a),a}const u={googleAnalytics:"googleAnalytics",precache:"precache-v2",prefix:"workbox",runtime:"runtime",suffix:"undefined"!=typeof registration?registration.scope:""},l=t=>[u.prefix,t,u.suffix].filter((t=>t&&t.length>0)).join("-"),f=t=>t||l(u.precache),w=t=>t||l(u.runtime);function d(t){t.then((()=>{}))}const p=new Set;function y(){return y=Object.assign?Object.assign.bind():function(t){for(var e=1;e(t[e]=s,!0),has:(t,e)=>t instanceof IDBTransaction&&("done"===e||"store"===e)||e in t};function x(t){return t!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(m||(m=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(t)?function(...e){return t.apply(E(this),e),I(R.get(this))}:function(...e){return I(t.apply(E(this),e))}:function(e,...s){const n=t.call(E(this),e,...s);return b.set(n,e.sort?e.sort():[e]),I(n)}}function L(t){return"function"==typeof t?x(t):(t instanceof IDBTransaction&&function(t){if(v.has(t))return;const e=new Promise(((e,s)=>{const n=()=>{t.removeEventListener("complete",i),t.removeEventListener("error",r),t.removeEventListener("abort",r)},i=()=>{e(),n()},r=()=>{s(t.error||new DOMException("AbortError","AbortError")),n()};t.addEventListener("complete",i),t.addEventListener("error",r),t.addEventListener("abort",r)}));v.set(t,e)}(t),e=t,(g||(g=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])).some((t=>e instanceof t))?new Proxy(t,U):t);var e}function I(t){if(t instanceof IDBRequest)return function(t){const e=new Promise(((e,s)=>{const n=()=>{t.removeEventListener("success",i),t.removeEventListener("error",r)},i=()=>{e(I(t.result)),n()},r=()=>{s(t.error),n()};t.addEventListener("success",i),t.addEventListener("error",r)}));return e.then((e=>{e instanceof IDBCursor&&R.set(e,t)})).catch((()=>{})),D.set(e,t),e}(t);if(q.has(t))return q.get(t);const e=L(t);return e!==t&&(q.set(t,e),D.set(e,t)),e}const E=t=>D.get(t);const C=["get","getKey","getAll","getAllKeys","count"],N=["put","add","delete","clear"],O=new Map;function B(t,e){if(!(t instanceof IDBDatabase)||e in t||"string"!=typeof e)return;if(O.get(e))return O.get(e);const s=e.replace(/FromIndex$/,""),n=e!==s,i=N.includes(s);if(!(s in(n?IDBIndex:IDBObjectStore).prototype)||!i&&!C.includes(s))return;const r=async function(t,...e){const r=this.transaction(t,i?"readwrite":"readonly");let a=r.store;return n&&(a=a.index(e.shift())),(await Promise.all([a[s](...e),i&&r.done]))[0]};return O.set(e,r),r}U=(t=>y({},t,{get:(e,s,n)=>B(e,s)||t.get(e,s,n),has:(e,s)=>!!B(e,s)||t.has(e,s)}))(U);try{self["workbox:expiration:7.2.0"]&&_()}catch(t){}const k="cache-entries",M=t=>{const e=new URL(t,location.href);return e.hash="",e.href};class T{constructor(t){this.h=null,this.u=t}l(t){const e=t.createObjectStore(k,{keyPath:"id"});e.createIndex("cacheName","cacheName",{unique:!1}),e.createIndex("timestamp","timestamp",{unique:!1})}p(t){this.l(t),this.u&&function(t,{blocked:e}={}){const s=indexedDB.deleteDatabase(t);e&&s.addEventListener("blocked",(t=>e(t.oldVersion,t))),I(s).then((()=>{}))}(this.u)}async setTimestamp(t,e){const s={url:t=M(t),timestamp:e,cacheName:this.u,id:this.m(t)},n=(await this.getDb()).transaction(k,"readwrite",{durability:"relaxed"});await n.store.put(s),await n.done}async getTimestamp(t){const e=await this.getDb(),s=await e.get(k,this.m(t));return null==s?void 0:s.timestamp}async expireEntries(t,e){const s=await this.getDb();let n=await s.transaction(k).store.index("timestamp").openCursor(null,"prev");const i=[];let r=0;for(;n;){const s=n.value;s.cacheName===this.u&&(t&&s.timestamp=e?i.push(n.value):r++),n=await n.continue()}const a=[];for(const t of i)await s.delete(k,t.id),a.push(t.url);return a}m(t){return this.u+"|"+M(t)}async getDb(){return this.h||(this.h=await function(t,e,{blocked:s,upgrade:n,blocking:i,terminated:r}={}){const a=indexedDB.open(t,e),o=I(a);return n&&a.addEventListener("upgradeneeded",(t=>{n(I(a.result),t.oldVersion,t.newVersion,I(a.transaction),t)})),s&&a.addEventListener("blocked",(t=>s(t.oldVersion,t.newVersion,t))),o.then((t=>{r&&t.addEventListener("close",(()=>r())),i&&t.addEventListener("versionchange",(t=>i(t.oldVersion,t.newVersion,t)))})).catch((()=>{})),o}("workbox-expiration",1,{upgrade:this.p.bind(this)})),this.h}}class W{constructor(t,e={}){this.R=!1,this.v=!1,this.q=e.maxEntries,this.D=e.maxAgeSeconds,this.U=e.matchOptions,this.u=t,this.L=new T(t)}async expireEntries(){if(this.R)return void(this.v=!0);this.R=!0;const t=this.D?Date.now()-1e3*this.D:0,e=await this.L.expireEntries(t,this.q),s=await self.caches.open(this.u);for(const t of e)await s.delete(t,this.U);this.R=!1,this.v&&(this.v=!1,d(this.expireEntries()))}async updateTimestamp(t){await this.L.setTimestamp(t,Date.now())}async isURLExpired(t){if(this.D){const e=await this.L.getTimestamp(t),s=Date.now()-1e3*this.D;return void 0===e||e200===t.status||0===t.status?t:null};function P(t,e){const s=new URL(t);for(const t of e)s.searchParams.delete(t);return s.href}class S{constructor(){this.promise=new Promise(((t,e)=>{this.resolve=t,this.reject=e}))}}function K(t){return"string"==typeof t?new Request(t):t}class A{constructor(t,e){this._={},Object.assign(this,e),this.event=e.event,this.I=t,this.C=new S,this.N=[],this.O=[...t.plugins],this.B=new Map;for(const t of this.O)this.B.set(t,{});this.event.waitUntil(this.C.promise)}async fetch(t){const{event:e}=this;let n=K(t);if("navigate"===n.mode&&e instanceof FetchEvent&&e.preloadResponse){const t=await e.preloadResponse;if(t)return t}const i=this.hasCallback("fetchDidFail")?n.clone():null;try{for(const t of this.iterateCallbacks("requestWillFetch"))n=await t({request:n.clone(),event:e})}catch(t){if(t instanceof Error)throw new s("plugin-error-request-will-fetch",{thrownErrorMessage:t.message})}const r=n.clone();try{let t;t=await fetch(n,"navigate"===n.mode?void 0:this.I.fetchOptions);for(const s of this.iterateCallbacks("fetchDidSucceed"))t=await s({event:e,request:r,response:t});return t}catch(t){throw i&&await this.runCallbacks("fetchDidFail",{error:t,event:e,originalRequest:i.clone(),request:r.clone()}),t}}async fetchAndCachePut(t){const e=await this.fetch(t),s=e.clone();return this.waitUntil(this.cachePut(t,s)),e}async cacheMatch(t){const e=K(t);let s;const{cacheName:n,matchOptions:i}=this.I,r=await this.getCacheKey(e,"read"),a=Object.assign(Object.assign({},i),{cacheName:n});s=await caches.match(r,a);for(const t of this.iterateCallbacks("cachedResponseWillBeUsed"))s=await t({cacheName:n,matchOptions:i,cachedResponse:s,request:r,event:this.event})||void 0;return s}async cachePut(t,e){const n=K(t);var i;await(i=0,new Promise((t=>setTimeout(t,i))));const r=await this.getCacheKey(n,"write");if(!e)throw new s("cache-put-with-no-response",{url:(a=r.url,new URL(String(a),location.href).href.replace(new RegExp(`^${location.origin}`),""))});var a;const o=await this.k(e);if(!o)return!1;const{cacheName:c,matchOptions:h}=this.I,u=await self.caches.open(c),l=this.hasCallback("cacheDidUpdate"),f=l?await async function(t,e,s,n){const i=P(e.url,s);if(e.url===i)return t.match(e,n);const r=Object.assign(Object.assign({},n),{ignoreSearch:!0}),a=await t.keys(e,r);for(const e of a)if(i===P(e.url,s))return t.match(e,n)}(u,r.clone(),["__WB_REVISION__"],h):null;try{await u.put(r,l?o.clone():o)}catch(t){if(t instanceof Error)throw"QuotaExceededError"===t.name&&await async function(){for(const t of p)await t()}(),t}for(const t of this.iterateCallbacks("cacheDidUpdate"))await t({cacheName:c,oldResponse:f,newResponse:o.clone(),request:r,event:this.event});return!0}async getCacheKey(t,e){const s=`${t.url} | ${e}`;if(!this._[s]){let n=t;for(const t of this.iterateCallbacks("cacheKeyWillBeUsed"))n=K(await t({mode:e,request:n,event:this.event,params:this.params}));this._[s]=n}return this._[s]}hasCallback(t){for(const e of this.I.plugins)if(t in e)return!0;return!1}async runCallbacks(t,e){for(const s of this.iterateCallbacks(t))await s(e)}*iterateCallbacks(t){for(const e of this.I.plugins)if("function"==typeof e[t]){const s=this.B.get(e),n=n=>{const i=Object.assign(Object.assign({},n),{state:s});return e[t](i)};yield n}}waitUntil(t){return this.N.push(t),t}async doneWaiting(){let t;for(;t=this.N.shift();)await t}destroy(){this.C.resolve(null)}async k(t){let e=t,s=!1;for(const t of this.iterateCallbacks("cacheWillUpdate"))if(e=await t({request:this.request,response:e,event:this.event})||void 0,s=!0,!e)break;return s||e&&200!==e.status&&(e=void 0),e}}class F{constructor(t={}){this.cacheName=w(t.cacheName),this.plugins=t.plugins||[],this.fetchOptions=t.fetchOptions,this.matchOptions=t.matchOptions}handle(t){const[e]=this.handleAll(t);return e}handleAll(t){t instanceof FetchEvent&&(t={event:t,request:t.request});const e=t.event,s="string"==typeof t.request?new Request(t.request):t.request,n="params"in t?t.params:void 0,i=new A(this,{event:e,request:s,params:n}),r=this.M(i,s,e);return[r,this.T(r,i,s,e)]}async M(t,e,n){let i;await t.runCallbacks("handlerWillStart",{event:n,request:e});try{if(i=await this.W(e,t),!i||"error"===i.type)throw new s("no-response",{url:e.url})}catch(s){if(s instanceof Error)for(const r of t.iterateCallbacks("handlerDidError"))if(i=await r({error:s,event:n,request:e}),i)break;if(!i)throw s}for(const s of t.iterateCallbacks("handlerWillRespond"))i=await s({event:n,request:e,response:i});return i}async T(t,e,s,n){let i,r;try{i=await t}catch(r){}try{await e.runCallbacks("handlerDidRespond",{event:n,request:s,response:i}),await e.doneWaiting()}catch(t){t instanceof Error&&(r=t)}if(await e.runCallbacks("handlerDidComplete",{event:n,request:s,response:i,error:r}),e.destroy(),r)throw r}}function H(t,e){const s=e();return t.waitUntil(s),s}try{self["workbox:precaching:7.2.0"]&&_()}catch(t){}function $(t){if(!t)throw new s("add-to-cache-list-unexpected-type",{entry:t});if("string"==typeof t){const e=new URL(t,location.href);return{cacheKey:e.href,url:e.href}}const{revision:e,url:n}=t;if(!n)throw new s("add-to-cache-list-unexpected-type",{entry:t});if(!e){const t=new URL(n,location.href);return{cacheKey:t.href,url:t.href}}const i=new URL(n,location.href),r=new URL(n,location.href);return i.searchParams.set("__WB_REVISION__",e),{cacheKey:i.href,url:r.href}}class G{constructor(){this.updatedURLs=[],this.notUpdatedURLs=[],this.handlerWillStart=async({request:t,state:e})=>{e&&(e.originalRequest=t)},this.cachedResponseWillBeUsed=async({event:t,state:e,cachedResponse:s})=>{if("install"===t.type&&e&&e.originalRequest&&e.originalRequest instanceof Request){const t=e.originalRequest.url;s?this.notUpdatedURLs.push(t):this.updatedURLs.push(t)}return s}}}class V{constructor({precacheController:t}){this.cacheKeyWillBeUsed=async({request:t,params:e})=>{const s=(null==e?void 0:e.cacheKey)||this.j.getCacheKeyForURL(t.url);return s?new Request(s,{headers:t.headers}):t},this.j=t}}let J,Q;async function z(t,e){let n=null;if(t.url){n=new URL(t.url).origin}if(n!==self.location.origin)throw new s("cross-origin-copy-response",{origin:n});const i=t.clone(),r={headers:new Headers(i.headers),status:i.status,statusText:i.statusText},a=e?e(r):r,o=function(){if(void 0===J){const t=new Response("");if("body"in t)try{new Response(t.body),J=!0}catch(t){J=!1}J=!1}return J}()?i.body:await i.blob();return new Response(o,a)}class X extends F{constructor(t={}){t.cacheName=f(t.cacheName),super(t),this.P=!1!==t.fallbackToNetwork,this.plugins.push(X.copyRedirectedCacheableResponsesPlugin)}async W(t,e){const s=await e.cacheMatch(t);return s||(e.event&&"install"===e.event.type?await this.S(t,e):await this.K(t,e))}async K(t,e){let n;const i=e.params||{};if(!this.P)throw new s("missing-precache-entry",{cacheName:this.cacheName,url:t.url});{const s=i.integrity,r=t.integrity,a=!r||r===s;n=await e.fetch(new Request(t,{integrity:"no-cors"!==t.mode?r||s:void 0})),s&&a&&"no-cors"!==t.mode&&(this.A(),await e.cachePut(t,n.clone()))}return n}async S(t,e){this.A();const n=await e.fetch(t);if(!await e.cachePut(t,n.clone()))throw new s("bad-precaching-response",{url:t.url,status:n.status});return n}A(){let t=null,e=0;for(const[s,n]of this.plugins.entries())n!==X.copyRedirectedCacheableResponsesPlugin&&(n===X.defaultPrecacheCacheabilityPlugin&&(t=s),n.cacheWillUpdate&&e++);0===e?this.plugins.push(X.defaultPrecacheCacheabilityPlugin):e>1&&null!==t&&this.plugins.splice(t,1)}}X.defaultPrecacheCacheabilityPlugin={cacheWillUpdate:async({response:t})=>!t||t.status>=400?null:t},X.copyRedirectedCacheableResponsesPlugin={cacheWillUpdate:async({response:t})=>t.redirected?await z(t):t};class Y{constructor({cacheName:t,plugins:e=[],fallbackToNetwork:s=!0}={}){this.F=new Map,this.H=new Map,this.$=new Map,this.I=new X({cacheName:f(t),plugins:[...e,new V({precacheController:this})],fallbackToNetwork:s}),this.install=this.install.bind(this),this.activate=this.activate.bind(this)}get strategy(){return this.I}precache(t){this.addToCacheList(t),this.G||(self.addEventListener("install",this.install),self.addEventListener("activate",this.activate),this.G=!0)}addToCacheList(t){const e=[];for(const n of t){"string"==typeof n?e.push(n):n&&void 0===n.revision&&e.push(n.url);const{cacheKey:t,url:i}=$(n),r="string"!=typeof n&&n.revision?"reload":"default";if(this.F.has(i)&&this.F.get(i)!==t)throw new s("add-to-cache-list-conflicting-entries",{firstEntry:this.F.get(i),secondEntry:t});if("string"!=typeof n&&n.integrity){if(this.$.has(t)&&this.$.get(t)!==n.integrity)throw new s("add-to-cache-list-conflicting-integrities",{url:i});this.$.set(t,n.integrity)}if(this.F.set(i,t),this.H.set(i,r),e.length>0){const t=`Workbox is precaching URLs without revision info: ${e.join(", ")}\nThis is generally NOT safe. Learn more at https://bit.ly/wb-precache`;console.warn(t)}}}install(t){return H(t,(async()=>{const e=new G;this.strategy.plugins.push(e);for(const[e,s]of this.F){const n=this.$.get(s),i=this.H.get(e),r=new Request(e,{integrity:n,cache:i,credentials:"same-origin"});await Promise.all(this.strategy.handleAll({params:{cacheKey:s},request:r,event:t}))}const{updatedURLs:s,notUpdatedURLs:n}=e;return{updatedURLs:s,notUpdatedURLs:n}}))}activate(t){return H(t,(async()=>{const t=await self.caches.open(this.strategy.cacheName),e=await t.keys(),s=new Set(this.F.values()),n=[];for(const i of e)s.has(i.url)||(await t.delete(i),n.push(i.url));return{deletedURLs:n}}))}getURLsToCacheKeys(){return this.F}getCachedURLs(){return[...this.F.keys()]}getCacheKeyForURL(t){const e=new URL(t,location.href);return this.F.get(e.href)}getIntegrityForCacheKey(t){return this.$.get(t)}async matchPrecache(t){const e=t instanceof Request?t.url:t,s=this.getCacheKeyForURL(e);if(s){return(await self.caches.open(this.strategy.cacheName)).match(s)}}createHandlerBoundToURL(t){const e=this.getCacheKeyForURL(t);if(!e)throw new s("non-precached-url",{url:t});return s=>(s.request=new Request(t),s.params=Object.assign({cacheKey:e},s.params),this.strategy.handle(s))}}const Z=()=>(Q||(Q=new Y),Q);class tt extends i{constructor(t,e){super((({request:s})=>{const n=t.getURLsToCacheKeys();for(const i of function*(t,{ignoreURLParametersMatching:e=[/^utm_/,/^fbclid$/],directoryIndex:s="index.html",cleanURLs:n=!0,urlManipulation:i}={}){const r=new URL(t,location.href);r.hash="",yield r.href;const a=function(t,e=[]){for(const s of[...t.searchParams.keys()])e.some((t=>t.test(s)))&&t.searchParams.delete(s);return t}(r,e);if(yield a.href,s&&a.pathname.endsWith("/")){const t=new URL(a.href);t.pathname+=s,yield t.href}if(n){const t=new URL(a.href);t.pathname+=".html",yield t.href}if(i){const t=i({url:r});for(const e of t)yield e.href}}(s.url,e)){const e=n.get(i);if(e){return{cacheKey:e,integrity:t.getIntegrityForCacheKey(e)}}}}),t.strategy)}}t.ExpirationPlugin=class{constructor(t={}){this.cachedResponseWillBeUsed=async({event:t,request:e,cacheName:s,cachedResponse:n})=>{if(!n)return null;const i=this.V(n),r=this.J(s);d(r.expireEntries());const a=r.updateTimestamp(e.url);if(t)try{t.waitUntil(a)}catch(t){}return i?n:null},this.cacheDidUpdate=async({cacheName:t,request:e})=>{const s=this.J(t);await s.updateTimestamp(e.url),await s.expireEntries()},this.X=t,this.D=t.maxAgeSeconds,this.Y=new Map,t.purgeOnQuotaError&&function(t){p.add(t)}((()=>this.deleteCacheAndMetadata()))}J(t){if(t===w())throw new s("expire-custom-caches-only");let e=this.Y.get(t);return e||(e=new W(t,this.X),this.Y.set(t,e)),e}V(t){if(!this.D)return!0;const e=this.Z(t);if(null===e)return!0;return e>=Date.now()-1e3*this.D}Z(t){if(!t.headers.has("date"))return null;const e=t.headers.get("date"),s=new Date(e).getTime();return isNaN(s)?null:s}async deleteCacheAndMetadata(){for(const[t,e]of this.Y)await self.caches.delete(t),await e.delete();this.Y=new Map}},t.NavigationRoute=class extends i{constructor(t,{allowlist:e=[/./],denylist:s=[]}={}){super((t=>this.tt(t)),t),this.et=e,this.st=s}tt({url:t,request:e}){if(e&&"navigate"!==e.mode)return!1;const s=t.pathname+t.search;for(const t of this.st)if(t.test(s))return!1;return!!this.et.some((t=>t.test(s)))}},t.StaleWhileRevalidate=class extends F{constructor(t={}){super(t),this.plugins.some((t=>"cacheWillUpdate"in t))||this.plugins.unshift(j)}async W(t,e){const n=e.fetchAndCachePut(t).catch((()=>{}));e.waitUntil(n);let i,r=await e.cacheMatch(t);if(r);else try{r=await n}catch(t){t instanceof Error&&(i=t)}if(!r)throw new s("no-response",{url:t.url,error:i});return r}},t.cleanupOutdatedCaches=function(){self.addEventListener("activate",(t=>{const e=f();t.waitUntil((async(t,e="-precache-")=>{const s=(await self.caches.keys()).filter((s=>s.includes(e)&&s.includes(self.registration.scope)&&s!==t));return await Promise.all(s.map((t=>self.caches.delete(t)))),s})(e).then((t=>{})))}))},t.clientsClaim=function(){self.addEventListener("activate",(()=>self.clients.claim()))},t.createHandlerBoundToURL=function(t){return Z().createHandlerBoundToURL(t)},t.precacheAndRoute=function(t,e){!function(t){Z().precache(t)}(t),function(t){const e=Z();h(new tt(e,t))}(e)},t.registerRoute=h}));