kline-orderbook-chart 1.1.2 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +26 -0
- package/dist/chart_engine.js +1 -1
- package/dist/chart_engine_bg.wasm +0 -0
- package/dist/mrd-chart-engine.mjs +1 -1
- package/package.json +1 -1
|
@@ -11,4 +11,4 @@
|
|
|
11
11
|
* Web: https://app.mrd-indicators.com
|
|
12
12
|
* NPM: https://www.npmjs.com/package/kline-orderbook-chart
|
|
13
13
|
*/
|
|
14
|
-
var Yn=Object.defineProperty;var Ms=(t,e,n)=>e in t?Yn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var $e=(t,e)=>()=>(t&&(e=t(t=0)),e);var Hn=(t,e)=>{for(var n in e)Yn(t,n,{get:e[n],enumerable:!0})};var U=(t,e,n)=>Ms(t,typeof e!="symbol"?e+"":e,n);var No={};Hn(No,{Point:()=>ie,etc:()=>si,getPublicKey:()=>To,getPublicKeyAsync:()=>Ao,hash:()=>Js,hashes:()=>xo,keygen:()=>ii,keygenAsync:()=>ai,sign:()=>ri,signAsync:()=>ei,utils:()=>li,verify:()=>oi,verifyAsync:()=>ni});var bo,mr,br,lo,co,$r,jr,Us,se,Gs,Ft,Ks,$s,js,Vt,vr,tn,mo,en,de,fo,rn,go,Qs,Fe,wo,gr,Le,yt,uo,nt,So,vo,nn,on,Js,Qr,Jr,oe,ie,ve,xe,yo,sn,ne,Ds,_o,ti,wr,an,ln,Eo,cn,fn,Ao,To,Co,Mo,Po,ei,ri,un,Lo,ni,oi,si,xo,_n,ii,ai,li,Sr,ci,Fo,Dr,fi,ho,po,ui,Ro=$e(()=>{bo=Object.freeze({p:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffedn,n:0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3edn,h:8n,a:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffecn,d:0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3n,Gx:0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51an,Gy:0x6666666666666666666666666666666666666666666666666666666666666658n}),{p:mr,n:br,Gx:lo,Gy:co,a:$r,d:jr,h:Us}=bo,se=32,Gs=(...t)=>{"captureStackTrace"in Error&&typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(...t)},Ft=(t="")=>{let e=new Error(t);throw Gs(e,Ft),e},Ks=t=>typeof t=="bigint",$s=t=>typeof t=="string",js=t=>t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in t&&t.BYTES_PER_ELEMENT===1,Vt=(t,e,n="")=>{let s=js(t),u=t?.length,r=e!==void 0;if(!s||r&&u!==e){let a=n&&`"${n}" `,f=r?` of length ${e}`:"",i=s?`length=${u}`:`type=${typeof t}`,c=a+"expected Uint8Array"+f+", got "+i;throw s?new RangeError(c):new TypeError(c)}return t},vr=t=>new Uint8Array(t),tn=t=>Uint8Array.from(t),mo=(t,e)=>t.toString(16).padStart(e,"0"),en=t=>Array.from(Vt(t)).map(e=>mo(e,2)).join(""),de={_0:48,_9:57,A:65,F:70,a:97,f:102},fo=t=>{if(t>=de._0&&t<=de._9)return t-de._0;if(t>=de.A&&t<=de.F)return t-(de.A-10);if(t>=de.a&&t<=de.f)return t-(de.a-10)},rn=t=>{let e="hex invalid";if(!$s(t))return Ft(e);let n=t.length,s=n/2;if(n%2)return Ft(e);let u=vr(s);for(let r=0,a=0;r<s;r++,a+=2){let f=fo(t.charCodeAt(a)),i=fo(t.charCodeAt(a+1));if(f===void 0||i===void 0)return Ft(e);u[r]=f*16+i}return u},go=()=>globalThis?.crypto,Qs=()=>go()?.subtle??Ft("crypto.subtle must be defined, consider polyfill"),Fe=(...t)=>{let e=0;for(let u of t)e+=Vt(u).length;let n=vr(e),s=0;return t.forEach(u=>{n.set(u,s),s+=u.length}),n},wo=(t=se)=>go().getRandomValues(vr(t)),gr=BigInt,Le=(t,e,n,s="bad number: out of range")=>{if(!Ks(t))throw new TypeError(s);if(e<=t&&t<n)return t;throw new RangeError(s)},yt=(t,e=mr)=>{let n=t%e;return n>=0n?n:e+n},uo=(1n<<255n)-1n,nt=t=>{t<0n&&Ft("negative coordinate");let e=(t>>255n)*19n+(t&uo);return e=(e>>255n)*19n+(e&uo),e%mr},So=t=>yt(t,br),vo=(t,e)=>{(t===0n||e<=0n)&&Ft("no inverse n="+t+" mod="+e);let n=yt(t,e),s=e,u=0n,r=1n,a=1n,f=0n;for(;n!==0n;){let i=s/n,c=s%n,o=u-a*i,h=r-f*i;s=n,n=c,u=a,r=f,a=o,f=h}return s===1n?yt(u,e):Ft("no inverse")},nn=t=>{let e=xo[t];return typeof e!="function"&&Ft("hashes."+t+" not set"),e},on=t=>Vt(t,64,"digest"),Js=t=>on(nn("sha512")(Vt(t,void 0,"message"))),Qr=t=>t instanceof ie?t:Ft("Point expected"),Jr=2n**256n,oe=class oe{constructor(e,n,s,u){U(this,"X");U(this,"Y");U(this,"Z");U(this,"T");let r=Jr;this.X=Le(e,0n,r),this.Y=Le(n,0n,r),this.Z=Le(s,1n,r),this.T=Le(u,0n,r),Object.freeze(this)}static CURVE(){return bo}static fromAffine(e){return new oe(e.x,e.y,1n,nt(e.x*e.y))}static fromBytes(e,n=!1){let s=jr,u=tn(Vt(e,se)),r=e[31];u[31]=r&-129;let a=sn(u);Le(a,0n,n?Jr:mr);let i=nt(a*a),c=yt(i-1n),o=nt(s*i+1n),{isValid:h,value:b}=ti(c,o);h||Ft("bad point: y not sqrt");let _=(b&1n)===1n,T=(r&128)!==0;return!n&&b===0n&&T&&Ft("bad point: x==0, isLastByteOdd"),T!==_&&(b=yt(-b)),new oe(b,a,1n,nt(b*a))}static fromHex(e,n){return oe.fromBytes(rn(e),n)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}assertValidity(){let e=$r,n=jr,s=this;if(s.is0())return Ft("bad point: ZERO");let{X:u,Y:r,Z:a,T:f}=s,i=nt(u*u),c=nt(r*r),o=nt(a*a),h=nt(o*o),b=nt(i*e),_=nt(o*(b+c)),T=yt(h+nt(n*nt(i*c)));if(_!==T)return Ft("bad point: equation left != right (1)");let p=nt(u*r),P=nt(a*f);return p!==P?Ft("bad point: equation left != right (2)"):this}equals(e){let{X:n,Y:s,Z:u}=this,{X:r,Y:a,Z:f}=Qr(e),i=nt(n*f),c=nt(r*u),o=nt(s*f),h=nt(a*u);return i===c&&o===h}is0(){return this.equals(xe)}negate(){return new oe(yt(-this.X),this.Y,this.Z,yt(-this.T))}double(){let{X:e,Y:n,Z:s}=this,u=$r,r=nt(e*e),a=nt(n*n),f=nt(2n*s*s),i=nt(u*r),c=yt(e+n),o=yt(nt(c*c)-r-a),h=yt(i+a),b=yt(h-f),_=yt(i-a),T=nt(o*b),p=nt(h*_),P=nt(o*_),m=nt(b*h);return new oe(T,p,m,P)}add(e){let{X:n,Y:s,Z:u,T:r}=this,{X:a,Y:f,Z:i,T:c}=Qr(e),o=$r,h=jr,b=nt(n*a),_=nt(s*f),T=nt(nt(r*h)*c),p=nt(u*i),P=yt(nt(yt(n+s)*yt(a+f))-b-_),m=yt(p-T),Y=yt(p+T),A=yt(_-nt(o*b)),E=nt(P*m),M=nt(Y*A),B=nt(P*A),C=nt(m*Y);return new oe(E,M,C,B)}subtract(e){return this.add(Qr(e).negate())}multiply(e,n=!0){if(!n&&e===0n||(Le(e,1n,br),!n&&this.is0()))return xe;if(e===1n)return this;if(this.equals(ve))return ui(e).p;let s=xe,u=ve;for(let r=this;e>0n;r=r.double(),e>>=1n)e&1n?s=s.add(r):n&&(u=u.add(r));return s}multiplyUnsafe(e){return this.multiply(e,!1)}toAffine(){let{X:e,Y:n,Z:s}=this;if(this.equals(xe))return{x:0n,y:1n};let u=vo(s,mr);nt(s*u)!==1n&&Ft("invalid inverse");let r=nt(e*u),a=nt(n*u);return{x:r,y:a}}toBytes(){let{x:e,y:n}=this.toAffine(),s=yo(n);return s[31]|=e&1n?128:0,s}toHex(){return en(this.toBytes())}clearCofactor(){return this.multiply(gr(Us),!1)}isSmallOrder(){return this.clearCofactor().is0()}isTorsionFree(){let e=this.multiply(br/2n,!1).double();return br%2n&&(e=e.add(this)),e.is0()}};U(oe,"BASE"),U(oe,"ZERO");ie=oe,ve=new ie(lo,co,1n,yt(lo*co)),xe=new ie(0n,1n,1n,0n);ie.BASE=ve;ie.ZERO=xe;yo=t=>rn(mo(Le(t,0n,Jr),64)).reverse(),sn=t=>gr("0x"+en(tn(Vt(t)).reverse())),ne=(t,e)=>{let n=t;for(;e-- >0n;)n=nt(n*n);return n},Ds=t=>{let e=nt(t*t),n=nt(e*t),s=nt(ne(n,2n)*n),u=nt(ne(s,1n)*t),r=nt(ne(u,5n)*u),a=nt(ne(r,10n)*r),f=nt(ne(a,20n)*a),i=nt(ne(f,40n)*f),c=nt(ne(i,80n)*i),o=nt(ne(c,80n)*i),h=nt(ne(o,10n)*r);return{pow_p_5_8:nt(ne(h,2n)*t),b2:n}},_o=0x2b8324804fc1df0b2b4d00993dfbd7a72f431806ad2fe478c4ee1b274a0ea0b0n,ti=(t,e)=>{let n=nt(e*nt(e*e)),s=nt(nt(n*n)*e),u=Ds(nt(t*s)).pow_p_5_8,r=nt(t*nt(n*u)),a=nt(e*nt(r*r)),f=r,i=nt(r*_o),c=a===t,o=a===yt(-t),h=a===yt(-t*_o);return c&&(r=f),(o||h)&&(r=i),(yt(r)&1n)===1n&&(r=yt(-r)),{isValid:c||o,value:r}},wr=t=>So(sn(t)),an=(...t)=>Promise.resolve(nn("sha512Async")(Fe(...t))).then(on),ln=(...t)=>on(nn("sha512")(Fe(...t))),Eo=t=>{let e=tn(t),n=e.slice(0,32);n[0]&=248,n[31]&=127,n[31]|=64;let s=e.slice(32,64),u=wr(n),r=ve.multiply(u),a=r.toBytes();return{head:n,prefix:s,scalar:u,point:r,pointBytes:a}},cn=t=>an(Vt(t,se)).then(Eo),fn=t=>Eo(ln(Vt(t,se))),Ao=t=>cn(t).then(e=>e.pointBytes),To=t=>fn(t).pointBytes,Co=t=>an(t.hashable).then(t.finish),Mo=t=>t.finish(ln(t.hashable)),Po=(t,e,n)=>{let{pointBytes:s,scalar:u}=t,r=wr(e),a=ve.multiply(r).toBytes();return{hashable:Fe(a,s,n),finish:c=>{let o=So(r+wr(c)*u);return Vt(Fe(a,yo(o)),64)}}},ei=async(t,e)=>{let n=Vt(t),s=await cn(e),u=await an(s.prefix,n);return Co(Po(s,u,n))},ri=(t,e)=>{let n=Vt(t),s=fn(e),u=ln(s.prefix,n);return Mo(Po(s,u,n))},un={zip215:!0},Lo=(t,e,n,s=un)=>{t=Vt(t,64),e=Vt(e),n=Vt(n,se);let{zip215:u=!0}=s,r=t.subarray(0,se),a=sn(t.subarray(se,se*2)),f,i,c,o=Uint8Array.of(),h=!1;try{f=ie.fromBytes(n,u),i=ie.fromBytes(r,u),c=ve.multiply(a,!1),o=Fe(r,n,e),h=!0}catch{}return{hashable:o,finish:_=>{if(!h||!u&&f.isSmallOrder())return!1;let T=wr(_);return i.add(f.multiply(T,!1)).subtract(c).clearCofactor().is0()}}},ni=async(t,e,n,s=un)=>Co(Lo(t,e,n,s)),oi=(t,e,n,s=un)=>Mo(Lo(t,e,n,s)),si=Object.freeze({bytesToHex:en,hexToBytes:rn,concatBytes:Fe,mod:yt,invert:vo,randomBytes:wo}),xo={sha512Async:async t=>{let e=Qs(),n=Fe(t);return vr(await e.digest("SHA-512",n.buffer))},sha512:void 0},_n=t=>(t=t===void 0?wo(se):t,Vt(t,se)),ii=t=>{let e=_n(t),n=To(e);return{secretKey:e,publicKey:n}},ai=async t=>{let e=_n(t),n=await Ao(e);return{secretKey:e,publicKey:n}},li=Object.freeze({getExtendedPublicKeyAsync:cn,getExtendedPublicKey:fn,randomSecretKey:_n}),Sr=8,ci=256,Fo=Math.ceil(ci/Sr)+1,Dr=2**(Sr-1),fi=()=>{let t=[],e=ve,n=e;for(let s=0;s<Fo;s++){n=e,t.push(n);for(let u=1;u<Dr;u++)n=n.add(e),t.push(n);e=n.double()}return t},po=(t,e)=>{let n=e.negate();return t?n:e},ui=t=>{let e=ho||(ho=fi()),n=xe,s=ve,u=2**Sr,r=u,a=gr(u-1),f=gr(Sr);for(let i=0;i<Fo;i++){let c=Number(t&a);t>>=f,c>Dr&&(c-=r,t+=1n);let o=i*Dr,h=o,b=o+Math.abs(c)-1,_=i%2!==0,T=c<0;c===0?s=s.add(po(_,e[h])):n=n.add(po(T,e[b]))}return t!==0n&&Ft("invalid wnaf"),{p:n,f:s}}});function _i(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in t&&t.BYTES_PER_ELEMENT===1}function dn(t,e,n=""){let s=_i(t),u=t?.length,r=e!==void 0;if(!s||r&&u!==e){let a=n&&`"${n}" `,f=r?` of length ${e}`:"",i=s?`length=${u}`:`type=${typeof t}`,c=a+"expected Uint8Array"+f+", got "+i;throw s?new RangeError(c):new TypeError(c)}return t}function hn(t,e=!0){if(t.destroyed)throw new Error("Hash instance has been destroyed");if(e&&t.finished)throw new Error("Hash#digest() has already been called")}function Io(t,e){dn(t,void 0,"digestInto() output");let n=e.outputLen;if(t.length<n)throw new RangeError('"digestInto() output" expected to be of length >='+n)}function Ne(...t){for(let e=0;e<t.length;e++)t[e].fill(0)}function yr(t){return new DataView(t.buffer,t.byteOffset,t.byteLength)}function te(t,e){return t<<32-e|t>>>e}function Re(t,e={}){let n=(u,r)=>t(r).update(u).digest(),s=t(void 0);return n.outputLen=s.outputLen,n.blockLen=s.blockLen,n.canXOF=s.canXOF,n.create=u=>t(u),Object.assign(n,e),Object.freeze(n)}var Ie,pn=$e(()=>{Ie=t=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,t])})});function Oo(t,e,n){return t&e^~t&n}function Bo(t,e,n){return t&e^t&n^e&n}var er,he,pe,Nt,Rt,Yo=$e(()=>{pn();er=class{constructor(e,n,s,u){U(this,"blockLen");U(this,"outputLen");U(this,"canXOF",!1);U(this,"padOffset");U(this,"isLE");U(this,"buffer");U(this,"view");U(this,"finished",!1);U(this,"length",0);U(this,"pos",0);U(this,"destroyed",!1);this.blockLen=e,this.outputLen=n,this.padOffset=s,this.isLE=u,this.buffer=new Uint8Array(e),this.view=yr(this.buffer)}update(e){hn(this),dn(e);let{view:n,buffer:s,blockLen:u}=this,r=e.length;for(let a=0;a<r;){let f=Math.min(u-this.pos,r-a);if(f===u){let i=yr(e);for(;u<=r-a;a+=u)this.process(i,a);continue}s.set(e.subarray(a,a+f),this.pos),this.pos+=f,a+=f,this.pos===u&&(this.process(n,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){hn(this),Io(e,this),this.finished=!0;let{buffer:n,view:s,blockLen:u,isLE:r}=this,{pos:a}=this;n[a++]=128,Ne(this.buffer.subarray(a)),this.padOffset>u-a&&(this.process(s,0),a=0);for(let h=a;h<u;h++)n[h]=0;s.setBigUint64(u-8,BigInt(this.length*8),r),this.process(s,0);let f=yr(e),i=this.outputLen;if(i%4)throw new Error("_sha2: outputLen must be aligned to 32bit");let c=i/4,o=this.get();if(c>o.length)throw new Error("_sha2: outputLen bigger than state");for(let h=0;h<c;h++)f.setUint32(4*h,o[h],r)}digest(){let{buffer:e,outputLen:n}=this;this.digestInto(e);let s=e.slice(0,n);return this.destroy(),s}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());let{blockLen:n,buffer:s,length:u,finished:r,destroyed:a,pos:f}=this;return e.destroyed=a,e.finished=r,e.length=u,e.pos=f,u%n&&e.buffer.set(s),e}clone(){return this._cloneInto()}},he=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),pe=Uint32Array.from([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]),Nt=Uint32Array.from([3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]),Rt=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209])});function di(t,e=!1){return e?{h:Number(t&Er),l:Number(t>>Ho&Er)}:{h:Number(t>>Ho&Er)|0,l:Number(t&Er)|0}}function zo(t,e=!1){let n=t.length,s=new Uint32Array(n),u=new Uint32Array(n);for(let r=0;r<n;r++){let{h:a,l:f}=di(t[r],e);[s[r],u[r]]=[a,f]}return[s,u]}function ae(t,e,n,s){let u=(e>>>0)+(s>>>0);return{h:t+n+(u/2**32|0)|0,l:u|0}}var Er,Ho,bn,mn,Oe,Be,rr,nr,Xo,Vo,Wo,qo,Zo,ko,Uo=$e(()=>{Er=BigInt(4294967295),Ho=BigInt(32);bn=(t,e,n)=>t>>>n,mn=(t,e,n)=>t<<32-n|e>>>n,Oe=(t,e,n)=>t>>>n|e<<32-n,Be=(t,e,n)=>t<<32-n|e>>>n,rr=(t,e,n)=>t<<64-n|e>>>n-32,nr=(t,e,n)=>t>>>n-32|e<<64-n;Xo=(t,e,n)=>(t>>>0)+(e>>>0)+(n>>>0),Vo=(t,e,n,s)=>e+n+s+(t/2**32|0)|0,Wo=(t,e,n,s)=>(t>>>0)+(e>>>0)+(n>>>0)+(s>>>0),qo=(t,e,n,s,u)=>e+n+s+u+(t/2**32|0)|0,Zo=(t,e,n,s,u)=>(t>>>0)+(e>>>0)+(n>>>0)+(s>>>0)+(u>>>0),ko=(t,e,n,s,u,r)=>e+n+s+u+r+(t/2**32|0)|0});var Ko={};Hn(Ko,{_SHA224:()=>Cr,_SHA256:()=>Tr,_SHA384:()=>Pr,_SHA512:()=>Mr,_SHA512_224:()=>Lr,_SHA512_256:()=>xr,sha224:()=>wi,sha256:()=>gi,sha384:()=>vi,sha512:()=>Si,sha512_224:()=>Ei,sha512_256:()=>yi});var pi,ye,Ar,Tr,Cr,Go,bi,mi,Ee,Ae,Xe,Mr,Pr,Bt,Yt,Lr,xr,gi,wi,Si,vi,yi,Ei,$o=$e(()=>{Yo();Uo();pn();pi=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),ye=new Uint32Array(64),Ar=class extends er{constructor(e){super(64,e,8,!1)}get(){let{A:e,B:n,C:s,D:u,E:r,F:a,G:f,H:i}=this;return[e,n,s,u,r,a,f,i]}set(e,n,s,u,r,a,f,i){this.A=e|0,this.B=n|0,this.C=s|0,this.D=u|0,this.E=r|0,this.F=a|0,this.G=f|0,this.H=i|0}process(e,n){for(let h=0;h<16;h++,n+=4)ye[h]=e.getUint32(n,!1);for(let h=16;h<64;h++){let b=ye[h-15],_=ye[h-2],T=te(b,7)^te(b,18)^b>>>3,p=te(_,17)^te(_,19)^_>>>10;ye[h]=p+ye[h-7]+T+ye[h-16]|0}let{A:s,B:u,C:r,D:a,E:f,F:i,G:c,H:o}=this;for(let h=0;h<64;h++){let b=te(f,6)^te(f,11)^te(f,25),_=o+b+Oo(f,i,c)+pi[h]+ye[h]|0,p=(te(s,2)^te(s,13)^te(s,22))+Bo(s,u,r)|0;o=c,c=i,i=f,f=a+_|0,a=r,r=u,u=s,s=_+p|0}s=s+this.A|0,u=u+this.B|0,r=r+this.C|0,a=a+this.D|0,f=f+this.E|0,i=i+this.F|0,c=c+this.G|0,o=o+this.H|0,this.set(s,u,r,a,f,i,c,o)}roundClean(){Ne(ye)}destroy(){this.destroyed=!0,this.set(0,0,0,0,0,0,0,0),Ne(this.buffer)}},Tr=class extends Ar{constructor(){super(32);U(this,"A",he[0]|0);U(this,"B",he[1]|0);U(this,"C",he[2]|0);U(this,"D",he[3]|0);U(this,"E",he[4]|0);U(this,"F",he[5]|0);U(this,"G",he[6]|0);U(this,"H",he[7]|0)}},Cr=class extends Ar{constructor(){super(28);U(this,"A",pe[0]|0);U(this,"B",pe[1]|0);U(this,"C",pe[2]|0);U(this,"D",pe[3]|0);U(this,"E",pe[4]|0);U(this,"F",pe[5]|0);U(this,"G",pe[6]|0);U(this,"H",pe[7]|0)}},Go=zo(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(t=>BigInt(t))),bi=Go[0],mi=Go[1],Ee=new Uint32Array(80),Ae=new Uint32Array(80),Xe=class extends er{constructor(e){super(128,e,16,!1)}get(){let{Ah:e,Al:n,Bh:s,Bl:u,Ch:r,Cl:a,Dh:f,Dl:i,Eh:c,El:o,Fh:h,Fl:b,Gh:_,Gl:T,Hh:p,Hl:P}=this;return[e,n,s,u,r,a,f,i,c,o,h,b,_,T,p,P]}set(e,n,s,u,r,a,f,i,c,o,h,b,_,T,p,P){this.Ah=e|0,this.Al=n|0,this.Bh=s|0,this.Bl=u|0,this.Ch=r|0,this.Cl=a|0,this.Dh=f|0,this.Dl=i|0,this.Eh=c|0,this.El=o|0,this.Fh=h|0,this.Fl=b|0,this.Gh=_|0,this.Gl=T|0,this.Hh=p|0,this.Hl=P|0}process(e,n){for(let A=0;A<16;A++,n+=4)Ee[A]=e.getUint32(n),Ae[A]=e.getUint32(n+=4);for(let A=16;A<80;A++){let E=Ee[A-15]|0,M=Ae[A-15]|0,B=Oe(E,M,1)^Oe(E,M,8)^bn(E,M,7),C=Be(E,M,1)^Be(E,M,8)^mn(E,M,7),I=Ee[A-2]|0,O=Ae[A-2]|0,K=Oe(I,O,19)^rr(I,O,61)^bn(I,O,6),Q=Be(I,O,19)^nr(I,O,61)^mn(I,O,6),tt=Wo(C,Q,Ae[A-7],Ae[A-16]),ct=qo(tt,B,K,Ee[A-7],Ee[A-16]);Ee[A]=ct|0,Ae[A]=tt|0}let{Ah:s,Al:u,Bh:r,Bl:a,Ch:f,Cl:i,Dh:c,Dl:o,Eh:h,El:b,Fh:_,Fl:T,Gh:p,Gl:P,Hh:m,Hl:Y}=this;for(let A=0;A<80;A++){let E=Oe(h,b,14)^Oe(h,b,18)^rr(h,b,41),M=Be(h,b,14)^Be(h,b,18)^nr(h,b,41),B=h&_^~h&p,C=b&T^~b&P,I=Zo(Y,M,C,mi[A],Ae[A]),O=ko(I,m,E,B,bi[A],Ee[A]),K=I|0,Q=Oe(s,u,28)^rr(s,u,34)^rr(s,u,39),tt=Be(s,u,28)^nr(s,u,34)^nr(s,u,39),ct=s&r^s&f^r&f,X=u&a^u&i^a&i;m=p|0,Y=P|0,p=_|0,P=T|0,_=h|0,T=b|0,{h,l:b}=ae(c|0,o|0,O|0,K|0),c=f|0,o=i|0,f=r|0,i=a|0,r=s|0,a=u|0;let k=Xo(K,tt,X);s=Vo(k,O,Q,ct),u=k|0}({h:s,l:u}=ae(this.Ah|0,this.Al|0,s|0,u|0)),{h:r,l:a}=ae(this.Bh|0,this.Bl|0,r|0,a|0),{h:f,l:i}=ae(this.Ch|0,this.Cl|0,f|0,i|0),{h:c,l:o}=ae(this.Dh|0,this.Dl|0,c|0,o|0),{h,l:b}=ae(this.Eh|0,this.El|0,h|0,b|0),{h:_,l:T}=ae(this.Fh|0,this.Fl|0,_|0,T|0),{h:p,l:P}=ae(this.Gh|0,this.Gl|0,p|0,P|0),{h:m,l:Y}=ae(this.Hh|0,this.Hl|0,m|0,Y|0),this.set(s,u,r,a,f,i,c,o,h,b,_,T,p,P,m,Y)}roundClean(){Ne(Ee,Ae)}destroy(){this.destroyed=!0,Ne(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},Mr=class extends Xe{constructor(){super(64);U(this,"Ah",Rt[0]|0);U(this,"Al",Rt[1]|0);U(this,"Bh",Rt[2]|0);U(this,"Bl",Rt[3]|0);U(this,"Ch",Rt[4]|0);U(this,"Cl",Rt[5]|0);U(this,"Dh",Rt[6]|0);U(this,"Dl",Rt[7]|0);U(this,"Eh",Rt[8]|0);U(this,"El",Rt[9]|0);U(this,"Fh",Rt[10]|0);U(this,"Fl",Rt[11]|0);U(this,"Gh",Rt[12]|0);U(this,"Gl",Rt[13]|0);U(this,"Hh",Rt[14]|0);U(this,"Hl",Rt[15]|0)}},Pr=class extends Xe{constructor(){super(48);U(this,"Ah",Nt[0]|0);U(this,"Al",Nt[1]|0);U(this,"Bh",Nt[2]|0);U(this,"Bl",Nt[3]|0);U(this,"Ch",Nt[4]|0);U(this,"Cl",Nt[5]|0);U(this,"Dh",Nt[6]|0);U(this,"Dl",Nt[7]|0);U(this,"Eh",Nt[8]|0);U(this,"El",Nt[9]|0);U(this,"Fh",Nt[10]|0);U(this,"Fl",Nt[11]|0);U(this,"Gh",Nt[12]|0);U(this,"Gl",Nt[13]|0);U(this,"Hh",Nt[14]|0);U(this,"Hl",Nt[15]|0)}},Bt=Uint32Array.from([2352822216,424955298,1944164710,2312950998,502970286,855612546,1738396948,1479516111,258812777,2077511080,2011393907,79989058,1067287976,1780299464,286451373,2446758561]),Yt=Uint32Array.from([573645204,4230739756,2673172387,3360449730,596883563,1867755857,2520282905,1497426621,2519219938,2827943907,3193839141,1401305490,721525244,746961066,246885852,2177182882]),Lr=class extends Xe{constructor(){super(28);U(this,"Ah",Bt[0]|0);U(this,"Al",Bt[1]|0);U(this,"Bh",Bt[2]|0);U(this,"Bl",Bt[3]|0);U(this,"Ch",Bt[4]|0);U(this,"Cl",Bt[5]|0);U(this,"Dh",Bt[6]|0);U(this,"Dl",Bt[7]|0);U(this,"Eh",Bt[8]|0);U(this,"El",Bt[9]|0);U(this,"Fh",Bt[10]|0);U(this,"Fl",Bt[11]|0);U(this,"Gh",Bt[12]|0);U(this,"Gl",Bt[13]|0);U(this,"Hh",Bt[14]|0);U(this,"Hl",Bt[15]|0)}},xr=class extends Xe{constructor(){super(32);U(this,"Ah",Yt[0]|0);U(this,"Al",Yt[1]|0);U(this,"Bh",Yt[2]|0);U(this,"Bl",Yt[3]|0);U(this,"Ch",Yt[4]|0);U(this,"Cl",Yt[5]|0);U(this,"Dh",Yt[6]|0);U(this,"Dl",Yt[7]|0);U(this,"Eh",Yt[8]|0);U(this,"El",Yt[9]|0);U(this,"Fh",Yt[10]|0);U(this,"Fl",Yt[11]|0);U(this,"Gh",Yt[12]|0);U(this,"Gl",Yt[13]|0);U(this,"Hh",Yt[14]|0);U(this,"Hl",Yt[15]|0)}},gi=Re(()=>new Tr,Ie(1)),wi=Re(()=>new Cr,Ie(4)),Si=Re(()=>new Mr,Ie(3)),vi=Re(()=>new Pr,Ie(2)),yi=Re(()=>new xr,Ie(6)),Ei=Re(()=>new Lr,Ie(5))});var wt={FILL_RECT:1,STROKE_RECT:2,LINE:3,DASHED_LINE:4,POLYLINE:5,TEXT:6,CIRCLE:7,TRIANGLE:8,SAVE:9,RESTORE:10,CLIP_RECT:11,ROTATED_TEXT:12,BUBBLE_3D:13,FILL_POLYGON:14,DASHED_POLYLINE:15,GRADIENT_RECT:16,LINEAR_POLYLINE:17,SMOOTH_POLYLINE:24,BEGIN_HEATMAP_LAYER:18,END_HEATMAP_LAYER:19,HEATMAP_BITMAP:20,LINE_WITH_EXTEND:21,LABEL_CALLOUT:22,HEATMAP_WORLD:23,DRAW_IMAGE:25,FILL_SMOOTH_BAND:26,END_FRAME:255},ge=null,zn=null;function Ps(t,e){return ge?(ge.width!==t||ge.height!==e)&&(ge.width=t,ge.height=e):(ge=typeof OffscreenCanvas<"u"?new OffscreenCanvas(t,e):Object.assign(document.createElement("canvas"),{width:t,height:e}),zn=ge.getContext("2d")),zn}var je=new Float64Array(0),Br=new Float64Array(0),Yr=new Float64Array(0),Qe=new Float64Array(0);function Ls(t){return je.length<t&&(je=new Float64Array(t)),je}function xs(t){return Br.length<t&&(Br=new Float64Array(t)),Br}function Fs(t){return Yr.length<t&&(Yr=new Float64Array(t)),Yr}function Ns(t){return Qe.length<t&&(Qe=new Float64Array(t)),Qe}function Hr(t,e){if(e<2)return;let n=e-1,s=Ls(n),u=xs(n),r=Fs(n);for(let f=0;f<n;f++){let i=t[f*2],c=t[f*2+1],o=t[(f+1)*2],h=t[(f+1)*2+1];s[f]=o-i,u[f]=h-c,r[f]=s[f]>0?u[f]/s[f]:0}let a=Ns(e);a[0]=r[0],a[e-1]=r[n-1];for(let f=1;f<n;f++){let i=r[f-1],c=r[f];a[f]=i*c<=0?0:(i+c)*.5}for(let f=0;f<n;f++){let i=r[f];if(i===0){a[f]=0,a[f+1]=0;continue}let c=a[f]/i,o=a[f+1]/i,h=c*c+o*o;if(h>9){let b=3/Math.sqrt(h);a[f]=b*c*i,a[f+1]=b*o*i}}}function Xn(t,e,n){let s=n-1,u=je,r=Qe;for(let a=0;a<s;a++){let f=e[a*2],i=e[a*2+1],c=e[(a+1)*2],o=e[(a+1)*2+1],h=u[a];if(h<=0){t.lineTo(c,o);continue}let b=h/3;t.bezierCurveTo(f+b,i+r[a]*b,c-b,o-r[a+1]*b,c,o)}}function Rs(t,e,n){let s=n-1,u=je,r=Qe;for(let a=s-1;a>=0;a--){let f=e[a*2],i=e[a*2+1],c=e[(a+1)*2],o=e[(a+1)*2+1],h=u[a];if(h<=0){t.lineTo(f,i);continue}let b=h/3;t.bezierCurveTo(c-b,o-r[a+1]*b,f+b,i+r[a]*b,f,i)}}var Is=["left","center","right"],cr=new Map,Os=4096;function Bs(t,e,n,s){return t<<24|e<<16|n<<8|s}function Ct(t,e,n,s){let u=Bs(t,e,n,s),r=cr.get(u);return r||(r=`rgba(${t},${e},${n},${(s/255).toFixed(3)})`,cr.size>=Os&&cr.clear(),cr.set(u,r),r)}var zr=new TextDecoder;function fr(t,e){return Math.round(t*e)/e}var Vn=new Map;function Xr(t,e){let n=Vn.get(e);if(n!==void 0)return n;let s=t.font,u=t.textBaseline;t.font=e,t.textBaseline="alphabetic";let r=t.measureText("0"),a=r.actualBoundingBoxAscent||0,f=r.actualBoundingBoxDescent||0;return n=(a-f)/2,(!Number.isFinite(n)||n===0)&&(n=(parseFloat(e)||11)*.35),Vn.set(e,n),t.font=s,t.textBaseline=u,n}function Ot(t,e,n){let s=Math.max(1,Math.round(e*n)),u=Math.round(t*n)/n;return s&1?u+.5/n:u}function ur(t,e,n,s,u){let r=Math.round(t*u),a=Math.round(e*u),f=Math.round((t+n)*u),i=Math.round((e+s)*u);return{x:r/u,y:a/u,w:(f-r)/u,h:(i-a)/u}}function Wn(){let t=null,e=null,n=null,s=0;function u(r,a,f){return r<=0||a<=0?null:(t?(t.width!==r||t.height!==a)&&(t.width=r,t.height=a,n=null):(typeof OffscreenCanvas<"u"?t=new OffscreenCanvas(r,a):(t=document.createElement("canvas"),t.width=r,t.height=a),e=t.getContext("2d",{alpha:!0})),e&&s!==f&&(e.setTransform(f,0,0,f,0,0),s=f,n=null),e)}return{ensureSize:u,getCanvas(){return t},getKey(){return n},setKey(r){n=r},invalidate(){n=null}}}function qn(){let t=null,e=null,n=0,s=0;function u(r,a){return r<=0||a<=0?null:(t&&n===r&&s===a||(t?(t.width=r,t.height=a,e.imageSmoothingEnabled=!1):(typeof OffscreenCanvas<"u"?t=new OffscreenCanvas(r,a):(t=document.createElement("canvas"),t.width=r,t.height=a),e=t.getContext("2d",{alpha:!0}),e.imageSmoothingEnabled=!1),n=r,s=a),e)}return{ensureSize:u,getCanvas(){return t},getCols(){return n},getRows(){return s},invalidate(){e&&n>0&&s>0&&e.clearRect(0,0,n,s)}}}function Dt(t,e,n,s,u=null,r=null,a=null){let f=e.buffer;if(n+s>f.byteLength)return;let i=new DataView(f,n,s),c=new Uint8Array(f,n,s),o=0,h="",b="",_=-1,T="",p=Math.max(1,Math.abs(t.getTransform?.().a||window.devicePixelRatio||1)),P=t,m=!1,Y="";for(;o<s;){let A=c[o];if(o+=1,A===wt.END_FRAME)break;switch(A){case wt.FILL_RECT:{let E=i.getFloat32(o,!0);o+=4;let M=i.getFloat32(o,!0);o+=4;let B=i.getFloat32(o,!0);o+=4;let C=i.getFloat32(o,!0);o+=4;let I=Ct(c[o],c[o+1],c[o+2],c[o+3]);o+=4,I!==h&&(t.fillStyle=I,h=I);let O=ur(E,M,B,C,p);t.fillRect(O.x,O.y,O.w,O.h);break}case wt.STROKE_RECT:{let E=i.getFloat32(o,!0);o+=4;let M=i.getFloat32(o,!0);o+=4;let B=i.getFloat32(o,!0);o+=4;let C=i.getFloat32(o,!0);o+=4;let I=Ct(c[o],c[o+1],c[o+2],c[o+3]);o+=4;let O=i.getFloat32(o,!0);o+=4,I!==b&&(t.strokeStyle=I,b=I),O!==_&&(t.lineWidth=O,_=O);let K=Ot(E,O,p),Q=Ot(M,O,p),tt=Math.round(B*p)/p,ct=Math.round(C*p)/p;t.strokeRect(K,Q,tt,ct);break}case wt.LINE:{let E=i.getFloat32(o,!0);o+=4;let M=i.getFloat32(o,!0);o+=4;let B=i.getFloat32(o,!0);o+=4;let C=i.getFloat32(o,!0);o+=4;let I=Ct(c[o],c[o+1],c[o+2],c[o+3]);o+=4;let O=i.getFloat32(o,!0);o+=4,t.beginPath(),I!==b&&(t.strokeStyle=I,b=I),O!==_&&(t.lineWidth=O,_=O),t.setLineDash([]),t.moveTo(Ot(E,O,p),Ot(M,O,p)),t.lineTo(Ot(B,O,p),Ot(C,O,p)),t.stroke();break}case wt.DASHED_LINE:{let E=i.getFloat32(o,!0);o+=4;let M=i.getFloat32(o,!0);o+=4;let B=i.getFloat32(o,!0);o+=4;let C=i.getFloat32(o,!0);o+=4;let I=Ct(c[o],c[o+1],c[o+2],c[o+3]);o+=4;let O=i.getFloat32(o,!0);o+=4;let K=i.getFloat32(o,!0);o+=4;let Q=i.getFloat32(o,!0);o+=4,t.beginPath(),I!==b&&(t.strokeStyle=I,b=I),O!==_&&(t.lineWidth=O,_=O),t.setLineDash([K,Q]),t.moveTo(Ot(E,O,p),Ot(M,O,p)),t.lineTo(Ot(B,O,p),Ot(C,O,p)),t.stroke(),t.setLineDash([]);break}case wt.LINEAR_POLYLINE:{let E=i.getUint16(o,!0);o+=2;let M=Ct(c[o],c[o+1],c[o+2],c[o+3]);o+=4;let B=i.getFloat32(o,!0);if(o+=4,E>1){t.beginPath(),M!==b&&(t.strokeStyle=M,b=M),B!==_&&(t.lineWidth=B,_=B),t.setLineDash([]),t.lineJoin="miter",t.lineCap="butt",t.miterLimit=10;let C=i.getFloat32(o,!0);o+=4;let I=i.getFloat32(o,!0);o+=4,t.moveTo(C,I);for(let O=1;O<E;O++)t.lineTo(i.getFloat32(o,!0),i.getFloat32(o+4,!0)),o+=8;t.stroke()}else o+=E*8;break}case wt.SMOOTH_POLYLINE:{let E=i.getUint16(o,!0);o+=2;let M=Ct(c[o],c[o+1],c[o+2],c[o+3]);o+=4;let B=i.getFloat32(o,!0);if(o+=4,E>1){let C=new Float32Array(E*2);for(let I=0;I<E;I++)C[I*2]=i.getFloat32(o,!0),o+=4,C[I*2+1]=i.getFloat32(o,!0),o+=4;t.beginPath(),M!==b&&(t.strokeStyle=M,b=M),B!==_&&(t.lineWidth=B,_=B),t.setLineDash([]),t.lineJoin="round",t.lineCap="round",E===2?(t.moveTo(C[0],C[1]),t.lineTo(C[2],C[3])):(Hr(C,E),t.moveTo(C[0],C[1]),Xn(t,C,E)),t.stroke()}else o+=E*8;break}case wt.POLYLINE:{let E=i.getUint16(o,!0);o+=2;let M=Ct(c[o],c[o+1],c[o+2],c[o+3]);o+=4;let B=i.getFloat32(o,!0);if(o+=4,E>0){let C=new Float32Array(E*2);for(let I=0;I<E;I++)C[I*2]=i.getFloat32(o,!0),o+=4,C[I*2+1]=i.getFloat32(o,!0),o+=4;if(t.beginPath(),M!==b&&(t.strokeStyle=M,b=M),B!==_&&(t.lineWidth=B,_=B),t.setLineDash([]),t.lineJoin="round",t.lineCap="round",E===2)t.moveTo(C[0],C[1]),t.lineTo(C[2],C[3]);else{t.moveTo(C[0],C[1]);for(let I=0;I<E-1;I++){let O=I>0?I-1:0,K=I,Q=I+1,tt=I<E-2?I+2:E-1,ct=C[O*2],X=C[O*2+1],k=C[K*2],$=C[K*2+1],ot=C[Q*2],ut=C[Q*2+1],it=C[tt*2],st=C[tt*2+1],at=k+(ot-ct)/6,dt=$+(ut-X)/6,bt=ot-(it-k)/6,ft=ut-(st-$)/6;t.bezierCurveTo(at,dt,bt,ft,ot,ut)}}t.stroke()}break}case wt.TEXT:{let E=i.getFloat32(o,!0);o+=4;let M=i.getFloat32(o,!0);o+=4;let B=Ct(c[o],c[o+1],c[o+2],c[o+3]);o+=4;let C=i.getFloat32(o,!0);o+=4;let I=c[o];o+=1;let O=i.getUint16(o,!0);o+=2;let K=zr.decode(new Uint8Array(e.buffer,n+o,O));o+=O,B!==h&&(t.fillStyle=B,h=B);let Q=`${Math.round(C)}px "IBM Plex Mono",monospace`;Q!==T&&(t.font=Q,T=Q),t.textAlign=Is[I]||"left",t.textBaseline="alphabetic";let tt=M+Xr(t,Q);t.fillText(K,fr(E,p),fr(tt,p));break}case wt.CIRCLE:{let E=i.getFloat32(o,!0);o+=4;let M=i.getFloat32(o,!0);o+=4;let B=i.getFloat32(o,!0);o+=4;let C=Ct(c[o],c[o+1],c[o+2],c[o+3]);o+=4;let I=Ct(c[o],c[o+1],c[o+2],c[o+3]);o+=4;let O=i.getFloat32(o,!0);o+=4,t.beginPath(),t.arc(E,M,B,0,Math.PI*2),C!==h&&(t.fillStyle=C,h=C),t.fill(),O>0&&(I!==b&&(t.strokeStyle=I,b=I),O!==_&&(t.lineWidth=O,_=O),t.stroke());break}case wt.TRIANGLE:{let E=i.getFloat32(o,!0);o+=4;let M=i.getFloat32(o,!0);o+=4;let B=i.getFloat32(o,!0);o+=4;let C=i.getFloat32(o,!0);o+=4;let I=i.getFloat32(o,!0);o+=4;let O=i.getFloat32(o,!0);o+=4;let K=Ct(c[o],c[o+1],c[o+2],c[o+3]);o+=4,t.beginPath(),t.moveTo(E,M),t.lineTo(B,C),t.lineTo(I,O),t.closePath(),K!==h&&(t.fillStyle=K,h=K),t.fill();break}case wt.SAVE:{t.save();break}case wt.RESTORE:{t.restore(),h="",b="",_=-1,T="";break}case wt.CLIP_RECT:{let E=i.getFloat32(o,!0);o+=4;let M=i.getFloat32(o,!0);o+=4;let B=i.getFloat32(o,!0);o+=4;let C=i.getFloat32(o,!0);o+=4;let I=ur(E,M,B,C,p);t.beginPath(),t.rect(I.x,I.y,I.w,I.h),t.clip();break}case wt.ROTATED_TEXT:{let E=i.getFloat32(o,!0);o+=4;let M=i.getFloat32(o,!0);o+=4;let B=Ct(c[o],c[o+1],c[o+2],c[o+3]);o+=4;let C=i.getFloat32(o,!0);o+=4;let I=i.getFloat32(o,!0);o+=4;let O=i.getUint16(o,!0);o+=2;let K=zr.decode(c.subarray(o,o+O));o+=O;let Q=`${C}px sans-serif`;Q!==T&&(t.font=Q,T=Q),B!==h&&(t.fillStyle=B,h=B),t.textAlign="center",t.textBaseline="alphabetic";let tt=Xr(t,Q);t.save(),t.translate(E,M),t.rotate(I),t.fillText(K,0,tt),t.restore();break}case wt.BUBBLE_3D:{let E=i.getFloat32(o,!0);o+=4;let M=i.getFloat32(o,!0);o+=4;let B=i.getFloat32(o,!0);o+=4;let C=c[o],I=c[o+1],O=c[o+2],K=c[o+3];o+=4;let Q=c[o],tt=c[o+1],ct=c[o+2],X=c[o+3];o+=4;let k=c[o],$=c[o+1],ot=c[o+2],ut=c[o+3];o+=4;let it=i.getFloat32(o,!0);o+=4;let st=B;if(st<10){let at=`rgba(${C},${I},${O},${(K/255).toFixed(3)})`;t.beginPath(),t.arc(E,M,st,0,Math.PI*2),t.fillStyle=at,t.fill(),h=""}else if(st<18){let at=E-st*.25,dt=M-st*.25,bt=t.createRadialGradient(at,dt,st*.08,E,M,st);bt.addColorStop(0,`rgba(${Q},${tt},${ct},${(X/255).toFixed(3)})`),bt.addColorStop(1,`rgba(${C},${I},${O},${(K/255).toFixed(3)})`),t.beginPath(),t.arc(E,M,st,0,Math.PI*2),t.fillStyle=bt,t.fill(),h=""}else{let at=E-st*.25,dt=M-st*.25,bt=t.createRadialGradient(E,M,st*.85,E,M,st*1.2);bt.addColorStop(0,`rgba(${k},${$},${ot},${(ut/255*.5).toFixed(3)})`),bt.addColorStop(1,`rgba(${k},${$},${ot},0)`),t.beginPath(),t.arc(E,M,st*1.2,0,Math.PI*2),t.fillStyle=bt,t.fill();let ft=t.createRadialGradient(at,dt,st*.08,E,M,st);ft.addColorStop(0,`rgba(${Q},${tt},${ct},${(X/255).toFixed(3)})`),ft.addColorStop(1,`rgba(${C},${I},${O},${(K/255).toFixed(3)})`),t.beginPath(),t.arc(E,M,st,0,Math.PI*2),t.fillStyle=ft,t.fill();let It=st*.2,Wt=t.createRadialGradient(at,dt,0,at,dt,It);Wt.addColorStop(0,"rgba(255,255,255,0.22)"),Wt.addColorStop(1,"rgba(255,255,255,0)"),t.beginPath(),t.arc(at,dt,It,0,Math.PI*2),t.fillStyle=Wt,t.fill(),h=""}break}case wt.FILL_POLYGON:{let E=i.getUint16(o,!0);o+=2;let M=Ct(c[o],c[o+1],c[o+2],c[o+3]);if(o+=4,E>2){t.beginPath();let B=i.getFloat32(o,!0);o+=4;let C=i.getFloat32(o,!0);o+=4,t.moveTo(B,C);for(let I=1;I<E;I++)t.lineTo(i.getFloat32(o,!0),i.getFloat32(o+4,!0)),o+=8;t.closePath(),M!==h&&(t.fillStyle=M,h=M),t.fill()}else o+=E*8;break}case wt.FILL_SMOOTH_BAND:{let E=i.getUint16(o,!0);o+=2;let M=i.getUint16(o,!0);o+=2;let B=Ct(c[o],c[o+1],c[o+2],c[o+3]);o+=4;let C=new Float32Array(E*2);for(let O=0;O<E;O++)C[O*2]=i.getFloat32(o,!0),o+=4,C[O*2+1]=i.getFloat32(o,!0),o+=4;let I=new Float32Array(M*2);for(let O=0;O<M;O++)I[O*2]=i.getFloat32(o,!0),o+=4,I[O*2+1]=i.getFloat32(o,!0),o+=4;E>=2&&M>=2&&(t.beginPath(),B!==h&&(t.fillStyle=B,h=B),E===2?(t.moveTo(C[0],C[1]),t.lineTo(C[2],C[3])):(Hr(C,E),t.moveTo(C[0],C[1]),Xn(t,C,E)),t.lineTo(I[(M-1)*2],I[(M-1)*2+1]),M===2?t.lineTo(I[0],I[1]):(Hr(I,M),Rs(t,I,M)),t.closePath(),t.fill());break}case wt.DASHED_POLYLINE:{let E=i.getUint16(o,!0);o+=2;let M=Ct(c[o],c[o+1],c[o+2],c[o+3]);o+=4;let B=i.getFloat32(o,!0);o+=4;let C=i.getFloat32(o,!0);o+=4;let I=i.getFloat32(o,!0);if(o+=4,E>1){t.beginPath(),M!==b&&(t.strokeStyle=M,b=M),B!==_&&(t.lineWidth=B,_=B),t.setLineDash([C,I]),t.lineJoin="round";let O=i.getFloat32(o,!0);o+=4;let K=i.getFloat32(o,!0);o+=4,t.moveTo(O,K);for(let Q=1;Q<E;Q++)t.lineTo(i.getFloat32(o,!0),i.getFloat32(o+4,!0)),o+=8;t.stroke(),t.setLineDash([])}else o+=E*8;break}case wt.GRADIENT_RECT:{let E=i.getFloat32(o,!0);o+=4;let M=i.getFloat32(o,!0);o+=4;let B=i.getFloat32(o,!0);o+=4;let C=i.getFloat32(o,!0);o+=4;let I=Ct(c[o],c[o+1],c[o+2],c[o+3]);o+=4;let O=Ct(c[o],c[o+1],c[o+2],c[o+3]);o+=4;let K=ur(E,M,B,C,p),Q=t.createLinearGradient(K.x,K.y,K.x,K.y+K.h);Q.addColorStop(0,I),Q.addColorStop(1,O),t.fillStyle=Q,h="",t.fillRect(K.x,K.y,K.w,K.h);break}case wt.BEGIN_HEATMAP_LAYER:{let E=o-1,M=i.getUint32(o,!0);o+=4;let B=i.getUint32(o,!0);o+=4;let C=i.getUint32(o,!0);if(o+=4,!u||C===0)break;let I=P.canvas.width,O=P.canvas.height,K=`${M}|${B}|${I}|${O}|${p}`;if(u.getKey()===K&&u.getCanvas()){let Q=I/p,tt=O/p;P.drawImage(u.getCanvas(),0,0,Q,tt),o=E+C}else{let Q=u.ensureSize(I,O,p);if(!Q)break;Q.save(),Q.setTransform(1,0,0,1,0,0),Q.clearRect(0,0,I,O),Q.restore(),t=Q,h="",b="",_=-1,T="",m=!0,Y=K}break}case wt.END_HEATMAP_LAYER:{if(!m)break;let E=P.canvas.width/p,M=P.canvas.height/p;P.drawImage(u.getCanvas(),0,0,E,M),u.setKey(Y),t=P,h="",b="",_=-1,T="",m=!1,Y="";break}case wt.HEATMAP_BITMAP:{let E=i.getFloat32(o,!0);o+=4;let M=i.getFloat32(o,!0);o+=4;let B=i.getUint32(o,!0);o+=4;let C=i.getUint32(o,!0);o+=4;let I=B*C*4;if(o+I>c.byteLength){o=c.byteLength;break}let O=new Uint8ClampedArray(c.buffer,c.byteOffset+o,I);o+=I;let K=new ImageData(O,B,C),Q=Ps(B,C);if(!Q)break;Q.putImageData(K,0,0),t.drawImage(ge,E,M,B,C);break}case wt.HEATMAP_WORLD:{let E=i.getUint32(o,!0);o+=4;let M=i.getUint32(o,!0);o+=4;let B=i.getUint32(o,!0);o+=4;let C=i.getUint32(o,!0);o+=4;let I=i.getUint32(o,!0);o+=4;let O=i.getUint32(o,!0);o+=4;let K=i.getFloat32(o,!0);o+=4;let Q=i.getFloat32(o,!0);o+=4;let tt=i.getFloat32(o,!0);o+=4;let ct=i.getFloat32(o,!0);o+=4;let X=i.getFloat32(o,!0);o+=4;let k=i.getFloat32(o,!0);o+=4;let $=i.getFloat32(o,!0);o+=4;let ot=i.getFloat32(o,!0);o+=4;let ut=c[o];o+=1;let it=(ut&1)!==0,st=I*O*4;if(o+st>c.byteLength){o=c.byteLength;break}if(!r||E===0||M===0){o+=st;break}let at=r.ensureSize(E,M);if(!at){o+=st;break}if(it&&at.clearRect(0,0,E,M),st>0){let dt=new Uint8ClampedArray(c.buffer,c.byteOffset+o,st),bt=new ImageData(dt,I,O);at.putImageData(bt,B,C)}if(o+=st,tt>0&&ct>0&&$>0&&ot>0){let dt=t.imageSmoothingEnabled;t.imageSmoothingEnabled=!1,t.drawImage(r.getCanvas(),K,Q,tt,ct,X,k,$,ot),t.imageSmoothingEnabled=dt}break}case wt.LINE_WITH_EXTEND:{let E=i.getFloat32(o,!0);o+=4;let M=i.getFloat32(o,!0);o+=4;let B=i.getFloat32(o,!0);o+=4;let C=i.getFloat32(o,!0);o+=4;let I=Ct(c[o],c[o+1],c[o+2],c[o+3]);o+=4;let O=i.getFloat32(o,!0);o+=4;let K=i.getFloat32(o,!0);o+=4;let Q=i.getFloat32(o,!0);o+=4;let tt=c[o];o+=1,I!==b&&(t.strokeStyle=I,b=I),O!==_&&(t.lineWidth=O,_=O),t.setLineDash(K>0?[K,Q]:[]);let ct=1e5,X=E,k=M,$=B,ot=C,ut=B-E,it=C-M,st=Math.hypot(ut,it);if(st>0&&tt!==0){let at=ut/st,dt=it/st;tt&1&&(X=E-at*ct,k=M-dt*ct),tt&2&&($=B+at*ct,ot=C+dt*ct),tt&4&&dt<0&&(X=E-at*ct,k=M-dt*ct),tt&8&&dt>0&&($=B+at*ct,ot=C+dt*ct)}t.beginPath(),t.moveTo(Ot(X,O,p),Ot(k,O,p)),t.lineTo(Ot($,O,p),Ot(ot,O,p)),t.stroke(),K>0&&t.setLineDash([]);break}case wt.LABEL_CALLOUT:{let E=i.getFloat32(o,!0);o+=4;let M=i.getFloat32(o,!0);o+=4;let B=Ct(c[o],c[o+1],c[o+2],c[o+3]);o+=4;let C=Ct(c[o],c[o+1],c[o+2],c[o+3]);o+=4;let I=Ct(c[o],c[o+1],c[o+2],c[o+3]);o+=4;let O=i.getFloat32(o,!0);o+=4;let K=i.getFloat32(o,!0);o+=4;let Q=c[o];o+=1;let tt=c[o];o+=1;let ct=i.getUint16(o,!0);o+=2;let X=zr.decode(c.subarray(o,o+ct));o+=ct;let k=`${Math.round(O)}px "IBM Plex Mono",monospace`;k!==T&&(t.font=k,T=k);let $=4,ot=6,ut=t.measureText(X).width,it=Math.round(O)+$*2,st=Math.ceil(ut)+$*2,at,dt;switch(tt){case 1:dt=M-ot-it,at=E-st/2;break;case 2:dt=M+ot,at=E-st/2;break;case 3:dt=M-it/2,at=E+ot;break;case 4:dt=M-it/2,at=E-ot-st;break;default:dt=M-it/2,Q===1?at=E-st/2:Q===2?at=E-st:at=E;break}let bt=ur(at,dt,st,it,p);if(B!==h&&(t.fillStyle=B,h=B),t.fillRect(bt.x,bt.y,bt.w,bt.h),K>0){C!==b&&(t.strokeStyle=C,b=C),K!==_&&(t.lineWidth=K,_=K),t.setLineDash([]);let It=Ot(at,K,p),Wt=Ot(dt,K,p),kt=Math.round(st*p)/p,Lt=Math.round(it*p)/p;t.strokeRect(It,Wt,kt,Lt)}if(tt>=1&&tt<=4){switch(B!==h&&(t.fillStyle=B,h=B),t.beginPath(),tt){case 1:t.moveTo(E-ot/2,dt+it),t.lineTo(E+ot/2,dt+it),t.lineTo(E,M);break;case 2:t.moveTo(E-ot/2,dt),t.lineTo(E+ot/2,dt),t.lineTo(E,M);break;case 3:t.moveTo(at,M-ot/2),t.lineTo(at,M+ot/2),t.lineTo(E,M);break;case 4:t.moveTo(at+st,M-ot/2),t.lineTo(at+st,M+ot/2),t.lineTo(E,M);break}t.closePath(),t.fill()}I!==h&&(t.fillStyle=I,h=I),t.textAlign="left",t.textBaseline="alphabetic";let ft=Xr(t,k);t.fillText(X,fr(at+$,p),fr(dt+it/2+ft,p));break}case wt.DRAW_IMAGE:{let E=i.getFloat32(o,!0);o+=4;let M=i.getFloat32(o,!0);o+=4;let B=i.getFloat32(o,!0);o+=4;let C=i.getFloat32(o,!0);o+=4;let I=i.getUint32(o,!0);if(o+=4,!a||I===0||B<=0||C<=0)break;let O=a.get(I);if(!O)break;try{t.drawImage(O,E,M,B,C)}catch(K){a.delete(I),console.warn("[canvasRenderer] drawImage failed for id="+I,K?.message||K)}break}default:return}}if(m&&u){let A=P.canvas.width/p,E=P.canvas.height/p;P.drawImage(u.getCanvas(),0,0,A,E),u.invalidate()}}var Gt={trendline:{type:"2point",previewKind:0,addFn:"add_trendline"},arrow:{type:"2point",previewKind:4,addFn:"add_arrow"},measure:{type:"2point",previewKind:2,addFn:"add_price_range"},fib:{type:"2point",previewKind:3,addFn:"add_fib_retracement"},long:{type:"2point",previewKind:5,addFn:"add_long_position"},short:{type:"2point",previewKind:5,addFn:"add_short_position"},hline:{type:"1point_xp",previewKind:1,addFn:"add_horizontal_line"},vwap:{type:"1point_x",previewKind:6,addFn:"add_anchored_vwap"},pricelabel:{type:"1point_xy",previewKind:7,addFn:"add_price_label"},circle:{type:"2point",previewKind:8,addFn:"add_circle"},arrowup:{type:"1point_xy",previewKind:9,addFn:"add_arrow_marker_up"},arrowdown:{type:"1point_xy",previewKind:10,addFn:"add_arrow_marker_down"},textnote:{type:"1point_xy",previewKind:11,addFn:"add_text_note"},channel:{type:"3point",previewKind:0,addFn:"add_parallel_channel"},fibext:{type:"3point",previewKind:0,addFn:"add_fib_extension",previewFn:"fib_ext"},brush:{type:"freehand"},path:{type:"npoint"},elliott:{type:"elliott_manual"},elliottauto:{type:"1point_xy",previewKind:12,addFn:"add_elliott_impulse",previewFn:"elliott"},elliottautorange:{type:"drag2point",previewKind:2,addFn:"add_elliott_auto_range"},elliottzigzag:{type:"1point_xy",previewKind:13,addFn:"add_elliott_zigzag",previewFn:"zigzag"},elliottzigzagrange:{type:"drag2point",previewKind:2,addFn:"add_elliott_zigzag_range"}};function Je(t){return Gt[t]?.type==="2point"}function De(t){return Gt[t]?.type==="3point"}function He(t){let e=Gt[t]?.type;return e==="1point"||e==="1point_x"||e==="1point_xy"||e==="1point_xp"}function _r(t){return Gt[t]?.type==="freehand"}function ce(t){return Gt[t]?.type==="npoint"}function fe(t){return Gt[t]?.type==="elliott_manual"}function tr(t){return Gt[t]?.type==="drag2point"}var Zn={r:.04,g:.49,b:1,lineWidth:2,dashed:!1,fontSize:12};function ee(t,e,n,s,u,r){r=r||Zn;let a=Gt[e];if(!a)return 0;let f=0;if(a.type==="3point"?f=t[a.addFn](n.x1,n.y1,n.x2,n.y2,s,u,r.r,r.g,r.b,r.lineWidth,r.dashed,n.pane):a.type==="2point"||a.type==="drag2point"?f=t[a.addFn](n.x1,n.y1,s,u,r.r,r.g,r.b,r.lineWidth,r.dashed,n.pane):a.type==="1point_x"?f=t[a.addFn](s,r.r,r.g,r.b,r.lineWidth,r.dashed,n.pane):a.type==="1point_xp"?f=t[a.addFn](s,u,r.r,r.g,r.b,r.lineWidth,r.dashed,n.pane):a.type==="1point_xy"?f=t[a.addFn](s,u,r.r,r.g,r.b,r.fontSize||12,n.pane):f=t[a.addFn](u,r.r,r.g,r.b,r.lineWidth,r.dashed,n.pane),f&&r.fontSize&&typeof t.set_drawing_font_size=="function"&&(a.type==="2point"||a.type==="3point"||a.type==="drag2point"))try{t.set_drawing_font_size(f,r.fontSize)}catch{}return f||0}function jt(t,e,n,s,u,r,a){r=r||Zn;let f=Gt[e];if(f){if(f.previewFn==="elliott"){t.set_elliott_preview(s,u,r.r,r.g,r.b,r.lineWidth,a);return}if(f.previewFn==="zigzag"){t.set_elliott_zigzag_preview(s,u,r.r,r.g,r.b,r.lineWidth,a);return}f.type==="3point"?n.step===1?t.set_drawing_preview(f.previewKind,n.x1,n.y1,s,u,r.r,r.g,r.b,r.lineWidth,r.dashed,a):n.step===2&&(f.previewFn==="fib_ext"?t.set_fib_ext_preview(n.x1,n.y1,n.x2,n.y2,s,u,r.r,r.g,r.b,r.lineWidth,r.dashed,a):t.set_channel_preview(n.x1,n.y1,n.x2,n.y2,s,u,r.r,r.g,r.b,r.lineWidth,r.dashed,a)):f.type==="2point"||f.type==="drag2point"?t.set_drawing_preview(f.previewKind,n.x1,n.y1,s,u,r.r,r.g,r.b,r.lineWidth,r.dashed,a):f.type==="1point_x"?t.set_drawing_preview(f.previewKind,s,0,0,0,r.r,r.g,r.b,r.lineWidth,r.dashed,a):f.type==="1point_xp"||f.type==="1point_xy"?t.set_drawing_preview(f.previewKind,s,u,0,0,r.r,r.g,r.b,r.lineWidth,r.dashed,a):t.set_drawing_preview(f.previewKind,0,u,0,0,r.r,r.g,r.b,r.lineWidth,r.dashed,a)}}function dr(t,e,n,s,u,r){if(s!=null&&u!=null){let c=e-s,o=n-u,h=Math.sqrt(c*c+o*o);if(h>1.5*1.2){let b=Math.min(128,Math.ceil(h/1.5));for(let _=1;_<b;_++){let T=_/b,p=s+c*T,P=u+o*T,{wx:m,wy:Y}=vt(t,p,P,r);t.add_brush_point(m,Y)}}}let{wx:f,wy:i}=vt(t,e,n,r);t.add_brush_point(f,i)}function vt(t,e,n,s){let u=t.screen_to_world_x(e),r;switch(s){case 1:r=t.screen_to_rsi_y(n);break;case 2:r=t.screen_to_oi_y(n);break;case 3:r=t.screen_to_fr_y(n);break;case 4:r=t.screen_to_cvd_y(n);break;case 5:r=t.screen_to_vpin_y(n);break;case 6:r=t.screen_to_ob_flow_y(n);break;case 7:r=t.screen_to_agg_liq_y(n);break;case 8:r=t.screen_to_custom_pane_y(n);break;default:r=t.screen_to_world_y(n);break}return{wx:u,wy:r}}function Qt(t){return t===4?1:t===6?2:t===8?3:t===10?4:t===12?5:t===19?6:t===22?7:t===25?8:0}function Me(t){return t===4||t===6||t===8||t===10||t===12||t===19||t===22||t===25}function Xt(t){return t===14||t===15||t===16||t===17||t===18||t===21||t===24||t===27}function Kt(t){return t===4||t===14?1:t===6||t===15?2:t===8||t===16?3:t===10||t===17?4:t===12||t===18?5:t===19||t===21?6:t===22||t===24?7:0}function ue(t,e,n,s){Me(e)?(t.pan(n,0),Math.abs(s)>.01&&e!==4&&t.pan_indicator_y(Kt(e),s)):t.pan(n,s)}function Zt(t){return t===0||t===4||t===6||t===8||t===10||t===12||t===22||t===25}function Dn(t,e,n,s){t.addEventListener("wheel",o=>{if(s.disposed)return;o.preventDefault(),s.cancelMomentum();let h=o.deltaY>0?1.1:.9,b=e.hit_zone(o.offsetX,o.offsetY);b!==255&&(Xt(b)?b!==14&&e.zoom_indicator_y(Kt(b),o.offsetY,h):Me(b)?b===4?e.zoom_x(o.offsetX,h):o.ctrlKey?e.zoom_indicator_y(Kt(b),o.offsetY,h):e.zoom_x(o.offsetX,h):o.ctrlKey?e.zoom_y(o.offsetY,h):o.shiftKey||b===2?e.zoom_x(o.offsetX,h):b===3?e.zoom_y(o.offsetY,h):e.zoom(o.offsetX,o.offsetY,h),n.onDirty())},{passive:!1}),t.addEventListener("mousedown",o=>{if(s.disposed||o.button!==0)return;s.cancelMomentum(),r();let h=performance.now();if(h-s.lastClickTime<300){s.lastClickTime=h;return}if(s.lastClickTime=h,typeof e.is_in_watermark_btn=="function"&&e.is_in_watermark_btn(o.offsetX,o.offsetY)){s.watermarkPending=!0;return}if(s.watermarkPending=!1,typeof e.is_in_quick_trade_btn=="function"&&e.is_in_quick_trade_btn(o.offsetX,o.offsetY)){s.qtbPending=!0;try{s.qtbWorldY=e.crosshair_world_y()}catch{s.qtbWorldY=0}return}let b=s.drawingMode;if(b){let T=e.hit_zone(o.offsetX,o.offsetY);if(!Zt(T))return;let p=Qt(T),{wx:P,wy:m}=vt(e,o.offsetX,o.offsetY,p),Y=b.style,A=b.tool;if(b.undoSnapshotTaken||(n.onDrawingMutationBegin?.(),b.undoSnapshotTaken=!0),fe(A)){if(!b.pathStarted)b.pane=p,e.start_elliott_manual(Y.r,Y.g,Y.b,Y.lineWidth,p),e.add_elliott_manual_point(P,m),b.pathStarted=!0,b.step=1;else if(e.add_elliott_manual_point(P,m)){s.finishDrawing(),n.onDirty();return}}else if(ce(A))b.pathStarted?e.add_path_point(P,m):(b.pane=p,e.start_path(Y.r,Y.g,Y.b,Y.lineWidth,Y.dashed,p),e.add_path_point(P,m),b.pathStarted=!0,b.step=1);else if(_r(A))b.pane=p,e.start_brush(Y.r,Y.g,Y.b,Y.lineWidth,p),e.add_brush_point(P,m),s.isBrushing=!0,s.brushLastSx=o.offsetX,s.brushLastSy=o.offsetY;else if(De(A))if(b.step===0)b.x1=P,b.y1=m,b.pane=p,b.step=1;else if(b.step===1)b.x2=P,b.y2=m,b.step=2,e.clear_drawing_preview();else{let E=Gt[A];E&&E.previewFn==="fib_ext"?e.clear_fib_ext_preview():e.clear_channel_preview(),ee(e,A,b,P,m,Y),s.finishDrawing()}else if(Je(A))b.step===0?(b.x1=P,b.y1=m,b.pane=p,b.step=1):(ee(e,A,b,P,m,Y),s.finishDrawing());else if(tr(A))b.x1=P,b.y1=m,b.pane=p,b.step=1,b.dragStartSx=o.offsetX,b.dragStartSy=o.offsetY,s.isDrawingDragRange=!0;else{b.pane=p;let E=ee(e,A,b,P,m,Y);s.finishDrawing(),A==="textnote"&&E>0&&(e.select_drawing(E),n.onDrawingSelected?.(E),n.onDrawingDblClick?.(E,o.offsetX,o.offsetY,o.clientX,o.clientY))}n.onDirty();return}let _=e.hit_zone(o.offsetX,o.offsetY);if(_!==255){if(_===5){s.isResizingRsi=!0,s.resizeStartY=o.offsetY,s.resizeStartRatio=e.get_rsi_ratio(),t.style.cursor="ns-resize";return}if(_===7){s.isResizingOi=!0,s.resizeStartY=o.offsetY,s.resizeStartRatio=e.get_oi_ratio(),t.style.cursor="ns-resize";return}if(_===9){s.isResizingFr=!0,s.resizeStartY=o.offsetY,s.resizeStartRatio=e.get_fr_ratio(),t.style.cursor="ns-resize";return}if(_===11){s.isResizingCvd=!0,s.resizeStartY=o.offsetY,s.resizeStartRatio=e.get_cvd_ratio(),t.style.cursor="ns-resize";return}if(_===13){s.isResizingVpin=!0,s.resizeStartY=o.offsetY,s.resizeStartRatio=e.get_vpin_ratio(),t.style.cursor="ns-resize";return}if(_===20){s.isResizingObFlow=!0,s.resizeStartY=o.offsetY,s.resizeStartRatio=e.get_obf_ratio(),t.style.cursor="ns-resize";return}if(_===23){s.isResizingAggLiq=!0,s.resizeStartY=o.offsetY,s.resizeStartRatio=e.get_agg_liq_ratio(),t.style.cursor="ns-resize";return}if(Zt(_)){let T=e.get_selected_drawing();if(T>0){let A=e.hit_test_drawing_anchor(o.offsetX,o.offsetY);if(A>=0){n.onDrawingMutationBegin?.(),s.isDraggingAnchor=!0,s.dragAnchorIdx=A,s.dragAnchorPane=Qt(_),t.style.cursor="grabbing";return}if(e.hit_test_drawing(o.offsetX,o.offsetY)===T){n.onDrawingMutationBegin?.(),s.isDraggingDrawing=!0,s.dragDrawingPane=Qt(_);let{wx:M,wy:B}=vt(e,o.offsetX,o.offsetY,s.dragDrawingPane);s.dragDrawingLastWx=M,s.dragDrawingLastWy=B,t.style.cursor="move";return}}let p=e.hit_test_drawing(o.offsetX,o.offsetY);if(p>0){e.deselect_marker(),n.onMarkerSelected?.(0),e.select_drawing(p),n.onDrawingSelected?.(p),n.onDirty();return}let P=e.hit_test_marker(o.offsetX,o.offsetY);if(P>0){e.deselect_drawing(),n.onDrawingSelected?.(0),e.select_marker(P),n.onMarkerSelected?.(P),n.onDirty();return}let m=e.get_selected_drawing(),Y=e.get_selected_marker();m>0&&(e.deselect_drawing(),n.onDrawingSelected?.(0),n.onDirty()),Y>0&&(e.deselect_marker(),n.onMarkerSelected?.(0),n.onDirty())}Zt(_)&&(s.liqPinSx=o.offsetX,s.liqPinSy=o.offsetY,s.liqPinTimer&&clearTimeout(s.liqPinTimer),s.liqPinTimer=setTimeout(()=>{s.liqPinTimer=null,n.onLiqAnnotationPin?.(s.liqPinSx,s.liqPinSy)},700)),s.isDragging=!0,s.dragZone=_,s.lastX=o.offsetX,s.lastY=o.offsetY,_===2?t.style.cursor="ew-resize":_===3||Xt(_)?t.style.cursor="ns-resize":t.style.cursor="grabbing"}});let u=null;function r(){u&&(cancelAnimationFrame(u),u=null)}function a(o,h){if(typeof e.is_in_watermark_btn=="function"&&e.is_in_watermark_btn(o,h)){t.style.cursor="pointer";return}if(typeof e.is_in_quick_trade_btn=="function"&&e.is_in_quick_trade_btn(o,h)){t.style.cursor="pointer";return}let b=e.hover_hit_test(o,h),_=b[0],T=b[1],p=b[2],P=b[3],m=b[4],Y=s.drawingMode;if(_===255)t.style.cursor="default";else if(_===2)t.style.cursor="ew-resize";else if(_===3||Xt(_))t.style.cursor="ns-resize";else if(_===5||_===7||_===9||_===11||_===13||_===20||_===23)t.style.cursor="ns-resize";else if(!Y&&Zt(_)&&T>0&&p>=0){let A="grab";try{e.get_drawing_kind_id?.(T)===18&&(p===0||p===1?A="nwse-resize":p===2||p===3?A="nesw-resize":p===4||p===6?A="ns-resize":(p===5||p===7)&&(A="ew-resize"))}catch{}t.style.cursor=A}else!Y&&Zt(_)&&T>0&&P===T?t.style.cursor="move":!Y&&Zt(_)&&(P>0||m>0)||!Y&&f(o,h)?t.style.cursor="pointer":t.style.cursor="crosshair"}function f(o,h){if(typeof e.indicator_at_point=="function")try{let b=e.indicator_at_point(o,h)||"";if(b)return b}catch{}if(n&&typeof n.customIndicatorAtPoint=="function")try{return n.customIndicatorAtPoint(o,h)||""}catch{return""}return""}function i(o,h){let b=e.hit_zone(o,h);b===2||b===3||Xt(b)||b===255?e.hide_crosshair():e.set_crosshair(o,h),n.onDirty(),n.onCrosshairMove?.(o,h,b),n.onVrvpHover?.(o,h),s._pendingHoverX=o,s._pendingHoverY=h,u||(u=requestAnimationFrame(()=>{u=null,s.disposed||a(s._pendingHoverX,s._pendingHoverY)}))}t.addEventListener("mousemove",o=>{if(s.disposed)return;if(s.liqPinTimer){let b=Math.abs(o.offsetX-s.liqPinSx),_=Math.abs(o.offsetY-s.liqPinSy);(b>6||_>6)&&(clearTimeout(s.liqPinTimer),s.liqPinTimer=null)}if(s.isResizingRsi){let _=t.getBoundingClientRect().height-28,p=(s.resizeStartY-o.offsetY)/_,P=Math.max(.05,Math.min(.5,s.resizeStartRatio+p));e.set_rsi_ratio(P),n.onDirty();return}if(s.isResizingOi){let _=t.getBoundingClientRect().height-28,p=(s.resizeStartY-o.offsetY)/_,P=Math.max(.05,Math.min(.5,s.resizeStartRatio+p));e.set_oi_ratio(P),n.onDirty();return}if(s.isResizingFr){let _=t.getBoundingClientRect().height-28,p=(s.resizeStartY-o.offsetY)/_,P=Math.max(.05,Math.min(.5,s.resizeStartRatio+p));e.set_fr_ratio(P),n.onDirty();return}if(s.isResizingCvd){let _=t.getBoundingClientRect().height-28,p=(s.resizeStartY-o.offsetY)/_,P=Math.max(.05,Math.min(.5,s.resizeStartRatio+p));e.set_cvd_ratio(P),n.onDirty();return}if(s.isResizingVpin){let _=t.getBoundingClientRect().height-28,p=(s.resizeStartY-o.offsetY)/_,P=Math.max(.05,Math.min(.5,s.resizeStartRatio+p));e.set_vpin_ratio(P),n.onDirty();return}if(s.isResizingObFlow){let _=t.getBoundingClientRect().height-28,p=(s.resizeStartY-o.offsetY)/_,P=Math.max(.05,Math.min(.5,s.resizeStartRatio+p));e.set_obf_ratio(P),n.onDirty();return}if(s.isResizingAggLiq){let _=t.getBoundingClientRect().height-28,p=(s.resizeStartY-o.offsetY)/_,P=Math.max(.05,Math.min(.5,s.resizeStartRatio+p));e.set_agg_liq_ratio(P),n.onDirty();return}if(s.isDraggingAnchor){let{wx:b,wy:_}=vt(e,o.offsetX,o.offsetY,s.dragAnchorPane);e.update_drawing_anchor(s.dragAnchorIdx,b,_),e.set_crosshair(o.offsetX,o.offsetY),n.onDirty(),n.onCrosshairMove?.(o.offsetX,o.offsetY,e.hit_zone(o.offsetX,o.offsetY));return}if(s.isDraggingDrawing){let{wx:b,wy:_}=vt(e,o.offsetX,o.offsetY,s.dragDrawingPane),T=b-s.dragDrawingLastWx,p=_-s.dragDrawingLastWy;e.move_drawing(T,p),s.dragDrawingLastWx=b,s.dragDrawingLastWy=_,e.set_crosshair(o.offsetX,o.offsetY),n.onDirty(),n.onCrosshairMove?.(o.offsetX,o.offsetY,e.hit_zone(o.offsetX,o.offsetY));return}let h=s.drawingMode;if(s.isBrushing&&h){let b=h.pane||0;dr(e,o.offsetX,o.offsetY,s.brushLastSx,s.brushLastSy,b),s.brushLastSx=o.offsetX,s.brushLastSy=o.offsetY,e.set_crosshair(o.offsetX,o.offsetY),n.onDirty();return}if(h&&fe(h.tool)&&h.pathStarted){let b=h.pane||0,{wx:_,wy:T}=vt(e,o.offsetX,o.offsetY,b);e.set_elliott_manual_cursor(_,T),e.set_crosshair(o.offsetX,o.offsetY);let p=e.hit_zone(o.offsetX,o.offsetY);n.onDirty(),n.onCrosshairMove?.(o.offsetX,o.offsetY,p);return}if(h&&ce(h.tool)&&h.pathStarted){let b=h.pane||0,{wx:_,wy:T}=vt(e,o.offsetX,o.offsetY,b);e.set_path_cursor(_,T),e.set_crosshair(o.offsetX,o.offsetY);let p=e.hit_zone(o.offsetX,o.offsetY);n.onDirty(),n.onCrosshairMove?.(o.offsetX,o.offsetY,p);return}if(h&&h.step>0){let b=h.pane||0,{wx:_,wy:T}=vt(e,o.offsetX,o.offsetY,b);jt(e,h.tool,h,_,T,h.style,b),e.set_crosshair(o.offsetX,o.offsetY);let p=e.hit_zone(o.offsetX,o.offsetY);n.onDirty(),n.onCrosshairMove?.(o.offsetX,o.offsetY,p);return}if(h&&He(h.tool)){let b=e.hit_zone(o.offsetX,o.offsetY),_=Qt(b),{wx:T,wy:p}=vt(e,o.offsetX,o.offsetY,_);jt(e,h.tool,h,T,p,h.style,_),e.set_crosshair(o.offsetX,o.offsetY),n.onDirty(),n.onCrosshairMove?.(o.offsetX,o.offsetY,b);return}if(s.isDragging){let b=o.offsetX-s.lastX,_=o.offsetY-s.lastY;s.lastX=o.offsetX,s.lastY=o.offsetY,(b!==0||_!==0)&&(s.isPanning=!0),s.dragZone===2?e.pan_x(b):s.dragZone===3?e.pan_y(_):s.dragZone===14||(Xt(s.dragZone)?e.pan_indicator_y(Kt(s.dragZone),_):ue(e,s.dragZone,b,_)),e.set_crosshair(o.offsetX,o.offsetY),n.onDirty(),n.onCrosshairMove?.(o.offsetX,o.offsetY,s.dragZone),n.onVrvpHover?.(o.offsetX,o.offsetY);return}i(o.offsetX,o.offsetY)}),t.addEventListener("mouseup",o=>{if(!s.disposed){if(s.watermarkPending){if(s.watermarkPending=!1,o&&typeof e.is_in_watermark_btn=="function"&&e.is_in_watermark_btn(o.offsetX,o.offsetY))try{window.open("https://app.mrd-indicators.com/charting-library/pricing","_blank","noopener,noreferrer")}catch{}return}if(s.qtbPending){if(s.qtbPending=!1,o&&typeof e.is_in_quick_trade_btn=="function"&&e.is_in_quick_trade_btn(o.offsetX,o.offsetY)){let b=Number(s.qtbWorldY)||0;b>0&&n.onQuickTradeBtnClick?.(b,o.offsetX,o.offsetY)}s.qtbWorldY=0;return}if(s.liqPinTimer&&(clearTimeout(s.liqPinTimer),s.liqPinTimer=null),s.isBrushing&&(s.isBrushing=!1,s.brushLastSx=null,s.brushLastSy=null,e.finish_brush(),s.finishDrawing(),n.onDirty()),s.isDrawingDragRange){s.isDrawingDragRange=!1;let h=s.drawingMode;if(h&&h.step===1){let b=o.offsetX-(h.dragStartSx||0),_=o.offsetY-(h.dragStartSy||0);if(b*b+_*_>=16){let p=e.hit_zone(o.offsetX,o.offsetY),P=Zt(p)?Qt(p):h.pane||0,{wx:m,wy:Y}=vt(e,o.offsetX,o.offsetY,P);ee(e,h.tool,h,m,Y,h.style),s.finishDrawing(),n.onDirty()}else e.clear_drawing_preview(),h.step=0,n.onDirty()}}s.isDragging=!1,s.isPanning=!1,s.isResizingRsi=!1,s.isResizingOi=!1,s.isResizingFr=!1,s.isResizingCvd=!1,s.isResizingVpin=!1,s.isResizingObFlow=!1,s.isResizingAggLiq=!1,s.isDraggingAnchor=!1,s.isDraggingDrawing=!1,s.dragAnchorIdx=-1,t.style.cursor="crosshair"}});function c(){if(!s.disposed&&!s._leaveHandled){if(s._leaveHandled=!0,requestAnimationFrame(()=>{s._leaveHandled=!1}),r(),s.liqPinTimer&&(clearTimeout(s.liqPinTimer),s.liqPinTimer=null),s.isBrushing&&(s.isBrushing=!1,s.brushLastSx=null,s.brushLastSy=null,e.finish_brush(),s.finishDrawing()),s.isDrawingDragRange){s.isDrawingDragRange=!1;let o=s.drawingMode;o&&o.step===1&&(e.clear_drawing_preview(),o.step=0)}s.isDragging=!1,s.isPanning=!1,s.isResizingRsi=!1,s.isResizingOi=!1,s.isResizingFr=!1,s.isResizingCvd=!1,s.isResizingVpin=!1,s.isResizingObFlow=!1,s.isResizingAggLiq=!1,s.isDraggingAnchor=!1,s.isDraggingDrawing=!1,s.dragAnchorIdx=-1,s.qtbPending=!1,s.qtbWorldY=0,e.hide_crosshair(),t.style.cursor="crosshair",n.onDirty(),n.onCrosshairHide?.(),n.onVrvpHover?.(null,null)}}t.addEventListener("pointerleave",c),t.addEventListener("mouseleave",c),t.addEventListener("dblclick",o=>{if(s.disposed)return;o.preventDefault(),o.stopPropagation();let h=s.drawingMode;if(h&&fe(h.tool)&&h.pathStarted){e.finish_elliott_manual(),s.finishDrawing(),n.onDirty();return}if(h&&ce(h.tool)&&h.pathStarted){e.finish_path(),s.finishDrawing(),n.onDirty();return}if(h)return;let b=e.hit_zone(o.offsetX,o.offsetY),_=e.hit_test_drawing(o.offsetX,o.offsetY);if(_>0){e.select_drawing(_),n.onDirty(),n.onDrawingDblClick?.(_,o.offsetX,o.offsetY,o.clientX,o.clientY);return}if(Xt(b)){e.reset_indicator_y_auto(Kt(b)),n.onDirty();return}let T=f(o.offsetX,o.offsetY);if(T){n.onIndicatorDblClick?.(T,o.offsetX,o.offsetY,o.clientX,o.clientY);return}if(Me(b)){e.reset_indicator_y_auto(Kt(b)),n.onDirty();return}(b===0||b===1)&&n.onChartDblClick?.(o.offsetX,o.offsetY,o.clientX,o.clientY)}),t.addEventListener("contextmenu",o=>{if(s.disposed)return;let h=s.drawingMode;if(h&&fe(h.tool)&&h.pathStarted){o.preventDefault(),o.stopPropagation(),e.finish_elliott_manual(),s.finishDrawing(),n.onDirty();return}if(h&&ce(h.tool)&&h.pathStarted){o.preventDefault(),o.stopPropagation(),e.finish_path(),s.finishDrawing(),n.onDirty();return}})}var hr=25;function to(t,e,n,s){t.addEventListener("touchstart",u=>{if(!s.disposed){if(u.preventDefault(),s.cancelMomentum(),u.touches.length===2){clearTimeout(s.longPressTimer),s.liqPinTimer&&(clearTimeout(s.liqPinTimer),s.liqPinTimer=null),s.isCrosshairMode=!1,s.pinchActive=!0,s.lastTapTime=0;let r=t.getBoundingClientRect(),a=u.touches[1].clientX-u.touches[0].clientX,f=u.touches[1].clientY-u.touches[0].clientY;if(s.lastTouchDist=Math.sqrt(a*a+f*f),s.lastX=(u.touches[0].clientX+u.touches[1].clientX)/2-r.left,s.lastY=(u.touches[0].clientY+u.touches[1].clientY)/2-r.top,s.dragZone=e.hit_zone(s.lastX,s.lastY),s.pinchAnchorY=s.lastY,s.dragZone===255){s.pinchActive=!1,s.lastTouchDist=0;return}}else if(u.touches.length===1){let r=t.getBoundingClientRect(),a=u.touches[0].clientX-r.left,f=u.touches[0].clientY-r.top;if(s.touchStartX=a,s.touchStartY=f,s.touchMoved=!1,typeof e.is_in_watermark_btn=="function"&&e.is_in_watermark_btn(a,f)){s.watermarkTapPending=!0,s.watermarkTapX=a,s.watermarkTapY=f;return}s.watermarkTapPending=!1;let i=s.drawingMode;if(i){let _=e.hit_zone(a,f);if(Zt(_)){let T=Qt(_),{wx:p,wy:P}=vt(e,a,f,T),m=i.tool;if(fe(m)){if(!i.pathStarted)i.pane=T,e.start_elliott_manual(i.style.r,i.style.g,i.style.b,i.style.lineWidth,T),e.add_elliott_manual_point(p,P),i.pathStarted=!0,i.step=1;else if(e.add_elliott_manual_point(p,P)){s.finishDrawing(),n.onDirty();return}}else ce(m)?i.pathStarted?e.add_path_point(p,P):(i.pane=T,e.start_path(i.style.r,i.style.g,i.style.b,i.style.lineWidth,i.style.dashed,T),e.add_path_point(p,P),i.pathStarted=!0,i.step=1):_r(m)?(i.pane=T,e.start_brush(i.style.r,i.style.g,i.style.b,i.style.lineWidth,T),e.add_brush_point(p,P),s.isBrushing=!0,s.brushLastSx=a,s.brushLastSy=f):De(m)?i.step===0?(i.x1=p,i.y1=P,i.pane=T,i.step=1,i._stepAtTouchStart=0,jt(e,m,i,p,P,i.style,T)):i.step===1?(i._stepAtTouchStart=1,jt(e,m,i,p,P,i.style,i.pane)):(i._stepAtTouchStart=2,jt(e,m,i,p,P,i.style,i.pane)):Je(m)||tr(m)?i.step===0?(i.x1=p,i.y1=P,i.pane=T,i.step=1,i._stepAtTouchStart=0,jt(e,m,i,p,P,i.style,T)):(i._stepAtTouchStart=1,jt(e,m,i,p,P,i.style,i.pane)):He(m)?(i.pane=T,jt(e,m,i,p,P,i.style,T)):(i.pane=T,ee(e,m,i,p,P,i.style),s.finishDrawing());e.set_crosshair(a,f),n.onDirty(),n.onCrosshairMove?.(a,f,_)}return}let c=e.hover_hit_test(a,f),o=c[0],h=c[1],b=c[2];if(o===255)return;if(Zt(o)&&!s.drawingMode&&h>0){if(b>=0){s.isDraggingAnchor=!0,s.dragAnchorIdx=b,s.dragAnchorPane=Qt(o);return}if(c[3]===h){s.isDraggingDrawing=!0,s.dragDrawingPane=Qt(o);let{wx:T,wy:p}=vt(e,a,f,s.dragDrawingPane);s.dragDrawingLastWx=T,s.dragDrawingLastWy=p;return}}s.isDragging=!0,s.isCrosshairMode=!1,s.lastX=a,s.lastY=f,s.dragZone=o,clearTimeout(s.longPressTimer),s.longPressTimer=setTimeout(()=>{s.isDragging&&!s.touchMoved&&(s.isCrosshairMode=!0,e.set_crosshair(a,f),n.onDirty(),n.onCrosshairMove?.(a,f,s.dragZone),n.onVrvpHover?.(a,f))},300),Zt(s.dragZone)&&(s.liqPinSx=a,s.liqPinSy=f,s.liqPinTimer&&clearTimeout(s.liqPinTimer),s.liqPinTimer=setTimeout(()=>{s.liqPinTimer=null,s.touchMoved||n.onLiqAnnotationPin?.(s.liqPinSx,s.liqPinSy)},700))}}},{passive:!1}),t.addEventListener("touchmove",u=>{if(s.disposed)return;u.preventDefault();let r=t.getBoundingClientRect();if(s.isDraggingAnchor&&u.touches.length===1){let f=u.touches[0].clientX-r.left,i=u.touches[0].clientY-r.top,{wx:c,wy:o}=vt(e,f,i,s.dragAnchorPane);e.update_drawing_anchor(s.dragAnchorIdx,c,o),e.set_crosshair(f,i),n.onDirty();return}if(s.isDraggingDrawing&&u.touches.length===1){let f=u.touches[0].clientX-r.left,i=u.touches[0].clientY-r.top;s.touchMoved=!0;let{wx:c,wy:o}=vt(e,f,i,s.dragDrawingPane),h=c-s.dragDrawingLastWx,b=o-s.dragDrawingLastWy;e.move_drawing(h,b),s.dragDrawingLastWx=c,s.dragDrawingLastWy=o,e.set_crosshair(f,i),n.onDirty();return}let a=s.drawingMode;if(s.isBrushing&&a&&u.touches.length===1){let f=u.touches[0].clientX-r.left,i=u.touches[0].clientY-r.top,c=a.pane||0;dr(e,f,i,s.brushLastSx,s.brushLastSy,c),s.brushLastSx=f,s.brushLastSy=i,e.set_crosshair(f,i),n.onDirty(),s.touchMoved=!0;return}if(a&&fe(a.tool)&&a.pathStarted&&u.touches.length===1){let f=u.touches[0].clientX-r.left,i=u.touches[0].clientY-r.top,c=a.pane||0,{wx:o,wy:h}=vt(e,f,i,c);e.set_elliott_manual_cursor(o,h),e.set_crosshair(f,i),n.onDirty(),s.touchMoved=!0;return}if(a&&ce(a.tool)&&a.pathStarted&&u.touches.length===1){let f=u.touches[0].clientX-r.left,i=u.touches[0].clientY-r.top,c=a.pane||0,{wx:o,wy:h}=vt(e,f,i,c);e.set_path_cursor(o,h),e.set_crosshair(f,i),n.onDirty(),s.touchMoved=!0;return}if(a&&a.step>0&&u.touches.length===1){let f=u.touches[0].clientX-r.left,i=u.touches[0].clientY-r.top;!s.touchMoved&&(Math.abs(f-s.touchStartX)>hr||Math.abs(i-s.touchStartY)>hr)&&(s.touchMoved=!0);let c=a.pane||0,{wx:o,wy:h}=vt(e,f,i,c);jt(e,a.tool,a,o,h,a.style,c),e.set_crosshair(f,i);let b=e.hit_zone(f,i);n.onDirty(),n.onCrosshairMove?.(f,i,b);return}if(a&&He(a.tool)&&u.touches.length===1){let f=u.touches[0].clientX-r.left,i=u.touches[0].clientY-r.top,c=e.hit_zone(f,i),o=Qt(c),{wx:h,wy:b}=vt(e,f,i,o);jt(e,a.tool,a,h,b,a.style,o),e.set_crosshair(f,i),n.onDirty(),n.onCrosshairMove?.(f,i,c);return}if(u.touches.length===2){if(s.dragZone===255)return;s.velSamples=[],s.pinchActive=!0;let f=u.touches[1].clientX-u.touches[0].clientX,i=u.touches[1].clientY-u.touches[0].clientY,c=Math.sqrt(f*f+i*i),o=s.lastTouchDist/c,h=(u.touches[0].clientX+u.touches[1].clientX)/2-r.left,b=(u.touches[0].clientY+u.touches[1].clientY)/2-r.top,_=s.pinchAnchorY??b;s.dragZone===3?e.zoom_y(_,o):Xt(s.dragZone)&&s.dragZone!==14?e.zoom_indicator_y(Kt(s.dragZone),_,o):s.dragZone===14?(e.zoom_x(h,o),ue(e,4,h-s.lastX,b-s.lastY)):s.dragZone===2?e.zoom_x(h,o):Me(s.dragZone)?(e.zoom_x(h,o),ue(e,s.dragZone,h-s.lastX,b-s.lastY)):(e.zoom(h,b,o),ue(e,s.dragZone,h-s.lastX,b-s.lastY)),s.lastTouchDist=c,s.lastX=h,s.lastY=b,n.onDirty()}else if(u.touches.length===1&&s.isDragging){let f=u.touches[0].clientX-r.left,i=u.touches[0].clientY-r.top,c=f-s.lastX,o=i-s.lastY;if(!s.touchMoved&&(Math.abs(f-s.touchStartX)>hr||Math.abs(i-s.touchStartY)>hr)&&(s.touchMoved=!0,s.isCrosshairMode||clearTimeout(s.longPressTimer),s.liqPinTimer&&(clearTimeout(s.liqPinTimer),s.liqPinTimer=null)),s.isCrosshairMode)e.set_crosshair(f,i),n.onDirty(),n.onCrosshairMove?.(f,i,s.dragZone),n.onVrvpHover?.(f,i);else if(s.touchMoved){if(s.isPanning=!0,s.lastX=f,s.lastY=i,s.dragZone===3||Xt(s.dragZone)||s.recordVelocity(c,o),s.dragZone===2)e.pan_x(c);else if(s.dragZone===3){let b=Math.pow(1.005,o);e.zoom_y(s.touchStartY,b)}else if(s.dragZone!==14)if(Xt(s.dragZone)){let b=Math.pow(1.005,o);e.zoom_indicator_y(Kt(s.dragZone),s.touchStartY,b)}else ue(e,s.dragZone,c,o);n.onDirty()}else s.lastX=f,s.lastY=i}},{passive:!1}),t.addEventListener("touchend",u=>{if(s.disposed)return;if(clearTimeout(s.longPressTimer),s.liqPinTimer&&(clearTimeout(s.liqPinTimer),s.liqPinTimer=null),s.watermarkTapPending&&u.touches.length===0){if(s.watermarkTapPending=!1,!s.touchMoved&&!s.pinchActive&&typeof e.is_in_watermark_btn=="function"&&e.is_in_watermark_btn(s.watermarkTapX,s.watermarkTapY))try{window.open("https://app.mrd-indicators.com/charting-library/pricing","_blank","noopener,noreferrer")}catch{}return}if(s.isDraggingAnchor){s.isDraggingAnchor=!1,s.dragAnchorIdx=-1,e.hide_crosshair(),n.onDirty(),n.onCrosshairHide?.();return}if(s.isDraggingDrawing){if(s.isDraggingDrawing=!1,e.hide_crosshair(),n.onDirty(),n.onCrosshairHide?.(),!s.touchMoved){let i=e.get_selected_drawing();if(i>0){let c=t.getBoundingClientRect();n.onDrawingDblClick?.(i,s.touchStartX,s.touchStartY,s.touchStartX+c.left,s.touchStartY+c.top)}}return}if(s.isBrushing){s.isBrushing=!1,s.brushLastSx=null,s.brushLastSy=null,e.finish_brush(),s.finishDrawing(),n.onDirty(),n.onCrosshairHide?.();return}let r=s.drawingMode;if(r&&fe(r.tool)&&r.pathStarted){let i=Date.now(),c=s.touchStartX-(s._pathLastTapX||0),o=s.touchStartY-(s._pathLastTapY||0),h=Math.sqrt(c*c+o*o);i-(s._pathLastTapTime||0)<350&&h<30?(e.finish_elliott_manual(),s.finishDrawing(),s._pathLastTapTime=0):(s._pathLastTapTime=i,s._pathLastTapX=s.touchStartX,s._pathLastTapY=s.touchStartY),s.isDragging=!1,s.lastTouchDist=0,n.onDirty();return}if(r&&ce(r.tool)&&r.pathStarted){let i=Date.now(),c=s.touchStartX-(s._pathLastTapX||0),o=s.touchStartY-(s._pathLastTapY||0),h=Math.sqrt(c*c+o*o);i-(s._pathLastTapTime||0)<350&&h<30?(e.finish_path(),s.finishDrawing(),s._pathLastTapTime=0):(s._pathLastTapTime=i,s._pathLastTapX=s.touchStartX,s._pathLastTapY=s.touchStartY),s.isDragging=!1,s.lastTouchDist=0,n.onDirty();return}if(r&&De(r.tool)){let i=r._stepAtTouchStart;if(r.step===1&&(i===1||s.touchMoved)){let c=t.getBoundingClientRect(),o=u.changedTouches?.[0];if(o){let h=o.clientX-c.left,b=o.clientY-c.top,_=r.pane||0,{wx:T,wy:p}=vt(e,h,b,_);r.x2=T,r.y2=p,r.step=2,e.clear_drawing_preview()}}else if(r.step===2&&(i===2||s.touchMoved)){let c=t.getBoundingClientRect(),o=u.changedTouches?.[0];if(o){let h=o.clientX-c.left,b=o.clientY-c.top,_=r.pane||0,{wx:T,wy:p}=vt(e,h,b,_),P=Gt[r.tool];P&&P.previewFn==="fib_ext"?e.clear_fib_ext_preview():e.clear_channel_preview(),ee(e,r.tool,r,T,p,r.style),s.finishDrawing()}}s.isDragging=!1,s.lastTouchDist=0,s.drawingMode||(e.hide_crosshair(),n.onCrosshairHide?.()),n.onDirty();return}if(r&&r.step===1&&(Je(r.tool)||tr(r.tool))){if(r._stepAtTouchStart===1||s.touchMoved){let c=t.getBoundingClientRect(),o=u.changedTouches?.[0];if(o){let h=o.clientX-c.left,b=o.clientY-c.top,_=r.pane||0,{wx:T,wy:p}=vt(e,h,b,_);ee(e,r.tool,r,T,p,r.style),s.finishDrawing()}}s.isDragging=!1,s.lastTouchDist=0,s.drawingMode||(e.hide_crosshair(),n.onCrosshairHide?.()),n.onDirty();return}if(r&&He(r.tool)){let i=t.getBoundingClientRect(),c=u.changedTouches?.[0];if(c){let o=c.clientX-i.left,h=c.clientY-i.top,b=e.hit_zone(o,h),_=Zt(b)?Qt(b):r.pane||0,{wx:T,wy:p}=vt(e,o,h,_),P=r.tool;e.clear_drawing_preview();let m=ee(e,P,r,T,p,r.style);s.finishDrawing(),P==="textnote"&&m>0&&(e.select_drawing(m),n.onDrawingSelected?.(m),n.onDrawingDblClick?.(m,o,h,o+i.left,h+i.top))}s.isDragging=!1,s.lastTouchDist=0,e.hide_crosshair(),n.onCrosshairHide?.(),n.onDirty();return}let a=u.touches.length===0;if(a&&!s.pinchActive&&!s.touchMoved&&!s.drawingMode){let i=Date.now(),c=s.touchStartX,o=s.touchStartY,h=c-s.lastTapX,b=o-s.lastTapY,_=Math.sqrt(h*h+b*b),T=i-s.lastTapTime<350&&_<30,p=e.hit_zone(c,o),P=T?e.hit_test_drawing(c,o):0;if(T&&(Me(p)||Xt(p))&&P<=0)e.reset_indicator_y_auto(Kt(p)),n.onDirty();else if(Zt(p)){let m=e.get_selected_drawing(),Y=P>0?P:e.hit_test_drawing(c,o),A=0;if(Y<=0&&(A=e.hit_test_marker(c,o)),Y>0){e.deselect_marker(),n.onMarkerSelected?.(0),e.select_drawing(Y);let E=t.getBoundingClientRect(),M=c+E.left,B=o+E.top;n.onDrawingSelected?.(Y,M,B),(m<=0||m===Y)&&n.onDrawingDblClick?.(Y,c,o,M,B),n.onDirty()}else if(A>0)e.deselect_drawing(),n.onDrawingSelected?.(0),e.select_marker(A),n.onMarkerSelected?.(A),n.onDirty();else if(m>0&&(e.deselect_drawing(),n.onDrawingSelected?.(0),n.onDirty()),e.get_selected_marker()>0&&(e.deselect_marker(),n.onMarkerSelected?.(0),n.onDirty()),T&&p===0){let M=t.getBoundingClientRect();n.onChartDblClick?.(c,o,c+M.left,o+M.top)}}s.lastTapTime=i,s.lastTapX=c,s.lastTapY=o}a&&!s.pinchActive&&s.touchMoved&&!s.isCrosshairMode&&!s.drawingMode&&s.dragZone!==3&&!Xt(s.dragZone)&&s.startMomentum(s.dragZone),s.isDragging=!1,s.isPanning=!1,s.isCrosshairMode=!1,s.lastTouchDist=0,a&&(s.pinchActive=!1),(!s.drawingMode||s.drawingMode.step===0)&&(e.hide_crosshair(),n.onCrosshairHide?.()),n.onDirty(),n.onVrvpHover?.(null,null)}),t.addEventListener("touchcancel",()=>{clearTimeout(s.longPressTimer),s.liqPinTimer&&(clearTimeout(s.liqPinTimer),s.liqPinTimer=null),s.isDragging=!1,s.isPanning=!1,s.isDraggingAnchor=!1,s.isDraggingDrawing=!1,s.isBrushing=!1,s.brushLastSx=null,s.brushLastSy=null,s.isCrosshairMode=!1,s.lastTouchDist=0,s.pinchActive=!1,s.cancelMomentum(),e.hide_crosshair(),n.onCrosshairHide?.(),n.onDirty()})}function kr(t,e,n){let s={disposed:!1,isDragging:!1,dragZone:0,lastX:0,lastY:0,lastTouchDist:0,isResizingRsi:!1,isResizingOi:!1,isResizingFr:!1,isResizingCvd:!1,resizeStartY:0,resizeStartRatio:0,lastClickTime:0,isDraggingAnchor:!1,dragAnchorIdx:-1,dragAnchorPane:0,isBrushing:!1,isDraggingDrawing:!1,dragDrawingPane:0,dragDrawingLastWx:0,dragDrawingLastWy:0,touchStartX:0,touchStartY:0,touchMoved:!1,pinchActive:!1,longPressTimer:null,isCrosshairMode:!1,liqPinTimer:null,liqPinSx:0,liqPinSy:0,velSamples:[],momentumRaf:null,momentumVx:0,momentumVy:0,momentumZone:0,lastTapTime:0,lastTapX:0,lastTapY:0,drawingMode:null,watermarkPending:!1,watermarkTapPending:!1,watermarkTapX:0,watermarkTapY:0,qtbPending:!1,qtbWorldY:0},u=!1;Object.defineProperty(s,"isPanning",{get(){return u},set(_){let T=!!_;T!==u&&(u=T,T?n.onPanStart?.():n.onPanEnd?.())}});let r=.92,a=.5,f=80;s.recordVelocity=function(_,T){let p=performance.now();for(s.velSamples.push({dx:_,dy:T,t:p});s.velSamples.length>0&&p-s.velSamples[0].t>f;)s.velSamples.shift()};function i(){if(s.velSamples.length<2)return{vx:0,vy:0};let _=s.velSamples[0],p=s.velSamples[s.velSamples.length-1].t-_.t;if(p<5)return{vx:0,vy:0};let P=0,m=0;for(let A of s.velSamples)P+=A.dx,m+=A.dy;let Y=16.67;return{vx:P/p*Y,vy:m/p*Y}}s.cancelMomentum=function(){s.momentumRaf&&(cancelAnimationFrame(s.momentumRaf),s.momentumRaf=null),s.velSamples=[]},s.startMomentum=function(_){let{vx:T,vy:p}=i();if(s.velSamples=[],Math.abs(T)<a&&Math.abs(p)<a)return;s.momentumVx=T,s.momentumVy=p,s.momentumZone=_;function P(){if(s.momentumVx*=r,s.momentumVy*=r,Math.abs(s.momentumVx)<a&&Math.abs(s.momentumVy)<a){s.momentumRaf=null;return}if(s.momentumZone===2)e.pan_x(s.momentumVx);else if(s.momentumZone===3)e.pan_y(s.momentumVy);else if(s.momentumZone===14){s.momentumRaf=null;return}else Xt(s.momentumZone)?e.pan_indicator_y(Kt(s.momentumZone),s.momentumVy):ue(e,s.momentumZone,s.momentumVx,s.momentumVy);n.onDirty(),s.momentumRaf=requestAnimationFrame(P)}s.momentumRaf=requestAnimationFrame(P)};let c={setMode(_,T){_?(s.drawingMode={tool:_,style:T,step:0,x1:0,y1:0},t.style.cursor="crosshair"):(s.drawingMode?.pathStarted&&e.finish_path(),s.drawingMode=null,e.clear_drawing_preview(),t.style.cursor="crosshair"),n.onDirty()},getMode(){return s.drawingMode}};n.drawingApi?.(c),s.finishDrawing=function(){e.clear_drawing_preview(),n.onDrawingComplete?.(),s.drawingMode=null,t.style.cursor="crosshair"},Dn(t,e,n,s),to(t,e,n,s);let o=null,h=_=>{let T=document.activeElement?.tagName,p=T==="INPUT"||T==="TEXTAREA"||document.activeElement?.isContentEditable;if((_.key==="Delete"||_.key==="Backspace")&&!s.drawingMode&&!p){let m=e.get_selected_drawing();if(m>0){n.onDrawingMutationBegin?.(),e.remove_drawing(m),n.onDrawingSelected?.(0),n.onDirty();return}let Y=e.get_selected_marker();if(Y>0){n.onDrawingMutationBegin?.(),e.remove_marker(Y),n.onMarkerSelected?.(0),n.onDirty();return}}if(_.key==="z"&&(_.ctrlKey||_.metaKey)&&!_.shiftKey&&!_.altKey&&!p&&!s.drawingMode&&(window.getSelection?.()?.toString()||"").length===0&&n.onUndoRequest?.()){n.onDrawingSelected?.(0),n.onMarkerSelected?.(0),n.onDirty(),_.preventDefault();return}if((_.key==="z"&&(_.ctrlKey||_.metaKey)&&_.shiftKey&&!_.altKey&&!p&&!s.drawingMode||_.key==="y"&&(_.ctrlKey||_.metaKey)&&!_.shiftKey&&!_.altKey&&!p&&!s.drawingMode)&&(window.getSelection?.()?.toString()||"").length===0&&n.onRedoRequest?.()){n.onDrawingSelected?.(0),n.onMarkerSelected?.(0),n.onDirty(),_.preventDefault();return}if(_.key==="c"&&(_.ctrlKey||_.metaKey)&&!_.shiftKey&&!_.altKey&&!p&&!s.drawingMode){let m=e.get_selected_drawing();if(m>0&&(window.getSelection?.()?.toString()||"").length===0){let A=e.export_drawing_by_id(m);if(A&&A.length>0){o=A,_.preventDefault();return}}}if(_.key==="v"&&(_.ctrlKey||_.metaKey)&&!_.shiftKey&&!_.altKey&&!p&&!s.drawingMode&&o){n.onDrawingMutationBegin?.();let m=e.paste_drawing_json(o,30,30);if(m>0){n.onDrawingSelected?.(m),n.onDirty(),_.preventDefault();return}}if(_.key==="Escape"&&!s.drawingMode){if(e.get_selected_drawing()>0){e.deselect_drawing(),n.onDrawingSelected?.(0),n.onDirty();return}if(e.get_selected_marker()>0){e.deselect_marker(),n.onMarkerSelected?.(0),n.onDirty();return}}if(_.key==="Escape"&&s.drawingMode){if(s.drawingMode.pathStarted){s.drawingMode.tool==="elliott"?e.finish_elliott_manual():e.finish_path(),s.finishDrawing(),n.onDirty();return}e.clear_drawing_preview(),s.drawingMode=null,t.style.cursor="crosshair",n.onDrawingCancel?.(),n.onDirty();return}if(p)return;let P=20;switch(_.key){case"+":case"=":e.zoom(t.width/2,t.height/2,.9);break;case"-":e.zoom(t.width/2,t.height/2,1.1);break;case"ArrowLeft":e.pan_x(P);break;case"ArrowRight":e.pan_x(-P);break;case"ArrowUp":e.pan_y(-P);break;case"ArrowDown":e.pan_y(P);break;case"r":case"R":e.set_y_auto_scale(!0);for(let m=1;m<=5;m++)e.reset_indicator_y_auto(m);break;default:return}n.onDirty()};window.addEventListener("keydown",h);let b=_=>{if(s.disposed||s.drawingMode)return;let T=typeof n.onImagePasted=="function",p=typeof n.onTextPasted=="function";if(!T&&!p)return;let P=document.activeElement?.tagName;if(P==="INPUT"||P==="TEXTAREA"||document.activeElement?.isContentEditable)return;let Y=_.clipboardData?.items;if(Y){if(T)for(let A=0;A<Y.length;A++){let E=Y[A];if(!E.type||!E.type.startsWith("image/")||E.type==="image/svg+xml")continue;let M=E.getAsFile();if(M){try{_.preventDefault()}catch{}try{n.onImagePasted(M)}catch(B){console.warn("[eventHandler] onImagePasted callback threw",B?.message||B)}return}}if(p){let A="";try{A=_.clipboardData?.getData?.("text/plain")||""}catch{}if(A&&A.trim().length>0){try{_.preventDefault()}catch{}try{n.onTextPasted(A)}catch(E){console.warn("[eventHandler] onTextPasted callback threw",E?.message||E)}}}}};return window.addEventListener("paste",b),()=>{s.disposed=!0,s.cancelMomentum(),window.removeEventListener("keydown",h),window.removeEventListener("paste",b)}}var _e=t=>t instanceof Float64Array?t:new Float64Array(t),eo=(t,e=0)=>{if(t==null||t==="")return e;if(typeof t=="number")return(t|0)&255;switch(String(t).toLowerCase()){case"bull":return 0;case"bear":return 1;case"neutral":return 2;case"all":return 255;default:return e}},zs=(t,e=255)=>{if(t==null||t==="")return e;if(typeof t=="number")return(t|0)&255;switch(String(t).toLowerCase()){case"offside_buy":return 0;case"offside_sell":return 1;case"distribution":return 2;case"accumulation":return 3;case"absorption":return 4;default:return e}},Xs=(t,e=0)=>{if(t==null||t==="")return e;if(typeof t=="number")return(t|0)&255;switch(String(t).toLowerCase()){case"wick":return 0;case"close":return 1;case"all":return 255;default:return e}};function oo(t,e,n,s){let u=r=>s()(r);return{enableRsi(){t.enable_rsi(),e()},disableRsi(){t.disable_rsi(),e()},setRsiPeriod(r){t.set_rsi_period(r),e()},isRsiEnabled(){return t.is_rsi_enabled()},setRsiShowEma(r){t.set_rsi_show_ema(r),e()},setRsiShowWma(r){t.set_rsi_show_wma(r),e()},setRsiShowSignals(r){t.set_rsi_show_signals(r),e()},setRsiShowDivergence(r){t.set_rsi_show_divergence(r),e()},setRsiShowTraps(r){t.set_rsi_show_traps(r),e()},setRsiShowLevels(r){t.set_rsi_show_levels(r),e()},setRsiShowOnChart(r){t.set_rsi_show_on_chart(r),e()},setRsiSmoothing(r){t.set_rsi_smoothing(r),e()},setRsiRatio(r){t.set_rsi_ratio(r),e()},getRsiRatio(){return t.get_rsi_ratio()},enableForexSignals(){u("forexSignals")&&(t.enable_forex_signals(),e())},disableForexSignals(){t.disable_forex_signals(),e()},isForexSignalsEnabled(){return t.is_forex_signals_enabled()},setForexSignalsSetup(r){t.set_forex_signals_setup(r),e()},setForexSignalsMode(r){t.set_forex_signals_mode(r),e()},setForexSignalsShowStats(r){t.set_forex_signals_show_stats(r),e()},getForexSignalsCount(){return t.get_forex_signals_count()},enableOi(){n()||u("oi")&&(t.enable_oi(),e())},disableOi(){n()||(t.disable_oi(),e())},isOiEnabled(){if(n())return!1;try{return t.is_oi_enabled()}catch{return!1}},setOiData(r){n()||(t.set_oi_data(r),e())},setOiDataTs(r,a){n()||(t.set_oi_data_ts(r,a),e())},setOiShowOnChart(r){n()||(t.set_oi_show_on_chart(r),e())},setOiShowSpike(r){n()||(t.set_oi_show_spike(r),e())},setOiSpikeTextSize(r){if(n())return;let a=Number(r);Number.isFinite(a)&&(t.set_oi_spike_text_size(a),e())},setOiDisplayMode(r){n()||(t.set_oi_display_mode(r),e())},setOiRatio(r){n()||(t.set_oi_ratio(r),e())},getOiRatio(){if(n())return .2;try{return t.get_oi_ratio()}catch{return .2}},enableFundingRate(){n()||u("fundingRate")&&(t.enable_funding_rate(),e())},disableFundingRate(){n()||(t.disable_funding_rate(),e())},isFundingRateEnabled(){if(n())return!1;try{return t.is_funding_rate_enabled()}catch{return!1}},setFrBinanceData(r,a){n()||(t.set_fr_binance_data(r,a),e())},setFrAggData(r,a){n()||(t.set_fr_agg_data(r,a),e())},setFrShowAgg(r){n()||(t.set_fr_show_agg(r),e())},setFrShowSma(r){n()||(t.set_fr_show_sma(r),e())},setFrDisplayStyle(r){if(n())return;let a=Number(r),f=Number.isFinite(a)?Math.max(0,Math.min(3,Math.trunc(a))):0;t.set_fr_display_style(f),e()},getFrDisplayStyle(){if(n())return 0;try{return t.get_fr_display_style()}catch{return 0}},clearFrData(){n()||(t.clear_fr_data(),e())},enableCvd(){n()||u("cvd")&&(t.enable_cvd(),e())},disableCvd(){n()||(t.disable_cvd(),e())},isCvdEnabled(){if(n())return!1;try{return t.is_cvd_enabled()}catch{return!1}},setCvdData(r,a){n()||(t.set_cvd_data(r,a),e())},setCvdSpotData(r,a){n()||(t.set_cvd_spot_data(r,a),e())},setCvdSource(r){n()||(t.set_cvd_source(r),e())},getCvdSource(){if(n())return 0;try{return t.get_cvd_source()}catch{return 0}},setCvdMode(r){n()||(t.set_cvd_mode(r),e())},getCvdMode(){if(n())return 0;try{return t.get_cvd_mode()}catch{return 0}},setCvdShowDelta(r){n()||(t.set_cvd_show_delta(r),e())},getCvdShowDelta(){if(n())return!0;try{return t.get_cvd_show_delta()}catch{return!0}},setCvdShowSignals(r){n()||(t.set_cvd_show_signals(r),e())},getCvdShowSignals(){if(n())return!0;try{return t.get_cvd_show_signals()}catch{return!0}},setCvdShowDivergence(r){n()||(t.set_cvd_show_divergence(r),e())},getCvdShowDivergence(){if(n())return!1;try{return t.get_cvd_show_divergence()}catch{return!1}},enableLargeTrades(){n()||u("largeTrades")&&(t.enable_large_trades(),e())},disableLargeTrades(){n()||(t.disable_large_trades(),e())},isLargeTradesEnabled(){if(n())return!1;try{return t.is_large_trades_enabled()}catch{return!1}},setLargeTradesData(r){n()||(t.set_large_trades_data(r),e())},pushLargeTrade(r,a,f,i){n()||(t.push_large_trade(r,a,f,i),e())},clearLargeTrades(){n()||(t.clear_large_trades(),e())},setLtVolumeFilter(r,a){n()||(t.set_lt_volume_filter(r,a),e())},setLtBubbleScale(r){n()||(t.set_lt_bubble_scale(r),e())},setLtBubbleStyle(r){if(n())return;let f=Number(r)===1?1:0;t.set_lt_bubble_style(f),e()},getLtDataMinVol(){return n()?0:t.get_lt_data_min_vol()},getLtDataMaxVol(){return n()?0:t.get_lt_data_max_vol()},ltHitTest(r,a){if(n())return"";try{return t.lt_hit_test(r,a)}catch{return""}},enableVrvp(){n()||u("vrvp")&&(t.enable_vrvp(),e())},disableVrvp(){n()||(t.disable_vrvp(),e())},isVrvpEnabled(){if(n())return!1;try{return t.is_vrvp_enabled()}catch{return!1}},setVrvpPocLine(r){n()||(t.set_vrvp_poc_line(r),e())},setVrvpData(r,a){n()||(t.set_vrvp_data(r,a),e())},vrvpHitTest(r,a){if(n())return"";try{return t.vrvp_hit_test(r,a)}catch{return""}},setVrvpSignalsEnabled(r){n()||(t.set_vrvp_signals_enabled(!!r),e())},isVrvpSignalsEnabled(){if(n())return!1;try{return t.is_vrvp_signals_enabled()}catch{return!1}},setVrvpSignalKinds(r){if(n())return;let a=(Number(r)|0)&255;t.set_vrvp_signal_kinds(a>>>0),e()},setVrvpSignalThresholds(r){if(n()||!r)return;let a=(f,i)=>{let c=Number(f);return Number.isFinite(c)?c:i};t.set_vrvp_signal_thresholds(a(r.vaPct,70),a(r.hvnThreshold,.55),a(r.hvnMinSpacing,6)>>>0,a(r.pocDistancePct,.6),a(r.vaBreakoutVolMult,1.5),a(r.hvnImbalancePct,65),a(r.cooldownBars,5)>>>0),e()},setVrvpSignalTpSl(r){if(n()||!r)return;let a=(f,i)=>{let c=Number(f);return Number.isFinite(c)?c:i};t.set_vrvp_signal_tpsl((Number(r.mode)|0)&1,a(r.atrPeriod,14)>>>0,a(r.atrSlMult,1.5),a(r.atrTpMult,3)),e()},setVrvpSignalShowLabels(r){n()||(t.set_vrvp_signal_show_labels(!!r),e())},getVrvpEvents(){if(n())return[];try{let r=t.get_vrvp_events_json();return r?JSON.parse(r):[]}catch{return[]}},vrvpSignalHitTest(r,a){if(n())return"";try{return t.vrvp_signal_hit_test(r,a)}catch{return""}},enableGaussianVwapCloud(){n()||u("gaussianVwapCloud")&&(t.enable_gaussian_vwap_cloud(),e())},disableGaussianVwapCloud(){n()||(t.disable_gaussian_vwap_cloud(),e())},isGaussianVwapCloudEnabled(){if(n())return!1;try{return t.is_gaussian_vwap_cloud_enabled()}catch{return!1}},setGvwcAnchorMode(r){if(n())return;let a=(Number(r)|0)&255;t.set_gvwc_anchor_mode(a>2?0:a),e()},setGvwcWindowBars(r){if(n())return;let a=Math.max(10,Math.min(1e3,Number(r)|0));t.set_gvwc_window_bars(a>>>0),e()},setGvwcAppearance(r){if(n()||!r)return;let a=(f,i)=>{let c=Number(f);return Number.isFinite(c)?c:i};t.set_gvwc_appearance(a(r.bins,60)>>>0,a(r.sigmaClip,2.5),a(r.gamma,.7),a(r.lineWidth,1.5),!!r.showBands),e()},setGvwcOrderBlock(r){if(n()||!r)return;let a=(f,i)=>{let c=Number(f);return Number.isFinite(c)?c:i};t.set_gvwc_order_block(a(r.lookback,3)>>>0,a(r.impulseMult,1.5),a(r.maxBlocks,24)>>>0,!!r.showMitigated,!!r.extendRight,!!r.useBody),e()},setGvwcSignalsEnabled(r){n()||(t.set_gvwc_signals_enabled(!!r),e())},isGvwcSignalsEnabled(){if(n())return!1;try{return t.is_gvwc_signals_enabled()}catch{return!1}},setGvwcSignalKinds(r){if(n())return;let a=(Number(r)|0)&15;t.set_gvwc_signal_kinds(a>>>0),e()},setGvwcSignalThresholds(r){if(n()||!r)return;let a=(f,i)=>{let c=Number(f);return Number.isFinite(c)?c:i};t.set_gvwc_signal_thresholds(a(r.denseK,.5),a(r.breakoutK,1),a(r.breakoutVolMult,1.5),a(r.cooldownBars,5)>>>0),e()},setGvwcSignalTpSl(r){if(n()||!r)return;let a=(f,i)=>{let c=Number(f);return Number.isFinite(c)?c:i};t.set_gvwc_signal_tpsl((Number(r.mode)|0)&1,a(r.atrPeriod,14)>>>0,a(r.atrSlMult,1.5),a(r.atrTpMult,3)),e()},setGvwcSignalShowLabels(r){n()||(t.set_gvwc_signal_show_labels(!!r),e())},getGvwcEvents(){if(n())return[];try{let r=t.get_gvwc_events_json();return r?JSON.parse(r):[]}catch{return[]}},gvwcHitTest(r,a){if(n())return"";try{return t.gvwc_hit_test(r,a)}catch{return""}},gvwcSignalHitTest(r,a){if(n())return"";try{return t.gvwc_signal_hit_test(r,a)}catch{return""}},enableCvdProfile(){n()||u("cvdProfile")&&(t.enable_cvd_profile(),e())},disableCvdProfile(){n()||(t.disable_cvd_profile(),e())},isCvdProfileEnabled(){if(n())return!1;try{return t.is_cvd_profile_enabled()}catch{return!1}},setCvdProfileSessions(r){n()||(t.set_cvd_profile_sessions(_e(r)),e())},applyCvdProfileUpdate(r,a,f,i){n()||(t.apply_cvd_profile_update(r,a,f,_e(i)),e())},replaceCvdProfileSession(r,a,f,i,c){n()||(t.replace_cvd_profile_session(r,a,!!f,i,_e(c)),e())},openCvdProfileSession(r,a,f){n()||(t.open_cvd_profile_session(r,a,f),e())},clearCvdProfile(){n()||(t.clear_cvd_profile(),e())},setCvdProfileViewMode(r){n()||(t.set_cvd_profile_view_mode(r|0),e())},getCvdProfileViewMode(){if(n())return 2;try{return t.get_cvd_profile_view_mode()}catch{return 2}},setCvdProfileShowAnchors(r){n()||(t.set_cvd_profile_show_anchors(!!r),e())},setCvdProfileShowPoc(r){n()||(t.set_cvd_profile_show_poc(!!r),e())},setCvdProfileShowSessionPocLine(r){n()||(t.set_cvd_profile_show_session_poc_line(!!r),e())},setCvdProfileShowDeltaPoc(r){n()||(t.set_cvd_profile_show_delta_poc(!!r),e())},setCvdProfileTooltipEnabled(r){n()||(t.set_cvd_profile_tooltip_enabled(!!r),e())},setCvdProfileMaxBarRatio(r){n()||(t.set_cvd_profile_max_bar_ratio(Number(r)||.85),e())},setCvdProfileLabelSizeScale(r){if(n())return;let a=Number(r);t.set_cvd_profile_label_size_scale(Number.isFinite(a)?a:1),e()},setCvdProfileBarHeightPx(r){n()||(t.set_cvd_profile_bar_height_px(Number(r)||0),e())},setCvdProfileBarMaxWidthPx(r){n()||(t.set_cvd_profile_bar_max_width_px(Number(r)||0),e())},setCvdProfileThemeMode(r){if(n())return;let a=Number(r),f=a===1||a===2?a:0;t.set_cvd_profile_theme_mode(f),e()},setCvdProfileValueInQuote(r){n()||(t.set_cvd_profile_value_in_quote(!!r),e())},cvdProfileHitTest(r,a){if(n())return"";try{return t.cvd_profile_hit_test(r,a)}catch{return""}},enableCvdOrderBlock(){n()||u("cvdProfile")&&(t.enable_cvd_orderblock(),e())},disableCvdOrderBlock(){n()||(t.disable_cvd_orderblock(),e())},isCvdOrderBlockEnabled(){if(n())return!1;try{return t.is_cvd_orderblock_enabled()}catch{return!1}},clearCvdOrderBlockObs(){n()||(t.clear_cvd_orderblock_obs(),e())},clearCvdOrderBlockAll(){n()||(t.clear_cvd_orderblock_all(),e())},upsertCvdOrderBlockOb(r,a,f,i,c,o,h,b,_,T,p,P,m,Y,A,E,M,B,C,I,O,K,Q,tt,ct,X,k,$,ot,ut,it,st,at,dt,bt){n()||(t.upsert_cvd_orderblock_ob(String(r||""),eo(a),zs(f),(i|0)>>>0,Number(c)||0,Number(o)||0,Number(h)||0,Number(b)||0,Number(_)||0,Number(T)||0,Number(p)||0,Number(P)||0,Number(m)||0,Number(Y)||0,Number(A)||0,Number(E)||0,Number(M)||0,Number(B)||0,Number(C)||0,Number(I)||0,Number(O)||0,Number(K)||0,Number(Q)||0,(tt|0)>>>0,Number(ct)||0,(X|0)>>>0,!!k,Number($)||0,ot===void 0?!0:!!ot,!!ut,!!it,Number(st)||0,Number(at)||0,Number(dt)||0,Number(bt)||0),e())},removeCvdOrderBlockOb(r){if(n())return!1;try{let a=t.remove_cvd_orderblock_ob(String(r||""));return a&&e(),a}catch{return!1}},setCvdOrderBlockDirectionFilter(r){n()||(t.set_cvd_orderblock_direction_filter(eo(r,255)),e())},setCvdOrderBlockMitigationFilter(r){n()||(t.set_cvd_orderblock_mitigation_filter(Xs(r,255)),e())},setCvdOrderBlockMinScore(r){n()||(t.set_cvd_orderblock_min_score(Number(r)||0),e())},setCvdOrderBlockShowMitigated(r){n()||(t.set_cvd_orderblock_show_mitigated(!!r),e())},setCvdOrderBlockBreakerStyle(r){if(n())return;let a=Number(r),f=Number.isFinite(a)?Math.max(0,Math.min(2,Math.trunc(a))):0;t.set_cvd_orderblock_breaker_style(f),e()},setCvdOrderBlockShowObs(r){n()||(t.set_cvd_orderblock_show_obs(!!r),e())},setCvdOrderBlockShowGaps(r){n()||(t.set_cvd_orderblock_show_gaps(!!r),e())},setCvdOrderBlockShowFilledGaps(r){n()||(t.set_cvd_orderblock_show_filled_gaps(!!r),e())},setCvdOrderBlockShowLabels(r){n()||(t.set_cvd_orderblock_show_labels(!!r),e())},setCvdOrderBlockLabelSizeScale(r){if(n())return;let a=Number(r);t.set_cvd_orderblock_label_size_scale(Number.isFinite(a)?a:1),e()},setCvdOrderBlockRenderMode(r){if(n())return;let a=Number(r),f=a===0||a===1||a===2?a:1;t.set_cvd_orderblock_render_mode(f),e()},cvdOrderBlockObCount(){if(n())return 0;try{return t.cvd_orderblock_ob_count()}catch{return 0}},cvdOrderBlockGapCount(){if(n())return 0;try{return t.cvd_orderblock_gap_count()}catch{return 0}},cvdOrderBlockHitTest(r,a){if(n())return"";try{return t.cvd_orderblock_hit_test(r,a)}catch{return""}},enableCvdTradeSignals(){n()||u("cvdProfile")&&(t.enable_cvd_trade_signals(),e())},disableCvdTradeSignals(){n()||(t.disable_cvd_trade_signals(),e())},isCvdTradeSignalsEnabled(){if(n())return!1;try{return t.is_cvd_trade_signals_enabled()}catch{return!1}},clearCvdTradeSignals(){n()||(t.clear_cvd_trade_signals(),e())},upsertCvdTradeSignal(r,a,f,i,c,o,h,b,_,T,p,P,m,Y,A,E,M,B,C,I,O){if(n())return;let K=0;(a==="short"||a===1)&&(K=1);let Q=0;f==="breakout"||f===1?Q=1:f==="delta_trap"||f===2?Q=2:f==="absorption_resolution"||f===3?Q=3:(f==="divergence"||f===4)&&(Q=4);let tt=0;Y==="bull"||Y===1?tt=1:(Y==="bear"||Y===2)&&(tt=2),t.upsert_cvd_trade_signal(String(r||""),K,Q,Number(i)||0,Number(c)||0,Number(o)||0,Number(h)||0,Number(b)||0,Number(_)||0,Number(T)||0,Number(p)||0,Number(P)||0,Number(m)||0,tt,(A|0)>>>0,Number(E)||0,Number(M)||0,Number(B)||0,Number(C)||0,(I|0)>>>0,String(O||"")),e()},removeCvdTradeSignal(r){if(n())return!1;try{let a=t.remove_cvd_trade_signal(String(r||""));return a&&e(),a}catch{return!1}},setCvdTradeSignalsShowLong(r){n()||(t.set_cvd_trade_signals_show_long(!!r),e())},setCvdTradeSignalsShowShort(r){n()||(t.set_cvd_trade_signals_show_short(!!r),e())},setCvdTradeSignalsShowRejection(r){n()||(t.set_cvd_trade_signals_show_rejection(!!r),e())},setCvdTradeSignalsShowBreakout(r){n()||(t.set_cvd_trade_signals_show_breakout(!!r),e())},setCvdTradeSignalsShowDeltaTrap(r){n()||(t.set_cvd_trade_signals_show_delta_trap(!!r),e())},setCvdTradeSignalsShowAbsorptionResolution(r){n()||(t.set_cvd_trade_signals_show_absorption_resolution(!!r),e())},setCvdTradeSignalsShowDivergence(r){n()||(t.set_cvd_trade_signals_show_divergence(!!r),e())},setCvdTradeSignalsShowLabels(r){n()||(t.set_cvd_trade_signals_show_labels(!!r),e())},setCvdTradeSignalsShowLevels(r){n()||(t.set_cvd_trade_signals_show_levels(!!r),e())},setCvdTradeSignalsMinConfidence(r){n()||(t.set_cvd_trade_signals_min_confidence(Number(r)||0),e())},cvdTradeSignalCount(){if(n())return 0;try{return t.cvd_trade_signal_count()}catch{return 0}},cvdTradeSignalsHitTest(r,a){if(n())return"";try{return t.cvd_trade_signals_hit_test(r,a)}catch{return""}},enableCvdDivergence(){n()||u("cvdProfile")&&(t.enable_cvd_divergence(),e())},disableCvdDivergence(){n()||(t.disable_cvd_divergence(),e())},isCvdDivergenceEnabled(){if(n())return!1;try{return t.is_cvd_divergence_enabled()}catch{return!1}},clearCvdDivergence(){n()||(t.clear_cvd_divergence(),e())},upsertCvdDivergence(r,a,f,i,c,o,h,b,_,T,p){if(n())return;let P=0;(a==="hidden"||a===1)&&(P=1);let m=0;(f==="short"||f===1)&&(m=1),t.upsert_cvd_divergence(String(r||""),P,m,Number(i)||0,Number(c)||0,Number(o)||0,Number(h)||0,Number(b)||0,Number(_)||0,Number(T)||0,Number(p)||0),e()},removeCvdDivergence(r){if(n())return!1;try{let a=t.remove_cvd_divergence(String(r||""));return a&&e(),a}catch{return!1}},setCvdDivergenceShowRegular(r){n()||(t.set_cvd_divergence_show_regular(!!r),e())},setCvdDivergenceShowHidden(r){n()||(t.set_cvd_divergence_show_hidden(!!r),e())},setCvdDivergenceShowLong(r){n()||(t.set_cvd_divergence_show_long(!!r),e())},setCvdDivergenceShowShort(r){n()||(t.set_cvd_divergence_show_short(!!r),e())},setCvdDivergenceShowLabels(r){n()||(t.set_cvd_divergence_show_labels(!!r),e())},setCvdDivergenceShowBand(r){n()||(t.set_cvd_divergence_show_band(!!r),e())},setCvdDivergenceMinStrength(r){n()||(t.set_cvd_divergence_min_strength(Number(r)||0),e())},cvdDivergenceCount(){if(n())return 0;try{return t.cvd_divergence_count()}catch{return 0}},cvdDivergenceHitTest(r,a){if(n())return"";try{return t.cvd_divergence_hit_test(r,a)}catch{return""}},enableCvdRegime(){n()||u("cvdProfile")&&(t.enable_cvd_regime(),e())},disableCvdRegime(){n()||(t.disable_cvd_regime(),e())},isCvdRegimeEnabled(){if(n())return!1;try{return t.is_cvd_regime_enabled()}catch{return!1}},clearCvdRegime(){n()||(t.clear_cvd_regime(),e())},upsertCvdRegimeFlip(r,a,f,i,c,o,h,b){if(n())return;let _=T=>T==="bull"||T===1?1:T==="bear"||T===2?2:0;t.upsert_cvd_regime_flip(String(r||""),Number(a)||0,Number(f)||0,_(i),_(c),Number(o)||0,(h|0)>>>0,Number(b)||0),e()},removeCvdRegimeFlip(r){if(n())return!1;try{let a=t.remove_cvd_regime_flip(String(r||""));return a&&e(),a}catch{return!1}},setCvdRegimeShowRibbon(r){n()||(t.set_cvd_regime_show_ribbon(!!r),e())},setCvdRegimeShowWash(r){n()||(t.set_cvd_regime_show_wash(!!r),e())},setCvdRegimeShowFlipLines(r){n()||(t.set_cvd_regime_show_flip_lines(!!r),e())},cvdRegimeFlipCount(){if(n())return 0;try{return t.cvd_regime_flip_count()}catch{return 0}},cvdRegimeHitTest(r,a){if(n())return"";try{return t.cvd_regime_hit_test(r,a)}catch{return""}},enableTpo(){n()||u("tpo")&&(t.enable_tpo(),e())},disableTpo(){n()||(t.disable_tpo(),e())},isTpoEnabled(){if(n())return!1;try{return t.is_tpo_enabled()}catch{return!1}},setTpoPocLine(r){n()||(t.set_tpo_poc_line(r),e())},setTpoVaLines(r){n()||(t.set_tpo_va_lines(r),e())},setTpoIb(r){n()||(t.set_tpo_ib(r),e())},setTpoSinglePrints(r){n()||(t.set_tpo_single_prints(r),e())},setTpoPeriod(r){n()||(t.set_tpo_period(r),e())},getTpoPeriod(){if(n())return 1440;try{return t.get_tpo_period()}catch{return 1440}},setTpoNakedPoc(r){n()||(t.set_tpo_naked_poc(r),e())},setTpoProfileShape(r){n()||(t.set_tpo_profile_shape(r),e())},setTpoIbMinutes(r){n()||(t.set_tpo_ib_minutes(r),e())},setTpoLetterMinutes(r){n()||(t.set_tpo_letter_minutes(r),e())},setTpoSignals(r){n()||(t.set_tpo_signals(r),e())},isTpoSignals(){if(n())return!1;try{return t.is_tpo_signals()}catch{return!1}},setTpoMode(r){if(n())return;let a=Number(r);!Number.isFinite(a)||a<0||a>2||(t.set_tpo_mode(a),e())},getTpoMode(){if(n())return 0;try{return t.get_tpo_mode()}catch{return 0}},setTpoVolUnit(r){if(n()||typeof t.set_tpo_vol_unit!="function")return;let a=Number(r);!Number.isFinite(a)||a<0||a>1||(t.set_tpo_vol_unit(a|0),e())},getTpoVolUnit(){if(n())return 0;try{return t.get_tpo_vol_unit()}catch{return 0}},setTpoProfileTextSize(r){if(n()||typeof t.set_tpo_profile_text_size!="function")return;let a=Number(r);!Number.isFinite(a)||a<0||a>4||(t.set_tpo_profile_text_size(a|0),e())},getTpoProfileTextSize(){if(n())return 2;try{return t.get_tpo_profile_text_size()}catch{return 2}},setTpoProfileBrightness(r){if(n()||typeof t.set_tpo_profile_brightness!="function")return;let a=Number(r);if(!Number.isFinite(a))return;let f=Math.max(20,Math.min(200,Math.round(a)));t.set_tpo_profile_brightness(f|0),e()},getTpoProfileBrightness(){if(n())return 100;try{return t.get_tpo_profile_brightness()}catch{return 100}},setTpoVpType(r){if(n()||typeof t.set_tpo_vp_type!="function")return;let a=Number(r);!Number.isFinite(a)||a<0||a>3||(t.set_tpo_vp_type(a|0),e())},getTpoVpType(){if(n())return 0;try{return t.get_tpo_vp_type()}catch{return 0}},setTpoShowValues(r){n()||(t.set_tpo_show_values(r),e())},isTpoShowValues(){if(n())return!1;try{return t.is_tpo_show_values()}catch{return!0}},setTpoShowStats(r){n()||typeof t.set_tpo_show_stats=="function"&&(t.set_tpo_show_stats(r),e())},isTpoShowStats(){if(n())return!0;try{return t.is_tpo_show_stats()}catch{return!0}},setTpoShowLevels(r){n()||typeof t.set_tpo_show_levels=="function"&&(t.set_tpo_show_levels(r),e())},isTpoShowLevels(){if(n())return!0;try{return t.is_tpo_show_levels()}catch{return!0}},setTpoTextSize(r){if(n()||typeof t.set_tpo_text_size!="function")return;let a=Number(r);!Number.isFinite(a)||a<0||a>3||(t.set_tpo_text_size(a|0),e())},getTpoTextSize(){if(n())return 1;try{return t.get_tpo_text_size()}catch{return 1}},enableLiqHeatmap(){n()||u("liqHeatmap")&&(t.enable_liq_heatmap(),e())},disableLiqHeatmap(){n()||(t.disable_liq_heatmap(),e())},isLiqHeatmapEnabled(){if(n())return!1;try{return t.is_liq_heatmap_enabled()}catch{return!1}},setLiqHeatmapRange(r,a){n()||(t.set_liq_heatmap_range(r,a),e())},getLiqHeatmapMin(){if(n())return 0;try{return t.get_liq_heatmap_min()}catch{return 0}},getLiqHeatmapMax(){if(n())return 1;try{return t.get_liq_heatmap_max()}catch{return 1}},getLiqHeatmapSegMax(){if(n())return 0;try{return t.get_liq_heatmap_seg_max()}catch{return 0}},setLiqHeatmapProfile(r){n()||(t.set_liq_heatmap_profile(r),e())},isLiqHeatmapProfile(){if(n())return!0;try{return t.is_liq_heatmap_profile()}catch{return!0}},setLiqHeatmapCellHeight(r){n()||(t.set_liq_heatmap_cell_height(r),e())},getLiqHeatmapCellHeight(){if(n())return 1;try{return t.get_liq_heatmap_cell_height()}catch{return 1}},setLiqHeatmapBarWidth(r){n()||(t.set_liq_heatmap_bar_width(r),e())},getLiqHeatmapBarWidth(){if(n())return 1;try{return t.get_liq_heatmap_bar_width()}catch{return 1}},setLiqHeatmapPredictions(r){n()||(t.set_liq_heatmap_predictions(r),e())},setLiqHeatmapFilledPct(r){n()||(t.set_liq_heatmap_filled_pct(r),e())},getLiqHeatmapFilledPct(){if(n())return .85;try{return t.get_liq_heatmap_filled_pct()}catch{return .85}},liqHeatmapHitTest(r,a){if(n())return"";try{return t.liq_heatmap_hit_test(r,a)}catch{return""}},liqZoneHitTest(r,a){if(n())return"";try{return t.liq_zone_hit_test(r,a)}catch{return""}},enableSmartRanges(){n()||u("smartRanges")&&(t.enable_smart_ranges(),e())},disableSmartRanges(){n()||(t.disable_smart_ranges(),e())},isSmartRangesEnabled(){if(n())return!1;try{return t.is_smart_ranges_enabled()}catch{return!1}},setSrTextSize(r){n()||(t.set_sr_text_size(r),e())},setSrShowOb(r){n()||(t.set_sr_show_ob(r),e())},setSrObLast(r){n()||(t.set_sr_ob_last(r),e())},setSrShowObActivity(r){n()||(t.set_sr_show_ob_activity(r),e())},setSrShowBreakers(r){n()||(t.set_sr_show_breakers(r),e())},setSrMitigation(r){n()||(t.set_sr_mitigation(r),e())},setSrShowMetrics(r){n()||(t.set_sr_show_metrics(r),e())},setSrShowHtfOb(r){n()||(t.set_sr_show_htf_ob(r),e())},setSrHtfMinutes(r){n()||(t.set_sr_htf_minutes(r),e())},setSrShowFvg(r){n()||(t.set_sr_show_fvg(r),e())},setSrFvgTheme(r){n()||(t.set_sr_fvg_theme(r),e())},setSrFvgMitigation(r){n()||(t.set_sr_fvg_mitigation(r),e())},setSrFvgHtf(r){n()||(t.set_sr_fvg_htf(r),e())},setSrFvgExtend(r){n()||(t.set_sr_fvg_extend(r),e())},setSrShowObSignals(r){n()||(t.set_sr_show_ob_signals(r),e())},setSrShowPredict(r){n()||(t.set_sr_show_predict(r),e())},setSrShowFvgSignals(r){n()||(t.set_sr_show_fvg_signals(r),e())},setSrShowSmartRev(r){n()||(t.set_sr_show_smart_rev(r),e())},setSrSmartRevHtf(r){n()||(t.set_sr_smart_rev_htf(r),e())},setSrStatsType(r){n()||(t.set_sr_stats_type(r),e())},setSrStatsPosition(r){n()||(t.set_sr_stats_position(r),e())},getSrSignalsCount(){if(n())return 0;try{return t.get_sr_signals_count()}catch{return 0}},enableEmaStructure(){n()||u("emaStructure")&&(t.enable_ema_structure(),e())},disableEmaStructure(){n()||(t.disable_ema_structure(),e())},isEmaStructureEnabled(){if(n())return!1;try{return t.is_ema_structure_enabled()}catch{return!1}},setEsEma1Len(r){n()||(t.set_es_ema1_len(r),e())},setEsEma2Len(r){n()||(t.set_es_ema2_len(r),e())},setEsWmaLen(r){n()||(t.set_es_wma_len(r),e())},setEsShowEma1(r){n()||(t.set_es_show_ema1(r),e())},setEsShowEma2(r){n()||(t.set_es_show_ema2(r),e())},setEsShowWma(r){n()||(t.set_es_show_wma(r),e())},setEsSwingLen(r){n()||(t.set_es_swing_len(r),e())},setEsShowBos(r){n()||(t.set_es_show_bos(r),e())},enableLiveSignals(){n()||(t.enable_live_signals(),e())},disableLiveSignals(){n()||(t.disable_live_signals(),e())},isLiveSignalsEnabled(){if(n())return!1;try{return t.is_live_signals_enabled()}catch{return!1}},setLiveSignalsData(r){n()||(t.set_live_signals_data(new Float64Array(r)),e())},clearLiveSignals(){n()||(t.clear_live_signals(),e())},setLiveSignalsLeverage(r){n()||(t.set_live_signals_leverage(r),e())},getLiveSignalsLeverage(){if(n())return 10;try{return t.get_live_signals_leverage()}catch{return 10}},setLiveSignalsTrial(r){n()||(t.set_live_signals_trial(r),e())},setLiveSignalsShowEntry(r){n()||(t.set_live_signals_show_entry(r),e())},setLiveSignalsShowTpSl(r){n()||(t.set_live_signals_show_tp_sl(r),e())},setLiveSignalsShowMaxProfit(r){n()||(t.set_live_signals_show_max_profit(r),e())},setLiveSignalsShowLabels(r){n()||(t.set_live_signals_show_labels(r),e())},setLiveSignalsShowZones(r){n()||(t.set_live_signals_show_zones(r),e())},setLiveSignalsTextSize(r){n()||(t.set_live_signals_text_size(r),e())},setLiveSignalsPipValue(r){n()||(t.set_live_signals_pip_value(r),e())},setLiveSignalsLoading(r){n()||(t.set_live_signals_loading(r),e())},getLiveSignalsCount(){if(n())return 0;try{return t.get_live_signals_count()}catch{return 0}},enableVpin(){n()||u("vpin")&&(t.enable_vpin(),e())},disableVpin(){n()||(t.disable_vpin(),e())},isVpinEnabled(){if(n())return!1;try{return t.is_vpin_enabled()}catch{return!1}},setVpinData(r,a){n()||(t.set_vpin_data(r,a),e())},setVpinBucketSize(r){n()||(t.set_vpin_bucket_size(r),e())},getVpinBucketSize(){if(n())return 50;try{return t.get_vpin_bucket_size()}catch{return 50}},setVpinNumBuckets(r){n()||(t.set_vpin_num_buckets(r),e())},getVpinNumBuckets(){if(n())return 50;try{return t.get_vpin_num_buckets()}catch{return 50}},setVpinThreshold(r){n()||(t.set_vpin_threshold(r),e())},getVpinThreshold(){if(n())return .7;try{return t.get_vpin_threshold()}catch{return .7}},setVpinShowSma(r){n()||(t.set_vpin_show_sma(r),e())},setVpinShowZones(r){n()||(t.set_vpin_show_zones(r),e())},enableStopIceberg(){n()||u("stopIceberg")&&(t.enable_stop_iceberg(),e())},disableStopIceberg(){n()||(t.disable_stop_iceberg(),e())},isStopIcebergEnabled(){if(n())return!1;try{return t.is_stop_iceberg_enabled()}catch{return!1}},setSiShowStops(r){n()||(t.set_si_show_stops(r),e())},setSiShowIcebergs(r){n()||(t.set_si_show_icebergs(r),e())},setSiShowZones(r){n()||(t.set_si_show_zones(r),e())},setIcebergEvents(r,a,f,i,c,o){n()||(t.set_iceberg_events(r,a,f,i,c,o),e())},getStopRunCount(){if(n())return 0;try{return t.get_stop_run_count()}catch{return 0}},getIcebergCount(){if(n())return 0;try{return t.get_iceberg_count()}catch{return 0}},enableVolume(){t.enable_volume(),e()},disableVolume(){t.disable_volume(),e()},isVolumeEnabled(){return t.is_volume_enabled()},setVolumeMaPeriod(r){t.set_volume_ma_period(r),e()},setVolumeShowMa(r){t.set_volume_show_ma(r),e()},setVolumeShowSignals(r){t.set_volume_show_signals(r),e()},setVolumeColorMode(r){t.set_volume_color_mode(r),e()},getVolumeMaPeriod(){return t.get_volume_ma_period()},getVolumeShowMa(){return t.get_volume_show_ma()},getVolumeShowSignals(){return t.get_volume_show_signals()},getVolumeColorMode(){return t.get_volume_color_mode()},enableObSignals(){t.enable_ob_signals(),e()},disableObSignals(){t.disable_ob_signals(),e()},isObSignalsEnabled(){return t.is_ob_signals_enabled()},setObsShowWalls(r){t.set_obs_show_walls(r),e()},setObsShowGaps(r){t.set_obs_show_gaps(r),e()},setObsShowAlerts(r){t.set_obs_show_alerts(r),e()},setObsShowCom(r){t.set_obs_show_com(r),e()},setObsWalls(r,a){t.set_obs_walls(new Float64Array(r),new Float64Array(a)),e()},setObsGaps(r,a){t.set_obs_gaps(new Float64Array(r),new Float64Array(a)),e()},pushObsAlert(r,a,f,i,c){t.push_obs_alert(r,a,f,i,c),e()},setObsCom(r){t.set_obs_com(r),e()},clearObSignals(){t.clear_ob_signals(),e()},enableObFlow(){t.enable_ob_flow(),e()},disableObFlow(){t.disable_ob_flow(),e()},isObFlowEnabled(){return t.is_ob_flow_enabled()},setObfShowObi(r){t.set_obf_show_obi(r),e()},setObfShowNetFlow(r){t.set_obf_show_net_flow(r),e()},setObfShowCumDelta(r){t.set_obf_show_cum_delta(r),e()},pushObfSample(r,a,f,i){t.push_obf_sample(r,a,f,i),e()},setObfData(r){t.set_obf_data(new Float64Array(r)),e()},clearObFlow(){t.clear_ob_flow(),e()},setObfRatio(r){t.set_obf_ratio(r),e()},getObfRatio(){return t.get_obf_ratio()},enableObMicro(){t.enable_ob_micro(),e()},disableObMicro(){t.disable_ob_micro(),e()},isObMicroEnabled(){return t.is_ob_micro_enabled()},setObmData(r,a,f,i,c,o,h,b,_,T,p,P,m){t.set_obm_data(r,a,f,i,c,o,h,b,_,T,p,P,m),e()},setObmAnchorTopRight(r){t.set_obm_anchor_top_right(r),e()},clearObMicro(){t.clear_ob_micro(),e()},enableAggLiq(){u("aggLiquidations")&&(t.enable_agg_liq(),e())},disableAggLiq(){t.disable_agg_liq(),e()},isAggLiqEnabled(){return t.is_agg_liq_enabled()},setAggLiqData(r){let a;if(r&&r.length>0&&typeof r[0]=="object"&&!Array.isArray(r[0])){a=new Float64Array(r.length*6);for(let f=0;f<r.length;f++){let i=r[f];a[f*6+0]=Number(i.time)||0,a[f*6+1]=Number(i.longUsd)||0,a[f*6+2]=Number(i.shortUsd)||0,a[f*6+3]=Number(i.longQty)||0,a[f*6+4]=Number(i.shortQty)||0,a[f*6+5]=Number(i.count)||0}}else a=new Float64Array(r||[]);t.set_agg_liq_data(a),e()},pushAggLiqBar(r,a,f,i,c,o){t.push_agg_liq_bar(r,a,f,i,c,o>>>0),e()},clearAggLiq(){t.clear_agg_liq(),e()},setAggLiqMode(r){t.set_agg_liq_mode(r),e()},getAggLiqMode(){return t.get_agg_liq_mode()},setAggLiqShowLong(r){t.set_agg_liq_show_long(r),e()},setAggLiqShowShort(r){t.set_agg_liq_show_short(r),e()},setAggLiqHover(r){t.set_agg_liq_hover(r|0),e()},aggLiqBarJson(r){let a=t.agg_liq_bar_json(r|0);if(!a)return null;try{return JSON.parse(a)}catch{return null}},setAggLiqRatio(r){t.set_agg_liq_ratio(r),e()},getAggLiqRatio(){return t.get_agg_liq_ratio()},screenToAggLiqY(r){return t.screen_to_agg_liq_y(r)},aggLiqToScreenY(r){return t.agg_liq_to_screen_y(r)},setAggLiqSignals(r){let a;if(r&&r.length>0&&typeof r[0]=="object"&&!Array.isArray(r[0])){a=new Float64Array(r.length*6);for(let f=0;f<r.length;f++){let i=r[f];a[f*6+0]=Number(i.time)/1e3,a[f*6+1]=ro[i.type]??-1,a[f*6+2]=no[i.side]??0,a[f*6+3]=Number(i.volumeUsd)||0,a[f*6+4]=Number(i.ratio)||0,a[f*6+5]=Math.max(0,Math.min(1,Number(i.confidence)||0))}}else a=new Float64Array(r||[]);t.set_agg_liq_signals(a),e()},pushAggLiqSignal(r){if(!r||r.time==null||r.type==null)return;let a=ro[r.type];a!=null&&(t.push_agg_liq_signal(Number(r.time)/1e3,a,no[r.side]??0,Number(r.volumeUsd)||0,Number(r.ratio)||0,Math.max(0,Math.min(1,Number(r.confidence)||0))),e())},clearAggLiqSignals(){t.clear_agg_liq_signals(),e()},setAggLiqShowSignals(r){t.set_agg_liq_show_signals(!!r),e()},isAggLiqShowSignals(){return t.is_agg_liq_show_signals()},setAggLiqSignalsOnChart(r){t.set_agg_liq_signals_on_chart(!!r),e()},isAggLiqSignalsOnChart(){return t.is_agg_liq_signals_on_chart()},enableMrdPullback(){n()||u("mrdPullback")&&(t.enable_mrd_pullback(),e())},disableMrdPullback(){n()||(t.disable_mrd_pullback(),e())},isMrdPullbackEnabled(){if(n())return!1;try{return t.is_mrd_pullback_enabled()}catch{return!1}},setMrdPullbackEntryMode(r){n()||(t.set_mrd_pullback_entry_mode(r),e())},setMrdPullbackTrendMode(r){n()||(t.set_mrd_pullback_trend_mode(r),e())},setMrdPullbackShowHiddenDiv(r){n()||(t.set_mrd_pullback_show_hidden_div(r),e())},setMrdPullbackSrMode(r){n()||(t.set_mrd_pullback_sr_mode(r),e())},setMrdPullbackTextSize(r){n()||(t.set_mrd_pullback_text_size(r),e())},setMrdPullbackTfMode(r){n()||(t.set_mrd_pullback_tf_mode(r),e())},setMrdPullbackHtfKlines(r,a,f,i,c,o){n()||(t.set_mrd_pullback_htf_klines(_e(r),_e(a),_e(f),_e(i),_e(c),_e(o)),e())},updateMrdPullbackLastHtfKline(r,a,f,i,c,o){n()||(t.update_mrd_pullback_last_htf_kline(r,a,f,i,c,o),e())},clearMrdPullbackHtfKlines(){n()||(t.clear_mrd_pullback_htf_klines(),e())},enableOiCvdPattern(){n()||(t.enable_oi_cvd_pattern(),e())},disableOiCvdPattern(){n()||(t.disable_oi_cvd_pattern(),e())},isOiCvdPatternEnabled(){if(n())return!1;try{return t.is_oi_cvd_pattern_enabled()}catch{return!1}},setOiCvdPatternKinds(r){if(n())return;let a=(Number(r)|0)&15;t.set_oi_cvd_pattern_kinds(a>>>0),e()},setOiCvdPatternThresholds(r){if(n()||!r)return;let a=(f,i)=>{let c=Number(f);return Number.isFinite(c)?c:i};t.set_oi_cvd_pattern_thresholds(a(r.lookback,10)>>>0,a(r.oiThresholdPct,1.5),a(r.priceCompressPct,1.5),a(r.cvdQuietFactor,.4),a(r.trapLookback,20)>>>0,a(r.trapOiPct,.8),a(r.cooldownBars,5)>>>0),e()},setOiCvdPatternShowLabels(r){n()||(t.set_oi_cvd_pattern_show_labels(!!r),e())},setOiCvdPatternTextSize(r){if(n())return;let a=Number(r);Number.isFinite(a)&&(t.set_oi_cvd_pattern_text_size(a),e())}}}var ro=Object.freeze({spike:0,capitulation:1,cascade_start:2,cascade_exhaustion:3,imbalance:4,silent_zone:5}),no=Object.freeze({neutral:0,long:1,short:2}),fa=Object.freeze({POC_REVERT_LONG:{code:1,bit:0,side:"long",label:"POC\u2191"},POC_REVERT_SHORT:{code:2,bit:1,side:"short",label:"POC\u2193"},VAL_BOUNCE:{code:3,bit:2,side:"long",label:"VAL\u2192"},VAH_REJECT:{code:4,bit:3,side:"short",label:"VAH\u2192"},VAH_BREAK:{code:5,bit:4,side:"long",label:"\u25B6VAH"},VAL_BREAK:{code:6,bit:5,side:"short",label:"\u25C0VAL"},HVN_BUY_IMBAL:{code:7,bit:6,side:"long",label:"+HVN"},HVN_SELL_IMBAL:{code:8,bit:7,side:"short",label:"-HVN"}}),ua=Object.freeze({PULLBACK_LONG:{code:1,bit:0,side:"long",label:"Buy"},PULLBACK_SHORT:{code:2,bit:1,side:"short",label:"Sell"},BREAKOUT_LONG:{code:3,bit:2,side:"long",label:"\u25B6Buy"},BREAKOUT_SHORT:{code:4,bit:3,side:"short",label:"\u25C0Sell"}}),_a=Object.freeze({ROLLING:0,SESSION_DAY:1,AUTO:2});function so(t,e,n,s,u){let r=i=>s()(i),a=()=>{try{u?.()}catch{}},f=(i,c,o)=>i<=1&&c<=1&&o<=1&&(i>0||c>0||o>0)?[Math.round(i*255),Math.round(c*255),Math.round(o*255)]:[i&255,c&255,o&255];return{addMarker(i,c,o){a(),t.add_marker(i,c,o),e()},clearMarkers(){a(),t.clear_markers(),e()},hitTestMarker(i,c){return t.hit_test_marker(i,c)},selectMarker(i){t.select_marker(i),e()},deselectMarker(){t.deselect_marker(),e()},getSelectedMarker(){return t.get_selected_marker()},removeMarker(i){a(),t.remove_marker(i),e()},deleteSelectedMarker(){let i=t.get_selected_marker();return i>0&&(a(),t.remove_marker(i),e()),i},addTrendline(i,c,o,h,b,_,T,p,P,m=0){a();let[Y,A,E]=f(b,_,T),M=t.add_trendline(i,c,o,h,Y,A,E,p,P,m);return e(),M},addImage(i,c,o,h,b,_,T,p,P=0){a();let[m,Y,A]=f(_,T,p),E=t.add_image(i>>>0,c,o,h,b,m,Y,A,P);return e(),E},getDrawingImageId(i){try{return t.get_drawing_image_id(i>>>0)}catch{return 0}},listImageDrawingIds(){try{let i=t.list_image_ids();return Array.from(i||[])}catch{return[]}},addHorizontalLine(i,c,o,h,b,_,T,p=0){a();let[P,m,Y]=f(o,h,b),A=t.add_horizontal_line(i,c,P,m,Y,_,T,p);return e(),A},addArrow(i,c,o,h,b,_,T,p,P,m=0){a();let[Y,A,E]=f(b,_,T),M=t.add_arrow(i,c,o,h,Y,A,E,p,P,m);return e(),M},addFibRetracement(i,c,o,h,b,_,T,p,P,m=0){if(!r("drawingFull"))return 0;a();let[Y,A,E]=f(b,_,T),M=t.add_fib_retracement(i,c,o,h,Y,A,E,p,P,m);return e(),M},addFibExtension(i,c,o,h,b,_,T,p,P,m,Y,A=0){if(!r("drawingFull"))return 0;a();let[E,M,B]=f(T,p,P),C=t.add_fib_extension(i,c,o,h,b,_,E,M,B,m,Y,A);return e(),C},addLongPosition(i,c,o,h,b,_,T,p,P,m=0){if(!r("drawingFull"))return 0;a();let[Y,A,E]=f(b,_,T),M=t.add_long_position(i,c,o,h,Y,A,E,p,P,m);return e(),M},addShortPosition(i,c,o,h,b,_,T,p,P,m=0){if(!r("drawingFull"))return 0;a();let[Y,A,E]=f(b,_,T),M=t.add_short_position(i,c,o,h,Y,A,E,p,P,m);return e(),M},addAnchoredVwap(i,c,o,h,b,_,T=0){if(!r("drawingFull"))return 0;a();let[p,P,m]=f(c,o,h),Y=t.add_anchored_vwap(i,p,P,m,b,_,T);return e(),Y},addPriceLabel(i,c,o,h,b,_,T=0){a();let[p,P,m]=f(o,h,b),Y=t.add_price_label(i,c,p,P,m,_,T);return e(),Y},addTextNote(i,c,o,h,b,_,T=0){a();let[p,P,m]=f(o,h,b),Y=t.add_text_note(i,c,p,P,m,_,T);return e(),Y},addElliottImpulse(i,c,o,h,b,_,T=0){if(!r("drawingFull"))return 0;a();let[p,P,m]=f(o,h,b),Y=t.add_elliott_impulse(i,c,p,P,m,_,T);return e(),Y},addElliottAutoRange(i,c,o,h,b,_,T,p,P,m=0){if(!r("drawingFull"))return 0;a();let[Y,A,E]=f(b,_,T),M=t.add_elliott_auto_range(i,c,o,h,Y,A,E,p,P,m);return e(),M},setElliottAutoConfig(i,c,o){try{t.set_elliott_auto_config(!!i,(c|0)>>>0,Number.isFinite(o)?o:1),e()}catch(h){console.warn("[bridge] setElliottAutoConfig failed",h)}},refreshElliottAuto(){try{t.refresh_elliott_auto_drawings(),e()}catch{}},setDrawingFontSize(i,c){a(),t.set_drawing_font_size(i,c),e()},getDrawingFontSize(i){return t.get_drawing_font_size(i)},setDrawingText(i,c){a(),t.set_drawing_text(i,c),e()},getDrawingText(i){return t.get_drawing_text(i)},setDrawingStyle(i,c,o,h,b){a();let[_,T,p]=f(c,o,h);t.set_drawing_style(i,_,T,p,b),e()},getDrawingColor(i){let c=t.get_drawing_color(i);return c?{r:c>>>24&255,g:c>>>16&255,b:c>>>8&255,lineWidth:(c&255)/10}:null},getDrawingDashed(i){try{return t.get_drawing_dashed(i)}catch{return!1}},setDrawingDashed(i,c){a(),t.set_drawing_dashed(i,c),e()},getDrawingHideLabel(i){try{return t.get_drawing_hide_label(i)}catch{return!1}},setDrawingHideLabel(i,c){a(),t.set_drawing_hide_label(i,c),e()},getDrawingFlipLeft(i){try{return t.get_drawing_flip_left(i)}catch{return!1}},setDrawingFlipLeft(i,c){a();try{t.set_drawing_flip_left(i,c),e()}catch{}},getDrawingTextWrap(i){try{return t.get_drawing_text_wrap(i)}catch{return!1}},setDrawingTextWrap(i,c){a();try{t.set_drawing_text_wrap(i,c),e()}catch{}},getDrawingKindId(i){try{return t.get_drawing_kind_id(i)}catch{return 255}},removeDrawing(i){a(),t.remove_drawing(i),e()},clearDrawings(){a(),t.clear_drawings(),e()},drawingCount(){return t.drawing_count()},setDrawingPreview(i,c,o,h,b,_,T,p,P,m,Y=0){let[A,E,M]=f(_,T,p);t.set_drawing_preview(i,c,o,h,b,A,E,M,P,m,Y),e()},clearDrawingPreview(){t.clear_drawing_preview(),e()},cancelBrush(){t.cancel_brush(),e()},selectDrawing(i){t.select_drawing(i),e()},deselectDrawing(){t.deselect_drawing(),e()},getSelectedDrawing(){return t.get_selected_drawing()},deleteSelectedDrawing(){let i=t.get_selected_drawing();return i>0&&(a(),t.remove_drawing(i),e()),i},exportDrawingsJson(){try{return t.export_drawings_json()}catch{return"[]"}},importDrawingsJson(i){try{t.import_drawings_json(i),e()}catch(c){console.warn("[bridge] importDrawingsJson failed",c)}},exportDrawingById(i){try{return t.export_drawing_by_id(i)}catch{return""}},pasteDrawingJson(i,c=30,o=30){if(typeof i!="string"||i.length===0)return 0;try{a();let h=t.paste_drawing_json(i,c,o);return h>0&&e(),h>>>0}catch(h){return console.warn("[bridge] pasteDrawingJson failed",h),0}},screenToWorld(i,c){return{x:t.screen_to_world_x(i),y:t.screen_to_world_y(c)}},worldToScreen(i,c){try{return{x:t.world_to_screen_x(i),y:t.world_to_screen_y(c)}}catch{return null}}}}var At=t=>t instanceof Float64Array?t:new Float64Array(t);function io(t,e,n,s){let u=r=>s()(r);return{setKlines(r,a,f,i,c,o){n()||(t.set_klines(At(r),At(a),At(f),At(i),At(c),At(o)),e())},setKlinesPreserveViewport(r,a,f,i,c,o){n()||(t.set_klines_preserve_viewport(At(r),At(a),At(f),At(i),At(c),At(o)),e())},setRealTimestamps(r){n()||(t.set_real_timestamps(At(r)),e())},appendRealTimestamp(r){n()||t.append_real_timestamp(r)},prependKlines(r,a,f,i,c,o){n()||(t.prepend_klines(At(r),At(a),At(f),At(i),At(c),At(o)),e())},appendKline(r,a,f,i,c,o){n()||(t.append_kline(r,a,f,i,c,o),e())},updateLastKline(r,a,f,i,c,o){n()||(t.update_last_kline(r,a,f,i,c,o),e())},updateKlineAt(r,a,f,i,c,o,h){if(!n()){try{t.update_kline_at(r,a,f,i,c,o,h)}catch{}e()}},popLastKline(){if(n())return!1;let r=t.pop_last_kline();return r&&e(),!!r},getLastClose(){try{return t.get_last_close()}catch{return 0}},getKlineCount(){if(n())return 0;try{return t.kline_count()}catch{return 0}},getKlineTimestamps(){if(n())return null;try{return t.kline_timestamps()}catch{return null}},getKlineOpens(){if(n())return null;try{return t.kline_opens()}catch{return null}},getKlineHighs(){if(n())return null;try{return t.kline_highs()}catch{return null}},getKlineLows(){if(n())return null;try{return t.kline_lows()}catch{return null}},getKlineCloses(){if(n())return null;try{return t.kline_closes()}catch{return null}},getKlineVolumes(){if(n())return null;try{return t.kline_volumes()}catch{return null}},setHeatmap(r,a,f,i,c,o,h){n()||u("heatmap")&&(t.set_heatmap(At(r),a,f,i,c,o,h),e())},appendHeatmapColumn(r,a,f,i){n()||u("heatmap")&&(t.append_heatmap_column(At(r),a,f,i),e())},updateLastHeatmapColumn(r,a,f){n()||(t.update_last_heatmap_column(At(r),a,f),e())},getHeatmapLastTimestamp(){if(n())return 0;try{return t.get_heatmap_last_timestamp()??0}catch{return 0}},getHeatmapXStep(){if(n())return 0;try{return t.get_heatmap_x_step()??0}catch{return 0}},updateHeatmapColumnAt(r,a,f,i){n()||(t.update_heatmap_column_at(At(r),a,f,i),e())},setHeatmapRange(r,a){n()||(t.set_heatmap_range(r,a),e())},getHeatmapDataRange(){try{return{min:t.get_heatmap_data_min(),max:t.get_heatmap_data_max()}}catch{return{min:0,max:0}}},setHeatmapPrefetchRange(r){try{t.set_heatmap_prefetch_range(r)}catch{}},clearHeatmapPrefetchRange(){try{t.clear_heatmap_prefetch_range()}catch{}},getHeatmapPrefetchMax(){try{return t.get_heatmap_prefetch_max()}catch{return 0}},setHeatmapColorScheme(r){try{t.set_heatmap_color_scheme(r),e()}catch{}},setHeatmapShowProfile(r){try{t.set_heatmap_show_profile(r),e()}catch{}},isHeatmapShowProfile(){try{return t.is_heatmap_show_profile()}catch{return!1}},setHeatmapProfileBrightness(r){try{t.set_heatmap_profile_brightness(Number(r)||1),e()}catch{}},getHeatmapProfileBrightness(){try{return t.get_heatmap_profile_brightness()}catch{return 1}},setHeatmapProfileBarLength(r){try{t.set_heatmap_profile_bar_length(Number(r)||1),e()}catch{}},getHeatmapProfileBarLength(){try{return t.get_heatmap_profile_bar_length()}catch{return 1}},setHeatmapWalls(r){try{t.set_heatmap_walls(new Float64Array(r)),e()}catch{}},clearHeatmapWalls(){try{t.clear_heatmap_walls(),e()}catch{}},getHeatmapWallCount(){try{return t.get_heatmap_wall_count()}catch{return 0}},setChartType(r){n()||r===2&&!u("footprint")||(t.set_chart_type(r),e())},getChartType(){if(n())return 0;try{return t.get_chart_type()}catch{return 0}},setFootprintTickSize(r){n()||u("footprint")&&(t.set_footprint_tick_size(r),e())},footprintSetFontScale(r){if(n()||!u("footprint"))return;let a=Number.isFinite(+r)?+r:1;try{t.footprint_set_font_scale(a)}catch{}e()},footprintEnsureLen(r){n()||t.footprint_ensure_len(r)},footprintAddTrade(r,a,f,i){n()||t.footprint_add_trade(r,a,f,i)},footprintAddTradeBatch(r){n()||!r||r.length===0||t.footprint_add_trade_batch(At(r))},footprintSetBar(r,a,f,i,c){n()||(t.footprint_set_bar(r,a,f,i,c),e())},footprintClear(){n()||(t.footprint_clear(),e())},footprintClearBar(r){n()||t.footprint_clear_bar(r)},footprintPrependEmpty(r){n()||t.footprint_prepend_empty(r)},footprintSetSignalKindsMask(r){if(!n()&&u("footprint")){try{t.footprint_set_signal_kinds_mask((r|0)&255)}catch{}e()}},footprintSetPocMarkerStyle(r){if(n()||!u("footprint"))return;let a=Math.max(0,Math.min(3,r|0));try{t.footprint_set_poc_marker_style(a)}catch{}e()},footprintSetNakedPocEnabled(r){if(!n()&&u("footprint")){try{t.footprint_set_naked_poc_enabled(!!r)}catch{}e()}},footprintSetMinCellVolumePct(r){if(n()||!u("footprint"))return;let a=Number.isFinite(+r)?Math.max(0,Math.min(100,+r)):0;try{t.footprint_set_min_cell_volume_pct(a)}catch{}e()},footprintSetShowSignals(r){n()||(t.footprint_set_show_signals(r),e())},footprintGetShowSignals(){if(n())return!0;try{return t.footprint_get_show_signals()}catch{return!0}},footprintSignalCount(){if(n())return 0;try{return t.footprint_signal_count()}catch{return 0}},footprintSetShowProfile(r){n()||(t.footprint_set_show_profile(r),e())},footprintGetShowProfile(){if(n())return!1;try{return t.footprint_get_show_profile()}catch{return!1}},footprintSetProfileScope(r){if(!n()){try{t.footprint_set_profile_scope((r|0)&255)}catch{}e()}},footprintGetProfileScope(){if(n())return 1;try{return t.footprint_get_profile_scope()}catch{return 1}},footprintSetProfileLookbackBars(r){if(n())return;let a=Math.max(5,Math.min(5e3,r|0));try{t.footprint_set_profile_lookback_bars(a)}catch{}e()},footprintSetVolumeUnitIsUsd(r){if(!n()){try{t.footprint_set_volume_unit_is_usd?.(!!r)}catch{}e()}},footprintGetVolumeUnitIsUsd(){if(n())return!1;try{return!!t.footprint_get_volume_unit_is_usd?.()}catch{return!1}},footprintGetProfileLookbackBars(){if(n())return 100;try{return t.footprint_get_profile_lookback_bars()}catch{return 100}},footprintProfileHitTest(r,a){if(n())return"";try{return t.footprint_profile_hit_test(r,a)}catch{return""}},footprintSetDisplayMode(r){n()||(t.footprint_set_display_mode(r),e())},footprintGetDisplayMode(){if(n())return 0;try{return t.footprint_get_display_mode()}catch{return 0}},footprintSetCellShape(r){if(!n()){try{t.footprint_set_cell_shape((r|0)===1?1:0)}catch{}e()}},footprintGetCellShape(){if(n())return 0;try{return t.footprint_get_cell_shape()}catch{return 0}},footprintSetBidColor(r){if(!n()){if(r==null)try{t.footprint_clear_bid_color()}catch{}else{let a=Math.max(0,Math.min(255,r.r|0)),f=Math.max(0,Math.min(255,r.g|0)),i=Math.max(0,Math.min(255,r.b|0));try{t.footprint_set_bid_color(a,f,i)}catch{}}e()}},footprintSetAskColor(r){if(!n()){if(r==null)try{t.footprint_clear_ask_color()}catch{}else{let a=Math.max(0,Math.min(255,r.r|0)),f=Math.max(0,Math.min(255,r.g|0)),i=Math.max(0,Math.min(255,r.b|0));try{t.footprint_set_ask_color(a,f,i)}catch{}}e()}},footprintSetColorIntensity(r){if(n())return;let a=Number.isFinite(+r)?+r:1;try{t.footprint_set_color_intensity(a)}catch{}e()},footprintGetColorIntensity(){if(n())return 1;try{return t.footprint_get_color_intensity()}catch{return 1}},footprintGetTooltipRect(){if(n())return null;try{let r=t.footprint_tooltip_rect();if(!r||r.length!==4)return null;let a=+r[2],f=+r[3];return!Number.isFinite(a)||!Number.isFinite(f)||a<=0||f<=0?null:{x:+r[0],y:+r[1],w:a,h:f}}catch{return null}},footprintGetProfileTooltipRect(){if(n())return null;try{let r=t.footprint_profile_tooltip_rect();if(!r||r.length!==4)return null;let a=+r[2],f=+r[3];return!Number.isFinite(a)||!Number.isFinite(f)||a<=0||f<=0?null:{x:+r[0],y:+r[1],w:a,h:f}}catch{return null}},footprintSetTooltipEnabled(r){if(!n())try{t.set_footprint_tooltip_enabled(!!r)}catch(a){console.error("[bridgeData] footprintSetTooltipEnabled failed:",a)}},footprintSetProfileTooltipEnabled(r){if(!n())try{t.set_footprint_profile_tooltip_enabled(!!r)}catch(a){console.error("[bridgeData] footprintSetProfileTooltipEnabled failed:",a)}},footprintSetStackedImbalanceEnabled(r){n()||(t.footprint_set_stacked_imbalance_enabled(!!r),e())},footprintGetStackedImbalanceEnabled(){if(n())return!1;try{return t.footprint_get_stacked_imbalance_enabled()}catch{return!1}},footprintSetStackedImbalanceMode(r){n()||(t.footprint_set_stacked_imbalance_mode(r|0),e())},footprintSetStackedImbalanceRatio(r){n()||(t.footprint_set_stacked_imbalance_ratio(Number(r)||3),e())},footprintSetStackedImbalanceMinStack(r){n()||(t.footprint_set_stacked_imbalance_min_stack(Math.max(2,r|0)),e())},footprintSetStackedImbalanceShowFilled(r){n()||(t.footprint_set_stacked_imbalance_show_filled(!!r),e())},footprintSetStackedImbalanceShowBox(r){n()||(t.footprint_set_stacked_imbalance_show_box(!!r),e())},footprintSetStackedImbalanceMaxAge(r){n()||(t.footprint_set_stacked_imbalance_max_age(Math.max(0,r|0)),e())},footprintSetStackedImbalanceHighlightCells(r){if(!n()){try{t.footprint_set_stacked_imbalance_highlight_cells(!!r)}catch{}e()}},footprintGetStackedImbalanceHighlightCells(){if(n())return!1;try{return t.footprint_get_stacked_imbalance_highlight_cells()}catch{return!1}},footprintSetStackedImbalanceShowBracket(r){if(!n()){try{t.footprint_set_stacked_imbalance_show_bracket(!!r)}catch{}e()}},footprintGetStackedImbalanceShowBracket(){if(n())return!1;try{return t.footprint_get_stacked_imbalance_show_bracket()}catch{return!1}},footprintSetStackedImbalanceShowRay(r){if(!n()){try{t.footprint_set_stacked_imbalance_show_ray(!!r)}catch{}e()}},footprintGetStackedImbalanceShowRay(){if(n())return!1;try{return t.footprint_get_stacked_imbalance_show_ray()}catch{return!1}},footprintStackedZoneCount(){if(n())return 0;try{return t.footprint_stacked_zone_count()}catch{return 0}},enableDeltaHistogram(){n()||t.enable_delta_histogram()},disableDeltaHistogram(){n()||t.disable_delta_histogram()},deltaHistogramEnabled(){if(n())return!1;try{return t.delta_histogram_enabled()}catch{return!1}}}}var Vs=1,pr=new Map,Ws=4096,Ur=Object.freeze({r:255,g:255,b:255,a:153});function qs(t){if(typeof t!="string")return Ur;if(t.charCodeAt(0)===35){let n=t.slice(1);return n.length===8?Object.freeze({r:parseInt(n.slice(0,2),16),g:parseInt(n.slice(2,4),16),b:parseInt(n.slice(4,6),16),a:parseInt(n.slice(6,8),16)}):Object.freeze({r:parseInt(n.slice(0,2),16),g:parseInt(n.slice(2,4),16),b:parseInt(n.slice(4,6),16),a:255})}let e=t.match(/rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*([\d.]+))?\)/);return e?Object.freeze({r:+e[1],g:+e[2],b:+e[3],a:e[4]!==void 0?Math.round(+e[4]*255):255}):Ur}function G(t){if(typeof t!="string")return Ur;let e=pr.get(t);if(e!==void 0)return e;pr.size>=Ws&&pr.clear();let n=qs(t);return pr.set(t,n),n}function Gr(t,e,n){let s=new Map,u=null,r=0,a=NaN,f=NaN,i=0,c=0,o=0,h=300,b=16,_=500,T=500,p=100,P=100,m=500,Y=100,A=100,E=500;function M(){let l;try{l=t.kline_count()}catch{return u}if(l===0)return null;c!==o&&(o=c,u=null,r=-1,a=NaN,f=NaN);let d=t.kline_closes(),w=d?.[l-1]??NaN,S=l!==r,g=u==null,v=NaN,L=(()=>{if(S||g)return!1;if(w!==a)return!0;try{v=t.kline_highs()?.[l-1]??NaN}catch{}return v!==f})();if(!S&&!g&&!L)return u;if(L){let F=!1;for(let z of s.values())if(z.calcOnEveryTick&&!z._heavyCompute&&z.enabled){F=!0;break}if(!F||performance.now()-i<h)return a=w,isNaN(v)||(f=v),u}try{let F=t.kline_timestamps(),N=t.kline_opens(),z=t.kline_highs(),W=t.kline_lows(),D=t.kline_volumes();if(!F||!d)return u;u={timestamps:Array.from(F),open:Array.from(N),high:Array.from(z),low:Array.from(W),close:Array.from(d),volume:Array.from(D),length:l},r=l,a=w,f=isNaN(v)?z?.[l-1]??NaN:v,i=performance.now();let Z=L&&!S&&!g;for(let j of s.values())j.enabled&&(Z?j.calcOnEveryTick&&!j._heavyCompute&&(j._needsCompute=!0):j._needsCompute=!0)}catch{}return u}let B=new WeakMap;function C(l){if(l instanceof Float64Array)return l;if(!Array.isArray(l))return new Float64Array(0);let d=B.get(l);if(d&&d.length===l.length)return d;d=new Float64Array(l.length);for(let w=0;w<l.length;w++)d[w]=l[w];return B.set(l,d),d}function I(l){return l instanceof Uint32Array?l:new Uint32Array(l||[])}function O(l){if(typeof l=="number")return(l|0)&15;switch(l){case"left":return 1;case"right":return 2;case"both":return 3;case"up":return 4;case"down":return 8;default:return 0}}function K(l){switch(l){case"below":return 1;case"above":return 2;case"left":return 3;case"right":return 4;default:return 0}}function Q(l){switch(l){case"triangleUp":return 1;case"triangleDown":return 2;case"square":return 3;case"diamond":return 4;case"cross":return 5;case"xcross":return 6;case"arrowUp":return 7;case"arrowDown":return 8;default:return 0}}let tt=0,ct=null,X=new Map,k=null,$=new Map,ot={slotLabel:p,slotBox:T,slotLine:_,slotPolyline:P,slotTrendline:E,slotHline:m,slotFibRet:Y,slotChannel:A};function ut(l){if(!Array.isArray(l)||l.length===0)return;let d=Object.create(null),w=new Uint8Array(l.length),S=!1;for(let v=l.length-1;v>=0;v--){let L=l[v],F=ot[L?.kind];if(!F)continue;let N=d[L.kind]||0;N>=F?(w[v]=1,S=!0):d[L.kind]=N+1}if(!S)return;let g=0;for(let v=0;v<l.length;v++)w[v]||(l[g++]=l[v]);l.length=g}function it(l,d,w,S){if(w<=0)return;let g=0,v=null;for(let[L,F]of l)F.kind===d&&(g++,v===null&&(v=L));if(!(g<w))for(;g>=w&&v!==null;){let L=l.get(v);if(L){try{S(L.id)}catch{}l.delete(v)}g--,v=null;for(let[F,N]of l)if(N.kind===d){v=F;break}}}let st=l=>t.script_object_delete(l),at=l=>t.script_drawing_delete(l);function dt(){return{seriesLine(l,d="#ffffff99",w=1.5){let S=G(d);t.custom_series_line(C(l),S.r,S.g,S.b,S.a,w)},seriesDashedLine(l,d="#ffffff66",w=1,S=4,g=4){let v=G(d);t.custom_series_dashed_line(C(l),v.r,v.g,v.b,v.a,w,S,g)},band(l,d,w="rgba(100,149,237,0.08)"){let S=G(w);t.custom_band(C(l),C(d),S.r,S.g,S.b,S.a)},seriesCandles(l,d,w,S,g="#089981",v="#F23645",L,F){let N=G(g),z=G(v),W=L!=null?G(L):{r:0,g:0,b:0,a:0},D=Number.isFinite(F)&&F>0?F:0;t.custom_candles(C(l),C(d),C(w),C(S),N.r,N.g,N.b,N.a,z.r,z.g,z.b,z.a,W.r,W.g,W.b,W.a,D)},hline(l,d="#ffffff66",w=1){let S=G(d);t.custom_hline(l,S.r,S.g,S.b,S.a,w)},dashedHline(l,d="#ffffff66",w=1,S=6,g=4){let v=G(d);t.custom_dashed_hline(l,v.r,v.g,v.b,v.a,w,S,g)},marker(l,d,w="#e8a04a",S=3){let g=G(w);t.custom_marker(l,d,g.r,g.g,g.b,g.a,S)},markerUp(l,d,w="#26a69a",S=5){let g=G(w);t.custom_marker_up(l,d,g.r,g.g,g.b,g.a,S)},markerDown(l,d,w="#ef5350",S=5){let g=G(w);t.custom_marker_down(l,d,g.r,g.g,g.b,g.a,S)},text(l,d,w,S="#ffffffaa",g=10,v="center"){let L=G(S),F=v==="center"?1:v==="right"?2:0;t.custom_text(l,d,w,L.r,L.g,L.b,L.a,g,F)},priceLabel(l,d,w="#ffffffaa",S=10){let g=G(w);t.custom_price_label(l,d,g.r,g.g,g.b,g.a,S)},linePx(l,d,w,S,g,v=1){let L=G(g);t.custom_line_px(l,d,w,S,L.r,L.g,L.b,L.a,v)},fillRectPx(l,d,w,S,g){let v=G(g);t.custom_fill_rect_px(l,d,w,S,v.r,v.g,v.b,v.a)},strokeRectPx(l,d,w,S,g,v=1){let L=G(g);t.custom_stroke_rect_px(l,d,w,S,L.r,L.g,L.b,L.a,v)},textPx(l,d,w,S,g=10,v="left"){let L=G(S),F=v==="center"?1:v==="right"?2:0;t.custom_text_px(l,d,w,L.r,L.g,L.b,L.a,g,F)},worldToScreenX:l=>t.world_to_screen_x(l),worldToScreenY:l=>t.world_to_screen_y(l),screenToWorldX:l=>t.screen_to_world_x(l),screenToWorldY:l=>t.screen_to_world_y(l),chartArea:()=>({x:t.chart_area_x(),y:t.chart_area_y(),w:t.chart_area_w(),h:t.chart_area_h()}),paneSeriesLine(l,d="#e8a04a",w=1.5){let S=G(d);t.custom_pane_series_line(C(l),S.r,S.g,S.b,S.a,w)},paneSeriesDashedLine(l,d="#e8a04a99",w=1,S=4,g=4){let v=G(d);t.custom_pane_series_dashed_line(C(l),v.r,v.g,v.b,v.a,w,S,g)},paneBand(l,d,w="rgba(232, 160, 74, 0.10)"){let S=G(w);t.custom_pane_band(C(l),C(d),S.r,S.g,S.b,S.a)},paneSeriesCandles(l,d,w,S,g="#089981",v="#F23645",L,F){let N=G(g),z=G(v),W=L!=null?G(L):{r:0,g:0,b:0,a:0},D=Number.isFinite(F)&&F>0?F:0;t.custom_pane_candles(C(l),C(d),C(w),C(S),N.r,N.g,N.b,N.a,z.r,z.g,z.b,z.a,W.r,W.g,W.b,W.a,D)},paneHline(l,d="#ffffff44",w=1){let S=G(d);t.custom_pane_hline(l,S.r,S.g,S.b,S.a,w)},paneDashedHline(l,d="#ffffff44",w=1,S=4,g=4){let v=G(d);t.custom_pane_dashed_hline(l,v.r,v.g,v.b,v.a,w,S,g)},paneLabel(l,d,w="#ffffffaa",S=10,g="left"){let v=G(w),L=g==="center"?1:g==="right"?2:0;t.custom_pane_label(l,String(d),v.r,v.g,v.b,v.a,S,L)},line(l,d,w,S,g="#ffffff66",v=1,L=0,F=0,N=0){let z=G(g),W=O(N);t.custom_line(l,d,w,S,z.r,z.g,z.b,z.a,v,L,F,W)},vline(l,d="#ffffff66",w=1,S=0,g=0){let v=G(d);t.custom_vline(l,v.r,v.g,v.b,v.a,w,S,g)},box(l,d,w,S,g={}){let v=G(g.bg??g.bgColor??"rgba(232,160,74,0.08)"),L=G(g.border??g.borderColor??"#ffffff44"),F=Number.isFinite(g.lineWidth)?g.lineWidth:1,N=!!g.dashed;t.custom_box(l,d,w,S,v.r,v.g,v.b,v.a,L.r,L.g,L.b,L.a,F,N)},label(l,d,w,S={}){let g=G(S.bg??S.bgColor??"rgba(13,15,19,0.92)"),v=G(S.border??S.borderColor??"#ffffff44"),L=G(S.color??S.textColor??"#ffffffe0"),F=Number.isFinite(S.fontSize)?S.fontSize:11,N=Number.isFinite(S.lineWidth)?S.lineWidth:1,z=S.align==="center"?1:S.align==="right"?2:0,W=K(S.anchor);t.custom_label(l,d,String(w),g.r,g.g,g.b,g.a,v.r,v.g,v.b,v.a,L.r,L.g,L.b,L.a,F,N,z,W)},polylineWorld(l,d,w="#e8a04a",S=1.5,g={}){let v=G(w),L=!!g.dashed,F=Number.isFinite(g.dash)?g.dash:4,N=Number.isFinite(g.gap)?g.gap:4;t.custom_polyline_world(C(l),C(d),v.r,v.g,v.b,v.a,S,L,F,N)},polygonWorld(l,d,w={}){let S=G(w.fill??w.bg??"rgba(232,160,74,0.18)"),g=G(w.border??"#e8a04a"),v=Number.isFinite(w.lineWidth)?w.lineWidth:1;t.custom_polygon_world(C(l),C(d),S.r,S.g,S.b,S.a,g.r,g.g,g.b,g.a,v)},arrow(l,d,w,S,g="#e8a04a",v=1.5,L=8){let F=G(g);t.custom_arrow(l,d,w,S,F.r,F.g,F.b,F.a,v,L)},shape(l,d,w={}){let S=Q(w.shape),g=G(w.color??"#e8a04a"),v=Number.isFinite(w.size)?w.size:4;t.custom_shape_batch(I(l),C(d),S,g.r,g.g,g.b,g.a,v)},bgColor(l,d,w="rgba(232,160,74,0.05)"){let S=G(w),g=Array.isArray(l)?l:[l],v=Array.isArray(d)?d:[d];t.custom_bg_color_batch(I(g),I(v),S.r,S.g,S.b,S.a)},plotchar(l,d,w="\xB7",S="#e8a04a",g=10){let v=G(S);t.custom_plotchar_batch(I(l),C(d),String(w),v.r,v.g,v.b,v.a,g)},markersBatch(l,d,w=0,S="#e8a04a",g=5){let v=G(S);t.custom_markers_batch(I(l),C(d),w,v.r,v.g,v.b,v.a,g)},textsBatch(l,d,w,S="#ffffffaa",g=10,v="center"){let L=G(S),F=v==="center"?1:v==="right"?2:0;t.custom_texts_batch(I(l),C(d),String(w),L.r,L.g,L.b,L.a,g,F)},paneLine(l,d,w,S,g="#ffffff66",v=1,L=0,F=0,N=0){let z=G(g),W=O(N);t.custom_pane_line(l,d,w,S,z.r,z.g,z.b,z.a,v,L,F,W)},paneVline(l,d="#ffffff66",w=1,S=0,g=0){let v=G(d);t.custom_pane_vline(l,v.r,v.g,v.b,v.a,w,S,g)},paneBox(l,d,w,S,g={}){let v=G(g.bg??g.bgColor??"rgba(232,160,74,0.08)"),L=G(g.border??g.borderColor??"#ffffff44"),F=Number.isFinite(g.lineWidth)?g.lineWidth:1,N=!!g.dashed;t.custom_pane_box(l,d,w,S,v.r,v.g,v.b,v.a,L.r,L.g,L.b,L.a,F,N)},paneLabelXY(l,d,w,S={}){let g=G(S.bg??S.bgColor??"rgba(13,15,19,0.92)"),v=G(S.border??S.borderColor??"#ffffff44"),L=G(S.color??S.textColor??"#ffffffe0"),F=Number.isFinite(S.fontSize)?S.fontSize:11,N=Number.isFinite(S.lineWidth)?S.lineWidth:1,z=S.align==="center"?1:S.align==="right"?2:0,W=K(S.anchor);t.custom_pane_label_xy(l,d,String(w),g.r,g.g,g.b,g.a,v.r,v.g,v.b,v.a,L.r,L.g,L.b,L.a,F,N,z,W)},setPaneYRange(l,d){!Number.isFinite(l)||!Number.isFinite(d)||t.set_custom_pane_y_range(l,d)},setPaneRatio(l){if(!(!Number.isFinite(l)||l<=0))try{t.set_custom_pane_ratio(l)}catch{}},paneArea:()=>({x:t.custom_pane_x(),y:t.custom_pane_y(),w:t.custom_pane_w(),h:t.custom_pane_h()}),paneYAxisArea:()=>({x:t.custom_pane_yaxis_x(),y:t.custom_pane_y(),w:t.custom_pane_yaxis_w(),h:t.custom_pane_h()}),paneYRange:()=>({min:t.custom_pane_y_min(),max:t.custom_pane_y_max()}),paneToScreenY:l=>t.custom_pane_to_screen_y(l),screenToPaneY:l=>t.screen_to_custom_pane_y(l),auxPaneSeriesLine(l,d,w="#e8a04a",S=1.5){let g=G(w);t.aux_pane_series_line(l,C(d),g.r,g.g,g.b,g.a,S)},auxPaneBand(l,d,w,S="rgba(232,160,74,0.10)"){let g=G(S);t.aux_pane_band(l,C(d),C(w),g.r,g.g,g.b,g.a)},auxPaneHline(l,d,w="#ffffff44",S=1){let g=G(w);t.aux_pane_hline(l,d,g.r,g.g,g.b,g.a,S)},auxPaneLabel(l,d,w,S="#ffffffaa",g=10,v="right"){let L=G(S),F=v==="center"?1:v==="left"?0:2;t.aux_pane_label(l,d,String(w),L.r,L.g,L.b,L.a,g,F)},auxPaneLine(l,d,w,S,g,v="#ffffff66",L=1,F=0,N=0,z=0){let W=G(v),D=O(z);t.aux_pane_line(l,d,w,S,g,W.r,W.g,W.b,W.a,L,F,N,D)},auxPaneBox(l,d,w,S,g,v={}){let L=G(v.bg??v.bgColor??"rgba(232,160,74,0.08)"),F=G(v.border??v.borderColor??"#ffffff44"),N=Number.isFinite(v.lineWidth)?v.lineWidth:1,z=!!v.dashed;t.aux_pane_box(l,d,w,S,g,L.r,L.g,L.b,L.a,F.r,F.g,F.b,F.a,N,z)},auxPaneLabelXY(l,d,w,S,g={}){let v=G(g.bg??g.bgColor??"rgba(13,15,19,0.92)"),L=G(g.border??g.borderColor??"#ffffff44"),F=G(g.color??g.textColor??"#ffffffe0"),N=Number.isFinite(g.fontSize)?g.fontSize:11,z=Number.isFinite(g.lineWidth)?g.lineWidth:1,W=g.align==="center"?1:g.align==="right"?2:0,D=K(g.anchor);t.aux_pane_label_xy(l,d,w,String(S),v.r,v.g,v.b,v.a,L.r,L.g,L.b,L.a,F.r,F.g,F.b,F.a,N,z,W,D)},setAuxPaneYRange(l,d,w){!Number.isFinite(d)||!Number.isFinite(w)||t.set_aux_pane_y_range(l,d,w)},setAuxPaneRatio(l,d){if(!(!Number.isFinite(d)||d<=0))try{t.set_aux_pane_ratio(l,d)}catch{}},auxPaneArea:l=>({x:t.aux_pane_x(l),y:t.aux_pane_y(l),w:t.aux_pane_w(l),h:t.aux_pane_h(l)}),auxPaneYAxisArea:l=>({x:t.aux_pane_yaxis_x(l),y:t.aux_pane_y(l),w:t.aux_pane_yaxis_w(l),h:t.aux_pane_h(l)}),auxPaneYRange:l=>({min:t.aux_pane_y_min_get(l),max:t.aux_pane_y_max_get(l)}),auxPaneToScreenY:(l,d)=>t.aux_pane_to_screen_y(l,d),screenToAuxPaneY:(l,d)=>t.screen_to_aux_pane_y(l,d),scriptLabelNew(l,d,w,S={}){let g=tt;if(!g)return 0;let v=G(S.bg??S.bgColor??"rgba(13,15,19,0.92)"),L=G(S.border??S.borderColor??"#ffffff44"),F=G(S.color??S.textColor??"#ffffffe0"),N=Number.isFinite(S.fontSize)?S.fontSize:11,z=Number.isFinite(S.lineWidth)?S.lineWidth:1,W=S.align==="center"?1:S.align==="right"?2:0,D=K(S.anchor),Z=String(S.pane??"overlay");return t.script_label_new(g,Z,l,d,String(w),v.r,v.g,v.b,v.a,L.r,L.g,L.b,L.a,F.r,F.g,F.b,F.a,N,z,W,D)},scriptLabelSetXY(l,d,w){l&&t.script_label_set_xy(l,d,w)},scriptLabelSetText(l,d){l&&t.script_label_set_text(l,String(d))},scriptLabelSetColor(l,d){if(!l)return;let w=G(d);t.script_label_set_color(l,w.r,w.g,w.b,w.a)},scriptLabelSetBg(l,d){if(!l)return;let w=G(d);t.script_label_set_bg(l,w.r,w.g,w.b,w.a)},scriptLabelSetVisible(l,d){l&&t.script_label_set_visible(l,!!d)},scriptBoxNew(l,d,w,S,g={}){let v=tt;if(!v)return 0;let L=G(g.bg??g.bgColor??"rgba(232,160,74,0.10)"),F=G(g.border??g.borderColor??"#ffffff44"),N=Number.isFinite(g.lineWidth)?g.lineWidth:1,z=!!g.dashed,W=O(g.extend??0),D=String(g.pane??"overlay");return t.script_box_new(v,D,l,d,w,S,L.r,L.g,L.b,L.a,F.r,F.g,F.b,F.a,N,z,W)},scriptBoxSetCorners(l,d,w,S,g){l&&t.script_box_set_corners(l,d,w,S,g)},scriptBoxSetTop(l,d){l&&t.script_box_set_top(l,d)},scriptBoxSetBottom(l,d){l&&t.script_box_set_bottom(l,d)},scriptBoxSetRight(l,d){l&&t.script_box_set_right(l,d)},scriptBoxSetBg(l,d){if(!l)return;let w=G(d);t.script_box_set_bg(l,w.r,w.g,w.b,w.a)},scriptBoxSetBorder(l,d){if(!l)return;let w=G(d);t.script_box_set_border(l,w.r,w.g,w.b,w.a)},scriptBoxSetVisible(l,d){l&&t.script_box_set_visible(l,!!d)},scriptLineNew(l,d,w,S,g={}){let v=tt;if(!v)return 0;let L=G(g.color??"#F0B90B"),F=Number.isFinite(g.lineWidth)?g.lineWidth:1.5,N=Number.isFinite(g.dash)?g.dash:0,z=Number.isFinite(g.gap)?g.gap:0,W=O(g.extend??0),D=String(g.pane??"overlay");return t.script_line_new(v,D,l,d,w,S,L.r,L.g,L.b,L.a,F,N,z,W)},scriptLineSetAnchors(l,d,w,S,g){l&&t.script_line_set_anchors(l,d,w,S,g)},scriptLineSetColor(l,d){if(!l)return;let w=G(d);t.script_line_set_color(l,w.r,w.g,w.b,w.a)},scriptLineSetExtend(l,d){l&&t.script_line_set_extend(l,O(d))},scriptLineSetVisible(l,d){l&&t.script_line_set_visible(l,!!d)},scriptPolylineNew(l,d,w={}){let S=tt;if(!S)return 0;let g=G(w.color??"#F0B90B"),v=Number.isFinite(w.lineWidth)?w.lineWidth:1.5,L=!!w.dashed,F=Number.isFinite(w.dash)?w.dash:4,N=Number.isFinite(w.gap)?w.gap:4,z=G(w.fill??"rgba(0,0,0,0)"),W=!!w.closed,D=String(w.pane??"overlay");return t.script_polyline_new(S,D,C(l),C(d),g.r,g.g,g.b,g.a,v,L,F,N,z.r,z.g,z.b,z.a,W)},scriptPolylineSetVisible(l,d){l&&t.script_polyline_set_visible(l,!!d)},scriptTableNew(l,d,w,S,g={}){let v=tt;if(!v)return 0;let L=Number.isFinite(g.cellW)?g.cellW:80,F=Number.isFinite(g.cellH)?g.cellH:22,N=G(g.bg??"rgba(13,15,19,0.92)"),z=G(g.border??"#ffffff22"),W=G(g.color??"#ffffffe0"),D=Number.isFinite(g.fontSize)?g.fontSize:11;return t.script_table_new(v,+l,+d,+L,+F,+w,+S,N.r,N.g,N.b,N.a,z.r,z.g,z.b,z.a,W.r,W.g,W.b,W.a,D)},scriptTableSetCell(l,d,w,S){l&&t.script_table_set_cell(l,+d,+w,String(S))},scriptTableSetVisible(l,d){l&&t.script_table_set_visible(l,!!d)},scriptObjectDelete(l){l&&t.script_object_delete(l)},slotLabel(l,d,w,S,g={}){let v=ct;if(!v)return 0;let L=String(l),F=v.get(L);if(F&&F.kind!=="label"){try{t.script_object_delete(F.id)}catch{}F=null}let N=G(g.bg??g.bgColor??"rgba(13,15,19,0.92)"),z=G(g.border??g.borderColor??"#ffffff44"),W=G(g.color??g.textColor??"#ffffffe0"),D=Number.isFinite(g.fontSize)?g.fontSize:11,Z=Number.isFinite(g.lineWidth)?g.lineWidth:1,j=g.align==="center"?1:g.align==="right"?2:0,pt=K(g.anchor),x=String(g.pane??"overlay");if(!F){it(v,"label",p,st);let et=t.script_label_new(tt,x,d,w,String(S),N.r,N.g,N.b,N.a,z.r,z.g,z.b,z.a,W.r,W.g,W.b,W.a,D,Z,j,pt);return et?(F={id:et,kind:"label",touched:!0},v.set(L,F),et):0}return t.script_label_set_xy(F.id,d,w),t.script_label_set_text(F.id,String(S)),t.script_label_set_color(F.id,W.r,W.g,W.b,W.a),t.script_label_set_bg(F.id,N.r,N.g,N.b,N.a),F.touched=!0,F.id},slotBox(l,d,w,S,g,v={}){let L=ct;if(!L)return 0;let F=String(l),N=L.get(F);if(N&&N.kind!=="box"){try{t.script_object_delete(N.id)}catch{}N=null}let z=G(v.bg??v.bgColor??"rgba(232,160,74,0.10)"),W=G(v.border??v.borderColor??"#ffffff44"),D=Number.isFinite(v.lineWidth)?v.lineWidth:1,Z=!!v.dashed,j=O(v.extend??0),pt=String(v.pane??"overlay");if(!N){it(L,"box",T,st);let x=t.script_box_new(tt,pt,d,w,S,g,z.r,z.g,z.b,z.a,W.r,W.g,W.b,W.a,D,Z,j);return x?(N={id:x,kind:"box",touched:!0},L.set(F,N),x):0}return t.script_box_set_corners(N.id,d,w,S,g),t.script_box_set_bg(N.id,z.r,z.g,z.b,z.a),t.script_box_set_border(N.id,W.r,W.g,W.b,W.a),N.touched=!0,N.id},slotLine(l,d,w,S,g,v={}){let L=ct;if(!L)return 0;let F=String(l),N=L.get(F);if(N&&N.kind!=="line"){try{t.script_object_delete(N.id)}catch{}N=null}let z=G(v.color??"#F0B90B"),W=Number.isFinite(v.lineWidth)?v.lineWidth:1.5,D=Number.isFinite(v.dash)?v.dash:0,Z=Number.isFinite(v.gap)?v.gap:0,j=O(v.extend??0),pt=String(v.pane??"overlay");if(!N){it(L,"line",_,st);let x=t.script_line_new(tt,pt,d,w,S,g,z.r,z.g,z.b,z.a,W,D,Z,j);return x?(N={id:x,kind:"line",touched:!0},L.set(F,N),x):0}return t.script_line_set_anchors(N.id,d,w,S,g),t.script_line_set_color(N.id,z.r,z.g,z.b,z.a),t.script_line_set_extend(N.id,j),N.touched=!0,N.id},slotPolyline(l,d,w,S={}){let g=ct;if(!g)return 0;let v=String(l),L=g.get(v);if(L)try{t.script_object_delete(L.id)}catch{}else it(g,"polyline",P,st);let F=G(S.color??"#F0B90B"),N=Number.isFinite(S.lineWidth)?S.lineWidth:1.5,z=!!S.dashed,W=Number.isFinite(S.dash)?S.dash:4,D=Number.isFinite(S.gap)?S.gap:4,Z=G(S.fill??"rgba(0,0,0,0)"),j=!!S.closed,pt=String(S.pane??"overlay"),x=t.script_polyline_new(tt,pt,C(d),C(w),F.r,F.g,F.b,F.a,N,z,W,D,Z.r,Z.g,Z.b,Z.a,j);return x?(g.set(v,{id:x,kind:"polyline",touched:!0}),x):(g.delete(v),0)},slotTable(l,d,w,S,g,v={}){let L=ct;if(!L)return 0;let F=String(l),N=L.get(F),z=Number.isFinite(v.cellW)?v.cellW:80,W=Number.isFinite(v.cellH)?v.cellH:22,D=G(v.bg??"rgba(13,15,19,0.92)"),Z=G(v.border??"#ffffff22"),j=G(v.color??"#ffffffe0"),pt=Number.isFinite(v.fontSize)?v.fontSize:11;if(N&&(N.kind!=="table"||N.cols!==S||N.rows!==g)){try{t.script_object_delete(N.id)}catch{}N=null}if(!N){let x=t.script_table_new(tt,+d,+w,+z,+W,+S,+g,D.r,D.g,D.b,D.a,Z.r,Z.g,Z.b,Z.a,j.r,j.g,j.b,j.a,pt);return x?(N={id:x,kind:"table",touched:!0,cols:+S,rows:+g},L.set(F,N),x):0}return N.touched=!0,N.id},slotTableSet(l,d,w,S){l&&t.script_table_set_cell(l,+d,+w,String(S))},slotTrendline(l,d,w,S,g,v={}){let L=k;if(!L||!tt)return 0;let F=String(l),N=L.get(F);if(N&&N.kind!=="trendline"){try{t.script_drawing_delete(N.id)}catch{}N=null}let z=G(v.color??"#F0B90B"),W=Number.isFinite(v.lineWidth)?v.lineWidth:1.5,D=!!v.dashed,Z=String(v.pane??"overlay");if(!N){it(L,"trendline",E,at);let j=t.script_drawing_trendline_new(tt,Z,d,w,S,g,z.r,z.g,z.b,z.a,W,D);return j?(N={id:j,kind:"trendline",touched:!0},L.set(F,N),j):0}return t.script_drawing_set_anchors(N.id,C([d,w,S,g])),t.script_drawing_set_color(N.id,z.r,z.g,z.b,z.a),N.touched=!0,N.id},slotHline(l,d,w={}){let S=k;if(!S||!tt)return 0;let g=String(l),v=S.get(g);if(v&&v.kind!=="hline"){try{t.script_drawing_delete(v.id)}catch{}v=null}let L=Number.isFinite(w.anchorX)?w.anchorX:0,F=G(w.color??"#F0B90B"),N=Number.isFinite(w.lineWidth)?w.lineWidth:1,z=!!w.dashed,W=String(w.pane??"overlay");if(!v){it(S,"hline",m,at);let D=t.script_drawing_hline_new(tt,W,d,L,F.r,F.g,F.b,F.a,N,z);return D?(v={id:D,kind:"hline",touched:!0},S.set(g,v),D):0}return t.script_drawing_set_anchors(v.id,C([L,d])),t.script_drawing_set_color(v.id,F.r,F.g,F.b,F.a),v.touched=!0,v.id},slotFibRet(l,d,w,S,g,v={}){let L=k;if(!L||!tt)return 0;let F=String(l),N=L.get(F);if(N&&N.kind!=="fib_ret"){try{t.script_drawing_delete(N.id)}catch{}N=null}let z=G(v.color??"#F0B90B"),W=Number.isFinite(v.lineWidth)?v.lineWidth:1,D=!!v.dashed,Z=String(v.pane??"overlay");if(!N){it(L,"fib_ret",Y,at);let j=t.script_drawing_fib_ret_new(tt,Z,d,w,S,g,z.r,z.g,z.b,z.a,W,D);return j?(N={id:j,kind:"fib_ret",touched:!0},L.set(F,N),j):0}return t.script_drawing_set_anchors(N.id,C([d,w,S,g])),t.script_drawing_set_color(N.id,z.r,z.g,z.b,z.a),N.touched=!0,N.id},slotChannel(l,d,w,S,g,v,L,F={}){let N=k;if(!N||!tt)return 0;let z=String(l),W=N.get(z);if(W&&W.kind!=="channel"){try{t.script_drawing_delete(W.id)}catch{}W=null}let D=G(F.color??"#F0B90B"),Z=Number.isFinite(F.lineWidth)?F.lineWidth:1,j=!!F.dashed,pt=String(F.pane??"overlay");if(!W){it(N,"channel",A,at);let x=t.script_drawing_channel_new(tt,pt,d,w,S,g,v,L,D.r,D.g,D.b,D.a,Z,j);return x?(W={id:x,kind:"channel",touched:!0},N.set(z,W),x):0}return t.script_drawing_set_anchors(W.id,C([d,w,S,g,v,L])),t.script_drawing_set_color(W.id,D.r,D.g,D.b,D.a),W.touched=!0,W.id}}}let bt=new Map;function ft(l="below"){let d=bt.get(l)||0;if(bt.set(l,d+1),d===0)try{l==="below"?t.enable_custom_pane():t.enable_aux_pane(l,.22)}catch(w){console.warn(`[CustomIndicator] enable pane "${l}" failed:`,w)}}function It(l="below"){let d=bt.get(l)||0;if(!(d<=0))if(d===1){bt.delete(l);try{l==="below"?t.disable_custom_pane():t.disable_aux_pane(l)}catch(w){console.warn(`[CustomIndicator] disable pane "${l}" failed:`,w)}}else bt.set(l,d-1)}function Wt(l){if(!l.compute)return;let d=M();if(!d)return;let w=[];try{let v=t.drawing_count?.()??0;for(let L=0;L<v;L++){let F=t.drawing_descriptor?.(L);if(F)try{let N=JSON.parse(F);if(N.owner!=="user")continue;let z=new Set(["trendline","arrow","range","fib_ret","circle","channel","fib_ext","brush","path","elliott"]),W=Array.isArray(N.anchors)?N.anchors:[],D=[];if(z.has(N.kind))for(let pt=0;pt+1<W.length;pt+=2)D.push({t:W[pt],p:W[pt+1]});else N.kind==="hline"?W.length>=2&&D.push({t:W[0],p:W[1]}):N.kind==="arrow_marker_up"||N.kind==="arrow_marker_down"||N.kind==="text_note"?W.length>=2&&D.push({t:W[0],p:W[1]}):N.kind==="price_label"&&W.length>=2&&D.push({t:W[0],p:W[1]});let Z=Array.isArray(N.color)?N.color:null,j=Z?`#${[Z[0]|0,Z[1]|0,Z[2]|0].map(pt=>pt.toString(16).padStart(2,"0")).join("")}`:void 0;w.push({id:`u_${N.id}`,owner:"user",scriptId:null,kind:N.kind,pane:N.pane,anchors:D,anchorsRaw:W,style:{color:j,lineWidth:N.line_width,dashed:!!N.dashed,text:N.text||""}})}catch{}}}catch{}Object.freeze(w),globalThis.__mrdScriptUserDrawings=w;let S=performance.now();try{l._computed=l.compute(d,l.params)||{}}catch(v){console.warn(`[CustomIndicator "${l.name}"] compute error:`,v),l._computed={}}let g=performance.now();l._perf||(l._perf={compute:0,render:0,primitives:0,frames:0}),l._perf.compute=g-S,!l._heavyCompute&&l._perf.compute>b&&(l._heavyCompute=!0,console.warn(`[CustomIndicator "${l.name}"] compute=${l._perf.compute.toFixed(1)}ms > ${b}ms budget \u2014 auto-throttled to bar-close-only (set calcOnEveryTick=false explicitly to silence this).`)),ut(l._computed?.__draws),l._fa=kt(l._computed,l._fa)}function kt(l,d){if(!l||typeof l!="object")return null;let w={};for(let S in l){if(!Object.prototype.hasOwnProperty.call(l,S))continue;let g=l[S];if(Array.isArray(g)&&(typeof g[0]=="number"||g.length===0)){let v=d&&d[S]&&d[S].length===g.length?d[S]:new Float64Array(g.length);for(let L=0;L<g.length;L++)v[L]=g[L];w[S]=v}else g instanceof Float64Array?w[S]=g:g&&typeof g=="object"&&!Array.isArray(g)&&(w[S]=kt(g,d?.[S]))}return w}let Lt=Object.freeze({length:0,timestamps:[],open:[],high:[],low:[],close:[],volume:[]});function rt(l){if(s.size===0)return;let d=M(),w=!1;for(let F of s.values())if(F.enabled&&!(F.compute&&!d)){w=!0;break}if(!w)return;t.custom_begin();let S=dt(),g=d||Lt,v=t.custom_command_count();for(let F of s.values()){if(!F.enabled||F.compute&&!d)continue;if(F._needsCompute&&(Wt(F),F._needsCompute=!1),F._computed?.__draws?.length&&d){let x=d.length;try{let et=t.kline_closes();if(et&&et.length===x){let _t=t.kline_opens(),mt=t.kline_highs(),Mt=t.kline_lows(),gt=x-1;for(let $t of F._computed.__draws){if($t.kind!=="seriesCandles")continue;let[St,Ue,ir,Ge]=$t.args;if(!Array.isArray(St)||St.length!==x||isNaN(St[gt]))continue;let Ke=B.get(St);Ke&&(Ke[gt]=_t[gt]);let y=B.get(Ue);y&&(y[gt]=mt[gt]);let R=B.get(ir);R&&(R[gt]=Mt[gt]);let q=B.get(Ge);q&&(q[gt]=et[gt]),St[gt]=_t[gt],Ue[gt]=mt[gt],ir[gt]=Mt[gt],Ge[gt]=et[gt]}}}catch{}}let N=performance.now();tt=F.id;let z=X.get(F.id);z||(z=new Map,X.set(F.id,z));for(let x of z.values())x.touched=!1;ct=z;let W=$.get(F.id);W||(W=new Map,$.set(F.id,W));for(let x of W.values())x.touched=!1;k=W;try{F.render.call(F,S,F._computed||{},g)}catch(x){console.warn(`[CustomIndicator "${F.name}"] render error:`,x)}finally{for(let[x,et]of z)if(!et.touched){try{t.script_object_delete(et.id)}catch{}z.delete(x)}for(let[x,et]of W)if(!et.touched){try{t.script_drawing_delete(et.id)}catch{}W.delete(x)}tt=0,ct=null,k=null}let D=performance.now();F._perf||(F._perf={compute:0,render:0,primitives:0,frames:0});let Z=.2,j=D-N;F._perf.render=F._perf.render===0?j:F._perf.render*(1-Z)+j*Z;let pt=t.custom_command_count();F._perf.primitives=pt-v,F._perf.frames++,v=pt}if(t.custom_end(),t.custom_command_count()>0){let F=t.get_custom_buffer_ptr(),N=t.get_custom_buffer_len();n(l,e,F,N)}}function Tt(){u=null,r=0,a=NaN,f=NaN;for(let l of s.values())l._needsCompute=!0}function Pt(l,d,w){return l&&Number.isFinite(l.x)&&d>=l.x&&d<=l.x+l.w&&w>=l.y&&w<=l.y+l.h}function Ht(l,d){let w=[...s.values()];for(let S=w.length-1;S>=0;S--){let g=w[S];if(g.enabled&&g.pane!=="overlay"){if(Pt(g._paneSeparatorRect,l,d))return{ind:g,role:"separator"};if(Pt(g._paneYAxisRect,l,d))return{ind:g,role:"yaxis"};if(Pt(g._paneRect,l,d))return{ind:g,role:"body"}}}return null}function Ut(l,d){let w=Ht(l,d);return w?w.ind:null}function H(l,d){let w=l._paneRect,S=l._paneDomain;if(!w||!S)return;let g=S.ymax-S.ymin;if(g<=0||w.h<=0)return;let v=d/w.h*g,L=l._paneViewport||S;l._paneViewport={ymin:L.ymin+v,ymax:L.ymax+v,heightRatio:L.heightRatio}}function V(l,d,w){let S=l._paneRect,g=l._paneDomain;if(!S||!g||!Number.isFinite(g.ymin)||!Number.isFinite(g.ymax))return;let v=g.ymax-g.ymin;if(v<=0)return;let L=Math.max(0,Math.min(1,(d-S.y)/Math.max(1,S.h))),F=g.ymax-L*v,N=v*w,z=l._paneViewportDefault?l._paneViewportDefault.ymax-l._paneViewportDefault.ymin:v;if(z>0&&(N/z>50||N/z<.005))return;let W=F+L*N,D=W-N;l._paneViewport={ymin:D,ymax:W,heightRatio:l._paneViewport?.heightRatio??g.heightRatio}}function J(l){l._paneViewportDefault?l._paneViewport={...l._paneViewportDefault}:l._paneViewport=null}function ht(l,d={}){if(!l||typeof l.addEventListener!="function")return{destroy(){}};let w=typeof d.markDirty=="function"?d.markDirty:()=>{},S=typeof d.getDrawingMode=="function"?d.getDrawingMode:null,g=Z=>{let j=Ut(Z.offsetX,Z.offsetY);if(!j)return;let pt=Z.deltaY>0?1.1:.9;if(Z.ctrlKey||Z.metaKey)V(j,Z.offsetY,pt);else try{t.zoom_x(Z.offsetX,pt)}catch{}Z.preventDefault(),Z.stopPropagation(),w()},v=Z=>{if(S&&S())return;let j=Ut(Z.offsetX,Z.offsetY);j&&(J(j),Z.preventDefault(),Z.stopPropagation(),w())},L=null;function F(){L=null,window.removeEventListener("mousemove",N,!0),window.removeEventListener("mouseup",z,!0);try{l.style.cursor=""}catch{}}function N(Z){if(!L)return;let j=L;if(j.type==="separator"){let pt=j.startSy-Z.offsetY,x=Math.max(.05,Math.min(.5,j.startRatio+pt/j.totalH));try{t.set_custom_pane_ratio(x)}catch{}j.ind._paneViewport={ymin:j.ind._paneViewport?.ymin??j.ind._paneDomain?.ymin,ymax:j.ind._paneViewport?.ymax??j.ind._paneDomain?.ymax,heightRatio:x},w()}else if(j.type==="yaxis"){let pt=Z.offsetY-j.lastSy;j.lastSy=Z.offsetY,H(j.ind,pt),w()}else if(j.type==="body"){let pt=Z.offsetX-j.lastSx,x=Z.offsetY-j.lastSy;if(j.lastSx=Z.offsetX,j.lastSy=Z.offsetY,pt!==0)try{t.pan(pt,0)}catch{}x!==0&&H(j.ind,x),w()}Z.preventDefault(),Z.stopPropagation()}function z(Z){L&&(F(),Z.preventDefault(),Z.stopPropagation())}function W(Z){if(Z.button!==0)return;let j=Ht(Z.offsetX,Z.offsetY);if(!j)return;let{ind:pt,role:x}=j;if(x==="body"){if(S&&S())return;try{if(t.hit_test_drawing&&t.hit_test_drawing(Z.offsetX,Z.offsetY)>0||t.hit_test_marker&&t.hit_test_marker(Z.offsetX,Z.offsetY)>0)return}catch{}}if(x==="separator"){let et=l.getBoundingClientRect(),_t=Math.max(1,et.height-28),mt=pt._paneViewport?.heightRatio??pt._paneDomain?.heightRatio??(()=>{try{return t.get_custom_pane_ratio?.()??.25}catch{return .25}})();L={type:"separator",ind:pt,startSy:Z.offsetY,startRatio:mt,totalH:_t},l.style.cursor="ns-resize"}else x==="yaxis"?(L={type:"yaxis",ind:pt,lastSy:Z.offsetY},l.style.cursor="ns-resize"):x==="body"&&(L={type:"body",ind:pt,lastSx:Z.offsetX,lastSy:Z.offsetY},l.style.cursor="grabbing");window.addEventListener("mousemove",N,!0),window.addEventListener("mouseup",z,!0),Z.preventDefault(),Z.stopPropagation()}function D(Z){if(L)return;let j=Ht(Z.offsetX,Z.offsetY);if(!j)return;let x=S&&S()?"crosshair":j.role==="separator"||j.role==="yaxis"?"ns-resize":"crosshair";requestAnimationFrame(()=>{if(!L)try{l.style.cursor=x}catch{}})}return l.addEventListener("wheel",g,{passive:!1,capture:!0}),l.addEventListener("dblclick",v,{capture:!0}),l.addEventListener("mousedown",W,{capture:!0}),l.addEventListener("mousemove",D,{capture:!1}),{destroy(){l.removeEventListener("wheel",g,{capture:!0}),l.removeEventListener("dblclick",v,{capture:!0}),l.removeEventListener("mousedown",W,{capture:!0}),l.removeEventListener("mousemove",D,{capture:!1}),L&&F()}}}return{notifyKlinesChanged(){c++},releaseAllPersistentState(){for(let l of s.values()){let d=l.id;try{t.script_release(d)}catch(w){console.warn(`[CustomIndicator] script_release(${d}) on symbol change failed:`,w)}try{t.script_release_drawings(d)}catch(w){console.warn(`[CustomIndicator] script_release_drawings(${d}) on symbol change failed:`,w)}X.delete(d),$.delete(d),l._needsCompute=!0,l._computed={}}c++},add(l){let d=Vs++,w=typeof l?.pane=="string"?l.pane.trim():"",S=!w||w==="overlay",g=S?null:w,v={id:d,name:l.name||`Custom ${d}`,params:{...l.params},compute:l.compute||null,render:l.render,enabled:!0,pane:S?"overlay":g,paneId:g,calcOnEveryTick:l.calcOnEveryTick!==!1,_heavyCompute:!1,_computed:{},_needsCompute:!0,_paneRect:null,_paneDomain:null,_paneViewport:null,_paneViewportDefault:null};return s.set(d,v),g&&ft(g),d},remove(l){let d=s.get(l);if(!d)return;let w=d.paneId,S=!!d._hiddenForFocus;try{t.script_release(l)}catch(g){console.warn(`[CustomIndicator] script_release(${l}) failed:`,g)}try{t.script_release_drawings(l)}catch(g){console.warn(`[CustomIndicator] script_release_drawings(${l}) failed:`,g)}X.delete(l),$.delete(l),s.delete(l),w&&!S&&It(w)},updateParams(l,d){let w=s.get(l);w&&(Object.assign(w.params,d),w._needsCompute=!0,w._paneViewport=null,w._paneViewportDefault=null)},setEnabled(l,d){let w=s.get(l);if(!w)return;let S=!!d;if(w.enabled!==S){if(w.enabled=S,!S&&!w._hiddenForFocus){try{t.script_release(l)}catch(g){console.warn(`[CustomIndicator] script_release(${l}) on hide failed:`,g)}try{t.script_release_drawings(l)}catch(g){console.warn(`[CustomIndicator] script_release_drawings(${l}) on hide failed:`,g)}X.delete(l),$.delete(l),w._needsCompute=!0,w._computed={}}!w.paneId||w._hiddenForFocus||(S?ft(w.paneId):It(w.paneId))}},indicatorAtPoint(l,d){let w=[...s.values()];for(let S=w.length-1;S>=0;S--){let g=w[S];if(!(!g.enabled||!g.paneId)&&g.pane!=="overlay"&&(Pt(g._paneSeparatorRect,l,d)||Pt(g._paneYAxisRect,l,d)||Pt(g._paneRect,l,d)))return g.id}return""},hidePanesForFocus(){let l=[];for(let d of s.values())!d.enabled||!d.paneId||d._hiddenForFocus||(d._hiddenForFocus=!0,d.enabled=!1,l.push(d.id),It(d.paneId));return l},restorePanesFromFocus(l){if(!(!Array.isArray(l)||l.length===0))for(let d of l){let w=s.get(d);!w||!w._hiddenForFocus||(w._hiddenForFocus=!1,w.enabled=!0,w.paneId&&ft(w.paneId))}},setCalcOnEveryTick(l,d){let w=s.get(l);w&&(w.calcOnEveryTick=!!d,w._heavyCompute=!1)},list(){return[...s.values()].map(l=>({id:l.id,name:l.name,params:{...l.params},enabled:l.enabled,calcOnEveryTick:!!l.calcOnEveryTick,heavyCompute:!!l._heavyCompute,compute:l._perf?.compute??0}))},perfStats(l){if(l!=null){let w=s.get(l);return!w||!w._perf?null:{...w._perf}}let d={};for(let w of s.values())w._perf&&(d[w.id]={...w._perf,name:w.name});return d},listDrawings(){let l=[],d=0;try{d=t.drawing_count()}catch{return l}for(let w=0;w<d;w++){let S="";try{S=t.drawing_descriptor(w)}catch{continue}if(S)try{l.push(JSON.parse(S))}catch(g){console.warn(`[CustomIndicator] failed to parse drawing[${w}]:`,g,S)}}return l},scriptObjectStats(l){try{let d=t.script_object_counts_for(l)||[],[w=0,S=0,g=0,v=0,L=0]=d;return{labels:w,boxes:S,lines:g,polylines:v,tables:L,total:w+S+g+v+L}}catch{return{labels:0,boxes:0,lines:0,polylines:0,tables:0,total:0}}},invalidateCompute:Tt,renderAll:rt,setupPaneInteraction:ht}}var ao={trial:{candlestick:!0,volume:!0,rsi:!0,drawingBasic:!0,drawingFull:!0,heatmap:!0,footprint:!0,liqHeatmap:!0,oi:!0,fundingRate:!0,cvd:!0,largeTrades:!0,vrvp:!0,tpo:!0,cvdProfile:!0,smartRanges:!0,emaStructure:!0,customIndicators:!0,forexSignals:!0,vpin:!0,stopIceberg:!0,aggLiquidations:!0,mrdPullback:!0,gaussianVwapCloud:!0},standard:{candlestick:!0,volume:!0,rsi:!0,drawingBasic:!0,drawingFull:!1,heatmap:!1,footprint:!1,liqHeatmap:!1,oi:!1,fundingRate:!1,cvd:!1,largeTrades:!1,vrvp:!1,tpo:!1,cvdProfile:!0,smartRanges:!1,emaStructure:!1,customIndicators:!1,forexSignals:!1,vpin:!1,stopIceberg:!1,aggLiquidations:!1,mrdPullback:!1,gaussianVwapCloud:!1},professional:{candlestick:!0,volume:!0,rsi:!0,drawingBasic:!0,drawingFull:!0,heatmap:!0,footprint:!0,liqHeatmap:!0,oi:!0,fundingRate:!0,cvd:!0,largeTrades:!0,vrvp:!1,tpo:!1,cvdProfile:!0,smartRanges:!1,emaStructure:!1,customIndicators:!1,forexSignals:!1,vpin:!1,stopIceberg:!1,aggLiquidations:!0,mrdPullback:!0,gaussianVwapCloud:!0},enterprise:{candlestick:!0,volume:!0,rsi:!0,drawingBasic:!0,drawingFull:!0,heatmap:!0,footprint:!0,liqHeatmap:!0,oi:!0,fundingRate:!0,cvd:!0,largeTrades:!0,vrvp:!0,tpo:!0,cvdProfile:!0,smartRanges:!0,emaStructure:!0,customIndicators:!0,forexSignals:!0,vpin:!0,stopIceberg:!0,aggLiquidations:!0,mrdPullback:!0,gaussianVwapCloud:!0}},Zs={rsi:"RSI",drawingBasic:"Basic Drawing Tools",heatmap:"Orderbook Heatmap",footprint:"Footprint Chart",liqHeatmap:"Liquidation Heatmap",oi:"Open Interest",fundingRate:"Funding Rate",cvd:"CVD",largeTrades:"Large Trades",vrvp:"VRVP",tpo:"TPO / Market Profile",cvdProfile:"CVD Profile",smartRanges:"Smart Ranges",emaStructure:"EMA Structure",drawingFull:"All Drawing Tools",customIndicators:"Custom Indicators",forexSignals:"Forex Signals",vpin:"VPIN",stopIceberg:"Stops & Icebergs",aggLiquidations:"Aggregated Liquidations",mrdPullback:"mrD-Pullback Signals",gaussianVwapCloud:"Gaussian VWAP Cloud"},ks={rsi:"Standard",drawingBasic:"Standard",heatmap:"Professional",footprint:"Professional",liqHeatmap:"Professional",oi:"Professional",fundingRate:"Professional",cvd:"Professional",largeTrades:"Professional",drawingFull:"Professional",vrvp:"Enterprise",tpo:"Enterprise",smartRanges:"Enterprise",emaStructure:"Enterprise",customIndicators:"Enterprise",forexSignals:"Enterprise",vpin:"Enterprise",stopIceberg:"Enterprise",aggLiquidations:"Professional",mrdPullback:"Professional",gaussianVwapCloud:"Professional"};function Pe(t){return ao[t]||ao.trial}function Kr(t){let e=Pe(t),n=new Set;return function(u){if(e[u])return!0;if(!n.has(u)){n.add(u);let r=Zs[u]||u,a=ks[u]||"a higher";console.warn(`[MRD Chart Engine] "${r}" requires ${a} plan. Current plan: ${t}. Upgrade at https://app.mrd-indicators.com/charting-library/pricing`)}return!1}}var gn="jx9hUoH64b12M9nidvauYGZa3KQRjU1UcuQtI2l-0uI",jo=30,Qo="trial",Fr="free";var Jo="https://app.mrd-indicators.com/charting-library/pricing",vn=[95,95,109,114].map(t=>String.fromCharCode(t)).join(""),Ai=1297237059;function wn(t){t=t.replace(/-/g,"+").replace(/_/g,"/");let e=t.length%4;if(e===2)t+="==";else if(e===3)t+="=";else if(e!==0)throw new Error("bad b64url");return atob(t)}function Sn(t){let e=wn(t),n=new Uint8Array(e.length);for(let s=0;s<e.length;s++)n[s]=e.charCodeAt(s);return n}function Ti(t){return new TextEncoder().encode(t)}var Ve=null,We=null;async function Ci(){if(Ve)return Ve;let t=globalThis.crypto?.subtle;if(!t)throw new Error("WebCrypto not available");let e=Sn(gn);if(e.length!==32)throw new Error("Public key must be 32 bytes (Ed25519 raw)");return Ve=(async()=>{let n={kty:"OKP",crv:"Ed25519",x:gn,ext:!0};try{return await t.importKey("jwk",n,{name:"Ed25519"},!1,["verify"])}catch{return await t.importKey("raw",e,{name:"Ed25519"},!1,["verify"])}})(),Ve.catch(()=>{Ve=null}),Ve}async function Mi(){return We||(We=(async()=>{let t=await Promise.resolve().then(()=>(Ro(),No)),{sha512:e}=await Promise.resolve().then(()=>($o(),Ko));return t.hashes.sha512=e,t.verify})(),We.catch(()=>{We=null}),We)}async function Pi(t){let e=t.split(".");if(e.length!==3)return null;let n,s;try{n=JSON.parse(wn(e[0])),s=JSON.parse(wn(e[1]))}catch{return null}if(n.alg!=="EdDSA"||n.typ!=="MRD-LIC")return null;let u=Sn(e[2]),r=Ti(e[0]+"."+e[1]);try{let a=await Ci();return await globalThis.crypto.subtle.verify("Ed25519",a,u,r)?s:null}catch(a){try{let f=await Mi(),i=Sn(gn);return f(u,r,i)?s:null}catch{throw a}}}function Li(t,e){if(t==="*"||t===e)return!0;if(t.startsWith("*.")){let n=t.slice(1);return e.endsWith(n)||e===t.slice(2)}return!1}var ts=vn+"e7x",es=vn+"p3q",rs="mrd_engine_session_id",ns="mrd_ce_db",qe="meta",os="trial_ts",ss=vn+"ck";function is(t){let e=`${t}:${Ai}:${(t^2043453)>>>0}`,n=2166136261;for(let s=0;s<e.length;s++)n^=e.charCodeAt(s),n=Math.imul(n,16777619);return(n>>>0).toString(36)}function or(t){return`${t}.${is(t)}`}function sr(t){if(!t||typeof t!="string")return null;let e=t.lastIndexOf(".");if(e<1)return null;let n=parseInt(t.slice(0,e),10);return!n||n<1e9||n>2e9||t.slice(e+1)!==is(n)?null:n}function yn(){try{return sr(localStorage.getItem(ts))}catch{return null}}function En(t){try{localStorage.setItem(ts,or(t))}catch{}}function An(){try{return sr(localStorage.getItem(es))}catch{return null}}function Tn(t){try{localStorage.setItem(es,or(t))}catch{}}function Cn(){try{return sr(sessionStorage.getItem(rs))}catch{return null}}function Mn(t){try{sessionStorage.setItem(rs,or(t))}catch{}}function Pn(){try{let t=document.cookie.match(new RegExp(`(?:^|;\\s*)${ss}=([^;]+)`));return t?sr(decodeURIComponent(t[1])):null}catch{return null}}function Ln(t){try{let e=encodeURIComponent(or(t));document.cookie=`${ss}=${e};path=/;max-age=${86400*400};SameSite=Lax`}catch{}}var Ze=null,Do=!1;function xi(){if(!(Do||typeof indexedDB>"u")){Do=!0;try{let t=indexedDB.open(ns,1);t.onupgradeneeded=()=>{let e=t.result;e.objectStoreNames.contains(qe)||e.createObjectStore(qe)},t.onsuccess=()=>{let s=t.result.transaction(qe,"readonly").objectStore(qe).get(os);s.onsuccess=()=>{let u=sr(s.result);u&&(!Ze||u<Ze)&&(Ze=u,Fi(u))}}}catch{}}}function as(t){Ze=t;try{let e=indexedDB.open(ns,1);e.onsuccess=()=>{e.result.transaction(qe,"readwrite").objectStore(qe).put(or(t),os)}}catch{}}function ls(t,e){let n=null;for(let s of t)s&&(s>e+60||s<17e8||(!n||s<n)&&(n=s));return n}function Fi(t){let e=Math.floor(Date.now()/1e3),n=ls([yn(),An(),Cn(),Pn(),t],e);n&&n!==t||n&&(En(n),Tn(n),Mn(n),Ln(n))}function Ni(){let t=Math.floor(Date.now()/1e3);return ls([yn(),An(),Cn(),Pn(),Ze],t)}function Ri(t){En(t),Tn(t),Mn(t),Ln(t),as(t)}function Ii(t){yn()||En(t),An()||Tn(t),Cn()||Mn(t),Pn()||Ln(t),Ze||as(t)}xi();function Oi(){let t=Ni();t?Ii(t):(t=Math.floor(Date.now()/1e3),Ri(t));let e=t+jo*86400,n=Date.now()/1e3,s=Math.max(0,Math.ceil((e-n)/86400));return n>e?{valid:!1,expired:!0,plan:Fr,watermark:!0,trialExpired:!0,daysLeft:0,pricingUrl:Jo,error:`Trial expired (${jo} days). Purchase a license: ${Jo}`,features:Pe(Fr)}:{valid:!0,plan:Qo,watermark:!1,daysLeft:s,trialEnd:e,features:Pe(Qo)}}async function Nr(t){if(!t||t==="trial")return Oi();let e;try{e=await Pi(t)}catch(c){return{valid:!1,error:`License verification error: ${c.message}`}}if(!e)return{valid:!1,error:"Invalid license signature"};let{p:n,d:s,e:u,pl:r,a}=e;if(!n)return{valid:!1,error:"Invalid license payload (missing plan)"};let f=Math.floor(Date.now()/1e3);if(u>0&&f>u)return{valid:!0,plan:Fr,watermark:!0,trialExpired:!0,originalPlan:n,error:`License expired on ${new Date(u*1e3).toLocaleDateString()}`,features:Pe(Fr)};let i=r||"web";if((i==="web"||i==="any")&&s&&s!=="*"&&typeof window<"u"){let c=window.location.hostname;if(c&&c!=="localhost"&&c!=="127.0.0.1"&&c!=="0.0.0.0"&&c!==""&&!String(s).split(",").map(b=>b.trim()).some(b=>Li(b,c)))return{valid:!1,error:`License not valid for domain: ${c}`}}if(i==="mobile"&&a&&typeof window<"u"){let c=window.__mrd_app_id;if(c&&c!==a)return{valid:!1,error:`License not valid for app: ${c}`}}return{valid:!0,plan:n,domain:s,platform:i,appId:a||null,expiry:u,issuedAt:e.iat,subject:e.sub,watermark:!1,features:e.f?{...Pe(n),custom:e.f}:Pe(n)}}var xn=null,Fn=null,ke=null;async function Te(){return xn?{module:xn,memory:Fn}:ke||(ke=(async()=>{let t=await import("./chart_engine.js");try{await t.default()}catch(e){console.warn("[mrd-chart] WebAssembly streaming init failed, retrying with arrayBuffer fallback:",e);let n=new URL("../wasm/chart_engine_bg.wasm",import.meta.url),s=await fetch(n);if(!s.ok)throw new Error(`WASM fetch failed (${s.status} ${s.statusText}) at ${n}`);let u=await s.arrayBuffer();await t.default(u)}return Fn=t.wasm_memory(),xn=t,{module:t,memory:Fn}})(),ke.catch(()=>{ke=null}),ke)}function le(t){let e=t.replace("#","");return[parseInt(e.substring(0,2),16)||0,parseInt(e.substring(2,4),16)||0,parseInt(e.substring(4,6),16)||0]}var Rr=null,Ir=null;async function cs(){if(Rr)return Rr;let{module:t,memory:e}=await Te();return Rr=t,Ir=e,t}function Bi(){Rr||cs().catch(()=>{})}async function Yi(t,e={}){e.appId&&typeof window<"u"&&(window.__mrd_app_id=e.appId);let n=e.licenseKey||e.key||null,s=await Nr(n);if(!s.valid)throw new Error(`[MRD Chart Engine] ${s.error}`);s.plan==="trial"&&console.info(`[MRD Chart Engine] Trial mode \u2014 ${s.daysLeft} days remaining. Purchase: https://app.mrd-indicators.com/charting-library/pricing`);let u=await cs(),r=window.devicePixelRatio||1,a=r,f=r,i=t.getBoundingClientRect();(i.width<1||i.height<1)&&(await new Promise(y=>{let R=new ResizeObserver(q=>{for(let lt of q)if(lt.contentRect.width>0&<.contentRect.height>0){R.disconnect(),y();return}});R.observe(t.parentElement||t),setTimeout(()=>{R.disconnect(),y()},2e3)}),i=t.getBoundingClientRect());let c=Math.max(i.width,100),o=Math.max(i.height,100);t.width=Math.max(1,Math.round(c*r)),t.height=Math.max(1,Math.round(o*r));let h=t.getContext("2d");a=t.width/c,f=t.height/o,h.setTransform(a,0,0,f,0,0);let b=new u.ChartEngine(c,o),_=!1,T={dead:!1,destroyed:!1,cleanupEvents:null};function p(y){if(!T.dead){T.dead=!0,_=!0;try{let R=y?.message?String(y.message):String(y||"unknown");console.error("[MRD Chart Engine] fatal WASM error \u2014 engine disabled:",R)}catch{}try{T.cleanupEvents?.()}catch{}}}function P(y){if(!y)return!1;if(typeof WebAssembly<"u"&&y instanceof WebAssembly.RuntimeError)return!0;let R=y.message?String(y.message):"";return R.includes("memory access out of bounds")||R.includes("recursive use of an object")||R.includes("null pointer passed to rust")||R.includes("unreachable")}let m=new Proxy(b,{get(y,R){let q=Reflect.get(y,R);return typeof q!="function"?q:function(...Et){if(!T.dead)try{return q.apply(y,Et)}catch(zt){if(P(zt)){p(zt);return}throw zt}}}});if("ontouchstart"in window||navigator.maxTouchPoints>0)try{m.set_touch_mode(!0)}catch{}try{let y=typeof n=="string"?n:"",R=Date.now(),q=typeof window<"u"&&window.location?.hostname||"";m.set_license_token(y,R,q)}catch(y){console.warn("[MRD] set_license_token failed:",y.message)}let A=!0,E=null,M=!1,B=!1,C=!1,I=null,O=null,K=0,Q=!1,tt=Wn(),ct=qn(),X=new Map,k=1,$=50,ot=[],ut=[],it=!1;function st(){if(!it)try{let y=m.export_drawings_json?.();if(typeof y!="string")return;ot.push(y),ot.length>$&&ot.shift(),ut.length>0&&(ut.length=0)}catch(y){console.warn("[bridge] pushUndoSnapshot failed",y?.message||y)}}function at(){if(ot.length===0)return!1;try{let y=ot.pop(),R=m.export_drawings_json?.();if(typeof R=="string"&&(ut.push(R),ut.length>$&&ut.shift()),it=!0,m.clear_drawings?.(),y)try{m.import_drawings_json?.(y)}catch(q){console.warn("[bridge] undo import failed",q?.message||q)}return rt(),!0}catch(y){return console.warn("[bridge] undo failed",y?.message||y),!1}finally{it=!1}}function dt(){if(ut.length===0)return!1;try{let y=ut.pop(),R=m.export_drawings_json?.();if(typeof R=="string"&&(ot.push(R),ot.length>$&&ot.shift()),it=!0,m.clear_drawings?.(),y)try{m.import_drawings_json?.(y)}catch(q){console.warn("[bridge] redo import failed",q?.message||q)}return rt(),!0}catch(y){return console.warn("[bridge] redo failed",y?.message||y),!1}finally{it=!1}}async function bt(y){if(!y)return null;try{let R=URL.createObjectURL(y),q=new Image;await new Promise((Et,zt)=>{q.onload=()=>Et(),q.onerror=qt=>zt(qt),q.src=R});let lt=k++;return X.set(lt,q),rt(),{imageId:lt,width:q.naturalWidth||q.width||1,height:q.naturalHeight||q.height||1}}catch(R){return console.warn("[bridge] addImageBlob decode failed",R?.message||R),null}}async function ft(y){let R=await bt(y);if(!R)return null;let{imageId:q,width:lt,height:Et}=R;st();let zt=Math.max(1,i.width),qt=Math.max(1,i.height),be=zt*.5,me=qt*.5,ar=(lt||1)/Math.max(1,Et||1),Ye=be,Ce=Ye/Math.max(.01,ar);Ce>me&&(Ce=me,Ye=Ce*ar),Ye=Math.max(40,Ye),Ce=Math.max(40,Ce);let On=zt*.5,Bn=qt*.5,Ss=On-Ye/2,vs=Bn-Ce/2,ys=On+Ye/2,Es=Bn+Ce/2,Or;try{let lr=m.screen_to_world_x(Ss),As=m.screen_to_world_x(ys),Ts=m.screen_to_world_y(vs),Cs=m.screen_to_world_y(Es);Or=m.add_image(q,lr,Ts,As,Cs,212,166,10,0),m.select_drawing(Or)}catch(lr){return console.warn("[bridge] pasteImageFromClipboard add_image failed",lr?.message||lr),null}return rt(),{drawingId:Or,imageId:q,blob:y,width:lt,height:Et}}function It(y){if(typeof y!="string")return null;let R=y.replace(/\s+$/g,"");if(R.length===0)return null;st();let q=Math.max(1,i.width),lt=Math.max(1,i.height),Et=q*.5,zt=lt*.5,qt;try{let be=m.screen_to_world_x(Et),me=m.screen_to_world_y(zt);if(qt=m.add_text_note(be,me,212,166,10,14,0),m.set_drawing_text(qt,R),/\n/.test(R))try{m.set_drawing_text_wrap?.(qt,!0)}catch{}m.select_drawing(qt)}catch(be){return console.warn("[bridge] pasteTextFromClipboard add_text_note failed",be?.message||be),null}return rt(),{drawingId:qt,text:R}}let kt=("ontouchstart"in window||navigator.maxTouchPoints>0)&&window.innerWidth<=1399?33:8;function Lt(){if(!(!M||B||E)){if(kt>0){let y=performance.now()-K;if(y<kt){O||(O=setTimeout(()=>{O=null,Lt()},kt-y));return}}E=requestAnimationFrame(_t)}}let rt=()=>{A=!0,Lt()},Tt=()=>C||T.dead,Pt=null,Ht=null,Ut=null,H=null,V=null,J=null,ht=null,l=null,d=null,w=null,S=null,g=null,v=null,L=0,F=null,N=null,z=0,W=0,D=-1,Z=!1,j=!1,pt=!1,x=kr(t,m,{onDirty:rt,onCrosshairMove:(y,R,q)=>{z=y,W=R,D=q,Z=!0,j=!0},onCrosshairHide:()=>{j&&(j=!1,Z=!0,D=-1)},drawingApi:y=>{Pt=y},onDrawingMutationBegin:()=>{st()},onUndoRequest:()=>at(),onRedoRequest:()=>dt(),onDrawingComplete:()=>{Ht?.()},onDrawingCancel:()=>{Ut?.()},onDrawingSelected:(y,R,q)=>{H?.(y,R,q)},onMarkerSelected:y=>{V?.(y)},onImagePasted:async y=>{try{let R=await ft(y);R?.drawingId>0&&(H?.(R.drawingId),J?.(R.imageId,R.blob,R.drawingId))}catch(R){console.warn("[bridge] onImagePasted handler failed",R?.message||R)}},onTextPasted:y=>{try{let R=It(y);R?.drawingId>0&&(H?.(R.drawingId),ht?.(R.drawingId,R.text))}catch(R){console.warn("[bridge] onTextPasted handler failed",R?.message||R)}},onDrawingDblClick:(y,R,q,lt,Et)=>{l?.(y,R,q,lt,Et)},onChartDblClick:(y,R,q,lt)=>{d?.(y,R,q,lt)},onIndicatorDblClick:(y,R,q,lt,Et)=>{w?.(y,R,q,lt,Et)},customIndicatorAtPoint:(y,R)=>St.indicatorAtPoint(y,R),onVrvpHover:(y,R)=>{pt||S?.(y,R)},onLiqAnnotationPin:(y,R)=>{N?.(y,R)},onQuickTradeBtnClick:(y,R,q)=>{g?.(y,R,q)},onPanStart:()=>{pt=!0;try{I?.(null,0,0)}catch{}try{v?.("")}catch{}try{S?.(null,null)}catch{}},onPanEnd:()=>{pt=!1}});T.cleanupEvents=x;function et(){if(!(!Z||_)){if(Z=!1,!j||pt){I&&I(null,0,0),v&&v("");return}if(I)if(D===0||D===1)try{let y=m.get_tooltip_data();I(y,z,W)}catch{}else I(null,0,0);if(v){let y=performance.now();if(D===0||D===1){if(y-L>=80){L=y;try{v(m.lt_hit_test(z,W))}catch{}}}else v("")}}}function _t(){if(E=null,!(!M||B||_)){Q=!0;try{let y=!1;try{y=A||m.is_dirty()}catch{_=!0;return}if(y){A=!1,K=performance.now();let R=!1;try{if(m.render()>0){let lt=m.get_command_buffer_ptr(),Et=m.get_command_buffer_len();h.save(),h.setTransform(1,0,0,1,0,0),h.clearRect(0,0,t.width,t.height),h.restore(),Dt(h,Ir,lt,Et,tt,ct,X),R=!0}Ue()}catch(q){if(R||(A=!0),q instanceof WebAssembly.RuntimeError){_=!0,console.error("[MRD] Engine crashed:",q.message);return}}et();try{F?.()}catch{}try{(A||m.is_dirty())&&Lt()}catch{}}}finally{Q=!1}}}let mt=Kr(s.plan),Mt=oo(m,rt,Tt,()=>mt),gt=so(m,rt,Tt,()=>mt,st),$t=io(m,rt,Tt,()=>mt),St=Gr(m,Ir,Dt);{let y=$t.setKlines,R=$t.setKlinesPreserveViewport;typeof y=="function"&&($t.setKlines=function(...q){return St.notifyKlinesChanged(),y.apply($t,q)}),typeof R=="function"&&($t.setKlinesPreserveViewport=function(...q){return St.notifyKlinesChanged(),R.apply($t,q)})}function Ue(){let y=0,R=0,q=0,lt=0;try{y=m.chart_area_x(),R=m.chart_area_y(),q=m.chart_area_w(),lt=m.pane_stack_bottom_y()-R}catch{return}if(!(!(q>0)||!(lt>0))){h.save();try{h.beginPath(),h.rect(y,R,q,lt),h.clip(),St.renderAll(h)}catch{}finally{h.restore()}}}let ir=St.setupPaneInteraction(t,{markDirty:rt,getDrawingMode:()=>Pt?.getMode()}),Ge=["__trade_overlay","__position_overlay"],Ke=!0;return{engine:m,start(){M=!0,B=!1,A=!0,Lt()},stop(){M=!1,E&&(cancelAnimationFrame(E),E=null),O&&(clearTimeout(O),O=null)},resize(y){if(_||Q)return;if(i=t.getBoundingClientRect(),i.width<1||i.height<1){(y||0)<8&&setTimeout(()=>this.resize((y||0)+1),250);return}r=window.devicePixelRatio||1;let R=Math.max(1,Math.round(i.width*r)),q=Math.max(1,Math.round(i.height*r));t.width=R,t.height=q,a=t.width/i.width,f=t.height/i.height,h.setTransform(1,0,0,1,0,0),h.setTransform(a,0,0,f,0,0);try{tt.invalidate()}catch{}try{m.resize(i.width,i.height)}catch(lt){if(lt instanceof WebAssembly.RuntimeError){_=!0;return}throw lt}B||this.renderSync(),rt()},renderSync(){if(_)return 0;try{let y=m.render();if(y>0){let R=m.get_command_buffer_ptr(),q=m.get_command_buffer_len();h.save(),h.setTransform(1,0,0,1,0,0),h.clearRect(0,0,t.width,t.height),h.restore(),Dt(h,Ir,R,q,tt,ct,X)}return Ue(),y}catch(y){return y instanceof WebAssembly.RuntimeError&&(_=!0),0}},renderFrameNow(){!M||B||_||(E&&(cancelAnimationFrame(E),E=null),O&&(clearTimeout(O),O=null),A=!0,_t())},setCrosshairExternal(y,R,q){if(_)return!1;try{return m.set_crosshair(y,R),z=y,W=R,D=typeof q=="number"?q:0,Z=!0,j=!0,!0}catch{return!1}},hideCrosshairExternal(){if(!_)try{m.hide_crosshair(),j&&(j=!1,Z=!0,D=-1)}catch{}},setHoverPrice(y){Tt()||(m.set_hover_price(y),rt())},clearHoverPrice(){Tt()||(m.clear_hover_price(),rt())},hitZone(y,R){if(Tt())return-1;let q=m.hit_zone(y,R);return q===void 0?-1:q},startDrawing(y,R){Pt?.setMode(y,R)},cancelDrawing(){Pt?.setMode(null)},onDrawingComplete(y){Ht=y},onDrawingCancel(y){Ut=y},onDrawingSelected(y){H=y},onMarkerSelected(y){V=y},onImagePasted(y){J=y},onTextPasted(y){ht=y},onDrawingDblClick(y){l=y},onChartDblClick(y){d=y},onIndicatorDblClick(y){w=y},setReplayState(y,R,q){Tt()||(m.set_replay_state(y,R,q),rt())},setReplayHovered(y){Tt()||m.set_replay_hovered(y)},setReplayPreview(y){Tt()||(m.set_replay_preview(y),rt())},setPrecision(y){m.set_price_precision(y),rt()},setYAutoScale(y){typeof m.set_y_auto_scale=="function"&&(m.set_y_auto_scale(!!y),rt())},getYAutoScale(){return typeof m.y_auto_scale=="function"?!!m.y_auto_scale():!0},setCandleInterval(y){m.set_candle_interval(y)},setTzOffsetSeconds(y){if(Tt())return;let R=Number.isFinite(y)?Math.trunc(y):0;if(typeof m.set_tz_offset_seconds=="function"){try{m.set_tz_offset_seconds(R)}catch{}rt()}},setTheme(y){let R=y==="light"?1:0;typeof m.set_theme=="function"?(m.set_theme(R),rt()):console.warn("[ChartEngine] set_theme not available \u2014 reload page to load updated WASM")},getTheme(){return m.get_theme()===1?"light":"dark"},setCandleBullColor(y){let[R,q,lt]=le(y);typeof m.set_candle_bull_color=="function"&&(m.set_candle_bull_color(R,q,lt),rt())},setCandleBearColor(y){let[R,q,lt]=le(y);typeof m.set_candle_bear_color=="function"&&(m.set_candle_bear_color(R,q,lt),rt())},setBackgroundColor(y){let[R,q,lt]=le(y);typeof m.set_background_color=="function"&&(m.set_background_color(R,q,lt),rt())},setGridColor(y,R=255){let[q,lt,Et]=le(y);typeof m.set_grid_color=="function"&&(m.set_grid_color(q,lt,Et,R),rt())},setCrosshairColor(y,R=160){let[q,lt,Et]=le(y);typeof m.set_crosshair_color=="function"&&(m.set_crosshair_color(q,lt,Et,R),rt())},setCrosshairStyle(y){typeof m.set_crosshair_style=="function"&&(m.set_crosshair_style(y),rt())},setCrosshairWidth(y){typeof m.set_crosshair_width=="function"&&(m.set_crosshair_width(y),rt())},setCrosshairMagnet(y){if(typeof m.set_crosshair_magnet!="function")return;let R=0;if(typeof y=="number")R=y===1||y===2?y:0;else if(typeof y=="string"){let q=y.toLowerCase();q==="weak"?R=1:q==="strong"?R=2:R=0}m.set_crosshair_magnet(R),rt()},setFontSize(y){typeof m.set_font_size=="function"&&(m.set_font_size(y),rt())},getFontSize(){return typeof m.get_font_size=="function"?m.get_font_size():11},setGridHVisible(y){typeof m.set_grid_h_visible=="function"&&(m.set_grid_h_visible(!!y),rt())},setGridVVisible(y){typeof m.set_grid_v_visible=="function"&&(m.set_grid_v_visible(!!y),rt())},setSessionLevels(y){typeof m.set_session_levels_enabled=="function"&&(m.set_session_levels_enabled(!!y),rt())},setLastPriceLine(y){if(!(!y||typeof y!="object")){if(typeof y.enabled=="boolean"&&typeof m.set_last_price_line_enabled=="function"&&m.set_last_price_line_enabled(y.enabled),typeof m.set_last_price_line_style=="function"){let R=Number.isFinite(y.width)?y.width:1,q=Number.isFinite(y.dashLen)?y.dashLen:4,lt=Number.isFinite(y.gapLen)?y.gapLen:3;m.set_last_price_line_style(R,q,lt)}rt()}},setDrawingsVisible(y){typeof m.set_drawings_visible=="function"&&(m.set_drawings_visible(!!y),rt())},setIndicatorsVisible(y){typeof m.set_indicators_visible=="function"&&(m.set_indicators_visible(!!y),rt())},setKlineVisible(y){typeof m.set_kline_visible=="function"&&(m.set_kline_visible(!!y),rt())},getKlineVisible(){return typeof m.get_kline_visible=="function"?!!m.get_kline_visible():!0},setPositionMarkersVisible(y){let R=!!y;Ke=R;for(let q of St.list())Ge.includes(q.name)&&St.setEnabled(q.id,R);rt()},setBgGradient(y,R){if(typeof m.set_bg_gradient=="function"){let[q,lt,Et]=le(R||"#000000");m.set_bg_gradient(!!y,q,lt,Et),rt()}},setCandleBullWickColor(y){let[R,q,lt]=le(y);typeof m.set_candle_bull_wick_color=="function"&&(m.set_candle_bull_wick_color(R,q,lt),rt())},setCandleBullBorderColor(y){let[R,q,lt]=le(y);typeof m.set_candle_bull_border_color=="function"&&(m.set_candle_bull_border_color(R,q,lt),rt())},setCandleBearWickColor(y){let[R,q,lt]=le(y);typeof m.set_candle_bear_wick_color=="function"&&(m.set_candle_bear_wick_color(R,q,lt),rt())},setCandleBearBorderColor(y){let[R,q,lt]=le(y);typeof m.set_candle_bear_border_color=="function"&&(m.set_candle_bear_border_color(R,q,lt),rt())},onTooltip(y){I=y},onVrvpHover(y){S=y},onLtHover(y){v=y},onPostRender(y){F=y},onLiqAnnotationPin(y){N=y},onQuickTradeBtnClick(y){g=y},setQuickTradeBtnEnabled(y){typeof m.set_quick_trade_btn_enabled=="function"&&(m.set_quick_trade_btn_enabled(!!y),rt())},hitQuickTradeBtn(y,R){return typeof m.is_in_quick_trade_btn!="function"?!1:!!m.is_in_quick_trade_btn(y,R)},crosshairWorldY(){return typeof m.crosshair_world_y!="function"?0:m.crosshair_world_y()},pause(){B||(B=!0,E&&(cancelAnimationFrame(E),E=null),O&&(clearTimeout(O),O=null))},resume(){B&&(B=!1,M&&(A=!0,Lt()))},get isPaused(){return B},addImageBlob(y){return bt(y)},async registerImage(y,R){if(!y||y<=0||!R)return!1;try{let q=R;if(R instanceof Blob){let lt=URL.createObjectURL(R);q=new Image,await new Promise((Et,zt)=>{q.onload=()=>Et(),q.onerror=qt=>zt(qt),q.src=lt})}return X.set(y>>>0,q),y>=k&&(k=(y>>>0)+1),rt(),!0}catch(q){return console.warn("[bridge] registerImage failed id="+y,q?.message||q),!1}},unregisterImage(y){let R=X.delete(y>>>0);return R&&rt(),R},hasImage(y){return X.has(y>>>0)},listImageIds(){return Array.from(X.keys())},nextImageId(){return k++},pushUndoSnapshot(){st()},undo(){return at()},redo(){return dt()},canUndo(){return ot.length>0},canRedo(){return ut.length>0},getUndoSnapshots(){return[...ot,...ut]},clearUndoStack(){ot.length=0,ut.length=0},pasteImageFromClipboard(y){return ft(y)},pasteTextFromClipboard(y){return It(y)},destroy(){C=!0,T.destroyed=!0,M=!1,B=!1,E&&(cancelAnimationFrame(E),E=null),O&&(clearTimeout(O),O=null),x();try{ir?.destroy?.()}catch{}try{tt.invalidate()}catch{}try{ct.invalidate()}catch{}try{X.clear()}catch{}if(!T.dead)try{b.free()}catch{}T.dead=!0},addIndicator(y){if(!mt("customIndicators"))return null;let R=St.add(y);return!Ke&&y&&Ge.includes(y.name)&&St.setEnabled(R,!1),rt(),R},removeIndicator(y){St.remove(y),rt()},updateIndicatorParams(y,R){St.updateParams(y,R),rt()},setIndicatorEnabled(y,R){St.setEnabled(y,R),rt()},customIndicatorAtPoint(y,R){return St.indicatorAtPoint(y,R)},listIndicators(){return St.list()},setIndicatorCalcOnEveryTick(y,R){St.setCalcOnEveryTick(y,R),rt()},invalidateCustomIndicators(){St.invalidateCompute(),rt()},releaseAllCustomIndicatorState(){St.releaseAllPersistentState(),rt()},hideCustomPanesForFocus(){let y=St.hidePanesForFocus();return y.length>0&&rt(),y},restoreCustomPanesFromFocus(y){!Array.isArray(y)||y.length===0||(St.restorePanesFromFocus(y),rt())},resetPriceScale(){if(!_){try{m.set_y_auto_scale(!0)}catch{}for(let y=1;y<=5;y++)try{m.reset_indicator_y_auto(y)}catch{}rt()}},resetView({isMobile:y=!1}={}){if(!_){try{typeof m.show_default_view=="function"?m.show_default_view():m.show_latest(y?115:450)}catch{}try{m.set_y_auto_scale(!0)}catch{}for(let R=1;R<=5;R++)try{m.reset_indicator_y_auto(R)}catch{}rt()}},fitFootprintView({isMobile:y}={}){if(!_){try{let R=(()=>{try{return Math.max(0,m.chart_area_w())}catch{return 0}})(),q=typeof y=="boolean"?y:R>0&&R<992,lt=q?28:50,Et=q?12:24,zt=q?60:120,qt=q?30:50,be=R>1?Math.floor(R/lt):qt,me=0;try{me=Number(m.kline_count?.()||0)}catch{}let ar=Math.max(2,Math.min(Math.max(Et,Math.min(zt,be)),me>0?me:zt));m.show_latest(ar)}catch{}try{m.set_y_auto_scale(!0)}catch{}for(let R=1;R<=5;R++)try{m.reset_indicator_y_auto(R)}catch{}rt()}},get license(){return{plan:s.plan,valid:s.valid,expired:!!s.expired,watermark:!!s.watermark,daysLeft:s.daysLeft,features:s.features||{}}},async setLicenseKey(y){s=await Nr(y),!s.valid&&!s.expired&&console.error(`[MRD Chart Engine] ${s.error}`),mt=Kr(s.plan);try{let R=typeof y=="string"?y:"",q=Date.now(),lt=typeof window<"u"&&window.location?.hostname||"";m.set_license_token(R,q,lt)}catch{}return rt(),s.valid},...$t,...Mt,...gt}}function Hi(t,e){let{t:n,o:s,h:u,l:r,c:a,v:f}=t,i=a.length;if(i===0||e<=0)return{t:[],o:[],h:[],l:[],c:[],v:[]};let c=[],o=[],h=[],b=[],_=[],T=[],p=Math.round(a[0]/e)*e,P=0;for(let m=0;m<i;m++){P+=f[m];let A=a[m]-p;for(;A>=e;){let E=p,M=p+e;c.push(n[m]),o.push(E),h.push(M),b.push(E),_.push(M),T.push(P),P=0,p=M}for(;-A>=e;){let E=p,M=p-e;c.push(n[m]),o.push(E),h.push(E),b.push(M),_.push(M),T.push(P),P=0,p=M}}return{t:c,o,h,l:b,c:_,v:T}}function zi(t,e){let{t:n,o:s,h:u,l:r,c:a,v:f}=t,i=a.length;if(i===0||e<=0)return{t:[],o:[],h:[],l:[],c:[],v:[]};let c=[],o=[],h=[],b=[],_=[],T=[],p=s[0],P=u[0],m=r[0],Y=0,A=n[0];for(let E=0;E<i;E++)for(P=Math.max(P,u[E]),m=Math.min(m,r[E]),Y+=f[E];P-m>=e;){let M=a[E]>=p,B=M?m+e:P-e;if(c.push(A),o.push(p),h.push(P),b.push(m),_.push(B),T.push(Y),p=B,P=M?Math.max(u[E],B):B,m=M?B:Math.min(r[E],B),Y=0,A=n[E],P-m<e)break}return(Y>0||c.length===0)&&(c.push(A),o.push(p),h.push(P),b.push(m),_.push(a[i-1]),T.push(Y)),{t:c,o,h,l:b,c:_,v:T}}function Xi(t,e){let{t:n,o:s,h:u,l:r,c:a,v:f}=t,i=a.length;if(i===0||e<=0)return{t:[],o:[],h:[],l:[],c:[],v:[]};let c=[],o=[],h=[],b=[],_=[],T=[],p=Math.max(1,Math.round(e));for(let P=0;P<i;P+=p){let m=Math.min(P+p,i),Y=-1/0,A=1/0,E=0;for(let M=P;M<m;M++)u[M]>Y&&(Y=u[M]),r[M]<A&&(A=r[M]),E+=f[M];c.push(n[P]),o.push(s[P]),h.push(Y),b.push(A),_.push(a[m-1]),T.push(E)}return{t:c,o,h,l:b,c:_,v:T}}function Vi(t,e){let n=t>1e4?50:t>1e3?10:t>100?1:t>1?.1:.001,s=n*2,u=e<=60?10:e<=300?5:3;return{brickSize:n,rangeSize:s,tickCount:u}}var Wi={minRefills:3,hiddenRatio:2,refillWindowMs:1e4,maxTrackedLevels:200,maxEvents:500,decayMs:3e5};function qi(t={}){let e={...Wi,...t},n=new Map,s=new Map,u=[],r=0;function a(b){return Math.round(b*1e8)/1e8}function f(b,_,T,p){for(let[P,m]of b){let Y=a(P),A=_.get(Y);if(!A){_.set(Y,{lastVol:m,refills:0,totalConsumed:0,lastRefillTs:p,peakVisible:m});continue}if(m<A.lastVol*.3&&A.lastVol>0){let E=A.lastVol-m;A.totalConsumed+=E,A.lastVol=m;continue}if(m>A.lastVol*1.5&&A.totalConsumed>0)if(p-A.lastRefillTs<e.refillWindowMs){if(A.refills++,A.lastRefillTs=p,A.peakVisible=Math.max(A.peakVisible,m),A.refills>=e.minRefills){let M=A.totalConsumed,B=A.peakVisible;M>=B*e.hiddenRatio&&(u.push({timestamp:p,price:P,visibleSize:B,hiddenSize:M,isBid:T,refillCount:A.refills}),u.length>e.maxEvents&&u.shift(),A.refills=0,A.totalConsumed=0)}}else A.refills=1,A.totalConsumed=0,A.lastRefillTs=p;A.lastVol=m}if(_.size>e.maxTrackedLevels){let P=[..._.entries()];P.sort((Y,A)=>Y[1].lastRefillTs-A[1].lastRefillTs);let m=P.length-e.maxTrackedLevels;for(let Y=0;Y<m;Y++)_.delete(P[Y][0])}}function i(b,_,T){let p=T||Date.now();r=p;let P=b instanceof Map?b:new Map(b.map(([A,E])=>[A,E])),m=_ instanceof Map?_:new Map(_.map(([A,E])=>[A,E]));f(P,n,!0,p),f(m,s,!1,p);let Y=p-e.decayMs;for(;u.length>0&&u[0].timestamp<Y;)u.shift()}function c(){return u}function o(b){if(!b||u.length===0)return;let _=u.length,T=new Float64Array(_),p=new Float64Array(_),P=new Float64Array(_),m=new Float64Array(_),Y=new Uint8Array(_),A=new Uint32Array(_);for(let E=0;E<_;E++){let M=u[E];T[E]=M.timestamp,p[E]=M.price,P[E]=M.visibleSize,m[E]=M.hiddenSize,Y[E]=M.isBid?1:0,A[E]=M.refillCount}b.setIcebergEvents(T,p,P,m,Y,A)}function h(){n.clear(),s.clear(),u.length=0}return{onOrderbookUpdate:i,getEvents:c,pushToEngine:o,reset:h}}var Nn=null,_s=null;async function Zi(){if(Nn)return Nn;let{module:t,memory:e}=await Te();return Nn=t,_s=e,t}var fs=Promise.resolve();async function ki(t,e={}){let n=await Zi();return await(fs=fs.then(()=>us(n,t,e),()=>us(n,t,e)))}function us(t,e,n){let s=window.devicePixelRatio||1,r=(e.parentElement||e).getBoundingClientRect(),a=Math.max(r.width,60),f=Math.max(r.height,60),i={width:a,height:f};e.width=Math.round(a*s),e.height=Math.round(f*s);let c=e.getContext("2d");c.setTransform(s,0,0,s,0,0);let o=new t.OrderbookEngine(a,f);n.symbol&&o.set_symbol(n.symbol),n.tickSize&&o.set_tick_size(n.tickSize),n.visibleTicks&&o.set_visible_ticks(n.visibleTicks),n.exchangeCount&&o.set_exchange_count(n.exchangeCount),n.pricePrecision!=null&&o.set_price_precision(n.pricePrecision),n.theme==="light"&&o.set_theme(1),n.heatmapCols&&o.set_heatmap_cols(n.heatmapCols),(n.ringCols||n.ringRows)&&o.set_ring_capacity(n.ringCols||300,n.ringRows||400),n.heatmapAlphaMul!=null&&o.set_heatmap_alpha_mul(Number(n.heatmapAlphaMul)),n.showCumulative!=null&&o.set_show_cumulative(!!n.showCumulative),n.showSignalOverlays!=null&&o.set_show_signal_overlays(!!n.showSignalOverlays);let h=!0,b=null,_=!1,T=!1,p=!1,P=null,m=null;function Y(){!_||p||b||(b=requestAnimationFrame(M))}let A=()=>{h=!0,Y()};function E(){if(p)return!1;try{if(o.render()>0){let V=o.get_command_buffer_ptr(),J=o.get_command_buffer_len();c.save(),c.setTransform(1,0,0,1,0,0),c.clearRect(0,0,e.width,e.height),c.restore(),Dt(c,_s,V,J)}return!0}catch(H){return H instanceof WebAssembly.RuntimeError&&(p=!0,console.error("[OrderbookEngine] crashed:",H.message)),!1}}function M(){if(b=null,!_||p)return;let H=!1;try{H=h||o.is_dirty()}catch{p=!0;return}H&&(E()?h=!1:h=!0)}e.style.touchAction="none";let B=!1,C=0,I=new Map,O=0,K=0,Q=0,tt=0,ct=!1,X=!1,k=0,$=null,ot=280,ut=5,it=null,st=!1,at=0,dt=0;function bt(){it!=null&&(clearTimeout(it),it=null)}function ft(){if(st){st=!1;try{o.clear_range()}catch{}if($)try{$(null)}catch{}A()}}function It(H){if(!p){st=!0,B=!1;try{o.set_range_from_mid(H)}catch{}try{o.clear_hover()}catch{}try{navigator.vibrate&&navigator.vibrate(8)}catch{}if(A(),$)try{let V=o.get_range_low_price(),J=o.get_range_high_price();J>V&&$({low:V,high:J,delta:J-V,deltaPct:V>0?(J-V)/V*100:0,bidQty:o.get_range_bid_qty(),askQty:o.get_range_ask_qty(),ticks:o.get_range_tick_count(),mode:"hover"})}catch{}}}function Wt(H){if(p)return;H.preventDefault();let V=H.deltaY>0?1.08:.93;o.zoom_y(V,H.offsetY),A()}function kt(H){if(!p){if(I.set(H.pointerId,{y:H.offsetY}),e.setPointerCapture(H.pointerId),I.size===1)if(H.shiftKey){X=!0,k=H.offsetY,B=!1;try{o.set_range(k,H.offsetY)}catch{}try{o.clear_hover()}catch{}A()}else{try{o.clear_range()}catch{}if($)try{$(null)}catch{}B=!0,C=H.offsetY,tt=H.offsetX,Q=H.offsetY,ct=!1,H.pointerType==="touch"&&(at=H.offsetX,dt=H.offsetY,bt(),it=setTimeout(()=>{it=null,!(I.size!==1||!B||ct)&&It(dt)},ot))}else if(I.size===2){if(bt(),st&&ft(),X){X=!1;try{o.clear_range()}catch{}}B=!1;let V=[...I.values()];O=Math.abs(V[0].y-V[1].y),K=(V[0].y+V[1].y)/2}}}function Lt(H){if(!p)if(I.set(H.pointerId,{y:H.offsetY}),I.size>=2){let V=[...I.values()],J=Math.abs(V[0].y-V[1].y),ht=(V[0].y+V[1].y)/2;if(O>0){let d=O/Math.max(J,1);o.zoom_y(d,ht)}let l=ht-K;Math.abs(l)>.5&&o.pan_y(l),O=J,K=ht,A()}else if(X){try{o.set_range(k,H.offsetY)}catch{}if(A(),$)try{let V=o.get_range_low_price(),J=o.get_range_high_price();J>V&&$({low:V,high:J,delta:J-V,deltaPct:V>0?(J-V)/V*100:0,bidQty:o.get_range_bid_qty(),askQty:o.get_range_ask_qty(),ticks:o.get_range_tick_count(),mode:"measure"})}catch{}}else if(st){try{o.set_range_from_mid(H.offsetY)}catch{}if(A(),$)try{let V=o.get_range_low_price(),J=o.get_range_high_price();J>V?$({low:V,high:J,delta:J-V,deltaPct:V>0?(J-V)/V*100:0,bidQty:o.get_range_bid_qty(),askQty:o.get_range_ask_qty(),ticks:o.get_range_tick_count(),mode:"hover"}):$(null)}catch{}}else if(B){let V=H.offsetY-C;C=H.offsetY,(Math.abs(H.offsetX-tt)>4||Math.abs(H.offsetY-Q)>4)&&(ct=!0),it!=null&&(Math.abs(H.offsetX-at)>ut||Math.abs(H.offsetY-dt)>ut)&&bt(),o.pan_y(V),A()}else{o.set_hover(H.offsetX,H.offsetY);try{o.set_range_from_mid(H.offsetY)}catch{}if(A(),P)try{let V=o.get_hover_price();if(V>0){let J=o.get_hover_qty(),ht=o.get_hover_side();P({price:V,qty:J,side:ht===2?"ask":"bid"})}else P(null)}catch{}if($)try{let V=o.get_range_low_price(),J=o.get_range_high_price();J>V?$({low:V,high:J,delta:J-V,deltaPct:V>0?(J-V)/V*100:0,bidQty:o.get_range_bid_qty(),askQty:o.get_range_ask_qty(),ticks:o.get_range_tick_count(),mode:"hover"}):$(null)}catch{}}}function rt(){if(!p){if(P&&P(null),o.clear_hover(),!X){try{o.clear_range()}catch{}if($)try{$(null)}catch{}}A()}}function Tt(H){let V=B&&!ct&&I.size===1&&!st,J=X,ht=st;I.delete(H.pointerId);try{e.releasePointerCapture(H.pointerId)}catch{}if(bt(),I.size===0){if(J&&!p){try{o.clear_range()}catch{}if($)try{$(null)}catch{}X=!1,A()}if(ht&&ft(),V&&m&&!p)try{o.set_hover(H.offsetX,H.offsetY);let l=o.get_hover_price();if(l>0){let d=o.get_hover_qty(),w=o.get_hover_side();m({price:l,qty:d,side:w===2?"ask":"bid"})}}catch{}B=!1,O=0}else I.size===1&&(B=!0,C=[...I.values()][0].y,O=0)}function Pt(H){if(!(H.key!=="Escape"||p)&&X){X=!1;try{o.clear_range()}catch{}if($)try{$(null)}catch{}A()}}function Ht(){p||(o.center_on_mid(),A())}e.addEventListener("wheel",Wt,{passive:!1}),e.addEventListener("pointerdown",kt),e.addEventListener("pointermove",Lt),e.addEventListener("pointerup",Tt),e.addEventListener("pointercancel",Tt),e.addEventListener("pointerleave",rt),e.addEventListener("dblclick",Ht),window.addEventListener("keydown",Pt);function Ut(){e.removeEventListener("wheel",Wt),e.removeEventListener("pointerdown",kt),e.removeEventListener("pointermove",Lt),e.removeEventListener("pointerup",Tt),e.removeEventListener("pointercancel",Tt),e.removeEventListener("pointerleave",rt),e.removeEventListener("dblclick",Ht),window.removeEventListener("keydown",Pt)}return{engine:o,start(){_=!0,h=!0,Y()},stop(){_=!1,b&&(cancelAnimationFrame(b),b=null)},resize(){if(T||p)return;let V=(e.parentElement||e).getBoundingClientRect(),J=Math.max(V.width,1),ht=Math.max(V.height,1);if(J<1||ht<1)return;s=window.devicePixelRatio||1;let l=Math.round(J*s),d=Math.round(ht*s),w=e.width!==l||e.height!==d;e.width!==l&&(e.width=l),e.height!==d&&(e.height=d),c.setTransform(s,0,0,s,0,0),i={width:J,height:ht};try{o.resize(J,ht),w&&E()}catch(S){if(S instanceof WebAssembly.RuntimeError){p=!0;return}throw S}A()},pushSnapshot(H,V,J){if(p)return;let ht=new Float64Array(H.length*2);for(let d=0;d<H.length;d++)ht[d*2]=H[d][0],ht[d*2+1]=H[d][1];let l=new Float64Array(V.length*2);for(let d=0;d<V.length;d++)l[d*2]=V[d][0],l[d*2+1]=V[d][1];try{o.push_snapshot(ht,l,J)}catch(d){if(d instanceof WebAssembly.RuntimeError){p=!0;return}throw d}A()},pushSnapshotFlat(H,V,J){if(!p){try{o.push_snapshot(H,V,J)}catch(ht){if(ht instanceof WebAssembly.RuntimeError){p=!0;return}throw ht}A()}},setDepthBook(H,V,J){if(p)return;let ht=new Float64Array(H.length*2);for(let d=0;d<H.length;d++)ht[d*2]=H[d][0],ht[d*2+1]=H[d][1];let l=new Float64Array(V.length*2);for(let d=0;d<V.length;d++)l[d*2]=V[d][0],l[d*2+1]=V[d][1];try{o.set_depth_book(ht,l,J)}catch(d){if(d instanceof WebAssembly.RuntimeError){p=!0;return}throw d}A()},setDepthBookFlat(H,V,J){if(!p){try{o.set_depth_book(H,V,J)}catch(ht){if(ht instanceof WebAssembly.RuntimeError){p=!0;return}throw ht}A()}},pushHeatmapCol(H,V,J){if(p)return;let ht=new Float64Array(H.length*2);for(let d=0;d<H.length;d++)ht[d*2]=H[d][0],ht[d*2+1]=H[d][1];let l=new Float64Array(V.length*2);for(let d=0;d<V.length;d++)l[d*2]=V[d][0],l[d*2+1]=V[d][1];try{o.push_heatmap_col(ht,l,J)}catch(d){if(d instanceof WebAssembly.RuntimeError){p=!0;return}throw d}A()},pushHeatmapColFlat(H,V,J){if(!p){try{o.push_heatmap_col(H,V,J)}catch(ht){if(ht instanceof WebAssembly.RuntimeError){p=!0;return}throw ht}A()}},resetRing(){if(!p){try{o.reset_ring()}catch(H){if(H instanceof WebAssembly.RuntimeError){p=!0;return}throw H}A()}},setExchangeLabels(H){if(p)return;let V=Array.isArray(H)?H.join(","):String(H);try{o.set_exchange_labels(V)}catch(J){if(J instanceof WebAssembly.RuntimeError){p=!0;return}throw J}A()},setSignalObi(H,V,J){if(!p){try{o.set_signal_obi(H,V,J)}catch(ht){if(ht instanceof WebAssembly.RuntimeError){p=!0;return}throw ht}A()}},setSignalSpoof(H){if(!p){try{o.set_signal_spoof(H)}catch(V){if(V instanceof WebAssembly.RuntimeError){p=!0;return}throw V}A()}},setSignalAbsorption(H,V){if(!p){try{o.set_signal_absorption(H,V)}catch(J){if(J instanceof WebAssembly.RuntimeError){p=!0;return}throw J}A()}},setSignalFlow(H,V){if(!p){try{o.set_signal_flow(H,V)}catch(J){if(J instanceof WebAssembly.RuntimeError){p=!0;return}throw J}A()}},setSignalWalls(H,V){if(!p){try{o.set_signal_walls(new Float64Array(H),new Float64Array(V))}catch(J){if(J instanceof WebAssembly.RuntimeError){p=!0;return}throw J}A()}},setSignalGaps(H,V){if(!p){try{o.set_signal_gaps(new Float64Array(H),new Float64Array(V))}catch(J){if(J instanceof WebAssembly.RuntimeError){p=!0;return}throw J}A()}},setSymbol(H){p||(o.set_symbol(H),A())},setTickSize(H){p||(o.set_tick_size(H),A())},setVisibleTicks(H){p||(o.set_visible_ticks(H),A())},setExchangeCount(H){p||(o.set_exchange_count(H),A())},setPrecision(H){p||(o.set_price_precision(H),A())},setAutoCenter(H){p||o.set_auto_center(H)},centerOnMid(){p||(o.center_on_mid(),A())},setHeatmapCols(H){p||(o.set_heatmap_cols(H),A())},setHeatmapAlphaMul(H){if(!p){try{o.set_heatmap_alpha_mul(Number(H))}catch(V){if(V instanceof WebAssembly.RuntimeError){p=!0;return}throw V}A()}},setShowCumulative(H){if(!p){try{o.set_show_cumulative(!!H)}catch(V){if(V instanceof WebAssembly.RuntimeError){p=!0;return}throw V}A()}},setShowSignalOverlays(H){if(!p){try{o.set_show_signal_overlays(!!H)}catch(V){if(V instanceof WebAssembly.RuntimeError){p=!0;return}throw V}A()}},getHoverPrice(){return p?0:o.get_hover_price()},getHoverQty(){return p?0:o.get_hover_qty()},getHoverSide(){return p?0:o.get_hover_side()},onHoverPrice(H){P=H},onClickPrice(H){m=H},onRangeUpdate(H){$=H},clearRange(){if(!p){if(X&&(X=!1,$))try{$(null)}catch{}try{o.clear_range()}catch{}A()}},setTheme(H){p||(o.set_theme(H==="light"?1:0),A())},clear(){p||(o.clear(),A())},get isDead(){return p},destroy(){T=!0,_=!1,b&&(cancelAnimationFrame(b),b=null),bt(),Ut();try{o.free()}catch{}}}}var Rn=null,bs=null;async function Ui(){if(Rn)return Rn;let{module:t,memory:e}=await Te();return Rn=t,bs=e,t}var ds=Promise.resolve();async function Gi(t,e={}){let n=await Ui();return ds=ds.then(()=>hs(n,t,e),()=>hs(n,t,e))}function hs(t,e,n){let s=window.devicePixelRatio||1,u=()=>{let X=e.parentElement,k=X?X.getBoundingClientRect():e.getBoundingClientRect();return{w:Math.max(60,Math.floor(k.width||60)),h:Math.max(120,Math.floor(k.height||120))}},{w:r,h:a}=u();e.width=Math.round(r*s),e.height=Math.round(a*s);let f=e.getContext("2d");f.setTransform(s,0,0,s,0,0);let i=new t.DomLadderEngine(r,a);n.tickSize&&i.set_tick_size(n.tickSize),n.pricePrecision!=null&&i.set_price_precision(n.pricePrecision),n.visibleRows&&i.set_visible_rows(n.visibleRows),n.theme==="light"&&i.set_theme(1),Number.isFinite(n.textScale)&&i.set_text_scale(n.textScale),Number.isFinite(n.fillIntensity)&&i.set_fill_intensity(n.fillIntensity),n.qtyDisplayUsd===!0&&i.set_qty_display_usd(1);let c=!0,o=null,h=!1,b=!1,_=!1,T=null,p=null;function P(){!h||_||o||(o=requestAnimationFrame(A))}let m=()=>{c=!0,P()};function Y(){if(_)return!1;try{if(i.render()>0){let k=i.get_command_buffer_ptr(),$=i.get_command_buffer_len();f.save(),f.setTransform(1,0,0,1,0,0),f.clearRect(0,0,e.width,e.height),f.restore(),Dt(f,bs,k,$)}return!0}catch(X){return X instanceof WebAssembly.RuntimeError&&(_=!0,console.error("[DomLadderEngine] crashed:",X.message)),!1}}function A(){if(o=null,!h||_)return;let X=!1;try{i.set_now_ms(Date.now()),X=c||i.is_dirty()}catch{_=!0;return}X&&(Y()?c=!1:c=!0),h&&!_&&(o=requestAnimationFrame(A))}e.style.touchAction="none";let E=0,M=0,B=!1;function C(X){_||(E=X.offsetX,M=X.offsetY,B=!1)}function I(X){if(!_&&((Math.abs(X.offsetX-E)>4||Math.abs(X.offsetY-M)>4)&&(B=!0),i.set_hover(X.offsetX,X.offsetY),m(),T))try{let k=i.get_hover_price();if(k>0){let $=i.get_hover_side();T({price:k,side:$===1?"ask":"bid"},X)}else T(null,X)}catch{}}function O(){_||(T&&T(null),i.clear_hover(),m())}function K(X){if(!_&&!B&&p)try{i.set_hover(X.offsetX,X.offsetY);let k=i.get_hover_price();if(k>0){let $=i.get_hover_side();p({price:k,side:$===1?"ask":"bid"})}}catch{}}function Q(){_||(i.center_on_mid(),m())}function tt(X){if(_)return;X.preventDefault();let k=X.deltaY;if(X.deltaMode===1?k*=16:X.deltaMode===2&&(k*=e.clientHeight||400),!(Math.abs(k)<.5)){try{i.scroll_by(k)}catch($){if($ instanceof WebAssembly.RuntimeError){_=!0;return}return}m()}}e.addEventListener("pointerdown",C),e.addEventListener("pointermove",I),e.addEventListener("pointerup",K),e.addEventListener("pointerleave",O),e.addEventListener("dblclick",Q),e.addEventListener("wheel",tt,{passive:!1});function ct(){e.removeEventListener("pointerdown",C),e.removeEventListener("pointermove",I),e.removeEventListener("pointerup",K),e.removeEventListener("pointerleave",O),e.removeEventListener("dblclick",Q),e.removeEventListener("wheel",tt)}return{engine:i,start(){h=!0,c=!0,P()},stop(){h=!1,o&&(cancelAnimationFrame(o),o=null)},resize(){if(b||_)return;let{w:X,h:k}=u();if(X<1||k<1)return;s=window.devicePixelRatio||1;let $=Math.round(X*s),ot=Math.round(k*s),ut=e.width!==$||e.height!==ot;e.width!==$&&(e.width=$),e.height!==ot&&(e.height=ot),f.setTransform(s,0,0,s,0,0);try{if(i.resize(X,k),ut){try{i.set_now_ms(Date.now())}catch{}Y()}}catch(it){if(it instanceof WebAssembly.RuntimeError){_=!0;return}throw it}m()},pushBook(X,k,$){if(_)return;let ot=X instanceof Float64Array?X:ps(X),ut=k instanceof Float64Array?k:ps(k);try{i.push_book(ot,ut,$)}catch(it){if(it instanceof WebAssembly.RuntimeError){_=!0;return}throw it}m()},appendTrade(X,k,$,ot){if(!_){try{i.append_trade(X,k,!!$,ot||Date.now())}catch(ut){if(ut instanceof WebAssembly.RuntimeError){_=!0;return}throw ut}m()}},pushDomVol(X){if(!(_||!Array.isArray(X)||X.length===0)){try{for(let k of X){if(!k)continue;let $=Number(k.p??k.price),ot=Number(k.b??k.buy??0),ut=Number(k.s??k.sell??0);$>0&&i.push_dom_vol($,ot,ut)}}catch(k){if(k instanceof WebAssembly.RuntimeError){_=!0;return}throw k}m()}},clearDomVol(){if(!_){try{i.clear_dom_vol()}catch(X){if(X instanceof WebAssembly.RuntimeError){_=!0;return}throw X}m()}},setWalls(X,k){if(_)return;let $=X instanceof Float64Array?X:new Float64Array(X||[]),ot=k instanceof Float64Array?k:new Float64Array(k||[]);try{i.set_walls($,ot)}catch(ut){if(ut instanceof WebAssembly.RuntimeError){_=!0;return}throw ut}m()},setTickSize(X){if(!_){try{i.set_tick_size(X)}catch(k){if(k instanceof WebAssembly.RuntimeError){_=!0;return}throw k}m()}},setPricePrecision(X){if(!_){try{i.set_price_precision(X)}catch(k){if(k instanceof WebAssembly.RuntimeError){_=!0;return}throw k}m()}},setVisibleRows(X){_||(i.set_visible_rows(X),m())},setTextScale(X){if(!(_||!Number.isFinite(X))){try{i.set_text_scale(X)}catch(k){if(k instanceof WebAssembly.RuntimeError){_=!0;return}throw k}m()}},setFillIntensity(X){if(!(_||!Number.isFinite(X))){try{i.set_fill_intensity(X)}catch(k){if(k instanceof WebAssembly.RuntimeError){_=!0;return}throw k}m()}},setQtyDisplayUsd(X){if(!_){try{i.set_qty_display_usd(X?1:0)}catch(k){if(k instanceof WebAssembly.RuntimeError){_=!0;return}throw k}m()}},setTheme(X){_||(i.set_theme(X==="light"?1:0),m())},resetSymbol(){_||(i.reset_symbol(),m())},centerOnMid(){_||(i.center_on_mid(),m())},scrollBy(X){if(!(_||!Number.isFinite(X))){try{i.scroll_by(X)}catch(k){if(k instanceof WebAssembly.RuntimeError){_=!0;return}throw k}m()}},isViewLocked(){if(_)return!1;try{return i.is_view_locked()}catch{return!1}},getMomentum(){if(_)return{m1:0,buy1m:0,sell1m:0};try{return{m1:i.momentum_1m(),buy1m:i.buy_volume_1m(),sell1m:i.sell_volume_1m()}}catch{return{m1:0,buy1m:0,sell1m:0}}},onHover(X){T=X},onClick(X){p=X},destroy(){b=!0,h=!1,o&&cancelAnimationFrame(o),o=null,ct();try{i.free&&i.free()}catch{}}}}function ps(t){let e=new Float64Array(t.length*2);for(let n=0;n<t.length;n++)e[n*2]=t[n][0],e[n*2+1]=t[n][1];return e}var In=null,ws=null;async function Ki(){if(In)return In;let{module:t,memory:e}=await Te();return In=t,ws=e,t}function $i(){if(typeof navigator>"u")return!1;let t=navigator.userAgent||"",e=typeof matchMedia=="function"&&matchMedia("(pointer: coarse)").matches,n=typeof window<"u"&&Math.min(window.innerWidth,window.innerHeight)<820;return/iphone|ipad|ipod|android|mobile/i.test(t)||e&&n}var ms=Promise.resolve();async function ji(t,e={}){let n=await Ki();return ms=ms.then(()=>gs(n,t,e),()=>gs(n,t,e))}function gs(t,e,n){let s=window.devicePixelRatio||1,u=e.getBoundingClientRect(),r=Math.max(u.width,60),a=Math.max(u.height,60);e.width=r*s,e.height=a*s;let f=e.getContext("2d");f.setTransform(1,0,0,1,0,0),f.scale(s,s);let i=e.width,c=e.height,o=new t.TickEngine(r,a);n.tickSize&&o.set_tick_size(n.tickSize),n.pricePrecision!=null&&o.set_price_precision(n.pricePrecision),n.theme==="light"&&o.set_theme(1);let h=n.lookbackMs||5*60*1e3,b=n.cellMs||1e3;(n.lookbackMs||n.cellMs)&&o.set_lookback(h,b),n.showTradeTape!=null&&o.set_show_trade_tape(!!n.showTradeTape),n.showBookHeatmap!=null&&o.set_show_book_heatmap(!!n.showBookHeatmap),n.showVwap!=null&&o.set_show_vwap(!!n.showVwap),n.showGrid!=null&&o.set_show_grid(!!n.showGrid);let _=n.isMobile!=null?!!n.isMobile:$i(),T=!!n.lowPower,p=_||T?33:8,P=66,m=3e4,Y=!0,A=null,E=!1,M=!1,B=!1,C=!1,I=0,O=performance.now(),K=performance.now(),Q=0,tt=Math.max(4,p-1),ct=0,X=0,k=0,$=null,ot=null,ut=0,it=[];function st(){if(M||!E||typeof document<"u"&&document.hidden)return Number.POSITIVE_INFINITY;let x=performance.now();return(x-O>m&&x-K>m?P:p)+X}function at(){!E||M||C||A||(A=requestAnimationFrame(dt))}function dt(x){if(A=null,!E||M||C)return;let et=st();if(!Number.isFinite(et))return;if(x-I<et){A=requestAnimationFrame(dt);return}I=x,bt();let _t=Y;if(!_t)try{_t=o.is_dirty()}catch{C=!0;return}if(_t){Y=!1;let mt=performance.now();if(!It()){if(C)return;Y=!0}let gt=performance.now()-mt;Q=Q*.85+gt*.15,gt>tt?(ct+=1,ct>=8&&(X=Math.min(100,X+16),ct=0,console.debug(`[TickEngine] adaptive throttle \u2192 ${p+X}ms (EMA ${Q.toFixed(1)}ms, last ${gt.toFixed(1)}ms)`))):(ct=0,X>0&&Q<tt*.5&&(X=Math.max(0,X-8)))}A=requestAnimationFrame(dt)}function bt(){if($&&ut>0){try{o.push_book(k,$,ot,ut)}catch(x){if(x instanceof WebAssembly.RuntimeError){C=!0;return}}$=null,ot=null,ut=0}if(it.length){let x=new Float64Array(it);it.length=0;try{o.push_trades_batch(x)}catch(et){if(et instanceof WebAssembly.RuntimeError){C=!0;return}}}}let ft=()=>{Y=!0,at()};function It(){if(C)return!1;try{if(o.render()>0){let et=o.get_command_buffer_ptr(),_t=o.get_command_buffer_len();f.save(),f.setTransform(1,0,0,1,0,0),f.clearRect(0,0,e.width,e.height),f.restore(),Dt(f,ws,et,_t)}return!0}catch(x){return x instanceof WebAssembly.RuntimeError&&(C=!0,console.error("[TickEngine] crashed:",x.message)),!1}}function Wt(){typeof document>"u"||(document.hidden?A&&(cancelAnimationFrame(A),A=null):(it.length=0,$=null,ot=null,ut=0,I=0,ft()))}typeof document<"u"&&document.addEventListener("visibilitychange",Wt);function kt(){if(B||C||(u=e.getBoundingClientRect(),u.width<1||u.height<1))return;s=window.devicePixelRatio||1;let x=Math.round(u.width*s),et=Math.round(u.height*s);try{o.resize(u.width,u.height)}catch(_t){if(_t instanceof WebAssembly.RuntimeError){C=!0;return}throw _t}if(M){ft();return}(x!==i||et!==c)&&(i=x,c=et,e.width=x,e.height=et,f.setTransform(1,0,0,1,0,0),f.scale(s,s)),It(),ft()}let Lt=0,rt=2,Tt=3,Pt=Lt,Ht=!1,Ut=0,H=0,V=new Map,J=0,ht=0;function l(x,et){if(C)return Lt;try{let _t=o.hit_zone?.(x,et);return Number.isFinite(_t)?_t:Lt}catch{return Lt}}function d(){}e.style.touchAction="none";function w(x){if(C||M)return;x.stopImmediatePropagation(),x.preventDefault(),O=performance.now();let et=x.deltaY,_t=x.deltaX,mt=Math.abs(et)>=Math.abs(_t)?et:_t;if(mt===0)return;let Mt=mt>0?1.1:.9,gt=l(x.offsetX,x.offsetY);try{x.ctrlKey?o.zoom_y(x.offsetY,Mt):x.shiftKey||gt===rt?o.zoom_x(x.offsetX,Mt):gt===Tt?o.zoom_y(x.offsetY,Mt):o.zoom(x.offsetX,x.offsetY,Mt)}catch{}ft()}function S(x){if(!(C||M)){if(x.stopImmediatePropagation(),O=performance.now(),V.set(x.pointerId,{x:x.offsetX,y:x.offsetY}),e.setPointerCapture(x.pointerId),V.size===1)Ht=!0,Ut=x.offsetX,H=x.offsetY,Pt=l(x.offsetX,x.offsetY);else if(V.size===2){Ht=!1;let et=[...V.values()];J=Math.abs(et[0].y-et[1].y),ht=(et[0].y+et[1].y)/2}}}function g(x){if(C||M)return;let et=V.has(x.pointerId);if(et&&x.stopImmediatePropagation(),O=performance.now(),et&&V.set(x.pointerId,{x:x.offsetX,y:x.offsetY}),et&&V.size>=2){let _t=[...V.values()],mt=Math.abs(_t[0].y-_t[1].y),Mt=(_t[0].y+_t[1].y)/2;if(J>0){let $t=J/Math.max(mt,1);try{o.zoom_y(Mt,$t)}catch{}}let gt=Mt-ht;if(Math.abs(gt)>.5)try{o.pan_y(gt)}catch{}J=mt,ht=Mt,ft()}else if(et&&Ht){let _t=x.offsetX-Ut,mt=x.offsetY-H;Ut=x.offsetX,H=x.offsetY;try{if(Pt===rt){if(Math.abs(_t)>.5){let Mt=Math.exp(_t*.004);o.zoom_x(Ut,Mt)}}else if(Pt===Tt){if(Math.abs(mt)>.5){let Mt=Math.exp(mt*.004);o.zoom_y(H,Mt)}}else Math.abs(_t)>.5&&o.pan_x(_t),Math.abs(mt)>.5&&o.pan_y(mt)}catch{}ft()}else{try{o.set_hover(x.offsetX,x.offsetY)}catch{}ft()}}function v(x){if(C)return;let et=V.has(x.pointerId);!M&&et&&x.stopImmediatePropagation(),V.delete(x.pointerId);try{e.releasePointerCapture(x.pointerId)}catch{}if(V.size===0)Ht=!1,J=0;else if(V.size===1){Ht=!0;let _t=[...V.values()][0];Ut=_t.x,H=_t.y,J=0}}function L(x){if(C)return;let et=V.has(x.pointerId);!M&&et&&x.stopImmediatePropagation();try{o.clear_hover()}catch{}ft()}function F(x){if(C||M)return;x.stopImmediatePropagation();let et=l(x.offsetX,x.offsetY);try{et===Tt?o.reset_y_auto?.():et===rt?o.set_follow_live?.(!0):o.reset_view?.()}catch{}ft()}function N(x){C||M||x.stopImmediatePropagation()}function z(x){C||M||V.size>0&&x.stopImmediatePropagation()}function W(x){C||M||V.size>0&&x.stopImmediatePropagation()}function D(x){C||M||(x.stopImmediatePropagation(),x.preventDefault())}let Z={capture:!0},j={capture:!0,passive:!1};e.addEventListener("wheel",w,j),e.addEventListener("pointerdown",S,Z),e.addEventListener("pointermove",g,Z),e.addEventListener("pointerup",v,Z),e.addEventListener("pointercancel",v,Z),e.addEventListener("pointerleave",L,Z),e.addEventListener("dblclick",F,Z),e.addEventListener("mousedown",N,Z),e.addEventListener("mousemove",z,Z),e.addEventListener("mouseup",W,Z),e.addEventListener("contextmenu",D,Z);function pt(){e.removeEventListener("wheel",w,j),e.removeEventListener("pointerdown",S,Z),e.removeEventListener("pointermove",g,Z),e.removeEventListener("pointerup",v,Z),e.removeEventListener("pointercancel",v,Z),e.removeEventListener("pointerleave",L,Z),e.removeEventListener("dblclick",F,Z),e.removeEventListener("mousedown",N,Z),e.removeEventListener("mousemove",z,Z),e.removeEventListener("mouseup",W,Z),e.removeEventListener("contextmenu",D,Z),typeof document<"u"&&document.removeEventListener("visibilitychange",Wt)}return{engine:o,isMobile:_,start(){E=!0,M=!1,Y=!0,I=0,O=performance.now(),K=performance.now(),at()},pause(){M=!0,A&&(cancelAnimationFrame(A),A=null)},resume(){B||C||(M=!1,E=!0,Y=!0,I=0,at())},stop(){E=!1,A&&(cancelAnimationFrame(A),A=null)},resize:kt,pushBook(x,et,_t,mt){C||M||(K=performance.now(),k=x,$=et,ot=_t,ut=mt,at())},pushTrade(x,et,_t,mt){C||M||(K=performance.now(),it.push(x,et,_t,mt),at())},pushTradesFlat(x){if(!(C||M)){K=performance.now();for(let et=0;et<x.length;et++)it.push(x[et]);at()}},setTheme(x){if(!C){try{o.set_theme(x==="light"||x===1?1:0)}catch{}ft()}},setTickSize(x){if(!C){try{o.set_tick_size(x)}catch{}ft()}},setPricePrecision(x){if(!C){try{o.set_price_precision(x)}catch{}ft()}},setTzOffsetSeconds(x){if(C)return;let et=Number.isFinite(x)?Math.trunc(x):0;if(typeof o.set_tz_offset_seconds=="function"){try{o.set_tz_offset_seconds(et)}catch{}ft()}},setLookback(x,et){if(C)return;let _t=Math.max(20,et|0),mt=Math.max(_t,x|0);if(!(_t===b&&mt===h)){b=_t,h=mt;try{o.set_lookback(mt,_t)}catch{}ft()}},setShowTradeTape(x){C||(o.set_show_trade_tape(!!x),ft())},setShowBookHeatmap(x){C||(o.set_show_book_heatmap(!!x),ft())},setShowVwap(x){C||(o.set_show_vwap(!!x),ft())},setShowGrid(x){C||(o.set_show_grid(!!x),ft())},setHeatmapPalette(x){if(C)return;let et=Math.max(0,Math.min(4,x|0));try{o.set_heatmap_palette?.(et)}catch{}ft()},setHeatmapStyle(x){if(C)return;let et=Math.max(0,Math.min(1,x|0));try{o.set_heatmap_style?.(et)}catch{}ft()},setLargeTrade3d(x){if(!C){try{o.set_large_trade_3d?.(!!x)}catch{}ft()}},setLargeTradeScale(x){if(C)return;let et=Number.isFinite(x)?+x:1;try{o.set_large_trade_scale?.(et)}catch{}ft()},setShowVolume(x){if(!C){try{o.set_show_volume?.(!!x)}catch{}ft()}},setShowPriceLine(x){if(!C){try{o.set_show_price_line?.(!!x)}catch{}ft()}},setShowDepthLens(x){if(!C){try{o.set_show_depth_lens?.(!!x)}catch{}ft()}},setShowCvd(x){if(!C){try{o.set_show_cvd?.(!!x)}catch{}ft()}},setHeatmapIntensity(x,et){if(C)return;let _t=Number.isFinite(x)?Math.max(0,Math.min(.99,+x)):0,mt=Number.isFinite(et)?Math.max(_t+.01,Math.min(1,+et)):1;try{o.set_heatmap_intensity?.(_t,mt)}catch{}ft()},setShowLatestProfile(x){if(!C){try{o.set_show_latest_profile?.(!!x)}catch{}ft()}},setFollowLive(x){C||(o.set_follow_live(!!x),ft())},setAutoScaleY(x){C||(o.set_auto_scale_y(!!x),ft())},resetView(){C||(o.reset_view(),ft())},getLastMid(){if(C)return 0;try{return o.get_last_mid()}catch{return 0}},clearData(){if(!C){try{o.clear()}catch{}it.length=0,$=null,ot=null,ut=0,ft()}},destroy(){if(!B){B=!0,E=!1,M=!0,A&&(cancelAnimationFrame(A),A=null),pt();try{o.free?.()}catch{}}}}}export{zi as buildRange,Hi as buildRenko,Xi as buildTick,Yi as createChartBridge,Gr as createCustomIndicatorManager,Gi as createDomLadderBridge,qi as createIcebergDetector,ki as createOrderbookBridge,ji as createTickBridge,Dt as dispatchCommands,Bi as prefetchEngine,Bi as prefetchWasm,kr as setupEvents,Vi as suggestDefaults,Nr as validateLicense};
|
|
14
|
+
var kn=Object.defineProperty;var Is=(t,e,n)=>e in t?kn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var tr=(t,e)=>()=>(t&&(e=t(t=0)),e);var Zn=(t,e)=>{for(var n in e)kn(t,n,{get:e[n],enumerable:!0})};var G=(t,e,n)=>Is(t,typeof e!="symbol"?e+"":e,n);var zo={};Zn(zo,{Point:()=>ue,etc:()=>pi,getPublicKey:()=>No,getPublicKeyAsync:()=>xo,hash:()=>li,hashes:()=>Yo,keygen:()=>bi,keygenAsync:()=>mi,sign:()=>_i,signAsync:()=>ui,utils:()=>gi,verify:()=>hi,verifyAsync:()=>di});var To,Sr,yr,bo,mo,tn,en,ri,fe,ni,Rt,oi,si,ii,Wt,Ar,sn,Eo,an,me,go,ln,Co,ai,He,Ao,Tr,Be,Et,wo,st,Po,Mo,cn,fn,li,rn,nn,ce,ue,Pe,Ye,Fo,un,le,ci,vo,fi,Er,_n,dn,Lo,hn,pn,xo,No,Ro,Io,Oo,ui,_i,bn,Bo,di,hi,pi,Yo,mn,bi,mi,gi,Cr,wi,Ho,on,vi,yo,So,yi,Xo=tr(()=>{To=Object.freeze({p:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffedn,n:0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3edn,h:8n,a:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffecn,d:0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3n,Gx:0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51an,Gy:0x6666666666666666666666666666666666666666666666666666666666666658n}),{p:Sr,n:yr,Gx:bo,Gy:mo,a:tn,d:en,h:ri}=To,fe=32,ni=(...t)=>{"captureStackTrace"in Error&&typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(...t)},Rt=(t="")=>{let e=new Error(t);throw ni(e,Rt),e},oi=t=>typeof t=="bigint",si=t=>typeof t=="string",ii=t=>t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in t&&t.BYTES_PER_ELEMENT===1,Wt=(t,e,n="")=>{let s=ii(t),v=t?.length,c=e!==void 0;if(!s||c&&v!==e){let d=n&&`"${n}" `,h=c?` of length ${e}`:"",r=s?`length=${v}`:`type=${typeof t}`,i=d+"expected Uint8Array"+h+", got "+r;throw s?new RangeError(i):new TypeError(i)}return t},Ar=t=>new Uint8Array(t),sn=t=>Uint8Array.from(t),Eo=(t,e)=>t.toString(16).padStart(e,"0"),an=t=>Array.from(Wt(t)).map(e=>Eo(e,2)).join(""),me={_0:48,_9:57,A:65,F:70,a:97,f:102},go=t=>{if(t>=me._0&&t<=me._9)return t-me._0;if(t>=me.A&&t<=me.F)return t-(me.A-10);if(t>=me.a&&t<=me.f)return t-(me.a-10)},ln=t=>{let e="hex invalid";if(!si(t))return Rt(e);let n=t.length,s=n/2;if(n%2)return Rt(e);let v=Ar(s);for(let c=0,d=0;c<s;c++,d+=2){let h=go(t.charCodeAt(d)),r=go(t.charCodeAt(d+1));if(h===void 0||r===void 0)return Rt(e);v[c]=h*16+r}return v},Co=()=>globalThis?.crypto,ai=()=>Co()?.subtle??Rt("crypto.subtle must be defined, consider polyfill"),He=(...t)=>{let e=0;for(let v of t)e+=Wt(v).length;let n=Ar(e),s=0;return t.forEach(v=>{n.set(v,s),s+=v.length}),n},Ao=(t=fe)=>Co().getRandomValues(Ar(t)),Tr=BigInt,Be=(t,e,n,s="bad number: out of range")=>{if(!oi(t))throw new TypeError(s);if(e<=t&&t<n)return t;throw new RangeError(s)},Et=(t,e=Sr)=>{let n=t%e;return n>=0n?n:e+n},wo=(1n<<255n)-1n,st=t=>{t<0n&&Rt("negative coordinate");let e=(t>>255n)*19n+(t&wo);return e=(e>>255n)*19n+(e&wo),e%Sr},Po=t=>Et(t,yr),Mo=(t,e)=>{(t===0n||e<=0n)&&Rt("no inverse n="+t+" mod="+e);let n=Et(t,e),s=e,v=0n,c=1n,d=1n,h=0n;for(;n!==0n;){let r=s/n,i=s%n,o=v-d*r,a=c-h*r;s=n,n=i,v=d,c=h,d=o,h=a}return s===1n?Et(v,e):Rt("no inverse")},cn=t=>{let e=Yo[t];return typeof e!="function"&&Rt("hashes."+t+" not set"),e},fn=t=>Wt(t,64,"digest"),li=t=>fn(cn("sha512")(Wt(t,void 0,"message"))),rn=t=>t instanceof ue?t:Rt("Point expected"),nn=2n**256n,ce=class ce{constructor(e,n,s,v){G(this,"X");G(this,"Y");G(this,"Z");G(this,"T");let c=nn;this.X=Be(e,0n,c),this.Y=Be(n,0n,c),this.Z=Be(s,1n,c),this.T=Be(v,0n,c),Object.freeze(this)}static CURVE(){return To}static fromAffine(e){return new ce(e.x,e.y,1n,st(e.x*e.y))}static fromBytes(e,n=!1){let s=en,v=sn(Wt(e,fe)),c=e[31];v[31]=c&-129;let d=un(v);Be(d,0n,n?nn:Sr);let r=st(d*d),i=Et(r-1n),o=st(s*r+1n),{isValid:a,value:_}=fi(i,o);a||Rt("bad point: y not sqrt");let f=(_&1n)===1n,E=(c&128)!==0;return!n&&_===0n&&E&&Rt("bad point: x==0, isLastByteOdd"),E!==f&&(_=Et(-_)),new ce(_,d,1n,st(_*d))}static fromHex(e,n){return ce.fromBytes(ln(e),n)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}assertValidity(){let e=tn,n=en,s=this;if(s.is0())return Rt("bad point: ZERO");let{X:v,Y:c,Z:d,T:h}=s,r=st(v*v),i=st(c*c),o=st(d*d),a=st(o*o),_=st(r*e),f=st(o*(_+i)),E=Et(a+st(n*st(r*i)));if(f!==E)return Rt("bad point: equation left != right (1)");let p=st(v*c),F=st(d*h);return p!==F?Rt("bad point: equation left != right (2)"):this}equals(e){let{X:n,Y:s,Z:v}=this,{X:c,Y:d,Z:h}=rn(e),r=st(n*h),i=st(c*v),o=st(s*h),a=st(d*v);return r===i&&o===a}is0(){return this.equals(Ye)}negate(){return new ce(Et(-this.X),this.Y,this.Z,Et(-this.T))}double(){let{X:e,Y:n,Z:s}=this,v=tn,c=st(e*e),d=st(n*n),h=st(2n*s*s),r=st(v*c),i=Et(e+n),o=Et(st(i*i)-c-d),a=Et(r+d),_=Et(a-h),f=Et(r-d),E=st(o*_),p=st(a*f),F=st(o*f),u=st(_*a);return new ce(E,p,u,F)}add(e){let{X:n,Y:s,Z:v,T:c}=this,{X:d,Y:h,Z:r,T:i}=rn(e),o=tn,a=en,_=st(n*d),f=st(s*h),E=st(st(c*a)*i),p=st(v*r),F=Et(st(Et(n+s)*Et(d+h))-_-f),u=Et(p-E),O=Et(p+E),A=Et(f-st(o*_)),T=st(F*u),P=st(O*A),H=st(F*A),x=st(u*O);return new ce(T,P,x,H)}subtract(e){return this.add(rn(e).negate())}multiply(e,n=!0){if(!n&&e===0n||(Be(e,1n,yr),!n&&this.is0()))return Ye;if(e===1n)return this;if(this.equals(Pe))return yi(e).p;let s=Ye,v=Pe;for(let c=this;e>0n;c=c.double(),e>>=1n)e&1n?s=s.add(c):n&&(v=v.add(c));return s}multiplyUnsafe(e){return this.multiply(e,!1)}toAffine(){let{X:e,Y:n,Z:s}=this;if(this.equals(Ye))return{x:0n,y:1n};let v=Mo(s,Sr);st(s*v)!==1n&&Rt("invalid inverse");let c=st(e*v),d=st(n*v);return{x:c,y:d}}toBytes(){let{x:e,y:n}=this.toAffine(),s=Fo(n);return s[31]|=e&1n?128:0,s}toHex(){return an(this.toBytes())}clearCofactor(){return this.multiply(Tr(ri),!1)}isSmallOrder(){return this.clearCofactor().is0()}isTorsionFree(){let e=this.multiply(yr/2n,!1).double();return yr%2n&&(e=e.add(this)),e.is0()}};G(ce,"BASE"),G(ce,"ZERO");ue=ce,Pe=new ue(bo,mo,1n,Et(bo*mo)),Ye=new ue(0n,1n,1n,0n);ue.BASE=Pe;ue.ZERO=Ye;Fo=t=>ln(Eo(Be(t,0n,nn),64)).reverse(),un=t=>Tr("0x"+an(sn(Wt(t)).reverse())),le=(t,e)=>{let n=t;for(;e-- >0n;)n=st(n*n);return n},ci=t=>{let e=st(t*t),n=st(e*t),s=st(le(n,2n)*n),v=st(le(s,1n)*t),c=st(le(v,5n)*v),d=st(le(c,10n)*c),h=st(le(d,20n)*d),r=st(le(h,40n)*h),i=st(le(r,80n)*r),o=st(le(i,80n)*r),a=st(le(o,10n)*c);return{pow_p_5_8:st(le(a,2n)*t),b2:n}},vo=0x2b8324804fc1df0b2b4d00993dfbd7a72f431806ad2fe478c4ee1b274a0ea0b0n,fi=(t,e)=>{let n=st(e*st(e*e)),s=st(st(n*n)*e),v=ci(st(t*s)).pow_p_5_8,c=st(t*st(n*v)),d=st(e*st(c*c)),h=c,r=st(c*vo),i=d===t,o=d===Et(-t),a=d===Et(-t*vo);return i&&(c=h),(o||a)&&(c=r),(Et(c)&1n)===1n&&(c=Et(-c)),{isValid:i||o,value:c}},Er=t=>Po(un(t)),_n=(...t)=>Promise.resolve(cn("sha512Async")(He(...t))).then(fn),dn=(...t)=>fn(cn("sha512")(He(...t))),Lo=t=>{let e=sn(t),n=e.slice(0,32);n[0]&=248,n[31]&=127,n[31]|=64;let s=e.slice(32,64),v=Er(n),c=Pe.multiply(v),d=c.toBytes();return{head:n,prefix:s,scalar:v,point:c,pointBytes:d}},hn=t=>_n(Wt(t,fe)).then(Lo),pn=t=>Lo(dn(Wt(t,fe))),xo=t=>hn(t).then(e=>e.pointBytes),No=t=>pn(t).pointBytes,Ro=t=>_n(t.hashable).then(t.finish),Io=t=>t.finish(dn(t.hashable)),Oo=(t,e,n)=>{let{pointBytes:s,scalar:v}=t,c=Er(e),d=Pe.multiply(c).toBytes();return{hashable:He(d,s,n),finish:i=>{let o=Po(c+Er(i)*v);return Wt(He(d,Fo(o)),64)}}},ui=async(t,e)=>{let n=Wt(t),s=await hn(e),v=await _n(s.prefix,n);return Ro(Oo(s,v,n))},_i=(t,e)=>{let n=Wt(t),s=pn(e),v=dn(s.prefix,n);return Io(Oo(s,v,n))},bn={zip215:!0},Bo=(t,e,n,s=bn)=>{t=Wt(t,64),e=Wt(e),n=Wt(n,fe);let{zip215:v=!0}=s,c=t.subarray(0,fe),d=un(t.subarray(fe,fe*2)),h,r,i,o=Uint8Array.of(),a=!1;try{h=ue.fromBytes(n,v),r=ue.fromBytes(c,v),i=Pe.multiply(d,!1),o=He(c,n,e),a=!0}catch{}return{hashable:o,finish:f=>{if(!a||!v&&h.isSmallOrder())return!1;let E=Er(f);return r.add(h.multiply(E,!1)).subtract(i).clearCofactor().is0()}}},di=async(t,e,n,s=bn)=>Ro(Bo(t,e,n,s)),hi=(t,e,n,s=bn)=>Io(Bo(t,e,n,s)),pi=Object.freeze({bytesToHex:an,hexToBytes:ln,concatBytes:He,mod:Et,invert:Mo,randomBytes:Ao}),Yo={sha512Async:async t=>{let e=ai(),n=He(t);return Ar(await e.digest("SHA-512",n.buffer))},sha512:void 0},mn=t=>(t=t===void 0?Ao(fe):t,Wt(t,fe)),bi=t=>{let e=mn(t),n=No(e);return{secretKey:e,publicKey:n}},mi=async t=>{let e=mn(t),n=await xo(e);return{secretKey:e,publicKey:n}},gi=Object.freeze({getExtendedPublicKeyAsync:hn,getExtendedPublicKey:pn,randomSecretKey:mn}),Cr=8,wi=256,Ho=Math.ceil(wi/Cr)+1,on=2**(Cr-1),vi=()=>{let t=[],e=Pe,n=e;for(let s=0;s<Ho;s++){n=e,t.push(n);for(let v=1;v<on;v++)n=n.add(e),t.push(n);e=n.double()}return t},So=(t,e)=>{let n=e.negate();return t?n:e},yi=t=>{let e=yo||(yo=vi()),n=Ye,s=Pe,v=2**Cr,c=v,d=Tr(v-1),h=Tr(Cr);for(let r=0;r<Ho;r++){let i=Number(t&d);t>>=h,i>on&&(i-=c,t+=1n);let o=r*on,a=o,_=o+Math.abs(i)-1,f=r%2!==0,E=i<0;i===0?s=s.add(So(f,e[a])):n=n.add(So(E,e[_]))}return t!==0n&&Rt("invalid wnaf"),{p:n,f:s}}});function Si(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in t&&t.BYTES_PER_ELEMENT===1}function gn(t,e,n=""){let s=Si(t),v=t?.length,c=e!==void 0;if(!s||c&&v!==e){let d=n&&`"${n}" `,h=c?` of length ${e}`:"",r=s?`length=${v}`:`type=${typeof t}`,i=d+"expected Uint8Array"+h+", got "+r;throw s?new RangeError(i):new TypeError(i)}return t}function wn(t,e=!0){if(t.destroyed)throw new Error("Hash instance has been destroyed");if(e&&t.finished)throw new Error("Hash#digest() has already been called")}function Vo(t,e){gn(t,void 0,"digestInto() output");let n=e.outputLen;if(t.length<n)throw new RangeError('"digestInto() output" expected to be of length >='+n)}function ze(...t){for(let e=0;e<t.length;e++)t[e].fill(0)}function Pr(t){return new DataView(t.buffer,t.byteOffset,t.byteLength)}function se(t,e){return t<<32-e|t>>>e}function Xe(t,e={}){let n=(v,c)=>t(c).update(v).digest(),s=t(void 0);return n.outputLen=s.outputLen,n.blockLen=s.blockLen,n.canXOF=s.canXOF,n.create=v=>t(v),Object.assign(n,e),Object.freeze(n)}var Ve,vn=tr(()=>{Ve=t=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,t])})});function Wo(t,e,n){return t&e^~t&n}function qo(t,e,n){return t&e^t&n^e&n}var ar,ge,we,It,Ot,ko=tr(()=>{vn();ar=class{constructor(e,n,s,v){G(this,"blockLen");G(this,"outputLen");G(this,"canXOF",!1);G(this,"padOffset");G(this,"isLE");G(this,"buffer");G(this,"view");G(this,"finished",!1);G(this,"length",0);G(this,"pos",0);G(this,"destroyed",!1);this.blockLen=e,this.outputLen=n,this.padOffset=s,this.isLE=v,this.buffer=new Uint8Array(e),this.view=Pr(this.buffer)}update(e){wn(this),gn(e);let{view:n,buffer:s,blockLen:v}=this,c=e.length;for(let d=0;d<c;){let h=Math.min(v-this.pos,c-d);if(h===v){let r=Pr(e);for(;v<=c-d;d+=v)this.process(r,d);continue}s.set(e.subarray(d,d+h),this.pos),this.pos+=h,d+=h,this.pos===v&&(this.process(n,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){wn(this),Vo(e,this),this.finished=!0;let{buffer:n,view:s,blockLen:v,isLE:c}=this,{pos:d}=this;n[d++]=128,ze(this.buffer.subarray(d)),this.padOffset>v-d&&(this.process(s,0),d=0);for(let a=d;a<v;a++)n[a]=0;s.setBigUint64(v-8,BigInt(this.length*8),c),this.process(s,0);let h=Pr(e),r=this.outputLen;if(r%4)throw new Error("_sha2: outputLen must be aligned to 32bit");let i=r/4,o=this.get();if(i>o.length)throw new Error("_sha2: outputLen bigger than state");for(let a=0;a<i;a++)h.setUint32(4*a,o[a],c)}digest(){let{buffer:e,outputLen:n}=this;this.digestInto(e);let s=e.slice(0,n);return this.destroy(),s}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());let{blockLen:n,buffer:s,length:v,finished:c,destroyed:d,pos:h}=this;return e.destroyed=d,e.finished=c,e.length=v,e.pos=h,v%n&&e.buffer.set(s),e}clone(){return this._cloneInto()}},ge=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),we=Uint32Array.from([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]),It=Uint32Array.from([3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]),Ot=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209])});function Ti(t,e=!1){return e?{h:Number(t&Mr),l:Number(t>>Zo&Mr)}:{h:Number(t>>Zo&Mr)|0,l:Number(t&Mr)|0}}function Uo(t,e=!1){let n=t.length,s=new Uint32Array(n),v=new Uint32Array(n);for(let c=0;c<n;c++){let{h:d,l:h}=Ti(t[c],e);[s[c],v[c]]=[d,h]}return[s,v]}function _e(t,e,n,s){let v=(e>>>0)+(s>>>0);return{h:t+n+(v/2**32|0)|0,l:v|0}}var Mr,Zo,yn,Sn,We,qe,lr,cr,Go,Ko,$o,jo,Qo,Jo,Do=tr(()=>{Mr=BigInt(4294967295),Zo=BigInt(32);yn=(t,e,n)=>t>>>n,Sn=(t,e,n)=>t<<32-n|e>>>n,We=(t,e,n)=>t>>>n|e<<32-n,qe=(t,e,n)=>t<<32-n|e>>>n,lr=(t,e,n)=>t<<64-n|e>>>n-32,cr=(t,e,n)=>t>>>n-32|e<<64-n;Go=(t,e,n)=>(t>>>0)+(e>>>0)+(n>>>0),Ko=(t,e,n,s)=>e+n+s+(t/2**32|0)|0,$o=(t,e,n,s)=>(t>>>0)+(e>>>0)+(n>>>0)+(s>>>0),jo=(t,e,n,s,v)=>e+n+s+v+(t/2**32|0)|0,Qo=(t,e,n,s,v)=>(t>>>0)+(e>>>0)+(n>>>0)+(s>>>0)+(v>>>0),Jo=(t,e,n,s,v,c)=>e+n+s+v+c+(t/2**32|0)|0});var es={};Zn(es,{_SHA224:()=>xr,_SHA256:()=>Lr,_SHA384:()=>Rr,_SHA512:()=>Nr,_SHA512_224:()=>Ir,_SHA512_256:()=>Or,sha224:()=>Fi,sha256:()=>Mi,sha384:()=>xi,sha512:()=>Li,sha512_224:()=>Ri,sha512_256:()=>Ni});var Ci,Me,Fr,Lr,xr,ts,Ai,Pi,Fe,Le,Ge,Nr,Rr,Yt,Ht,Ir,Or,Mi,Fi,Li,xi,Ni,Ri,rs=tr(()=>{ko();Do();vn();Ci=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),Me=new Uint32Array(64),Fr=class extends ar{constructor(e){super(64,e,8,!1)}get(){let{A:e,B:n,C:s,D:v,E:c,F:d,G:h,H:r}=this;return[e,n,s,v,c,d,h,r]}set(e,n,s,v,c,d,h,r){this.A=e|0,this.B=n|0,this.C=s|0,this.D=v|0,this.E=c|0,this.F=d|0,this.G=h|0,this.H=r|0}process(e,n){for(let a=0;a<16;a++,n+=4)Me[a]=e.getUint32(n,!1);for(let a=16;a<64;a++){let _=Me[a-15],f=Me[a-2],E=se(_,7)^se(_,18)^_>>>3,p=se(f,17)^se(f,19)^f>>>10;Me[a]=p+Me[a-7]+E+Me[a-16]|0}let{A:s,B:v,C:c,D:d,E:h,F:r,G:i,H:o}=this;for(let a=0;a<64;a++){let _=se(h,6)^se(h,11)^se(h,25),f=o+_+Wo(h,r,i)+Ci[a]+Me[a]|0,p=(se(s,2)^se(s,13)^se(s,22))+qo(s,v,c)|0;o=i,i=r,r=h,h=d+f|0,d=c,c=v,v=s,s=f+p|0}s=s+this.A|0,v=v+this.B|0,c=c+this.C|0,d=d+this.D|0,h=h+this.E|0,r=r+this.F|0,i=i+this.G|0,o=o+this.H|0,this.set(s,v,c,d,h,r,i,o)}roundClean(){ze(Me)}destroy(){this.destroyed=!0,this.set(0,0,0,0,0,0,0,0),ze(this.buffer)}},Lr=class extends Fr{constructor(){super(32);G(this,"A",ge[0]|0);G(this,"B",ge[1]|0);G(this,"C",ge[2]|0);G(this,"D",ge[3]|0);G(this,"E",ge[4]|0);G(this,"F",ge[5]|0);G(this,"G",ge[6]|0);G(this,"H",ge[7]|0)}},xr=class extends Fr{constructor(){super(28);G(this,"A",we[0]|0);G(this,"B",we[1]|0);G(this,"C",we[2]|0);G(this,"D",we[3]|0);G(this,"E",we[4]|0);G(this,"F",we[5]|0);G(this,"G",we[6]|0);G(this,"H",we[7]|0)}},ts=Uo(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(t=>BigInt(t))),Ai=ts[0],Pi=ts[1],Fe=new Uint32Array(80),Le=new Uint32Array(80),Ge=class extends ar{constructor(e){super(128,e,16,!1)}get(){let{Ah:e,Al:n,Bh:s,Bl:v,Ch:c,Cl:d,Dh:h,Dl:r,Eh:i,El:o,Fh:a,Fl:_,Gh:f,Gl:E,Hh:p,Hl:F}=this;return[e,n,s,v,c,d,h,r,i,o,a,_,f,E,p,F]}set(e,n,s,v,c,d,h,r,i,o,a,_,f,E,p,F){this.Ah=e|0,this.Al=n|0,this.Bh=s|0,this.Bl=v|0,this.Ch=c|0,this.Cl=d|0,this.Dh=h|0,this.Dl=r|0,this.Eh=i|0,this.El=o|0,this.Fh=a|0,this.Fl=_|0,this.Gh=f|0,this.Gl=E|0,this.Hh=p|0,this.Hl=F|0}process(e,n){for(let A=0;A<16;A++,n+=4)Fe[A]=e.getUint32(n),Le[A]=e.getUint32(n+=4);for(let A=16;A<80;A++){let T=Fe[A-15]|0,P=Le[A-15]|0,H=We(T,P,1)^We(T,P,8)^yn(T,P,7),x=qe(T,P,1)^qe(T,P,8)^Sn(T,P,7),B=Fe[A-2]|0,Y=Le[A-2]|0,z=We(B,Y,19)^lr(B,Y,61)^yn(B,Y,6),K=qe(B,Y,19)^cr(B,Y,61)^Sn(B,Y,6),at=$o(x,K,Le[A-7],Le[A-16]),j=jo(at,H,z,Fe[A-7],Fe[A-16]);Fe[A]=j|0,Le[A]=at|0}let{Ah:s,Al:v,Bh:c,Bl:d,Ch:h,Cl:r,Dh:i,Dl:o,Eh:a,El:_,Fh:f,Fl:E,Gh:p,Gl:F,Hh:u,Hl:O}=this;for(let A=0;A<80;A++){let T=We(a,_,14)^We(a,_,18)^lr(a,_,41),P=qe(a,_,14)^qe(a,_,18)^cr(a,_,41),H=a&f^~a&p,x=_&E^~_&F,B=Qo(O,P,x,Pi[A],Le[A]),Y=Jo(B,u,T,H,Ai[A],Fe[A]),z=B|0,K=We(s,v,28)^lr(s,v,34)^lr(s,v,39),at=qe(s,v,28)^cr(s,v,34)^cr(s,v,39),j=s&c^s&h^c&h,X=v&d^v&r^d&r;u=p|0,O=F|0,p=f|0,F=E|0,f=a|0,E=_|0,{h:a,l:_}=_e(i|0,o|0,Y|0,z|0),i=h|0,o=r|0,h=c|0,r=d|0,c=s|0,d=v|0;let k=Go(z,at,X);s=Ko(k,Y,K,j),v=k|0}({h:s,l:v}=_e(this.Ah|0,this.Al|0,s|0,v|0)),{h:c,l:d}=_e(this.Bh|0,this.Bl|0,c|0,d|0),{h,l:r}=_e(this.Ch|0,this.Cl|0,h|0,r|0),{h:i,l:o}=_e(this.Dh|0,this.Dl|0,i|0,o|0),{h:a,l:_}=_e(this.Eh|0,this.El|0,a|0,_|0),{h:f,l:E}=_e(this.Fh|0,this.Fl|0,f|0,E|0),{h:p,l:F}=_e(this.Gh|0,this.Gl|0,p|0,F|0),{h:u,l:O}=_e(this.Hh|0,this.Hl|0,u|0,O|0),this.set(s,v,c,d,h,r,i,o,a,_,f,E,p,F,u,O)}roundClean(){ze(Fe,Le)}destroy(){this.destroyed=!0,ze(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},Nr=class extends Ge{constructor(){super(64);G(this,"Ah",Ot[0]|0);G(this,"Al",Ot[1]|0);G(this,"Bh",Ot[2]|0);G(this,"Bl",Ot[3]|0);G(this,"Ch",Ot[4]|0);G(this,"Cl",Ot[5]|0);G(this,"Dh",Ot[6]|0);G(this,"Dl",Ot[7]|0);G(this,"Eh",Ot[8]|0);G(this,"El",Ot[9]|0);G(this,"Fh",Ot[10]|0);G(this,"Fl",Ot[11]|0);G(this,"Gh",Ot[12]|0);G(this,"Gl",Ot[13]|0);G(this,"Hh",Ot[14]|0);G(this,"Hl",Ot[15]|0)}},Rr=class extends Ge{constructor(){super(48);G(this,"Ah",It[0]|0);G(this,"Al",It[1]|0);G(this,"Bh",It[2]|0);G(this,"Bl",It[3]|0);G(this,"Ch",It[4]|0);G(this,"Cl",It[5]|0);G(this,"Dh",It[6]|0);G(this,"Dl",It[7]|0);G(this,"Eh",It[8]|0);G(this,"El",It[9]|0);G(this,"Fh",It[10]|0);G(this,"Fl",It[11]|0);G(this,"Gh",It[12]|0);G(this,"Gl",It[13]|0);G(this,"Hh",It[14]|0);G(this,"Hl",It[15]|0)}},Yt=Uint32Array.from([2352822216,424955298,1944164710,2312950998,502970286,855612546,1738396948,1479516111,258812777,2077511080,2011393907,79989058,1067287976,1780299464,286451373,2446758561]),Ht=Uint32Array.from([573645204,4230739756,2673172387,3360449730,596883563,1867755857,2520282905,1497426621,2519219938,2827943907,3193839141,1401305490,721525244,746961066,246885852,2177182882]),Ir=class extends Ge{constructor(){super(28);G(this,"Ah",Yt[0]|0);G(this,"Al",Yt[1]|0);G(this,"Bh",Yt[2]|0);G(this,"Bl",Yt[3]|0);G(this,"Ch",Yt[4]|0);G(this,"Cl",Yt[5]|0);G(this,"Dh",Yt[6]|0);G(this,"Dl",Yt[7]|0);G(this,"Eh",Yt[8]|0);G(this,"El",Yt[9]|0);G(this,"Fh",Yt[10]|0);G(this,"Fl",Yt[11]|0);G(this,"Gh",Yt[12]|0);G(this,"Gl",Yt[13]|0);G(this,"Hh",Yt[14]|0);G(this,"Hl",Yt[15]|0)}},Or=class extends Ge{constructor(){super(32);G(this,"Ah",Ht[0]|0);G(this,"Al",Ht[1]|0);G(this,"Bh",Ht[2]|0);G(this,"Bl",Ht[3]|0);G(this,"Ch",Ht[4]|0);G(this,"Cl",Ht[5]|0);G(this,"Dh",Ht[6]|0);G(this,"Dl",Ht[7]|0);G(this,"Eh",Ht[8]|0);G(this,"El",Ht[9]|0);G(this,"Fh",Ht[10]|0);G(this,"Fl",Ht[11]|0);G(this,"Gh",Ht[12]|0);G(this,"Gl",Ht[13]|0);G(this,"Hh",Ht[14]|0);G(this,"Hl",Ht[15]|0)}},Mi=Xe(()=>new Lr,Ve(1)),Fi=Xe(()=>new xr,Ve(4)),Li=Xe(()=>new Nr,Ve(3)),xi=Xe(()=>new Rr,Ve(2)),Ni=Xe(()=>new Or,Ve(6)),Ri=Xe(()=>new Ir,Ve(5))});var vt={FILL_RECT:1,FILL_ROUND_RECT:27,STROKE_RECT:2,LINE:3,DASHED_LINE:4,POLYLINE:5,TEXT:6,CIRCLE:7,TRIANGLE:8,SAVE:9,RESTORE:10,CLIP_RECT:11,ROTATED_TEXT:12,BUBBLE_3D:13,FILL_POLYGON:14,DASHED_POLYLINE:15,GRADIENT_RECT:16,GRADIENT_RECT_H:28,GRADIENT_RECT_H_MULTI:29,LINEAR_POLYLINE:17,SMOOTH_POLYLINE:24,BEGIN_HEATMAP_LAYER:18,END_HEATMAP_LAYER:19,HEATMAP_BITMAP:20,LINE_WITH_EXTEND:21,LABEL_CALLOUT:22,HEATMAP_WORLD:23,DRAW_IMAGE:25,FILL_SMOOTH_BAND:26,END_FRAME:255},Ee=null,Un=null;function Os(t,e){return Ee?(Ee.width!==t||Ee.height!==e)&&(Ee.width=t,Ee.height=e):(Ee=typeof OffscreenCanvas<"u"?new OffscreenCanvas(t,e):Object.assign(document.createElement("canvas"),{width:t,height:e}),Un=Ee.getContext("2d")),Un}var er=new Float64Array(0),Vr=new Float64Array(0),Wr=new Float64Array(0),rr=new Float64Array(0);function Bs(t){return er.length<t&&(er=new Float64Array(t)),er}function Ys(t){return Vr.length<t&&(Vr=new Float64Array(t)),Vr}function Hs(t){return Wr.length<t&&(Wr=new Float64Array(t)),Wr}function zs(t){return rr.length<t&&(rr=new Float64Array(t)),rr}function qr(t,e){if(e<2)return;let n=e-1,s=Bs(n),v=Ys(n),c=Hs(n);for(let h=0;h<n;h++){let r=t[h*2],i=t[h*2+1],o=t[(h+1)*2],a=t[(h+1)*2+1];s[h]=o-r,v[h]=a-i,c[h]=s[h]>0?v[h]/s[h]:0}let d=zs(e);d[0]=c[0],d[e-1]=c[n-1];for(let h=1;h<n;h++){let r=c[h-1],i=c[h];d[h]=r*i<=0?0:(r+i)*.5}for(let h=0;h<n;h++){let r=c[h];if(r===0){d[h]=0,d[h+1]=0;continue}let i=d[h]/r,o=d[h+1]/r,a=i*i+o*o;if(a>9){let _=3/Math.sqrt(a);d[h]=_*i*r,d[h+1]=_*o*r}}}function Gn(t,e,n){let s=n-1,v=er,c=rr;for(let d=0;d<s;d++){let h=e[d*2],r=e[d*2+1],i=e[(d+1)*2],o=e[(d+1)*2+1],a=v[d];if(a<=0){t.lineTo(i,o);continue}let _=a/3;t.bezierCurveTo(h+_,r+c[d]*_,i-_,o-c[d+1]*_,i,o)}}function Xs(t,e,n){let s=n-1,v=er,c=rr;for(let d=s-1;d>=0;d--){let h=e[d*2],r=e[d*2+1],i=e[(d+1)*2],o=e[(d+1)*2+1],a=v[d];if(a<=0){t.lineTo(h,r);continue}let _=a/3;t.bezierCurveTo(i-_,o-c[d+1]*_,h+_,r+c[d]*_,h,r)}}var Vs=["left","center","right"],hr=new Map,Ws=4096;function qs(t,e,n,s){return t<<24|e<<16|n<<8|s}function St(t,e,n,s){let v=qs(t,e,n,s),c=hr.get(v);return c||(c=`rgba(${t},${e},${n},${(s/255).toFixed(3)})`,hr.size>=Ws&&hr.clear(),hr.set(v,c),c)}var kr=new TextDecoder;function pr(t,e){return Math.round(t*e)/e}var Kn=new Map;function Zr(t,e){let n=Kn.get(e);if(n!==void 0)return n;let s=t.font,v=t.textBaseline;t.font=e,t.textBaseline="alphabetic";let c=t.measureText("0"),d=c.actualBoundingBoxAscent||0,h=c.actualBoundingBoxDescent||0;return n=(d-h)/2,(!Number.isFinite(n)||n===0)&&(n=(parseFloat(e)||11)*.35),Kn.set(e,n),t.font=s,t.textBaseline=v,n}function Bt(t,e,n){let s=Math.max(1,Math.round(e*n)),v=Math.round(t*n)/n;return s&1?v+.5/n:v}function Te(t,e,n,s,v){let c=Math.round(t*v),d=Math.round(e*v),h=Math.round((t+n)*v),r=Math.round((e+s)*v);return{x:c/v,y:d/v,w:(h-c)/v,h:(r-d)/v}}function $n(){let t=null,e=null,n=null,s=0;function v(c,d,h){return c<=0||d<=0?null:(t?(t.width!==c||t.height!==d)&&(t.width=c,t.height=d,n=null):(typeof OffscreenCanvas<"u"?t=new OffscreenCanvas(c,d):(t=document.createElement("canvas"),t.width=c,t.height=d),e=t.getContext("2d",{alpha:!0})),e&&s!==h&&(e.setTransform(h,0,0,h,0,0),s=h,n=null),e)}return{ensureSize:v,getCanvas(){return t},getKey(){return n},setKey(c){n=c},invalidate(){n=null}}}function jn(){let t=null,e=null,n=0,s=0;function v(c,d){return c<=0||d<=0?null:(t&&n===c&&s===d||(t?(t.width=c,t.height=d,e.imageSmoothingEnabled=!1):(typeof OffscreenCanvas<"u"?t=new OffscreenCanvas(c,d):(t=document.createElement("canvas"),t.width=c,t.height=d),e=t.getContext("2d",{alpha:!0}),e.imageSmoothingEnabled=!1),n=c,s=d),e)}return{ensureSize:v,getCanvas(){return t},getCols(){return n},getRows(){return s},invalidate(){e&&n>0&&s>0&&e.clearRect(0,0,n,s)}}}function ne(t,e,n,s,v=null,c=null,d=null){let h=e.buffer;if(n+s>h.byteLength)return;let r=new DataView(h,n,s),i=new Uint8Array(h,n,s),o=0,a="",_="",f=-1,E="",p=Math.max(1,Math.abs(t.getTransform?.().a||window.devicePixelRatio||1)),F=t,u=!1,O="";for(;o<s;){let A=i[o];if(o+=1,A===vt.END_FRAME)break;switch(A){case vt.FILL_RECT:{let T=r.getFloat32(o,!0);o+=4;let P=r.getFloat32(o,!0);o+=4;let H=r.getFloat32(o,!0);o+=4;let x=r.getFloat32(o,!0);o+=4;let B=St(i[o],i[o+1],i[o+2],i[o+3]);o+=4,B!==a&&(t.fillStyle=B,a=B);let Y=Te(T,P,H,x,p);t.fillRect(Y.x,Y.y,Y.w,Y.h);break}case vt.FILL_ROUND_RECT:{let T=r.getFloat32(o,!0);o+=4;let P=r.getFloat32(o,!0);o+=4;let H=r.getFloat32(o,!0);o+=4;let x=r.getFloat32(o,!0);o+=4;let B=St(i[o],i[o+1],i[o+2],i[o+3]);o+=4;let Y=r.getFloat32(o,!0);o+=4,B!==a&&(t.fillStyle=B,a=B);let z=Te(T,P,H,x,p),K=Math.min(Y,z.w*.5,z.h*.5);K<=.5?t.fillRect(z.x,z.y,z.w,z.h):(t.beginPath(),t.moveTo(z.x+K,z.y),t.lineTo(z.x+z.w-K,z.y),t.arcTo(z.x+z.w,z.y,z.x+z.w,z.y+K,K),t.lineTo(z.x+z.w,z.y+z.h-K),t.arcTo(z.x+z.w,z.y+z.h,z.x+z.w-K,z.y+z.h,K),t.lineTo(z.x+K,z.y+z.h),t.arcTo(z.x,z.y+z.h,z.x,z.y+z.h-K,K),t.lineTo(z.x,z.y+K),t.arcTo(z.x,z.y,z.x+K,z.y,K),t.closePath(),t.fill());break}case vt.STROKE_RECT:{let T=r.getFloat32(o,!0);o+=4;let P=r.getFloat32(o,!0);o+=4;let H=r.getFloat32(o,!0);o+=4;let x=r.getFloat32(o,!0);o+=4;let B=St(i[o],i[o+1],i[o+2],i[o+3]);o+=4;let Y=r.getFloat32(o,!0);o+=4,B!==_&&(t.strokeStyle=B,_=B),Y!==f&&(t.lineWidth=Y,f=Y);let z=Bt(T,Y,p),K=Bt(P,Y,p),at=Math.round(H*p)/p,j=Math.round(x*p)/p;t.strokeRect(z,K,at,j);break}case vt.LINE:{let T=r.getFloat32(o,!0);o+=4;let P=r.getFloat32(o,!0);o+=4;let H=r.getFloat32(o,!0);o+=4;let x=r.getFloat32(o,!0);o+=4;let B=St(i[o],i[o+1],i[o+2],i[o+3]);o+=4;let Y=r.getFloat32(o,!0);o+=4,t.beginPath(),B!==_&&(t.strokeStyle=B,_=B),Y!==f&&(t.lineWidth=Y,f=Y),t.setLineDash([]),t.moveTo(Bt(T,Y,p),Bt(P,Y,p)),t.lineTo(Bt(H,Y,p),Bt(x,Y,p)),t.stroke();break}case vt.DASHED_LINE:{let T=r.getFloat32(o,!0);o+=4;let P=r.getFloat32(o,!0);o+=4;let H=r.getFloat32(o,!0);o+=4;let x=r.getFloat32(o,!0);o+=4;let B=St(i[o],i[o+1],i[o+2],i[o+3]);o+=4;let Y=r.getFloat32(o,!0);o+=4;let z=r.getFloat32(o,!0);o+=4;let K=r.getFloat32(o,!0);o+=4,t.beginPath(),B!==_&&(t.strokeStyle=B,_=B),Y!==f&&(t.lineWidth=Y,f=Y),t.setLineDash([z,K]),t.moveTo(Bt(T,Y,p),Bt(P,Y,p)),t.lineTo(Bt(H,Y,p),Bt(x,Y,p)),t.stroke(),t.setLineDash([]);break}case vt.LINEAR_POLYLINE:{let T=r.getUint16(o,!0);o+=2;let P=St(i[o],i[o+1],i[o+2],i[o+3]);o+=4;let H=r.getFloat32(o,!0);if(o+=4,T>1){t.beginPath(),P!==_&&(t.strokeStyle=P,_=P),H!==f&&(t.lineWidth=H,f=H),t.setLineDash([]),t.lineJoin="miter",t.lineCap="butt",t.miterLimit=10;let x=r.getFloat32(o,!0);o+=4;let B=r.getFloat32(o,!0);o+=4,t.moveTo(x,B);for(let Y=1;Y<T;Y++)t.lineTo(r.getFloat32(o,!0),r.getFloat32(o+4,!0)),o+=8;t.stroke()}else o+=T*8;break}case vt.SMOOTH_POLYLINE:{let T=r.getUint16(o,!0);o+=2;let P=St(i[o],i[o+1],i[o+2],i[o+3]);o+=4;let H=r.getFloat32(o,!0);if(o+=4,T>1){let x=new Float32Array(T*2);for(let B=0;B<T;B++)x[B*2]=r.getFloat32(o,!0),o+=4,x[B*2+1]=r.getFloat32(o,!0),o+=4;t.beginPath(),P!==_&&(t.strokeStyle=P,_=P),H!==f&&(t.lineWidth=H,f=H),t.setLineDash([]),t.lineJoin="round",t.lineCap="round",T===2?(t.moveTo(x[0],x[1]),t.lineTo(x[2],x[3])):(qr(x,T),t.moveTo(x[0],x[1]),Gn(t,x,T)),t.stroke()}else o+=T*8;break}case vt.POLYLINE:{let T=r.getUint16(o,!0);o+=2;let P=St(i[o],i[o+1],i[o+2],i[o+3]);o+=4;let H=r.getFloat32(o,!0);if(o+=4,T>0){let x=new Float32Array(T*2);for(let B=0;B<T;B++)x[B*2]=r.getFloat32(o,!0),o+=4,x[B*2+1]=r.getFloat32(o,!0),o+=4;if(t.beginPath(),P!==_&&(t.strokeStyle=P,_=P),H!==f&&(t.lineWidth=H,f=H),t.setLineDash([]),t.lineJoin="round",t.lineCap="round",T===2)t.moveTo(x[0],x[1]),t.lineTo(x[2],x[3]);else{t.moveTo(x[0],x[1]);for(let B=0;B<T-1;B++){let Y=B>0?B-1:0,z=B,K=B+1,at=B<T-2?B+2:T-1,j=x[Y*2],X=x[Y*2+1],k=x[z*2],J=x[z*2+1],it=x[K*2],rt=x[K*2+1],ut=x[at*2],nt=x[at*2+1],ct=k+(it-j)/6,ft=J+(rt-X)/6,mt=it-(ut-k)/6,dt=rt-(nt-J)/6;t.bezierCurveTo(ct,ft,mt,dt,it,rt)}}t.stroke()}break}case vt.TEXT:{let T=r.getFloat32(o,!0);o+=4;let P=r.getFloat32(o,!0);o+=4;let H=St(i[o],i[o+1],i[o+2],i[o+3]);o+=4;let x=r.getFloat32(o,!0);o+=4;let B=i[o];o+=1;let Y=r.getUint16(o,!0);o+=2;let z=kr.decode(new Uint8Array(e.buffer,n+o,Y));o+=Y,H!==a&&(t.fillStyle=H,a=H);let K=`${Math.round(x)}px "IBM Plex Mono",monospace`;K!==E&&(t.font=K,E=K),t.textAlign=Vs[B]||"left",t.textBaseline="alphabetic";let at=P+Zr(t,K);t.fillText(z,pr(T,p),pr(at,p));break}case vt.CIRCLE:{let T=r.getFloat32(o,!0);o+=4;let P=r.getFloat32(o,!0);o+=4;let H=r.getFloat32(o,!0);o+=4;let x=St(i[o],i[o+1],i[o+2],i[o+3]);o+=4;let B=St(i[o],i[o+1],i[o+2],i[o+3]);o+=4;let Y=r.getFloat32(o,!0);o+=4,t.beginPath(),t.arc(T,P,H,0,Math.PI*2),x!==a&&(t.fillStyle=x,a=x),t.fill(),Y>0&&(B!==_&&(t.strokeStyle=B,_=B),Y!==f&&(t.lineWidth=Y,f=Y),t.stroke());break}case vt.TRIANGLE:{let T=r.getFloat32(o,!0);o+=4;let P=r.getFloat32(o,!0);o+=4;let H=r.getFloat32(o,!0);o+=4;let x=r.getFloat32(o,!0);o+=4;let B=r.getFloat32(o,!0);o+=4;let Y=r.getFloat32(o,!0);o+=4;let z=St(i[o],i[o+1],i[o+2],i[o+3]);o+=4,t.beginPath(),t.moveTo(T,P),t.lineTo(H,x),t.lineTo(B,Y),t.closePath(),z!==a&&(t.fillStyle=z,a=z),t.fill();break}case vt.SAVE:{t.save();break}case vt.RESTORE:{t.restore(),a="",_="",f=-1,E="";break}case vt.CLIP_RECT:{let T=r.getFloat32(o,!0);o+=4;let P=r.getFloat32(o,!0);o+=4;let H=r.getFloat32(o,!0);o+=4;let x=r.getFloat32(o,!0);o+=4;let B=Te(T,P,H,x,p);t.beginPath(),t.rect(B.x,B.y,B.w,B.h),t.clip();break}case vt.ROTATED_TEXT:{let T=r.getFloat32(o,!0);o+=4;let P=r.getFloat32(o,!0);o+=4;let H=St(i[o],i[o+1],i[o+2],i[o+3]);o+=4;let x=r.getFloat32(o,!0);o+=4;let B=r.getFloat32(o,!0);o+=4;let Y=r.getUint16(o,!0);o+=2;let z=kr.decode(i.subarray(o,o+Y));o+=Y;let K=`${x}px sans-serif`;K!==E&&(t.font=K,E=K),H!==a&&(t.fillStyle=H,a=H),t.textAlign="center",t.textBaseline="alphabetic";let at=Zr(t,K);t.save(),t.translate(T,P),t.rotate(B),t.fillText(z,0,at),t.restore();break}case vt.BUBBLE_3D:{let T=r.getFloat32(o,!0);o+=4;let P=r.getFloat32(o,!0);o+=4;let H=r.getFloat32(o,!0);o+=4;let x=i[o],B=i[o+1],Y=i[o+2],z=i[o+3];o+=4;let K=i[o],at=i[o+1],j=i[o+2],X=i[o+3];o+=4;let k=i[o],J=i[o+1],it=i[o+2],rt=i[o+3];o+=4;let ut=r.getFloat32(o,!0);o+=4;let nt=H;if(nt<10){let ct=`rgba(${x},${B},${Y},${(z/255).toFixed(3)})`;t.beginPath(),t.arc(T,P,nt,0,Math.PI*2),t.fillStyle=ct,t.fill(),a=""}else if(nt<18){let ct=T-nt*.25,ft=P-nt*.25,mt=t.createRadialGradient(ct,ft,nt*.08,T,P,nt);mt.addColorStop(0,`rgba(${K},${at},${j},${(X/255).toFixed(3)})`),mt.addColorStop(1,`rgba(${x},${B},${Y},${(z/255).toFixed(3)})`),t.beginPath(),t.arc(T,P,nt,0,Math.PI*2),t.fillStyle=mt,t.fill(),a=""}else{let ct=T-nt*.25,ft=P-nt*.25,mt=t.createRadialGradient(T,P,nt*.85,T,P,nt*1.2);mt.addColorStop(0,`rgba(${k},${J},${it},${(rt/255*.5).toFixed(3)})`),mt.addColorStop(1,`rgba(${k},${J},${it},0)`),t.beginPath(),t.arc(T,P,nt*1.2,0,Math.PI*2),t.fillStyle=mt,t.fill();let dt=t.createRadialGradient(ct,ft,nt*.08,T,P,nt);dt.addColorStop(0,`rgba(${K},${at},${j},${(X/255).toFixed(3)})`),dt.addColorStop(1,`rgba(${x},${B},${Y},${(z/255).toFixed(3)})`),t.beginPath(),t.arc(T,P,nt,0,Math.PI*2),t.fillStyle=dt,t.fill();let At=nt*.2,Ft=t.createRadialGradient(ct,ft,0,ct,ft,At);Ft.addColorStop(0,"rgba(255,255,255,0.22)"),Ft.addColorStop(1,"rgba(255,255,255,0)"),t.beginPath(),t.arc(ct,ft,At,0,Math.PI*2),t.fillStyle=Ft,t.fill(),a=""}break}case vt.FILL_POLYGON:{let T=r.getUint16(o,!0);o+=2;let P=St(i[o],i[o+1],i[o+2],i[o+3]);if(o+=4,T>2){t.beginPath();let H=r.getFloat32(o,!0);o+=4;let x=r.getFloat32(o,!0);o+=4,t.moveTo(H,x);for(let B=1;B<T;B++)t.lineTo(r.getFloat32(o,!0),r.getFloat32(o+4,!0)),o+=8;t.closePath(),P!==a&&(t.fillStyle=P,a=P),t.fill()}else o+=T*8;break}case vt.FILL_SMOOTH_BAND:{let T=r.getUint16(o,!0);o+=2;let P=r.getUint16(o,!0);o+=2;let H=St(i[o],i[o+1],i[o+2],i[o+3]);o+=4;let x=new Float32Array(T*2);for(let Y=0;Y<T;Y++)x[Y*2]=r.getFloat32(o,!0),o+=4,x[Y*2+1]=r.getFloat32(o,!0),o+=4;let B=new Float32Array(P*2);for(let Y=0;Y<P;Y++)B[Y*2]=r.getFloat32(o,!0),o+=4,B[Y*2+1]=r.getFloat32(o,!0),o+=4;T>=2&&P>=2&&(t.beginPath(),H!==a&&(t.fillStyle=H,a=H),T===2?(t.moveTo(x[0],x[1]),t.lineTo(x[2],x[3])):(qr(x,T),t.moveTo(x[0],x[1]),Gn(t,x,T)),t.lineTo(B[(P-1)*2],B[(P-1)*2+1]),P===2?t.lineTo(B[0],B[1]):(qr(B,P),Xs(t,B,P)),t.closePath(),t.fill());break}case vt.DASHED_POLYLINE:{let T=r.getUint16(o,!0);o+=2;let P=St(i[o],i[o+1],i[o+2],i[o+3]);o+=4;let H=r.getFloat32(o,!0);o+=4;let x=r.getFloat32(o,!0);o+=4;let B=r.getFloat32(o,!0);if(o+=4,T>1){t.beginPath(),P!==_&&(t.strokeStyle=P,_=P),H!==f&&(t.lineWidth=H,f=H),t.setLineDash([x,B]),t.lineJoin="round";let Y=r.getFloat32(o,!0);o+=4;let z=r.getFloat32(o,!0);o+=4,t.moveTo(Y,z);for(let K=1;K<T;K++)t.lineTo(r.getFloat32(o,!0),r.getFloat32(o+4,!0)),o+=8;t.stroke(),t.setLineDash([])}else o+=T*8;break}case vt.GRADIENT_RECT:{let T=r.getFloat32(o,!0);o+=4;let P=r.getFloat32(o,!0);o+=4;let H=r.getFloat32(o,!0);o+=4;let x=r.getFloat32(o,!0);o+=4;let B=St(i[o],i[o+1],i[o+2],i[o+3]);o+=4;let Y=St(i[o],i[o+1],i[o+2],i[o+3]);o+=4;let z=Te(T,P,H,x,p),K=t.createLinearGradient(z.x,z.y,z.x,z.y+z.h);K.addColorStop(0,B),K.addColorStop(1,Y),t.fillStyle=K,a="",t.fillRect(z.x,z.y,z.w,z.h);break}case vt.GRADIENT_RECT_H:{let T=r.getFloat32(o,!0);o+=4;let P=r.getFloat32(o,!0);o+=4;let H=r.getFloat32(o,!0);o+=4;let x=r.getFloat32(o,!0);o+=4;let B=St(i[o],i[o+1],i[o+2],i[o+3]);o+=4;let Y=St(i[o],i[o+1],i[o+2],i[o+3]);o+=4;let z=Te(T,P,H,x,p),K=t.createLinearGradient(z.x,z.y,z.x+z.w,z.y);K.addColorStop(0,B),K.addColorStop(1,Y),t.fillStyle=K,a="",t.fillRect(z.x,z.y,z.w,z.h);break}case vt.GRADIENT_RECT_H_MULTI:{let T=r.getFloat32(o,!0);o+=4;let P=r.getFloat32(o,!0);o+=4;let H=r.getFloat32(o,!0);o+=4;let x=r.getFloat32(o,!0);o+=4;let B=i[o];o+=1;let Y=Te(T,P,H,x,p),z=t.createLinearGradient(Y.x,Y.y,Y.x+Y.w,Y.y);for(let K=0;K<B;K++){let at=r.getFloat32(o,!0);o+=4;let j=St(i[o],i[o+1],i[o+2],i[o+3]);o+=4,z.addColorStop(at<0?0:at>1?1:at,j)}t.fillStyle=z,a="",t.fillRect(Y.x,Y.y,Y.w,Y.h);break}case vt.BEGIN_HEATMAP_LAYER:{let T=o-1,P=r.getUint32(o,!0);o+=4;let H=r.getUint32(o,!0);o+=4;let x=r.getUint32(o,!0);if(o+=4,!v||x===0)break;let B=F.canvas.width,Y=F.canvas.height,z=`${P}|${H}|${B}|${Y}|${p}`;if(v.getKey()===z&&v.getCanvas()){let K=B/p,at=Y/p;F.drawImage(v.getCanvas(),0,0,K,at),o=T+x}else{let K=v.ensureSize(B,Y,p);if(!K)break;K.save(),K.setTransform(1,0,0,1,0,0),K.clearRect(0,0,B,Y),K.restore(),t=K,a="",_="",f=-1,E="",u=!0,O=z}break}case vt.END_HEATMAP_LAYER:{if(!u)break;let T=F.canvas.width/p,P=F.canvas.height/p;F.drawImage(v.getCanvas(),0,0,T,P),v.setKey(O),t=F,a="",_="",f=-1,E="",u=!1,O="";break}case vt.HEATMAP_BITMAP:{let T=r.getFloat32(o,!0);o+=4;let P=r.getFloat32(o,!0);o+=4;let H=r.getUint32(o,!0);o+=4;let x=r.getUint32(o,!0);o+=4;let B=H*x*4;if(o+B>i.byteLength){o=i.byteLength;break}let Y=new Uint8ClampedArray(i.buffer,i.byteOffset+o,B);o+=B;let z=new ImageData(Y,H,x),K=Os(H,x);if(!K)break;K.putImageData(z,0,0),t.drawImage(Ee,T,P,H,x);break}case vt.HEATMAP_WORLD:{let T=r.getUint32(o,!0);o+=4;let P=r.getUint32(o,!0);o+=4;let H=r.getUint32(o,!0);o+=4;let x=r.getUint32(o,!0);o+=4;let B=r.getUint32(o,!0);o+=4;let Y=r.getUint32(o,!0);o+=4;let z=r.getFloat32(o,!0);o+=4;let K=r.getFloat32(o,!0);o+=4;let at=r.getFloat32(o,!0);o+=4;let j=r.getFloat32(o,!0);o+=4;let X=r.getFloat32(o,!0);o+=4;let k=r.getFloat32(o,!0);o+=4;let J=r.getFloat32(o,!0);o+=4;let it=r.getFloat32(o,!0);o+=4;let rt=i[o];o+=1;let ut=(rt&1)!==0,nt=B*Y*4;if(o+nt>i.byteLength){o=i.byteLength;break}if(!c||T===0||P===0){o+=nt;break}let ct=c.ensureSize(T,P);if(!ct){o+=nt;break}if(ut&&ct.clearRect(0,0,T,P),nt>0){let ft=new Uint8ClampedArray(i.buffer,i.byteOffset+o,nt),mt=new ImageData(ft,B,Y);ct.putImageData(mt,H,x)}if(o+=nt,at>0&&j>0&&J>0&&it>0){let ft=Te(X,k,J,it,p);if(ft.w>0&&ft.h>0){let mt=t.imageSmoothingEnabled;t.imageSmoothingEnabled=!1,t.drawImage(c.getCanvas(),z,K,at,j,ft.x,ft.y,ft.w,ft.h),t.imageSmoothingEnabled=mt}}break}case vt.LINE_WITH_EXTEND:{let T=r.getFloat32(o,!0);o+=4;let P=r.getFloat32(o,!0);o+=4;let H=r.getFloat32(o,!0);o+=4;let x=r.getFloat32(o,!0);o+=4;let B=St(i[o],i[o+1],i[o+2],i[o+3]);o+=4;let Y=r.getFloat32(o,!0);o+=4;let z=r.getFloat32(o,!0);o+=4;let K=r.getFloat32(o,!0);o+=4;let at=i[o];o+=1,B!==_&&(t.strokeStyle=B,_=B),Y!==f&&(t.lineWidth=Y,f=Y),t.setLineDash(z>0?[z,K]:[]);let j=1e5,X=T,k=P,J=H,it=x,rt=H-T,ut=x-P,nt=Math.hypot(rt,ut);if(nt>0&&at!==0){let ct=rt/nt,ft=ut/nt;at&1&&(X=T-ct*j,k=P-ft*j),at&2&&(J=H+ct*j,it=x+ft*j),at&4&&ft<0&&(X=T-ct*j,k=P-ft*j),at&8&&ft>0&&(J=H+ct*j,it=x+ft*j)}t.beginPath(),t.moveTo(Bt(X,Y,p),Bt(k,Y,p)),t.lineTo(Bt(J,Y,p),Bt(it,Y,p)),t.stroke(),z>0&&t.setLineDash([]);break}case vt.LABEL_CALLOUT:{let T=r.getFloat32(o,!0);o+=4;let P=r.getFloat32(o,!0);o+=4;let H=St(i[o],i[o+1],i[o+2],i[o+3]);o+=4;let x=St(i[o],i[o+1],i[o+2],i[o+3]);o+=4;let B=St(i[o],i[o+1],i[o+2],i[o+3]);o+=4;let Y=r.getFloat32(o,!0);o+=4;let z=r.getFloat32(o,!0);o+=4;let K=i[o];o+=1;let at=i[o];o+=1;let j=r.getUint16(o,!0);o+=2;let X=kr.decode(i.subarray(o,o+j));o+=j;let k=`${Math.round(Y)}px "IBM Plex Mono",monospace`;k!==E&&(t.font=k,E=k);let J=4,it=6,rt=t.measureText(X).width,ut=Math.round(Y)+J*2,nt=Math.ceil(rt)+J*2,ct,ft;switch(at){case 1:ft=P-it-ut,ct=T-nt/2;break;case 2:ft=P+it,ct=T-nt/2;break;case 3:ft=P-ut/2,ct=T+it;break;case 4:ft=P-ut/2,ct=T-it-nt;break;default:ft=P-ut/2,K===1?ct=T-nt/2:K===2?ct=T-nt:ct=T;break}let mt=Te(ct,ft,nt,ut,p);if(H!==a&&(t.fillStyle=H,a=H),t.fillRect(mt.x,mt.y,mt.w,mt.h),z>0){x!==_&&(t.strokeStyle=x,_=x),z!==f&&(t.lineWidth=z,f=z),t.setLineDash([]);let At=Bt(ct,z,p),Ft=Bt(ft,z,p),zt=Math.round(nt*p)/p,xt=Math.round(ut*p)/p;t.strokeRect(At,Ft,zt,xt)}if(at>=1&&at<=4){switch(H!==a&&(t.fillStyle=H,a=H),t.beginPath(),at){case 1:t.moveTo(T-it/2,ft+ut),t.lineTo(T+it/2,ft+ut),t.lineTo(T,P);break;case 2:t.moveTo(T-it/2,ft),t.lineTo(T+it/2,ft),t.lineTo(T,P);break;case 3:t.moveTo(ct,P-it/2),t.lineTo(ct,P+it/2),t.lineTo(T,P);break;case 4:t.moveTo(ct+nt,P-it/2),t.lineTo(ct+nt,P+it/2),t.lineTo(T,P);break}t.closePath(),t.fill()}B!==a&&(t.fillStyle=B,a=B),t.textAlign="left",t.textBaseline="alphabetic";let dt=Zr(t,k);t.fillText(X,pr(ct+J,p),pr(ft+ut/2+dt,p));break}case vt.DRAW_IMAGE:{let T=r.getFloat32(o,!0);o+=4;let P=r.getFloat32(o,!0);o+=4;let H=r.getFloat32(o,!0);o+=4;let x=r.getFloat32(o,!0);o+=4;let B=r.getUint32(o,!0);if(o+=4,!d||B===0||H<=0||x<=0)break;let Y=d.get(B);if(!Y)break;try{t.drawImage(Y,T,P,H,x)}catch(z){d.delete(B),console.warn("[canvasRenderer] drawImage failed for id="+B,z?.message||z)}break}default:return}}if(u&&v){let A=F.canvas.width/p,T=F.canvas.height/p;F.drawImage(v.getCanvas(),0,0,A,T),v.invalidate()}}var jt={trendline:{type:"2point",previewKind:0,addFn:"add_trendline"},arrow:{type:"2point",previewKind:4,addFn:"add_arrow"},arrowmarker:{type:"2point",previewKind:14,addFn:"add_arrow_marker"},measure:{type:"2point",previewKind:2,addFn:"add_price_range"},pricerange:{type:"2point",previewKind:23,addFn:"add_price_range_measure"},dayrange:{type:"2point",previewKind:24,addFn:"add_day_range_measure"},fib:{type:"2point",previewKind:3,addFn:"add_fib_retracement"},long:{type:"2point",previewKind:5,addFn:"add_long_position"},short:{type:"2point",previewKind:5,addFn:"add_short_position"},hline:{type:"1point_xp",previewKind:1,addFn:"add_horizontal_line"},verticalline:{type:"1point_x",previewKind:15,addFn:"add_vertical_line"},vwap:{type:"1point_x",previewKind:6,addFn:"add_anchored_vwap"},pricelabel:{type:"1point_xy",previewKind:7,addFn:"add_price_label"},circle:{type:"2point",previewKind:8,addFn:"add_circle"},arrowup:{type:"1point_xy",previewKind:9,addFn:"add_arrow_marker_up"},arrowdown:{type:"1point_xy",previewKind:10,addFn:"add_arrow_marker_down"},textnote:{type:"1point_xy",previewKind:11,addFn:"add_text_note"},channel:{type:"3point",previewKind:0,addFn:"add_parallel_channel"},fibext:{type:"3point",previewKind:0,addFn:"add_fib_extension",previewFn:"fib_ext"},brush:{type:"freehand"},path:{type:"npoint"},elliott:{type:"elliott_manual"},elliottauto:{type:"1point_xy",previewKind:12,addFn:"add_elliott_impulse",previewFn:"elliott"},elliottautorange:{type:"drag2point",previewKind:2,addFn:"add_elliott_auto_range"},elliottzigzag:{type:"1point_xy",previewKind:13,addFn:"add_elliott_zigzag",previewFn:"zigzag"},elliottzigzagrange:{type:"drag2point",previewKind:2,addFn:"add_elliott_zigzag_range"}};function nr(t){return jt[t]?.type==="2point"}function or(t){return jt[t]?.type==="3point"}function Ze(t){let e=jt[t]?.type;return e==="1point"||e==="1point_x"||e==="1point_xy"||e==="1point_xp"}function br(t){return jt[t]?.type==="freehand"}function de(t){return jt[t]?.type==="npoint"}function he(t){return jt[t]?.type==="elliott_manual"}function sr(t){return jt[t]?.type==="drag2point"}var Qn={r:.04,g:.49,b:1,lineWidth:2,dashed:!1,fontSize:12};function ie(t,e,n,s,v,c){c=c||Qn;let d=jt[e];if(!d)return 0;let h=0;if(d.type==="3point"?h=t[d.addFn](n.x1,n.y1,n.x2,n.y2,s,v,c.r,c.g,c.b,c.lineWidth,c.dashed,n.pane):d.type==="2point"||d.type==="drag2point"?h=t[d.addFn](n.x1,n.y1,s,v,c.r,c.g,c.b,c.lineWidth,c.dashed,n.pane):d.type==="1point_x"?h=t[d.addFn](s,c.r,c.g,c.b,c.lineWidth,c.dashed,n.pane):d.type==="1point_xp"?h=t[d.addFn](s,v,c.r,c.g,c.b,c.lineWidth,c.dashed,n.pane):d.type==="1point_xy"?h=t[d.addFn](s,v,c.r,c.g,c.b,c.fontSize||12,n.pane):h=t[d.addFn](v,c.r,c.g,c.b,c.lineWidth,c.dashed,n.pane),h&&c.fontSize&&typeof t.set_drawing_font_size=="function"&&(d.type==="2point"||d.type==="3point"||d.type==="drag2point"))try{t.set_drawing_font_size(h,c.fontSize)}catch{}if(h&&c.hideLabel===!0&&typeof t.set_drawing_hide_label=="function")try{t.set_drawing_hide_label(h,!0)}catch{}return h||0}function Jt(t,e,n,s,v,c,d){c=c||Qn;let h=jt[e];if(h){if(h.previewFn==="elliott"){t.set_elliott_preview(s,v,c.r,c.g,c.b,c.lineWidth,d);return}if(h.previewFn==="zigzag"){t.set_elliott_zigzag_preview(s,v,c.r,c.g,c.b,c.lineWidth,d);return}h.type==="3point"?n.step===1?t.set_drawing_preview(h.previewKind,n.x1,n.y1,s,v,c.r,c.g,c.b,c.lineWidth,c.dashed,d):n.step===2&&(h.previewFn==="fib_ext"?t.set_fib_ext_preview(n.x1,n.y1,n.x2,n.y2,s,v,c.r,c.g,c.b,c.lineWidth,c.dashed,d):t.set_channel_preview(n.x1,n.y1,n.x2,n.y2,s,v,c.r,c.g,c.b,c.lineWidth,c.dashed,d)):h.type==="2point"||h.type==="drag2point"?t.set_drawing_preview(h.previewKind,n.x1,n.y1,s,v,c.r,c.g,c.b,c.lineWidth,c.dashed,d):h.type==="1point_x"?t.set_drawing_preview(h.previewKind,s,0,0,0,c.r,c.g,c.b,c.lineWidth,c.dashed,d):h.type==="1point_xp"||h.type==="1point_xy"?t.set_drawing_preview(h.previewKind,s,v,0,0,c.r,c.g,c.b,c.lineWidth,c.dashed,d):t.set_drawing_preview(h.previewKind,0,v,0,0,c.r,c.g,c.b,c.lineWidth,c.dashed,d)}}function mr(t,e,n,s,v,c){if(s!=null&&v!=null){let i=e-s,o=n-v,a=Math.sqrt(i*i+o*o);if(a>1.5*1.2){let _=Math.min(128,Math.ceil(a/1.5));for(let f=1;f<_;f++){let E=f/_,p=s+i*E,F=v+o*E,{wx:u,wy:O}=Tt(t,p,F,c);t.add_brush_point(u,O)}}}let{wx:h,wy:r}=Tt(t,e,n,c);t.add_brush_point(h,r)}function Tt(t,e,n,s){let v=t.screen_to_world_x(e),c;switch(s){case 1:c=t.screen_to_rsi_y(n);break;case 2:c=t.screen_to_oi_y(n);break;case 3:c=t.screen_to_fr_y(n);break;case 4:c=t.screen_to_cvd_y(n);break;case 5:c=t.screen_to_vpin_y(n);break;case 6:c=t.screen_to_ob_flow_y(n);break;case 7:c=t.screen_to_agg_liq_y(n);break;case 8:c=t.screen_to_custom_pane_y(n);break;default:c=t.screen_to_world_y(n);break}return{wx:v,wy:c}}function Dt(t){return t===4?1:t===6?2:t===8?3:t===10?4:t===12?5:t===19?6:t===22?7:t===25?8:0}function Ie(t){return t===4||t===6||t===8||t===10||t===12||t===19||t===22||t===25}function Vt(t){return t===14||t===15||t===16||t===17||t===18||t===21||t===24||t===27}function oe(t){return t===4||t===14?1:t===6||t===15?2:t===8||t===16?3:t===10||t===17?4:t===12||t===18?5:t===19||t===21?6:t===22||t===24?7:0}function pe(t,e,n,s){Ie(e)?(t.pan(n,0),Math.abs(s)>.01&&e!==4&&t.pan_indicator_y(oe(e),s)):t.pan(n,s)}function Gt(t){return t===0||t===4||t===6||t===8||t===10||t===12||t===22||t===25}function io(t,e,n,s){t.addEventListener("wheel",a=>{if(s.disposed)return;a.preventDefault(),s.cancelMomentum();let _=a.deltaY>0?1.1:.9,f=e.hit_zone(a.offsetX,a.offsetY);f!==255&&(Vt(f)?f!==14&&e.zoom_indicator_y(oe(f),a.offsetY,_):Ie(f)?f===4?e.zoom_x(a.offsetX,_):a.ctrlKey?e.zoom_indicator_y(oe(f),a.offsetY,_):e.zoom_x(a.offsetX,_):a.ctrlKey?e.zoom_y(a.offsetY,_):a.shiftKey||f===2?e.zoom_x(a.offsetX,_):f===3?e.zoom_y(a.offsetY,_):e.zoom(a.offsetX,a.offsetY,_),n.onDirty())},{passive:!1}),t.addEventListener("mousedown",a=>{if(s.disposed||a.button!==0)return;s.cancelMomentum(),c();let _=performance.now();if(_-s.lastClickTime<300){s.lastClickTime=_;return}if(s.lastClickTime=_,typeof e.is_in_watermark_btn=="function"&&e.is_in_watermark_btn(a.offsetX,a.offsetY)){s.watermarkPending=!0;return}if(s.watermarkPending=!1,typeof e.is_in_quick_trade_btn=="function"&&e.is_in_quick_trade_btn(a.offsetX,a.offsetY)){s.qtbPending=!0;try{s.qtbWorldY=e.crosshair_world_y()}catch{s.qtbWorldY=0}return}let f=s.drawingMode;if(f){let p=e.hit_zone(a.offsetX,a.offsetY);if(!Gt(p))return;let F=Dt(p),{wx:u,wy:O}=Tt(e,a.offsetX,a.offsetY,F),A=f.style,T=f.tool;if(f.undoSnapshotTaken||(n.onDrawingMutationBegin?.(),f.undoSnapshotTaken=!0),he(T)){if(!f.pathStarted)f.pane=F,e.start_elliott_manual(A.r,A.g,A.b,A.lineWidth,F),e.add_elliott_manual_point(u,O),f.pathStarted=!0,f.step=1;else if(e.add_elliott_manual_point(u,O)){s.finishDrawing(),n.onDirty();return}}else if(de(T))f.pathStarted?e.add_path_point(u,O):(f.pane=F,e.start_path(A.r,A.g,A.b,A.lineWidth,A.dashed,F),e.add_path_point(u,O),f.pathStarted=!0,f.step=1);else if(br(T))f.pane=F,e.start_brush(A.r,A.g,A.b,A.lineWidth,F),e.add_brush_point(u,O),s.isBrushing=!0,s.brushLastSx=a.offsetX,s.brushLastSy=a.offsetY;else if(or(T))if(f.step===0)f.x1=u,f.y1=O,f.pane=F,f.step=1;else if(f.step===1)f.x2=u,f.y2=O,f.step=2,e.clear_drawing_preview();else{let P=jt[T];P&&P.previewFn==="fib_ext"?e.clear_fib_ext_preview():e.clear_channel_preview(),ie(e,T,f,u,O,A),s.finishDrawing()}else if(nr(T))f.step===0?(f.x1=u,f.y1=O,f.pane=F,f.step=1):(ie(e,T,f,u,O,A),s.finishDrawing());else if(sr(T))f.x1=u,f.y1=O,f.pane=F,f.step=1,f.dragStartSx=a.offsetX,f.dragStartSy=a.offsetY,s.isDrawingDragRange=!0;else{f.pane=F;let P=ie(e,T,f,u,O,A);s.finishDrawing(),T==="textnote"&&P>0&&(e.select_drawing(P),n.onDrawingSelected?.(P),n.onDrawingDblClick?.(P,a.offsetX,a.offsetY,a.clientX,a.clientY))}n.onDirty();return}let E=e.hit_zone(a.offsetX,a.offsetY);if(E!==255){if(E===5){s.isResizingRsi=!0,s.resizeStartY=a.offsetY,s.resizeStartRatio=e.get_rsi_ratio(),t.style.cursor="ns-resize";return}if(E===7){s.isResizingOi=!0,s.resizeStartY=a.offsetY,s.resizeStartRatio=e.get_oi_ratio(),t.style.cursor="ns-resize";return}if(E===9){s.isResizingFr=!0,s.resizeStartY=a.offsetY,s.resizeStartRatio=e.get_fr_ratio(),t.style.cursor="ns-resize";return}if(E===11){s.isResizingCvd=!0,s.resizeStartY=a.offsetY,s.resizeStartRatio=e.get_cvd_ratio(),t.style.cursor="ns-resize";return}if(E===13){s.isResizingVpin=!0,s.resizeStartY=a.offsetY,s.resizeStartRatio=e.get_vpin_ratio(),t.style.cursor="ns-resize";return}if(E===20){s.isResizingObFlow=!0,s.resizeStartY=a.offsetY,s.resizeStartRatio=e.get_obf_ratio(),t.style.cursor="ns-resize";return}if(E===23){s.isResizingAggLiq=!0,s.resizeStartY=a.offsetY,s.resizeStartRatio=e.get_agg_liq_ratio(),t.style.cursor="ns-resize";return}if(Gt(E)){let p=e.get_selected_drawing();if(p>0){let T=e.hit_test_drawing_anchor(a.offsetX,a.offsetY);if(T>=0){n.onDrawingMutationBegin?.(),s.isDraggingAnchor=!0,s.dragAnchorIdx=T,s.dragAnchorPane=Dt(E),t.style.cursor="grabbing";return}if(e.hit_test_drawing(a.offsetX,a.offsetY)===p){n.onDrawingMutationBegin?.(),s.isDraggingDrawing=!0,s.dragDrawingPane=Dt(E);let{wx:H,wy:x}=Tt(e,a.offsetX,a.offsetY,s.dragDrawingPane);s.dragDrawingLastWx=H,s.dragDrawingLastWy=x,t.style.cursor="move";return}}let F=e.hit_test_drawing(a.offsetX,a.offsetY);if(F>0){e.deselect_marker(),n.onMarkerSelected?.(0),e.select_drawing(F),n.onDrawingSelected?.(F),n.onDirty();return}let u=e.hit_test_marker(a.offsetX,a.offsetY);if(u>0){e.deselect_drawing(),n.onDrawingSelected?.(0),e.select_marker(u),n.onMarkerSelected?.(u),n.onDirty();return}let O=e.get_selected_drawing(),A=e.get_selected_marker();O>0&&(e.deselect_drawing(),n.onDrawingSelected?.(0),n.onDirty()),A>0&&(e.deselect_marker(),n.onMarkerSelected?.(0),n.onDirty())}Gt(E)&&(s.liqPinSx=a.offsetX,s.liqPinSy=a.offsetY,s.liqPinTimer&&clearTimeout(s.liqPinTimer),s.liqPinTimer=setTimeout(()=>{s.liqPinTimer=null,n.onLiqAnnotationPin?.(s.liqPinSx,s.liqPinSy)},700)),s.isDragging=!0,s.dragZone=E,s.lastX=a.offsetX,s.lastY=a.offsetY,E===2?t.style.cursor="ew-resize":E===3||Vt(E)?t.style.cursor="ns-resize":t.style.cursor="grabbing"}});let v=null;function c(){v&&(cancelAnimationFrame(v),v=null)}function d(){if(v=null,s.disposed)return;let a=s._pendingHoverX,_=s._pendingHoverY;if(a==null||_==null)return;let f=e.hit_zone(a,_);f===2||f===3||Vt(f)||f===255?e.hide_crosshair():e.set_crosshair(a,_),n.onDirty(),n.onCrosshairMove?.(a,_,f),n.onVrvpHover?.(a,_),h(a,_)}function h(a,_){if(typeof e.is_in_watermark_btn=="function"&&e.is_in_watermark_btn(a,_)){t.style.cursor="pointer";return}if(typeof e.is_in_quick_trade_btn=="function"&&e.is_in_quick_trade_btn(a,_)){t.style.cursor="pointer";return}let f=e.hover_hit_test(a,_),E=f[0],p=f[1],F=f[2],u=f[3],O=f[4],A=s.drawingMode;if(E===255)t.style.cursor="default";else if(E===2)t.style.cursor="ew-resize";else if(E===3||Vt(E))t.style.cursor="ns-resize";else if(E===5||E===7||E===9||E===11||E===13||E===20||E===23)t.style.cursor="ns-resize";else if(!A&&Gt(E)&&p>0&&F>=0){let T="grab";try{e.get_drawing_kind_id?.(p)===18&&(F===0||F===1?T="nwse-resize":F===2||F===3?T="nesw-resize":F===4||F===6?T="ns-resize":(F===5||F===7)&&(T="ew-resize"))}catch{}t.style.cursor=T}else!A&&Gt(E)&&p>0&&u===p?t.style.cursor="move":!A&&Gt(E)&&(u>0||O>0)||!A&&r(a,_)?t.style.cursor="pointer":t.style.cursor="crosshair"}function r(a,_){if(typeof e.indicator_at_point=="function")try{let f=e.indicator_at_point(a,_)||"";if(f)return f}catch{}if(n&&typeof n.customIndicatorAtPoint=="function")try{return n.customIndicatorAtPoint(a,_)||""}catch{return""}return""}function i(a,_){s._pendingHoverX=a,s._pendingHoverY=_,v||(v=requestAnimationFrame(d))}t.addEventListener("mousemove",a=>{if(s.disposed)return;if(s.liqPinTimer){let f=Math.abs(a.offsetX-s.liqPinSx),E=Math.abs(a.offsetY-s.liqPinSy);(f>6||E>6)&&(clearTimeout(s.liqPinTimer),s.liqPinTimer=null)}if(s.isResizingRsi){let E=t.getBoundingClientRect().height-28,F=(s.resizeStartY-a.offsetY)/E,u=Math.max(.05,Math.min(.5,s.resizeStartRatio+F));e.set_rsi_ratio(u),n.onDirty();return}if(s.isResizingOi){let E=t.getBoundingClientRect().height-28,F=(s.resizeStartY-a.offsetY)/E,u=Math.max(.05,Math.min(.5,s.resizeStartRatio+F));e.set_oi_ratio(u),n.onDirty();return}if(s.isResizingFr){let E=t.getBoundingClientRect().height-28,F=(s.resizeStartY-a.offsetY)/E,u=Math.max(.05,Math.min(.5,s.resizeStartRatio+F));e.set_fr_ratio(u),n.onDirty();return}if(s.isResizingCvd){let E=t.getBoundingClientRect().height-28,F=(s.resizeStartY-a.offsetY)/E,u=Math.max(.05,Math.min(.5,s.resizeStartRatio+F));e.set_cvd_ratio(u),n.onDirty();return}if(s.isResizingVpin){let E=t.getBoundingClientRect().height-28,F=(s.resizeStartY-a.offsetY)/E,u=Math.max(.05,Math.min(.5,s.resizeStartRatio+F));e.set_vpin_ratio(u),n.onDirty();return}if(s.isResizingObFlow){let E=t.getBoundingClientRect().height-28,F=(s.resizeStartY-a.offsetY)/E,u=Math.max(.05,Math.min(.5,s.resizeStartRatio+F));e.set_obf_ratio(u),n.onDirty();return}if(s.isResizingAggLiq){let E=t.getBoundingClientRect().height-28,F=(s.resizeStartY-a.offsetY)/E,u=Math.max(.05,Math.min(.5,s.resizeStartRatio+F));e.set_agg_liq_ratio(u),n.onDirty();return}if(s.isDraggingAnchor){let{wx:f,wy:E}=Tt(e,a.offsetX,a.offsetY,s.dragAnchorPane);e.update_drawing_anchor(s.dragAnchorIdx,f,E),e.set_crosshair(a.offsetX,a.offsetY),n.onDirty(),n.onCrosshairMove?.(a.offsetX,a.offsetY,e.hit_zone(a.offsetX,a.offsetY));return}if(s.isDraggingDrawing){let{wx:f,wy:E}=Tt(e,a.offsetX,a.offsetY,s.dragDrawingPane),p=f-s.dragDrawingLastWx,F=E-s.dragDrawingLastWy;e.move_drawing(p,F),s.dragDrawingLastWx=f,s.dragDrawingLastWy=E,e.set_crosshair(a.offsetX,a.offsetY),n.onDirty(),n.onCrosshairMove?.(a.offsetX,a.offsetY,e.hit_zone(a.offsetX,a.offsetY));return}let _=s.drawingMode;if(s.isBrushing&&_){let f=_.pane||0;mr(e,a.offsetX,a.offsetY,s.brushLastSx,s.brushLastSy,f),s.brushLastSx=a.offsetX,s.brushLastSy=a.offsetY,e.set_crosshair(a.offsetX,a.offsetY),n.onDirty();return}if(_&&he(_.tool)&&_.pathStarted){let f=_.pane||0,{wx:E,wy:p}=Tt(e,a.offsetX,a.offsetY,f);e.set_elliott_manual_cursor(E,p),e.set_crosshair(a.offsetX,a.offsetY);let F=e.hit_zone(a.offsetX,a.offsetY);n.onDirty(),n.onCrosshairMove?.(a.offsetX,a.offsetY,F);return}if(_&&de(_.tool)&&_.pathStarted){let f=_.pane||0,{wx:E,wy:p}=Tt(e,a.offsetX,a.offsetY,f);e.set_path_cursor(E,p),e.set_crosshair(a.offsetX,a.offsetY);let F=e.hit_zone(a.offsetX,a.offsetY);n.onDirty(),n.onCrosshairMove?.(a.offsetX,a.offsetY,F);return}if(_&&_.step>0){let f=_.pane||0,{wx:E,wy:p}=Tt(e,a.offsetX,a.offsetY,f);Jt(e,_.tool,_,E,p,_.style,f),e.set_crosshair(a.offsetX,a.offsetY);let F=e.hit_zone(a.offsetX,a.offsetY);n.onDirty(),n.onCrosshairMove?.(a.offsetX,a.offsetY,F);return}if(_&&Ze(_.tool)){let f=e.hit_zone(a.offsetX,a.offsetY),E=Dt(f),{wx:p,wy:F}=Tt(e,a.offsetX,a.offsetY,E);Jt(e,_.tool,_,p,F,_.style,E),e.set_crosshair(a.offsetX,a.offsetY),n.onDirty(),n.onCrosshairMove?.(a.offsetX,a.offsetY,f);return}if(s.isDragging){let f=a.offsetX-s.lastX,E=a.offsetY-s.lastY;s.lastX=a.offsetX,s.lastY=a.offsetY,(f!==0||E!==0)&&(s.isPanning=!0),s.dragZone===2?e.pan_x(f):s.dragZone===3?e.pan_y(E):s.dragZone===14||(Vt(s.dragZone)?e.pan_indicator_y(oe(s.dragZone),E):pe(e,s.dragZone,f,E)),e.set_crosshair(a.offsetX,a.offsetY),n.onDirty(),n.onCrosshairMove?.(a.offsetX,a.offsetY,s.dragZone),n.onVrvpHover?.(a.offsetX,a.offsetY);return}i(a.offsetX,a.offsetY)}),t.addEventListener("mouseup",a=>{if(!s.disposed){if(s.watermarkPending){if(s.watermarkPending=!1,a&&typeof e.is_in_watermark_btn=="function"&&e.is_in_watermark_btn(a.offsetX,a.offsetY))try{window.open("https://app.mrd-indicators.com/charting-library/pricing","_blank","noopener,noreferrer")}catch{}return}if(s.qtbPending){if(s.qtbPending=!1,a&&typeof e.is_in_quick_trade_btn=="function"&&e.is_in_quick_trade_btn(a.offsetX,a.offsetY)){let f=Number(s.qtbWorldY)||0;f>0&&n.onQuickTradeBtnClick?.(f,a.offsetX,a.offsetY)}s.qtbWorldY=0;return}if(s.liqPinTimer&&(clearTimeout(s.liqPinTimer),s.liqPinTimer=null),s.isBrushing&&(s.isBrushing=!1,s.brushLastSx=null,s.brushLastSy=null,e.finish_brush(),s.finishDrawing(),n.onDirty()),s.isDrawingDragRange){s.isDrawingDragRange=!1;let _=s.drawingMode;if(_&&_.step===1){let f=a.offsetX-(_.dragStartSx||0),E=a.offsetY-(_.dragStartSy||0);if(f*f+E*E>=16){let F=e.hit_zone(a.offsetX,a.offsetY),u=Gt(F)?Dt(F):_.pane||0,{wx:O,wy:A}=Tt(e,a.offsetX,a.offsetY,u);ie(e,_.tool,_,O,A,_.style),s.finishDrawing(),n.onDirty()}else e.clear_drawing_preview(),_.step=0,n.onDirty()}}s.isDragging=!1,s.isPanning=!1,s.isResizingRsi=!1,s.isResizingOi=!1,s.isResizingFr=!1,s.isResizingCvd=!1,s.isResizingVpin=!1,s.isResizingObFlow=!1,s.isResizingAggLiq=!1,s.isDraggingAnchor=!1,s.isDraggingDrawing=!1,s.dragAnchorIdx=-1,t.style.cursor="crosshair"}});function o(){if(!s.disposed&&!s._leaveHandled){if(s._leaveHandled=!0,requestAnimationFrame(()=>{s._leaveHandled=!1}),c(),s.liqPinTimer&&(clearTimeout(s.liqPinTimer),s.liqPinTimer=null),s.isBrushing&&(s.isBrushing=!1,s.brushLastSx=null,s.brushLastSy=null,e.finish_brush(),s.finishDrawing()),s.isDrawingDragRange){s.isDrawingDragRange=!1;let a=s.drawingMode;a&&a.step===1&&(e.clear_drawing_preview(),a.step=0)}s.isDragging=!1,s.isPanning=!1,s.isResizingRsi=!1,s.isResizingOi=!1,s.isResizingFr=!1,s.isResizingCvd=!1,s.isResizingVpin=!1,s.isResizingObFlow=!1,s.isResizingAggLiq=!1,s.isDraggingAnchor=!1,s.isDraggingDrawing=!1,s.dragAnchorIdx=-1,s.qtbPending=!1,s.qtbWorldY=0,c(),s._pendingHoverX=null,s._pendingHoverY=null,e.hide_crosshair(),t.style.cursor="crosshair",n.onDirty(),n.onCrosshairHide?.(),n.onVrvpHover?.(null,null)}}t.addEventListener("pointerleave",o),t.addEventListener("mouseleave",o),t.addEventListener("dblclick",a=>{if(s.disposed)return;a.preventDefault(),a.stopPropagation();let _=s.drawingMode;if(_&&he(_.tool)&&_.pathStarted){e.finish_elliott_manual(),s.finishDrawing(),n.onDirty();return}if(_&&de(_.tool)&&_.pathStarted){e.finish_path(),s.finishDrawing(),n.onDirty();return}if(_)return;let f=e.hit_zone(a.offsetX,a.offsetY),E=e.hit_test_drawing(a.offsetX,a.offsetY);if(E>0){e.select_drawing(E),n.onDirty(),n.onDrawingDblClick?.(E,a.offsetX,a.offsetY,a.clientX,a.clientY);return}if(Vt(f)){e.reset_indicator_y_auto(oe(f)),n.onDirty();return}let p=r(a.offsetX,a.offsetY);if(p){n.onIndicatorDblClick?.(p,a.offsetX,a.offsetY,a.clientX,a.clientY);return}if(Ie(f)){e.reset_indicator_y_auto(oe(f)),n.onDirty();return}(f===0||f===1)&&n.onChartDblClick?.(a.offsetX,a.offsetY,a.clientX,a.clientY)}),t.addEventListener("contextmenu",a=>{if(s.disposed)return;let _=s.drawingMode;if(_&&he(_.tool)&&_.pathStarted){a.preventDefault(),a.stopPropagation(),e.finish_elliott_manual(),s.finishDrawing(),n.onDirty();return}if(_&&de(_.tool)&&_.pathStarted){a.preventDefault(),a.stopPropagation(),e.finish_path(),s.finishDrawing(),n.onDirty();return}})}var gr=25;function ao(t,e,n,s){let v=null,c=()=>v||(v=t.getBoundingClientRect()),d=()=>{v=null};window.addEventListener("resize",d,{passive:!0}),typeof window.visualViewport<"u"&&window.visualViewport&&window.visualViewport.addEventListener("resize",d,{passive:!0}),t.addEventListener("touchstart",h=>{if(!s.disposed){if(h.preventDefault(),s.cancelMomentum(),d(),h.touches.length===2){clearTimeout(s.longPressTimer),s.liqPinTimer&&(clearTimeout(s.liqPinTimer),s.liqPinTimer=null),s.isCrosshairMode=!1,s.pinchActive=!0,s.lastTapTime=0;let r=c(),i=h.touches[1].clientX-h.touches[0].clientX,o=h.touches[1].clientY-h.touches[0].clientY;if(s.lastTouchDist=Math.sqrt(i*i+o*o),s.lastX=(h.touches[0].clientX+h.touches[1].clientX)/2-r.left,s.lastY=(h.touches[0].clientY+h.touches[1].clientY)/2-r.top,s.dragZone=e.hit_zone(s.lastX,s.lastY),s.pinchAnchorY=s.lastY,s.dragZone===255){s.pinchActive=!1,s.lastTouchDist=0;return}}else if(h.touches.length===1){let r=c(),i=h.touches[0].clientX-r.left,o=h.touches[0].clientY-r.top;if(s.touchStartX=i,s.touchStartY=o,s.touchMoved=!1,typeof e.is_in_watermark_btn=="function"&&e.is_in_watermark_btn(i,o)){s.watermarkTapPending=!0,s.watermarkTapX=i,s.watermarkTapY=o;return}s.watermarkTapPending=!1;let a=s.drawingMode;if(a){let F=e.hit_zone(i,o);if(Gt(F)){let u=Dt(F),{wx:O,wy:A}=Tt(e,i,o,u),T=a.tool;if(he(T)){if(!a.pathStarted)a.pane=u,e.start_elliott_manual(a.style.r,a.style.g,a.style.b,a.style.lineWidth,u),e.add_elliott_manual_point(O,A),a.pathStarted=!0,a.step=1;else if(e.add_elliott_manual_point(O,A)){s.finishDrawing(),n.onDirty();return}}else de(T)?a.pathStarted?e.add_path_point(O,A):(a.pane=u,e.start_path(a.style.r,a.style.g,a.style.b,a.style.lineWidth,a.style.dashed,u),e.add_path_point(O,A),a.pathStarted=!0,a.step=1):br(T)?(a.pane=u,e.start_brush(a.style.r,a.style.g,a.style.b,a.style.lineWidth,u),e.add_brush_point(O,A),s.isBrushing=!0,s.brushLastSx=i,s.brushLastSy=o):or(T)?a.step===0?(a.x1=O,a.y1=A,a.pane=u,a.step=1,a._stepAtTouchStart=0,Jt(e,T,a,O,A,a.style,u)):a.step===1?(a._stepAtTouchStart=1,Jt(e,T,a,O,A,a.style,a.pane)):(a._stepAtTouchStart=2,Jt(e,T,a,O,A,a.style,a.pane)):nr(T)||sr(T)?a.step===0?(a.x1=O,a.y1=A,a.pane=u,a.step=1,a._stepAtTouchStart=0,Jt(e,T,a,O,A,a.style,u)):(a._stepAtTouchStart=1,Jt(e,T,a,O,A,a.style,a.pane)):Ze(T)?(a.pane=u,Jt(e,T,a,O,A,a.style,u)):(a.pane=u,ie(e,T,a,O,A,a.style),s.finishDrawing());e.set_crosshair(i,o),n.onDirty(),n.onCrosshairMove?.(i,o,F)}return}let _=e.hover_hit_test(i,o),f=_[0],E=_[1],p=_[2];if(f===255)return;if(Gt(f)&&!s.drawingMode&&E>0){if(p>=0){s.isDraggingAnchor=!0,s.dragAnchorIdx=p,s.dragAnchorPane=Dt(f);return}if(_[3]===E){s.isDraggingDrawing=!0,s.dragDrawingPane=Dt(f);let{wx:u,wy:O}=Tt(e,i,o,s.dragDrawingPane);s.dragDrawingLastWx=u,s.dragDrawingLastWy=O;return}}s.isDragging=!0,s.isCrosshairMode=!1,s.lastX=i,s.lastY=o,s.dragZone=f,clearTimeout(s.longPressTimer),s.longPressTimer=setTimeout(()=>{s.isDragging&&!s.touchMoved&&(s.isCrosshairMode=!0,e.set_crosshair(i,o),n.onDirty(),n.onCrosshairMove?.(i,o,s.dragZone),n.onVrvpHover?.(i,o))},300),Gt(s.dragZone)&&(s.liqPinSx=i,s.liqPinSy=o,s.liqPinTimer&&clearTimeout(s.liqPinTimer),s.liqPinTimer=setTimeout(()=>{s.liqPinTimer=null,s.touchMoved||n.onLiqAnnotationPin?.(s.liqPinSx,s.liqPinSy)},700))}}},{passive:!1}),t.addEventListener("touchmove",h=>{if(s.disposed)return;h.preventDefault();let r=c();if(s.isDraggingAnchor&&h.touches.length===1){let o=h.touches[0].clientX-r.left,a=h.touches[0].clientY-r.top,{wx:_,wy:f}=Tt(e,o,a,s.dragAnchorPane);e.update_drawing_anchor(s.dragAnchorIdx,_,f),e.set_crosshair(o,a),n.onDirty();return}if(s.isDraggingDrawing&&h.touches.length===1){let o=h.touches[0].clientX-r.left,a=h.touches[0].clientY-r.top;s.touchMoved=!0;let{wx:_,wy:f}=Tt(e,o,a,s.dragDrawingPane),E=_-s.dragDrawingLastWx,p=f-s.dragDrawingLastWy;e.move_drawing(E,p),s.dragDrawingLastWx=_,s.dragDrawingLastWy=f,e.set_crosshair(o,a),n.onDirty();return}let i=s.drawingMode;if(s.isBrushing&&i&&h.touches.length===1){let o=h.touches[0].clientX-r.left,a=h.touches[0].clientY-r.top,_=i.pane||0;mr(e,o,a,s.brushLastSx,s.brushLastSy,_),s.brushLastSx=o,s.brushLastSy=a,e.set_crosshair(o,a),n.onDirty(),s.touchMoved=!0;return}if(i&&he(i.tool)&&i.pathStarted&&h.touches.length===1){let o=h.touches[0].clientX-r.left,a=h.touches[0].clientY-r.top,_=i.pane||0,{wx:f,wy:E}=Tt(e,o,a,_);e.set_elliott_manual_cursor(f,E),e.set_crosshair(o,a),n.onDirty(),s.touchMoved=!0;return}if(i&&de(i.tool)&&i.pathStarted&&h.touches.length===1){let o=h.touches[0].clientX-r.left,a=h.touches[0].clientY-r.top,_=i.pane||0,{wx:f,wy:E}=Tt(e,o,a,_);e.set_path_cursor(f,E),e.set_crosshair(o,a),n.onDirty(),s.touchMoved=!0;return}if(i&&i.step>0&&h.touches.length===1){let o=h.touches[0].clientX-r.left,a=h.touches[0].clientY-r.top;!s.touchMoved&&(Math.abs(o-s.touchStartX)>gr||Math.abs(a-s.touchStartY)>gr)&&(s.touchMoved=!0);let _=i.pane||0,{wx:f,wy:E}=Tt(e,o,a,_);Jt(e,i.tool,i,f,E,i.style,_),e.set_crosshair(o,a);let p=e.hit_zone(o,a);n.onDirty(),n.onCrosshairMove?.(o,a,p);return}if(i&&Ze(i.tool)&&h.touches.length===1){let o=h.touches[0].clientX-r.left,a=h.touches[0].clientY-r.top,_=e.hit_zone(o,a),f=Dt(_),{wx:E,wy:p}=Tt(e,o,a,f);Jt(e,i.tool,i,E,p,i.style,f),e.set_crosshair(o,a),n.onDirty(),n.onCrosshairMove?.(o,a,_);return}if(h.touches.length===2){if(s.dragZone===255)return;s.velSamples=[],s.pinchActive=!0;let o=h.touches[1].clientX-h.touches[0].clientX,a=h.touches[1].clientY-h.touches[0].clientY,_=Math.sqrt(o*o+a*a),f=s.lastTouchDist/_,E=(h.touches[0].clientX+h.touches[1].clientX)/2-r.left,p=(h.touches[0].clientY+h.touches[1].clientY)/2-r.top,F=s.pinchAnchorY??p;s.dragZone===3?e.zoom_y(F,f):Vt(s.dragZone)&&s.dragZone!==14?e.zoom_indicator_y(oe(s.dragZone),F,f):s.dragZone===14?(e.zoom_x(E,f),pe(e,4,E-s.lastX,p-s.lastY)):s.dragZone===2?e.zoom_x(E,f):Ie(s.dragZone)?(e.zoom_x(E,f),pe(e,s.dragZone,E-s.lastX,p-s.lastY)):(e.zoom_x(E,f),pe(e,s.dragZone,E-s.lastX,p-s.lastY)),s.lastTouchDist=_,s.lastX=E,s.lastY=p,n.onDirty()}else if(h.touches.length===1&&s.isDragging){let o=h.touches[0].clientX-r.left,a=h.touches[0].clientY-r.top,_=o-s.lastX,f=a-s.lastY;if(!s.touchMoved&&(Math.abs(o-s.touchStartX)>gr||Math.abs(a-s.touchStartY)>gr)&&(s.touchMoved=!0,s.isCrosshairMode||clearTimeout(s.longPressTimer),s.liqPinTimer&&(clearTimeout(s.liqPinTimer),s.liqPinTimer=null)),s.isCrosshairMode)e.set_crosshair(o,a),n.onDirty(),n.onCrosshairMove?.(o,a,s.dragZone),n.onVrvpHover?.(o,a);else if(s.touchMoved){if(s.isPanning=!0,s.lastX=o,s.lastY=a,s.dragZone===3||Vt(s.dragZone)||s.recordVelocity(_,f),s.dragZone===2)e.pan_x(_);else if(s.dragZone===3){let p=Math.pow(1.005,f);e.zoom_y(s.touchStartY,p)}else if(s.dragZone!==14)if(Vt(s.dragZone)){let p=Math.pow(1.005,f);e.zoom_indicator_y(oe(s.dragZone),s.touchStartY,p)}else pe(e,s.dragZone,_,f);n.onDirty()}else s.lastX=o,s.lastY=a}},{passive:!1}),t.addEventListener("touchend",h=>{if(s.disposed)return;if(clearTimeout(s.longPressTimer),s.liqPinTimer&&(clearTimeout(s.liqPinTimer),s.liqPinTimer=null),s.watermarkTapPending&&h.touches.length===0){if(s.watermarkTapPending=!1,!s.touchMoved&&!s.pinchActive&&typeof e.is_in_watermark_btn=="function"&&e.is_in_watermark_btn(s.watermarkTapX,s.watermarkTapY))try{window.open("https://app.mrd-indicators.com/charting-library/pricing","_blank","noopener,noreferrer")}catch{}return}if(s.isDraggingAnchor){s.isDraggingAnchor=!1,s.dragAnchorIdx=-1,e.hide_crosshair(),n.onDirty(),n.onCrosshairHide?.();return}if(s.isDraggingDrawing){if(s.isDraggingDrawing=!1,e.hide_crosshair(),n.onDirty(),n.onCrosshairHide?.(),!s.touchMoved){let a=e.get_selected_drawing();if(a>0){let _=t.getBoundingClientRect();n.onDrawingDblClick?.(a,s.touchStartX,s.touchStartY,s.touchStartX+_.left,s.touchStartY+_.top)}}return}if(s.isBrushing){s.isBrushing=!1,s.brushLastSx=null,s.brushLastSy=null,e.finish_brush(),s.finishDrawing(),n.onDirty(),n.onCrosshairHide?.();return}let r=s.drawingMode;if(r&&he(r.tool)&&r.pathStarted){let a=Date.now(),_=s.touchStartX-(s._pathLastTapX||0),f=s.touchStartY-(s._pathLastTapY||0),E=Math.sqrt(_*_+f*f);a-(s._pathLastTapTime||0)<350&&E<30?(e.finish_elliott_manual(),s.finishDrawing(),s._pathLastTapTime=0):(s._pathLastTapTime=a,s._pathLastTapX=s.touchStartX,s._pathLastTapY=s.touchStartY),s.isDragging=!1,s.lastTouchDist=0,n.onDirty();return}if(r&&de(r.tool)&&r.pathStarted){let a=Date.now(),_=s.touchStartX-(s._pathLastTapX||0),f=s.touchStartY-(s._pathLastTapY||0),E=Math.sqrt(_*_+f*f);a-(s._pathLastTapTime||0)<350&&E<30?(e.finish_path(),s.finishDrawing(),s._pathLastTapTime=0):(s._pathLastTapTime=a,s._pathLastTapX=s.touchStartX,s._pathLastTapY=s.touchStartY),s.isDragging=!1,s.lastTouchDist=0,n.onDirty();return}if(r&&or(r.tool)){let a=r._stepAtTouchStart;if(r.step===1&&(a===1||s.touchMoved)){let _=t.getBoundingClientRect(),f=h.changedTouches?.[0];if(f){let E=f.clientX-_.left,p=f.clientY-_.top,F=r.pane||0,{wx:u,wy:O}=Tt(e,E,p,F);r.x2=u,r.y2=O,r.step=2,e.clear_drawing_preview()}}else if(r.step===2&&(a===2||s.touchMoved)){let _=t.getBoundingClientRect(),f=h.changedTouches?.[0];if(f){let E=f.clientX-_.left,p=f.clientY-_.top,F=r.pane||0,{wx:u,wy:O}=Tt(e,E,p,F),A=jt[r.tool];A&&A.previewFn==="fib_ext"?e.clear_fib_ext_preview():e.clear_channel_preview(),ie(e,r.tool,r,u,O,r.style),s.finishDrawing()}}s.isDragging=!1,s.lastTouchDist=0,s.drawingMode||(e.hide_crosshair(),n.onCrosshairHide?.()),n.onDirty();return}if(r&&r.step===1&&(nr(r.tool)||sr(r.tool))){if(r._stepAtTouchStart===1||s.touchMoved){let _=t.getBoundingClientRect(),f=h.changedTouches?.[0];if(f){let E=f.clientX-_.left,p=f.clientY-_.top,F=r.pane||0,{wx:u,wy:O}=Tt(e,E,p,F);ie(e,r.tool,r,u,O,r.style),s.finishDrawing()}}s.isDragging=!1,s.lastTouchDist=0,s.drawingMode||(e.hide_crosshair(),n.onCrosshairHide?.()),n.onDirty();return}if(r&&Ze(r.tool)){let a=t.getBoundingClientRect(),_=h.changedTouches?.[0];if(_){let f=_.clientX-a.left,E=_.clientY-a.top,p=e.hit_zone(f,E),F=Gt(p)?Dt(p):r.pane||0,{wx:u,wy:O}=Tt(e,f,E,F),A=r.tool;e.clear_drawing_preview();let T=ie(e,A,r,u,O,r.style);s.finishDrawing(),A==="textnote"&&T>0&&(e.select_drawing(T),n.onDrawingSelected?.(T),n.onDrawingDblClick?.(T,f,E,f+a.left,E+a.top))}s.isDragging=!1,s.lastTouchDist=0,e.hide_crosshair(),n.onCrosshairHide?.(),n.onDirty();return}let i=h.touches.length===0;if(i&&!s.pinchActive&&!s.touchMoved&&!s.drawingMode){let a=Date.now(),_=s.touchStartX,f=s.touchStartY,E=_-s.lastTapX,p=f-s.lastTapY,F=Math.sqrt(E*E+p*p),u=a-s.lastTapTime<350&&F<30,O=e.hit_zone(_,f),A=u?e.hit_test_drawing(_,f):0;if(u&&(Ie(O)||Vt(O))&&A<=0)e.reset_indicator_y_auto(oe(O)),n.onDirty();else if(Gt(O)){let T=e.get_selected_drawing(),P=A>0?A:e.hit_test_drawing(_,f),H=0;if(P<=0&&(H=e.hit_test_marker(_,f)),P>0){e.deselect_marker(),n.onMarkerSelected?.(0),e.select_drawing(P);let x=t.getBoundingClientRect(),B=_+x.left,Y=f+x.top;n.onDrawingSelected?.(P,B,Y),(T<=0||T===P)&&n.onDrawingDblClick?.(P,_,f,B,Y),n.onDirty()}else if(H>0)e.deselect_drawing(),n.onDrawingSelected?.(0),e.select_marker(H),n.onMarkerSelected?.(H),n.onDirty();else if(T>0&&(e.deselect_drawing(),n.onDrawingSelected?.(0),n.onDirty()),e.get_selected_marker()>0&&(e.deselect_marker(),n.onMarkerSelected?.(0),n.onDirty()),u&&O===0){let B=t.getBoundingClientRect();n.onChartDblClick?.(_,f,_+B.left,f+B.top)}}s.lastTapTime=a,s.lastTapX=_,s.lastTapY=f}i&&!s.pinchActive&&s.touchMoved&&!s.isCrosshairMode&&!s.drawingMode&&s.dragZone!==3&&!Vt(s.dragZone)&&s.startMomentum(s.dragZone),s.isDragging=!1,s.isPanning=!1,s.isCrosshairMode=!1,s.lastTouchDist=0,i&&(s.pinchActive=!1),(!s.drawingMode||s.drawingMode.step===0)&&(e.hide_crosshair(),n.onCrosshairHide?.()),n.onDirty(),n.onVrvpHover?.(null,null)}),t.addEventListener("touchcancel",()=>{clearTimeout(s.longPressTimer),s.liqPinTimer&&(clearTimeout(s.liqPinTimer),s.liqPinTimer=null),s.isDragging=!1,s.isPanning=!1,s.isDraggingAnchor=!1,s.isDraggingDrawing=!1,s.isBrushing=!1,s.brushLastSx=null,s.brushLastSy=null,s.isCrosshairMode=!1,s.lastTouchDist=0,s.pinchActive=!1,s.cancelMomentum(),e.hide_crosshair(),n.onCrosshairHide?.(),n.onDirty()})}function jr(t,e,n){let s={disposed:!1,isDragging:!1,dragZone:0,lastX:0,lastY:0,lastTouchDist:0,isResizingRsi:!1,isResizingOi:!1,isResizingFr:!1,isResizingCvd:!1,resizeStartY:0,resizeStartRatio:0,lastClickTime:0,isDraggingAnchor:!1,dragAnchorIdx:-1,dragAnchorPane:0,isBrushing:!1,isDraggingDrawing:!1,dragDrawingPane:0,dragDrawingLastWx:0,dragDrawingLastWy:0,touchStartX:0,touchStartY:0,touchMoved:!1,pinchActive:!1,longPressTimer:null,isCrosshairMode:!1,liqPinTimer:null,liqPinSx:0,liqPinSy:0,velSamples:[],momentumRaf:null,momentumVx:0,momentumVy:0,momentumZone:0,lastTapTime:0,lastTapX:0,lastTapY:0,drawingMode:null,watermarkPending:!1,watermarkTapPending:!1,watermarkTapX:0,watermarkTapY:0,qtbPending:!1,qtbWorldY:0},v=!1;Object.defineProperty(s,"isPanning",{get(){return v},set(f){let E=!!f;E!==v&&(v=E,E?n.onPanStart?.():n.onPanEnd?.())}});let c=.86,d=.5,h=80;s.recordVelocity=function(f,E){let p=performance.now();for(s.velSamples.push({dx:f,dy:E,t:p});s.velSamples.length>0&&p-s.velSamples[0].t>h;)s.velSamples.shift()};function r(){if(s.velSamples.length<2)return{vx:0,vy:0};let f=s.velSamples[0],p=s.velSamples[s.velSamples.length-1].t-f.t;if(p<5)return{vx:0,vy:0};let F=0,u=0;for(let A of s.velSamples)F+=A.dx,u+=A.dy;let O=16.67;return{vx:F/p*O,vy:u/p*O}}s.cancelMomentum=function(){s.momentumRaf&&(cancelAnimationFrame(s.momentumRaf),s.momentumRaf=null),s.velSamples=[]},s.startMomentum=function(f){let{vx:E}=r();if(s.velSamples=[],Math.abs(E)<d)return;s.momentumVx=E,s.momentumVy=0,s.momentumZone=f;function p(){if(s.momentumVx*=c,Math.abs(s.momentumVx)<d){s.momentumRaf=null;return}if(s.momentumZone===2)e.pan_x(s.momentumVx);else if(s.momentumZone===3){s.momentumRaf=null;return}else if(s.momentumZone===14){s.momentumRaf=null;return}else if(Vt(s.momentumZone)){s.momentumRaf=null;return}else pe(e,s.momentumZone,s.momentumVx,0);n.onDirty(),s.momentumRaf=requestAnimationFrame(p)}s.momentumRaf=requestAnimationFrame(p)};let i={setMode(f,E){f?(s.drawingMode={tool:f,style:E,step:0,x1:0,y1:0},t.style.cursor="crosshair"):(s.drawingMode?.pathStarted&&e.finish_path(),s.drawingMode=null,e.clear_drawing_preview(),t.style.cursor="crosshair"),n.onDirty()},getMode(){return s.drawingMode}};n.drawingApi?.(i),s.finishDrawing=function(){e.clear_drawing_preview(),n.onDrawingComplete?.(),s.drawingMode=null,t.style.cursor="crosshair"},io(t,e,n,s),ao(t,e,n,s);let o=null,a=f=>{let E=document.activeElement?.tagName,p=E==="INPUT"||E==="TEXTAREA"||document.activeElement?.isContentEditable;if((f.key==="Delete"||f.key==="Backspace")&&!s.drawingMode&&!p){let u=e.get_selected_drawing();if(u>0){n.onDrawingMutationBegin?.(),e.remove_drawing(u),n.onDrawingSelected?.(0),n.onDirty();return}let O=e.get_selected_marker();if(O>0){n.onDrawingMutationBegin?.(),e.remove_marker(O),n.onMarkerSelected?.(0),n.onDirty();return}}if(f.key==="z"&&(f.ctrlKey||f.metaKey)&&!f.shiftKey&&!f.altKey&&!p&&!s.drawingMode&&(window.getSelection?.()?.toString()||"").length===0&&n.onUndoRequest?.()){n.onDrawingSelected?.(0),n.onMarkerSelected?.(0),n.onDirty(),f.preventDefault();return}if((f.key==="z"&&(f.ctrlKey||f.metaKey)&&f.shiftKey&&!f.altKey&&!p&&!s.drawingMode||f.key==="y"&&(f.ctrlKey||f.metaKey)&&!f.shiftKey&&!f.altKey&&!p&&!s.drawingMode)&&(window.getSelection?.()?.toString()||"").length===0&&n.onRedoRequest?.()){n.onDrawingSelected?.(0),n.onMarkerSelected?.(0),n.onDirty(),f.preventDefault();return}if(f.key==="c"&&(f.ctrlKey||f.metaKey)&&!f.shiftKey&&!f.altKey&&!p&&!s.drawingMode){let u=e.get_selected_drawing();if(u>0&&(window.getSelection?.()?.toString()||"").length===0){let A=e.export_drawing_by_id(u);if(A&&A.length>0){o=A,f.preventDefault();return}}}if(f.key==="v"&&(f.ctrlKey||f.metaKey)&&!f.shiftKey&&!f.altKey&&!p&&!s.drawingMode&&o){n.onDrawingMutationBegin?.();let u=e.paste_drawing_json(o,30,30);if(u>0){n.onDrawingSelected?.(u),n.onDirty(),f.preventDefault();return}}if(f.key==="Escape"&&!s.drawingMode){if(e.get_selected_drawing()>0){e.deselect_drawing(),n.onDrawingSelected?.(0),n.onDirty();return}if(e.get_selected_marker()>0){e.deselect_marker(),n.onMarkerSelected?.(0),n.onDirty();return}}if(f.key==="Escape"&&s.drawingMode){if(s.drawingMode.pathStarted){s.drawingMode.tool==="elliott"?e.finish_elliott_manual():e.finish_path(),s.finishDrawing(),n.onDirty();return}e.clear_drawing_preview(),s.drawingMode=null,t.style.cursor="crosshair",n.onDrawingCancel?.(),n.onDirty();return}if(p)return;let F=20;switch(f.key){case"+":case"=":e.zoom(t.width/2,t.height/2,.9);break;case"-":e.zoom(t.width/2,t.height/2,1.1);break;case"ArrowLeft":e.pan_x(F);break;case"ArrowRight":e.pan_x(-F);break;case"ArrowUp":e.pan_y(-F);break;case"ArrowDown":e.pan_y(F);break;case"r":case"R":e.set_y_auto_scale(!0);for(let u=1;u<=5;u++)e.reset_indicator_y_auto(u);break;default:return}n.onDirty()};window.addEventListener("keydown",a);let _=f=>{if(s.disposed||s.drawingMode)return;let E=typeof n.onImagePasted=="function",p=typeof n.onTextPasted=="function";if(!E&&!p)return;let F=document.activeElement?.tagName;if(F==="INPUT"||F==="TEXTAREA"||document.activeElement?.isContentEditable)return;let O=f.clipboardData?.items;if(O){if(E)for(let A=0;A<O.length;A++){let T=O[A];if(!T.type||!T.type.startsWith("image/")||T.type==="image/svg+xml")continue;let P=T.getAsFile();if(P){try{f.preventDefault()}catch{}try{n.onImagePasted(P)}catch(H){console.warn("[eventHandler] onImagePasted callback threw",H?.message||H)}return}}if(p){let A="";try{A=f.clipboardData?.getData?.("text/plain")||""}catch{}if(A&&A.trim().length>0){try{f.preventDefault()}catch{}try{n.onTextPasted(A)}catch(T){console.warn("[eventHandler] onTextPasted callback threw",T?.message||T)}}}}};return window.addEventListener("paste",_),()=>{s.disposed=!0,s.cancelMomentum(),window.removeEventListener("keydown",a),window.removeEventListener("paste",_)}}var be=t=>t instanceof Float64Array?t:new Float64Array(t),lo=(t,e=0)=>{if(t==null||t==="")return e;if(typeof t=="number")return(t|0)&255;switch(String(t).toLowerCase()){case"bull":return 0;case"bear":return 1;case"neutral":return 2;case"all":return 255;default:return e}},Us=(t,e=255)=>{if(t==null||t==="")return e;if(typeof t=="number")return(t|0)&255;switch(String(t).toLowerCase()){case"offside_buy":return 0;case"offside_sell":return 1;case"distribution":return 2;case"accumulation":return 3;case"absorption":return 4;default:return e}},Gs=(t,e=0)=>{if(t==null||t==="")return e;if(typeof t=="number")return(t|0)&255;switch(String(t).toLowerCase()){case"wick":return 0;case"close":return 1;case"all":return 255;default:return e}};function uo(t,e,n,s){let v=r=>s()(r),c=null,d=null,h=null;return{enableRsi(){t.enable_rsi(),e()},disableRsi(){t.disable_rsi(),e()},setRsiPeriod(r){t.set_rsi_period(r),e()},isRsiEnabled(){return t.is_rsi_enabled()},setRsiShowEma(r){t.set_rsi_show_ema(r),e()},setRsiShowWma(r){t.set_rsi_show_wma(r),e()},setRsiShowSignals(r){t.set_rsi_show_signals(r),e()},setRsiShowDivergence(r){t.set_rsi_show_divergence(r),e()},setRsiShowTraps(r){t.set_rsi_show_traps(r),e()},setRsiShowLevels(r){t.set_rsi_show_levels(r),e()},setRsiShowOnChart(r){t.set_rsi_show_on_chart(r),e()},setRsiSmoothing(r){t.set_rsi_smoothing(r),e()},setRsiRatio(r){t.set_rsi_ratio(r),e()},getRsiRatio(){return t.get_rsi_ratio()},rsiSignalHitTest(r,i){if(n())return"";try{return t.rsi_signal_hit_test(r,i)}catch{return""}},setRsiTooltip(r){if(n())return!1;if(r===h)return!0;try{let i=t.set_rsi_tooltip(r);return h=r,e(),!!i}catch{return!1}},clearRsiTooltip(){if(!n()&&h!==null)try{t.clear_rsi_tooltip(),h=null,e()}catch{}},setLiqProfileTooltip(r){if(n())return!1;if(r===c)return!0;try{let i=t.set_liq_profile_tooltip(r);return c=r,e(),!!i}catch{return!1}},clearLiqProfileTooltip(){if(!n()&&c!==null)try{t.clear_liq_profile_tooltip(),c=null,e()}catch{}},setLiqZoneTooltip(r){if(n())return!1;if(r===d)return!0;try{let i=t.set_liq_zone_tooltip(r);return d=r,e(),!!i}catch{return!1}},clearLiqZoneTooltip(){if(!n()&&d!==null)try{t.clear_liq_zone_tooltip(),d=null,e()}catch{}},enableForexSignals(){v("forexSignals")&&(t.enable_forex_signals(),e())},disableForexSignals(){t.disable_forex_signals(),e()},isForexSignalsEnabled(){return t.is_forex_signals_enabled()},setForexSignalsSetup(r){t.set_forex_signals_setup(r),e()},setForexSignalsMode(r){t.set_forex_signals_mode(r),e()},setForexSignalsShowStats(r){t.set_forex_signals_show_stats(r),e()},getForexSignalsCount(){return t.get_forex_signals_count()},enableOi(){n()||v("oi")&&(t.enable_oi(),e())},disableOi(){n()||(t.disable_oi(),e())},isOiEnabled(){if(n())return!1;try{return t.is_oi_enabled()}catch{return!1}},setOiData(r){n()||(t.set_oi_data(r),e())},setOiDataTs(r,i){n()||(t.set_oi_data_ts(r,i),e())},setOiShowOnChart(r){n()||(t.set_oi_show_on_chart(r),e())},setOiShowSpike(r){n()||(t.set_oi_show_spike(r),e())},setOiSpikeTextSize(r){if(n())return;let i=Number(r);Number.isFinite(i)&&(t.set_oi_spike_text_size(i),e())},setOiDisplayMode(r){n()||(t.set_oi_display_mode(r),e())},setOiRatio(r){n()||(t.set_oi_ratio(r),e())},getOiRatio(){if(n())return .2;try{return t.get_oi_ratio()}catch{return .2}},enableFundingRate(){n()||v("fundingRate")&&(t.enable_funding_rate(),e())},disableFundingRate(){n()||(t.disable_funding_rate(),e())},isFundingRateEnabled(){if(n())return!1;try{return t.is_funding_rate_enabled()}catch{return!1}},setFrBinanceData(r,i){n()||(t.set_fr_binance_data(r,i),e())},setFrAggData(r,i){n()||(t.set_fr_agg_data(r,i),e())},setFrShowAgg(r){n()||(t.set_fr_show_agg(r),e())},setFrShowSma(r){n()||(t.set_fr_show_sma(r),e())},setFrDisplayStyle(r){if(n())return;let i=Number(r),o=Number.isFinite(i)?Math.max(0,Math.min(3,Math.trunc(i))):0;t.set_fr_display_style(o),e()},getFrDisplayStyle(){if(n())return 0;try{return t.get_fr_display_style()}catch{return 0}},clearFrData(){n()||(t.clear_fr_data(),e())},enableCvd(){n()||v("cvd")&&(t.enable_cvd(),e())},disableCvd(){n()||(t.disable_cvd(),e())},isCvdEnabled(){if(n())return!1;try{return t.is_cvd_enabled()}catch{return!1}},setCvdData(r,i){n()||(t.set_cvd_data(r,i),e())},setCvdSpotData(r,i){n()||(t.set_cvd_spot_data(r,i),e())},setCvdSource(r){n()||(t.set_cvd_source(r),e())},getCvdSource(){if(n())return 0;try{return t.get_cvd_source()}catch{return 0}},setCvdMode(r){n()||(t.set_cvd_mode(r),e())},getCvdMode(){if(n())return 0;try{return t.get_cvd_mode()}catch{return 0}},setCvdShowDelta(r){n()||(t.set_cvd_show_delta(r),e())},getCvdShowDelta(){if(n())return!0;try{return t.get_cvd_show_delta()}catch{return!0}},setCvdShowSignals(r){n()||(t.set_cvd_show_signals(r),e())},getCvdShowSignals(){if(n())return!0;try{return t.get_cvd_show_signals()}catch{return!0}},setCvdShowDivergence(r){n()||(t.set_cvd_show_divergence(r),e())},getCvdShowDivergence(){if(n())return!1;try{return t.get_cvd_show_divergence()}catch{return!1}},enableLargeTrades(){n()||v("largeTrades")&&(t.enable_large_trades(),e())},disableLargeTrades(){n()||(t.disable_large_trades(),e())},isLargeTradesEnabled(){if(n())return!1;try{return t.is_large_trades_enabled()}catch{return!1}},setLargeTradesData(r){n()||(t.set_large_trades_data(r),e())},pushLargeTrade(r,i,o,a){n()||(t.push_large_trade(r,i,o,a),e())},clearLargeTrades(){n()||(t.clear_large_trades(),e())},setLtVolumeFilter(r,i){n()||(t.set_lt_volume_filter(r,i),e())},setLtBubbleScale(r){n()||(t.set_lt_bubble_scale(r),e())},setLtBubbleStyle(r){if(n())return;let o=Number(r)===1?1:0;t.set_lt_bubble_style(o),e()},getLtDataMinVol(){return n()?0:t.get_lt_data_min_vol()},getLtDataMaxVol(){return n()?0:t.get_lt_data_max_vol()},ltHitTest(r,i){if(n())return"";try{return t.lt_hit_test(r,i)}catch{return""}},enableVrvp(){n()||v("vrvp")&&(t.enable_vrvp(),e())},disableVrvp(){n()||(t.disable_vrvp(),e())},isVrvpEnabled(){if(n())return!1;try{return t.is_vrvp_enabled()}catch{return!1}},setVrvpPocLine(r){n()||(t.set_vrvp_poc_line(r),e())},setVrvpData(r,i){n()||(t.set_vrvp_data(r,i),e())},vrvpHitTest(r,i){if(n())return"";try{return t.vrvp_hit_test(r,i)}catch{return""}},setVrvpSignalsEnabled(r){n()||(t.set_vrvp_signals_enabled(!!r),e())},isVrvpSignalsEnabled(){if(n())return!1;try{return t.is_vrvp_signals_enabled()}catch{return!1}},setVrvpSignalKinds(r){if(n())return;let i=(Number(r)|0)&255;t.set_vrvp_signal_kinds(i>>>0),e()},setVrvpSignalThresholds(r){if(n()||!r)return;let i=(o,a)=>{let _=Number(o);return Number.isFinite(_)?_:a};t.set_vrvp_signal_thresholds(i(r.vaPct,70),i(r.hvnThreshold,.55),i(r.hvnMinSpacing,6)>>>0,i(r.pocDistancePct,.6),i(r.vaBreakoutVolMult,1.5),i(r.hvnImbalancePct,65),i(r.cooldownBars,5)>>>0),e()},setVrvpSignalTpSl(r){if(n()||!r)return;let i=(o,a)=>{let _=Number(o);return Number.isFinite(_)?_:a};t.set_vrvp_signal_tpsl((Number(r.mode)|0)&1,i(r.atrPeriod,14)>>>0,i(r.atrSlMult,1.5),i(r.atrTpMult,3)),e()},setVrvpSignalShowLabels(r){n()||(t.set_vrvp_signal_show_labels(!!r),e())},getVrvpEvents(){if(n())return[];try{let r=t.get_vrvp_events_json();return r?JSON.parse(r):[]}catch{return[]}},vrvpSignalHitTest(r,i){if(n())return"";try{return t.vrvp_signal_hit_test(r,i)}catch{return""}},enableGaussianVwapCloud(){n()||v("gaussianVwapCloud")&&(t.enable_gaussian_vwap_cloud(),e())},disableGaussianVwapCloud(){n()||(t.disable_gaussian_vwap_cloud(),e())},isGaussianVwapCloudEnabled(){if(n())return!1;try{return t.is_gaussian_vwap_cloud_enabled()}catch{return!1}},setGvwcAnchorMode(r){if(n())return;let i=(Number(r)|0)&255;t.set_gvwc_anchor_mode(i>5?0:i),e()},setGvwcWindowBars(r){if(n())return;let i=Math.max(10,Math.min(1e3,Number(r)|0));t.set_gvwc_window_bars(i>>>0),e()},setGvwcAppearance(r){if(n()||!r)return;let i=(o,a)=>{let _=Number(o);return Number.isFinite(_)?_:a};t.set_gvwc_appearance(i(r.bins,60)>>>0,i(r.sigmaClip,2.5),i(r.gamma,.7),i(r.lineWidth,1.5),!!r.showBands),e()},setGvwcShowBand3(r){n()||(t.set_gvwc_show_band3(!!r),e())},setGvwcSignalsEnabled(r){n()||(t.set_gvwc_signals_enabled(!!r),e())},setGvwcSignalKinds(r){if(n())return;let i=(Number(r)|0)&255;t.set_gvwc_signal_kinds(i),e()},setGvwcSignalThresholds(r){if(n()||!r)return;let i=(o,a)=>{let _=Number(o);return Number.isFinite(_)?_:a};t.set_gvwc_signal_thresholds(i(r.minZscore,2),Math.max(1,Math.min(50,i(r.cooldownBars,10)|0))>>>0),e()},setGvwcSignalHighlightLeg(r){n()||(t.set_gvwc_signal_highlight_leg(!!r),e())},setGvwcUseBodyWeight(r){n()||(t.set_gvwc_use_body_weight(!!r),e())},setGvwcCloud(r){if(n()||!r)return;let i=(a,_)=>typeof a=="boolean"?a:_,o=(a,_)=>{let f=Number(a);return Number.isFinite(f)?f:_};t.set_gvwc_cloud(i(r.enabled,!0),i(r.cloud3d,!0),o(r.depthLayers,1)|0,o(r.opacity,.7),i(r.volumeWeighted,!0),i(r.volumeClassify,!0),i(r.sessionVolume,!1)),e()},gvwcHitTest(r,i){if(n())return"";try{return t.gvwc_hit_test(r,i)}catch{return""}},enableCvdProfile(){n()||v("cvdProfile")&&(t.enable_cvd_profile(),e())},disableCvdProfile(){n()||(t.disable_cvd_profile(),e())},isCvdProfileEnabled(){if(n())return!1;try{return t.is_cvd_profile_enabled()}catch{return!1}},setCvdProfileSessions(r){n()||(t.set_cvd_profile_sessions(be(r)),e())},applyCvdProfileUpdate(r,i,o,a){n()||(t.apply_cvd_profile_update(r,i,o,be(a)),e())},replaceCvdProfileSession(r,i,o,a,_){n()||(t.replace_cvd_profile_session(r,i,!!o,a,be(_)),e())},openCvdProfileSession(r,i,o){n()||(t.open_cvd_profile_session(r,i,o),e())},clearCvdProfile(){n()||(t.clear_cvd_profile(),e())},setCvdProfileViewMode(r){n()||(t.set_cvd_profile_view_mode(r|0),e())},getCvdProfileViewMode(){if(n())return 2;try{return t.get_cvd_profile_view_mode()}catch{return 2}},setCvdProfileShowAnchors(r){n()||(t.set_cvd_profile_show_anchors(!!r),e())},setCvdProfileShowPoc(r){n()||(t.set_cvd_profile_show_poc(!!r),e())},setCvdProfileShowSessionPocLine(r){n()||(t.set_cvd_profile_show_session_poc_line(!!r),e())},setCvdProfileShowDeltaPoc(r){n()||(t.set_cvd_profile_show_delta_poc(!!r),e())},setCvdProfileTooltipEnabled(r){n()||(t.set_cvd_profile_tooltip_enabled(!!r),e())},setCvdProfileMaxBarRatio(r){n()||(t.set_cvd_profile_max_bar_ratio(Number(r)||.85),e())},setCvdProfileLabelSizeScale(r){if(n())return;let i=Number(r);t.set_cvd_profile_label_size_scale(Number.isFinite(i)?i:1),e()},setCvdProfileBarHeightPx(r){n()||(t.set_cvd_profile_bar_height_px(Number(r)||0),e())},setCvdProfileBarMaxWidthPx(r){n()||(t.set_cvd_profile_bar_max_width_px(Number(r)||0),e())},setCvdProfileThemeMode(r){if(n())return;let i=Number(r),o=i===1||i===2?i:0;t.set_cvd_profile_theme_mode(o),e()},setCvdProfileValueInQuote(r){n()||(t.set_cvd_profile_value_in_quote(!!r),e())},cvdProfileHitTest(r,i){if(n())return"";try{return t.cvd_profile_hit_test(r,i)}catch{return""}},enableCvdOrderBlock(){n()||v("cvdProfile")&&(t.enable_cvd_orderblock(),e())},disableCvdOrderBlock(){n()||(t.disable_cvd_orderblock(),e())},isCvdOrderBlockEnabled(){if(n())return!1;try{return t.is_cvd_orderblock_enabled()}catch{return!1}},clearCvdOrderBlockObs(){n()||(t.clear_cvd_orderblock_obs(),e())},clearCvdOrderBlockAll(){n()||(t.clear_cvd_orderblock_all(),e())},upsertCvdOrderBlockOb(r,i,o,a,_,f,E,p,F,u,O,A,T,P,H,x,B,Y,z,K,at,j,X,k,J,it,rt,ut,nt,ct,ft,mt,dt,At,Ft){n()||(t.upsert_cvd_orderblock_ob(String(r||""),lo(i),Us(o),(a|0)>>>0,Number(_)||0,Number(f)||0,Number(E)||0,Number(p)||0,Number(F)||0,Number(u)||0,Number(O)||0,Number(A)||0,Number(T)||0,Number(P)||0,Number(H)||0,Number(x)||0,Number(B)||0,Number(Y)||0,Number(z)||0,Number(K)||0,Number(at)||0,Number(j)||0,Number(X)||0,(k|0)>>>0,Number(J)||0,(it|0)>>>0,!!rt,Number(ut)||0,nt===void 0?!0:!!nt,!!ct,!!ft,Number(mt)||0,Number(dt)||0,Number(At)||0,Number(Ft)||0),e())},removeCvdOrderBlockOb(r){if(n())return!1;try{let i=t.remove_cvd_orderblock_ob(String(r||""));return i&&e(),i}catch{return!1}},setCvdOrderBlockDirectionFilter(r){n()||(t.set_cvd_orderblock_direction_filter(lo(r,255)),e())},setCvdOrderBlockMitigationFilter(r){n()||(t.set_cvd_orderblock_mitigation_filter(Gs(r,255)),e())},setCvdOrderBlockMinScore(r){n()||(t.set_cvd_orderblock_min_score(Number(r)||0),e())},setCvdOrderBlockShowMitigated(r){n()||(t.set_cvd_orderblock_show_mitigated(!!r),e())},setCvdOrderBlockBreakerStyle(r){if(n())return;let i=Number(r),o=Number.isFinite(i)?Math.max(0,Math.min(2,Math.trunc(i))):0;t.set_cvd_orderblock_breaker_style(o),e()},setCvdOrderBlockShowObs(r){n()||(t.set_cvd_orderblock_show_obs(!!r),e())},setCvdOrderBlockShowGaps(r){n()||(t.set_cvd_orderblock_show_gaps(!!r),e())},setCvdOrderBlockShowFilledGaps(r){n()||(t.set_cvd_orderblock_show_filled_gaps(!!r),e())},setCvdOrderBlockShowLabels(r){n()||(t.set_cvd_orderblock_show_labels(!!r),e())},setCvdOrderBlockLabelSizeScale(r){if(n())return;let i=Number(r);t.set_cvd_orderblock_label_size_scale(Number.isFinite(i)?i:1),e()},setCvdOrderBlockRenderMode(r){if(n())return;let i=Number(r),o=i===0||i===1||i===2?i:1;t.set_cvd_orderblock_render_mode(o),e()},cvdOrderBlockObCount(){if(n())return 0;try{return t.cvd_orderblock_ob_count()}catch{return 0}},cvdOrderBlockGapCount(){if(n())return 0;try{return t.cvd_orderblock_gap_count()}catch{return 0}},cvdOrderBlockHitTest(r,i){if(n())return"";try{return t.cvd_orderblock_hit_test(r,i)}catch{return""}},enableCvdTradeSignals(){n()||v("cvdProfile")&&(t.enable_cvd_trade_signals(),e())},disableCvdTradeSignals(){n()||(t.disable_cvd_trade_signals(),e())},isCvdTradeSignalsEnabled(){if(n())return!1;try{return t.is_cvd_trade_signals_enabled()}catch{return!1}},clearCvdTradeSignals(){n()||(t.clear_cvd_trade_signals(),e())},upsertCvdTradeSignal(r,i,o,a,_,f,E,p,F,u,O,A,T,P,H,x,B,Y,z,K,at){if(n())return;let j=0;(i==="short"||i===1)&&(j=1);let X=0;o==="breakout"||o===1?X=1:o==="delta_trap"||o===2?X=2:o==="absorption_resolution"||o===3?X=3:(o==="divergence"||o===4)&&(X=4);let k=0;P==="bull"||P===1?k=1:(P==="bear"||P===2)&&(k=2),t.upsert_cvd_trade_signal(String(r||""),j,X,Number(a)||0,Number(_)||0,Number(f)||0,Number(E)||0,Number(p)||0,Number(F)||0,Number(u)||0,Number(O)||0,Number(A)||0,Number(T)||0,k,(H|0)>>>0,Number(x)||0,Number(B)||0,Number(Y)||0,Number(z)||0,(K|0)>>>0,String(at||"")),e()},removeCvdTradeSignal(r){if(n())return!1;try{let i=t.remove_cvd_trade_signal(String(r||""));return i&&e(),i}catch{return!1}},setCvdTradeSignalsShowLong(r){n()||(t.set_cvd_trade_signals_show_long(!!r),e())},setCvdTradeSignalsShowShort(r){n()||(t.set_cvd_trade_signals_show_short(!!r),e())},setCvdTradeSignalsShowRejection(r){n()||(t.set_cvd_trade_signals_show_rejection(!!r),e())},setCvdTradeSignalsShowBreakout(r){n()||(t.set_cvd_trade_signals_show_breakout(!!r),e())},setCvdTradeSignalsShowDeltaTrap(r){n()||(t.set_cvd_trade_signals_show_delta_trap(!!r),e())},setCvdTradeSignalsShowAbsorptionResolution(r){n()||(t.set_cvd_trade_signals_show_absorption_resolution(!!r),e())},setCvdTradeSignalsShowDivergence(r){n()||(t.set_cvd_trade_signals_show_divergence(!!r),e())},setCvdTradeSignalsShowLabels(r){n()||(t.set_cvd_trade_signals_show_labels(!!r),e())},setCvdTradeSignalsShowLevels(r){n()||(t.set_cvd_trade_signals_show_levels(!!r),e())},setCvdTradeSignalsMinConfidence(r){n()||(t.set_cvd_trade_signals_min_confidence(Number(r)||0),e())},cvdTradeSignalCount(){if(n())return 0;try{return t.cvd_trade_signal_count()}catch{return 0}},cvdTradeSignalsHitTest(r,i){if(n())return"";try{return t.cvd_trade_signals_hit_test(r,i)}catch{return""}},enableCvdDivergence(){n()||v("cvdProfile")&&(t.enable_cvd_divergence(),e())},disableCvdDivergence(){n()||(t.disable_cvd_divergence(),e())},isCvdDivergenceEnabled(){if(n())return!1;try{return t.is_cvd_divergence_enabled()}catch{return!1}},clearCvdDivergence(){n()||(t.clear_cvd_divergence(),e())},upsertCvdDivergence(r,i,o,a,_,f,E,p,F,u,O){if(n())return;let A=0;(i==="hidden"||i===1)&&(A=1);let T=0;(o==="short"||o===1)&&(T=1),t.upsert_cvd_divergence(String(r||""),A,T,Number(a)||0,Number(_)||0,Number(f)||0,Number(E)||0,Number(p)||0,Number(F)||0,Number(u)||0,Number(O)||0),e()},removeCvdDivergence(r){if(n())return!1;try{let i=t.remove_cvd_divergence(String(r||""));return i&&e(),i}catch{return!1}},setCvdDivergenceShowRegular(r){n()||(t.set_cvd_divergence_show_regular(!!r),e())},setCvdDivergenceShowHidden(r){n()||(t.set_cvd_divergence_show_hidden(!!r),e())},setCvdDivergenceShowLong(r){n()||(t.set_cvd_divergence_show_long(!!r),e())},setCvdDivergenceShowShort(r){n()||(t.set_cvd_divergence_show_short(!!r),e())},setCvdDivergenceShowLabels(r){n()||(t.set_cvd_divergence_show_labels(!!r),e())},setCvdDivergenceShowBand(r){n()||(t.set_cvd_divergence_show_band(!!r),e())},setCvdDivergenceMinStrength(r){n()||(t.set_cvd_divergence_min_strength(Number(r)||0),e())},cvdDivergenceCount(){if(n())return 0;try{return t.cvd_divergence_count()}catch{return 0}},cvdDivergenceHitTest(r,i){if(n())return"";try{return t.cvd_divergence_hit_test(r,i)}catch{return""}},enableCvdRegime(){n()||v("cvdProfile")&&(t.enable_cvd_regime(),e())},disableCvdRegime(){n()||(t.disable_cvd_regime(),e())},isCvdRegimeEnabled(){if(n())return!1;try{return t.is_cvd_regime_enabled()}catch{return!1}},clearCvdRegime(){n()||(t.clear_cvd_regime(),e())},upsertCvdRegimeFlip(r,i,o,a,_,f,E,p){if(n())return;let F=u=>u==="bull"||u===1?1:u==="bear"||u===2?2:0;t.upsert_cvd_regime_flip(String(r||""),Number(i)||0,Number(o)||0,F(a),F(_),Number(f)||0,(E|0)>>>0,Number(p)||0),e()},removeCvdRegimeFlip(r){if(n())return!1;try{let i=t.remove_cvd_regime_flip(String(r||""));return i&&e(),i}catch{return!1}},setCvdRegimeShowRibbon(r){n()||(t.set_cvd_regime_show_ribbon(!!r),e())},setCvdRegimeShowWash(r){n()||(t.set_cvd_regime_show_wash(!!r),e())},setCvdRegimeShowFlipLines(r){n()||(t.set_cvd_regime_show_flip_lines(!!r),e())},cvdRegimeFlipCount(){if(n())return 0;try{return t.cvd_regime_flip_count()}catch{return 0}},cvdRegimeHitTest(r,i){if(n())return"";try{return t.cvd_regime_hit_test(r,i)}catch{return""}},enableTpo(){n()||v("tpo")&&(t.enable_tpo(),e())},disableTpo(){n()||(t.disable_tpo(),e())},isTpoEnabled(){if(n())return!1;try{return t.is_tpo_enabled()}catch{return!1}},setTpoPocLine(r){n()||(t.set_tpo_poc_line(r),e())},setTpoVaLines(r){n()||(t.set_tpo_va_lines(r),e())},setTpoIb(r){n()||(t.set_tpo_ib(r),e())},setTpoSinglePrints(r){n()||(t.set_tpo_single_prints(r),e())},setTpoPeriod(r){n()||(t.set_tpo_period(r),e())},getTpoPeriod(){if(n())return 1440;try{return t.get_tpo_period()}catch{return 1440}},setTpoPeriodKind(r){if(n()||typeof t.set_tpo_period_kind!="function")return;let i=Number(r);!Number.isFinite(i)||i<0||i>255||(t.set_tpo_period_kind(i|0),e())},getTpoPeriodKind(){if(n())return 1;try{return typeof t.get_tpo_period_kind!="function"?1:t.get_tpo_period_kind()}catch{return 1}},setTpoVpPosition(r){if(n()||typeof t.set_tpo_vp_position!="function")return;let i=Number(r);!Number.isFinite(i)||i<0||i>255||(t.set_tpo_vp_position(i|0),e())},getTpoVpPosition(){if(n())return 0;try{return typeof t.get_tpo_vp_position!="function"?0:t.get_tpo_vp_position()}catch{return 0}},setTpoVpWidth(r){if(n()||typeof t.set_tpo_vp_width!="function")return;let i=Number(r);!Number.isFinite(i)||i<0||i>100||(t.set_tpo_vp_width(i|0),e())},getTpoVpWidth(){if(n())return 50;try{return typeof t.get_tpo_vp_width!="function"?50:t.get_tpo_vp_width()}catch{return 50}},setTpoVpColorGrade(r){n()||typeof t.set_tpo_vp_color_grade=="function"&&(t.set_tpo_vp_color_grade(!!r),e())},getTpoVpColorGrade(){if(n())return!1;try{return typeof t.get_tpo_vp_color_grade!="function"?!1:!!t.get_tpo_vp_color_grade()}catch{return!1}},setTpoVaPct(r){if(n()||typeof t.set_tpo_va_pct!="function")return;let i=Number(r);!Number.isFinite(i)||i<0||i>100||(t.set_tpo_va_pct(i|0),e())},getTpoVaPct(){if(n())return 70;try{return typeof t.get_tpo_va_pct!="function"?70:t.get_tpo_va_pct()}catch{return 70}},setTpoCellStyle(r){if(n()||typeof t.set_tpo_cell_style!="function")return;let i=Number(r);!Number.isFinite(i)||i<0||i>1||(t.set_tpo_cell_style(i|0),e())},getTpoCellStyle(){if(n())return 0;try{return typeof t.get_tpo_cell_style!="function"?0:t.get_tpo_cell_style()}catch{return 0}},setTpoNakedPoc(r){n()||(t.set_tpo_naked_poc(r),e())},setTpoProfileShape(r){n()||(t.set_tpo_profile_shape(r),e())},setTpoIbMinutes(r){n()||(t.set_tpo_ib_minutes(r),e())},setTpoLetterMinutes(r){n()||(t.set_tpo_letter_minutes(r),e())},setTpoSignals(r){n()||(t.set_tpo_signals(r),e())},isTpoSignals(){if(n())return!1;try{return t.is_tpo_signals()}catch{return!1}},setTpoMode(r){if(n())return;let i=Number(r);!Number.isFinite(i)||i<0||i>2||(t.set_tpo_mode(i),e())},getTpoMode(){if(n())return 0;try{return t.get_tpo_mode()}catch{return 0}},setTpoVolUnit(r){if(n()||typeof t.set_tpo_vol_unit!="function")return;let i=Number(r);!Number.isFinite(i)||i<0||i>1||(t.set_tpo_vol_unit(i|0),e())},getTpoVolUnit(){if(n())return 0;try{return t.get_tpo_vol_unit()}catch{return 0}},setTpoProfileTextSize(r){if(n()||typeof t.set_tpo_profile_text_size!="function")return;let i=Number(r);!Number.isFinite(i)||i<0||i>4||(t.set_tpo_profile_text_size(i|0),e())},getTpoProfileTextSize(){if(n())return 2;try{return t.get_tpo_profile_text_size()}catch{return 2}},setTpoProfileBrightness(r){if(n()||typeof t.set_tpo_profile_brightness!="function")return;let i=Number(r);if(!Number.isFinite(i))return;let o=Math.max(20,Math.min(200,Math.round(i)));t.set_tpo_profile_brightness(o|0),e()},getTpoProfileBrightness(){if(n())return 100;try{return t.get_tpo_profile_brightness()}catch{return 100}},setTpoVpType(r){if(n()||typeof t.set_tpo_vp_type!="function")return;let i=Number(r);!Number.isFinite(i)||i<0||i>3||(t.set_tpo_vp_type(i|0),e())},getTpoVpType(){if(n())return 0;try{return t.get_tpo_vp_type()}catch{return 0}},setTpoShowValues(r){n()||(t.set_tpo_show_values(r),e())},isTpoShowValues(){if(n())return!1;try{return t.is_tpo_show_values()}catch{return!0}},setTpoShowStats(r){n()||typeof t.set_tpo_show_stats=="function"&&(t.set_tpo_show_stats(r),e())},isTpoShowStats(){if(n())return!0;try{return t.is_tpo_show_stats()}catch{return!0}},setTpoShowLevels(r){n()||typeof t.set_tpo_show_levels=="function"&&(t.set_tpo_show_levels(r),e())},isTpoShowLevels(){if(n())return!0;try{return t.is_tpo_show_levels()}catch{return!0}},setTpoTextSize(r){if(n()||typeof t.set_tpo_text_size!="function")return;let i=Number(r);!Number.isFinite(i)||i<0||i>3||(t.set_tpo_text_size(i|0),e())},getTpoTextSize(){if(n())return 1;try{return t.get_tpo_text_size()}catch{return 1}},enableLiqHeatmap(){n()||v("liqHeatmap")&&(t.enable_liq_heatmap(),e())},disableLiqHeatmap(){n()||(t.disable_liq_heatmap(),e())},isLiqHeatmapEnabled(){if(n())return!1;try{return t.is_liq_heatmap_enabled()}catch{return!1}},setLiqHeatmapRange(r,i){n()||(t.set_liq_heatmap_range(r,i),e())},getLiqHeatmapMin(){if(n())return 0;try{return t.get_liq_heatmap_min()}catch{return 0}},getLiqHeatmapMax(){if(n())return 1;try{return t.get_liq_heatmap_max()}catch{return 1}},getLiqHeatmapSegMax(){if(n())return 0;try{return t.get_liq_heatmap_seg_max()}catch{return 0}},setLiqHeatmapProfile(r){n()||(t.set_liq_heatmap_profile(r),e())},isLiqHeatmapProfile(){if(n())return!0;try{return t.is_liq_heatmap_profile()}catch{return!0}},setLiqHeatmapCellHeight(r){n()||(t.set_liq_heatmap_cell_height(r),e())},getLiqHeatmapCellHeight(){if(n())return 1;try{return t.get_liq_heatmap_cell_height()}catch{return 1}},setLiqHeatmapBarWidth(r){n()||(t.set_liq_heatmap_bar_width(r),e())},getLiqHeatmapBarWidth(){if(n())return 1;try{return t.get_liq_heatmap_bar_width()}catch{return 1}},setLiqHeatmapPalette(r){n()||(t.set_liq_heatmap_palette(r|0),e())},getLiqHeatmapPalette(){if(n())return 0;try{return t.get_liq_heatmap_palette()}catch{return 0}},setLiqHeatmapIntensity(r){n()||(t.set_liq_heatmap_intensity(r),e())},getLiqHeatmapIntensity(){if(n())return 1;try{return t.get_liq_heatmap_intensity()}catch{return 1}},setLiqHeatmapLookbackBars(r){n()||(t.set_liq_heatmap_lookback_bars(r|0),e())},getLiqHeatmapLookbackBars(){if(n())return 500;try{return t.get_liq_heatmap_lookback_bars()}catch{return 500}},setLiqHeatmapProfileFontMult(r){n()||(t.set_liq_heatmap_profile_font_mult(Number(r)||1),e())},getLiqHeatmapProfileFontMult(){if(n())return 1;try{return t.get_liq_heatmap_profile_font_mult()}catch{return 1}},setLiqHeatmapCumSplit(r){n()||(t.set_liq_heatmap_cum_split(!!r),e())},getLiqHeatmapCumSplit(){if(n())return!1;try{return t.is_liq_heatmap_cum_split()}catch{return!1}},setLiqHeatmapPredictions(r){n()||(t.set_liq_heatmap_predictions(r),e())},setLiqHeatmapFilledPct(r){n()||(t.set_liq_heatmap_filled_pct(r),e())},getLiqHeatmapFilledPct(){if(n())return .85;try{return t.get_liq_heatmap_filled_pct()}catch{return .85}},liqHeatmapHitTest(r,i){if(n())return"";try{return t.liq_heatmap_hit_test(r,i)}catch{return""}},liqZoneHitTest(r,i){if(n())return"";try{return t.liq_zone_hit_test(r,i)}catch{return""}},enableSmartRanges(){n()||v("smartRanges")&&(t.enable_smart_ranges(),e())},disableSmartRanges(){n()||(t.disable_smart_ranges(),e())},isSmartRangesEnabled(){if(n())return!1;try{return t.is_smart_ranges_enabled()}catch{return!1}},setSrTextSize(r){n()||(t.set_sr_text_size(r),e())},setSrShowOb(r){n()||(t.set_sr_show_ob(r),e())},setSrObLast(r){n()||(t.set_sr_ob_last(r),e())},setSrShowObActivity(r){n()||(t.set_sr_show_ob_activity(r),e())},setSrShowBreakers(r){n()||(t.set_sr_show_breakers(r),e())},setSrMitigation(r){n()||(t.set_sr_mitigation(r),e())},setSrShowMetrics(r){n()||(t.set_sr_show_metrics(r),e())},setSrShowHtfOb(r){n()||(t.set_sr_show_htf_ob(r),e())},setSrHtfMinutes(r){n()||(t.set_sr_htf_minutes(r),e())},setSrShowFvg(r){n()||(t.set_sr_show_fvg(r),e())},setSrFvgTheme(r){n()||(t.set_sr_fvg_theme(r),e())},setSrFvgMitigation(r){n()||(t.set_sr_fvg_mitigation(r),e())},setSrFvgHtf(r){n()||(t.set_sr_fvg_htf(r),e())},setSrFvgExtend(r){n()||(t.set_sr_fvg_extend(r),e())},setSrShowObSignals(r){n()||(t.set_sr_show_ob_signals(r),e())},setSrShowPredict(r){n()||(t.set_sr_show_predict(r),e())},setSrShowFvgSignals(r){n()||(t.set_sr_show_fvg_signals(r),e())},setSrShowSmartRev(r){n()||(t.set_sr_show_smart_rev(r),e())},setSrSmartRevHtf(r){n()||(t.set_sr_smart_rev_htf(r),e())},setSrStatsType(r){n()||(t.set_sr_stats_type(r),e())},setSrStatsPosition(r){n()||(t.set_sr_stats_position(r),e())},getSrSignalsCount(){if(n())return 0;try{return t.get_sr_signals_count()}catch{return 0}},enableEmaStructure(){n()||v("emaStructure")&&(t.enable_ema_structure(),e())},disableEmaStructure(){n()||(t.disable_ema_structure(),e())},isEmaStructureEnabled(){if(n())return!1;try{return t.is_ema_structure_enabled()}catch{return!1}},setEsEma1Len(r){n()||(t.set_es_ema1_len(r),e())},setEsEma2Len(r){n()||(t.set_es_ema2_len(r),e())},setEsWmaLen(r){n()||(t.set_es_wma_len(r),e())},setEsShowEma1(r){n()||(t.set_es_show_ema1(r),e())},setEsShowEma2(r){n()||(t.set_es_show_ema2(r),e())},setEsShowWma(r){n()||(t.set_es_show_wma(r),e())},setEsSwingLen(r){n()||(t.set_es_swing_len(r),e())},setEsShowBos(r){n()||(t.set_es_show_bos(r),e())},enableLiveSignals(){n()||(t.enable_live_signals(),e())},disableLiveSignals(){n()||(t.disable_live_signals(),e())},isLiveSignalsEnabled(){if(n())return!1;try{return t.is_live_signals_enabled()}catch{return!1}},setLiveSignalsData(r){n()||(t.set_live_signals_data(new Float64Array(r)),e())},clearLiveSignals(){n()||(t.clear_live_signals(),e())},setLiveSignalsLeverage(r){n()||(t.set_live_signals_leverage(r),e())},getLiveSignalsLeverage(){if(n())return 10;try{return t.get_live_signals_leverage()}catch{return 10}},setLiveSignalsTrial(r){n()||(t.set_live_signals_trial(r),e())},setLiveSignalsShowEntry(r){n()||(t.set_live_signals_show_entry(r),e())},setLiveSignalsShowTpSl(r){n()||(t.set_live_signals_show_tp_sl(r),e())},setLiveSignalsShowMaxProfit(r){n()||(t.set_live_signals_show_max_profit(r),e())},setLiveSignalsShowLabels(r){n()||(t.set_live_signals_show_labels(r),e())},setLiveSignalsShowZones(r){n()||(t.set_live_signals_show_zones(r),e())},setLiveSignalsTextSize(r){n()||(t.set_live_signals_text_size(r),e())},setLiveSignalsPipValue(r){n()||(t.set_live_signals_pip_value(r),e())},setLiveSignalsLoading(r){n()||(t.set_live_signals_loading(r),e())},getLiveSignalsCount(){if(n())return 0;try{return t.get_live_signals_count()}catch{return 0}},enableVpin(){n()||v("vpin")&&(t.enable_vpin(),e())},disableVpin(){n()||(t.disable_vpin(),e())},isVpinEnabled(){if(n())return!1;try{return t.is_vpin_enabled()}catch{return!1}},setVpinData(r,i){n()||(t.set_vpin_data(r,i),e())},setVpinBucketSize(r){n()||(t.set_vpin_bucket_size(r),e())},getVpinBucketSize(){if(n())return 50;try{return t.get_vpin_bucket_size()}catch{return 50}},setVpinNumBuckets(r){n()||(t.set_vpin_num_buckets(r),e())},getVpinNumBuckets(){if(n())return 50;try{return t.get_vpin_num_buckets()}catch{return 50}},setVpinThreshold(r){n()||(t.set_vpin_threshold(r),e())},getVpinThreshold(){if(n())return .7;try{return t.get_vpin_threshold()}catch{return .7}},setVpinShowSma(r){n()||(t.set_vpin_show_sma(r),e())},setVpinShowZones(r){n()||(t.set_vpin_show_zones(r),e())},enableStopIceberg(){n()||v("stopIceberg")&&(t.enable_stop_iceberg(),e())},disableStopIceberg(){n()||(t.disable_stop_iceberg(),e())},isStopIcebergEnabled(){if(n())return!1;try{return t.is_stop_iceberg_enabled()}catch{return!1}},setSiShowStops(r){n()||(t.set_si_show_stops(r),e())},setSiShowIcebergs(r){n()||(t.set_si_show_icebergs(r),e())},setSiShowZones(r){n()||(t.set_si_show_zones(r),e())},setIcebergEvents(r,i,o,a,_,f){n()||(t.set_iceberg_events(r,i,o,a,_,f),e())},getStopRunCount(){if(n())return 0;try{return t.get_stop_run_count()}catch{return 0}},getIcebergCount(){if(n())return 0;try{return t.get_iceberg_count()}catch{return 0}},enableVolume(){t.enable_volume(),e()},disableVolume(){t.disable_volume(),e()},isVolumeEnabled(){return t.is_volume_enabled()},setVolumeMaPeriod(r){t.set_volume_ma_period(r),e()},setVolumeShowMa(r){t.set_volume_show_ma(r),e()},setVolumeShowSignals(r){t.set_volume_show_signals(r),e()},setVolumeColorMode(r){t.set_volume_color_mode(r),e()},getVolumeMaPeriod(){return t.get_volume_ma_period()},getVolumeShowMa(){return t.get_volume_show_ma()},getVolumeShowSignals(){return t.get_volume_show_signals()},getVolumeColorMode(){return t.get_volume_color_mode()},enableObSignals(){t.enable_ob_signals(),e()},disableObSignals(){t.disable_ob_signals(),e()},isObSignalsEnabled(){return t.is_ob_signals_enabled()},setObsShowWalls(r){t.set_obs_show_walls(r),e()},setObsShowGaps(r){t.set_obs_show_gaps(r),e()},setObsShowAlerts(r){t.set_obs_show_alerts(r),e()},setObsShowCom(r){t.set_obs_show_com(r),e()},setObsWalls(r,i){t.set_obs_walls(new Float64Array(r),new Float64Array(i)),e()},setObsGaps(r,i){t.set_obs_gaps(new Float64Array(r),new Float64Array(i)),e()},pushObsAlert(r,i,o,a,_){t.push_obs_alert(r,i,o,a,_),e()},setObsCom(r){t.set_obs_com(r),e()},clearObSignals(){t.clear_ob_signals(),e()},enableObFlow(){t.enable_ob_flow(),e()},disableObFlow(){t.disable_ob_flow(),e()},isObFlowEnabled(){return t.is_ob_flow_enabled()},setObfShowObi(r){t.set_obf_show_obi(r),e()},setObfShowNetFlow(r){t.set_obf_show_net_flow(r),e()},setObfShowCumDelta(r){t.set_obf_show_cum_delta(r),e()},pushObfSample(r,i,o,a){t.push_obf_sample(r,i,o,a),e()},setObfData(r){t.set_obf_data(new Float64Array(r)),e()},clearObFlow(){t.clear_ob_flow(),e()},setObfRatio(r){t.set_obf_ratio(r),e()},getObfRatio(){return t.get_obf_ratio()},enableObMicro(){t.enable_ob_micro(),e()},disableObMicro(){t.disable_ob_micro(),e()},isObMicroEnabled(){return t.is_ob_micro_enabled()},setObmData(r,i,o,a,_,f,E,p,F,u,O,A,T){t.set_obm_data(r,i,o,a,_,f,E,p,F,u,O,A,T),e()},setObmAnchorTopRight(r){t.set_obm_anchor_top_right(r),e()},clearObMicro(){t.clear_ob_micro(),e()},enableAggLiq(){v("aggLiquidations")&&(t.enable_agg_liq(),e())},disableAggLiq(){t.disable_agg_liq(),e()},isAggLiqEnabled(){return t.is_agg_liq_enabled()},setAggLiqData(r){let i;if(r&&r.length>0&&typeof r[0]=="object"&&!Array.isArray(r[0])){i=new Float64Array(r.length*6);for(let o=0;o<r.length;o++){let a=r[o];i[o*6+0]=Number(a.time)||0,i[o*6+1]=Number(a.longUsd)||0,i[o*6+2]=Number(a.shortUsd)||0,i[o*6+3]=Number(a.longQty)||0,i[o*6+4]=Number(a.shortQty)||0,i[o*6+5]=Number(a.count)||0}}else i=new Float64Array(r||[]);t.set_agg_liq_data(i),e()},pushAggLiqBar(r,i,o,a,_,f){t.push_agg_liq_bar(r,i,o,a,_,f>>>0),e()},clearAggLiq(){t.clear_agg_liq(),e()},setAggLiqMode(r){t.set_agg_liq_mode(r),e()},getAggLiqMode(){return t.get_agg_liq_mode()},setAggLiqShowLong(r){t.set_agg_liq_show_long(r),e()},setAggLiqShowShort(r){t.set_agg_liq_show_short(r),e()},setAggLiqHover(r){t.set_agg_liq_hover(r|0),e()},aggLiqBarJson(r){let i=t.agg_liq_bar_json(r|0);if(!i)return null;try{return JSON.parse(i)}catch{return null}},setAggLiqRatio(r){t.set_agg_liq_ratio(r),e()},getAggLiqRatio(){return t.get_agg_liq_ratio()},screenToAggLiqY(r){return t.screen_to_agg_liq_y(r)},aggLiqToScreenY(r){return t.agg_liq_to_screen_y(r)},setAggLiqSignals(r){let i;if(r&&r.length>0&&typeof r[0]=="object"&&!Array.isArray(r[0])){i=new Float64Array(r.length*6);for(let o=0;o<r.length;o++){let a=r[o];i[o*6+0]=Number(a.time)/1e3,i[o*6+1]=co[a.type]??-1,i[o*6+2]=fo[a.side]??0,i[o*6+3]=Number(a.volumeUsd)||0,i[o*6+4]=Number(a.ratio)||0,i[o*6+5]=Math.max(0,Math.min(1,Number(a.confidence)||0))}}else i=new Float64Array(r||[]);t.set_agg_liq_signals(i),e()},pushAggLiqSignal(r){if(!r||r.time==null||r.type==null)return;let i=co[r.type];i!=null&&(t.push_agg_liq_signal(Number(r.time)/1e3,i,fo[r.side]??0,Number(r.volumeUsd)||0,Number(r.ratio)||0,Math.max(0,Math.min(1,Number(r.confidence)||0))),e())},clearAggLiqSignals(){t.clear_agg_liq_signals(),e()},setAggLiqShowSignals(r){t.set_agg_liq_show_signals(!!r),e()},isAggLiqShowSignals(){return t.is_agg_liq_show_signals()},setAggLiqSignalsOnChart(r){t.set_agg_liq_signals_on_chart(!!r),e()},isAggLiqSignalsOnChart(){return t.is_agg_liq_signals_on_chart()},enableMrdPullback(){n()||v("mrdPullback")&&(t.enable_mrd_pullback(),e())},disableMrdPullback(){n()||(t.disable_mrd_pullback(),e())},isMrdPullbackEnabled(){if(n())return!1;try{return t.is_mrd_pullback_enabled()}catch{return!1}},setMrdPullbackEntryMode(r){n()||(t.set_mrd_pullback_entry_mode(r),e())},setMrdPullbackTrendMode(r){n()||(t.set_mrd_pullback_trend_mode(r),e())},setMrdPullbackShowBand(r){n()||(t.set_mrd_pullback_show_band(r),e())},setMrdPullbackShowHiddenDiv(r){n()||(t.set_mrd_pullback_show_hidden_div(r),e())},setMrdPullbackSrMode(r){n()||(t.set_mrd_pullback_sr_mode(r),e())},setMrdPullbackTextSize(r){n()||(t.set_mrd_pullback_text_size(r),e())},setMrdPullbackTfMode(r){n()||(t.set_mrd_pullback_tf_mode(r),e())},setMrdPullbackHtfKlines(r,i,o,a,_,f){n()||(t.set_mrd_pullback_htf_klines(be(r),be(i),be(o),be(a),be(_),be(f)),e())},updateMrdPullbackLastHtfKline(r,i,o,a,_,f){n()||(t.update_mrd_pullback_last_htf_kline(r,i,o,a,_,f),e())},clearMrdPullbackHtfKlines(){n()||(t.clear_mrd_pullback_htf_klines(),e())},enableOiCvdPattern(){n()||(t.enable_oi_cvd_pattern(),e())},disableOiCvdPattern(){n()||(t.disable_oi_cvd_pattern(),e())},isOiCvdPatternEnabled(){if(n())return!1;try{return t.is_oi_cvd_pattern_enabled()}catch{return!1}},setOiCvdPatternKinds(r){if(n())return;let i=(Number(r)|0)&15;t.set_oi_cvd_pattern_kinds(i>>>0),e()},setOiCvdPatternThresholds(r){if(n()||!r)return;let i=(o,a)=>{let _=Number(o);return Number.isFinite(_)?_:a};t.set_oi_cvd_pattern_thresholds(i(r.lookback,20)>>>0,i(r.oiThresholdPct,3),i(r.priceCompressPct,1),i(r.cvdQuietFactor,.2),i(r.trapLookback,5)>>>0,i(r.trapOiPct,.2),i(r.cooldownBars,10)>>>0),e()},setOiCvdPatternShowLabels(r){n()||(t.set_oi_cvd_pattern_show_labels(!!r),e())},setOiCvdPatternTextSize(r){if(n())return;let i=Number(r);Number.isFinite(i)&&(t.set_oi_cvd_pattern_text_size(i),e())}}}var co=Object.freeze({spike:0,capitulation:1,cascade_start:2,cascade_exhaustion:3,imbalance:4,silent_zone:5}),fo=Object.freeze({neutral:0,long:1,short:2}),ya=Object.freeze({POC_REVERT_LONG:{code:1,bit:0,side:"long",label:"POC\u2191"},POC_REVERT_SHORT:{code:2,bit:1,side:"short",label:"POC\u2193"},VAL_BOUNCE:{code:3,bit:2,side:"long",label:"VAL\u2192"},VAH_REJECT:{code:4,bit:3,side:"short",label:"VAH\u2192"},VAH_BREAK:{code:5,bit:4,side:"long",label:"\u25B6VAH"},VAL_BREAK:{code:6,bit:5,side:"short",label:"\u25C0VAL"},HVN_BUY_IMBAL:{code:7,bit:6,side:"long",label:"+HVN"},HVN_SELL_IMBAL:{code:8,bit:7,side:"short",label:"-HVN"}}),Sa=Object.freeze({ROLLING:0,SESSION_DAY:1,AUTO:2,SESSION_3D:3,SESSION_WEEK:4,SESSION_MONTH:5}),Ta=Object.freeze({EXHAUSTION:1,ABSORPTION:2,DELTA_DIV:4,STRICT_CVD:8,ALL:15});function _o(t,e,n,s,v){let c=r=>s()(r),d=()=>{try{v?.()}catch{}},h=(r,i,o)=>r<=1&&i<=1&&o<=1&&(r>0||i>0||o>0)?[Math.round(r*255),Math.round(i*255),Math.round(o*255)]:[r&255,i&255,o&255];return{addMarker(r,i,o){d(),t.add_marker(r,i,o),e()},clearMarkers(){d(),t.clear_markers(),e()},hitTestMarker(r,i){return t.hit_test_marker(r,i)},selectMarker(r){t.select_marker(r),e()},deselectMarker(){t.deselect_marker(),e()},getSelectedMarker(){return t.get_selected_marker()},removeMarker(r){d(),t.remove_marker(r),e()},deleteSelectedMarker(){let r=t.get_selected_marker();return r>0&&(d(),t.remove_marker(r),e()),r},addTrendline(r,i,o,a,_,f,E,p,F,u=0){d();let[O,A,T]=h(_,f,E),P=t.add_trendline(r,i,o,a,O,A,T,p,F,u);return e(),P},addImage(r,i,o,a,_,f,E,p,F=0){d();let[u,O,A]=h(f,E,p),T=t.add_image(r>>>0,i,o,a,_,u,O,A,F);return e(),T},getDrawingImageId(r){try{return t.get_drawing_image_id(r>>>0)}catch{return 0}},listImageDrawingIds(){try{let r=t.list_image_ids();return Array.from(r||[])}catch{return[]}},addHorizontalLine(r,i,o,a,_,f,E,p=0){d();let[F,u,O]=h(o,a,_),A=t.add_horizontal_line(r,i,F,u,O,f,E,p);return e(),A},addVerticalLine(r,i,o,a,_,f,E=0){d();let[p,F,u]=h(i,o,a),O=t.add_vertical_line(r,p,F,u,_,f,E);return e(),O},addArrow(r,i,o,a,_,f,E,p,F,u=0){d();let[O,A,T]=h(_,f,E),P=t.add_arrow(r,i,o,a,O,A,T,p,F,u);return e(),P},addArrowMarker(r,i,o,a,_,f,E,p,F,u=0){d();let[O,A,T]=h(_,f,E),P=t.add_arrow_marker(r,i,o,a,O,A,T,p,F,u);return e(),P},addPriceRangeMeasure(r,i,o,a,_,f,E,p,F,u=0){d();let[O,A,T]=h(_,f,E),P=t.add_price_range_measure(r,i,o,a,O,A,T,p,F,u);return e(),P},addDayRangeMeasure(r,i,o,a,_,f,E,p,F,u=0){d();let[O,A,T]=h(_,f,E),P=t.add_day_range_measure(r,i,o,a,O,A,T,p,F,u);return e(),P},addFibRetracement(r,i,o,a,_,f,E,p,F,u=0){if(!c("drawingFull"))return 0;d();let[O,A,T]=h(_,f,E),P=t.add_fib_retracement(r,i,o,a,O,A,T,p,F,u);return e(),P},addFibExtension(r,i,o,a,_,f,E,p,F,u,O,A=0){if(!c("drawingFull"))return 0;d();let[T,P,H]=h(E,p,F),x=t.add_fib_extension(r,i,o,a,_,f,T,P,H,u,O,A);return e(),x},addLongPosition(r,i,o,a,_,f,E,p,F,u=0){if(!c("drawingFull"))return 0;d();let[O,A,T]=h(_,f,E),P=t.add_long_position(r,i,o,a,O,A,T,p,F,u);return e(),P},addShortPosition(r,i,o,a,_,f,E,p,F,u=0){if(!c("drawingFull"))return 0;d();let[O,A,T]=h(_,f,E),P=t.add_short_position(r,i,o,a,O,A,T,p,F,u);return e(),P},addAnchoredVwap(r,i,o,a,_,f,E=0){if(!c("drawingFull"))return 0;d();let[p,F,u]=h(i,o,a),O=t.add_anchored_vwap(r,p,F,u,_,f,E);return e(),O},setVwapRenderConfig(r){if(!(n()||!r))try{t.set_vwap_render_config(JSON.stringify(r)),e()}catch(i){console.warn("[bridge] setVwapRenderConfig failed",i)}},setFibRenderConfig(r){if(!(n()||!r))try{t.set_fib_render_config(JSON.stringify(r)),e()}catch(i){console.warn("[bridge] setFibRenderConfig failed",i)}},setFibExtRenderConfig(r){if(!(n()||!r))try{t.set_fib_ext_render_config(JSON.stringify(r)),e()}catch(i){console.warn("[bridge] setFibExtRenderConfig failed",i)}},addPriceLabel(r,i,o,a,_,f,E=0){d();let[p,F,u]=h(o,a,_),O=t.add_price_label(r,i,p,F,u,f,E);return e(),O},addTextNote(r,i,o,a,_,f,E=0){d();let[p,F,u]=h(o,a,_),O=t.add_text_note(r,i,p,F,u,f,E);return e(),O},addElliottImpulse(r,i,o,a,_,f,E=0){if(!c("drawingFull"))return 0;d();let[p,F,u]=h(o,a,_),O=t.add_elliott_impulse(r,i,p,F,u,f,E);return e(),O},addElliottAutoRange(r,i,o,a,_,f,E,p,F,u=0){if(!c("drawingFull"))return 0;d();let[O,A,T]=h(_,f,E),P=t.add_elliott_auto_range(r,i,o,a,O,A,T,p,F,u);return e(),P},setElliottAutoConfig(r,i,o){try{t.set_elliott_auto_config(!!r,(i|0)>>>0,Number.isFinite(o)?o:1),e()}catch(a){console.warn("[bridge] setElliottAutoConfig failed",a)}},refreshElliottAuto(){try{t.refresh_elliott_auto_drawings(),e()}catch{}},setDrawingFontSize(r,i){d(),t.set_drawing_font_size(r,i),e()},getDrawingFontSize(r){return t.get_drawing_font_size(r)},setDrawingText(r,i){d(),t.set_drawing_text(r,i),e()},getDrawingText(r){return t.get_drawing_text(r)},setDrawingStyle(r,i,o,a,_){d();let[f,E,p]=h(i,o,a);t.set_drawing_style(r,f,E,p,_),e()},getDrawingColor(r){let i=t.get_drawing_color(r);return i?{r:i>>>24&255,g:i>>>16&255,b:i>>>8&255,lineWidth:(i&255)/10}:null},getDrawingDashed(r){try{return t.get_drawing_dashed(r)}catch{return!1}},setDrawingDashed(r,i){d(),t.set_drawing_dashed(r,i),e()},getDrawingHideLabel(r){try{return t.get_drawing_hide_label(r)}catch{return!1}},setDrawingHideLabel(r,i){d(),t.set_drawing_hide_label(r,i),e()},getDrawingBgColor(r){try{let i=t.get_drawing_bg_color(r)>>>0;return i===0?null:{r:i>>16&255,g:i>>8&255,b:i&255}}catch{return null}},setDrawingBgColor(r,i,o,a){d();let[_,f,E]=h(i,o,a);t.set_drawing_bg_color(r,_,f,E),e()},clearDrawingBgColor(r){d(),t.clear_drawing_bg_color(r),e()},getDrawingFlipLeft(r){try{return t.get_drawing_flip_left(r)}catch{return!1}},setDrawingFlipLeft(r,i){d();try{t.set_drawing_flip_left(r,i),e()}catch{}},getDrawingTextWrap(r){try{return t.get_drawing_text_wrap(r)}catch{return!1}},setDrawingTextWrap(r,i){d();try{t.set_drawing_text_wrap(r,i),e()}catch{}},getDrawingKindId(r){try{return t.get_drawing_kind_id(r)}catch{return 255}},removeDrawing(r){d(),t.remove_drawing(r),e()},clearDrawings(){d(),t.clear_drawings(),e()},drawingCount(){return t.drawing_count()},setDrawingPreview(r,i,o,a,_,f,E,p,F,u,O=0){let[A,T,P]=h(f,E,p);t.set_drawing_preview(r,i,o,a,_,A,T,P,F,u,O),e()},clearDrawingPreview(){t.clear_drawing_preview(),e()},cancelBrush(){t.cancel_brush(),e()},selectDrawing(r){t.select_drawing(r),e()},deselectDrawing(){t.deselect_drawing(),e()},getSelectedDrawing(){return t.get_selected_drawing()},deleteSelectedDrawing(){let r=t.get_selected_drawing();return r>0&&(d(),t.remove_drawing(r),e()),r},exportDrawingsJson(){try{return t.export_drawings_json()}catch{return"[]"}},importDrawingsJson(r){try{t.import_drawings_json(r),e()}catch(i){console.warn("[bridge] importDrawingsJson failed",i)}},exportDrawingById(r){try{return t.export_drawing_by_id(r)}catch{return""}},pasteDrawingJson(r,i=30,o=30){if(typeof r!="string"||r.length===0)return 0;try{d();let a=t.paste_drawing_json(r,i,o);return a>0&&e(),a>>>0}catch(a){return console.warn("[bridge] pasteDrawingJson failed",a),0}},screenToWorld(r,i){return{x:t.screen_to_world_x(r),y:t.screen_to_world_y(i)}},worldToScreen(r,i){try{return{x:t.world_to_screen_x(r),y:t.world_to_screen_y(i)}}catch{return null}}}}var Ct=t=>t instanceof Float64Array?t:new Float64Array(t);function ho(t,e,n,s){let v=c=>s()(c);return{setKlines(c,d,h,r,i,o){n()||(t.set_klines(Ct(c),Ct(d),Ct(h),Ct(r),Ct(i),Ct(o)),e())},setKlinesPreserveViewport(c,d,h,r,i,o){n()||(t.set_klines_preserve_viewport(Ct(c),Ct(d),Ct(h),Ct(r),Ct(i),Ct(o)),e())},setRealTimestamps(c){n()||(t.set_real_timestamps(Ct(c)),e())},appendRealTimestamp(c){n()||t.append_real_timestamp(c)},prependKlines(c,d,h,r,i,o){n()||(t.prepend_klines(Ct(c),Ct(d),Ct(h),Ct(r),Ct(i),Ct(o)),e())},appendKline(c,d,h,r,i,o){n()||(t.append_kline(c,d,h,r,i,o),e())},updateLastKline(c,d,h,r,i,o){n()||(t.update_last_kline(c,d,h,r,i,o),e())},updateKlineAt(c,d,h,r,i,o,a){if(!n()){try{t.update_kline_at(c,d,h,r,i,o,a)}catch{}e()}},popLastKline(){if(n())return!1;let c=t.pop_last_kline();return c&&e(),!!c},getLastClose(){try{return t.get_last_close()}catch{return 0}},getKlineCount(){if(n())return 0;try{return t.kline_count()}catch{return 0}},getKlineTimestamps(){if(n())return null;try{return t.kline_timestamps()}catch{return null}},getKlineOpens(){if(n())return null;try{return t.kline_opens()}catch{return null}},getKlineHighs(){if(n())return null;try{return t.kline_highs()}catch{return null}},getKlineLows(){if(n())return null;try{return t.kline_lows()}catch{return null}},getKlineCloses(){if(n())return null;try{return t.kline_closes()}catch{return null}},getKlineVolumes(){if(n())return null;try{return t.kline_volumes()}catch{return null}},setHeatmap(c,d,h,r,i,o,a){n()||v("heatmap")&&(t.set_heatmap(Ct(c),d,h,r,i,o,a),e())},appendHeatmapColumn(c,d,h,r){n()||v("heatmap")&&(t.append_heatmap_column(Ct(c),d,h,r),e())},updateLastHeatmapColumn(c,d,h){n()||(t.update_last_heatmap_column(Ct(c),d,h),e())},getHeatmapLastTimestamp(){if(n())return 0;try{return t.get_heatmap_last_timestamp()??0}catch{return 0}},getHeatmapXStep(){if(n())return 0;try{return t.get_heatmap_x_step()??0}catch{return 0}},updateHeatmapColumnAt(c,d,h,r){n()||(t.update_heatmap_column_at(Ct(c),d,h,r),e())},setHeatmapRange(c,d){n()||(t.set_heatmap_range(c,d),e())},getHeatmapDataRange(){try{return{min:t.get_heatmap_data_min(),max:t.get_heatmap_data_max()}}catch{return{min:0,max:0}}},setHeatmapPrefetchRange(c){try{t.set_heatmap_prefetch_range(c)}catch{}},clearHeatmapPrefetchRange(){try{t.clear_heatmap_prefetch_range()}catch{}},getHeatmapPrefetchMax(){try{return t.get_heatmap_prefetch_max()}catch{return 0}},setHeatmapColorScheme(c){try{t.set_heatmap_color_scheme(c),e()}catch{}},setHeatmapShowProfile(c){try{t.set_heatmap_show_profile(c),e()}catch{}},isHeatmapShowProfile(){try{return t.is_heatmap_show_profile()}catch{return!1}},setHeatmapProfileBrightness(c){try{t.set_heatmap_profile_brightness(Number(c)||1),e()}catch{}},getHeatmapProfileBrightness(){try{return t.get_heatmap_profile_brightness()}catch{return 1}},setHeatmapProfileBarLength(c){try{t.set_heatmap_profile_bar_length(Number(c)||1),e()}catch{}},getHeatmapProfileBarLength(){try{return t.get_heatmap_profile_bar_length()}catch{return 1}},setHeatmapWalls(c){try{t.set_heatmap_walls(new Float64Array(c)),e()}catch{}},clearHeatmapWalls(){try{t.clear_heatmap_walls(),e()}catch{}},getHeatmapWallCount(){try{return t.get_heatmap_wall_count()}catch{return 0}},setChartType(c){n()||c===2&&!v("footprint")||(t.set_chart_type(c),e())},getChartType(){if(n())return 0;try{return t.get_chart_type()}catch{return 0}},setFootprintTickSize(c){n()||v("footprint")&&(t.set_footprint_tick_size(c),e())},footprintSetFontScale(c){if(n()||!v("footprint"))return;let d=Number.isFinite(+c)?+c:1;try{t.footprint_set_font_scale(d)}catch{}e()},footprintEnsureLen(c){n()||t.footprint_ensure_len(c)},footprintAddTrade(c,d,h,r){n()||t.footprint_add_trade(c,d,h,r)},footprintAddTradeBatch(c){n()||!c||c.length===0||t.footprint_add_trade_batch(Ct(c))},footprintSetBar(c,d,h,r,i){n()||(t.footprint_set_bar(c,d,h,r,i),e())},footprintClear(){n()||(t.footprint_clear(),e())},footprintClearBar(c){n()||t.footprint_clear_bar(c)},footprintPrependEmpty(c){n()||t.footprint_prepend_empty(c)},footprintSetSignalKindsMask(c){if(!n()&&v("footprint")){try{t.footprint_set_signal_kinds_mask((c|0)&255)}catch{}e()}},footprintSetPocMarkerStyle(c){if(n()||!v("footprint"))return;let d=Math.max(0,Math.min(3,c|0));try{t.footprint_set_poc_marker_style(d)}catch{}e()},footprintSetNakedPocEnabled(c){if(!n()&&v("footprint")){try{t.footprint_set_naked_poc_enabled(!!c)}catch{}e()}},footprintSetMinCellVolumePct(c){if(n()||!v("footprint"))return;let d=Number.isFinite(+c)?Math.max(0,Math.min(100,+c)):0;try{t.footprint_set_min_cell_volume_pct(d)}catch{}e()},footprintSetShowSignals(c){n()||(t.footprint_set_show_signals(c),e())},footprintGetShowSignals(){if(n())return!0;try{return t.footprint_get_show_signals()}catch{return!0}},footprintSignalCount(){if(n())return 0;try{return t.footprint_signal_count()}catch{return 0}},footprintSetShowProfile(c){n()||(t.footprint_set_show_profile(c),e())},footprintGetShowProfile(){if(n())return!1;try{return t.footprint_get_show_profile()}catch{return!1}},footprintSetProfileScope(c){if(!n()){try{t.footprint_set_profile_scope((c|0)&255)}catch{}e()}},footprintGetProfileScope(){if(n())return 1;try{return t.footprint_get_profile_scope()}catch{return 1}},footprintSetProfileLookbackBars(c){if(n())return;let d=Math.max(5,Math.min(5e3,c|0));try{t.footprint_set_profile_lookback_bars(d)}catch{}e()},footprintSetVolumeUnitIsUsd(c){if(!n()){try{t.footprint_set_volume_unit_is_usd?.(!!c)}catch{}e()}},footprintGetVolumeUnitIsUsd(){if(n())return!1;try{return!!t.footprint_get_volume_unit_is_usd?.()}catch{return!1}},footprintGetProfileLookbackBars(){if(n())return 100;try{return t.footprint_get_profile_lookback_bars()}catch{return 100}},footprintProfileHitTest(c,d){if(n())return"";try{return t.footprint_profile_hit_test(c,d)}catch{return""}},footprintSetDisplayMode(c){n()||(t.footprint_set_display_mode(c),e())},footprintGetDisplayMode(){if(n())return 0;try{return t.footprint_get_display_mode()}catch{return 0}},footprintSetCellShape(c){if(!n()){try{t.footprint_set_cell_shape((c|0)===1?1:0)}catch{}e()}},footprintGetCellShape(){if(n())return 0;try{return t.footprint_get_cell_shape()}catch{return 0}},footprintSetBidColor(c){if(!n()){if(c==null)try{t.footprint_clear_bid_color()}catch{}else{let d=Math.max(0,Math.min(255,c.r|0)),h=Math.max(0,Math.min(255,c.g|0)),r=Math.max(0,Math.min(255,c.b|0));try{t.footprint_set_bid_color(d,h,r)}catch{}}e()}},footprintSetAskColor(c){if(!n()){if(c==null)try{t.footprint_clear_ask_color()}catch{}else{let d=Math.max(0,Math.min(255,c.r|0)),h=Math.max(0,Math.min(255,c.g|0)),r=Math.max(0,Math.min(255,c.b|0));try{t.footprint_set_ask_color(d,h,r)}catch{}}e()}},footprintSetColorIntensity(c){if(n())return;let d=Number.isFinite(+c)?+c:1;try{t.footprint_set_color_intensity(d)}catch{}e()},footprintGetColorIntensity(){if(n())return 1;try{return t.footprint_get_color_intensity()}catch{return 1}},footprintGetTooltipRect(){if(n())return null;try{let c=t.footprint_tooltip_rect();if(!c||c.length!==4)return null;let d=+c[2],h=+c[3];return!Number.isFinite(d)||!Number.isFinite(h)||d<=0||h<=0?null:{x:+c[0],y:+c[1],w:d,h}}catch{return null}},footprintGetProfileTooltipRect(){if(n())return null;try{let c=t.footprint_profile_tooltip_rect();if(!c||c.length!==4)return null;let d=+c[2],h=+c[3];return!Number.isFinite(d)||!Number.isFinite(h)||d<=0||h<=0?null:{x:+c[0],y:+c[1],w:d,h}}catch{return null}},footprintSetTooltipEnabled(c){if(!n())try{t.set_footprint_tooltip_enabled(!!c)}catch(d){console.error("[bridgeData] footprintSetTooltipEnabled failed:",d)}},footprintSetProfileTooltipEnabled(c){if(!n())try{t.set_footprint_profile_tooltip_enabled(!!c)}catch(d){console.error("[bridgeData] footprintSetProfileTooltipEnabled failed:",d)}},footprintSetStackedImbalanceEnabled(c){n()||(t.footprint_set_stacked_imbalance_enabled(!!c),e())},footprintGetStackedImbalanceEnabled(){if(n())return!1;try{return t.footprint_get_stacked_imbalance_enabled()}catch{return!1}},footprintSetStackedImbalanceMode(c){n()||(t.footprint_set_stacked_imbalance_mode(c|0),e())},footprintSetStackedImbalanceRatio(c){n()||(t.footprint_set_stacked_imbalance_ratio(Number(c)||2.3),e())},footprintSetStackedImbalanceMinStack(c){n()||(t.footprint_set_stacked_imbalance_min_stack(Math.max(2,c|0)),e())},footprintSetStackedImbalanceShowFilled(c){n()||(t.footprint_set_stacked_imbalance_show_filled(!!c),e())},footprintSetStackedImbalanceShowBox(c){n()||(t.footprint_set_stacked_imbalance_show_box(!!c),e())},footprintSetStackedImbalanceMaxAge(c){n()||(t.footprint_set_stacked_imbalance_max_age(Math.max(0,c|0)),e())},footprintSetStackedImbalanceHighlightCells(c){if(!n()){try{t.footprint_set_stacked_imbalance_highlight_cells(!!c)}catch{}e()}},footprintGetStackedImbalanceHighlightCells(){if(n())return!1;try{return t.footprint_get_stacked_imbalance_highlight_cells()}catch{return!1}},footprintSetStackedImbalanceShowBracket(c){if(!n()){try{t.footprint_set_stacked_imbalance_show_bracket(!!c)}catch{}e()}},footprintGetStackedImbalanceShowBracket(){if(n())return!1;try{return t.footprint_get_stacked_imbalance_show_bracket()}catch{return!1}},footprintSetStackedImbalanceShowRay(c){if(!n()){try{t.footprint_set_stacked_imbalance_show_ray(!!c)}catch{}e()}},footprintGetStackedImbalanceShowRay(){if(n())return!1;try{return t.footprint_get_stacked_imbalance_show_ray()}catch{return!1}},footprintStackedZoneCount(){if(n())return 0;try{return t.footprint_stacked_zone_count()}catch{return 0}},footprintRecomputeStackedImbalances(){if(!n()){try{t.footprint_recompute_stacked_imbalances()}catch{}e()}},enableDeltaHistogram(){n()||t.enable_delta_histogram()},disableDeltaHistogram(){n()||t.disable_delta_histogram()},deltaHistogramEnabled(){if(n())return!1;try{return t.delta_histogram_enabled()}catch{return!1}}}}var Ks=1,wr=new Map,$s=4096,Qr=Object.freeze({r:255,g:255,b:255,a:153});function js(t){if(typeof t!="string")return Qr;if(t.charCodeAt(0)===35){let n=t.slice(1);return n.length===8?Object.freeze({r:parseInt(n.slice(0,2),16),g:parseInt(n.slice(2,4),16),b:parseInt(n.slice(4,6),16),a:parseInt(n.slice(6,8),16)}):Object.freeze({r:parseInt(n.slice(0,2),16),g:parseInt(n.slice(2,4),16),b:parseInt(n.slice(4,6),16),a:255})}let e=t.match(/rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*([\d.]+))?\)/);return e?Object.freeze({r:+e[1],g:+e[2],b:+e[3],a:e[4]!==void 0?Math.round(+e[4]*255):255}):Qr}function $(t){if(typeof t!="string")return Qr;let e=wr.get(t);if(e!==void 0)return e;wr.size>=$s&&wr.clear();let n=js(t);return wr.set(t,n),n}var ir=null,vr=new Map,Qs=512;function Js(t,e){if(t==null)return 0;let n=String(t),s=`${e}|${n}`,v=vr.get(s);if(v!==void 0)return v;if(ir===null){if(typeof document>"u")return 0;let d=document.createElement("canvas");if(d.width=d.height=8,ir=d.getContext("2d"),!ir)return 0}ir.font=`${Math.round(e)}px "IBM Plex Mono",monospace`;let c=ir.measureText(n).width;return vr.size>=Qs&&vr.clear(),vr.set(s,c),c}function Ds(){}function Jr(t,e,n,s){let v=typeof s=="function"?s:Ds,c=new Map,d=null,h=0,r=NaN,i=NaN,o=0,a=0,_=0,f=null,E={tbv:!1,oi:!1,fr:!1};function p(){let l=!1,g=!1,b=!1;for(let y of c.values())if(y.enabled&&(y._needsTakerBuy&&(l=!0),y._needsOpenInterest&&(g=!0),y._needsFundingRate&&(b=!0),l&&g&&b))break;return{tbv:l,oi:g,fr:b}}function F(){let l=p(),g=!E.tbv&&l.tbv||!E.oi&&l.oi||!E.fr&&l.fr;if(E=l,g&&typeof f=="function")try{f({...l})}catch(b){console.warn("[CustomIndicator] dsl-deriv-needed callback failed:",b)}}let u=300,O=16,A=500,T=500,P=100,H=100,x=500,B=100,Y=100,z=500;function K(){let l;try{l=t.kline_count()}catch{return d}if(l===0)return null;a!==_&&(_=a,d=null,h=-1,r=NaN,i=NaN);let g=t.kline_closes(),b=g?.[l-1]??NaN,y=l!==h,m=d==null,S=NaN,M=(()=>{if(y||m)return!1;if(b!==r)return!0;try{S=t.kline_highs()?.[l-1]??NaN}catch{}return S!==i})();if(!y&&!m&&!M)return d;if(M){let N=!1;for(let C of c.values())if(C.calcOnEveryTick&&!C._heavyCompute&&C.enabled){N=!0;break}if(!N||performance.now()-o<u)return r=b,isNaN(S)||(i=S),d}try{let N=t.kline_timestamps(),R=t.kline_opens(),C=t.kline_highs(),I=t.kline_lows(),U=t.kline_volumes();if(!N||!g)return d;let Z=(bt,Ut)=>{if(!bt||bt.length===0)return[];if(bt.length===Ut)return Array.from(bt);let ve=new Array(Ut),Mt=Math.min(bt.length,Ut);for(let $t=0;$t<Mt;$t++)ve[$t]=bt[$t];for(let $t=Mt;$t<Ut;$t++)ve[$t]=NaN;return ve},Q=Z(t.kline_taker_buy_volume?.()??[],l),lt=Z(t.kline_oi_aligned?.()??[],l),_t=Z(t.kline_fr_aligned?.()??[],l);d={timestamps:Array.from(N),open:Array.from(R),high:Array.from(C),low:Array.from(I),close:Array.from(g),volume:Array.from(U),taker_buy_volume:Q,open_interest:lt,funding_rate:_t,length:l},h=l,r=b,i=isNaN(S)?C?.[l-1]??NaN:S,o=performance.now();let wt=M&&!y&&!m;for(let bt of c.values())bt.enabled&&(wt?bt.calcOnEveryTick&&!bt._heavyCompute&&(bt._needsCompute=!0):bt._needsCompute=!0)}catch{}return d}let at=new WeakMap;function j(l){if(l instanceof Float64Array)return l;if(!Array.isArray(l))return new Float64Array(0);let g=at.get(l);if(g&&g.length===l.length)return g;g=new Float64Array(l.length);for(let b=0;b<l.length;b++)g[b]=l[b];return at.set(l,g),g}function X(l){return l instanceof Uint32Array?l:new Uint32Array(l||[])}function k(l){if(typeof l=="number")return(l|0)&15;switch(l){case"left":return 1;case"right":return 2;case"both":return 3;case"up":return 4;case"down":return 8;default:return 0}}function J(l){switch(l){case"below":return 1;case"above":return 2;case"left":return 3;case"right":return 4;default:return 0}}function it(l){switch(l){case"triangleUp":return 1;case"triangleDown":return 2;case"square":return 3;case"diamond":return 4;case"cross":return 5;case"xcross":return 6;case"arrowUp":return 7;case"arrowDown":return 8;default:return 0}}let rt=0,ut=null,nt=new Map,ct=null,ft=new Map,mt={slotLabel:P,slotBox:T,slotLine:A,slotPolyline:H,slotTrendline:z,slotHline:x,slotFibRet:B,slotChannel:Y};function dt(l){if(!Array.isArray(l)||l.length===0)return;let g=Object.create(null),b=new Uint8Array(l.length),y=!1;for(let S=l.length-1;S>=0;S--){let M=l[S],N=mt[M?.kind];if(!N)continue;let R=g[M.kind]||0;R>=N?(b[S]=1,y=!0):g[M.kind]=R+1}if(!y)return;let m=0;for(let S=0;S<l.length;S++)b[S]||(l[m++]=l[S]);l.length=m}function At(l,g,b,y){if(b<=0)return;let m=0,S=null;for(let[M,N]of l)N.kind===g&&(m++,S===null&&(S=M));if(!(m<b))for(;m>=b&&S!==null;){let M=l.get(S);if(M){try{y(M.id)}catch{}l.delete(S)}m--,S=null;for(let[N,R]of l)if(R.kind===g){S=N;break}}}let Ft=l=>t.script_object_delete(l),zt=l=>t.script_drawing_delete(l);function xt(){return{seriesLine(l,g="#ffffff99",b=1.5){let y=$(g);t.custom_series_line(j(l),y.r,y.g,y.b,y.a,b)},seriesDashedLine(l,g="#ffffff66",b=1,y=4,m=4){let S=$(g);t.custom_series_dashed_line(j(l),S.r,S.g,S.b,S.a,b,y,m)},band(l,g,b="rgba(100,149,237,0.08)"){let y=$(b);t.custom_band(j(l),j(g),y.r,y.g,y.b,y.a)},seriesCandles(l,g,b,y,m="#089981",S="#F23645",M,N){let R=$(m),C=$(S),I=M!=null?$(M):{r:0,g:0,b:0,a:0},U=Number.isFinite(N)&&N>0?N:0;t.custom_candles(j(l),j(g),j(b),j(y),R.r,R.g,R.b,R.a,C.r,C.g,C.b,C.a,I.r,I.g,I.b,I.a,U)},hline(l,g="#ffffff66",b=1){let y=$(g);t.custom_hline(l,y.r,y.g,y.b,y.a,b)},dashedHline(l,g="#ffffff66",b=1,y=6,m=4){let S=$(g);t.custom_dashed_hline(l,S.r,S.g,S.b,S.a,b,y,m)},marker(l,g,b="#e8a04a",y=3){let m=$(b);t.custom_marker(l,g,m.r,m.g,m.b,m.a,y)},markerUp(l,g,b="#26a69a",y=5){let m=$(b);t.custom_marker_up(l,g,m.r,m.g,m.b,m.a,y)},markerDown(l,g,b="#ef5350",y=5){let m=$(b);t.custom_marker_down(l,g,m.r,m.g,m.b,m.a,y)},text(l,g,b,y="#ffffffaa",m=10,S="center"){let M=$(y),N=S==="center"?1:S==="right"?2:0;t.custom_text(l,g,b,M.r,M.g,M.b,M.a,m,N)},priceLabel(l,g,b="#ffffffaa",y=10){let m=$(b);t.custom_price_label(l,g,m.r,m.g,m.b,m.a,y)},linePx(l,g,b,y,m,S=1){let M=$(m);t.custom_line_px(l,g,b,y,M.r,M.g,M.b,M.a,S)},fillRectPx(l,g,b,y,m){let S=$(m);t.custom_fill_rect_px(l,g,b,y,S.r,S.g,S.b,S.a)},fillRoundRectPx(l,g,b,y,m,S){let M=$(S);t.custom_fill_round_rect_px(l,g,b,y,m,M.r,M.g,M.b,M.a)},strokeRectPx(l,g,b,y,m,S=1){let M=$(m);t.custom_stroke_rect_px(l,g,b,y,M.r,M.g,M.b,M.a,S)},textPx(l,g,b,y,m=10,S="left"){let M=$(y),N=S==="center"?1:S==="right"?2:0;t.custom_text_px(l,g,b,M.r,M.g,M.b,M.a,m,N)},measureTextPx(l,g=10){return Js(l,g)},worldToScreenX:l=>t.world_to_screen_x(l),worldToScreenY:l=>t.world_to_screen_y(l),screenToWorldX:l=>t.screen_to_world_x(l),screenToWorldY:l=>t.screen_to_world_y(l),chartArea:()=>({x:t.chart_area_x(),y:t.chart_area_y(),w:t.chart_area_w(),h:t.chart_area_h()}),paneSeriesLine(l,g="#e8a04a",b=1.5){let y=$(g);t.custom_pane_series_line(j(l),y.r,y.g,y.b,y.a,b)},paneSeriesDashedLine(l,g="#e8a04a99",b=1,y=4,m=4){let S=$(g);t.custom_pane_series_dashed_line(j(l),S.r,S.g,S.b,S.a,b,y,m)},paneBand(l,g,b="rgba(232, 160, 74, 0.10)"){let y=$(b);t.custom_pane_band(j(l),j(g),y.r,y.g,y.b,y.a)},paneSeriesCandles(l,g,b,y,m="#089981",S="#F23645",M,N){let R=$(m),C=$(S),I=M!=null?$(M):{r:0,g:0,b:0,a:0},U=Number.isFinite(N)&&N>0?N:0;t.custom_pane_candles(j(l),j(g),j(b),j(y),R.r,R.g,R.b,R.a,C.r,C.g,C.b,C.a,I.r,I.g,I.b,I.a,U)},paneHline(l,g="#ffffff44",b=1){let y=$(g);t.custom_pane_hline(l,y.r,y.g,y.b,y.a,b)},paneDashedHline(l,g="#ffffff44",b=1,y=4,m=4){let S=$(g);t.custom_pane_dashed_hline(l,S.r,S.g,S.b,S.a,b,y,m)},paneLabel(l,g,b="#ffffffaa",y=10,m="left"){let S=$(b),M=m==="center"?1:m==="right"?2:0;t.custom_pane_label(l,String(g),S.r,S.g,S.b,S.a,y,M)},line(l,g,b,y,m="#ffffff66",S=1,M=0,N=0,R=0){let C=$(m),I=k(R);t.custom_line(l,g,b,y,C.r,C.g,C.b,C.a,S,M,N,I)},vline(l,g="#ffffff66",b=1,y=0,m=0){let S=$(g);t.custom_vline(l,S.r,S.g,S.b,S.a,b,y,m)},box(l,g,b,y,m={}){let S=$(m.bg??m.bgColor??"rgba(232,160,74,0.08)"),M=$(m.border??m.borderColor??"#ffffff44"),N=Number.isFinite(m.lineWidth)?m.lineWidth:1,R=!!m.dashed;t.custom_box(l,g,b,y,S.r,S.g,S.b,S.a,M.r,M.g,M.b,M.a,N,R)},label(l,g,b,y={}){let m=$(y.bg??y.bgColor??"rgba(13,15,19,0.92)"),S=$(y.border??y.borderColor??"#ffffff44"),M=$(y.color??y.textColor??"#ffffffe0"),N=Number.isFinite(y.fontSize)?y.fontSize:11,R=Number.isFinite(y.lineWidth)?y.lineWidth:1,C=y.align==="center"?1:y.align==="right"?2:0,I=J(y.anchor);t.custom_label(l,g,String(b),m.r,m.g,m.b,m.a,S.r,S.g,S.b,S.a,M.r,M.g,M.b,M.a,N,R,C,I)},polylineWorld(l,g,b="#e8a04a",y=1.5,m={}){let S=$(b),M=!!m.dashed,N=Number.isFinite(m.dash)?m.dash:4,R=Number.isFinite(m.gap)?m.gap:4;t.custom_polyline_world(j(l),j(g),S.r,S.g,S.b,S.a,y,M,N,R)},polygonWorld(l,g,b={}){let y=$(b.fill??b.bg??"rgba(232,160,74,0.18)"),m=$(b.border??"#e8a04a"),S=Number.isFinite(b.lineWidth)?b.lineWidth:1;t.custom_polygon_world(j(l),j(g),y.r,y.g,y.b,y.a,m.r,m.g,m.b,m.a,S)},arrow(l,g,b,y,m="#e8a04a",S=1.5,M=8){let N=$(m);t.custom_arrow(l,g,b,y,N.r,N.g,N.b,N.a,S,M)},shape(l,g,b={}){let y=it(b.shape),m=$(b.color??"#e8a04a"),S=Number.isFinite(b.size)?b.size:4;t.custom_shape_batch(X(l),j(g),y,m.r,m.g,m.b,m.a,S)},bgColor(l,g,b="rgba(232,160,74,0.05)"){let y=$(b),m=Array.isArray(l)?l:[l],S=Array.isArray(g)?g:[g];t.custom_bg_color_batch(X(m),X(S),y.r,y.g,y.b,y.a)},plotchar(l,g,b="\xB7",y="#e8a04a",m=10){let S=$(y);t.custom_plotchar_batch(X(l),j(g),String(b),S.r,S.g,S.b,S.a,m)},markersBatch(l,g,b=0,y="#e8a04a",m=5){let S=$(y);t.custom_markers_batch(X(l),j(g),b,S.r,S.g,S.b,S.a,m)},textsBatch(l,g,b,y="#ffffffaa",m=10,S="center"){let M=$(y),N=S==="center"?1:S==="right"?2:0;t.custom_texts_batch(X(l),j(g),String(b),M.r,M.g,M.b,M.a,m,N)},paneLine(l,g,b,y,m="#ffffff66",S=1,M=0,N=0,R=0){let C=$(m),I=k(R);t.custom_pane_line(l,g,b,y,C.r,C.g,C.b,C.a,S,M,N,I)},paneVline(l,g="#ffffff66",b=1,y=0,m=0){let S=$(g);t.custom_pane_vline(l,S.r,S.g,S.b,S.a,b,y,m)},paneBox(l,g,b,y,m={}){let S=$(m.bg??m.bgColor??"rgba(232,160,74,0.08)"),M=$(m.border??m.borderColor??"#ffffff44"),N=Number.isFinite(m.lineWidth)?m.lineWidth:1,R=!!m.dashed;t.custom_pane_box(l,g,b,y,S.r,S.g,S.b,S.a,M.r,M.g,M.b,M.a,N,R)},paneLabelXY(l,g,b,y={}){let m=$(y.bg??y.bgColor??"rgba(13,15,19,0.92)"),S=$(y.border??y.borderColor??"#ffffff44"),M=$(y.color??y.textColor??"#ffffffe0"),N=Number.isFinite(y.fontSize)?y.fontSize:11,R=Number.isFinite(y.lineWidth)?y.lineWidth:1,C=y.align==="center"?1:y.align==="right"?2:0,I=J(y.anchor);t.custom_pane_label_xy(l,g,String(b),m.r,m.g,m.b,m.a,S.r,S.g,S.b,S.a,M.r,M.g,M.b,M.a,N,R,C,I)},setPaneYRange(l,g){!Number.isFinite(l)||!Number.isFinite(g)||t.set_custom_pane_y_range(l,g)},setPaneRatio(l){if(!(!Number.isFinite(l)||l<=0))try{t.set_custom_pane_ratio(l)}catch{}},paneArea:()=>({x:t.custom_pane_x(),y:t.custom_pane_y(),w:t.custom_pane_w(),h:t.custom_pane_h()}),paneYAxisArea:()=>({x:t.custom_pane_yaxis_x(),y:t.custom_pane_y(),w:t.custom_pane_yaxis_w(),h:t.custom_pane_h()}),paneYRange:()=>({min:t.custom_pane_y_min(),max:t.custom_pane_y_max()}),paneToScreenY:l=>t.custom_pane_to_screen_y(l),screenToPaneY:l=>t.screen_to_custom_pane_y(l),auxPaneSeriesLine(l,g,b="#e8a04a",y=1.5){let m=$(b);t.aux_pane_series_line(l,j(g),m.r,m.g,m.b,m.a,y)},auxPaneBand(l,g,b,y="rgba(232,160,74,0.10)"){let m=$(y);t.aux_pane_band(l,j(g),j(b),m.r,m.g,m.b,m.a)},auxPaneHline(l,g,b="#ffffff44",y=1){let m=$(b);t.aux_pane_hline(l,g,m.r,m.g,m.b,m.a,y)},auxPaneLabel(l,g,b,y="#ffffffaa",m=10,S="right"){let M=$(y),N=S==="center"?1:S==="left"?0:2;t.aux_pane_label(l,g,String(b),M.r,M.g,M.b,M.a,m,N)},auxPaneLine(l,g,b,y,m,S="#ffffff66",M=1,N=0,R=0,C=0){let I=$(S),U=k(C);t.aux_pane_line(l,g,b,y,m,I.r,I.g,I.b,I.a,M,N,R,U)},auxPaneBox(l,g,b,y,m,S={}){let M=$(S.bg??S.bgColor??"rgba(232,160,74,0.08)"),N=$(S.border??S.borderColor??"#ffffff44"),R=Number.isFinite(S.lineWidth)?S.lineWidth:1,C=!!S.dashed;t.aux_pane_box(l,g,b,y,m,M.r,M.g,M.b,M.a,N.r,N.g,N.b,N.a,R,C)},auxPaneLabelXY(l,g,b,y,m={}){let S=$(m.bg??m.bgColor??"rgba(13,15,19,0.92)"),M=$(m.border??m.borderColor??"#ffffff44"),N=$(m.color??m.textColor??"#ffffffe0"),R=Number.isFinite(m.fontSize)?m.fontSize:11,C=Number.isFinite(m.lineWidth)?m.lineWidth:1,I=m.align==="center"?1:m.align==="right"?2:0,U=J(m.anchor);t.aux_pane_label_xy(l,g,b,String(y),S.r,S.g,S.b,S.a,M.r,M.g,M.b,M.a,N.r,N.g,N.b,N.a,R,C,I,U)},setAuxPaneYRange(l,g,b){!Number.isFinite(g)||!Number.isFinite(b)||t.set_aux_pane_y_range(l,g,b)},setAuxPaneRatio(l,g){if(!(!Number.isFinite(g)||g<=0))try{t.set_aux_pane_ratio(l,g)}catch{}},auxPaneArea:l=>({x:t.aux_pane_x(l),y:t.aux_pane_y(l),w:t.aux_pane_w(l),h:t.aux_pane_h(l)}),auxPaneYAxisArea:l=>({x:t.aux_pane_yaxis_x(l),y:t.aux_pane_y(l),w:t.aux_pane_yaxis_w(l),h:t.aux_pane_h(l)}),auxPaneYRange:l=>({min:t.aux_pane_y_min_get(l),max:t.aux_pane_y_max_get(l)}),auxPaneToScreenY:(l,g)=>t.aux_pane_to_screen_y(l,g),screenToAuxPaneY:(l,g)=>t.screen_to_aux_pane_y(l,g),scriptLabelNew(l,g,b,y={}){let m=rt;if(!m)return 0;let S=$(y.bg??y.bgColor??"rgba(13,15,19,0.92)"),M=$(y.border??y.borderColor??"#ffffff44"),N=$(y.color??y.textColor??"#ffffffe0"),R=Number.isFinite(y.fontSize)?y.fontSize:11,C=Number.isFinite(y.lineWidth)?y.lineWidth:1,I=y.align==="center"?1:y.align==="right"?2:0,U=J(y.anchor),Z=String(y.pane??"overlay");return t.script_label_new(m,Z,l,g,String(b),S.r,S.g,S.b,S.a,M.r,M.g,M.b,M.a,N.r,N.g,N.b,N.a,R,C,I,U)},scriptLabelSetXY(l,g,b){l&&t.script_label_set_xy(l,g,b)},scriptLabelSetText(l,g){l&&t.script_label_set_text(l,String(g))},scriptLabelSetColor(l,g){if(!l)return;let b=$(g);t.script_label_set_color(l,b.r,b.g,b.b,b.a)},scriptLabelSetBg(l,g){if(!l)return;let b=$(g);t.script_label_set_bg(l,b.r,b.g,b.b,b.a)},scriptLabelSetVisible(l,g){l&&t.script_label_set_visible(l,!!g)},scriptBoxNew(l,g,b,y,m={}){let S=rt;if(!S)return 0;let M=$(m.bg??m.bgColor??"rgba(232,160,74,0.10)"),N=$(m.border??m.borderColor??"#ffffff44"),R=Number.isFinite(m.lineWidth)?m.lineWidth:1,C=!!m.dashed,I=k(m.extend??0),U=String(m.pane??"overlay");return t.script_box_new(S,U,l,g,b,y,M.r,M.g,M.b,M.a,N.r,N.g,N.b,N.a,R,C,I)},scriptBoxSetCorners(l,g,b,y,m){l&&t.script_box_set_corners(l,g,b,y,m)},scriptBoxSetTop(l,g){l&&t.script_box_set_top(l,g)},scriptBoxSetBottom(l,g){l&&t.script_box_set_bottom(l,g)},scriptBoxSetRight(l,g){l&&t.script_box_set_right(l,g)},scriptBoxSetBg(l,g){if(!l)return;let b=$(g);t.script_box_set_bg(l,b.r,b.g,b.b,b.a)},scriptBoxSetBorder(l,g){if(!l)return;let b=$(g);t.script_box_set_border(l,b.r,b.g,b.b,b.a)},scriptBoxSetVisible(l,g){l&&t.script_box_set_visible(l,!!g)},scriptLineNew(l,g,b,y,m={}){let S=rt;if(!S)return 0;let M=$(m.color??"#F0B90B"),N=Number.isFinite(m.lineWidth)?m.lineWidth:1.5,R=Number.isFinite(m.dash)?m.dash:0,C=Number.isFinite(m.gap)?m.gap:0,I=k(m.extend??0),U=String(m.pane??"overlay");return t.script_line_new(S,U,l,g,b,y,M.r,M.g,M.b,M.a,N,R,C,I)},scriptLineSetAnchors(l,g,b,y,m){l&&t.script_line_set_anchors(l,g,b,y,m)},scriptLineSetColor(l,g){if(!l)return;let b=$(g);t.script_line_set_color(l,b.r,b.g,b.b,b.a)},scriptLineSetExtend(l,g){l&&t.script_line_set_extend(l,k(g))},scriptLineSetVisible(l,g){l&&t.script_line_set_visible(l,!!g)},scriptPolylineNew(l,g,b={}){let y=rt;if(!y)return 0;let m=$(b.color??"#F0B90B"),S=Number.isFinite(b.lineWidth)?b.lineWidth:1.5,M=!!b.dashed,N=Number.isFinite(b.dash)?b.dash:4,R=Number.isFinite(b.gap)?b.gap:4,C=$(b.fill??"rgba(0,0,0,0)"),I=!!b.closed,U=String(b.pane??"overlay");return t.script_polyline_new(y,U,j(l),j(g),m.r,m.g,m.b,m.a,S,M,N,R,C.r,C.g,C.b,C.a,I)},scriptPolylineSetVisible(l,g){l&&t.script_polyline_set_visible(l,!!g)},scriptTableNew(l,g,b,y,m={}){let S=rt;if(!S)return 0;let M=Number.isFinite(m.cellW)?m.cellW:80,N=Number.isFinite(m.cellH)?m.cellH:22,R=$(m.bg??"rgba(13,15,19,0.92)"),C=$(m.border??"#ffffff22"),I=$(m.color??"#ffffffe0"),U=Number.isFinite(m.fontSize)?m.fontSize:11;return t.script_table_new(S,+l,+g,+M,+N,+b,+y,R.r,R.g,R.b,R.a,C.r,C.g,C.b,C.a,I.r,I.g,I.b,I.a,U)},scriptTableSetCell(l,g,b,y){l&&t.script_table_set_cell(l,+g,+b,String(y))},scriptTableSetVisible(l,g){l&&t.script_table_set_visible(l,!!g)},scriptObjectDelete(l){l&&t.script_object_delete(l)},slotLabel(l,g,b,y,m={}){let S=ut;if(!S)return 0;let M=String(l),N=S.get(M);if(N&&N.kind!=="label"){try{t.script_object_delete(N.id)}catch{}N=null}let R=$(m.bg??m.bgColor??"rgba(13,15,19,0.92)"),C=$(m.border??m.borderColor??"#ffffff44"),I=$(m.color??m.textColor??"#ffffffe0"),U=Number.isFinite(m.fontSize)?m.fontSize:11,Z=Number.isFinite(m.lineWidth)?m.lineWidth:1,Q=m.align==="center"?1:m.align==="right"?2:0,lt=J(m.anchor),_t=String(m.pane??"overlay");if(!N){At(S,"label",P,Ft);let wt=t.script_label_new(rt,_t,g,b,String(y),R.r,R.g,R.b,R.a,C.r,C.g,C.b,C.a,I.r,I.g,I.b,I.a,U,Z,Q,lt);return wt?(N={id:wt,kind:"label",touched:!0},S.set(M,N),wt):0}return t.script_label_set_xy(N.id,g,b),t.script_label_set_text(N.id,String(y)),t.script_label_set_color(N.id,I.r,I.g,I.b,I.a),t.script_label_set_bg(N.id,R.r,R.g,R.b,R.a),N.touched=!0,N.id},slotBox(l,g,b,y,m,S={}){let M=ut;if(!M)return 0;let N=String(l),R=M.get(N);if(R&&R.kind!=="box"){try{t.script_object_delete(R.id)}catch{}R=null}let C=$(S.bg??S.bgColor??"rgba(232,160,74,0.10)"),I=$(S.border??S.borderColor??"#ffffff44"),U=Number.isFinite(S.lineWidth)?S.lineWidth:1,Z=!!S.dashed,Q=k(S.extend??0),lt=String(S.pane??"overlay");if(!R){At(M,"box",T,Ft);let _t=t.script_box_new(rt,lt,g,b,y,m,C.r,C.g,C.b,C.a,I.r,I.g,I.b,I.a,U,Z,Q);return _t?(R={id:_t,kind:"box",touched:!0},M.set(N,R),_t):0}return t.script_box_set_corners(R.id,g,b,y,m),t.script_box_set_bg(R.id,C.r,C.g,C.b,C.a),t.script_box_set_border(R.id,I.r,I.g,I.b,I.a),R.touched=!0,R.id},slotLine(l,g,b,y,m,S={}){let M=ut;if(!M)return 0;let N=String(l),R=M.get(N);if(R&&R.kind!=="line"){try{t.script_object_delete(R.id)}catch{}R=null}let C=$(S.color??"#F0B90B"),I=Number.isFinite(S.lineWidth)?S.lineWidth:1.5,U=Number.isFinite(S.dash)?S.dash:0,Z=Number.isFinite(S.gap)?S.gap:0,Q=k(S.extend??0),lt=String(S.pane??"overlay");if(!R){At(M,"line",A,Ft);let _t=t.script_line_new(rt,lt,g,b,y,m,C.r,C.g,C.b,C.a,I,U,Z,Q);return _t?(R={id:_t,kind:"line",touched:!0},M.set(N,R),_t):0}return t.script_line_set_anchors(R.id,g,b,y,m),t.script_line_set_color(R.id,C.r,C.g,C.b,C.a),t.script_line_set_extend(R.id,Q),R.touched=!0,R.id},slotPolyline(l,g,b,y={}){let m=ut;if(!m)return 0;let S=String(l),M=m.get(S);if(M)try{t.script_object_delete(M.id)}catch{}else At(m,"polyline",H,Ft);let N=$(y.color??"#F0B90B"),R=Number.isFinite(y.lineWidth)?y.lineWidth:1.5,C=!!y.dashed,I=Number.isFinite(y.dash)?y.dash:4,U=Number.isFinite(y.gap)?y.gap:4,Z=$(y.fill??"rgba(0,0,0,0)"),Q=!!y.closed,lt=String(y.pane??"overlay"),_t=t.script_polyline_new(rt,lt,j(g),j(b),N.r,N.g,N.b,N.a,R,C,I,U,Z.r,Z.g,Z.b,Z.a,Q);return _t?(m.set(S,{id:_t,kind:"polyline",touched:!0}),_t):(m.delete(S),0)},slotTable(l,g,b,y,m,S={}){let M=ut;if(!M)return 0;let N=String(l),R=M.get(N),C=Number.isFinite(S.cellW)?S.cellW:80,I=Number.isFinite(S.cellH)?S.cellH:22,U=$(S.bg??"rgba(13,15,19,0.92)"),Z=$(S.border??"#ffffff22"),Q=$(S.color??"#ffffffe0"),lt=Number.isFinite(S.fontSize)?S.fontSize:11;if(R&&(R.kind!=="table"||R.cols!==y||R.rows!==m)){try{t.script_object_delete(R.id)}catch{}R=null}if(!R){let _t=t.script_table_new(rt,+g,+b,+C,+I,+y,+m,U.r,U.g,U.b,U.a,Z.r,Z.g,Z.b,Z.a,Q.r,Q.g,Q.b,Q.a,lt);return _t?(R={id:_t,kind:"table",touched:!0,cols:+y,rows:+m},M.set(N,R),_t):0}return R.touched=!0,R.id},slotTableSet(l,g,b,y){l&&t.script_table_set_cell(l,+g,+b,String(y))},slotTrendline(l,g,b,y,m,S={}){let M=ct;if(!M||!rt)return 0;let N=String(l),R=M.get(N);if(R&&R.kind!=="trendline"){try{t.script_drawing_delete(R.id)}catch{}R=null}let C=$(S.color??"#F0B90B"),I=Number.isFinite(S.lineWidth)?S.lineWidth:1.5,U=!!S.dashed,Z=String(S.pane??"overlay");if(!R){At(M,"trendline",z,zt);let Q=t.script_drawing_trendline_new(rt,Z,g,b,y,m,C.r,C.g,C.b,C.a,I,U);return Q?(R={id:Q,kind:"trendline",touched:!0},M.set(N,R),Q):0}return t.script_drawing_set_anchors(R.id,j([g,b,y,m])),t.script_drawing_set_color(R.id,C.r,C.g,C.b,C.a),R.touched=!0,R.id},slotHline(l,g,b={}){let y=ct;if(!y||!rt)return 0;let m=String(l),S=y.get(m);if(S&&S.kind!=="hline"){try{t.script_drawing_delete(S.id)}catch{}S=null}let M=Number.isFinite(b.anchorX)?b.anchorX:0,N=$(b.color??"#F0B90B"),R=Number.isFinite(b.lineWidth)?b.lineWidth:1,C=!!b.dashed,I=String(b.pane??"overlay");if(!S){At(y,"hline",x,zt);let U=t.script_drawing_hline_new(rt,I,g,M,N.r,N.g,N.b,N.a,R,C);return U?(S={id:U,kind:"hline",touched:!0},y.set(m,S),U):0}return t.script_drawing_set_anchors(S.id,j([M,g])),t.script_drawing_set_color(S.id,N.r,N.g,N.b,N.a),S.touched=!0,S.id},slotFibRet(l,g,b,y,m,S={}){let M=ct;if(!M||!rt)return 0;let N=String(l),R=M.get(N);if(R&&R.kind!=="fib_ret"){try{t.script_drawing_delete(R.id)}catch{}R=null}let C=$(S.color??"#F0B90B"),I=Number.isFinite(S.lineWidth)?S.lineWidth:1,U=!!S.dashed,Z=String(S.pane??"overlay");if(!R){At(M,"fib_ret",B,zt);let Q=t.script_drawing_fib_ret_new(rt,Z,g,b,y,m,C.r,C.g,C.b,C.a,I,U);return Q?(R={id:Q,kind:"fib_ret",touched:!0},M.set(N,R),Q):0}return t.script_drawing_set_anchors(R.id,j([g,b,y,m])),t.script_drawing_set_color(R.id,C.r,C.g,C.b,C.a),R.touched=!0,R.id},slotChannel(l,g,b,y,m,S,M,N={}){let R=ct;if(!R||!rt)return 0;let C=String(l),I=R.get(C);if(I&&I.kind!=="channel"){try{t.script_drawing_delete(I.id)}catch{}I=null}let U=$(N.color??"#F0B90B"),Z=Number.isFinite(N.lineWidth)?N.lineWidth:1,Q=!!N.dashed,lt=String(N.pane??"overlay");if(!I){At(R,"channel",Y,zt);let _t=t.script_drawing_channel_new(rt,lt,g,b,y,m,S,M,U.r,U.g,U.b,U.a,Z,Q);return _t?(I={id:_t,kind:"channel",touched:!0},R.set(C,I),_t):0}return t.script_drawing_set_anchors(I.id,j([g,b,y,m,S,M])),t.script_drawing_set_color(I.id,U.r,U.g,U.b,U.a),I.touched=!0,I.id}}}let D=new Map;function Pt(l="below"){let g=D.get(l)||0;if(D.set(l,g+1),g===0)try{l==="below"?t.enable_custom_pane():t.enable_aux_pane(l,.22)}catch(b){console.warn(`[CustomIndicator] enable pane "${l}" failed:`,b)}}function Xt(l="below"){let g=D.get(l)||0;if(!(g<=0))if(g===1){D.delete(l);try{l==="below"?t.disable_custom_pane():t.disable_aux_pane(l)}catch(b){console.warn(`[CustomIndicator] disable pane "${l}" failed:`,b)}}else D.set(l,g-1)}function qt(l){if(!l.compute&&!l.evaluateInWorker)return;let g=K();if(!g)return;let b=[];try{let S=t.drawing_count?.()??0;for(let M=0;M<S;M++){let N=t.drawing_descriptor?.(M);if(N)try{let R=JSON.parse(N);if(R.owner!=="user")continue;let C=new Set(["trendline","arrow","range","fib_ret","circle","channel","fib_ext","brush","path","elliott"]),I=Array.isArray(R.anchors)?R.anchors:[],U=[];if(C.has(R.kind))for(let lt=0;lt+1<I.length;lt+=2)U.push({t:I[lt],p:I[lt+1]});else R.kind==="hline"?I.length>=2&&U.push({t:I[0],p:I[1]}):R.kind==="arrow_marker_up"||R.kind==="arrow_marker_down"||R.kind==="text_note"?I.length>=2&&U.push({t:I[0],p:I[1]}):R.kind==="price_label"&&I.length>=2&&U.push({t:I[0],p:I[1]});let Z=Array.isArray(R.color)?R.color:null,Q=Z?`#${[Z[0]|0,Z[1]|0,Z[2]|0].map(lt=>lt.toString(16).padStart(2,"0")).join("")}`:void 0;b.push({id:`u_${R.id}`,owner:"user",scriptId:null,kind:R.kind,pane:R.pane,anchors:U,anchorsRaw:I,style:{color:Q,lineWidth:R.line_width,dashed:!!R.dashed,text:R.text||""}})}catch{}}}catch{}if(Object.freeze(b),globalThis.__mrdScriptUserDrawings=b,typeof l.evaluateInWorker=="function"){if(l._workerInFlight){l._workerPending={ohlcv:g,params:l.params,userDrawings:b};return}l._perf||(l._perf={compute:0,render:0,primitives:0,frames:0}),l._workerInFlight=!0;let S=performance.now();l.evaluateInWorker(g,l.params,b).then(M=>{let N=performance.now();l._computed=M?.computed||{},l._perf.compute=N-S,!l._heavyCompute&&l._perf.compute>O&&(l._heavyCompute=!0,console.warn(`[CustomIndicator "${l.name}"] worker compute=${l._perf.compute.toFixed(1)}ms > ${O}ms \u2014 auto-throttled to bar-close-only (set calcOnEveryTick=false explicitly to silence this).`)),dt(l._computed?.__draws),l._fa=kt(l._computed,l._fa),l._workerInFlight=!1,v(),l._workerPending&&(l._workerPending=null,qt(l))}).catch(M=>{console.warn(`[CustomIndicator "${l.name}"] worker eval error:`,M?.message||M),l._workerInFlight=!1});return}let y=performance.now();try{l._computed=l.compute(g,l.params)||{}}catch(S){console.warn(`[CustomIndicator "${l.name}"] compute error:`,S),l._computed={}}let m=performance.now();l._perf||(l._perf={compute:0,render:0,primitives:0,frames:0}),l._perf.compute=m-y,!l._heavyCompute&&l._perf.compute>O&&(l._heavyCompute=!0,console.warn(`[CustomIndicator "${l.name}"] compute=${l._perf.compute.toFixed(1)}ms > ${O}ms budget \u2014 auto-throttled to bar-close-only (set calcOnEveryTick=false explicitly to silence this).`)),dt(l._computed?.__draws),l._fa=kt(l._computed,l._fa)}function kt(l,g){if(!l||typeof l!="object")return null;let b={};for(let y in l){if(!Object.prototype.hasOwnProperty.call(l,y))continue;let m=l[y];if(Array.isArray(m)&&(typeof m[0]=="number"||m.length===0)){let S=g&&g[y]&&g[y].length===m.length?g[y]:new Float64Array(m.length);for(let M=0;M<m.length;M++)S[M]=m[M];b[y]=S}else m instanceof Float64Array?b[y]=m:m&&typeof m=="object"&&!Array.isArray(m)&&(b[y]=kt(m,g?.[y]))}return b}let V=Object.freeze({length:0,timestamps:[],open:[],high:[],low:[],close:[],volume:[]});function q(l){if(c.size===0)return;let g=K(),b=!1;for(let N of c.values())if(N.enabled&&!(N.compute&&!g)){b=!0;break}if(!b)return;t.custom_begin();let y=xt(),m=g||V,S=t.custom_command_count();for(let N of c.values()){if(!N.enabled||N.compute&&!g)continue;if(N._needsCompute&&(qt(N),N._needsCompute=!1),N._computed?.__draws?.length&&g){let _t=g.length;try{let wt=t.kline_closes();if(wt&&wt.length===_t){let bt=t.kline_opens(),Ut=t.kline_highs(),ve=t.kline_lows(),Mt=_t-1;for(let $t of N._computed.__draws){if($t.kind!=="seriesCandles")continue;let[ye,De,w,L]=$t.args;if(!Array.isArray(ye)||ye.length!==_t||isNaN(ye[Mt]))continue;let W=at.get(ye);W&&(W[Mt]=bt[Mt]);let et=at.get(De);et&&(et[Mt]=Ut[Mt]);let pt=at.get(w);pt&&(pt[Mt]=ve[Mt]);let yt=at.get(L);yt&&(yt[Mt]=wt[Mt]),ye[Mt]=bt[Mt],De[Mt]=Ut[Mt],w[Mt]=ve[Mt],L[Mt]=wt[Mt]}}}catch{}}let R=performance.now();rt=N.id;let C=nt.get(N.id);C||(C=new Map,nt.set(N.id,C));for(let _t of C.values())_t.touched=!1;ut=C;let I=ft.get(N.id);I||(I=new Map,ft.set(N.id,I));for(let _t of I.values())_t.touched=!1;ct=I;try{N.render.call(N,y,N._computed||{},m)}catch(_t){console.warn(`[CustomIndicator "${N.name}"] render error:`,_t)}finally{for(let[_t,wt]of C)if(!wt.touched){try{t.script_object_delete(wt.id)}catch{}C.delete(_t)}for(let[_t,wt]of I)if(!wt.touched){try{t.script_drawing_delete(wt.id)}catch{}I.delete(_t)}rt=0,ut=null,ct=null}let U=performance.now();N._perf||(N._perf={compute:0,render:0,primitives:0,frames:0});let Z=.2,Q=U-R;N._perf.render=N._perf.render===0?Q:N._perf.render*(1-Z)+Q*Z;let lt=t.custom_command_count();N._perf.primitives=lt-S,N._perf.frames++,S=lt}if(t.custom_end(),t.custom_command_count()>0){let N=t.get_custom_buffer_ptr(),R=t.get_custom_buffer_len();n(l,e,N,R)}}function tt(){d=null,h=0,r=NaN,i=NaN;for(let l of c.values())l._needsCompute=!0}function ht(l,g,b){return l&&Number.isFinite(l.x)&&g>=l.x&&g<=l.x+l.w&&b>=l.y&&b<=l.y+l.h}function gt(l,g){let b=[...c.values()];for(let y=b.length-1;y>=0;y--){let m=b[y];if(m.enabled&&m.pane!=="overlay"){if(ht(m._paneSeparatorRect,l,g))return{ind:m,role:"separator"};if(ht(m._paneYAxisRect,l,g))return{ind:m,role:"yaxis"};if(ht(m._paneRect,l,g))return{ind:m,role:"body"}}}return null}function ot(l,g){let b=gt(l,g);return b?b.ind:null}function Qt(l,g){let b=l._paneRect,y=l._paneDomain;if(!b||!y)return;let m=y.ymax-y.ymin;if(m<=0||b.h<=0)return;let S=g/b.h*m,M=l._paneViewport||y;l._paneViewport={ymin:M.ymin+S,ymax:M.ymax+S,heightRatio:M.heightRatio}}function ee(l,g,b){let y=l._paneRect,m=l._paneDomain;if(!y||!m||!Number.isFinite(m.ymin)||!Number.isFinite(m.ymax))return;let S=m.ymax-m.ymin;if(S<=0)return;let M=Math.max(0,Math.min(1,(g-y.y)/Math.max(1,y.h))),N=m.ymax-M*S,R=S*b,C=l._paneViewportDefault?l._paneViewportDefault.ymax-l._paneViewportDefault.ymin:S;if(C>0&&(R/C>50||R/C<.005))return;let I=N+M*R,U=I-R;l._paneViewport={ymin:U,ymax:I,heightRatio:l._paneViewport?.heightRatio??m.heightRatio}}function Ne(l){l._paneViewportDefault?l._paneViewport={...l._paneViewportDefault}:l._paneViewport=null}function Zt(l,g={}){if(!l||typeof l.addEventListener!="function")return{destroy(){}};let b=typeof g.markDirty=="function"?g.markDirty:()=>{},y=typeof g.getDrawingMode=="function"?g.getDrawingMode:null,m=Z=>{let Q=ot(Z.offsetX,Z.offsetY);if(!Q)return;let lt=Z.deltaY>0?1.1:.9;if(Z.ctrlKey||Z.metaKey)ee(Q,Z.offsetY,lt);else try{t.zoom_x(Z.offsetX,lt)}catch{}Z.preventDefault(),Z.stopPropagation(),b()},S=Z=>{if(y&&y())return;let Q=ot(Z.offsetX,Z.offsetY);Q&&(Ne(Q),Z.preventDefault(),Z.stopPropagation(),b())},M=null;function N(){M=null,window.removeEventListener("mousemove",R,!0),window.removeEventListener("mouseup",C,!0);try{l.style.cursor=""}catch{}}function R(Z){if(!M)return;let Q=M;if(Q.type==="separator"){let lt=Q.startSy-Z.offsetY,_t=Math.max(.05,Math.min(.5,Q.startRatio+lt/Q.totalH));try{t.set_custom_pane_ratio(_t)}catch{}Q.ind._paneViewport={ymin:Q.ind._paneViewport?.ymin??Q.ind._paneDomain?.ymin,ymax:Q.ind._paneViewport?.ymax??Q.ind._paneDomain?.ymax,heightRatio:_t},b()}else if(Q.type==="yaxis"){let lt=Z.offsetY-Q.lastSy;Q.lastSy=Z.offsetY,Qt(Q.ind,lt),b()}else if(Q.type==="body"){let lt=Z.offsetX-Q.lastSx,_t=Z.offsetY-Q.lastSy;if(Q.lastSx=Z.offsetX,Q.lastSy=Z.offsetY,lt!==0)try{t.pan(lt,0)}catch{}_t!==0&&Qt(Q.ind,_t),b()}Z.preventDefault(),Z.stopPropagation()}function C(Z){M&&(N(),Z.preventDefault(),Z.stopPropagation())}function I(Z){if(Z.button!==0)return;let Q=gt(Z.offsetX,Z.offsetY);if(!Q)return;let{ind:lt,role:_t}=Q;if(_t==="body"){if(y&&y())return;try{if(t.hit_test_drawing&&t.hit_test_drawing(Z.offsetX,Z.offsetY)>0||t.hit_test_marker&&t.hit_test_marker(Z.offsetX,Z.offsetY)>0)return}catch{}}if(_t==="separator"){let wt=l.getBoundingClientRect(),bt=Math.max(1,wt.height-28),Ut=lt._paneViewport?.heightRatio??lt._paneDomain?.heightRatio??(()=>{try{return t.get_custom_pane_ratio?.()??.25}catch{return .25}})();M={type:"separator",ind:lt,startSy:Z.offsetY,startRatio:Ut,totalH:bt},l.style.cursor="ns-resize"}else _t==="yaxis"?(M={type:"yaxis",ind:lt,lastSy:Z.offsetY},l.style.cursor="ns-resize"):_t==="body"&&(M={type:"body",ind:lt,lastSx:Z.offsetX,lastSy:Z.offsetY},l.style.cursor="grabbing");window.addEventListener("mousemove",R,!0),window.addEventListener("mouseup",C,!0),Z.preventDefault(),Z.stopPropagation()}function U(Z){if(M)return;let Q=gt(Z.offsetX,Z.offsetY);if(!Q)return;let _t=y&&y()?"crosshair":Q.role==="separator"||Q.role==="yaxis"?"ns-resize":"crosshair";requestAnimationFrame(()=>{if(!M)try{l.style.cursor=_t}catch{}})}return l.addEventListener("wheel",m,{passive:!1,capture:!0}),l.addEventListener("dblclick",S,{capture:!0}),l.addEventListener("mousedown",I,{capture:!0}),l.addEventListener("mousemove",U,{capture:!1}),{destroy(){l.removeEventListener("wheel",m,{capture:!0}),l.removeEventListener("dblclick",S,{capture:!0}),l.removeEventListener("mousedown",I,{capture:!0}),l.removeEventListener("mousemove",U,{capture:!1}),M&&N()}}}return{notifyKlinesChanged(){a++},notifyDerivativesChanged(){a++},releaseAllPersistentState(){for(let l of c.values()){let g=l.id;try{t.script_release(g)}catch(b){console.warn(`[CustomIndicator] script_release(${g}) on symbol change failed:`,b)}try{t.script_release_drawings(g)}catch(b){console.warn(`[CustomIndicator] script_release_drawings(${g}) on symbol change failed:`,b)}nt.delete(g),ft.delete(g),l._needsCompute=!0,l._computed={}}a++},add(l){let g=Ks++,b=typeof l?.pane=="string"?l.pane.trim():"",y=!b||b==="overlay",m=y?null:b,S={id:g,name:l.name||`Custom ${g}`,params:{...l.params},compute:l.compute||null,render:l.render,enabled:!0,pane:y?"overlay":m,paneId:m,calcOnEveryTick:l.calcOnEveryTick!==!1,_heavyCompute:!1,_computed:{},_needsCompute:!0,_workerInFlight:!1,_workerPending:null,_paneRect:null,_paneDomain:null,_paneViewport:null,_paneViewportDefault:null,_needsTakerBuy:!!l.__needsTakerBuy,_needsOpenInterest:!!l.__needsOpenInterest,_needsFundingRate:!!l.__needsFundingRate};return c.set(g,S),m&&Pt(m),F(),g},remove(l){let g=c.get(l);if(!g)return;let b=g.paneId,y=!!g._hiddenForFocus;try{t.script_release(l)}catch(m){console.warn(`[CustomIndicator] script_release(${l}) failed:`,m)}try{t.script_release_drawings(l)}catch(m){console.warn(`[CustomIndicator] script_release_drawings(${l}) failed:`,m)}nt.delete(l),ft.delete(l),c.delete(l),b&&!y&&Xt(b),F()},updateParams(l,g){let b=c.get(l);b&&(Object.assign(b.params,g),b._needsCompute=!0,b._paneViewport=null,b._paneViewportDefault=null)},setEnabled(l,g){let b=c.get(l);if(!b)return;let y=!!g;if(b.enabled!==y){if(b.enabled=y,!y&&!b._hiddenForFocus){try{t.script_release(l)}catch(m){console.warn(`[CustomIndicator] script_release(${l}) on hide failed:`,m)}try{t.script_release_drawings(l)}catch(m){console.warn(`[CustomIndicator] script_release_drawings(${l}) on hide failed:`,m)}nt.delete(l),ft.delete(l),b._needsCompute=!0,b._computed={}}F(),!(!b.paneId||b._hiddenForFocus)&&(y?Pt(b.paneId):Xt(b.paneId))}},indicatorAtPoint(l,g){let b=[...c.values()];for(let y=b.length-1;y>=0;y--){let m=b[y];if(!(!m.enabled||!m.paneId)&&m.pane!=="overlay"&&(ht(m._paneSeparatorRect,l,g)||ht(m._paneYAxisRect,l,g)||ht(m._paneRect,l,g)))return m.id}return""},hidePanesForFocus(){let l=[];for(let g of c.values())!g.enabled||!g.paneId||g._hiddenForFocus||(g._hiddenForFocus=!0,g.enabled=!1,l.push(g.id),Xt(g.paneId));return l},restorePanesFromFocus(l){if(!(!Array.isArray(l)||l.length===0))for(let g of l){let b=c.get(g);!b||!b._hiddenForFocus||(b._hiddenForFocus=!1,b.enabled=!0,b.paneId&&Pt(b.paneId))}},setCalcOnEveryTick(l,g){let b=c.get(l);b&&(b.calcOnEveryTick=!!g,b._heavyCompute=!1)},list(){return[...c.values()].map(l=>({id:l.id,name:l.name,params:{...l.params},enabled:l.enabled,calcOnEveryTick:!!l.calcOnEveryTick,heavyCompute:!!l._heavyCompute,compute:l._perf?.compute??0}))},perfStats(l){if(l!=null){let b=c.get(l);return!b||!b._perf?null:{...b._perf}}let g={};for(let b of c.values())b._perf&&(g[b.id]={...b._perf,name:b.name});return g},listDrawings(){let l=[],g=0;try{g=t.drawing_count()}catch{return l}for(let b=0;b<g;b++){let y="";try{y=t.drawing_descriptor(b)}catch{continue}if(y)try{l.push(JSON.parse(y))}catch(m){console.warn(`[CustomIndicator] failed to parse drawing[${b}]:`,m,y)}}return l},scriptObjectStats(l){try{let g=t.script_object_counts_for(l)||[],[b=0,y=0,m=0,S=0,M=0]=g;return{labels:b,boxes:y,lines:m,polylines:S,tables:M,total:b+y+m+S+M}}catch{return{labels:0,boxes:0,lines:0,polylines:0,tables:0,total:0}}},invalidateCompute:tt,renderAll:q,setupPaneInteraction:Zt,isDslNeedsTakerBuy(){return p().tbv},isDslNeedsOpenInterest(){return p().oi},isDslNeedsFundingRate(){return p().fr},setDslDerivativesNeededCallback(l){f=typeof l=="function"?l:null,f&&(E={tbv:!1,oi:!1,fr:!1},F())}}}var po={trial:{candlestick:!0,volume:!0,rsi:!0,drawingBasic:!0,drawingFull:!0,heatmap:!0,footprint:!0,liqHeatmap:!0,oi:!0,fundingRate:!0,cvd:!0,largeTrades:!0,vrvp:!0,tpo:!0,cvdProfile:!0,smartRanges:!0,emaStructure:!0,customIndicators:!0,forexSignals:!0,vpin:!0,stopIceberg:!0,aggLiquidations:!0,mrdPullback:!0,gaussianVwapCloud:!0},standard:{candlestick:!0,volume:!0,rsi:!0,drawingBasic:!0,drawingFull:!1,heatmap:!1,footprint:!1,liqHeatmap:!1,oi:!1,fundingRate:!1,cvd:!1,largeTrades:!1,vrvp:!1,tpo:!1,cvdProfile:!1,smartRanges:!1,emaStructure:!0,customIndicators:!1,vpin:!1,stopIceberg:!1,aggLiquidations:!1,mrdPullback:!0,gaussianVwapCloud:!0},professional:{candlestick:!0,volume:!0,rsi:!0,drawingBasic:!0,drawingFull:!0,heatmap:!0,footprint:!0,liqHeatmap:!0,oi:!0,fundingRate:!0,cvd:!0,largeTrades:!0,vrvp:!0,tpo:!0,cvdProfile:!0,smartRanges:!0,emaStructure:!0,customIndicators:!1,vpin:!0,stopIceberg:!0,aggLiquidations:!0,mrdPullback:!0,gaussianVwapCloud:!0},enterprise:{candlestick:!0,volume:!0,rsi:!0,drawingBasic:!0,drawingFull:!0,heatmap:!0,footprint:!0,liqHeatmap:!0,oi:!0,fundingRate:!0,cvd:!0,largeTrades:!0,vrvp:!0,tpo:!0,cvdProfile:!0,smartRanges:!0,emaStructure:!0,customIndicators:!0,forexSignals:!0,vpin:!0,stopIceberg:!0,aggLiquidations:!0,mrdPullback:!0,gaussianVwapCloud:!0}},ti={rsi:"RSI",drawingBasic:"Basic Drawing Tools",heatmap:"Orderbook Heatmap",footprint:"Footprint Chart",liqHeatmap:"Liquidation Heatmap",oi:"Open Interest",fundingRate:"Funding Rate",cvd:"CVD",largeTrades:"Large Trades",vrvp:"VRVP",tpo:"TPO / Market Profile",cvdProfile:"CVD Profile",smartRanges:"Smart Ranges",emaStructure:"EMA Structure",drawingFull:"All Drawing Tools",customIndicators:"Custom Indicators",forexSignals:"Forex Signals",vpin:"VPIN",stopIceberg:"Stops & Icebergs",aggLiquidations:"Aggregated Liquidations",mrdPullback:"mrD-Pullback Signals",gaussianVwapCloud:"Gaussian VWAP Cloud"},ei={rsi:"Standard",drawingBasic:"Standard",mrdPullback:"Standard",emaStructure:"Standard",gaussianVwapCloud:"Standard",drawingFull:"Professional",vrvp:"Professional",tpo:"Professional",smartRanges:"Professional",heatmap:"Professional",footprint:"Professional",liqHeatmap:"Professional",oi:"Professional",fundingRate:"Professional",cvd:"Professional",cvdProfile:"Professional",largeTrades:"Professional",vpin:"Professional",stopIceberg:"Professional",aggLiquidations:"Professional",customIndicators:"Enterprise",forexSignals:"Enterprise"};function Oe(t){return po[t]||po.trial}function Dr(t){let e=Oe(t),n=new Set;return function(v){if(e[v])return!0;if(!n.has(v)){n.add(v);let c=ti[v]||v,d=ei[v]||"a higher";console.warn(`[MRD Chart Engine] "${c}" requires ${d} plan. Current plan: ${t}. Upgrade at https://app.mrd-indicators.com/charting-library/pricing`)}return!1}}var Tn="jx9hUoH64b12M9nidvauYGZa3KQRjU1UcuQtI2l-0uI",ns=30,os="trial",Br="free";var ss="https://app.mrd-indicators.com/charting-library/pricing",An=[95,95,109,114].map(t=>String.fromCharCode(t)).join(""),Ii=1297237059;function En(t){t=t.replace(/-/g,"+").replace(/_/g,"/");let e=t.length%4;if(e===2)t+="==";else if(e===3)t+="=";else if(e!==0)throw new Error("bad b64url");return atob(t)}function Cn(t){let e=En(t),n=new Uint8Array(e.length);for(let s=0;s<e.length;s++)n[s]=e.charCodeAt(s);return n}function Oi(t){return new TextEncoder().encode(t)}var Ke=null,$e=null;async function Bi(){if(Ke)return Ke;let t=globalThis.crypto?.subtle;if(!t)throw new Error("WebCrypto not available");let e=Cn(Tn);if(e.length!==32)throw new Error("Public key must be 32 bytes (Ed25519 raw)");return Ke=(async()=>{let n={kty:"OKP",crv:"Ed25519",x:Tn,ext:!0};try{return await t.importKey("jwk",n,{name:"Ed25519"},!1,["verify"])}catch{return await t.importKey("raw",e,{name:"Ed25519"},!1,["verify"])}})(),Ke.catch(()=>{Ke=null}),Ke}async function Yi(){return $e||($e=(async()=>{let t=await Promise.resolve().then(()=>(Xo(),zo)),{sha512:e}=await Promise.resolve().then(()=>(rs(),es));return t.hashes.sha512=e,t.verify})(),$e.catch(()=>{$e=null}),$e)}async function Hi(t){let e=t.split(".");if(e.length!==3)return null;let n,s;try{n=JSON.parse(En(e[0])),s=JSON.parse(En(e[1]))}catch{return null}if(n.alg!=="EdDSA"||n.typ!=="MRD-LIC")return null;let v=Cn(e[2]),c=Oi(e[0]+"."+e[1]);try{let d=await Bi();return await globalThis.crypto.subtle.verify("Ed25519",d,v,c)?s:null}catch(d){try{let h=await Yi(),r=Cn(Tn);return h(v,c,r)?s:null}catch{throw d}}}function zi(t,e){if(t==="*"||t===e)return!0;if(t.startsWith("*.")){let n=t.slice(1);return e.endsWith(n)||e===t.slice(2)}return!1}var as=An+"e7x",ls=An+"p3q",cs="mrd_engine_session_id",fs="mrd_ce_db",je="meta",us="trial_ts",_s=An+"ck";function ds(t){let e=`${t}:${Ii}:${(t^2043453)>>>0}`,n=2166136261;for(let s=0;s<e.length;s++)n^=e.charCodeAt(s),n=Math.imul(n,16777619);return(n>>>0).toString(36)}function fr(t){return`${t}.${ds(t)}`}function ur(t){if(!t||typeof t!="string")return null;let e=t.lastIndexOf(".");if(e<1)return null;let n=parseInt(t.slice(0,e),10);return!n||n<1e9||n>2e9||t.slice(e+1)!==ds(n)?null:n}function Pn(){try{return ur(localStorage.getItem(as))}catch{return null}}function Mn(t){try{localStorage.setItem(as,fr(t))}catch{}}function Fn(){try{return ur(localStorage.getItem(ls))}catch{return null}}function Ln(t){try{localStorage.setItem(ls,fr(t))}catch{}}function xn(){try{return ur(sessionStorage.getItem(cs))}catch{return null}}function Nn(t){try{sessionStorage.setItem(cs,fr(t))}catch{}}function Rn(){try{let t=document.cookie.match(new RegExp(`(?:^|;\\s*)${_s}=([^;]+)`));return t?ur(decodeURIComponent(t[1])):null}catch{return null}}function In(t){try{let e=encodeURIComponent(fr(t));document.cookie=`${_s}=${e};path=/;max-age=${86400*400};SameSite=Lax`}catch{}}var Qe=null,is=!1;function Xi(){if(!(is||typeof indexedDB>"u")){is=!0;try{let t=indexedDB.open(fs,1);t.onupgradeneeded=()=>{let e=t.result;e.objectStoreNames.contains(je)||e.createObjectStore(je)},t.onsuccess=()=>{let s=t.result.transaction(je,"readonly").objectStore(je).get(us);s.onsuccess=()=>{let v=ur(s.result);v&&(!Qe||v<Qe)&&(Qe=v,Vi(v))}}}catch{}}}function hs(t){Qe=t;try{let e=indexedDB.open(fs,1);e.onsuccess=()=>{e.result.transaction(je,"readwrite").objectStore(je).put(fr(t),us)}}catch{}}function ps(t,e){let n=null;for(let s of t)s&&(s>e+60||s<17e8||(!n||s<n)&&(n=s));return n}function Vi(t){let e=Math.floor(Date.now()/1e3),n=ps([Pn(),Fn(),xn(),Rn(),t],e);n&&n!==t||n&&(Mn(n),Ln(n),Nn(n),In(n))}function Wi(){let t=Math.floor(Date.now()/1e3);return ps([Pn(),Fn(),xn(),Rn(),Qe],t)}function qi(t){Mn(t),Ln(t),Nn(t),In(t),hs(t)}function ki(t){Pn()||Mn(t),Fn()||Ln(t),xn()||Nn(t),Rn()||In(t),Qe||hs(t)}Xi();function Zi(){let t=Wi();t?ki(t):(t=Math.floor(Date.now()/1e3),qi(t));let e=t+ns*86400,n=Date.now()/1e3,s=Math.max(0,Math.ceil((e-n)/86400));return n>e?{valid:!1,expired:!0,plan:Br,watermark:!0,trialExpired:!0,daysLeft:0,pricingUrl:ss,error:`Trial expired (${ns} days). Purchase a license: ${ss}`,features:Oe(Br)}:{valid:!0,plan:os,watermark:!1,daysLeft:s,trialEnd:e,features:Oe(os)}}async function Yr(t){if(!t||t==="trial")return Zi();let e;try{e=await Hi(t)}catch(i){return{valid:!1,error:`License verification error: ${i.message}`}}if(!e)return{valid:!1,error:"Invalid license signature"};let{p:n,d:s,e:v,pl:c,a:d}=e;if(!n)return{valid:!1,error:"Invalid license payload (missing plan)"};let h=Math.floor(Date.now()/1e3);if(v>0&&h>v)return{valid:!0,plan:Br,watermark:!0,trialExpired:!0,originalPlan:n,error:`License expired on ${new Date(v*1e3).toLocaleDateString()}`,features:Oe(Br)};let r=c||"web";if((r==="web"||r==="any")&&s&&s!=="*"&&typeof window<"u"){let i=window.location.hostname;if(i&&i!=="localhost"&&i!=="127.0.0.1"&&i!=="0.0.0.0"&&i!==""&&!String(s).split(",").map(_=>_.trim()).some(_=>zi(_,i)))return{valid:!1,error:`License not valid for domain: ${i}`}}if(r==="mobile"&&d&&typeof window<"u"){let i=window.__mrd_app_id;if(i&&i!==d)return{valid:!1,error:`License not valid for app: ${i}`}}return{valid:!0,plan:n,domain:s,platform:r,appId:d||null,expiry:v,issuedAt:e.iat,subject:e.sub,watermark:!1,features:e.f?{...Oe(n),custom:e.f}:Oe(n)}}var On=null,Bn=null,Je=null;async function xe(){return On?{module:On,memory:Bn}:Je||(Je=(async()=>{let t=await import("./chart_engine.js");try{await t.default()}catch(e){console.warn("[mrd-chart] WebAssembly streaming init failed, retrying with arrayBuffer fallback:",e);let n=new URL("../wasm/chart_engine_bg.wasm",import.meta.url),s=await fetch(n);if(!s.ok)throw new Error(`WASM fetch failed (${s.status} ${s.statusText}) at ${n}`);let v=await s.arrayBuffer();await t.default(v)}return Bn=t.wasm_memory(),On=t,{module:t,memory:Bn}})(),Je.catch(()=>{Je=null}),Je)}function Kt(t){let e=t.replace("#","");return[parseInt(e.substring(0,2),16)||0,parseInt(e.substring(2,4),16)||0,parseInt(e.substring(4,6),16)||0]}var Hr=null,zr=null;async function bs(){if(Hr)return Hr;let{module:t,memory:e}=await xe();return Hr=t,zr=e,t}function Ui(){Hr||bs().catch(()=>{})}async function Gi(t,e={}){e.appId&&typeof window<"u"&&(window.__mrd_app_id=e.appId);let n=e.licenseKey||e.key||null,s=await Yr(n);if(!s.valid)throw new Error(`[MRD Chart Engine] ${s.error}`);s.plan==="trial"&&console.info(`[MRD Chart Engine] Trial mode \u2014 ${s.daysLeft} days remaining. Purchase: https://app.mrd-indicators.com/charting-library/pricing`);let v=await bs(),c=window.devicePixelRatio||1,d=c,h=c,r=t.getBoundingClientRect();(r.width<1||r.height<1)&&(await new Promise(w=>{let L=new ResizeObserver(W=>{for(let et of W)if(et.contentRect.width>0&&et.contentRect.height>0){L.disconnect(),w();return}});L.observe(t.parentElement||t),setTimeout(()=>{L.disconnect(),w()},2e3)}),r=t.getBoundingClientRect());let i=Math.max(r.width,100),o=Math.max(r.height,100);t.width=Math.max(1,Math.round(i*c)),t.height=Math.max(1,Math.round(o*c));let a=t.getContext("2d");d=t.width/i,h=t.height/o,a.setTransform(d,0,0,h,0,0);let _=new v.ChartEngine(i,o),f=!1,E={dead:!1,destroyed:!1,cleanupEvents:null};function p(w){if(!E.dead){E.dead=!0,f=!0;try{let L=w?.message?String(w.message):String(w||"unknown");console.error("[MRD Chart Engine] fatal WASM error \u2014 engine disabled:",L)}catch{}try{E.cleanupEvents?.()}catch{}}}function F(w){if(!w)return!1;if(typeof WebAssembly<"u"&&w instanceof WebAssembly.RuntimeError)return!0;let L=w.message?String(w.message):"";return L.includes("memory access out of bounds")||L.includes("recursive use of an object")||L.includes("null pointer passed to rust")||L.includes("unreachable")}let u=new Proxy(_,{get(w,L){let W=Reflect.get(w,L);return typeof W!="function"?W:function(...pt){if(!E.dead)try{return W.apply(w,pt)}catch(yt){if(F(yt)){p(yt);return}throw yt}}}});if("ontouchstart"in window||navigator.maxTouchPoints>0)try{u.set_touch_mode(!0)}catch{}try{let w=typeof n=="string"?n:"",L=Date.now(),W=typeof window<"u"&&window.location?.hostname||"";u.set_license_token(w,L,W)}catch(w){console.warn("[MRD] set_license_token failed:",w.message)}let A=!0,T=null,P=!1,H=!1,x=!1,B=null,Y=null,z=0,K=!1,at=$n(),j=jn(),X=new Map,k=1,J=50,it=[],rt=[],ut=!1;function nt(){if(!ut)try{let w=u.export_drawings_json?.();if(typeof w!="string")return;it.push(w),it.length>J&&it.shift(),rt.length>0&&(rt.length=0)}catch(w){console.warn("[bridge] pushUndoSnapshot failed",w?.message||w)}}function ct(){if(it.length===0)return!1;try{let w=it.pop(),L=u.export_drawings_json?.();if(typeof L=="string"&&(rt.push(L),rt.length>J&&rt.shift()),ut=!0,u.clear_drawings?.(),w)try{u.import_drawings_json?.(w)}catch(W){console.warn("[bridge] undo import failed",W?.message||W)}return D(),!0}catch(w){return console.warn("[bridge] undo failed",w?.message||w),!1}finally{ut=!1}}function ft(){if(rt.length===0)return!1;try{let w=rt.pop(),L=u.export_drawings_json?.();if(typeof L=="string"&&(it.push(L),it.length>J&&it.shift()),ut=!0,u.clear_drawings?.(),w)try{u.import_drawings_json?.(w)}catch(W){console.warn("[bridge] redo import failed",W?.message||W)}return D(),!0}catch(w){return console.warn("[bridge] redo failed",w?.message||w),!1}finally{ut=!1}}async function mt(w){if(!w)return null;try{let L=URL.createObjectURL(w),W=new Image;await new Promise((pt,yt)=>{W.onload=()=>pt(),W.onerror=Lt=>yt(Lt),W.src=L});let et=k++;return X.set(et,W),D(),{imageId:et,width:W.naturalWidth||W.width||1,height:W.naturalHeight||W.height||1}}catch(L){return console.warn("[bridge] addImageBlob decode failed",L?.message||L),null}}async function dt(w){let L=await mt(w);if(!L)return null;let{imageId:W,width:et,height:pt}=L;nt();let yt=Math.max(1,r.width),Lt=Math.max(1,r.height),re=yt*.5,Se=Lt*.5,_r=(et||1)/Math.max(1,pt||1),ke=re,Re=ke/Math.max(.01,_r);Re>Se&&(Re=Se,ke=Re*_r),ke=Math.max(40,ke),Re=Math.max(40,Re);let Wn=yt*.5,qn=Lt*.5,Ps=Wn-ke/2,Ms=qn-Re/2,Fs=Wn+ke/2,Ls=qn+Re/2,Xr;try{let dr=u.screen_to_world_x(Ps),xs=u.screen_to_world_x(Fs),Ns=u.screen_to_world_y(Ms),Rs=u.screen_to_world_y(Ls);Xr=u.add_image(W,dr,Ns,xs,Rs,212,166,10,0),u.select_drawing(Xr)}catch(dr){return console.warn("[bridge] pasteImageFromClipboard add_image failed",dr?.message||dr),null}return D(),{drawingId:Xr,imageId:W,blob:w,width:et,height:pt}}function At(w){if(typeof w!="string")return null;let L=w.replace(/\s+$/g,"");if(L.length===0)return null;nt();let W=Math.max(1,r.width),et=Math.max(1,r.height),pt=W*.5,yt=et*.5,Lt;try{let re=u.screen_to_world_x(pt),Se=u.screen_to_world_y(yt);if(Lt=u.add_text_note(re,Se,212,166,10,14,0),u.set_drawing_text(Lt,L),/\n/.test(L))try{u.set_drawing_text_wrap?.(Lt,!0)}catch{}u.select_drawing(Lt)}catch(re){return console.warn("[bridge] pasteTextFromClipboard add_text_note failed",re?.message||re),null}return D(),{drawingId:Lt,text:L}}let zt=("ontouchstart"in window||navigator.maxTouchPoints>0)&&window.innerWidth<=1399?33:8;function xt(){if(!(!P||H||T)){if(zt>0){let w=performance.now()-z;if(w<zt){Y||(Y=setTimeout(()=>{Y=null,xt()},zt-w));return}}T=requestAnimationFrame(Z)}}let D=()=>{A=!0,xt()},Pt=()=>x||E.dead,Xt=null,qt=null,kt=null,V=null,q=null,tt=null,ht=null,gt=null,ot=null,Qt=null,ee=null,Ne=null,Zt=null,l=0,g=null,b=null,y=0,m=0,S=-1,M=!1,N=!1,R=!1,C=null,I=jr(t,u,{onDirty:D,onCrosshairMove:(w,L,W)=>{if(y=w,m=L,S=W,M=!0,N=!0,C)try{C({visible:!0,worldX:u.crosshair_world_x()})}catch{}},onCrosshairHide:()=>{if(N&&(N=!1,M=!0,S=-1),C)try{C({visible:!1,worldX:0})}catch{}},drawingApi:w=>{Xt=w},onDrawingMutationBegin:()=>{nt()},onUndoRequest:()=>ct(),onRedoRequest:()=>ft(),onDrawingComplete:()=>{qt?.()},onDrawingCancel:()=>{kt?.()},onDrawingSelected:(w,L,W)=>{V?.(w,L,W)},onMarkerSelected:w=>{q?.(w)},onImagePasted:async w=>{try{let L=await dt(w);L?.drawingId>0&&(V?.(L.drawingId),tt?.(L.imageId,L.blob,L.drawingId))}catch(L){console.warn("[bridge] onImagePasted handler failed",L?.message||L)}},onTextPasted:w=>{try{let L=At(w);L?.drawingId>0&&(V?.(L.drawingId),ht?.(L.drawingId,L.text))}catch(L){console.warn("[bridge] onTextPasted handler failed",L?.message||L)}},onDrawingDblClick:(w,L,W,et,pt)=>{gt?.(w,L,W,et,pt)},onChartDblClick:(w,L,W,et)=>{ot?.(w,L,W,et)},onIndicatorDblClick:(w,L,W,et,pt)=>{Qt?.(w,L,W,et,pt)},customIndicatorAtPoint:(w,L)=>bt.indicatorAtPoint(w,L),onVrvpHover:(w,L)=>{R||ee?.(w,L)},onLiqAnnotationPin:(w,L)=>{b?.(w,L)},onQuickTradeBtnClick:(w,L,W)=>{Ne?.(w,L,W)},onPanStart:()=>{R=!0;try{B?.(null,0,0)}catch{}try{Zt?.("")}catch{}try{ee?.(null,null)}catch{}},onPanEnd:()=>{R=!1}});E.cleanupEvents=I;function U(){if(!(!M||f)){if(M=!1,!N||R){B&&B(null,0,0),Zt&&Zt("");return}if(B)if(S===0||S===1)try{let w=u.get_tooltip_data();B(w,y,m)}catch{}else B(null,0,0);if(Zt){let w=performance.now();if(S===0||S===1){if(w-l>=80){l=w;try{Zt(u.lt_hit_test(y,m))}catch{}}}else Zt("")}}}function Z(){if(T=null,!(!P||H||f)){K=!0;try{let w=!1;try{w=A||u.is_dirty()}catch{f=!0;return}if(w){A=!1,z=performance.now();let L=!1;try{if(u.render()>0){let et=u.get_command_buffer_ptr(),pt=u.get_command_buffer_len();a.save(),a.setTransform(1,0,0,1,0,0),a.clearRect(0,0,t.width,t.height),a.restore(),ne(a,zr,et,pt,at,j,X),L=!0}Mt()}catch(W){if(L||(A=!0),W instanceof WebAssembly.RuntimeError){f=!0,console.error("[MRD] Engine crashed:",W.message);return}}U();try{g?.()}catch{}try{(A||u.is_dirty())&&xt()}catch{}}}finally{K=!1}}}let Q=Dr(s.plan),lt=uo(u,D,Pt,()=>Q),_t=_o(u,D,Pt,()=>Q,nt),wt=ho(u,D,Pt,()=>Q),bt=Jr(u,zr,ne,D);{let w=wt.setKlines,L=wt.setKlinesPreserveViewport;typeof w=="function"&&(wt.setKlines=function(...W){return bt.notifyKlinesChanged(),w.apply(wt,W)}),typeof L=="function"&&(wt.setKlinesPreserveViewport=function(...W){return bt.notifyKlinesChanged(),L.apply(wt,W)})}{let w=L=>{let W=lt[L];typeof W=="function"&&(lt[L]=function(...et){return bt.notifyDerivativesChanged(),W.apply(lt,et)})};w("setOiData"),w("setOiDataTs"),w("setFrBinanceData"),w("setFrAggData"),w("setCvdData"),w("setCvdSpotData")}let Ut=null,ve=3e4;{let w=lt.setOiDataTs;typeof w=="function"&&(lt.setOiDataTs=function(pt,yt){let Lt=0;try{Lt=Number(u.kline_count?.()||0)}catch{}if(Lt===0){Ut={timestamps:pt,values:yt,stashedAt:Date.now()};return}return w.call(lt,pt,yt)});let L=wt.setKlines,W=wt.setKlinesPreserveViewport,et=()=>{if(!Ut)return;let{timestamps:pt,values:yt,stashedAt:Lt}=Ut;if(Ut=null,!(Date.now()-Lt>ve))try{lt.setOiDataTs?.(pt,yt)}catch(re){console.warn("[bridge] deferred OI flush failed:",re?.message??re)}};typeof L=="function"&&(wt.setKlines=function(...pt){let yt=L.apply(wt,pt);return et(),yt}),typeof W=="function"&&(wt.setKlinesPreserveViewport=function(...pt){let yt=W.apply(wt,pt);return et(),yt})}function Mt(){let w=0,L=0,W=0,et=0;try{w=u.chart_area_x(),L=u.chart_area_y(),W=u.chart_area_w(),et=u.pane_stack_bottom_y()-L}catch{return}if(!(!(W>0)||!(et>0))){a.save();try{a.beginPath(),a.rect(w,L,W,et),a.clip(),bt.renderAll(a)}catch{}finally{a.restore()}}}let $t=bt.setupPaneInteraction(t,{markDirty:D,getDrawingMode:()=>Xt?.getMode()}),ye=["__trade_overlay","__position_overlay"],De=!0;return{engine:u,start(){P=!0,H=!1,A=!0,xt()},stop(){P=!1,T&&(cancelAnimationFrame(T),T=null),Y&&(clearTimeout(Y),Y=null)},resize(w){if(f||K)return;if(r=t.getBoundingClientRect(),r.width<1||r.height<1){(w||0)<8&&setTimeout(()=>this.resize((w||0)+1),250);return}c=window.devicePixelRatio||1;let L=Math.max(1,Math.round(r.width*c)),W=Math.max(1,Math.round(r.height*c));t.width=L,t.height=W,d=t.width/r.width,h=t.height/r.height,a.setTransform(1,0,0,1,0,0),a.setTransform(d,0,0,h,0,0);try{at.invalidate()}catch{}try{u.resize(r.width,r.height)}catch(et){if(et instanceof WebAssembly.RuntimeError){f=!0;return}throw et}H||this.renderSync(),D()},renderSync(){if(f)return 0;try{let w=u.render();if(w>0){let L=u.get_command_buffer_ptr(),W=u.get_command_buffer_len();a.save(),a.setTransform(1,0,0,1,0,0),a.clearRect(0,0,t.width,t.height),a.restore(),ne(a,zr,L,W,at,j,X)}return Mt(),w}catch(w){return w instanceof WebAssembly.RuntimeError&&(f=!0),0}},renderFrameNow(){!P||H||f||(T&&(cancelAnimationFrame(T),T=null),Y&&(clearTimeout(Y),Y=null),A=!0,Z())},setCrosshairExternal(w,L,W){if(f)return!1;try{return u.set_crosshair(w,L),y=w,m=L,S=typeof W=="number"?W:0,M=!0,N=!0,!0}catch{return!1}},getCrosshairWorldX(){if(f)return 0;try{return u.crosshair_world_x()}catch{return 0}},isCrosshairSyncVisible(){if(f)return!1;try{return u.crosshair_visible()}catch{return!1}},setCrosshairAtWorldX(w){if(f)return!1;try{let L=u.set_crosshair_at_world_x(w);return L&&(N=!0,M=!0,S=-1),L}catch{return!1}},setCrosshairSyncHandler(w){C=typeof w=="function"?w:null},hideCrosshairExternal(){if(!f)try{u.hide_crosshair(),N&&(N=!1,M=!0,S=-1)}catch{}},setHoverPrice(w){Pt()||(u.set_hover_price(w),D())},clearHoverPrice(){Pt()||(u.clear_hover_price(),D())},hitZone(w,L){if(Pt())return-1;let W=u.hit_zone(w,L);return W===void 0?-1:W},startDrawing(w,L){Xt?.setMode(w,L)},cancelDrawing(){Xt?.setMode(null)},onDrawingComplete(w){qt=w},onDrawingCancel(w){kt=w},onDrawingSelected(w){V=w},onMarkerSelected(w){q=w},onImagePasted(w){tt=w},onTextPasted(w){ht=w},onDrawingDblClick(w){gt=w},onChartDblClick(w){ot=w},onIndicatorDblClick(w){Qt=w},setReplayState(w,L,W){Pt()||(u.set_replay_state(w,L,W),D())},setReplayHovered(w){Pt()||u.set_replay_hovered(w)},setReplayPreview(w){Pt()||(u.set_replay_preview(w),D())},setPrecision(w){u.set_price_precision(w),D()},setYAutoScale(w){typeof u.set_y_auto_scale=="function"&&(u.set_y_auto_scale(!!w),D())},getYAutoScale(){return typeof u.y_auto_scale=="function"?!!u.y_auto_scale():!0},setCandleInterval(w){u.set_candle_interval(w)},setTzOffsetSeconds(w){if(Pt())return;let L=Number.isFinite(w)?Math.trunc(w):0;if(typeof u.set_tz_offset_seconds=="function"){try{u.set_tz_offset_seconds(L)}catch{}D()}},setTheme(w){let L=w==="light"?1:0;typeof u.set_theme=="function"?(u.set_theme(L),D()):console.warn("[ChartEngine] set_theme not available \u2014 reload page to load updated WASM")},getTheme(){return u.get_theme()===1?"light":"dark"},setCandleBullColor(w){let[L,W,et]=Kt(w);typeof u.set_candle_bull_color=="function"&&(u.set_candle_bull_color(L,W,et),D())},setCandleBearColor(w){let[L,W,et]=Kt(w);typeof u.set_candle_bear_color=="function"&&(u.set_candle_bear_color(L,W,et),D())},setBackgroundColor(w){let[L,W,et]=Kt(w);typeof u.set_background_color=="function"&&(u.set_background_color(L,W,et),D())},setGridColor(w,L=255){let[W,et,pt]=Kt(w);typeof u.set_grid_color=="function"&&(u.set_grid_color(W,et,pt,L),D())},setCrosshairColor(w,L=160){let[W,et,pt]=Kt(w);typeof u.set_crosshair_color=="function"&&(u.set_crosshair_color(W,et,pt,L),D())},setCrosshairStyle(w){typeof u.set_crosshair_style=="function"&&(u.set_crosshair_style(w),D())},setCrosshairWidth(w){typeof u.set_crosshair_width=="function"&&(u.set_crosshair_width(w),D())},setAxisLabelColor(w,L=255){let[W,et,pt]=Kt(w);typeof u.set_axis_label_color=="function"&&(u.set_axis_label_color(W,et,pt,L),D())},setAxisLabelHiColor(w,L=255){let[W,et,pt]=Kt(w);typeof u.set_axis_label_hi_color=="function"&&(u.set_axis_label_hi_color(W,et,pt,L),D())},setPriceTagTextColor(w,L=255){let[W,et,pt]=Kt(w);typeof u.set_price_tag_text_color=="function"&&(u.set_price_tag_text_color(W,et,pt,L),D())},setCrosshairLabelTextColor(w,L=230){let[W,et,pt]=Kt(w);typeof u.set_crosshair_label_text_color=="function"&&(u.set_crosshair_label_text_color(W,et,pt,L),D())},setCrosshairMagnet(w){if(typeof u.set_crosshair_magnet!="function")return;let L=0;if(typeof w=="number")L=w===1||w===2?w:0;else if(typeof w=="string"){let W=w.toLowerCase();W==="weak"?L=1:W==="strong"?L=2:L=0}u.set_crosshair_magnet(L),D()},setFontSize(w){typeof u.set_font_size=="function"&&(u.set_font_size(w),D())},getFontSize(){return typeof u.get_font_size=="function"?u.get_font_size():11},setGridHVisible(w){typeof u.set_grid_h_visible=="function"&&(u.set_grid_h_visible(!!w),D())},setGridVVisible(w){typeof u.set_grid_v_visible=="function"&&(u.set_grid_v_visible(!!w),D())},setSessionLevels(w){typeof u.set_session_levels_enabled=="function"&&(u.set_session_levels_enabled(!!w),D())},setLastPriceLine(w){if(!(!w||typeof w!="object")){if(typeof w.enabled=="boolean"&&typeof u.set_last_price_line_enabled=="function"&&u.set_last_price_line_enabled(w.enabled),typeof u.set_last_price_line_style=="function"){let L=Number.isFinite(w.width)?w.width:1,W=Number.isFinite(w.dashLen)?w.dashLen:4,et=Number.isFinite(w.gapLen)?w.gapLen:3;u.set_last_price_line_style(L,W,et)}D()}},setBarCloseCountdown(w){!w||typeof w!="object"||(typeof w.enabled=="boolean"&&typeof u.set_bar_close_countdown_enabled=="function"&&u.set_bar_close_countdown_enabled(w.enabled),typeof w.text=="string"&&typeof u.set_bar_close_countdown_text=="function"&&u.set_bar_close_countdown_text(w.text),D())},setDrawingsVisible(w){typeof u.set_drawings_visible=="function"&&(u.set_drawings_visible(!!w),D())},setIndicatorsVisible(w){typeof u.set_indicators_visible=="function"&&(u.set_indicators_visible(!!w),D())},setKlineVisible(w){typeof u.set_kline_visible=="function"&&(u.set_kline_visible(!!w),D())},getKlineVisible(){return typeof u.get_kline_visible=="function"?!!u.get_kline_visible():!0},setPositionMarkersVisible(w){let L=!!w;De=L;for(let W of bt.list())ye.includes(W.name)&&bt.setEnabled(W.id,L);D()},setBgGradient(w,L){if(typeof u.set_bg_gradient=="function"){let[W,et,pt]=Kt(L||"#000000");u.set_bg_gradient(!!w,W,et,pt),D()}},setCandleBullWickColor(w){let[L,W,et]=Kt(w);typeof u.set_candle_bull_wick_color=="function"&&(u.set_candle_bull_wick_color(L,W,et),D())},setCandleBullBorderColor(w){let[L,W,et]=Kt(w);typeof u.set_candle_bull_border_color=="function"&&(u.set_candle_bull_border_color(L,W,et),D())},setCandleBearWickColor(w){let[L,W,et]=Kt(w);typeof u.set_candle_bear_wick_color=="function"&&(u.set_candle_bear_wick_color(L,W,et),D())},setCandleBearBorderColor(w){let[L,W,et]=Kt(w);typeof u.set_candle_bear_border_color=="function"&&(u.set_candle_bear_border_color(L,W,et),D())},onTooltip(w){B=w},onVrvpHover(w){ee=w},onLtHover(w){Zt=w},onPostRender(w){g=w},onLiqAnnotationPin(w){b=w},onQuickTradeBtnClick(w){Ne=w},setQuickTradeBtnEnabled(w){typeof u.set_quick_trade_btn_enabled=="function"&&(u.set_quick_trade_btn_enabled(!!w),D())},hitQuickTradeBtn(w,L){return typeof u.is_in_quick_trade_btn!="function"?!1:!!u.is_in_quick_trade_btn(w,L)},crosshairWorldY(){return typeof u.crosshair_world_y!="function"?0:u.crosshair_world_y()},pause(){H||(H=!0,T&&(cancelAnimationFrame(T),T=null),Y&&(clearTimeout(Y),Y=null))},resume(){H&&(H=!1,P&&(A=!0,xt()))},get isPaused(){return H},addImageBlob(w){return mt(w)},async registerImage(w,L){if(!w||w<=0||!L)return!1;try{let W=L;if(L instanceof Blob){let et=URL.createObjectURL(L);W=new Image,await new Promise((pt,yt)=>{W.onload=()=>pt(),W.onerror=Lt=>yt(Lt),W.src=et})}return X.set(w>>>0,W),w>=k&&(k=(w>>>0)+1),D(),!0}catch(W){return console.warn("[bridge] registerImage failed id="+w,W?.message||W),!1}},unregisterImage(w){let L=X.delete(w>>>0);return L&&D(),L},hasImage(w){return X.has(w>>>0)},listImageIds(){return Array.from(X.keys())},nextImageId(){return k++},pushUndoSnapshot(){nt()},undo(){return ct()},redo(){return ft()},canUndo(){return it.length>0},canRedo(){return rt.length>0},getUndoSnapshots(){return[...it,...rt]},clearUndoStack(){it.length=0,rt.length=0},pasteImageFromClipboard(w){return dt(w)},pasteTextFromClipboard(w){return At(w)},destroy(){x=!0,E.destroyed=!0,P=!1,H=!1,T&&(cancelAnimationFrame(T),T=null),Y&&(clearTimeout(Y),Y=null),I();try{$t?.destroy?.()}catch{}try{at.invalidate()}catch{}try{j.invalidate()}catch{}try{X.clear()}catch{}if(!E.dead)try{_.free()}catch{}E.dead=!0},addIndicator(w){if(!Q("customIndicators"))return null;let L=bt.add(w);return!De&&w&&ye.includes(w.name)&&bt.setEnabled(L,!1),D(),L},removeIndicator(w){bt.remove(w),D()},updateIndicatorParams(w,L){bt.updateParams(w,L),D()},setIndicatorEnabled(w,L){bt.setEnabled(w,L),D()},isDslNeedsCvd(){return bt.isDslNeedsTakerBuy()},isDslNeedsOi(){return bt.isDslNeedsOpenInterest()},isDslNeedsFr(){return bt.isDslNeedsFundingRate()},setDslDerivativesNeededCallback(w){bt.setDslDerivativesNeededCallback(w)},customIndicatorAtPoint(w,L){return bt.indicatorAtPoint(w,L)},listIndicators(){return bt.list()},setIndicatorCalcOnEveryTick(w,L){bt.setCalcOnEveryTick(w,L),D()},invalidateCustomIndicators(){bt.invalidateCompute(),D()},releaseAllCustomIndicatorState(){bt.releaseAllPersistentState(),D()},hideCustomPanesForFocus(){let w=bt.hidePanesForFocus();return w.length>0&&D(),w},restoreCustomPanesFromFocus(w){!Array.isArray(w)||w.length===0||(bt.restorePanesFromFocus(w),D())},resetPriceScale(){if(!f){try{u.set_y_auto_scale(!0)}catch{}for(let w=1;w<=5;w++)try{u.reset_indicator_y_auto(w)}catch{}D()}},resetView({isMobile:w=!1}={}){if(!f){try{typeof u.show_default_view=="function"?u.show_default_view():u.show_latest(w?115:450)}catch{}try{u.set_y_auto_scale(!0)}catch{}for(let L=1;L<=5;L++)try{u.reset_indicator_y_auto(L)}catch{}D()}},fitFootprintView({isMobile:w}={}){if(!f){try{let L=(()=>{try{return Math.max(0,u.chart_area_w())}catch{return 0}})(),W=typeof w=="boolean"?w:L>0&&L<992,et=W?28:50,pt=W?12:24,yt=W?60:120,Lt=W?30:50,re=L>1?Math.floor(L/et):Lt,Se=0;try{Se=Number(u.kline_count?.()||0)}catch{}let _r=Math.max(2,Math.min(Math.max(pt,Math.min(yt,re)),Se>0?Se:yt));u.show_latest(_r)}catch{}try{u.set_y_auto_scale(!0)}catch{}for(let L=1;L<=5;L++)try{u.reset_indicator_y_auto(L)}catch{}D()}},get license(){return{plan:s.plan,valid:s.valid,expired:!!s.expired,watermark:!!s.watermark,daysLeft:s.daysLeft,features:s.features||{}}},async setLicenseKey(w){s=await Yr(w),!s.valid&&!s.expired&&console.error(`[MRD Chart Engine] ${s.error}`),Q=Dr(s.plan);try{let L=typeof w=="string"?w:"",W=Date.now(),et=typeof window<"u"&&window.location?.hostname||"";u.set_license_token(L,W,et)}catch{}return D(),s.valid},...wt,...lt,..._t}}function Ki(t,e){let{t:n,o:s,h:v,l:c,c:d,v:h}=t,r=d.length;if(r===0||e<=0)return{t:[],o:[],h:[],l:[],c:[],v:[]};let i=[],o=[],a=[],_=[],f=[],E=[],p=Math.round(d[0]/e)*e,F=0;for(let u=0;u<r;u++){F+=h[u];let A=d[u]-p;for(;A>=e;){let T=p,P=p+e;i.push(n[u]),o.push(T),a.push(P),_.push(T),f.push(P),E.push(F),F=0,p=P}for(;-A>=e;){let T=p,P=p-e;i.push(n[u]),o.push(T),a.push(T),_.push(P),f.push(P),E.push(F),F=0,p=P}}return{t:i,o,h:a,l:_,c:f,v:E}}function $i(t,e){let{t:n,o:s,h:v,l:c,c:d,v:h}=t,r=d.length;if(r===0||e<=0)return{t:[],o:[],h:[],l:[],c:[],v:[]};let i=[],o=[],a=[],_=[],f=[],E=[],p=s[0],F=v[0],u=c[0],O=0,A=n[0];for(let T=0;T<r;T++)for(F=Math.max(F,v[T]),u=Math.min(u,c[T]),O+=h[T];F-u>=e;){let P=d[T]>=p,H=P?u+e:F-e;if(i.push(A),o.push(p),a.push(F),_.push(u),f.push(H),E.push(O),p=H,F=P?Math.max(v[T],H):H,u=P?H:Math.min(c[T],H),O=0,A=n[T],F-u<e)break}return(O>0||i.length===0)&&(i.push(A),o.push(p),a.push(F),_.push(u),f.push(d[r-1]),E.push(O)),{t:i,o,h:a,l:_,c:f,v:E}}function ji(t,e){let{t:n,o:s,h:v,l:c,c:d,v:h}=t,r=d.length;if(r===0||e<=0)return{t:[],o:[],h:[],l:[],c:[],v:[]};let i=[],o=[],a=[],_=[],f=[],E=[],p=Math.max(1,Math.round(e));for(let F=0;F<r;F+=p){let u=Math.min(F+p,r),O=-1/0,A=1/0,T=0;for(let P=F;P<u;P++)v[P]>O&&(O=v[P]),c[P]<A&&(A=c[P]),T+=h[P];i.push(n[F]),o.push(s[F]),a.push(O),_.push(A),f.push(d[u-1]),E.push(T)}return{t:i,o,h:a,l:_,c:f,v:E}}function Qi(t,e){let n=t>1e4?50:t>1e3?10:t>100?1:t>1?.1:.001,s=n*2,v=e<=60?10:e<=300?5:3;return{brickSize:n,rangeSize:s,tickCount:v}}var Ji={minRefills:3,hiddenRatio:2,refillWindowMs:1e4,maxTrackedLevels:200,maxEvents:500,decayMs:3e5};function Di(t={}){let e={...Ji,...t},n=new Map,s=new Map,v=[],c=0;function d(_){return Math.round(_*1e8)/1e8}function h(_,f,E,p){for(let[F,u]of _){let O=d(F),A=f.get(O);if(!A){f.set(O,{lastVol:u,refills:0,totalConsumed:0,lastRefillTs:p,peakVisible:u});continue}if(u<A.lastVol*.3&&A.lastVol>0){let T=A.lastVol-u;A.totalConsumed+=T,A.lastVol=u;continue}if(u>A.lastVol*1.5&&A.totalConsumed>0)if(p-A.lastRefillTs<e.refillWindowMs){if(A.refills++,A.lastRefillTs=p,A.peakVisible=Math.max(A.peakVisible,u),A.refills>=e.minRefills){let P=A.totalConsumed,H=A.peakVisible;P>=H*e.hiddenRatio&&(v.push({timestamp:p,price:F,visibleSize:H,hiddenSize:P,isBid:E,refillCount:A.refills}),v.length>e.maxEvents&&v.shift(),A.refills=0,A.totalConsumed=0)}}else A.refills=1,A.totalConsumed=0,A.lastRefillTs=p;A.lastVol=u}if(f.size>e.maxTrackedLevels){let F=[...f.entries()];F.sort((O,A)=>O[1].lastRefillTs-A[1].lastRefillTs);let u=F.length-e.maxTrackedLevels;for(let O=0;O<u;O++)f.delete(F[O][0])}}function r(_,f,E){let p=E||Date.now();c=p;let F=_ instanceof Map?_:new Map(_.map(([A,T])=>[A,T])),u=f instanceof Map?f:new Map(f.map(([A,T])=>[A,T]));h(F,n,!0,p),h(u,s,!1,p);let O=p-e.decayMs;for(;v.length>0&&v[0].timestamp<O;)v.shift()}function i(){return v}function o(_){if(!_||v.length===0)return;let f=v.length,E=new Float64Array(f),p=new Float64Array(f),F=new Float64Array(f),u=new Float64Array(f),O=new Uint8Array(f),A=new Uint32Array(f);for(let T=0;T<f;T++){let P=v[T];E[T]=P.timestamp,p[T]=P.price,F[T]=P.visibleSize,u[T]=P.hiddenSize,O[T]=P.isBid?1:0,A[T]=P.refillCount}_.setIcebergEvents(E,p,F,u,O,A)}function a(){n.clear(),s.clear(),v.length=0}return{onOrderbookUpdate:r,getEvents:i,pushToEngine:o,reset:a}}var Yn=null,ws=null;async function ta(){if(Yn)return Yn;let{module:t,memory:e}=await xe();return Yn=t,ws=e,t}var ms=Promise.resolve();async function ea(t,e={}){let n=await ta();return await(ms=ms.then(()=>gs(n,t,e),()=>gs(n,t,e)))}function gs(t,e,n){let s=window.devicePixelRatio||1,c=(e.parentElement||e).getBoundingClientRect(),d=Math.max(c.width,60),h=Math.max(c.height,60),r={width:d,height:h};e.width=Math.round(d*s),e.height=Math.round(h*s);let i=e.getContext("2d");i.setTransform(s,0,0,s,0,0);let o=new t.OrderbookEngine(d,h);n.symbol&&o.set_symbol(n.symbol),n.tickSize&&o.set_tick_size(n.tickSize),n.visibleTicks&&o.set_visible_ticks(n.visibleTicks),n.exchangeCount&&o.set_exchange_count(n.exchangeCount),n.pricePrecision!=null&&o.set_price_precision(n.pricePrecision),n.theme==="light"&&o.set_theme(1),n.heatmapCols&&o.set_heatmap_cols(n.heatmapCols),(n.ringCols||n.ringRows)&&o.set_ring_capacity(n.ringCols||300,n.ringRows||400),n.heatmapAlphaMul!=null&&o.set_heatmap_alpha_mul(Number(n.heatmapAlphaMul)),n.showCumulative!=null&&o.set_show_cumulative(!!n.showCumulative),n.showSignalOverlays!=null&&o.set_show_signal_overlays(!!n.showSignalOverlays);let a=!0,_=null,f=!1,E=!1,p=!1,F=null,u=null;function O(){!f||p||_||(_=requestAnimationFrame(P))}let A=()=>{a=!0,O()};function T(){if(p)return!1;try{if(o.render()>0){let q=o.get_command_buffer_ptr(),tt=o.get_command_buffer_len();i.save(),i.setTransform(1,0,0,1,0,0),i.clearRect(0,0,e.width,e.height),i.restore(),ne(i,ws,q,tt)}return!0}catch(V){return V instanceof WebAssembly.RuntimeError&&(p=!0,console.error("[OrderbookEngine] crashed:",V.message)),!1}}function P(){if(_=null,!f||p)return;let V=!1;try{V=a||o.is_dirty()}catch{p=!0;return}V&&(T()?a=!1:a=!0)}e.style.touchAction="none";let H=!1,x=0,B=new Map,Y=0,z=0,K=0,at=0,j=!1,X=!1,k=0,J=null,it=280,rt=5,ut=null,nt=!1,ct=0,ft=0;function mt(){ut!=null&&(clearTimeout(ut),ut=null)}function dt(){if(nt){nt=!1;try{o.clear_range()}catch{}if(J)try{J(null)}catch{}A()}}function At(V){if(!p){nt=!0,H=!1;try{o.set_range_from_mid(V)}catch{}try{o.clear_hover()}catch{}try{navigator.vibrate&&navigator.vibrate(8)}catch{}if(A(),J)try{let q=o.get_range_low_price(),tt=o.get_range_high_price();tt>q&&J({low:q,high:tt,delta:tt-q,deltaPct:q>0?(tt-q)/q*100:0,bidQty:o.get_range_bid_qty(),askQty:o.get_range_ask_qty(),ticks:o.get_range_tick_count(),mode:"hover"})}catch{}}}function Ft(V){if(p)return;V.preventDefault();let q=V.deltaY>0?1.08:.93;o.zoom_y(q,V.offsetY),A()}function zt(V){if(!p){if(B.set(V.pointerId,{y:V.offsetY}),e.setPointerCapture(V.pointerId),B.size===1)if(V.shiftKey){X=!0,k=V.offsetY,H=!1;try{o.set_range(k,V.offsetY)}catch{}try{o.clear_hover()}catch{}A()}else{try{o.clear_range()}catch{}if(J)try{J(null)}catch{}H=!0,x=V.offsetY,at=V.offsetX,K=V.offsetY,j=!1,V.pointerType==="touch"&&(ct=V.offsetX,ft=V.offsetY,mt(),ut=setTimeout(()=>{ut=null,!(B.size!==1||!H||j)&&At(ft)},it))}else if(B.size===2){if(mt(),nt&&dt(),X){X=!1;try{o.clear_range()}catch{}}H=!1;let q=[...B.values()];Y=Math.abs(q[0].y-q[1].y),z=(q[0].y+q[1].y)/2}}}function xt(V){if(!p)if(B.set(V.pointerId,{y:V.offsetY}),B.size>=2){let q=[...B.values()],tt=Math.abs(q[0].y-q[1].y),ht=(q[0].y+q[1].y)/2;if(Y>0){let ot=Y/Math.max(tt,1);o.zoom_y(ot,ht)}let gt=ht-z;Math.abs(gt)>.5&&o.pan_y(gt),Y=tt,z=ht,A()}else if(X){try{o.set_range(k,V.offsetY)}catch{}if(A(),J)try{let q=o.get_range_low_price(),tt=o.get_range_high_price();tt>q&&J({low:q,high:tt,delta:tt-q,deltaPct:q>0?(tt-q)/q*100:0,bidQty:o.get_range_bid_qty(),askQty:o.get_range_ask_qty(),ticks:o.get_range_tick_count(),mode:"measure"})}catch{}}else if(nt){try{o.set_range_from_mid(V.offsetY)}catch{}if(A(),J)try{let q=o.get_range_low_price(),tt=o.get_range_high_price();tt>q?J({low:q,high:tt,delta:tt-q,deltaPct:q>0?(tt-q)/q*100:0,bidQty:o.get_range_bid_qty(),askQty:o.get_range_ask_qty(),ticks:o.get_range_tick_count(),mode:"hover"}):J(null)}catch{}}else if(H){let q=V.offsetY-x;x=V.offsetY,(Math.abs(V.offsetX-at)>4||Math.abs(V.offsetY-K)>4)&&(j=!0),ut!=null&&(Math.abs(V.offsetX-ct)>rt||Math.abs(V.offsetY-ft)>rt)&&mt(),o.pan_y(q),A()}else{o.set_hover(V.offsetX,V.offsetY);try{o.set_range_from_mid(V.offsetY)}catch{}if(A(),F)try{let q=o.get_hover_price();if(q>0){let tt=o.get_hover_qty(),ht=o.get_hover_side();F({price:q,qty:tt,side:ht===2?"ask":"bid"})}else F(null)}catch{}if(J)try{let q=o.get_range_low_price(),tt=o.get_range_high_price();tt>q?J({low:q,high:tt,delta:tt-q,deltaPct:q>0?(tt-q)/q*100:0,bidQty:o.get_range_bid_qty(),askQty:o.get_range_ask_qty(),ticks:o.get_range_tick_count(),mode:"hover"}):J(null)}catch{}}}function D(){if(!p){if(F&&F(null),o.clear_hover(),!X){try{o.clear_range()}catch{}if(J)try{J(null)}catch{}}A()}}function Pt(V){let q=H&&!j&&B.size===1&&!nt,tt=X,ht=nt;B.delete(V.pointerId);try{e.releasePointerCapture(V.pointerId)}catch{}if(mt(),B.size===0){if(tt&&!p){try{o.clear_range()}catch{}if(J)try{J(null)}catch{}X=!1,A()}if(ht&&dt(),q&&u&&!p)try{o.set_hover(V.offsetX,V.offsetY);let gt=o.get_hover_price();if(gt>0){let ot=o.get_hover_qty(),Qt=o.get_hover_side();u({price:gt,qty:ot,side:Qt===2?"ask":"bid"})}}catch{}H=!1,Y=0}else B.size===1&&(H=!0,x=[...B.values()][0].y,Y=0)}function Xt(V){if(!(V.key!=="Escape"||p)&&X){X=!1;try{o.clear_range()}catch{}if(J)try{J(null)}catch{}A()}}function qt(){p||(o.center_on_mid(),A())}e.addEventListener("wheel",Ft,{passive:!1}),e.addEventListener("pointerdown",zt),e.addEventListener("pointermove",xt),e.addEventListener("pointerup",Pt),e.addEventListener("pointercancel",Pt),e.addEventListener("pointerleave",D),e.addEventListener("dblclick",qt),window.addEventListener("keydown",Xt);function kt(){e.removeEventListener("wheel",Ft),e.removeEventListener("pointerdown",zt),e.removeEventListener("pointermove",xt),e.removeEventListener("pointerup",Pt),e.removeEventListener("pointercancel",Pt),e.removeEventListener("pointerleave",D),e.removeEventListener("dblclick",qt),window.removeEventListener("keydown",Xt)}return{engine:o,start(){f=!0,a=!0,O()},stop(){f=!1,_&&(cancelAnimationFrame(_),_=null)},resize(){if(E||p)return;let q=(e.parentElement||e).getBoundingClientRect(),tt=Math.max(q.width,1),ht=Math.max(q.height,1);if(tt<1||ht<1)return;s=window.devicePixelRatio||1;let gt=Math.round(tt*s),ot=Math.round(ht*s),Qt=e.width!==gt||e.height!==ot;e.width!==gt&&(e.width=gt),e.height!==ot&&(e.height=ot),i.setTransform(s,0,0,s,0,0),r={width:tt,height:ht};try{o.resize(tt,ht),Qt&&T()}catch(ee){if(ee instanceof WebAssembly.RuntimeError){p=!0;return}throw ee}A()},pushSnapshot(V,q,tt){if(p)return;let ht=new Float64Array(V.length*2);for(let ot=0;ot<V.length;ot++)ht[ot*2]=V[ot][0],ht[ot*2+1]=V[ot][1];let gt=new Float64Array(q.length*2);for(let ot=0;ot<q.length;ot++)gt[ot*2]=q[ot][0],gt[ot*2+1]=q[ot][1];try{o.push_snapshot(ht,gt,tt)}catch(ot){if(ot instanceof WebAssembly.RuntimeError){p=!0;return}throw ot}A()},pushSnapshotFlat(V,q,tt){if(!p){try{o.push_snapshot(V,q,tt)}catch(ht){if(ht instanceof WebAssembly.RuntimeError){p=!0;return}throw ht}A()}},setDepthBook(V,q,tt){if(p)return;let ht=new Float64Array(V.length*2);for(let ot=0;ot<V.length;ot++)ht[ot*2]=V[ot][0],ht[ot*2+1]=V[ot][1];let gt=new Float64Array(q.length*2);for(let ot=0;ot<q.length;ot++)gt[ot*2]=q[ot][0],gt[ot*2+1]=q[ot][1];try{o.set_depth_book(ht,gt,tt)}catch(ot){if(ot instanceof WebAssembly.RuntimeError){p=!0;return}throw ot}A()},setDepthBookFlat(V,q,tt){if(!p){try{o.set_depth_book(V,q,tt)}catch(ht){if(ht instanceof WebAssembly.RuntimeError){p=!0;return}throw ht}A()}},pushHeatmapCol(V,q,tt){if(p)return;let ht=new Float64Array(V.length*2);for(let ot=0;ot<V.length;ot++)ht[ot*2]=V[ot][0],ht[ot*2+1]=V[ot][1];let gt=new Float64Array(q.length*2);for(let ot=0;ot<q.length;ot++)gt[ot*2]=q[ot][0],gt[ot*2+1]=q[ot][1];try{o.push_heatmap_col(ht,gt,tt)}catch(ot){if(ot instanceof WebAssembly.RuntimeError){p=!0;return}throw ot}A()},pushHeatmapColFlat(V,q,tt){if(!p){try{o.push_heatmap_col(V,q,tt)}catch(ht){if(ht instanceof WebAssembly.RuntimeError){p=!0;return}throw ht}A()}},resetRing(){if(!p){try{o.reset_ring()}catch(V){if(V instanceof WebAssembly.RuntimeError){p=!0;return}throw V}A()}},setExchangeLabels(V){if(p)return;let q=Array.isArray(V)?V.join(","):String(V);try{o.set_exchange_labels(q)}catch(tt){if(tt instanceof WebAssembly.RuntimeError){p=!0;return}throw tt}A()},setSignalObi(V,q,tt){if(!p){try{o.set_signal_obi(V,q,tt)}catch(ht){if(ht instanceof WebAssembly.RuntimeError){p=!0;return}throw ht}A()}},setSignalSpoof(V){if(!p){try{o.set_signal_spoof(V)}catch(q){if(q instanceof WebAssembly.RuntimeError){p=!0;return}throw q}A()}},setSignalAbsorption(V,q){if(!p){try{o.set_signal_absorption(V,q)}catch(tt){if(tt instanceof WebAssembly.RuntimeError){p=!0;return}throw tt}A()}},setSignalFlow(V,q){if(!p){try{o.set_signal_flow(V,q)}catch(tt){if(tt instanceof WebAssembly.RuntimeError){p=!0;return}throw tt}A()}},setSignalWalls(V,q){if(!p){try{o.set_signal_walls(new Float64Array(V),new Float64Array(q))}catch(tt){if(tt instanceof WebAssembly.RuntimeError){p=!0;return}throw tt}A()}},setSignalGaps(V,q){if(!p){try{o.set_signal_gaps(new Float64Array(V),new Float64Array(q))}catch(tt){if(tt instanceof WebAssembly.RuntimeError){p=!0;return}throw tt}A()}},setSymbol(V){p||(o.set_symbol(V),A())},setTickSize(V){p||(o.set_tick_size(V),A())},setVisibleTicks(V){p||(o.set_visible_ticks(V),A())},setExchangeCount(V){p||(o.set_exchange_count(V),A())},setPrecision(V){p||(o.set_price_precision(V),A())},setAutoCenter(V){p||o.set_auto_center(V)},centerOnMid(){p||(o.center_on_mid(),A())},setHeatmapCols(V){p||(o.set_heatmap_cols(V),A())},setHeatmapAlphaMul(V){if(!p){try{o.set_heatmap_alpha_mul(Number(V))}catch(q){if(q instanceof WebAssembly.RuntimeError){p=!0;return}throw q}A()}},setShowCumulative(V){if(!p){try{o.set_show_cumulative(!!V)}catch(q){if(q instanceof WebAssembly.RuntimeError){p=!0;return}throw q}A()}},setShowSignalOverlays(V){if(!p){try{o.set_show_signal_overlays(!!V)}catch(q){if(q instanceof WebAssembly.RuntimeError){p=!0;return}throw q}A()}},getHoverPrice(){return p?0:o.get_hover_price()},getHoverQty(){return p?0:o.get_hover_qty()},getHoverSide(){return p?0:o.get_hover_side()},onHoverPrice(V){F=V},onClickPrice(V){u=V},onRangeUpdate(V){J=V},clearRange(){if(!p){if(X&&(X=!1,J))try{J(null)}catch{}try{o.clear_range()}catch{}A()}},setTheme(V){p||(o.set_theme(V==="light"?1:0),A())},setThemePalette(V){if(!(p||!V)&&typeof o.set_trade_palette=="function"){try{o.set_trade_palette(Hn(V.bg),Hn(V.bull),Hn(V.bear),V.themed?1:0)}catch{}A()}},clear(){p||(o.clear(),A())},get isDead(){return p},destroy(){E=!0,f=!1,_&&(cancelAnimationFrame(_),_=null),mt(),kt();try{o.free()}catch{}}}}function Hn(t){if(typeof t!="string")return 0;let e=t.trim().replace(/^#/,"");if(e.length<6)return 0;let n=parseInt(e.slice(0,6),16);return Number.isFinite(n)?n>>>0:0}var zn=null,Ts=null;async function ra(){if(zn)return zn;let{module:t,memory:e}=await xe();return zn=t,Ts=e,t}var vs=Promise.resolve();async function na(t,e={}){let n=await ra();return vs=vs.then(()=>ys(n,t,e),()=>ys(n,t,e))}function ys(t,e,n){let s=window.devicePixelRatio||1,v=()=>{let X=e.parentElement,k=X?X.getBoundingClientRect():e.getBoundingClientRect();return{w:Math.max(60,Math.floor(k.width||60)),h:Math.max(120,Math.floor(k.height||120))}},{w:c,h:d}=v();e.width=Math.round(c*s),e.height=Math.round(d*s);let h=e.getContext("2d");h.setTransform(s,0,0,s,0,0);let r=new t.DomLadderEngine(c,d);n.tickSize&&r.set_tick_size(n.tickSize),n.pricePrecision!=null&&r.set_price_precision(n.pricePrecision),n.visibleRows&&r.set_visible_rows(n.visibleRows),n.theme==="light"&&r.set_theme(1),Number.isFinite(n.textScale)&&r.set_text_scale(n.textScale),Number.isFinite(n.fillIntensity)&&r.set_fill_intensity(n.fillIntensity),n.qtyDisplayUsd===!0&&r.set_qty_display_usd(1);let i=!0,o=null,a=!1,_=!1,f=!1,E=null,p=null;function F(){!a||f||o||(o=requestAnimationFrame(A))}let u=()=>{i=!0,F()};function O(){if(f)return!1;try{if(r.render()>0){let k=r.get_command_buffer_ptr(),J=r.get_command_buffer_len();h.save(),h.setTransform(1,0,0,1,0,0),h.clearRect(0,0,e.width,e.height),h.restore(),ne(h,Ts,k,J)}return!0}catch(X){return X instanceof WebAssembly.RuntimeError&&(f=!0,console.error("[DomLadderEngine] crashed:",X.message)),!1}}function A(){if(o=null,!a||f)return;let X=!1;try{r.set_now_ms(Date.now()),X=i||r.is_dirty()}catch{f=!0;return}X&&(O()?i=!1:i=!0),a&&!f&&(o=requestAnimationFrame(A))}e.style.touchAction="none";let T=0,P=0,H=!1;function x(X){f||(T=X.offsetX,P=X.offsetY,H=!1)}function B(X){if(!f&&((Math.abs(X.offsetX-T)>4||Math.abs(X.offsetY-P)>4)&&(H=!0),r.set_hover(X.offsetX,X.offsetY),u(),E))try{let k=r.get_hover_price();if(k>0){let J=r.get_hover_side();E({price:k,side:J===1?"ask":"bid"},X)}else E(null,X)}catch{}}function Y(){f||(E&&E(null),r.clear_hover(),u())}function z(X){if(!f&&!H&&p)try{r.set_hover(X.offsetX,X.offsetY);let k=r.get_hover_price();if(k>0){let J=r.get_hover_side();p({price:k,side:J===1?"ask":"bid"})}}catch{}}function K(){f||(r.center_on_mid(),u())}function at(X){if(f)return;X.preventDefault();let k=X.deltaY;if(X.deltaMode===1?k*=16:X.deltaMode===2&&(k*=e.clientHeight||400),!(Math.abs(k)<.5)){try{r.scroll_by(k)}catch(J){if(J instanceof WebAssembly.RuntimeError){f=!0;return}return}u()}}e.addEventListener("pointerdown",x),e.addEventListener("pointermove",B),e.addEventListener("pointerup",z),e.addEventListener("pointerleave",Y),e.addEventListener("dblclick",K),e.addEventListener("wheel",at,{passive:!1});function j(){e.removeEventListener("pointerdown",x),e.removeEventListener("pointermove",B),e.removeEventListener("pointerup",z),e.removeEventListener("pointerleave",Y),e.removeEventListener("dblclick",K),e.removeEventListener("wheel",at)}return{engine:r,start(){a=!0,i=!0,F()},stop(){a=!1,o&&(cancelAnimationFrame(o),o=null)},resize(){if(_||f)return;let{w:X,h:k}=v();if(X<1||k<1)return;s=window.devicePixelRatio||1;let J=Math.round(X*s),it=Math.round(k*s),rt=e.width!==J||e.height!==it;e.width!==J&&(e.width=J),e.height!==it&&(e.height=it),h.setTransform(s,0,0,s,0,0);try{if(r.resize(X,k),rt){try{r.set_now_ms(Date.now())}catch{}O()}}catch(ut){if(ut instanceof WebAssembly.RuntimeError){f=!0;return}throw ut}u()},pushBook(X,k,J){if(f)return;let it=X instanceof Float64Array?X:Ss(X),rt=k instanceof Float64Array?k:Ss(k);try{r.push_book(it,rt,J)}catch(ut){if(ut instanceof WebAssembly.RuntimeError){f=!0;return}throw ut}u()},appendTrade(X,k,J,it){if(!f){try{r.append_trade(X,k,!!J,it||Date.now())}catch(rt){if(rt instanceof WebAssembly.RuntimeError){f=!0;return}throw rt}u()}},pushDomVol(X){if(!(f||!Array.isArray(X)||X.length===0)){try{for(let k of X){if(!k)continue;let J=Number(k.p??k.price),it=Number(k.b??k.buy??0),rt=Number(k.s??k.sell??0);J>0&&r.push_dom_vol(J,it,rt)}}catch(k){if(k instanceof WebAssembly.RuntimeError){f=!0;return}throw k}u()}},clearDomVol(){if(!f){try{r.clear_dom_vol()}catch(X){if(X instanceof WebAssembly.RuntimeError){f=!0;return}throw X}u()}},setWalls(X,k){if(f)return;let J=X instanceof Float64Array?X:new Float64Array(X||[]),it=k instanceof Float64Array?k:new Float64Array(k||[]);try{r.set_walls(J,it)}catch(rt){if(rt instanceof WebAssembly.RuntimeError){f=!0;return}throw rt}u()},setTickSize(X){if(!f){try{r.set_tick_size(X)}catch(k){if(k instanceof WebAssembly.RuntimeError){f=!0;return}throw k}u()}},setPricePrecision(X){if(!f){try{r.set_price_precision(X)}catch(k){if(k instanceof WebAssembly.RuntimeError){f=!0;return}throw k}u()}},setVisibleRows(X){f||(r.set_visible_rows(X),u())},setTextScale(X){if(!(f||!Number.isFinite(X))){try{r.set_text_scale(X)}catch(k){if(k instanceof WebAssembly.RuntimeError){f=!0;return}throw k}u()}},setFillIntensity(X){if(!(f||!Number.isFinite(X))){try{r.set_fill_intensity(X)}catch(k){if(k instanceof WebAssembly.RuntimeError){f=!0;return}throw k}u()}},setQtyDisplayUsd(X){if(!f){try{r.set_qty_display_usd(X?1:0)}catch(k){if(k instanceof WebAssembly.RuntimeError){f=!0;return}throw k}u()}},setTheme(X){f||(r.set_theme(X==="light"?1:0),u())},setThemePalette(X){if(!(f||!X)&&typeof r.set_trade_palette=="function"){try{r.set_trade_palette(Xn(X.bg),Xn(X.bull),Xn(X.bear),X.themed?1:0)}catch{}u()}},resetSymbol(){f||(r.reset_symbol(),u())},centerOnMid(){f||(r.center_on_mid(),u())},scrollBy(X){if(!(f||!Number.isFinite(X))){try{r.scroll_by(X)}catch(k){if(k instanceof WebAssembly.RuntimeError){f=!0;return}throw k}u()}},isViewLocked(){if(f)return!1;try{return r.is_view_locked()}catch{return!1}},getMomentum(){if(f)return{m1:0,buy1m:0,sell1m:0};try{return{m1:r.momentum_1m(),buy1m:r.buy_volume_1m(),sell1m:r.sell_volume_1m()}}catch{return{m1:0,buy1m:0,sell1m:0}}},onHover(X){E=X},onClick(X){p=X},destroy(){_=!0,a=!1,o&&cancelAnimationFrame(o),o=null,j();try{r.free&&r.free()}catch{}}}}function Xn(t){if(typeof t!="string")return 0;let e=t.trim().replace(/^#/,"");if(e.length<6)return 0;let n=parseInt(e.slice(0,6),16);return Number.isFinite(n)?n>>>0:0}function Ss(t){let e=new Float64Array(t.length*2);for(let n=0;n<t.length;n++)e[n*2]=t[n][0],e[n*2+1]=t[n][1];return e}var Vn=null,As=null;async function oa(){if(Vn)return Vn;let{module:t,memory:e}=await xe();return Vn=t,As=e,t}function sa(){if(typeof navigator>"u")return!1;let t=navigator.userAgent||"",e=typeof matchMedia=="function"&&matchMedia("(pointer: coarse)").matches,n=typeof window<"u"&&Math.min(window.innerWidth,window.innerHeight)<820;return/iphone|ipad|ipod|android|mobile/i.test(t)||e&&n}var Es=Promise.resolve();async function ia(t,e={}){let n=await oa();return Es=Es.then(()=>Cs(n,t,e),()=>Cs(n,t,e))}function Cs(t,e,n){let s=window.devicePixelRatio||1,v=e.getBoundingClientRect(),c=Math.max(v.width,60),d=Math.max(v.height,60);e.width=c*s,e.height=d*s;let h=e.getContext("2d");h.setTransform(1,0,0,1,0,0),h.scale(s,s);let r=e.width,i=e.height,o=new t.TickEngine(c,d);n.tickSize&&o.set_tick_size(n.tickSize),n.pricePrecision!=null&&o.set_price_precision(n.pricePrecision),n.theme==="light"&&o.set_theme(1);let a=n.lookbackMs||5*60*1e3,_=n.cellMs||1e3;(n.lookbackMs||n.cellMs)&&o.set_lookback(a,_),n.showTradeTape!=null&&o.set_show_trade_tape(!!n.showTradeTape),n.showBookHeatmap!=null&&o.set_show_book_heatmap(!!n.showBookHeatmap),n.showVwap!=null&&o.set_show_vwap(!!n.showVwap),n.showGrid!=null&&o.set_show_grid(!!n.showGrid);let f=n.isMobile!=null?!!n.isMobile:sa(),E=!!n.lowPower,p=f||E?33:8,F=66,u=3e4,O=!0,A=null,T=!1,P=!1,H=!1,x=!1,B=0,Y=performance.now(),z=performance.now(),K=0,at=Math.max(4,p-1),j=0,X=0,k=0,J=null,it=null,rt=0,ut=[];function nt(){if(P||!T||typeof document<"u"&&document.hidden)return Number.POSITIVE_INFINITY;let C=performance.now();return(C-Y>u&&C-z>u?F:p)+X}function ct(){!T||P||x||A||(A=requestAnimationFrame(ft))}function ft(C){if(A=null,!T||P||x)return;let I=nt();if(!Number.isFinite(I))return;if(C-B<I){A=requestAnimationFrame(ft);return}B=C,mt();let U=O;if(!U)try{U=o.is_dirty()}catch{x=!0;return}if(U){O=!1;let Z=performance.now();if(!At()){if(x)return;O=!0}let lt=performance.now()-Z;K=K*.85+lt*.15,lt>at?(j+=1,j>=8&&(X=Math.min(100,X+16),j=0,console.debug(`[TickEngine] adaptive throttle \u2192 ${p+X}ms (EMA ${K.toFixed(1)}ms, last ${lt.toFixed(1)}ms)`))):(j=0,X>0&&K<at*.5&&(X=Math.max(0,X-8)))}A=requestAnimationFrame(ft)}function mt(){if(J&&rt>0){try{o.push_book(k,J,it,rt)}catch(C){if(C instanceof WebAssembly.RuntimeError){x=!0;return}}J=null,it=null,rt=0}if(ut.length){let C=new Float64Array(ut);ut.length=0;try{o.push_trades_batch(C)}catch(I){if(I instanceof WebAssembly.RuntimeError){x=!0;return}}}}let dt=()=>{O=!0,ct()};function At(){if(x)return!1;try{if(o.render()>0){let I=o.get_command_buffer_ptr(),U=o.get_command_buffer_len();h.save(),h.setTransform(1,0,0,1,0,0),h.clearRect(0,0,e.width,e.height),h.restore(),ne(h,As,I,U)}return!0}catch(C){return C instanceof WebAssembly.RuntimeError&&(x=!0,console.error("[TickEngine] crashed:",C.message)),!1}}function Ft(){typeof document>"u"||(document.hidden?A&&(cancelAnimationFrame(A),A=null):(ut.length=0,J=null,it=null,rt=0,B=0,dt()))}typeof document<"u"&&document.addEventListener("visibilitychange",Ft);function zt(){if(H||x||(v=e.getBoundingClientRect(),v.width<1||v.height<1))return;s=window.devicePixelRatio||1;let C=Math.round(v.width*s),I=Math.round(v.height*s);try{o.resize(v.width,v.height)}catch(U){if(U instanceof WebAssembly.RuntimeError){x=!0;return}throw U}if(P){dt();return}(C!==r||I!==i)&&(r=C,i=I,e.width=C,e.height=I,h.setTransform(1,0,0,1,0,0),h.scale(s,s)),At(),dt()}let xt=0,D=2,Pt=3,Xt=xt,qt=!1,kt=0,V=0,q=new Map,tt=0,ht=0;function gt(C,I){if(x)return xt;try{let U=o.hit_zone?.(C,I);return Number.isFinite(U)?U:xt}catch{return xt}}function ot(){}e.style.touchAction="none";function Qt(C){if(x||P)return;C.stopImmediatePropagation(),C.preventDefault(),Y=performance.now();let I=C.deltaY,U=C.deltaX,Z=Math.abs(I)>=Math.abs(U)?I:U;if(Z===0)return;let Q=Z>0?1.1:.9,lt=gt(C.offsetX,C.offsetY);try{C.ctrlKey?o.zoom_y(C.offsetY,Q):C.shiftKey||lt===D?o.zoom_x(C.offsetX,Q):lt===Pt?o.zoom_y(C.offsetY,Q):o.zoom(C.offsetX,C.offsetY,Q)}catch{}dt()}function ee(C){if(!(x||P)){if(C.stopImmediatePropagation(),Y=performance.now(),q.set(C.pointerId,{x:C.offsetX,y:C.offsetY}),e.setPointerCapture(C.pointerId),q.size===1)qt=!0,kt=C.offsetX,V=C.offsetY,Xt=gt(C.offsetX,C.offsetY);else if(q.size===2){qt=!1;let I=[...q.values()];tt=Math.abs(I[0].y-I[1].y),ht=(I[0].y+I[1].y)/2}}}function Ne(C){if(x||P)return;let I=q.has(C.pointerId);if(I&&C.stopImmediatePropagation(),Y=performance.now(),I&&q.set(C.pointerId,{x:C.offsetX,y:C.offsetY}),I&&q.size>=2){let U=[...q.values()],Z=Math.abs(U[0].y-U[1].y),Q=(U[0].y+U[1].y)/2;if(tt>0){let _t=tt/Math.max(Z,1);try{o.zoom_y(Q,_t)}catch{}}let lt=Q-ht;if(Math.abs(lt)>.5)try{o.pan_y(lt)}catch{}tt=Z,ht=Q,dt()}else if(I&&qt){let U=C.offsetX-kt,Z=C.offsetY-V;kt=C.offsetX,V=C.offsetY;try{if(Xt===D){if(Math.abs(U)>.5){let Q=Math.exp(U*.004);o.zoom_x(kt,Q)}}else if(Xt===Pt){if(Math.abs(Z)>.5){let Q=Math.exp(Z*.004);o.zoom_y(V,Q)}}else Math.abs(U)>.5&&o.pan_x(U),Math.abs(Z)>.5&&o.pan_y(Z)}catch{}dt()}else{try{o.set_hover(C.offsetX,C.offsetY)}catch{}dt()}}function Zt(C){if(x)return;let I=q.has(C.pointerId);!P&&I&&C.stopImmediatePropagation(),q.delete(C.pointerId);try{e.releasePointerCapture(C.pointerId)}catch{}if(q.size===0)qt=!1,tt=0;else if(q.size===1){qt=!0;let U=[...q.values()][0];kt=U.x,V=U.y,tt=0}}function l(C){if(x)return;let I=q.has(C.pointerId);!P&&I&&C.stopImmediatePropagation();try{o.clear_hover()}catch{}dt()}function g(C){if(x||P)return;C.stopImmediatePropagation();let I=gt(C.offsetX,C.offsetY);try{I===Pt?o.reset_y_auto?.():I===D?o.set_follow_live?.(!0):o.reset_view?.()}catch{}dt()}function b(C){x||P||C.stopImmediatePropagation()}function y(C){x||P||q.size>0&&C.stopImmediatePropagation()}function m(C){x||P||q.size>0&&C.stopImmediatePropagation()}function S(C){x||P||(C.stopImmediatePropagation(),C.preventDefault())}let M={capture:!0},N={capture:!0,passive:!1};e.addEventListener("wheel",Qt,N),e.addEventListener("pointerdown",ee,M),e.addEventListener("pointermove",Ne,M),e.addEventListener("pointerup",Zt,M),e.addEventListener("pointercancel",Zt,M),e.addEventListener("pointerleave",l,M),e.addEventListener("dblclick",g,M),e.addEventListener("mousedown",b,M),e.addEventListener("mousemove",y,M),e.addEventListener("mouseup",m,M),e.addEventListener("contextmenu",S,M);function R(){e.removeEventListener("wheel",Qt,N),e.removeEventListener("pointerdown",ee,M),e.removeEventListener("pointermove",Ne,M),e.removeEventListener("pointerup",Zt,M),e.removeEventListener("pointercancel",Zt,M),e.removeEventListener("pointerleave",l,M),e.removeEventListener("dblclick",g,M),e.removeEventListener("mousedown",b,M),e.removeEventListener("mousemove",y,M),e.removeEventListener("mouseup",m,M),e.removeEventListener("contextmenu",S,M),typeof document<"u"&&document.removeEventListener("visibilitychange",Ft)}return{engine:o,isMobile:f,start(){T=!0,P=!1,O=!0,B=0,Y=performance.now(),z=performance.now(),ct()},pause(){P=!0,A&&(cancelAnimationFrame(A),A=null)},resume(){H||x||(P=!1,T=!0,O=!0,B=0,ct())},stop(){T=!1,A&&(cancelAnimationFrame(A),A=null)},resize:zt,pushBook(C,I,U,Z){x||P||(z=performance.now(),k=C,J=I,it=U,rt=Z,ct())},pushTrade(C,I,U,Z){x||P||(z=performance.now(),ut.push(C,I,U,Z),ct())},pushTradesFlat(C){if(!(x||P)){z=performance.now();for(let I=0;I<C.length;I++)ut.push(C[I]);ct()}},setTheme(C){if(!x){try{o.set_theme(C==="light"||C===1?1:0)}catch{}dt()}},setTickSize(C){if(!x){try{o.set_tick_size(C)}catch{}dt()}},setPricePrecision(C){if(!x){try{o.set_price_precision(C)}catch{}dt()}},setTzOffsetSeconds(C){if(x)return;let I=Number.isFinite(C)?Math.trunc(C):0;if(typeof o.set_tz_offset_seconds=="function"){try{o.set_tz_offset_seconds(I)}catch{}dt()}},setLookback(C,I){if(x)return;let U=Math.max(20,I|0),Z=Math.max(U,C|0);if(!(U===_&&Z===a)){_=U,a=Z;try{o.set_lookback(Z,U)}catch{}dt()}},setShowTradeTape(C){x||(o.set_show_trade_tape(!!C),dt())},setShowBookHeatmap(C){x||(o.set_show_book_heatmap(!!C),dt())},setShowVwap(C){x||(o.set_show_vwap(!!C),dt())},setShowGrid(C){x||(o.set_show_grid(!!C),dt())},setHeatmapPalette(C){if(x)return;let I=Math.max(0,Math.min(4,C|0));try{o.set_heatmap_palette?.(I)}catch{}dt()},setHeatmapStyle(C){if(x)return;let I=Math.max(0,Math.min(1,C|0));try{o.set_heatmap_style?.(I)}catch{}dt()},setLargeTrade3d(C){if(!x){try{o.set_large_trade_3d?.(!!C)}catch{}dt()}},setLargeTradeScale(C){if(x)return;let I=Number.isFinite(C)?+C:1;try{o.set_large_trade_scale?.(I)}catch{}dt()},setShowVolume(C){if(!x){try{o.set_show_volume?.(!!C)}catch{}dt()}},setShowPriceLine(C){if(!x){try{o.set_show_price_line?.(!!C)}catch{}dt()}},setShowDepthLens(C){if(!x){try{o.set_show_depth_lens?.(!!C)}catch{}dt()}},setShowCvd(C){if(!x){try{o.set_show_cvd?.(!!C)}catch{}dt()}},setHeatmapIntensity(C,I){if(x)return;let U=Number.isFinite(C)?Math.max(0,Math.min(.99,+C)):0,Z=Number.isFinite(I)?Math.max(U+.01,Math.min(1,+I)):1;try{o.set_heatmap_intensity?.(U,Z)}catch{}dt()},setShowLatestProfile(C){if(!x){try{o.set_show_latest_profile?.(!!C)}catch{}dt()}},setFollowLive(C){x||(o.set_follow_live(!!C),dt())},setAutoScaleY(C){x||(o.set_auto_scale_y(!!C),dt())},resetView(){x||(o.reset_view(),dt())},getLastMid(){if(x)return 0;try{return o.get_last_mid()}catch{return 0}},clearData(){if(!x){try{o.clear()}catch{}ut.length=0,J=null,it=null,rt=0,dt()}},destroy(){if(!H){H=!0,T=!1,P=!0,A&&(cancelAnimationFrame(A),A=null),R();try{o.free?.()}catch{}}}}}export{$i as buildRange,Ki as buildRenko,ji as buildTick,Gi as createChartBridge,Jr as createCustomIndicatorManager,na as createDomLadderBridge,Di as createIcebergDetector,ea as createOrderbookBridge,ia as createTickBridge,ne as dispatchCommands,Ui as prefetchEngine,Ui as prefetchWasm,jr as setupEvents,Qi as suggestDefaults,Yr as validateLicense};
|