kline-orderbook-chart 1.1.2 → 1.3.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 +49 -0
- package/dist/chart_engine.js +1 -1
- package/dist/chart_engine_bg.wasm +0 -0
- package/dist/index.d.ts +5 -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 Zn=Object.defineProperty;var Bs=(t,e,n)=>e in t?Zn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var er=(t,e)=>()=>(t&&(e=t(t=0)),e);var Un=(t,e)=>{for(var n in e)Zn(t,n,{get:e[n],enumerable:!0})};var K=(t,e,n)=>Bs(t,typeof e!="symbol"?e+"":e,n);var Vo={};Un(Vo,{Point:()=>_e,etc:()=>mi,getPublicKey:()=>Io,getPublicKeyAsync:()=>Ro,hash:()=>fi,hashes:()=>zo,keygen:()=>gi,keygenAsync:()=>wi,sign:()=>hi,signAsync:()=>di,utils:()=>vi,verify:()=>bi,verifyAsync:()=>pi});var Co,Er,Tr,go,wo,en,rn,oi,ue,si,Nt,ii,ai,li,kt,Mr,an,Ao,ln,ge,vo,cn,Po,ci,Ye,Mo,Cr,Be,Et,yo,lt,Lo,xo,fn,un,fi,nn,on,fe,_e,Le,He,Fo,_n,ce,ui,So,_i,Ar,dn,hn,No,pn,bn,Ro,Io,Oo,Bo,Ho,di,hi,mn,Yo,pi,bi,mi,zo,gn,gi,wi,vi,Pr,yi,Xo,sn,Si,To,Eo,Ti,Wo=er(()=>{Co=Object.freeze({p:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffedn,n:0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3edn,h:8n,a:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffecn,d:0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3n,Gx:0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51an,Gy:0x6666666666666666666666666666666666666666666666666666666666666658n}),{p:Er,n:Tr,Gx:go,Gy:wo,a:en,d:rn,h:oi}=Co,ue=32,si=(...t)=>{"captureStackTrace"in Error&&typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(...t)},Nt=(t="")=>{let e=new Error(t);throw si(e,Nt),e},ii=t=>typeof t=="bigint",ai=t=>typeof t=="string",li=t=>t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in t&&t.BYTES_PER_ELEMENT===1,kt=(t,e,n="")=>{let o=li(t),h=t?.length,c=e!==void 0;if(!o||c&&h!==e){let d=n&&`"${n}" `,g=c?` of length ${e}`:"",r=o?`length=${h}`:`type=${typeof t}`,a=d+"expected Uint8Array"+g+", got "+r;throw o?new RangeError(a):new TypeError(a)}return t},Mr=t=>new Uint8Array(t),an=t=>Uint8Array.from(t),Ao=(t,e)=>t.toString(16).padStart(e,"0"),ln=t=>Array.from(kt(t)).map(e=>Ao(e,2)).join(""),ge={_0:48,_9:57,A:65,F:70,a:97,f:102},vo=t=>{if(t>=ge._0&&t<=ge._9)return t-ge._0;if(t>=ge.A&&t<=ge.F)return t-(ge.A-10);if(t>=ge.a&&t<=ge.f)return t-(ge.a-10)},cn=t=>{let e="hex invalid";if(!ai(t))return Nt(e);let n=t.length,o=n/2;if(n%2)return Nt(e);let h=Mr(o);for(let c=0,d=0;c<o;c++,d+=2){let g=vo(t.charCodeAt(d)),r=vo(t.charCodeAt(d+1));if(g===void 0||r===void 0)return Nt(e);h[c]=g*16+r}return h},Po=()=>globalThis?.crypto,ci=()=>Po()?.subtle??Nt("crypto.subtle must be defined, consider polyfill"),Ye=(...t)=>{let e=0;for(let h of t)e+=kt(h).length;let n=Mr(e),o=0;return t.forEach(h=>{n.set(h,o),o+=h.length}),n},Mo=(t=ue)=>Po().getRandomValues(Mr(t)),Cr=BigInt,Be=(t,e,n,o="bad number: out of range")=>{if(!ii(t))throw new TypeError(o);if(e<=t&&t<n)return t;throw new RangeError(o)},Et=(t,e=Er)=>{let n=t%e;return n>=0n?n:e+n},yo=(1n<<255n)-1n,lt=t=>{t<0n&&Nt("negative coordinate");let e=(t>>255n)*19n+(t&yo);return e=(e>>255n)*19n+(e&yo),e%Er},Lo=t=>Et(t,Tr),xo=(t,e)=>{(t===0n||e<=0n)&&Nt("no inverse n="+t+" mod="+e);let n=Et(t,e),o=e,h=0n,c=1n,d=1n,g=0n;for(;n!==0n;){let r=o/n,a=o%n,s=h-d*r,i=c-g*r;o=n,n=a,h=d,c=g,d=s,g=i}return o===1n?Et(h,e):Nt("no inverse")},fn=t=>{let e=zo[t];return typeof e!="function"&&Nt("hashes."+t+" not set"),e},un=t=>kt(t,64,"digest"),fi=t=>un(fn("sha512")(kt(t,void 0,"message"))),nn=t=>t instanceof _e?t:Nt("Point expected"),on=2n**256n,fe=class fe{constructor(e,n,o,h){K(this,"X");K(this,"Y");K(this,"Z");K(this,"T");let c=on;this.X=Be(e,0n,c),this.Y=Be(n,0n,c),this.Z=Be(o,1n,c),this.T=Be(h,0n,c),Object.freeze(this)}static CURVE(){return Co}static fromAffine(e){return new fe(e.x,e.y,1n,lt(e.x*e.y))}static fromBytes(e,n=!1){let o=rn,h=an(kt(e,ue)),c=e[31];h[31]=c&-129;let d=_n(h);Be(d,0n,n?on:Er);let r=lt(d*d),a=Et(r-1n),s=lt(o*r+1n),{isValid:i,value:u}=_i(a,s);i||Nt("bad point: y not sqrt");let f=(u&1n)===1n,m=(c&128)!==0;return!n&&u===0n&&m&&Nt("bad point: x==0, isLastByteOdd"),m!==f&&(u=Et(-u)),new fe(u,d,1n,lt(u*d))}static fromHex(e,n){return fe.fromBytes(cn(e),n)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}assertValidity(){let e=en,n=rn,o=this;if(o.is0())return Nt("bad point: ZERO");let{X:h,Y:c,Z:d,T:g}=o,r=lt(h*h),a=lt(c*c),s=lt(d*d),i=lt(s*s),u=lt(r*e),f=lt(s*(u+a)),m=Et(i+lt(n*lt(r*a)));if(f!==m)return Nt("bad point: equation left != right (1)");let A=lt(h*c),T=lt(d*g);return A!==T?Nt("bad point: equation left != right (2)"):this}equals(e){let{X:n,Y:o,Z:h}=this,{X:c,Y:d,Z:g}=nn(e),r=lt(n*g),a=lt(c*h),s=lt(o*g),i=lt(d*h);return r===a&&s===i}is0(){return this.equals(He)}negate(){return new fe(Et(-this.X),this.Y,this.Z,Et(-this.T))}double(){let{X:e,Y:n,Z:o}=this,h=en,c=lt(e*e),d=lt(n*n),g=lt(2n*o*o),r=lt(h*c),a=Et(e+n),s=Et(lt(a*a)-c-d),i=Et(r+d),u=Et(i-g),f=Et(r-d),m=lt(s*u),A=lt(i*f),T=lt(s*f),_=lt(u*i);return new fe(m,A,_,T)}add(e){let{X:n,Y:o,Z:h,T:c}=this,{X:d,Y:g,Z:r,T:a}=nn(e),s=en,i=rn,u=lt(n*d),f=lt(o*g),m=lt(lt(c*i)*a),A=lt(h*r),T=Et(lt(Et(n+o)*Et(d+g))-u-f),_=Et(A-m),I=Et(A+m),P=Et(f-lt(s*u)),S=lt(T*_),C=lt(I*P),B=lt(T*P),V=lt(_*I);return new fe(S,C,V,B)}subtract(e){return this.add(nn(e).negate())}multiply(e,n=!0){if(!n&&e===0n||(Be(e,1n,Tr),!n&&this.is0()))return He;if(e===1n)return this;if(this.equals(Le))return Ti(e).p;let o=He,h=Le;for(let c=this;e>0n;c=c.double(),e>>=1n)e&1n?o=o.add(c):n&&(h=h.add(c));return o}multiplyUnsafe(e){return this.multiply(e,!1)}toAffine(){let{X:e,Y:n,Z:o}=this;if(this.equals(He))return{x:0n,y:1n};let h=xo(o,Er);lt(o*h)!==1n&&Nt("invalid inverse");let c=lt(e*h),d=lt(n*h);return{x:c,y:d}}toBytes(){let{x:e,y:n}=this.toAffine(),o=Fo(n);return o[31]|=e&1n?128:0,o}toHex(){return ln(this.toBytes())}clearCofactor(){return this.multiply(Cr(oi),!1)}isSmallOrder(){return this.clearCofactor().is0()}isTorsionFree(){let e=this.multiply(Tr/2n,!1).double();return Tr%2n&&(e=e.add(this)),e.is0()}};K(fe,"BASE"),K(fe,"ZERO");_e=fe,Le=new _e(go,wo,1n,Et(go*wo)),He=new _e(0n,1n,1n,0n);_e.BASE=Le;_e.ZERO=He;Fo=t=>cn(Ao(Be(t,0n,on),64)).reverse(),_n=t=>Cr("0x"+ln(an(kt(t)).reverse())),ce=(t,e)=>{let n=t;for(;e-- >0n;)n=lt(n*n);return n},ui=t=>{let e=lt(t*t),n=lt(e*t),o=lt(ce(n,2n)*n),h=lt(ce(o,1n)*t),c=lt(ce(h,5n)*h),d=lt(ce(c,10n)*c),g=lt(ce(d,20n)*d),r=lt(ce(g,40n)*g),a=lt(ce(r,80n)*r),s=lt(ce(a,80n)*r),i=lt(ce(s,10n)*c);return{pow_p_5_8:lt(ce(i,2n)*t),b2:n}},So=0x2b8324804fc1df0b2b4d00993dfbd7a72f431806ad2fe478c4ee1b274a0ea0b0n,_i=(t,e)=>{let n=lt(e*lt(e*e)),o=lt(lt(n*n)*e),h=ui(lt(t*o)).pow_p_5_8,c=lt(t*lt(n*h)),d=lt(e*lt(c*c)),g=c,r=lt(c*So),a=d===t,s=d===Et(-t),i=d===Et(-t*So);return a&&(c=g),(s||i)&&(c=r),(Et(c)&1n)===1n&&(c=Et(-c)),{isValid:a||s,value:c}},Ar=t=>Lo(_n(t)),dn=(...t)=>Promise.resolve(fn("sha512Async")(Ye(...t))).then(un),hn=(...t)=>un(fn("sha512")(Ye(...t))),No=t=>{let e=an(t),n=e.slice(0,32);n[0]&=248,n[31]&=127,n[31]|=64;let o=e.slice(32,64),h=Ar(n),c=Le.multiply(h),d=c.toBytes();return{head:n,prefix:o,scalar:h,point:c,pointBytes:d}},pn=t=>dn(kt(t,ue)).then(No),bn=t=>No(hn(kt(t,ue))),Ro=t=>pn(t).then(e=>e.pointBytes),Io=t=>bn(t).pointBytes,Oo=t=>dn(t.hashable).then(t.finish),Bo=t=>t.finish(hn(t.hashable)),Ho=(t,e,n)=>{let{pointBytes:o,scalar:h}=t,c=Ar(e),d=Le.multiply(c).toBytes();return{hashable:Ye(d,o,n),finish:a=>{let s=Lo(c+Ar(a)*h);return kt(Ye(d,Fo(s)),64)}}},di=async(t,e)=>{let n=kt(t),o=await pn(e),h=await dn(o.prefix,n);return Oo(Ho(o,h,n))},hi=(t,e)=>{let n=kt(t),o=bn(e),h=hn(o.prefix,n);return Bo(Ho(o,h,n))},mn={zip215:!0},Yo=(t,e,n,o=mn)=>{t=kt(t,64),e=kt(e),n=kt(n,ue);let{zip215:h=!0}=o,c=t.subarray(0,ue),d=_n(t.subarray(ue,ue*2)),g,r,a,s=Uint8Array.of(),i=!1;try{g=_e.fromBytes(n,h),r=_e.fromBytes(c,h),a=Le.multiply(d,!1),s=Ye(c,n,e),i=!0}catch{}return{hashable:s,finish:f=>{if(!i||!h&&g.isSmallOrder())return!1;let m=Ar(f);return r.add(g.multiply(m,!1)).subtract(a).clearCofactor().is0()}}},pi=async(t,e,n,o=mn)=>Oo(Yo(t,e,n,o)),bi=(t,e,n,o=mn)=>Bo(Yo(t,e,n,o)),mi=Object.freeze({bytesToHex:ln,hexToBytes:cn,concatBytes:Ye,mod:Et,invert:xo,randomBytes:Mo}),zo={sha512Async:async t=>{let e=ci(),n=Ye(t);return Mr(await e.digest("SHA-512",n.buffer))},sha512:void 0},gn=t=>(t=t===void 0?Mo(ue):t,kt(t,ue)),gi=t=>{let e=gn(t),n=Io(e);return{secretKey:e,publicKey:n}},wi=async t=>{let e=gn(t),n=await Ro(e);return{secretKey:e,publicKey:n}},vi=Object.freeze({getExtendedPublicKeyAsync:pn,getExtendedPublicKey:bn,randomSecretKey:gn}),Pr=8,yi=256,Xo=Math.ceil(yi/Pr)+1,sn=2**(Pr-1),Si=()=>{let t=[],e=Le,n=e;for(let o=0;o<Xo;o++){n=e,t.push(n);for(let h=1;h<sn;h++)n=n.add(e),t.push(n);e=n.double()}return t},Eo=(t,e)=>{let n=e.negate();return t?n:e},Ti=t=>{let e=To||(To=Si()),n=He,o=Le,h=2**Pr,c=h,d=Cr(h-1),g=Cr(Pr);for(let r=0;r<Xo;r++){let a=Number(t&d);t>>=g,a>sn&&(a-=c,t+=1n);let s=r*sn,i=s,u=s+Math.abs(a)-1,f=r%2!==0,m=a<0;a===0?o=o.add(Eo(f,e[i])):n=n.add(Eo(m,e[u]))}return t!==0n&&Nt("invalid wnaf"),{p:n,f:o}}});function Ei(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in t&&t.BYTES_PER_ELEMENT===1}function wn(t,e,n=""){let o=Ei(t),h=t?.length,c=e!==void 0;if(!o||c&&h!==e){let d=n&&`"${n}" `,g=c?` of length ${e}`:"",r=o?`length=${h}`:`type=${typeof t}`,a=d+"expected Uint8Array"+g+", got "+r;throw o?new RangeError(a):new TypeError(a)}return t}function vn(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 qo(t,e){wn(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 Lr(t){return new DataView(t.buffer,t.byteOffset,t.byteLength)}function ie(t,e){return t<<32-e|t>>>e}function Xe(t,e={}){let n=(h,c)=>t(c).update(h).digest(),o=t(void 0);return n.outputLen=o.outputLen,n.blockLen=o.blockLen,n.canXOF=o.canXOF,n.create=h=>t(h),Object.assign(n,e),Object.freeze(n)}var Ve,yn=er(()=>{Ve=t=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,t])})});function ko(t,e,n){return t&e^~t&n}function Zo(t,e,n){return t&e^t&n^e&n}var lr,we,ve,Rt,It,Uo=er(()=>{yn();lr=class{constructor(e,n,o,h){K(this,"blockLen");K(this,"outputLen");K(this,"canXOF",!1);K(this,"padOffset");K(this,"isLE");K(this,"buffer");K(this,"view");K(this,"finished",!1);K(this,"length",0);K(this,"pos",0);K(this,"destroyed",!1);this.blockLen=e,this.outputLen=n,this.padOffset=o,this.isLE=h,this.buffer=new Uint8Array(e),this.view=Lr(this.buffer)}update(e){vn(this),wn(e);let{view:n,buffer:o,blockLen:h}=this,c=e.length;for(let d=0;d<c;){let g=Math.min(h-this.pos,c-d);if(g===h){let r=Lr(e);for(;h<=c-d;d+=h)this.process(r,d);continue}o.set(e.subarray(d,d+g),this.pos),this.pos+=g,d+=g,this.pos===h&&(this.process(n,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){vn(this),qo(e,this),this.finished=!0;let{buffer:n,view:o,blockLen:h,isLE:c}=this,{pos:d}=this;n[d++]=128,ze(this.buffer.subarray(d)),this.padOffset>h-d&&(this.process(o,0),d=0);for(let i=d;i<h;i++)n[i]=0;o.setBigUint64(h-8,BigInt(this.length*8),c),this.process(o,0);let g=Lr(e),r=this.outputLen;if(r%4)throw new Error("_sha2: outputLen must be aligned to 32bit");let a=r/4,s=this.get();if(a>s.length)throw new Error("_sha2: outputLen bigger than state");for(let i=0;i<a;i++)g.setUint32(4*i,s[i],c)}digest(){let{buffer:e,outputLen:n}=this;this.digestInto(e);let o=e.slice(0,n);return this.destroy(),o}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());let{blockLen:n,buffer:o,length:h,finished:c,destroyed:d,pos:g}=this;return e.destroyed=d,e.finished=c,e.length=h,e.pos=g,h%n&&e.buffer.set(o),e}clone(){return this._cloneInto()}},we=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),ve=Uint32Array.from([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]),Rt=Uint32Array.from([3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]),It=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209])});function Ci(t,e=!1){return e?{h:Number(t&xr),l:Number(t>>Go&xr)}:{h:Number(t>>Go&xr)|0,l:Number(t&xr)|0}}function Ko(t,e=!1){let n=t.length,o=new Uint32Array(n),h=new Uint32Array(n);for(let c=0;c<n;c++){let{h:d,l:g}=Ci(t[c],e);[o[c],h[c]]=[d,g]}return[o,h]}function de(t,e,n,o){let h=(e>>>0)+(o>>>0);return{h:t+n+(h/2**32|0)|0,l:h|0}}var xr,Go,Sn,Tn,We,qe,cr,fr,$o,jo,Qo,Jo,Do,ts,es=er(()=>{xr=BigInt(4294967295),Go=BigInt(32);Sn=(t,e,n)=>t>>>n,Tn=(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,cr=(t,e,n)=>t<<64-n|e>>>n-32,fr=(t,e,n)=>t>>>n-32|e<<64-n;$o=(t,e,n)=>(t>>>0)+(e>>>0)+(n>>>0),jo=(t,e,n,o)=>e+n+o+(t/2**32|0)|0,Qo=(t,e,n,o)=>(t>>>0)+(e>>>0)+(n>>>0)+(o>>>0),Jo=(t,e,n,o,h)=>e+n+o+h+(t/2**32|0)|0,Do=(t,e,n,o,h)=>(t>>>0)+(e>>>0)+(n>>>0)+(o>>>0)+(h>>>0),ts=(t,e,n,o,h,c)=>e+n+o+h+c+(t/2**32|0)|0});var ns={};Un(ns,{_SHA224:()=>Rr,_SHA256:()=>Nr,_SHA384:()=>Or,_SHA512:()=>Ir,_SHA512_224:()=>Br,_SHA512_256:()=>Hr,sha224:()=>Fi,sha256:()=>xi,sha384:()=>Ri,sha512:()=>Ni,sha512_224:()=>Oi,sha512_256:()=>Ii});var Pi,xe,Fr,Nr,Rr,rs,Mi,Li,Fe,Ne,Ge,Ir,Or,Xt,Vt,Br,Hr,xi,Fi,Ni,Ri,Ii,Oi,os=er(()=>{Uo();es();yn();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]),xe=new Uint32Array(64),Fr=class extends lr{constructor(e){super(64,e,8,!1)}get(){let{A:e,B:n,C:o,D:h,E:c,F:d,G:g,H:r}=this;return[e,n,o,h,c,d,g,r]}set(e,n,o,h,c,d,g,r){this.A=e|0,this.B=n|0,this.C=o|0,this.D=h|0,this.E=c|0,this.F=d|0,this.G=g|0,this.H=r|0}process(e,n){for(let i=0;i<16;i++,n+=4)xe[i]=e.getUint32(n,!1);for(let i=16;i<64;i++){let u=xe[i-15],f=xe[i-2],m=ie(u,7)^ie(u,18)^u>>>3,A=ie(f,17)^ie(f,19)^f>>>10;xe[i]=A+xe[i-7]+m+xe[i-16]|0}let{A:o,B:h,C:c,D:d,E:g,F:r,G:a,H:s}=this;for(let i=0;i<64;i++){let u=ie(g,6)^ie(g,11)^ie(g,25),f=s+u+ko(g,r,a)+Pi[i]+xe[i]|0,A=(ie(o,2)^ie(o,13)^ie(o,22))+Zo(o,h,c)|0;s=a,a=r,r=g,g=d+f|0,d=c,c=h,h=o,o=f+A|0}o=o+this.A|0,h=h+this.B|0,c=c+this.C|0,d=d+this.D|0,g=g+this.E|0,r=r+this.F|0,a=a+this.G|0,s=s+this.H|0,this.set(o,h,c,d,g,r,a,s)}roundClean(){ze(xe)}destroy(){this.destroyed=!0,this.set(0,0,0,0,0,0,0,0),ze(this.buffer)}},Nr=class extends Fr{constructor(){super(32);K(this,"A",we[0]|0);K(this,"B",we[1]|0);K(this,"C",we[2]|0);K(this,"D",we[3]|0);K(this,"E",we[4]|0);K(this,"F",we[5]|0);K(this,"G",we[6]|0);K(this,"H",we[7]|0)}},Rr=class extends Fr{constructor(){super(28);K(this,"A",ve[0]|0);K(this,"B",ve[1]|0);K(this,"C",ve[2]|0);K(this,"D",ve[3]|0);K(this,"E",ve[4]|0);K(this,"F",ve[5]|0);K(this,"G",ve[6]|0);K(this,"H",ve[7]|0)}},rs=Ko(["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))),Mi=rs[0],Li=rs[1],Fe=new Uint32Array(80),Ne=new Uint32Array(80),Ge=class extends lr{constructor(e){super(128,e,16,!1)}get(){let{Ah:e,Al:n,Bh:o,Bl:h,Ch:c,Cl:d,Dh:g,Dl:r,Eh:a,El:s,Fh:i,Fl:u,Gh:f,Gl:m,Hh:A,Hl:T}=this;return[e,n,o,h,c,d,g,r,a,s,i,u,f,m,A,T]}set(e,n,o,h,c,d,g,r,a,s,i,u,f,m,A,T){this.Ah=e|0,this.Al=n|0,this.Bh=o|0,this.Bl=h|0,this.Ch=c|0,this.Cl=d|0,this.Dh=g|0,this.Dl=r|0,this.Eh=a|0,this.El=s|0,this.Fh=i|0,this.Fl=u|0,this.Gh=f|0,this.Gl=m|0,this.Hh=A|0,this.Hl=T|0}process(e,n){for(let P=0;P<16;P++,n+=4)Fe[P]=e.getUint32(n),Ne[P]=e.getUint32(n+=4);for(let P=16;P<80;P++){let S=Fe[P-15]|0,C=Ne[P-15]|0,B=We(S,C,1)^We(S,C,8)^Sn(S,C,7),V=qe(S,C,1)^qe(S,C,8)^Tn(S,C,7),x=Fe[P-2]|0,O=Ne[P-2]|0,Y=We(x,O,19)^cr(x,O,61)^Sn(x,O,6),G=qe(x,O,19)^fr(x,O,61)^Tn(x,O,6),st=Qo(V,G,Ne[P-7],Ne[P-16]),Q=Jo(st,B,Y,Fe[P-7],Fe[P-16]);Fe[P]=Q|0,Ne[P]=st|0}let{Ah:o,Al:h,Bh:c,Bl:d,Ch:g,Cl:r,Dh:a,Dl:s,Eh:i,El:u,Fh:f,Fl:m,Gh:A,Gl:T,Hh:_,Hl:I}=this;for(let P=0;P<80;P++){let S=We(i,u,14)^We(i,u,18)^cr(i,u,41),C=qe(i,u,14)^qe(i,u,18)^fr(i,u,41),B=i&f^~i&A,V=u&m^~u&T,x=Do(I,C,V,Li[P],Ne[P]),O=ts(x,_,S,B,Mi[P],Fe[P]),Y=x|0,G=We(o,h,28)^cr(o,h,34)^cr(o,h,39),st=qe(o,h,28)^fr(o,h,34)^fr(o,h,39),Q=o&c^o&g^c&g,dt=h&d^h&r^d&r;_=A|0,I=T|0,A=f|0,T=m|0,f=i|0,m=u|0,{h:i,l:u}=de(a|0,s|0,O|0,Y|0),a=g|0,s=r|0,g=c|0,r=d|0,c=o|0,d=h|0;let _t=$o(Y,st,dt);o=jo(_t,O,G,Q),h=_t|0}({h:o,l:h}=de(this.Ah|0,this.Al|0,o|0,h|0)),{h:c,l:d}=de(this.Bh|0,this.Bl|0,c|0,d|0),{h:g,l:r}=de(this.Ch|0,this.Cl|0,g|0,r|0),{h:a,l:s}=de(this.Dh|0,this.Dl|0,a|0,s|0),{h:i,l:u}=de(this.Eh|0,this.El|0,i|0,u|0),{h:f,l:m}=de(this.Fh|0,this.Fl|0,f|0,m|0),{h:A,l:T}=de(this.Gh|0,this.Gl|0,A|0,T|0),{h:_,l:I}=de(this.Hh|0,this.Hl|0,_|0,I|0),this.set(o,h,c,d,g,r,a,s,i,u,f,m,A,T,_,I)}roundClean(){ze(Fe,Ne)}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)}},Ir=class extends Ge{constructor(){super(64);K(this,"Ah",It[0]|0);K(this,"Al",It[1]|0);K(this,"Bh",It[2]|0);K(this,"Bl",It[3]|0);K(this,"Ch",It[4]|0);K(this,"Cl",It[5]|0);K(this,"Dh",It[6]|0);K(this,"Dl",It[7]|0);K(this,"Eh",It[8]|0);K(this,"El",It[9]|0);K(this,"Fh",It[10]|0);K(this,"Fl",It[11]|0);K(this,"Gh",It[12]|0);K(this,"Gl",It[13]|0);K(this,"Hh",It[14]|0);K(this,"Hl",It[15]|0)}},Or=class extends Ge{constructor(){super(48);K(this,"Ah",Rt[0]|0);K(this,"Al",Rt[1]|0);K(this,"Bh",Rt[2]|0);K(this,"Bl",Rt[3]|0);K(this,"Ch",Rt[4]|0);K(this,"Cl",Rt[5]|0);K(this,"Dh",Rt[6]|0);K(this,"Dl",Rt[7]|0);K(this,"Eh",Rt[8]|0);K(this,"El",Rt[9]|0);K(this,"Fh",Rt[10]|0);K(this,"Fl",Rt[11]|0);K(this,"Gh",Rt[12]|0);K(this,"Gl",Rt[13]|0);K(this,"Hh",Rt[14]|0);K(this,"Hl",Rt[15]|0)}},Xt=Uint32Array.from([2352822216,424955298,1944164710,2312950998,502970286,855612546,1738396948,1479516111,258812777,2077511080,2011393907,79989058,1067287976,1780299464,286451373,2446758561]),Vt=Uint32Array.from([573645204,4230739756,2673172387,3360449730,596883563,1867755857,2520282905,1497426621,2519219938,2827943907,3193839141,1401305490,721525244,746961066,246885852,2177182882]),Br=class extends Ge{constructor(){super(28);K(this,"Ah",Xt[0]|0);K(this,"Al",Xt[1]|0);K(this,"Bh",Xt[2]|0);K(this,"Bl",Xt[3]|0);K(this,"Ch",Xt[4]|0);K(this,"Cl",Xt[5]|0);K(this,"Dh",Xt[6]|0);K(this,"Dl",Xt[7]|0);K(this,"Eh",Xt[8]|0);K(this,"El",Xt[9]|0);K(this,"Fh",Xt[10]|0);K(this,"Fl",Xt[11]|0);K(this,"Gh",Xt[12]|0);K(this,"Gl",Xt[13]|0);K(this,"Hh",Xt[14]|0);K(this,"Hl",Xt[15]|0)}},Hr=class extends Ge{constructor(){super(32);K(this,"Ah",Vt[0]|0);K(this,"Al",Vt[1]|0);K(this,"Bh",Vt[2]|0);K(this,"Bl",Vt[3]|0);K(this,"Ch",Vt[4]|0);K(this,"Cl",Vt[5]|0);K(this,"Dh",Vt[6]|0);K(this,"Dl",Vt[7]|0);K(this,"Eh",Vt[8]|0);K(this,"El",Vt[9]|0);K(this,"Fh",Vt[10]|0);K(this,"Fl",Vt[11]|0);K(this,"Gh",Vt[12]|0);K(this,"Gl",Vt[13]|0);K(this,"Hh",Vt[14]|0);K(this,"Hl",Vt[15]|0)}},xi=Xe(()=>new Nr,Ve(1)),Fi=Xe(()=>new Rr,Ve(4)),Ni=Xe(()=>new Ir,Ve(3)),Ri=Xe(()=>new Or,Ve(2)),Ii=Xe(()=>new Hr,Ve(6)),Oi=Xe(()=>new Br,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},Ce=null,Gn=null;function Hs(t,e){return Ce?(Ce.width!==t||Ce.height!==e)&&(Ce.width=t,Ce.height=e):(Ce=typeof OffscreenCanvas<"u"?new OffscreenCanvas(t,e):Object.assign(document.createElement("canvas"),{width:t,height:e}),Gn=Ce.getContext("2d")),Gn}var rr=new Float64Array(0),Wr=new Float64Array(0),qr=new Float64Array(0),nr=new Float64Array(0);function Ys(t){return rr.length<t&&(rr=new Float64Array(t)),rr}function zs(t){return Wr.length<t&&(Wr=new Float64Array(t)),Wr}function Xs(t){return qr.length<t&&(qr=new Float64Array(t)),qr}function Vs(t){return nr.length<t&&(nr=new Float64Array(t)),nr}function kr(t,e){if(e<2)return;let n=e-1,o=Ys(n),h=zs(n),c=Xs(n);for(let g=0;g<n;g++){let r=t[g*2],a=t[g*2+1],s=t[(g+1)*2],i=t[(g+1)*2+1];o[g]=s-r,h[g]=i-a,c[g]=o[g]>0?h[g]/o[g]:0}let d=Vs(e);d[0]=c[0],d[e-1]=c[n-1];for(let g=1;g<n;g++){let r=c[g-1],a=c[g];d[g]=r*a<=0?0:(r+a)*.5}for(let g=0;g<n;g++){let r=c[g];if(r===0){d[g]=0,d[g+1]=0;continue}let a=d[g]/r,s=d[g+1]/r,i=a*a+s*s;if(i>9){let u=3/Math.sqrt(i);d[g]=u*a*r,d[g+1]=u*s*r}}}function Kn(t,e,n){let o=n-1,h=rr,c=nr;for(let d=0;d<o;d++){let g=e[d*2],r=e[d*2+1],a=e[(d+1)*2],s=e[(d+1)*2+1],i=h[d];if(i<=0){t.lineTo(a,s);continue}let u=i/3;t.bezierCurveTo(g+u,r+c[d]*u,a-u,s-c[d+1]*u,a,s)}}function Ws(t,e,n){let o=n-1,h=rr,c=nr;for(let d=o-1;d>=0;d--){let g=e[d*2],r=e[d*2+1],a=e[(d+1)*2],s=e[(d+1)*2+1],i=h[d];if(i<=0){t.lineTo(g,r);continue}let u=i/3;t.bezierCurveTo(a-u,s-c[d+1]*u,g+u,r+c[d]*u,g,r)}}var qs=["left","center","right"],br=new Map,ks=4096;function Zs(t,e,n,o){return t<<24|e<<16|n<<8|o}function St(t,e,n,o){let h=Zs(t,e,n,o),c=br.get(h);return c||(c=`rgba(${t},${e},${n},${(o/255).toFixed(3)})`,br.size>=ks&&br.clear(),br.set(h,c),c)}var Zr=new TextDecoder;function mr(t,e){return Math.round(t*e)/e}var $n=new Map;function Ur(t,e){let n=$n.get(e);if(n!==void 0)return n;let o=t.font,h=t.textBaseline;t.font=e,t.textBaseline="alphabetic";let c=t.measureText("0"),d=c.actualBoundingBoxAscent||0,g=c.actualBoundingBoxDescent||0;return n=(d-g)/2,(!Number.isFinite(n)||n===0)&&(n=(parseFloat(e)||11)*.35),$n.set(e,n),t.font=o,t.textBaseline=h,n}function zt(t,e,n){let o=Math.max(1,Math.round(e*n)),h=Math.round(t*n)/n;return o&1?h+.5/n:h}function Ee(t,e,n,o,h){let c=Math.round(t*h),d=Math.round(e*h),g=Math.round((t+n)*h),r=Math.round((e+o)*h);return{x:c/h,y:d/h,w:(g-c)/h,h:(r-d)/h}}function jn(){let t=null,e=null,n=null,o=0;function h(c,d,g){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&&o!==g&&(e.setTransform(g,0,0,g,0,0),o=g,n=null),e)}return{ensureSize:h,getCanvas(){return t},getKey(){return n},setKey(c){n=c},invalidate(){n=null}}}function Qn(){let t=null,e=null,n=0,o=0;function h(c,d){return c<=0||d<=0?null:(t&&n===c&&o===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,o=d),e)}return{ensureSize:h,getCanvas(){return t},getCols(){return n},getRows(){return o},invalidate(){e&&n>0&&o>0&&e.clearRect(0,0,n,o)}}}function oe(t,e,n,o,h=null,c=null,d=null){let g=e.buffer;if(n+o>g.byteLength)return;let r=new DataView(g,n,o),a=new Uint8Array(g,n,o),s=0,i="",u="",f=-1,m="",A=Math.max(1,Math.abs(t.getTransform?.().a||window.devicePixelRatio||1)),T=t,_=!1,I="";for(;s<o;){let P=a[s];if(s+=1,P===vt.END_FRAME)break;switch(P){case vt.FILL_RECT:{let S=r.getFloat32(s,!0);s+=4;let C=r.getFloat32(s,!0);s+=4;let B=r.getFloat32(s,!0);s+=4;let V=r.getFloat32(s,!0);s+=4;let x=St(a[s],a[s+1],a[s+2],a[s+3]);s+=4,x!==i&&(t.fillStyle=x,i=x);let O=Ee(S,C,B,V,A);t.fillRect(O.x,O.y,O.w,O.h);break}case vt.FILL_ROUND_RECT:{let S=r.getFloat32(s,!0);s+=4;let C=r.getFloat32(s,!0);s+=4;let B=r.getFloat32(s,!0);s+=4;let V=r.getFloat32(s,!0);s+=4;let x=St(a[s],a[s+1],a[s+2],a[s+3]);s+=4;let O=r.getFloat32(s,!0);s+=4,x!==i&&(t.fillStyle=x,i=x);let Y=Ee(S,C,B,V,A),G=Math.min(O,Y.w*.5,Y.h*.5);G<=.5?t.fillRect(Y.x,Y.y,Y.w,Y.h):(t.beginPath(),t.moveTo(Y.x+G,Y.y),t.lineTo(Y.x+Y.w-G,Y.y),t.arcTo(Y.x+Y.w,Y.y,Y.x+Y.w,Y.y+G,G),t.lineTo(Y.x+Y.w,Y.y+Y.h-G),t.arcTo(Y.x+Y.w,Y.y+Y.h,Y.x+Y.w-G,Y.y+Y.h,G),t.lineTo(Y.x+G,Y.y+Y.h),t.arcTo(Y.x,Y.y+Y.h,Y.x,Y.y+Y.h-G,G),t.lineTo(Y.x,Y.y+G),t.arcTo(Y.x,Y.y,Y.x+G,Y.y,G),t.closePath(),t.fill());break}case vt.STROKE_RECT:{let S=r.getFloat32(s,!0);s+=4;let C=r.getFloat32(s,!0);s+=4;let B=r.getFloat32(s,!0);s+=4;let V=r.getFloat32(s,!0);s+=4;let x=St(a[s],a[s+1],a[s+2],a[s+3]);s+=4;let O=r.getFloat32(s,!0);s+=4,x!==u&&(t.strokeStyle=x,u=x),O!==f&&(t.lineWidth=O,f=O);let Y=zt(S,O,A),G=zt(C,O,A),st=Math.round(B*A)/A,Q=Math.round(V*A)/A;t.strokeRect(Y,G,st,Q);break}case vt.LINE:{let S=r.getFloat32(s,!0);s+=4;let C=r.getFloat32(s,!0);s+=4;let B=r.getFloat32(s,!0);s+=4;let V=r.getFloat32(s,!0);s+=4;let x=St(a[s],a[s+1],a[s+2],a[s+3]);s+=4;let O=r.getFloat32(s,!0);s+=4,t.beginPath(),x!==u&&(t.strokeStyle=x,u=x),O!==f&&(t.lineWidth=O,f=O),t.setLineDash([]),t.moveTo(zt(S,O,A),zt(C,O,A)),t.lineTo(zt(B,O,A),zt(V,O,A)),t.stroke();break}case vt.DASHED_LINE:{let S=r.getFloat32(s,!0);s+=4;let C=r.getFloat32(s,!0);s+=4;let B=r.getFloat32(s,!0);s+=4;let V=r.getFloat32(s,!0);s+=4;let x=St(a[s],a[s+1],a[s+2],a[s+3]);s+=4;let O=r.getFloat32(s,!0);s+=4;let Y=r.getFloat32(s,!0);s+=4;let G=r.getFloat32(s,!0);s+=4,t.beginPath(),x!==u&&(t.strokeStyle=x,u=x),O!==f&&(t.lineWidth=O,f=O),t.setLineDash([Y,G]),t.moveTo(zt(S,O,A),zt(C,O,A)),t.lineTo(zt(B,O,A),zt(V,O,A)),t.stroke(),t.setLineDash([]);break}case vt.LINEAR_POLYLINE:{let S=r.getUint16(s,!0);s+=2;let C=St(a[s],a[s+1],a[s+2],a[s+3]);s+=4;let B=r.getFloat32(s,!0);if(s+=4,S>1){t.beginPath(),C!==u&&(t.strokeStyle=C,u=C),B!==f&&(t.lineWidth=B,f=B),t.setLineDash([]),t.lineJoin="miter",t.lineCap="butt",t.miterLimit=10;let V=r.getFloat32(s,!0);s+=4;let x=r.getFloat32(s,!0);s+=4,t.moveTo(V,x);for(let O=1;O<S;O++)t.lineTo(r.getFloat32(s,!0),r.getFloat32(s+4,!0)),s+=8;t.stroke()}else s+=S*8;break}case vt.SMOOTH_POLYLINE:{let S=r.getUint16(s,!0);s+=2;let C=St(a[s],a[s+1],a[s+2],a[s+3]);s+=4;let B=r.getFloat32(s,!0);if(s+=4,S>1){let V=new Float32Array(S*2);for(let x=0;x<S;x++)V[x*2]=r.getFloat32(s,!0),s+=4,V[x*2+1]=r.getFloat32(s,!0),s+=4;t.beginPath(),C!==u&&(t.strokeStyle=C,u=C),B!==f&&(t.lineWidth=B,f=B),t.setLineDash([]),t.lineJoin="round",t.lineCap="round",S===2?(t.moveTo(V[0],V[1]),t.lineTo(V[2],V[3])):(kr(V,S),t.moveTo(V[0],V[1]),Kn(t,V,S)),t.stroke()}else s+=S*8;break}case vt.POLYLINE:{let S=r.getUint16(s,!0);s+=2;let C=St(a[s],a[s+1],a[s+2],a[s+3]);s+=4;let B=r.getFloat32(s,!0);if(s+=4,S>0){let V=new Float32Array(S*2);for(let x=0;x<S;x++)V[x*2]=r.getFloat32(s,!0),s+=4,V[x*2+1]=r.getFloat32(s,!0),s+=4;if(t.beginPath(),C!==u&&(t.strokeStyle=C,u=C),B!==f&&(t.lineWidth=B,f=B),t.setLineDash([]),t.lineJoin="round",t.lineCap="round",S===2)t.moveTo(V[0],V[1]),t.lineTo(V[2],V[3]);else{t.moveTo(V[0],V[1]);for(let x=0;x<S-1;x++){let O=x>0?x-1:0,Y=x,G=x+1,st=x<S-2?x+2:S-1,Q=V[O*2],dt=V[O*2+1],_t=V[Y*2],mt=V[Y*2+1],X=V[G*2],Z=V[G*2+1],J=V[st*2],D=V[st*2+1],ot=_t+(X-Q)/6,ct=mt+(Z-dt)/6,gt=X-(J-_t)/6,Mt=Z-(D-mt)/6;t.bezierCurveTo(ot,ct,gt,Mt,X,Z)}}t.stroke()}break}case vt.TEXT:{let S=r.getFloat32(s,!0);s+=4;let C=r.getFloat32(s,!0);s+=4;let B=St(a[s],a[s+1],a[s+2],a[s+3]);s+=4;let V=r.getFloat32(s,!0);s+=4;let x=a[s];s+=1;let O=r.getUint16(s,!0);s+=2;let Y=Zr.decode(new Uint8Array(e.buffer,n+s,O));s+=O,B!==i&&(t.fillStyle=B,i=B);let G=`${Math.round(V)}px "IBM Plex Mono",monospace`;G!==m&&(t.font=G,m=G),t.textAlign=qs[x]||"left",t.textBaseline="alphabetic";let st=C+Ur(t,G);t.fillText(Y,mr(S,A),mr(st,A));break}case vt.CIRCLE:{let S=r.getFloat32(s,!0);s+=4;let C=r.getFloat32(s,!0);s+=4;let B=r.getFloat32(s,!0);s+=4;let V=St(a[s],a[s+1],a[s+2],a[s+3]);s+=4;let x=St(a[s],a[s+1],a[s+2],a[s+3]);s+=4;let O=r.getFloat32(s,!0);s+=4,t.beginPath(),t.arc(S,C,B,0,Math.PI*2),V!==i&&(t.fillStyle=V,i=V),t.fill(),O>0&&(x!==u&&(t.strokeStyle=x,u=x),O!==f&&(t.lineWidth=O,f=O),t.stroke());break}case vt.TRIANGLE:{let S=r.getFloat32(s,!0);s+=4;let C=r.getFloat32(s,!0);s+=4;let B=r.getFloat32(s,!0);s+=4;let V=r.getFloat32(s,!0);s+=4;let x=r.getFloat32(s,!0);s+=4;let O=r.getFloat32(s,!0);s+=4;let Y=St(a[s],a[s+1],a[s+2],a[s+3]);s+=4,t.beginPath(),t.moveTo(S,C),t.lineTo(B,V),t.lineTo(x,O),t.closePath(),Y!==i&&(t.fillStyle=Y,i=Y),t.fill();break}case vt.SAVE:{t.save();break}case vt.RESTORE:{t.restore(),i="",u="",f=-1,m="";break}case vt.CLIP_RECT:{let S=r.getFloat32(s,!0);s+=4;let C=r.getFloat32(s,!0);s+=4;let B=r.getFloat32(s,!0);s+=4;let V=r.getFloat32(s,!0);s+=4;let x=Ee(S,C,B,V,A);t.beginPath(),t.rect(x.x,x.y,x.w,x.h),t.clip();break}case vt.ROTATED_TEXT:{let S=r.getFloat32(s,!0);s+=4;let C=r.getFloat32(s,!0);s+=4;let B=St(a[s],a[s+1],a[s+2],a[s+3]);s+=4;let V=r.getFloat32(s,!0);s+=4;let x=r.getFloat32(s,!0);s+=4;let O=r.getUint16(s,!0);s+=2;let Y=Zr.decode(a.subarray(s,s+O));s+=O;let G=`${V}px sans-serif`;G!==m&&(t.font=G,m=G),B!==i&&(t.fillStyle=B,i=B),t.textAlign="center",t.textBaseline="alphabetic";let st=Ur(t,G);t.save(),t.translate(S,C),t.rotate(x),t.fillText(Y,0,st),t.restore();break}case vt.BUBBLE_3D:{let S=r.getFloat32(s,!0);s+=4;let C=r.getFloat32(s,!0);s+=4;let B=r.getFloat32(s,!0);s+=4;let V=a[s],x=a[s+1],O=a[s+2],Y=a[s+3];s+=4;let G=a[s],st=a[s+1],Q=a[s+2],dt=a[s+3];s+=4;let _t=a[s],mt=a[s+1],X=a[s+2],Z=a[s+3];s+=4;let J=r.getFloat32(s,!0);s+=4;let D=B;if(D<10){let ot=`rgba(${V},${x},${O},${(Y/255).toFixed(3)})`;t.beginPath(),t.arc(S,C,D,0,Math.PI*2),t.fillStyle=ot,t.fill(),i=""}else if(D<18){let ot=S-D*.25,ct=C-D*.25,gt=t.createRadialGradient(ot,ct,D*.08,S,C,D);gt.addColorStop(0,`rgba(${G},${st},${Q},${(dt/255).toFixed(3)})`),gt.addColorStop(1,`rgba(${V},${x},${O},${(Y/255).toFixed(3)})`),t.beginPath(),t.arc(S,C,D,0,Math.PI*2),t.fillStyle=gt,t.fill(),i=""}else{let ot=S-D*.25,ct=C-D*.25,gt=t.createRadialGradient(S,C,D*.85,S,C,D*1.2);gt.addColorStop(0,`rgba(${_t},${mt},${X},${(Z/255*.5).toFixed(3)})`),gt.addColorStop(1,`rgba(${_t},${mt},${X},0)`),t.beginPath(),t.arc(S,C,D*1.2,0,Math.PI*2),t.fillStyle=gt,t.fill();let Mt=t.createRadialGradient(ot,ct,D*.08,S,C,D);Mt.addColorStop(0,`rgba(${G},${st},${Q},${(dt/255).toFixed(3)})`),Mt.addColorStop(1,`rgba(${V},${x},${O},${(Y/255).toFixed(3)})`),t.beginPath(),t.arc(S,C,D,0,Math.PI*2),t.fillStyle=Mt,t.fill();let Ct=D*.2,ft=t.createRadialGradient(ot,ct,0,ot,ct,Ct);ft.addColorStop(0,"rgba(255,255,255,0.22)"),ft.addColorStop(1,"rgba(255,255,255,0)"),t.beginPath(),t.arc(ot,ct,Ct,0,Math.PI*2),t.fillStyle=ft,t.fill(),i=""}break}case vt.FILL_POLYGON:{let S=r.getUint16(s,!0);s+=2;let C=St(a[s],a[s+1],a[s+2],a[s+3]);if(s+=4,S>2){t.beginPath();let B=r.getFloat32(s,!0);s+=4;let V=r.getFloat32(s,!0);s+=4,t.moveTo(B,V);for(let x=1;x<S;x++)t.lineTo(r.getFloat32(s,!0),r.getFloat32(s+4,!0)),s+=8;t.closePath(),C!==i&&(t.fillStyle=C,i=C),t.fill()}else s+=S*8;break}case vt.FILL_SMOOTH_BAND:{let S=r.getUint16(s,!0);s+=2;let C=r.getUint16(s,!0);s+=2;let B=St(a[s],a[s+1],a[s+2],a[s+3]);s+=4;let V=new Float32Array(S*2);for(let O=0;O<S;O++)V[O*2]=r.getFloat32(s,!0),s+=4,V[O*2+1]=r.getFloat32(s,!0),s+=4;let x=new Float32Array(C*2);for(let O=0;O<C;O++)x[O*2]=r.getFloat32(s,!0),s+=4,x[O*2+1]=r.getFloat32(s,!0),s+=4;S>=2&&C>=2&&(t.beginPath(),B!==i&&(t.fillStyle=B,i=B),S===2?(t.moveTo(V[0],V[1]),t.lineTo(V[2],V[3])):(kr(V,S),t.moveTo(V[0],V[1]),Kn(t,V,S)),t.lineTo(x[(C-1)*2],x[(C-1)*2+1]),C===2?t.lineTo(x[0],x[1]):(kr(x,C),Ws(t,x,C)),t.closePath(),t.fill());break}case vt.DASHED_POLYLINE:{let S=r.getUint16(s,!0);s+=2;let C=St(a[s],a[s+1],a[s+2],a[s+3]);s+=4;let B=r.getFloat32(s,!0);s+=4;let V=r.getFloat32(s,!0);s+=4;let x=r.getFloat32(s,!0);if(s+=4,S>1){t.beginPath(),C!==u&&(t.strokeStyle=C,u=C),B!==f&&(t.lineWidth=B,f=B),t.setLineDash([V,x]),t.lineJoin="round";let O=r.getFloat32(s,!0);s+=4;let Y=r.getFloat32(s,!0);s+=4,t.moveTo(O,Y);for(let G=1;G<S;G++)t.lineTo(r.getFloat32(s,!0),r.getFloat32(s+4,!0)),s+=8;t.stroke(),t.setLineDash([])}else s+=S*8;break}case vt.GRADIENT_RECT:{let S=r.getFloat32(s,!0);s+=4;let C=r.getFloat32(s,!0);s+=4;let B=r.getFloat32(s,!0);s+=4;let V=r.getFloat32(s,!0);s+=4;let x=St(a[s],a[s+1],a[s+2],a[s+3]);s+=4;let O=St(a[s],a[s+1],a[s+2],a[s+3]);s+=4;let Y=Ee(S,C,B,V,A),G=t.createLinearGradient(Y.x,Y.y,Y.x,Y.y+Y.h);G.addColorStop(0,x),G.addColorStop(1,O),t.fillStyle=G,i="",t.fillRect(Y.x,Y.y,Y.w,Y.h);break}case vt.GRADIENT_RECT_H:{let S=r.getFloat32(s,!0);s+=4;let C=r.getFloat32(s,!0);s+=4;let B=r.getFloat32(s,!0);s+=4;let V=r.getFloat32(s,!0);s+=4;let x=St(a[s],a[s+1],a[s+2],a[s+3]);s+=4;let O=St(a[s],a[s+1],a[s+2],a[s+3]);s+=4;let Y=Ee(S,C,B,V,A),G=t.createLinearGradient(Y.x,Y.y,Y.x+Y.w,Y.y);G.addColorStop(0,x),G.addColorStop(1,O),t.fillStyle=G,i="",t.fillRect(Y.x,Y.y,Y.w,Y.h);break}case vt.GRADIENT_RECT_H_MULTI:{let S=r.getFloat32(s,!0);s+=4;let C=r.getFloat32(s,!0);s+=4;let B=r.getFloat32(s,!0);s+=4;let V=r.getFloat32(s,!0);s+=4;let x=a[s];s+=1;let O=Ee(S,C,B,V,A),Y=t.createLinearGradient(O.x,O.y,O.x+O.w,O.y);for(let G=0;G<x;G++){let st=r.getFloat32(s,!0);s+=4;let Q=St(a[s],a[s+1],a[s+2],a[s+3]);s+=4,Y.addColorStop(st<0?0:st>1?1:st,Q)}t.fillStyle=Y,i="",t.fillRect(O.x,O.y,O.w,O.h);break}case vt.BEGIN_HEATMAP_LAYER:{let S=s-1,C=r.getUint32(s,!0);s+=4;let B=r.getUint32(s,!0);s+=4;let V=r.getUint32(s,!0);if(s+=4,!h||V===0)break;let x=T.canvas.width,O=T.canvas.height,Y=`${C}|${B}|${x}|${O}|${A}`;if(h.getKey()===Y&&h.getCanvas()){let G=x/A,st=O/A;T.drawImage(h.getCanvas(),0,0,G,st),s=S+V}else{let G=h.ensureSize(x,O,A);if(!G)break;G.save(),G.setTransform(1,0,0,1,0,0),G.clearRect(0,0,x,O),G.restore(),t=G,i="",u="",f=-1,m="",_=!0,I=Y}break}case vt.END_HEATMAP_LAYER:{if(!_)break;let S=T.canvas.width/A,C=T.canvas.height/A;T.drawImage(h.getCanvas(),0,0,S,C),h.setKey(I),t=T,i="",u="",f=-1,m="",_=!1,I="";break}case vt.HEATMAP_BITMAP:{let S=r.getFloat32(s,!0);s+=4;let C=r.getFloat32(s,!0);s+=4;let B=r.getUint32(s,!0);s+=4;let V=r.getUint32(s,!0);s+=4;let x=B*V*4;if(s+x>a.byteLength){s=a.byteLength;break}let O=new Uint8ClampedArray(a.buffer,a.byteOffset+s,x);s+=x;let Y=new ImageData(O,B,V),G=Hs(B,V);if(!G)break;G.putImageData(Y,0,0),t.drawImage(Ce,S,C,B,V);break}case vt.HEATMAP_WORLD:{let S=r.getUint32(s,!0);s+=4;let C=r.getUint32(s,!0);s+=4;let B=r.getUint32(s,!0);s+=4;let V=r.getUint32(s,!0);s+=4;let x=r.getUint32(s,!0);s+=4;let O=r.getUint32(s,!0);s+=4;let Y=r.getFloat32(s,!0);s+=4;let G=r.getFloat32(s,!0);s+=4;let st=r.getFloat32(s,!0);s+=4;let Q=r.getFloat32(s,!0);s+=4;let dt=r.getFloat32(s,!0);s+=4;let _t=r.getFloat32(s,!0);s+=4;let mt=r.getFloat32(s,!0);s+=4;let X=r.getFloat32(s,!0);s+=4;let Z=a[s];s+=1;let J=(Z&1)!==0,D=x*O*4;if(s+D>a.byteLength){s=a.byteLength;break}if(!c||S===0||C===0){s+=D;break}let ot=c.ensureSize(S,C);if(!ot){s+=D;break}if(J&&ot.clearRect(0,0,S,C),D>0){let ct=new Uint8ClampedArray(a.buffer,a.byteOffset+s,D),gt=new ImageData(ct,x,O);ot.putImageData(gt,B,V)}if(s+=D,st>0&&Q>0&&mt>0&&X>0){let ct=Ee(dt,_t,mt,X,A);if(ct.w>0&&ct.h>0){let gt=t.imageSmoothingEnabled;t.imageSmoothingEnabled=!1,t.drawImage(c.getCanvas(),Y,G,st,Q,ct.x,ct.y,ct.w,ct.h),t.imageSmoothingEnabled=gt}}break}case vt.LINE_WITH_EXTEND:{let S=r.getFloat32(s,!0);s+=4;let C=r.getFloat32(s,!0);s+=4;let B=r.getFloat32(s,!0);s+=4;let V=r.getFloat32(s,!0);s+=4;let x=St(a[s],a[s+1],a[s+2],a[s+3]);s+=4;let O=r.getFloat32(s,!0);s+=4;let Y=r.getFloat32(s,!0);s+=4;let G=r.getFloat32(s,!0);s+=4;let st=a[s];s+=1,x!==u&&(t.strokeStyle=x,u=x),O!==f&&(t.lineWidth=O,f=O),t.setLineDash(Y>0?[Y,G]:[]);let Q=1e5,dt=S,_t=C,mt=B,X=V,Z=B-S,J=V-C,D=Math.hypot(Z,J);if(D>0&&st!==0){let ot=Z/D,ct=J/D;st&1&&(dt=S-ot*Q,_t=C-ct*Q),st&2&&(mt=B+ot*Q,X=V+ct*Q),st&4&&ct<0&&(dt=S-ot*Q,_t=C-ct*Q),st&8&&ct>0&&(mt=B+ot*Q,X=V+ct*Q)}t.beginPath(),t.moveTo(zt(dt,O,A),zt(_t,O,A)),t.lineTo(zt(mt,O,A),zt(X,O,A)),t.stroke(),Y>0&&t.setLineDash([]);break}case vt.LABEL_CALLOUT:{let S=r.getFloat32(s,!0);s+=4;let C=r.getFloat32(s,!0);s+=4;let B=St(a[s],a[s+1],a[s+2],a[s+3]);s+=4;let V=St(a[s],a[s+1],a[s+2],a[s+3]);s+=4;let x=St(a[s],a[s+1],a[s+2],a[s+3]);s+=4;let O=r.getFloat32(s,!0);s+=4;let Y=r.getFloat32(s,!0);s+=4;let G=a[s];s+=1;let st=a[s];s+=1;let Q=r.getUint16(s,!0);s+=2;let dt=Zr.decode(a.subarray(s,s+Q));s+=Q;let _t=`${Math.round(O)}px "IBM Plex Mono",monospace`;_t!==m&&(t.font=_t,m=_t);let mt=4,X=6,Z=t.measureText(dt).width,J=Math.round(O)+mt*2,D=Math.ceil(Z)+mt*2,ot,ct;switch(st){case 1:ct=C-X-J,ot=S-D/2;break;case 2:ct=C+X,ot=S-D/2;break;case 3:ct=C-J/2,ot=S+X;break;case 4:ct=C-J/2,ot=S-X-D;break;default:ct=C-J/2,G===1?ot=S-D/2:G===2?ot=S-D:ot=S;break}let gt=Ee(ot,ct,D,J,A);if(B!==i&&(t.fillStyle=B,i=B),t.fillRect(gt.x,gt.y,gt.w,gt.h),Y>0){V!==u&&(t.strokeStyle=V,u=V),Y!==f&&(t.lineWidth=Y,f=Y),t.setLineDash([]);let Ct=zt(ot,Y,A),ft=zt(ct,Y,A),Ot=Math.round(D*A)/A,Zt=Math.round(J*A)/A;t.strokeRect(Ct,ft,Ot,Zt)}if(st>=1&&st<=4){switch(B!==i&&(t.fillStyle=B,i=B),t.beginPath(),st){case 1:t.moveTo(S-X/2,ct+J),t.lineTo(S+X/2,ct+J),t.lineTo(S,C);break;case 2:t.moveTo(S-X/2,ct),t.lineTo(S+X/2,ct),t.lineTo(S,C);break;case 3:t.moveTo(ot,C-X/2),t.lineTo(ot,C+X/2),t.lineTo(S,C);break;case 4:t.moveTo(ot+D,C-X/2),t.lineTo(ot+D,C+X/2),t.lineTo(S,C);break}t.closePath(),t.fill()}x!==i&&(t.fillStyle=x,i=x),t.textAlign="left",t.textBaseline="alphabetic";let Mt=Ur(t,_t);t.fillText(dt,mr(ot+mt,A),mr(ct+J/2+Mt,A));break}case vt.DRAW_IMAGE:{let S=r.getFloat32(s,!0);s+=4;let C=r.getFloat32(s,!0);s+=4;let B=r.getFloat32(s,!0);s+=4;let V=r.getFloat32(s,!0);s+=4;let x=r.getUint32(s,!0);if(s+=4,!d||x===0||B<=0||V<=0)break;let O=d.get(x);if(!O)break;try{t.drawImage(O,S,C,B,V)}catch(Y){d.delete(x),console.warn("[canvasRenderer] drawImage failed for id="+x,Y?.message||Y)}break}default:return}}if(_&&h){let P=T.canvas.width/A,S=T.canvas.height/A;T.drawImage(h.getCanvas(),0,0,P,S),h.invalidate()}}var Qt={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 or(t){return Qt[t]?.type==="2point"}function sr(t){return Qt[t]?.type==="3point"}function Ze(t){let e=Qt[t]?.type;return e==="1point"||e==="1point_x"||e==="1point_xy"||e==="1point_xp"}function gr(t){return Qt[t]?.type==="freehand"}function he(t){return Qt[t]?.type==="npoint"}function pe(t){return Qt[t]?.type==="elliott_manual"}function ir(t){return Qt[t]?.type==="drag2point"}var Jn={r:.04,g:.49,b:1,lineWidth:2,dashed:!1,fontSize:12};function ae(t,e,n,o,h,c){c=c||Jn;let d=Qt[e];if(!d)return 0;let g=0;if(d.type==="3point"?g=t[d.addFn](n.x1,n.y1,n.x2,n.y2,o,h,c.r,c.g,c.b,c.lineWidth,c.dashed,n.pane):d.type==="2point"||d.type==="drag2point"?g=t[d.addFn](n.x1,n.y1,o,h,c.r,c.g,c.b,c.lineWidth,c.dashed,n.pane):d.type==="1point_x"?g=t[d.addFn](o,c.r,c.g,c.b,c.lineWidth,c.dashed,n.pane):d.type==="1point_xp"?g=t[d.addFn](o,h,c.r,c.g,c.b,c.lineWidth,c.dashed,n.pane):d.type==="1point_xy"?g=t[d.addFn](o,h,c.r,c.g,c.b,c.fontSize||12,n.pane):g=t[d.addFn](h,c.r,c.g,c.b,c.lineWidth,c.dashed,n.pane),g&&c.fontSize&&typeof t.set_drawing_font_size=="function"&&(d.type==="2point"||d.type==="3point"||d.type==="drag2point"))try{t.set_drawing_font_size(g,c.fontSize)}catch{}if(g&&c.hideLabel===!0&&typeof t.set_drawing_hide_label=="function")try{t.set_drawing_hide_label(g,!0)}catch{}return g||0}function te(t,e,n,o,h,c,d){c=c||Jn;let g=Qt[e];if(g){if(g.previewFn==="elliott"){t.set_elliott_preview(o,h,c.r,c.g,c.b,c.lineWidth,d);return}if(g.previewFn==="zigzag"){t.set_elliott_zigzag_preview(o,h,c.r,c.g,c.b,c.lineWidth,d);return}g.type==="3point"?n.step===1?t.set_drawing_preview(g.previewKind,n.x1,n.y1,o,h,c.r,c.g,c.b,c.lineWidth,c.dashed,d):n.step===2&&(g.previewFn==="fib_ext"?t.set_fib_ext_preview(n.x1,n.y1,n.x2,n.y2,o,h,c.r,c.g,c.b,c.lineWidth,c.dashed,d):t.set_channel_preview(n.x1,n.y1,n.x2,n.y2,o,h,c.r,c.g,c.b,c.lineWidth,c.dashed,d)):g.type==="2point"||g.type==="drag2point"?t.set_drawing_preview(g.previewKind,n.x1,n.y1,o,h,c.r,c.g,c.b,c.lineWidth,c.dashed,d):g.type==="1point_x"?t.set_drawing_preview(g.previewKind,o,0,0,0,c.r,c.g,c.b,c.lineWidth,c.dashed,d):g.type==="1point_xp"||g.type==="1point_xy"?t.set_drawing_preview(g.previewKind,o,h,0,0,c.r,c.g,c.b,c.lineWidth,c.dashed,d):t.set_drawing_preview(g.previewKind,0,h,0,0,c.r,c.g,c.b,c.lineWidth,c.dashed,d)}}function wr(t,e,n,o,h,c){if(o!=null&&h!=null){let a=e-o,s=n-h,i=Math.sqrt(a*a+s*s);if(i>1.5*1.2){let u=Math.min(128,Math.ceil(i/1.5));for(let f=1;f<u;f++){let m=f/u,A=o+a*m,T=h+s*m,{wx:_,wy:I}=Tt(t,A,T,c);t.add_brush_point(_,I)}}}let{wx:g,wy:r}=Tt(t,e,n,c);t.add_brush_point(g,r)}function Tt(t,e,n,o){let h=t.screen_to_world_x(e),c;switch(o){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:h,wy:c}}function ee(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 Oe(t){return t===4||t===6||t===8||t===10||t===12||t===19||t===22||t===25}function qt(t){return t===14||t===15||t===16||t===17||t===18||t===21||t===24||t===27}function se(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 be(t,e,n,o){Oe(e)?(t.pan(n,0),Math.abs(o)>.01&&e!==4&&t.pan_indicator_y(se(e),o)):t.pan(n,o)}function Ut(t){return t===0||t===4||t===6||t===8||t===10||t===12||t===22||t===25}function ao(t,e,n,o){t.addEventListener("wheel",i=>{if(o.disposed)return;i.preventDefault(),o.cancelMomentum();let u=i.deltaY>0?1.1:.9,f=e.hit_zone(i.offsetX,i.offsetY);f!==255&&(qt(f)?f!==14&&e.zoom_indicator_y(se(f),i.offsetY,u):Oe(f)?f===4?e.zoom_x(i.offsetX,u):i.ctrlKey?e.zoom_indicator_y(se(f),i.offsetY,u):e.zoom_x(i.offsetX,u):i.ctrlKey?e.zoom_y(i.offsetY,u):i.shiftKey||f===2?e.zoom_x(i.offsetX,u):f===3?e.zoom_y(i.offsetY,u):e.zoom(i.offsetX,i.offsetY,u),n.onDirty())},{passive:!1}),t.addEventListener("mousedown",i=>{if(o.disposed||i.button!==0)return;o.cancelMomentum(),c();let u=performance.now();if(u-o.lastClickTime<300){o.lastClickTime=u;return}if(o.lastClickTime=u,typeof e.is_in_watermark_btn=="function"&&e.is_in_watermark_btn(i.offsetX,i.offsetY)){o.watermarkPending=!0;return}if(o.watermarkPending=!1,typeof e.is_in_quick_trade_btn=="function"&&e.is_in_quick_trade_btn(i.offsetX,i.offsetY)){o.qtbPending=!0;try{o.qtbWorldY=e.crosshair_world_y()}catch{o.qtbWorldY=0}return}let f=o.drawingMode;if(f){let A=e.hit_zone(i.offsetX,i.offsetY);if(!Ut(A))return;let T=ee(A),{wx:_,wy:I}=Tt(e,i.offsetX,i.offsetY,T),P=f.style,S=f.tool;if(f.undoSnapshotTaken||(n.onDrawingMutationBegin?.(),f.undoSnapshotTaken=!0),pe(S)){if(!f.pathStarted)f.pane=T,e.start_elliott_manual(P.r,P.g,P.b,P.lineWidth,T),e.add_elliott_manual_point(_,I),f.pathStarted=!0,f.step=1;else if(e.add_elliott_manual_point(_,I)){o.finishDrawing(),n.onDirty();return}}else if(he(S))f.pathStarted?e.add_path_point(_,I):(f.pane=T,e.start_path(P.r,P.g,P.b,P.lineWidth,P.dashed,T),e.add_path_point(_,I),f.pathStarted=!0,f.step=1);else if(gr(S))f.pane=T,e.start_brush(P.r,P.g,P.b,P.lineWidth,T),e.add_brush_point(_,I),o.isBrushing=!0,o.brushLastSx=i.offsetX,o.brushLastSy=i.offsetY;else if(sr(S))if(f.step===0)f.x1=_,f.y1=I,f.pane=T,f.step=1;else if(f.step===1)f.x2=_,f.y2=I,f.step=2,e.clear_drawing_preview();else{let C=Qt[S];C&&C.previewFn==="fib_ext"?e.clear_fib_ext_preview():e.clear_channel_preview(),ae(e,S,f,_,I,P),o.finishDrawing()}else if(or(S))f.step===0?(f.x1=_,f.y1=I,f.pane=T,f.step=1):(ae(e,S,f,_,I,P),o.finishDrawing());else if(ir(S))f.x1=_,f.y1=I,f.pane=T,f.step=1,f.dragStartSx=i.offsetX,f.dragStartSy=i.offsetY,o.isDrawingDragRange=!0;else{f.pane=T;let C=ae(e,S,f,_,I,P);o.finishDrawing(),S==="textnote"&&C>0&&(e.select_drawing(C),n.onDrawingSelected?.(C),n.onDrawingDblClick?.(C,i.offsetX,i.offsetY,i.clientX,i.clientY))}n.onDirty();return}let m=e.hit_zone(i.offsetX,i.offsetY);if(m!==255){if(m===5){o.isResizingRsi=!0,o.resizeStartY=i.offsetY,o.resizeStartRatio=e.get_rsi_ratio(),t.style.cursor="ns-resize";return}if(m===7){o.isResizingOi=!0,o.resizeStartY=i.offsetY,o.resizeStartRatio=e.get_oi_ratio(),t.style.cursor="ns-resize";return}if(m===9){o.isResizingFr=!0,o.resizeStartY=i.offsetY,o.resizeStartRatio=e.get_fr_ratio(),t.style.cursor="ns-resize";return}if(m===11){o.isResizingCvd=!0,o.resizeStartY=i.offsetY,o.resizeStartRatio=e.get_cvd_ratio(),t.style.cursor="ns-resize";return}if(m===13){o.isResizingVpin=!0,o.resizeStartY=i.offsetY,o.resizeStartRatio=e.get_vpin_ratio(),t.style.cursor="ns-resize";return}if(m===20){o.isResizingObFlow=!0,o.resizeStartY=i.offsetY,o.resizeStartRatio=e.get_obf_ratio(),t.style.cursor="ns-resize";return}if(m===23){o.isResizingAggLiq=!0,o.resizeStartY=i.offsetY,o.resizeStartRatio=e.get_agg_liq_ratio(),t.style.cursor="ns-resize";return}if(Ut(m)){let A=e.get_selected_drawing();if(A>0){let S=e.hit_test_drawing_anchor(i.offsetX,i.offsetY);if(S>=0){n.onDrawingMutationBegin?.(),o.isDraggingAnchor=!0,o.dragAnchorIdx=S,o.dragAnchorPane=ee(m),t.style.cursor="grabbing";return}if(e.hit_test_drawing(i.offsetX,i.offsetY)===A){n.onDrawingMutationBegin?.(),o.isDraggingDrawing=!0,o.dragDrawingPane=ee(m);let{wx:B,wy:V}=Tt(e,i.offsetX,i.offsetY,o.dragDrawingPane);o.dragDrawingLastWx=B,o.dragDrawingLastWy=V,t.style.cursor="move";return}}let T=e.hit_test_drawing(i.offsetX,i.offsetY);if(T>0){e.deselect_marker(),n.onMarkerSelected?.(0),e.select_drawing(T),n.onDrawingSelected?.(T),n.onDirty();return}let _=e.hit_test_marker(i.offsetX,i.offsetY);if(_>0){e.deselect_drawing(),n.onDrawingSelected?.(0),e.select_marker(_),n.onMarkerSelected?.(_),n.onDirty();return}let I=e.get_selected_drawing(),P=e.get_selected_marker();I>0&&(e.deselect_drawing(),n.onDrawingSelected?.(0),n.onDirty()),P>0&&(e.deselect_marker(),n.onMarkerSelected?.(0),n.onDirty())}Ut(m)&&(o.liqPinSx=i.offsetX,o.liqPinSy=i.offsetY,o.liqPinTimer&&clearTimeout(o.liqPinTimer),o.liqPinTimer=setTimeout(()=>{o.liqPinTimer=null,n.onLiqAnnotationPin?.(o.liqPinSx,o.liqPinSy)},700)),o.isDragging=!0,o.dragZone=m,o.lastX=i.offsetX,o.lastY=i.offsetY,m===2?t.style.cursor="ew-resize":m===3||qt(m)?t.style.cursor="ns-resize":t.style.cursor="grabbing"}});let h=null;function c(){h&&(cancelAnimationFrame(h),h=null)}function d(){if(h=null,o.disposed)return;let i=o._pendingHoverX,u=o._pendingHoverY;if(i==null||u==null)return;let f=e.hit_zone(i,u);f===2||f===3||qt(f)||f===255?e.hide_crosshair():e.set_crosshair(i,u),n.onDirty(),n.onCrosshairMove?.(i,u,f),n.onVrvpHover?.(i,u),g(i,u)}function g(i,u){if(typeof e.is_in_watermark_btn=="function"&&e.is_in_watermark_btn(i,u)){t.style.cursor="pointer";return}if(typeof e.is_in_quick_trade_btn=="function"&&e.is_in_quick_trade_btn(i,u)){t.style.cursor="pointer";return}let f=e.hover_hit_test(i,u),m=f[0],A=f[1],T=f[2],_=f[3],I=f[4],P=o.drawingMode;if(m===255)t.style.cursor="default";else if(m===2)t.style.cursor="ew-resize";else if(m===3||qt(m))t.style.cursor="ns-resize";else if(m===5||m===7||m===9||m===11||m===13||m===20||m===23)t.style.cursor="ns-resize";else if(!P&&Ut(m)&&A>0&&T>=0){let S="grab";try{e.get_drawing_kind_id?.(A)===18&&(T===0||T===1?S="nwse-resize":T===2||T===3?S="nesw-resize":T===4||T===6?S="ns-resize":(T===5||T===7)&&(S="ew-resize"))}catch{}t.style.cursor=S}else!P&&Ut(m)&&A>0&&_===A?t.style.cursor="move":!P&&Ut(m)&&(_>0||I>0)||!P&&r(i,u)?t.style.cursor="pointer":t.style.cursor="crosshair"}function r(i,u){if(typeof e.indicator_at_point=="function")try{let f=e.indicator_at_point(i,u)||"";if(f)return f}catch{}if(n&&typeof n.customIndicatorAtPoint=="function")try{return n.customIndicatorAtPoint(i,u)||""}catch{return""}return""}function a(i,u){o._pendingHoverX=i,o._pendingHoverY=u,h||(h=requestAnimationFrame(d))}t.addEventListener("mousemove",i=>{if(o.disposed)return;if(o.liqPinTimer){let f=Math.abs(i.offsetX-o.liqPinSx),m=Math.abs(i.offsetY-o.liqPinSy);(f>6||m>6)&&(clearTimeout(o.liqPinTimer),o.liqPinTimer=null)}if(o.isResizingRsi){let m=t.getBoundingClientRect().height-28,T=(o.resizeStartY-i.offsetY)/m,_=Math.max(.05,Math.min(.5,o.resizeStartRatio+T));e.set_rsi_ratio(_),n.onDirty();return}if(o.isResizingOi){let m=t.getBoundingClientRect().height-28,T=(o.resizeStartY-i.offsetY)/m,_=Math.max(.05,Math.min(.5,o.resizeStartRatio+T));e.set_oi_ratio(_),n.onDirty();return}if(o.isResizingFr){let m=t.getBoundingClientRect().height-28,T=(o.resizeStartY-i.offsetY)/m,_=Math.max(.05,Math.min(.5,o.resizeStartRatio+T));e.set_fr_ratio(_),n.onDirty();return}if(o.isResizingCvd){let m=t.getBoundingClientRect().height-28,T=(o.resizeStartY-i.offsetY)/m,_=Math.max(.05,Math.min(.5,o.resizeStartRatio+T));e.set_cvd_ratio(_),n.onDirty();return}if(o.isResizingVpin){let m=t.getBoundingClientRect().height-28,T=(o.resizeStartY-i.offsetY)/m,_=Math.max(.05,Math.min(.5,o.resizeStartRatio+T));e.set_vpin_ratio(_),n.onDirty();return}if(o.isResizingObFlow){let m=t.getBoundingClientRect().height-28,T=(o.resizeStartY-i.offsetY)/m,_=Math.max(.05,Math.min(.5,o.resizeStartRatio+T));e.set_obf_ratio(_),n.onDirty();return}if(o.isResizingAggLiq){let m=t.getBoundingClientRect().height-28,T=(o.resizeStartY-i.offsetY)/m,_=Math.max(.05,Math.min(.5,o.resizeStartRatio+T));e.set_agg_liq_ratio(_),n.onDirty();return}if(o.isDraggingAnchor){let{wx:f,wy:m}=Tt(e,i.offsetX,i.offsetY,o.dragAnchorPane);e.update_drawing_anchor(o.dragAnchorIdx,f,m),e.set_crosshair(i.offsetX,i.offsetY),n.onDirty(),n.onCrosshairMove?.(i.offsetX,i.offsetY,e.hit_zone(i.offsetX,i.offsetY));return}if(o.isDraggingDrawing){let{wx:f,wy:m}=Tt(e,i.offsetX,i.offsetY,o.dragDrawingPane),A=f-o.dragDrawingLastWx,T=m-o.dragDrawingLastWy;e.move_drawing(A,T),o.dragDrawingLastWx=f,o.dragDrawingLastWy=m,e.set_crosshair(i.offsetX,i.offsetY),n.onDirty(),n.onCrosshairMove?.(i.offsetX,i.offsetY,e.hit_zone(i.offsetX,i.offsetY));return}let u=o.drawingMode;if(o.isBrushing&&u){let f=u.pane||0;wr(e,i.offsetX,i.offsetY,o.brushLastSx,o.brushLastSy,f),o.brushLastSx=i.offsetX,o.brushLastSy=i.offsetY,e.set_crosshair(i.offsetX,i.offsetY),n.onDirty();return}if(u&&pe(u.tool)&&u.pathStarted){let f=u.pane||0,{wx:m,wy:A}=Tt(e,i.offsetX,i.offsetY,f);e.set_elliott_manual_cursor(m,A),e.set_crosshair(i.offsetX,i.offsetY);let T=e.hit_zone(i.offsetX,i.offsetY);n.onDirty(),n.onCrosshairMove?.(i.offsetX,i.offsetY,T);return}if(u&&he(u.tool)&&u.pathStarted){let f=u.pane||0,{wx:m,wy:A}=Tt(e,i.offsetX,i.offsetY,f);e.set_path_cursor(m,A),e.set_crosshair(i.offsetX,i.offsetY);let T=e.hit_zone(i.offsetX,i.offsetY);n.onDirty(),n.onCrosshairMove?.(i.offsetX,i.offsetY,T);return}if(u&&u.step>0){let f=u.pane||0,{wx:m,wy:A}=Tt(e,i.offsetX,i.offsetY,f);te(e,u.tool,u,m,A,u.style,f),e.set_crosshair(i.offsetX,i.offsetY);let T=e.hit_zone(i.offsetX,i.offsetY);n.onDirty(),n.onCrosshairMove?.(i.offsetX,i.offsetY,T);return}if(u&&Ze(u.tool)){let f=e.hit_zone(i.offsetX,i.offsetY),m=ee(f),{wx:A,wy:T}=Tt(e,i.offsetX,i.offsetY,m);te(e,u.tool,u,A,T,u.style,m),e.set_crosshair(i.offsetX,i.offsetY),n.onDirty(),n.onCrosshairMove?.(i.offsetX,i.offsetY,f);return}if(o.isDragging){let f=i.offsetX-o.lastX,m=i.offsetY-o.lastY;o.lastX=i.offsetX,o.lastY=i.offsetY,(f!==0||m!==0)&&(o.isPanning=!0),o.dragZone===2?e.pan_x(f):o.dragZone===3?e.pan_y(m):o.dragZone===14||(qt(o.dragZone)?e.pan_indicator_y(se(o.dragZone),m):be(e,o.dragZone,f,m)),e.set_crosshair(i.offsetX,i.offsetY),n.onDirty(),n.onCrosshairMove?.(i.offsetX,i.offsetY,o.dragZone),n.onVrvpHover?.(i.offsetX,i.offsetY);return}a(i.offsetX,i.offsetY)}),t.addEventListener("mouseup",i=>{if(!o.disposed){if(o.watermarkPending){if(o.watermarkPending=!1,i&&typeof e.is_in_watermark_btn=="function"&&e.is_in_watermark_btn(i.offsetX,i.offsetY))try{window.open("https://app.mrd-indicators.com/charting-library/pricing","_blank","noopener,noreferrer")}catch{}return}if(o.qtbPending){if(o.qtbPending=!1,i&&typeof e.is_in_quick_trade_btn=="function"&&e.is_in_quick_trade_btn(i.offsetX,i.offsetY)){let f=Number(o.qtbWorldY)||0;f>0&&n.onQuickTradeBtnClick?.(f,i.offsetX,i.offsetY)}o.qtbWorldY=0;return}if(o.liqPinTimer&&(clearTimeout(o.liqPinTimer),o.liqPinTimer=null),o.isBrushing&&(o.isBrushing=!1,o.brushLastSx=null,o.brushLastSy=null,e.finish_brush(),o.finishDrawing(),n.onDirty()),o.isDrawingDragRange){o.isDrawingDragRange=!1;let u=o.drawingMode;if(u&&u.step===1){let f=i.offsetX-(u.dragStartSx||0),m=i.offsetY-(u.dragStartSy||0);if(f*f+m*m>=16){let T=e.hit_zone(i.offsetX,i.offsetY),_=Ut(T)?ee(T):u.pane||0,{wx:I,wy:P}=Tt(e,i.offsetX,i.offsetY,_);ae(e,u.tool,u,I,P,u.style),o.finishDrawing(),n.onDirty()}else e.clear_drawing_preview(),u.step=0,n.onDirty()}}o.isDragging=!1,o.isPanning=!1,o.isResizingRsi=!1,o.isResizingOi=!1,o.isResizingFr=!1,o.isResizingCvd=!1,o.isResizingVpin=!1,o.isResizingObFlow=!1,o.isResizingAggLiq=!1,o.isDraggingAnchor=!1,o.isDraggingDrawing=!1,o.dragAnchorIdx=-1,t.style.cursor="crosshair"}});function s(){if(!o.disposed&&!o._leaveHandled){if(o._leaveHandled=!0,requestAnimationFrame(()=>{o._leaveHandled=!1}),c(),o.liqPinTimer&&(clearTimeout(o.liqPinTimer),o.liqPinTimer=null),o.isBrushing&&(o.isBrushing=!1,o.brushLastSx=null,o.brushLastSy=null,e.finish_brush(),o.finishDrawing()),o.isDrawingDragRange){o.isDrawingDragRange=!1;let i=o.drawingMode;i&&i.step===1&&(e.clear_drawing_preview(),i.step=0)}o.isDragging=!1,o.isPanning=!1,o.isResizingRsi=!1,o.isResizingOi=!1,o.isResizingFr=!1,o.isResizingCvd=!1,o.isResizingVpin=!1,o.isResizingObFlow=!1,o.isResizingAggLiq=!1,o.isDraggingAnchor=!1,o.isDraggingDrawing=!1,o.dragAnchorIdx=-1,o.qtbPending=!1,o.qtbWorldY=0,c(),o._pendingHoverX=null,o._pendingHoverY=null,e.hide_crosshair(),t.style.cursor="crosshair",n.onDirty(),n.onCrosshairHide?.(),n.onVrvpHover?.(null,null)}}t.addEventListener("pointerleave",s),t.addEventListener("mouseleave",s),t.addEventListener("dblclick",i=>{if(o.disposed)return;i.preventDefault(),i.stopPropagation();let u=o.drawingMode;if(u&&pe(u.tool)&&u.pathStarted){e.finish_elliott_manual(),o.finishDrawing(),n.onDirty();return}if(u&&he(u.tool)&&u.pathStarted){e.finish_path(),o.finishDrawing(),n.onDirty();return}if(u)return;let f=e.hit_zone(i.offsetX,i.offsetY),m=e.hit_test_drawing(i.offsetX,i.offsetY);if(m>0){e.select_drawing(m),n.onDirty(),n.onDrawingDblClick?.(m,i.offsetX,i.offsetY,i.clientX,i.clientY);return}if(qt(f)){e.reset_indicator_y_auto(se(f)),n.onDirty();return}let A=r(i.offsetX,i.offsetY);if(A){n.onIndicatorDblClick?.(A,i.offsetX,i.offsetY,i.clientX,i.clientY);return}if(Oe(f)){e.reset_indicator_y_auto(se(f)),n.onDirty();return}(f===0||f===1)&&n.onChartDblClick?.(i.offsetX,i.offsetY,i.clientX,i.clientY)}),t.addEventListener("contextmenu",i=>{if(o.disposed)return;let u=o.drawingMode;if(u&&pe(u.tool)&&u.pathStarted){i.preventDefault(),i.stopPropagation(),e.finish_elliott_manual(),o.finishDrawing(),n.onDirty();return}if(u&&he(u.tool)&&u.pathStarted){i.preventDefault(),i.stopPropagation(),e.finish_path(),o.finishDrawing(),n.onDirty();return}})}var vr=25;function lo(t,e,n,o){let h=null,c=()=>h||(h=t.getBoundingClientRect()),d=()=>{h=null};window.addEventListener("resize",d,{passive:!0}),typeof window.visualViewport<"u"&&window.visualViewport&&window.visualViewport.addEventListener("resize",d,{passive:!0}),t.addEventListener("touchstart",g=>{if(!o.disposed){if(g.preventDefault(),o.cancelMomentum(),d(),g.touches.length===2){clearTimeout(o.longPressTimer),o.liqPinTimer&&(clearTimeout(o.liqPinTimer),o.liqPinTimer=null),o.isCrosshairMode=!1,o.pinchActive=!0,o.lastTapTime=0;let r=c(),a=g.touches[1].clientX-g.touches[0].clientX,s=g.touches[1].clientY-g.touches[0].clientY;if(o.lastTouchDist=Math.sqrt(a*a+s*s),o.lastX=(g.touches[0].clientX+g.touches[1].clientX)/2-r.left,o.lastY=(g.touches[0].clientY+g.touches[1].clientY)/2-r.top,o.dragZone=e.hit_zone(o.lastX,o.lastY),o.pinchAnchorY=o.lastY,o.dragZone===255){o.pinchActive=!1,o.lastTouchDist=0;return}}else if(g.touches.length===1){let r=c(),a=g.touches[0].clientX-r.left,s=g.touches[0].clientY-r.top;if(o.touchStartX=a,o.touchStartY=s,o.touchMoved=!1,typeof e.is_in_watermark_btn=="function"&&e.is_in_watermark_btn(a,s)){o.watermarkTapPending=!0,o.watermarkTapX=a,o.watermarkTapY=s;return}o.watermarkTapPending=!1;let i=o.drawingMode;if(i){let T=e.hit_zone(a,s);if(Ut(T)){let _=ee(T),{wx:I,wy:P}=Tt(e,a,s,_),S=i.tool;if(pe(S)){if(!i.pathStarted)i.pane=_,e.start_elliott_manual(i.style.r,i.style.g,i.style.b,i.style.lineWidth,_),e.add_elliott_manual_point(I,P),i.pathStarted=!0,i.step=1;else if(e.add_elliott_manual_point(I,P)){o.finishDrawing(),n.onDirty();return}}else he(S)?i.pathStarted?e.add_path_point(I,P):(i.pane=_,e.start_path(i.style.r,i.style.g,i.style.b,i.style.lineWidth,i.style.dashed,_),e.add_path_point(I,P),i.pathStarted=!0,i.step=1):gr(S)?(i.pane=_,e.start_brush(i.style.r,i.style.g,i.style.b,i.style.lineWidth,_),e.add_brush_point(I,P),o.isBrushing=!0,o.brushLastSx=a,o.brushLastSy=s):sr(S)?i.step===0?(i.x1=I,i.y1=P,i.pane=_,i.step=1,i._stepAtTouchStart=0,te(e,S,i,I,P,i.style,_)):i.step===1?(i._stepAtTouchStart=1,te(e,S,i,I,P,i.style,i.pane)):(i._stepAtTouchStart=2,te(e,S,i,I,P,i.style,i.pane)):or(S)||ir(S)?i.step===0?(i.x1=I,i.y1=P,i.pane=_,i.step=1,i._stepAtTouchStart=0,te(e,S,i,I,P,i.style,_)):(i._stepAtTouchStart=1,te(e,S,i,I,P,i.style,i.pane)):Ze(S)?(i.pane=_,te(e,S,i,I,P,i.style,_)):(i.pane=_,ae(e,S,i,I,P,i.style),o.finishDrawing());e.set_crosshair(a,s),n.onDirty(),n.onCrosshairMove?.(a,s,T)}return}let u=e.hover_hit_test(a,s),f=u[0],m=u[1],A=u[2];if(f===255)return;if(Ut(f)&&!o.drawingMode&&m>0){if(A>=0){o.isDraggingAnchor=!0,o.dragAnchorIdx=A,o.dragAnchorPane=ee(f);return}if(u[3]===m){o.isDraggingDrawing=!0,o.dragDrawingPane=ee(f);let{wx:_,wy:I}=Tt(e,a,s,o.dragDrawingPane);o.dragDrawingLastWx=_,o.dragDrawingLastWy=I;return}}o.isDragging=!0,o.isCrosshairMode=!1,o.lastX=a,o.lastY=s,o.dragZone=f,clearTimeout(o.longPressTimer),o.longPressTimer=setTimeout(()=>{o.isDragging&&!o.touchMoved&&(o.isCrosshairMode=!0,e.set_crosshair(a,s),n.onDirty(),n.onCrosshairMove?.(a,s,o.dragZone),n.onVrvpHover?.(a,s))},300),Ut(o.dragZone)&&(o.liqPinSx=a,o.liqPinSy=s,o.liqPinTimer&&clearTimeout(o.liqPinTimer),o.liqPinTimer=setTimeout(()=>{o.liqPinTimer=null,o.touchMoved||n.onLiqAnnotationPin?.(o.liqPinSx,o.liqPinSy)},700))}}},{passive:!1}),t.addEventListener("touchmove",g=>{if(o.disposed)return;g.preventDefault();let r=c();if(o.isDraggingAnchor&&g.touches.length===1){let s=g.touches[0].clientX-r.left,i=g.touches[0].clientY-r.top,{wx:u,wy:f}=Tt(e,s,i,o.dragAnchorPane);e.update_drawing_anchor(o.dragAnchorIdx,u,f),e.set_crosshair(s,i),n.onDirty();return}if(o.isDraggingDrawing&&g.touches.length===1){let s=g.touches[0].clientX-r.left,i=g.touches[0].clientY-r.top;o.touchMoved=!0;let{wx:u,wy:f}=Tt(e,s,i,o.dragDrawingPane),m=u-o.dragDrawingLastWx,A=f-o.dragDrawingLastWy;e.move_drawing(m,A),o.dragDrawingLastWx=u,o.dragDrawingLastWy=f,e.set_crosshair(s,i),n.onDirty();return}let a=o.drawingMode;if(o.isBrushing&&a&&g.touches.length===1){let s=g.touches[0].clientX-r.left,i=g.touches[0].clientY-r.top,u=a.pane||0;wr(e,s,i,o.brushLastSx,o.brushLastSy,u),o.brushLastSx=s,o.brushLastSy=i,e.set_crosshair(s,i),n.onDirty(),o.touchMoved=!0;return}if(a&&pe(a.tool)&&a.pathStarted&&g.touches.length===1){let s=g.touches[0].clientX-r.left,i=g.touches[0].clientY-r.top,u=a.pane||0,{wx:f,wy:m}=Tt(e,s,i,u);e.set_elliott_manual_cursor(f,m),e.set_crosshair(s,i),n.onDirty(),o.touchMoved=!0;return}if(a&&he(a.tool)&&a.pathStarted&&g.touches.length===1){let s=g.touches[0].clientX-r.left,i=g.touches[0].clientY-r.top,u=a.pane||0,{wx:f,wy:m}=Tt(e,s,i,u);e.set_path_cursor(f,m),e.set_crosshair(s,i),n.onDirty(),o.touchMoved=!0;return}if(a&&a.step>0&&g.touches.length===1){let s=g.touches[0].clientX-r.left,i=g.touches[0].clientY-r.top;!o.touchMoved&&(Math.abs(s-o.touchStartX)>vr||Math.abs(i-o.touchStartY)>vr)&&(o.touchMoved=!0);let u=a.pane||0,{wx:f,wy:m}=Tt(e,s,i,u);te(e,a.tool,a,f,m,a.style,u),e.set_crosshair(s,i);let A=e.hit_zone(s,i);n.onDirty(),n.onCrosshairMove?.(s,i,A);return}if(a&&Ze(a.tool)&&g.touches.length===1){let s=g.touches[0].clientX-r.left,i=g.touches[0].clientY-r.top,u=e.hit_zone(s,i),f=ee(u),{wx:m,wy:A}=Tt(e,s,i,f);te(e,a.tool,a,m,A,a.style,f),e.set_crosshair(s,i),n.onDirty(),n.onCrosshairMove?.(s,i,u);return}if(g.touches.length===2){if(o.dragZone===255)return;o.velSamples=[],o.pinchActive=!0;let s=g.touches[1].clientX-g.touches[0].clientX,i=g.touches[1].clientY-g.touches[0].clientY,u=Math.sqrt(s*s+i*i),f=o.lastTouchDist/u,m=(g.touches[0].clientX+g.touches[1].clientX)/2-r.left,A=(g.touches[0].clientY+g.touches[1].clientY)/2-r.top,T=o.pinchAnchorY??A;o.dragZone===3?e.zoom_y(T,f):qt(o.dragZone)&&o.dragZone!==14?e.zoom_indicator_y(se(o.dragZone),T,f):o.dragZone===14?(e.zoom_x(m,f),be(e,4,m-o.lastX,A-o.lastY)):o.dragZone===2?e.zoom_x(m,f):Oe(o.dragZone)?(e.zoom_x(m,f),be(e,o.dragZone,m-o.lastX,A-o.lastY)):(e.zoom_x(m,f),be(e,o.dragZone,m-o.lastX,A-o.lastY)),o.lastTouchDist=u,o.lastX=m,o.lastY=A,n.onDirty()}else if(g.touches.length===1&&o.isDragging){let s=g.touches[0].clientX-r.left,i=g.touches[0].clientY-r.top,u=s-o.lastX,f=i-o.lastY;if(!o.touchMoved&&(Math.abs(s-o.touchStartX)>vr||Math.abs(i-o.touchStartY)>vr)&&(o.touchMoved=!0,o.isCrosshairMode||clearTimeout(o.longPressTimer),o.liqPinTimer&&(clearTimeout(o.liqPinTimer),o.liqPinTimer=null)),o.isCrosshairMode)e.set_crosshair(s,i),n.onDirty(),n.onCrosshairMove?.(s,i,o.dragZone),n.onVrvpHover?.(s,i);else if(o.touchMoved){if(o.isPanning=!0,o.lastX=s,o.lastY=i,o.dragZone===3||qt(o.dragZone)||o.recordVelocity(u,f),o.dragZone===2)e.pan_x(u);else if(o.dragZone===3){let A=Math.pow(1.005,f);e.zoom_y(o.touchStartY,A)}else if(o.dragZone!==14)if(qt(o.dragZone)){let A=Math.pow(1.005,f);e.zoom_indicator_y(se(o.dragZone),o.touchStartY,A)}else be(e,o.dragZone,u,f);n.onDirty()}else o.lastX=s,o.lastY=i}},{passive:!1}),t.addEventListener("touchend",g=>{if(o.disposed)return;if(clearTimeout(o.longPressTimer),o.liqPinTimer&&(clearTimeout(o.liqPinTimer),o.liqPinTimer=null),o.watermarkTapPending&&g.touches.length===0){if(o.watermarkTapPending=!1,!o.touchMoved&&!o.pinchActive&&typeof e.is_in_watermark_btn=="function"&&e.is_in_watermark_btn(o.watermarkTapX,o.watermarkTapY))try{window.open("https://app.mrd-indicators.com/charting-library/pricing","_blank","noopener,noreferrer")}catch{}return}if(o.isDraggingAnchor){o.isDraggingAnchor=!1,o.dragAnchorIdx=-1,e.hide_crosshair(),n.onDirty(),n.onCrosshairHide?.();return}if(o.isDraggingDrawing){if(o.isDraggingDrawing=!1,e.hide_crosshair(),n.onDirty(),n.onCrosshairHide?.(),!o.touchMoved){let i=e.get_selected_drawing();if(i>0){let u=t.getBoundingClientRect();n.onDrawingDblClick?.(i,o.touchStartX,o.touchStartY,o.touchStartX+u.left,o.touchStartY+u.top)}}return}if(o.isBrushing){o.isBrushing=!1,o.brushLastSx=null,o.brushLastSy=null,e.finish_brush(),o.finishDrawing(),n.onDirty(),n.onCrosshairHide?.();return}let r=o.drawingMode;if(r&&pe(r.tool)&&r.pathStarted){let i=Date.now(),u=o.touchStartX-(o._pathLastTapX||0),f=o.touchStartY-(o._pathLastTapY||0),m=Math.sqrt(u*u+f*f);i-(o._pathLastTapTime||0)<350&&m<30?(e.finish_elliott_manual(),o.finishDrawing(),o._pathLastTapTime=0):(o._pathLastTapTime=i,o._pathLastTapX=o.touchStartX,o._pathLastTapY=o.touchStartY),o.isDragging=!1,o.lastTouchDist=0,n.onDirty();return}if(r&&he(r.tool)&&r.pathStarted){let i=Date.now(),u=o.touchStartX-(o._pathLastTapX||0),f=o.touchStartY-(o._pathLastTapY||0),m=Math.sqrt(u*u+f*f);i-(o._pathLastTapTime||0)<350&&m<30?(e.finish_path(),o.finishDrawing(),o._pathLastTapTime=0):(o._pathLastTapTime=i,o._pathLastTapX=o.touchStartX,o._pathLastTapY=o.touchStartY),o.isDragging=!1,o.lastTouchDist=0,n.onDirty();return}if(r&&sr(r.tool)){let i=r._stepAtTouchStart;if(r.step===1&&(i===1||o.touchMoved)){let u=t.getBoundingClientRect(),f=g.changedTouches?.[0];if(f){let m=f.clientX-u.left,A=f.clientY-u.top,T=r.pane||0,{wx:_,wy:I}=Tt(e,m,A,T);r.x2=_,r.y2=I,r.step=2,e.clear_drawing_preview()}}else if(r.step===2&&(i===2||o.touchMoved)){let u=t.getBoundingClientRect(),f=g.changedTouches?.[0];if(f){let m=f.clientX-u.left,A=f.clientY-u.top,T=r.pane||0,{wx:_,wy:I}=Tt(e,m,A,T),P=Qt[r.tool];P&&P.previewFn==="fib_ext"?e.clear_fib_ext_preview():e.clear_channel_preview(),ae(e,r.tool,r,_,I,r.style),o.finishDrawing()}}o.isDragging=!1,o.lastTouchDist=0,o.drawingMode||(e.hide_crosshair(),n.onCrosshairHide?.()),n.onDirty();return}if(r&&r.step===1&&(or(r.tool)||ir(r.tool))){if(r._stepAtTouchStart===1||o.touchMoved){let u=t.getBoundingClientRect(),f=g.changedTouches?.[0];if(f){let m=f.clientX-u.left,A=f.clientY-u.top,T=r.pane||0,{wx:_,wy:I}=Tt(e,m,A,T);ae(e,r.tool,r,_,I,r.style),o.finishDrawing()}}o.isDragging=!1,o.lastTouchDist=0,o.drawingMode||(e.hide_crosshair(),n.onCrosshairHide?.()),n.onDirty();return}if(r&&Ze(r.tool)){let i=t.getBoundingClientRect(),u=g.changedTouches?.[0];if(u){let f=u.clientX-i.left,m=u.clientY-i.top,A=e.hit_zone(f,m),T=Ut(A)?ee(A):r.pane||0,{wx:_,wy:I}=Tt(e,f,m,T),P=r.tool;e.clear_drawing_preview();let S=ae(e,P,r,_,I,r.style);o.finishDrawing(),P==="textnote"&&S>0&&(e.select_drawing(S),n.onDrawingSelected?.(S),n.onDrawingDblClick?.(S,f,m,f+i.left,m+i.top))}o.isDragging=!1,o.lastTouchDist=0,e.hide_crosshair(),n.onCrosshairHide?.(),n.onDirty();return}let a=g.touches.length===0;if(a&&!o.pinchActive&&!o.touchMoved&&!o.drawingMode){let i=Date.now(),u=o.touchStartX,f=o.touchStartY,m=u-o.lastTapX,A=f-o.lastTapY,T=Math.sqrt(m*m+A*A),_=i-o.lastTapTime<350&&T<30,I=e.hit_zone(u,f),P=_?e.hit_test_drawing(u,f):0;if(_&&(Oe(I)||qt(I))&&P<=0)e.reset_indicator_y_auto(se(I)),n.onDirty();else if(Ut(I)){let S=e.get_selected_drawing(),C=P>0?P:e.hit_test_drawing(u,f),B=0;if(C<=0&&(B=e.hit_test_marker(u,f)),C>0){e.deselect_marker(),n.onMarkerSelected?.(0),e.select_drawing(C);let V=t.getBoundingClientRect(),x=u+V.left,O=f+V.top;n.onDrawingSelected?.(C,x,O),(S<=0||S===C)&&n.onDrawingDblClick?.(C,u,f,x,O),n.onDirty()}else if(B>0)e.deselect_drawing(),n.onDrawingSelected?.(0),e.select_marker(B),n.onMarkerSelected?.(B),n.onDirty();else if(S>0&&(e.deselect_drawing(),n.onDrawingSelected?.(0),n.onDirty()),e.get_selected_marker()>0&&(e.deselect_marker(),n.onMarkerSelected?.(0),n.onDirty()),_&&I===0){let x=t.getBoundingClientRect();n.onChartDblClick?.(u,f,u+x.left,f+x.top)}}o.lastTapTime=i,o.lastTapX=u,o.lastTapY=f}a&&!o.pinchActive&&o.touchMoved&&!o.isCrosshairMode&&!o.drawingMode&&o.dragZone!==3&&!qt(o.dragZone)&&o.startMomentum(o.dragZone),o.isDragging=!1,o.isPanning=!1,o.isCrosshairMode=!1,o.lastTouchDist=0,a&&(o.pinchActive=!1),(!o.drawingMode||o.drawingMode.step===0)&&(e.hide_crosshair(),n.onCrosshairHide?.()),n.onDirty(),n.onVrvpHover?.(null,null)}),t.addEventListener("touchcancel",()=>{clearTimeout(o.longPressTimer),o.liqPinTimer&&(clearTimeout(o.liqPinTimer),o.liqPinTimer=null),o.isDragging=!1,o.isPanning=!1,o.isDraggingAnchor=!1,o.isDraggingDrawing=!1,o.isBrushing=!1,o.brushLastSx=null,o.brushLastSy=null,o.isCrosshairMode=!1,o.lastTouchDist=0,o.pinchActive=!1,o.cancelMomentum(),e.hide_crosshair(),n.onCrosshairHide?.(),n.onDirty()})}function Qr(t,e,n){let o={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},h=!1;Object.defineProperty(o,"isPanning",{get(){return h},set(f){let m=!!f;m!==h&&(h=m,m?n.onPanStart?.():n.onPanEnd?.())}});let c=.86,d=.5,g=80;o.recordVelocity=function(f,m){let A=performance.now();for(o.velSamples.push({dx:f,dy:m,t:A});o.velSamples.length>0&&A-o.velSamples[0].t>g;)o.velSamples.shift()};function r(){if(o.velSamples.length<2)return{vx:0,vy:0};let f=o.velSamples[0],A=o.velSamples[o.velSamples.length-1].t-f.t;if(A<5)return{vx:0,vy:0};let T=0,_=0;for(let P of o.velSamples)T+=P.dx,_+=P.dy;let I=16.67;return{vx:T/A*I,vy:_/A*I}}o.cancelMomentum=function(){o.momentumRaf&&(cancelAnimationFrame(o.momentumRaf),o.momentumRaf=null),o.velSamples=[]},o.startMomentum=function(f){let{vx:m}=r();if(o.velSamples=[],Math.abs(m)<d)return;o.momentumVx=m,o.momentumVy=0,o.momentumZone=f;function A(){if(o.momentumVx*=c,Math.abs(o.momentumVx)<d){o.momentumRaf=null;return}if(o.momentumZone===2)e.pan_x(o.momentumVx);else if(o.momentumZone===3){o.momentumRaf=null;return}else if(o.momentumZone===14){o.momentumRaf=null;return}else if(qt(o.momentumZone)){o.momentumRaf=null;return}else be(e,o.momentumZone,o.momentumVx,0);n.onDirty(),o.momentumRaf=requestAnimationFrame(A)}o.momentumRaf=requestAnimationFrame(A)};let a={setMode(f,m){f?(o.drawingMode={tool:f,style:m,step:0,x1:0,y1:0},t.style.cursor="crosshair"):(o.drawingMode?.pathStarted&&e.finish_path(),o.drawingMode=null,e.clear_drawing_preview(),t.style.cursor="crosshair"),n.onDirty()},getMode(){return o.drawingMode}};n.drawingApi?.(a),o.finishDrawing=function(){e.clear_drawing_preview(),n.onDrawingComplete?.(),o.drawingMode=null,t.style.cursor="crosshair"},ao(t,e,n,o),lo(t,e,n,o);let s=null,i=f=>{let m=document.activeElement?.tagName,A=m==="INPUT"||m==="TEXTAREA"||document.activeElement?.isContentEditable;if((f.key==="Delete"||f.key==="Backspace")&&!o.drawingMode&&!A){let _=e.get_selected_drawing();if(_>0){n.onDrawingMutationBegin?.(),e.remove_drawing(_),n.onDrawingSelected?.(0),n.onDirty();return}let I=e.get_selected_marker();if(I>0){n.onDrawingMutationBegin?.(),e.remove_marker(I),n.onMarkerSelected?.(0),n.onDirty();return}}if(f.key==="z"&&(f.ctrlKey||f.metaKey)&&!f.shiftKey&&!f.altKey&&!A&&!o.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&&!A&&!o.drawingMode||f.key==="y"&&(f.ctrlKey||f.metaKey)&&!f.shiftKey&&!f.altKey&&!A&&!o.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&&!A&&!o.drawingMode){let _=e.get_selected_drawing();if(_>0&&(window.getSelection?.()?.toString()||"").length===0){let P=e.export_drawing_by_id(_);if(P&&P.length>0){s=P,f.preventDefault();return}}}if(f.key==="v"&&(f.ctrlKey||f.metaKey)&&!f.shiftKey&&!f.altKey&&!A&&!o.drawingMode&&s){n.onDrawingMutationBegin?.();let _=e.paste_drawing_json(s,30,30);if(_>0){n.onDrawingSelected?.(_),n.onDirty(),f.preventDefault();return}}if(f.key==="Escape"&&!o.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"&&o.drawingMode){if(o.drawingMode.pathStarted){o.drawingMode.tool==="elliott"?e.finish_elliott_manual():e.finish_path(),o.finishDrawing(),n.onDirty();return}e.clear_drawing_preview(),o.drawingMode=null,t.style.cursor="crosshair",n.onDrawingCancel?.(),n.onDirty();return}if(A)return;let T=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(T);break;case"ArrowRight":e.pan_x(-T);break;case"ArrowUp":e.pan_y(-T);break;case"ArrowDown":e.pan_y(T);break;case"r":case"R":e.set_y_auto_scale(!0);for(let _=1;_<=5;_++)e.reset_indicator_y_auto(_);break;default:return}n.onDirty()};window.addEventListener("keydown",i);let u=f=>{if(o.disposed||o.drawingMode)return;let m=typeof n.onImagePasted=="function",A=typeof n.onTextPasted=="function";if(!m&&!A)return;let T=document.activeElement?.tagName;if(T==="INPUT"||T==="TEXTAREA"||document.activeElement?.isContentEditable)return;let I=f.clipboardData?.items;if(I){if(m)for(let P=0;P<I.length;P++){let S=I[P];if(!S.type||!S.type.startsWith("image/")||S.type==="image/svg+xml")continue;let C=S.getAsFile();if(C){try{f.preventDefault()}catch{}try{n.onImagePasted(C)}catch(B){console.warn("[eventHandler] onImagePasted callback threw",B?.message||B)}return}}if(A){let P="";try{P=f.clipboardData?.getData?.("text/plain")||""}catch{}if(P&&P.trim().length>0){try{f.preventDefault()}catch{}try{n.onTextPasted(P)}catch(S){console.warn("[eventHandler] onTextPasted callback threw",S?.message||S)}}}}};return window.addEventListener("paste",u),()=>{o.disposed=!0,o.cancelMomentum(),window.removeEventListener("keydown",i),window.removeEventListener("paste",u)}}var me=t=>t instanceof Float64Array?t:new Float64Array(t),co=(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}},Ks=(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}},$s=(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 _o(t,e,n,o){let h=r=>o()(r),c=null,d=null,g=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()},setRsiShowChannels(r){t.set_rsi_show_channels(r),e()},setRsiShowTargets(r){t.set_rsi_show_targets(r),e()},setRsiMtfSeries(r){try{t.set_rsi_mtf_series(r||"[]")}catch{}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()},getRsiWinrate(r=0){try{let a=t.get_rsi_winrate(r>>>0),s=JSON.parse(a);return Array.isArray(s)?s:[]}catch{return[]}},rsiSignalHitTest(r,a){if(n())return"";try{return t.rsi_signal_hit_test(r,a)}catch{return""}},setRsiTooltip(r){if(n())return!1;if(r===g)return!0;try{let a=t.set_rsi_tooltip(r);return g=r,e(),!!a}catch{return!1}},clearRsiTooltip(){if(!n()&&g!==null)try{t.clear_rsi_tooltip(),g=null,e()}catch{}},setLiqProfileTooltip(r){if(n())return!1;if(r===c)return!0;try{let a=t.set_liq_profile_tooltip(r);return c=r,e(),!!a}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 a=t.set_liq_zone_tooltip(r);return d=r,e(),!!a}catch{return!1}},clearLiqZoneTooltip(){if(!n()&&d!==null)try{t.clear_liq_zone_tooltip(),d=null,e()}catch{}},enableForexSignals(){h("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()||h("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()||h("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),s=Number.isFinite(a)?Math.max(0,Math.min(3,Math.trunc(a))):0;t.set_fr_display_style(s),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()||h("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()||h("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,s,i){n()||(t.push_large_trade(r,a,s,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 s=Number(r)===1?1:0;t.set_lt_bubble_style(s),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()||h("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=(s,i)=>{let u=Number(s);return Number.isFinite(u)?u: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=(s,i)=>{let u=Number(s);return Number.isFinite(u)?u: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()||h("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>5?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=(s,i)=>{let u=Number(s);return Number.isFinite(u)?u: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()},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 a=(Number(r)|0)&255;t.set_gvwc_signal_kinds(a),e()},setGvwcSignalThresholds(r){if(n()||!r)return;let a=(s,i)=>{let u=Number(s);return Number.isFinite(u)?u:i};t.set_gvwc_signal_thresholds(a(r.minZscore,2),Math.max(1,Math.min(50,a(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 a=(i,u)=>typeof i=="boolean"?i:u,s=(i,u)=>{let f=Number(i);return Number.isFinite(f)?f:u};t.set_gvwc_cloud(a(r.enabled,!0),a(r.cloud3d,!0),s(r.depthLayers,1)|0,s(r.opacity,.7),a(r.volumeWeighted,!0),a(r.volumeClassify,!0),a(r.sessionVolume,!1)),e()},gvwcHitTest(r,a){if(n())return"";try{return t.gvwc_hit_test(r,a)}catch{return""}},enableCvdProfile(){n()||h("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(me(r)),e())},applyCvdProfileUpdate(r,a,s,i){n()||(t.apply_cvd_profile_update(r,a,s,me(i)),e())},replaceCvdProfileSession(r,a,s,i,u){n()||(t.replace_cvd_profile_session(r,a,!!s,i,me(u)),e())},openCvdProfileSession(r,a,s){n()||(t.open_cvd_profile_session(r,a,s),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),s=a===1||a===2?a:0;t.set_cvd_profile_theme_mode(s),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()||h("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,s,i,u,f,m,A,T,_,I,P,S,C,B,V,x,O,Y,G,st,Q,dt,_t,mt,X,Z,J,D,ot,ct,gt,Mt,Ct,ft){n()||(t.upsert_cvd_orderblock_ob(String(r||""),co(a),Ks(s),(i|0)>>>0,Number(u)||0,Number(f)||0,Number(m)||0,Number(A)||0,Number(T)||0,Number(_)||0,Number(I)||0,Number(P)||0,Number(S)||0,Number(C)||0,Number(B)||0,Number(V)||0,Number(x)||0,Number(O)||0,Number(Y)||0,Number(G)||0,Number(st)||0,Number(Q)||0,Number(dt)||0,(_t|0)>>>0,Number(mt)||0,(X|0)>>>0,!!Z,Number(J)||0,D===void 0?!0:!!D,!!ot,!!ct,Number(gt)||0,Number(Mt)||0,Number(Ct)||0,Number(ft)||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(co(r,255)),e())},setCvdOrderBlockMitigationFilter(r){n()||(t.set_cvd_orderblock_mitigation_filter($s(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),s=Number.isFinite(a)?Math.max(0,Math.min(2,Math.trunc(a))):0;t.set_cvd_orderblock_breaker_style(s),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),s=a===0||a===1||a===2?a:1;t.set_cvd_orderblock_render_mode(s),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()||h("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,s,i,u,f,m,A,T,_,I,P,S,C,B,V,x,O,Y,G,st){if(n())return;let Q=0;(a==="short"||a===1)&&(Q=1);let dt=0;s==="breakout"||s===1?dt=1:s==="delta_trap"||s===2?dt=2:s==="absorption_resolution"||s===3?dt=3:(s==="divergence"||s===4)&&(dt=4);let _t=0;C==="bull"||C===1?_t=1:(C==="bear"||C===2)&&(_t=2),t.upsert_cvd_trade_signal(String(r||""),Q,dt,Number(i)||0,Number(u)||0,Number(f)||0,Number(m)||0,Number(A)||0,Number(T)||0,Number(_)||0,Number(I)||0,Number(P)||0,Number(S)||0,_t,(B|0)>>>0,Number(V)||0,Number(x)||0,Number(O)||0,Number(Y)||0,(G|0)>>>0,String(st||"")),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()||h("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,s,i,u,f,m,A,T,_,I){if(n())return;let P=0;(a==="hidden"||a===1)&&(P=1);let S=0;(s==="short"||s===1)&&(S=1),t.upsert_cvd_divergence(String(r||""),P,S,Number(i)||0,Number(u)||0,Number(f)||0,Number(m)||0,Number(A)||0,Number(T)||0,Number(_)||0,Number(I)||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()||h("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,s,i,u,f,m,A){if(n())return;let T=_=>_==="bull"||_===1?1:_==="bear"||_===2?2:0;t.upsert_cvd_regime_flip(String(r||""),Number(a)||0,Number(s)||0,T(i),T(u),Number(f)||0,(m|0)>>>0,Number(A)||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()||h("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 a=Number(r);!Number.isFinite(a)||a<0||a>255||(t.set_tpo_period_kind(a|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 a=Number(r);!Number.isFinite(a)||a<0||a>255||(t.set_tpo_vp_position(a|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 a=Number(r);!Number.isFinite(a)||a<0||a>100||(t.set_tpo_vp_width(a|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 a=Number(r);!Number.isFinite(a)||a<0||a>100||(t.set_tpo_va_pct(a|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 a=Number(r);!Number.isFinite(a)||a<0||a>1||(t.set_tpo_cell_style(a|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 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 s=Math.max(20,Math.min(200,Math.round(a)));t.set_tpo_profile_brightness(s|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()||h("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}},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,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()||h("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()||h("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()||h("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()||h("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,s,i,u,f){n()||(t.set_iceberg_events(r,a,s,i,u,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,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,s,i,u){t.push_obs_alert(r,a,s,i,u),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,s,i){t.push_obf_sample(r,a,s,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,s,i,u,f,m,A,T,_,I,P,S){t.set_obm_data(r,a,s,i,u,f,m,A,T,_,I,P,S),e()},setObmAnchorTopRight(r){t.set_obm_anchor_top_right(r),e()},clearObMicro(){t.clear_ob_micro(),e()},enableAggLiq(){h("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 s=0;s<r.length;s++){let i=r[s];a[s*6+0]=Number(i.time)||0,a[s*6+1]=Number(i.longUsd)||0,a[s*6+2]=Number(i.shortUsd)||0,a[s*6+3]=Number(i.longQty)||0,a[s*6+4]=Number(i.shortQty)||0,a[s*6+5]=Number(i.count)||0}}else a=new Float64Array(r||[]);t.set_agg_liq_data(a),e()},pushAggLiqBar(r,a,s,i,u,f){t.push_agg_liq_bar(r,a,s,i,u,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 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 s=0;s<r.length;s++){let i=r[s];a[s*6+0]=Number(i.time)/1e3,a[s*6+1]=fo[i.type]??-1,a[s*6+2]=uo[i.side]??0,a[s*6+3]=Number(i.volumeUsd)||0,a[s*6+4]=Number(i.ratio)||0,a[s*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=fo[r.type];a!=null&&(t.push_agg_liq_signal(Number(r.time)/1e3,a,uo[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()||h("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,a,s,i,u,f){n()||(t.set_mrd_pullback_htf_klines(me(r),me(a),me(s),me(i),me(u),me(f)),e())},updateMrdPullbackLastHtfKline(r,a,s,i,u,f){n()||(t.update_mrd_pullback_last_htf_kline(r,a,s,i,u,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 a=(Number(r)|0)&15;t.set_oi_cvd_pattern_kinds(a>>>0),e()},setOiCvdPatternThresholds(r){if(n()||!r)return;let a=(s,i)=>{let u=Number(s);return Number.isFinite(u)?u:i};t.set_oi_cvd_pattern_thresholds(a(r.lookback,20)>>>0,a(r.oiThresholdPct,3),a(r.priceCompressPct,1),a(r.cvdQuietFactor,.2),a(r.trapLookback,5)>>>0,a(r.trapOiPct,.2),a(r.cooldownBars,10)>>>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 fo=Object.freeze({spike:0,capitulation:1,cascade_start:2,cascade_exhaustion:3,imbalance:4,silent_zone:5}),uo=Object.freeze({neutral:0,long:1,short:2}),Ta=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"}}),Ea=Object.freeze({ROLLING:0,SESSION_DAY:1,AUTO:2,SESSION_3D:3,SESSION_WEEK:4,SESSION_MONTH:5}),Ca=Object.freeze({EXHAUSTION:1,ABSORPTION:2,DELTA_DIV:4,STRICT_CVD:8,ALL:15});function ho(t,e,n,o,h){let c=r=>o()(r),d=()=>{try{h?.()}catch{}},g=(r,a,s)=>r<=1&&a<=1&&s<=1&&(r>0||a>0||s>0)?[Math.round(r*255),Math.round(a*255),Math.round(s*255)]:[r&255,a&255,s&255];return{addMarker(r,a,s){d(),t.add_marker(r,a,s),e()},clearMarkers(){d(),t.clear_markers(),e()},hitTestMarker(r,a){return t.hit_test_marker(r,a)},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,a,s,i,u,f,m,A,T,_=0){d();let[I,P,S]=g(u,f,m),C=t.add_trendline(r,a,s,i,I,P,S,A,T,_);return e(),C},addImage(r,a,s,i,u,f,m,A,T=0){d();let[_,I,P]=g(f,m,A),S=t.add_image(r>>>0,a,s,i,u,_,I,P,T);return e(),S},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,a,s,i,u,f,m,A=0){d();let[T,_,I]=g(s,i,u),P=t.add_horizontal_line(r,a,T,_,I,f,m,A);return e(),P},addVerticalLine(r,a,s,i,u,f,m=0){d();let[A,T,_]=g(a,s,i),I=t.add_vertical_line(r,A,T,_,u,f,m);return e(),I},addArrow(r,a,s,i,u,f,m,A,T,_=0){d();let[I,P,S]=g(u,f,m),C=t.add_arrow(r,a,s,i,I,P,S,A,T,_);return e(),C},addArrowMarker(r,a,s,i,u,f,m,A,T,_=0){d();let[I,P,S]=g(u,f,m),C=t.add_arrow_marker(r,a,s,i,I,P,S,A,T,_);return e(),C},addPriceRangeMeasure(r,a,s,i,u,f,m,A,T,_=0){d();let[I,P,S]=g(u,f,m),C=t.add_price_range_measure(r,a,s,i,I,P,S,A,T,_);return e(),C},addDayRangeMeasure(r,a,s,i,u,f,m,A,T,_=0){d();let[I,P,S]=g(u,f,m),C=t.add_day_range_measure(r,a,s,i,I,P,S,A,T,_);return e(),C},addFibRetracement(r,a,s,i,u,f,m,A,T,_=0){if(!c("drawingFull"))return 0;d();let[I,P,S]=g(u,f,m),C=t.add_fib_retracement(r,a,s,i,I,P,S,A,T,_);return e(),C},addFibExtension(r,a,s,i,u,f,m,A,T,_,I,P=0){if(!c("drawingFull"))return 0;d();let[S,C,B]=g(m,A,T),V=t.add_fib_extension(r,a,s,i,u,f,S,C,B,_,I,P);return e(),V},addLongPosition(r,a,s,i,u,f,m,A,T,_=0){if(!c("drawingFull"))return 0;d();let[I,P,S]=g(u,f,m),C=t.add_long_position(r,a,s,i,I,P,S,A,T,_);return e(),C},addShortPosition(r,a,s,i,u,f,m,A,T,_=0){if(!c("drawingFull"))return 0;d();let[I,P,S]=g(u,f,m),C=t.add_short_position(r,a,s,i,I,P,S,A,T,_);return e(),C},addAnchoredVwap(r,a,s,i,u,f,m=0){if(!c("drawingFull"))return 0;d();let[A,T,_]=g(a,s,i),I=t.add_anchored_vwap(r,A,T,_,u,f,m);return e(),I},setVwapRenderConfig(r){if(!(n()||!r))try{t.set_vwap_render_config(JSON.stringify(r)),e()}catch(a){console.warn("[bridge] setVwapRenderConfig failed",a)}},setFibRenderConfig(r){if(!(n()||!r))try{t.set_fib_render_config(JSON.stringify(r)),e()}catch(a){console.warn("[bridge] setFibRenderConfig failed",a)}},setFibExtRenderConfig(r){if(!(n()||!r))try{t.set_fib_ext_render_config(JSON.stringify(r)),e()}catch(a){console.warn("[bridge] setFibExtRenderConfig failed",a)}},addPriceLabel(r,a,s,i,u,f,m=0){d();let[A,T,_]=g(s,i,u),I=t.add_price_label(r,a,A,T,_,f,m);return e(),I},addTextNote(r,a,s,i,u,f,m=0){d();let[A,T,_]=g(s,i,u),I=t.add_text_note(r,a,A,T,_,f,m);return e(),I},addElliottImpulse(r,a,s,i,u,f,m=0){if(!c("drawingFull"))return 0;d();let[A,T,_]=g(s,i,u),I=t.add_elliott_impulse(r,a,A,T,_,f,m);return e(),I},addElliottAutoRange(r,a,s,i,u,f,m,A,T,_=0){if(!c("drawingFull"))return 0;d();let[I,P,S]=g(u,f,m),C=t.add_elliott_auto_range(r,a,s,i,I,P,S,A,T,_);return e(),C},setElliottAutoConfig(r,a,s){try{t.set_elliott_auto_config(!!r,(a|0)>>>0,Number.isFinite(s)?s:1),e()}catch(i){console.warn("[bridge] setElliottAutoConfig failed",i)}},refreshElliottAuto(){try{t.refresh_elliott_auto_drawings(),e()}catch{}},setDrawingFontSize(r,a){d(),t.set_drawing_font_size(r,a),e()},getDrawingFontSize(r){return t.get_drawing_font_size(r)},setDrawingText(r,a){d(),t.set_drawing_text(r,a),e()},getDrawingText(r){return t.get_drawing_text(r)},setDrawingStyle(r,a,s,i,u){d();let[f,m,A]=g(a,s,i);t.set_drawing_style(r,f,m,A,u),e()},getDrawingColor(r){let a=t.get_drawing_color(r);return a?{r:a>>>24&255,g:a>>>16&255,b:a>>>8&255,lineWidth:(a&255)/10}:null},getDrawingDashed(r){try{return t.get_drawing_dashed(r)}catch{return!1}},setDrawingDashed(r,a){d(),t.set_drawing_dashed(r,a),e()},getDrawingHideLabel(r){try{return t.get_drawing_hide_label(r)}catch{return!1}},setDrawingHideLabel(r,a){d(),t.set_drawing_hide_label(r,a),e()},getDrawingBgColor(r){try{let a=t.get_drawing_bg_color(r)>>>0;return a===0?null:{r:a>>16&255,g:a>>8&255,b:a&255}}catch{return null}},setDrawingBgColor(r,a,s,i){d();let[u,f,m]=g(a,s,i);t.set_drawing_bg_color(r,u,f,m),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,a){d();try{t.set_drawing_flip_left(r,a),e()}catch{}},getDrawingTextWrap(r){try{return t.get_drawing_text_wrap(r)}catch{return!1}},setDrawingTextWrap(r,a){d();try{t.set_drawing_text_wrap(r,a),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,a,s,i,u,f,m,A,T,_,I=0){let[P,S,C]=g(f,m,A);t.set_drawing_preview(r,a,s,i,u,P,S,C,T,_,I),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(a){console.warn("[bridge] importDrawingsJson failed",a)}},exportDrawingById(r){try{return t.export_drawing_by_id(r)}catch{return""}},pasteDrawingJson(r,a=30,s=30){if(typeof r!="string"||r.length===0)return 0;try{d();let i=t.paste_drawing_json(r,a,s);return i>0&&e(),i>>>0}catch(i){return console.warn("[bridge] pasteDrawingJson failed",i),0}},screenToWorld(r,a){return{x:t.screen_to_world_x(r),y:t.screen_to_world_y(a)}},worldToScreen(r,a){try{return{x:t.world_to_screen_x(r),y:t.world_to_screen_y(a)}}catch{return null}}}}var At=t=>t instanceof Float64Array?t:new Float64Array(t);function po(t,e,n,o){let h=c=>o()(c);return{setKlines(c,d,g,r,a,s){n()||(t.set_klines(At(c),At(d),At(g),At(r),At(a),At(s)),e())},setKlinesPreserveViewport(c,d,g,r,a,s){n()||(t.set_klines_preserve_viewport(At(c),At(d),At(g),At(r),At(a),At(s)),e())},setRealTimestamps(c){n()||(t.set_real_timestamps(At(c)),e())},appendRealTimestamp(c){n()||t.append_real_timestamp(c)},prependKlines(c,d,g,r,a,s){n()||(t.prepend_klines(At(c),At(d),At(g),At(r),At(a),At(s)),e())},appendKline(c,d,g,r,a,s){n()||(t.append_kline(c,d,g,r,a,s),e())},updateLastKline(c,d,g,r,a,s){n()||(t.update_last_kline(c,d,g,r,a,s),e())},updateKlineAt(c,d,g,r,a,s,i){if(!n()){try{t.update_kline_at(c,d,g,r,a,s,i)}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,g,r,a,s,i){n()||h("heatmap")&&(t.set_heatmap(At(c),d,g,r,a,s,i),e())},appendHeatmapColumn(c,d,g,r){n()||h("heatmap")&&(t.append_heatmap_column(At(c),d,g,r),e())},updateLastHeatmapColumn(c,d,g){n()||(t.update_last_heatmap_column(At(c),d,g),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,g,r){n()||(t.update_heatmap_column_at(At(c),d,g,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&&!h("footprint")||(t.set_chart_type(c),e())},getChartType(){if(n())return 0;try{return t.get_chart_type()}catch{return 0}},setFootprintTickSize(c){n()||h("footprint")&&(t.set_footprint_tick_size(c),e())},footprintSetFontScale(c){if(n()||!h("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,g,r){n()||t.footprint_add_trade(c,d,g,r)},footprintAddTradeBatch(c){n()||!c||c.length===0||t.footprint_add_trade_batch(At(c))},footprintSetBar(c,d,g,r,a){n()||(t.footprint_set_bar(c,d,g,r,a),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()&&h("footprint")){try{t.footprint_set_signal_kinds_mask((c|0)&255)}catch{}e()}},footprintSetPocMarkerStyle(c){if(n()||!h("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()&&h("footprint")){try{t.footprint_set_naked_poc_enabled(!!c)}catch{}e()}},footprintSetMinCellVolumePct(c){if(n()||!h("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)),g=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,g,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)),g=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,g,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],g=+c[3];return!Number.isFinite(d)||!Number.isFinite(g)||d<=0||g<=0?null:{x:+c[0],y:+c[1],w:d,h:g}}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],g=+c[3];return!Number.isFinite(d)||!Number.isFinite(g)||d<=0||g<=0?null:{x:+c[0],y:+c[1],w:d,h:g}}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 js=1,yr=new Map,Qs=4096,Jr=Object.freeze({r:255,g:255,b:255,a:153});function Js(t){if(typeof t!="string")return Jr;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}):Jr}function $(t){if(typeof t!="string")return Jr;let e=yr.get(t);if(e!==void 0)return e;yr.size>=Qs&&yr.clear();let n=Js(t);return yr.set(t,n),n}var ar=null,Sr=new Map,Ds=512;function ti(t,e){if(t==null)return 0;let n=String(t),o=`${e}|${n}`,h=Sr.get(o);if(h!==void 0)return h;if(ar===null){if(typeof document>"u")return 0;let d=document.createElement("canvas");if(d.width=d.height=8,ar=d.getContext("2d"),!ar)return 0}ar.font=`${Math.round(e)}px "IBM Plex Mono",monospace`;let c=ar.measureText(n).width;return Sr.size>=Ds&&Sr.clear(),Sr.set(o,c),c}function ei(){}function Dr(t,e,n,o){let h=typeof o=="function"?o:ei,c=new Map,d=null,g=0,r=NaN,a=NaN,s=0,i=0,u=0,f=null,m={tbv:!1,oi:!1,fr:!1};function A(){let l=!1,w=!1,p=!1;for(let y of c.values())if(y.enabled&&(y._needsTakerBuy&&(l=!0),y._needsOpenInterest&&(w=!0),y._needsFundingRate&&(p=!0),l&&w&&p))break;return{tbv:l,oi:w,fr:p}}function T(){let l=A(),w=!m.tbv&&l.tbv||!m.oi&&l.oi||!m.fr&&l.fr;if(m=l,w&&typeof f=="function")try{f({...l})}catch(p){console.warn("[CustomIndicator] dsl-deriv-needed callback failed:",p)}}let _=300,I=16,P=500,S=500,C=100,B=100,V=500,x=100,O=100,Y=500;function G(){let l;try{l=t.kline_count()}catch{return d}if(l===0)return null;i!==u&&(u=i,d=null,g=-1,r=NaN,a=NaN);let w=t.kline_closes(),p=w?.[l-1]??NaN,y=l!==g,b=d==null,E=NaN,L=(()=>{if(y||b)return!1;if(p!==r)return!0;try{E=t.kline_highs()?.[l-1]??NaN}catch{}return E!==a})();if(!y&&!b&&!L)return d;if(L){let N=!1;for(let H of c.values())if(H.calcOnEveryTick&&!H._heavyCompute&&H.enabled){N=!0;break}if(!N||performance.now()-s<_)return r=p,isNaN(E)||(a=E),d}try{let N=t.kline_timestamps(),R=t.kline_opens(),H=t.kline_highs(),U=t.kline_lows(),it=t.kline_volumes();if(!N||!w)return d;let M=(ut,Yt)=>{if(!ut||ut.length===0)return[];if(ut.length===Yt)return Array.from(ut);let ye=new Array(Yt),Pt=Math.min(ut.length,Yt);for(let jt=0;jt<Pt;jt++)ye[jt]=ut[jt];for(let jt=Pt;jt<Yt;jt++)ye[jt]=NaN;return ye},W=M(t.kline_taker_buy_volume?.()??[],l),j=M(t.kline_oi_aligned?.()??[],l),rt=M(t.kline_fr_aligned?.()??[],l);d={timestamps:Array.from(N),open:Array.from(R),high:Array.from(H),low:Array.from(U),close:Array.from(w),volume:Array.from(it),taker_buy_volume:W,open_interest:j,funding_rate:rt,length:l},g=l,r=p,a=isNaN(E)?H?.[l-1]??NaN:E,s=performance.now();let ht=L&&!y&&!b;for(let ut of c.values())ut.enabled&&(ht?ut.calcOnEveryTick&&!ut._heavyCompute&&(ut._needsCompute=!0):ut._needsCompute=!0)}catch{}return d}let st=new WeakMap;function Q(l){if(l instanceof Float64Array)return l;if(!Array.isArray(l))return new Float64Array(0);let w=st.get(l);if(w&&w.length===l.length)return w;w=new Float64Array(l.length);for(let p=0;p<l.length;p++)w[p]=l[p];return st.set(l,w),w}function dt(l){return l instanceof Uint32Array?l:new Uint32Array(l||[])}function _t(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 mt(l){switch(l){case"below":return 1;case"above":return 2;case"left":return 3;case"right":return 4;default:return 0}}function X(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 Z=0,J=null,D=new Map,ot=null,ct=new Map,gt={slotLabel:C,slotBox:S,slotLine:P,slotPolyline:B,slotTrendline:Y,slotHline:V,slotFibRet:x,slotChannel:O};function Mt(l){if(!Array.isArray(l)||l.length===0)return;let w=Object.create(null),p=new Uint8Array(l.length),y=!1;for(let E=l.length-1;E>=0;E--){let L=l[E],N=gt[L?.kind];if(!N)continue;let R=w[L.kind]||0;R>=N?(p[E]=1,y=!0):w[L.kind]=R+1}if(!y)return;let b=0;for(let E=0;E<l.length;E++)p[E]||(l[b++]=l[E]);l.length=b}function Ct(l,w,p,y){if(p<=0)return;let b=0,E=null;for(let[L,N]of l)N.kind===w&&(b++,E===null&&(E=L));if(!(b<p))for(;b>=p&&E!==null;){let L=l.get(E);if(L){try{y(L.id)}catch{}l.delete(E)}b--,E=null;for(let[N,R]of l)if(R.kind===w){E=N;break}}}let ft=l=>t.script_object_delete(l),Ot=l=>t.script_drawing_delete(l);function Zt(){return{seriesLine(l,w="#ffffff99",p=1.5){let y=$(w);t.custom_series_line(Q(l),y.r,y.g,y.b,y.a,p)},seriesDashedLine(l,w="#ffffff66",p=1,y=4,b=4){let E=$(w);t.custom_series_dashed_line(Q(l),E.r,E.g,E.b,E.a,p,y,b)},band(l,w,p="rgba(100,149,237,0.08)"){let y=$(p);t.custom_band(Q(l),Q(w),y.r,y.g,y.b,y.a)},seriesCandles(l,w,p,y,b="#089981",E="#F23645",L,N){let R=$(b),H=$(E),U=L!=null?$(L):{r:0,g:0,b:0,a:0},it=Number.isFinite(N)&&N>0?N:0;t.custom_candles(Q(l),Q(w),Q(p),Q(y),R.r,R.g,R.b,R.a,H.r,H.g,H.b,H.a,U.r,U.g,U.b,U.a,it)},hline(l,w="#ffffff66",p=1){let y=$(w);t.custom_hline(l,y.r,y.g,y.b,y.a,p)},dashedHline(l,w="#ffffff66",p=1,y=6,b=4){let E=$(w);t.custom_dashed_hline(l,E.r,E.g,E.b,E.a,p,y,b)},marker(l,w,p="#e8a04a",y=3){let b=$(p);t.custom_marker(l,w,b.r,b.g,b.b,b.a,y)},markerUp(l,w,p="#26a69a",y=5){let b=$(p);t.custom_marker_up(l,w,b.r,b.g,b.b,b.a,y)},markerDown(l,w,p="#ef5350",y=5){let b=$(p);t.custom_marker_down(l,w,b.r,b.g,b.b,b.a,y)},text(l,w,p,y="#ffffffaa",b=10,E="center"){let L=$(y),N=E==="center"?1:E==="right"?2:0;t.custom_text(l,w,p,L.r,L.g,L.b,L.a,b,N)},priceLabel(l,w,p="#ffffffaa",y=10){let b=$(p);t.custom_price_label(l,w,b.r,b.g,b.b,b.a,y)},linePx(l,w,p,y,b,E=1){let L=$(b);t.custom_line_px(l,w,p,y,L.r,L.g,L.b,L.a,E)},fillRectPx(l,w,p,y,b){let E=$(b);t.custom_fill_rect_px(l,w,p,y,E.r,E.g,E.b,E.a)},fillRoundRectPx(l,w,p,y,b,E){let L=$(E);t.custom_fill_round_rect_px(l,w,p,y,b,L.r,L.g,L.b,L.a)},strokeRectPx(l,w,p,y,b,E=1){let L=$(b);t.custom_stroke_rect_px(l,w,p,y,L.r,L.g,L.b,L.a,E)},textPx(l,w,p,y,b=10,E="left"){let L=$(y),N=E==="center"?1:E==="right"?2:0;t.custom_text_px(l,w,p,L.r,L.g,L.b,L.a,b,N)},measureTextPx(l,w=10){return ti(l,w)},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,w="#e8a04a",p=1.5){let y=$(w);t.custom_pane_series_line(Q(l),y.r,y.g,y.b,y.a,p)},paneSeriesDashedLine(l,w="#e8a04a99",p=1,y=4,b=4){let E=$(w);t.custom_pane_series_dashed_line(Q(l),E.r,E.g,E.b,E.a,p,y,b)},paneBand(l,w,p="rgba(232, 160, 74, 0.10)"){let y=$(p);t.custom_pane_band(Q(l),Q(w),y.r,y.g,y.b,y.a)},paneSeriesCandles(l,w,p,y,b="#089981",E="#F23645",L,N){let R=$(b),H=$(E),U=L!=null?$(L):{r:0,g:0,b:0,a:0},it=Number.isFinite(N)&&N>0?N:0;t.custom_pane_candles(Q(l),Q(w),Q(p),Q(y),R.r,R.g,R.b,R.a,H.r,H.g,H.b,H.a,U.r,U.g,U.b,U.a,it)},paneHline(l,w="#ffffff44",p=1){let y=$(w);t.custom_pane_hline(l,y.r,y.g,y.b,y.a,p)},paneDashedHline(l,w="#ffffff44",p=1,y=4,b=4){let E=$(w);t.custom_pane_dashed_hline(l,E.r,E.g,E.b,E.a,p,y,b)},paneLabel(l,w,p="#ffffffaa",y=10,b="left"){let E=$(p),L=b==="center"?1:b==="right"?2:0;t.custom_pane_label(l,String(w),E.r,E.g,E.b,E.a,y,L)},line(l,w,p,y,b="#ffffff66",E=1,L=0,N=0,R=0){let H=$(b),U=_t(R);t.custom_line(l,w,p,y,H.r,H.g,H.b,H.a,E,L,N,U)},vline(l,w="#ffffff66",p=1,y=0,b=0){let E=$(w);t.custom_vline(l,E.r,E.g,E.b,E.a,p,y,b)},box(l,w,p,y,b={}){let E=$(b.bg??b.bgColor??"rgba(232,160,74,0.08)"),L=$(b.border??b.borderColor??"#ffffff44"),N=Number.isFinite(b.lineWidth)?b.lineWidth:1,R=!!b.dashed;t.custom_box(l,w,p,y,E.r,E.g,E.b,E.a,L.r,L.g,L.b,L.a,N,R)},label(l,w,p,y={}){let b=$(y.bg??y.bgColor??"rgba(13,15,19,0.92)"),E=$(y.border??y.borderColor??"#ffffff44"),L=$(y.color??y.textColor??"#ffffffe0"),N=Number.isFinite(y.fontSize)?y.fontSize:11,R=Number.isFinite(y.lineWidth)?y.lineWidth:1,H=y.align==="center"?1:y.align==="right"?2:0,U=mt(y.anchor);t.custom_label(l,w,String(p),b.r,b.g,b.b,b.a,E.r,E.g,E.b,E.a,L.r,L.g,L.b,L.a,N,R,H,U)},polylineWorld(l,w,p="#e8a04a",y=1.5,b={}){let E=$(p),L=!!b.dashed,N=Number.isFinite(b.dash)?b.dash:4,R=Number.isFinite(b.gap)?b.gap:4;t.custom_polyline_world(Q(l),Q(w),E.r,E.g,E.b,E.a,y,L,N,R)},polygonWorld(l,w,p={}){let y=$(p.fill??p.bg??"rgba(232,160,74,0.18)"),b=$(p.border??"#e8a04a"),E=Number.isFinite(p.lineWidth)?p.lineWidth:1;t.custom_polygon_world(Q(l),Q(w),y.r,y.g,y.b,y.a,b.r,b.g,b.b,b.a,E)},arrow(l,w,p,y,b="#e8a04a",E=1.5,L=8){let N=$(b);t.custom_arrow(l,w,p,y,N.r,N.g,N.b,N.a,E,L)},shape(l,w,p={}){let y=X(p.shape),b=$(p.color??"#e8a04a"),E=Number.isFinite(p.size)?p.size:4;t.custom_shape_batch(dt(l),Q(w),y,b.r,b.g,b.b,b.a,E)},bgColor(l,w,p="rgba(232,160,74,0.05)"){let y=$(p),b=Array.isArray(l)?l:[l],E=Array.isArray(w)?w:[w];t.custom_bg_color_batch(dt(b),dt(E),y.r,y.g,y.b,y.a)},plotchar(l,w,p="\xB7",y="#e8a04a",b=10){let E=$(y);t.custom_plotchar_batch(dt(l),Q(w),String(p),E.r,E.g,E.b,E.a,b)},markersBatch(l,w,p=0,y="#e8a04a",b=5){let E=$(y);t.custom_markers_batch(dt(l),Q(w),p,E.r,E.g,E.b,E.a,b)},textsBatch(l,w,p,y="#ffffffaa",b=10,E="center"){let L=$(y),N=E==="center"?1:E==="right"?2:0;t.custom_texts_batch(dt(l),Q(w),String(p),L.r,L.g,L.b,L.a,b,N)},paneLine(l,w,p,y,b="#ffffff66",E=1,L=0,N=0,R=0){let H=$(b),U=_t(R);t.custom_pane_line(l,w,p,y,H.r,H.g,H.b,H.a,E,L,N,U)},paneVline(l,w="#ffffff66",p=1,y=0,b=0){let E=$(w);t.custom_pane_vline(l,E.r,E.g,E.b,E.a,p,y,b)},paneBox(l,w,p,y,b={}){let E=$(b.bg??b.bgColor??"rgba(232,160,74,0.08)"),L=$(b.border??b.borderColor??"#ffffff44"),N=Number.isFinite(b.lineWidth)?b.lineWidth:1,R=!!b.dashed;t.custom_pane_box(l,w,p,y,E.r,E.g,E.b,E.a,L.r,L.g,L.b,L.a,N,R)},paneLabelXY(l,w,p,y={}){let b=$(y.bg??y.bgColor??"rgba(13,15,19,0.92)"),E=$(y.border??y.borderColor??"#ffffff44"),L=$(y.color??y.textColor??"#ffffffe0"),N=Number.isFinite(y.fontSize)?y.fontSize:11,R=Number.isFinite(y.lineWidth)?y.lineWidth:1,H=y.align==="center"?1:y.align==="right"?2:0,U=mt(y.anchor);t.custom_pane_label_xy(l,w,String(p),b.r,b.g,b.b,b.a,E.r,E.g,E.b,E.a,L.r,L.g,L.b,L.a,N,R,H,U)},setPaneYRange(l,w){!Number.isFinite(l)||!Number.isFinite(w)||t.set_custom_pane_y_range(l,w)},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,w,p="#e8a04a",y=1.5){let b=$(p);t.aux_pane_series_line(l,Q(w),b.r,b.g,b.b,b.a,y)},auxPaneBand(l,w,p,y="rgba(232,160,74,0.10)"){let b=$(y);t.aux_pane_band(l,Q(w),Q(p),b.r,b.g,b.b,b.a)},auxPaneHline(l,w,p="#ffffff44",y=1){let b=$(p);t.aux_pane_hline(l,w,b.r,b.g,b.b,b.a,y)},auxPaneLabel(l,w,p,y="#ffffffaa",b=10,E="right"){let L=$(y),N=E==="center"?1:E==="left"?0:2;t.aux_pane_label(l,w,String(p),L.r,L.g,L.b,L.a,b,N)},auxPaneLine(l,w,p,y,b,E="#ffffff66",L=1,N=0,R=0,H=0){let U=$(E),it=_t(H);t.aux_pane_line(l,w,p,y,b,U.r,U.g,U.b,U.a,L,N,R,it)},auxPaneBox(l,w,p,y,b,E={}){let L=$(E.bg??E.bgColor??"rgba(232,160,74,0.08)"),N=$(E.border??E.borderColor??"#ffffff44"),R=Number.isFinite(E.lineWidth)?E.lineWidth:1,H=!!E.dashed;t.aux_pane_box(l,w,p,y,b,L.r,L.g,L.b,L.a,N.r,N.g,N.b,N.a,R,H)},auxPaneLabelXY(l,w,p,y,b={}){let E=$(b.bg??b.bgColor??"rgba(13,15,19,0.92)"),L=$(b.border??b.borderColor??"#ffffff44"),N=$(b.color??b.textColor??"#ffffffe0"),R=Number.isFinite(b.fontSize)?b.fontSize:11,H=Number.isFinite(b.lineWidth)?b.lineWidth:1,U=b.align==="center"?1:b.align==="right"?2:0,it=mt(b.anchor);t.aux_pane_label_xy(l,w,p,String(y),E.r,E.g,E.b,E.a,L.r,L.g,L.b,L.a,N.r,N.g,N.b,N.a,R,H,U,it)},setAuxPaneYRange(l,w,p){!Number.isFinite(w)||!Number.isFinite(p)||t.set_aux_pane_y_range(l,w,p)},setAuxPaneRatio(l,w){if(!(!Number.isFinite(w)||w<=0))try{t.set_aux_pane_ratio(l,w)}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,w)=>t.aux_pane_to_screen_y(l,w),screenToAuxPaneY:(l,w)=>t.screen_to_aux_pane_y(l,w),scriptLabelNew(l,w,p,y={}){let b=Z;if(!b)return 0;let E=$(y.bg??y.bgColor??"rgba(13,15,19,0.92)"),L=$(y.border??y.borderColor??"#ffffff44"),N=$(y.color??y.textColor??"#ffffffe0"),R=Number.isFinite(y.fontSize)?y.fontSize:11,H=Number.isFinite(y.lineWidth)?y.lineWidth:1,U=y.align==="center"?1:y.align==="right"?2:0,it=mt(y.anchor),M=String(y.pane??"overlay");return t.script_label_new(b,M,l,w,String(p),E.r,E.g,E.b,E.a,L.r,L.g,L.b,L.a,N.r,N.g,N.b,N.a,R,H,U,it)},scriptLabelSetXY(l,w,p){l&&t.script_label_set_xy(l,w,p)},scriptLabelSetText(l,w){l&&t.script_label_set_text(l,String(w))},scriptLabelSetColor(l,w){if(!l)return;let p=$(w);t.script_label_set_color(l,p.r,p.g,p.b,p.a)},scriptLabelSetBg(l,w){if(!l)return;let p=$(w);t.script_label_set_bg(l,p.r,p.g,p.b,p.a)},scriptLabelSetVisible(l,w){l&&t.script_label_set_visible(l,!!w)},scriptBoxNew(l,w,p,y,b={}){let E=Z;if(!E)return 0;let L=$(b.bg??b.bgColor??"rgba(232,160,74,0.10)"),N=$(b.border??b.borderColor??"#ffffff44"),R=Number.isFinite(b.lineWidth)?b.lineWidth:1,H=!!b.dashed,U=_t(b.extend??0),it=String(b.pane??"overlay");return t.script_box_new(E,it,l,w,p,y,L.r,L.g,L.b,L.a,N.r,N.g,N.b,N.a,R,H,U)},scriptBoxSetCorners(l,w,p,y,b){l&&t.script_box_set_corners(l,w,p,y,b)},scriptBoxSetTop(l,w){l&&t.script_box_set_top(l,w)},scriptBoxSetBottom(l,w){l&&t.script_box_set_bottom(l,w)},scriptBoxSetRight(l,w){l&&t.script_box_set_right(l,w)},scriptBoxSetBg(l,w){if(!l)return;let p=$(w);t.script_box_set_bg(l,p.r,p.g,p.b,p.a)},scriptBoxSetBorder(l,w){if(!l)return;let p=$(w);t.script_box_set_border(l,p.r,p.g,p.b,p.a)},scriptBoxSetVisible(l,w){l&&t.script_box_set_visible(l,!!w)},scriptLineNew(l,w,p,y,b={}){let E=Z;if(!E)return 0;let L=$(b.color??"#F0B90B"),N=Number.isFinite(b.lineWidth)?b.lineWidth:1.5,R=Number.isFinite(b.dash)?b.dash:0,H=Number.isFinite(b.gap)?b.gap:0,U=_t(b.extend??0),it=String(b.pane??"overlay");return t.script_line_new(E,it,l,w,p,y,L.r,L.g,L.b,L.a,N,R,H,U)},scriptLineSetAnchors(l,w,p,y,b){l&&t.script_line_set_anchors(l,w,p,y,b)},scriptLineSetColor(l,w){if(!l)return;let p=$(w);t.script_line_set_color(l,p.r,p.g,p.b,p.a)},scriptLineSetExtend(l,w){l&&t.script_line_set_extend(l,_t(w))},scriptLineSetVisible(l,w){l&&t.script_line_set_visible(l,!!w)},scriptPolylineNew(l,w,p={}){let y=Z;if(!y)return 0;let b=$(p.color??"#F0B90B"),E=Number.isFinite(p.lineWidth)?p.lineWidth:1.5,L=!!p.dashed,N=Number.isFinite(p.dash)?p.dash:4,R=Number.isFinite(p.gap)?p.gap:4,H=$(p.fill??"rgba(0,0,0,0)"),U=!!p.closed,it=String(p.pane??"overlay");return t.script_polyline_new(y,it,Q(l),Q(w),b.r,b.g,b.b,b.a,E,L,N,R,H.r,H.g,H.b,H.a,U)},scriptPolylineSetVisible(l,w){l&&t.script_polyline_set_visible(l,!!w)},scriptTableNew(l,w,p,y,b={}){let E=Z;if(!E)return 0;let L=Number.isFinite(b.cellW)?b.cellW:80,N=Number.isFinite(b.cellH)?b.cellH:22,R=$(b.bg??"rgba(13,15,19,0.92)"),H=$(b.border??"#ffffff22"),U=$(b.color??"#ffffffe0"),it=Number.isFinite(b.fontSize)?b.fontSize:11;return t.script_table_new(E,+l,+w,+L,+N,+p,+y,R.r,R.g,R.b,R.a,H.r,H.g,H.b,H.a,U.r,U.g,U.b,U.a,it)},scriptTableSetCell(l,w,p,y){l&&t.script_table_set_cell(l,+w,+p,String(y))},scriptTableSetVisible(l,w){l&&t.script_table_set_visible(l,!!w)},scriptObjectDelete(l){l&&t.script_object_delete(l)},slotLabel(l,w,p,y,b={}){let E=J;if(!E)return 0;let L=String(l),N=E.get(L);if(N&&N.kind!=="label"){try{t.script_object_delete(N.id)}catch{}N=null}let R=$(b.bg??b.bgColor??"rgba(13,15,19,0.92)"),H=$(b.border??b.borderColor??"#ffffff44"),U=$(b.color??b.textColor??"#ffffffe0"),it=Number.isFinite(b.fontSize)?b.fontSize:11,M=Number.isFinite(b.lineWidth)?b.lineWidth:1,W=b.align==="center"?1:b.align==="right"?2:0,j=mt(b.anchor),rt=String(b.pane??"overlay");if(!N){Ct(E,"label",C,ft);let ht=t.script_label_new(Z,rt,w,p,String(y),R.r,R.g,R.b,R.a,H.r,H.g,H.b,H.a,U.r,U.g,U.b,U.a,it,M,W,j);return ht?(N={id:ht,kind:"label",touched:!0},E.set(L,N),ht):0}return t.script_label_set_xy(N.id,w,p),t.script_label_set_text(N.id,String(y)),t.script_label_set_color(N.id,U.r,U.g,U.b,U.a),t.script_label_set_bg(N.id,R.r,R.g,R.b,R.a),N.touched=!0,N.id},slotBox(l,w,p,y,b,E={}){let L=J;if(!L)return 0;let N=String(l),R=L.get(N);if(R&&R.kind!=="box"){try{t.script_object_delete(R.id)}catch{}R=null}let H=$(E.bg??E.bgColor??"rgba(232,160,74,0.10)"),U=$(E.border??E.borderColor??"#ffffff44"),it=Number.isFinite(E.lineWidth)?E.lineWidth:1,M=!!E.dashed,W=_t(E.extend??0),j=String(E.pane??"overlay");if(!R){Ct(L,"box",S,ft);let rt=t.script_box_new(Z,j,w,p,y,b,H.r,H.g,H.b,H.a,U.r,U.g,U.b,U.a,it,M,W);return rt?(R={id:rt,kind:"box",touched:!0},L.set(N,R),rt):0}return t.script_box_set_corners(R.id,w,p,y,b),t.script_box_set_bg(R.id,H.r,H.g,H.b,H.a),t.script_box_set_border(R.id,U.r,U.g,U.b,U.a),R.touched=!0,R.id},slotLine(l,w,p,y,b,E={}){let L=J;if(!L)return 0;let N=String(l),R=L.get(N);if(R&&R.kind!=="line"){try{t.script_object_delete(R.id)}catch{}R=null}let H=$(E.color??"#F0B90B"),U=Number.isFinite(E.lineWidth)?E.lineWidth:1.5,it=Number.isFinite(E.dash)?E.dash:0,M=Number.isFinite(E.gap)?E.gap:0,W=_t(E.extend??0),j=String(E.pane??"overlay");if(!R){Ct(L,"line",P,ft);let rt=t.script_line_new(Z,j,w,p,y,b,H.r,H.g,H.b,H.a,U,it,M,W);return rt?(R={id:rt,kind:"line",touched:!0},L.set(N,R),rt):0}return t.script_line_set_anchors(R.id,w,p,y,b),t.script_line_set_color(R.id,H.r,H.g,H.b,H.a),t.script_line_set_extend(R.id,W),R.touched=!0,R.id},slotPolyline(l,w,p,y={}){let b=J;if(!b)return 0;let E=String(l),L=b.get(E);if(L)try{t.script_object_delete(L.id)}catch{}else Ct(b,"polyline",B,ft);let N=$(y.color??"#F0B90B"),R=Number.isFinite(y.lineWidth)?y.lineWidth:1.5,H=!!y.dashed,U=Number.isFinite(y.dash)?y.dash:4,it=Number.isFinite(y.gap)?y.gap:4,M=$(y.fill??"rgba(0,0,0,0)"),W=!!y.closed,j=String(y.pane??"overlay"),rt=t.script_polyline_new(Z,j,Q(w),Q(p),N.r,N.g,N.b,N.a,R,H,U,it,M.r,M.g,M.b,M.a,W);return rt?(b.set(E,{id:rt,kind:"polyline",touched:!0}),rt):(b.delete(E),0)},slotTable(l,w,p,y,b,E={}){let L=J;if(!L)return 0;let N=String(l),R=L.get(N),H=Number.isFinite(E.cellW)?E.cellW:80,U=Number.isFinite(E.cellH)?E.cellH:22,it=$(E.bg??"rgba(13,15,19,0.92)"),M=$(E.border??"#ffffff22"),W=$(E.color??"#ffffffe0"),j=Number.isFinite(E.fontSize)?E.fontSize:11;if(R&&(R.kind!=="table"||R.cols!==y||R.rows!==b)){try{t.script_object_delete(R.id)}catch{}R=null}if(!R){let rt=t.script_table_new(Z,+w,+p,+H,+U,+y,+b,it.r,it.g,it.b,it.a,M.r,M.g,M.b,M.a,W.r,W.g,W.b,W.a,j);return rt?(R={id:rt,kind:"table",touched:!0,cols:+y,rows:+b},L.set(N,R),rt):0}return R.touched=!0,R.id},slotTableSet(l,w,p,y){l&&t.script_table_set_cell(l,+w,+p,String(y))},slotTrendline(l,w,p,y,b,E={}){let L=ot;if(!L||!Z)return 0;let N=String(l),R=L.get(N);if(R&&R.kind!=="trendline"){try{t.script_drawing_delete(R.id)}catch{}R=null}let H=$(E.color??"#F0B90B"),U=Number.isFinite(E.lineWidth)?E.lineWidth:1.5,it=!!E.dashed,M=String(E.pane??"overlay");if(!R){Ct(L,"trendline",Y,Ot);let W=t.script_drawing_trendline_new(Z,M,w,p,y,b,H.r,H.g,H.b,H.a,U,it);return W?(R={id:W,kind:"trendline",touched:!0},L.set(N,R),W):0}return t.script_drawing_set_anchors(R.id,Q([w,p,y,b])),t.script_drawing_set_color(R.id,H.r,H.g,H.b,H.a),R.touched=!0,R.id},slotHline(l,w,p={}){let y=ot;if(!y||!Z)return 0;let b=String(l),E=y.get(b);if(E&&E.kind!=="hline"){try{t.script_drawing_delete(E.id)}catch{}E=null}let L=Number.isFinite(p.anchorX)?p.anchorX:0,N=$(p.color??"#F0B90B"),R=Number.isFinite(p.lineWidth)?p.lineWidth:1,H=!!p.dashed,U=String(p.pane??"overlay");if(!E){Ct(y,"hline",V,Ot);let it=t.script_drawing_hline_new(Z,U,w,L,N.r,N.g,N.b,N.a,R,H);return it?(E={id:it,kind:"hline",touched:!0},y.set(b,E),it):0}return t.script_drawing_set_anchors(E.id,Q([L,w])),t.script_drawing_set_color(E.id,N.r,N.g,N.b,N.a),E.touched=!0,E.id},slotFibRet(l,w,p,y,b,E={}){let L=ot;if(!L||!Z)return 0;let N=String(l),R=L.get(N);if(R&&R.kind!=="fib_ret"){try{t.script_drawing_delete(R.id)}catch{}R=null}let H=$(E.color??"#F0B90B"),U=Number.isFinite(E.lineWidth)?E.lineWidth:1,it=!!E.dashed,M=String(E.pane??"overlay");if(!R){Ct(L,"fib_ret",x,Ot);let W=t.script_drawing_fib_ret_new(Z,M,w,p,y,b,H.r,H.g,H.b,H.a,U,it);return W?(R={id:W,kind:"fib_ret",touched:!0},L.set(N,R),W):0}return t.script_drawing_set_anchors(R.id,Q([w,p,y,b])),t.script_drawing_set_color(R.id,H.r,H.g,H.b,H.a),R.touched=!0,R.id},slotChannel(l,w,p,y,b,E,L,N={}){let R=ot;if(!R||!Z)return 0;let H=String(l),U=R.get(H);if(U&&U.kind!=="channel"){try{t.script_drawing_delete(U.id)}catch{}U=null}let it=$(N.color??"#F0B90B"),M=Number.isFinite(N.lineWidth)?N.lineWidth:1,W=!!N.dashed,j=String(N.pane??"overlay");if(!U){Ct(R,"channel",O,Ot);let rt=t.script_drawing_channel_new(Z,j,w,p,y,b,E,L,it.r,it.g,it.b,it.a,M,W);return rt?(U={id:rt,kind:"channel",touched:!0},R.set(H,U),rt):0}return t.script_drawing_set_anchors(U.id,Q([w,p,y,b,E,L])),t.script_drawing_set_color(U.id,it.r,it.g,it.b,it.a),U.touched=!0,U.id}}}let tt=new Map;function Lt(l="below"){let w=tt.get(l)||0;if(tt.set(l,w+1),w===0)try{l==="below"?t.enable_custom_pane():t.enable_aux_pane(l,.22)}catch(p){console.warn(`[CustomIndicator] enable pane "${l}" failed:`,p)}}function Bt(l="below"){let w=tt.get(l)||0;if(!(w<=0))if(w===1){tt.delete(l);try{l==="below"?t.disable_custom_pane():t.disable_aux_pane(l)}catch(p){console.warn(`[CustomIndicator] disable pane "${l}" failed:`,p)}}else tt.set(l,w-1)}function Jt(l){if(!l.compute&&!l.evaluateInWorker)return;let w=G();if(!w)return;let p=[];try{let E=t.drawing_count?.()??0;for(let L=0;L<E;L++){let N=t.drawing_descriptor?.(L);if(N)try{let R=JSON.parse(N);if(R.owner!=="user")continue;let H=new Set(["trendline","arrow","range","fib_ret","circle","channel","fib_ext","brush","path","elliott"]),U=Array.isArray(R.anchors)?R.anchors:[],it=[];if(H.has(R.kind))for(let j=0;j+1<U.length;j+=2)it.push({t:U[j],p:U[j+1]});else R.kind==="hline"?U.length>=2&&it.push({t:U[0],p:U[1]}):R.kind==="arrow_marker_up"||R.kind==="arrow_marker_down"||R.kind==="text_note"?U.length>=2&&it.push({t:U[0],p:U[1]}):R.kind==="price_label"&&U.length>=2&&it.push({t:U[0],p:U[1]});let M=Array.isArray(R.color)?R.color:null,W=M?`#${[M[0]|0,M[1]|0,M[2]|0].map(j=>j.toString(16).padStart(2,"0")).join("")}`:void 0;p.push({id:`u_${R.id}`,owner:"user",scriptId:null,kind:R.kind,pane:R.pane,anchors:it,anchorsRaw:U,style:{color:W,lineWidth:R.line_width,dashed:!!R.dashed,text:R.text||""}})}catch{}}}catch{}if(Object.freeze(p),globalThis.__mrdScriptUserDrawings=p,typeof l.evaluateInWorker=="function"){if(l._workerInFlight){l._workerPending={ohlcv:w,params:l.params,userDrawings:p};return}l._perf||(l._perf={compute:0,render:0,primitives:0,frames:0}),l._workerInFlight=!0;let E=performance.now();l.evaluateInWorker(w,l.params,p).then(L=>{let N=performance.now();l._computed=L?.computed||{},l._perf.compute=N-E,!l._heavyCompute&&l._perf.compute>I&&(l._heavyCompute=!0,console.warn(`[CustomIndicator "${l.name}"] worker compute=${l._perf.compute.toFixed(1)}ms > ${I}ms \u2014 auto-throttled to bar-close-only (set calcOnEveryTick=false explicitly to silence this).`)),Mt(l._computed?.__draws),l._fa=Wt(l._computed,l._fa),l._workerInFlight=!1,h(),l._workerPending&&(l._workerPending=null,Jt(l))}).catch(L=>{console.warn(`[CustomIndicator "${l.name}"] worker eval error:`,L?.message||L),l._workerInFlight=!1});return}let y=performance.now();try{l._computed=l.compute(w,l.params)||{}}catch(E){console.warn(`[CustomIndicator "${l.name}"] compute error:`,E),l._computed={}}let b=performance.now();l._perf||(l._perf={compute:0,render:0,primitives:0,frames:0}),l._perf.compute=b-y,!l._heavyCompute&&l._perf.compute>I&&(l._heavyCompute=!0,console.warn(`[CustomIndicator "${l.name}"] compute=${l._perf.compute.toFixed(1)}ms > ${I}ms budget \u2014 auto-throttled to bar-close-only (set calcOnEveryTick=false explicitly to silence this).`)),Mt(l._computed?.__draws),l._fa=Wt(l._computed,l._fa)}function Wt(l,w){if(!l||typeof l!="object")return null;let p={};for(let y in l){if(!Object.prototype.hasOwnProperty.call(l,y))continue;let b=l[y];if(Array.isArray(b)&&(typeof b[0]=="number"||b.length===0)){let E=w&&w[y]&&w[y].length===b.length?w[y]:new Float64Array(b.length);for(let L=0;L<b.length;L++)E[L]=b[L];p[y]=E}else b instanceof Float64Array?p[y]=b:b&&typeof b=="object"&&!Array.isArray(b)&&(p[y]=Wt(b,w?.[y]))}return p}let Kt=Object.freeze({length:0,timestamps:[],open:[],high:[],low:[],close:[],volume:[]});function $t(l){if(c.size===0)return;let w=G(),p=!1;for(let N of c.values())if(N.enabled&&!(N.compute&&!w)){p=!0;break}if(!p)return;t.custom_begin();let y=Zt(),b=w||Kt,E=t.custom_command_count();for(let N of c.values()){if(!N.enabled||N.compute&&!w)continue;if(N._needsCompute&&(Jt(N),N._needsCompute=!1),N._computed?.__draws?.length&&w){let rt=w.length;try{let ht=t.kline_closes();if(ht&&ht.length===rt){let ut=t.kline_opens(),Yt=t.kline_highs(),ye=t.kline_lows(),Pt=rt-1;for(let jt of N._computed.__draws){if(jt.kind!=="seriesCandles")continue;let[Se,tr,v,F]=jt.args;if(!Array.isArray(Se)||Se.length!==rt||isNaN(Se[Pt]))continue;let q=st.get(Se);q&&(q[Pt]=ut[Pt]);let nt=st.get(tr);nt&&(nt[Pt]=Yt[Pt]);let bt=st.get(v);bt&&(bt[Pt]=ye[Pt]);let yt=st.get(F);yt&&(yt[Pt]=ht[Pt]),Se[Pt]=ut[Pt],tr[Pt]=Yt[Pt],v[Pt]=ye[Pt],F[Pt]=ht[Pt]}}}catch{}}let R=performance.now();Z=N.id;let H=D.get(N.id);H||(H=new Map,D.set(N.id,H));for(let rt of H.values())rt.touched=!1;J=H;let U=ct.get(N.id);U||(U=new Map,ct.set(N.id,U));for(let rt of U.values())rt.touched=!1;ot=U;try{N.render.call(N,y,N._computed||{},b)}catch(rt){console.warn(`[CustomIndicator "${N.name}"] render error:`,rt)}finally{for(let[rt,ht]of H)if(!ht.touched){try{t.script_object_delete(ht.id)}catch{}H.delete(rt)}for(let[rt,ht]of U)if(!ht.touched){try{t.script_drawing_delete(ht.id)}catch{}U.delete(rt)}Z=0,J=null,ot=null}let it=performance.now();N._perf||(N._perf={compute:0,render:0,primitives:0,frames:0});let M=.2,W=it-R;N._perf.render=N._perf.render===0?W:N._perf.render*(1-M)+W*M;let j=t.custom_command_count();N._perf.primitives=j-E,N._perf.frames++,E=j}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 Dt(){d=null,g=0,r=NaN,a=NaN;for(let l of c.values())l._needsCompute=!0}function z(l,w,p){return l&&Number.isFinite(l.x)&&w>=l.x&&w<=l.x+l.w&&p>=l.y&&p<=l.y+l.h}function k(l,w){let p=[...c.values()];for(let y=p.length-1;y>=0;y--){let b=p[y];if(b.enabled&&b.pane!=="overlay"){if(z(b._paneSeparatorRect,l,w))return{ind:b,role:"separator"};if(z(b._paneYAxisRect,l,w))return{ind:b,role:"yaxis"};if(z(b._paneRect,l,w))return{ind:b,role:"body"}}}return null}function et(l,w){let p=k(l,w);return p?p.ind:null}function pt(l,w){let p=l._paneRect,y=l._paneDomain;if(!p||!y)return;let b=y.ymax-y.ymin;if(b<=0||p.h<=0)return;let E=w/p.h*b,L=l._paneViewport||y;l._paneViewport={ymin:L.ymin+E,ymax:L.ymax+E,heightRatio:L.heightRatio}}function wt(l,w,p){let y=l._paneRect,b=l._paneDomain;if(!y||!b||!Number.isFinite(b.ymin)||!Number.isFinite(b.ymax))return;let E=b.ymax-b.ymin;if(E<=0)return;let L=Math.max(0,Math.min(1,(w-y.y)/Math.max(1,y.h))),N=b.ymax-L*E,R=E*p,H=l._paneViewportDefault?l._paneViewportDefault.ymax-l._paneViewportDefault.ymin:E;if(H>0&&(R/H>50||R/H<.005))return;let U=N+L*R,it=U-R;l._paneViewport={ymin:it,ymax:U,heightRatio:l._paneViewport?.heightRatio??b.heightRatio}}function at(l){l._paneViewportDefault?l._paneViewport={...l._paneViewportDefault}:l._paneViewport=null}function Ht(l,w={}){if(!l||typeof l.addEventListener!="function")return{destroy(){}};let p=typeof w.markDirty=="function"?w.markDirty:()=>{},y=typeof w.getDrawingMode=="function"?w.getDrawingMode:null,b=M=>{let W=et(M.offsetX,M.offsetY);if(!W)return;let j=M.deltaY>0?1.1:.9;if(M.ctrlKey||M.metaKey)wt(W,M.offsetY,j);else try{t.zoom_x(M.offsetX,j)}catch{}M.preventDefault(),M.stopPropagation(),p()},E=M=>{if(y&&y())return;let W=et(M.offsetX,M.offsetY);W&&(at(W),M.preventDefault(),M.stopPropagation(),p())},L=null;function N(){L=null,window.removeEventListener("mousemove",R,!0),window.removeEventListener("mouseup",H,!0);try{l.style.cursor=""}catch{}}function R(M){if(!L)return;let W=L;if(W.type==="separator"){let j=W.startSy-M.offsetY,rt=Math.max(.05,Math.min(.5,W.startRatio+j/W.totalH));try{t.set_custom_pane_ratio(rt)}catch{}W.ind._paneViewport={ymin:W.ind._paneViewport?.ymin??W.ind._paneDomain?.ymin,ymax:W.ind._paneViewport?.ymax??W.ind._paneDomain?.ymax,heightRatio:rt},p()}else if(W.type==="yaxis"){let j=M.offsetY-W.lastSy;W.lastSy=M.offsetY,pt(W.ind,j),p()}else if(W.type==="body"){let j=M.offsetX-W.lastSx,rt=M.offsetY-W.lastSy;if(W.lastSx=M.offsetX,W.lastSy=M.offsetY,j!==0)try{t.pan(j,0)}catch{}rt!==0&&pt(W.ind,rt),p()}M.preventDefault(),M.stopPropagation()}function H(M){L&&(N(),M.preventDefault(),M.stopPropagation())}function U(M){if(M.button!==0)return;let W=k(M.offsetX,M.offsetY);if(!W)return;let{ind:j,role:rt}=W;if(rt==="body"){if(y&&y())return;try{if(t.hit_test_drawing&&t.hit_test_drawing(M.offsetX,M.offsetY)>0||t.hit_test_marker&&t.hit_test_marker(M.offsetX,M.offsetY)>0)return}catch{}}if(rt==="separator"){let ht=l.getBoundingClientRect(),ut=Math.max(1,ht.height-28),Yt=j._paneViewport?.heightRatio??j._paneDomain?.heightRatio??(()=>{try{return t.get_custom_pane_ratio?.()??.25}catch{return .25}})();L={type:"separator",ind:j,startSy:M.offsetY,startRatio:Yt,totalH:ut},l.style.cursor="ns-resize"}else rt==="yaxis"?(L={type:"yaxis",ind:j,lastSy:M.offsetY},l.style.cursor="ns-resize"):rt==="body"&&(L={type:"body",ind:j,lastSx:M.offsetX,lastSy:M.offsetY},l.style.cursor="grabbing");window.addEventListener("mousemove",R,!0),window.addEventListener("mouseup",H,!0),M.preventDefault(),M.stopPropagation()}function it(M){if(L)return;let W=k(M.offsetX,M.offsetY);if(!W)return;let rt=y&&y()?"crosshair":W.role==="separator"||W.role==="yaxis"?"ns-resize":"crosshair";requestAnimationFrame(()=>{if(!L)try{l.style.cursor=rt}catch{}})}return l.addEventListener("wheel",b,{passive:!1,capture:!0}),l.addEventListener("dblclick",E,{capture:!0}),l.addEventListener("mousedown",U,{capture:!0}),l.addEventListener("mousemove",it,{capture:!1}),{destroy(){l.removeEventListener("wheel",b,{capture:!0}),l.removeEventListener("dblclick",E,{capture:!0}),l.removeEventListener("mousedown",U,{capture:!0}),l.removeEventListener("mousemove",it,{capture:!1}),L&&N()}}}return{notifyKlinesChanged(){i++},notifyDerivativesChanged(){i++},releaseAllPersistentState(){for(let l of c.values()){let w=l.id;try{t.script_release(w)}catch(p){console.warn(`[CustomIndicator] script_release(${w}) on symbol change failed:`,p)}try{t.script_release_drawings(w)}catch(p){console.warn(`[CustomIndicator] script_release_drawings(${w}) on symbol change failed:`,p)}D.delete(w),ct.delete(w),l._needsCompute=!0,l._computed={}}i++},add(l){let w=js++,p=typeof l?.pane=="string"?l.pane.trim():"",y=!p||p==="overlay",b=y?null:p,E={id:w,name:l.name||`Custom ${w}`,params:{...l.params},compute:l.compute||null,render:l.render,enabled:!0,pane:y?"overlay":b,paneId:b,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(w,E),b&&Lt(b),T(),w},remove(l){let w=c.get(l);if(!w)return;let p=w.paneId,y=!!w._hiddenForFocus;try{t.script_release(l)}catch(b){console.warn(`[CustomIndicator] script_release(${l}) failed:`,b)}try{t.script_release_drawings(l)}catch(b){console.warn(`[CustomIndicator] script_release_drawings(${l}) failed:`,b)}D.delete(l),ct.delete(l),c.delete(l),p&&!y&&Bt(p),T()},updateParams(l,w){let p=c.get(l);p&&(Object.assign(p.params,w),p._needsCompute=!0,p._paneViewport=null,p._paneViewportDefault=null)},setEnabled(l,w){let p=c.get(l);if(!p)return;let y=!!w;if(p.enabled!==y){if(p.enabled=y,!y&&!p._hiddenForFocus){try{t.script_release(l)}catch(b){console.warn(`[CustomIndicator] script_release(${l}) on hide failed:`,b)}try{t.script_release_drawings(l)}catch(b){console.warn(`[CustomIndicator] script_release_drawings(${l}) on hide failed:`,b)}D.delete(l),ct.delete(l),p._needsCompute=!0,p._computed={}}T(),!(!p.paneId||p._hiddenForFocus)&&(y?Lt(p.paneId):Bt(p.paneId))}},indicatorAtPoint(l,w){let p=[...c.values()];for(let y=p.length-1;y>=0;y--){let b=p[y];if(!(!b.enabled||!b.paneId)&&b.pane!=="overlay"&&(z(b._paneSeparatorRect,l,w)||z(b._paneYAxisRect,l,w)||z(b._paneRect,l,w)))return b.id}return""},hidePanesForFocus(){let l=[];for(let w of c.values())!w.enabled||!w.paneId||w._hiddenForFocus||(w._hiddenForFocus=!0,w.enabled=!1,l.push(w.id),Bt(w.paneId));return l},restorePanesFromFocus(l){if(!(!Array.isArray(l)||l.length===0))for(let w of l){let p=c.get(w);!p||!p._hiddenForFocus||(p._hiddenForFocus=!1,p.enabled=!0,p.paneId&&Lt(p.paneId))}},setCalcOnEveryTick(l,w){let p=c.get(l);p&&(p.calcOnEveryTick=!!w,p._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 p=c.get(l);return!p||!p._perf?null:{...p._perf}}let w={};for(let p of c.values())p._perf&&(w[p.id]={...p._perf,name:p.name});return w},listDrawings(){let l=[],w=0;try{w=t.drawing_count()}catch{return l}for(let p=0;p<w;p++){let y="";try{y=t.drawing_descriptor(p)}catch{continue}if(y)try{l.push(JSON.parse(y))}catch(b){console.warn(`[CustomIndicator] failed to parse drawing[${p}]:`,b,y)}}return l},scriptObjectStats(l){try{let w=t.script_object_counts_for(l)||[],[p=0,y=0,b=0,E=0,L=0]=w;return{labels:p,boxes:y,lines:b,polylines:E,tables:L,total:p+y+b+E+L}}catch{return{labels:0,boxes:0,lines:0,polylines:0,tables:0,total:0}}},invalidateCompute:Dt,renderAll:$t,setupPaneInteraction:Ht,isDslNeedsTakerBuy(){return A().tbv},isDslNeedsOpenInterest(){return A().oi},isDslNeedsFundingRate(){return A().fr},setDslDerivativesNeededCallback(l){f=typeof l=="function"?l:null,f&&(m={tbv:!1,oi:!1,fr:!1},T())}}}var bo={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,depthProfile:!0,domLadder:!0,tickHeatmap:!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,depthProfile:!1,domLadder:!1,tickHeatmap:!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:!0,tpo:!0,cvdProfile:!0,smartRanges:!0,emaStructure:!0,customIndicators:!1,vpin:!0,stopIceberg:!0,aggLiquidations:!0,mrdPullback:!0,gaussianVwapCloud:!0,depthProfile:!1,domLadder:!1,tickHeatmap:!1},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,depthProfile:!0,domLadder:!0,tickHeatmap:!0}},ri={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",depthProfile:"Orderbook Depth Panel",domLadder:"DOM Ladder",tickHeatmap:"Tick Heatmap"},ni={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",depthProfile:"Enterprise",domLadder:"Enterprise",tickHeatmap:"Enterprise"};function Me(t){return bo[t]||bo.trial}function mo(t,e){return Me(t)[e]===!0}function tn(t){let e=Me(t),n=new Set;return function(h){if(e[h])return!0;if(!n.has(h)){n.add(h);let c=ri[h]||h,d=ni[h]||"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 En="jx9hUoH64b12M9nidvauYGZa3KQRjU1UcuQtI2l-0uI",ss=30,is="trial",Yr="free";var as="https://app.mrd-indicators.com/charting-library/pricing",Pn=[95,95,109,114].map(t=>String.fromCharCode(t)).join(""),Bi=1297237059;function Cn(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 An(t){let e=Cn(t),n=new Uint8Array(e.length);for(let o=0;o<e.length;o++)n[o]=e.charCodeAt(o);return n}function Hi(t){return new TextEncoder().encode(t)}var Ke=null,$e=null;async function Yi(){if(Ke)return Ke;let t=globalThis.crypto?.subtle;if(!t)throw new Error("WebCrypto not available");let e=An(En);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:En,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 zi(){return $e||($e=(async()=>{let t=await Promise.resolve().then(()=>(Wo(),Vo)),{sha512:e}=await Promise.resolve().then(()=>(os(),ns));return t.hashes.sha512=e,t.verify})(),$e.catch(()=>{$e=null}),$e)}async function Xi(t){let e=t.split(".");if(e.length!==3)return null;let n,o;try{n=JSON.parse(Cn(e[0])),o=JSON.parse(Cn(e[1]))}catch{return null}if(n.alg!=="EdDSA"||n.typ!=="MRD-LIC")return null;let h=An(e[2]),c=Hi(e[0]+"."+e[1]);try{let d=await Yi();return await globalThis.crypto.subtle.verify("Ed25519",d,h,c)?o:null}catch(d){try{let g=await zi(),r=An(En);return g(h,c,r)?o:null}catch{throw d}}}function Vi(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 cs=Pn+"e7x",fs=Pn+"p3q",us="mrd_engine_session_id",_s="mrd_ce_db",je="meta",ds="trial_ts",hs=Pn+"ck";function ps(t){let e=`${t}:${Bi}:${(t^2043453)>>>0}`,n=2166136261;for(let o=0;o<e.length;o++)n^=e.charCodeAt(o),n=Math.imul(n,16777619);return(n>>>0).toString(36)}function ur(t){return`${t}.${ps(t)}`}function _r(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)!==ps(n)?null:n}function Mn(){try{return _r(localStorage.getItem(cs))}catch{return null}}function Ln(t){try{localStorage.setItem(cs,ur(t))}catch{}}function xn(){try{return _r(localStorage.getItem(fs))}catch{return null}}function Fn(t){try{localStorage.setItem(fs,ur(t))}catch{}}function Nn(){try{return _r(sessionStorage.getItem(us))}catch{return null}}function Rn(t){try{sessionStorage.setItem(us,ur(t))}catch{}}function In(){try{let t=document.cookie.match(new RegExp(`(?:^|;\\s*)${hs}=([^;]+)`));return t?_r(decodeURIComponent(t[1])):null}catch{return null}}function On(t){try{let e=encodeURIComponent(ur(t));document.cookie=`${hs}=${e};path=/;max-age=${86400*400};SameSite=Lax`}catch{}}var Qe=null,ls=!1;function Wi(){if(!(ls||typeof indexedDB>"u")){ls=!0;try{let t=indexedDB.open(_s,1);t.onupgradeneeded=()=>{let e=t.result;e.objectStoreNames.contains(je)||e.createObjectStore(je)},t.onsuccess=()=>{let o=t.result.transaction(je,"readonly").objectStore(je).get(ds);o.onsuccess=()=>{let h=_r(o.result);h&&(!Qe||h<Qe)&&(Qe=h,qi(h))}}}catch{}}}function bs(t){Qe=t;try{let e=indexedDB.open(_s,1);e.onsuccess=()=>{e.result.transaction(je,"readwrite").objectStore(je).put(ur(t),ds)}}catch{}}function ms(t,e){let n=null;for(let o of t)o&&(o>e+60||o<17e8||(!n||o<n)&&(n=o));return n}function qi(t){let e=Math.floor(Date.now()/1e3),n=ms([Mn(),xn(),Nn(),In(),t],e);n&&n!==t||n&&(Ln(n),Fn(n),Rn(n),On(n))}function ki(){let t=Math.floor(Date.now()/1e3);return ms([Mn(),xn(),Nn(),In(),Qe],t)}function Zi(t){Ln(t),Fn(t),Rn(t),On(t),bs(t)}function Ui(t){Mn()||Ln(t),xn()||Fn(t),Nn()||Rn(t),In()||On(t),Qe||bs(t)}Wi();function Gi(){let t=ki();t?Ui(t):(t=Math.floor(Date.now()/1e3),Zi(t));let e=t+ss*86400,n=Date.now()/1e3,o=Math.max(0,Math.ceil((e-n)/86400));return n>e?{valid:!1,expired:!0,plan:Yr,watermark:!0,trialExpired:!0,daysLeft:0,pricingUrl:as,error:`Trial expired (${ss} days). Purchase a license: ${as}`,features:Me(Yr)}:{valid:!0,plan:is,watermark:!1,daysLeft:o,trialEnd:e,features:Me(is)}}async function dr(t){if(!t||t==="trial")return Gi();let e;try{e=await Xi(t)}catch(a){return{valid:!1,error:`License verification error: ${a.message}`}}if(!e)return{valid:!1,error:"Invalid license signature"};let{p:n,d:o,e:h,pl:c,a:d}=e;if(!n)return{valid:!1,error:"Invalid license payload (missing plan)"};let g=Math.floor(Date.now()/1e3);if(h>0&&g>h)return{valid:!0,plan:Yr,watermark:!0,trialExpired:!0,originalPlan:n,error:`License expired on ${new Date(h*1e3).toLocaleDateString()}`,features:Me(Yr)};let r=c||"web";if((r==="web"||r==="any")&&o&&o!=="*"&&typeof window<"u"){let a=window.location.hostname;if(a&&a!=="localhost"&&a!=="127.0.0.1"&&a!=="0.0.0.0"&&a!==""&&!String(o).split(",").map(u=>u.trim()).some(u=>Vi(u,a)))return{valid:!1,error:`License not valid for domain: ${a}`}}if(r==="mobile"&&d&&typeof window<"u"){let a=window.__mrd_app_id;if(a&&a!==d)return{valid:!1,error:`License not valid for app: ${a}`}}return{valid:!0,plan:n,domain:o,platform:r,appId:d||null,expiry:h,issuedAt:e.iat,subject:e.sub,watermark:!1,features:e.f?{...Me(n),custom:e.f}:Me(n)}}async function Je(t,e){try{let n=await dr(t||null),o=n&&n.valid?n.plan:null;return!(o&&o!=="free"&&mo(o,e))}catch{return!0}}var Bn=null,Hn=null,De=null;async function Re(){return Bn?{module:Bn,memory:Hn}:De||(De=(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),o=await fetch(n);if(!o.ok)throw new Error(`WASM fetch failed (${o.status} ${o.statusText}) at ${n}`);let h=await o.arrayBuffer();await t.default(h)}return Hn=t.wasm_memory(),Bn=t,{module:t,memory:Hn}})(),De.catch(()=>{De=null}),De)}function Gt(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 zr=null,Xr=null;async function gs(){if(zr)return zr;let{module:t,memory:e}=await Re();return zr=t,Xr=e,t}function Ki(){zr||gs().catch(()=>{})}async function $i(t,e={}){e.appId&&typeof window<"u"&&(window.__mrd_app_id=e.appId);let n=e.licenseKey||e.key||null,o=await dr(n);if(!o.valid)throw new Error(`[MRD Chart Engine] ${o.error}`);o.plan==="trial"&&console.info(`[MRD Chart Engine] Trial mode \u2014 ${o.daysLeft} days remaining. Purchase: https://app.mrd-indicators.com/charting-library/pricing`);let h=await gs(),c=window.devicePixelRatio||1,d=c,g=c,r=t.getBoundingClientRect();(r.width<1||r.height<1)&&(await new Promise(v=>{let F=new ResizeObserver(q=>{for(let nt of q)if(nt.contentRect.width>0&&nt.contentRect.height>0){F.disconnect(),v();return}});F.observe(t.parentElement||t),setTimeout(()=>{F.disconnect(),v()},2e3)}),r=t.getBoundingClientRect());let a=Math.max(r.width,100),s=Math.max(r.height,100);t.width=Math.max(1,Math.round(a*c)),t.height=Math.max(1,Math.round(s*c));let i=t.getContext("2d");d=t.width/a,g=t.height/s,i.setTransform(d,0,0,g,0,0);let u=new h.ChartEngine(a,s),f=!1,m={dead:!1,destroyed:!1,cleanupEvents:null};function A(v){if(!m.dead){m.dead=!0,f=!0;try{let F=v?.message?String(v.message):String(v||"unknown");console.error("[MRD Chart Engine] fatal WASM error \u2014 engine disabled:",F)}catch{}try{m.cleanupEvents?.()}catch{}}}function T(v){if(!v)return!1;if(typeof WebAssembly<"u"&&v instanceof WebAssembly.RuntimeError)return!0;let F=v.message?String(v.message):"";return F.includes("memory access out of bounds")||F.includes("recursive use of an object")||F.includes("null pointer passed to rust")||F.includes("unreachable")}let _=new Proxy(u,{get(v,F){let q=Reflect.get(v,F);return typeof q!="function"?q:function(...bt){if(!m.dead)try{return q.apply(v,bt)}catch(yt){if(T(yt)){A(yt);return}throw yt}}}});if("ontouchstart"in window||navigator.maxTouchPoints>0)try{_.set_touch_mode(!0)}catch{}try{let v=typeof n=="string"?n:"",F=Date.now(),q=typeof window<"u"&&window.location?.hostname||"";_.set_license_token(v,F,q)}catch(v){console.warn("[MRD] set_license_token failed:",v.message)}let P=!0,S=null,C=!1,B=!1,V=!1,x=null,O=null,Y=0,G=!1,st=jn(),Q=Qn(),dt=new Map,_t=1,mt=50,X=[],Z=[],J=!1;function D(){if(!J)try{let v=_.export_drawings_json?.();if(typeof v!="string")return;X.push(v),X.length>mt&&X.shift(),Z.length>0&&(Z.length=0)}catch(v){console.warn("[bridge] pushUndoSnapshot failed",v?.message||v)}}function ot(){if(X.length===0)return!1;try{let v=X.pop(),F=_.export_drawings_json?.();if(typeof F=="string"&&(Z.push(F),Z.length>mt&&Z.shift()),J=!0,_.clear_drawings?.(),v)try{_.import_drawings_json?.(v)}catch(q){console.warn("[bridge] undo import failed",q?.message||q)}return tt(),!0}catch(v){return console.warn("[bridge] undo failed",v?.message||v),!1}finally{J=!1}}function ct(){if(Z.length===0)return!1;try{let v=Z.pop(),F=_.export_drawings_json?.();if(typeof F=="string"&&(X.push(F),X.length>mt&&X.shift()),J=!0,_.clear_drawings?.(),v)try{_.import_drawings_json?.(v)}catch(q){console.warn("[bridge] redo import failed",q?.message||q)}return tt(),!0}catch(v){return console.warn("[bridge] redo failed",v?.message||v),!1}finally{J=!1}}async function gt(v){if(!v)return null;try{let F=URL.createObjectURL(v),q=new Image;await new Promise((bt,yt)=>{q.onload=()=>bt(),q.onerror=xt=>yt(xt),q.src=F});let nt=_t++;return dt.set(nt,q),tt(),{imageId:nt,width:q.naturalWidth||q.width||1,height:q.naturalHeight||q.height||1}}catch(F){return console.warn("[bridge] addImageBlob decode failed",F?.message||F),null}}async function Mt(v){let F=await gt(v);if(!F)return null;let{imageId:q,width:nt,height:bt}=F;D();let yt=Math.max(1,r.width),xt=Math.max(1,r.height),ne=yt*.5,Te=xt*.5,hr=(nt||1)/Math.max(1,bt||1),ke=ne,Ie=ke/Math.max(.01,hr);Ie>Te&&(Ie=Te,ke=Ie*hr),ke=Math.max(40,ke),Ie=Math.max(40,Ie);let qn=yt*.5,kn=xt*.5,Ls=qn-ke/2,xs=kn-Ie/2,Fs=qn+ke/2,Ns=kn+Ie/2,Vr;try{let pr=_.screen_to_world_x(Ls),Rs=_.screen_to_world_x(Fs),Is=_.screen_to_world_y(xs),Os=_.screen_to_world_y(Ns);Vr=_.add_image(q,pr,Is,Rs,Os,212,166,10,0),_.select_drawing(Vr)}catch(pr){return console.warn("[bridge] pasteImageFromClipboard add_image failed",pr?.message||pr),null}return tt(),{drawingId:Vr,imageId:q,blob:v,width:nt,height:bt}}function Ct(v){if(typeof v!="string")return null;let F=v.replace(/\s+$/g,"");if(F.length===0)return null;D();let q=Math.max(1,r.width),nt=Math.max(1,r.height),bt=q*.5,yt=nt*.5,xt;try{let ne=_.screen_to_world_x(bt),Te=_.screen_to_world_y(yt);if(xt=_.add_text_note(ne,Te,212,166,10,14,0),_.set_drawing_text(xt,F),/\n/.test(F))try{_.set_drawing_text_wrap?.(xt,!0)}catch{}_.select_drawing(xt)}catch(ne){return console.warn("[bridge] pasteTextFromClipboard add_text_note failed",ne?.message||ne),null}return tt(),{drawingId:xt,text:F}}let Ot=("ontouchstart"in window||navigator.maxTouchPoints>0)&&window.innerWidth<=1399?33:8;function Zt(){if(!(!C||B||S)){if(Ot>0){let v=performance.now()-Y;if(v<Ot){O||(O=setTimeout(()=>{O=null,Zt()},Ot-v));return}}S=requestAnimationFrame(M)}}let tt=()=>{P=!0,Zt()},Lt=()=>V||m.dead,Bt=null,Jt=null,Wt=null,Kt=null,$t=null,Dt=null,z=null,k=null,et=null,pt=null,wt=null,at=null,Ht=null,l=0,w=null,p=null,y=0,b=0,E=-1,L=!1,N=!1,R=!1,H=null,U=Qr(t,_,{onDirty:tt,onCrosshairMove:(v,F,q)=>{if(y=v,b=F,E=q,L=!0,N=!0,H)try{H({visible:!0,worldX:_.crosshair_world_x()})}catch{}},onCrosshairHide:()=>{if(N&&(N=!1,L=!0,E=-1),H)try{H({visible:!1,worldX:0})}catch{}},drawingApi:v=>{Bt=v},onDrawingMutationBegin:()=>{D()},onUndoRequest:()=>ot(),onRedoRequest:()=>ct(),onDrawingComplete:()=>{Jt?.()},onDrawingCancel:()=>{Wt?.()},onDrawingSelected:(v,F,q)=>{Kt?.(v,F,q)},onMarkerSelected:v=>{$t?.(v)},onImagePasted:async v=>{try{let F=await Mt(v);F?.drawingId>0&&(Kt?.(F.drawingId),Dt?.(F.imageId,F.blob,F.drawingId))}catch(F){console.warn("[bridge] onImagePasted handler failed",F?.message||F)}},onTextPasted:v=>{try{let F=Ct(v);F?.drawingId>0&&(Kt?.(F.drawingId),z?.(F.drawingId,F.text))}catch(F){console.warn("[bridge] onTextPasted handler failed",F?.message||F)}},onDrawingDblClick:(v,F,q,nt,bt)=>{k?.(v,F,q,nt,bt)},onChartDblClick:(v,F,q,nt)=>{et?.(v,F,q,nt)},onIndicatorDblClick:(v,F,q,nt,bt)=>{pt?.(v,F,q,nt,bt)},customIndicatorAtPoint:(v,F)=>ut.indicatorAtPoint(v,F),onVrvpHover:(v,F)=>{R||wt?.(v,F)},onLiqAnnotationPin:(v,F)=>{p?.(v,F)},onQuickTradeBtnClick:(v,F,q)=>{at?.(v,F,q)},onPanStart:()=>{R=!0;try{x?.(null,0,0)}catch{}try{Ht?.("")}catch{}try{wt?.(null,null)}catch{}},onPanEnd:()=>{R=!1}});m.cleanupEvents=U;function it(){if(!(!L||f)){if(L=!1,!N||R){x&&x(null,0,0),Ht&&Ht("");return}if(x)if(E===0||E===1)try{let v=_.get_tooltip_data();x(v,y,b)}catch{}else x(null,0,0);if(Ht){let v=performance.now();if(E===0||E===1){if(v-l>=80){l=v;try{Ht(_.lt_hit_test(y,b))}catch{}}}else Ht("")}}}function M(){if(S=null,!(!C||B||f)){G=!0;try{let v=!1;try{v=P||_.is_dirty()}catch{f=!0;return}if(v){P=!1,Y=performance.now();let F=!1;try{if(_.render()>0){let nt=_.get_command_buffer_ptr(),bt=_.get_command_buffer_len();i.save(),i.setTransform(1,0,0,1,0,0),i.clearRect(0,0,t.width,t.height),i.restore(),oe(i,Xr,nt,bt,st,Q,dt),F=!0}Pt()}catch(q){if(F||(P=!0),q instanceof WebAssembly.RuntimeError){f=!0,console.error("[MRD] Engine crashed:",q.message);return}}it();try{w?.()}catch{}try{(P||_.is_dirty())&&Zt()}catch{}}}finally{G=!1}}}let W=tn(o.plan),j=_o(_,tt,Lt,()=>W),rt=ho(_,tt,Lt,()=>W,D),ht=po(_,tt,Lt,()=>W),ut=Dr(_,Xr,oe,tt);{let v=ht.setKlines,F=ht.setKlinesPreserveViewport;typeof v=="function"&&(ht.setKlines=function(...q){return ut.notifyKlinesChanged(),v.apply(ht,q)}),typeof F=="function"&&(ht.setKlinesPreserveViewport=function(...q){return ut.notifyKlinesChanged(),F.apply(ht,q)})}{let v=F=>{let q=j[F];typeof q=="function"&&(j[F]=function(...nt){return ut.notifyDerivativesChanged(),q.apply(j,nt)})};v("setOiData"),v("setOiDataTs"),v("setFrBinanceData"),v("setFrAggData"),v("setCvdData"),v("setCvdSpotData")}let Yt=null,ye=3e4;{let v=j.setOiDataTs;typeof v=="function"&&(j.setOiDataTs=function(bt,yt){let xt=0;try{xt=Number(_.kline_count?.()||0)}catch{}if(xt===0){Yt={timestamps:bt,values:yt,stashedAt:Date.now()};return}return v.call(j,bt,yt)});let F=ht.setKlines,q=ht.setKlinesPreserveViewport,nt=()=>{if(!Yt)return;let{timestamps:bt,values:yt,stashedAt:xt}=Yt;if(Yt=null,!(Date.now()-xt>ye))try{j.setOiDataTs?.(bt,yt)}catch(ne){console.warn("[bridge] deferred OI flush failed:",ne?.message??ne)}};typeof F=="function"&&(ht.setKlines=function(...bt){let yt=F.apply(ht,bt);return nt(),yt}),typeof q=="function"&&(ht.setKlinesPreserveViewport=function(...bt){let yt=q.apply(ht,bt);return nt(),yt})}function Pt(){let v=0,F=0,q=0,nt=0;try{v=_.chart_area_x(),F=_.chart_area_y(),q=_.chart_area_w(),nt=_.pane_stack_bottom_y()-F}catch{return}if(!(!(q>0)||!(nt>0))){i.save();try{i.beginPath(),i.rect(v,F,q,nt),i.clip(),ut.renderAll(i)}catch{}finally{i.restore()}}}let jt=ut.setupPaneInteraction(t,{markDirty:tt,getDrawingMode:()=>Bt?.getMode()}),Se=["__trade_overlay","__position_overlay"],tr=!0;return{engine:_,start(){C=!0,B=!1,P=!0,Zt()},stop(){C=!1,S&&(cancelAnimationFrame(S),S=null),O&&(clearTimeout(O),O=null)},resize(v){if(f||G)return;if(r=t.getBoundingClientRect(),r.width<1||r.height<1){(v||0)<8&&setTimeout(()=>this.resize((v||0)+1),250);return}c=window.devicePixelRatio||1;let F=Math.max(1,Math.round(r.width*c)),q=Math.max(1,Math.round(r.height*c));t.width=F,t.height=q,d=t.width/r.width,g=t.height/r.height,i.setTransform(1,0,0,1,0,0),i.setTransform(d,0,0,g,0,0);try{st.invalidate()}catch{}try{_.resize(r.width,r.height)}catch(nt){if(nt instanceof WebAssembly.RuntimeError){f=!0;return}throw nt}B||this.renderSync(),tt()},renderSync(){if(f)return 0;try{let v=_.render();if(v>0){let F=_.get_command_buffer_ptr(),q=_.get_command_buffer_len();i.save(),i.setTransform(1,0,0,1,0,0),i.clearRect(0,0,t.width,t.height),i.restore(),oe(i,Xr,F,q,st,Q,dt)}return Pt(),v}catch(v){return v instanceof WebAssembly.RuntimeError&&(f=!0),0}},renderFrameNow(){!C||B||f||(S&&(cancelAnimationFrame(S),S=null),O&&(clearTimeout(O),O=null),P=!0,M())},setCrosshairExternal(v,F,q){if(f)return!1;try{return _.set_crosshair(v,F),y=v,b=F,E=typeof q=="number"?q:0,L=!0,N=!0,!0}catch{return!1}},getCrosshairWorldX(){if(f)return 0;try{return _.crosshair_world_x()}catch{return 0}},isCrosshairSyncVisible(){if(f)return!1;try{return _.crosshair_visible()}catch{return!1}},setCrosshairAtWorldX(v){if(f)return!1;try{let F=_.set_crosshair_at_world_x(v);return F&&(N=!0,L=!0,E=-1),F}catch{return!1}},setCrosshairSyncHandler(v){H=typeof v=="function"?v:null},hideCrosshairExternal(){if(!f)try{_.hide_crosshair(),N&&(N=!1,L=!0,E=-1)}catch{}},setHoverPrice(v){Lt()||(_.set_hover_price(v),tt())},clearHoverPrice(){Lt()||(_.clear_hover_price(),tt())},hitZone(v,F){if(Lt())return-1;let q=_.hit_zone(v,F);return q===void 0?-1:q},startDrawing(v,F){Bt?.setMode(v,F)},cancelDrawing(){Bt?.setMode(null)},onDrawingComplete(v){Jt=v},onDrawingCancel(v){Wt=v},onDrawingSelected(v){Kt=v},onMarkerSelected(v){$t=v},onImagePasted(v){Dt=v},onTextPasted(v){z=v},onDrawingDblClick(v){k=v},onChartDblClick(v){et=v},onIndicatorDblClick(v){pt=v},setReplayState(v,F,q){Lt()||(_.set_replay_state(v,F,q),tt())},setReplayHovered(v){Lt()||_.set_replay_hovered(v)},setReplayPreview(v){Lt()||(_.set_replay_preview(v),tt())},setPrecision(v){_.set_price_precision(v),tt()},setYAutoScale(v){typeof _.set_y_auto_scale=="function"&&(_.set_y_auto_scale(!!v),tt())},getYAutoScale(){return typeof _.y_auto_scale=="function"?!!_.y_auto_scale():!0},setCandleInterval(v){_.set_candle_interval(v)},setTzOffsetSeconds(v){if(Lt())return;let F=Number.isFinite(v)?Math.trunc(v):0;if(typeof _.set_tz_offset_seconds=="function"){try{_.set_tz_offset_seconds(F)}catch{}tt()}},setTheme(v){let F=v==="light"?1:0;typeof _.set_theme=="function"?(_.set_theme(F),tt()):console.warn("[ChartEngine] set_theme not available \u2014 reload page to load updated WASM")},getTheme(){return _.get_theme()===1?"light":"dark"},setCandleBullColor(v){let[F,q,nt]=Gt(v);typeof _.set_candle_bull_color=="function"&&(_.set_candle_bull_color(F,q,nt),tt())},setCandleBearColor(v){let[F,q,nt]=Gt(v);typeof _.set_candle_bear_color=="function"&&(_.set_candle_bear_color(F,q,nt),tt())},setBackgroundColor(v){let[F,q,nt]=Gt(v);typeof _.set_background_color=="function"&&(_.set_background_color(F,q,nt),tt())},setGridColor(v,F=255){let[q,nt,bt]=Gt(v);typeof _.set_grid_color=="function"&&(_.set_grid_color(q,nt,bt,F),tt())},setCrosshairColor(v,F=160){let[q,nt,bt]=Gt(v);typeof _.set_crosshair_color=="function"&&(_.set_crosshair_color(q,nt,bt,F),tt())},setCrosshairStyle(v){typeof _.set_crosshair_style=="function"&&(_.set_crosshair_style(v),tt())},setCrosshairWidth(v){typeof _.set_crosshair_width=="function"&&(_.set_crosshair_width(v),tt())},setAxisLabelColor(v,F=255){let[q,nt,bt]=Gt(v);typeof _.set_axis_label_color=="function"&&(_.set_axis_label_color(q,nt,bt,F),tt())},setAxisLabelHiColor(v,F=255){let[q,nt,bt]=Gt(v);typeof _.set_axis_label_hi_color=="function"&&(_.set_axis_label_hi_color(q,nt,bt,F),tt())},setPriceTagTextColor(v,F=255){let[q,nt,bt]=Gt(v);typeof _.set_price_tag_text_color=="function"&&(_.set_price_tag_text_color(q,nt,bt,F),tt())},setCrosshairLabelTextColor(v,F=230){let[q,nt,bt]=Gt(v);typeof _.set_crosshair_label_text_color=="function"&&(_.set_crosshair_label_text_color(q,nt,bt,F),tt())},setCrosshairMagnet(v){if(typeof _.set_crosshair_magnet!="function")return;let F=0;if(typeof v=="number")F=v===1||v===2?v:0;else if(typeof v=="string"){let q=v.toLowerCase();q==="weak"?F=1:q==="strong"?F=2:F=0}_.set_crosshair_magnet(F),tt()},setFontSize(v){typeof _.set_font_size=="function"&&(_.set_font_size(v),tt())},getFontSize(){return typeof _.get_font_size=="function"?_.get_font_size():11},setGridHVisible(v){typeof _.set_grid_h_visible=="function"&&(_.set_grid_h_visible(!!v),tt())},setGridVVisible(v){typeof _.set_grid_v_visible=="function"&&(_.set_grid_v_visible(!!v),tt())},setSessionLevels(v){typeof _.set_session_levels_enabled=="function"&&(_.set_session_levels_enabled(!!v),tt())},setLastPriceLine(v){if(!(!v||typeof v!="object")){if(typeof v.enabled=="boolean"&&typeof _.set_last_price_line_enabled=="function"&&_.set_last_price_line_enabled(v.enabled),typeof _.set_last_price_line_style=="function"){let F=Number.isFinite(v.width)?v.width:1,q=Number.isFinite(v.dashLen)?v.dashLen:4,nt=Number.isFinite(v.gapLen)?v.gapLen:3;_.set_last_price_line_style(F,q,nt)}tt()}},setBarCloseCountdown(v){!v||typeof v!="object"||(typeof v.enabled=="boolean"&&typeof _.set_bar_close_countdown_enabled=="function"&&_.set_bar_close_countdown_enabled(v.enabled),typeof v.text=="string"&&typeof _.set_bar_close_countdown_text=="function"&&_.set_bar_close_countdown_text(v.text),tt())},setDrawingsVisible(v){typeof _.set_drawings_visible=="function"&&(_.set_drawings_visible(!!v),tt())},setIndicatorsVisible(v){typeof _.set_indicators_visible=="function"&&(_.set_indicators_visible(!!v),tt())},setKlineVisible(v){typeof _.set_kline_visible=="function"&&(_.set_kline_visible(!!v),tt())},getKlineVisible(){return typeof _.get_kline_visible=="function"?!!_.get_kline_visible():!0},setPositionMarkersVisible(v){let F=!!v;tr=F;for(let q of ut.list())Se.includes(q.name)&&ut.setEnabled(q.id,F);tt()},setBgGradient(v,F){if(typeof _.set_bg_gradient=="function"){let[q,nt,bt]=Gt(F||"#000000");_.set_bg_gradient(!!v,q,nt,bt),tt()}},setCandleBullWickColor(v){let[F,q,nt]=Gt(v);typeof _.set_candle_bull_wick_color=="function"&&(_.set_candle_bull_wick_color(F,q,nt),tt())},setCandleBullBorderColor(v){let[F,q,nt]=Gt(v);typeof _.set_candle_bull_border_color=="function"&&(_.set_candle_bull_border_color(F,q,nt),tt())},setCandleBearWickColor(v){let[F,q,nt]=Gt(v);typeof _.set_candle_bear_wick_color=="function"&&(_.set_candle_bear_wick_color(F,q,nt),tt())},setCandleBearBorderColor(v){let[F,q,nt]=Gt(v);typeof _.set_candle_bear_border_color=="function"&&(_.set_candle_bear_border_color(F,q,nt),tt())},onTooltip(v){x=v},onVrvpHover(v){wt=v},onLtHover(v){Ht=v},onPostRender(v){w=v},onLiqAnnotationPin(v){p=v},onQuickTradeBtnClick(v){at=v},setQuickTradeBtnEnabled(v){typeof _.set_quick_trade_btn_enabled=="function"&&(_.set_quick_trade_btn_enabled(!!v),tt())},hitQuickTradeBtn(v,F){return typeof _.is_in_quick_trade_btn!="function"?!1:!!_.is_in_quick_trade_btn(v,F)},crosshairWorldY(){return typeof _.crosshair_world_y!="function"?0:_.crosshair_world_y()},pause(){B||(B=!0,S&&(cancelAnimationFrame(S),S=null),O&&(clearTimeout(O),O=null))},resume(){B&&(B=!1,C&&(P=!0,Zt()))},get isPaused(){return B},addImageBlob(v){return gt(v)},async registerImage(v,F){if(!v||v<=0||!F)return!1;try{let q=F;if(F instanceof Blob){let nt=URL.createObjectURL(F);q=new Image,await new Promise((bt,yt)=>{q.onload=()=>bt(),q.onerror=xt=>yt(xt),q.src=nt})}return dt.set(v>>>0,q),v>=_t&&(_t=(v>>>0)+1),tt(),!0}catch(q){return console.warn("[bridge] registerImage failed id="+v,q?.message||q),!1}},unregisterImage(v){let F=dt.delete(v>>>0);return F&&tt(),F},hasImage(v){return dt.has(v>>>0)},listImageIds(){return Array.from(dt.keys())},nextImageId(){return _t++},pushUndoSnapshot(){D()},undo(){return ot()},redo(){return ct()},canUndo(){return X.length>0},canRedo(){return Z.length>0},getUndoSnapshots(){return[...X,...Z]},clearUndoStack(){X.length=0,Z.length=0},pasteImageFromClipboard(v){return Mt(v)},pasteTextFromClipboard(v){return Ct(v)},destroy(){V=!0,m.destroyed=!0,C=!1,B=!1,S&&(cancelAnimationFrame(S),S=null),O&&(clearTimeout(O),O=null),U();try{jt?.destroy?.()}catch{}try{st.invalidate()}catch{}try{Q.invalidate()}catch{}try{dt.clear()}catch{}if(!m.dead)try{u.free()}catch{}m.dead=!0},addIndicator(v){if(!W("customIndicators"))return null;let F=ut.add(v);return!tr&&v&&Se.includes(v.name)&&ut.setEnabled(F,!1),tt(),F},removeIndicator(v){ut.remove(v),tt()},updateIndicatorParams(v,F){ut.updateParams(v,F),tt()},setIndicatorEnabled(v,F){ut.setEnabled(v,F),tt()},isDslNeedsCvd(){return ut.isDslNeedsTakerBuy()},isDslNeedsOi(){return ut.isDslNeedsOpenInterest()},isDslNeedsFr(){return ut.isDslNeedsFundingRate()},setDslDerivativesNeededCallback(v){ut.setDslDerivativesNeededCallback(v)},customIndicatorAtPoint(v,F){return ut.indicatorAtPoint(v,F)},listIndicators(){return ut.list()},setIndicatorCalcOnEveryTick(v,F){ut.setCalcOnEveryTick(v,F),tt()},invalidateCustomIndicators(){ut.invalidateCompute(),tt()},releaseAllCustomIndicatorState(){ut.releaseAllPersistentState(),tt()},hideCustomPanesForFocus(){let v=ut.hidePanesForFocus();return v.length>0&&tt(),v},restoreCustomPanesFromFocus(v){!Array.isArray(v)||v.length===0||(ut.restorePanesFromFocus(v),tt())},resetPriceScale(){if(!f){try{_.set_y_auto_scale(!0)}catch{}for(let v=1;v<=5;v++)try{_.reset_indicator_y_auto(v)}catch{}tt()}},resetView({isMobile:v=!1}={}){if(!f){try{typeof _.show_default_view=="function"?_.show_default_view():_.show_latest(v?115:450)}catch{}try{_.set_y_auto_scale(!0)}catch{}for(let F=1;F<=5;F++)try{_.reset_indicator_y_auto(F)}catch{}tt()}},fitFootprintView({isMobile:v}={}){if(!f){try{let F=(()=>{try{return Math.max(0,_.chart_area_w())}catch{return 0}})(),q=typeof v=="boolean"?v:F>0&&F<992,nt=q?28:50,bt=q?12:24,yt=q?60:120,xt=q?30:50,ne=F>1?Math.floor(F/nt):xt,Te=0;try{Te=Number(_.kline_count?.()||0)}catch{}let hr=Math.max(2,Math.min(Math.max(bt,Math.min(yt,ne)),Te>0?Te:yt));_.show_latest(hr)}catch{}try{_.set_y_auto_scale(!0)}catch{}for(let F=1;F<=5;F++)try{_.reset_indicator_y_auto(F)}catch{}tt()}},get license(){return{plan:o.plan,valid:o.valid,expired:!!o.expired,watermark:!!o.watermark,daysLeft:o.daysLeft,features:o.features||{}}},async setLicenseKey(v){o=await dr(v),!o.valid&&!o.expired&&console.error(`[MRD Chart Engine] ${o.error}`),W=tn(o.plan);try{let F=typeof v=="string"?v:"",q=Date.now(),nt=typeof window<"u"&&window.location?.hostname||"";_.set_license_token(F,q,nt)}catch{}return tt(),o.valid},...ht,...j,...rt}}function ji(t,e){let{t:n,o,h,l:c,c:d,v:g}=t,r=d.length;if(r===0||e<=0)return{t:[],o:[],h:[],l:[],c:[],v:[]};let a=[],s=[],i=[],u=[],f=[],m=[],A=Math.round(d[0]/e)*e,T=0;for(let _=0;_<r;_++){T+=g[_];let P=d[_]-A;for(;P>=e;){let S=A,C=A+e;a.push(n[_]),s.push(S),i.push(C),u.push(S),f.push(C),m.push(T),T=0,A=C}for(;-P>=e;){let S=A,C=A-e;a.push(n[_]),s.push(S),i.push(S),u.push(C),f.push(C),m.push(T),T=0,A=C}}return{t:a,o:s,h:i,l:u,c:f,v:m}}function Qi(t,e){let{t:n,o,h,l:c,c:d,v:g}=t,r=d.length;if(r===0||e<=0)return{t:[],o:[],h:[],l:[],c:[],v:[]};let a=[],s=[],i=[],u=[],f=[],m=[],A=o[0],T=h[0],_=c[0],I=0,P=n[0];for(let S=0;S<r;S++)for(T=Math.max(T,h[S]),_=Math.min(_,c[S]),I+=g[S];T-_>=e;){let C=d[S]>=A,B=C?_+e:T-e;if(a.push(P),s.push(A),i.push(T),u.push(_),f.push(B),m.push(I),A=B,T=C?Math.max(h[S],B):B,_=C?B:Math.min(c[S],B),I=0,P=n[S],T-_<e)break}return(I>0||a.length===0)&&(a.push(P),s.push(A),i.push(T),u.push(_),f.push(d[r-1]),m.push(I)),{t:a,o:s,h:i,l:u,c:f,v:m}}function Ji(t,e){let{t:n,o,h,l:c,c:d,v:g}=t,r=d.length;if(r===0||e<=0)return{t:[],o:[],h:[],l:[],c:[],v:[]};let a=[],s=[],i=[],u=[],f=[],m=[],A=Math.max(1,Math.round(e));for(let T=0;T<r;T+=A){let _=Math.min(T+A,r),I=-1/0,P=1/0,S=0;for(let C=T;C<_;C++)h[C]>I&&(I=h[C]),c[C]<P&&(P=c[C]),S+=g[C];a.push(n[T]),s.push(o[T]),i.push(I),u.push(P),f.push(d[_-1]),m.push(S)}return{t:a,o:s,h:i,l:u,c:f,v:m}}function Di(t,e){let n=t>1e4?50:t>1e3?10:t>100?1:t>1?.1:.001,o=n*2,h=e<=60?10:e<=300?5:3;return{brickSize:n,rangeSize:o,tickCount:h}}var ta={minRefills:3,hiddenRatio:2,refillWindowMs:1e4,maxTrackedLevels:200,maxEvents:500,decayMs:3e5};function ea(t={}){let e={...ta,...t},n=new Map,o=new Map,h=[],c=0;function d(u){return Math.round(u*1e8)/1e8}function g(u,f,m,A){for(let[T,_]of u){let I=d(T),P=f.get(I);if(!P){f.set(I,{lastVol:_,refills:0,totalConsumed:0,lastRefillTs:A,peakVisible:_});continue}if(_<P.lastVol*.3&&P.lastVol>0){let S=P.lastVol-_;P.totalConsumed+=S,P.lastVol=_;continue}if(_>P.lastVol*1.5&&P.totalConsumed>0)if(A-P.lastRefillTs<e.refillWindowMs){if(P.refills++,P.lastRefillTs=A,P.peakVisible=Math.max(P.peakVisible,_),P.refills>=e.minRefills){let C=P.totalConsumed,B=P.peakVisible;C>=B*e.hiddenRatio&&(h.push({timestamp:A,price:T,visibleSize:B,hiddenSize:C,isBid:m,refillCount:P.refills}),h.length>e.maxEvents&&h.shift(),P.refills=0,P.totalConsumed=0)}}else P.refills=1,P.totalConsumed=0,P.lastRefillTs=A;P.lastVol=_}if(f.size>e.maxTrackedLevels){let T=[...f.entries()];T.sort((I,P)=>I[1].lastRefillTs-P[1].lastRefillTs);let _=T.length-e.maxTrackedLevels;for(let I=0;I<_;I++)f.delete(T[I][0])}}function r(u,f,m){let A=m||Date.now();c=A;let T=u instanceof Map?u:new Map(u.map(([P,S])=>[P,S])),_=f instanceof Map?f:new Map(f.map(([P,S])=>[P,S]));g(T,n,!0,A),g(_,o,!1,A);let I=A-e.decayMs;for(;h.length>0&&h[0].timestamp<I;)h.shift()}function a(){return h}function s(u){if(!u||h.length===0)return;let f=h.length,m=new Float64Array(f),A=new Float64Array(f),T=new Float64Array(f),_=new Float64Array(f),I=new Uint8Array(f),P=new Uint32Array(f);for(let S=0;S<f;S++){let C=h[S];m[S]=C.timestamp,A[S]=C.price,T[S]=C.visibleSize,_[S]=C.hiddenSize,I[S]=C.isBid?1:0,P[S]=C.refillCount}u.setIcebergEvents(m,A,T,_,I,P)}function i(){n.clear(),o.clear(),h.length=0}return{onOrderbookUpdate:r,getEvents:a,pushToEngine:s,reset:i}}var Yn=null,ys=null;async function ra(){if(Yn)return Yn;let{module:t,memory:e}=await Re();return Yn=t,ys=e,t}var ws=Promise.resolve();async function na(t,e={}){let n=await ra(),o=await Je(e.licenseKey||e.key||null,"depthProfile");return await(ws=ws.then(()=>vs(n,t,e,o),()=>vs(n,t,e,o)))}function vs(t,e,n,o=!1){let h=window.devicePixelRatio||1,d=(e.parentElement||e).getBoundingClientRect(),g=Math.max(d.width,60),r=Math.max(d.height,60),a={width:g,height:r};e.width=Math.round(g*h),e.height=Math.round(r*h);let s=e.getContext("2d");s.setTransform(h,0,0,h,0,0);let i=new t.OrderbookEngine(g,r);n.symbol&&i.set_symbol(n.symbol),n.tickSize&&i.set_tick_size(n.tickSize),n.visibleTicks&&i.set_visible_ticks(n.visibleTicks),n.exchangeCount&&i.set_exchange_count(n.exchangeCount),n.pricePrecision!=null&&i.set_price_precision(n.pricePrecision),n.theme==="light"&&i.set_theme(1),n.heatmapCols&&i.set_heatmap_cols(n.heatmapCols),(n.ringCols||n.ringRows)&&i.set_ring_capacity(n.ringCols||300,n.ringRows||400),n.heatmapAlphaMul!=null&&i.set_heatmap_alpha_mul(Number(n.heatmapAlphaMul)),n.showCumulative!=null&&i.set_show_cumulative(!!n.showCumulative),n.showSignalOverlays!=null&&i.set_show_signal_overlays(!!n.showSignalOverlays);let u=!0,f=null,m=!1,A=!1,T=!1,_=!!o,I=null,P=null;function S(){_||!m||T||f||(f=requestAnimationFrame(x))}let C=()=>{u=!0,S()};function B(){try{s.save(),s.setTransform(1,0,0,1,0,0),s.clearRect(0,0,e.width,e.height),s.fillStyle="#787b86",s.font=`600 ${Math.round(12*h)}px ui-monospace, 'SF Mono', Menlo, Consolas, monospace`,s.textAlign="center",s.textBaseline="middle",s.fillText("Enterprise license required",e.width/2,e.height/2),s.restore()}catch{}}function V(){if(T)return!1;if(_)return B(),!0;try{if(i.render()>0){let k=i.get_command_buffer_ptr(),et=i.get_command_buffer_len();s.save(),s.setTransform(1,0,0,1,0,0),s.clearRect(0,0,e.width,e.height),s.restore(),oe(s,ys,k,et)}return!0}catch(z){return z instanceof WebAssembly.RuntimeError&&(T=!0,console.error("[OrderbookEngine] crashed:",z.message)),!1}}function x(){if(f=null,_||!m||T)return;let z=!1;try{z=u||i.is_dirty()}catch{T=!0;return}z&&(V()?u=!1:u=!0)}_&&(console.warn('[MRD Chart Engine] "Orderbook Depth Panel" requires Enterprise plan. Upgrade at https://app.mrd-indicators.com/charting-library/pricing'),B()),e.style.touchAction="none";let O=!1,Y=0,G=new Map,st=0,Q=0,dt=0,_t=0,mt=!1,X=!1,Z=0,J=null,D=280,ot=5,ct=null,gt=!1,Mt=0,Ct=0;function ft(){ct!=null&&(clearTimeout(ct),ct=null)}function Ot(){if(gt){gt=!1;try{i.clear_range()}catch{}if(J)try{J(null)}catch{}C()}}function Zt(z){if(!T){gt=!0,O=!1;try{i.set_range_from_mid(z)}catch{}try{i.clear_hover()}catch{}try{navigator.vibrate&&navigator.vibrate(8)}catch{}if(C(),J)try{let k=i.get_range_low_price(),et=i.get_range_high_price();et>k&&J({low:k,high:et,delta:et-k,deltaPct:k>0?(et-k)/k*100:0,bidQty:i.get_range_bid_qty(),askQty:i.get_range_ask_qty(),ticks:i.get_range_tick_count(),mode:"hover"})}catch{}}}function tt(z){if(T)return;z.preventDefault();let k=z.deltaY>0?1.08:.93;i.zoom_y(k,z.offsetY),C()}function Lt(z){if(!T){if(G.set(z.pointerId,{y:z.offsetY}),e.setPointerCapture(z.pointerId),G.size===1)if(z.shiftKey){X=!0,Z=z.offsetY,O=!1;try{i.set_range(Z,z.offsetY)}catch{}try{i.clear_hover()}catch{}C()}else{try{i.clear_range()}catch{}if(J)try{J(null)}catch{}O=!0,Y=z.offsetY,_t=z.offsetX,dt=z.offsetY,mt=!1,z.pointerType==="touch"&&(Mt=z.offsetX,Ct=z.offsetY,ft(),ct=setTimeout(()=>{ct=null,!(G.size!==1||!O||mt)&&Zt(Ct)},D))}else if(G.size===2){if(ft(),gt&&Ot(),X){X=!1;try{i.clear_range()}catch{}}O=!1;let k=[...G.values()];st=Math.abs(k[0].y-k[1].y),Q=(k[0].y+k[1].y)/2}}}function Bt(z){if(!T)if(G.set(z.pointerId,{y:z.offsetY}),G.size>=2){let k=[...G.values()],et=Math.abs(k[0].y-k[1].y),pt=(k[0].y+k[1].y)/2;if(st>0){let at=st/Math.max(et,1);i.zoom_y(at,pt)}let wt=pt-Q;Math.abs(wt)>.5&&i.pan_y(wt),st=et,Q=pt,C()}else if(X){try{i.set_range(Z,z.offsetY)}catch{}if(C(),J)try{let k=i.get_range_low_price(),et=i.get_range_high_price();et>k&&J({low:k,high:et,delta:et-k,deltaPct:k>0?(et-k)/k*100:0,bidQty:i.get_range_bid_qty(),askQty:i.get_range_ask_qty(),ticks:i.get_range_tick_count(),mode:"measure"})}catch{}}else if(gt){try{i.set_range_from_mid(z.offsetY)}catch{}if(C(),J)try{let k=i.get_range_low_price(),et=i.get_range_high_price();et>k?J({low:k,high:et,delta:et-k,deltaPct:k>0?(et-k)/k*100:0,bidQty:i.get_range_bid_qty(),askQty:i.get_range_ask_qty(),ticks:i.get_range_tick_count(),mode:"hover"}):J(null)}catch{}}else if(O){let k=z.offsetY-Y;Y=z.offsetY,(Math.abs(z.offsetX-_t)>4||Math.abs(z.offsetY-dt)>4)&&(mt=!0),ct!=null&&(Math.abs(z.offsetX-Mt)>ot||Math.abs(z.offsetY-Ct)>ot)&&ft(),i.pan_y(k),C()}else{i.set_hover(z.offsetX,z.offsetY);try{i.set_range_from_mid(z.offsetY)}catch{}if(C(),I)try{let k=i.get_hover_price();if(k>0){let et=i.get_hover_qty(),pt=i.get_hover_side();I({price:k,qty:et,side:pt===2?"ask":"bid"})}else I(null)}catch{}if(J)try{let k=i.get_range_low_price(),et=i.get_range_high_price();et>k?J({low:k,high:et,delta:et-k,deltaPct:k>0?(et-k)/k*100:0,bidQty:i.get_range_bid_qty(),askQty:i.get_range_ask_qty(),ticks:i.get_range_tick_count(),mode:"hover"}):J(null)}catch{}}}function Jt(){if(!T){if(I&&I(null),i.clear_hover(),!X){try{i.clear_range()}catch{}if(J)try{J(null)}catch{}}C()}}function Wt(z){let k=O&&!mt&&G.size===1&&!gt,et=X,pt=gt;G.delete(z.pointerId);try{e.releasePointerCapture(z.pointerId)}catch{}if(ft(),G.size===0){if(et&&!T){try{i.clear_range()}catch{}if(J)try{J(null)}catch{}X=!1,C()}if(pt&&Ot(),k&&P&&!T)try{i.set_hover(z.offsetX,z.offsetY);let wt=i.get_hover_price();if(wt>0){let at=i.get_hover_qty(),Ht=i.get_hover_side();P({price:wt,qty:at,side:Ht===2?"ask":"bid"})}}catch{}O=!1,st=0}else G.size===1&&(O=!0,Y=[...G.values()][0].y,st=0)}function Kt(z){if(!(z.key!=="Escape"||T)&&X){X=!1;try{i.clear_range()}catch{}if(J)try{J(null)}catch{}C()}}function $t(){T||(i.center_on_mid(),C())}e.addEventListener("wheel",tt,{passive:!1}),e.addEventListener("pointerdown",Lt),e.addEventListener("pointermove",Bt),e.addEventListener("pointerup",Wt),e.addEventListener("pointercancel",Wt),e.addEventListener("pointerleave",Jt),e.addEventListener("dblclick",$t),window.addEventListener("keydown",Kt);function Dt(){e.removeEventListener("wheel",tt),e.removeEventListener("pointerdown",Lt),e.removeEventListener("pointermove",Bt),e.removeEventListener("pointerup",Wt),e.removeEventListener("pointercancel",Wt),e.removeEventListener("pointerleave",Jt),e.removeEventListener("dblclick",$t),window.removeEventListener("keydown",Kt)}return{engine:i,start(){m=!0,u=!0,S()},stop(){m=!1,f&&(cancelAnimationFrame(f),f=null)},resize(){if(A||T)return;let k=(e.parentElement||e).getBoundingClientRect(),et=Math.max(k.width,1),pt=Math.max(k.height,1);if(et<1||pt<1)return;h=window.devicePixelRatio||1;let wt=Math.round(et*h),at=Math.round(pt*h),Ht=e.width!==wt||e.height!==at;e.width!==wt&&(e.width=wt),e.height!==at&&(e.height=at),s.setTransform(h,0,0,h,0,0),a={width:et,height:pt};try{i.resize(et,pt),Ht&&V()}catch(l){if(l instanceof WebAssembly.RuntimeError){T=!0;return}throw l}C()},pushSnapshot(z,k,et){if(T)return;let pt=new Float64Array(z.length*2);for(let at=0;at<z.length;at++)pt[at*2]=z[at][0],pt[at*2+1]=z[at][1];let wt=new Float64Array(k.length*2);for(let at=0;at<k.length;at++)wt[at*2]=k[at][0],wt[at*2+1]=k[at][1];try{i.push_snapshot(pt,wt,et)}catch(at){if(at instanceof WebAssembly.RuntimeError){T=!0;return}throw at}C()},pushSnapshotFlat(z,k,et){if(!T){try{i.push_snapshot(z,k,et)}catch(pt){if(pt instanceof WebAssembly.RuntimeError){T=!0;return}throw pt}C()}},setDepthBook(z,k,et){if(T)return;let pt=new Float64Array(z.length*2);for(let at=0;at<z.length;at++)pt[at*2]=z[at][0],pt[at*2+1]=z[at][1];let wt=new Float64Array(k.length*2);for(let at=0;at<k.length;at++)wt[at*2]=k[at][0],wt[at*2+1]=k[at][1];try{i.set_depth_book(pt,wt,et)}catch(at){if(at instanceof WebAssembly.RuntimeError){T=!0;return}throw at}C()},setDepthBookFlat(z,k,et){if(!T){try{i.set_depth_book(z,k,et)}catch(pt){if(pt instanceof WebAssembly.RuntimeError){T=!0;return}throw pt}C()}},pushHeatmapCol(z,k,et){if(T)return;let pt=new Float64Array(z.length*2);for(let at=0;at<z.length;at++)pt[at*2]=z[at][0],pt[at*2+1]=z[at][1];let wt=new Float64Array(k.length*2);for(let at=0;at<k.length;at++)wt[at*2]=k[at][0],wt[at*2+1]=k[at][1];try{i.push_heatmap_col(pt,wt,et)}catch(at){if(at instanceof WebAssembly.RuntimeError){T=!0;return}throw at}C()},pushHeatmapColFlat(z,k,et){if(!T){try{i.push_heatmap_col(z,k,et)}catch(pt){if(pt instanceof WebAssembly.RuntimeError){T=!0;return}throw pt}C()}},resetRing(){if(!T){try{i.reset_ring()}catch(z){if(z instanceof WebAssembly.RuntimeError){T=!0;return}throw z}C()}},setExchangeLabels(z){if(T)return;let k=Array.isArray(z)?z.join(","):String(z);try{i.set_exchange_labels(k)}catch(et){if(et instanceof WebAssembly.RuntimeError){T=!0;return}throw et}C()},setSignalObi(z,k,et){if(!T){try{i.set_signal_obi(z,k,et)}catch(pt){if(pt instanceof WebAssembly.RuntimeError){T=!0;return}throw pt}C()}},setSignalSpoof(z){if(!T){try{i.set_signal_spoof(z)}catch(k){if(k instanceof WebAssembly.RuntimeError){T=!0;return}throw k}C()}},setSignalAbsorption(z,k){if(!T){try{i.set_signal_absorption(z,k)}catch(et){if(et instanceof WebAssembly.RuntimeError){T=!0;return}throw et}C()}},setSignalFlow(z,k){if(!T){try{i.set_signal_flow(z,k)}catch(et){if(et instanceof WebAssembly.RuntimeError){T=!0;return}throw et}C()}},setSignalWalls(z,k){if(!T){try{i.set_signal_walls(new Float64Array(z),new Float64Array(k))}catch(et){if(et instanceof WebAssembly.RuntimeError){T=!0;return}throw et}C()}},setSignalGaps(z,k){if(!T){try{i.set_signal_gaps(new Float64Array(z),new Float64Array(k))}catch(et){if(et instanceof WebAssembly.RuntimeError){T=!0;return}throw et}C()}},setSymbol(z){T||(i.set_symbol(z),C())},setTickSize(z){T||(i.set_tick_size(z),C())},setVisibleTicks(z){T||(i.set_visible_ticks(z),C())},setExchangeCount(z){T||(i.set_exchange_count(z),C())},setPrecision(z){T||(i.set_price_precision(z),C())},setAutoCenter(z){T||i.set_auto_center(z)},centerOnMid(){T||(i.center_on_mid(),C())},setHeatmapCols(z){T||(i.set_heatmap_cols(z),C())},setHeatmapAlphaMul(z){if(!T){try{i.set_heatmap_alpha_mul(Number(z))}catch(k){if(k instanceof WebAssembly.RuntimeError){T=!0;return}throw k}C()}},setShowCumulative(z){if(!T){try{i.set_show_cumulative(!!z)}catch(k){if(k instanceof WebAssembly.RuntimeError){T=!0;return}throw k}C()}},setShowSignalOverlays(z){if(!T){try{i.set_show_signal_overlays(!!z)}catch(k){if(k instanceof WebAssembly.RuntimeError){T=!0;return}throw k}C()}},getHoverPrice(){return T?0:i.get_hover_price()},getHoverQty(){return T?0:i.get_hover_qty()},getHoverSide(){return T?0:i.get_hover_side()},onHoverPrice(z){I=z},onClickPrice(z){P=z},onRangeUpdate(z){J=z},clearRange(){if(!T){if(X&&(X=!1,J))try{J(null)}catch{}try{i.clear_range()}catch{}C()}},setTheme(z){T||(i.set_theme(z==="light"?1:0),C())},setThemePalette(z){if(!(T||!z)&&typeof i.set_trade_palette=="function"){try{i.set_trade_palette(zn(z.bg),zn(z.bull),zn(z.bear),z.themed?1:0)}catch{}C()}},clear(){T||(i.clear(),C())},get isDead(){return T},destroy(){A=!0,m=!1,f&&(cancelAnimationFrame(f),f=null),ft(),Dt();try{i.free()}catch{}}}}function zn(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 Xn=null,Cs=null;async function oa(){if(Xn)return Xn;let{module:t,memory:e}=await Re();return Xn=t,Cs=e,t}var Ss=Promise.resolve();async function sa(t,e={}){let n=await oa(),o=await Je(e.licenseKey||e.key||null,"domLadder");return Ss=Ss.then(()=>Ts(n,t,e,o),()=>Ts(n,t,e,o))}function Ts(t,e,n,o=!1){let h=window.devicePixelRatio||1,c=()=>{let X=e.parentElement,Z=X?X.getBoundingClientRect():e.getBoundingClientRect();return{w:Math.max(60,Math.floor(Z.width||60)),h:Math.max(120,Math.floor(Z.height||120))}},{w:d,h:g}=c();e.width=Math.round(d*h),e.height=Math.round(g*h);let r=e.getContext("2d");r.setTransform(h,0,0,h,0,0);let a=new t.DomLadderEngine(d,g);n.tickSize&&a.set_tick_size(n.tickSize),n.pricePrecision!=null&&a.set_price_precision(n.pricePrecision),n.visibleRows&&a.set_visible_rows(n.visibleRows),n.theme==="light"&&a.set_theme(1),Number.isFinite(n.textScale)&&a.set_text_scale(n.textScale),Number.isFinite(n.fillIntensity)&&a.set_fill_intensity(n.fillIntensity),n.qtyDisplayUsd===!0&&a.set_qty_display_usd(1);let s=!0,i=null,u=!1,f=!1,m=!1,A=!!o,T=null,_=null;function I(){A||!u||m||i||(i=requestAnimationFrame(B))}let P=()=>{s=!0,I()};function S(){try{r.save(),r.setTransform(1,0,0,1,0,0),r.clearRect(0,0,e.width,e.height),r.fillStyle="#787b86",r.font=`600 ${Math.round(12*h)}px ui-monospace, 'SF Mono', Menlo, Consolas, monospace`,r.textAlign="center",r.textBaseline="middle",r.fillText("Enterprise license required",e.width/2,e.height/2),r.restore()}catch{}}function C(){if(m)return!1;if(A)return S(),!0;try{if(a.render()>0){let Z=a.get_command_buffer_ptr(),J=a.get_command_buffer_len();r.save(),r.setTransform(1,0,0,1,0,0),r.clearRect(0,0,e.width,e.height),r.restore(),oe(r,Cs,Z,J)}return!0}catch(X){return X instanceof WebAssembly.RuntimeError&&(m=!0,console.error("[DomLadderEngine] crashed:",X.message)),!1}}function B(){if(i=null,A||!u||m)return;let X=!1;try{a.set_now_ms(Date.now()),X=s||a.is_dirty()}catch{m=!0;return}X&&(C()?s=!1:s=!0),u&&!m&&(i=requestAnimationFrame(B))}A&&(console.warn('[MRD Chart Engine] "DOM Ladder" requires Enterprise plan. Upgrade at https://app.mrd-indicators.com/charting-library/pricing'),S()),e.style.touchAction="none";let V=0,x=0,O=!1;function Y(X){m||(V=X.offsetX,x=X.offsetY,O=!1)}function G(X){if(!m&&((Math.abs(X.offsetX-V)>4||Math.abs(X.offsetY-x)>4)&&(O=!0),a.set_hover(X.offsetX,X.offsetY),P(),T))try{let Z=a.get_hover_price();if(Z>0){let J=a.get_hover_side();T({price:Z,side:J===1?"ask":"bid"},X)}else T(null,X)}catch{}}function st(){m||(T&&T(null),a.clear_hover(),P())}function Q(X){if(!m&&!O&&_)try{a.set_hover(X.offsetX,X.offsetY);let Z=a.get_hover_price();if(Z>0){let J=a.get_hover_side();_({price:Z,side:J===1?"ask":"bid"})}}catch{}}function dt(){m||(a.center_on_mid(),P())}function _t(X){if(m)return;X.preventDefault();let Z=X.deltaY;if(X.deltaMode===1?Z*=16:X.deltaMode===2&&(Z*=e.clientHeight||400),!(Math.abs(Z)<.5)){try{a.scroll_by(Z)}catch(J){if(J instanceof WebAssembly.RuntimeError){m=!0;return}return}P()}}e.addEventListener("pointerdown",Y),e.addEventListener("pointermove",G),e.addEventListener("pointerup",Q),e.addEventListener("pointerleave",st),e.addEventListener("dblclick",dt),e.addEventListener("wheel",_t,{passive:!1});function mt(){e.removeEventListener("pointerdown",Y),e.removeEventListener("pointermove",G),e.removeEventListener("pointerup",Q),e.removeEventListener("pointerleave",st),e.removeEventListener("dblclick",dt),e.removeEventListener("wheel",_t)}return{engine:a,start(){u=!0,s=!0,I()},stop(){u=!1,i&&(cancelAnimationFrame(i),i=null)},resize(){if(f||m)return;let{w:X,h:Z}=c();if(X<1||Z<1)return;h=window.devicePixelRatio||1;let J=Math.round(X*h),D=Math.round(Z*h),ot=e.width!==J||e.height!==D;e.width!==J&&(e.width=J),e.height!==D&&(e.height=D),r.setTransform(h,0,0,h,0,0);try{if(a.resize(X,Z),ot){try{a.set_now_ms(Date.now())}catch{}C()}}catch(ct){if(ct instanceof WebAssembly.RuntimeError){m=!0;return}throw ct}P()},pushBook(X,Z,J){if(m)return;let D=X instanceof Float64Array?X:Es(X),ot=Z instanceof Float64Array?Z:Es(Z);try{a.push_book(D,ot,J)}catch(ct){if(ct instanceof WebAssembly.RuntimeError){m=!0;return}throw ct}P()},appendTrade(X,Z,J,D){if(!m){try{a.append_trade(X,Z,!!J,D||Date.now())}catch(ot){if(ot instanceof WebAssembly.RuntimeError){m=!0;return}throw ot}P()}},pushDomVol(X){if(!(m||!Array.isArray(X)||X.length===0)){try{for(let Z of X){if(!Z)continue;let J=Number(Z.p??Z.price),D=Number(Z.b??Z.buy??0),ot=Number(Z.s??Z.sell??0);J>0&&a.push_dom_vol(J,D,ot)}}catch(Z){if(Z instanceof WebAssembly.RuntimeError){m=!0;return}throw Z}P()}},clearDomVol(){if(!m){try{a.clear_dom_vol()}catch(X){if(X instanceof WebAssembly.RuntimeError){m=!0;return}throw X}P()}},setWalls(X,Z){if(m)return;let J=X instanceof Float64Array?X:new Float64Array(X||[]),D=Z instanceof Float64Array?Z:new Float64Array(Z||[]);try{a.set_walls(J,D)}catch(ot){if(ot instanceof WebAssembly.RuntimeError){m=!0;return}throw ot}P()},setTickSize(X){if(!m){try{a.set_tick_size(X)}catch(Z){if(Z instanceof WebAssembly.RuntimeError){m=!0;return}throw Z}P()}},setPricePrecision(X){if(!m){try{a.set_price_precision(X)}catch(Z){if(Z instanceof WebAssembly.RuntimeError){m=!0;return}throw Z}P()}},setVisibleRows(X){m||(a.set_visible_rows(X),P())},setTextScale(X){if(!(m||!Number.isFinite(X))){try{a.set_text_scale(X)}catch(Z){if(Z instanceof WebAssembly.RuntimeError){m=!0;return}throw Z}P()}},setFillIntensity(X){if(!(m||!Number.isFinite(X))){try{a.set_fill_intensity(X)}catch(Z){if(Z instanceof WebAssembly.RuntimeError){m=!0;return}throw Z}P()}},setQtyDisplayUsd(X){if(!m){try{a.set_qty_display_usd(X?1:0)}catch(Z){if(Z instanceof WebAssembly.RuntimeError){m=!0;return}throw Z}P()}},setTheme(X){m||(a.set_theme(X==="light"?1:0),P())},setThemePalette(X){if(!(m||!X)&&typeof a.set_trade_palette=="function"){try{a.set_trade_palette(Vn(X.bg),Vn(X.bull),Vn(X.bear),X.themed?1:0)}catch{}P()}},resetSymbol(){m||(a.reset_symbol(),P())},centerOnMid(){m||(a.center_on_mid(),P())},scrollBy(X){if(!(m||!Number.isFinite(X))){try{a.scroll_by(X)}catch(Z){if(Z instanceof WebAssembly.RuntimeError){m=!0;return}throw Z}P()}},isViewLocked(){if(m)return!1;try{return a.is_view_locked()}catch{return!1}},getMomentum(){if(m)return{m1:0,buy1m:0,sell1m:0};try{return{m1:a.momentum_1m(),buy1m:a.buy_volume_1m(),sell1m:a.sell_volume_1m()}}catch{return{m1:0,buy1m:0,sell1m:0}}},onHover(X){T=X},onClick(X){_=X},destroy(){f=!0,u=!1,i&&cancelAnimationFrame(i),i=null,mt();try{a.free&&a.free()}catch{}}}}function Vn(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 Es(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 Wn=null,Ms=null;async function ia(){if(Wn)return Wn;let{module:t,memory:e}=await Re();return Wn=t,Ms=e,t}function aa(){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 As=Promise.resolve();async function la(t,e={}){let n=await ia(),o=await Je(e.licenseKey||e.key||null,"tickHeatmap");return As=As.then(()=>Ps(n,t,e,o),()=>Ps(n,t,e,o))}function Ps(t,e,n,o=!1){let h=window.devicePixelRatio||1,c=e.getBoundingClientRect(),d=Math.max(c.width,60),g=Math.max(c.height,60);e.width=d*h,e.height=g*h;let r=e.getContext("2d");r.setTransform(1,0,0,1,0,0),r.scale(h,h);let a=e.width,s=e.height,i=new t.TickEngine(d,g);n.tickSize&&i.set_tick_size(n.tickSize),n.pricePrecision!=null&&i.set_price_precision(n.pricePrecision),n.theme==="light"&&i.set_theme(1);let u=n.lookbackMs||5*60*1e3,f=n.cellMs||1e3;(n.lookbackMs||n.cellMs)&&i.set_lookback(u,f),n.showTradeTape!=null&&i.set_show_trade_tape(!!n.showTradeTape),n.showBookHeatmap!=null&&i.set_show_book_heatmap(!!n.showBookHeatmap),n.showVwap!=null&&i.set_show_vwap(!!n.showVwap),n.showGrid!=null&&i.set_show_grid(!!n.showGrid);let m=n.isMobile!=null?!!n.isMobile:aa(),A=!!n.lowPower,T=m||A?33:8,_=66,I=3e4,P=!0,S=null,C=!1,B=!1,V=!1,x=!1,O=!!o,Y=0,G=performance.now(),st=performance.now(),Q=0,dt=Math.max(4,T-1),_t=0,mt=0,X=0,Z=null,J=null,D=0,ot=[];function ct(){if(B||!C||typeof document<"u"&&document.hidden)return Number.POSITIVE_INFINITY;let M=performance.now();return(M-G>I&&M-st>I?_:T)+mt}function gt(){O||!C||B||x||S||(S=requestAnimationFrame(Mt))}function Mt(M){if(S=null,O||!C||B||x)return;let W=ct();if(!Number.isFinite(W))return;if(M-Y<W){S=requestAnimationFrame(Mt);return}Y=M,Ct();let j=P;if(!j)try{j=i.is_dirty()}catch{x=!0;return}if(j){P=!1;let rt=performance.now();if(!Zt()){if(x)return;P=!0}let ut=performance.now()-rt;Q=Q*.85+ut*.15,ut>dt?(_t+=1,_t>=8&&(mt=Math.min(100,mt+16),_t=0,console.debug(`[TickEngine] adaptive throttle \u2192 ${T+mt}ms (EMA ${Q.toFixed(1)}ms, last ${ut.toFixed(1)}ms)`))):(_t=0,mt>0&&Q<dt*.5&&(mt=Math.max(0,mt-8)))}S=requestAnimationFrame(Mt)}function Ct(){if(Z&&D>0){try{i.push_book(X,Z,J,D)}catch(M){if(M instanceof WebAssembly.RuntimeError){x=!0;return}}Z=null,J=null,D=0}if(ot.length){let M=new Float64Array(ot);ot.length=0;try{i.push_trades_batch(M)}catch(W){if(W instanceof WebAssembly.RuntimeError){x=!0;return}}}}let ft=()=>{P=!0,gt()};function Ot(){try{r.save(),r.setTransform(1,0,0,1,0,0),r.clearRect(0,0,e.width,e.height),r.fillStyle="#787b86",r.font=`600 ${Math.round(12*h)}px ui-monospace, 'SF Mono', Menlo, Consolas, monospace`,r.textAlign="center",r.textBaseline="middle",r.fillText("Enterprise license required",e.width/2,e.height/2),r.restore()}catch{}}O&&(console.warn('[MRD Chart Engine] "Tick Heatmap" requires Enterprise plan. Upgrade at https://app.mrd-indicators.com/charting-library/pricing'),Ot());function Zt(){if(x)return!1;if(O)return Ot(),!0;try{if(i.render()>0){let W=i.get_command_buffer_ptr(),j=i.get_command_buffer_len();r.save(),r.setTransform(1,0,0,1,0,0),r.clearRect(0,0,e.width,e.height),r.restore(),oe(r,Ms,W,j)}return!0}catch(M){return M instanceof WebAssembly.RuntimeError&&(x=!0,console.error("[TickEngine] crashed:",M.message)),!1}}function tt(){typeof document>"u"||(document.hidden?S&&(cancelAnimationFrame(S),S=null):(ot.length=0,Z=null,J=null,D=0,Y=0,ft()))}typeof document<"u"&&document.addEventListener("visibilitychange",tt);function Lt(){if(V||x||(c=e.getBoundingClientRect(),c.width<1||c.height<1))return;h=window.devicePixelRatio||1;let M=Math.round(c.width*h),W=Math.round(c.height*h);try{i.resize(c.width,c.height)}catch(j){if(j instanceof WebAssembly.RuntimeError){x=!0;return}throw j}if(B){ft();return}(M!==a||W!==s)&&(a=M,s=W,e.width=M,e.height=W,r.setTransform(1,0,0,1,0,0),r.scale(h,h)),Zt(),ft()}let Bt=0,Jt=2,Wt=3,Kt=Bt,$t=!1,Dt=0,z=0,k=new Map,et=0,pt=0;function wt(M,W){if(x)return Bt;try{let j=i.hit_zone?.(M,W);return Number.isFinite(j)?j:Bt}catch{return Bt}}function at(){}e.style.touchAction="none";function Ht(M){if(x||B)return;M.stopImmediatePropagation(),M.preventDefault(),G=performance.now();let W=M.deltaY,j=M.deltaX,rt=Math.abs(W)>=Math.abs(j)?W:j;if(rt===0)return;let ht=rt>0?1.1:.9,ut=wt(M.offsetX,M.offsetY);try{M.ctrlKey?i.zoom_y(M.offsetY,ht):M.shiftKey||ut===Jt?i.zoom_x(M.offsetX,ht):ut===Wt?i.zoom_y(M.offsetY,ht):i.zoom(M.offsetX,M.offsetY,ht)}catch{}ft()}function l(M){if(!(x||B)){if(M.stopImmediatePropagation(),G=performance.now(),k.set(M.pointerId,{x:M.offsetX,y:M.offsetY}),e.setPointerCapture(M.pointerId),k.size===1)$t=!0,Dt=M.offsetX,z=M.offsetY,Kt=wt(M.offsetX,M.offsetY);else if(k.size===2){$t=!1;let W=[...k.values()];et=Math.abs(W[0].y-W[1].y),pt=(W[0].y+W[1].y)/2}}}function w(M){if(x||B)return;let W=k.has(M.pointerId);if(W&&M.stopImmediatePropagation(),G=performance.now(),W&&k.set(M.pointerId,{x:M.offsetX,y:M.offsetY}),W&&k.size>=2){let j=[...k.values()],rt=Math.abs(j[0].y-j[1].y),ht=(j[0].y+j[1].y)/2;if(et>0){let Yt=et/Math.max(rt,1);try{i.zoom_y(ht,Yt)}catch{}}let ut=ht-pt;if(Math.abs(ut)>.5)try{i.pan_y(ut)}catch{}et=rt,pt=ht,ft()}else if(W&&$t){let j=M.offsetX-Dt,rt=M.offsetY-z;Dt=M.offsetX,z=M.offsetY;try{if(Kt===Jt){if(Math.abs(j)>.5){let ht=Math.exp(j*.004);i.zoom_x(Dt,ht)}}else if(Kt===Wt){if(Math.abs(rt)>.5){let ht=Math.exp(rt*.004);i.zoom_y(z,ht)}}else Math.abs(j)>.5&&i.pan_x(j),Math.abs(rt)>.5&&i.pan_y(rt)}catch{}ft()}else{try{i.set_hover(M.offsetX,M.offsetY)}catch{}ft()}}function p(M){if(x)return;let W=k.has(M.pointerId);!B&&W&&M.stopImmediatePropagation(),k.delete(M.pointerId);try{e.releasePointerCapture(M.pointerId)}catch{}if(k.size===0)$t=!1,et=0;else if(k.size===1){$t=!0;let j=[...k.values()][0];Dt=j.x,z=j.y,et=0}}function y(M){if(x)return;let W=k.has(M.pointerId);!B&&W&&M.stopImmediatePropagation();try{i.clear_hover()}catch{}ft()}function b(M){if(x||B)return;M.stopImmediatePropagation();let W=wt(M.offsetX,M.offsetY);try{W===Wt?i.reset_y_auto?.():W===Jt?i.set_follow_live?.(!0):i.reset_view?.()}catch{}ft()}function E(M){x||B||M.stopImmediatePropagation()}function L(M){x||B||k.size>0&&M.stopImmediatePropagation()}function N(M){x||B||k.size>0&&M.stopImmediatePropagation()}function R(M){x||B||(M.stopImmediatePropagation(),M.preventDefault())}let H={capture:!0},U={capture:!0,passive:!1};e.addEventListener("wheel",Ht,U),e.addEventListener("pointerdown",l,H),e.addEventListener("pointermove",w,H),e.addEventListener("pointerup",p,H),e.addEventListener("pointercancel",p,H),e.addEventListener("pointerleave",y,H),e.addEventListener("dblclick",b,H),e.addEventListener("mousedown",E,H),e.addEventListener("mousemove",L,H),e.addEventListener("mouseup",N,H),e.addEventListener("contextmenu",R,H);function it(){e.removeEventListener("wheel",Ht,U),e.removeEventListener("pointerdown",l,H),e.removeEventListener("pointermove",w,H),e.removeEventListener("pointerup",p,H),e.removeEventListener("pointercancel",p,H),e.removeEventListener("pointerleave",y,H),e.removeEventListener("dblclick",b,H),e.removeEventListener("mousedown",E,H),e.removeEventListener("mousemove",L,H),e.removeEventListener("mouseup",N,H),e.removeEventListener("contextmenu",R,H),typeof document<"u"&&document.removeEventListener("visibilitychange",tt)}return{engine:i,isMobile:m,start(){C=!0,B=!1,P=!0,Y=0,G=performance.now(),st=performance.now(),gt()},pause(){B=!0,S&&(cancelAnimationFrame(S),S=null)},resume(){V||x||(B=!1,C=!0,P=!0,Y=0,gt())},stop(){C=!1,S&&(cancelAnimationFrame(S),S=null)},resize:Lt,pushBook(M,W,j,rt){x||B||(st=performance.now(),X=M,Z=W,J=j,D=rt,gt())},pushTrade(M,W,j,rt){x||B||(st=performance.now(),ot.push(M,W,j,rt),gt())},pushTradesFlat(M){if(!(x||B)){st=performance.now();for(let W=0;W<M.length;W++)ot.push(M[W]);gt()}},setTheme(M){if(!x){try{i.set_theme(M==="light"||M===1?1:0)}catch{}ft()}},setTickSize(M){if(!x){try{i.set_tick_size(M)}catch{}ft()}},setPricePrecision(M){if(!x){try{i.set_price_precision(M)}catch{}ft()}},setTzOffsetSeconds(M){if(x)return;let W=Number.isFinite(M)?Math.trunc(M):0;if(typeof i.set_tz_offset_seconds=="function"){try{i.set_tz_offset_seconds(W)}catch{}ft()}},setLookback(M,W){if(x)return;let j=Math.max(20,W|0),rt=Math.max(j,M|0);if(!(j===f&&rt===u)){f=j,u=rt;try{i.set_lookback(rt,j)}catch{}ft()}},setShowTradeTape(M){x||(i.set_show_trade_tape(!!M),ft())},setShowBookHeatmap(M){x||(i.set_show_book_heatmap(!!M),ft())},setShowVwap(M){x||(i.set_show_vwap(!!M),ft())},setShowGrid(M){x||(i.set_show_grid(!!M),ft())},setHeatmapPalette(M){if(x)return;let W=Math.max(0,Math.min(4,M|0));try{i.set_heatmap_palette?.(W)}catch{}ft()},setHeatmapStyle(M){if(x)return;let W=Math.max(0,Math.min(1,M|0));try{i.set_heatmap_style?.(W)}catch{}ft()},setLargeTrade3d(M){if(!x){try{i.set_large_trade_3d?.(!!M)}catch{}ft()}},setLargeTradeScale(M){if(x)return;let W=Number.isFinite(M)?+M:1;try{i.set_large_trade_scale?.(W)}catch{}ft()},setShowVolume(M){if(!x){try{i.set_show_volume?.(!!M)}catch{}ft()}},setShowPriceLine(M){if(!x){try{i.set_show_price_line?.(!!M)}catch{}ft()}},setShowDepthLens(M){if(!x){try{i.set_show_depth_lens?.(!!M)}catch{}ft()}},setShowCvd(M){if(!x){try{i.set_show_cvd?.(!!M)}catch{}ft()}},setHeatmapIntensity(M,W){if(x)return;let j=Number.isFinite(M)?Math.max(0,Math.min(.99,+M)):0,rt=Number.isFinite(W)?Math.max(j+.01,Math.min(1,+W)):1;try{i.set_heatmap_intensity?.(j,rt)}catch{}ft()},setShowLatestProfile(M){if(!x){try{i.set_show_latest_profile?.(!!M)}catch{}ft()}},setFollowLive(M){x||(i.set_follow_live(!!M),ft())},setAutoScaleY(M){x||(i.set_auto_scale_y(!!M),ft())},resetView(){x||(i.reset_view(),ft())},getLastMid(){if(x)return 0;try{return i.get_last_mid()}catch{return 0}},clearData(){if(!x){try{i.clear()}catch{}ot.length=0,Z=null,J=null,D=0,ft()}},destroy(){if(!V){V=!0,C=!1,B=!0,S&&(cancelAnimationFrame(S),S=null),it();try{i.free?.()}catch{}}}}}export{Qi as buildRange,ji as buildRenko,Ji as buildTick,$i as createChartBridge,Dr as createCustomIndicatorManager,sa as createDomLadderBridge,ea as createIcebergDetector,na as createOrderbookBridge,la as createTickBridge,oe as dispatchCommands,Ki as prefetchEngine,Ki as prefetchWasm,Qr as setupEvents,Di as suggestDefaults,dr as validateLicense};
|