loom-browser 0.0.13 → 0.0.15

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.
@@ -1,2 +1,2 @@
1
- import{jsx as A,jsxs as I}from"react/jsx-runtime";import{createContext as g,forwardRef as t,useRef as C,useState as e,useEffect as B,useImperativeHandle as i,useMemo as Q,useContext as o,useCallback as E}from"react";let s=0;function a(){return"frame-"+ ++s}function r(A,I,g){return{id:null!=g?g:a(),locus:A,bpPerPixel:I>0?(A.end-A.start)/I:0,viewportWidth:I}}function n(A){A.bpPerPixel=A.viewportWidth>0?(A.locus.end-A.locus.start)/A.viewportWidth:0}function h(A){return"all"===A.chr.toLowerCase()}function c(A,I){const g=A.trim();if("all"===g.toLowerCase()||"*"===g)return I?{chr:"all",start:0,end:I.totalLength}:null;const t=g.split("\t");if(t.length>=3){const A=t[0],I=parseInt(t[1].replace(/,/g,""),10),g=parseInt(t[2].replace(/,/g,""),10);if(!isNaN(I)&&!isNaN(g)&&g>I)return{chr:A,start:I,end:g}}if(!g.includes(":"))return null;const C=g.replace(/,/g,""),e=C.indexOf(":"),B=C.substring(0,e),i=C.substring(e+1),Q=i.match(/^(-?\d+)-(\d+)$/);if(Q){let A=parseInt(Q[1],10);const I=parseInt(Q[2],10);return isNaN(A)||isNaN(I)||I<=A?null:(A<0&&(A=0),{chr:B,start:A,end:I})}const o=i.match(/^(\d+)$/);if(o){const A=parseInt(o[1],10);return isNaN(A)?null:{chr:B,start:Math.max(0,A-20),end:A+20}}return null}function l(A){return h(A)?"All Chromosomes":`${A.chr}:${Math.round(A.start).toLocaleString()}-${Math.round(A.end).toLocaleString()}`}function d(A,I,g){if(A.locus.chr!==I.chr)return!1;if(A.locus.start>I.start||A.locus.end<I.end)return!1;const t=g/A.bpPerPixel;return t>=.7&&t<=1.3}class D{constructor(A={}){var I;this.nodes=[],this.accessCounter=0,this._maxEntries=null!==(I=A.maxEntries)&&void 0!==I?I:5,this.onEviction=A.onEviction}get maxEntries(){return this._maxEntries}resize(A){for(this._maxEntries=Math.max(1,A);this.nodes.length>this._maxEntries;)this.evictOne()}get totalFeatureCount(){let A=0;for(const I of this.nodes)A+=I.entry.features.length;return A}get size(){return this.nodes.length}find(A,I){for(const g of this.nodes)if(d(g.entry,A,I))return g.accessTime=++this.accessCounter,g.entry}put(A){for(let I=0;I<this.nodes.length;I++){const g=this.nodes[I].entry;if(g.locus.chr===A.locus.chr&&g.locus.start===A.locus.start&&g.locus.end===A.locus.end&&g.bpPerPixel===A.bpPerPixel)return void(this.nodes[I]={entry:A,accessTime:++this.accessCounter})}this.nodes.length>=this.maxEntries&&this.evictOne(),this.nodes.push({entry:A,accessTime:++this.accessCounter})}evictOne(){var A;if(0===this.nodes.length)return 0;let I=0;for(let A=1;A<this.nodes.length;A++)this.nodes[A].accessTime<this.nodes[I].accessTime&&(I=A);const g=this.nodes[I].entry,t=g.features.length;return this.nodes.splice(I,1),null===(A=this.onEviction)||void 0===A||A.call(this,g),t}getMostRecent(){if(0===this.nodes.length)return;let A=0;for(let I=1;I<this.nodes.length;I++)this.nodes[I].accessTime>this.nodes[A].accessTime&&(A=I);return this.nodes[A].entry}clear(){this.nodes.length=0}hasData(){return this.nodes.length>0}getLRUAccessTime(){if(0===this.nodes.length)return 1/0;let A=this.nodes[0].accessTime;for(let I=1;I<this.nodes.length;I++)this.nodes[I].accessTime<A&&(A=this.nodes[I].accessTime);return A}}function u(A,I,g,t){var C;const{totalHeight:e,headerHeight:B=4,font:i="9px sans-serif",labelColor:Q="rgba(0,0,0,0.7)"}=t;for(const t of I){const I=Math.round((t.start-g.bpStart)/g.bpPerPixel),o=Math.max(3,Math.round((t.end-t.start)/g.bpPerPixel));if(I+o<0||I>g.pixelWidth)continue;const E=null!==(C=t.color)&&void 0!==C?C:"rgba(68, 134, 247, 0.15)";if(A.fillStyle=E,A.fillRect(I,0,o,e),A.strokeStyle=E.replace(/[\d.]+\)$/,A=>`${Math.min(1,3*parseFloat(A))})`),A.lineWidth=1,A.beginPath(),A.moveTo(I+.5,0),A.lineTo(I+.5,e),A.moveTo(I+o-.5,0),A.lineTo(I+o-.5,e),A.stroke(),B>0&&(A.fillStyle=E.replace(/[\d.]+\)$/,A=>`${Math.min(1,4*parseFloat(A))})`),A.fillRect(I,0,o,B)),t.name&&o>20){A.font=i,A.fillStyle=Q,A.textBaseline="top",A.textAlign="left";const g=I+3,C=B+1;A.fillText(t.name,g,C,o-6)}}}function y(A,I){let g=A;for(const A of Object.keys(I))g=g.replace(new RegExp("\\{"+A+"\\}","gi"),String(I[A]));return g}function w(A){const I="ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";let g;do{g="";for(let A=0;A<12;A++)g+=I[Math.floor(51*Math.random())]}while(A[g]);return g}function f(A){const I={left:"start",right:"end",center:"middle",start:"start",end:"end"};return I[A]||I.start}function S(A){const I={alphabetic:"alphabetic",hanging:"hanging",top:"text-before-edge",bottom:"text-after-edge",middle:"central"};return I[A]||I.alphabetic}function k(A){const I=Math.sqrt(A[0]*A[0]+A[1]*A[1]);return[A[0]/I,A[1]/I]}const G=function(A,I=10){const g={},t=A.split(",");for(let A=0;A<t.length;A+=2){const C="&"+t[A+1]+";",e=parseInt(t[A],I);g[C]="&#"+e+";"}return g["\\xa0"]="&#160;",g}("50,nbsp,51,iexcl,52,cent,53,pound,54,curren,55,yen,56,brvbar,57,sect,58,uml,59,copy,5a,ordf,5b,laquo,5c,not,5d,shy,5e,reg,5f,macr,5g,deg,5h,plusmn,5i,sup2,5j,sup3,5k,acute,5l,micro,5m,para,5n,middot,5o,cedil,5p,sup1,5q,ordm,5r,raquo,5s,frac14,5t,frac12,5u,frac34,5v,iquest,60,Agrave,61,Aacute,62,Acirc,63,Atilde,64,Auml,65,Aring,66,AElig,67,Ccedil,68,Egrave,69,Eacute,6a,Ecirc,6b,Euml,6c,Igrave,6d,Iacute,6e,Icirc,6f,Iuml,6g,ETH,6h,Ntilde,6i,Ograve,6j,Oacute,6k,Ocirc,6l,Otilde,6m,Ouml,6n,times,6o,Oslash,6p,Ugrave,6q,Uacute,6r,Ucirc,6s,Uuml,6t,Yacute,6u,THORN,6v,szlig,70,agrave,71,aacute,72,acirc,73,atilde,74,auml,75,aring,76,aelig,77,ccedil,78,egrave,79,eacute,7a,ecirc,7b,euml,7c,igrave,7d,iacute,7e,icirc,7f,iuml,7g,eth,7h,ntilde,7i,ograve,7j,oacute,7k,ocirc,7l,otilde,7m,ouml,7n,divide,7o,oslash,7p,ugrave,7q,uacute,7r,ucirc,7s,uuml,7t,yacute,7u,thorn,7v,yuml,ci,fnof,sh,Alpha,si,Beta,sj,Gamma,sk,Delta,sl,Epsilon,sm,Zeta,sn,Eta,so,Theta,sp,Iota,sq,Kappa,sr,Lambda,ss,Mu,st,Nu,su,Xi,sv,Omicron,t0,Pi,t1,Rho,t3,Sigma,t4,Tau,t5,Upsilon,t6,Phi,t7,Chi,t8,Psi,t9,Omega,th,alpha,ti,beta,tj,gamma,tk,delta,tl,epsilon,tm,zeta,tn,eta,to,theta,tp,iota,tq,kappa,tr,lambda,ts,mu,tt,nu,tu,xi,tv,omicron,u0,pi,u1,rho,u2,sigmaf,u3,sigma,u4,tau,u5,upsilon,u6,phi,u7,chi,u8,psi,u9,omega,uh,thetasym,ui,upsih,um,piv,812,bull,816,hellip,81i,prime,81j,Prime,81u,oline,824,frasl,88o,weierp,88h,image,88s,real,892,trade,89l,alefsym,8cg,larr,8ch,uarr,8ci,rarr,8cj,darr,8ck,harr,8dl,crarr,8eg,lArr,8eh,uArr,8ei,rArr,8ej,dArr,8ek,hArr,8g0,forall,8g2,part,8g3,exist,8g5,empty,8g7,nabla,8g8,isin,8g9,notin,8gb,ni,8gf,prod,8gh,sum,8gi,minus,8gn,lowast,8gq,radic,8gt,prop,8gu,infin,8h0,ang,8h7,and,8h8,or,8h9,cap,8ha,cup,8hb,int,8hk,there4,8hs,sim,8i5,cong,8i8,asymp,8j0,ne,8j1,equiv,8j4,le,8j5,ge,8k2,sub,8k3,sup,8k4,nsub,8k6,sube,8k7,supe,8kl,oplus,8kn,otimes,8l5,perp,8m5,sdot,8o8,lceil,8o9,rceil,8oa,lfloor,8ob,rfloor,8p9,lang,8pa,rang,9ea,loz,9j0,spades,9j3,clubs,9j5,hearts,9j6,diams,ai,OElig,aj,oelig,b0,Scaron,b1,scaron,bo,Yuml,m6,circ,ms,tilde,802,ensp,803,emsp,809,thinsp,80c,zwnj,80d,zwj,80e,lrm,80f,rlm,80j,ndash,80k,mdash,80o,lsquo,80p,rsquo,80q,sbquo,80s,ldquo,80t,rdquo,80u,bdquo,810,dagger,811,Dagger,81g,permil,81p,lsaquo,81q,rsaquo,85c,euro",32),F={strokeStyle:{svgAttr:"stroke",canvas:"#000000",svg:"none",apply:"stroke"},fillStyle:{svgAttr:"fill",canvas:"#000000",svg:null,apply:"fill"},lineCap:{svgAttr:"stroke-linecap",canvas:"butt",svg:"butt",apply:"stroke"},lineJoin:{svgAttr:"stroke-linejoin",canvas:"miter",svg:"miter",apply:"stroke"},miterLimit:{svgAttr:"stroke-miterlimit",canvas:10,svg:4,apply:"stroke"},lineWidth:{svgAttr:"stroke-width",canvas:1,svg:1,apply:"stroke"},globalAlpha:{svgAttr:"opacity",canvas:1,svg:1,apply:"fill stroke"},font:{canvas:"10px sans-serif"},shadowColor:{canvas:"#000000"},shadowOffsetX:{canvas:0},shadowOffsetY:{canvas:0},shadowBlur:{canvas:0},textAlign:{canvas:"start"},textBaseline:{canvas:"alphabetic"},lineDash:{svgAttr:"stroke-dasharray",canvas:null,svg:null,apply:"stroke"}};class N{constructor(A,I){this.__root=A,this.__ctx=I}addColorStop(A,I){const g=this.__ctx.__createElement("stop");if(g.setAttribute("offset",String(A)),I&&-1!==I.indexOf("rgba")){const A=/rgba\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d?\.?\d*)\s*\)/gi.exec(I);A&&(g.setAttribute("stop-color",y("rgb({r},{g},{b})",{r:A[1],g:A[2],b:A[3]})),g.setAttribute("stop-opacity",A[4]))}else g.setAttribute("stop-color",I);this.__root.appendChild(g)}}class m{constructor(A,I){this.__root=A,this.__ctx=I}}class R{constructor(A={}){var I,g,t;if(this.isSVG=!0,this.__currentElementsToStyle=null,this.__ids={},this.__stack=[],this.__groupStack=[],this.__currentDefaultPath="",this.__currentPosition={x:0,y:0},this.strokeStyle="#000000",this.fillStyle="#000000",this.lineCap="butt",this.lineJoin="miter",this.miterLimit=10,this.lineWidth=1,this.globalAlpha=1,this.font="10px sans-serif",this.shadowColor="#000000",this.shadowOffsetX=0,this.shadowOffsetY=0,this.shadowBlur=0,this.textAlign="start",this.textBaseline="alphabetic",this.lineDash=null,this.globalCompositeOperation="source-over",this.config=A,this.width=null!==(I=A.width)&&void 0!==I?I:500,this.height=null!==(g=A.height)&&void 0!==g?g:500,this.enableMirroring=null!==(t=A.enableMirroring)&&void 0!==t&&t,this.canvas=this,this.__document=document,A.ctx?(this.__ctx=A.ctx,this.__canvas=A.ctx.canvas):(this.__canvas=this.__document.createElement("canvas"),this.__ctx=this.__canvas.getContext("2d")),this.__setDefaultStyles(),this.__stack=[this.__getStyleState()],this.__groupStack=[],this.__root=this.__createElement("svg"),this.__root.setAttribute("width",String(this.width)),this.__root.setAttribute("height",String(this.height)),this.__root.setAttribute("overflow","visible"),A.viewbox){const I=A.viewbox;this.__root.setAttribute("viewBox",`${I.x} ${I.y} ${I.width} ${I.height}`),this.viewbox=A.viewbox}this.__ids={},this.__defs=this.__createElement("defs"),this.__root.appendChild(this.__defs);const C=this.__createElement("rect",{id:"svg_output_backdrop",width:"100%",height:"100%",fill:A.backdropColor||"white"});this.__root.appendChild(C),this.__rootGroup=this.__createElement("g",{id:"root-group"}),this.__root.appendChild(this.__rootGroup),this.__currentElement=this.__rootGroup}setWidth(A){this.width=A,this.__root.setAttribute("width",String(A)),this.config.viewbox&&this.__root.setAttribute("viewBox",`${this.config.viewbox.x} ${this.config.viewbox.y} ${A} ${this.config.viewbox.height}`)}setHeight(A){this.height=A,this.__root.setAttribute("height",String(A)),this.config.viewbox&&this.__root.setAttribute("viewBox",`${this.config.viewbox.x} ${this.config.viewbox.y} ${this.config.viewbox.width} ${A}`)}__createElement(A,I,g){const t=this.__document.createElementNS("http://www.w3.org/2000/svg",A);if(g&&(t.setAttribute("fill","none"),t.setAttribute("stroke","none")),I)for(const A of Object.keys(I))t.setAttribute(A,String(I[A]));return t}__setDefaultStyles(){for(const A of Object.keys(F))this[A]=F[A].canvas}__applyStyleState(A){for(const I of Object.keys(A))this[I]=A[I]}__getStyleState(){const A={};for(const I of Object.keys(F))A[I]=this[I];return A}__applyStyleToCurrentElement(A){let I=this.__currentElement;const g=this.__currentElementsToStyle;g&&(I.setAttribute(A,""),I=g.element,g.children.forEach(I=>I.setAttribute(A,"")));for(const g of Object.keys(F)){const t=F[g],C=this[g];if(t.apply)if(C instanceof m){if(C.__ctx)for(;C.__ctx.__defs.childNodes.length;){const A=C.__ctx.__defs.childNodes[0],I=A.getAttribute("id");this.__ids[I]=I,this.__defs.appendChild(A)}I.setAttribute(t.apply,y("url(#{id})",{id:C.__root.getAttribute("id")}))}else if(C instanceof N)I.setAttribute(t.apply,y("url(#{id})",{id:C.__root.getAttribute("id")}));else if(-1!==t.apply.indexOf(A)&&t.svg!==C)if("stroke"!==t.svgAttr&&"fill"!==t.svgAttr||"string"!=typeof C||-1===C.indexOf("rgba")){let e=t.svgAttr;if("globalAlpha"===g&&(e=A+"-"+t.svgAttr,I.getAttribute(e)))continue;I.setAttribute(e,String(C))}else{const A=/rgba\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d?\.?\d*)\s*\)/gi.exec(C);if(A){I.setAttribute(t.svgAttr,y("rgb({r},{g},{b})",{r:A[1],g:A[2],b:A[3]}));let g=parseFloat(A[4]);null!=this.globalAlpha&&(g*=this.globalAlpha),I.setAttribute(t.svgAttr+"-opacity",String(g))}}}}__closestGroupOrSvg(A){const I=A||this.__currentElement;return"g"===I.nodeName||"svg"===I.nodeName?I:this.__closestGroupOrSvg(I.parentNode)}getSerializedSvg(A){let I=(new XMLSerializer).serializeToString(this.__root);if(A)for(const A of Object.keys(G)){const g=new RegExp(A,"gi");g.test(I)&&(I=I.replace(g,G[A]))}return I}getSvg(){return this.__root}saveWithTranslationAndClipRect(A,I,g,t,C,e){const B=`${A}_clip_rect`,i=this.__createElement("clipPath",{id:B});this.__defs.appendChild(i),i.appendChild(this.__createElement("rect",{x:"0",y:String(e),width:String(t),height:String(C)}));const Q=this.__createElement("g");Q.setAttribute("transform",y("translate({x},{y})",{x:I,y:g})),Q.setAttribute("clip-path",y("url(#{id})",{id:B}));const o=this.__closestGroupOrSvg();o.appendChild(Q),this.__groupStack.push(o),this.__currentElement=Q,this.__stack.push(this.__getStyleState())}save(){const A=this.__createElement("g"),I=this.__closestGroupOrSvg();this.__groupStack.push(I),I.appendChild(A),this.__currentElement=A,this.__stack.push(this.__getStyleState())}restore(){this.__currentElement=this.__groupStack.pop(),this.__currentElementsToStyle=null,this.__currentElement||(this.__currentElement=this.__root.childNodes[2]);const A=this.__stack.pop();A&&this.__applyStyleState(A)}__addTransform(A){const I=this.__closestGroupOrSvg();if(I.childNodes.length>0){"path"===this.__currentElement.nodeName&&(this.__currentElementsToStyle||(this.__currentElementsToStyle={element:I,children:[]}),this.__currentElementsToStyle.children.push(this.__currentElement),this.__applyCurrentDefaultPath());const A=this.__createElement("g");I.appendChild(A),this.__currentElement=A}let g=this.__currentElement.getAttribute("transform");g?g+=" ":g="",g+=A,this.__currentElement.setAttribute("transform",g)}scale(A,I){void 0===I&&(I=A),this.__addTransform(y("scale({x},{y})",{x:A,y:I}))}rotate(A){const I=180*A/Math.PI;this.__addTransform(y("rotate({angle},{cx},{cy})",{angle:I,cx:0,cy:0}))}translate(A,I){this.__addTransform(y("translate({x},{y})",{x:A,y:I}))}transform(A,I,g,t,C,e){this.__addTransform(y("matrix({a},{b},{c},{d},{e},{f})",{a:A,b:I,c:g,d:t,e:C,f:e}))}beginPath(){this.__currentDefaultPath="",this.__currentPosition={x:0,y:0};const A=this.__createElement("path",{},!0);this.__closestGroupOrSvg().appendChild(A),this.__currentElement=A}__applyCurrentDefaultPath(){"path"===this.__currentElement.nodeName&&this.__currentElement.setAttribute("d",this.__currentDefaultPath)}__addPathCommand(A){this.__currentDefaultPath+=" "+A}moveTo(A,I){"path"!==this.__currentElement.nodeName&&this.beginPath(),this.__currentPosition={x:A,y:I},this.__addPathCommand(y("M {x} {y}",{x:A,y:I}))}closePath(){this.__currentDefaultPath&&this.__addPathCommand("Z")}lineTo(A,I){this.__currentPosition={x:A,y:I},this.__currentDefaultPath&&this.__currentDefaultPath.indexOf("M")>-1?this.__addPathCommand(y("L {x} {y}",{x:A,y:I})):this.__addPathCommand(y("M {x} {y}",{x:A,y:I}))}bezierCurveTo(A,I,g,t,C,e){this.__currentPosition={x:C,y:e},this.__addPathCommand(y("C {cp1x} {cp1y} {cp2x} {cp2y} {x} {y}",{cp1x:A,cp1y:I,cp2x:g,cp2y:t,x:C,y:e}))}quadraticCurveTo(A,I,g,t){this.__currentPosition={x:g,y:t},this.__addPathCommand(y("Q {cpx} {cpy} {x} {y}",{cpx:A,cpy:I,x:g,y:t}))}roundRect(A,I,g,t,C){let e;e=null==C?[0,0,0,0]:"number"==typeof C?[C,C,C,C]:1===C.length?[C[0],C[0],C[0],C[0]]:2===C.length?[C[0],C[1],C[0],C[1]]:3===C.length?[C[0],C[1],C[2],C[1]]:[C[0],C[1],C[2],C[3]];const B=Math.min(Math.abs(g)/2,Math.abs(t)/2);for(let A=0;A<4;A++)e[A]=Math.min(e[A],B);this.moveTo(A+e[0],I),this.lineTo(A+g-e[1],I),e[1]&&this.arcTo(A+g,I,A+g,I+e[1],e[1]),this.lineTo(A+g,I+t-e[2]),e[2]&&this.arcTo(A+g,I+t,A+g-e[2],I+t,e[2]),this.lineTo(A+e[3],I+t),e[3]&&this.arcTo(A,I+t,A,I+t-e[3],e[3]),this.lineTo(A,I+e[0]),e[0]&&this.arcTo(A,I,A+e[0],I,e[0]),this.closePath()}arcTo(A,I,g,t,C){var e,B;const i=null===(e=this.__currentPosition)||void 0===e?void 0:e.x,Q=null===(B=this.__currentPosition)||void 0===B?void 0:B.y;if(void 0===i||void 0===Q)return;if(C<0)throw new Error("IndexSizeError: The radius provided ("+C+") is negative.");if(i===A&&Q===I||A===g&&I===t||0===C)return void this.lineTo(A,I);const o=k([i-A,Q-I]),E=k([g-A,t-I]);if(o[0]*E[1]===o[1]*E[0])return void this.lineTo(A,I);const s=o[0]*E[0]+o[1]*E[1],a=Math.acos(Math.abs(s)),r=k([o[0]+E[0],o[1]+E[1]]),n=C/Math.sin(a/2),h=A+n*r[0],c=I+n*r[1],l=[-o[1],o[0]],d=[E[1],-E[0]],D=A=>A[1]>=0?Math.acos(A[0]):-Math.acos(A[0]),u=D(l),y=D(d);this.lineTo(h+l[0]*C,c+l[1]*C),this.arc(h,c,C,u,y)}stroke(){"path"===this.__currentElement.nodeName&&this.__currentElement.setAttribute("paint-order","fill stroke markers"),this.__applyCurrentDefaultPath(),this.__applyStyleToCurrentElement("stroke")}fill(){"path"===this.__currentElement.nodeName&&this.__currentElement.setAttribute("paint-order","stroke fill markers"),this.__applyCurrentDefaultPath(),this.__applyStyleToCurrentElement("fill")}rect(A,I,g,t){"path"!==this.__currentElement.nodeName&&this.beginPath(),this.moveTo(A,I),this.lineTo(A+g,I),this.lineTo(A+g,I+t),this.lineTo(A,I+t),this.lineTo(A,I),this.closePath()}fillRect(A,I,g,t){t<0&&(I+=t,t=-t),g<0&&(A+=g,g=-g);const C={x:A,y:I,width:g,height:t};if(this.viewbox&&(e=this.viewbox,B=C,!(e.x<B.x+B.width&&e.x+e.width>B.x&&e.y<B.y+B.height&&e.y+e.height>B.y)))return;var e,B;const i=this.__createElement("rect",C,!0);this.__closestGroupOrSvg().appendChild(i),this.__currentElement=i,this.__applyStyleToCurrentElement("fill")}strokeRect(A,I,g,t){const C=this.__createElement("rect",{x:A,y:I,width:g,height:t},!0);this.__closestGroupOrSvg().appendChild(C),this.__currentElement=C,this.__applyStyleToCurrentElement("stroke")}strokeEllipse(A,I,g,t,C,e,B,i){this.__ellipse(A,I,g,t,"stroke")}fillEllipse(A,I,g,t,C,e,B,i){this.__ellipse(A,I,g,t,"fill")}__ellipse(A,I,g,t,C){const e=this.__createElement("ellipse",{cx:A,cy:I,rx:g,ry:t},!0);this.__closestGroupOrSvg().appendChild(e),this.__currentElement=e,this.__applyStyleToCurrentElement(C)}__clearCanvas(){const A=this.__closestGroupOrSvg().getAttribute("transform"),I=this.__root.childNodes[2],g=I.childNodes;for(let A=g.length-1;A>=0;A--)g[A]&&I.removeChild(g[A]);this.__currentElement=I,this.__groupStack=[],A&&this.__addTransform(A)}clearRect(A,I,g,t){if(0===A&&0===I&&g===this.width&&t===this.height)return void this.__clearCanvas();const C=this.__closestGroupOrSvg(),e=this.__createElement("rect",{x:A,y:I,width:g,height:t,fill:"#FFFFFF"},!0);C.appendChild(e)}createLinearGradient(A,I,g,t){const C=this.__createElement("linearGradient",{id:w(this.__ids),x1:A+"px",x2:g+"px",y1:I+"px",y2:t+"px",gradientUnits:"userSpaceOnUse"});return this.__defs.appendChild(C),new N(C,this)}createRadialGradient(A,I,g,t,C,e){const B=this.__createElement("radialGradient",{id:w(this.__ids),cx:t+"px",cy:C+"px",r:e+"px",fx:A+"px",fy:I+"px",gradientUnits:"userSpaceOnUse"});return this.__defs.appendChild(B),new N(B,this)}__parseFont(){const A=/^\s*(?=(?:(?:[-a-z]+\s*){0,2}(italic|oblique))?)(?=(?:(?:[-a-z]+\s*){0,2}(small-caps))?)(?=(?:(?:[-a-z]+\s*){0,2}(bold(?:er)?|lighter|[1-9]00))?)(?:(?:normal|\1|\2|\3)\s*){0,3}((?:xx?-)?(?:small|large)|medium|smaller|larger|[.\d]+(?:%|in|[cem]m|ex|p[ctx]))(?:\s*\/\s*(normal|[.\d]+(?:%|in|[cem]m|ex|p[ctx])))?\s*([-,'"\sa-z0-9]+?)\s*$/i.exec(this.font),I={style:(null==A?void 0:A[1])||"normal",size:(null==A?void 0:A[4])||"10px",family:(null==A?void 0:A[6])||"sans-serif",weight:(null==A?void 0:A[3])||"normal",decoration:(null==A?void 0:A[2])||"normal",href:null};return"underline"===this.__fontUnderline&&(I.decoration="underline"),this.__fontHref&&(I.href=this.__fontHref),I}__wrapTextLink(A,I){if(A.href){const g=this.__createElement("a");return g.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",A.href),g.appendChild(I),g}return I}__applyText(A,I,g,t){const C=this.__parseFont(),e=this.__closestGroupOrSvg(),B=this.__createElement("text",{"font-family":C.family,"font-size":C.size,"font-style":C.style,"font-weight":C.weight,"text-decoration":C.decoration,x:I,y:g,"text-anchor":f(this.textAlign),"dominant-baseline":S(this.textBaseline)},!0);B.appendChild(this.__document.createTextNode(A)),this.__currentElement=B,this.__applyStyleToCurrentElement(t),e.appendChild(this.__wrapTextLink(C,B))}fillText(A,I,g){this.__applyText(A,I,g,"fill")}strokeText(A,I,g){this.__applyText(A,I,g,"stroke")}measureText(A){return this.__ctx.font=this.font,this.__ctx.measureText(A)}arc(A,I,g,t,C,e){if(t===C)return;(t%=2*Math.PI)===(C%=2*Math.PI)&&(C=(C+2*Math.PI-.001*(e?-1:1))%(2*Math.PI));const B=A+g*Math.cos(C),i=I+g*Math.sin(C),Q=A+g*Math.cos(t),o=I+g*Math.sin(t),E=e?0:1;let s=C-t;s<0&&(s+=2*Math.PI);const a=e?s>Math.PI?0:1:s>Math.PI?1:0;this.lineTo(Q,o),this.__addPathCommand(y("A {rx} {ry} {xAxisRotation} {largeArcFlag} {sweepFlag} {endX} {endY}",{rx:g,ry:g,xAxisRotation:0,largeArcFlag:a,sweepFlag:E,endX:B,endY:i})),this.__currentPosition={x:B,y:i}}clip(){const A=this.__closestGroupOrSvg(),I=this.__createElement("clipPath"),g=w(this.__ids),t=this.__createElement("g");this.__applyCurrentDefaultPath(),A.removeChild(this.__currentElement),I.setAttribute("id",g),I.appendChild(this.__currentElement),this.__defs.appendChild(I),A.setAttribute("clip-path",y("url(#{id})",{id:g})),A.appendChild(t),this.__currentElement=t}drawImage(A,...I){let g,t,C,e,B,i,Q=0,o=0;if(2===I.length)g=I[0],t=I[1],B=A.width,i=A.height,C=B,e=i;else if(4===I.length)g=I[0],t=I[1],C=I[2],e=I[3],B=A.width,i=A.height;else{if(8!==I.length)throw new Error("Invalid number of arguments passed to drawImage: "+(I.length+1));Q=I[0],o=I[1],B=I[2],i=I[3],g=I[4],t=I[5],C=I[6],e=I[7]}const E=this.__closestGroupOrSvg(),s=`translate(${g}, ${t})`;if(A instanceof R){const I=A.getSvg().cloneNode(!0);if(I.childNodes&&I.childNodes.length>1){const A=I.childNodes[0];for(;A.childNodes.length;){const I=A.childNodes[0],g=I.getAttribute("id");g&&(this.__ids[g]=g),this.__defs.appendChild(I)}const g=I.childNodes[1];if(g){const A=g.getAttribute("transform");g.setAttribute("transform",A?A+" "+s:s),E.appendChild(g)}}}else{const I=A,g=this.__createElement("image");g.setAttribute("width",String(C)),g.setAttribute("height",String(e)),g.setAttribute("preserveAspectRatio","none");let t=I;if(Q||o||B!==I.width||i!==I.height){const A=this.__document.createElement("canvas");A.width=C,A.height=e;A.getContext("2d").drawImage(I,Q,o,B,i,0,0,C,e),t=A}g.setAttribute("transform",s),"toDataURL"in t?g.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",t.toDataURL()):g.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",t.getAttribute("src")||""),E.appendChild(g)}}createPattern(A,I){const g=this.__createElement("pattern"),t=w(this.__ids);if(g.setAttribute("id",t),g.setAttribute("width",String(A.width)),g.setAttribute("height",String(A.height)),A instanceof R)g.appendChild(A.__root.childNodes[1]),this.__defs.appendChild(g);else{const I=this.__createElement("image");I.setAttribute("width",String(A.width)),I.setAttribute("height",String(A.height)),"toDataURL"in A?I.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",A.toDataURL()):I.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",A.getAttribute("src")||""),g.appendChild(I),this.__defs.appendChild(g)}return new m(g,this)}setLineDash(A){A&&A.length>0?this.lineDash=A.join(","):this.lineDash=null}getLineDash(){return this.lineDash?this.lineDash.split(",").map(Number):[]}drawFocusIfNeeded(){}createImageData(){return new ImageData(1,1)}getImageData(){return new ImageData(1,1)}putImageData(){}setTransform(){}}const p=new class{createCanvas(A,I){const g=document.createElement("canvas");g.width=A,g.height=I;const t=g.getContext("2d");return{canvas:g,ctx:t}}get devicePixelRatio(){return"undefined"!=typeof window&&window.devicePixelRatio||1}},U={background:"--loom-background",foreground:"--loom-foreground",primary:"--loom-primary",secondary:"--loom-secondary",accent:"--loom-accent",muted:"--loom-muted",mutedForeground:"--loom-muted-foreground",border:"--loom-border-color",shellBg:"--loom-shell-bg",navbarBg:"--loom-navbar-bg",navbarHeight:"--loom-navbar-height",navbarPadding:"--loom-navbar-padding",font:"--loom-font",fontSmall:"--loom-font-small",textColor:"--loom-text-color",textMuted:"--loom-text-muted",borderStyle:"--loom-border",borderRadius:"--loom-border-radius",buttonBg:"--loom-button-bg",buttonHover:"--loom-button-hover",buttonBorder:"--loom-button-border",buttonSize:"--loom-button-size",inputBg:"--loom-input-bg",inputBorder:"--loom-input-border",inputFocusBorder:"--loom-input-focus-border",inputWidth:"--loom-input-width",inputHeight:"--loom-input-height",iconColor:"--loom-icon-color",iconSize:"--loom-icon-size",gap:"--loom-gap"};function M(A){const I=[];for(const[g,t]of Object.entries(A)){if(void 0===t)continue;const A=U[g];A&&I.push(` ${A}: ${t};`)}return`:host {\n${I.join("\n")}\n}`}function L(A){var I,g;const t={palette:{primary:"rgb(0,0,150)",secondary:"rgb(0,0,150)",accent:"#4A90D9",background:"#ffffff",foreground:"#333333",muted:"rgb(150, 150, 150)"},fontFamily:"sans-serif",fontSize:10,nucleotideColors:{A:"#00C000",C:"#0000FF",G:"#FFB300",T:"#FF0000",N:"#808080"}};return A?{palette:{...t.palette,...A.palette},fontFamily:null!==(I=A.fontFamily)&&void 0!==I?I:t.fontFamily,fontSize:null!==(g=A.fontSize)&&void 0!==g?g:t.fontSize,nucleotideColors:{...t.nucleotideColors,...A.nucleotideColors},annotation:A.annotation,wig:A.wig,ruler:A.ruler,sequence:A.sequence,interaction:A.interaction,peakOverlay:A.peakOverlay,ideogram:A.ideogram}:t}function J(A,I){const g={background:A.palette.background,displayMode:"EXPANDED",featureHeight:14,margin:10,expandedRowHeight:30,squishedRowHeight:15,arrowSpacing:30,color:A.palette.primary,altColor:A.palette.secondary,labelField:"name",font:`bold ${A.fontSize}px ${A.fontFamily}`,drawLabels:!0,intronColor:A.palette.muted,labelColor:A.palette.foreground,maxRows:1e3},t=A.annotation?{...g,...A.annotation}:g;return I?{...t,...I}:t}function K(A,I){const g={height:50,graphType:"bar",windowFunction:"max",dataRange:{min:0,max:100},autoscale:!0,color:A.palette.primary,altColor:A.palette.secondary,flipAxis:!1,logScale:!1,baselineColor:A.palette.muted,overflowColor:"rgb(255, 32, 255)",pointSize:3,background:A.palette.background,nucleotideColors:A.nucleotideColors,showDataRange:!0,labelColor:A.palette.foreground,labelFont:`bold ${Math.max(9,A.fontSize-1)}px ${A.fontFamily}`},t=A.wig?{...g,...A.wig}:g;return I?{...t,...I}:t}function Y(A,I){const g={height:30,font:`bold ${A.fontSize}px ${A.fontFamily}`,tickColor:A.palette.muted,labelColor:A.palette.foreground,baselineColor:A.palette.muted,background:A.palette.background},t=A.ruler?{...g,...A.ruler}:g;return I?{...t,...I}:t}function v(A,I){const g={sequenceType:"dna",reversed:!1,frameTranslate:!1,background:A.palette.background,nucleotideColors:{...A.nucleotideColors},nonDnaColor:"rgb(0, 0, 150)",defaultHeight:25,translatedHeight:115,sequenceHeight:15,frameHeight:25,frameBorder:5,frameColor1:"rgb(160,160,160)",frameColor2:"rgb(224,224,224)",stopCodonColor:"rgb(255, 0, 0)",startCodonColor:"rgb(0, 153, 0)",useFillText:!1,frameLabelColor:"#000000",frameFont:`bold ${A.fontSize}px ${A.fontFamily}`,codonBorderRadius:0},t=A.sequence?{...g,...A.sequence}:g;return I?{...t,...I}:t}function b(A,I){const g={height:250,arcOrientation:"UP",displayMode:"nested",showBlocks:!0,blockHeight:3,thickness:1,color:"rgb(180,25,137)",alpha:.02,logScale:!0,background:A.palette.background,font:`${Math.max(8,A.fontSize-2)}px ${A.fontFamily}`,useScore:!1,transparency:1},t=A.interaction?{...g,...A.interaction}:g;return I?{...t,...I}:t}function x(A,I){var g;const t={background:"transparent",display:["shaded"],color:_(null!==(g=A.palette.accent)&&void 0!==g?g:A.palette.secondary,.15),barHeight:3,summitColor:"#ff0000",summitSize:6,visibilityWindow:75e3},C=A.peakOverlay?{...t,...A.peakOverlay}:t;return I?{...C,...I}:C}function H(A,I){const g={height:50,alpha:.5,autoscale:!0,dataRange:{min:0,max:100},flipAxis:!1,logScale:!1,background:A.palette.background,labelColor:A.palette.foreground};return I?{...g,...I}:g}function q(A,I){const g={height:80,activeModes:["meanSd"],lineColor:A.palette.primary,bandColor:A.palette.primary,bandAlpha:.2,badgeBackground:A.palette.accent,badgeColor:A.palette.background,autoscale:!0,dataRange:{min:0,max:100},flipAxis:!1,logScale:!1,normalizationMode:"none",normalizationPercentile:95,normalizationCenterPercentileLow:25,normalizationCenterPercentileHigh:75,labelColor:A.palette.foreground,labelFont:`bold ${Math.max(9,A.fontSize-1)}px ${A.fontFamily}`,showDataRange:!0,background:A.palette.background},t=A.wigGroup?{...g,...A.wigGroup}:g;return I?{...t,...I}:t}function T(A,I){const g={height:16,showBandNames:!1,centromereColor:"rgb(150, 10, 10)",bandLightColor:"rgb(230, 230, 230)",bandDarkColor:A.palette.foreground,borderColor:A.palette.muted,viewportIndicatorColor:"red",font:`${A.fontSize}px ${A.fontFamily}`,labelColor:A.palette.foreground,altLabelColor:A.palette.background,background:A.palette.background},t=A.ideogram?{...g,...A.ideogram}:g;return I?{...t,...I}:t}function _(A,I){const g=A.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);if(g)return`rgba(${g[1]}, ${g[2]}, ${g[3]}, ${I})`;const t=A.match(/^#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/);if(t){return`rgba(${parseInt(t[1],16)}, ${parseInt(t[2],16)}, ${parseInt(t[3],16)}, ${I})`}return`rgba(255, 165, 0, ${I})`}function W(A){const I=getComputedStyle(A),g=A=>I.getPropertyValue(A).trim()||void 0;return{primary:g(U.primary),secondary:g(U.secondary),accent:g(U.accent),background:g(U.background),foreground:g(U.foreground),muted:g(U.muted)}}const P={debug(...A){},info(...A){},warn(...A){console.warn("[loom]",...A)},error(...A){console.error("[loom]",...A)}};class O{constructor(){this.listeners=new Map}on(A,I){let g=this.listeners.get(A);return g||(g=new Set,this.listeners.set(A,g)),g.add(I),()=>{g.delete(I)}}off(A,I){var g;I?null===(g=this.listeners.get(A))||void 0===g||g.delete(I):this.listeners.delete(A)}emit(A,I){const g=this.listeners.get(A);if(g)for(const A of g)A(I)}removeAllListeners(){this.listeners.clear()}}function V(A){const I=A.chr,g=I.toUpperCase(),t=I.toLowerCase(),C=I.charAt(0).toUpperCase()+I.slice(1);I!==g&&(A._uppercase=g),I!==t&&(A._lowercase=t),I!==C&&(A._cap=C),A._chrprefix_=I.startsWith("chr")?I.substring(3):"chr"+I}function Z(A){const I=A.split("|").filter(A=>A.length>0);return I[I.length-1]}function X(A){return A.startsWith("hg")||A.startsWith("GRCh")||"1kg_ref"===A||"b37"===A}function z(A){return A.startsWith("mm")||A.startsWith("GRCm")||A.startsWith("rheMac")}class j{constructor(A,I){this.cache=new Map,this.headings=void 0,this.buildAliases(A,null!=I?I:"")}getChromosomeName(A){var I;return null===(I=this.cache.get(A))||void 0===I?void 0:I.chr}getAliasRecord(A){return this.cache.get(A)}async search(A){return this.cache.get(A)}async preload(A){}buildAliases(A,I){const g=[];for(const t of A){if(this.cache.has(t))continue;const A={chr:t};if(g.push(A),t.startsWith("gi|")){const I=Z(t);A["ncbi-gi-versioned"]=I;const g=I.lastIndexOf(".");g>0&&(A["ncbi-gi"]=I.substring(0,g))}else"chrM"===t?A.ncbi="MT":"MT"===t?A.ucsc="chrM":t.toLowerCase().startsWith("chr")&&Number.isInteger(Number(t.substring(3)))?A.ncbi=t.substring(3):Number.isInteger(Number(t))&&(A.ucsc="chr"+t),X(I)?this.addHumanSexAliases(t,A):z(I)&&this.addMouseSexAliases(t,A)}for(const A of g){V(A);for(const I of Object.values(A))this.cache.set(I,A)}}addHumanSexAliases(A,I){switch(A){case"23":I.ucsc="chrX",I.assembly="X";break;case"24":I.ucsc="chrY",I.assembly="Y";break;case"chrX":I.ncbi="23",I.assembly="X";break;case"chrY":I.ncbi="24",I.assembly="Y";break;case"X":I.ucsc="chrX",I.ncbi="23";break;case"Y":I.ucsc="chrY",I.ncbi="24"}}addMouseSexAliases(A,I){switch(A){case"21":I.ucsc="chrX",I.assembly="X";break;case"22":I.ucsc="chrY",I.assembly="Y";break;case"chrX":I.ncbi="21",I.assembly="X";break;case"chrY":I.ncbi="22",I.assembly="Y";break;case"X":I.ucsc="chrX",I.ncbi="21";break;case"Y":I.ucsc="chrY",I.ncbi="22"}}}const $=BigInt(32);"getBigInt64"in DataView||(DataView.prototype.getBigInt64=function(A,I){return function(A,I,g){const t=Number(!!g),C=Number(!g);return BigInt(A.getInt32(I,g)*C+A.getInt32(I+4,g)*t)<<$|BigInt(A.getUint32(I,g)*t+A.getUint32(I+4,g)*C)}(this,A,I)}),"getBigUint64"in DataView||(DataView.prototype.getBigUint64=function(A,I){return function(A,I,g){const t=A.getUint32(I,g),C=A.getUint32(I+4,g),e=Number(!!g),B=Number(!g);return BigInt(t*B+C*e)<<$|BigInt(t*e+C*B)}(this,A,I)});class AA{constructor(A,I={}){this.url=A,this.baseHeaders=I.headers??{},this.baseOverrides=I.overrides??{},this.fetchImplementation=I.fetch??((A,I)=>globalThis.fetch(A,I))}async fetch(A,I){const g=I=>new Error(`${function(A){return("object"==typeof A&&null!==A&&"message"in A&&"string"==typeof A.message?A.message:`${A}`).replace(/\.$/,"")}(I)} fetching ${A}`,{cause:I});let t;try{t=await this.fetchImplementation(A,I)}catch(C){if(!`${C}`.includes("Failed to fetch"))throw g(C);console.warn(`generic-filehandle: refetching ${A} to attempt to work around chrome CORS header caching bug`);try{t=await this.fetchImplementation(A,{...I,cache:"reload"})}catch(A){throw g(A)}}return t}async read(A,I,g={}){if(0===A)return new Uint8Array(0);if(Number.isNaN(A)||Number.isNaN(I))throw new TypeError(`read() called with NaN length or position (length=${A}, position=${I}). The index file may be corrupt.`);const{headers:t={},signal:C,overrides:e={}}=g;t.range=`bytes=${I}-${I+A-1}`;const B=await this.fetch(this.url,{...this.baseOverrides,...e,headers:{...this.baseHeaders,...t},method:"GET",redirect:"follow",mode:"cors",signal:C});if(!B.ok)throw new Error(`HTTP ${B.status} fetching ${this.url}`);if(200===B.status&&0===I||206===B.status){const I=B.headers.get("content-range"),g=/\/(\d+)$/.exec(I??"");g?.[1]&&(this._stat={size:parseInt(g[1],10)});const t=B.bytes?await B.bytes():new Uint8Array(await B.arrayBuffer());return t.byteLength<=A?t:t.subarray(0,A)}throw new Error(200===B.status?`${this.url} fetch returned status 200, expected 206`:`HTTP ${B.status} fetching ${this.url}`)}async readFile(A={}){const I="string"==typeof A?A:A.encoding,g="string"==typeof A?{}:A,{headers:t={},signal:C,overrides:e={}}=g,B=await this.fetch(this.url,{...this.baseOverrides,...e,headers:{...this.baseHeaders,...t},method:"GET",redirect:"follow",mode:"cors",signal:C});if(!B.ok)throw new Error(`HTTP ${B.status} fetching ${this.url}`);if("utf8"===I)return B.text();if(I)throw new Error(`unsupported encoding: ${I}`);return B.bytes?B.bytes():new Uint8Array(await B.arrayBuffer())}async stat(){if(!this._stat&&(await this.read(10,0),!this._stat))throw new Error(`unable to determine size of file at ${this.url}`);return this._stat}close(){return Promise.resolve()}}class IA{readFile(){throw new Error("unimplemented")}read(){throw new Error("unimplemented")}close(){throw new Error("unimplemented")}}class gA{}class tA{constructor(){this.signals=new Set,this.abortController=new AbortController}addSignal(A=new gA){if(this.signal.aborted)throw new Error("cannot add a signal, already aborted!");this.signals.add(A),A.aborted?this.handleAborted(A):"function"==typeof A.addEventListener&&A.addEventListener("abort",()=>{this.handleAborted(A)})}handleAborted(A){this.signals.delete(A),0===this.signals.size&&this.abortController.abort()}get signal(){return this.abortController.signal}abort(){this.abortController.abort()}}class CA{constructor(){this.callbacks=new Set}addCallback(A=()=>{}){this.callbacks.add(A),this.currentMessage&&A(this.currentMessage)}callback(A){this.currentMessage=A;for(const I of this.callbacks)I(A)}}class eA{constructor({fill:A,cache:I}){if("function"!=typeof A)throw new TypeError("must pass a fill function");if("object"!=typeof I)throw new TypeError("must pass a cache object");if("function"!=typeof I.get||"function"!=typeof I.set||"function"!=typeof I.delete)throw new TypeError("cache must implement get(key), set(key, val), and and delete(key)");this.cache=I,this.fillCallback=A}static isAbortException(A){return"AbortError"===A.name||"ERR_ABORTED"===A.code||"AbortError: aborted"===A.message||"Error: aborted"===A.message}evict(A,I){this.cache.get(A)===I&&this.cache.delete(A)}fill(A,I,g,t){const C=new tA,e=new CA;e.addCallback(t);const B={aborter:C,promise:this.fillCallback(I,C.signal,A=>{e.callback(A)}),settled:!1,statusReporter:e,get aborted(){return this.aborter.signal.aborted}};B.aborter.addSignal(g),B.aborter.signal.addEventListener("abort",()=>{B.settled||this.evict(A,B)}),B.promise.then(()=>{B.settled=!0},()=>{B.settled=!0,this.evict(A,B)}).catch(A=>{throw console.error(A),A}),this.cache.set(A,B)}static checkSinglePromise(A,I){function g(){if(I?.aborted)throw Object.assign(new Error("aborted"),{code:"ERR_ABORTED"})}return A.then(A=>(g(),A),A=>{throw g(),A})}has(A){return this.cache.has(A)}get(A,I,g,t){if(!g&&I instanceof AbortSignal)throw new TypeError("second get argument appears to be an AbortSignal, perhaps you meant to pass `null` for the fill data?");const C=this.cache.get(A);return C?C.aborted&&!C.settled?(this.evict(A,C),this.get(A,I,g,t)):C.settled?C.promise:(C.aborter.addSignal(g),C.statusReporter.addCallback(t),eA.checkSinglePromise(C.promise,g)):(this.fill(A,I,g,t),eA.checkSinglePromise(this.cache.get(A).promise,g))}delete(A){const I=this.cache.get(A);I&&(I.settled||I.aborter.abort(),this.cache.delete(A))}clear(){const A=this.cache.keys();let I=0;for(let g=A.next();!g.done;g=A.next())this.delete(g.value),I+=1;return I}}var BA,iA,QA,oA,EA,sA,aA,rA,nA,hA,cA,lA,dA,DA,uA,yA=function(A,I,g,t,C){if("m"===t)throw new TypeError("Private method is not writable");if("a"===t&&!C)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof I?A!==I||!C:!I.has(A))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===t?C.call(A,g):C?C.value=g:I.set(A,g),g},wA=function(A,I,g,t){if("a"===g&&!t)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof I?A!==I||!t:!I.has(A))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===g?t:"a"===g?t.call(A):t?t.value:I.get(A)};class fA extends Map{constructor(A={}){if(super(),BA.add(this),iA.set(this,0),QA.set(this,new Map),oA.set(this,new Map),EA.set(this,void 0),sA.set(this,void 0),aA.set(this,void 0),!(A.maxSize&&A.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");if("number"==typeof A.maxAge&&0===A.maxAge)throw new TypeError("`maxAge` must be a number greater than 0");yA(this,EA,A.maxSize,"f"),yA(this,sA,A.maxAge||Number.POSITIVE_INFINITY,"f"),yA(this,aA,A.onEviction,"f")}get __oldCache(){return wA(this,oA,"f")}get(A){if(wA(this,QA,"f").has(A)){const I=wA(this,QA,"f").get(A);return wA(this,BA,"m",cA).call(this,A,I)}if(wA(this,oA,"f").has(A)){const I=wA(this,oA,"f").get(A);if(!wA(this,BA,"m",nA).call(this,A,I))return wA(this,BA,"m",DA).call(this,A,I),I.value}}set(A,I,{maxAge:g=wA(this,sA,"f")}={}){const t="number"==typeof g&&g!==Number.POSITIVE_INFINITY?Date.now()+g:void 0;return wA(this,QA,"f").has(A)?wA(this,QA,"f").set(A,{value:I,expiry:t}):wA(this,BA,"m",dA).call(this,A,{value:I,expiry:t}),this}has(A){return wA(this,QA,"f").has(A)?!wA(this,BA,"m",nA).call(this,A,wA(this,QA,"f").get(A)):!!wA(this,oA,"f").has(A)&&!wA(this,BA,"m",nA).call(this,A,wA(this,oA,"f").get(A))}peek(A){return wA(this,QA,"f").has(A)?wA(this,BA,"m",lA).call(this,A,wA(this,QA,"f")):wA(this,oA,"f").has(A)?wA(this,BA,"m",lA).call(this,A,wA(this,oA,"f")):void 0}expiresIn(A){const I=wA(this,QA,"f").get(A)??wA(this,oA,"f").get(A);if(I)return I.expiry?I.expiry-Date.now():Number.POSITIVE_INFINITY}delete(A){var I;const g=wA(this,QA,"f").delete(A);return g&&yA(this,iA,(I=wA(this,iA,"f"),--I),"f"),wA(this,oA,"f").delete(A)||g}clear(){wA(this,QA,"f").clear(),wA(this,oA,"f").clear(),yA(this,iA,0,"f")}resize(A){if(!(A&&A>0))throw new TypeError("`maxSize` must be a number greater than 0");const I=[...wA(this,BA,"m",uA).call(this)],g=I.length-A;g<0?(yA(this,QA,new Map(I),"f"),yA(this,oA,new Map,"f"),yA(this,iA,I.length,"f")):(g>0&&wA(this,BA,"m",rA).call(this,I.slice(0,g)),yA(this,oA,new Map(I.slice(g)),"f"),yA(this,QA,new Map,"f"),yA(this,iA,0,"f")),yA(this,EA,A,"f")}evict(A=1){const I=A;if(!I||I<=0)return;const g=[...wA(this,BA,"m",uA).call(this)],t=Math.trunc(Math.min(I,Math.max(g.length-1,0)));t<=0||(wA(this,BA,"m",rA).call(this,g.slice(0,t)),yA(this,oA,new Map(g.slice(t)),"f"),yA(this,QA,new Map,"f"),yA(this,iA,0,"f"))}*keys(){for(const[A]of this)yield A}*values(){for(const[,A]of this)yield A}*[(iA=new WeakMap,QA=new WeakMap,oA=new WeakMap,EA=new WeakMap,sA=new WeakMap,aA=new WeakMap,BA=new WeakSet,rA=function(A){if("function"==typeof wA(this,aA,"f"))for(const[I,g]of A)wA(this,aA,"f").call(this,I,g.value)},nA=function(A,I){return"number"==typeof I.expiry&&I.expiry<=Date.now()&&("function"==typeof wA(this,aA,"f")&&wA(this,aA,"f").call(this,A,I.value),this.delete(A))},hA=function(A,I){if(!wA(this,BA,"m",nA).call(this,A,I))return I.value},cA=function(A,I){return I.expiry?wA(this,BA,"m",hA).call(this,A,I):I.value},lA=function(A,I){const g=I.get(A);return wA(this,BA,"m",cA).call(this,A,g)},dA=function(A,I){var g;wA(this,QA,"f").set(A,I),yA(this,iA,(g=wA(this,iA,"f"),++g),"f"),wA(this,iA,"f")>=wA(this,EA,"f")&&(yA(this,iA,0,"f"),wA(this,BA,"m",rA).call(this,wA(this,oA,"f")),yA(this,oA,wA(this,QA,"f"),"f"),yA(this,QA,new Map,"f"))},DA=function(A,I){wA(this,oA,"f").delete(A),wA(this,BA,"m",dA).call(this,A,I)},uA=function*(){for(const A of wA(this,oA,"f")){const[I,g]=A;if(!wA(this,QA,"f").has(I)){wA(this,BA,"m",nA).call(this,I,g)||(yield A)}}for(const A of wA(this,QA,"f")){const[I,g]=A;wA(this,BA,"m",nA).call(this,I,g)||(yield A)}},Symbol.iterator)](){for(const A of wA(this,QA,"f")){const[I,g]=A;wA(this,BA,"m",nA).call(this,I,g)||(yield[I,g.value])}for(const A of wA(this,oA,"f")){const[I,g]=A;if(!wA(this,QA,"f").has(I)){wA(this,BA,"m",nA).call(this,I,g)||(yield[I,g.value])}}}*entriesDescending(){let A=[...wA(this,QA,"f")];for(let I=A.length-1;I>=0;--I){const g=A[I],[t,C]=g;wA(this,BA,"m",nA).call(this,t,C)||(yield[t,C.value])}A=[...wA(this,oA,"f")];for(let I=A.length-1;I>=0;--I){const g=A[I],[t,C]=g;if(!wA(this,QA,"f").has(t)){wA(this,BA,"m",nA).call(this,t,C)||(yield[t,C.value])}}}*entriesAscending(){for(const[A,I]of wA(this,BA,"m",uA).call(this))yield[A,I.value]}get size(){if(!wA(this,iA,"f"))return wA(this,oA,"f").size;let A=0;for(const I of wA(this,oA,"f").keys())wA(this,QA,"f").has(I)||A++;return Math.min(wA(this,iA,"f")+A,wA(this,EA,"f"))}get maxSize(){return wA(this,EA,"f")}get maxAge(){return wA(this,sA,"f")}entries(){return this.entriesAscending()}forEach(A,I=this){for(const[g,t]of this.entriesAscending())A.call(I,t,g,this)}get[Symbol.toStringTag](){return"QuickLRU"}toString(){return`QuickLRU(${this.size}/${this.maxSize})`}[Symbol.for("nodejs.util.inspect.custom")](){return this.toString()}}function SA(A){const I=[...A].sort((A,I)=>A.min!==I.min?A.min-I.min:A.max-I.max),g=[];let t=I[0];for(let A=1;A<I.length;A++){const C=I[A];C.min>t.max+1?(g.push(t),t=C):C.max>t.max&&(t={min:t.min,max:C.max})}return g.push(t),g}var kA={d:(A,I)=>{for(var g in I)kA.o(I,g)&&!kA.o(A,g)&&Object.defineProperty(A,g,{enumerable:!0,get:I[g]})},o:(A,I)=>Object.prototype.hasOwnProperty.call(A,I),r:A=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(A,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(A,"__esModule",{value:!0})}},GA={};kA.r(GA),kA.d(GA,{__wbg_Error_83742b46f01ce22d:()=>LA,__wbg_set_wasm:()=>zA,decompress_and_parse_bigwig:()=>FA,decompress_and_parse_summary:()=>NA,inflate_raw:()=>mA,inflate_raw_batch:()=>RA,inflate_raw_unknown_size:()=>pA,parse_bigwig_block:()=>UA,parse_summary_block:()=>MA});function FA(A,I,g,t,C,e){try{const E=ZA.__wbindgen_add_to_stack_pointer(-16),s=_A(A,ZA.__wbindgen_export),a=XA,r=TA(I,ZA.__wbindgen_export),n=XA,h=TA(g,ZA.__wbindgen_export),c=XA;ZA.decompress_and_parse_bigwig(E,s,a,r,n,h,c,t,C,e);var B=YA().getInt32(E+0,!0),i=YA().getInt32(E+4,!0),Q=YA().getInt32(E+8,!0);if(YA().getInt32(E+12,!0))throw WA(Q);var o=JA(B,i).slice();return ZA.__wbindgen_export2(B,1*i,1),o}finally{ZA.__wbindgen_add_to_stack_pointer(16)}}function NA(A,I,g,t,C,e,B){try{const s=ZA.__wbindgen_add_to_stack_pointer(-16),a=_A(A,ZA.__wbindgen_export),r=XA,n=TA(I,ZA.__wbindgen_export),h=XA,c=TA(g,ZA.__wbindgen_export),l=XA;ZA.decompress_and_parse_summary(s,a,r,n,h,c,l,t,C,e,B);var i=YA().getInt32(s+0,!0),Q=YA().getInt32(s+4,!0),o=YA().getInt32(s+8,!0);if(YA().getInt32(s+12,!0))throw WA(o);var E=JA(i,Q).slice();return ZA.__wbindgen_export2(i,1*Q,1),E}finally{ZA.__wbindgen_add_to_stack_pointer(16)}}function mA(A,I){try{const B=ZA.__wbindgen_add_to_stack_pointer(-16),i=_A(A,ZA.__wbindgen_export),Q=XA;ZA.inflate_raw(B,i,Q,I);var g=YA().getInt32(B+0,!0),t=YA().getInt32(B+4,!0),C=YA().getInt32(B+8,!0);if(YA().getInt32(B+12,!0))throw WA(C);var e=JA(g,t).slice();return ZA.__wbindgen_export2(g,1*t,1),e}finally{ZA.__wbindgen_add_to_stack_pointer(16)}}function RA(A,I,g,t){try{const Q=ZA.__wbindgen_add_to_stack_pointer(-16),o=_A(A,ZA.__wbindgen_export),E=XA,s=TA(I,ZA.__wbindgen_export),a=XA,r=TA(g,ZA.__wbindgen_export),n=XA;ZA.inflate_raw_batch(Q,o,E,s,a,r,n,t);var C=YA().getInt32(Q+0,!0),e=YA().getInt32(Q+4,!0),B=YA().getInt32(Q+8,!0);if(YA().getInt32(Q+12,!0))throw WA(B);var i=JA(C,e).slice();return ZA.__wbindgen_export2(C,1*e,1),i}finally{ZA.__wbindgen_add_to_stack_pointer(16)}}function pA(A){try{const e=ZA.__wbindgen_add_to_stack_pointer(-16),B=_A(A,ZA.__wbindgen_export),i=XA;ZA.inflate_raw_unknown_size(e,B,i);var I=YA().getInt32(e+0,!0),g=YA().getInt32(e+4,!0),t=YA().getInt32(e+8,!0);if(YA().getInt32(e+12,!0))throw WA(t);var C=JA(I,g).slice();return ZA.__wbindgen_export2(I,1*g,1),C}finally{ZA.__wbindgen_add_to_stack_pointer(16)}}function UA(A,I,g){try{const B=ZA.__wbindgen_add_to_stack_pointer(-16),i=_A(A,ZA.__wbindgen_export),Q=XA;ZA.parse_bigwig_block(B,i,Q,I,g);var t=YA().getInt32(B+0,!0),C=YA().getInt32(B+4,!0),e=JA(t,C).slice();return ZA.__wbindgen_export2(t,1*C,1),e}finally{ZA.__wbindgen_add_to_stack_pointer(16)}}function MA(A,I,g,t){try{const i=ZA.__wbindgen_add_to_stack_pointer(-16),Q=_A(A,ZA.__wbindgen_export),o=XA;ZA.parse_summary_block(i,Q,o,I,g,t);var C=YA().getInt32(i+0,!0),e=YA().getInt32(i+4,!0),B=JA(C,e).slice();return ZA.__wbindgen_export2(C,1*e,1),B}finally{ZA.__wbindgen_add_to_stack_pointer(16)}}function LA(A,I){var g;return function(A){qA===HA.length&&HA.push(HA.length+1);const I=qA;return qA=HA[I],HA[I]=A,I}(Error((g=A,function(A,I){return VA+=I,VA>=OA&&(PA=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}),PA.decode(),VA=I),PA.decode(xA().subarray(A,A+I))}(g>>>=0,I))))}function JA(A,I){return A>>>=0,xA().subarray(A/1,A/1+I)}let KA=null;function YA(){return(null===KA||!0===KA.buffer.detached||void 0===KA.buffer.detached&&KA.buffer!==ZA.memory.buffer)&&(KA=new DataView(ZA.memory.buffer)),KA}let vA=null;let bA=null;function xA(){return null!==bA&&0!==bA.byteLength||(bA=new Uint8Array(ZA.memory.buffer)),bA}let HA=new Array(1024).fill(void 0);HA.push(void 0,null,!0,!1);let qA=HA.length;function TA(A,I){const g=I(4*A.length,4)>>>0;return(null!==vA&&0!==vA.byteLength||(vA=new Uint32Array(ZA.memory.buffer)),vA).set(A,g/4),XA=A.length,g}function _A(A,I){const g=I(1*A.length,1)>>>0;return xA().set(A,g/1),XA=A.length,g}function WA(A){const I=function(A){return HA[A]}(A);return function(A){A<1028||(HA[A]=qA,qA=A)}(A),I}let PA=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});PA.decode();const OA=2146435072;let VA=0;let ZA,XA=0;function zA(A){ZA=A}let jA=null,$A=null;async function AI(){return jA||($A||($A=(async()=>{const A=await fetch("data:application/wasm;base64,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IGlzIMASIGJ1dCB0aGUgaW5kZXggaXMgwAAScmFuZ2Ugc3RhcnQgaW5kZXggwCIgb3V0IG9mIHJhbmdlIGZvciBzbGljZSBvZiBsZW5ndGggwAAQcmFuZ2UgZW5kIGluZGV4IMAiIG91dCBvZiByYW5nZSBmb3Igc2xpY2Ugb2YgbGVuZ3RoIMAAFmRlY29tcHJlc3Npb24gZmFpbGVkOiDAAMACOiDAAC9ydXN0Yy80YTRlZjQ5M2UzYTE0ODhjNmUzMjE1NzAyMzgwODRiMzg5NDhmNmRiL2xpYnJhcnkvYWxsb2Mvc3JjL2ZtdC5ycwAvcnVzdGMvNGE0ZWY0OTNlM2ExNDg4YzZlMzIxNTcwMjM4MDg0YjM4OTQ4ZjZkYi9saWJyYXJ5L2NvcmUvc3JjL2ZtdC9udW0ucnMAL2hvbWUvY2RpZXNoLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvd2FzbS1iaW5kZ2VuLTAuMi4xMTQvc3JjL2V4dGVybnJlZi5ycwAvcnVzdGMvNGE0ZWY0OTNlM2ExNDg4YzZlMzIxNTcwMjM4MDg0YjM4OTQ4ZjZkYi9saWJyYXJ5L2FsbG9jL3NyYy9yYXdfdmVjL21vZC5ycwAvcnVzdC9kZXBzL2RsbWFsbG9jLTAuMi4xMS9zcmMvZGxtYWxsb2MucnMAL2hvbWUvY2RpZXNoLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvbGliZGVmbGF0ZXItMS4yNS4yL3NyYy9saWIucnMAALwCEAAKAAAAbAAAABkAAAC8AhAACgAAAGwAAAAnAAAAvAIQAAoAAABsAAAAOQAAALwCEAAKAAAAbAAAAEsAAAC8AhAACgAAAGAAAAAZAAAAvAIQAAoAAABgAAAAJwAAALwCEAAKAAAAYAAAADkAAAC8AhAACgAAAGAAAABLAAAAvAIQAAoAAABkAAAAGQAAALwCEAAKAAAAZAAAACcAAAC8AhAACgAAAGQAAAA5AAAAvAIQAAoAAABkAAAASwAAALwCEAAKAAAAQAAAAAsAAAC8AhAACgAAAFgAAAALAAAAvAIQAAoAAABJAAAAEwAAALwCEAAKAAAAUwAAACsAAAC8AhAACgAAAE0AAAAPAAAAvAIQAAoAAABKAAAAHAAAALwCEAAKAAAAOQAAAB0AAABkZWNvbXByZXNzaW9uIG91dHB1dCB0b28gbGFyZ2UAALwCEAAKAAAAJgEAABMAAAC8AhAACgAAAC0BAAAdAAAAvAIQAAoAAAAnAQAAHAAAALwCEAAKAAAAoAEAABMAAAC8AhAACgAAAKcBAAAdAAAAvAIQAAoAAAChAQAAHAAAAEJhZERhdGFJbnN1ZmZpY2llbnRTcGFjZYMBEABnAAAAfwAAABEAAACDARAAZwAAAIwAAAARAAAAbGliZGVmbGF0ZV9kZWZsYXRlX2RlY29tcHJlc3MgcmV0dXJuZWQgYW4gdW5rbm93biBlcnJvciB0eXBlOiB0aGlzIGlzIGFuIGludGVybmFsIGJ1ZyB0aGF0ICoqbXVzdCoqIGJlIGZpeGVkZwIQAF8AAAANAQAAFQAAAGxpYmRlZmxhdGVfYWxsb2NfZGVjb21wcmVzc29yIHJldHVybmVkIE5VTEw6IG91dCBvZiBtZW1vcnkAAGcCEABfAAAAnQAAABEAAAAMAAAAAgAAAAMAAAAAAAAAAAAAAAAAAAAQERIACAcJBgoFCwQMAw0CDgEPAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAARAAAAEgAAAAAAAAABAAAAAgAAAAMAAAAEAAEABQABAAcAAgAJAAIADQADABEAAwAZAAQAIQAEADEABQBBAAUAYQAGAIEABgDBAAcAAQEHAIEBCAABAggAAQMJAAEECQABBgoAAQgKAAEMCwABEAsAARgMAAEgDAABMA0AAUANAAFgDQABYA0AAWAAAACAAAABgAAAAoAAAAOAAAAEgAAABYAAAAaAAAAHgAAACIAAAAmAAAAKgAAAC4AAAAyAAAANgAAADoAAAA+AAAAQgAAAEYAAABKAAAATgAAAFIAAABWAAAAWgAAAF4AAABiAAAAZgAAAGoAAABuAAAAcgAAAHYAAAB6AAAAfgAAAIIAAACGAAAAigAAAI4AAACSAAAAlgAAAJoAAACeAAAAogAAAKYAAACqAAAArgAAALIAAAC2AAAAugAAAL4AAADCAAAAxgAAAMoAAADOAAAA0gAAANYAAADaAAAA3gAAAOIAAADmAAAA6gAAAO4AAADyAAAA9gAAAPoAAAD+AAABAgAAAQYAAAEKAAABDgAAARIAAAEWAAABGgAAAR4AAAEiAAABJgAAASoAAAEuAAABMgAAATYAAAE6AAABPgAAAUIAAAFGAAABSgAAAU4AAAFSAAABVgAAAVoAAAFeAAABYgAAAWYAAAFqAAABbgAAAXIAAAF2AAABegAAAX4AAAGCAAABhgAAAYoAAAGOAAABkgAAAZYAAAGaAAABngAAAaIAAAGmAAABqgAAAa4AAAGyAAABtgAAAboAAAG+AAABwgAAAcYAAAHKAAABzgAAAdIAAAHWAAAB2gAAAd4AAAHiAAAB5gAAAeoAAAHuAAAB8gAAAfYAAAH6AAAB/gAAAgIAAAIGAAACCgAAAg4AAAISAAACFgAAAhoAAAIeAAACIgAAAiYAAAIqAAACLgAAAjIAAAI2AAACOgAAAj4AAAJCAAACRgAAAkoAAAJOAAACUgAAAlYAAAJaAAACXgAAAmIAAAJmAAACagAAAm4AAAJyAAACdgAAAnoAAAJ+AAACggAAAoYAAAKKAAACjgAAApIAAAKWAAACmgAAAp4AAAKiAAACpgAAAqoAAAKuAAACsgAAArYAAAK6AAACvgAAAsIAAALGAAACygAAAs4AAALSAAAC1gAAAtoAAALeAAAC4gAAAuYAAALqAAAC7gAAAvIAAAL2AAAC+gAAAv4AAAMCAAADBgAAAwoAAAMOAAADEgAAAxYAAAMaAAADHgAAAyIAAAMmAAADKgAAAy4AAAMyAAADNgAAAzoAAAM+AAADQgAAA0YAAANKAAADTgAAA1IAAANWAAADWgAAA14AAANiAAADZgAAA2oAAANuAAADcgAAA3YAAAN6AAADfgAAA4IAAAOGAAADigAAA44AAAOSAAADlgAAA5oAAAOeAAADogAAA6YAAAOqAAADrgAAA7IAAAO2AAADugAAA74AAAPCAAADxgAAA8oAAAPOAAAD0gAAA9YAAAPaAAAD3gAAA+IAAAPmAAAD6gAAA+4AAAPyAAAD9gAAA/oAAAP+AAKAAAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAQALAAEADQABAA8AAQARAAIAEwACABcAAgAbAAIAHwADACMAAwArAAMAMwADADsABABDAAQAUwAEAGMABABzAAUAgwAFAKMABQDDAAUA4wAAAAIBAAACAQAAAgFtXcvWLFDrY3hBpldxG4u5I8o7SqZ3fJNCY0mvl2+yhAAAAAAIAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAADAAAAAQAAAAKAAAACwAAAAwAAAAAAAAACAAAAAQAAAANAAAADgAAAA8AAAAQAAAAEQAAABAAAAAEAAAAEgAAABMAAAAUAAAACAAAAAAAAAAIAAAABAAAABUAAABhc3NlcnRpb24gZmFpbGVkOiBwc2l6ZSA+PSBzaXplICsgbWluX292ZXJoZWFkAAA8AhAAKgAAALEEAAAJAAAAYXNzZXJ0aW9uIGZhaWxlZDogcHNpemUgPD0gc2l6ZSArIG1heF9vdmVyaGVhZAAAPAIQACoAAAC3BAAADQAAAAkAAAAMAAAABAAAABYAAABFcnJvcgAAABcAAAAMAAAABAAAABgAAAAZAAAAGgAAAAAAAAAAAAAAAQAAABsAAABhIGZvcm1hdHRpbmcgdHJhaXQgaW1wbGVtZW50YXRpb24gcmV0dXJuZWQgYW4gZXJyb3Igd2hlbiB0aGUgdW5kZXJseWluZyBzdHJlYW0gZGlkIG5vdAAA7gAQAEgAAACKAgAADgAAAGNhcGFjaXR5IG92ZXJmbG93AAAA6wEQAFAAAAAcAAAABQAAADAwMDEwMjAzMDQwNTA2MDcwODA5MTAxMTEyMTMxNDE1MTYxNzE4MTkyMDIxMjIyMzI0MjUyNjI3MjgyOTMwMzEzMjMzMzQzNTM2MzczODM5NDA0MTQyNDM0NDQ1NDY0NzQ4NDk1MDUxNTI1MzU0NTU1NjU3NTg1OTYwNjE2MjYzNjQ2NTY2Njc2ODY5NzA3MTcyNzM3NDc1NzY3Nzc4Nzk4MDgxODI4Mzg0ODU4Njg3ODg4OTkwOTE5MjkzOTQ5NTk2OTc5ODk5NwEQAEsAAABXAgAABQAAAFJlZkNlbGwgYWxyZWFkeSBib3Jyb3dlZABB2JvAAAsEBAAAAAApBG5hbWUBIgFjH19fd2JpbmRnZW5fYWRkX3RvX3N0YWNrX3BvaW50ZXIAPAlwcm9kdWNlcnMBDHByb2Nlc3NlZC1ieQIGd2FscnVzBjAuMjUuMgx3YXNtLWJpbmRnZW4HMC4yLjExNA=="),I=await A.arrayBuffer(),{instance:g}=await WebAssembly.instantiate(I,{"./inflate_wasm_bg.js":GA});return jA=g.exports,zA(jA),jA})()),$A)}async function II(A,I,g,t,C,e){await AI();return function(A){const I=new DataView(A.buffer,A.byteOffset,A.byteLength).getUint32(0,!0);if(0===I)return{starts:new Int32Array(0),ends:new Int32Array(0),scores:new Float32Array(0)};const g=4+4*I,t=g+4*I;return{starts:new Int32Array(A.buffer,A.byteOffset+4,I),ends:new Int32Array(A.buffer,A.byteOffset+g,I),scores:new Float32Array(A.buffer,A.byteOffset+t,I)}}(FA(A,I,g,t,C,e))}async function gI(A,I,g,t,C,e,B){await AI();return function(A){const I=new DataView(A.buffer,A.byteOffset,A.byteLength).getUint32(0,!0);if(0===I)return{starts:new Int32Array(0),ends:new Int32Array(0),scores:new Float32Array(0),minScores:new Float32Array(0),maxScores:new Float32Array(0)};const g=4+4*I,t=g+4*I,C=t+4*I,e=C+4*I;return{starts:new Int32Array(A.buffer,A.byteOffset+4,I),ends:new Int32Array(A.buffer,A.byteOffset+g,I),scores:new Float32Array(A.buffer,A.byteOffset+t,I),minScores:new Float32Array(A.buffer,A.byteOffset+C,I),maxScores:new Float32Array(A.buffer,A.byteOffset+e,I)}}(NA(A,I,g,t,C,e,B))}async function tI(A,I,g){const t=new Uint32Array(I.length),C=new Uint32Array(I.length);for(let A=0;A<I.length;A++){const g=I[A];t[A]=g.offset,C[A]=g.length}return async function(A,I,g,t){await AI();const C=RA(A,I,g,t),e=new DataView(C.buffer,C.byteOffset,C.byteLength),B=e.getUint32(0,!0),i=4+4*(B+1),Q=new Array(B+1);for(let A=0;A<=B;A++)Q[A]=e.getUint32(4+4*A,!0);return{data:C.subarray(i),offsets:Q}}(A,t,C,g)}async function CI(A,I,g,t,C){const e=new Uint32Array(I.length),B=new Uint32Array(I.length);for(let A=0;A<I.length;A++){const g=I[A];e[A]=g.offset,B[A]=g.length}return II(A,e,B,g,t,C)}async function eI(A,I,g,t,C,e){const B=new Uint32Array(I.length),i=new Uint32Array(I.length);for(let A=0;A<I.length;A++){const g=I[A];B[A]=g.offset,i[A]=g.length}return gI(A,B,i,g,t,C,e)}function BI(A){A.sort((A,I)=>A.offset-I.offset);const I=[];let g,t;for(const C of A)g&&t&&C.offset-t<=2e3?(g.length=C.offset+C.length-g.offset,g.blocks.push(C),t=C.offset+C.length):(g={blocks:[C],length:C.length,offset:C.offset},I.push(g),t=C.offset+C.length);return I}const iI=new TextDecoder("utf8"),QI=610839776;function oI(A,I,g,t){return A<t&&I>=g}function EI(A,I,g){const t=[];let C=I;const e=new DataView(A.buffer,A.byteOffset,A.length);for(;C<A.byteLength;){const A=e.getUint32(C,!0);C+=4;const I=e.getUint32(C,!0);C+=4;const B=e.getUint32(C,!0);C+=4;const i=e.getUint32(C,!0);C+=4;const Q=e.getFloat32(C,!0);C+=4;const o=e.getFloat32(C,!0);C+=4;const E=e.getFloat32(C,!0);C+=8,(!g||A===g.chrId&&oI(I,B,g.start,g.end))&&t.push({start:I,end:B,maxScore:o,minScore:Q,summary:!0,score:E/(i||1)})}return t}function sI(A,I,g,t){const C=[];let e=I;const B=new DataView(A.buffer,A.byteOffset,A.length);for(;e<A.byteLength;){const I=e,i=B.getUint32(e,!0);e+=4;const Q=B.getInt32(e,!0);e+=4;const o=B.getInt32(e,!0);e+=4;let E=e;for(;E<A.length&&0!==A[E];E++);const s=A.subarray(e,E),a=iI.decode(s);e=E+1,(!t||i===t.chrId&&oI(Q,o,t.start,t.end))&&C.push({start:Q,end:o,rest:a,uniqueId:`bb-${g+I}`})}return C}function aI(A,I,g){const t=A.subarray(I),C=new DataView(t.buffer,t.byteOffset,t.length),e=C.getInt32(4,!0),B=C.getUint32(12,!0),i=C.getUint32(16,!0),Q=C.getUint8(20),o=C.getUint16(22,!0);let E=24;const s=[];switch(Q){case 1:for(let A=0;A<o;A++){const A=C.getInt32(E,!0);E+=4;const I=C.getInt32(E,!0);E+=4;const t=C.getFloat32(E,!0);E+=4,g&&!oI(A,I,g.start,g.end)||s.push({start:A,end:I,score:t})}break;case 2:for(let A=0;A<o;A++){const A=C.getInt32(E,!0);E+=4;const I=C.getFloat32(E,!0);E+=4;const t=A+i;g&&!oI(A,t,g.start,g.end)||s.push({score:I,start:A,end:t})}break;case 3:for(let A=0;A<o;A++){const I=C.getFloat32(E,!0);E+=4;const t=e+A*B,Q=t+i;g&&!oI(t,Q,g.start,g.end)||s.push({score:I,start:t,end:Q})}}return s}function rI(A,I,g){const t=new DataView(A.buffer,A.byteOffset+I,A.length-I),C=t.getInt32(4,!0),e=t.getUint32(12,!0),B=t.getUint32(16,!0),i=t.getUint8(20),Q=t.getUint16(22,!0),o=new Int32Array(Q),E=new Int32Array(Q),s=new Float32Array(Q);if(!g){switch(i){case 1:{let A=24;for(let I=0;I<Q;I++)o[I]=t.getInt32(A,!0),E[I]=t.getInt32(A+4,!0),s[I]=t.getFloat32(A+8,!0),A+=12;return{starts:o,ends:E,scores:s}}case 2:{let A=24;for(let I=0;I<Q;I++){const g=t.getInt32(A,!0);o[I]=g,E[I]=g+B,s[I]=t.getFloat32(A+4,!0),A+=8}return{starts:o,ends:E,scores:s}}case 3:{let A=24;for(let I=0;I<Q;I++){const g=C+I*e;o[I]=g,E[I]=g+B,s[I]=t.getFloat32(A,!0),A+=4}return{starts:o,ends:E,scores:s}}}return{starts:o,ends:E,scores:s}}const a=g.start,r=g.end;let n=0;switch(i){case 1:{let A=24;for(let I=0;I<Q;I++){const I=t.getInt32(A,!0),g=t.getInt32(A+4,!0);I<r&&g>=a&&(o[n]=I,E[n]=g,s[n]=t.getFloat32(A+8,!0),n++),A+=12}break}case 2:{let A=24;for(let I=0;I<Q;I++){const I=t.getInt32(A,!0),g=I+B;I<r&&g>=a&&(o[n]=I,E[n]=g,s[n]=t.getFloat32(A+4,!0),n++),A+=8}break}case 3:{let A=24;for(let I=0;I<Q;I++){const g=C+I*e,i=g+B;g<r&&i>=a&&(o[n]=g,E[n]=i,s[n]=t.getFloat32(A,!0),n++),A+=4}break}}return n<Q?{starts:o.subarray(0,n),ends:E.subarray(0,n),scores:s.subarray(0,n)}:{starts:o,ends:E,scores:s}}class nI{bbi;refsByName;rTreeOffset;uncompressBufSize;blockType;rTreePromise;featureCache=new eA({cache:new fA({maxSize:1e3}),fill:async({length:A,offset:I},g)=>this.bbi.read(A,I,{signal:g})});constructor(A,I,g,t,C){if(this.bbi=A,this.refsByName=I,this.rTreeOffset=g,this.uncompressBufSize=t,this.blockType=C,!(g>=0))throw new Error("invalid rTreeOffset!")}async _collectBlocks(A,I,g,t){const C=this.refsByName[A];if(void 0===C)return;this.rTreePromise||(this.rTreePromise=this.bbi.read(48,this.rTreeOffset,t));const e=await this.rTreePromise,B=new DataView(e.buffer,e.byteOffset,e.length),i=B.getUint32(0,!0);if(i!==QI)throw new Error(`invalid cirTree magic: 0x${i.toString(16)} (expected 0x${QI.toString(16)}) at offset ${this.rTreeOffset}, file may be corrupt or unsupported`);const Q=4+32*B.getUint32(4,!0),o=(A,t,e,B)=>(A<C||A===C&&t<=g)&&(e>C||e===C&&B>=I),E=[];let s=[this.rTreeOffset+48];for(;s.length>0;){const A=SA(s.map(A=>({min:A,max:A+Q}))),I=[];for(const{min:g,max:C}of A){const A=C-g,e=g,B=await this.featureCache.get(`${A}_${e}`,{length:A,offset:e},t?.signal);for(const A of s)if(g<=A&&A<=C){const g=B.subarray(A-e),t=new DataView(g.buffer,g.byteOffset,g.length),C=t.getUint8(0),i=t.getUint16(2,!0);let Q=4;if(1===C)for(let A=0;A<i;A++){const A=t.getUint32(Q,!0),I=t.getUint32(Q+4,!0),g=t.getUint32(Q+8,!0),C=t.getUint32(Q+12,!0),e=Number(t.getBigUint64(Q+16,!0)),B=Number(t.getBigUint64(Q+24,!0));Q+=32,o(A,I,g,C)&&E.push({offset:e,length:B})}else if(0===C)for(let A=0;A<i;A++){const A=t.getUint32(Q,!0),g=t.getUint32(Q+4,!0),C=t.getUint32(Q+8,!0),e=t.getUint32(Q+12,!0),B=Number(t.getBigUint64(Q+16,!0));Q+=24,o(A,g,C,e)&&I.push(B)}}}s=I}return{blocks:E,chrId:C}}async readWigData(A,I,g,t){const C=await this._collectBlocks(A,I,g,t);if(!C)return[];const{blocks:e,chrId:B}=C;return this.readFeatures(e,{...t,request:{chrId:B,start:I,end:g}})}async readWigDataAsArrays(A,I,g,t){const C=await this._collectBlocks(A,I,g,t),e=C?.blocks??[],B=C?{chrId:C.chrId,start:I,end:g}:void 0,i={...t,request:B};return"summary"===this.blockType?this._readSummaryFeaturesAsArrays(e,i):this._readBigWigFeaturesAsArrays(e,i)}async readFeatures(A,I={}){const{blockType:g,uncompressBufSize:t}=this,{signal:C,request:e}=I,B=BI(A),i=[];for(const A of B){const I=await this.bbi.read(A.length,A.offset,{signal:C}),B=A.offset,Q=A.blocks;let o,E;if(t>0){const A=[];for(const I of Q)A.push({offset:I.offset-B,length:I.length});const g=await tI(I,A,t);o=g.data,E=g.offsets}else{o=I,E=[];for(const A of Q)E.push(A.offset-B);E.push(I.length)}for(let A=0;A<Q.length;A++){const I=E[A],t=E[A+1],C=o.subarray(I,t);let B;switch(g){case"summary":B=EI(C,0,e);break;case"bigwig":B=aI(C,0,e);break;case"bigbed":B=sI(C,0,256*Q[A].offset,e);break;default:B=[],console.warn(`Don't know what to do with ${g}`)}for(const A of B)i.push(A)}}return i}async _readBigWigFeaturesAsArrays(A,I={}){const{uncompressBufSize:g}=this,{signal:t,request:C}=I,e=BI(A),B=[],i=[],Q=[];let o=0;for(const A of e){const{length:I,offset:e}=A,E=await this.bbi.read(I,e,{signal:t}),s=A.blocks.map(I=>({offset:I.offset-A.offset,length:I.length}));if(g>0){const A=await CI(E,s,g,C?.start??0,C?.end??0);A.starts.length>0&&(B.push(A.starts),i.push(A.ends),Q.push(A.scores),o+=A.starts.length)}else for(const A of s){const I=rI(E.subarray(A.offset,A.offset+A.length),0,C);I.starts.length>0&&(B.push(I.starts),i.push(I.ends),Q.push(I.scores),o+=I.starts.length)}}if(0===B.length)return{starts:new Int32Array(0),ends:new Int32Array(0),scores:new Float32Array(0),isSummary:!1};if(1===B.length)return{starts:B[0],ends:i[0],scores:Q[0],isSummary:!1};const E=new Int32Array(o),s=new Int32Array(o),a=new Float32Array(o);let r=0;for(let A=0;A<B.length;A++)E.set(B[A],r),s.set(i[A],r),a.set(Q[A],r),r+=B[A].length;return{starts:E,ends:s,scores:a,isSummary:!1}}async _readSummaryFeaturesAsArrays(A,I={}){const{uncompressBufSize:g}=this,{signal:t,request:C}=I,e=BI(A),B=[],i=[],Q=[],o=[],E=[];let s=0;for(const A of e){const{length:I,offset:e}=A,a=await this.bbi.read(I,e,{signal:t}),r=A.blocks.map(I=>({offset:I.offset-A.offset,length:I.length}));if(g>0){const A=await eI(a,r,g,C?.chrId??0,C?.start??0,C?.end??0);A.starts.length>0&&(B.push(A.starts),i.push(A.ends),Q.push(A.scores),o.push(A.minScores),E.push(A.maxScores),s+=A.starts.length)}else for(const A of r){const I=EI(a.subarray(A.offset,A.offset+A.length),0,C);if(I.length>0){const A=new Int32Array(I.length),g=new Int32Array(I.length),t=new Float32Array(I.length),C=new Float32Array(I.length),e=new Float32Array(I.length);for(let B=0;B<I.length;B++){const i=I[B];A[B]=i.start,g[B]=i.end,t[B]=i.score??0,C[B]=i.minScore??0,e[B]=i.maxScore??0}B.push(A),i.push(g),Q.push(t),o.push(C),E.push(e),s+=I.length}}}if(0===B.length)return{starts:new Int32Array(0),ends:new Int32Array(0),scores:new Float32Array(0),minScores:new Float32Array(0),maxScores:new Float32Array(0),isSummary:!0};if(1===B.length)return{starts:B[0],ends:i[0],scores:Q[0],minScores:o[0],maxScores:E[0],isSummary:!0};const a=new Int32Array(s),r=new Int32Array(s),n=new Float32Array(s),h=new Float32Array(s),c=new Float32Array(s);let l=0;for(let A=0;A<B.length;A++)a.set(B[A],l),r.set(i[A],l),n.set(Q[A],l),h.set(o[A],l),c.set(E[A],l),l+=B[A].length;return{starts:a,ends:r,scores:n,minScores:h,maxScores:c,isSummary:!0}}}const hI=-2021002517,cI=new TextDecoder("utf8");function lI(A){return new DataView(A.buffer,A.byteOffset,A.length)}class dI{bbi;headerP;renameRefSeqs;getHeader(A){return this.headerP||(this.headerP=this._getHeader(A).catch(A=>{throw this.headerP=void 0,A})),this.headerP}constructor(A){const{filehandle:I,renameRefSeqs:g=A=>A,path:t,url:C}=A;if(this.renameRefSeqs=g,I)this.bbi=I;else if(C)this.bbi=new AA(C);else{if(!t)throw new Error("no file given");this.bbi=new IA(t)}}async _getHeader(A){const I=await this._getMainHeader(A),g=await this._readChromosomeTree(I,A);return{...I,...g}}async _getMainHeader(A,I=2e3){const g=await this.bbi.read(I,0,A),t=lI(g);let C=0;const e=t.getInt32(C,!0);if(C+=4,-2003829722!==e&&e!==hI)throw new Error("not a BigWig/BigBed file");const B=t.getUint16(C,!0);C+=2;const i=t.getUint16(C,!0);C+=2;const Q=Number(t.getBigUint64(C,!0));C+=8;const o=Number(t.getBigUint64(C,!0));C+=8;const E=Number(t.getBigUint64(C,!0));C+=8;const s=t.getUint16(C,!0);C+=2;const a=t.getUint16(C,!0);C+=2;const r=Number(t.getBigUint64(C,!0));C+=8;const n=Number(t.getBigUint64(C,!0));C+=8;const h=t.getUint32(C,!0);C+=4;const c=Number(t.getBigUint64(C,!0));C+=8;const l=[];for(let A=0;A<i;A++){const A=t.getUint32(C,!0);C+=4;const I=t.getUint32(C,!0);C+=4;const g=Number(t.getBigUint64(C,!0));C+=8;const e=Number(t.getBigUint64(C,!0));C+=8,l.push({reductionLevel:A,reserved:I,dataOffset:g,indexOffset:e})}const d=e===hI?"bigbed":"bigwig";if(r>I||n>I-40)return this._getMainHeader(A,2*I);let D;if(!n)throw new Error("no stats");{let A=0;const I=lI(g.subarray(n)),t=Number(I.getBigUint64(A,!0));A+=8;const C=I.getFloat64(A,!0);A+=8;const e=I.getFloat64(A,!0);A+=8;const B=I.getFloat64(A,!0);A+=8;D={scoreMin:C,scoreMax:e,scoreSum:B,scoreSumSquares:I.getFloat64(A,!0),basesCovered:t}}return{zoomLevels:l,magic:e,extHeaderOffset:c,numZoomLevels:i,fieldCount:s,totalSummary:D,definedFieldCount:a,uncompressBufSize:h,asOffset:r,chromosomeTreeOffset:Q,totalSummaryOffset:n,unzoomedDataOffset:o,unzoomedIndexOffset:E,fileType:d,version:B,autoSql:r?cI.decode(g.subarray(r,g.indexOf(0,r))):""}}async _readChromosomeTree(A,I){const g=[],t={},C=A.chromosomeTreeOffset,e=lI(await this.bbi.read(32,C,I)),B=e.getUint32(8,!0),i=e.getUint32(12,!0),Q=async A=>{const I=lI(await this.bbi.read(4,A)),C=I.getUint8(0),e=I.getUint16(2,!0);if(C){const I=await this.bbi.read(e*(B+i),A+4),C=lI(I);let Q=0;for(let A=0;A<e;A++){const A=I.indexOf(0,Q),e=-1!==A&&A<Q+B?A:Q+B,i=cI.decode(I.subarray(Q,e));Q+=B;const o=C.getUint32(Q,!0);Q+=4;const E=C.getUint32(Q,!0);Q+=4,t[this.renameRefSeqs(i)]=o,g[o]={name:i,id:o,length:E}}}else{const I=lI(await this.bbi.read(e*(B+8),A+4)),g=[];let t=0;for(let A=0;A<e;A++){t+=B;const A=Number(I.getBigUint64(t,!0));t+=8,g.push(Q(A))}await Promise.all(g)}};return await Q(C+32),{refsByName:t,refsByNumber:g}}viewCache=new Map;getOrCreateBlockView(A,I,g,t){const C=`${I}_${t}`;let e=this.viewCache.get(C);return e||(e=new nI(this.bbi,A,I,g,t),this.viewCache.set(C,e)),e}async getUnzoomedView(A){const{unzoomedIndexOffset:I,refsByName:g,uncompressBufSize:t,fileType:C}=await this.getHeader(A);return this.getOrCreateBlockView(g,I,t,C)}async _getView(A){const{basesPerSpan:I,scale:g}=A||{},t=I?1/I:g??1;return this.getView(t,A)}async getFeatures(A,I,g,t){return(await this._getView(t)).readWigData(this.renameRefSeqs(A),I,g,t)}async getFeaturesAsArrays(A,I,g,t){return(await this._getView(t)).readWigDataAsArrays(this.renameRefSeqs(A),I,g,t)}}class DI extends dI{async getView(A,I){const{zoomLevels:g,refsByName:t,uncompressBufSize:C}=await this.getHeader(I),e=1/A;for(let A=g.length-1;A>=0;A-=1){const I=g[A];if(I&&I.reductionLevel<=2*e)return this.getOrCreateBlockView(t,I.indexOffset,C,"summary")}return this.getUnzoomedView(I)}}const uI=new TextDecoder("utf8");function yI(A,I,g){const t=A.indexOf(0,I),C=-1!==t&&t<I+g?t:I+g;return uI.decode(A.subarray(I,C))}async function wI(A,I,g,t,C,e,B,i){const Q=4+g*(t+C),o=await A.read(Q,I,i),E=new DataView(o.buffer,o.byteOffset,o.length),s=E.getInt8(0),a=E.getInt16(2,!0);let r=4;if(0===s){const I=[];for(let A=0;A<a;A++){const A=yI(o,r,t);r+=t;const g=Number(E.getBigUint64(r,!0));r+=8,I.push({key:A,offset:g})}let Q=0,s=I.length-1,n=I.length-1;for(;Q<=s;){const A=Math.floor((Q+s)/2);e.localeCompare(I[A].key)<0?(n=A-1,s=A-1):Q=A+1}return wI(A,n>=0?I[n].offset:I[0].offset,g,t,C,e,B,i)}if(1===s){const A=[];for(let I=0;I<a;I++){const I=yI(o,r,t);r+=t;const g=Number(E.getBigUint64(r,!0));r+=8;const C=E.getUint32(r,!0);r+=4,r+=4,A.push({key:I,offset:g,length:C})}let I=0,g=A.length-1;for(;I<=g;){const t=Math.floor((I+g)/2),C=e.localeCompare(A[t].key);if(0===C)return{...A[t],field:B};C<0?g=t-1:I=t+1}return}}class fI extends dI{readIndicesCache=new eA({cache:new fA({maxSize:1}),fill:(A,I)=>this._readIndices({...A,signal:I})});readIndices(A={}){const{signal:I,...g}=A;return this.readIndicesCache.get(JSON.stringify(g),A,I)}async getView(A,I){return this.getUnzoomedView(I)}async _readIndices(A){const{extHeaderOffset:I}=await this.getHeader(A),g=await this.bbi.read(64,I),t=new DataView(g.buffer,g.byteOffset,g.length),C=t.getUint16(2,!0),e=Number(t.getBigUint64(4,!0));if(0===C)return[];const B=20*C,i=await this.bbi.read(B,e),Q=[];for(let A=0;A<C;A+=1){const I=i.subarray(20*A),g=new DataView(I.buffer,I.byteOffset,I.length),t=g.getInt16(0,!0),C=g.getInt16(2,!0),e=Number(g.getBigUint64(4,!0)),B=g.getInt16(16,!0);Q.push({type:t,fieldcount:C,offset:e,field:B})}return Q}async searchExtraIndexBlocks(A,I={}){const g=await this.readIndices(I);if(0===g.length)return[];const t=g.map(async g=>{const{offset:t,field:C}=g,e=await this.bbi.read(32,t,I),B=new DataView(e.buffer,e.byteOffset,e.length),i=B.getInt32(4,!0),Q=B.getInt32(8,!0),o=B.getInt32(12,!0);return wI(this.bbi,t+32,i,Q,o,A,C,I)});return(await Promise.all(t)).filter(A=>void 0!==A)}async searchExtraIndex(A,I={}){const g=await this.searchExtraIndexBlocks(A,I);if(0===g.length)return[];const t=await this.getUnzoomedView(I);return(await Promise.all(g.map(async A=>(await t.readFeatures([A],I)).map(I=>({...I,field:A.field}))))).flat().filter(I=>{if(!I.rest)return!1;const g=(I.field||0)-3;return function(A,I){if(I<0)return;let g=0;for(let t=0;t<I;t++){if(g=A.indexOf("\t",g),-1===g)return;g++}const t=A.indexOf("\t",g);return-1===t?A.slice(g):A.slice(g,t)}(I.rest,g)===A})}}function SI(A,I,g){if(I!==g)for(const t of A)t.end<I||t.start>g?t.utr=!0:(I>=t.start&&I<=t.end&&(t.cdStart=I),g>=t.start&&g<=t.end&&(t.cdEnd=g));else for(const I of A)I.utr=!0}function kI(A){if(!A||"."===A||"0"===A)return;if(A.startsWith("#"))return A;const I=A.split(",");if(I.length>=3){const A=parseInt(I[0].trim()),g=parseInt(I[1].trim()),t=parseInt(I[2].trim());if(!isNaN(A)&&!isNaN(g)&&!isNaN(t))return`rgb(${A},${g},${t})`}}function GI(A){var I;return null!==(I=A.cdStart)&&void 0!==I?I:A.start}function FI(A){var I;return null!==(I=A.cdEnd)&&void 0!==I?I:A.end}function NI(A){return A.utr?0:FI(A)-GI(A)}function mI(A){return"+"===A?"+":"-"===A?"-":void 0}function RI(A,I,g=Number.MAX_SAFE_INTEGER){var t,C;if(A.length<3)return;const e=null==I?void 0:I.gffTags,B=A[0],i=parseInt(A[1]),Q=A.length>2?parseInt(A[2]):i+1;if(isNaN(i)||isNaN(Q))return;const o={chr:B,start:i,end:Q,score:1e3};let E=3;if(A.length>3&&E++<g){if(A[3].indexOf(";")>0&&A[3].indexOf("=")>0){const g=function(A){const I={},g=A.split(";");for(const A of g){const g=A.indexOf("=");if(g>0){const t=A.substring(0,g).trim(),C=A.substring(g+1).trim();I[t]=C}}return I}(A[3]);if(o.attributes=g,e)if(null!=(null==I?void 0:I.nameField)&&g[I.nameField])o.name=g[I.nameField];else if(!o.name)for(const A of pI)if(g[A]){o.name=g[A];break}}o.name||e||(o.name="."===A[3]?"":A[3])}if(A.length>4&&E++<g&&(o.score="."===A[4]?0:Number(A[4]),isNaN(o.score)))return o;if(A.length>5&&E++<g){const I=A[5];if("."!==I&&"+"!==I&&"-"!==I)return o;o.strand=I}if(A.length>6&&E++<g&&(o.cdStart=parseInt(A[6]),isNaN(o.cdStart)))return o;if(A.length>7&&E++<g&&(o.cdEnd=parseInt(A[7]),isNaN(o.cdEnd)))return o;if(A.length>8&&E++<g&&"."!==A[8]&&"0"!==A[8]&&(o.color=kI(A[8])),A.length>11&&E++<g){const I=parseInt(A[9]);if(I>1e3)return o;const g=A[10].replace(/,$/,"").split(","),e=A[11].replace(/,$/,"").split(",");if(g.length!==e.length||I!==g.length)return o;const B=[];for(let A=0;A<I;A++){const I=i+parseInt(e[A]),t=I+parseInt(g[A]);B.push({start:I,end:t})}B.length>0&&(SI(B,null!==(t=o.cdStart)&&void 0!==t?t:i,null!==(C=o.cdEnd)&&void 0!==C?C:Q),o.exons=B)}if(I&&(void 0!==I.thicknessColumn&&A.length>I.thicknessColumn&&(o.thickness=parseFloat(A[I.thicknessColumn])),void 0!==I.colorColumn&&A.length>I.colorColumn)){const g=kI(A[I.colorColumn]);g&&(o.color=g)}return o}const pI=["Name","transcript_id","gene_name","gene","gene_id","alias","locus","name"];class UI{constructor(A,I){const g=new AA(A,I?{fetch:I}:void 0);this.bb=new fI({filehandle:g})}async search(A){const I=await this.bb.searchExtraIndex(A);if(0===I.length)return null;const g=await this.ensureHeader();let t=I[0];for(let A=1;A<I.length;A++)I[A].end-I[A].start>t.end-t.start&&(t=I[A]);const C=t.chromId;if(null==C)return null;const e=g.refsByNumber[C];return e?this.parseFeature(e.name,t.start,t.end,t.rest):null}async getFeatures(A,I,g){const t=await this.bb.getFeatures(A,I,g),C=[];for(const I of t){const g=this.parseFeature(A,I.start,I.end,I.rest);g&&C.push(g)}return C}parseFeature(A,I,g,t){const C=[A,String(I),String(g)];t&&C.push(...t.split("\t"));const e=RI(C);return e?function(A,I){return{chr:A,start:I.start,end:I.end,name:I.name,score:I.score,strand:"."===I.strand?void 0:I.strand,cdStart:I.cdStart,cdEnd:I.cdEnd,exons:I.exons,color:I.color}}(e.chr,e):null}ensureHeader(){return this.headerPromise||(this.headerPromise=this.bb.getHeader()),this.headerPromise}}const MI=/^chr(\d+|X|Y|M)$/i;function LI(A){return MI.test(A)}function JI(A){return Object.keys(A).filter(LI).sort((A,I)=>KI(A)-KI(I))}function KI(A){const I=A.replace(/^chr/i,"");if("X"===I||"x"===I)return 23;if("Y"===I||"y"===I)return 24;if("M"===I||"m"===I)return 25;const g=parseInt(I,10);return isNaN(g)?100:g}const YI=1e5;function vI(A){let I=[],g=null;return async function(t,C){const{chr:e,start:B,end:i}=t;let Q=I.find(A=>function(A,I,g,t){return A.chr===I&&A.start<=g&&A.end>=t}(A,e,B,i));var o;Q||(Q=await async function(I,t,C,e){let B=t,i=C;if(C-t<YI){const A=Math.round(t+(C-t)/2);B=Math.max(0,A-5e4),i=B+YI}B=Math.floor(B),i=Math.ceil(i);const Q={chr:I,start:B,end:i};if(g&&g.interval.chr===I&&g.interval.start<=t&&g.interval.end>=C)return g.promise;const o=A(Q,e).then(A=>(g=null,{chr:I,start:B,end:i,sequence:A}));return o.catch(()=>{g=null}),g={interval:Q,promise:o},o}(e,B,i,C),o=Q,I=I.filter(A=>{return g=A,!((I=o).chr===g.chr&&I.start<=g.start&&I.end>=g.end);var I,g}),I.length>=10&&I.shift(),I.push(Q));const E=B-Q.start,s=i-B;return Q.sequence.substring(E,E+s)}}"getBigInt64"in DataView||(DataView.prototype.getBigInt64=function(A,I){return function(A,I,g){const t=Number(!!g),C=Number(!g);return BigInt(A.getInt32(I,g)*C+A.getInt32(I+4,g)*t)<<32n|BigInt(A.getUint32(I,g)*t+A.getUint32(I+4,g)*C)}(this,A,I)}),"getBigUint64"in DataView||(DataView.prototype.getBigUint64=function(A,I){return function(A,I,g){const t=A.getUint32(I,g),C=A.getUint32(I+4,g),e=Number(!!g),B=Number(!g);return BigInt(t*B+C*e)<<32n|BigInt(t*e+C*B)}(this,A,I)});const bI=["T","C","A","G"],xI=[];for(let A=0;A<256;A++)xI.push(bI[A>>6&3]+bI[A>>4&3]+bI[A>>2&3]+bI[3&A]);const HI=xI.map(A=>A.toLowerCase());class qI{filehandle;headerP;indexP;constructor({filehandle:A,path:I}){if(A)this.filehandle=A;else{if(!I)throw new Error("must supply path or filehandle");this.filehandle=new IA(I)}}getHeader(){return this.headerP??=this.getHeaderData().catch(A=>{throw this.headerP=void 0,A}),this.headerP}async getHeaderData(){const A=await this.filehandle.read(16,0),I=!0,g=new DataView(A.buffer,A.byteOffset,A.length);let t=0;const C=g.getInt32(t,I);if(t+=4,440477507!==C)throw new Error(`Wrong magic number ${String(C)}`);const e=g.getInt32(t,I);t+=4;const B=g.getUint32(t,I);t+=4;return{version:e,magic:C,sequenceCount:B,reserved:g.getUint32(t,I)}}getIndex(){return this.indexP??=this.getIndexData().catch(A=>{throw this.indexP=void 0,A}),this.indexP}async getIndexData(){const A=await this.getHeader(),I=8+A.sequenceCount*(257+(1===A.version?8:4)),g=await this.filehandle.read(I,8),t=!0,C=new DataView(g.buffer,g.byteOffset,g.length);let e=0;const B=C.getUint32(e,t);e+=4,e+=4;const i=[];for(let I=0;I<B;I++){const I=C.getUint8(e);e+=1;let B="";for(let A=0;A<I;A++)B+=String.fromCodePoint(g[e+A]??0);if(e+=I,1===A.version){const A=Number(C.getBigUint64(e,t));e+=8,i.push({offset:A,name:B})}else{const A=C.getUint32(e,t);e+=4,i.push({offset:A,name:B})}}return Object.fromEntries(i.map(({name:A,offset:I})=>[A,I]))}async getSequenceNames(){const A=await this.getIndex();return Object.keys(A)}async getSequenceSizes(){const A=await this.getIndex(),I=Object.entries(A),g=await Promise.all(I.map(([,A])=>this.getSequenceSizeAt(A)));return Object.fromEntries(I.map(([A],I)=>[A,g[I]]))}async getSequenceSize(A){const I=(await this.getIndex())[A];return I?this.getSequenceSizeAt(I):void 0}async getSequenceSizeAt(A){const I=await this.filehandle.read(4,A);return new DataView(I.buffer,I.byteOffset,I.length).getUint32(0,!0)}async getSequenceRecord(A){const I=await this.filehandle.read(8,A),g=new DataView(I.buffer,I.byteOffset,I.length),t=g.getUint32(0,!0),C=g.getUint32(4,!0),e=8*C+4,B=await this.filehandle.read(e,A+8),i=new Uint32Array(2*C+1),Q=new DataView(B.buffer,B.byteOffset,B.length);for(let A=0;A<2*C+1;A++)i[A]=Q.getUint32(4*A,!0);const o=i.subarray(0,C),E=i.subarray(C,2*C),s=i[2*C]??0,a=8*s+4,r=await this.filehandle.read(a,A+8+e),n=new Uint32Array(2*s),h=new DataView(r.buffer,r.byteOffset,r.length);for(let A=0;A<2*s;A++)n[A]=h.getUint32(4*A,!0);return{dnaSize:t,nBlocks:{starts:o,sizes:E},maskBlocks:{starts:n.subarray(0,s),sizes:n.subarray(s,2*s)},dnaPosition:A+8+e+a}}async getSequence(A,I=0,g=Number.POSITIVE_INFINITY){const t=(await this.getIndex())[A];if(!t)return;const C=await this.getSequenceRecord(t);if(I<0)throw new TypeError("regionStart cannot be less than 0");g>C.dnaSize&&(g=C.dnaSize);const e=this.getOverlappingBlockStartIdx(I,C.nBlocks.starts,C.nBlocks.sizes),B=this.getOverlappingBlockStartIdx(I,C.maskBlocks.starts,C.maskBlocks.sizes),i=Math.ceil((g-I)/4)+1,Q=Math.floor(I/4),o=await this.filehandle.read(i,C.dnaPosition+Q),E=C.nBlocks.starts,s=C.nBlocks.sizes,a=C.maskBlocks.starts,r=C.maskBlocks.sizes,n=[];let h=e,c=B,l=I;for(;l<g;){for(;c<a.length&&a[c]+r[c]<=l;)c++;const A=a[c]??1/0,I=A+(r[c]??0),t=A<=l&&I>l,C=E[h]??1/0,e=C+(s[h]??0);if(l>=C&&l<e){h++;const A=Math.min(e,g),I=A-l;n.push((t?"n":"N").repeat(I)),l=A}else{const C=E[h]??1/0,e=t?Math.min(I,C,g):Math.min(A,C,g),B=t?HI:xI;for(;l<e;){const A=3&l,I=o[(l>>>2)-Q];0===A&&l+4<=e?(n.push(B[I]),l+=4):(n.push(B[I][A]),l+=1)}}}return n.join("")}getOverlappingBlockStartIdx(A,I,g){const t=I.length;if(0===t)return 0;let C=0,e=t;for(;C<e;){const t=C+e>>>1;I[t]+g[t]<=A?C=t+1:e=t}return C}}const TI=new Map,_I=new Map;function WI(A,I){let g=TI.get(A);if(!g){const t=function(A,I){let g=_I.get(A);if(!g){g=new AA(A,I?{fetch:I}:void 0),_I.set(A,g)}return g}(A,I);g=new qI({filehandle:t}),TI.set(A,g)}return g}function PI(A,I=0){const g=A[I]|A[I+1]<<8|A[I+2]<<16|A[I+3]<<24;return 4294967296*((A[I+4]|A[I+5]<<8|A[I+6]<<16|A[I+7]<<24)>>>0)+(g>>>0)}function OI(A,I,g){const t=I[1],C=g?g[1]:1/0;return t<=A&&C>A?0:t<A?-1:1}class VI{filehandle;index;constructor({filehandle:A}){this.filehandle=A}_getIndex(){return this.index||(this.index=this._readIndex().catch(A=>{throw this.index=void 0,A})),this.index}async _readIndex(){const A=PI(await this.filehandle.read(8,0));if(!A)return[[0,0]];const I=new Array(A+1);I[0]=[0,0];const g=16*A;if(g>Number.MAX_SAFE_INTEGER)throw new TypeError("integer overflow");const t=await this.filehandle.read(g,8);for(let g=0;g<A;g+=1){const A=PI(t,16*g),C=PI(t,16*g+8);I[g+1]=[A,C]}return I}async getLastBlock(){return(await this._getIndex()).at(-1)}async getRelevantBlocksForRead(A,I){const g=I+A;if(0===A)return[];const t=await this._getIndex(),C=[];let e=0,B=t.length-1,i=Math.floor(t.length/2),Q=OI(I,t[i],t[i+1]);for(;0!==Q;)Q>0?B=i-1:Q<0&&(e=i+1),i=Math.ceil((B-e)/2)+e,Q=OI(I,t[i],t[i+1]);C.push(t[i]);let o=i+1;for(;o<t.length&&(C.push(t[o]),!(t[o][1]>=g));o+=1);return C[C.length-1][1]<g&&C.push([]),C}}function ZI(A,I){return Object.prototype.hasOwnProperty.call(A,I)}function XI(A,I){return A.length===I?A:A.subarray?A.subarray(0,I):(A.length=I,A)}var zI={arraySet:function(A,I,g,t,C){if(I.subarray&&A.subarray)A.set(I.subarray(g,g+t),C);else for(var e=0;e<t;e++)A[C+e]=I[g+e]},flattenChunks:function(A){var I,g,t,C,e,B;for(t=0,I=0,g=A.length;I<g;I++)t+=A[I].length;for(B=new Uint8Array(t),C=0,I=0,g=A.length;I<g;I++)e=A[I],B.set(e,C),C+=e.length;return B},Buf8:function(A){return new Uint8Array(A)},Buf16:function(A){return new Uint16Array(A)},Buf32:function(A){return new Int32Array(A)}},jI={arraySet:function(A,I,g,t,C){for(var e=0;e<t;e++)A[C+e]=I[g+e]},flattenChunks:function(A){return[].concat.apply([],A)},Buf8:function(A){return new Array(A)},Buf16:function(A){return new Array(A)},Buf32:function(A){return new Array(A)}};let $I=()=>{const A="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;return $I=()=>A,A},Ag=(A,I,g,t,C)=>(Ag=$I()?zI.arraySet:jI.arraySet,Ag(A,I,g,t,C)),Ig=A=>(Ig=$I()?zI.flattenChunks:jI.flattenChunks,Ig(A)),gg=A=>(gg=$I()?zI.Buf8:jI.Buf8,gg(A)),tg=A=>(tg=$I()?zI.Buf16:jI.Buf16,tg(A)),Cg=A=>(Cg=$I()?zI.Buf32:jI.Buf32,Cg(A)),eg=function(){let A=!0;try{String.fromCharCode.apply(null,[0])}catch(I){A=!1}return eg=()=>A,A},Bg=function(){let A=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(I){A=!1}return Bg=()=>A,A},ig=function(A){for(var I=gg(256),g=0;g<256;g++)I[g]=g>=252?6:g>=248?5:g>=240?4:g>=224?3:g>=192?2:1;return I[254]=I[254]=1,ig=A=>I[A],I[A]};function Qg(A){var I,g,t,C,e,B=A.length,i=0;for(C=0;C<B;C++)55296==(64512&(g=A.charCodeAt(C)))&&C+1<B&&56320==(64512&(t=A.charCodeAt(C+1)))&&(g=65536+(g-55296<<10)+(t-56320),C++),i+=g<128?1:g<2048?2:g<65536?3:4;for(I=new Uint8Array(i),e=0,C=0;e<i;C++)55296==(64512&(g=A.charCodeAt(C)))&&C+1<B&&56320==(64512&(t=A.charCodeAt(C+1)))&&(g=65536+(g-55296<<10)+(t-56320),C++),g<128?I[e++]=g:g<2048?(I[e++]=192|g>>>6,I[e++]=128|63&g):g<65536?(I[e++]=224|g>>>12,I[e++]=128|g>>>6&63,I[e++]=128|63&g):(I[e++]=240|g>>>18,I[e++]=128|g>>>12&63,I[e++]=128|g>>>6&63,I[e++]=128|63&g);return I}function og(A,I){var g,t,C,e,B=I||A.length,i=new Array(2*B);for(t=0,g=0;g<B;)if((C=A[g++])<128)i[t++]=C;else if((e=ig(C))>4)i[t++]=65533,g+=e-1;else{for(C&=2===e?31:3===e?15:7;e>1&&g<B;)C=C<<6|63&A[g++],e--;e>1?i[t++]=65533:C<65536?i[t++]=C:(C-=65536,i[t++]=55296|C>>10&1023,i[t++]=56320|1023&C)}return function(A,I){if(I<65534&&(A.subarray&&Bg()||!A.subarray&&eg()))return String.fromCharCode.apply(null,XI(A,I));for(var g="",t=0;t<I;t++)g+=String.fromCharCode(A[t]);return g}(i,t)}function Eg(A,I){var g;for((I=I||A.length)>A.length&&(I=A.length),g=I-1;g>=0&&128==(192&A[g]);)g--;return g<0||0===g?I:g+ig(A[g])>I?g:I}function sg(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}function ag(A,I,g,t){for(var C=65535&A,e=A>>>16&65535,B=0;0!==g;){g-=B=g>2e3?2e3:g;do{e=e+(C=C+I[t++]|0)|0}while(--B);C%=65521,e%=65521}return C|e<<16}let rg=function(){const A=function(){for(var A,I=[],g=0;g<256;g++){A=g;for(var t=0;t<8;t++)A=1&A?3988292384^A>>>1:A>>>1;I[g]=A}return I}();return rg=()=>A,A};function ng(A,I,g,t){var C=rg(),e=t+g;A^=-1;for(var B=t;B<e;B++)A=A>>>8^C[255&(A^I[B])];return-1^A}function hg(A,I){var g,t,C,e,B,i,Q,o,E,s,a,r,n,h,c,l,d,D,u,y,w,f,S,k,G;g=A.state,t=A.next_in,k=A.input,C=t+(A.avail_in-5),e=A.next_out,G=A.output,B=e-(I-A.avail_out),i=e+(A.avail_out-257),Q=g.dmax,o=g.wsize,E=g.whave,s=g.wnext,a=g.window,r=g.hold,n=g.bits,h=g.lencode,c=g.distcode,l=(1<<g.lenbits)-1,d=(1<<g.distbits)-1;A:do{n<15&&(r+=k[t++]<<n,n+=8,r+=k[t++]<<n,n+=8),D=h[r&l];I:for(;;){if(r>>>=u=D>>>24,n-=u,0===(u=D>>>16&255))G[e++]=65535&D;else{if(!(16&u)){if(64&u){if(32&u){g.mode=12;break A}A.msg="invalid literal/length code",g.mode=30;break A}D=h[(65535&D)+(r&(1<<u)-1)];continue I}for(y=65535&D,(u&=15)&&(n<u&&(r+=k[t++]<<n,n+=8),y+=r&(1<<u)-1,r>>>=u,n-=u),n<15&&(r+=k[t++]<<n,n+=8,r+=k[t++]<<n,n+=8),D=c[r&d];;){if(r>>>=u=D>>>24,n-=u,16&(u=D>>>16&255)){if(w=65535&D,n<(u&=15)&&(r+=k[t++]<<n,(n+=8)<u&&(r+=k[t++]<<n,n+=8)),(w+=r&(1<<u)-1)>Q){A.msg="invalid distance too far back",g.mode=30;break A}if(r>>>=u,n-=u,w>(u=e-B)){if((u=w-u)>E&&g.sane){A.msg="invalid distance too far back",g.mode=30;break A}if(f=0,S=a,0===s){if(f+=o-u,u<y){y-=u;do{G[e++]=a[f++]}while(--u);f=e-w,S=G}}else if(s<u){if(f+=o+s-u,(u-=s)<y){y-=u;do{G[e++]=a[f++]}while(--u);if(f=0,s<y){y-=u=s;do{G[e++]=a[f++]}while(--u);f=e-w,S=G}}}else if(f+=s-u,u<y){y-=u;do{G[e++]=a[f++]}while(--u);f=e-w,S=G}for(;y>2;)G[e++]=S[f++],G[e++]=S[f++],G[e++]=S[f++],y-=3;y&&(G[e++]=S[f++],y>1&&(G[e++]=S[f++]))}else{f=e-w;do{G[e++]=G[f++],G[e++]=G[f++],G[e++]=G[f++],y-=3}while(y>2);y&&(G[e++]=G[f++],y>1&&(G[e++]=G[f++]))}break}if(64&u){A.msg="invalid distance code",g.mode=30;break A}D=c[(65535&D)+(r&(1<<u)-1)]}}break}}while(t<C&&e<i);t-=y=n>>3,r&=(1<<(n-=y<<3))-1,A.next_in=t,A.next_out=e,A.avail_in=t<C?C-t+5:5-(t-C),A.avail_out=e<i?i-e+257:257-(e-i),g.hold=r,g.bits=n}var cg=15,lg=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],dg=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],Dg=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],ug=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];function yg(A,I,g,t,C,e,B,i){var Q,o,E,s,a,r,n,h,c,l=i.bits,d=0,D=0,u=0,y=0,w=0,f=0,S=0,k=0,G=0,F=0,N=null,m=0,R=tg(16),p=tg(16),U=null,M=0;for(d=0;d<=cg;d++)R[d]=0;for(D=0;D<t;D++)R[I[g+D]]++;for(w=l,y=cg;y>=1&&0===R[y];y--);if(w>y&&(w=y),0===y)return C[e++]=20971520,C[e++]=20971520,i.bits=1,0;for(u=1;u<y&&0===R[u];u++);for(w<u&&(w=u),k=1,d=1;d<=cg;d++)if(k<<=1,(k-=R[d])<0)return-1;if(k>0&&(0===A||1!==y))return-1;for(p[1]=0,d=1;d<cg;d++)p[d+1]=p[d]+R[d];for(D=0;D<t;D++)0!==I[g+D]&&(B[p[I[g+D]]++]=D);if(0===A?(N=U=B,r=19):1===A?(N=lg,m-=257,U=dg,M-=257,r=256):(N=Dg,U=ug,r=-1),F=0,D=0,d=u,a=e,f=w,S=0,E=-1,s=(G=1<<w)-1,1===A&&G>852||2===A&&G>592)return 1;for(;;){n=d-S,B[D]<r?(h=0,c=B[D]):B[D]>r?(h=U[M+B[D]],c=N[m+B[D]]):(h=96,c=0),Q=1<<d-S,u=o=1<<f;do{C[a+(F>>S)+(o-=Q)]=n<<24|h<<16|c}while(0!==o);for(Q=1<<d-1;F&Q;)Q>>=1;if(0!==Q?(F&=Q-1,F+=Q):F=0,D++,0===--R[d]){if(d===y)break;d=I[g+B[D]]}if(d>w&&(F&s)!==E){for(0===S&&(S=w),a+=u,k=1<<(f=d-S);f+S<y&&!((k-=R[f+S])<=0);)f++,k<<=1;if(G+=1<<f,1===A&&G>852||2===A&&G>592)return 1;C[E=F&s]=w<<24|f<<16|a-e}}return 0!==F&&(C[a+F]=d-S<<24|64<<16),i.bits=w,0}var wg=-2,fg=12,Sg=30;function kg(A){return(A>>>24&255)+(A>>>8&65280)+((65280&A)<<8)+((255&A)<<24)}function Gg(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=tg(320),this.work=tg(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function Fg(A){var I;return A&&A.state?((I=A.state).wsize=0,I.whave=0,I.wnext=0,function(A){var I;return A&&A.state?(I=A.state,A.total_in=A.total_out=I.total=0,A.msg="",I.wrap&&(A.adler=1&I.wrap),I.mode=1,I.last=0,I.havedict=0,I.dmax=32768,I.head=null,I.hold=0,I.bits=0,I.lencode=I.lendyn=Cg(852),I.distcode=I.distdyn=Cg(592),I.sane=1,I.back=-1,0):wg}(A)):wg}function Ng(A,I){var g,t;return A?(t=new Gg,A.state=t,t.window=null,g=function(A,I){var g,t;return A&&A.state?(t=A.state,I<0?(g=0,I=-I):(g=1+(I>>4),I<48&&(I&=15)),I&&(I<8||I>15)?wg:(null!==t.window&&t.wbits!==I&&(t.window=null),t.wrap=g,t.wbits=I,Fg(A))):wg}(A,I),0!==g&&(A.state=null),g):wg}var mg,Rg,pg=!0;function Ug(A){if(pg){var I;for(mg=Cg(512),Rg=Cg(32),I=0;I<144;)A.lens[I++]=8;for(;I<256;)A.lens[I++]=9;for(;I<280;)A.lens[I++]=7;for(;I<288;)A.lens[I++]=8;for(yg(1,A.lens,0,288,mg,0,A.work,{bits:9}),I=0;I<32;)A.lens[I++]=5;yg(2,A.lens,0,32,Rg,0,A.work,{bits:5}),pg=!1}A.lencode=mg,A.lenbits=9,A.distcode=Rg,A.distbits=5}function Mg(A,I,g,t){var C,e=A.state;return null===e.window&&(e.wsize=1<<e.wbits,e.wnext=0,e.whave=0,e.window=gg(e.wsize)),t>=e.wsize?(Ag(e.window,I,g-e.wsize,e.wsize,0),e.wnext=0,e.whave=e.wsize):((C=e.wsize-e.wnext)>t&&(C=t),Ag(e.window,I,g-t,C,e.wnext),(t-=C)?(Ag(e.window,I,g-t,t,0),e.wnext=t,e.whave=e.wsize):(e.wnext+=C,e.wnext===e.wsize&&(e.wnext=0),e.whave<e.wsize&&(e.whave+=C))),0}function Lg(A,I){var g,t,C,e,B,i,Q,o,E,s,a,r,n,h,c,l,d,D,u,y,w,f,S,k,G=0,F=gg(4),N=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!A||!A.state||!A.output||!A.input&&0!==A.avail_in)return wg;(g=A.state).mode===fg&&(g.mode=13),B=A.next_out,C=A.output,Q=A.avail_out,e=A.next_in,t=A.input,i=A.avail_in,o=g.hold,E=g.bits,s=i,a=Q,f=0;A:for(;;)switch(g.mode){case 1:if(0===g.wrap){g.mode=13;break}for(;E<16;){if(0===i)break A;i--,o+=t[e++]<<E,E+=8}if(2&g.wrap&&35615===o){g.check=0,F[0]=255&o,F[1]=o>>>8&255,g.check=ng(g.check,F,2,0),o=0,E=0,g.mode=2;break}if(g.flags=0,g.head&&(g.head.done=!1),!(1&g.wrap)||(((255&o)<<8)+(o>>8))%31){A.msg="incorrect header check",g.mode=Sg;break}if(8!=(15&o)){A.msg="unknown compression method",g.mode=Sg;break}if(E-=4,w=8+(15&(o>>>=4)),0===g.wbits)g.wbits=w;else if(w>g.wbits){A.msg="invalid window size",g.mode=Sg;break}g.dmax=1<<w,A.adler=g.check=1,g.mode=512&o?10:fg,o=0,E=0;break;case 2:for(;E<16;){if(0===i)break A;i--,o+=t[e++]<<E,E+=8}if(g.flags=o,8!=(255&g.flags)){A.msg="unknown compression method",g.mode=Sg;break}if(57344&g.flags){A.msg="unknown header flags set",g.mode=Sg;break}g.head&&(g.head.text=o>>8&1),512&g.flags&&(F[0]=255&o,F[1]=o>>>8&255,g.check=ng(g.check,F,2,0)),o=0,E=0,g.mode=3;case 3:for(;E<32;){if(0===i)break A;i--,o+=t[e++]<<E,E+=8}g.head&&(g.head.time=o),512&g.flags&&(F[0]=255&o,F[1]=o>>>8&255,F[2]=o>>>16&255,F[3]=o>>>24&255,g.check=ng(g.check,F,4,0)),o=0,E=0,g.mode=4;case 4:for(;E<16;){if(0===i)break A;i--,o+=t[e++]<<E,E+=8}g.head&&(g.head.xflags=255&o,g.head.os=o>>8),512&g.flags&&(F[0]=255&o,F[1]=o>>>8&255,g.check=ng(g.check,F,2,0)),o=0,E=0,g.mode=5;case 5:if(1024&g.flags){for(;E<16;){if(0===i)break A;i--,o+=t[e++]<<E,E+=8}g.length=o,g.head&&(g.head.extra_len=o),512&g.flags&&(F[0]=255&o,F[1]=o>>>8&255,g.check=ng(g.check,F,2,0)),o=0,E=0}else g.head&&(g.head.extra=null);g.mode=6;case 6:if(1024&g.flags&&((r=g.length)>i&&(r=i),r&&(g.head&&(w=g.head.extra_len-g.length,g.head.extra||(g.head.extra=new Array(g.head.extra_len)),Ag(g.head.extra,t,e,r,w)),512&g.flags&&(g.check=ng(g.check,t,r,e)),i-=r,e+=r,g.length-=r),g.length))break A;g.length=0,g.mode=7;case 7:if(2048&g.flags){if(0===i)break A;r=0;do{w=t[e+r++],g.head&&w&&g.length<65536&&(g.head.name+=String.fromCharCode(w))}while(w&&r<i);if(512&g.flags&&(g.check=ng(g.check,t,r,e)),i-=r,e+=r,w)break A}else g.head&&(g.head.name=null);g.length=0,g.mode=8;case 8:if(4096&g.flags){if(0===i)break A;r=0;do{w=t[e+r++],g.head&&w&&g.length<65536&&(g.head.comment+=String.fromCharCode(w))}while(w&&r<i);if(512&g.flags&&(g.check=ng(g.check,t,r,e)),i-=r,e+=r,w)break A}else g.head&&(g.head.comment=null);g.mode=9;case 9:if(512&g.flags){for(;E<16;){if(0===i)break A;i--,o+=t[e++]<<E,E+=8}if(o!==(65535&g.check)){A.msg="header crc mismatch",g.mode=Sg;break}o=0,E=0}g.head&&(g.head.hcrc=g.flags>>9&1,g.head.done=!0),A.adler=g.check=0,g.mode=fg;break;case 10:for(;E<32;){if(0===i)break A;i--,o+=t[e++]<<E,E+=8}A.adler=g.check=kg(o),o=0,E=0,g.mode=11;case 11:if(0===g.havedict)return A.next_out=B,A.avail_out=Q,A.next_in=e,A.avail_in=i,g.hold=o,g.bits=E,2;A.adler=g.check=1,g.mode=fg;case fg:if(5===I||6===I)break A;case 13:if(g.last){o>>>=7&E,E-=7&E,g.mode=27;break}for(;E<3;){if(0===i)break A;i--,o+=t[e++]<<E,E+=8}switch(g.last=1&o,E-=1,3&(o>>>=1)){case 0:g.mode=14;break;case 1:if(Ug(g),g.mode=20,6===I){o>>>=2,E-=2;break A}break;case 2:g.mode=17;break;case 3:A.msg="invalid block type",g.mode=Sg}o>>>=2,E-=2;break;case 14:for(o>>>=7&E,E-=7&E;E<32;){if(0===i)break A;i--,o+=t[e++]<<E,E+=8}if((65535&o)!=(o>>>16^65535)){A.msg="invalid stored block lengths",g.mode=Sg;break}if(g.length=65535&o,o=0,E=0,g.mode=15,6===I)break A;case 15:g.mode=16;case 16:if(r=g.length){if(r>i&&(r=i),r>Q&&(r=Q),0===r)break A;Ag(C,t,e,r,B),i-=r,e+=r,Q-=r,B+=r,g.length-=r;break}g.mode=fg;break;case 17:for(;E<14;){if(0===i)break A;i--,o+=t[e++]<<E,E+=8}if(g.nlen=257+(31&o),o>>>=5,E-=5,g.ndist=1+(31&o),o>>>=5,E-=5,g.ncode=4+(15&o),o>>>=4,E-=4,g.nlen>286||g.ndist>30){A.msg="too many length or distance symbols",g.mode=Sg;break}g.have=0,g.mode=18;case 18:for(;g.have<g.ncode;){for(;E<3;){if(0===i)break A;i--,o+=t[e++]<<E,E+=8}g.lens[N[g.have++]]=7&o,o>>>=3,E-=3}for(;g.have<19;)g.lens[N[g.have++]]=0;if(g.lencode=g.lendyn,g.lenbits=7,S={bits:g.lenbits},f=yg(0,g.lens,0,19,g.lencode,0,g.work,S),g.lenbits=S.bits,f){A.msg="invalid code lengths set",g.mode=Sg;break}g.have=0,g.mode=19;case 19:for(;g.have<g.nlen+g.ndist;){for(;l=(G=g.lencode[o&(1<<g.lenbits)-1])>>>16&255,d=65535&G,!((c=G>>>24)<=E);){if(0===i)break A;i--,o+=t[e++]<<E,E+=8}if(d<16)o>>>=c,E-=c,g.lens[g.have++]=d;else{if(16===d){for(k=c+2;E<k;){if(0===i)break A;i--,o+=t[e++]<<E,E+=8}if(o>>>=c,E-=c,0===g.have){A.msg="invalid bit length repeat",g.mode=Sg;break}w=g.lens[g.have-1],r=3+(3&o),o>>>=2,E-=2}else if(17===d){for(k=c+3;E<k;){if(0===i)break A;i--,o+=t[e++]<<E,E+=8}E-=c,w=0,r=3+(7&(o>>>=c)),o>>>=3,E-=3}else{for(k=c+7;E<k;){if(0===i)break A;i--,o+=t[e++]<<E,E+=8}E-=c,w=0,r=11+(127&(o>>>=c)),o>>>=7,E-=7}if(g.have+r>g.nlen+g.ndist){A.msg="invalid bit length repeat",g.mode=Sg;break}for(;r--;)g.lens[g.have++]=w}}if(g.mode===Sg)break;if(0===g.lens[256]){A.msg="invalid code -- missing end-of-block",g.mode=Sg;break}if(g.lenbits=9,S={bits:g.lenbits},f=yg(1,g.lens,0,g.nlen,g.lencode,0,g.work,S),g.lenbits=S.bits,f){A.msg="invalid literal/lengths set",g.mode=Sg;break}if(g.distbits=6,g.distcode=g.distdyn,S={bits:g.distbits},f=yg(2,g.lens,g.nlen,g.ndist,g.distcode,0,g.work,S),g.distbits=S.bits,f){A.msg="invalid distances set",g.mode=Sg;break}if(g.mode=20,6===I)break A;case 20:g.mode=21;case 21:if(i>=6&&Q>=258){A.next_out=B,A.avail_out=Q,A.next_in=e,A.avail_in=i,g.hold=o,g.bits=E,hg(A,a),B=A.next_out,C=A.output,Q=A.avail_out,e=A.next_in,t=A.input,i=A.avail_in,o=g.hold,E=g.bits,g.mode===fg&&(g.back=-1);break}for(g.back=0;l=(G=g.lencode[o&(1<<g.lenbits)-1])>>>16&255,d=65535&G,!((c=G>>>24)<=E);){if(0===i)break A;i--,o+=t[e++]<<E,E+=8}if(l&&!(240&l)){for(D=c,u=l,y=d;l=(G=g.lencode[y+((o&(1<<D+u)-1)>>D)])>>>16&255,d=65535&G,!(D+(c=G>>>24)<=E);){if(0===i)break A;i--,o+=t[e++]<<E,E+=8}o>>>=D,E-=D,g.back+=D}if(o>>>=c,E-=c,g.back+=c,g.length=d,0===l){g.mode=26;break}if(32&l){g.back=-1,g.mode=fg;break}if(64&l){A.msg="invalid literal/length code",g.mode=Sg;break}g.extra=15&l,g.mode=22;case 22:if(g.extra){for(k=g.extra;E<k;){if(0===i)break A;i--,o+=t[e++]<<E,E+=8}g.length+=o&(1<<g.extra)-1,o>>>=g.extra,E-=g.extra,g.back+=g.extra}g.was=g.length,g.mode=23;case 23:for(;l=(G=g.distcode[o&(1<<g.distbits)-1])>>>16&255,d=65535&G,!((c=G>>>24)<=E);){if(0===i)break A;i--,o+=t[e++]<<E,E+=8}if(!(240&l)){for(D=c,u=l,y=d;l=(G=g.distcode[y+((o&(1<<D+u)-1)>>D)])>>>16&255,d=65535&G,!(D+(c=G>>>24)<=E);){if(0===i)break A;i--,o+=t[e++]<<E,E+=8}o>>>=D,E-=D,g.back+=D}if(o>>>=c,E-=c,g.back+=c,64&l){A.msg="invalid distance code",g.mode=Sg;break}g.offset=d,g.extra=15&l,g.mode=24;case 24:if(g.extra){for(k=g.extra;E<k;){if(0===i)break A;i--,o+=t[e++]<<E,E+=8}g.offset+=o&(1<<g.extra)-1,o>>>=g.extra,E-=g.extra,g.back+=g.extra}if(g.offset>g.dmax){A.msg="invalid distance too far back",g.mode=Sg;break}g.mode=25;case 25:if(0===Q)break A;if(r=a-Q,g.offset>r){if((r=g.offset-r)>g.whave&&g.sane){A.msg="invalid distance too far back",g.mode=Sg;break}r>g.wnext?(r-=g.wnext,n=g.wsize-r):n=g.wnext-r,r>g.length&&(r=g.length),h=g.window}else h=C,n=B-g.offset,r=g.length;r>Q&&(r=Q),Q-=r,g.length-=r;do{C[B++]=h[n++]}while(--r);0===g.length&&(g.mode=21);break;case 26:if(0===Q)break A;C[B++]=g.length,Q--,g.mode=21;break;case 27:if(g.wrap){for(;E<32;){if(0===i)break A;i--,o|=t[e++]<<E,E+=8}if(a-=Q,A.total_out+=a,g.total+=a,a&&(A.adler=g.check=g.flags?ng(g.check,C,a,B-a):ag(g.check,C,a,B-a)),a=Q,(g.flags?o:kg(o))!==g.check){A.msg="incorrect data check",g.mode=Sg;break}o=0,E=0}g.mode=28;case 28:if(g.wrap&&g.flags){for(;E<32;){if(0===i)break A;i--,o+=t[e++]<<E,E+=8}if(o!==(4294967295&g.total)){A.msg="incorrect length check",g.mode=Sg;break}o=0,E=0}g.mode=29;case 29:f=1;break A;case Sg:f=-3;break A;case 31:return-4;default:return wg}return A.next_out=B,A.avail_out=Q,A.next_in=e,A.avail_in=i,g.hold=o,g.bits=E,(g.wsize||a!==A.avail_out&&g.mode<Sg&&(g.mode<27||4!==I))&&Mg(A,A.output,A.next_out,a-A.avail_out),s-=A.avail_in,a-=A.avail_out,A.total_in+=s,A.total_out+=a,g.total+=a,g.wrap&&a&&(A.adler=g.check=g.flags?ng(g.check,C,a,A.next_out-a):ag(g.check,C,a,A.next_out-a)),A.data_type=g.bits+(g.last?64:0)+(g.mode===fg?128:0)+(20===g.mode||15===g.mode?256:0),(0===s&&0===a||4===I)&&0===f&&(f=-5),f}function Jg(A,I){var g,t=I.length;return A&&A.state?0!==(g=A.state).wrap&&11!==g.mode?wg:11===g.mode&&ag(1,I,t,0)!==g.check?-3:Mg(A,I,t,t)?(g.mode=31,-4):(g.havedict=1,0):wg}var Kg={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"};function Yg(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}var vg=Object.prototype.toString;class bg{constructor(A){if(!(this instanceof bg))return new bg(A);this.options=function(A){for(var I=Array.prototype.slice.call(arguments,1);I.length;){var g=I.shift();if(g){if("object"!=typeof g)throw new TypeError(g+"must be non-object");for(var t in g)ZI(g,t)&&(A[t]=g[t])}}return A}({chunkSize:16384,windowBits:0,to:""},A||{});var I=this.options;I.raw&&I.windowBits>=0&&I.windowBits<16&&(I.windowBits=-I.windowBits,0===I.windowBits&&(I.windowBits=-15)),!(I.windowBits>=0&&I.windowBits<16)||A&&A.windowBits||(I.windowBits+=32),I.windowBits>15&&I.windowBits<48&&(15&I.windowBits||(I.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Yg,this.strm.avail_out=0;var g,t,C,e=Ng(this.strm,I.windowBits);if(0!==e)throw new Error(Kg[e]);if(this.header=new sg,g=this.strm,t=this.header,g&&g.state&&2&(C=g.state).wrap&&(C.head=t,t.done=!1),I.dictionary&&("string"==typeof I.dictionary?I.dictionary=Qg(I.dictionary):"[object ArrayBuffer]"===vg.call(I.dictionary)&&(I.dictionary=new Uint8Array(I.dictionary)),I.raw&&0!==(e=Jg(this.strm,I.dictionary))))throw new Error(Kg[e])}push(A,I){var g,t,C,e,B,i,Q=this.strm,o=this.options.chunkSize,E=this.options.dictionary,s=!1;if(this.ended)return!1;t=I===~~I?I:!0===I?4:0,"string"==typeof A?Q.input=function(A){for(var I=new Uint8Array(A.length),g=0,t=I.length;g<t;g++)I[g]=A.charCodeAt(g);return I}(A):"[object ArrayBuffer]"===vg.call(A)?Q.input=new Uint8Array(A):Q.input=A,Q.next_in=0,Q.avail_in=Q.input.length;do{if(0===Q.avail_out&&(Q.output=gg(o),Q.next_out=0,Q.avail_out=o),2===(g=Lg(Q,0))&&E&&(i="string"==typeof E?Qg(E):"[object ArrayBuffer]"===vg.call(E)?new Uint8Array(E):E,g=Jg(this.strm,i)),-5===g&&!0===s&&(g=0,s=!1),1!==g&&0!==g)return this.onEnd(g),this.ended=!0,!1;Q.next_out&&(0!==Q.avail_out&&1!==g&&(0!==Q.avail_in||4!==t&&2!==t)||("string"===this.options.to?(C=Eg(Q.output,Q.next_out),e=Q.next_out-C,B=og(Q.output,C),Q.next_out=e,Q.avail_out=o-e,e&&Ag(Q.output,Q.output,C,e,0),this.onData(B)):this.onData(XI(Q.output,Q.next_out)))),0===Q.avail_in&&0===Q.avail_out&&(s=!0)}while((Q.avail_in>0||0===Q.avail_out)&&1!==g);return 1===g&&(t=4),4===t?(g=function(A){if(!A||!A.state)return wg;var I=A.state;return I.window&&(I.window=null),A.state=null,0}(this.strm),this.onEnd(g),this.ended=!0,0===g):2!==t||(this.onEnd(0),Q.avail_out=0,!0)}onData(A){this.chunks.push(A)}onEnd(A){0===A&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=Ig(this.chunks)),this.chunks=[],this.err=A,this.msg=this.strm.msg}}var xg=function(A,I){var g=new bg(I);if(g.push(A,!0),g.err)throw g.msg||Kg[g.err];return g.result},Hg={d:(A,I)=>{for(var g in I)Hg.o(I,g)&&!Hg.o(A,g)&&Object.defineProperty(A,g,{enumerable:!0,get:I[g]})},o:(A,I)=>Object.prototype.hasOwnProperty.call(A,I),r:A=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(A,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(A,"__esModule",{value:!0})}},qg={};Hg.r(qg),Hg.d(qg,{ChunkSliceResult:()=>Tg,DecompressResult:()=>_g,__wbg_Error_8c4e43fe74559d73:()=>Vg,__wbg___wbindgen_throw_be289d5034ed271b:()=>Zg,__wbg_set_wasm:()=>ht,decompress_all:()=>Wg,decompress_block:()=>Pg,decompress_chunk_slice:()=>Og});class Tg{static __wrap(A){A>>>=0;const I=Object.create(Tg.prototype);return I.__wbg_ptr=A,Xg.register(I,I.__wbg_ptr,I),I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,Xg.unregister(this),A}free(){const A=this.__destroy_into_raw();rt.__wbg_chunksliceresult_free(A,0)}get buffer(){try{const t=rt.__wbindgen_add_to_stack_pointer(-16);rt.chunksliceresult_buffer(t,this.__wbg_ptr);var A=It().getInt32(t+0,!0),I=It().getInt32(t+4,!0),g=$g(A,I).slice();return rt.__wbindgen_export(A,1*I,1),g}finally{rt.__wbindgen_add_to_stack_pointer(16)}}get cpositions(){try{const t=rt.__wbindgen_add_to_stack_pointer(-16);rt.chunksliceresult_cpositions(t,this.__wbg_ptr);var A=It().getInt32(t+0,!0),I=It().getInt32(t+4,!0),g=jg(A,I).slice();return rt.__wbindgen_export(A,8*I,8),g}finally{rt.__wbindgen_add_to_stack_pointer(16)}}get dpositions(){try{const t=rt.__wbindgen_add_to_stack_pointer(-16);rt.chunksliceresult_dpositions(t,this.__wbg_ptr);var A=It().getInt32(t+0,!0),I=It().getInt32(t+4,!0),g=jg(A,I).slice();return rt.__wbindgen_export(A,8*I,8),g}finally{rt.__wbindgen_add_to_stack_pointer(16)}}}Symbol.dispose&&(Tg.prototype[Symbol.dispose]=Tg.prototype.free);class _g{static __wrap(A){A>>>=0;const I=Object.create(_g.prototype);return I.__wbg_ptr=A,zg.register(I,I.__wbg_ptr,I),I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,zg.unregister(this),A}free(){const A=this.__destroy_into_raw();rt.__wbg_decompressresult_free(A,0)}get bytes_read(){return rt.decompressresult_bytes_read(this.__wbg_ptr)>>>0}get data(){try{const t=rt.__wbindgen_add_to_stack_pointer(-16);rt.decompressresult_data(t,this.__wbg_ptr);var A=It().getInt32(t+0,!0),I=It().getInt32(t+4,!0),g=$g(A,I).slice();return rt.__wbindgen_export(A,1*I,1),g}finally{rt.__wbindgen_add_to_stack_pointer(16)}}}function Wg(A){try{const e=rt.__wbindgen_add_to_stack_pointer(-16),B=Qt(A,rt.__wbindgen_export2),i=nt;rt.decompress_all(e,B,i);var I=It().getInt32(e+0,!0),g=It().getInt32(e+4,!0),t=It().getInt32(e+8,!0);if(It().getInt32(e+12,!0))throw ot(t);var C=$g(I,g).slice();return rt.__wbindgen_export(I,1*g,1),C}finally{rt.__wbindgen_add_to_stack_pointer(16)}}function Pg(A){try{const t=rt.__wbindgen_add_to_stack_pointer(-16),C=Qt(A,rt.__wbindgen_export2),e=nt;rt.decompress_block(t,C,e);var I=It().getInt32(t+0,!0),g=It().getInt32(t+4,!0);if(It().getInt32(t+8,!0))throw ot(g);return _g.__wrap(I)}finally{rt.__wbindgen_add_to_stack_pointer(16)}}function Og(A,I,g,t,C){try{const i=rt.__wbindgen_add_to_stack_pointer(-16),Q=Qt(A,rt.__wbindgen_export2),o=nt;rt.decompress_chunk_slice(i,Q,o,I,g,t,C);var e=It().getInt32(i+0,!0),B=It().getInt32(i+4,!0);if(It().getInt32(i+8,!0))throw ot(B);return Tg.__wrap(e)}finally{rt.__wbindgen_add_to_stack_pointer(16)}}function Vg(A,I){return function(A){it===Bt.length&&Bt.push(Bt.length+1);const I=it;return it=Bt[I],Bt[I]=A,I}(Error(tt(A,I)))}function Zg(A,I){throw new Error(tt(A,I))}Symbol.dispose&&(_g.prototype[Symbol.dispose]=_g.prototype.free);const Xg="undefined"==typeof FinalizationRegistry?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(A=>rt.__wbg_chunksliceresult_free(A>>>0,1)),zg="undefined"==typeof FinalizationRegistry?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(A=>rt.__wbg_decompressresult_free(A>>>0,1));function jg(A,I){return A>>>=0,function(){null!==gt&&0!==gt.byteLength||(gt=new Float64Array(rt.memory.buffer));return gt}().subarray(A/8,A/8+I)}function $g(A,I){return A>>>=0,et().subarray(A/1,A/1+I)}let At=null;function It(){return(null===At||!0===At.buffer.detached||void 0===At.buffer.detached&&At.buffer!==rt.memory.buffer)&&(At=new DataView(rt.memory.buffer)),At}let gt=null;function tt(A,I){return function(A,I){at+=I,at>=st&&(Et=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}),Et.decode(),at=I);return Et.decode(et().subarray(A,A+I))}(A>>>=0,I)}let Ct=null;function et(){return null!==Ct&&0!==Ct.byteLength||(Ct=new Uint8Array(rt.memory.buffer)),Ct}let Bt=new Array(128).fill(void 0);Bt.push(void 0,null,!0,!1);let it=Bt.length;function Qt(A,I){const g=I(1*A.length,1)>>>0;return et().set(A,g/1),nt=A.length,g}function ot(A){const I=function(A){return Bt[A]}(A);return function(A){A<132||(Bt[A]=it,it=A)}(A),I}let Et=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});Et.decode();const st=2146435072;let at=0;let rt,nt=0;function ht(A){rt=A}let ct=null,lt=null;async function dt(){return ct||(lt||(lt=(async()=>{const A=await fetch("data:application/wasm;base64,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AAsgASADNgIEIAEgAjYCACABQfiSwAAgACgCBCAAKAIIIgAtAAggAC0ACRAeAAuLAQEBfyMAQRBrIgMkAAJAIAIgAWoiASACTw0AQQBBABBNAAsgA0EEaiAAKAIAIgIgACgCBCABIAJBAXQiAiABIAJLGyICQQggAkEISxsiAkEBQQEQIAJAIAMoAgRBAUcNACADKAIIIAMoAgwQTQALIAMoAgghASAAIAI2AgAgACABNgIEIANBEGokAAuHAQEBfyMAQSBrIgIkAAJAAkAgACgCAEGAgICAeEYNACABIAAoAgQgACgCCBBSIQAMAQsgAkEIakEIaiAAKAIMKAIAIgBBCGopAgA3AwAgAkEIakEQaiAAQRBqKQIANwMAIAIgACkCADcDCCABKAIAIAEoAgQgAkEIahALIQALIAJBIGokACAAC3wBAX8CQCAAKAIAIgAoAgwiAUUNACAAKAIQIAFBARBWCwJAIAAoAhgiAUUNACAAKAIcIAFBA3RBCBBWCwJAIAAoAiQiAUUNACAAKAIoIAFBA3RBCBBWCwJAIABBf0YNACAAIAAoAgRBf2oiATYCBCABDQAgAEEwQQQQVgsLhAEBAn8jAEEQayIGJABBACEHIAZBADYCDAJAAkACQAJAAkAgASgCACACIAMgBCAFIAZBDGoQUA4EAQIAAwALQZCFwABB7ABB/IXAABA/AAsgACAGKAIMNgIEDAILIABBADoAAUEBIQcMAQtBASEHIABBAToAAQsgACAHOgAAIAZBEGokAAtrAQN/IwBBEGsiASQAIAFBBGogACgCACICIAAoAgQgAkEBdCICQQQgAkEESxsiAkEIQQgQIAJAIAEoAgRBAUcNACABKAIIIAEoAgwQTQALIAEoAgghAyAAIAI2AgAgACADNgIEIAFBEGokAAtoAQF/IwBBMGsiAiQAAkAQaEH/AXENACACQTBqJAAPCyACIAE2AiQgAkECNgIQIAJBpJLAADYCDCACQgE3AhggAkEErUIghiACQSRqrYQ3AyggAiACQShqNgIUIAJBDGpBtJLAABBAAAtoAgF/AX4jAEEwayIDJAAgAyABNgIEIAMgADYCACADQQI2AgwgA0GcmMAANgIIIANCAjcCFCADQQStQiCGIgQgA62ENwMoIAMgBCADQQRqrYQ3AyAgAyADQSBqNgIQIANBCGogAhBA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ABWAAAAWgAAAF4AAABiAAAAZgAAAGoAAABuAAAAcgAAAHYAAAB6AAAAfgAAAIIAAACGAAAAigAAAI4AAACSAAAAlgAAAJoAAACeAAAAogAAAKYAAACqAAAArgAAALIAAAC2AAAAugAAAL4AAADCAAAAxgAAAMoAAADOAAAA0gAAANYAAADaAAAA3gAAAOIAAADmAAAA6gAAAO4AAADyAAAA9gAAAPoAAAD+AAABAgAAAQYAAAEKAAABDgAAARIAAAEWAAABGgAAAR4AAAEiAAABJgAAASoAAAEuAAABMgAAATYAAAE6AAABPgAAAUIAAAFGAAABSgAAAU4AAAFSAAABVgAAAVoAAAFeAAABYgAAAWYAAAFqAAABbgAAAXIAAAF2AAABegAAAX4AAAGCAAABhgAAAYoAAAGOAAABkgAAAZYAAAGaAAABngAAAaIAAAGmAAABqgAAAa4AAAGyAAABtgAAAboAAAG+AAABwgAAAcYAAAHKAAABzgAAAdIAAAHWAAAB2gAAAd4AAAHiAAAB5gAAAeoAAAHuAAAB8gAAAfYAAAH6AAAB/gAAAgIAAAIGAAACCgAAAg4AAAISAAACFgAAAhoAAAIeAAACIgAAAiYAAAIqAAACLgAAAjIAAAI2AAACOgAAAj4AAAJCAAACRgAAAkoAAAJOAAACUgAAAlYAAAJaAAACXgAAAmIAAAJmAAACagAAAm4AAAJyAAACdgAAAnoAAAJ+AAACggAAAoYAAAKKAAACjgAAApIAAAKWAAACmgAAAp4AAAKiAAACpgAAAqoAAAKuAAACsgAAArYAAAK6AAACvgAAAsIAAALGAAACygAAAs4AAALSAAAC1gAAAtoAAALeAAAC4gAAAuYAAALqAAAC7gAAAvIAAAL2AAAC+gAAAv4AAAMCAAADBgAAAwoAAAMOAAADEgAAAxYAAAMaAAADHgAAAyIAAAMmAAADKgAAAy4AAAMyAAADNgAAAzoAAAM+AAADQgAAA0YAAANKAAADTgAAA1IAAANWAAADWgAAA14AAANiAAADZgAAA2oAAANuAAADcgAAA3YAAAN6AAADfgAAA4IAAAOGAAADigAAA44AAAOSAAADlgAAA5oAAAOeAAADogAAA6YAAAOqAAADrgAAA7IAAAO2AAADugAAA74AAAPCAAADxgAAA8oAAAPOAAAD0gAAA9YAAAPaAAAD3gAAA+IAAAPmAAAD6gAAA+4AAAPyAAAD9gAAA/oAAAP+AAKAAAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAQALAAEADQABAA8AAQARAAIAEwACABcAAgAbAAIAHwADACMAAwArAAMAMwADADsABABDAAQAUwAEAGMABABzAAUAgwAFAKMABQDDAAUA4wAAAAIBAAACAQAAAgF8/YsyV+ZX+QLfRL/jSOevbV3L1ixQ62N4QaZXcRuLuW1lbW9yeSBhbGxvY2F0aW9uIG9mICBieXRlcyBmYWlsZWQAAAAJEAAVAAAAFQkQAA0AAAAGARAAGAAAAGQBAAAJAAAAAAAAAAgAAAAEAAAABQAAAAYAAAAHAAAACAAAAAkAAAAMAAAABAAAAAoAAAALAAAADAAAAAAAAAAIAAAABAAAAA0AAAAOAAAADwAAABAAAAARAAAAEAAAAAQAAAASAAAAEwAAABQAAAAIAAAAAAAAAAgAAAAEAAAAFQAAAGFzc2VydGlvbiBmYWlsZWQ6IHBzaXplID49IHNpemUgKyBtaW5fb3ZlcmhlYWQAANsAEAAqAAAAsQQAAAkAAABhc3NlcnRpb24gZmFpbGVkOiBwc2l6ZSA8PSBzaXplICsgbWF4X292ZXJoZWFkAADbABAAKgAAALcEAAANAAAACQAAAAwAAAAEAAAAFgAAAGNhcGFjaXR5IG92ZXJmbG93AAAAUAoQABEAAAC6ABAAIAAAABwAAAAFAAAAAQAAAAAAAAAwMDAxMDIwMzA0MDUwNjA3MDgwOTEwMTExMjEzMTQxNTE2MTcxODE5MjAyMTIyMjMyNDI1MjYyNzI4MjkzMDMxMzIzMzM0MzUzNjM3MzgzOTQwNDE0MjQzNDQ0NTQ2NDc0ODQ5NTA1MTUyNTM1NDU1NTY1NzU4NTk2MDYxNjI2MzY0NjU2NjY3Njg2OTcwNzE3MjczNzQ3NTc2Nzc3ODc5ODA4MTgyODM4NDg1ODY4Nzg4ODk5MDkxOTI5Mzk0OTU5Njk3OTg5OXJhbmdlIGVuZCBpbmRleCAgb3V0IG9mIHJhbmdlIGZvciBzbGljZSBvZiBsZW5ndGggAABMCxAAEAAAAFwLEAAiAAAAc2xpY2UgaW5kZXggc3RhcnRzIGF0ICBidXQgZW5kcyBhdCAAkAsQABYAAACmCxAADQAAAHJhbmdlIHN0YXJ0IGluZGV4IAAAxAsQABIAAABcCxAAIgAAAGluZGV4IG91dCBvZiBib3VuZHM6IHRoZSBsZW4gaXMgIGJ1dCB0aGUgaW5kZXggaXMgAADoCxAAIAAAAAgMEAASAAAAUmVmQ2VsbCBhbHJlYWR5IGJvcnJvd2VkAEHEmMAACwQEAAAAACkEbmFtZQEiAVgfX193YmluZGdlbl9hZGRfdG9fc3RhY2tfcG9pbnRlcgA8CXByb2R1Y2VycwEMcHJvY2Vzc2VkLWJ5AgZ3YWxydXMGMC4yNC40DHdhc20tYmluZGdlbgcwLjIuMTA4"),I=await A.arrayBuffer(),{instance:g}=await WebAssembly.instantiate(I,{"./bgzf_wasm_bg.js":qg});return ct=g.exports,ht(ct),ct})()),lt)}async function Dt(A){try{return await async function(A){return await dt(),Wg(A)}(A)}catch(g){if(/invalid bgzf header/.exec(`${g}`)){if((I=A).length>=2&&31===I[0]&&139===I[1])return async function(A){if("undefined"!=typeof DecompressionStream){const I=new DecompressionStream("gzip"),g=I.writable.getWriter(),t=g.write(A).then(()=>g.close()),C=[],e=I.readable.getReader();for(;;){const{done:A,value:I}=await e.read();if(A)break;C.push(I)}await t;const B=C.reduce((A,I)=>A+I.length,0),i=new Uint8Array(B);let Q=0;for(const A of C)i.set(A,Q),Q+=A.length;return i}return xg(A,void 0)}(A);throw new Error("problem decompressing block: not a valid bgzf or gzip block")}if(/invalid gzip header/.exec(`${g}`))throw new Error("problem decompressing block: incorrect gzip header check");throw g}var I}async function ut(A,I,g){try{const{minv:g,maxv:t}=I,C=await async function(A,I,g,t,C){await dt();const e=Og(A,I,g,t,C),B=e.buffer,i=[...e.cpositions],Q=[...e.dpositions];return e.free(),{buffer:B,cpositions:i,dpositions:Q}}(A,g.blockPosition,g.dataPosition,t.blockPosition,t.dataPosition);return{buffer:C.buffer,cpositions:C.cpositions,dpositions:C.dpositions}}catch(A){if(/invalid gzip header/.exec(`${A}`))throw new Error("problem decompressing block: incorrect gzip header check");throw A}}class yt{filehandle;gzi;constructor({filehandle:A,gziFilehandle:I}){this.filehandle=A,this.gzi=new VI({filehandle:I})}async _readAndUncompressBlock(A,I){let g=I;g||(g=(await this.filehandle.stat()).size);const t=g-A;return Dt(await this.filehandle.read(t,A))}async read(A,I){const g=await this.gzi.getRelevantBlocksForRead(A,I),t=[];for(let C=0;C<g.length-1;C+=1){const e=await this._readAndUncompressBlock(g[C][0],g[C+1][0]),[,B]=g[C],i=B>=I?0:I-B,Q=Math.min(I+A,B+e.length)-B;i>=0&&i<e.length&&t.push(e.subarray(i,Q))}return function(A,I){const g=new Uint8Array(I??function(A){let I=0;for(const g of A)I+=g.length;return I}(A));let t=0;for(const I of A)g.set(I,t),t+=I.length;return g}(t)}}function wt(A,I,g,t){return A+I*Math.floor(t/g)+t%g}class ft{constructor({fasta:A,fai:I,path:g,faiPath:t}){if(A)this.fasta=A;else{if(!g)throw new Error("Need to pass filehandle for fasta or path to localfile");this.fasta=new IA(g)}if(I)this.fai=I;else if(t)this.fai=new IA(t);else{if(!g)throw new Error("Need to pass filehandle for fai or path to localfile");this.fai=new IA(`${g}.fai`)}}async getIndexes(A){return this.indexes??(this.indexes=async function(A,I={}){const g=new TextDecoder("utf8").decode(await A.readFile(I)),t=new Map;for(const A of g.split("\n")){const I=A.replace(/\r$/,"").trim();if(!I)continue;const[g,C,e,B,i]=I.split("\t");if(g.startsWith(">"))throw new Error("found > in sequence name, might have supplied FASTA file for the FASTA index");const Q=+C,o=+B;if(Q>0&&0===o)throw new Error(`Invalid FAI index for "${g}": LINEBASES is 0 for a non-empty sequence. The FASTA file may be missing a trailing newline — try regenerating the .fai index.`);t.set(g,{length:Q,offset:+e,lineLength:o,lineBytes:+i})}return t}(this.fai,A).catch(A=>{throw this.indexes=void 0,A})),this.indexes}async getSequenceNames(A){return[...(await this.getIndexes(A)).keys()]}async getSequenceSizes(A){const I=await this.getIndexes(A);return Object.fromEntries([...I.entries()].map(([A,I])=>[A,I.length]))}async getSequenceSize(A,I){return(await this.getIndexes(I)).get(A)?.length}async hasReferenceSequence(A,I){return(await this.getIndexes(I)).has(A)}async getResiduesByName(A,I,g,t){const C=(await this.getIndexes(t)).get(A);if(void 0!==C)return this.fetchFromIndex(C,I,g,t)}async getSequence(A,I,g,t){return this.getResiduesByName(A,I,g,t)}async fetchFromIndex(A,I=0,g,t){if(I<0)throw new TypeError("regionStart cannot be less than 0");const C=Math.min(g??A.length,A.length);if(I>=C)return"";const e=wt(A.offset,A.lineBytes,A.lineLength,I),B=wt(A.offset,A.lineBytes,A.lineLength,C)-e,i=new TextDecoder("utf8").decode(await this.fasta.read(B,e,t)).replace(/\s+/g,"");if(/[^\x20-\x7e]/.test(i.slice(0,1e3)))throw new Error("Non-ASCII characters detected in sequence. The file may be gzip compressed. Use BgzipIndexedFasta for bgzip files, or decompress the file.");return i}}class St extends ft{constructor({fasta:A,path:I,fai:g,faiPath:t,gzi:C,gziPath:e}){super({fasta:A,path:I,fai:g,faiPath:t}),A&&C?this.fasta=new yt({filehandle:A,gziFilehandle:C}):I&&e&&(this.fasta=new yt({filehandle:new IA(I),gziFilehandle:new IA(e)}))}}const kt=new Map;function Gt(A,I,g,t){const C=null!=I?I:A+".fai";return async(I,e)=>{var B;const i=function(A,I,g,t){const C=A;let e=kt.get(C);if(!e){const B=t?{fetch:t}:void 0;e=g?new St({fasta:new AA(A,B),fai:new AA(I,B),gzi:new AA(g,B)}):new ft({fasta:new AA(A,B),fai:new AA(I,B)}),kt.set(C,e)}return e}(A,C,g,t);try{const A=await i.getSequence(I.chr,I.start,I.end,{signal:e});return null!=A?A:""}catch(I){throw I instanceof Error&&("AbortError"===I.name||(null===(B=I.message)||void 0===B?void 0:B.includes("aborted")))&&kt.delete(A),I}}}const Ft={hg38:"Human (GRCh38/hg38)"};class Nt{constructor(A,I,g){var t;this._maneSource=null,this._rsdbSource=null,this.id=A,this.name=null==g?void 0:g.name,this.nameSet=null==g?void 0:g.nameSet,this.chromSizes=I,this.chromosomeNames=JI(I),this.cumulativeOffsets=function(A){const I=JI(A),g={};let t=0;for(const C of I)g[C]=Math.floor(t),t+=A[C];return{offsets:g,totalLength:Math.floor(t),chromosomeNames:I}}(I),this.sequence=null==g?void 0:g.sequence,this._chromosomes=new Map;const C=Object.keys(I),e=new Set(this.chromosomeNames);let B=0;for(const A of this.chromosomeNames)this._chromosomes.set(A,{name:A,bpLength:I[A],order:B++});for(const A of C)e.has(A)||this._chromosomes.set(A,{name:A,bpLength:I[A],order:B++});this._chromAlias=null!==(t=null==g?void 0:g.chromAlias)&&void 0!==t?t:new j(C,A),this._cytobands=null==g?void 0:g.cytobands,this._maneBbURL=null==g?void 0:g.maneBbURL,this._rsdbURL=null==g?void 0:g.rsdbURL,this._fetchImpl=null==g?void 0:g.fetchImpl}getChromosome(A){return this._chromosomes.get(A)}getChromosomeLength(A){return this.chromSizes[A]}getChromosomeName(A){var I;return null!==(I=this._chromAlias.getChromosomeName(A))&&void 0!==I?I:A}getAliasRecord(A){return this._chromAlias.getAliasRecord(A)}getCytobands(A){var I;return null===(I=this._cytobands)||void 0===I?void 0:I.get(A)}async getManeTranscript(A){if(!this._maneSource&&this._maneBbURL&&(this._maneSource=new UI(this._maneBbURL,this._fetchImpl)),this._maneSource){const I=await this._maneSource.search(A);if(I)return I}if(!this._rsdbSource&&this._rsdbURL&&(this._rsdbSource=new UI(this._rsdbURL,this._fetchImpl)),this._rsdbSource){const I=await this._rsdbSource.search(A);if(I)return I}return null}async getManeTranscriptAt(A,I){if(!this._maneSource&&this._maneBbURL&&(this._maneSource=new UI(this._maneBbURL,this._fetchImpl)),this._maneSource)try{const g=await this._maneSource.getFeatures(A,I,I+1);for(const A of g)if(A.start<=I&&A.end>=I)return A}catch(A){console.error("Error fetching MANE transcript",A)}return null}}const mt=function(A){var I,g;const t=null!==(I=A.id)&&void 0!==I?I:"custom",C=null!==(g=A.name)&&void 0!==g?g:Ft[t],e=function(A){var I;const g=[A.sequenceProvider&&"sequenceProvider",A.twoBitURL&&"twoBitURL",A.fastaURL&&"fastaURL",A.ucscGenome&&"ucscGenome"].filter(Boolean);if(g.length>1)throw new Error(`GenomeConfig has multiple sequence sources: ${g.join(", ")}. Set exactly one of: sequenceProvider, twoBitURL, fastaURL, or ucscGenome.`);if(A.sequenceProvider)return A.sequenceProvider;if(A.twoBitURL)return vI((t=A.twoBitURL,C=A.fetchImpl,async A=>{var I;const g=WI(t,C);try{const I=await g.getSequence(A.chr,A.start,A.end);return null!=I?I:""}catch(A){throw A instanceof Error&&("AbortError"===A.name||(null===(I=A.message)||void 0===I?void 0:I.includes("aborted")))&&(TI.delete(t),_I.delete(t)),A}}));var t,C;if(A.fastaURL)return vI(Gt(A.fastaURL,A.indexURL,A.compressedIndexURL,A.fetchImpl));const e=null!==(I=A.ucscGenome)&&void 0!==I?I:A.id;if(e)return vI((A,I)=>async function(A,I={},g){var t;const C=`https://api.genome.ucsc.edu/getData/sequence?genome=${null!==(t=I.genome)&&void 0!==t?t:"hg38"}&chrom=${A.chr}&start=${A.start}&end=${A.end}`,e=await fetch(C,g?{signal:g}:void 0);if(!e.ok)throw new Error(`UCSC sequence API error: ${e.status} ${e.statusText}`);return(await e.json()).dna}(A,{genome:e},I));return}(A);return new Nt(t,A.chromSizes,{name:C,sequence:e,cytobands:A.cytobands,nameSet:A.nameSet})}({id:"hg38",chromSizes:{chr1:248956422,chr2:242193529,chr3:198295559,chr4:190214555,chr5:181538259,chr6:170805979,chr7:159345973,chr8:145138636,chr9:138394717,chr10:133797422,chr11:135086622,chr12:133275309,chr13:114364328,chr14:107043718,chr15:101991189,chr16:90338345,chr17:83257441,chr18:80373285,chr19:58617616,chr20:64444167,chr21:46709983,chr22:50818468,chrX:156040895,chrY:57227415,chrM:16569,chr11_KI270721v1_random:100316,chr14_GL000009v2_random:201709,chr14_GL000225v1_random:211173,chr14_KI270722v1_random:194050,chr14_GL000194v1_random:191469,chr14_KI270723v1_random:38115,chr14_KI270724v1_random:39555,chr14_KI270725v1_random:172810,chr14_KI270726v1_random:43739,chr15_KI270727v1_random:448248,chr16_KI270728v1_random:1872759,chr17_GL000205v2_random:185591,chr17_KI270729v1_random:280839,chr17_KI270730v1_random:112551,chr1_KI270706v1_random:175055,chr1_KI270707v1_random:32032,chr1_KI270708v1_random:127682,chr1_KI270709v1_random:66860,chr1_KI270710v1_random:40176,chr1_KI270711v1_random:42210,chr1_KI270712v1_random:176043,chr1_KI270713v1_random:40745,chr1_KI270714v1_random:41717,chr22_KI270731v1_random:150754,chr22_KI270732v1_random:41543,chr22_KI270733v1_random:179772,chr22_KI270734v1_random:165050,chr22_KI270735v1_random:42811,chr22_KI270736v1_random:181920,chr22_KI270737v1_random:103838,chr22_KI270738v1_random:99375,chr22_KI270739v1_random:73985,chr2_KI270715v1_random:161471,chr2_KI270716v1_random:153799,chr3_GL000221v1_random:155397,chr4_GL000008v2_random:209709,chr5_GL000208v1_random:92689,chr9_KI270717v1_random:40062,chr9_KI270718v1_random:38054,chr9_KI270719v1_random:176845,chr9_KI270720v1_random:39050,chr1_KI270762v1_alt:354444,chr1_KI270766v1_alt:256271,chr1_KI270760v1_alt:109528,chr1_KI270765v1_alt:185285,chr1_GL383518v1_alt:182439,chr1_GL383519v1_alt:110268,chr1_GL383520v2_alt:366580,chr1_KI270764v1_alt:50258,chr1_KI270763v1_alt:911658,chr1_KI270759v1_alt:425601,chr1_KI270761v1_alt:165834,chr2_KI270770v1_alt:136240,chr2_KI270773v1_alt:70887,chr2_KI270774v1_alt:223625,chr2_KI270769v1_alt:120616,chr2_GL383521v1_alt:143390,chr2_KI270772v1_alt:133041,chr2_KI270775v1_alt:138019,chr2_KI270771v1_alt:110395,chr2_KI270768v1_alt:110099,chr2_GL582966v2_alt:96131,chr2_GL383522v1_alt:123821,chr2_KI270776v1_alt:174166,chr2_KI270767v1_alt:161578,chr3_JH636055v2_alt:173151,chr3_KI270783v1_alt:109187,chr3_KI270780v1_alt:224108,chr3_GL383526v1_alt:180671,chr3_KI270777v1_alt:173649,chr3_KI270778v1_alt:248252,chr3_KI270781v1_alt:113034,chr3_KI270779v1_alt:205312,chr3_KI270782v1_alt:162429,chr3_KI270784v1_alt:184404,chr4_KI270790v1_alt:220246,chr4_GL383528v1_alt:376187,chr4_KI270787v1_alt:111943,chr4_GL000257v2_alt:586476,chr4_KI270788v1_alt:158965,chr4_GL383527v1_alt:164536,chr4_KI270785v1_alt:119912,chr4_KI270789v1_alt:205944,chr4_KI270786v1_alt:244096,chr5_KI270793v1_alt:126136,chr5_KI270792v1_alt:179043,chr5_KI270791v1_alt:195710,chr5_GL383532v1_alt:82728,chr5_GL949742v1_alt:226852,chr5_KI270794v1_alt:164558,chr5_GL339449v2_alt:1612928,chr5_GL383530v1_alt:101241,chr5_KI270796v1_alt:172708,chr5_GL383531v1_alt:173459,chr5_KI270795v1_alt:131892,chr6_GL000250v2_alt:4672374,chr6_KI270800v1_alt:175808,chr6_KI270799v1_alt:152148,chr6_GL383533v1_alt:124736,chr6_KI270801v1_alt:870480,chr6_KI270802v1_alt:75005,chr6_KB021644v2_alt:185823,chr6_KI270797v1_alt:197536,chr6_KI270798v1_alt:271782,chr7_KI270804v1_alt:157952,chr7_KI270809v1_alt:209586,chr7_KI270806v1_alt:158166,chr7_GL383534v2_alt:119183,chr7_KI270803v1_alt:1111570,chr7_KI270808v1_alt:271455,chr7_KI270807v1_alt:126434,chr7_KI270805v1_alt:209988,chr8_KI270818v1_alt:145606,chr8_KI270812v1_alt:282736,chr8_KI270811v1_alt:292436,chr8_KI270821v1_alt:985506,chr8_KI270813v1_alt:300230,chr8_KI270822v1_alt:624492,chr8_KI270814v1_alt:141812,chr8_KI270810v1_alt:374415,chr8_KI270819v1_alt:133535,chr8_KI270820v1_alt:36640,chr8_KI270817v1_alt:158983,chr8_KI270816v1_alt:305841,chr8_KI270815v1_alt:132244,chr9_GL383539v1_alt:162988,chr9_GL383540v1_alt:71551,chr9_GL383541v1_alt:171286,chr9_GL383542v1_alt:60032,chr9_KI270823v1_alt:439082,chr10_GL383545v1_alt:179254,chr10_KI270824v1_alt:181496,chr10_GL383546v1_alt:309802,chr10_KI270825v1_alt:188315,chr11_KI270832v1_alt:210133,chr11_KI270830v1_alt:177092,chr11_KI270831v1_alt:296895,chr11_KI270829v1_alt:204059,chr11_GL383547v1_alt:154407,chr11_JH159136v1_alt:200998,chr11_JH159137v1_alt:191409,chr11_KI270827v1_alt:67707,chr11_KI270826v1_alt:186169,chr12_GL877875v1_alt:167313,chr12_GL877876v1_alt:408271,chr12_KI270837v1_alt:40090,chr12_GL383549v1_alt:120804,chr12_KI270835v1_alt:238139,chr12_GL383550v2_alt:153178,chr12_GL383552v1_alt:138655,chr12_GL383553v2_alt:152874,chr12_KI270834v1_alt:119498,chr12_GL383551v1_alt:184319,chr12_KI270833v1_alt:76061,chr12_KI270836v1_alt:56134,chr13_KI270840v1_alt:191684,chr13_KI270839v1_alt:180306,chr13_KI270843v1_alt:103832,chr13_KI270841v1_alt:169134,chr13_KI270838v1_alt:306913,chr13_KI270842v1_alt:37287,chr14_KI270844v1_alt:322166,chr14_KI270847v1_alt:1511111,chr14_KI270845v1_alt:180703,chr14_KI270846v1_alt:1351393,chr15_KI270852v1_alt:478999,chr15_KI270851v1_alt:263054,chr15_KI270848v1_alt:327382,chr15_GL383554v1_alt:296527,chr15_KI270849v1_alt:244917,chr15_GL383555v2_alt:388773,chr15_KI270850v1_alt:430880,chr16_KI270854v1_alt:134193,chr16_KI270856v1_alt:63982,chr16_KI270855v1_alt:232857,chr16_KI270853v1_alt:2659700,chr16_GL383556v1_alt:192462,chr16_GL383557v1_alt:89672,chr17_GL383563v3_alt:375691,chr17_KI270862v1_alt:391357,chr17_KI270861v1_alt:196688,chr17_KI270857v1_alt:2877074,chr17_JH159146v1_alt:278131,chr17_JH159147v1_alt:70345,chr17_GL383564v2_alt:133151,chr17_GL000258v2_alt:1821992,chr17_GL383565v1_alt:223995,chr17_KI270858v1_alt:235827,chr17_KI270859v1_alt:108763,chr17_GL383566v1_alt:90219,chr17_KI270860v1_alt:178921,chr18_KI270864v1_alt:111737,chr18_GL383567v1_alt:289831,chr18_GL383570v1_alt:164789,chr18_GL383571v1_alt:198278,chr18_GL383568v1_alt:104552,chr18_GL383569v1_alt:167950,chr18_GL383572v1_alt:159547,chr18_KI270863v1_alt:167999,chr19_KI270868v1_alt:61734,chr19_KI270865v1_alt:52969,chr19_GL383573v1_alt:385657,chr19_GL383575v2_alt:170222,chr19_GL383576v1_alt:188024,chr19_GL383574v1_alt:155864,chr19_KI270866v1_alt:43156,chr19_KI270867v1_alt:233762,chr19_GL949746v1_alt:987716,chr20_GL383577v2_alt:128386,chr20_KI270869v1_alt:118774,chr20_KI270871v1_alt:58661,chr20_KI270870v1_alt:183433,chr21_GL383578v2_alt:63917,chr21_KI270874v1_alt:166743,chr21_KI270873v1_alt:143900,chr21_GL383579v2_alt:201197,chr21_GL383580v2_alt:74653,chr21_GL383581v2_alt:116689,chr21_KI270872v1_alt:82692,chr22_KI270875v1_alt:259914,chr22_KI270878v1_alt:186262,chr22_KI270879v1_alt:304135,chr22_KI270876v1_alt:263666,chr22_KI270877v1_alt:101331,chr22_GL383583v2_alt:96924,chr22_GL383582v2_alt:162811,chrX_KI270880v1_alt:284869,chrX_KI270881v1_alt:144206,chr19_KI270882v1_alt:248807,chr19_KI270883v1_alt:170399,chr19_KI270884v1_alt:157053,chr19_KI270885v1_alt:171027,chr19_KI270886v1_alt:204239,chr19_KI270887v1_alt:209512,chr19_KI270888v1_alt:155532,chr19_KI270889v1_alt:170698,chr19_KI270890v1_alt:184499,chr19_KI270891v1_alt:170680,chr1_KI270892v1_alt:162212,chr2_KI270894v1_alt:214158,chr2_KI270893v1_alt:161218,chr3_KI270895v1_alt:162896,chr4_KI270896v1_alt:378547,chr5_KI270897v1_alt:1144418,chr5_KI270898v1_alt:130957,chr6_GL000251v2_alt:4795265,chr7_KI270899v1_alt:190869,chr8_KI270901v1_alt:136959,chr8_KI270900v1_alt:318687,chr11_KI270902v1_alt:106711,chr11_KI270903v1_alt:214625,chr12_KI270904v1_alt:572349,chr15_KI270906v1_alt:196384,chr15_KI270905v1_alt:5161414,chr17_KI270907v1_alt:137721,chr17_KI270910v1_alt:157099,chr17_KI270909v1_alt:325800,chr17_JH159148v1_alt:88070,chr17_KI270908v1_alt:1423190,chr18_KI270912v1_alt:174061,chr18_KI270911v1_alt:157710,chr19_GL949747v2_alt:729520,chr22_KB663609v1_alt:74013,chrX_KI270913v1_alt:274009,chr19_KI270914v1_alt:205194,chr19_KI270915v1_alt:170665,chr19_KI270916v1_alt:184516,chr19_KI270917v1_alt:190932,chr19_KI270918v1_alt:123111,chr19_KI270919v1_alt:170701,chr19_KI270920v1_alt:198005,chr19_KI270921v1_alt:282224,chr19_KI270922v1_alt:187935,chr19_KI270923v1_alt:189352,chr3_KI270924v1_alt:166540,chr4_KI270925v1_alt:555799,chr6_GL000252v2_alt:4604811,chr8_KI270926v1_alt:229282,chr11_KI270927v1_alt:218612,chr19_GL949748v2_alt:1064304,chr22_KI270928v1_alt:176103,chr19_KI270929v1_alt:186203,chr19_KI270930v1_alt:200773,chr19_KI270931v1_alt:170148,chr19_KI270932v1_alt:215732,chr19_KI270933v1_alt:170537,chr19_GL000209v2_alt:177381,chr3_KI270934v1_alt:163458,chr6_GL000253v2_alt:4677643,chr19_GL949749v2_alt:1091841,chr3_KI270935v1_alt:197351,chr6_GL000254v2_alt:4827813,chr19_GL949750v2_alt:1066390,chr3_KI270936v1_alt:164170,chr6_GL000255v2_alt:4606388,chr19_GL949751v2_alt:1002683,chr3_KI270937v1_alt:165607,chr6_GL000256v2_alt:4929269,chr19_GL949752v1_alt:987100,chr6_KI270758v1_alt:76752,chr19_GL949753v2_alt:796479,chr19_KI270938v1_alt:1066800,chrUn_KI270302v1:2274,chrUn_KI270304v1:2165,chrUn_KI270303v1:1942,chrUn_KI270305v1:1472,chrUn_KI270322v1:21476,chrUn_KI270320v1:4416,chrUn_KI270310v1:1201,chrUn_KI270316v1:1444,chrUn_KI270315v1:2276,chrUn_KI270312v1:998,chrUn_KI270311v1:12399,chrUn_KI270317v1:37690,chrUn_KI270412v1:1179,chrUn_KI270411v1:2646,chrUn_KI270414v1:2489,chrUn_KI270419v1:1029,chrUn_KI270418v1:2145,chrUn_KI270420v1:2321,chrUn_KI270424v1:2140,chrUn_KI270417v1:2043,chrUn_KI270422v1:1445,chrUn_KI270423v1:981,chrUn_KI270425v1:1884,chrUn_KI270429v1:1361,chrUn_KI270442v1:392061,chrUn_KI270466v1:1233,chrUn_KI270465v1:1774,chrUn_KI270467v1:3920,chrUn_KI270435v1:92983,chrUn_KI270438v1:112505,chrUn_KI270468v1:4055,chrUn_KI270510v1:2415,chrUn_KI270509v1:2318,chrUn_KI270518v1:2186,chrUn_KI270508v1:1951,chrUn_KI270516v1:1300,chrUn_KI270512v1:22689,chrUn_KI270519v1:138126,chrUn_KI270522v1:5674,chrUn_KI270511v1:8127,chrUn_KI270515v1:6361,chrUn_KI270507v1:5353,chrUn_KI270517v1:3253,chrUn_KI270529v1:1899,chrUn_KI270528v1:2983,chrUn_KI270530v1:2168,chrUn_KI270539v1:993,chrUn_KI270538v1:91309,chrUn_KI270544v1:1202,chrUn_KI270548v1:1599,chrUn_KI270583v1:1400,chrUn_KI270587v1:2969,chrUn_KI270580v1:1553,chrUn_KI270581v1:7046,chrUn_KI270579v1:31033,chrUn_KI270589v1:44474,chrUn_KI270590v1:4685,chrUn_KI270584v1:4513,chrUn_KI270582v1:6504,chrUn_KI270588v1:6158,chrUn_KI270593v1:3041,chrUn_KI270591v1:5796,chrUn_KI270330v1:1652,chrUn_KI270329v1:1040,chrUn_KI270334v1:1368,chrUn_KI270333v1:2699,chrUn_KI270335v1:1048,chrUn_KI270338v1:1428,chrUn_KI270340v1:1428,chrUn_KI270336v1:1026,chrUn_KI270337v1:1121,chrUn_KI270363v1:1803,chrUn_KI270364v1:2855,chrUn_KI270362v1:3530,chrUn_KI270366v1:8320,chrUn_KI270378v1:1048,chrUn_KI270379v1:1045,chrUn_KI270389v1:1298,chrUn_KI270390v1:2387,chrUn_KI270387v1:1537,chrUn_KI270395v1:1143,chrUn_KI270396v1:1880,chrUn_KI270388v1:1216,chrUn_KI270394v1:970,chrUn_KI270386v1:1788,chrUn_KI270391v1:1484,chrUn_KI270383v1:1750,chrUn_KI270393v1:1308,chrUn_KI270384v1:1658,chrUn_KI270392v1:971,chrUn_KI270381v1:1930,chrUn_KI270385v1:990,chrUn_KI270382v1:4215,chrUn_KI270376v1:1136,chrUn_KI270374v1:2656,chrUn_KI270372v1:1650,chrUn_KI270373v1:1451,chrUn_KI270375v1:2378,chrUn_KI270371v1:2805,chrUn_KI270448v1:7992,chrUn_KI270521v1:7642,chrUn_GL000195v1:182896,chrUn_GL000219v1:179198,chrUn_GL000220v1:161802,chrUn_GL000224v1:179693,chrUn_KI270741v1:157432,chrUn_GL000226v1:15008,chrUn_GL000213v1:164239,chrUn_KI270743v1:210658,chrUn_KI270744v1:168472,chrUn_KI270745v1:41891,chrUn_KI270746v1:66486,chrUn_KI270747v1:198735,chrUn_KI270748v1:93321,chrUn_KI270749v1:158759,chrUn_KI270750v1:148850,chrUn_KI270751v1:150742,chrUn_KI270752v1:27745,chrUn_KI270753v1:62944,chrUn_KI270754v1:40191,chrUn_KI270755v1:36723,chrUn_KI270756v1:79590,chrUn_KI270757v1:71251,chrUn_GL000214v1:137718,chrUn_KI270742v1:186739,chrUn_GL000216v2:176608,chrUn_GL000218v1:161147,chrY_KI270740v1_random:37240}}),Rt=new Set(["narrowpeak","broadpeak","regionpeak","peaks","bedgraph","wig","gff3","gff","gtf","fusionjuncspan","refflat","seg","aed","bed","bedmethyl","vcf","bb","bigbed","biginteract","biggenepred","bignarrowpeak","bw","bigwig","bam","tdf","refgene","genepred","genepredext","bedpe","bp","snp","rmsk","cram","gwas","maf","mut","hiccups","fasta","fa","fna","pytor","hic","qtl","gtx"]);function pt(A){if(!A)return;let I=A.toLowerCase();const g=I.indexOf("?");g>0&&(I=I.substring(0,g));const t=I.lastIndexOf("/");if(t>=0&&(I=I.substring(t+1)),I.endsWith("refgene.txt.gz")||I.endsWith("refgene.txt.bgz")||I.endsWith("refgene.txt")||I.endsWith("refgene.sorted.txt.gz")||I.endsWith("refgene.sorted.txt.bgz"))return"refgene";I.endsWith(".gz")&&(I=I.substring(0,I.length-3)),I.endsWith(".bgz")&&(I=I.substring(0,I.length-4)),(I.endsWith(".txt")||I.endsWith(".tab")||I.endsWith(".tsv"))&&(I=I.substring(0,I.length-4));const C=I.lastIndexOf("."),e=C<0?I:I.substring(C+1);switch(e){case"bw":return"bigwig";case"bb":return"bigbed";case"fasta":case"fa":case"fna":return"fasta";case"gtx":return"gtx";default:return Rt.has(e)?e:void 0}}const Ut=new Set(["bigwig","bw","bigbed","bb","biginteract","biggenepred","bignarrowpeak","tdf","bam","cram","gtx"]);const Mt=new Set(["bigwig","gtx","ucsc","text","memory"]);function Lt(A){var I;const g=A.url,t=A.type;if(!g){const A=`Cannot resolve data source config: no URL and unknown type "${t}"`;throw P.error(A),new Error(A)}const C=A.format,e=null!=C?C:pt(g),B={};return A.oauthToken&&(B.oauthToken=A.oauthToken),A.basicAuth&&(B.basicAuth=A.basicAuth),A.headers&&(B.headers=A.headers),A.withCredentials&&(B.withCredentials=A.withCredentials),e&&("bigwig"===e||"bw"===e||function(A){return Ut.has(A.toLowerCase())}(e))?(P.warn(`Unknown data source type "${t}", inferred "bigwig" from URL: ${g}`),{type:"bigwig",url:g,windowFunction:A.windowFunction,...B}):"gtx"===e?(P.warn(`Unknown data source type "${t}", inferred "gtx" from URL: ${g}`),{type:"gtx",url:g,experimentId:null!==(I=A.experimentId)&&void 0!==I?I:"",windowFunction:A.windowFunction,...B}):(P.warn(`Unknown data source type "${t}", inferred "text" from URL: ${g}`),{type:"text",url:g,format:null!=C?C:e,indexURL:A.indexURL,indexed:A.indexed,...B})}function Jt(A,I){let g=0,t=A.length;for(;g<t;){const C=g+t>>>1;A[C].end<I?g=C+1:t=C}return g}function Kt(A,I){let g=0,t=A.length;for(;g<t;){const C=g+t>>>1;A[C].start<=I?g=C+1:t=C}return g}const Yt={chr:"",start:0,end:0};class vt{get canvas(){return this._canvas}get locus(){return this._locus}get height(){return this._height}get config(){return this._config}get viewportWidth(){return this._viewportWidth||this._canvas.clientWidth}get currentPixelShiftOffset(){return this._pixelShift}getBaseCanvasOffset(){return this._overscanMultiplier>1?-this._viewportWidth*((this._overscanMultiplier-1)/2):0}getCanvasViewportOffset(){return this.getBaseCanvasOffset()+this._pixelShift}viewportXToGenomicBp(A){if(0===this._renderBpPerPixel)return 0;const I=this.getCanvasViewportOffset();return this._renderBpStart+(A-I)*this._renderBpPerPixel}genomicBpToViewportX(A){if(0===this._renderBpPerPixel)return 0;const I=this.getCanvasViewportOffset();return(A-this._renderBpStart)/this._renderBpPerPixel+I}constructor(A,I,g,t){this._height=0,this.resizeObserver=null,this.container=null,this._renderSuspended=!1,this._renderPending=!1,this._error=null,this._zoomedOut=!1,this._externalUIEnabled=!1,this._overscanMultiplier=1,this._renderBpStart=0,this._renderBpPerPixel=0,this._renderChr="",this._viewportWidth=0,this._pixelShift=0,this._canvas=A,this._locus=null!=I?I:Yt,this._config=g,this.canvasProvider=null!=t?t:p}setLocus(A){this._locus=A,this.render()}setLocusSilent(A){this._locus=A}setConfig(A){var I,g;null===(I=this.onBeforeConfigChange)||void 0===I||I.call(this),this._config={...this._config,...A},this.render(),null===(g=this.onConfigChanged)||void 0===g||g.call(this)}suspendRendering(){this._renderSuspended=!0}discardPendingRender(){this._renderPending=!1}resumeRendering(){this._renderSuspended=!1,this._renderPending&&(this._renderPending=!1,this.render())}setOverscanMultiplier(A){this._overscanMultiplier=Math.max(1,A)}get overscanMultiplier(){return this._overscanMultiplier}computePixelShift(A){if(this._renderChr!==A.chr)return null;if(0===this._renderBpPerPixel)return null;const I=(A.end-A.start)/this._viewportWidth;if(Math.abs(this._renderBpPerPixel-I)>1e-10*this._renderBpPerPixel)return null;return(this._renderBpStart-A.start)/this._renderBpPerPixel+this._viewportWidth*((this._overscanMultiplier-1)/2)}needsRepaint(A){if(this._renderChr!==A.chr)return!0;if(0===this._renderBpPerPixel)return!0;const I=(A.end-A.start)/this._viewportWidth;if(Math.abs(this._renderBpPerPixel-I)>1e-10*this._renderBpPerPixel)return!0;const g=this._renderBpStart+this._renderBpPerPixel*(this._viewportWidth*this._overscanMultiplier);return A.start<this._renderBpStart||A.end>g}applyPixelShift(A){this._pixelShift=A,this._canvas.style.transform=`translate3d(${A}px, 0, 0)`}resetPixelShift(){this.applyPixelShift(0)}setError(A){this._error!==A&&(this._error=A,this.render())}setZoomedOut(A){this._zoomedOut!==A&&(this._zoomedOut=A,this.render())}hitTest(A,I){return[]}onCanvasClick(A,I){return!1}getUIOverlayState(){}onUIOverlayClick(A){return!1}setExternalUIEnabled(A){this._externalUIEnabled=A}get externalUIEnabled(){return this._externalUIEnabled}getFeatureRects(){return[]}getContextMenuItems(A,I){}attachTo(A){this.detach(),this.container=A,A.appendChild(this._canvas),this._canvas.style.display="block",this.resizeObserver=new ResizeObserver(()=>this.render()),this.resizeObserver.observe(A),this.render()}detach(){this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null),this.container&&this._canvas.parentNode===this.container&&this.container.removeChild(this._canvas),this.container=null}render(){var A,I;if(this._renderSuspended)return void(this._renderPending=!0);const g=(null===(A=this.container)||void 0===A?void 0:A.clientWidth)||(null===(I=this._canvas.parentElement)||void 0===I?void 0:I.clientWidth)||this._viewportWidth||this._canvas.clientWidth;if(0===g)return;const t=this._overscanMultiplier,C=g*t;this._viewportWidth=g;const e=this.computeHeight(g);this._height=e;const B=this.canvasProvider.devicePixelRatio;this._canvas.width=C*B,this._canvas.height=e*B,this._canvas.style.width=`${C}px`,this._canvas.style.height=`${e}px`,t>1?(this._canvas.style.position="relative",this._canvas.style.willChange="transform"):(this._canvas.style.position="",this._canvas.style.willChange=""),this._canvas.style.left=`${this.getBaseCanvasOffset()}px`,this.resetPixelShift();const i=this._canvas.getContext("2d");if(i.scale(B,B),i.fillStyle=this.getBackground(),i.fillRect(0,0,C,e),this._error)return this.renderError(i,g,e),this.renderLabelOverlay(i,g,e),void this._recordRenderMetadata(g);if(this._zoomedOut)return this.renderZoomInNotice(i,g,e),this.renderLabelOverlay(i,g,e),void this._recordRenderMetadata(g);if(this._locus===Yt)return this.renderNoLocusNotice(i,g,e),this._renderBpPerPixel=0,void(this._renderChr="");const Q=(this._locus.end-this._locus.start)/g,o=g*Q*((t-1)/2),E=this._locus.start-o,s={pixelWidth:C,bpStart:E,bpPerPixel:Q,viewportWidth:g};this.doRender(i,C,e,s),this._renderBpStart=E,this._renderBpPerPixel=Q,this._renderChr=this._locus.chr}_recordRenderMetadata(A){if(this._locus!==Yt){const I=(this._locus.end-this._locus.start)/A,g=A*I*((this._overscanMultiplier-1)/2);this._renderBpPerPixel=I,this._renderBpStart=this._locus.start-g,this._renderChr=this._locus.chr}}renderError(A,I,g){A.font="12px sans-serif",A.fillStyle="rgb(180, 0, 0)",A.textAlign="center",A.textBaseline="middle",A.fillText("Error loading track data",I/2,g/2)}renderZoomInNotice(A,I,g){A.font="12px sans-serif",A.fillStyle="rgb(120, 120, 120)",A.textAlign="center",A.textBaseline="middle",A.fillText("Zoom in to see features",I/2,g/2)}renderNoLocusNotice(A,I,g){A.font="12px sans-serif",A.fillStyle="rgb(120, 120, 120)",A.textAlign="center",A.textBaseline="middle",A.fillText("No locus set",I/2,g/2)}renderLabelOverlay(A,I,g){}renderToContext(A,I,g,t){var C;if((null==t?void 0:t.skipBackground)||(A.fillStyle=this.getBackground(),A.fillRect(0,0,I,g)),this._error)return this.renderError(A,I,g),void this.renderLabelOverlay(A,I,g);if(this._zoomedOut)return this.renderZoomInNotice(A,I,g),void this.renderLabelOverlay(A,I,g);if(this._locus===Yt)return void this.renderNoLocusNotice(A,I,g);const e=null!==(C=null==t?void 0:t.rc)&&void 0!==C?C:{pixelWidth:I,bpStart:this._locus.start,bpPerPixel:(this._locus.end-this._locus.start)/I,viewportWidth:I};this.doRender(A,I,g,e),this._renderBpStart=e.bpStart,this._renderBpPerPixel=e.bpPerPixel,this._viewportWidth=e.viewportWidth,this._renderChr=this._locus.chr}}function bt(A,I,g){var t,C;if(g<12)return;A.font="normal 10px sans-serif",A.textBaseline="top",A.textAlign="left";const e=4+(null!==(t=I.topOffset)&&void 0!==t?t:0),B=A.measureText(I.name),i=B.width+8,Q=(null!==(C=B.actualBoundingBoxDescent)&&void 0!==C?C:10)+4;A.fillStyle=I.background,A.globalAlpha=.75,A.fillRect(4,e,i,Q),A.globalAlpha=1,A.strokeStyle=I.labelColor,A.globalAlpha=.3,A.lineWidth=.5,A.strokeRect(4,e,i,Q),A.globalAlpha=1,A.fillStyle=I.labelColor,A.fillText(I.name,8,e+2)}const xt={A:"#00C000",C:"#0000FF",G:"#FFB300",T:"#FF0000",N:"#808080"},Ht={A:{main:"M 0 100 L 33 0 L 66 0 L 100 100 L 75 100 L 66 75 L 33 75 L 25 100 L 0 100",overlay:"M 41 55 L 50 25 L 58 55 L 41 55"},C:{main:"M 100 28 C 100 -13 0 -13 0 50 C 0 113 100 113 100 72 L 75 72 C 75 90 30 90 30 50 C 30 10 75 10 75 28 L 100 28"},G:{main:"M 100 28 C 100 -13 0 -13 0 50 C 0 113 100 113 100 72 L 100 48 L 55 48 L 55 72 L 75 72 C 75 90 30 90 30 50 C 30 10 75 5 75 28 L 100 28"},T:{main:"M 0 0 L 0 20 L 35 20 L 35 100 L 65 100 L 65 20 L 100 20 L 100 0 L 0 0"},N:{main:"M 0 100 L 0 0 L 20 0 L 80 75 L 80 0 L 100 0 L 100 100 L 80 100 L 20 25 L 20 100 L 0 100"}};function qt(A,I,g,t,C,e){const B=C/100,i=e/100;A.beginPath();const Q=I.match(/[MLC][^MLC]*/g);if(Q){for(const I of Q){const C=I[0],e=I.slice(1).trim().split(/[\s,]+/).map(Number);"M"===C?A.moveTo(g+e[0]*B,t+e[1]*i):"L"===C?A.lineTo(g+e[0]*B,t+e[1]*i):"C"===C&&e.length>=6&&A.bezierCurveTo(g+e[0]*B,t+e[1]*i,g+e[2]*B,t+e[3]*i,g+e[4]*B,t+e[5]*i)}A.closePath(),A.fill()}}function Tt(A,I,g,t,C,e,B,i=!1,Q="#ffffff"){var o;const E=null!==(o=Ht[I])&&void 0!==o?o:Ht.N;A.save(),A.fillStyle=B,i&&(A.translate(g+C/2,t+e/2),A.scale(1,-1),A.translate(-(g+C/2),-(t+e/2))),qt(A,E.main,g,t,C,e),E.overlay&&(A.fillStyle=Q,qt(A,E.overlay,g,t,C,e)),A.restore()}function _t(A,I,g,t,C,e,B,i=xt,Q="#ffffff"){var o;const E=Math.min(C,e),s=Math.max(1,Math.abs(C-e)),a=t/I.length,r=B<0;for(let t=0;t<I.length;t++){const C=g+t*a,e=I[t].toUpperCase();Tt(A,e,C,E,a,s,null!==(o=i[e])&&void 0!==o?o:i.N,r,Q)}}function Wt(A){return Number.isInteger(A)?A.toString():Math.abs(A)>=10?A.toFixed():Math.abs(A)>=1?A.toFixed(1):Math.abs(A)>=.1?A.toFixed(2):A.toExponential(1)}function Pt(A){return A<0?-Math.log10(Math.abs(A)+1):Math.log10(Math.abs(A)+1)}function Ot(A,I,g,t){var C,e,B,i;if(0===t)return;const Q=null!==(C=I.backgroundColor)&&void 0!==C?C:"white",o=null!==(e=I.labelColor)&&void 0!==e?e:"black";A.fillStyle=Q,A.fillRect(0,0,g,t),I.color&&(A.fillStyle=I.color,A.fillRect(g-4-1,0,4,t));const E=.01*t,s=.99*t,a=g-4-3,r=a-6;if(A.strokeStyle=o,A.fillStyle=o,A.font="normal 9px Arial",A.textAlign="right",A.lineWidth=1,A.beginPath(),A.moveTo(a,E),A.lineTo(a,s),A.stroke(),A.beginPath(),A.moveTo(r,E),A.lineTo(a,E),A.stroke(),A.beginPath(),A.moveTo(r,s),A.lineTo(a,s),A.stroke(),!I.dataRange)return;const{min:n,max:h}=I.dataRange,c=null!==(B=I.flipAxis)&&void 0!==B&&B,l=null!==(i=I.logScale)&&void 0!==i&&i,d=c?n:h,D=c?h:n;if(A.textBaseline="top",A.fillText(Wt(d),r-2,E+1),A.textBaseline="bottom",A.fillText(Wt(D),r-2,s-1),t>60){const I=l?(()=>{const A=(Pt(n)+Pt(h))/2;return A>=0?Math.pow(10,A)-1:-(Math.pow(10,-A)-1)})():(n+h)/2,g=function(A,I,g,t,C,e,B){const i=B?Pt(I):I,Q=B?Pt(g):g,o=B?Pt(A):A,E=Q-i;if(0===E)return(t+C)/2;const s=(o-i)/E;return e?t+s*(C-t):C-s*(C-t)}(I,n,h,E,s,c,l);A.beginPath(),A.moveTo(r+3,g),A.lineTo(a,g),A.stroke(),A.textBaseline="middle",A.fillText(Wt(I),r+1,g)}}function Vt(A,I){const g=function(A){const I=A.match(/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)/);if(I)return[Number(I[1]),Number(I[2]),Number(I[3])];const g=A.match(/^#([0-9a-f]{3,8})$/i);if(g){const A=g[1];if(3===A.length||4===A.length)return[parseInt(A[0]+A[0],16),parseInt(A[1]+A[1],16),parseInt(A[2]+A[2],16)];if(A.length>=6)return[parseInt(A.slice(0,2),16),parseInt(A.slice(2,4),16),parseInt(A.slice(4,6),16)]}}(A);return g?`rgba(${g[0]},${g[1]},${g[2]},${I})`:A}function Zt(A,I,g){return g?A<0&&g.neg?g.neg:g.pos:function(A,I){const g=function(A,I){return"function"==typeof A?A(I):A}(A<0&&I.altColor?I.altColor:I.color,A);return null!=I.alpha?Vt(g,I.alpha):g}(A,I)}function Xt(A,I,g,t){const C=g.height-1,e=function(A,I,g,t){const C=t?A<0?-Math.log10(Math.abs(A)+1):Math.log10(Math.abs(A)+1):A;return g/((t?Math.log10(Math.abs(I)+1):I)-C)}(g.dataRange.min,g.dataRange.max,C,g.logScale),B=A=>function(A,I,g,t,C){if(C){let C=I.min,e=I.max;C=C<0?-Math.log10(Math.abs(C)+1):Math.log10(Math.abs(C)+1),e=e<0?-Math.log10(Math.abs(e)+1):Math.log10(Math.abs(e)+1);const B=A<0?-Math.log10(Math.abs(A)+1):Math.log10(A+1);return(t?B-C:e-B)*g}return(t?A-I.min:I.max-A)*g}(A,g.dataRange,e,g.flipAxis,g.logScale);if(I&&I.length>0&&g.dataRange.max>g.dataRange.min){const e=t.bpStart+t.pixelWidth*t.bpPerPixel+1,i=B(0),Q=function(A){if("string"!=typeof A.color)return;if(void 0!==A.altColor&&"string"!=typeof A.altColor)return;return{pos:null!=A.alpha?Vt(A.color,A.alpha):A.color,neg:void 0!==A.altColor?null!=A.alpha?Vt(A.altColor,A.alpha):A.altColor:void 0}}(g);switch(g.graphType){case"bar":!function(A,I,g,t,C,e,B,i,Q){const o=Jt(I,t.bpStart);let E="",s=!1;const a=()=>{s&&(A.fill(),s=!1)},r=(I,g,t,C,e)=>{e!==E&&(a(),E=e,A.fillStyle=e,A.beginPath(),s=!0),A.rect(I,g,t,C)};let n=null;for(let A=o;A<I.length;A++){const o=I[A];if(o.start>i)break;const E=(o.start-t.bpStart)/t.bpPerPixel;if(Number.isNaN(E))continue;const s=e(o.value),a=(o.end-t.bpStart)/t.bpPerPixel,h=Math.max(1,a-E);r(E,B,h,Math.min(C,s-B),Zt(o.value,g,Q)),o.value>g.dataRange.max?(n||(n=[]),n.push([E,0,h,3])):o.value<g.dataRange.min&&(n||(n=[]),n.push([E,C-2,h,3]))}if(a(),n){A.fillStyle=g.overflowColor,A.beginPath();for(const[I,g,t,C]of n)A.rect(I,g,t,C);A.fill()}}(A,I,g,t,C,B,i,e,Q);break;case"line":!function(A,I,g,t,C,e,B){let i;const Q=Jt(I,t.bpStart);let o="",E=!1;A.lineWidth=1.5;const s=()=>{E&&(A.stroke(),E=!1)};for(let a=Q;a<I.length;a++){const Q=I[a];if(Q.start>e)break;const r=(Q.start-t.bpStart)/t.bpPerPixel;if(Number.isNaN(r))continue;const n=C(Q.value),h=(Q.end-t.bpStart)/t.bpPerPixel-r,c=Zt(Q.value,g,B);c!==o&&(s(),o=c,A.strokeStyle=c,A.beginPath(),E=!0,i=void 0),void 0!==i?A.lineTo(r,n):A.moveTo(r,n),A.lineTo(r+h,n),i=n}s()}(A,I,g,t,B,e,Q);break;case"points":!function(A,I,g,t,C,e,B,i){const Q=g.pointSize/2,o=Jt(I,t.bpStart);let E="",s=!1,a=null,r=null;const n=()=>{s&&(A.fill(),s=!1)};for(let C=o;C<I.length;C++){const o=I[C];if(o.start>B)break;const h=(o.start-t.bpStart)/t.bpPerPixel;if(Number.isNaN(h))continue;const c=e(o.value),l=h+((o.end-t.bpStart)/t.bpPerPixel-h)/2,d=Zt(o.value,g,i);d!==E&&(n(),E=d,A.fillStyle=d,A.beginPath(),s=!0),A.moveTo(l+Q,c),A.arc(l,c,Q,0,2*Math.PI),o.value>g.dataRange.max?(a||(a=[]),a.push(l)):o.value<g.dataRange.min&&(r||(r=[]),r.push(l))}if(n(),a){A.fillStyle=g.overflowColor,A.beginPath();for(const I of a)A.moveTo(I+Q,Q),A.arc(I,Q,Q,0,2*Math.PI);A.fill()}if(r){A.fillStyle=g.overflowColor,A.beginPath();for(const I of r)A.moveTo(I+Q,C-Q),A.arc(I,C-Q,Q,0,2*Math.PI);A.fill()}}(A,I,g,t,C,B,e,Q);break;case"dynseq":!function(A,I,g,t,C,e,B,i,Q){var o;const E=null!==(o=g.nucleotideColors)&&void 0!==o?o:xt;for(let o=Jt(I,t.bpStart);o<I.length;o++){const s=I[o];if(s.start>i)break;const a=(s.start-t.bpStart)/t.bpPerPixel;if(Number.isNaN(a))continue;const r=e(s.value),n=(s.end-t.bpStart)/t.bpPerPixel,h=Math.max(1,n-a);if(s.sequence&&t.bpPerPixel<2)_t(A,s.sequence,a,h,r,B,s.value,E,g.background);else{const I=Math.min(C,r-B);A.fillStyle=Zt(s.value,g,Q),A.fillRect(a,B,h,I)}s.value>g.dataRange.max?(A.fillStyle=g.overflowColor,A.fillRect(a,0,h,3)):s.value<g.dataRange.min&&(A.fillStyle=g.overflowColor,A.fillRect(a,C-2,h,3))}}(A,I,g,t,C,B,i,e,Q)}!function(A,I,g,t){if(I.dataRange.min>=0)return;let{min:C,max:e}=I.dataRange;I.logScale&&(C=C<0?-Math.log10(Math.abs(C)+1):Math.log10(Math.abs(C)+1),e=e<0?-Math.log10(Math.abs(e)+1):Math.log10(Math.abs(e)+1));const B=e/(e-C),i=I.flipAxis?(1-B)*t:B*t;A.strokeStyle=I.baselineColor,A.lineWidth=1,A.beginPath(),A.moveTo(0,i),A.lineTo(g,i),A.stroke()}(A,g,t.pixelWidth,C),function(A,I,g){var t,C;if(!I.showDataRange)return;const{min:e,max:B}=I.dataRange,i=Wt(I.flipAxis?e:B),Q=Wt(I.flipAxis?B:e);A.font=I.labelFont,A.textBaseline="top",A.textAlign="left";const o=A.measureText(i),E=o.width+6,s=(null!==(t=o.actualBoundingBoxDescent)&&void 0!==t?t:10)+4;A.fillStyle=I.background,A.globalAlpha=.7,A.fillRect(4,4,E,s),A.globalAlpha=1,A.fillStyle=I.labelColor,A.fillText(i,7,6),A.textBaseline="bottom";const a=A.measureText(Q),r=a.width+6,n=(null!==(C=a.actualBoundingBoxAscent)&&void 0!==C?C:10)+4,h=g-4;A.fillStyle=I.background,A.globalAlpha=.7,A.fillRect(4,h-n,r,n),A.globalAlpha=1,A.fillStyle=I.labelColor,A.fillText(Q,7,h-2)}(A,g,C)}!function(A,I,g){var t;if(!I.trackName)return;let C=0;if(I.showDataRange){const g=2;A.save(),A.font=I.labelFont,A.textBaseline="top";const e=Wt(I.flipAxis?I.dataRange.min:I.dataRange.max),B=(null!==(t=A.measureText(e).actualBoundingBoxDescent)&&void 0!==t?t:10)+2*g;A.restore(),C=B+2}bt(A,{name:I.trackName,background:I.background,labelColor:I.labelColor,topOffset:C},g)}(A,g,C),function(A,I,g,t){if(I.guideLines){for(const C of I.guideLines){const I=t(C.y);A.strokeStyle=C.color,A.lineWidth=2,C.dotted?A.setLineDash([5,5]):A.setLineDash([]),A.beginPath(),A.moveTo(0,I),A.lineTo(g,I),A.stroke()}A.setLineDash([])}}(A,g,t.pixelWidth,B)}class zt{constructor(A,I){this.bin=A,this.sumData=I.value,this.count=1,this.min=I.value,this.max=I.value}add(A){this.sumData+=A.value,this.max=Math.max(A.value,this.max),this.min=Math.min(A.value,this.min),this.count++}}function jt(A,I,g,t="mean"){if(g<=1||!A||0===A.length||"none"===t)return A;const C=A[0].chr,e=g,B=[],i=A=>{const g=I+A.bin*e,i=g+e;let Q;switch(t){case"mean":Q=A.sumData/A.count;break;case"max":Q=A.max;break;case"min":Q=A.min;break;default:throw Error(`Unknown window function: ${t}`)}const o=`${t} of ${A.count} values`;B.push({chr:C,start:g,end:i,value:Q,description:o})};let Q;for(const g of A){let A=Math.floor((g.start-I)/e);const t=Math.max(A,Math.ceil((g.end-I)/e)-1);if(Q&&A===Q.bin&&(Q.add(g),A++),!Q||t>Q.bin){if(Q&&i(Q),t>A){const A=I+t*e;B.push({chr:C,start:g.start,end:A,value:g.value})}Q=new zt(t,g)}}if(Q&&i(Q),0===B.length)return B;const o=[];let E=B[0];for(const A of B)E.value===A.value&&A.start<=E.end?E={...E,end:A.end}:(o.push(E),E=A);return o.push(E),o}function $t(A){if(!A||0===A.length)return{min:0,max:100};let I=Number.MAX_VALUE,g=-Number.MAX_VALUE;for(const t of A)Number.isNaN(t.value)||(t.value<I&&(I=t.value),t.value>g&&(g=t.value));return I===Number.MAX_VALUE?{min:0,max:100}:(g>0&&(I=Math.min(0,I)),g<0&&(g=0),{min:I,max:g})}function AC(A,I){const g={};let t=!1;for(const C of Object.keys(A))A[C]!==I[C]&&void 0!==A[C]&&(g[C]=A[C],t=!0);return t?g:void 0}class IC extends vt{constructor(A,I){const g=K(L(I.theme),I.config);super(A,I.locus,g,I.canvasProvider),this._lastDataRange=null,this._seqAbort=null,this._userOverrides={},this._coordinatedDataRange=null,this.type="wig",this.features=I.features,this._name=I.name,this._sequenceProvider=I.sequenceProvider,I.config&&(this._userOverrides={...I.config})}set onWindowFunctionChange(A){this._onWindowFunctionChange=A}setFeatures(A){this.features=A,"dynseq"===this._config.graphType?this.augmentWithSequence():this.render()}setLocus(A){this._locus=A,"dynseq"===this._config.graphType?this.augmentWithSequence():this.render()}setCoordinatedDataRange(A){this._coordinatedDataRange=A}setConfig(A){Object.assign(this._userOverrides,A);const I="dynseq"===this._config.graphType;super.setConfig(A),I||"dynseq"!==this._config.graphType||this.augmentWithSequence()}augmentWithSequence(){if(!this._sequenceProvider||0===this.features.length)return void this.render();const A=this.viewportWidth;if(0===A)return void this.render();if((this._locus.end-this._locus.start)/A>=2)return void this.render();this._seqAbort&&this._seqAbort.abort();const I=new AbortController;this._seqAbort=I;const g={chr:this._locus.chr,start:Math.floor(this._locus.start),end:Math.ceil(this._locus.end)};this._sequenceProvider(g,I.signal).then(A=>{I.signal.aborted||(this._seqAbort=null,this.features=this.features.map(I=>{const t=Math.max(0,Math.floor(I.start)-g.start),C=Math.min(A.length,Math.floor(I.end)-g.start);return t>=C||t>=A.length?I:{...I,sequence:A.slice(t,C)}}),this.render())}).catch(()=>{I.signal.aborted||(this._seqAbort=null,this.render())}),this.render()}computeHeight(A){return this.config.height}getBackground(){return this.config.background}renderLabelOverlay(A,I,g){this.externalUIEnabled||this._name&&bt(A,{name:this._name,background:this.config.background,labelColor:this.config.labelColor},g)}doRender(A,I,g,t){const C=null!=this.config.normalizationFactor&&1!==this.config.normalizationFactor||null!=this.config.scaleFactor&&1!==this.config.scaleFactor?this.features.map(A=>{var I,g;return{...A,value:A.value*(null!==(I=this.config.normalizationFactor)&&void 0!==I?I:1)*(null!==(g=this.config.scaleFactor)&&void 0!==g?g:1)}}):this.features,e={...this.config,height:g,trackName:this.externalUIEnabled?void 0:this._name};if(this._coordinatedDataRange)e.dataRange=this._coordinatedDataRange,this._config={...this._config,dataRange:this._coordinatedDataRange},this._lastDataRange=this._coordinatedDataRange;else if(this.config.autoscale){const A=C.filter(A=>A.end>=this._locus.start&&A.start<=this._locus.end);if(A.length>0){const I=$t(A);e.dataRange=I,this._config={...this._config,dataRange:I},this._lastDataRange=I}else this._lastDataRange=null}else this._lastDataRange=e.dataRange;Xt(A,C,e,t)}getUIOverlayState(){if(this._name)return{label:{text:this._name,background:this.config.background,color:this.config.labelColor}}}getAxisInfo(){var A;if(this._name||this._lastDataRange)return{dataRange:null!==(A=this._lastDataRange)&&void 0!==A?A:void 0,color:"string"==typeof this.config.color?this.config.color:void 0,label:this._name,flipAxis:this.config.flipAxis||void 0,logScale:this.config.logScale||void 0}}getContextMenuItems(A,I){const g=this._sequenceProvider?["bar","line","points","dynseq"]:["bar","line","points"];return[{label:"Flip y-axis",type:"checkbox",checked:this._config.flipAxis,action:()=>this.setConfig({flipAxis:!this._config.flipAxis})},{label:"Graph type",children:g.map(A=>({label:A.charAt(0).toUpperCase()+A.slice(1),type:"checkbox",checked:this._config.graphType===A,action:()=>this.setConfig({graphType:A})}))},{label:"Windowing function",children:["mean","min","max"].map(A=>({label:A.charAt(0).toUpperCase()+A.slice(1),type:"checkbox",checked:this._config.windowFunction===A,action:()=>{this.setConfig({windowFunction:A}),this._onWindowFunctionChange&&this._onWindowFunctionChange(A)}}))}]}getNumericState(){return{autoscale:this._config.autoscale,logScale:this._config.logScale,dataRange:this._config.dataRange,setAutoscale:A=>this.setConfig({autoscale:A}),setLogScale:A=>this.setConfig({logScale:A}),setDataRange:(A,I)=>this.setConfig({dataRange:{min:A,max:I},autoscale:!1})}}hitTest(A,I){if(0===this.features.length)return[];if(0===this.viewportWidth)return[];const g=this.viewportXToGenomicBp(A);for(let A=Jt(this.features,g);A<this.features.length;A++){const I=this.features[A];if(I.start>g)break;if(g<I.end)return[{feature:I,popupData:gC(I)}]}return[]}setTheme(A){const I=this._config.dataRange;this._config={...K(A),...this._userOverrides,dataRange:I},this.render()}serializeConfig(A){const I=K(A),g=this.config;return{type:"wig",config:AC({...g,color:"string"==typeof g.color?g.color:I.color,altColor:"string"==typeof g.altColor?g.altColor:I.altColor,dataRange:g.autoscale?I.dataRange:g.dataRange,nucleotideColors:I.nucleotideColors},I)}}}function gC(A){const I=[];return A.chr&&I.push({name:"Chr",value:A.chr}),I.push({name:"Start",value:Math.floor(A.start).toLocaleString()}),I.push({name:"End",value:Math.ceil(A.end).toLocaleString()}),I.push({name:"Value",value:Number.isInteger(A.value)?A.value:A.value.toPrecision(6)}),A.description&&I.push({name:"Description",value:A.description}),I}function tC(A,I,g,t,C,e){var B,i,Q;const o=null!==(B=e.borderRadius)&&void 0!==B?B:0;o>0&&t>2*o&&C>2*o?(A.beginPath(),A.roundRect(I,g,t,C,o),A.fill(),e.borderColor&&(null!==(i=e.borderWidth)&&void 0!==i?i:0)>0&&(A.strokeStyle=e.borderColor,A.lineWidth=e.borderWidth,A.stroke())):(A.fillRect(I,g,t,C),e.borderColor&&(null!==(Q=e.borderWidth)&&void 0!==Q?Q:0)>0&&(A.strokeStyle=e.borderColor,A.lineWidth=e.borderWidth,A.strokeRect(I,g,t,C)))}function CC(A,I,g,t,C,e){var B,i,Q,o;A.save();try{const E=BC(I,g),s=function(A,I){var g,t,C;if("-"===A.strand)return null!==(t=null!==(g=I.altUtrColor)&&void 0!==g?g:I.utrColor)&&void 0!==t?t:BC(A,I);return null!==(C=I.utrColor)&&void 0!==C?C:I.color}(I,g);let a,r;A.fillStyle=E,A.strokeStyle=E,"SQUISHED"===g.displayMode&&void 0!==I.row?(a=g.featureHeight/2,r=g.margin+g.squishedRowHeight*I.row):"EXPANDED"===g.displayMode&&void 0!==I.row?(a=g.featureHeight,r=g.margin+g.expandedRowHeight*I.row):(a=g.featureHeight,r=g.margin);const n=r+a/2,h=a/2,c=n-h/2,l=I.exons?I.exons.length:0,d=function(A,I,g){let t=(A.start-I)/g,C=(A.end-I)/g,e=C-t;return e<3&&(e=3,t-=1.5),{px:t,px1:C,pw:e}}(I,t.bpStart,t.bpPerPixel),D=g.arrowSpacing,u="+"===I.strand?1:"-"===I.strand?-1:0,y=null!==(B=g.arrowColor)&&void 0!==B?B:E,w=null!==(i=g.arrowInExonColor)&&void 0!==i?i:"white";if(0===l){const I=Math.max(0,d.px),C=Math.min(t.pixelWidth,d.px1),e=C-I;if(A.fillStyle=E,tC(A,I,r,e,a,g),0!==u){A.strokeStyle=w;for(let g=I+D/2;g<C;g+=D)eC(A,g,n,u)}}else{A.save(),A.strokeStyle=null!==(Q=g.intronColor)&&void 0!==Q?Q:E,A.lineWidth=null!==(o=g.intronLineWidth)&&void 0!==o?o:1,g.intronDash&&g.intronDash.length>0&&A.setLineDash(g.intronDash),A.beginPath(),A.moveTo(d.px+1,n),A.lineTo(d.px1-1,n),A.stroke(),A.restore(),A.strokeStyle=y;const C=Math.max(0,d.px)+D/2,e=Math.min(t.pixelWidth,d.px1);for(let I=C;I<e;I+=D)eC(A,I,n,u);for(const C of I.exons){let I=Math.round((C.start-t.bpStart)/t.bpPerPixel),e=Math.round((C.end-t.bpStart)/t.bpPerPixel),B=Math.max(1,e-I);if(!(I+B<0)){if(I>t.pixelWidth)break;if(C.utr)A.fillStyle=s,tC(A,I,c,B,h,g);else{if(C.cdStart){const e=Math.round((C.cdStart-t.bpStart)/t.bpPerPixel);A.fillStyle=s,tC(A,I,c,e-I,h,g),B-=e-I,I=e}if(C.cdEnd){const I=Math.round((C.cdEnd-t.bpStart)/t.bpPerPixel);A.fillStyle=s,tC(A,I,c,e-I,h,g),B-=e-I,e=I}if(B=Math.max(B,1),A.fillStyle=E,tC(A,I,r,B,a,g),B>D+5&&0!==u){A.strokeStyle=w;for(let g=I+D/2;g<e;g+=D)eC(A,g,n,u)}}}}}e&&"SQUISHED"!==g.displayMode&&d.pw>=10&&function(A,I,g,t,C,e,B,i){var Q,o,E,s;const a=function(A,I){const g={name:A.name,id:A.id,chr:A.chr},t=g[I];return void 0!==t?t:A.id}(I,e.labelField);if(!a||"."===a)return;A.save();try{A.font=null!==(Q=e.labelFont)&&void 0!==Q?Q:e.font;const r=(B.pixelWidth-B.viewportWidth)/2,n=r+B.viewportWidth,h=Math.max(g,r),c=Math.min(t,n);if(h>=c)return;const l=(h+c)/2,d="COLLAPSED"===e.displayMode&&"SLANT"===e.labelDisplayMode,D=d?C+20:C+25;A.fillStyle=null!==(o=e.labelColor)&&void 0!==o?o:BC(I,e);const u=A.measureText(a),y=l-u.width/2,w=l+u.width/2;if(y>(null!==(E=i[I.row])&&void 0!==E?E:-Number.MAX_SAFE_INTEGER)){i[I.row]=w;const g=l-u.width/2-1,t=D-u.actualBoundingBoxAscent-1,C=u.width+2,B=u.actualBoundingBoxAscent+u.actualBoundingBoxDescent+2;e.labelBackground?(A.fillStyle=e.labelBackground,A.fillRect(g,t,C,B),A.fillStyle=null!==(s=e.labelColor)&&void 0!==s?s:BC(I,e)):A.clearRect(g,t,C,B),d?(A.save(),A.translate(l,D),A.rotate(Math.PI/4),A.fillText(a,0,0),A.restore()):(A.textAlign="center",A.fillText(a,l,D))}}finally{A.restore()}}(A,I,d.px,d.px1,r,g,t,C)}finally{A.restore()}}function eC(A,I,g,t){A.beginPath(),A.moveTo(I-2*t,g-2),A.lineTo(I,g),A.stroke(),A.beginPath(),A.moveTo(I-2*t,g+2),A.lineTo(I,g),A.stroke()}function BC(A,I){return A.color?A.color:I.altColor&&"-"===A.strand?I.altColor:I.color}class iC extends vt{constructor(A,I){const g=J(L(I.theme),I.config);super(A,I.locus,g,I.canvasProvider),this._userOverrides={},this.packedFeatures=[],this.packedReady=!1,this.type="annotation",this.features=I.features,this._name=I.name,I.config&&(this._userOverrides={...I.config})}setFixedHeight(A){this.setConfig({height:A})}setFeatures(A){this.features=A,this.packedReady=!1,this.render()}computeHeight(A){var I,g;if(this.packedReady||(this.packedFeatures=this.features.map(A=>({...A})),function(A,I){const g=null!=I?I:Number.MAX_SAFE_INTEGER,t=[-1e3];A.sort((A,I)=>A.start-I.start);for(const I of A){const A=Math.min(t.length,g);let C=0;for(C=0;C<A&&!(I.start>=t[C]);C++);I.row=C,t[C]=I.end}0===A.length||t.length}(this.packedFeatures,this.config.maxRows),this.packedReady=!0),"COLLAPSED"===this.config.displayMode)return null!==(I=this.config.height)&&void 0!==I?I:2*this.config.margin+this.config.expandedRowHeight+10;const{start:t,end:C}=this._locus,e=Kt(this.packedFeatures,C);let B=0;for(let A=0;A<e;A++){const I=this.packedFeatures[A];I.end<t||void 0!==I.row&&I.row>B&&(B=I.row)}const i="SQUISHED"===this.config.displayMode?this.config.squishedRowHeight:this.config.expandedRowHeight;return null!==(g=this.config.height)&&void 0!==g?g:2*this.config.margin+(B+1)*i+10}getBackground(){return this.config.background}renderLabelOverlay(A,I,g){var t;this.externalUIEnabled||this._name&&bt(A,{name:this._name,background:this.config.background,labelColor:null!==(t=this.config.labelColor)&&void 0!==t?t:"#333"},g)}doRender(A,I,g,t){var C;const e=this.config.labelBackground?this.config:{...this.config,labelBackground:this.config.background};!function(A,I,g,t,C,e){var B,i;const Q={},o=[],E=t.bpStart+t.pixelWidth*t.bpPerPixel,s=[];for(let A=0;A<I.length;A++){const C=I[A];if(C.start>E)break;if(void 0!==C.row&&C.start>=t.bpStart&&C.end<=E){const A="COLLAPSED"===g.displayMode?0:C.row;s[A]=(null!==(B=s[A])&&void 0!==B?B:0)+1}}const a=0===s.length?0:Math.max(...s.filter(A=>void 0!==A)),r=a>0?t.pixelWidth/a:1/0,n=g.drawLabels&&r>10,h=Kt(I,E);for(let C=0;C<h;C++){const B=I[C];if(B.end<t.bpStart)continue;if(void 0===B.row)continue;const i="COLLAPSED"===g.displayMode?0:B.row,E=Math.ceil((B.end-t.bpStart)/t.bpPerPixel),s=o[i];if(!(void 0!==s&&E<=s)){if(void 0!==s&&void 0!==e){const I=Math.floor((B.start-t.bpStart)/t.bpPerPixel);I-s<=0&&(A.save(),A.globalAlpha=.5,A.strokeStyle=g.background,A.lineWidth=1,A.beginPath(),A.moveTo(I,0),A.lineTo(I,e),A.stroke(),A.globalAlpha=1,A.restore())}o[i]=E,CC(A,B,g,t,Q,n)}}C&&bt(A,C,A.canvas.height/(null!==(i=globalThis.devicePixelRatio)&&void 0!==i?i:1))}(A,this.packedFeatures,e,t,this._name&&!this.externalUIEnabled?{name:this._name,background:this.config.background,labelColor:null!==(C=e.labelColor)&&void 0!==C?C:"#333"}:void 0,g)}getUIOverlayState(){var A;if(this._name)return{label:{text:this._name,background:this.config.background,color:null!==(A=this.config.labelColor)&&void 0!==A?A:"#333"}}}getContextMenuItems(A,I){return[{label:"Display mode",children:["EXPANDED","SQUISHED","COLLAPSED"].map(A=>({label:A.charAt(0)+A.slice(1).toLowerCase(),type:"checkbox",checked:this._config.displayMode===A,action:()=>this.setConfig({displayMode:A})}))}]}getFeatureRects(){var A;if(0===this.packedFeatures.length)return[];const I=this.viewportWidth;if(0===I)return[];const g=this._config,t="SQUISHED"===g.displayMode?g.squishedRowHeight:g.expandedRowHeight,C="SQUISHED"===g.displayMode?g.featureHeight/2:g.featureHeight,e=this.viewportXToGenomicBp(0),B=this.viewportXToGenomicBp(I),i=[],Q=Kt(this.packedFeatures,B);for(let I=0;I<Q;I++){const B=this.packedFeatures[I];if(B.end<e)continue;if(void 0===B.row)continue;const Q=this.genomicBpToViewportX(B.start),o=this.genomicBpToViewportX(B.end),E="COLLAPSED"===g.displayMode?g.margin:g.margin+t*B.row;let s=Q,a=o-Q;a<3&&(s-=(3-a)/2,a=3);const r=null!==(A=B.color)&&void 0!==A?A:g.altColor&&"-"===B.strand?g.altColor:g.color;i.push({feature:B,x:s,y:E,width:a,height:C,color:r})}return i}hitTest(A,I){if(0===this.packedFeatures.length)return[];if(0===this.viewportWidth)return[];const g=this.viewportXToGenomicBp(A),t="SQUISHED"===this._config.displayMode?this._config.squishedRowHeight:this._config.expandedRowHeight,C=Math.floor((I-this._config.margin)/t);if(C<0)return[];const e=[],B=Kt(this.packedFeatures,g);for(let A=0;A<B;A++){const I=this.packedFeatures[A];I.end<g||("COLLAPSED"!==this._config.displayMode&&I.row!==C||e.push({feature:I,popupData:QC(I)}))}return e}setConfig(A){Object.assign(this._userOverrides,A),super.setConfig(A)}setTheme(A){this._config=J(A,this._userOverrides),this.render()}serializeConfig(A){const I=J(A);return{type:"annotation",config:AC(this.config,I)}}}function QC(A){const I=[];return A.name&&I.push({name:"Name",value:A.name}),A.id&&I.push({name:"ID",value:A.id}),A.chr&&I.push({name:"Chr",value:A.chr}),I.push({name:"Start",value:A.start.toLocaleString()}),I.push({name:"End",value:A.end.toLocaleString()}),A.strand&&I.push({name:"Strand",value:A.strand}),null!=A.cdStart&&null!=A.cdEnd&&A.cdStart!==A.cdEnd&&I.push({name:"CDS",value:`${A.cdStart.toLocaleString()}-${A.cdEnd.toLocaleString()}`}),A.exons&&I.push({name:"Exons",value:A.exons.length}),I}function oC(A){return Math.floor(A).toLocaleString("en-US")}function EC(A,I,g){const t=I.height,C=function(A){if(A<10)return{majorTick:1,majorUnit:"bp",unitMultiplier:1};const I=Math.floor(Math.log10(A));let g="bp",t=1;return I>9?(g="gb",t=1e9):I>6?(g="mb",t=1e6):I>3&&(g="kb",t=1e3),{majorTick:A/Math.pow(10,I-1)<75?Math.pow(10,I-1):Math.pow(10,I)/2,majorUnit:g,unitMultiplier:t}}(Math.floor(g.pixelWidth*g.bpPerPixel));let e=Math.floor(g.bpStart/C.majorTick)-1;const B=A=>Math.floor(A*C.majorTick),i=A=>Math.round((A-1-g.bpStart+.5)/g.bpPerPixel),Q=i(B(1+e))-i(B(e)),o=`${oC(B(e)/C.unitMultiplier)} ${C.majorUnit}`,E=Math.floor(A.measureText(o).width),s=.25*E;A.font=I.font,A.fillStyle=I.labelColor,A.strokeStyle=I.tickColor,A.lineWidth=1;let a,r=Q;do{const o=B(e),n=`${oC(o/C.unitMultiplier)} ${C.majorUnit}`;a=i(o);const h=A.measureText(n).width,c=Math.round(a-h/2);c>0&&s+E<=r&&(A.fillStyle=I.labelColor,A.fillText(n,c,t-8),r=0),a>0&&(A.beginPath(),A.moveTo(a,t-6),A.lineTo(a,t-2),A.stroke());const l=a+(i(B(1+e))-a)/2;l>0&&l<g.pixelWidth&&(A.beginPath(),A.moveTo(l,t-6),A.lineTo(l,t-2),A.stroke()),++e,r+=Q}while(a<g.pixelWidth);A.strokeStyle=I.baselineColor,A.beginPath(),A.moveTo(0,t-2),A.lineTo(g.pixelWidth,t-2),A.stroke()}class sC extends vt{constructor(A,I={}){const g=Y(L(I.theme),I.config);super(A,I.locus,g,I.canvasProvider),this.type="ruler",this._cumulativeOffsets=I.cumulativeOffsets,this._chromSizes=I.chromSizes}setCumulativeOffsets(A){this._cumulativeOffsets=A}setChromSizes(A){this._chromSizes=A}computeHeight(A){return this.config.height}getBackground(){return this.config.background}doRender(A,I,g,t){h(this._locus)&&this._cumulativeOffsets&&this._chromSizes?function(A,I,g,t){var C;const e=I.height,{cumulativeOffsets:B,chromSizes:i}=t;A.fillStyle=null!==(C=I.background)&&void 0!==C?C:"white",A.fillRect(0,0,g.pixelWidth,e),A.textAlign="center",A.textBaseline="middle",A.font=I.font;for(const I of B.chromosomeNames){const t=B.offsets[I],C=i[I];if(void 0===t||void 0===C)continue;const Q=Math.round((t-g.bpStart)/g.bpPerPixel),o=Math.round(C/g.bpPerPixel);A.strokeStyle="#bfbfbf",A.lineWidth=1,A.beginPath(),A.moveTo(Q+o,0),A.lineTo(Q+o,e),A.stroke();const E=I.startsWith("chr")?I.substring(3):I;o>A.measureText(E).width&&(A.fillStyle="#444444",A.fillText(E,Q+o/2,e/2))}}(A,this.config,t,{cumulativeOffsets:this._cumulativeOffsets,chromSizes:this._chromSizes}):EC(A,this.config,t)}setTheme(A){this._config=Y(A),this.render()}serializeConfig(A){const I=Y(A);return{type:"ruler",config:AC(this.config,I)}}}const aC=(()=>{const A=new Map,I=["A","G","C","T","Y","R","W","S","K","M","D","V","H","B","N","X"],g=["T","C","G","A","R","Y","W","S","M","K","H","B","D","V","N","X"];for(let t=0;t<I.length;t++)A.set(I[t],g[t]),A.set(I[t].toLowerCase(),g[t].toLowerCase());return A})();const rC={TTT:"F",TTC:"F",TTA:"L",TTG:"L",CTT:"L",CTC:"L",CTA:"L",CTG:"L",ATT:"I",ATC:"I",ATA:"I",ATG:"M",GTT:"V",GTC:"V",GTA:"V",GTG:"V",TCT:"S",TCC:"S",TCA:"S",TCG:"S",AGT:"S",AGC:"S",CCT:"P",CCC:"P",CCA:"P",CCG:"P",ACT:"T",ACC:"T",ACA:"T",ACG:"T",GCT:"A",GCC:"A",GCA:"A",GCG:"A",TAT:"Y",TAC:"Y",TAA:"STOP",TAG:"STOP",TGA:"STOP",CAT:"H",CAC:"H",CAA:"Q",CAG:"Q",AAT:"N",AAC:"N",AAA:"K",AAG:"K",GAT:"D",GAC:"D",GAA:"E",GAG:"E",TGT:"C",TGC:"C",TGG:"W",CGT:"R",CGC:"R",CGA:"R",CGG:"R",AGA:"R",AGG:"R",GGT:"G",GGC:"G",GGA:"G",GGG:"G"};function nC(A,I){var g;return I.color?I.color:"dna"===I.sequenceType?null!==(g=I.nucleotideColors[A.toUpperCase()])&&void 0!==g?g:"#808080":I.nonDnaColor}function hC(A,I,g,t){if(!I||!I.sequence)return;let C=I.sequence;g.reversed&&(C=C.split("").map(A=>{return I=A,null!==(g=aC.get(I))&&void 0!==g?g:I;var I,g}).join(""));const e=I.bpStart,B=1+t.bpStart+t.pixelWidth*t.bpPerPixel,{sequenceHeight:i,frameBorder:Q}=g;for(let I=Math.floor(t.bpStart);I<=B;I++){const B=Math.floor(I-e);if(B<0||B>=C.length)continue;const o=(I-t.bpStart)/t.bpPerPixel,E=1/t.bpPerPixel,s=C[B],a=nC(s,g);if(t.bpPerPixel>.1)A.fillStyle=a,A.fillRect(o,Q,E,i-Q);else{const I=o+.5*(E-A.measureText(s).width);A.strokeStyle=a,A.strokeText(s,I,i)}}if(g.frameTranslate){let I=i+2*Q;const B=function(A,I=!1){var g;const t=[[],[],[]];for(let C=0;C<3;C++){let e=C;for(;A.length-e>=3;){let B=A.slice(e,e+3);I&&(B=B.split("").reverse().join(""));const i=null!==(g=rC[B.toUpperCase()])&&void 0!==g?g:"";t[C].push({codons:B,aminoA:i}),e+=3}}return t}(C,g.reversed),o=g.codonBorderRadius;for(let C=0;C<B.length;C++){const i=B[C];for(let B=0;B<i.length;B++){let Q=B%2==0?g.frameColor1:g.frameColor2;const E=i[B],s=e+C+3*B-t.bpStart,a=Math.floor(s/t.bpPerPixel),r=Math.floor((s+3)/t.bpPerPixel),n=Math.round((a+r)/2);if(r<0)continue;if(a>t.pixelWidth)break;let h=E.aminoA,c=!1;if(E.aminoA.indexOf("STOP")>-1?(Q=g.stopCodonColor,h="STOP",c=!0):"M"===E.aminoA&&(Q=g.startCodonColor,h="START",c=!0),A.fillStyle=Q,c&&o>0?(A.beginPath(),A.roundRect(a,I,r-a,g.frameHeight,o),A.fill()):A.fillRect(a,I,r-a,g.frameHeight),t.bpPerPixel<=.1){A.font=g.frameFont;const t=A.measureText(h).width,C=c&&g.codonLabelColor?g.codonLabelColor:g.frameLabelColor;A.fillStyle=C,A.fillText(h,n-t/2,I+15)}}I+=g.frameHeight+Q}}}class cC{constructor(A,I=10){this.sequenceProvider=A,this.bppThreshold=I}async fetch(A,I,g){if(I>this.bppThreshold)return[];if(g.aborted)return[];const t=Math.floor(A.start),C=Math.floor(A.end);return[{bpStart:t,sequence:await this.sequenceProvider({chr:A.chr,start:t,end:C},g)}]}}class lC extends vt{constructor(A,I={}){var g;const t=L(I.theme),C=v(t,I.config);super(A,I.locus,C,I.canvasProvider),this.type="sequence",this._sequence=null,this._theme=t,this._bppThreshold=null!==(g=I.bppSequenceThreshold)&&void 0!==g?g:10}shouldFetchSequence(A){return A<=this._bppThreshold}setFeatures(A){this._sequence=A.length>0?A[0]:null,this.render()}setSequence(A){this._sequence=A,this.render()}getSequence(){return this._sequence}toggleReversed(){this.setConfig({reversed:!this._config.reversed})}toggleFrameTranslate(){this.setConfig({frameTranslate:!this._config.frameTranslate})}getContextMenuItems(A,I){return[{label:this._config.reversed?"Forward":"Reverse",action:()=>this.toggleReversed()},{label:this._config.frameTranslate?"Close Translation":"Three-frame Translate",action:()=>this.toggleFrameTranslate()}]}computeHeight(A){return this._config.frameTranslate?this._config.translatedHeight:this._config.defaultHeight}getBackground(){return this._config.background}doRender(A,I,g,t){hC(A,this._sequence,this._config,t)}setTheme(A){this._config=v(A),this._theme=A,this.render()}serializeConfig(A){const I=v(A),g={};this._config.sequenceType!==I.sequenceType&&(g.sequenceType=this._config.sequenceType),this._config.reversed!==I.reversed&&(g.reversed=this._config.reversed),this._config.frameTranslate!==I.frameTranslate&&(g.frameTranslate=this._config.frameTranslate),this._config.color!==I.color&&(g.color=this._config.color),this._config.background!==I.background&&(g.background=this._config.background);const t={type:"sequence"};return Object.keys(g).length>0&&(t.config=g),t}}function dC(A){let{bucket:I,object:g}=function(A){let I,g;if(A.startsWith("gs://")){const t=A.indexOf("/",5);if(t>=0){I=A.substring(5,t);const C=A.indexOf("?");g=C<0?A.substring(t+1):A.substring(t+1,C)}}else if(A.startsWith("https://storage.googleapis.com")||A.startsWith("https://storage.cloud.google.com")){const t=A.indexOf("/v1/b/",8);if(t>0){const C=A.indexOf("/o/",t);if(C>0){const e=A.indexOf("?",C);I=A.substring(t+6,C),g=e>0?A.substring(C+3,e):A.substring(C+3)}}else{const t=A.indexOf("/",8),C=A.indexOf("/",t+1),e=A.indexOf("?",C);C>0&&(I=A.substring(t+1,C),g=e<0?A.substring(C+1):A.substring(C+1,e))}}else if(A.startsWith("https://www.googleapis.com/storage/v1/b")){const t=A.indexOf("/v1/b/",8),C=A.indexOf("/o/",t);if(C>0){const e=A.indexOf("?",C);I=A.substring(t+6,C),g=e>0?A.substring(C+3,e):A.substring(C+3)}}if(I&&g)return{bucket:I,object:g};throw new Error(`Unrecognized Google Storage URI: ${A}`)}(A);g=function(A){let I="";for(const g of A){const A=DC.get(g);I+=null!=A?A:g}return I}(g);const t=A.indexOf("?");return`https://storage.googleapis.com/storage/v1/b/${I}/o/${g}${t>0?A.substring(t)+"&alt=media":"?alt=media"}`}const DC=new Map([["!","%21"],["#","%23"],["$","%24"],["%","%25"],["&","%26"],["'","%27"],["(","%28"],[")","%29"],["*","%2A"],["+","%2B"],[",","%2C"],["/","%2F"],[":","%3A"],[";","%3B"],["=","%3D"],["?","%3F"],["@","%40"],["[","%5B"],["]","%5D"],[" ","%20"]]);function uC(A){return!function(A){return A.startsWith("gs://")||A.startsWith("https://www.googleapis.com/storage")||A.startsWith("https://storage.cloud.google.com")||A.startsWith("https://storage.googleapis.com")}(A)||function(A){return A.indexOf("X-Goog-Signature")>-1}(A)||A.includes("/storage/v1/b/")?A:dC(A)}class yC{constructor(A,I=!0){this.littleEndian=I,this.position=0,this.view=A,this.length=A.byteLength}setPosition(A){this.position=A}available(){return this.length-this.position}getByte(){const A=this.view.getUint8(this.position);return this.position++,A}getShort(){const A=this.view.getInt16(this.position,this.littleEndian);return this.position+=2,A}getUShort(){const A=this.view.getUint16(this.position,this.littleEndian);return this.position+=2,A}getInt(){const A=this.view.getInt32(this.position,this.littleEndian);return this.position+=4,A}getUInt(){const A=this.view.getUint32(this.position,this.littleEndian);return this.position+=4,A}getLong(){const A=[];for(let I=0;I<8;I++)A[I]=this.view.getUint8(this.position+I);let I=0;if(this.littleEndian)for(let g=7;g>=0;g--)I=256*I+A[g];else for(let g=0;g<8;g++)I=256*I+A[g];return this.position+=8,I}getString(A){let I,g="";for(;0!==(I=this.view.getUint8(this.position++))&&(g+=String.fromCharCode(I),!A||g.length!==A););return g}getFixedLengthString(A){let I="";for(let g=0;g<A;g++){const A=this.view.getUint8(this.position++);A>0&&(I+=String.fromCharCode(A))}return I}getFloat(){const A=this.view.getFloat32(this.position,this.littleEndian);return this.position+=4,A}getDouble(){const A=this.view.getFloat64(this.position,this.littleEndian);return this.position+=8,A}skip(A){return this.position+=A,this.position}}const wC=new Map;function fC(A,I,g){var t,C,e,B,i,Q;if(void 0===A.score&&!A.summary)return;let o;if(A.summary)switch(g){case"min":o=null!==(C=null!==(t=A.minScore)&&void 0!==t?t:A.score)&&void 0!==C?C:0;break;case"max":o=null!==(B=null!==(e=A.maxScore)&&void 0!==e?e:A.score)&&void 0!==B?B:0;break;default:o=null!==(i=A.score)&&void 0!==i?i:0}else o=null!==(Q=A.score)&&void 0!==Q?Q:0;return{chr:I,start:A.start,end:A.end,value:o}}class SC{constructor(A,I){this.bw=function(A,I){const g=uC(A);let t=wC.get(g);t||(t=new DI({filehandle:new AA(g,I?{fetch:I}:void 0)}),wC.set(g,t));return t}(A,I)}async loadHeader(A){const I=await this.bw.getHeader({signal:A});return{bwVersion:I.version,nZoomLevels:I.numZoomLevels,chromTreeOffset:I.chromosomeTreeOffset,fullDataOffset:I.unzoomedDataOffset,fullIndexOffset:I.unzoomedIndexOffset,fieldCount:I.fieldCount,definedFieldCount:I.definedFieldCount,autoSqlOffset:I.asOffset,totalSummaryOffset:I.totalSummaryOffset,uncompressBuffSize:I.uncompressBufSize,extensionOffset:I.extHeaderOffset}}async getTotalSummary(A){const I=(await this.bw.getHeader({signal:A})).totalSummary;if(!I)return;const g=I.basesCovered>0?I.scoreSum/I.basesCovered:0,t=I.basesCovered>0?I.scoreSumSquares/I.basesCovered-g*g:0;return{basesCovered:I.basesCovered,minVal:I.scoreMin,maxVal:I.scoreMax,sumData:I.scoreSum,sumSquares:I.scoreSumSquares,mean:g,stddev:Math.sqrt(Math.max(0,t))}}async readFeatures(A,I,g,t,C="mean",e){const B={signal:e};t&&"none"!==C&&(B.basesPerSpan=t);const i=await this.bw.getFeatures(A,I,g,B),Q=[];for(const I of i){const g=fC(I,A,C);g&&Q.push(g)}return Q}async readWGFeatures(A,I,g="mean",t){const C=[];for(const e of A)try{const A=await this.readFeatures(e,0,Number.MAX_SAFE_INTEGER,I,g,t);C.push(...A)}catch(A){}return C}}async function kC(A,I,g){if(null==g?void 0:g.aborted)return[];const t=await Promise.allSettled(A.map(A=>I(A))),C=t.filter(A=>"fulfilled"===A.status);if(0===C.length&&t.length>0)throw t[0].reason;return C.flatMap(A=>A.value)}function GC(A,I){const g=[];for(const t of A){if(!t.chr)continue;const A=I.offsets[t.chr];void 0!==A&&g.push({...t,chr:"all",start:A+t.start,end:A+t.end})}return g.sort((A,I)=>A.start-I.start),g}class FC{constructor(A,I="mean",g){this.url=A,this._windowFunction=I,this.fetchImpl=g}get windowFunction(){return this._windowFunction}setWindowFunction(A){this._windowFunction=A}setCumulativeOffsets(A){this._cumulativeOffsets=A}setChromNameResolver(A){this._resolveChromName=A}async fetch(A,I,g){if(h(A)&&this._cumulativeOffsets)return this.fetchWG(I,g);const t=this._resolveChromName?{...A,chr:this._resolveChromName(A.chr)}:A,C=await async function(A,I,g={}){var t,C;const e=new SC(A,g.fetchImpl);try{return await e.readFeatures(I.chr,I.start,I.end,g.bpPerPixel,null!==(t=g.windowFunction)&&void 0!==t?t:"mean",g.signal)}catch(I){throw I instanceof Error&&("AbortError"===I.name||(null===(C=I.message)||void 0===C?void 0:C.includes("aborted")))&&wC.delete(A),I}}(this.url,t,{bpPerPixel:I,windowFunction:this._windowFunction,signal:g,fetchImpl:this.fetchImpl});return I>1&&"none"!==this._windowFunction&&C.length>0?jt(C,A.start,I,this._windowFunction):C}async fetchWG(A,I){const g=this._cumulativeOffsets;if(!g)throw new Error("fetchWG called without cumulativeOffsets");const t=await async function(A,I,g,t={}){var C;return new SC(A,t.fetchImpl).readWGFeatures(I,g,null!==(C=t.windowFunction)&&void 0!==C?C:"mean",t.signal)}(this.url,g.chromosomeNames,A,{windowFunction:this._windowFunction,signal:I,fetchImpl:this.fetchImpl}),C=GC(t,g);return A>1&&"none"!==this._windowFunction&&C.length>0?jt(C,0,A,this._windowFunction):C}}async function NC(A,I,g,t){const C=null!=t?t:globalThis.fetch,e=I.start+I.size-1,B={Range:`bytes=${I.start}-${e}`};let i=await C(A,{headers:B,signal:g});if(200===i.status&&i.redirected&&i.url&&i.url!==A&&(i=await C(i.url,{headers:B,signal:g})),416===i.status){const C=await async function(A,I,g){const t=null!=g?g:globalThis.fetch;let C=await t(A,{method:"HEAD",signal:I});if(C.redirected&&C.url&&C.url!==A){C.headers.get("Content-Length")||(C=await t(C.url,{method:"HEAD",signal:I}))}if(!C.ok)throw new Error(`HEAD request failed: ${C.status} ${C.statusText}`);const e=C.headers.get("Content-Length");if(!e)throw new Error("No Content-Length header in HEAD response");return parseInt(e,10)}(A,g,t),e=Math.min(I.size,C-I.start);if(e<=0)throw new Error(`HTTP range request failed: 416 Range Not Satisfiable (file size: ${C})`);return NC(A,{start:I.start,size:e},g,t)}if(!i.ok&&206!==i.status)throw new Error(`HTTP range request failed: ${i.status} ${i.statusText}`);if(200===i.status){return(await i.arrayBuffer()).slice(I.start,I.start+I.size)}return i.arrayBuffer()}let mC,RC,pC,UC,MC;let LC,JC=!1;function KC(){const A=RC.buffer;pC=new Int8Array(A),UC=new Uint8Array(A)}const YC={};let vC;function bC(A,I){return Math.ceil(A/I)*I}const xC={a:function(A){},b:function(){},c:function(){!function(A){const I="Aborted("+(null!=A?A:"")+")";throw new WebAssembly.RuntimeError(I)}("")},d:function(A,I){if(YC[A]&&(clearTimeout(YC[A].id),delete YC[A]),!I)return 0;const g=setTimeout(()=>{delete YC[A],vC(A,performance.now())},I);return YC[A]={id:g,timeout_ms:I},0},e:function(A){const I=UC.length,g=2147483648;if((A>>>=0)>g)return!1;for(let t=1;t<=4;t*=2){let C=I*(1+.2/t);C=Math.min(C,A+100663296);const e=(Math.min(g,bC(Math.max(A,C),65536))-RC.buffer.byteLength+65535)/65536|0;try{return RC.grow(e),KC(),!0}catch(A){}}return!1}};async function HC(){if(!JC)return LC||(LC=async function(){const A=function(){if(mC)return mC;const A=atob("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AWohACAGIAhqIQYMAQsACwALQQAhAgNAIAIgBUZFBEAgBCACIAlqLQAAQQF0aiIAIAAvAQAiAEEBajsBACAQIABBAXRqIAIgBWo7AQAgAkEBaiECDAELCyADQR9rIQQgA0EQdCAFayIFQYCABGohCUEAIQZBACEAQQAhAgNAIAIgCkYNAQJAAkACQAJAAkAgASACQQF0ai8BACIDDgIAAgELIA0gAkEDdGogCTYCBAwDCyADQf//A0cNAQsgDSACQQN0aiIDIABBAWs2AgAgAyAFNgIEIABBAWohAAwBCyANIAJBA3RqIgcgACADwSIDazYCACAHIAQgA0EBa2dqIgdBEHQgAyAHdGs2AgQgACADaiEACyACQQFqIQIMAAsACyAGCxcAIAAgASACIANCgIDs/Mub741PELIBCxcAIAAgASACIANCgIDs/Mub741PELMBCxcAIAAgASACIANCgIDs/Mub741PELQBCxcAIAAgASACIANCgICA2Mub741PELIBCxcAIAAgASACIANCgICA2Mub741PELMBCxcAIAAgASACIANCgICA2Mub741PELQBC6EKAhd/An4jAEGAAmsiEyQAIAEgACgCBCIOayIIQQEgACgCuAF0IgRrIAAoAhAiEiAIIBJrIARLGyERIAAoAhghFyAAKAIMIRQgACgCCCEWQQYgACgCxAEiBCAEQQZPGyEYIAApA1AhGyAAKAIkIQsgACgCKCEJIAAoAlwhDAJAIAAoAtwBRQRAIABBLGohEAJ/IAggACgCHCIEa0GAA00EQEEYIAtrIQ8gCSEGIAwhByAODAELIAQgBEHgAGoiBSAEIAVLGyEPQRggC2shCiAOQQhqIQ0DQCAEIA9GRQRAIBAgBEEHcUECdGoiBigCACEFIAYgACgCUCAEIA1qKAAAQbHz3fF5bHMgCnY2AgAgCSAFQQJ2QcD///8DcSIVaiIGQT9BACAGLQAAIgdBP3FBAUYbIAdBAWtBP3FqIgc6AAAgBiAHaiAFOgAAIAwgFUECdGogB0ECdGogBDYCACAEQQFqIQQMAQsLQQggAUEBaiIFIA4gCEEgayIEaiIGa0EBaiIHIAdBCE8bQQAgBSAGTxsgBGohCkEYIAAoAiRrIQ8gACgCKCEGIAAoAlwhByAEIQUDQCAFIApPRQRAIBAgBUEHcUECdGogACgCUCAF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IAQgGWooAABBsfPd8XlscyAPdjYCACAGIAVBBHZB8P///wBxIhpqIgpBD0EAIAotAAAiDUEPcUEBRhsgDUEBa0EPcWoiDToAACAKIA1qIAU6AAAgByAaQQJ0aiANQQJ0aiAENgIAIARBAWohBAwBCwsgACAJNgIcIBAgCUEHcUECdGoiBCgCACEHIAQgG6cgCSAOaigACEGx893xeWxzQRggC2t2NgIADAELIAEoAAAhBCAAIAk2AhwgG6cgBEGx893xeWxzQRggC2t2IQcLIBIgESAXGyEQIBQgFmohDyAOIBRqIRJBASAYdCEGIAAgACgCWCAHajYCWCAHQf8BcUGBgoQIbCEKIAggB0EEdkHw////AHEiDWoiCy0AACEIQgAhG0EQIQQDQCALIARBBGsiBWooAAAgCnMiEUGAgYKEeHJBgYKECGsgEXJBgIGChHhxQYGBgQFsQRx2rSAbQgSGhCEbIARBB0sgBSEEDQALQQAhBSAbp0F/cyIEQf//A3EgCEEPcXYgBEEAIAhrQQ9xdHKtQv//A4MhGyAMIA1BAnRqIQwDQAJAIAZFIBtQcg0AIBunaCAIakEPcSIEBEAgDCAEQQJ0aigCACIEIBBJDQEgEyAFQQJ0aiAENgIAIAZBAWshBiAFQQFqIQULIBtCAX0gG4MhGwwBCwtBACEEIAsgCEEBa0EPcUEPQQAgCEEPcUEBRhtqIgY6AAAgBiALaiAHOgAAIAAgACgCHCIAQQFqNgIcIAwgBkECdGogADYCAEEDIQYgCUEDaiEMIAFBBGohByABQQNrIQkDQAJAIAQgBUYEQCAGIQAMAQsCQCAGAn8gFCATIARBAnRqKAIAIghNBEAgCCAOaiIAIAZqQQNrKAAAIAYgCWooAABHDQIgASAAIAIQBgwBCyAIIBZqIgAoAAAgASgAAEcNASAHIABBBGogAiAPIBIQBUEEagsiAE8NACADIAwgCGs2AgAgACIGIAFqIAJGDQELIARBAWohBAwBCwsgE0GAAmokACAACxcAIAAgASACIANCgIDs/Mub741PELUBCxcAIAAgASACIANCgIDs/Mub741PELYBCxcAIAAgASACIANCgIDs/Mub741PELcBCxcAIAAgASACIANCgICA2Mub741PELUBCxcAIAAgASACIANCgICA2Mub741PELYBCxcAIAAgASAC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DCAJEJIBIAEoAgwhBAJAIB4gByANaiIPTwRAIA0pAAAhIiAEIA0pAAg3AAggBCAiNwAAIAdBEUkNASANKQAQISIgASgCDCIEIA0pABg3ABggBCAiNwAQIAdBIUgNASANQRBqIQYgBCAHaiENIARBIGohBANAIAYpABAhIiAEIAYpABg3AAggBCAiNwAAIAYpACAhIiAEIAYpACg3ABggBCAiNwAQIAZBIGohBiAEQSBqIgQgDUkNAAsMAQsgBCANIA8gHhAHCyABIAEoAgwgB2o2AgwgASgCBCEEIAdBgIAETwRAIAFBATYCJCABIAQgASgCAGtBA3U2AigLIAQgDDYCACAEIAc7AQQgCUEDayIHQYCABE8EQCABQQI2AiQgASAEIAEoAgBrQQN1NgIoCyAEIAc7AQYgASAEQQhqNgIEIAkgD2oiDQUgByANagshDyAFQQFqIQUMAQsLIBFBAhCQAQwACwALvQEBAX8CQCAAKAIMIgZFDQAgACgCBCAGTw0AIAAoAhgiBiADTQRAIAMgBksEQCAAIAMgBmsQUgsgACADIAQQXyAAKAIYIQYLIAMgACgCFEkgAyAGT3INACAGIANrIgQgBUkNACACKAIAIgMEQCADQf8fSw0BIAQgASADQQN0akEEaygCAE0NAQsgACgCHCEAIAEgA0EDdGogBDYCBCABIAIoAgBBA3RqIABBA2o2AgAgAiACKAIAQQFqNgIACwtMACAEQQNxBEBBfw8LIAVBgCBJBEBBvn8PCyABKAIAQf4BTQRAIAAgASACIANBASAEEKkBDwsgAUH/ATYCACAAIAEgAiADIAQgBRAiC40CAgN/AX4gACACaiEEAkACQCACQQhOBEAgACABayICQXlIDQELA0AgACAETw0CIAAgAS0AADoAACAAQQFqIQAgAUEBaiEBDAALAAsCQAJAIAJBb0sNACAAIARBIGsiAksNACABKQAAIQYgACABKQAINwAIIAAgBjcAACACIABrIgVBEU4EQCAAQRBqIQAgASEDA0AgAykAECEGIAAgAykAGDcACCAAIAY3AAAgAykAICEGIAAgAykAKDcAGCAAIAY3ABAgA0EgaiEDIABBIGoiACACSQ0ACwsgASAFaiEBDAELIAAhAgsDQCACIARPDQEgAiABLQAAOgAAIAJBAWohAiABQQFqIQEMAAsACwuR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AAJ/IAIgACgClOsBBH8gACgC0OkBBUGAgAgLIgIgA2pBQGtLBEAgACABIAJqQSBqIgE2AvzrAUEBIQIgASADagwBCyADQYCABE0EQCAAIABBiOwBaiIBNgL86wFBACECIAEgA2oMAQsgACABIARqIgEgA2siAkHg/wNqIgQgAiAFGzYC/OsBQQIhAiADIARqQYCABGsgASAFGwshAyAAIAI2AoTsASAAIAM2AoDsAQtSAQN/AkAgACgCmOsBIgFFDQAgASgCACABKAK01QEiAiABKAK41QEiAxAUIAIEQCADIAEgAhEJAAwBCyABEBgLIABBADYCqOsBIABCADcDmOsBCyYAIANBGHQgAUEQdGogACAAQQh0IAJyIANBAUYbcq1CgYCAgBB+C0UBAX8CQCAAKAIkRQRAIABBARDQAUGIf0sNAQsgACgCDCICIAFqIgEgACgCFEsEQCAAQQE6ABxBAA8LIAAgATYCDAsgAgtPAQF/IAFFIAAgAhDQAUGIf0tyRQRAIAAoAhQgAWsiAyAAKAIMSQRAIABBAToAHEEADwsgACgCECADSwRAIAAgAzYCEAsgACADNgIUCyADC00BAX8CQCAAKAIkRQRAIAAoAggiAiABQQNqQfz/AXFqIgEgACgCBE0NAQsgAEEBOgAcQQAPCyAAIAE2AhAgACABNgIMIAAgATYCCCACC7oBAQF/IwBBEGsiCiQAIAogAzYCDCAIIApBDGogASACIAggCRAiGkEAIQMCfwJAAkACQAJAIAAOAgACAQsgBiAHIAggCigCDBBqIQMMAQsgAEF+cUECRw0AIAQgCCAKKAIMEGsiA0GIf0sNAQsgASACaiEAA0AgACABTUUEQCABIQggBQRAIAUgAS0AAGohCAsgAUEBaiEBIAMgCC0AAGohAwwBCwsgA0EDdgwBCyACQQpsCyAKQRBqJAALXAEEfyAAKAIEIAAoAgAiA2tBA3UhBANAIAIgBEZFBEAgASADIAJBA3RqLwEEaiEBIAAoAiggAkYEQCABQYCABGogASAAKAIkQQFGGyEBCyACQQFqIQIMAQsLIAELrAMBDH8jAEEQayIFJAAgACABKALoECABKALsECABQcABaiABQawbaiABKALQEiABKALUEhCeASICQYh/TQRAIAEoAtQSIQYgASgC0BIhAiABKALsECEHIAAoAhQh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IAAgBmogACAFaiATEAYhDCAGIANrIQgCQCAGIBRNBEAgAykAACEhIAEoAgwiBSADKQAINwAIIAUgITcAACAIQRFJDQEgAykAECEhIAEoAgwiByADKQAYNwAYIAcgITcAECAIQSFIDQEgA0EQaiEFIAcgCGohAyAHQSBqIQcDQCAFKQAQISEgByAFKQAYNwAIIAcgITcAACAFKQAgISEgByAFKQAoNwAYIAcgITcAECAFQSBqIQUgB0EgaiIHIANJDQALDAELIAEoAgwgAyADIAhqIBQQBwsgASABKAIMIAhqNgIMIAEoAgQhAyAIQYCABE8EQCABQQE2AiQgASADIAEoAgBrQQN1NgIoCyADIAk2AgAgAyAIOwEEIAAgDGoiAEEDayIFQYCABE8EQCABQQI2AiQgASADIAEoAgBrQQN1NgIoCyADIAU7AQYgASADQQhqNgIEIAQhByAAIAZqIgUhAyAFIBFLDQAgCyAQIBlqKAAAQbHz3fF5bCAPdkECdGogEEECajYCACALIAVBAmsiACgAAEGx893xeWwgD3ZBAnRqIAAgCms2AgBBACEHIARFDQADQAJAIAQhByAFIBFLDQAgBSgAACIAIAUgBGsoAABHDQAgBUEEaiIDIAMgBGsgExAGIQQgCyAAQbHz3fF5bCAPdkECdGogBSAKazYCACABKAIMIQACQCAFIBRNBEAgBSkAACEhIAAgBSkACDcACCAAICE3AAAMAQsgACAFIAUgFBAHCyABKAIEIgBBATYCACAAQQA7AQQgBEEBaiIGQYCABE8EQCABQQI2AiQgASAAIAEoAgBrQQN1NgIoCyADIARqIQUgACAGOwEGIAEgAEEIajYCBCAOIQQgByEODAELCyAFIQMMAAsACyATQSBrIQ9BwAAgBGutISIDQCAFIBdqIg1BAWoiDCARTw0GQQAgDmshFSAFQYABaiEQIAVBAWohCCALIAUpAABCgMaV/cub741PfiAiiKciAEECdGooAgAhBCAFKQABISEgFyEJAkADQAJAIAwhEiANIgYgFWoiDSgAACEUIAsgAEECdGogBSAKayIMNgIAICFCgMaV/cub741PfiAiiKchAAJAAkAgDgRAIAYoAAAgFEYNAQsCQAJAAkAgBCAWSQ0AIAUoAAAgBCAKaigAAEcNACAIIQYgBSEIDAELIAsgAEECdGoi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DSAEayEFIAYgBGshCEEBIQkgByEEDAMLIAkgEmohDCALIABBAnRqKAIAIQQgEikAACEhIAYgCWoiDSAQTwRAIBBBgAFqIRAgCUEBaiEJCyASIQggBiEFIAwgEUkNAQwHCwsgDiEEIAchDgsgACAIaiAAIAVqIBMQBiENIAggA2shBgJAIAggD00EQCADKQAAISEgASgCDCIFIAMpAAg3AAggBSAhNwAAIAZBEUkNASADKQAQISEgASgCDCIHIAMpABg3ABggByAhNwAQIAZBIUgNASADQRBqIQUgBiAHaiEDIAdBIGohBwNAIAUpABAhISAHIAUpABg3AAggByAhNwAAIAUpACAhISAHIAUpACg3ABggByAhNwAQIAVBIGohBSAHQSBqIgcgA0kNAAsMAQsgASgCDCADIAMgBmogDxAHCyABIAEoAgwgBmo2AgwgASgCBCEDIAZBgIAETwRAIAFBATYCJCABIAMgASgCAGtBA3U2AigLIAMgCTYCACADIAY7AQQgACANaiIAQQNrIgVBgIAETwRAIAFBAjYCJCABIAMgASgCAGtBA3U2AigLIAMgBTsBBiABIANBCGo2AgQgBCEHIAAgCGoiBSEDIAUgEUsNACALIAwgGWopAABCgICA2Mub741PfiAiiKdBAnRqIAxBAmo2AgAgCyAFQQJrIgApAABCgICA2Mub741PfiAiiKdBAnRqIAAgCms2AgBBACEHIARFDQADQAJAIAQhByAFIBFLDQAgBSgAACAFIARrKAAARw0AIAVBBGoiAyADIARrIBMQBiEEIAsgBSkAAEKAgIDYy5vvjU9+ICKIp0ECdGogBSAKazYCACABKAIMIQACQCAFIA9NBEAgBSkAACEhIAAgBSkACDcACCAAICE3AAAMAQsgACAFIAUgDxAHCyABKAIEIgBBATYCACAAQQA7AQQgBEEBaiIGQYCABE8EQCABQQI2AiQgASAAIAEoAgBrQQN1NgIoCyADIARqIQUgACAGOwEGIAEgAEEIajYCBCAOIQQgByEODAELCyAFIQMMAAsACyATQSBrIQ9BwAAgBGutISIDQCAFIBdqIg1BAWoiDCARTw0DQQAgDmshFSAFQYABaiEQIAVBAWohBiALIAUpAABCgMaV/cub741PfiAiiKciBEECdGooAgAhACAFKQABISEgFyEJAkADQAJAIAwhEiANIgggFWoiDSgAACEUIAsgBEECdGogBSAKayIMNgIAICFCgMaV/cub741PfiAiiKchBAJAAkAgDgRAIAgoAAAgFEYNAQsCQAJAIAUoAABB+jwgACAKaiAAIBZJIg0bKAAARyANckUEQCAGIQggBSEGDAELIAsgBEECdGoiBCgCACEAIAgpAAAgBCAGIAprIgw2AgBCgMaV/cub741PfiAiiKchBCAGKAAAQfo8IAAgCmogACAWSSIFGygAAEcgBXINAyAJQQVPDQELIAsgBEECdGogCCAKazYCAAsgBiAAIApqIgVrIghBA2ohCUEEIQADQCAFIBhNIAMgBk9yDQMgBkEBayIELQAAIAVBAWsiBy0AAEcNAyAAQQFqIQAgByEFIAQhBgwACwALIA1BAWstAAAhACAIQQFrLQAAIQUgCyAEQQJ0aiAGIAprNgIAQQVBBCAAIAVGIgQbIQAgDSAEayEFIAggBGshBkEBIQkgByEEDAMLIAkgEmohDCALIARBAnRqKAIAIQAgEikAACEhIAggCWoiDSAQTwRAIBBBgAFqIRAgCUEBaiEJCyASIQYgCCEFIAwgEUkNAQwGCwsgDiEEIAghDgsgACAGaiAAIAVqIBMQBiENIAYgA2shCAJAIAYgD00EQCADKQAAISEgASgCDCIFIAMpAAg3AAggBSAhNwAAIAhBEUkNASADKQAQISEgASgCDCIHIAMpABg3ABggByAhNwAQIAhBIUgNASADQRBqIQUgByAIaiEDIAdBIGohBwNAIAUpABAhISAHIAUpABg3AAggByAhNwAAIAUpACAhISAHIAUpACg3ABggByAhNwAQIAVBIGohBSAHQSBqIgcgA0kNAAsMAQsgASgCDCADIAMgCGogDxAHCyABIAEoAgwgCGo2AgwgASgCBCEDIAhBgIAETwRAIAFBATYCJCABIAMgASgCAGtBA3U2AigLIAMgCTYCACADIAg7AQQgACANaiIAQQNrIgVBgIAETwRAIAFBAjYCJCABIAMgASgCAGtBA3U2AigLIAMgBTsBBiABIANBCGo2AgQgBCEHIAAgBmoiBSEDIAUgEUsNACALIAwgGWopAABCgMaV/cub741PfiAiiKdBAnRqIAxBAmo2AgAgCyAFQQJrIgApAABCgMaV/cub741PfiAiiKdBAnRqIAAgCms2AgBBACEHIARFDQADQAJAIAQhByAFIBFLDQAgBSgAACAFIARrKAAARw0AIAVBBGoiAyADIARrIBMQBiEEIAsgBSkAAEKAxpX9y5vvjU9+ICKIp0ECdGogBSAKazYCACABKAIMIQACQCAFIA9NBEAgBSkAACEhIAAgBSkACDcACCAAICE3AAAMAQsgACAFIAUgDxAHCyABKAIEIgBBATYCACAAQQA7AQQgBEEBaiIGQYCABE8EQCABQQI2AiQgASAAIAEoAgBrQQN1NgIoCyADIARqIQUgACAGOwEGIAEgAEEIajYCBCAOIQQgByEODAELCyAFIQMMAAsACyATQSBrIQ9BwAAgBGutISIDQCAFIBdqIg1BAWoiDCARTw0CQQAgDmshFSAFQYABaiEQIAVBAWohBiALIAUpAABCgIDs/Mub741PfiAiiKciBEECdGooAgAhACAFKQABISEgFyEJAkADQAJAIAwhEiANIgggFWoiDSgAACEUIAsgBEECdGogBSAKayIMNgIAICFCgIDs/Mub741PfiAiiKchBAJAAkAgDgRAIAgoAAAgFEYNAQsCQAJAIAUoAABB+jwgACAKaiAAIBZJIg0bKAAARyANckUEQCAGIQggBSEGDAELIAsgBEECdGoiBCgCACEAIAgpAAAgBCAGIAprIgw2AgBCgIDs/Mub741PfiAiiKchBCAGKAAAQfo8IAAgCmogACAWSSIFGygAAEcgBXINAyAJQQVPDQELIAsgBEECdGogCCAKazYCAAsgBiAAIApqIgVrIghBA2ohCUEEIQADQCAFIBhNIAMgBk9yDQMgBkEBayIELQAAIAVBAWsiBy0AAEcNAyAAQQFqIQAgByEFIAQhBgwACwALIA1BAWstAAAhACAIQQFrLQAAIQUgCyAEQQJ0aiAGIAprNgIAQQVBBCAAIAVGIgQbIQAgDSAEayEFIAggBGshBkEBIQkgByEEDAMLIAkgEmohDCALIARBAnRqKAIAIQAgEikAACEhIAggCWoiDSAQTwRAIBBBgAFqIRAgCUEBaiEJCyASIQYgCCEFIAwgEUkNAQwFCwsgDiEEIAghDgsgACAGaiAAIAVqIBMQBiENIAYgA2shCAJAIAYgD00EQCADKQAAISEgASgCDCIFIAMpAAg3AAggBSAhNwAAIAhBEUkNASADKQAQISEgASgCDCIHIAMpABg3ABggByAhNwAQIAhBIUgNASADQRBqIQUgByAIaiEDIAdBIGohBwNAIAUpABAhISAHIAUpABg3AAggByAhNwAAIAUpACAhISAHIAUpACg3ABggByAhNwAQIAVBIGohBSAHQSBqIgcgA0kNAAsMAQsgASgCDCADIAMgCGogDxAHCyABIAEoAgwgCGo2AgwgASgCBCEDIAhBgIAETwRAIAFBATYCJCABIAMgASgCAGtBA3U2AigLIAMgCTYCACADIAg7AQQgACANaiIAQQNrIgVBgIAETwRAIAFBAjYCJCABIAMgASgCAGtBA3U2AigLIAMgBTsBBiABIANBCGo2AgQgBCEHIAAgBmoiBSEDIAUgEUsNACALIAwgGWopAABCgIDs/Mub741PfiAiiKdBAnRqIAxBAmo2AgAgCyAFQQJrIgApAABCgIDs/Mub741PfiAiiKdBAnRqIAAgCms2AgBBACEHIARFDQADQAJAIAQhByAFIBFLDQAgBSgAACAFIARrKAAARw0AIAVBBGoiAyADIARrIBMQBiEEIAsgBSkAAEKAgOz8y5vvjU9+ICKIp0ECdGogBSAKazYCACABKAIMIQACQCAFIA9NBEAgBSkAACEhIAAgBSkACDcACCAAICE3AAAMAQsgACAFIAUgDxAHCyABKAIEIgBBATYCACAAQQA7AQQgBEEBaiIGQYCABE8EQCABQQI2AiQgASAAIAEoAgBrQQN1NgIoCyADIARqIQUgACAGOwEGIAEgAEEIajYCBCAOIQQgByEODAELCyAFIQMMAAsACyATQSBrIQ9BwAAgBGutISIDQCAFIBdqIg1BAWoiDCARTw0BQQAgDmshFSAFQYABaiEQIAVBAWohBiALIAUpAABCgICA2Mub741PfiAiiKciBEECdGooAgAhACAFKQABISEgFyEJAkADQAJAIAwhEiANIgggFWoiDSgAACEUIAsgBEECdGogBSAKayIMNgIAICFCgICA2Mub741PfiAiiKchBAJAAkAgDgRAIAgoAAAgFEYNAQsCQAJAIAUoAABB+jwgACAKaiAAIBZJIg0bKAAARyANckUEQCAGIQggBSEGDAELIAsgBEECdGoiBCgCACEAIAgpAAAgBCAGIAprIgw2AgBCgICA2Mub741PfiAiiKchBCAGKAAAQfo8IAAgCmogACAWSSIFGygAAEcgBXINAyAJQQVPDQELIAsgBEECdGogCCAKazYCAAsgBiAAIApqIgVrIghBA2ohCUEEIQADQCAFIBhNIAMgBk9yDQMgBkEBayIELQAAIAVBAWsiBy0AAEcNAyAAQQFqIQAgByEFIAQhBgwACwALIA1BAWstAAAhACAIQQFrLQAAIQUgCyAEQQJ0aiAGIAprNgIAQQVBBCAAIAVGIgQbIQAgDSAEayEFIAggBGshBkEBIQkgByEEDAMLIAkgEmohDCALIARBAnRqKAIAIQAgEikAACEhIAggCWoiDSAQTwRAIBBBgAFqIRAgCUEBaiEJCyASIQYgCCEFIAwgEUkNAQwECwsgDiEEIAghDgsgACAGaiAAIAVqIBMQBiENIAYgA2shCAJAIAYgD00EQCADKQAAISEgASgCDCIFIAMpAAg3AAggBSAhNwAAIAhBEUkNASADKQAQISEgASgCDCIHIAMpABg3ABggByAhNwAQIAhBIUgNASADQRBqIQUgByAIaiEDIAdBIGohBwNAIAUpABAhISAHIAUpABg3AAggByAhNwAAIAUpACAhISAHIAUpACg3ABggByAhNwAQIAVBIGohBSAHQSBqIgcgA0kNAAsMAQsgASgCDCADIAMgCGogDxAHCyABIAEoAgwgCGo2AgwgASgCBCEDIAhBgIAETwRAIAFBATYCJCABIAMgASgCAGtBA3U2AigLIAMgCTYCACADIAg7AQQgACANaiIAQQNrIgVBgIAETwRAIAFBAjYCJCABIAMgASgCAGtBA3U2AigLIAMgBTsBBiABIANBCGo2AgQgBCEHIAAgBmoiBSEDIAUgEUsNACALIAwgGWopAABCgICA2Mub741PfiAiiKdBAnRqIAxBAmo2AgAgCyAFQQJrIgApAABCgICA2Mub741PfiAiiKdBAnRqIAAgCms2AgBBACEHIARFDQADQAJAIAQhByAFIBFLDQAgBSgAACAFIARrKAAARw0AIAVBBGoiAyADIARrIBMQBiEEIAsgBSkAAEKAgIDYy5vvjU9+ICKIp0ECdGogBSAKazYCACABKAIMIQACQCAFIA9NBEAgBSkAACEhIAAgBSkACDcACCAAICE3AAAMAQsgACAFIAUgDxAHCyABKAIEIgBBATYCACAAQQA7AQQgBEEBaiIGQYCABE8EQCABQQI2AiQgASAAIAEo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EWoiBSgAACABKAAARw0BIAwgBUEEaiACIBIgExAFQQRqCyIFIABNDQAgAyALIAZrNgIAIAUiACABaiACRg0DCyAGIA9NDQAgB0EBayEHIAkgBiAUcUECdGohBQwBCwsgACEFCyAFC/sJAiN/AX4jAEEQayIUJAACQCADIAEoAgQiCyABKAIcIgJqSQ0AIAMgC2shCgNAIAIgCk9FBEAgASACIAtqIAQgCiAJQQAQECACaiECDAELCyABIAo2AhxBASABKAIQIgIgAyABKAIEIhVrIg1BASABKAK4AXQiCmsgAiANIAJrIApLGyABKAIYGyIWIBZBAU0bISIgDUF/IAEoArwBQQFrdEF/cyIbayICQQAgAiANTRshHCABKAJcIAMpAAAgCH4iLUHAACABKALAAWutiKdBAnRqIiMoAgAhDCABKAK0ASISKAIAIh0gEigCBCIeayIXQX8gEigCvAFBAWt0QX9zIh9rIBIoAhAiGCAXIBhrIB9LGyEkIB4gFiAXayIZayElIA0gGCAZamshJiAGIAZBA2oiAiACIAZJGyEnIAEoAmQiKCANIBtxQQN0aiITQQRqIQ9B/x8gASgCzAEiAiACQf8fTxshKSADQQRqIRogB0EBayEKIBUgASgCDCIgaiEhIA0gIGshKiANQQlqIRBBASABKALEAXQhESASKALAASErIAYhAgNAIAIgJ0cEQCANAn8gAkEDRgRAIAUoAgBBAWsMAQsgBSACQQJ0aigCAAsiC2shBwJAAn8gKiALQQFrIixLBEAgByAWSQ0CIAMoAAAgAyALaygAAEcNAiAaIBogC2sgBBAGDAELICYgLE0gByAga0F8S3INASADKAAAIAcgJWoiBygAAEcNASAaIAdBBGogBCAdICEQBQtBBGoiByAKTQ0AIAAgDkEDdGoiCiAHNgIEIAogAiAGa0EBajYCACAOQQFqIQ4gByApSw0DIAciCiADaiAERg0DCyACQQFqIQIMAQsLICMgDTYCACANQQNqIQZBACEHQQAhBQJAAkACQAJAAkADQCARRSAMICJJcg0CIAogAyAFIAcgBSAHSRsiAmogDCAVaiINIAJqIAQQBiACaiICSQRAIAAgDkEDdGoiCiACNgIEIAogBiAMazYCACACIAxqIBAgAiAQIAxrSxshECAOQQFqIQ4gAiADaiAERiACQYAgS3INBSACIQoLICggDCAbcUEDdGohCwJAAkACQCACIA1qLQAAIAIgA2otAABJBEAgEyAMNgIAIAwgHEsNASAUQQxqIRMMBQsgDyAMNgIAIAwgHE0NAiALIQ8gAiEHDAELIAIhBSALQQRqIhMhCwsgEUEBayERIAsoAgAhDAwBCwsgFEEMaiEPCyAPQQA2AgAgE0EANgIADAELIA9BADYCACATQQA2AgAgEUUNAgsgFSAZaiEPIBIoAlwgLUHAACAra62Ip0ECdGohAiASKAJkIQ1BACEMQQAhBwNAIBFFDQIgAigCACIFIBhNDQIgCiADIAcgDCAHIAxJGyICaiAFIB5qIgsgAmogBCAdICEQBSACaiICSQRAIAAgDkEDdGoiCiACNgIEIAogBiAFIBlqIgprNgIAIAIgCmogECACIBAgCmtLGyEQIA5BAWohDiACQYAgSw0DIAIhCiACIANqIARGDQMLIAUgJE0NAiARQQFrIREgAiAHIAsgBSAPaiACIAVqIBdJGyACai0AACACIANqLQAASSILGyEHIAwgAiALGyEMIA0gBSAfcUEDdGogC0ECdGohAgwACwALIA9BADYCACATQQA2AgALIAEgEEEIazYCHAsgFEEQaiQAIA4LsgcBG38jAEEQayIUJAACQCADIAEoAgQiDSABKAIcIgJqSQ0AIAMgDWshCwNAIAIgC09FBEAgASACIA1qIAQgCyAJQQEQECACaiECDAELCyABIAs2AhxBASABKAIQIgIgAyABKAIEIhBrIgxBASABKAK4AXQiC2sgAiAMIAJrIAtLGyABKAIYGyIVIBVBAU0bIR0gDEF/IAEoArwBQQFrdEF/cyIZayICQQAgAiAMTRshGiAMIBVrIR4gBiAGQQNqIgIgAiAGSRshHyABKAJkIiAgDCAZcUEDdGoiEUEEaiESIAEoAlwgAykAACAIfkHAACABKALAAWutiKdBAnRqIiEoAgAhCkH/HyABKALMASICIAJB/x9PGyEiIANBBGohFiAHQQFrIQsgECABKAIMIg9qIRsgASgCCCIXIA9qIRwgDCAPayEjIAxBCWohE0EBIAEoAsQBdCEYIAYhAgNAIAIgH0cEQCAMAn8gAkEDRgRAIAUoAgBBAWsMAQsgBSACQQJ0aigCAAsiDWshBwJAAn8gIyANQQFrIiRLBEAgByAVSQ0CIAMoAAAgAyANaygAAEcNAiAWIBYgDWsgBBAGDAELIB4gJE0gByAPa0F8S3INASADKAAAIAcgF2oiBygAAEcNASAWIAdBBGogBCAcIBsQBQtBBGoiByALTQ0AIAAgDkEDdGoiCyAHNgIEIAsgAiAGa0EBajYCACAOQQFqIQ4gByAiSw0DIAciCyADaiAERg0DCyACQQFqIQIMAQsLICEgDDYCACAMQQNqIQxBACEHQQAhBQJAA0AgGEUgCiAdSXINASADIAUgByAFIAdJGyICaiEGAn8gDyACIApqTQRAIAYgCiAQaiACaiAEEAYgAmohAiAQDAELIBcgECAGIAogF2ogAmogBCAcIBsQBSACaiICIApqIA9JGwshBiACIAtLBEAgACAOQQN0aiILIAI2AgQgCyAMIAprNgIAIAIgCmogEyACIBMgCmtLGyETIA5BAWohDiACQYAgSw0CIAIhCyACIANqIARGDQILICAgCiAZcUEDdGohDQJAAkACQCAGIApqIAJqLQAAIAIgA2otAABJBEAgESAKNgIAIAogGksNASAUQQxqIREMBQsgEiAKNgIAIAogGk0NAiANIRIgAiEHDAELIAIhBSANQQRqIhEhDQsgGEEBayEYIA0oAgAhCgwBCwsgFEEMaiESCyASQQA2AgAgEUEANgIAIAEgE0EIazYCHAsgFEEQaiQAIA4LmwYBFH8jAEEQayITJAACQCADIAEoAgQiCiABKAIcIgJqSQ0AIAMgCmshCwNAIAIgC09FBEAgASACIApqIAQgCyAJQQAQECACaiECDAELCyABIAs2AhxBASABKAIQIgIgAyABKAIEIhdrIgxBASABKAK4AXQiC2sgAiAMIAJrIAtLGyABKAIYGyIPIA9BAU0bIRggDEF/IAEoArwBQQFrdEF/cyIUayICQQAgAiAMTRshFSAGIAZBA2oiAiACIAZJGyEZIAEoAmQiGiAMIBRxQQN0aiIQQQRqIREgASgCXCADKQAAIAh+QcAAIAEoAsABa62Ip0ECdGoiGygCACENQf8fIAEoAswBIgIgAkH/H08bIRwgA0EEaiEWIAdBAWshCyAMIAEoAgxrIR0gDEEJaiESQQEgASgCxAF0IQcgBiECA0AgAiAZRwRAAkACfyACQQNGBEAgBSgCAEEBawwBCyAFIAJBAnRqKAIACyIKQQFrIB1P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ASAJIBgpAgA3A3ggDCAlIAlB+ABqIAlBzAJqICQgDyAnICEQGiEKDAELIAMgGmohCyADIAxqIQggGCgCCCENIBopAAAhSyAMIBopAAg3AAggDCBLNwAAAkAgA0ERSQ0AIB8pAAAhSyAMIB8pAAg3ABggDCBLNwAQIANBEGtBEUgNACAMQSBqIQMgHyETA0AgEykAECFLIAMgEykAGDcACCADIEs3AAAgEykAICFLIAMgEykAKDcAGCADIEs3ABAgE0EgaiETIANBIGoiAyAISQ0ACwsgCCANayEDIAkgCzYCzAIgCCAPayANSQRAIA0gCCAna0sNDyAhICEgAyAPayILaiIDIBVqTwRAIAggAyAVEAoaDAILIAsgFWohFSAIIANBACALaxAKIAtrIQggDyEDCyANQRBPBEAgAykAACFLIAggAykACDcACCAIIEs3AAAgFUERSA0BIAggFWohCyAIQRBqIQgDQCADKQAQIUsgCCADKQAYNwAIIAggSzcAACADKQAgIUsgCCADKQAoNwAYIAggSzcAECADQSBqIQMgCEEgaiIIIAtJDQALDAELAkAgDUEHTQRAIAggAy0AADoAACAIIAMtAAE6AAEgCCADLQACOgACIAggAy0AAzoAAyAIIAMgDUECdCILQeDPAGooAgBqIgMoAAA2AAQgAyALQYDQAGooAgBrIQMMAQsgCCADKQAANwAACyAVQQlJDQAgCCAVaiENIAhBCGoiCyADQQhqIgNrQQ9MBEADQCALIAMpAAA3AAAgA0EIaiEDIAtBCGoiCyANSQ0ADAILAAsgAykAACFLIAsgAykACDcACCALIEs3AAAgFUEZSA0AIAhBGGohCANAIAMpABAhSyAIIAMpABg3AAggCCBLNwAAIAMpACAhSyAIIAMpACg3ABggCCBLNwAQIANBIGohAyAIQSBqIgggDUkNAAsLIApBiH9LBEAgCiEEDA4LIBggEDYCCCAYIA42AgQgGCAUNgIAICQhFwwDCyANQSBrIQgCQAJAIA0gF0sNACAMIBgoAgQiFiADaiIKaiAISw0AIApBIGogJSAMa00NAQsgCSAYKAIINgKQASAJIBgpAgA3A4gBIAwgJSAIIAlBiAFqIAlBzAJqIBcgDyAnICEQciEKDAILIAMgDGohCCAYKAIIIRMgCykAACFLIAwgCykACDcACCAM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SyAMIBMpABg3ABggDCBLNwAQIAhBEGtBEUgNACATQRBqIQMgDEEgaiEIA0AgAykAECFLIAggAykAGDcACCAIIEs3AAAgAykAICFLIAggAykAKDcAGCAIIEs3ABAgA0EgaiEDIAhBIGoiCCAKSQ0ACwsgCiANayEDIAkgCzYCzAIgCiAPayANSQRAIA0gCiAna0sNDSAhICEgAyAPayIIaiIDIBVqTwRAIAogAyAVEAoaDAMLIAggFWohFSAKIANBACAIaxAKIAhrIQogDyEDCyANQRBPBEAgAykAACFLIAogAykACDcACCAKIEs3AAAgFUERSA0CIAogFWohCyAKQRBqIQgDQCADKQAQIUsgCCADKQAYNwAIIAggSzcAACADKQAgIUsgCCADKQAoNwAYIAggSzcAECADQSBqIQMgCEEgaiIIIAtJDQALDAILAkAgDUEHTQRAIAogAy0AADoAACAKIAMtAAE6AAEgCiADLQACOgACIAogAy0AAzoAAyAKIAMgDUECdCIIQeDPAGooAgBqIgMoAAA2AAQgAyAIQYDQAGooAgBrIQMMAQsgCiADKQAANwAACyAVQQlJDQEgCiAVaiELIApBCGoiCCADQQhqIgNrQQ9MBEADQCAIIAMpAAA3AAAgA0EIaiEDIAhBCGoiCCALSQ0ADAMLAAsgAykAACFLIAggAykACDcACCAIIEs3AAAgFUEZSA0BIApBGGohCANAIAMpABAhSyAIIAMpABg3AAggCCBLNwAAIAMpACAhSyAIIAMpACg3ABggCCBLNwAQIANBIGohAyAIQSBqIgggC0kNAAsMAQsCQAJAIAkoAswCIgogDSgCACIDaiILIBdLDQAgDCANKAIEIhAgA2oiDmogHUsNACAOQSBqICUgDGtNDQELIAkgDSgCCDYCcCAJIA0pAgA3A2ggDCAlIAlB6ABqIAlBzAJqIBcgDyAnICEQGiEODAELIAMgDGohCCANKAIIIQ0gCikAACFLIAwgCikACDcACCAMIEs3AAACQCADQRFJDQAgCikAECFLIAwgCikAGDcAGCAMIEs3ABAgA0EQa0ERSA0AIApBEGohAyAMQSBqIQoDQCADKQAQIUsgCiADKQAYNwAIIAogSzcAACADKQAgIUsgCiADKQAoNwAYIAogSzcAECADQSBqIQMgCkEgaiIKIAhJDQALCyAI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a0EPTARAA0AgCCADKQAANwAAIANBCGohAyAIQQhqIgggDUkNAAwCCwALIAMpAAAhSyAIIAMpAAg3AAggCCBLNwAAIAxBGUgNACAKQRhqIQgDQCADKQAQIUsgCCADKQAYNwAIIAggSzcAACADKQAgIUsgCCADKQAoNwAYIAggSzcAECADQSBqIQMgCEEgaiIIIA1JDQALCyAEQYh/Sw0MIBFBAWshESAEIAtqIQsMAQsLIBFBAEwNCCADIA5HBEBBun8hBCADIA5rIgMgICALa0sNCyALIA4gAxBZIAMgC2ohCyAIIANrIQgLIAkgAEGI7AFqIgM2AswCIABBADYChOwBIABBiOwFaiEWIAkgCDYCqAEgCSAMNgKsASAJIBA2ArABAkACQAJAIAhBgIAESg0AIAsgCCAMaiIEaiAgQSBrSw0AIARBIGogICALa00NAQsgCSAJKAKwATYCMCAJIAkpA6gBNwMoIAsgICAJQShqIAlBzAJqIBYgDyAjIBoQGiEEDAELIAMgCGohDSAIIAtqIQogAykAACFLIAsgAykACDcACCALIEs3AAACQCAIQRFJDQAgACkAmOwBIUsgCyAAQaDsAWopAAA3ABggCyBLNwAQIAhBEGtBEUgNACAAQZjsAWohAyALQSBqIQgDQCADKQAQIUsgCCADKQAYNwAIIAggSzcAACADKQAgIUsgCCADKQAoNwAYIAggSzcAECADQSBqIQMgCEEgaiIIIApJDQALCyAKIBBrIQMgCSANNgLMAiAKIA9rIBBJBEAgECAKICNrSw0KIBogGiADIA9rIghqIgMgDGpPBEAgCiADIAwQChoMAgsgCiADQQAgCGsQCiAJIAggDGoiDDYCrAEgCGshCiAPIQMLIBBBEE8EQCADKQAAIUsgCiADKQAINwAIIAogSzcAACAMQRFIDQEgCiAMaiENIApBEGohCANAIAMpABAhSyAIIAMpABg3AAggCCBLNwAAIAMpACAhSyAIIAMpACg3ABggCCBLNwAQIANBIGohAyAIQSBqIgggDUkNAAsMAQsCQCAQQQdNBEAgCiADLQAAOgAAIAogAy0AAToAASAKIAMtAAI6AAIgCiADLQADOgADIAogAyAQQQJ0IghB4M8AaigCAGoiAygAADYABCADIAhBgNAAaigCAGshAwwBCyAKIAMpAAA3AAALIAko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ayIDNgLoASAJIAMoAAA2AuABDAELIAMgCSgC7AEiDkYNACAJIAQgAyAOayAEQQN2IgQgAyAEayAOSRsiBEEDdGs2AuQBIAkgAyAEayIDNgLoASAJIAMoAAA2AuABCyAJIAg2AqgBIAkgETYCrAEgCSAKNgKwAQJAAkACQCAJKALMAiIDIAhqIg4gFksNACALIAggEWoiBGogFUsNACAEQSBqICAgC2tNDQELIAkgCSgCsAE2AiAgCSAJKQOoATcDGCALICAgCUEYaiAJQcwCaiAWIA8gIyAaEBohBAwBCyAIIAtqIQwgAykAACFLIAsgAykACDcACCALIEs3AAACQCAIQRFJDQAgAykAECFLIAsgAykAGDcAGCALIEs3ABAgCEEQa0ERSA0AIANBEGohAyALQSBqIQgDQCADKQAQIUsgCCADKQAYNwAIIAggSzcAACADKQAgIUsgCCADKQAoNwAYIAggSzcAECADQSBqIQMgCEEgaiIIIAxJDQALCyAMIAprIQMgCSAONgLMAiAMIA9rIApJBEAgCiAMICNrSw0LIBogGiADIA9rIg5qIgMgEWpPBEAgDCADIBEQChoMAgsgDCADQQAgDmsQCiAJIA4gEWoiETYCrAEgDmshDCAPIQMLIApBEE8EQCADKQAAIUsgDCADKQAINwAIIAwgSzcAACARQRFIDQEgDCARaiEKIAxBEGohCANAIAMpABAhSyAIIAMpABg3AAggCCBLNwAAIAMpACAhSyAIIAMpACg3ABggCCBLNwAQIANBIGohAyAIQSBqIgggCkkNAAsMAQsCQCAKQQdNBEAgDCADLQAAOgAAIAwgAy0AAToAASAMIAMtAAI6AAIgDCADLQADOgADIAwgAyAKQQJ0IghB4M8AaigCAGoiAygAADYABCADIAhBgNAAaigCAGshAwwBCyAMIAMpAAA3AAALIAkoAqwBIg5BCUkNACAMIA5qIQogDEEIaiIIIANBCGoiA2tBD0wEQANAIAggAykAADcAACADQQhqIQMgCEEIaiIIIApJDQAMAgsACyADKQAAIUsgCCADKQAINwAIIAggSzcAACAOQRlIDQAgDEEYaiEIA0AgAykAECFLIAggAykAGDcACCAIIEs3AAAgAykAICFLIAggAykAKDcAGCAIIEs3ABAgA0EgaiEDIAhBIGoiCCAKSQ0ACwsg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AWoiB0H//wNLDQEMAgsCQAJAIAcgDkkNACAHIAtqIgcpAAAgIlINACAAQQhqIAdBCGogChAGQQhqIQUgACAHayEIA0AgACADTSAHIA9Ncg0CIABBAWsiBi0AACAHQQFrIgctAABHDQIgBUEBaiEFIAYhAAwACwALAkAgCSAUc0H/AXENACAJQQh2IgcgGU0NACAHIBJqIgkpAAAgIlINACAAQQhqIAlBCGogCiATIA8QBUEIaiEFIAwgByAWamshCANAIAkgGk0gACADTXINAiAAQQFrIgYtAAAgCUEBayIJLQAARw0CIAVBAWohBSAGIQAMAAsACwJAAkACQCAIIA5LBEAgCCALaiIHKAAAIAAoAABHDQEMAwsgDSAec0H/AXENACANQQh2IgggGU0NACAIIBJqIgcoAAAgACgAAEYNAQsgACAAIANrQQh1akEBaiEADAULIAggFmohCAsgFSAAKQABIiJC48iVvcub741PfiImICSIp0ECdGoiBigCACEFIBwgJiAliKciFEEGdkH8//8fcWooAgAhDSAGIBE2AgAgAEEBaiEGAkACQCAFIA5JDQAgBSALaiIJKQAAICJSDQAgAEEJaiAJQQhqIAoQBkEIaiEFIAYgCWshCANAIAkgD00gAyAGT3INAiAGQQFrIgAtAAAgCUEBayIJLQAARw0CIAVBAWohBSAAIQYMAAsACwJAIA0gFHNB/wFxDQAgDUEIdiINIBlNDQAgDSASaiIJKQAAICJSDQAgAEEJaiAJQQhqIAogEyAPEAVBCGohBSARIA0gFmprIQgDQCAJIBpNIAMgBk9yDQIgBkEBayIALQAAIAlBAWsiCS0AAEcNAiAFQQFqIQUgACEGDAALAAsgB0EEaiEGIABBBGohBSAIIA5JBEAgBSAGIAogEyAPEAVBBGohBSAMIAhrIQgDQCAAIANNIAcgGk1yDQMgAEEBayIGLQAAIAdBAWsiBy0AAEcNAyAFQQFqIQUgBiEADAALAAsgBSAGIAoQBkEEaiEFIAAgB2shCANAIAAgA00gByAPTXINAiAAQQFrIgYtAAAgB0EBayIHLQAARw0CIAVBAWohBSAGIQAMAAsACyAGIQALIAAgA2shBwJAIAAgEE0EQCADKQAAISIgASgCDCIGIAMpAAg3AAggBiAiNwAAIAdBEUkNASADKQAQISIgASgC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IiNC48iVvcub741PfiIlICSIp0ECdGoiBSgCACEHIBcgI6dBsfPd8XlsIgwgDXZBAnRqIhQoAgAhCCAcICUgIoinIhtBBnZB/P//H3FqKAIAIQkgHyAMIB52IiBBBnZB/P//H3FqKAIAIREgFCAAIAtrIgw2AgAgBSAMNgIAAkACQAJAIAxBAWoiFCAEayIFIA5rQXxLDQAgEiAFIBZraiAFIAtqIAUgDkkiBRsiISgAACAAKAABRw0AIABBBWogIUEEaiAKIBMgCiAFGyAPEAUhByAAQQFqIgAgA2shCAJAIAAgEE0EQCADKQAAISMgASgCDCIFIAMpAAg3AAggBSAjNwAAIAhBEUkNASADKQAQISMgASgCDCIFIAMpABg3ABggBSAjNwAQIAhBIUgNASADQRBqIQMgBSAIaiEJIAVBIGohBQNAIAMpABAhIyAFIAMpABg3AAggBSAjNwAAIAMpACAhIyAFIAMpACg3ABggBSAjNwAQIANBIGohAyAFQSBqIgUgCUkNAAsMAQsgASgCDCADIAMgCGogEBAHCyABIAEoAgwgCGo2AgwgASgCBCEDIAhBgIAETwRAIAFBATYCJCABIAMgASgCAGtBA3U2AigLIAdBBGohBSADQQE2AgAgAyAIOwEEIAdBAWoiB0H//wNLDQEMAgsCQAJAIAcgDkkNACAHIAtqIgcpAAAgI1INACAAQQhqIAdBCGogChAGQQhqIQUgACAHayEIA0AgACADTSAHIA9Ncg0CIABBAWsiBi0AACAHQQFrIgctAABHDQIgBUEBaiEFIAYhAAwACwALAkAgCSAbc0H/AXENACAJQQh2IgcgGU0NACAHIBJqIgkpAAAgI1INACAAQQhqIAlBCGogCiATIA8QBUEIaiEFIAwgByAWamshCANAIAkgGk0gACADTXINAiAAQQFrIgYtAAAgCUEBayIJLQAARw0CIAVBAWohBSAGIQAMAAsACwJAAkACQCAIIA5LBEAgCCALaiIHKAAAIAAoAABHDQEMAwsgESAgc0H/AXENACARQQh2IgggGU0NACAIIBJqIgcoAAAgACgAAEYNAQsgACAAIANrQQh1akEBaiEADAULIAggFmohCAsgFSAAKQABIiNC48iVvcub741PfiIlICSIp0ECdGoiBigCACEFIBwgJSAiiKciG0EGdkH8//8fcWoo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A0EQaiEDIAUgB2ohCCAHQSBqIQcDQCADKQAQISIgByADKQAYNwAIIAcgIjcAACADKQAgISIgByADKQAoNwAYIAcgIjcAECADQSBqIQMgB0EgaiIHIAhJDQALDAELIAEoAgwgAyADIAVqIAsQBwsgASABKAIMIAVqNgIMIAEoAgQhAyAFQYCABE8EQCABQQE2AiQgASADIAEoAgBrQQN1NgIoCyAJQQRqIQcgA0EBNgIAIAMgBTsBBCAJQQFqIghB//8DTQ0DDAELAkAgCkH/AXEEQCAAKAAAIQUMAQsgACgAACEFIBhBCHYiGCAeTQ0AIBYgGGoiCigAACAFRyAOIBFJcg0AIABBBGogCkEEaiAMIBcgExAFQQRqIQcDQAJAIAAgA00gCiAaTXINACAAQQFrIgYtAAAgCkEBayIKLQAARw0AIAdBAWohByAGIQAMAQsLIAAgA2shBgJAIAAgC00EQCADKQAAISIgASgCDCIFIAMpAAg3AAggBSAiNwAAIAZBEUkNASADKQAQISIgASgCDCIFIAMpABg3ABggBSAiNwAQIAZBIUgNASADQRBqIQMgBSAGaiEJIAVBIGohCANAIAMpABAhIiAIIAMpABg3AAggCCAiNwAAIAMpACAhIiAIIAMpACg3ABggCCAiNwAQIANBIGohAyAIQSBqIgggCUkNAAsMAQsgASgCDCADIAMgBmogCxAHCyABIAEoAgwgBmo2AgwgASgCBCEDIAZBgIAETwRAIAFBATYCJCABIAMgASgCAGtBA3U2AigLIAMgFSAYIBtqayIFQQNqNgIAIAMgBjsBBCAEIQYgBSEEIAdBA2siCEH//wNLDQEMAwsgBUH6PCANIBFqIgggDiARSyIKGygAAEcgCnJFBEAgAEEEaiAIQQRqIAwQBkEEaiEHIAAgCGshBQNAAkAgACADTSAIIBNNcg0AIABBAWsiBi0AACAIQQFrIggtAABHDQAgB0EBaiEHIAYhAAwBCwsgACADayEGAkAgACALTQRAIAMpAAAhIiABKAIMIgkgAykACDcACCAJICI3AAAgBkERSQ0BIAMpABAhIiABKAIMIgkgAykAGDcAGCAJICI3ABAgBkEhSA0BIANBEGohAyAGIAlqIQogCUEgaiEIA0AgAykAECEiIAggAykAGDcACCAIICI3AAAgAykAICEiIAggAykA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IARBABBWGiABQQA2AiQgASABKAIANgIEIAEgASgCCDYCDCAAIAAoAgwgBGoiBjYCDCAAIAY2AhwgACAGNgIQIAAgACgCBCAEazYCBAsgACABIAIgAyAEQQAQViAFQRBqJAALEAAgACABIAIgAyAEQQAQVgshACAAIAEgAiADIAQgBSAGIAdCgIDs/Mub741PQQYQuwELIQAgACABIAIgAyAEIAUgBiAHQoCAgNjLm++NT0EFELsBC/8JASN/IwBBEGsiEiQAAkAgAyABKAIEIgkgASgCHCICakkNACADIAlrIQgDQCACIAhPRQRAIAEgAiAJaiAEIAhBBEEAEBAgAmohAgwBCwsgASAINgIcQQEgASgCECICIAMgASgCBCITayILQQEgASgCuAF0IghrIAIgCyACayAISxsgASgCGBsiFCAUQQFNGyEgIAtBfyABKAK8AUEBa3RBf3MiGWsiAkEAIAIgC00bIRogASgCXCADKAAAQbHz3fF5bEEgIAEoAsABa3ZBAnRqIiEoAgAhCiABKAK0ASIQKAIAIhsgECgCBCIcayIVQX8gECgCvAFBAWt0QX9zIh1rIBAoAhAiFiAVIBZrIB1LGyEiIBwgFCAVayIXayEjIAsgFiAXamshJCAGIAZBA2oiAiACIAZJGyElIAEoAmQiJiALIBlxQQN0aiIRQQRqIQ1B/x8gASgCzAEiAiACQf8fTxshJyADQQRqIRggB0EBayEIIBMgASgCDCIeaiEfIAsgHmshKCALQQlqIQ5BASABKALEAXQhDyAQKALAASEpIAYhAgNAIAIgJUcEQCALAn8gAkEDRgRAIAUoAgBBAWsMAQsgBSACQQJ0aigCAAsiCWshBwJAAn8gKCAJQQFrIipLBEAgByAUSQ0CIAMoAAAgAyAJaygAAEcNAiAYIBggCWsgBBAGDAELICQgKk0gByAea0F8S3INASADKAAAIAcgI2oiBygAAEcNASAYIAdBBGogBCAbIB8QBQtBBGoiByAITQ0AIAAgDEEDdGoiCCAHNgIEIAggAiAGa0EBajYCACAMQQFqIQwgByAnSw0DIAciCCADaiAERg0DCyACQQFqIQIMAQsLICEgCzYCACALQQNqIQZBACEHQQAhBQJAAkACQAJAAkADQCAPRSAKICBJcg0CIAggAyAFIAcgBSAHSRsiAmogCiATaiILIAJqIAQQBiACaiICSQRAIAAgDEEDdGoiCCACNgIEIAggBiAKazYCACACIApqIA4gAiAOIAprSxshDiAMQQFqIQwgAiADaiAERiACQYAgS3INBSACIQgLICYgCiAZcUEDdGohCQJAAkACQCACIAtqLQAAIAIgA2otAABJBEAgESAKNgIAIAogGksNASASQQxqIREMBQsgDSAKNgIAIAogGk0NAiAJIQ0gAiEHDAELIAIhBSAJQQRqIhEhCQsgD0EBayEPIAkoAgAhCgwBCwsgEkEMaiENCyANQQA2AgAgEUEANgIADAELIA1BADYCACARQQA2AgAgD0UNAgsgECgCXCADKAAAQbHz3fF5bEEgIClrdkECdGohAiATIBdqIQ0gECgCZCELQQAhCkEAIQcDQCAPRQ0CIAIoAgAiBSAWTQ0CIAggAyAHIAogByAKSRsiAmogBSAcaiIJIAJqIAQgGyAfEAUgAmoiAkkEQCAAIAxBA3RqIgggAjYCBCAIIAYgBSAXaiIIazYCACACIAhqIA4gAiAOIAhrSxshDiAMQQFqIQwgAkGAIEsNAyACIQggAiADaiAERg0DCyAFICJNDQIgD0EBayEPIAIgByAJIAUgDWogAiAFaiAVSRsgAmotAAAgAiADai0AAEkiCRshByAKIAIgCRshCiALIAUgHXFBA3RqIAlBAnRqIQIMAAsACyANQQA2AgAgEUEANgIACyABIA5BCGs2AhwLIBJBEGokACAMC/wKASR/IwBBEGsiFCQAAkAgAyABKAIEIgwgASgCHCIJakkNACADIAxrIQgDQCAIIAlNRQRAIAEgCSAMaiAEIAhBA0EAEBAgCWohCQwBCwsgASAINgIcQQEgASgCECIIIAMgASgCBCITayINQQEgASgCuAF0IglrIAggDSAIayAJSxsgASgCGBsiFSAVQQFNGyEaIA1BfyABKAK8AUEBa3RBf3MiG2siCEEAIAggDU0bIRwgASgCXCADKAAAQbHz3fF5bEEgIAEoAsABa3ZBAnRqIiMoAgAhCiABKAK0ASIRKAIAIh0gESgCBCIeayIWQX8gESgCvAFBAWt0QX9zIh9rIBEoAhAiFyAWIBdrIB9LGyEkIB4gFSAWayIYayElIA0gFyAYamshJiAGIAZBA2oiCCAGIAhLGyEnIAEoAmQiKCANIBtxQQN0aiISQQRqIQ5B/x8gASgCzAEiCCAIQf8fTxshICADQQNqIRkgB0EBayEIIBMgASgCDCIhaiEiIA0gIWshKSANQQlqIQ9BASABKALEAXQhECARKALAASEqIAYhCQNAIAkgJ0cEQCANAn8gCUEDRgRAIAUoAgBBAWsMAQsgBSAJQQJ0aigCAAsiDGshBwJAAn8gKSAMQQFrIitLBEAgByAVSQ0CIAMgDGsoAAAgAygAAHNB////B3ENAiAZIBkgDGsgBBAGDAELICYgK00gByAha0F8S3INASAHICVqIgcoAAAgAygAAHNB////B3ENASAZIAdBA2ogBCAdICIQBQtBA2oiByAITQ0AIAAgC0EDdGoiCCAHNgIEIAggCSAGa0EBajYCACALQQFqIQsgByAgSw0DIAciCCADaiAERg0DCyAJQQFqIQkMAQsLIAECfwJAIAhBAksNACABIAIgAxCOASICIBpJDQAgDSACayIFQf//D0sNACADIAIgE2ogBBAGIgJBA0kNACAAIAI2AgQgACAFQQNqNgIAIAIgIE0EQEEBIQsgAiIIIANqIARHDQELQQEhCyANQQFqDAELICMgDTYCACANQQNqIQZBACEHQQAhBQJAAkACQAJAAkADQCAQRSAKIBpJcg0CIAggAyAFIAcgBSAHSRsiAmogCiATaiIJIAJqIAQQBiACaiICSQRAIAAgC0EDdGoiCCACNgIEIAggBiAKazYCACACIApqIA8gAiAPIAprSxshDyALQQFqIQsgAiADaiAERiACQYAgS3INBSACIQgLICggCiAbcUEDdGohDAJAAkACQCACIAlqLQAAIAIgA2otAABJBEAgEiAKNgIAIAogHEsNASAUQQxqIRIMBQsgDiAKNgIAIAogHE0NAiAMIQ4gAiEHDAELIAIhBSAMQQRqIhIhDAsgEEEBayEQIAwoAgAhCgwBCwsgFEEMaiEOCyAOQQA2AgAgEkEANgIADAELIA5BADYCACASQQA2AgAgEEUNAgsgESgCXCADKAAAQbHz3fF5bEEgICprdkECdGohCSATIBhqIQwgESgCZCEOQQAhCkEAIQcDQCAQRQ0CIAkoAgAiBSAXTQ0CIAggAyAHIAogByAKSRsiAmogBSAeaiIJIAJqIAQgHSAiEAUgAmoiAkkEQCAAIAtBA3RqIgggAjYCBCAIIAYgBSAYaiIIazYC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Bg8AAAAAAAAGEgAAAAAAAAYVAAAAAAAABhgAAAAAAAAGGwAAAAAAAAYeAAAAAAAABiEAAAAAAAEGIwAAAAAAAQYnAAAAAAACBisAAAAAAAMGMwAAAAAABAZDAAAAAAAFBmMAAAAAAAgGAwEAACAAAAQEAAAAMAAABAQAAAAQAAAEBQAAACAAAAUHAAAAIAAABQgAAAAgAAAFCgAAACAAAAULAAAAAAAABg4AAAAAAAAGEQAAAAAAAAYUAAAAAAAABhcAAAAAAAAGGgAAAAAAAAYdAAAAAAAABiAAAAAAABAGAwABAAAADwYDgAAAAAAOBgNAAAAAAA0GAyAAAAAADAYDEAAAAAALBgMIAAAAAAoGAwQAQbQjC3wBAAAAAwAAAAcAAAAPAAAAHwAAAD8AAAB/AAAA/wAAAP8BAAD/AwAA/wcAAP8PAAD/HwAA/z8AAP9/AAD//wAA//8BAP//AwD//wcA//8PAP//HwD//z8A//9/AP///wD///8B////A////wf///8P////H////z////9/AEHAJAuhAgEAAQABAAEAAQABAAIAAgACAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAP////////////8AAAAAAAAEAAMAAgACAAIAAgACAAIAAgACAAIAAgACAAEAAQABAAIAAgACAAIAAgACAAIAAgACAAMAAgABAAEAAQABAAEA//////////8AAAAAAAAAAAEABAADAAIAAgACAAIAAgACAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEA//////////////////8AAAAAAAAsAAAALQAAAC4AAAAvAAAACAAAAAkAAAAKAAAACgAAACAAQfEmC+QBAQIDBAUGBwgJCgsMDQ4PEBARERISExMUFBQUFRUVFRYWFhYWFhYWFxcXFxcXFxcYGBgYGBgYGBgYGBgYGBgYAAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gICEhIiIjIyQkJCQlJSUlJiYmJiYmJiYnJycnJycnJygoKCgoKCgoKCgoKCgoKCgpKSkpKSkpKSkpKSkpKSkpKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioAAAAAAAAAAAEAAAACAAAAAgAAAAMAAAADAAAABAAAAAQAAAAEAEHgKAv9JxMAAAAMAAAADQAAAAEAAAAGAAAAAQAAAAEAAAATAAAADQAAAA4AAAABAAAABwAAAAAAAAABAAAAFAAAAA8AAAAQAAAAAQAAAAYAAAAAAAAAAQAAABUAAAAQAAAAEQAAAAEAAAAFAAAAAAAAAAIAAAAVAAAAEgAAABIAAAABAAAABQAAAAAAAAACAAAAFQAAABIAAAATAAAAAwAAAAUAAAACAAAAAwAAABUAAAASAAAAEwAAAAMAAAAFAAAABAAAAAQAAAAVAAAAEwAAABQAAAAEAAAABQAAAAgAAAAEAAAAFQAAABMAAAAUAAAABAAAAAUAAAAQAAAABQAAABYAAAAUAAAAFQAAAAQAAAAFAAAAEAAAAAUAAAAWAAAAFQAAABYAAAAFAAAABQAAABAAAAAFAAAAFgAAABUAAAAWAAAABgAAAAUAAAAQAAAABQAAABYAAAAWAAAAFwAAAAYAAAAFAAAAIAAAAAUAAAAWAAAAFgAAABYAAAAEAAAABQAAACAAAAAGAAAAFgAAABYAAAAXAAAABQAAAAUAAAAgAAAABgAAABYAAAAXAAAAFwAAAAYAAAAFAAAAIAAAAAYAAAAWAAAAFgAAABYAAAAFAAAABQAAADAAAAAHAAAAFwAAABcAAAAWAAAABQAAAAQAAABAAAAABwAAABcAAAAXAAAAFgAAAAYAAAADAAAAQAAAAAgAAAAXAAAAGAAAABYAAAAHAAAAAwAAAAABAAAJAAAAGQAAABkAAAAXAAAABwAAAAMAAAAAAQAACQAAABoAAAAaAAAAGAAAAAcAAAADAAAAAAIAAAkAAAAbAAAAGwAAABkAAAAJAAAAAwAAAOcDAAAJAAAAEgAAAAwAAAANAAAAAQAAAAUAAAABAAAAAQAAABIAAAANAAAADgAAAAEAAAAGAAAAAAAAAAEAAAASAAAADgAAAA4AAAABAAAABQAAAAAAAAACAAAAEgAAABAAAAAQAAAAAQAAAAQAAAAAAAAAAgAAABIAAAAQAAAAEQAAAAMAAAAFAAAAAgAAAAMAAAASAAAAEQAAABIAAAAFAAAABQAAAAIAAAADAAAAEgAAABIAAAATAAAAAwAAAAUAAAAEAAAABAAAABIAAAASAAAAEwAAAAQAAAAEAAAABAAAAAQAAAASAAAAEgAAABMAAAAEAAAABAAAAAgAAAAFAAAAEgAAABIAAAATAAAABQAAAAQAAAAIAAAABQAAABIAAAASAAAAEwAAAAYAAAAEAAAACAAAAAUAAAASAAAAEgAAABMAAAAFAAAABAAAAAwAAAAGAAAAEgAAABMAAAATAAAABwAAAAQAAAAMAAAABgAAABIAAAASAAAAEwAAAAQAAAAEAAAAEAAAAAcAAAASAAAAEgAAABMAAAAEAAAAAwAAACAAAAAHAAAAEgAAABIAAAATAAAABgAAAAMAAACAAAAABwAAABIAAAATAAAAEwAAAAYAAAADAAAAgAAAAAgAAAASAAAAEwAAABMAAAAIAAAAAwAAAAABAAAIAAAAEgAAABMAAAATAAAABgAAAAMAAACAAAAACQAAABIAAAATAAAAEwAAAAgAAAADAAAAAAEAAAkAAAASAAAAEwAAABMAAAAKAAAAAwAAAAACAAAJAAAAEgAAABMAAAATAAAADAAAAAMAAAAAAgAACQAAABIAAAATAAAAEwAAAA0AAAADAAAA5wMAAAkAAAARAAAADAAAAAwAAAABAAAABQAAAAEAAAABAAAAEQAAAAwAAAANAAAAAQAAAAYAAAAAAAAAAQAAABEAAAANAAAADwAAAAEAAAAFAAAAAAAAAAEAAAARAAAADwAAABAAAAACAAAABQAAAAAAAAACAAAAEQAAABEAAAARAAAAAgAAAAQAAAAAAAAAAgAAABEAAAAQAAAAEQAAAAMAAAAEAAAAAgAAAAMAAAARAAAAEAAAABEAAAADAAAABAAAAAQAAAAEAAAAEQAAABAAAAARAAAAAwAAAAQAAAAIAAAABQAAABEAAAAQAAAAEQAAAAQAAAAEAAAACAAAAAUAAAARAAAAEAAAABEAAAAFAAAABAAAAAgAAAAFAAAAEQAAABAAAAARAAAABgAAAAQAAAAIAAAABQAAABEAAAARAAAAEQAAAAUAAAAEAAAACAAAAAYAAAARAAAAEgAAABEAAAAHAAAABAAAAAwAAAAGAAAAEQAAABIAAAARAAAAAwAAAAQAAAAMAAAABwAAABEAAAASAAAAEQAAAAQAAAADAAAAIAAAAAcAAAARAAAAEgAAABEAAAAGAAAAAwAAAAABAAAHAAAAEQAAABIAAAARAAAABgAAAAMAAACAAAAACAAAABEAAAASAAAAEQAAAAgAAAADAAAAAAEAAAgAAAARAAAAEgAAABEAAAAKAAAAAwAAAAACAAAIAAAAEQAAABIAAAARAAAABQAAAAMAAAAAAQAACQAAABEAAAASAAAAEQAAAAcAAAADAAAAAAIAAAkAAAARAAAAEgAAABEAAAAJAAAAAwAAAAACAAAJAAAAEQAAABIAAAARAAAACwAAAAMAAADnAwAACQAAAA4AAAAMAAAADQAAAAEAAAAFAAAAAQAAAAEAAAAOAAAADgAAAA8AAAABAAAABQAAAAAAAAABAAAADgAAAA4AAAAPAAAAAQAAAAQAAAAAAAAAAQAAAA4AAAAOAAAADwAAAAIAAAAEAAAAAAAAAAIAAAAOAAAADgAAAA4AAAAEAAAABAAAAAIAAAADAAAADgAAAA4AAAAOAAAAAwAAAAQAAAAEAAAABAAAAA4AAAAOAAAADgAAAAQAAAAEAAAACAAAAAUAAAAOAAAADgAAAA4AAAAGAAAABAAAAAgAAAAFAAAADgAAAA4AAAAOAAAACAAAAAQAAAAIAAAABQAAAA4AAAAPAAAADgAAAAUAAAAEAAAACAAAAAYAAAAOAAAADwAAAA4AAAAJAAAABAAAAAgAAAAGAAAADgAAAA8AAAAOAAAAAwAAAAQAAAAMAAAABwAAAA4AAAAPAAAADgAAAAQAAAADAAAAGAAAAAcAAAAOAAAADwAAAA4AAAAFAAAAAwAAACAAAAAIAAAADgAAAA8AAAAPAAAABgAAAAMAAABAAAAACAAAAA4AAAAPAAAADwAAAAcAAAADAAAAAAEAAAgAAAAOAAAADwAAAA8AAAAFAAAAAwAAADAAAAAJAAAADgAAAA8AAAAPAAAABgAAAAMAAACAAAAACQAAAA4AAAAPAAAADwAAAAcAAAADAAAAAAEAAAkAAAAOAAAADwAAAA8AAAAIAAAAAwAAAAABAAAJAAAADgAAAA8AAAAPAAAACAAAAAMAAAAAAgAACQAAAA4AAAAPAAAADwAAAAkAAAADAAAAAAIAAAkAAAAOAAAADwAAAA8AAAAKAAAAAwAAAOcDAAAJAAAAEjRWeJq83vDitBI0VngAAFx3d18s97j1EsR6ayZfk4TMDHPKqa1Htt6xTxFLu2Ww0J86jH5OWDQFa+JqfOGXTgSmmbxD1wM6TwTEIiQEzc6eJSSFxXbedsrqrVv2KIWcKXUJ4gY3VoaJ2HWjX0cCKebrpTmXKrOvOeaDONoUJ86e5iIXgq8eAii2IIZiewMA9cqIXUWNmgRAgZXmEddWhR9cYPx0rvcEIDq9aDQMn4KeFyXGhcj9TxuvPYoE3nOEskZWsCKIAFFfzNGyEl3XabxUkRUZSp2MA0C9q/QQzMORc7nsHNxt0C4wgO3n5ki+RzXgzjHbgTQQ0qHafPbDrMyWf4wdd8tl3SNXBXdxso6+lM1EDZWJxyuxADfc6k+TgvG97RFfSF56dmT9RiouHnz6LthxymkpLrq7XpPpRp0rguYFfrZW4KADnXNVP9eUA1qbtr0QcM30gpvX/PleRWHBSYdKtZyGJdKFYfqk0Ti76buUbxZ1tPFZCXJINRSkuiZruoBH7XoSI+A5RCbO0AjVeGB0bTaEvhftcjyXzqgBC0OaoiPDIe6Ar+MX1mKZW/eMnB3pDKu8TZrR5o4OU3JdP/UMjPYuBlWoQBZoOsBnCTGcn05uSaAUm7VyBFh4d4U4O8IkOCdTtVzUOpK/Zoa6kiRaGq5HWZYinlYE4zVvC4dGKhhlRxKUCekltrpswSKFWS6arN3yJGZmbghycTd4O1DKA1DfCT1WeNvBwIidKPysZRjVWPEkUsaucXYX12fpQaLYefuapNnKAeHhK2sYKW4vaCVmUG7AekVTlTl0uzrCtP9dA96qVB9Zsp1CCRB9A6gCKMXzJQsfOCfLajuCT+5RJV7098KAldmiDovh4bS8nFHtOwoBuz2CUvQPZ9I9T2HtQp17xVdiwBOTW0IUXosAuBShSz3BERwx/sFoVUyjPnboZl3wYsLxKpiLt/t1qvp2iO4qu3LR0KRiipeaRLejlD3BfANdwZ26u23x4JIdHxCGx5u3oAepgYbXuavJYimvGvbZesvT/Bb9LCFNYkRnW4yG1910nIlQ5iVjdMOn9CoEuso+WkY5pbFOytUFO/DbCb66clQrNlpOd82D0SkSIqFH36L1jqEMS1C5bkXivd/73zRG474vK81Gw5idgf74rvJhnVnUdlJ/NeNTxHk4SKUkubSSkYgmgAjs24IXZ5baKKqajlhAfPNOs5+8UQa5N4jW5fDTQfdkwbpwS3AKWhO82ipi92jYnAarwLngibo3vPZSNTIBSsFHu5jurEt5AE/VaXpjfd4HcV4l8rY7ea+ImLWZh2tGxvNZO3+qFsaIwv2j/ELPY8qBS2eiNs5a2IjniSN502sFDS3TnU5sOVzlpsDmcUVQ+77M6JFeETKrltE4j94Yy4q/BiZnAYjl2mb7FyOHF2A7g2QoydHyFny4nGaL5XRqdtu+FxTGhZ9liQzqEWCFrdrIrn7+tmW1pHYScyP2hdBppGzpo4NWNvCquPckhG90u03BrOT0WnU4BoZE5r31B3g9OXa7W49tvhfcNdxEzfADCWwZ8f3qcrZn8YJM7ZP/dqadPQXFBBAdUgKSzJzQmro3UfuseilN5YRFNBRqd0sLCo40C+Jx1CAI3EY9uDw4dBgc4e+hx+7tl6pC3BsL5TCzMuBwzlUZ2R3VOSmPuM0UpdO5Ddk/I5Enm3oPxUwKZ3ul38YFKn3Ad/qm0EZmi3fjSWe1R9qOnLMo79utSNQ+k/QLfav2aoSvSW5m6wjyWg5qzTQ19yJmXm5b70LKrn0ppjlV0/OuLYapHo6PSSKH5nLVwD0JUxyY9fuGv7+wCfoVnyFmYemxMIP7xL1m1Odw6ajyNW5zZlrvusG30lnbzZaJbdJH0sfWoxveyOo5Turyr6OfsYucU9gI1V9MDvkJhTOv+1ZZTqN18z4dFY4vLsGuP7jpkTYXeWMBv1aNWrjjikBnEjiCg20JwL0bkA+5Zey8MynTanyV1YosL167diht9GwahQ85ctrCoU0G5sOJU/ocEAwqxTDF+6OEr47XfpmLKOK5gTfEBT2o3vbCc9deW0w2jiIEETmkDd8+ep1WZ2gk2v7cjqGzqbenZ3ZeHXlDoZ84T0zczac9AsGLsMyxKeU6vrR6+U/n2zJhTnVF3zmoQlRjcd5Svj9ksW8vd4F6z0IKHpbq8p7Yg12085s+bkrP5D3u55UyLFRIaM0vZnhMZuHO5MRoTEeLVEeZC4vtpXc31yX8tzbWsRXJANrSsNl1usIhoWSKYM9da18MV/lfJTPz3O7UzhgkkjtjSrMEsODdNsFaL0tdsIPMWNJCjqLdJLRemM05lzZH32IXzuSFJLTgtOfRqPnB8OEWvw5WB2eRw46znczyLW66YhY62Hf/9PnLxLwrfdDX2Xj0QSzg4UxV7035zH4SgXWNBYo8yzYztamRT1z0CyzEOGOISPTNkwhkaKVeV7w07IBAqo609STzOX9S/44f7dnpFKLFjAX8JJJBd/5MsAC6uq9Szw8Sn5owEmJiZezzWKUvvtp6i+xLQjOkrqYTJWJBmKdMMtWijbikKFUkO3OH0sOuaG1+aUSaKLtJL76TEHutij0uY+y7UIOC6uEjB9ls8yuwMXSee4lHcIozy/2eIVYGfKLwEQM755bbwJG/F9uypYVOa/3UjJ1ApksFcbD62d+pH4P+1kAeeX2t6401r1g+XqYlDo3rgIXgFN/Ty7srq81+8lH3DPTYEyZPoU0rMAAAADEAAAAyAAAAMwAAADQAAAA1AAAANgAAADcAAAA4AAAAOQAAADoAAAA7AAAABAAAAAIAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAABgAAAAIAAAABAAAAAQAAAAIAAAADAAAABAAAAAQAAAAEAAAAAwAAAAIAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAAAAAAAQAAAAIAAAAEAAAAAAAAAAIAAAAEAAAACAAAAAAAAAABAAAAAgAAAAEAAAAEAAAABAAAAAQAAAAEAAAACAAAAAgAAAAIAAAABwAAAAgAAAAJAAAACgAAAAsAAAAAAAAAPAAAADwAAAA9AAAAPQAAAD0AAAA9AAAAPQAAAD0AAAA8AAAAPAAAAD0AAAA8AAAAPAAAADwAAAA8AEGA0QALHT0AAAA9AAAAPAAAADwAAAAAAAAAPAAAAAAAAAA9AEGk0gALA6ArAQ==");mC=new Uint8Array(A.length);for(let I=0;I<A.length;I++)mC[I]=A.charCodeAt(I);return mC}(),I={a:xC},g=await WebAssembly.compile(A.buffer),t=(await WebAssembly.instantiate(g,I)).exports;RC=t.f,KC(),t.g(),vC=t.v,MC=t,JC=!0}(),LC)}const qC=5788743,TC=[5e4,1e5,2e5,5e5,1e6];function _C(A,I){for(const g of TC)if(Math.ceil(A/g)===I)return g;return Math.ceil(A/I)}class WC{constructor(A,I){this.experiments=[],this.experimentIdToIndex=new Map,this.chromosomes=new Map,this.chromOrder=[],this.tileIndexCache=new Map,this.zoomLevels=[],this.zoomTileIndexCache=new Map,this.initialized=!1,this.url=A,this.fetchImpl=I}fetch(A,I){return NC(this.url,A,I,this.fetchImpl)}async init(A){if(!this.initialized)return this.initPromise||(this.initPromise=this._doInit().catch(A=>{throw this.initPromise=void 0,A})),this.initPromise}async _doInit(){await HC();const A=await this.fetch({start:0,size:256});this.header=this.parseHeader(new yC(new DataView(A),!0));const I=this.header,g=I.dictionaryOffset-I.experimentMetadataOffset,t=I.experimentMetadataOffset,C=g+I.dictionarySize,e=I.chromDirectoryOffset,B=I.nZoomLevels>0&&I.zoomDirectoryOffset>0,i=this.computeDirFetchSize(I),[Q,o]=await Promise.all([this.fetch({start:t,size:C}),this.fetch({start:e,size:i})]);this.parseExperimentMetadata(new yC(new DataView(Q,0,g),!0)),this.dictionary=new Uint8Array(Q,g,I.dictionarySize),this.dctx=function(){if(!JC)throw new Error("zstd WASM not initialized — call initZstd() first");return MC.n()}();const E=B?Math.min(I.zoomDirectoryOffset-I.chromDirectoryOffset,o.byteLength):o.byteLength;if(this.parseChromDirectory(new yC(new DataView(o,0,E),!0)),B){const A=I.zoomDirectoryOffset-e,g=o.byteLength-A-8;A>=0&&g>0&&this.parseZoomDirectory(new yC(new DataView(o,A,g),!0))}this.initialized=!0}parseHeader(A){const I=A.getUInt();if(I!==qC)throw new Error(`Not a GTX file (magic: 0x${I.toString(16)}, expected 0x${qC.toString(16)})`);const g=A.getUShort(),t=A.getUShort();return{version:g,genome:A.getFixedLengthString(t),nExperiments:A.getUInt(),resolution:A.getUInt(),payloadEncoding:A.getByte(),nZoomLevels:A.getByte(),chromDirectoryOffset:this.readU64(A),experimentMetadataOffset:this.readU64(A),dictionaryOffset:this.readU64(A),dictionarySize:A.getUInt(),zoomDirectoryOffset:this.readU64(A),groupStatsDirectoryOffset:this.readU64(A)}}parseExperimentMetadata(A){const I=A.getUInt();for(let g=0;g<I;g++){const I=A.getUShort(),g=A.getFixedLengthString(I),t=A.getUInt(),C=A.getUShort(),e=new Map;for(let I=0;I<C;I++){const I=A.getUShort(),g=A.getFixedLengthString(I),t=A.getUShort(),C=A.getFixedLengthString(t);e.set(g,C)}const B={id:g,experimentIndex:t,metadata:e};this.experiments.push(B),this.experimentIdToIndex.set(g,t)}}parseChromDirectory(A){const I=A.getUShort();for(let g=0;g<I;g++){const I=A.getUShort(),g=A.getFixedLengthString(I),t=A.getUInt(),C=this.readU64(A),e=A.getUInt(),B=A.getUInt();this.chromosomes.set(g,{name:g,length:t,tileIndexOffset:C,tileIndexLength:e,nTiles:B}),this.chromOrder.push(g)}}parseZoomDirectory(A){var I;const g=A.getByte();for(let t=0;t<g;t++){const g=A.getUInt(),t=A.getUShort(),C=new Map;for(let g=0;g<t;g++){const t=this.readU64(A),e=A.getUInt(),B=A.getUInt(),i=null!==(I=this.chromOrder[g])&&void 0!==I?I:`chrom_${g}`;C.set(i,{tileIndexOffset:t,tileIndexLength:e,nTiles:B})}this.zoomLevels.push({reductionLevel:g,chromTileIndexes:C})}}async loadTileIndex(A,I){await this.init(I);const g=this.tileIndexCache.get(A);if(g)return g;const t=this.chromosomes.get(A);if(!t)throw new Error(`Unknown chromosome: ${A}`);const C=await this.fetch({start:t.tileIndexOffset,size:t.tileIndexLength},I),e=this.parseTileIndex(new yC(new DataView(C),!0),t.nTiles);return this.tileIndexCache.set(A,e),e}async loadZoomTileIndex(A,I,g){const t=`${A}:${I}`,C=this.zoomTileIndexCache.get(t);if(C)return C;const e=this.zoomLevels[A];if(!e)throw new Error(`Unknown zoom level: ${A}`);const B=e.chromTileIndexes.get(I);if(!B)throw new Error(`Unknown chromosome in zoom: ${I}`);const i=await this.fetch({start:B.tileIndexOffset,size:B.tileIndexLength},g),Q=this.parseTileIndex(new yC(new DataView(i),!0),B.nTiles);return this.zoomTileIndexCache.set(t,Q),Q}parseTileIndex(A,I){const g=A.getUInt(),t=A.getUInt();if(g!==I)throw new Error(`Tile count mismatch: expected ${I}, got ${g}`);const C=[];for(let g=0;g<I;g++){const I=this.readU64(A),g=A.getUInt(),e=[];for(let I=0;I<t;I++){const I=this.readU64(A),g=A.getUInt();e.push({offset:I,size:g})}C.push({positionsOffset:I,positionsSize:g,experimentPointers:e})}return C}async readFeatures(A,I,g,t,C,e){await this.init(e);const B=this.header;if(void 0!==C&&C>1){const B=this.selectZoomLevel(C);if(void 0!==B)return this.readZoomFeatures(A,I,g,t,B,e)}const i=this.chromosomes.get(A);if(!i)return new Map;const Q=await this.loadTileIndex(A,e),o=_C(i.length,i.nTiles),E=Math.max(0,Math.floor(I/o)),s=Math.min(i.nTiles-1,Math.floor(Math.max(0,g-1)/o)),a=[];for(let A=E;A<=s;A++){const I=Q[A];for(const g of t){const t=I.experimentPointers[g];t&&t.size>0&&a.push({tileIdx:A,expIdx:g,pointer:t})}}if(0===a.length)return new Map;const r=await this.fetchMergedRanges(a,e),n=new Map;for(const A of t)n.set(A,[]);for(const{tileIdx:t,expIdx:C,data:e}of r){const Q=this.decompress(e),E=new Float32Array(Q.buffer,Q.byteOffset,Q.byteLength/4),s=t*o,a=Math.min((t+1)*o,i.length),r=Math.max(I,s),h=Math.min(g,a),c=Math.floor((r-s)/B.resolution),l=Math.ceil((h-s)/B.resolution),d=n.get(C);for(let I=c;I<l&&I<E.length;I++){const g=E[I];if(0===g)continue;const t=s+I*B.resolution,C=Math.min(t+B.resolution,i.length);d.push({chr:A,start:t,end:C,value:g})}}return n}async readZoomFeatures(A,I,g,t,C,e){const B=this.zoomLevels[C];if(!B)return new Map;const i=B.chromTileIndexes.get(A);if(!i)return new Map;const Q=this.chromosomes.get(A);if(!Q)return new Map;const o=await this.loadZoomTileIndex(C,A,e),E=_C(Q.length,i.nTiles),s=B.reductionLevel,a=Math.max(0,Math.floor(I/E)),r=Math.min(i.nTiles-1,Math.floor(Math.max(0,g-1)/E)),n=[];for(let A=a;A<=r;A++){const I=o[A];for(const g of t){const t=I.experimentPointers[g];t&&t.size>0&&n.push({tileIdx:A,expIdx:g,pointer:t})}}if(0===n.length)return new Map;const h=await this.fetchMergedRanges(n,e),c=new Map;for(const A of t)c.set(A,[]);for(const{tileIdx:t,expIdx:C,data:e}of h){const B=this.decompress(e),i=new Float32Array(B.buffer,B.byteOffset,B.byteLength/4),o=i.length/2,a=i.subarray(0,o),r=t*E,n=Math.min((t+1)*E,Q.length),h=Math.max(I,r),l=Math.min(g,n),d=Math.floor((h-r)/s),D=Math.ceil((l-r)/s),u=c.get(C);for(let I=d;I<D&&I<a.length;I++){const g=a[I];if(0===g)continue;const t=r+I*s,C=Math.min(t+s,Q.length);u.push({chr:A,start:t,end:C,value:g})}}return c}getExperimentIds(){return this.experiments.map(A=>A.id)}getExperimentMetadata(A){const I=this.experiments.find(I=>I.id===A);return null==I?void 0:I.metadata}resolveExperimentIndex(A){return this.experimentIdToIndex.get(A)}getHeader(){return this.header}getChromosomes(){return this.chromosomes}computeDirFetchSize(A){return A.groupStatsDirectoryOffset>0&&A.groupStatsDirectoryOffset>A.chromDirectoryOffset?A.groupStatsDirectoryOffset-A.chromDirectoryOffset+8:A.nZoomLevels>0&&A.zoomDirectoryOffset>0?A.zoomDirectoryOffset-A.chromDirectoryOffset+262144:262144}selectZoomLevel(A){let I;for(let g=0;g<this.zoomLevels.length;g++)this.zoomLevels[g].reductionLevel<2*A&&(I=g);return I}async fetchMergedRanges(A,I){const g=[...A].sort((A,I)=>A.pointer.offset-I.pointer.offset),t=[];for(const A of g){const I=A.pointer.offset+A.pointer.size,g=t[t.length-1];g&&A.pointer.offset-g.end<=1024?(g.end=Math.max(g.end,I),g.items.push(A)):t.push({start:A.pointer.offset,end:I,items:[A]})}const C=t.map(async A=>({range:A,buf:await this.fetch({start:A.start,size:A.end-A.start},I)})),e=await Promise.all(C),B=[];for(const{range:A,buf:I}of e)for(const g of A.items){const t=g.pointer.offset-A.start,C=new Uint8Array(I,t,g.pointer.size);B.push({tileIdx:g.tileIdx,expIdx:g.expIdx,data:C})}return B}decompress(A){if(!this.dictionary||void 0===this.dctx)throw new Error("GTX reader not initialized — call init() first");return function(A,I,g){if(!JC)throw new Error("zstd WASM not initialized — call initZstd() first");const t=MC.s,C=MC.t,e=MC.p,B=MC.q,i=MC.h,Q=t(I.byteLength);pC.set(I,Q);const o=t(g.byteLength);pC.set(g,o);const E=e(Q,I.byteLength),s=-1===E?1048576:E,a=t(s);try{const t=B(A,a,s,Q,I.byteLength,o,g.byteLength);if(i(t))throw new Error(`zstd decompression failed with code ${t}`);return new Uint8Array(UC.buffer,a,t).slice()}finally{C(a),C(Q),C(o)}}(this.dctx,A,this.dictionary)}readU64(A){return A.getLong()}dispose(){var A;void 0!==this.dctx&&(A=this.dctx,JC&&MC.o(A),this.dctx=void 0)}}const PC=new Map;class OC{constructor(A,I){this.url=A,this.reader=I,this.pending=new Map}request(A,I,g,t){const C=`${I.chr}:${I.start}-${I.end}|${g}`,e=this.pending.get(C);return new Promise(e?(I,g)=>{e.experiments.push({experimentId:A,resolve:I,reject:g})}:(e,B)=>{const i={locus:I,bpPerPixel:g,signal:t,experiments:[{experimentId:A,resolve:e,reject:B}]};this.pending.set(C,i),queueMicrotask(()=>this.flush(C))})}async flush(A){var I;const g=this.pending.get(A);if(!g)return;this.pending.delete(A);const{locus:t,bpPerPixel:C,signal:e,experiments:B}=g;try{await this.reader.init();const A=[],g=new Map;for(const I of B){const t=this.reader.resolveExperimentIndex(I.experimentId);void 0!==t?(g.set(I.experimentId,t),A.push(t)):I.reject(new Error(`Unknown experiment: ${I.experimentId}`))}if(0===A.length)return;const i=await this.reader.readFeatures(t.chr,t.start,t.end,A,C,e);for(const A of B){const t=g.get(A.experimentId);void 0!==t&&A.resolve(null!==(I=i.get(t))&&void 0!==I?I:[])}}catch(A){for(const I of B)I.reject(A)}}}const VC=new Map;async function ZC(A,I,g,t,C={}){const e=function(A,I){let g=VC.get(A);return g||(g=new WC(A,I),VC.set(A,g)),g}(A,C.fetchImpl);await e.init(C.signal);const B=e.resolveExperimentIndex(I);if(void 0===B)throw new Error(`Unknown experiment: ${I}`);const i=[];for(const A of g)try{const I=(await e.readFeatures(A,0,Number.MAX_SAFE_INTEGER,[B],t,C.signal)).get(B);I&&i.push(...I)}catch(A){}return i}const XC=new Map;class zC{constructor(A,I,g="mean",t){this.url=A,this.experimentId=I,this._windowFunction=g,this.fetchImpl=t,this.reader=function(A,I){let g=XC.get(A);return g||(g=new WC(A,I),XC.set(A,g)),g}(A,t)}get windowFunction(){return this._windowFunction}setWindowFunction(A){this._windowFunction=A}setCumulativeOffsets(A){this._cumulativeOffsets=A}setChromNameResolver(A){this._resolveChromName=A}async fetch(A,I,g){if(h(A)&&this._cumulativeOffsets)return this.fetchWG(I,g);const t=this._resolveChromName?{...A,chr:this._resolveChromName(A.chr)}:A,C=function(A,I){let g=PC.get(A);return g||(g=new OC(A,I),PC.set(A,g)),g}(this.url,this.reader),e=await C.request(this.experimentId,t,I,g);return I>1&&"none"!==this._windowFunction&&e.length>0?jt(e,A.start,I,this._windowFunction):e}async fetchWG(A,I){const g=this._cumulativeOffsets;if(!g)throw new Error("fetchWG called without cumulativeOffsets");const t=GC(await ZC(this.url,this.experimentId,g.chromosomeNames,A,{windowFunction:this._windowFunction,signal:I,fetchImpl:this.fetchImpl}),g);return A>1&&"none"!==this._windowFunction&&t.length>0?jt(t,0,A,this._windowFunction):t}}function jC(A,I=0){if(A.length<=10+I)return;const g=parseInt(A[5+I]),t=parseInt(A[6+I]),C={id:A[0+I],chr:A[1+I],strand:mI(A[2+I]),start:parseInt(A[3+I]),end:parseInt(A[4+I]),cdStart:g,cdEnd:t,name:A.length>11+I?A[11+I]:A[0+I]},e=Ie(parseInt(A[7+I]),A[8+I],A[9+I]);return SI(e,g,t),C.exons=e,C}function $C(A,I=0){if(A.length<=11+I)return;const g=parseInt(A[5+I]),t=parseInt(A[6+I]),C={name:A[11+I],chr:A[1+I],strand:mI(A[2+I]),start:parseInt(A[3+I]),end:parseInt(A[4+I]),cdStart:g,cdEnd:t,id:A[0+I]};if(A.length>10+I){const g=parseInt(A[10+I]);isNaN(g)||(C.score=g)}A.length>13+I&&(C.cdsStartStat=A[12+I],C.cdsEndStat=A[13+I]);const e=Ie(parseInt(A[7+I]),A[8+I],A[9+I],A[14+I]);return SI(e,g,t),C.exons=e,C}function Ae(A){const I=A.cdsStart,g=A.cdsEnd,t={name:A.name2,chr:A.chrom,strand:mI(A.strand),start:A.txStart,end:A.txEnd,cdStart:I,cdEnd:g,id:A.name};void 0!==A.score&&(t.score=A.score),A.cdsStartStat&&(t.cdsStartStat=A.cdsStartStat),A.cdsEndStat&&(t.cdsEndStat=A.cdsEndStat);const C=A.exonStarts.replace(/,$/,"").split(","),e=A.exonEnds.replace(/,$/,"").split(","),B=A.exonFrames?A.exonFrames.replace(/,$/,"").split(","):void 0,i=[];for(let I=0;I<A.exonCount;I++){const A={start:parseInt(C[I]),end:parseInt(e[I])};if(B){const g=parseInt(B[I]);-1!==g&&(A.readingFrame=g)}i.push(A)}return SI(i,I,g),t.exons=i,t}function Ie(A,I,g,t){const C=I.replace(/,$/,"").split(","),e=g.replace(/,$/,"").split(","),B=t?t.replace(/,$/,"").split(","):void 0,i=[];for(let I=0;I<A;I++){const A={start:parseInt(C[I]),end:parseInt(e[I])};if(B){const g=parseInt(B[I]);-1!==g&&(A.readingFrame=g)}i.push(A)}return i}async function ge(A,I={},g){var t,C,e;const B=null!==(t=I.genome)&&void 0!==t?t:"hg38",i=null!==(C=I.track)&&void 0!==C?C:"ncbiRefSeq",Q=`https://api.genome.ucsc.edu/getData/track?genome=${B}&track=${i}&chrom=${A.chr}&start=${A.start}&end=${A.end}`,o=await fetch(Q,g?{signal:g}:void 0);if(!o.ok)throw new Error(`UCSC API error: ${o.status} ${o.statusText}`);return(null!==(e=(await o.json())[i])&&void 0!==e?e:[]).map(Ae)}class te{constructor(A={},I=1e4){this.options=A,this.maxWgFeatures=I}setCumulativeOffsets(A){this._cumulativeOffsets=A}async fetch(A,I,g){return h(A)&&this._cumulativeOffsets?this.fetchWG(g):ge(A,this.options,g)}async fetchWG(A){const I=this._cumulativeOffsets;if(!I)throw new Error("fetchWG called without cumulativeOffsets");const g=GC((await kC(I.chromosomeNames,I=>ge({chr:I,start:0,end:Number.MAX_SAFE_INTEGER},this.options,A),A)).map(A=>({...A,exons:void 0,cdStart:void 0,cdEnd:void 0})),I);return g.length>this.maxWgFeatures?function(A,I){const g=A.slice(0,I);for(let t=I;t<A.length;t++){const C=Math.floor(Math.random()*(t+1));C<I&&(g[C]=A[t])}return g}(g,this.maxWgFeatures):g}}function Ce(A,I,g,t){if("a"===g&&!t)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof I?A!==I||!t:!I.has(A))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===g?t:"a"===g?t.call(A):t?t.value:I.get(A)}var ee,Be,ie,Qe,oe,Ee,se;"function"==typeof SuppressedError&&SuppressedError;const ae={color:1};ae.parent=ae,ae.left=ae,ae.right=ae,ae.min=1/0,ae.max=-1/0;class re{constructor(){ee.add(this),this.root=ae}insert(A,I,g){const t={low:A,high:I,value:g},C=Ce(this,ee,"m",Be).call(this,t);Ce(this,ee,"m",se).call(this,C),C.color=2;let e=C;for(;e!==this.root&&2===e.parent.color;)if(e.parent===e.parent.parent.left){const A=e.parent.parent.right;2===A.color?(e.parent.color=1,A.color=1,e.parent.parent.color=2,e=e.parent.parent):(e===e.parent.right&&(e=e.parent,Ce(this,ee,"m",Qe).call(this,e)),e.parent.color=1,e.parent.parent.color=2,Ce(this,ee,"m",oe).call(this,e.parent.parent))}else{const A=e.parent.parent.left;2===A.color?(e.parent.color=1,A.color=1,e.parent.parent.color=2,e=e.parent.parent):(e===e.parent.left&&(e=e.parent,Ce(this,ee,"m",oe).call(this,e)),e.parent.color=1,e.parent.parent.color=2,Ce(this,ee,"m",Qe).call(this,e.parent.parent))}this.root.color=1}findOverlapping(A,I){if(this.root===ae)return[];const g=Ce(this,ee,"m",ie).call(this,A,I,this.root,[]);return g.length>1&&g.sort((A,I)=>A.low-I.low),g}mapIntervals(A){const I=g=>{A(g.interval),g.left!==ae&&I(g.left),g.right!==ae&&I(g.right)};this.root!==ae&&I(this.root)}}ee=new WeakSet,Be=function(A){return{parent:ae,left:ae,right:ae,interval:A,color:2,max:A.high,min:A.low}},ie=function A(I,g,t,C){return t.interval.low<=g&&I<=t.interval.high&&C.push(t.interval),t.left!==ae&&t.left.max>=I&&Ce(this,ee,"m",A).call(this,I,g,t.left,C),t.right!==ae&&t.right.min<=g&&Ce(this,ee,"m",A).call(this,I,g,t.right,C),C},Qe=function(A){const I=A.right;A.right=I.left,I.left!==ae&&(I.left.parent=A),I.parent=A.parent,A.parent===ae?this.root=I:A.parent.left===A?A.parent.left=I:A.parent.right=I,I.left=A,A.parent=I,Ce(this,ee,"m",Ee).call(this,A)},oe=function(A){const I=A.left;A.left=I.right,I.right!==ae&&(I.right.parent=A),I.parent=A.parent,A.parent===ae?this.root=I:A.parent.right===A?A.parent.right=I:A.parent.left=I,I.right=A,A.parent=I,Ce(this,ee,"m",Ee).call(this,A)},Ee=function(A){for(;A!==ae;){const I=A.left.max>A.right.max?A.left.max:A.right.max,g=A.interval.high;A.max=I>g?I:g;const t=A.left.min<A.right.min?A.left.min:A.right.min,C=A.interval.low;A.min=t<C?t:C,A=A.parent}},se=function(A){let I=this.root,g=ae;for(;I!==ae;)g=I,I=A.interval.low<=I.interval.low?I.left:I.right;A.parent=g,g===ae?(this.root=A,A.left=A.right=ae):A.interval.low<=g.interval.low?g.left=A:g.right=A,Ce(this,ee,"m",Ee).call(this,A)};class ne{constructor(A,I){const g=null!=A?A:[];this.range=I,this.count=g.length;const{treeMap:t,allFeatures:C}=function(A){const I={},g={},t=[];for(const I of A){const A=I.chr;let C=g[A];C||(t.push(A),C=[],g[A]=C),C.push(I)}for(const A of t){const t=g[A];t.sort((A,I)=>A.start===I.start?0:A.start>I.start?1:-1),I[A]=he(t)}return{treeMap:I,allFeatures:g}}(g);this.treeMap=t,this.allFeatures=C}containsRange(A,I,g){return void 0===this.range||this.range.contains(A,I,g)}queryFeatures(A,I,g){const t=this.treeMap[A];if(!t)return[];const C=t.findOverlapping(I,g);if(0===C.length)return[];const e=[],B=this.allFeatures[A];if(B){for(const A of C){const t=A.value;for(let A=t.start;A<t.end;A++){const t=B[A];if(t.start>g)break;t.end>=I&&e.push(t)}}e.sort((A,I)=>A.start-I.start)}return e}findFeatures(A){const I=[];for(const g of Object.values(this.allFeatures))for(const t of g)A(t)&&I.push(t);return I}getAllFeatures(){return this.allFeatures}}function he(A){const I=new re,g=A.length,t=Math.max(10,Math.round(g/10));for(let C=0;C<g;C+=t){const e=Math.min(g,C+t),B={start:C,end:e},i=A[C].start;let Q=i;for(let I=C;I<e;I++)Q=Math.max(Q,A[I].end);I.insert(i,Q,B)}return I}class ce{constructor(A,I,g,t){this.minv=A,this.maxv=I,this.bin=g,this._fetchedSize=t}toUniqueString(){return`${this.minv}..${this.maxv} (bin ${this.bin}, fetchedSize ${this.fetchedSize()})`}toString(){return this.toUniqueString()}compareTo(A){return this.minv.compareTo(A.minv)||this.maxv.compareTo(A.maxv)||this.bin-A.bin}fetchedSize(){return void 0!==this._fetchedSize?this._fetchedSize:this.maxv.blockPosition+65536-this.minv.blockPosition}}class le{constructor({filehandle:A,renameRefSeqs:I=A=>A}){this.filehandle=A,this.renameRefSeq=I}async getMetadata(A={}){const{indices:I,...g}=await this.parse(A);return g}_findFirstData(A,I){return A?A.compareTo(I)>0?I:A:I}async parse(A={}){return this.parseP||(this.parseP=this._parse(A).catch(A=>{throw this.parseP=void 0,A})),this.parseP}async hasRefSeq(A,I={}){const g=await this.parse(I);return!!g.indices[A]?.binIndex}_parseNameBytes(A){let I=0,g=0;const t=[],C={},e=new TextDecoder("utf8");for(let B=0;B<A.length;B+=1)if(!A[B]){if(g<B){const i=this.renameRefSeq(e.decode(A.subarray(g,B)));t[I]=i,C[i]=I}g=B+1,I+=1}return{refNameToId:C,refIdToName:t}}}function de(A,I=0){const g=A[I]|A[I+1]<<8|A[I+2]<<16|A[I+3]<<24;return 4294967296*((A[I+4]|A[I+5]<<8|A[I+6]<<16|A[I+7]<<24)>>>0)+(g>>>0)}function De(A,I){return I.minv.blockPosition-A.maxv.blockPosition<65e3&&I.maxv.blockPosition-A.minv.blockPosition<5e6}function ue(A,I){const g=[];let t;if(0===A.length)return A;A.sort(function(A,I){const g=A.minv.blockPosition-I.minv.blockPosition;return 0===g?A.minv.dataPosition-I.minv.dataPosition:g});for(const C of A)(!I||C.maxv.compareTo(I)>0)&&(void 0===t?(g.push(C),t=C):De(t,C)?C.maxv.compareTo(t.maxv)>0&&(t.maxv=C.maxv):(g.push(C),t=C));return g}class ye{constructor(A,I){this.blockPosition=A,this.dataPosition=I}toString(){return`${this.blockPosition}:${this.dataPosition}`}compareTo(A){return this.blockPosition-A.blockPosition||this.dataPosition-A.dataPosition}}function we(A,I=0){return new ye(1099511627776*A[I+7]+4294967296*A[I+6]+16777216*A[I+5]+65536*A[I+4]+256*A[I+3]+A[I+2],A[I+1]<<8|A[I])}const fe={0:"generic",1:"SAM",2:"VCF"};function Se(A,I){return A*2**I}function ke(A,I){return Math.floor(A/2**I)}class Ge extends le{constructor(A){super(A),this.maxBinNumber=0,this.depth=0,this.minShift=0}async lineCount(A,I={}){const g=await this.parse(I),t=g.refNameToId[A];if(void 0===t)return-1;if(!g.indices[t])return-1;const{stats:C}=g.indices[t];return C?C.lineCount:-1}indexCov(){throw new Error("CSI indexes do not support indexcov")}parseAuxData(A,I){const g=new DataView(A.buffer),t=g.getInt32(I,!0),C=65536&t?"zero-based-half-open":"1-based-closed",e=fe[15&t];if(!e)throw new Error(`invalid Tabix preset format flags ${t}`);const B={ref:g.getInt32(I+4,!0),start:g.getInt32(I+8,!0),end:g.getInt32(I+12,!0)},i=g.getInt32(I+16,!0),Q=i?String.fromCharCode(i):void 0,o=g.getInt32(I+20,!0),E=g.getInt32(I+24,!0),{refIdToName:s,refNameToId:a}=this._parseNameBytes(A.subarray(I+28,I+28+E));return{refIdToName:s,refNameToId:a,skipLines:o,metaChar:Q,columnNumbers:B,format:e,coordinateType:C}}async _parse(A={}){const I=await Dt(await this.filehandle.readFile(A)),g=new DataView(I.buffer);let t;if(21582659===g.getUint32(0,!0))t=1;else{if(38359875!==g.getUint32(0,!0))throw new Error("Not a CSI file");t=2}this.minShift=g.getInt32(4,!0),this.depth=g.getInt32(8,!0),this.maxBinNumber=((1<<3*(this.depth+1))-1)/7;const C=2**(this.minShift+3*this.depth),e=g.getInt32(12,!0),B=e&&e>=30?this.parseAuxData(I,16):{refIdToName:[],refNameToId:{},metaChar:void 0,columnNumbers:{ref:0,start:1,end:2},coordinateType:"zero-based-half-open",format:"generic"},i=g.getInt32(16+e,!0);let Q,o=16+e+4;const E=new Array(i).fill(0).map(()=>{const A=g.getInt32(o,!0);o+=4;const t={};let C;for(let e=0;e<A;e+=1){const A=g.getUint32(o,!0);if(A>this.maxBinNumber)C=this.parsePseudoBin(I,o+4),o+=48;else{const C=we(I,o+4);Q=this._findFirstData(Q,C);const e=g.getInt32(o+12,!0);o+=16;const B=new Array(e);for(let g=0;g<e;g+=1){const t=we(I,o),C=we(I,o+8);o+=16,B[g]=new ce(t,C,A)}t[A]=B}}return{binIndex:t,stats:C}});return{...B,csi:!0,refCount:i,maxBlockSize:65536,firstDataLine:Q,csiVersion:t,indices:E,depth:this.depth,maxBinNumber:this.maxBinNumber,maxRefLength:C}}parsePseudoBin(A,I){return{lineCount:de(A,I+28)}}async blocksForRange(A,I,g,t={}){I<0&&(I=0);const C=await this.parse(t),e=C.refNameToId[A];if(void 0===e)return[];const B=C.indices[e];if(!B)return[];const i=this.reg2bins(I,g),Q=[];for(const[A,I]of i)for(let g=A;g<=I;g++)if(B.binIndex[g])for(const A of B.binIndex[g])Q.push(new ce(A.minv,A.maxv,g));return ue(Q,new ye(0,0))}reg2bins(A,I){(A-=1)<1&&(A=1),I>2**50&&(I=2**34),I-=1;let g=0,t=0,C=this.minShift+3*this.depth;const e=[];for(;g<=this.depth;C-=3,t+=Se(1,3*g),g+=1){const g=t+ke(A,C),B=t+ke(I,C);if(B-g+e.length>this.maxBinNumber)throw new Error(`query ${A}-${I} is too large for current binning scheme (shift ${this.minShift}, depth ${this.depth}), try a smaller query or a coarser index binning scheme`);e.push([g,B])}return e}}class Fe extends le{async lineCount(A,I={}){const g=await this.parse(I),t=g.refNameToId[A];if(void 0===t)return-1;return g.indices[t]?g.indices[t].stats?.lineCount??-1:-1}async _parse(A={}){const I=await this.filehandle.readFile(A),g=await Dt(I),t=new DataView(g.buffer);if(21578324!==t.getUint32(0,!0))throw new Error("Not a TBI file");const C=t.getUint32(4,!0),e=t.getUint32(8,!0),B=65536&e?"zero-based-half-open":"1-based-closed",i={0:"generic",1:"SAM",2:"VCF"}[15&e];if(!i)throw new Error(`invalid Tabix preset format flags ${e}`);const Q={ref:t.getInt32(12,!0),start:t.getInt32(16,!0),end:t.getInt32(20,!0)},o=t.getInt32(24,!0),E=37449,s=o?String.fromCharCode(o):void 0,a=t.getInt32(28,!0),r=t.getInt32(32,!0),{refNameToId:n,refIdToName:h}=this._parseNameBytes(g.slice(36,36+r));let c,l=36+r;return{indices:new Array(C).fill(0).map(()=>{const A=t.getInt32(l,!0);l+=4;const I={};let C;for(let e=0;e<A;e+=1){const A=t.getUint32(l,!0);if(l+=4,A>37450)throw new Error("tabix index contains too many bins, please use a CSI index");if(37450===A){const A=t.getInt32(l,!0);l+=4,2===A&&(C=this.parsePseudoBin(g,l)),l+=16*A}else{const C=t.getInt32(l,!0);l+=4;const e=new Array(C);for(let I=0;I<C;I+=1){const t=we(g,l),C=we(g,l+8);l+=16,c=this._findFirstData(c,t),e[I]=new ce(t,C,A)}I[A]=e}}const e=t.getInt32(l,!0);l+=4;const B=new Array(e);for(let A=0;A<e;A+=1)B[A]=we(g,l),l+=8,c=this._findFirstData(c,B[A]);return{binIndex:I,linearIndex:B,stats:C}}),metaChar:s,maxBinNumber:E,maxRefLength:536870912,skipLines:a,firstDataLine:c,columnNumbers:Q,coordinateType:B,format:i,refIdToName:h,refNameToId:n,maxBlockSize:65536}}parsePseudoBin(A,I){return{lineCount:de(A,I+16)}}async blocksForRange(A,I,g,t={}){I<0&&(I=0);const C=await this.parse(t),e=C.refNameToId[A];if(void 0===e)return[];const B=C.indices[e];if(!B)return[];(B.linearIndex.length>0?B.linearIndex[I>>14>=B.linearIndex.length?B.linearIndex.length-1:I>>14]:new ye(0,0))||console.warn("querying outside of possible tabix range");const i=(Q=I,o=g,[[0,0],[1+((Q+=1)>>26),1+((o-=1)>>26)],[9+(Q>>23),9+(o>>23)],[73+(Q>>20),73+(o>>20)],[585+(Q>>17),585+(o>>17)],[4681+(Q>>14),4681+(o>>14)]]);var Q,o;const E=[];for(const[A,I]of i)for(let g=A;g<=I;g++)if(B.binIndex[g])for(const A of B.binIndex[g])E.push(new ce(A.minv,A.maxv,g));const s=B.linearIndex.length;let a;const r=Math.min(I>>14,s-1),n=Math.min(g>>14,s-1);for(let A=r;A<=n;++A){const I=B.linearIndex[A];I&&(!a||I.compareTo(a)<0)&&(a=I)}return ue(E,a)}}class Ne{constructor({path:A,filehandle:I,url:g,tbiPath:t,tbiUrl:C,tbiFilehandle:e,csiPath:B,csiUrl:i,csiFilehandle:Q,renameRefSeqs:o,chunkCacheSize:E=5242880}){this.cache=new fA({maxSize:1e3});const s=o??(A=>A);if(I)this.filehandle=I;else if(A)this.filehandle=new IA(A);else{if(!g)throw new TypeError("must provide either filehandle or path");this.filehandle=new AA(g)}if(e)this.index=new Fe({filehandle:e,renameRefSeqs:s});else if(Q)this.index=new Ge({filehandle:Q,renameRefSeqs:s});else if(t)this.index=new Fe({filehandle:new IA(t),renameRefSeqs:s});else if(B)this.index=new Ge({filehandle:new IA(B),renameRefSeqs:s});else if(A)this.index=new Fe({filehandle:new IA(`${A}.tbi`),renameRefSeqs:s});else if(i)this.index=new Ge({filehandle:new AA(i)});else if(C)this.index=new Fe({filehandle:new AA(C)});else{if(!g)throw new TypeError("must provide one of tbiFilehandle, tbiPath, csiFilehandle, csiPath, tbiUrl, csiUrl");this.index=new Fe({filehandle:new AA(`${g}.tbi`)})}this.renameRefSeq=s,this.hasCustomRenameRefSeq=void 0!==o,this.chunkCache=new eA({cache:new fA({maxSize:Math.floor(E/65536)}),fill:(A,I)=>this.readChunk(A,{signal:I})})}calculateFileOffset(A,I,g,t,C){return 256*A[g]+(t-I[g])+C+1}async getLines(A,I,g,t){let C,e,B={};"function"==typeof t?e=t:(B=t,e=t.lineCallback,C=t.signal);const i=await this.index.getMetadata(B),Q=I??0,o=g??i.maxRefLength;if(!(Q<=o))throw new TypeError("invalid start and end coordinates. start must be less than or equal to end");if(Q===o)return;const E=await this.index.blocksForRange(A,Q,o,B),s=new TextDecoder("utf8"),a="VCF"===i.format,r={ref:i.columnNumbers.ref||0,start:i.columnNumbers.start||0,end:a?8:i.columnNumbers.end||0},n=Math.max(r.ref,r.start,r.end),h=i.metaChar?.charCodeAt(0),c="1-based-closed"===i.coordinateType?-1:0,l=!this.hasCustomRenameRefSeq;for(const I of E){const{buffer:g,cpositions:t,dpositions:B}=await this.chunkCache.get(I.toString(),I,C);let i=0,E=0;const d=s.decode(g);if(g.length==d.length)for(;i<d.length;){const g=d.indexOf("\n",i);if(-1===g)break;const C=d.slice(i,g);if(B){const A=i+I.minv.dataPosition;for(;E<B.length&&A>=B[E];)E++}const s=this.checkLine(A,Q,o,C,r.ref,r.start,r.end,n,h,c,a,l);if(null===s)return;void 0!==s&&e(C,this.calculateFileOffset(t,B,E,i,I.minv.dataPosition),s.start,s.end),i=g+1}else for(;i<g.length;){const C=g.indexOf("\n".charCodeAt(0),i);if(-1===C)break;const d=g.slice(i,C),D=s.decode(d);if(B){const A=i+I.minv.dataPosition;for(;E<B.length&&A>=B[E];)E++}const u=this.checkLine(A,Q,o,D,r.ref,r.start,r.end,n,h,c,a,l);if(null===u)return;void 0!==u&&e(D,this.calculateFileOffset(t,B,E,i,I.minv.dataPosition),u.start,u.end),i=C+1}}}async getMetadata(A={}){return this.index.getMetadata(A)}async getHeaderBuffer(A={}){const{firstDataLine:I,metaChar:g,maxBlockSize:t}=await this.getMetadata(A),C=(I?.blockPosition||0)+t,e=await this.filehandle.read(C,0,A),B=await Dt(e);if(g){let A=-1;const I="\n".charCodeAt(0),t=g.charCodeAt(0);for(let g=0,C=B.length;g<C;g++){const C=B[g];if(g===A+1&&C!==t)break;C===I&&(A=g)}return B.subarray(0,A+1)}return B}async getHeader(A={}){const I=new TextDecoder("utf8"),g=await this.getHeaderBuffer(A);return I.decode(g)}async getReferenceSequenceNames(A={}){return(await this.getMetadata(A)).refIdToName}checkLine(A,I,g,t,C,e,B,i,Q,o,E,s){if(void 0!==Q&&t.charCodeAt(0)===Q)return;if(t.length<500){const i=t.split("\t"),Q=i[C-1];if(!(s?Q===A:this.renameRefSeq(Q)===A))return;const a=+i[e-1]+o;if(a>=g)return null;let r;if(r=0===B||B===e?a+1:E?this._getVcfEnd(a,i[3],i[B-1]):+i[B-1],r<=I)return;return{start:a,end:r}}let a=-1;const r=[-1];for(let A=0;A<i;A++){const A=t.indexOf("\t",a+1);if(-1===A){r.push(t.length);break}r.push(A),a=A}const n=t.slice(r[C-1]+1,r[C]);if(!(s?n===A:this.renameRefSeq(n)===A))return;const h=+t.slice(r[e-1]+1,r[e])+o;if(h>=g)return null;let c;return c=0===B||B===e?h+1:E?this._getVcfEnd(h,t.slice(r[3]+1,r[4]),t.slice(r[B-1]+1,r[B])):+t.slice(r[B-1]+1,r[B]),c<=I?void 0:{start:h,end:c}}_getVcfEnd(A,I,g){let t=A+I.length;if(g.includes("SVTYPE=TRA"))return A+1;if("."!==g[0]){const A=g.indexOf("END=");if(-1!==A&&(0===A||";"===g[A-1])){const I=A+4;let C=g.indexOf(";",I);-1===C&&(C=g.length),t=Number.parseInt(g.slice(I,C),10)}}return t}async lineCount(A,I={}){return this.index.lineCount(A,I)}async readChunk(A,I={}){return ut(await this.filehandle.read(A.fetchedSize(),A.minv.blockPosition,I),A,this.cache)}}class me{constructor(A,I){var g;const t=uC(A),C=uC(null!==(g=null==I?void 0:I.indexUrl)&&void 0!==g?g:A+".tbi"),e=(null==I?void 0:I.fetchImpl)?{fetch:I.fetchImpl}:void 0;this.tabix=new Ne({filehandle:new AA(t,e),tbiFilehandle:new AA(C,e)})}async getHeader(A){var I,g;const t=await this.tabix.getMetadata({signal:A}),C=Object.keys(t.refNameToId);return{nref:C.length,format:"VCF"===t.format?2:"SAM"===t.format?1:0,colSeq:t.columnNumbers.ref,colBeg:t.columnNumbers.start,colEnd:t.columnNumbers.end,meta:null!==(g=null===(I=t.metaChar)||void 0===I?void 0:I.charCodeAt(0))&&void 0!==g?g:0,skip:0,sequenceNames:C}}async getSequenceNames(A){const I=await this.tabix.getMetadata({signal:A});return Object.keys(I.refNameToId)}async readHeaderLines(A){const I=await this.tabix.getHeader({signal:A});return I?I.split("\n").filter(A=>A.length>0):[]}async readLines(A,I,g,t){const C=[];return await this.tabix.getLines(A,I,g,{lineCallback:A=>{C.push(A)},signal:t}),C}}const Re=new Set(["transcript","primary_transcript","processed_transcript","mRNA","mrna","lnc_RNA","miRNA","ncRNA","rRNA","scRNA","snRNA","snoRNA","tRNA"]),pe=new Set(["CDS","cds","start_codon","stop_codon"]),Ue=new Set(["5UTR","3UTR","UTR","five_prime_UTR","three_prime_UTR","3'-UTR","5'-UTR"]),Me=new Set(["exon","coding-exon"]),Le=new Set;for(const A of[pe,Ue,Me])for(const I of A)Le.add(I);function Je(A){return Re.has(A)||A.endsWith("RNA")||A.endsWith("transcript")}function Ke(A){return Le.has(A)||A.endsWith("RNA")||ve(A)}function Ye(A){return Me.has(A)}function ve(A){return A.includes("intron")}function be(A){return pe.has(A)}function xe(A){return Ue.has(A)}const He=new Map([["%09","\t"],["%0A","\n"],["%0D","\r"],["%25","%"],["%3B",";"],["%3D","="],["%26","&"],["%2C",","]]);function qe(A){if(!A.includes("%"))return A;let I="";for(let g=0;g<A.length;g++)if(37===A.charCodeAt(g)&&g<A.length-2){const t=A.substring(g,g+3);He.has(t)?I+=He.get(t):I+=t,g+=2}else I+=A.charAt(g);return I}function Te(A,I="="){const g="="===I,t=[];for(let C of A.split(";")){C=C.trim();const A=C.indexOf(I);if(A>0&&A<C.length-1){let I=qe(C.substring(0,A).trim()),e=qe(C.substring(A+1).trim());g||(I=_e(I),e=_e(e)),t.push([I,e])}}return t}function _e(A){return A.startsWith('"')&&A.endsWith('"')?A.substring(1,A.length-1):A}function We(A,I){if(A.length<9)return;const g=parseInt(A[3])-1,t=parseInt(A[4]);if(isNaN(g)||isNaN(t))return;const C="."===A[5]?void 0:Number(A[5]),e="+"===A[6]||"-"===A[6]||"."===A[6]?A[6]:void 0,B="."===A[7]?void 0:parseInt(A[7]);return{chr:A[0],source:qe(A[1]),type:A[2],start:g,end:t,score:void 0===C||isNaN(C)?void 0:C,strand:e,phase:void 0===B||isNaN(B)?void 0:B,attributeString:A[8],attributes:{}}}const Pe=["Name","transcript_id","gene_name","gene","gene_id","alias","locus","name"];function Oe(A,I){if(void 0!==A.attributes[I])return A.attributes[I];const g=A.attributeString.includes("=")?"=":" ",t=Te(A.attributeString,g);for(const[A,g]of t)if(A===I)return g}function Ve(A,I,g){var t;const C=new Set(null!==(t=null==g?void 0:g.filterTypes)&&void 0!==t?t:["chromosome"]);let e=A.filter(A=>!C.has(A.type));"gff3"!==I&&"gff"!==I||(e=function(A){const I=new Map,g=[];for(const t of A)if(Ke(t.type)||Je(t.type)||!t.id)g.push(t);else{let A=I.get(t.chr);A||(A=new Map,I.set(t.chr,A));let g=A.get(t.id);g?g.push(t):A.set(t.id,[t])}for(const A of I.values())for(const I of A.values())if(I.length>1){const A={...I[0]},t=[];for(const g of I)A.start=Math.min(A.start,g.start),A.end=Math.max(A.end,g.end),t.push({start:g.start,end:g.end});A._mergedExons=t,g.push(A)}else g.push(I[0]);return g}(e));const B=function(A,I,g){const t=Object.create(null);for(const I of A)("gene"===I.type||I.type.endsWith("_gene"))&&I.id&&(t[I.id]=I);const C=Object.create(null),e=[],B=new Set;for(const I of A)if(Je(I.type)&&void 0!==I.id){const A={record:I,exons:[],parts:[]};C[I.id]=A,B.add(I),I.parent&&t[I.parent]&&(A.geneRecord=t[I.parent],B.add(t[I.parent]))}for(const g of A)if(Ke(g.type)){const A=$e(g);if(A)for(const t of A){let A=C[t];if(!A&&"gtf"===I){A={record:{...g,type:"transcript"},exons:[],parts:[]},C[t]=A}A&&(Ye(g.type)?A.exons.push({start:g.start,end:g.end}):A.parts.push(g),A.record.start=Math.min(A.record.start,g.start),A.record.end=Math.max(A.record.end,g.end),B.add(g))}}for(const A of Object.keys(C)){const I=C[A];Ze(I),e.push(AB(I,g))}for(const I of A)B.has(I)||e.push(IB(I,g));return function(A){for(const I of A)if(I.exons)for(let A=0;A<I.exons.length;A++)I.exons[A].number="-"===I.strand?I.exons.length-A:A+1}(e),e}(e,I,null==g?void 0:g.nameField);return B}function Ze(A){if(A.parts.sort((A,I)=>A.start-I.start),A.parts.length>0){let I=A.parts[0].start,g=A.parts[0].end;for(let t=1;t<A.parts.length;t++){const C=A.parts[t];ve(C.type)||(C.start<=g?g=Math.max(g,C.end):(Xe(A.exons,I,g)||A.exons.push({start:I,end:g}),I=C.start,g=C.end))}Xe(A.exons,I,g)||(A.exons.push({start:I,end:g}),A.record.start=Math.min(A.record.start,I),A.record.end=Math.max(A.record.end,g))}for(const I of A.parts)be(I.type)?ze(A,I):xe(I.type)&&je(A,I);if(A.exons.sort((A,I)=>A.start-I.start),void 0!==A.cdStart&&void 0!==A.cdEnd)for(const I of A.exons)(I.end<A.cdStart||I.start>A.cdEnd)&&(I.utr=!0)}function Xe(A,I,g){for(const t of A)if(t.end>=g&&t.start<=I)return t}function ze(A,I){const g=Xe(A.exons,I.start,I.end);if(g&&(g.cdStart=void 0!==g.cdStart?Math.min(I.start,g.cdStart):I.start,g.cdEnd=void 0!==g.cdEnd?Math.max(I.end,g.cdEnd):I.end,void 0!==I.phase)){const A=(3-I.phase)%3;void 0===g.readingFrame&&(g.readingFrame=A)}A.cdStart=void 0!==A.cdStart?Math.min(I.start,A.cdStart):I.start,A.cdEnd=void 0!==A.cdEnd?Math.max(I.end,A.cdEnd):I.end}function je(A,I){const g=Xe(A.exons,I.start,I.end);g&&(I.start===g.start&&I.end===g.end?g.utr=!0:(I.end<g.end&&(g.cdStart=I.end),(void 0===g.cdEnd||I.start>g.cdEnd)&&(g.cdEnd=I.start)))}function $e(A){return A.parent&&""!==A.parent.trim()?A.parent.trim().split(","):null}function AB(A,I){const g=A.record,t=gB(g,I);return{chr:g.chr,start:g.start,end:g.end,name:t,id:g.id,strand:"+"===g.strand||"-"===g.strand?g.strand:void 0,type:g.type,source:g.source,score:g.score,cdStart:A.cdStart,cdEnd:A.cdEnd,exons:A.exons.length>0?A.exons:void 0,attributes:g.attributes,color:g.color}}function IB(A,I){const g=gB(A,I),t=A._mergedExons;return{chr:A.chr,start:A.start,end:A.end,name:g,id:A.id,strand:"+"===A.strand||"-"===A.strand?A.strand:void 0,type:A.type,source:A.source,score:A.score,exons:t,attributes:A.attributes,color:A.color}}function gB(A,I){if(I)return Oe(A,I);for(const I of Pe){const g=Oe(A,I);if(g)return g}}function tB(A){if(0===A.length)return;const I=A[0];if(void 0===I.score&&void 0!==I.name){if(A.every(A=>{return void 0===A.name||"."===A.name||(I=A.name,!isNaN(Number(I))&&""!==I.trim());var I}))for(const I of A)I.score=Number(I.name),I.name=void 0}const g=A.filter(A=>A.chr1!==A.chr2);for(const I of g){const g={...I,dup:!0};A.push(g),I.chr=I.chr1,I.start=I.start1,I.end=I.end1,g.chr=g.chr2,g.start=g.start2,g.end=g.end2}}function CB(A,I){switch(A){case"broadpeak":case"peaks":return{decode:(A,I)=>function(A,I){const g=RI(A,I,6);if(g)return A.length>6&&(g.signal=parseFloat(A[6])),A.length>7&&(g.pValue=parseFloat(A[7])),A.length>8&&(g.qValue=parseFloat(A[8])),g}(A,eB(I)),delimiter:/\s+/,requiresAssembly:!1};case"narrowpeak":return{decode:(A,I)=>function(A,I){const g=RI(A,I,6);if(g)return A.length>6&&(g.signal=parseFloat(A[6])),A.length>7&&(g.pValue=parseFloat(A[7])),A.length>8&&(g.qValue=parseFloat(A[8])),A.length>9&&(g.peak=parseInt(A[9])),g}(A,eB(I)),delimiter:/\s+/,requiresAssembly:!1};case"bedgraph":return{decode:A=>function(A){if(A.length<4)return;const I=A[0],g=parseInt(A[1]),t=parseInt(A[2]),C=parseFloat(A[3]);return isNaN(g)||isNaN(t)||isNaN(C)?void 0:{chr:I,start:g,end:t,value:C}}(A),delimiter:/\s+/,requiresAssembly:!1};case"gff3":case"gff":return{decode:A=>function(A){const I=We(A);if(!I)return;const g=Te(I.attributeString,"="),t={};for(const[A,C]of g){t[A]=C;const g=A.toLowerCase();"color"===g||"colour"===g?I.color=C:"ID"===A?I.id=C:"Parent"===A&&(I.parent=C)}return I.attributes=t,I}(A),delimiter:"\t",requiresAssembly:!0};case"gtf":return{decode:A=>function(A){const I=We(A);if(!I)return;const g=Te(I.attributeString," "),t={};let C,e;switch(I.type){case"gene":C="gene_id";break;case"transcript":C="transcript_id",e="gene_id";break;default:e="transcript_id"}for(const[A,B]of g){t[A]=B;const g=A.toLowerCase();"color"===g||"colour"===g?I.color=B:A===C?I.id=B:A===e&&(I.parent=B)}return I.attributes=t,I}(A),delimiter:"\t",requiresAssembly:!0};case"refflat":return{decode:A=>function(A){if(A.length<11)return;const I=A[2],g=parseInt(A[4]),t=parseInt(A[5]),C=parseInt(A[6]),e=parseInt(A[7]),B=mI(A[3]);if(isNaN(g)||isNaN(t))return;const i={chr:I,start:g,end:t,name:A[0],strand:B,cdStart:C,cdEnd:e},Q=parseInt(A[8]),o=A[9].replace(/,$/,"").split(","),E=A[10].replace(/,$/,"").split(",");if(Q>0&&o.length===Q&&E.length===Q){const A=[];for(let I=0;I<Q;I++)A.push({start:parseInt(o[I]),end:parseInt(E[I])});SI(A,C,e),i.exons=A}return i}(A),delimiter:/\s+/,requiresAssembly:!1};case"genepred":return{decode:A=>jC(A,0),delimiter:/\s+/,requiresAssembly:!1};case"genepredext":return{decode:A=>$C(A,0),delimiter:/\s+/,requiresAssembly:!1};case"ensgene":return{decode:A=>jC(A,1),delimiter:/\s+/,requiresAssembly:!1};case"refgene":return{decode:A=>$C(A,1),delimiter:/\s+/,requiresAssembly:!1};case"gappedpeak":return{decode:(A,I)=>function(A,I){const g=RI(A,I);if(g)return A.length>12&&(g.signal=parseFloat(A[12])),A.length>13&&(g.pValue=parseFloat(A[13])),A.length>14&&(g.qValue=parseFloat(A[14])),g}(A,eB(I)),delimiter:/\s+/,requiresAssembly:!1};case"bedpe":return{decode:(A,I)=>function(A,I){var g;if(A.length<6)return;const t=A[0],C=parseInt(A[1]),e=parseInt(A[2]),B=A[3],i=parseInt(A[4]),Q=parseInt(A[5]);if(isNaN(C)||isNaN(e)||isNaN(i)||isNaN(Q))return;var o;I&&void 0===I.hiccups&&(I.hiccups=!!I.columnNames&&((o=I.columnNames).includes("fdrDonut")||o.includes("fdr_donut")));const E=null!==(g=null==I?void 0:I.hiccups)&&void 0!==g&&g,s=E?6:10,a={chr:t,start:0,end:0,chr1:t,start1:C,end1:e,chr2:B,start2:i,end2:Q,dup:!1};return E||(A.length>6&&"."!==A[6]&&(a.name=A[6]),A.length>7&&"."!==A[7]&&(a.score=Number(A[7])),A.length>8&&"."!==A[8]&&(a.strand1=A[8]),A.length>9&&"."!==A[9]&&(a.strand2=A[9])),I&&(void 0!==I.colorColumn&&I.colorColumn<A.length&&(a.color=A[I.colorColumn]),void 0!==I.thicknessColumn&&I.thicknessColumn<A.length&&(a.thickness=Number(A[I.thicknessColumn])),A.length>s&&I.columnNames&&I.columnNames.length===A.length&&(a.extras=A.slice(s))),t===B&&(a.chr=t,a.start=Math.min(C,i),a.end=Math.max(e,Q)),a}(A,function(A){return A?{columnNames:A.columnNames,colorColumn:A.colorColumn,thicknessColumn:A.thicknessColumn}:void 0}(I)),delimiter:/\s+/,requiresAssembly:!1,postProcess:tB};case"interact":case"longrange":return{decode:A=>function(A){if(A.length<6)return;const I=A[0],g=parseInt(A[1]),t=parseInt(A[2]),C=A[8],e=parseInt(A[9]),B=parseInt(A[10]),i=A[13],Q=parseInt(A[14]),o=parseInt(A[15]),E=A[7],s="."===E?void 0:"0"===E?"rgb(0,0,0)":E;return{chr:I,start:g,end:t,chr1:C,start1:e,end1:B,chr2:i,start2:Q,end2:o,name:A[3],score:Number(A[4]),value:Number(A[5]),color:s,dup:!1}}(A),delimiter:/\s+/,requiresAssembly:!1};default:return{decode:(A,I)=>RI(A,eB(I)),delimiter:/\s+/,requiresAssembly:!1}}}function eB(A){if(A)return{nameField:A.nameField,gffTags:A.gffTags,colorColumn:A.colorColumn,thicknessColumn:A.thicknessColumn}}function BB(A,I){const g={format:I};let t;for(const I of A)if(I.startsWith("track")||I.startsWith("#track")){const A=QB(I);Object.assign(g,{properties:A}),"interact"===A.type&&(g.format="interact"),"gcnv"===A.type&&(g.format="gcnv")}else if(I.startsWith("browser"));else if(I.startsWith("#columns")){const A=oB(I);void 0!==A.colorColumn&&(g.colorColumn=A.colorColumn),void 0!==A.thicknessColumn&&(g.thicknessColumn=A.thicknessColumn)}else if(I.startsWith("##gff-version 3"))g.format="gff3";else if(I.startsWith("#gffTags"))g.gffTags=!0;else{if(I.startsWith("fixedStep")||I.startsWith("variableStep"))break;if(!I.startsWith("#"))break;{const A=I.split("\t");A.length>1&&(t=A)}}if(t){g.columnNames=t;for(let A=0;A<t.length;A++)"color"===t[A]||"colour"===t[A]?g.colorColumn=A:"thickness"===t[A]&&(g.thicknessColumn=A)}return g}function iB(A,I,g){var t,C;const e=null!==(t=null==g?void 0:g.header)&&void 0!==t?t:BB(A,I),B=null!==(C=e.format)&&void 0!==C?C:I,i=CB(B),Q=i.delimiter,o=[],E={};for(const I of A){if(!I||I.startsWith("track")||I.startsWith("#")||I.startsWith("browser"))continue;if("wig"===B){if(I.startsWith("fixedStep")){E.wig=EB(I);continue}if(I.startsWith("variableStep")){E.wig=sB(I);continue}}const A=I.split(Q);if(A.length<1)continue;const g="wig"===B?{...e,wig:E.wig}:e,t=i.decode(A,g);t&&o.push(t)}if(i.postProcess&&i.postProcess(o),i.requiresAssembly&&!1!==(null==g?void 0:g.assembleGFF)){return Ve(o,"gff"===B?"gff":"gff3"===B?"gff3":"gtf",{nameField:e.nameField})}return o}function QB(A){const I={},g=A.split(/(?:")([^"]+)(?:")|([^\s"]+)(?=\s+|$)/g);let t;const C=[];for(const A of g)A&&0!==A.trim().length&&(A.endsWith("=")?t=A:t?(C.push(t+A),t=void 0):C.push(A));for(const A of C){if(!A)break;const g=A.split("=",2);2===g.length&&(I[g[0].trim()]=g[1].trim())}return I}function oB(A){const I={},g=A.split(/\s+/);if(2===g.length){const A=g[1].split(";");for(const g of A){const A=g.split("=");"color"===A[0]?I.colorColumn=parseInt(A[1])-1:"thickness"===A[0]&&(I.thicknessColumn=parseInt(A[1])-1)}}return I}function EB(A){const I=A.split(/\s+/);return{format:"fixedStep",chrom:I[1].split("=")[1],start:parseInt(I[2].split("=")[1],10)-1,step:parseInt(I[3].split("=")[1],10),span:I.length>4?parseInt(I[4].split("=")[1],10):1,index:0}}function sB(A){const I=A.split(/\s+/);return{format:"variableStep",chrom:I[1].split("=")[1],span:I.length>2?parseInt(I[2].split("=")[1],10):1}}class aB{constructor(A){var I,g;this.allFeaturesLoaded=!1,this.url=uC(A.url),this.fetchImpl=A.fetchImpl;const t=null!==(I=A.format)&&void 0!==I?I:pt(A.url);if(this.format=null!=t?t:"bed",this.assembleGFF=!1!==A.assembleGFF,void 0!==A.indexed?this._indexed=A.indexed:A.indexURL?this._indexed=!0:this._indexed=function(A){const I=A.toLowerCase(),g=I.indexOf("?");return(g>0?I.substring(0,g):I).endsWith(".bgz")}(A.url),this._indexed){const I=uC(null!==(g=A.indexURL)&&void 0!==g?g:function(A){if(A.includes("?")){const I=A.indexOf("?");return A.substring(0,I)+".tbi"+A.substring(I)}return A+".tbi"}(A.url));this.tabixReader=new me(this.url,{indexUrl:I,fetchImpl:A.fetchImpl})}}get indexed(){return this._indexed}setChromNameResolver(A){this._resolveChromName=A}setCumulativeOffsets(A){this._cumulativeOffsets=A}async getSequenceNames(A){return this.tabixReader?this.tabixReader.getSequenceNames(A):this.featureCache?Object.keys(this.featureCache.getAllFeatures()):[]}async fetch(A,I,g){if(h(A)&&this._cumulativeOffsets)return this.fetchWG(g);const t=this._resolveChromName?this._resolveChromName(A.chr):A.chr;return this._indexed&&this.tabixReader?this.fetchIndexed(t,A.start,A.end,g):this.fetchNonIndexed(t,A.start,A.end,g)}async fetchIndexed(A,I,g,t){const C=this.tabixReader;if(!this.header){const A=await C.readHeaderLines(t);this.header=BB(A,this.format)}const e=iB(await C.readLines(A,I,g,t),this.format,{header:this.header,assembleGFF:this.assembleGFF});return e.sort((A,I)=>A.start-I.start),e}async fetchNonIndexed(A,I,g,t){var C,e;return this.allFeaturesLoaded||await this.loadAllFeatures(t),null!==(e=null===(C=this.featureCache)||void 0===C?void 0:C.queryFeatures(A,I,g))&&void 0!==e?e:[]}async loadAllFeatures(A){var I;const g=null!==(I=this.fetchImpl)&&void 0!==I?I:globalThis.fetch;let t,C;try{t=await g(this.url,{signal:A,mode:"cors"})}catch(I){if(!`${I}`.includes("Failed to fetch"))throw I;t=await g(this.url,{signal:A,mode:"cors",cache:"reload"})}if(!t.ok)throw new Error(`Failed to fetch ${this.url}: ${t.status} ${t.statusText}`);const e=this.url.toLowerCase(),B=e.endsWith(".gz")||e.endsWith(".bgz")||e.includes(".gz?")||e.includes(".bgz?"),i=t.headers.get("Content-Encoding");if(B&&!("gzip"===i||"deflate"===i)){const A=await t.arrayBuffer();try{const I=new DecompressionStream("gzip"),g=new Response(new Blob([A]).stream().pipeThrough(I));C=await g.text()}catch(I){C=(new TextDecoder).decode(A)}}else C=await t.text();if(null==A?void 0:A.aborted)return;const Q=C.split(/\r?\n/);this.header=BB(Q,this.format);const o=iB(Q,this.format,{header:this.header,assembleGFF:this.assembleGFF});o.sort((A,I)=>A.chr===I.chr?A.start-I.start:A.chr.localeCompare(I.chr)),this.featureCache=new ne(o),this.allFeaturesLoaded=!0}async fetchWG(A){var I,g;if(A.aborted)return[];const t=this._cumulativeOffsets;if(!t)throw new Error("fetchWG called without cumulativeOffsets");if(this._indexed){const I=JI(Object.fromEntries(t.chromosomeNames.map(A=>{var I;return[A,null!==(I=t.offsets[A])&&void 0!==I?I:0]})));return GC(await kC(I,I=>this.fetchIndexed(I,0,Number.MAX_SAFE_INTEGER,A),A),t)}{this.allFeaturesLoaded||await this.loadAllFeatures(A);const C=null!==(g=null===(I=this.featureCache)||void 0===I?void 0:I.getAllFeatures())&&void 0!==g?g:{},e=[];for(const A of Object.values(C))e.push(...A);return GC(e,t)}}dispose(){this.tabixReader=void 0,this.featureCache=void 0,this.allFeaturesLoaded=!1}}class rB{constructor(A){this.cache=new ne(A)}setFeatures(A){this.cache=new ne(A)}setChromNameResolver(A){this._resolveChromName=A}setCumulativeOffsets(A){this._cumulativeOffsets=A}async fetch(A,I,g){if(h(A)&&this._cumulativeOffsets)return this.fetchWG();const t=this._resolveChromName?this._resolveChromName(A.chr):A.chr;return this.cache.queryFeatures(t,A.start,A.end)}fetchWG(){const A=this._cumulativeOffsets;if(!A)throw new Error("fetchWG called without cumulativeOffsets");const I=JI(Object.fromEntries(A.chromosomeNames.map(I=>{var g;return[I,null!==(g=A.offsets[I])&&void 0!==g?g:0]}))),g=[],t=this.cache.getAllFeatures();for(const C of I){const I=t[C];if(!I)continue;const e=A.offsets[C];if(void 0!==e)for(const A of I)g.push({...A,chr:"all",start:e+A.start,end:e+A.end})}return g.sort((A,I)=>A.start-I.start),g}}function nB(A,I,g,t,C){I&&0!==I.length?("proportional"===g.displayMode?function(A,I,g,t){var C,e,B,i,Q;const{bpStart:o,bpPerPixel:E,pixelWidth:s}=t,a="UP"===g.arcOrientation,r=a?g.height:0,n=function(A){var I,g;let t=0;for(const C of A){const A=null!==(g=null!==(I=C.value)&&void 0!==I?I:C.score)&&void 0!==g?g:0;isNaN(A)||(t=Math.max(t,A))}return{min:0,max:t}}(I),h=g.logScale?(g.height-1)/Math.log10(n.max+1):(g.height-1)/(n.max||1);for(const A of I)A.drawState=void 0;const c=Kt(I,o+s*E);for(let n=0;n<c;n++){const c=I[n],l=null!==(e=null!==(C=c.value)&&void 0!==C?C:c.score)&&void 0!==e?e:0;if(void 0===l||isNaN(l))continue;const d=Math.round((g.logScale?Math.log10(l+1):l)*h);if(c.chr1===c.chr2||"all"===c.chr){const I=(c.start1+c.end1)/2,t=(c.start2+c.end2)/2,C=Math.min(I,t),e=Math.max(I,t);let Q=Math.round((C-o)/E),s=Math.round((e-o)/E)-Q;s<3&&(s=3,Q--);const n=s/2,h=Q+s/2,l=a,D=null!==(B=c.color)&&void 0!==B?B:g.color;if(A.strokeStyle=D,A.lineWidth=null!==(i=c.thickness)&&void 0!==i?i:g.thickness,A.beginPath(),A.ellipse(h,r,n,d,0,0,Math.PI,l),A.stroke(),g.alpha>0){const I=g.useScore&&Number.isFinite(c.score)?Math.max(.1,Math.round(10*cB(c.score))/10):1;A.fillStyle=dB(D,I*g.alpha),A.fill()}if(g.showBlocks&&"all"!==c.chr){A.fillStyle=D;const I=(c.start1-o)/E,t=(c.end1-o)/E,C=(c.start2-o)/E,e=(c.end2-o)/E,B=a?-g.blockHeight:g.blockHeight;A.fillRect(I,r,t-I,B),A.fillRect(C,r,e-C,B)}c.drawState={type:"proportional",xc:h,yc:r,radiusX:n,radiusY:d}}else{if(s<=0)continue;const I=Math.round((c.start-o)/E);if(Math.round((c.end-o)/E)<0||I>s)continue;const C=Math.min(d,g.height-13);hB(A,c,g,t,null!==(Q=c.color)&&void 0!==Q?Q:g.color,a,C)}}}(A,I,g,t):function(A,I,g,t){var C,e;const{bpStart:B,bpPerPixel:i,pixelWidth:Q,viewportWidth:o}=t,E="UP"===g.arcOrientation,s=E?g.height:0,{sinTheta:a,cosTheta:r,theta:n}=function(A,I,g){const{bpStart:t,bpPerPixel:C,pixelWidth:e,viewportWidth:B}=g;let i=0;for(const I of A){const A=(I.start-t)/C,g=(I.end-t)/C;A>=0&&g<=e&&(i=Math.max(i,g-A))}const Q=Math.min(B,i)/2;let o=Math.PI/4;if(i>0){o=function(A){const I=[.01570925532366355,.15838444032453644,.3249196962329063,.5095254494944288,.7265425280053609,.9999999999999999],g=[.031415926535897934,.3141592653589793,.6283185307179586,.9424777960769379,1.2566370614359172,1.5707963267948966];let t=0;for(;t<I.length&&!(I[t]>A);t++);const C=0===t?0:I[t-1],e=t<I.length?I[t]:1,B=(A-C)/(e-C),i=0===t?0:g[t-1],Q=t<g.length?g[t]:Math.PI/2;return Math.min(Math.PI/2,i+B*(Q-i))}((I.height-10)/Q)}return{sinTheta:Math.sin(o),cosTheta:Math.cos(o),theta:o}}(I,g,t);A.font=g.font,A.textAlign="center";for(const A of I)A.drawState=void 0;const h=Kt(I,B+Q*i);for(let c=0;c<h;c++){const h=I[c];let l=null!==(C=h.color)&&void 0!==C?C:g.color;if(g.useScore&&Number.isFinite(h.score)&&(l=dB(l,g.transparency*cB(h.score))),A.lineWidth=null!==(e=h.thickness)&&void 0!==e?e:g.thickness,h.chr1===h.chr2||"all"===h.chr){const I=(h.start1+h.end1)/2,t=(h.start2+h.end2)/2,C=Math.min(I,t),e=Math.max(I,t);let c=Math.round((C-B)/i),d=Math.round((e-B)/i);if(d<0||c>Q)continue;let D=d-c;D<3&&(D=3,c--);const u=D/2,y=u/a,w=r*y,f=c+u;let S,k,G;if(E?(S=g.height+w,k=Math.PI+Math.PI/2-n,G=Math.PI+Math.PI/2+n):(S=-w,k=Math.PI/2-n,G=Math.PI/2+n),g.showBlocks&&"all"!==h.chr){A.fillStyle=l;const I=(h.start1-B)/i,t=(h.end1-B)/i,C=(h.start2-B)/i,e=(h.end2-B)/i,Q=E?-g.blockHeight:g.blockHeight;A.fillRect(I,s,t-I,Q),A.fillRect(C,s,e-C,Q)}!g.useScore&&D>o&&(l=dB(l,g.alpha)),A.strokeStyle=l,A.fillStyle=l,A.beginPath(),A.arc(f,S,y,k,G,!1),A.stroke(),h.drawState={type:"nested",xc:f,yc:S,r:y}}else hB(A,h,g,t,l,E)}}(A,I,g,t),C&&bt(A,C,g.height)):C&&bt(A,C,g.height)}function hB(A,I,g,t,C,e,B){const{bpStart:i,bpPerPixel:Q,pixelWidth:o}=t;let E=Math.round((I.start-i)/Q),s=Math.round((I.end-i)/Q);if(s<0||E>o)return;let a=s-E;a<3&&(a=3,E--);const r=I.chr===I.chr1?I.chr2:I.chr1,n=null!=B?B:g.height/2;if(A.fillStyle=dB(C,.5),A.font=g.font,A.textAlign="center",e){const t=g.height-n;A.fillRect(E,t,a,n),A.fillStyle=C,A.fillText(r,E+a/2,t-5),I.drawState={type:"rect",x:E,y:t,w:a,h:n}}else A.fillRect(E,0,a,n),A.fillStyle=C,A.fillText(r,E+a/2,n+13),I.drawState={type:"rect",x:E,y:0,w:a,h:n}}function cB(A){return Math.min(1,.11+A/779*.89)}const lB=new Map;function dB(A,I){const g=`${A}_${I}`;let t=lB.get(g);if(t)return t;const C=function(A){const I=A.match(/^rgba?\((\d+)\s*,\s*(\d+)\s*,\s*(\d+)/);if(I)return{r:parseInt(I[1]),g:parseInt(I[2]),b:parseInt(I[3])};const g=A.match(/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i);if(g)return{r:parseInt(g[1],16),g:parseInt(g[2],16),b:parseInt(g[3],16)};return}(A);return t=C?`rgba(${C.r},${C.g},${C.b},${I})`:A,lB.set(g,t),t}function DB(A,I,g,t){const C=(I+1).toLocaleString(),e=g.toLocaleString();return t&&"."!==t?`${A}:${C}-${e} (${t})`:`${A}:${C}-${e}`}class uB extends vt{constructor(A,I){const g=b(L(I.theme),I.config);super(A,I.locus,g,I.canvasProvider),this.type="interact",this.features=I.features,this._name=I.name}setFeatures(A){this.features=A,this.render()}computeHeight(A){return this.config.height}getBackground(){return this.config.background}renderLabelOverlay(A,I,g){this.externalUIEnabled||this._name&&bt(A,{name:this._name,background:this._config.background,labelColor:"#333"},g)}doRender(A,I,g,t){const C=g!==this._config.height?{...this._config,height:g}:this._config;nB(A,this.features,C,t,this._name&&!this.externalUIEnabled?{name:this._name,background:this._config.background,labelColor:"#333"}:void 0)}getUIOverlayState(){if(this._name)return{label:{text:this._name,background:this._config.background,color:"#333"}}}hitTest(A,I){const g=A-this.getCanvasViewportOffset(),t=[];this._config.displayMode;for(const A of this.features){if(!A.drawState)continue;const C=A.drawState;if("nested"===C.type){const e=g-C.xc,B=I-C.yc,i=Math.abs(Math.sqrt(e*e+B*B)-C.r);i<5&&t.push({score:i,feature:A})}else if("proportional"===C.type){const e=g-C.xc,B=I-C.yc,i=e/C.radiusX*(e/C.radiusX)+B/C.radiusY*(B/C.radiusY);i<=1&&t.push({score:1/i,feature:A})}else if("rect"===C.type){const e=5;if(g>=C.x-e&&g<=C.x+C.w+e&&I>=C.y&&I<=C.y+C.h){t.push({score:-Math.abs(g-(C.x+C.w/2)),feature:A});break}}}return t.length>1&&t.sort((A,I)=>A.score-I.score),t.map(A=>({feature:A.feature,popupData:this.buildPopupData(A.feature)}))}buildPopupData(A){const I=[];return I.push({name:"Region 1",value:DB(A.chr1,A.start1,A.end1,A.strand1)}),I.push({name:"Region 2",value:DB(A.chr2,A.start2,A.end2,A.strand2)}),A.name&&I.push({name:"Name",value:A.name}),void 0!==A.value&&I.push({name:"Value",value:A.value}),void 0!==A.score&&I.push({name:"Score",value:A.score}),void 0!==A.type&&I.push({name:"Type",value:A.type}),I}setTheme(A){this._config=b(A),this.render()}serializeConfig(A){const I=b(L(A));return{type:"interact",name:this._name,config:AC(this._config,I)}}getAxisInfo(){if("proportional"!==this._config.displayMode)return;const A=yB(this.features);return{label:this._name,dataRange:A,flipAxis:"DOWN"===this._config.arcOrientation,logScale:this._config.logScale}}getContextMenuItems(A,I){const g=[];return g.push({label:"Nested Arcs",type:"checkbox",checked:"nested"===this._config.displayMode,action:()=>this.setConfig({displayMode:"nested"})}),g.push({label:"Proportional Arcs",type:"checkbox",checked:"proportional"===this._config.displayMode,action:()=>this.setConfig({displayMode:"proportional"})}),g.push({label:"",type:"separator"}),g.push({label:"Toggle Arc Direction",action:()=>this.setConfig({arcOrientation:"UP"===this._config.arcOrientation?"DOWN":"UP"})}),g.push({label:this._config.showBlocks?"Hide Blocks":"Show Blocks",action:()=>this.setConfig({showBlocks:!this._config.showBlocks})}),g}getNumericState(){if("proportional"!==this._config.displayMode)return;const A=yB(this.features);return{autoscale:!0,logScale:this._config.logScale,dataRange:A,setAutoscale:()=>{},setLogScale:A=>this.setConfig({logScale:A}),setDataRange:()=>{}}}}function yB(A){var I,g;let t=0;for(const C of A){const A=null!==(g=null!==(I=C.value)&&void 0!==I?I:C.score)&&void 0!==g?g:0;isNaN(A)||(t=Math.max(t,A))}return{min:0,max:t}}class wB extends vt{constructor(A,I){const g=x(L(I.theme),I.config);super(A,I.locus,g,I.canvasProvider),this.features=[],this._featureRects=[],this._lastRc=null,this._lastHeight=0,this.type="peakOverlay",I.features&&(this.features=I.features)}setFeatures(A){this.features=A,this.render()}computeHeight(A){var I;return null!==(I=this._config.height)&&void 0!==I?I:50}getBackground(){return"transparent"}doRender(A,I,g,t){this._lastRc=t,this._lastHeight=g;const C=t.bpPerPixel*t.viewportWidth;this._config.visibilityWindow>0&&C>this._config.visibilityWindow?this._featureRects=[]:(!function(A,I,g,t,C){if(0===I.length)return;const{display:e}=g,B=e.includes("shaded"),i=e.includes("bar"),Q=e.includes("summit");if(!B&&!i&&!Q)return;const o=t.bpStart+t.pixelWidth*t.bpPerPixel;for(let e=Jt(I,t.bpStart);e<I.length;e++){const E=I[e];if(E.start>o)break;const s=(E.start-t.bpStart)/t.bpPerPixel,a=(E.end-t.bpStart)/t.bpPerPixel,r=Math.max(1,a-s);if(B&&(A.fillStyle=g.color,A.fillRect(s,0,r,C)),i&&(A.fillStyle=g.color,A.fillRect(s,C-g.barHeight,r,g.barHeight)),Q&&null!=E.peak){const I=(E.start+E.peak-t.bpStart)/t.bpPerPixel;if(I>=0&&I<=t.pixelWidth){const t=g.summitSize/2;A.fillStyle=g.summitColor,A.beginPath(),A.moveTo(I-t,C),A.lineTo(I,C-g.summitSize),A.lineTo(I+t,C),A.closePath(),A.fill()}}}}(A,this.features,this._config,t,g),this._featureRects=this.computeFeatureRects(t,g))}getFeatureRects(){const A=this.currentPixelShiftOffset;return 0===A?this._featureRects:this._featureRects.map(I=>({...I,x:I.x+A}))}computeFeatureRects(A,I){const g=[],t=A.bpStart+A.pixelWidth*A.bpPerPixel;for(let C=Jt(this.features,A.bpStart);C<this.features.length;C++){const e=this.features[C];if(e.start>t)break;const B=(e.start-this._locus.start)/A.bpPerPixel,i=(e.end-this._locus.start)/A.bpPerPixel;g.push({feature:e,x:B,y:0,width:Math.max(1,i-B),height:I,color:this._config.color})}return g}hitTest(A,I){if(!this._lastRc)return[];const g=this.viewportXToGenomicBp(A),t=[];for(let A=Jt(this.features,g);A<this.features.length;A++){const I=this.features[A];if(I.start>g)break;g<=I.end&&t.push({feature:I,popupData:fB(I)})}return t}getContextMenuItems(A,I){const g=this._config.display;return["shaded","bar","summit","none"].map(A=>({label:`Peak: ${A}`,type:"checkbox",checked:g.includes(A),action:()=>{if("none"===A)this.setConfig({display:g.includes("none")?["shaded"]:["none"]});else{const I=g.filter(I=>I!==A&&"none"!==I),t=g.includes(A)?I:[...I,A];this.setConfig({display:t.length>0?t:["none"]})}}}))}setTheme(A){this._config=x(A),this.render()}serializeConfig(A){const I=x(L(A)),g={};let t=!1;const C=this._config;return C.background!==I.background&&(g.background=C.background,t=!0),C.barHeight!==I.barHeight&&(g.barHeight=C.barHeight,t=!0),C.summitColor!==I.summitColor&&(g.summitColor=C.summitColor,t=!0),C.summitSize!==I.summitSize&&(g.summitSize=C.summitSize,t=!0),C.color!==I.color&&(g.color=C.color,t=!0),C.visibilityWindow!==I.visibilityWindow&&(g.visibilityWindow=C.visibilityWindow,t=!0),(C.display.length!==I.display.length||C.display.some((A,g)=>A!==I.display[g]))&&(g.display=C.display,t=!0),{type:"peakOverlay",config:t?g:void 0}}}function fB(A){const I=[];return A.name&&I.push({name:"Peak",value:A.name}),I.push({name:"Region",value:`${A.chr}:${A.start.toLocaleString()}-${A.end.toLocaleString()}`}),null!=A.signal&&I.push({name:"Signal",value:A.signal.toPrecision(4)}),null!=A.pValue&&I.push({name:"-log10(p)",value:A.pValue.toPrecision(4)}),null!=A.qValue&&I.push({name:"-log10(q)",value:A.qValue.toPrecision(4)}),null!=A.peak&&I.push({name:"Summit",value:(A.start+A.peak).toLocaleString()}),I}class SB extends vt{constructor(A,I,g,t){super(A,I,g,t),this._children=[],this._expanded=!1}get expanded(){return this._expanded}set expanded(A){var I;this._expanded!==A&&(this._expanded=A,null===(I=this.onExpandedChanged)||void 0===I||I.call(this,A,this))}addChild(A,I){var g;this._children.push({track:A,name:I}),null===(g=this.onChildrenChanged)||void 0===g||g.call(this,this)}removeChild(A){var I;const g=this._children.length;this._children="string"==typeof A?this._children.filter(I=>I.name!==A):this._children.filter(I=>I.track!==A),this._children.length!==g&&(null===(I=this.onChildrenChanged)||void 0===I||I.call(this,this))}reorderChildren(A,I){var g;if(A<0||A>=this._children.length)return;if(I<0||I>=this._children.length)return;const[t]=this._children.splice(A,1);this._children.splice(I,0,t),null===(g=this.onChildrenChanged)||void 0===g||g.call(this,this)}getChildren(){return this._children}serializeChildren(A){return this._children.map(({track:I,name:g})=>{const t=I.serializeConfig(A);return g?{...t,name:g}:t})}}class kB extends SB{constructor(A,I){var g;const t=H(L(I.theme),I.config);super(A,I.locus,t,null!==(g=I.canvasProvider)&&void 0!==g?g:p),this._mergedFeatures=null,this._userOverrides={},this._renderedDataRange=null,this._coordinatedDataRange=null,this._lastPropagatedHeight=-1,this.type="merged",this._children=[...I.childTracks],this._name=I.name,I.config&&(this._userOverrides={...I.config}),this.propagateSharedSettings()}get childTracks(){return this._children}setFeatures(A){var I;if(0===A.length)this._mergedFeatures=null;else{this._mergedFeatures=A[0];for(let A=0;A<this._children.length;A++){const g=this._children[A].track,t=null!==(I=this._mergedFeatures.featureArrays[A])&&void 0!==I?I:[];"setFeatures"in g&&"function"==typeof g.setFeatures&&(g.suspendRendering(),g.setFeatures(t))}}this.render()}setLocus(A){this._locus=A;for(const{track:I}of this._children)I.suspendRendering(),I.setLocus(A);this.render()}setCoordinatedDataRange(A){this._coordinatedDataRange=A}setConfig(A){Object.assign(this._userOverrides,A),super.setConfig(A),this.propagateSharedSettings()}setTheme(A){this._config=H(A,this._userOverrides);for(const{track:I}of this._children)I.setTheme(A);this.render()}computeHeight(A){return this._config.height}getBackground(){return this._config.background}renderLabelOverlay(A,I,g){this.externalUIEnabled||this._name&&bt(A,{name:this._name,background:this._config.background,labelColor:this._config.labelColor},g)}doRender(A,I,g,t){var C,e;for(const{track:A}of this._children)A.suspendRendering();if(g!==this._lastPropagatedHeight){this._lastPropagatedHeight=g;for(const{track:A}of this._children)"setConfig"in A&&"function"==typeof A.setConfig&&A.setConfig({height:g})}if(this._coordinatedDataRange){const A=this._coordinatedDataRange;this._config={...this._config,dataRange:A};for(const{track:I}of this._children){const g=null===(C=I.getNumericState)||void 0===C?void 0:C.call(I);g&&(g.setAutoscale(!1),g.setDataRange(A.min,A.max))}}else if(this._config.autoscale&&this._mergedFeatures){const A=t.bpStart+(t.pixelWidth-t.viewportWidth)/2*t.bpPerPixel,I=A+t.viewportWidth*t.bpPerPixel,g=this._mergedFeatures.getMax(A,I),C=this._mergedFeatures.getMin(A,I),B=g<0?0:g,i={min:g>0?Math.min(0,C):C,max:B};this._config={...this._config,dataRange:i};for(const{track:A}of this._children){const I=null===(e=A.getNumericState)||void 0===e?void 0:e.call(A);I&&(I.setAutoscale(!1),I.setDataRange(i.min,i.max))}}for(const{track:C}of this._children)C.renderToContext&&(A.save(),A.globalAlpha=this._config.alpha,C.renderToContext(A,I,g,{skipBackground:!0,rc:t}),A.restore());this._renderedDataRange=this.readChildRenderedRange();for(const{track:A}of this._children)A.discardPendingRender(),A.resumeRendering();this.renderLabelOverlay(A,I,g)}getUIOverlayState(){if(this._name)return{label:{text:this._name,background:this._config.background,color:this._config.labelColor}}}hitTest(A,I){const g=this.viewportXToGenomicBp(A),t=[];for(let C=0;C<this._children.length;C++){const{track:e,name:B}=this._children[C],i=e instanceof vt?e.genomicBpToViewportX(g):A,Q=e.hitTest(i,I);if(Q.length>0){const A={name:"Track",value:null!=B?B:`Track ${C+1}`,borderTop:C>0};for(const I of Q)t.push({feature:I.feature,popupData:[A,...I.popupData]})}}return t}getFeatureRects(){const A=this.currentPixelShiftOffset,I=this._children.flatMap(({track:A})=>"getFeatureRects"in A&&"function"==typeof A.getFeatureRects?A.getFeatureRects():[]);return 0===A?I:I.map(I=>({...I,x:I.x+A}))}getAxisInfo(){var A;const I=null!==(A=this._renderedDataRange)&&void 0!==A?A:this._config.dataRange;if(this._name||I)return{dataRange:I,label:this._name,flipAxis:this._config.flipAxis||void 0,logScale:this._config.logScale||void 0}}getNumericState(){if(this._children.some(({track:A})=>{var I;return null!=(null===(I=A.getNumericState)||void 0===I?void 0:I.call(A))}))return{autoscale:this._config.autoscale,logScale:this._config.logScale,dataRange:this._config.dataRange,setAutoscale:A=>{var I;if(this.setConfig({autoscale:A}),!A)for(const{track:A}of this._children){const g=null===(I=A.getNumericState)||void 0===I?void 0:I.call(A);g&&g.setAutoscale(!0)}},setLogScale:A=>{var I;this.setConfig({logScale:A});for(const{track:g}of this._children){const t=null===(I=g.getNumericState)||void 0===I?void 0:I.call(g);(null==t?void 0:t.setLogScale)&&t.setLogScale(A)}},setDataRange:(A,I)=>{var g;this.setConfig({dataRange:{min:A,max:I},autoscale:!1});for(const{track:t}of this._children){const C=null===(g=t.getNumericState)||void 0===g?void 0:g.call(t);C&&(C.setDataRange(A,I),C.setAutoscale(!1))}}}}getContextMenuItems(A,I){const g=[];return this._children.some(({track:A})=>{var I;return null!=(null===(I=A.getNumericState)||void 0===I?void 0:I.call(A))})&&g.push({label:"Flip y-axis",type:"checkbox",checked:this._config.flipAxis,action:()=>{var A;const I=!this._config.flipAxis;this.setConfig({flipAxis:I});for(const{track:g}of this._children){(null===(A=g.getNumericState)||void 0===A?void 0:A.call(g))&&"setConfig"in g&&g.setConfig({flipAxis:I})}}}),g.push({type:"separator",label:""}),g.push({label:`Transparency: ${Math.round(100*this._config.alpha)}%`,children:[.2,.3,.5,.7,.8,1].map(A=>({label:`${Math.round(100*A)}%`,type:"checkbox",checked:Math.abs(this._config.alpha-A)<.01,action:()=>this.setConfig({alpha:A})}))}),g.push({label:"Separate tracks",action:()=>{var A;null===(A=this.onConfigChanged)||void 0===A||A.call(this)}}),g}serializeConfig(A){const I=H(A),g={};let t=!1;const C=this._config;return C.height!==I.height&&(g.height=C.height,t=!0),C.alpha!==I.alpha&&(g.alpha=C.alpha,t=!0),C.autoscale!==I.autoscale&&(g.autoscale=C.autoscale,t=!0),!C.autoscale&&C.dataRange&&(g.dataRange=C.dataRange,t=!0),C.flipAxis!==I.flipAxis&&(g.flipAxis=C.flipAxis,t=!0),C.logScale!==I.logScale&&(g.logScale=C.logScale,t=!0),C.background!==I.background&&(g.background=C.background,t=!0),{type:"merged",tracks:this.serializeChildren(A),config:t?g:void 0}}propagateSharedSettings(){var A;for(const{track:I}of this._children){(null===(A=I.getNumericState)||void 0===A?void 0:A.call(I))&&"setConfig"in I&&I.setConfig({flipAxis:this._config.flipAxis,logScale:this._config.logScale})}}readChildRenderedRange(){var A;let I=1/0,g=-1/0,t=!1;for(const{track:C}of this._children){const e=null===(A=C.getAxisInfo)||void 0===A?void 0:A.call(C);(null==e?void 0:e.dataRange)&&(I=Math.min(I,e.dataRange.min),g=Math.max(g,e.dataRange.max),t=!0)}return t?{min:I,max:g}:null}}class GB{constructor(A,I){this.featureArrays=A,this.trackNames=I}getMax(A,I){let g=-Number.MAX_VALUE;for(const t of this.featureArrays)for(const C of t){const t=C;if(void 0!==t.value&&!Number.isNaN(t.value)&&!(t.end<A)){if(t.start>I)break;g=Math.max(g,t.value)}}return g!==-Number.MAX_VALUE?g:100}getMin(A,I){let g=0;for(const t of this.featureArrays)for(const C of t){const t=C;if(void 0!==t.value&&!Number.isNaN(t.value)&&!(t.end<A)){if(t.start>I)break;g=Math.min(g,t.value)}}return g}}class FB{constructor(A,I){this.childSources=A,this.trackNames=I}async fetch(A,I,g){const t=await Promise.allSettled(this.childSources.map(t=>t.fetch(A,I,g)));if(t.every(A=>{var I;return"rejected"===A.status&&("AbortError"===(null===(I=A.reason)||void 0===I?void 0:I.name)||`${A.reason}`.includes("abort"))})&&t.length>0){throw t.find(A=>"rejected"===A.status).reason}const C=t.map((A,I)=>{var g,t,C;return"fulfilled"===A.status?A.value:(P.warn(`MergedDataSource child "${null!==(g=this.trackNames[I])&&void 0!==g?g:I}" failed, using empty features:`,null!==(C=null===(t=A.reason)||void 0===t?void 0:t.message)&&void 0!==C?C:A.reason),[])});return[new GB(C,this.trackNames)]}dispose(){var A;for(const I of this.childSources)null===(A=I.dispose)||void 0===A||A.call(I)}}function NB(A,I){return(A.start-I.bpStart)/I.bpPerPixel}function mB(A,I){return Math.max(1,(A.end-A.start)/I.bpPerPixel)}function RB(A,I,g){const{min:t,max:C}=I.dataRange,e=C-t||1;return(I.flipAxis?(A-t)/e:1-(A-t)/e)*g}function pB(A,I){const g=A.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);if(g)return`rgba(${g[1]}, ${g[2]}, ${g[3]}, ${I})`;if(A.match(/^#([0-9a-f]{3}){1,2}$/i)){const g=A.slice(1),t=3===g.length?g.split("").map(A=>A+A).join(""):g;return`rgba(${parseInt(t.slice(0,2),16)}, ${parseInt(t.slice(2,4),16)}, ${parseInt(t.slice(4,6),16)}, ${I})`}return A}function UB(A,I,g,t,C,e,B){if(0===I.length)return;const i=pB(C.bandColor,C.bandAlpha);A.fillStyle=i,A.beginPath();for(let g=0;g<I.length;g++){const i=I[g],Q=NB(i,B),o=RB(t(i),C,e);0===g?A.moveTo(Q,o):A.lineTo(Q,o),A.lineTo(Q+mB(i,B),o)}for(let t=I.length-1;t>=0;t--){const i=I[t],Q=NB(i,B)+mB(i,B),o=RB(g(i),C,e);A.lineTo(Q,o),A.lineTo(NB(i,B),o)}A.closePath(),A.fill()}function MB(A,I,g,t,C,e,B,i){if(0!==I.length){A.strokeStyle=t,A.lineWidth=C,A.beginPath();for(let t=0;t<I.length;t++){const C=I[t],Q=NB(C,i)+mB(C,i)/2,o=RB(g(C),e,B);0===t?A.moveTo(Q,o):A.lineTo(Q,o)}A.stroke()}}function LB(A,I,g,t,C){UB(A,I,A=>A.min,A=>A.max,g,t,C)}function JB(A,I,g,t,C){UB(A,I,A=>A.mean-A.stdDev,A=>A.mean+A.stdDev,g,t,C),MB(A,I,A=>A.mean,g.lineColor,1.5,g,t,C)}function KB(A,I,g,t,C){UB(A,I,A=>A.mean-A.stdErr,A=>A.mean+A.stdErr,g,t,C),MB(A,I,A=>A.mean,g.lineColor,1.5,g,t,C)}function YB(A,I,g,t,C){UB(A,I,A=>A.q1,A=>A.q3,g,t,C),MB(A,I,A=>A.median,g.lineColor,1.5,g,t,C)}function vB(A,I,g,t,C){const e=Math.max(.1,g.bandAlpha);for(const B of I){if(!B||0===B.length)continue;A.strokeStyle=pB(g.lineColor,e),A.lineWidth=1,A.beginPath();let I=!0;for(const e of B){const B=NB(e,C)+mB(e,C)/2,i=RB(e.value,g,t);I?(A.moveTo(B,i),I=!1):A.lineTo(B,i)}A.stroke()}}class bB{constructor(A,I){this.count=0,this.mean=0,this.m2=0,this.min=1/0,this.max=-1/0,this.values=[],this._sortedValues=null,this.bin=A,this.chr=I}add(A){this.count++;const I=A-this.mean;this.mean+=I/this.count;const g=A-this.mean;this.m2+=I*g,A<this.min&&(this.min=A),A>this.max&&(this.max=A),this.values.push(A),this._sortedValues=null}get variance(){return this.count<2?0:this.m2/(this.count-1)}get stdDev(){return Math.sqrt(this.variance)}get stdErr(){return this.count>0?this.stdDev/Math.sqrt(this.count):0}get median(){return this._percentile(.5)}get q1(){return this._percentile(.25)}get q3(){return this._percentile(.75)}_percentile(A){const I=this._getSortedValues();if(0===I.length)return 0;const g=A*(I.length-1),t=Math.floor(g),C=Math.ceil(g);return t===C?I[t]:I[t]*(C-g)+I[C]*(g-t)}_getSortedValues(){return this._sortedValues||(this._sortedValues=[...this.values].sort((A,I)=>A-I)),this._sortedValues}toFeature(A,I){const g=I+this.bin*A,t=g+A;return{chr:this.chr,start:g,end:t,value:this.mean,mean:this.mean,stdDev:this.stdDev,stdErr:this.stdErr,median:this.median,q1:this.q1,q3:this.q3,min:this.min===1/0?0:this.min,max:this.max===-1/0?0:this.max,n:this.count}}}function xB(A,I,g){if(0===A.length)return[];const t=Math.max(g,1),C=new Map;for(const g of A){if(!g||0===g.length)continue;const A=g[0].chr;for(const e of g){if(Number.isNaN(e.value))continue;const g=Math.floor((e.start-I)/t),B=Math.max(g,Math.ceil((e.end-I)/t)-1);for(let I=g;I<=B;I++){let g=C.get(I);g||(g=new bB(I,A),C.set(I,g)),g.add(e.value)}}}return[...C.values()].sort((A,I)=>A.bin-I.bin).map(A=>A.toFeature(t,I))}function HB(A,I,g){return"none"===g.mode?A:A.map(A=>function(A,I,g){if(0===A.length)return A;const t=A.filter(A=>A.end>=I.start&&A.start<=I.end&&Number.isFinite(A.value)).map(A=>A.value);if(0===t.length)return A;const C=function(A,I){switch(I.mode){case"max":return qB(TB(function(A){let I=0;for(const g of A){const A=Math.abs(g);A>I&&(I=A)}return I}(A)));case"zscore":{const I=A.reduce((A,I)=>A+I,0)/A.length,g=A.length>1?A.reduce((A,g)=>A+(g-I)**2,0)/(A.length-1):0,t=Math.sqrt(Math.max(g,0));return 0===t?A=>A-I:A=>(A-I)/t}case"robustZscore":{const g=WB(A,.5),t=WB(A,_B(I.centerPercentileLow)),C=WB(A,_B(I.centerPercentileHigh))-t;return 0===C?A=>A-g:A=>(A-g)/C}case"percentile":{const g=A.map(A=>Math.abs(A)),t=WB(g,_B(I.percentile)),C=function(A){let I=-1/0;for(const g of A)g>I&&(I=g);return I}(g);return qB(TB(t||C))}case"none":return A=>A}}(t,g);return A.map(A=>({...A,value:C(A.value)}))}(A,I,g))}function qB(A){return 0===A?A=>A:I=>I/A}function TB(A){return Number.isFinite(A)&&0!==A?A:1}function _B(A){return Math.min(100,Math.max(0,A))/100}function WB(A,I){if(0===A.length)return 0;const g=[...A].sort((A,I)=>A-I),t=I*(g.length-1),C=Math.floor(t),e=Math.ceil(t);return C===e?g[C]:g[C]*(e-t)+g[e]*(t-C)}class PB extends SB{constructor(A,I){var g;const t=q(L(I.theme),I.config);super(A,I.locus,t,null!==(g=I.canvasProvider)&&void 0!==g?g:p),this._aggregated=[],this._rawArrays=[],this._userOverrides={},this._renderedDataRange=null,this.type="wigGroup",this._children=[...I.childTracks],this._name=I.name,I.config&&(this._userOverrides={...I.config})}get childTracks(){return this._children}setFeatures(A){if(0===A.length)return;const I=A[0];this._aggregated=I.aggregated,this._rawArrays=I.rawArrays;for(let A=0;A<this._children.length&&A<I.rawArrays.length;A++){const g=this._children[A].track;"function"==typeof g.setFeatures&&g.setFeatures(I.rawArrays[A])}this.render()}setConfig(A){Object.assign(this._userOverrides,A),super.setConfig(A)}setTheme(A){this._config=q(A,this._userOverrides),this.render()}computeHeight(A){return this._config.height}getBackground(){return this._config.background}renderLabelOverlay(A,I,g){this.externalUIEnabled||this._name&&bt(A,{name:this._name,background:this._config.background,labelColor:this._config.labelColor},g)}doRender(A,I,g,t){var C;const e=(I-t.viewportWidth)/2,B=e+t.viewportWidth;this.externalUIEnabled||(this._name&&(A.save(),A.translate(e,0),bt(A,{name:this._name,background:this._config.background,labelColor:this._config.labelColor},g),A.restore()),this._drawBadge(A,g,B));const i=this._buildSummaryData(t);if(0!==i.features.length){if(this._config.autoscale&&i.features.length>0){const A=t.bpStart+(t.pixelWidth-t.viewportWidth)/2*t.bpPerPixel,I=A+t.viewportWidth*t.bpPerPixel,g=i.features.filter(g=>g.end>=A&&g.start<=I);if(g.length>0){let A=1/0,I=-1/0;const t=this._config.activeModes;for(const C of g)t.includes("minMax")&&(A=Math.min(A,C.min),I=Math.max(I,C.max)),t.includes("meanSd")&&(A=Math.min(A,C.mean-C.stdDev),I=Math.max(I,C.mean+C.stdDev)),t.includes("meanSe")&&(A=Math.min(A,C.mean-C.stdErr),I=Math.max(I,C.mean+C.stdErr)),t.includes("medianIqr")&&(A=Math.min(A,C.q1),I=Math.max(I,C.q3)),t.includes("overlay")&&(A=Math.min(A,C.min),I=Math.max(I,C.max));I>0&&(A=Math.min(0,A)),I<0&&(I=0),this._renderedDataRange={min:isFinite(A)?A:0,max:isFinite(I)?I:100}}else this._renderedDataRange=null}else this._renderedDataRange=null;!function(A,I,g,t){const{features:C,rawArrays:e,config:B,rc:i,numTracks:Q,modes:o}=t,E=["minMax","overlay","medianIqr","meanSe","meanSd"].filter(A=>o.includes(A));for(const I of E)switch(I){case"minMax":LB(A,C,B,g,i);break;case"meanSd":JB(A,C,B,g,i);break;case"meanSe":KB(A,C,B,g,i);break;case"medianIqr":YB(A,C,B,g,i);break;case"overlay":vB(A,e,B,g,i)}}(A,0,g,{features:i.features,rawArrays:i.rawArrays,config:{...this._config,dataRange:null!==(C=this._renderedDataRange)&&void 0!==C?C:this._config.dataRange},rc:t,numTracks:this._children.length,modes:this._config.activeModes}),this.externalUIEnabled||(this._name&&(A.save(),A.translate(e,0),bt(A,{name:this._name,background:this._config.background,labelColor:this._config.labelColor},g),A.restore()),this._drawBadge(A,g,B))}else this._renderedDataRange=null}_drawBadge(A,I,g){const t=`[${this._children.length}]`,C="bold 10px sans-serif";A.font=C;const e=A.measureText(t).width+8,B=g-4-e,i=(I-16)/2;A.fillStyle=this._config.badgeBackground,A.beginPath(),A.roundRect(B,i,e,16,3),A.fill(),A.fillStyle=this._config.badgeColor,A.font=C,A.textAlign="left",A.textBaseline="middle",A.fillText(t,B+4,i+8+1)}_getBadgeRect(A,I){const g=this._canvas.getContext("2d"),t=`[${this._children.length}]`;if(!g){const g=7*t.length+8,C=16;return{x:A-4-g,y:(I-C)/2,w:g,h:C}}g.font="bold 10px sans-serif";const C=g.measureText(t).width+8;return{x:A-4-C,y:(I-16)/2,w:C,h:16}}onCanvasClick(A,I){const g=this._getBadgeRect(this.viewportWidth,this.height);return A>=g.x&&A<=g.x+g.w&&I>=g.y&&I<=g.y+g.h&&(this.expanded=!this._expanded,!0)}getUIOverlayState(){const A={badge:{id:"badge",text:`[${this._children.length}]`,background:this._config.badgeBackground,color:this._config.badgeColor}};return this._name&&(A.label={text:this._name,background:this._config.background,color:this._config.labelColor}),A}onUIOverlayClick(A){return"badge"===A&&(this.expanded=!this._expanded,!0)}getAxisInfo(){var A;const I=null!==(A=this._renderedDataRange)&&void 0!==A?A:this._config.dataRange;if(this._name||I)return{dataRange:I,label:this._name,flipAxis:this._config.flipAxis||void 0,logScale:this._config.logScale||void 0}}getNumericState(){return{autoscale:this._config.autoscale,logScale:this._config.logScale,dataRange:this._config.dataRange,setAutoscale:A=>this.setConfig({autoscale:A}),setLogScale:A=>this.setConfig({logScale:A}),setDataRange:(A,I)=>this.setConfig({dataRange:{min:A,max:I},autoscale:!1})}}hitTest(A,I){const g=this._buildSummaryDataForCurrentViewport();if(0===g.features.length)return[];const t=this._genomicPosForHitTest(A);for(let A=Jt(g.features,t);A<g.features.length;A++){const I=g.features[A];if(I.start>t)break;if(t<I.end)return[{feature:I,popupData:this._buildPopupData(I,t,g.rawArrays)}]}return[]}getContextMenuItems(A,I){const g=[];g.push({label:this._expanded?"Collapse":"Expand",action:()=>{this.expanded=!this._expanded}}),g.push({type:"separator",label:""});g.push({label:"Aggregation modes",children:[["meanSd","Mean ± SD"],["meanSe","Mean ± SE"],["medianIqr","Median ± IQR"],["minMax","Min/Max envelope"],["overlay","Overlay (individual lines)"]].map(([A,I])=>({label:I,type:"checkbox",checked:this._config.activeModes.includes(A),action:()=>{const I=this._config.activeModes,g=I.includes(A)?I.filter(I=>I!==A):[...I,A];g.length>0&&this.setConfig({activeModes:g})}}))}),g.push({type:"separator",label:""});const t=[["none","None"],["max","Max to 1"],["zscore","Z-score"],["robustZscore","Robust Z-score"],["percentile","Percentile scale"]].map(([A,I])=>({label:I,type:"checkbox",checked:this._config.normalizationMode===A,action:()=>this.setConfig({normalizationMode:A})}));return"percentile"===this._config.normalizationMode&&(t.push({type:"separator",label:""}),t.push({label:`Percentile: ${this._config.normalizationPercentile}th`,disabled:!0})),g.push({label:"Normalization",children:t}),g.push({type:"separator",label:""}),g.push({label:"Autoscale",type:"checkbox",checked:this._config.autoscale,action:()=>this.setConfig({autoscale:!this._config.autoscale})}),g.push({label:"Flip y-axis",type:"checkbox",checked:this._config.flipAxis,action:()=>this.setConfig({flipAxis:!this._config.flipAxis})}),g.push({type:"separator",label:""}),g.push({label:"Ungroup",action:()=>{var A;null===(A=this.onConfigChanged)||void 0===A||A.call(this)}}),g}serializeConfig(A){const I=q(A),g=this._config,t={};let C=!1;for(const A of["height","lineColor","bandColor","bandAlpha","badgeBackground","badgeColor","autoscale","flipAxis","logScale","normalizationMode","normalizationPercentile","normalizationCenterPercentileLow","normalizationCenterPercentileHigh","labelColor","labelFont","showDataRange","background"])g[A]!==I[A]&&(t[A]=g[A],C=!0);return JSON.stringify(g.activeModes)!==JSON.stringify(I.activeModes)&&(t.activeModes=g.activeModes,C=!0),g.autoscale||g.dataRange.min===I.dataRange.min&&g.dataRange.max===I.dataRange.max||(t.dataRange=g.dataRange,C=!0),{type:"wigGroup",tracks:this.serializeChildren(A),config:C?t:void 0,expanded:this._expanded||void 0}}_buildSummaryData(A){if(0===this._rawArrays.length)return{features:this._aggregated,rawArrays:[]};if(this._canReusePrecomputedAggregation(A.bpStart,A.bpPerPixel))return{features:this._aggregated,rawArrays:this._rawArrays};const I=this._applyChildValueScaling(this._rawArrays),g=this._normalizeSummaryRawArrays(I,{chr:this._locus.chr,start:A.bpStart+(A.pixelWidth-A.viewportWidth)/2*A.bpPerPixel,end:A.bpStart+(A.pixelWidth+A.viewportWidth)/2*A.bpPerPixel});return{features:xB(g,A.bpStart,A.bpPerPixel),rawArrays:g}}_buildSummaryDataForCurrentViewport(){if(0===this._rawArrays.length)return{features:this._aggregated,rawArrays:[]};const A=this.viewportWidth;if(A>0&&!this.needsRepaint(this._locus))return this._buildSummaryData({pixelWidth:A*this.overscanMultiplier,bpStart:this._renderBpStart,bpPerPixel:this._renderBpPerPixel,viewportWidth:A});const I=this.viewportWidth;if(I<=0)return{features:this._aggregated,rawArrays:[]};const g=(this._locus.end-this._locus.start)/I;if(this._canReusePrecomputedAggregation(this._locus.start,g))return{features:this._aggregated,rawArrays:this._rawArrays};const t=this._applyChildValueScaling(this._rawArrays),C=this._normalizeSummaryRawArrays(t,this._locus);return{features:xB(C,this._locus.start,g),rawArrays:C}}_canReusePrecomputedAggregation(A,I){if("none"!==this._config.normalizationMode)return!1;if(this._hasChildValueScaling())return!1;if(0===this._aggregated.length)return!0;const g=this._aggregated[0];return g.start===A&&g.end-g.start===I}_hasChildValueScaling(){return this._children.some(({track:A})=>{var I,g;const t=A.config;return 1!==(null!==(I=null==t?void 0:t.normalizationFactor)&&void 0!==I?I:1)||1!==(null!==(g=null==t?void 0:t.scaleFactor)&&void 0!==g?g:1)})}_normalizeSummaryRawArrays(A,I){return HB(A,I,{mode:this._config.normalizationMode,percentile:this._config.normalizationPercentile,centerPercentileLow:this._config.normalizationCenterPercentileLow,centerPercentileHigh:this._config.normalizationCenterPercentileHigh})}_applyChildValueScaling(A){return A.map((A,I)=>{var g,t,C,e,B;const i=null===(g=this._children[I])||void 0===g?void 0:g.track,Q=(null!==(C=null===(t=null==i?void 0:i.config)||void 0===t?void 0:t.normalizationFactor)&&void 0!==C?C:1)*(null!==(B=null===(e=null==i?void 0:i.config)||void 0===e?void 0:e.scaleFactor)&&void 0!==B?B:1);return 1===Q?A:A.map(A=>({...A,value:A.value*Q}))})}_buildPopupData(A,I,g){var t,C;const e=null!==(t=this._renderedDataRange)&&void 0!==t?t:this._config.dataRange,B=[],i=[{name:"Track",value:null!==(C=this._name)&&void 0!==C?C:"Wig group"},{name:"Display",value:this._describeDisplayScale()},{name:"Bin",value:`${A.chr}:${Math.floor(A.start).toLocaleString()}-${Math.ceil(A.end).toLocaleString()}`},{name:"Stats",value:`mu ${OB(A.mean)} med ${OB(A.median)} n ${A.n}`,monospace:!0},{name:"Summary",value:"",content:ZB(A,e.min,e.max,this._children.map((A,t)=>{var C,e,i;const Q=function(A,I){for(let g=Jt(A,I);g<A.length;g++){const t=A[g];if(t.start>I)break;if(I<t.end)return t}return}(null!==(C=g[t])&&void 0!==C?C:[],I);if(!Q)return null;const o=zB[t%zB.length];return B.push({label:null!==(e=A.name)&&void 0!==e?e:`Track ${t+1}`,color:o}),{label:null!==(i=A.name)&&void 0!==i?i:`Track ${t+1}`,value:Q.value,color:o}}).filter(A=>null!=A))},{name:"Guide",value:"",content:A=>{const I=A.createElement("div");I.className="legend-list";const g=(g,t)=>{const C=A.createElement("div");C.className="legend-row";const e=A.createElement("span");e.className="legend-label";const B=A.createElement("span");B.className="legend-swatch",B.style.background=t,e.appendChild(B),e.appendChild(A.createTextNode(g)),C.appendChild(e),I.appendChild(C)};return g("IQR band","#60a5fa"),g("Median line / mean marker",jB),I}}];var Q,o;return i.push({name:"Legend",value:"",content:(Q=B,o=this._describeLegendNote(),A=>{const I=A.createElement("div"),g=A.createElement("div");g.className="legend-list";for(const I of Q){const t=A.createElement("div");t.className="legend-row";const C=A.createElement("span");C.className="legend-label";const e=A.createElement("span");e.className="legend-swatch",e.style.background=I.color,C.appendChild(e),C.appendChild(A.createTextNode(I.label)),t.appendChild(C),g.appendChild(t)}const t=A.createElement("div");return t.className="popup-note",t.textContent=o,I.appendChild(g),I.appendChild(t),I})}),i}_describeDisplayScale(){switch(this._config.normalizationMode){case"none":return"Original values";case"max":return"Displayed after Max-to-1 normalization";case"zscore":return"Displayed after Z-score normalization";case"robustZscore":return"Displayed after Robust Z-score normalization";case"percentile":return`Displayed after Percentile normalization (${this._config.normalizationPercentile}th)`}}_describeLegendNote(){return"none"===this._config.normalizationMode?"Hover a dot in the summary bar to see that track value.":"Hover a dot in the summary bar to see the grouped value after normalization."}_genomicPosForHitTest(A){const I=this.viewportXToGenomicBp(A);if(0!==I)return I;const g=this.viewportWidth;if(g<=0)return this._locus.start;const t=(this._locus.end-this._locus.start)/g;return this._locus.start+A*t}}function OB(A){return Number.isInteger(A)?A:Number(A.toPrecision(6))}function VB(A){const I=OB(A);return String(I)}function ZB(A,I,g,t){return C=>{const e=220,B=16,i=XB(A.min,I,g,e),Q=XB(A.q1,I,g,e),o=XB(A.median,I,g,e),E=XB(A.q3,I,g,e),s=XB(A.max,I,g,e),a=XB(A.mean,I,g,e),r=I<0&&g>0?XB(0,I,g,e):null,n="http://www.w3.org/2000/svg",h=C.createElementNS(n,"svg");h.setAttribute("width",String(e)),h.setAttribute("height",String(46)),h.setAttribute("viewBox","0 0 220 46"),h.setAttribute("aria-label","summary distribution"),h.style.color=jB;const c=(A,I)=>{const g=C.createElementNS(n,A);for(const[A,t]of Object.entries(I))g.setAttribute(A,t);return h.appendChild(g),g};c("rect",{x:"8",y:String(14),width:String(204),height:"4",rx:"2",fill:"#d7dde5"}),null!=r&&c("line",{x1:String(r),y1:"6",x2:String(r),y2:String(28),stroke:"#e2e8f0","stroke-dasharray":"2 2"}),c("line",{x1:String(i),y1:String(B),x2:String(s),y2:String(B),stroke:"#cbd5e1","stroke-width":"2"}),c("rect",{x:String(Math.min(Q,E)),y:String(11),width:String(Math.max(2,Math.abs(E-Q))),height:"10",rx:"5",fill:"#60a5fa"}),c("line",{x1:String(o),y1:String(8),x2:String(o),y2:String(24),stroke:"currentColor","stroke-width":"2"}),c("circle",{cx:String(a),cy:String(B),r:"4",fill:"currentColor",stroke:"#2563eb","stroke-width":"2"});for(const A of t){const t=XB(A.value,I,g,e),i=c("circle",{cx:String(t),cy:String(B),r:"3.5",fill:A.color}),Q=C.createElementNS(n,"title");Q.textContent=`${A.label}: ${VB(A.value)}`,i.appendChild(Q)}for(const[I,g]of[[i,A.min],[s,A.max]]){c("text",{x:String(I),y:String(42),"text-anchor":"middle","font-size":"10",fill:"currentColor"}).textContent=VB(g)}return h}}function XB(A,I,g,t,C=8){const e=t-C-8,B=g-I;if(!Number.isFinite(B)||0===B)return C;const i=(A-I)/B;return C+Math.max(0,Math.min(e,i*e))}const zB=["#2563eb","#dc2626","#16a34a","#ca8a04","#7c3aed","#0891b2"],jB="var(--loom-popup-color, var(--loom-text-color, #fff))";class $B{constructor(A,I){this.aggregated=A,this.rawArrays=I}}class Ai{constructor(A,I=[]){this._cachedRaw=[],this._cachedStartBP=0,this._cachedBpPerPixel=0,this.childSources=A,this.trackNames=I}async fetch(A,I,g){const t=await Promise.allSettled(this.childSources.map(t=>t.fetch(A,I,g)));if(t.every(A=>{var I;return"rejected"===A.status&&("AbortError"===(null===(I=A.reason)||void 0===I?void 0:I.name)||`${A.reason}`.includes("abort"))})&&t.length>0){throw t.find(A=>"rejected"===A.status).reason}const C=t.map((A,I)=>{var g,t,C;return"fulfilled"===A.status?A.value:(P.warn(`WigGroupDataSource child "${null!==(g=this.trackNames[I])&&void 0!==g?g:I}" failed:`,null!==(C=null===(t=A.reason)||void 0===t?void 0:t.message)&&void 0!==C?C:A.reason),[])});this._cachedRaw=C,this._cachedStartBP=A.start,this._cachedBpPerPixel=I;const e=xB(C,A.start,I);return[new $B(e,C)]}reaggregate(){if(0===this._cachedRaw.length)return null;const A=xB(this._cachedRaw,this._cachedStartBP,this._cachedBpPerPixel);return new $B(A,this._cachedRaw)}get cachedRaw(){return this._cachedRaw}dispose(){var A;for(const I of this.childSources)null===(A=I.dispose)||void 0===A||A.call(I)}}function Ii(A){const I=A.match(/(\d+)\s*,\s*(\d+)\s*,\s*(\d+)/);if(I)return[parseInt(I[1]),parseInt(I[2]),parseInt(I[3])];const g=A.match(/^#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})/);return g?[parseInt(g[1],16),parseInt(g[2],16),parseInt(g[3],16)]:[128,128,128]}function gi(A,I,g,t,C){if("c"===A.type)return I.centromereColor;if("p"===A.type){const I=C.get(A.stain);if(I)return I;const Q=(e=g,B=t,i=A.stain/100,`rgb(${Math.round(e[0]+(B[0]-e[0])*i)},${Math.round(e[1]+(B[1]-e[1])*i)},${Math.round(e[2]+(B[2]-e[2])*i)})`);return C.set(A.stain,Q),Q}var e,B,i;return I.bandLightColor}function ti(A,I,g,t,C,e){e=Math.min(e,t/2,C/2),A.beginPath(),A.moveTo(I+e,g),A.lineTo(I+t-e,g),A.arcTo(I+t,g,I+t,g+e,e),A.lineTo(I+t,g+C-e),A.arcTo(I+t,g+C,I+t-e,g+C,e),A.lineTo(I+e,g+C),A.arcTo(I,g+C,I,g+C-e,e),A.lineTo(I,g+e),A.arcTo(I,g,I+e,g,e),A.closePath()}function Ci(A,I,g,t,C,e,B,i){const Q=t-g;let o,E=C-4-2;for(;E>4&&(A.font=`${E}px ${e.font.replace(/^\d+px\s*/,"")}`,!(A.measureText(I.name).width<=Q));)E-=1;if(E<=4)return;if(A.save(),A.beginPath(),A.rect(g,2,Q,C-4),A.clip(),"p"===I.type){const A=I.stain/100;o=[Math.round(B[0]+(i[0]-B[0])*A),Math.round(B[1]+(i[1]-B[1])*A),Math.round(B[2]+(i[2]-B[2])*A)]}else o=B;const s=(a=o[0],r=o[1],n=o[2],.2126*a+.7152*r+.0722*n);var a,r,n;A.fillStyle=s<128?e.altLabelColor:e.labelColor,A.textAlign="center",A.textBaseline="middle",A.fillText(I.name,g+Q/2,C/2+1),A.restore()}class ei extends vt{constructor(A,I={}){var g,t;const C=T(L(I.theme),I.config);super(A,I.locus,C,I.canvasProvider),this.type="ideogram",this._cytobands=[],this._chrLength=0,this._cytobands=null!==(g=I.cytobands)&&void 0!==g?g:[],this._chrLength=null!==(t=I.chrLength)&&void 0!==t?t:0}setCytobands(A,I){this._cytobands=A,this._chrLength=I,this.render()}get cytobands(){return this._cytobands}computeHeight(A){return this._config.height}getBackground(){return this._config.background}doRender(A,I,g,t){0!==this._cytobands.length&&0!==this._chrLength&&(function(A,I,g,t,C){const{pixelWidth:e}=t,B=g.height;if(0===I.length||e<=0||B<=0)return;const i=e/Math.max(C,I[I.length-1].end),Q=.5,o=(B-1)/2,E=Ii(g.bandLightColor),s=Ii(g.bandDarkColor),a=new Map;A.save(),ti(A,Q,Q,e-1,B-1,o),A.clip();const r=B/2;for(const t of I){const I=i*t.start,C=i*t.end;"c"===t.type?(A.fillStyle=g.centromereColor,A.strokeStyle=g.centromereColor,A.beginPath(),"p"===t.name.charAt(0)?(A.moveTo(I,B),A.lineTo(I,0),A.lineTo(C,r)):(A.moveTo(C,B),A.lineTo(C,0),A.lineTo(I,r)),A.closePath(),A.fill()):(A.fillStyle=gi(t,g,E,s,a),A.fillRect(I,1,C-I,B-2),g.showBandNames&&Ci(A,t,I,C,B,g,E,s))}A.restore(),A.strokeStyle=g.borderColor,A.lineWidth=1,ti(A,Q,Q,e-1,B-1,o),A.stroke()}(A,this._cytobands,this._config,t,this._chrLength),function(A,I,g,t){const{pixelWidth:C,bpStart:e,bpPerPixel:B,viewportWidth:i}=g,Q=I.height,o=Math.round(B*i);if(o>t)return;const E=o/t,s=e/t;let a=Math.floor(s*C),r=Math.floor(E*C);const n=Math.max(r,1);a=Math.max(0,a),a=Math.min(C-n,a),A.save(),A.strokeStyle=I.viewportIndicatorColor,A.lineWidth=r<3?1:2;const h=a+A.lineWidth/2,c=Math.max(1,r-A.lineWidth),l=A.lineWidth/2,d=Q-A.lineWidth;A.strokeRect(h,l,c,d),A.restore()}(A,this._config,t,this._chrLength))}setTheme(A){this._config=T(A),this.render()}serializeConfig(A){const I=T(A);return{type:"ideogram",config:AC(this.config,I)}}hitTest(A,I){if(0===this._cytobands.length||0===this._chrLength)return[];const g=this.viewportWidth;if(0===g)return[];const t=g/Math.max(this._chrLength,this._cytobands[this._cytobands.length-1].end),C=A-this.currentPixelShiftOffset;for(const A of this._cytobands){const I=t*A.start,g=t*A.end;if(C>=I&&C<=g){const I=[{name:"Band",value:A.name},{name:"Position",value:`${A.start.toLocaleString()} - ${A.end.toLocaleString()}`},{name:"Stain",value:"c"===A.type?"centromere":"p"===A.type?`gpos${A.stain}`:"gneg"}];return[{feature:A,popupData:I}]}}return[]}genomicPositionAtPixel(A){if(0===this._cytobands.length||0===this._chrLength)return;const I=this.viewportWidth;if(0===I)return;return A/I*Math.max(this._chrLength,this._cytobands[this._cytobands.length-1].end)}}function Bi(A){var I,g,t,C;null===(g=(I=A.track).dispose)||void 0===g||g.call(I),null===(C=null===(t=A.dataSource)||void 0===t?void 0:t.dispose)||void 0===C||C.call(t)}function ii(A,I){const g=[];try{for(const t of null!=A?A:[])g.push(ci(t,I.locus,{canvasProvider:I.canvasProvider,theme:I.theme,sequenceProvider:I.sequenceProvider}));return g}catch(A){for(const A of g)Bi(A);throw A}}function Qi(A,I){try{return I()}catch(I){for(const I of A)Bi(I);throw I}}const oi=new Map,Ei=new Map;function si(A,I){oi.set(A,I)}function ai(A,I){Ei.set(A,I)}function ri(A){return oi.get(function(A){var I;return null!==(I=Ei.get(A))&&void 0!==I?I:A}(A))}function ni(){const A=new Set(oi.keys());for(const I of Ei.keys())A.add(I);return A}function hi(A){switch(A.type){case"bigwig":return new FC(A.url,A.windowFunction);case"gtx":return new zC(A.url,A.experimentId,A.windowFunction);case"ucsc":return new te({genome:A.genome,track:A.track});case"text":return new aB({url:A.url,format:A.format,indexURL:A.indexURL,indexed:A.indexed});case"memory":return new rB([]);default:return hi(Lt(A))}}function ci(A,I,g={}){var t;const C=ri(A.type);if(!C)throw new Error(`Unknown track type: "${A.type}". Known types: ${[...ni()].join(", ")}`);return C(A,{locus:I,canvasProvider:null!==(t=g.canvasProvider)&&void 0!==t?t:p,theme:g.theme,sequenceProvider:g.sequenceProvider})}si("wig",function(A,I){const g=A,{canvas:t}=I.canvasProvider.createCanvas(0,0),C=new IC(t,{locus:I.locus,features:[],config:g.config,theme:I.theme,canvasProvider:I.canvasProvider,name:g.name,sequenceProvider:I.sequenceProvider});let e=null,B=null;if(g.dataSource&&(B=g.dataSource,e=hi(g.dataSource)),g.annotation){const A=g.annotation,{canvas:t}=I.canvasProvider.createCanvas(0,0),B=new wB(t,{locus:I.locus,config:{display:A.display,color:A.color},theme:I.theme,canvasProvider:I.canvasProvider}),i=hi({type:"text",url:A.url,format:A.format,indexURL:A.indexURL,indexed:A.indexed}),{canvas:Q}=I.canvasProvider.createCanvas(0,0),o=new kB(Q,{locus:I.locus,childTracks:[{track:C,name:g.name},{track:B,name:"Peaks"}],config:{alpha:1,autoscale:!0},theme:I.theme,canvasProvider:I.canvasProvider,name:g.name}),E=[e,i].filter(A=>null!=A);return{track:o,dataSource:E.length>0?new FB(E,[g.name,"Peaks"]):null,dataSourceConfig:null,name:g.name,order:g.order}}return{track:C,dataSource:e,dataSourceConfig:B,name:g.name,order:g.order}}),si("annotation",function(A,I){var g;const t=A,{canvas:C}=I.canvasProvider.createCanvas(0,0),e=new iC(C,{locus:I.locus,features:[],config:t.config,theme:I.theme,canvasProvider:I.canvasProvider,name:t.name});let B=null,i=null;return t.dataSource&&(i=t.dataSource,B=hi(t.dataSource)),{track:e,dataSource:B,dataSourceConfig:i,name:t.name,order:t.order,searchable:null===(g=t.searchable)||void 0===g||g,searchableFields:t.searchableFields}}),si("ruler",function(A,I){const g=A,{canvas:t}=I.canvasProvider.createCanvas(0,0);return{track:new sC(t,{locus:I.locus,config:g.config,theme:I.theme,canvasProvider:I.canvasProvider}),dataSource:null,dataSourceConfig:null,name:g.name,order:g.order}}),si("sequence",function(A,I){const g=A,{canvas:t}=I.canvasProvider.createCanvas(0,0);return{track:new lC(t,{locus:I.locus,config:g.config,theme:I.theme,canvasProvider:I.canvasProvider}),dataSource:I.sequenceProvider?new cC(I.sequenceProvider):null,dataSourceConfig:null,name:g.name,order:g.order}}),si("interact",function(A,I){var g;const t=A,{canvas:C}=I.canvasProvider.createCanvas(0,0),e=new uB(C,{locus:I.locus,features:[],config:t.config,theme:I.theme,canvasProvider:I.canvasProvider,name:t.name});let B=null,i=null;return t.dataSource&&(i=t.dataSource,B=hi(t.dataSource)),{track:e,dataSource:B,dataSourceConfig:i,name:t.name,order:t.order,searchable:null===(g=t.searchable)||void 0===g||g,searchableFields:t.searchableFields}}),si("peakOverlay",function(A,I){const g=A,{canvas:t}=I.canvasProvider.createCanvas(0,0),C=new wB(t,{locus:I.locus,config:g.config,theme:I.theme,canvasProvider:I.canvasProvider,name:g.name});let e=null,B=null;return g.dataSource&&(B=g.dataSource,e=hi(g.dataSource)),{track:C,dataSource:e,dataSourceConfig:B,name:g.name,order:g.order}}),si("merged",function(A,I){const g=A,t=ii(g.tracks,I);return Qi(t,()=>{const{canvas:A}=I.canvasProvider.createCanvas(0,0),C=new kB(A,{locus:I.locus,childTracks:t.map((A,I)=>{var t,C;return{track:A.track,name:null!==(t=A.name)&&void 0!==t?t:null===(C=g.tracks[I])||void 0===C?void 0:C.name}}),config:g.config,theme:I.theme,canvasProvider:I.canvasProvider,name:g.name}),e=t.map(A=>A.dataSource).filter(A=>null!=A);return{track:C,dataSource:e.length>0?new FB(e,t.map(A=>A.name)):null,dataSourceConfig:null,name:g.name,order:g.order}})}),si("wigGroup",function(A,I){var g,t;const C=A,e=ii(C.tracks,I);for(const[A,I]of e.entries()){if("wig"===I.track.type)continue;for(const A of e)Bi(A);const B=null!==(t=null===(g=C.tracks[A])||void 0===g?void 0:g.type)&&void 0!==t?t:I.track.type;throw new Error(`wigGroup tracks only support wig children; received "${B}"`)}return Qi(e,()=>{const{canvas:A}=I.canvasProvider.createCanvas(0,0),g=new PB(A,{locus:I.locus,childTracks:e.map((A,I)=>{var g,t;return{track:A.track,name:null!==(g=A.name)&&void 0!==g?g:null===(t=C.tracks[I])||void 0===t?void 0:t.name}}),config:C.config,theme:I.theme,canvasProvider:I.canvasProvider,name:C.name});C.expanded&&(g.expanded=!0);const t=e.map(A=>{var I;return null!==(I=A.dataSource)&&void 0!==I?I:new rB([])}),B=e.map(A=>A.name);return{track:g,dataSource:t.length>0?new Ai(t,B):null,dataSourceConfig:null,name:C.name,order:C.order}})}),si("ideogram",function(A,I){const g=A,{canvas:t}=I.canvasProvider.createCanvas(0,0);return{track:new ei(t,{locus:I.locus,config:g.config,theme:I.theme,canvasProvider:I.canvasProvider}),dataSource:null,dataSourceConfig:null,name:g.name,order:g.order}}),ai("gene","annotation"),ai("refgene","annotation"),ai("bigwig","wig"),ai("bedgraph","wig"),ai("bed","annotation"),ai("gff3","annotation"),ai("gtf","annotation"),ai("gff","annotation"),ai("narrowpeak","annotation"),ai("broadpeak","annotation"),ai("genepred","annotation"),ai("genepredext","annotation"),ai("refflat","annotation"),ai("overlay","merged"),ai("bedpe","interact"),ai("arc","interact"),ai("longrange","interact");function li(A,I,g={}){return ci(A,I,g)}class di{constructor(A){this.snapshots=new Map,this.browser=A}getState(A){const I=this.project();return(null==A?void 0:A.record)&&this.snapshots.set(A.record,structuredClone(I)),I}diff(A){const I=this.snapshots.get(A);if(!I)throw new Error(`No snapshot recorded under key "${A}"`);const g=this.project(),t={unchanged:!0};I.locus.chr===g.locus.chr&&I.locus.start===g.locus.start&&I.locus.end===g.locus.end||(t.locus=[I.locus,g.locus],t.unchanged=!1),I.zoomLevel!==g.zoomLevel&&(t.zoomLevel=[I.zoomLevel,g.zoomLevel],t.unchanged=!1);const C=new Set(I.tracks.map(A=>A.id)),e=new Set(g.tracks.map(A=>A.id)),B=g.tracks.filter(A=>!C.has(A.id)),i=I.tracks.filter(A=>!e.has(A.id)).map(A=>A.id);B.length>0&&(t.tracksAdded=B,t.unchanged=!1),i.length>0&&(t.tracksRemoved=i,t.unchanged=!1);const Q=[];for(const A of g.tracks){if(!C.has(A.id))continue;const g=I.tracks.find(I=>I.id===A.id);if(!ki(g.featureSummary,A.featureSummary)){const I=Si(A.id,A.type,g.featureSummary,A.featureSummary);I&&Q.push(I)}}return Q.length>0&&(t.tracksChanged=Q,t.unchanged=!1),wi(I.rois,g.rois)||(t.roisChanged=!0,t.unchanged=!1),t}record(A){this.snapshots.set(A,structuredClone(this.project()))}deleteSnapshot(A){return this.snapshots.delete(A)}getSnapshot(A){return this.snapshots.get(A)}snapshotKeys(){return[...this.snapshots.keys()]}clearSnapshots(){this.snapshots.clear()}project(){var A,I;const g=this.browser.locus,t={chr:g.chr,start:Math.round(g.start),end:Math.round(g.end)},C=t.end-t.start,e=this.browser.getManagedTracks();return{locus:t,locusString:ui(t),span:C,zoomLevel:Di(C),frames:this.browser.frames,genome:null===(A=this.browser.genome)||void 0===A?void 0:A.id,tracks:e.filter(A=>"ruler"!==A.track.type).map(A=>this.projectTrack(A,t)),rois:null!==(I=this.browser.toJSON().rois)&&void 0!==I?I:[]}}projectTrack(A,I){const g=this.summarizeFeatures(A,I),t=null!=A.dataSource,C=A.cache.hasData();return{id:A.id,type:A.track.type,name:A.name,metadata:A.metadata,loading:!(!t||C)||void 0,featureSummary:g}}summarizeFeatures(A,I){switch(A.track.type){case"wig":return this.summarizeWig(A,I);case"annotation":return this.summarizeAnnotation(A,I);case"interact":return this.summarizeInteraction(A,I);default:return}}summarizeWig(A,I){const g=this.browser.getCachedFeatures(A.track);if(!g)return;const t=yi(g,I);return{featureCount:t.length,signalRange:t.length>0?$t(t):{min:0,max:0}}}summarizeAnnotation(A,I){const g=this.browser.getCachedFeatures(A.track);if(!g)return;const t=yi(g,I),C=new Set;for(const A of t)A.name&&C.size<20&&C.add(A.name);const e=t.reduce((A,I)=>{var g;return Math.max(A,null!==(g=I.row)&&void 0!==g?g:0)},0);return{featureCount:t.length,featureNames:[...C].sort(),packingDepth:e}}summarizeInteraction(A,I){var g,t;const C=this.browser.getCachedFeatures(A.track);if(!C)return;const e=yi(C,I);let B=0;for(const A of e){const I=null!==(t=null!==(g=A.value)&&void 0!==g?g:A.score)&&void 0!==t?t:0;isNaN(I)||(B=Math.max(B,I))}return{featureCount:e.length,valueRange:{min:0,max:B}}}}function Di(A){return A<=100?"base":A<=1e4?"element":A<=5e5?"gene":A<=1e7?"region":A<=25e7?"chromosome":"genome"}function ui(A){return`${A.chr}:${A.start.toLocaleString()}-${A.end.toLocaleString()}`}function yi(A,I){return A.filter(A=>A.end>I.start&&A.start<I.end)}function wi(A,I){if(A===I)return!0;if(null==A||null==I)return!1;if(typeof A!=typeof I)return!1;if(Array.isArray(A)){if(!Array.isArray(I)||A.length!==I.length)return!1;for(let g=0;g<A.length;g++)if(!wi(A[g],I[g]))return!1;return!0}if("object"==typeof A){if(Array.isArray(I))return!1;const g=A,t=I,C=Object.keys(g),e=Object.keys(t);if(C.length!==e.length)return!1;for(const A of C)if(!wi(g[A],t[A]))return!1;return!0}return!1}function fi(A,I){if(A&&I in A)return A[I]}function Si(A,I,g,t){const C={id:A,type:I};let e=!1;const B=(A,I,g)=>{wi(I,g)||(C[A]=[null!=I?I:null,null!=g?g:null],e=!0)};return B("featureCount",null==g?void 0:g.featureCount,null==t?void 0:t.featureCount),B("signalRange",fi(g,"signalRange"),fi(t,"signalRange")),B("featureNames",fi(g,"featureNames"),fi(t,"featureNames")),B("packingDepth",fi(g,"packingDepth"),fi(t,"packingDepth")),B("valueRange",fi(g,"valueRange"),fi(t,"valueRange")),e?C:void 0}function ki(A,I){return A===I||!(!A||!I)&&wi(A,I)}function Gi(A,I){return A.filter(A=>function(A,I){var g;if(void 0!==I.id&&A.id!==I.id)return!1;if(void 0!==I.name){const t=null!==(g=A.name)&&void 0!==g?g:"";if("string"==typeof I.name){if(!t.toLowerCase().includes(I.name.toLowerCase()))return!1}else if(!I.name.test(t))return!1}if(void 0!==I.type&&A.track.type!==I.type)return!1;if(void 0!==I.where){const g=A.metadata;if(!g)return!1;for(const[A,t]of Object.entries(I.where))if(g[A]!==t)return!1}return!0}(A,I))}class Fi{constructor(A=50){this.maxHistory=A,this.undoStack=[],this.redoStack=[],this._paused=!1}get paused(){return this._paused}pause(){this._paused=!0}resume(){this._paused=!1}snapshot(A,I){this._paused||(this.undoStack.push({type:A,session:I}),this.undoStack.length>this.maxHistory&&this.undoStack.shift(),this.redoStack=[])}undo(A,I){let g=this.undoStack.pop();if(I)for(;g&&I(g);)g=this.undoStack.pop();if(g)return this.redoStack.push({type:g.type,session:A}),g}redo(A,I){let g=this.redoStack.pop();if(I)for(;g&&I(g);)g=this.redoStack.pop();if(g)return this.undoStack.push({type:g.type,session:A}),g}canUndo(A){return A?this.undoStack.some(I=>!A(I)):this.undoStack.length>0}canRedo(A){return A?this.redoStack.some(I=>!A(I)):this.redoStack.length>0}get undoSize(){return this.undoStack.length}get redoSize(){return this.redoStack.length}clear(){this.undoStack=[],this.redoStack=[]}}async function Ni(A,I,g){const t="https://igv.org/genomes/locus.php?genome=$GENOME$&name=$FEATURE$".replace("$GENOME$",encodeURIComponent(I)).replace("$FEATURE$",encodeURIComponent(A.toUpperCase())),C=await fetch(t,g?{signal:g}:void 0);if(!C.ok)return;return function(A){const I=A.split("\n");for(const A of I){const I=A.split("\t");if(I.length>=2){const A=I[0].trim().toUpperCase(),g=I[1].split(":");if(g.length>=2){const I=g[0].trim(),t=g[1].split("-");if(t.length>=2){const g=parseInt(t[0].replace(/,/g,""),10),C=parseInt(t[1].replace(/,/g,""),10);if(!isNaN(g)&&!isNaN(C))return{chr:I,start:g,end:C,name:A}}}}}return}(await C.text())}function mi(A){if(!A)return!1;return new RegExp("^[A-Za-z0-9_.]+(?:\\([^)]+\\))?:(?:g\\.\\d+.*|c\\.[-*]?\\d+.*|n\\.-?\\d+.*|p\\.[A-Za-z*]*\\d+.*)$").test(A)}async function Ri(A,I,g){if(!mi(A))return;const t=A.indexOf(":g."),C=A.indexOf(":c."),e=A.indexOf(":n."),B=A.indexOf(":p.");let i,Q;if(t>=0)i="g",Q=t;else if(C>=0)i="c",Q=C;else if(e>=0)i="n",Q=e;else{if(!(B>=0))return;i="p",Q=B}let o=A.substring(0,Q);if(o.endsWith(")")){const A=o.lastIndexOf("(");A>0&&(o=o.substring(0,A))}const E=A.substring(Q+3);if("g"===i)return function(A,I,g){if(!A)return;const t=A.match(/^\(?(\d+)(?:_(\d+|\?))?\)?\s*/);if(!t)return;const C=parseInt(t[1],10),e=t[2],B=e&&"?"!==e?parseInt(e,10):C,i=g(I),Q=i?i.chr:I;return{chr:Q,start:C-1,end:B}}(E,o,I);if("p"===i)return;if(!g)return;const s=await g(o);return s?"n"===i?function(A,I){const g=A.match(/^(-?\d+)(?:_(-?\d+))?([+-]\d+)?/);if(!g)return;const t=parseInt(g[1],10),C=null!=g[2]?parseInt(g[2],10):t;let e=Ui(I,t),B=Ui(I,C);if(e<=0||B<=0)return;if(g[3]){let A=parseInt(g[3],10);"-"===I.strand&&(A=-A),e+=A,B+=A}const i=Math.min(e,B),Q=Math.max(e,B)+1;return{chr:I.chr,start:i,end:Q}}(E,s):function(A,I){const g=A.match(/^-(\d+)(?:_-(\d+))?([+-]\d+)?/);if(g)return function(A,I){const g=parseInt(A[1],10),t=null!=A[2]?parseInt(A[2],10):null,C=pi(I,1);if(C<=0)return;let e="+"===I.strand?C-g:C+g,B=e;null!=t&&(B="+"===I.strand?C-t:C+t);if(A[3]){let g=parseInt(A[3],10);"-"===I.strand&&(g=-g),e+=g,B+=g}const i=Math.min(e,B),Q=Math.max(e,B)+1;return{resultType:"LOCUS",chr:I.chr,start:i,end:Q}}(g,I);const t=A.match(/^\*(\d+)(?:_\*(\d+))?([+-]\d+)?/);if(t)return function(A,I){const g=parseInt(A[1],10),t=null!=A[2]?parseInt(A[2],10):null;let C=0;if(I.exons)for(const A of I.exons)C+=NI(A);if(0===C)return;const e=pi(I,C);if(e<=0)return;let B="+"===I.strand?e+g:e-g,i=B;null!=t&&(i="+"===I.strand?e+t:e-t);if(A[3]){let g=parseInt(A[3],10);"-"===I.strand&&(g=-g),B+=g,i+=g}const Q=Math.min(B,i),o=Math.max(B,i)+1;return{resultType:"LOCUS",chr:I.chr,start:Q,end:o}}(t,I);const C=A.match(/^(\d+)(?:_(\d+))?/);if(!C)return;const e=parseInt(C[1],10),B=C[2],i=null!=B?parseInt(B,10):e;let Q=pi(I,e),o=pi(I,i);if(Q<=0||o<=0)return;const E=A.match(/^(\d+)([+-]\d+)?(?:_(\d+)([+-]\d+)?)?/);if(E){if(E[2]){let A=parseInt(E[2],10);"-"===I.strand&&(A=-A),Q+=A}if(E[4]){let A=parseInt(E[4],10);"-"===I.strand&&(A=-A),o+=A}}null==B&&(o=Q);const s=Math.min(Q,o),a=Math.max(Q,o)+1;return{chr:I.chr,start:s,end:a}}(E,s):void 0}function pi(A,I){if(I<=0)return-1;const g=A.exons;if(!g)return-1;const t="+"===A.strand,C=I-1;let e=0;for(let A=0;A<g.length;A++){const I=t?g[A]:g[g.length-1-A],B=NI(I);if(e+B>C){const A=C-e;return t?GI(I)+A:FI(I)-1-A}e+=B}return-1}function Ui(A,I){if(I<=0){const g=Math.abs(I);return"+"===A.strand?A.start-g:A.end+g}const g=A.exons;if(!g||0===g.length)return"+"===A.strand?A.start+I-1:A.end-I+1;const t="+"===A.strand;let C=0;const e=g.slice();t?e.sort((A,I)=>A.start-I.start):e.sort((A,I)=>I.start-A.start);for(const A of e){const g=A.end-A.start;if(C+g>=I){const g=I-C-1;return t?A.start+g:A.end-g-1}C+=g}return-1}const Mi=["name","id","gene_name","transcript_id","gene_id"];function Li(A){return A.replace(/ /g,"+").toUpperCase()}class Ji{constructor(A){this.index=new Map,this.searchableFields=null!=A?A:Mi}addFeatures(A){for(const I of A){const A=I,g=A.chr,t=A.start,C=A.end;if("string"!=typeof g||"number"!=typeof t||"number"!=typeof C)continue;const e={chr:g,start:t,end:C},B=C-t,i="object"==typeof A.attributes&&null!==A.attributes?A.attributes:null;for(const I of this.searchableFields){let g=A[I];if("string"==typeof g&&g||!i||(g=i[I]),"string"!=typeof g||!g)continue;const t=Li(g),C=this.index.get(t);(!C||C.end-C.start<B)&&this.index.set(t,e)}}}search(A){return this.index.get(Li(A))}clear(){this.index.clear()}get size(){return this.index.size}}function Ki(A){return A instanceof Error?A:new Error(String(A))}let Yi=0;class vi{constructor(A){var I,g;this._features=[],this.name=A.name,this.color=null!==(I=A.color)&&void 0!==I?I:A.isUserDefined?"rgba(155, 185, 129, 0.2)":"rgba(68, 134, 247, 0.15)",this.isUserDefined=null!==(g=A.isUserDefined)&&void 0!==g&&g,A.features&&(this._features=A.features.map(A=>({...A})))}get features(){return this._features}addFeature(A){var I;const g={...A,id:A.id||`roi_${Date.now().toString(36)}_${(++Yi).toString(36)}`,color:null!==(I=A.color)&&void 0!==I?I:this.color};return this._features.push(g),this._features.sort((A,I)=>A.start-I.start),g}removeFeature(A){const I=this._features.findIndex(I=>I.id===A);if(!(I<0))return this._features.splice(I,1)[0]}updateFeature(A,I){const g=this._features.find(I=>I.id===A);if(g)return Object.assign(g,I),("start"in I||"end"in I)&&this._features.sort((A,I)=>A.start-I.start),g}findById(A){return this._features.find(I=>I.id===A)}getFeatures(A,I,g){return this._features.filter(t=>t.chr===A&&t.end>I&&t.start<g)}toJSON(){return{name:this.name,color:this.color,isUserDefined:this.isUserDefined||void 0,features:this._features.map(A=>({...A}))}}}class bi{constructor(A){this.roiSets=[],this.callbacks=A}addROI(A,I="User-defined"){let g=this.roiSets.find(A=>A.name===I);g||(g=new vi({name:I,isUserDefined:!0,features:[]}),this.roiSets.push(g));const t=g.addFeature(A);return this.callbacks.onROIAdded(t,g),t}addROISet(A){const I=new vi(A);this.roiSets.push(I);for(const A of I.features)this.callbacks.onROIAdded(A,I);return I}removeROI(A){for(const I of this.roiSets){const g=I.removeFeature(A);if(g)return this.callbacks.onROIRemoved(g,I),!0}return!1}updateROI(A,I){for(const g of this.roiSets){const t=g.updateFeature(A,I);if(t)return this.callbacks.onROIChanged(t,I,g),t}}removeROISet(A){const I=this.roiSets.indexOf(A);if(I<0)return!1;this.roiSets.splice(I,1);for(const I of A.features)this.callbacks.onROIRemoved(I,A);return!0}clear(){this.roiSets=[]}getROIs(){return this.roiSets.flatMap(A=>[...A.features])}getROISets(){return this.roiSets}findROIsAtLocus(A,I,g){return this.roiSets.flatMap(t=>t.getFeatures(A,I,g))}getVisibleROIs(A){return this.findROIsAtLocus(A.chr,A.start,A.end)}serialize(){return this.roiSets.length>0?this.roiSets.map(A=>A.toJSON()):void 0}}function xi(A){var I,g,t,C,e;switch(A.type){case"bigwig":return`bigwig:${A.url}:${null!==(I=A.windowFunction)&&void 0!==I?I:"mean"}`;case"gtx":return`gtx:${A.url}:${A.experimentId}`;case"ucsc":return`ucsc:${null!==(g=A.genome)&&void 0!==g?g:""}:${null!==(t=A.track)&&void 0!==t?t:""}`;case"text":return`text:${A.url}:${null!==(C=A.format)&&void 0!==C?C:""}:${null!==(e=A.indexURL)&&void 0!==e?e:""}`;case"memory":return`memory:${Math.random()}`;default:return xi(Lt(A))}}class Hi{constructor(A,I){this.provider=A,this.instanceId=I}async fetch(A,I,g){const t=this.resolver?{...A,chr:this.resolver(A.chr)}:A;return this.provider.fetch(this.instanceId,t,I,g)}setChromNameResolver(A){this.resolver=A}setCumulativeOffsets(A){this.provider.configure(this.instanceId,"setCumulativeOffsets",A)}setWindowFunction(A){this.provider.configure(this.instanceId,"setWindowFunction",A)}}class qi{constructor(A,I,g){this.loadDebounceTimers=new Map,this._disposed=!1,this.fetchCache=new eA({cache:new fA({maxSize:100}),fill:(A,I)=>A.dataSource.fetch(A.fetchRegion,A.bpPerPixel,I)}),this.callbacks=A,this.dataSourceWorkerProvider=I,this.maxTotalFeatures=null!=g?g:5e5}debouncedLoad(A,I){for(const g of A){const A=this.getFrameAbortController(g,I.id);A&&(A.abort(),this.setFrameAbortController(g,I.id,null))}const g=this.loadDebounceTimers.get(I.id);null!=g&&clearTimeout(g),this.loadDebounceTimers.set(I.id,setTimeout(()=>{this.loadDebounceTimers.delete(I.id),this.loadAllTracksForFrame(A,I)},100))}loadAllTracksIfNeeded(A,I){for(const A of this.loadDebounceTimers.values())clearTimeout(A);this.loadDebounceTimers.clear();for(const g of I)this.loadAllTracksForFrame(A,g)}loadAllTracksForFrame(A,I){for(const g of A)g.dataSource&&this.loadTrackWithDedup(g,A,I)}loadTrackWithDedup(A,I,g){var t,C,e,B;const{locus:i,viewportWidth:Q}=g;if(0===Q)return;const o=(i.end-i.start)/Q,E=null!==(t=A.frameInstances.get(g.id))&&void 0!==t?t:A.track,s=null!==(C=A.frameCaches.get(g.id))&&void 0!==C?C:A.cache,a=E.visibilityWindow,r=null!=a&&a>0&&o*Q>a;var n;if("setZoomedOut"in(n=E)&&"function"==typeof n.setZoomedOut&&E.setZoomedOut(r),r){const I=this.getFrameAbortController(A,g.id);return void(I&&(I.abort(),this.setFrameAbortController(A,g.id,null)))}if(s.find(i,o))return;const c=this.getFrameAbortController(A,g.id);c&&c.abort(),E.setError(null);const l=function(A){if(h(A))return A;const I=A.end-A.start,g=Math.floor(1*I);return{chr:A.chr,start:Math.max(0,Math.floor(A.start-g)),end:Math.ceil(A.end+g)}}(i),d=A.dataSourceConfig?xi(A.dataSourceConfig):null;if(d)for(const t of I){if(t===A||!t.dataSourceConfig)continue;const I=(null!==(e=t.frameCaches.get(g.id))&&void 0!==e?e:t.cache).find(i,o);if(I&&xi(t.dataSourceConfig)===d)return s.put(I),null===(B=A.nameIndex)||void 0===B||B.addFeatures(I.features),this.setFrameAbortController(A,g.id,null),E.setError(null),"function"==typeof E.setFeatures&&E.setFeatures(I.features),void this.callbacks.onDataLoaded(E)}const D=new AbortController;this.setFrameAbortController(A,g.id,D);const u=d?`${d}|${l.chr}:${l.start}-${l.end}|${o}`:`${A.id}|${l.chr}:${l.start}-${l.end}|${o}`;this.fetchCache.get(u,{dataSource:A.dataSource,fetchRegion:l,bpPerPixel:o},D.signal).then(t=>{var C;if(this._disposed||D.signal.aborted)return;const e={locus:l,bpPerPixel:o,features:t};s.put(e),null===(C=A.nameIndex)||void 0===C||C.addFeatures(t),this.enforceGlobalBudget(I),this.setFrameAbortController(A,g.id,null),E.setError(null),"function"==typeof E.setFeatures&&E.setFeatures(t),this.callbacks.onDataLoaded(E)}).catch(A=>{if(this._disposed||D.signal.aborted||function(A){return A instanceof DOMException&&"AbortError"===A.name||A instanceof Error&&"AbortError"===A.name||!!(A instanceof Error&&A.message.includes("aborted"))}(A))return;const I=Ki(A);s.hasData()?P.warn("Data fetch failed, showing cached data:",I.message):(P.error("Data fetch error:",I),E.setError(I)),this.callbacks.onDataError(E,I)})}enforceGlobalBudget(A){let I=this.getTotalFeatureCount(A);for(;I>this.maxTotalFeatures;){let g=null,t=1/0;for(const I of A){if(I.cache.size<=1)continue;const A=I.cache.getLRUAccessTime();A<t&&(t=A,g=I)}if(!g)break;I-=g.cache.evictOne()}}resizeCaches(A){const I=A.filter(A=>A.dataSource).length;if(0===I)return;const g=Math.max(1,Math.floor(50/I));for(const I of A)I.cache.maxEntries!==g&&I.cache.resize(g)}getTotalFeatureCount(A){let I=0;for(const g of A)I+=g.cache.totalFeatureCount;return I}getFrameAbortController(A,I){var g;return A.frameInstances.has(I)?null!==(g=A.frameAbortControllers.get(I))&&void 0!==g?g:null:A.abortController}setFrameAbortController(A,I,g){A.frameInstances.has(I)?g?A.frameAbortControllers.set(I,g):A.frameAbortControllers.delete(I):A.abortController=g}dispose(){this._disposed=!0,this.fetchCache.clear();for(const A of this.loadDebounceTimers.values())clearTimeout(A);this.loadDebounceTimers.clear()}destroyWorkerDataSource(A){A instanceof Hi&&this.dataSourceWorkerProvider&&this.dataSourceWorkerProvider.destroy(A.instanceId)}}function Ti(A){return A.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&")}function _i(A,I){return function(A){return new RegExp("^"+A.split(/\*+/).map(Ti).join(".*")+"$")}(A).test(I)}class Wi{constructor(A){var I;if(this.hostTokens=new Map,this.hostHeaders=new Map,(null==A?void 0:A.oauthToken)&&(null==A?void 0:A.basicAuth))throw new Error("CredentialStore: oauthToken and basicAuth are mutually exclusive. Use AuthProviderChain for mixed strategies.");this.globalToken=null==A?void 0:A.oauthToken,this.basicAuth=null==A?void 0:A.basicAuth,this.apiKey=null==A?void 0:A.apiKey,this.globalHeaders=(null==A?void 0:A.headers)?{...A.headers}:{},this.withCredentials=null!==(I=null==A?void 0:A.withCredentials)&&void 0!==I&&I}setOauthToken(A,I){I?this.hostTokens.set(I,A):this.globalToken=A}setBasicAuth(A){this.basicAuth=A}setApiKey(A){this.apiKey=A}setHeaders(A,I){var g;I?this.hostHeaders.set(I,{...null!==(g=this.hostHeaders.get(I))&&void 0!==g?g:{},...A}):Object.assign(this.globalHeaders,A)}async getCredentials(A){var I;const g=function(A){try{return new URL(A).host}catch(A){return}}(A),t={};let C=!1;const e=null!==(I=g?this.findMatchingValue(this.hostTokens,g):void 0)&&void 0!==I?I:this.globalToken;if(e?(t.Authorization=`Bearer ${await async function(A){return"string"==typeof A?A:A()}(e)}`,t["Cache-Control"]="no-cache",C=!0):this.basicAuth&&(t.Authorization=`Basic ${btoa(`${this.basicAuth.username}:${this.basicAuth.password}`)}`,C=!0),Object.keys(this.globalHeaders).length>0&&(Object.assign(t,this.globalHeaders),C=!0),g){const A=this.findMatchingValue(this.hostHeaders,g);A&&(Object.assign(t,A),C=!0)}if(this.apiKey&&(t["X-API-Key"]=this.apiKey,C=!0),C)return{headers:t,withCredentials:this.withCredentials||void 0}}findMatchingValue(A,I){for(const[g,t]of A)if(!g.includes("*")&&g===I)return t;for(const[g,t]of A)if(g.includes("*")&&_i(g,I))return t}}function Pi(A,I,g){const t=null==I?void 0:I.headers;let C;if(t instanceof Headers)C={...g.headers},t.forEach((A,I)=>{C[I]=A});else if(Array.isArray(t)){C={...g.headers};for(const[A,I]of t)C[A]=I}else C={...g.headers,...t};let e=A;return g.resolvedUrl&&(e="string"==typeof A?g.resolvedUrl:A instanceof URL?new URL(g.resolvedUrl):new Request(g.resolvedUrl,A)),{fetchTarget:e,fetchInit:{...I,headers:C,credentials:g.withCredentials?"include":null==I?void 0:I.credentials}}}function Oi(A,I){return async(g,t)=>{const C="string"==typeof g?g:g instanceof URL?g.toString():g.url,e=await A.getCredentials(C);if(!e)return globalThis.fetch(g,t);const{fetchTarget:B,fetchInit:i}=Pi(g,t,e),Q=await globalThis.fetch(B,i);if((401===Q.status||403===Q.status)&&(null==I?void 0:I.onAuthChallenge)){if(await I.onAuthChallenge(C,Q)){const I=await A.getCredentials(C);if(!I)return Q;const{fetchTarget:e,fetchInit:B}=Pi(g,t,I);return globalThis.fetch(e,B)}}return Q}}function Vi(A,I){if(null==I?void 0:I.authProvider)return Oi(I.authProvider);if(null==I?void 0:I.auth){return Oi(new Wi({oauthToken:I.auth.oauthToken,headers:I.auth.headers,withCredentials:I.auth.withCredentials}))}return A.authProvider?Oi(A.authProvider):void 0}let Zi=0;function Xi(A,I){if(!I.dataSourceWorkerProvider)return null;const g=`ds-${Zi++}-${Date.now()}`;I.dataSourceWorkerProvider.create(g,A);const t=new Hi(I.dataSourceWorkerProvider,g);return I.genome&&t.setChromNameResolver(A=>I.genome.getChromosomeName(A)),I.cumulativeOffsets&&t.setCumulativeOffsets(I.cumulativeOffsets),t}function zi(A,I){I.genome&&(A instanceof FC||A instanceof zC?A.setChromNameResolver(A=>I.genome.getChromosomeName(A)):A instanceof aB?(A.setChromNameResolver(A=>I.genome.getChromosomeName(A)),I.cumulativeOffsets&&A.setCumulativeOffsets(I.cumulativeOffsets)):A instanceof rB&&A.setChromNameResolver(A=>I.genome.getChromosomeName(A))),I.cumulativeOffsets&&(A instanceof FC||A instanceof zC||A instanceof rB)&&A.setCumulativeOffsets(I.cumulativeOffsets)}function ji(A,I,g){const t=Xi(A,g);if(t)return{dataSource:t,workerDS:t};const C=I();return zi(C,g),{dataSource:C,workerDS:null}}function $i(A,I){const g=A.onWindowFunctionChange;g&&(A.onWindowFunctionChange=A=>{g(A),I()})}const AQ={LocusChange:"locuschange",FrameAdded:"frameadded",FrameRemoved:"frameremoved",TrackAdded:"trackadded",TrackRemoved:"trackremoved",TrackOrderChanged:"trackorderchanged",DataLoaded:"dataloaded",DataError:"dataerror",RenderError:"rendererror",TrackClick:"trackclick",TrackHover:"trackhover",TrackContextMenu:"trackcontextmenu",ROIAdded:"roiadded",ROIRemoved:"roiremoved",ROIChanged:"roichanged",ROIClick:"roiclick",ROIContextMenu:"roicontextmenu",ThemeChanged:"themechange",TrackConfigChanged:"trackconfigchanged",Undo:"undo",Redo:"redo",UndoStackChanged:"undostackchanged"};let IQ=0;const gQ={ideogram:3,ruler:2,sequence:1};function tQ(A){var I;return null!==(I=gQ[A])&&void 0!==I?I:0}class CQ{get theme(){return this._theme}get primaryFrame(){return this._frames[0]}get frames(){return this._frames}get locus(){return this._frames[0].locus}get viewportWidth(){return this._frames[0].viewportWidth}canUndo(A){return this._undoManager.canUndo(A)}canRedo(A){return this._undoManager.canRedo(A)}get state(){return this._state||(this._state=new di(this)),this._state}constructor(A){var I,g,t,C,e,B,i,Q;this.managedTracks=[],this._deferSort=!1,this._suppressImmediateLoad=!1,this.events=new O,this._undoManager=new Fi,this.genome=null===A.genome?void 0:null!==(I=A.genome)&&void 0!==I?I:mt,this.chromSizes=null===(g=this.genome)||void 0===g?void 0:g.chromSizes,this.cumulativeOffsets=null===(t=this.genome)||void 0===t?void 0:t.cumulativeOffsets,this.sequenceProvider=null===(C=this.genome)||void 0===C?void 0:C.sequence;const o=this.clamp({...A.locus}),E=null!==(e=A.viewportWidth)&&void 0!==e?e:0;this._frames=[r(o,E,"main")],this.canvasProvider=null!==(B=A.canvasProvider)&&void 0!==B?B:p,this.workerProvider=A.workerProvider,this.dataSourceWorkerProvider=function(A){if(!A||"object"!=typeof A)return!1;const I=A;return"function"==typeof I.create&&"function"==typeof I.fetch&&"function"==typeof I.destroy}(A.workerProvider)?A.workerProvider:void 0,this.popupProvider=null!==(i=A.popupProvider)&&void 0!==i?i:void 0,this.contextMenuProvider=null!==(Q=A.contextMenuProvider)&&void 0!==Q?Q:void 0,this._theme=L(A.theme),this.authProvider=A.authProvider,A.stateProjection&&(this._state=A.stateProjection),this.roiManager=new bi({onROIAdded:(A,I)=>this.events.emit(AQ.ROIAdded,{roi:A,set:I}),onROIRemoved:(A,I)=>this.events.emit(AQ.ROIRemoved,{roi:A,set:I}),onROIChanged:(A,I,g)=>this.events.emit(AQ.ROIChanged,{roi:A,changes:I,set:g})}),this.dataManager=new qi({onDataLoaded:A=>this.events.emit(AQ.DataLoaded,{track:A}),onDataError:(A,I)=>this.events.emit(AQ.DataError,{track:A,error:I})},this.dataSourceWorkerProvider)}factoryContext(){return{locus:this._frames[0].locus,canvasProvider:this.canvasProvider,theme:this._theme,genome:this.genome,chromSizes:this.chromSizes,cumulativeOffsets:this.cumulativeOffsets,sequenceProvider:this.sequenceProvider,dataSourceWorkerProvider:this.dataSourceWorkerProvider,authProvider:this.authProvider}}clamp(A){return this.chromSizes?function(A,I,g){if(h(A)&&g)return{chr:"all",start:Math.max(0,A.start),end:Math.min(g.totalLength,A.end)};let{chr:t,start:C,end:e}=A;const B=null==I?void 0:I[t];if(null!=B&&e-C>B&&(C=0,e=B),C<0){const A=-C;C=0,e+=A}if(null!=B&&e>B){const A=e-B;e=B,C=Math.max(0,C-A)}return{chr:t,start:C,end:e}}(A,this.chromSizes,this.cumulativeOffsets):A}updateIdeogramCytobands(){var A,I;const g=this._frames[0].locus.chr,t=this.genome;if(!(null==t?void 0:t.getCytobands))return;const C=null!==(A=t.getCytobands(g))&&void 0!==A?A:[],e=null!==(I=t.getChromosomeLength(g))&&void 0!==I?I:0;for(const A of this.managedTracks)"ideogram"===A.track.type&&A.track.setCytobands(C,e)}on(A,I){return this.events.on(A,I)}off(A,I){this.events.off(A,I)}_snapshotForUndo(A){this._undoManager.snapshot(A,this.toJSON()),this.events.emit(AQ.UndoStackChanged,{canUndo:this._undoManager.canUndo(),canRedo:this._undoManager.canRedo()})}undo(A){const I=this._undoManager.undo(this.toJSON(),A);if(!I)return!1;this._undoManager.pause();try{this.loadSession(I.session)}finally{this._undoManager.resume()}return this.events.emit(AQ.Undo,{entry:I}),this.events.emit(AQ.UndoStackChanged,{canUndo:this._undoManager.canUndo(),canRedo:this._undoManager.canRedo()}),!0}redo(A){const I=this._undoManager.redo(this.toJSON(),A);if(!I)return!1;this._undoManager.pause();try{this.loadSession(I.session)}finally{this._undoManager.resume()}return this.events.emit(AQ.Redo,{entry:I}),this.events.emit(AQ.UndoStackChanged,{canUndo:this._undoManager.canUndo(),canRedo:this._undoManager.canRedo()}),!0}clearUndoHistory(){this._undoManager.clear(),this.events.emit(AQ.UndoStackChanged,{canUndo:!1,canRedo:!1})}setViewportWidth(A){this._frames[0].viewportWidth=A,n(this._frames[0]),this.render(),this.loadAllTracksIfNeeded()}addTrack(A,I,g,t,C){var e;this._snapshotForUndo("track-add");const B=`${null!=(i=A.type)?i:"track"}-${IQ++}`;var i;const Q={id:B,track:A,dataSource:null!==(e=I)&&void 0!==e?e:null,dataSourceConfig:null!=g?g:null,cache:new D,abortController:null,frameAbortControllers:new Map,maxTrackHeight:t,order:C,frameInstances:new Map,frameCaches:new Map,searchable:!1,nameIndex:null};if(A.onBeforeConfigChange=()=>{this._snapshotForUndo("track-config")},A.onConfigChanged=()=>{this.events.emit(AQ.TrackConfigChanged,{track:A})},A instanceof SB&&(A.onExpandedChanged=(A,I)=>{this._syncCompositeExpansion(I,A)},A.onChildrenChanged=A=>{A.expanded&&this._syncCompositeExpansion(A,!0)}),this.managedTracks.push(Q),this.sortTracks(),A.setTheme(this._theme),A.setLocus(this._frames[0].locus),this.events.emit(AQ.TrackAdded,{track:A}),this.dataManager.resizeCaches(this.managedTracks),I&&!this._suppressImmediateLoad)for(const A of this._frames)this.dataManager.loadTrackWithDedup(Q,this.managedTracks,A);return B}removeTrack(A){this._snapshotForUndo("track-remove");const I="string"==typeof A?this.managedTracks.findIndex(I=>I.id===A):this.managedTracks.findIndex(I=>I.track===A);if(I>=0){const A=this.managedTracks[I];A.abortController&&A.abortController.abort();for(const I of A.frameAbortControllers.values())null==I||I.abort();A.frameAbortControllers.clear(),A.dataSource&&this.dataManager.destroyWorkerDataSource(A.dataSource);for(const I of A.frameInstances.values())I.detach();A.frameInstances.clear(),A.frameCaches.clear(),this.managedTracks.splice(I,1),this.dataManager.resizeCaches(this.managedTracks),this.events.emit(AQ.TrackRemoved,{track:A.track})}}_ensureFrameInstances(A){if(!(this._frames.length<=1))for(const I of this._frames){if(I.id===this._frames[0].id)continue;if(A.frameInstances.has(I.id))continue;const g=this._cloneTrackForFrame(A,I);g&&(A.frameInstances.set(I.id,g),A.frameCaches.set(I.id,new D))}}_cloneTrackForFrame(A,I){const g=A.track.serializeConfig(this._theme);try{const A=ci(g,I.locus,{canvasProvider:this.canvasProvider,theme:this.theme,sequenceProvider:this.sequenceProvider});return A.track.setTheme(this._theme),A.track}catch(g){return P.warn(`Failed to clone track ${A.id} for frame ${I.id}`),null}}_removeFrameInstances(A){for(const I of this.managedTracks){const g=I.frameInstances.get(A);g&&(g.detach(),I.frameInstances.delete(A)),I.frameCaches.delete(A)}}getTrackForFrame(A,I){var g;return I===this._frames[0].id?A.track:null!==(g=A.frameInstances.get(I))&&void 0!==g?g:A.track}moveTrack(A,I){this._snapshotForUndo("track-reorder");const g=this.managedTracks.findIndex(I=>I.track===A);if(g<0)return;const t=Math.max(0,Math.min(I,this.managedTracks.length-1));if(g===t)return;const[C]=this.managedTracks.splice(g,1);this.managedTracks.splice(t,0,C),this._assignOrderFromPosition(),this.events.emit(AQ.TrackOrderChanged,{tracks:this.managedTracks.map(A=>A.track)})}_syncCompositeExpansion(A,I){var g;const t=this.managedTracks.find(I=>I.track===A);if(!t)return;const C=this._deferSort;this._deferSort=!0;try{const C=this.managedTracks.filter(A=>A.parentId===t.id);this._undoManager.pause();try{for(const A of C)this.removeTrack(A.id)}finally{this._undoManager.resume()}if(I){void 0===t.order&&this._assignOrderFromPosition();const I=null!==(g=t.order)&&void 0!==g?g:0,C=A.getChildren();this._undoManager.pause();try{for(let A=0;A<C.length;A++){const g=C[A],e=I-.1*(A+1);this.addTrack(g.track,void 0,void 0,void 0,e);const B=this.managedTracks.find(A=>A.track===g.track);B&&(B.isEphemeral=!0,B.parentId=t.id,g.name&&(B.name=g.name))}}finally{this._undoManager.resume()}}}finally{this._deferSort=C}this.sortTracks(),this.events.emit(AQ.TrackOrderChanged,{tracks:this.managedTracks.map(A=>A.track)})}sortTracks(){this._deferSort||(this.managedTracks.sort((A,I)=>{var g,t;const C=(null!==(g=A.order)&&void 0!==g?g:0)+tQ(A.track.type);return(null!==(t=I.order)&&void 0!==t?t:0)+tQ(I.track.type)-C}),this.onTracksSorted())}onTracksSorted(){}_assignOrderFromPosition(){const A=this.managedTracks.length;for(let I=0;I<A;I++)this.managedTracks[I].order=10*(A-I)}findMT(A){return this.managedTracks.find(I=>I.track===A)}getTrackOrder(){return this.managedTracks.map(A=>A.track)}getManagedTrack(A){return this.managedTracks.find(I=>I.id===A)}getTrack(A){var I;return null===(I=this.managedTracks.find(I=>I.id===A))||void 0===I?void 0:I.track}getManagedTracks(){return this.managedTracks}findTracks(A){return Gi(this.managedTracks,A)}removeTracks(A){const I=Gi(this.managedTracks,A);if(0===I.length)return 0;this._snapshotForUndo("track-remove"),this._undoManager.pause();try{for(const A of I)this.removeTrack(A.id)}finally{this._undoManager.resume()}return I.length}updateTrackMetadata(A,I){const g=Gi(this.managedTracks,A);for(const A of g)A.metadata={...A.metadata,...I};return g.length}setLocus(A){this.setFrameLocus("main",A)}setFrameLocus(A,I){const g=this._frames.find(I=>I.id===A);if(!g)throw new Error(`Unknown frame: ${A}`);const t=g.locus.chr;g.locus=this.clamp({...I}),n(g);for(const I of this.managedTracks)this.getTrackForFrame(I,A).setLocus(g.locus);g.locus.chr!==t&&this.updateIdeogramCytobands(),this.dataManager.debouncedLoad(this.managedTracks,g),this.events.emit(AQ.LocusChange,{frames:[g],sourceFrameId:g.id,locus:this._frames[0].locus})}getFrame(A){return this._frames.find(I=>I.id===A)}getFrames(){return this._frames}addFrame(A,I){const g=this.clamp({...A}),t=a();let C=this._frames.length;if(I){const A=this._frames.findIndex(A=>A.id===I);A>=0&&(C=A+1)}const e=this._frames[0].viewportWidth*this._frames.length/(this._frames.length+1),B=r(g,e,t);this._frames.splice(C,0,B);for(const A of this._frames)A.viewportWidth=e,n(A);for(const A of this.managedTracks)this._ensureFrameInstances(A);return this.events.emit(AQ.FrameAdded,{frame:B}),B}removeFrame(A){if(this._frames.length<=1)throw new Error("Cannot remove the last reference frame");const I=this._frames.findIndex(I=>I.id===A);if(I<0)throw new Error(`Unknown frame: ${A}`);const g=0===I;this._removeFrameInstances(A),this._frames.splice(I,1);const t=this._frames[0].viewportWidth*(this._frames.length+1)/this._frames.length;for(const A of this._frames)A.viewportWidth=t,n(A);if(1===this._frames.length)for(const A of this.managedTracks){for(const I of A.frameInstances.values())I.detach();A.frameInstances.clear(),A.frameCaches.clear()}if(g){const A=this._frames[0];for(const I of this.managedTracks)I.track.setLocus(A.locus);for(const I of this.managedTracks)I.dataSource&&this.dataManager.loadTrackWithDedup(I,this.managedTracks,A)}this.events.emit(AQ.FrameRemoved,{frameId:A})}async search(A,I){if(!A||!A.trim())return!1;const g=A.trim().split(/[\s;]+/).filter(Boolean);if(0===g.length)return!1;let t=await this._resolveSearchToken(g[0]);if(!t&&g.length>1&&(t=await this._resolveSearchToken(A.trim().replace(/ /g,"+")),t)){const A=null!=I?I:this._frames[0].id;return this.setFrameLocus(A,t),!0}if(!t)return!1;const C=null!=I?I:this._frames[0].id;this.setFrameLocus(C,t);for(let A=1;A<g.length;A++){const I=await this._resolveSearchToken(g[A]);I&&this.addFrame(I,this._frames[this._frames.length-1].id)}return!0}searchLocalTracks(A){for(const I of this.managedTracks){if(!I.searchable||!I.nameIndex)continue;const g=I.nameIndex.search(A);if(g){return{chr:this.genome?this.genome.getChromosomeName(g.chr):g.chr,start:g.start,end:g.end}}}return null}async _resolveSearchToken(A){var I;const g=A.trim();if(!g)return null;if(this.genome&&mi(g)){const A=await Ri(g,A=>this.genome.getAliasRecord(A),this._createTranscriptProvider());if(A){return{chr:this.genome.getChromosomeName(A.chr),start:A.start,end:A.end}}}const t=c(g,this.cumulativeOffsets);if(t){if(!this.genome)return t;if(null!=this.genome.getChromosomeLength(this.genome.getChromosomeName(t.chr)))return t.chr=this.genome.getChromosomeName(t.chr),t}if(this.genome){const A=this.genome.getChromosomeName(g),I=this.genome.getChromosomeLength(A);if(null!=I)return{chr:A,start:0,end:I}}if(null===(I=this.genome)||void 0===I?void 0:I.getManeTranscript){const A=await this.genome.getManeTranscript(g);if(null==A?void 0:A.chr){return{chr:this.genome.getChromosomeName(A.chr),start:A.start,end:A.end}}}const C=this.searchLocalTracks(g);if(C)return C;if(this.genome){const A=await Ni(g,this.genome.id);if(A){return{chr:this.genome.getChromosomeName(A.chr),start:A.start,end:A.end}}}return null}_createTranscriptProvider(){var A;if(null===(A=this.genome)||void 0===A?void 0:A.getManeTranscript)return async A=>{const I=await this.genome.getManeTranscript(A);if((null==I?void 0:I.chr)&&I.strand)return I}}zoomIn(A=2,I){this.zoomByFactor(1/A,I)}zoomOut(A=2,I){this.zoomByFactor(A,I)}zoomByFactor(A,I){this.zoomAroundCenter(A,void 0,I)}zoomAroundCenter(A,I,g){var t;const C=g&&null!==(t=this._frames.find(A=>A.id===g))&&void 0!==t?t:this._frames[0];if(h(C.locus))return;const e=null!=I?I:(C.locus.start+C.locus.end)/2,B=C.locus.end-C.locus.start;let i=B*A;if(A>1&&this.chromSizes&&C.viewportWidth>0){const A=this.chromSizes[C.locus.chr];if(null!=A){if(B>=A&&this.cumulativeOffsets)return void this.setFrameLocus(C.id,{chr:"all",start:0,end:this.cumulativeOffsets.totalLength});i=Math.min(i,A)}}if(null!=I){const A=(I-C.locus.start)/B;this.setFrameLocus(C.id,{chr:C.locus.chr,start:I-A*i,end:I-A*i+i})}else{const A=i/2;this.setFrameLocus(C.id,{chr:C.locus.chr,start:e-A,end:e+A})}}reloadData(){for(const A of this.managedTracks)A.dataSource&&A.cache.clear();this.loadAllTracksIfNeeded()}getCachedFeatures(A){var I;const g=this.managedTracks.find(I=>I.track===A);return null===(I=null==g?void 0:g.cache.getMostRecent())||void 0===I?void 0:I.features}render(){if(0!==this._frames[0].viewportWidth)for(const A of this.managedTracks){try{A.track.render()}catch(I){const g=Ki(I);P.error("Render error:",g),A.track.setError(g),this.events.emit(AQ.RenderError,{track:A.track,error:g})}for(const I of A.frameInstances.values())try{I.render()}catch(A){const g=Ki(A);P.error("Render error (frame instance):",g),I.setError(g)}}}addROI(A,I="User-defined"){return this._snapshotForUndo("roi"),this.roiManager.addROI(A,I)}addROISet(A){return this._snapshotForUndo("roi"),this.roiManager.addROISet(A)}removeROI(A){return this._snapshotForUndo("roi"),this.roiManager.removeROI(A)}updateROI(A,I){return this._snapshotForUndo("roi"),this.roiManager.updateROI(A,I)}removeROISet(A){return this._snapshotForUndo("roi"),this.roiManager.removeROISet(A)}clearROIs(){this._snapshotForUndo("roi"),this.roiManager.clear()}getROIs(){return this.roiManager.getROIs()}getROISets(){return this.roiManager.getROISets()}findROIsAtLocus(A,I,g){return this.roiManager.findROIsAtLocus(A,I,g)}getVisibleROIs(){return this.roiManager.getVisibleROIs(this._frames[0].locus)}toSVG(A){var I,g;const t=null!==(I=null==A?void 0:A.width)&&void 0!==I?I:this._frames[0].viewportWidth;if(0===t)throw new Error("Cannot export SVG with zero viewport width");let C=0;const e=[];for(const A of this.managedTracks){const I=A.track.height||50;e.push(I),C+=I}const B=new R({width:t,height:C,viewbox:{x:0,y:0,width:t,height:C},backdropColor:null!==(g=null==A?void 0:A.backdropColor)&&void 0!==g?g:"white"});let i=0;for(let A=0;A<this.managedTracks.length;A++){const I=this.managedTracks[A].track,g=e[A],C=`track_${A}_${I.type}`;B.saveWithTranslationAndClipRect(C,0,i,t,g,0),I.renderToContext&&I.renderToContext(B,t,g),B.restore(),i+=g}const Q=this.getVisibleROIs();if(Q.length>0){const A=this._frames[0].locus,I=(A.end-A.start)/t;u(B,Q,{pixelWidth:t,bpStart:A.start,bpPerPixel:I,viewportWidth:t},{totalHeight:C})}return B.setHeight(C),B.getSerializedSvg(!0)}toJSON(){var A;const I=[];for(const g of this.managedTracks){if(g.isEphemeral)continue;const t=g.track.serializeConfig(this.theme);t.id=g.id,g.name&&(t.name=g.name),null!=g.order&&(t.order=g.order),g.metadata&&(t.metadata=g.metadata),g.searchable&&(t.searchable=!0),(null===(A=g.nameIndex)||void 0===A?void 0:A.searchableFields)&&(t.searchableFields=[...g.nameIndex.searchableFields]),g.dataSourceConfig&&"ruler"!==t.type&&"sequence"!==t.type&&"merged"!==t.type&&"wigGroup"!==t.type&&"ideogram"!==t.type&&(t.dataSource=g.dataSourceConfig),I.push(t)}const g=this.genome?{id:this.genome.id,name:this.genome.name}:void 0;return{version:"1.0",frames:this._frames.map(A=>({id:A.id,locus:{...A.locus},viewportWidth:A.viewportWidth||void 0})),locus:{...this._frames[0].locus},viewportWidth:this._frames[0].viewportWidth||void 0,genome:g,tracks:I,rois:this.roiManager.serialize()}}loadSession(A,I){var g,t;this._snapshotForUndo("session-load");for(const A of this.managedTracks){A.abortController&&A.abortController.abort();for(const I of A.frameAbortControllers.values())null==I||I.abort();A.frameAbortControllers.clear()}this.managedTracks=[],this.roiManager.clear(),A.frames&&A.frames.length>0?this._frames=A.frames.map(A=>{var I;return r({...A.locus},null!==(I=A.viewportWidth)&&void 0!==I?I:this._frames[0].viewportWidth,A.id)}):(this._frames[0].locus={...A.locus},A.viewportWidth&&(this._frames[0].viewportWidth=A.viewportWidth),n(this._frames[0]));const C={canvasProvider:this.canvasProvider,theme:null==I?void 0:I.theme,sequenceProvider:this.sequenceProvider},e=this.factoryContext();this._deferSort=!0;try{for(const I of A.tracks){const A=li(I,this._frames[0].locus,C);let B=A.dataSource;if(B&&A.dataSourceConfig&&this.dataSourceWorkerProvider){const I=A.dataSourceConfig.type;if("bigwig"===I||"gtx"===I||"text"===I||"ucsc"===I){const I=Xi(A.dataSourceConfig,e);I&&(B=I)}}!this.dataSourceWorkerProvider&&B&&zi(B,e),this.addTrack(A.track,null!=B?B:void 0,null!==(g=A.dataSourceConfig)&&void 0!==g?g:void 0,void 0,null!==(t=A.order)&&void 0!==t?t:void 0);const i=this.findMT(A.track);I.id&&(i.id=I.id),A.name&&(i.name=A.name),I.metadata&&(i.metadata=I.metadata)}}finally{this._deferSort=!1,this.sortTracks()}if(A.rois)for(const I of A.rois)this.roiManager.addROISet(I);this.events.emit(AQ.LocusChange,{frames:[...this._frames],locus:this._frames[0].locus})}static fromSession(A,I){var g,t;const C=new CQ({locus:A.locus,viewportWidth:null!==(g=A.viewportWidth)&&void 0!==g?g:null==I?void 0:I.viewportWidth,canvasProvider:null==I?void 0:I.canvasProvider,workerProvider:null==I?void 0:I.workerProvider,theme:null!==(t=A.theme)&&void 0!==t?t:null==I?void 0:I.theme});return C.loadSession(A,I),C}addTrackFromConfig(A){var I;if(A.id){const I=this.getManagedTrack(A.id);if(I)return I.track}const g=ci(A,this._frames[0].locus,{canvasProvider:this.canvasProvider,theme:this.theme,sequenceProvider:this.sequenceProvider}),t=this.factoryContext();let C=g.dataSourceConfig;var e;C&&(e=C.type,!Mt.has(e))&&(C=Lt(C));let B=g.dataSource;if(B&&C&&this.dataSourceWorkerProvider){const A=C.type;if("bigwig"===A||"gtx"===A||"text"===A||"ucsc"===A){const A=Xi(C,t);A&&(B=A)}}const i=B!==g.dataSource;if(B&&!i)if("childSources"in B&&Array.isArray(B.childSources))for(const A of B.childSources)zi(A,t);else zi(B,t);this.addTrack(g.track,null!=B?B:void 0,null!=C?C:void 0,void 0,null!==(I=g.order)&&void 0!==I?I:void 0);const Q=this.findMT(g.track);return A.id&&(Q.id=A.id),g.name&&(Q.name=g.name),A.metadata&&(Q.metadata=A.metadata),g.searchable&&(Q.searchable=!0,Q.nameIndex=new Ji(g.searchableFields)),g.track}registerFactory(A){this.addTrack(A.track,A.dataSource,A.dataSourceConfig,A.maxTrackHeight,A.order);const I=this.findMT(A.track);if(A.metadata&&(I.metadata=A.metadata),A.searchable&&(I.searchable=!0,I.nameIndex=new Ji(A.searchableFields)),A.onRegistered){const I=A.track;A.onRegistered(()=>{const A=this.managedTracks.find(A=>A.track===I);return null!=A?A:{cache:new D,dataSourceConfig:null}})}return A.track}addRuler(A){return this.registerFactory(function(A,I){const{canvas:g}=A.canvasProvider.createCanvas(0,0);return{track:new sC(g,{locus:A.locus,config:null==I?void 0:I.config,theme:A.theme,canvasProvider:A.canvasProvider,cumulativeOffsets:A.cumulativeOffsets,chromSizes:A.chromSizes}),maxTrackHeight:null==I?void 0:I.maxTrackHeight}}(this.factoryContext(),A))}addWigTrack(A,I){const g=function(A,I,g){var t;const{canvas:C}=A.canvasProvider.createCanvas(0,0),e=null!==(t=null==g?void 0:g.windowFunction)&&void 0!==t?t:"mean",B=new IC(C,{locus:A.locus,features:[],config:null==g?void 0:g.config,theme:A.theme,canvasProvider:A.canvasProvider,name:null==g?void 0:g.name,sequenceProvider:A.sequenceProvider}),i={type:"bigwig",url:I,windowFunction:e,...null==g?void 0:g.auth},Q=Vi(A,g),{dataSource:o,workerDS:E}=ji(i,()=>new FC(I,e,Q),A);return{track:B,dataSource:o,dataSourceConfig:i,maxTrackHeight:null==g?void 0:g.maxTrackHeight,metadata:null==g?void 0:g.metadata,onRegistered:A=>{B.onWindowFunctionChange=I=>{E?E.setWindowFunction(I):o.setWindowFunction(I);const g=A();g&&(g.cache.clear(),g.dataSourceConfig&&"bigwig"===g.dataSourceConfig.type&&(g.dataSourceConfig.windowFunction=I))}}}}(this.factoryContext(),A,I),t=this.registerFactory(g);return g.onRegistered&&$i(t,()=>this.loadAllTracksIfNeeded()),t}addGtxTrack(A,I){const g=function(A,I,g){var t;const{canvas:C}=A.canvasProvider.createCanvas(0,0),e=null!==(t=g.windowFunction)&&void 0!==t?t:"mean",B=new IC(C,{locus:A.locus,features:[],config:g.config,theme:A.theme,canvasProvider:A.canvasProvider,name:g.name,sequenceProvider:A.sequenceProvider}),i={type:"gtx",url:I,experimentId:g.experimentId,windowFunction:e,...null==g?void 0:g.auth},Q=Vi(A,g),{dataSource:o,workerDS:E}=ji(i,()=>new zC(I,g.experimentId,e,Q),A);return{track:B,dataSource:o,dataSourceConfig:i,maxTrackHeight:null==g?void 0:g.maxTrackHeight,metadata:null==g?void 0:g.metadata,onRegistered:A=>{B.onWindowFunctionChange=I=>{E?E.setWindowFunction(I):o.setWindowFunction(I);const g=A();g&&(g.cache.clear(),g.dataSourceConfig&&"gtx"===g.dataSourceConfig.type&&(g.dataSourceConfig.windowFunction=I))}}}}(this.factoryContext(),A,I),t=this.registerFactory(g);return g.onRegistered&&$i(t,()=>this.loadAllTracksIfNeeded()),t}addGeneTrack(A){return this.registerFactory(function(A,I){var g,t;const{canvas:C}=A.canvasProvider.createCanvas(0,0),e=new iC(C,{locus:A.locus,features:[],config:null==I?void 0:I.config,theme:A.theme,canvasProvider:A.canvasProvider,name:null!==(g=null==I?void 0:I.name)&&void 0!==g?g:"Genes"}),B=null==I?void 0:I.genome,i=null==I?void 0:I.track,Q={type:"ucsc",genome:B,track:i},{dataSource:o}=ji(Q,()=>new te({genome:B,track:i}),A);return{track:e,dataSource:o,dataSourceConfig:Q,maxTrackHeight:null==I?void 0:I.maxTrackHeight,metadata:null==I?void 0:I.metadata,order:-1,searchable:null===(t=null==I?void 0:I.searchable)||void 0===t||t,searchableFields:null==I?void 0:I.searchableFields}}(this.factoryContext(),A))}addBedTrack(A,I){return this.registerFactory(function(A,I,g){var t;const{canvas:C}=A.canvasProvider.createCanvas(0,0),e=null==g?void 0:g.format,B=new iC(C,{locus:A.locus,features:[],config:null==g?void 0:g.config,theme:A.theme,canvasProvider:A.canvasProvider,name:null==g?void 0:g.name}),i={type:"text",url:I,format:e,indexURL:null==g?void 0:g.indexURL,indexed:null==g?void 0:g.indexed,...null==g?void 0:g.auth},Q=Vi(A,g),{dataSource:o}=ji(i,()=>new aB({url:I,format:e,indexURL:null==g?void 0:g.indexURL,indexed:null==g?void 0:g.indexed,fetchImpl:Q}),A);return{track:B,dataSource:o,dataSourceConfig:i,maxTrackHeight:null==g?void 0:g.maxTrackHeight,metadata:null==g?void 0:g.metadata,searchable:null===(t=null==g?void 0:g.searchable)||void 0===t||t,searchableFields:null==g?void 0:g.searchableFields}}(this.factoryContext(),A,I))}addInteractionTrack(A,I){return this.registerFactory(function(A,I,g){var t;const{canvas:C}=A.canvasProvider.createCanvas(0,0),e=null==g?void 0:g.format,B=new uB(C,{locus:A.locus,features:[],config:null==g?void 0:g.config,theme:A.theme,canvasProvider:A.canvasProvider,name:null==g?void 0:g.name}),i={type:"text",url:I,format:e,indexURL:null==g?void 0:g.indexURL,indexed:null==g?void 0:g.indexed,...null==g?void 0:g.auth},Q=Vi(A,g),{dataSource:o}=ji(i,()=>new aB({url:I,format:e,indexURL:null==g?void 0:g.indexURL,indexed:null==g?void 0:g.indexed,fetchImpl:Q}),A);return{track:B,dataSource:o,dataSourceConfig:i,metadata:null==g?void 0:g.metadata,searchable:null===(t=null==g?void 0:g.searchable)||void 0===t||t,searchableFields:null==g?void 0:g.searchableFields}}(this.factoryContext(),A,I))}addWigTrackWithFeatures(A,I){return this.registerFactory(function(A,I,g){const{canvas:t}=A.canvasProvider.createCanvas(0,0),C=new IC(t,{locus:A.locus,features:[],config:null==g?void 0:g.config,theme:A.theme,canvasProvider:A.canvasProvider,name:null==g?void 0:g.name,sequenceProvider:A.sequenceProvider}),e=new rB(I);return zi(e,A),{track:C,dataSource:e,dataSourceConfig:{type:"memory"},maxTrackHeight:null==g?void 0:g.maxTrackHeight,metadata:null==g?void 0:g.metadata}}(this.factoryContext(),A,I))}addBedTrackWithFeatures(A,I){return this.registerFactory(function(A,I,g){var t;const{canvas:C}=A.canvasProvider.createCanvas(0,0),e=new iC(C,{locus:A.locus,features:[],config:null==g?void 0:g.config,theme:A.theme,canvasProvider:A.canvasProvider,name:null==g?void 0:g.name}),B=new rB(I);return zi(B,A),{track:e,dataSource:B,dataSourceConfig:{type:"memory"},maxTrackHeight:null==g?void 0:g.maxTrackHeight,metadata:null==g?void 0:g.metadata,searchable:null===(t=null==g?void 0:g.searchable)||void 0===t||t,searchableFields:null==g?void 0:g.searchableFields}}(this.factoryContext(),A,I))}addSequenceTrack(A){const I={type:"sequence",config:null==A?void 0:A.config},g=this.addTrackFromConfig(I);if(null!=(null==A?void 0:A.maxTrackHeight)){const I=this.managedTracks.find(A=>A.track===g);I&&(I.maxTrackHeight=A.maxTrackHeight)}return g}addIdeogramTrack(A){return this.registerFactory(function(A,I){var g;const{canvas:t}=A.canvasProvider.createCanvas(0,0);let C=null==I?void 0:I.cytobands,e=null==I?void 0:I.chrLength;return!C&&(null===(g=A.genome)||void 0===g?void 0:g.getCytobands)&&(C=A.genome.getCytobands(A.locus.chr),e=A.genome.getChromosomeLength(A.locus.chr)),{track:new ei(t,{locus:A.locus,config:null==I?void 0:I.config,theme:A.theme,canvasProvider:A.canvasProvider,cytobands:null!=C?C:[],chrLength:null!=e?e:0})}}(this.factoryContext(),A))}mergeTracks(A,I){if(A.length<2)throw new Error("mergeTracks requires at least 2 track IDs");this._snapshotForUndo("track-add"),this._undoManager.pause();try{const g=[];for(const I of A){const A=this.managedTracks.find(A=>A.id===I);if(!A)throw new Error(`Track not found: "${I}"`);g.push(A)}const t=g[0].order,C=g.map(A=>({track:A.track,name:A.name})),e=g.map(A=>A.dataSource).filter(A=>null!=A),B=g.map(A=>A.name),{canvas:i}=this.canvasProvider.createCanvas(0,0),Q=new kB(i,{locus:this._frames[0].locus,childTracks:C,config:null==I?void 0:I.config,theme:this.theme,canvasProvider:this.canvasProvider,name:null==I?void 0:I.name}),o=e.length>0?new FB(e,B):null;for(const A of g)A.dataSource=null,this.removeTrack(A.id);if(this.addTrack(Q,null!=o?o:void 0,void 0,void 0,t),null==I?void 0:I.name){const A=this.managedTracks.find(A=>A.track===Q);A&&(A.name=I.name)}return Q}finally{this._undoManager.resume()}}separateMergedTrack(A){const I=this.managedTracks.find(I=>I.id===A);if(!I)throw new Error(`Track not found: "${A}"`);if(!(I.track instanceof kB))throw new Error(`Track "${A}" is not a merged track`);this._snapshotForUndo("track-remove"),this._undoManager.pause();try{const A=I.track,g=I.order,t=A.childTracks,C=I.dataSource instanceof FB?I.dataSource.childSources:[];I.dataSource=null,this.removeTrack(I.id);const e=[];for(let A=0;A<t.length;A++){const I=t[A],B=C[A];if(this.addTrack(I.track,B,void 0,void 0,g),I.name){const A=this.managedTracks.find(A=>A.track===I.track);A&&(A.name=I.name)}e.push(I.track)}return e}finally{this._undoManager.resume()}}setTheme(A){this._snapshotForUndo("theme"),this._theme=L(A);for(const A of this.managedTracks){A.track.setTheme(this._theme);for(const I of A.frameInstances.values())I.setTheme(this._theme)}this.events.emit(AQ.ThemeChanged,{theme:this._theme})}dispose(){this.dataManager.dispose(),this.events.removeAllListeners(),this.popupProvider&&this.popupProvider.dispose(),this.contextMenuProvider&&this.contextMenuProvider.dispose();for(const A of this.managedTracks){A.abortController&&A.abortController.abort();for(const I of A.frameAbortControllers.values())null==I||I.abort();A.frameAbortControllers.clear(),A.dataSource&&this.dataManager.destroyWorkerDataSource(A.dataSource)}this.managedTracks=[],this.roiManager.clear()}resolveInteraction(A,I,g){const t=A.hitTest(I,g);if(0===t.length)return null;const C=this._frames[0],e=C.viewportWidth>0?(C.locus.end-C.locus.start)/C.viewportWidth:0;return{track:A,genomicLocation:C.locus.start+I*e,features:t.map(A=>A.feature),popupData:t.flatMap(A=>A.popupData),x:I,y:g}}loadAllTracksIfNeeded(){this.dataManager.loadAllTracksIfNeeded(this.managedTracks,this._frames)}}class eQ extends Error{constructor(A,I){super(`Worker task '${A}' timed out after ${I}ms`),this.name="TaskTimeoutError"}}function BQ(A){const I=new Error(A.message);return I.name=A.name,A.stack&&(I.stack=A.stack),I}class iQ{constructor(A){var I,g;this.nextId=0,this.nextWorker=0,this.pending=new Map,this.instanceToWorker=new Map,this.pendingFetches=new Map,this.nextFetchId=0,this.taskTimeoutMs=null!==(I=A.taskTimeoutMs)&&void 0!==I?I:3e4,this.authProvider=A.authProvider;const t=Math.max(1,null!==(g=A.poolSize)&&void 0!==g?g:1);let C;if(A.workerFactory)C=A.workerFactory;else{if(!A.workerUrl)throw new Error("WebWorkerPoolOptions requires either workerUrl or workerFactory");{const I=A.workerUrl;C=()=>new Worker(I,{type:"module"})}}this.workers=[],this.readyPromises=[];for(let A=0;A<t;A++){const A=C();let I;const g=new Promise((g,t)=>{I=t;A.addEventListener("message",A=>{"ready"===A.data.type&&g()},{once:!0})});g.catch(()=>{}),this.readyPromises.push(g),A.onmessage=I=>{const g=I.data;if("ready"!==g.type)if("taskResult"===g.type){const A=this.pending.get(g.id);A&&(this.pending.delete(g.id),g.error?A.reject(BQ(g.error)):A.resolve(g.result))}else if("fetchResult"===g.type){const A=this.pendingFetches.get(g.fetchId);A&&(this.pendingFetches.delete(g.fetchId),A.resolve(g.features))}else if("fetchError"===g.type){const A=this.pendingFetches.get(g.fetchId);A&&(this.pendingFetches.delete(g.fetchId),"AbortError"===g.error?A.reject(new DOMException("Aborted","AbortError")):A.reject(new Error(g.error)))}else"auth-challenge"===g.type&&this.handleAuthChallenge(A,g.challengeId,g.url)},A.onerror=A=>{const g=new Error(`Worker error: ${A.message}`);I(g);for(const{reject:A}of this.pending.values())A(g);this.pending.clear();for(const{reject:A}of this.pendingFetches.values())A(g);this.pendingFetches.clear()},this.workers.push(A)}}get poolSize(){return this.workers.length}execute(A,I){const g=this.nextId++,t=this.workers[this.nextWorker%this.workers.length];this.nextWorker++;return function(A,I,g){return I<=0?A:new Promise((t,C)=>{const e=setTimeout(()=>C(new eQ(g,I)),I);A.then(A=>{clearTimeout(e),t(A)},A=>{clearTimeout(e),C(A)})})}(new Promise((C,e)=>{this.pending.set(g,{resolve:C,reject:e}),t.postMessage({type:"task",id:g,task:A},null!=I?I:[])}),this.taskTimeoutMs,A.task)}create(A,I){const g=this.routeToWorker(I);this.instanceToWorker.set(A,g);const t=this.workers[g];this.readyPromises[g].then(()=>{t.postMessage({type:"create",instanceId:A,config:I})})}async fetch(A,I,g,t){const C=this.instanceToWorker.get(A);if(void 0===C)throw new Error(`No worker assigned for DataSource: ${A}`);await this.readyPromises[C];const e=this.nextFetchId++,B=this.workers[C],i=()=>{B.postMessage({type:"cancel",fetchId:e});const A=this.pendingFetches.get(e);A&&(this.pendingFetches.delete(e),A.reject(new DOMException("Aborted","AbortError")))};if(t.addEventListener("abort",i,{once:!0}),t.aborted)throw t.removeEventListener("abort",i),new DOMException("Aborted","AbortError");try{return await new Promise((t,C)=>{this.pendingFetches.set(e,{resolve:t,reject:C}),B.postMessage({type:"fetch",instanceId:A,fetchId:e,locus:I,bpPerPixel:g})})}finally{t.removeEventListener("abort",i)}}configure(A,I,...g){const t=this.instanceToWorker.get(A);if(void 0===t)return;const C=this.workers[t];this.readyPromises[t].then(()=>{C.postMessage({type:"configure",instanceId:A,method:I,args:g})})}destroy(A){const I=this.instanceToWorker.get(A);if(void 0===I)return;this.workers[I].postMessage({type:"destroy",instanceId:A}),this.instanceToWorker.delete(A)}dispose(){for(const A of this.workers)A.terminate();for(const{reject:A}of this.pending.values())A(new Error("Worker terminated"));this.pending.clear();for(const{reject:A}of this.pendingFetches.values())A(new Error("Worker terminated"));this.pendingFetches.clear(),this.instanceToWorker.clear(),this.readyPromises=[],this.workers=[]}handleAuthChallenge(A,I,g){this.authProvider?this.authProvider.getCredentials(g).then(g=>{var t,C;A.postMessage({type:"auth-refresh",challengeId:I,credentials:g?{oauthToken:null===(C=null===(t=g.headers)||void 0===t?void 0:t.Authorization)||void 0===C?void 0:C.replace(/^Bearer\s+/i,""),headers:g.headers,withCredentials:g.withCredentials}:void 0})}).catch(g=>{P.error("Auth challenge resolution failed:",g),A.postMessage({type:"auth-refresh",challengeId:I,credentials:void 0})}):A.postMessage({type:"auth-refresh",challengeId:I,credentials:void 0})}routeToWorker(A){const I="url"in A?A.url:A.type;return Math.abs(function(A){let I=5381;for(let g=0;g<A.length;g++)I=(I<<5)+I+A.charCodeAt(g)|0;return I}(I))%this.workers.length}}class QQ extends Error{constructor(A,I){super(I),this.code=A,this.name="CommandError"}}function oQ(A){const I={};return void 0!==A.id&&(I.id=A.id),void 0!==A.nameRegex?I.name=new RegExp(A.nameRegex,"i"):void 0!==A.name&&(I.name=A.name),void 0!==A.type&&(I.type=A.type),void 0!==A.where&&(I.where=A.where),I}class EQ{constructor(A,I){this.browser=A,this.options=null!=I?I:{}}async dispatch(A){switch(A.command){case"get_browser_state":return this.handleGetState(A);case"navigate":return this.handleNavigate(A);case"modify_tracks":return this.handleModifyTracks(A);case"query_features":return this.handleQueryFeatures(A);case"annotate":return this.handleAnnotate();case"set_layout":return this.handleSetLayout(A);case"export_view":return this.handleExportView(A);case"manage_rois":return this.handleManageROIs(A);case"subscribe_events":return this.handleSubscribeEvents(A);default:throw new QQ("UNKNOWN_COMMAND",`Unknown command: ${A.command}`)}}handleGetState(A){return this.browser.state.getState(A.record?{record:A.record}:void 0)}async handleNavigate(A){if(!A.locus&&!A.zoom)throw new QQ("INVALID_ARGS","navigate requires at least one of: locus, zoom");let I=!0;if(A.locus)if(A.frameId){const g=c(A.locus);if(g)this.browser.setFrameLocus(A.frameId,g);else{const g=await this.browser.search(A.locus);if(!g)throw new QQ("NAVIGATION_FAILED",`Could not navigate to: "${A.locus}"`);I=g}}else{const g=await this.browser.search(A.locus);if(!g)throw new QQ("NAVIGATION_FAILED",`Could not navigate to: "${A.locus}"`);I=g}return"in"===A.zoom?this.browser.zoomIn(A.factor):"out"===A.zoom&&this.browser.zoomOut(A.factor),I}handleModifyTracks(A){var I;if(!A.actions||0===A.actions.length)throw new QQ("INVALID_ARGS","modify_tracks requires at least one action");const g=[];for(const t of A.actions)switch(t.action){case"add":try{const A=this.browser.addTrackFromConfig(t.config),I=this.browser.getManagedTracks().find(I=>I.track===A);g.push({action:"add",success:!0,trackId:null==I?void 0:I.id})}catch(A){g.push({action:"add",success:!1,error:null!==(I=A.message)&&void 0!==I?I:"Unknown error adding track"})}break;case"remove":{const A=this.browser.removeTracks(oQ(t.selector));g.push({action:"remove",success:A>0,count:A});break}case"find":{const A=this.browser.findTracks(oQ(t.selector)).map(A=>sQ(A));g.push({action:"find",success:!0,tracks:A});break}case"update_metadata":{const A=this.browser.updateTrackMetadata(oQ(t.selector),t.metadata);g.push({action:"update_metadata",success:A>0,count:A});break}default:g.push({action:t.action,success:!1,error:`Unknown action: ${t.action}`})}return{results:g}}handleQueryFeatures(A){var I;const g=this.browser.getTrack(A.trackId);if(!g)throw new QQ("TRACK_NOT_FOUND",`No track with id '${A.trackId}'`);const t=null!==(I=this.browser.getCachedFeatures(g))&&void 0!==I?I:[];if(A.summarize){const I=this.browser.state.getState().tracks.find(I=>I.id===A.trackId);return{trackId:A.trackId,featureCount:t.length,summary:null==I?void 0:I.featureSummary}}return{trackId:A.trackId,featureCount:t.length,features:t}}handleAnnotate(){throw new QQ("NOT_IMPLEMENTED","Annotations are not yet supported (Phase 3)")}async handleSetLayout(A){if(!A.tracks)throw new QQ("INVALID_ARGS","set_layout requires a tracks array");const I=[...this.browser.getManagedTracks()],g=new Set,t=[],C=[];for(const e of A.tracks){const A=this.findMatchingTrack(e,I,g);A?(g.add(A.id),C.push(A.id)):t.push(e)}const e=[];for(const A of I)g.has(A.id)||(this.browser.removeTrack(A.id),e.push(A.id));const B=[];for(const A of t){const I=this.browser.addTrackFromConfig(A),g=this.browser.getManagedTracks().find(A=>A.track===I);g&&B.push(g.id)}return A.locus&&await this.browser.search(A.locus),{added:B,removed:e,unchanged:C}}findMatchingTrack(A,I,g){if(A.id)return I.find(I=>I.id===A.id&&!g.has(I.id));const t=this.layoutMatchKey(A);return I.find(I=>!g.has(I.id)&&(I.track.type===A.type&&(I.dataSourceConfig?t===xi(I.dataSourceConfig):!t)))}layoutMatchKey(A){if("dataSource"in A&&A.dataSource)return xi(A.dataSource)}async handleExportView(A){switch(A.format){case"svg":return this.browser.toSVG(A.width?{width:A.width}:void 0);case"png":if(!this.options.supportsPNG||!this.options.exportPNG)throw new QQ("EXPORT_UNAVAILABLE","PNG export requires a DOM-attached GenomeBrowser");return this.options.exportPNG();case"session":return this.browser.toJSON();default:throw new QQ("INVALID_ARGS",`Unknown export format: ${A.format}`)}}handleManageROIs(A){const{action:I}=A;switch(I.action){case"add":return{action:"add",roi:this.browser.addROI(I.roi,I.setName)};case"remove":return{action:"remove",success:this.browser.removeROI(I.roiId)};case"update":return{action:"update",roi:this.browser.updateROI(I.roiId,I.changes)};case"clear":return this.browser.clearROIs(),{action:"clear"};case"list":return{action:"list",rois:this.browser.getROIs()};case"list_sets":return{action:"list_sets",sets:this.browser.getROISets().map(A=>A.toJSON())};case"find_at_locus":return{action:"find_at_locus",rois:this.browser.findROIsAtLocus(I.chr,I.start,I.end)};case"get_visible":return{action:"get_visible",rois:this.browser.getVisibleROIs()};default:throw new QQ("INVALID_ARGS",`Unknown ROI action: ${I.action}`)}}handleSubscribeEvents(A){var I,g;if(!Array.isArray(A.events))throw new QQ("INVALID_ARGS","subscribe_events requires an events array");const t=new Set(Object.values(AQ)),C=[];for(const I of A.events)if("*"===I)C.push("*");else{if(!t.has(I))throw new QQ("INVALID_ARGS",`Unknown event name: "${I}". Valid events: ${[...t].join(", ")}`);C.push(I)}return null===(g=(I=this.options).onSubscribeEvents)||void 0===g||g.call(I,C),{subscribed:C}}}function sQ(A){return{id:A.id,type:A.track.type,name:A.name,metadata:A.metadata,loading:null!=A.dataSource&&null==A.cache}}class aQ{constructor(A,I,g){this.unsubscribers=[],this.detached=!1,this.subscribedEvents=null,this.browser=A,this.socket=I,this.dispatcher=new EQ(A,{...g,onSubscribeEvents:A=>{this.subscribedEvents=new Set(A)}}),this.messageHandler=A=>{this.handleMessage(A.data)},this.closeHandler=()=>this.detach(),I.addEventListener("message",this.messageHandler),I.addEventListener("close",this.closeHandler),this.subscribeToEvents()}detach(){if(!this.detached){this.detached=!0;for(const A of this.unsubscribers)A();this.unsubscribers=[],this.socket.removeEventListener("message",this.messageHandler),this.socket.removeEventListener("close",this.closeHandler)}}get isDetached(){return this.detached}async handleMessage(A){var I;let g;try{g=JSON.parse(A)}catch(A){return}if(g.id&&g.command)try{const A={command:g.command,...g.args},I=await this.dispatcher.dispatch(A);this.send({id:g.id,result:I})}catch(A){A instanceof QQ?this.send({id:g.id,error:{code:A.code,message:A.message}}):this.send({id:g.id,error:{code:"INTERNAL_ERROR",message:null!==(I=A.message)&&void 0!==I?I:"Unknown error"}})}}send(A){1!==this.socket.readyState||this.detached||this.socket.send(JSON.stringify(A))}subscribeToEvents(){const A=Object.values(AQ);for(const I of A){const A=this.browser.on(I,A=>{this.subscribedEvents&&(this.subscribedEvents.has("*")||this.subscribedEvents.has(I))&&this.send({event:I,data:this.sanitizeEventData(I,A)})});this.unsubscribers.push(A)}}sanitizeEventData(A,I){if(A===AQ.LocusChange)return I;if(A===AQ.ROIClick||A===AQ.ROIContextMenu)return I;if(A===AQ.ROIAdded||A===AQ.ROIRemoved||A===AQ.ROIChanged){const A=I;return{roi:A.roi,setName:A.set.name,...A.changes?{changes:A.changes}:{}}}if(A===AQ.TrackOrderChanged){return{trackIds:I.tracks.map(A=>this.findTrackId(A))}}if(A===AQ.DataError||A===AQ.RenderError){const A=I,g=this.findManagedTrack(A.track);return{trackId:null==g?void 0:g.id,trackType:A.track.type,trackName:null==g?void 0:g.name,error:A.error.message}}if(A===AQ.TrackClick||A===AQ.TrackHover||A===AQ.TrackContextMenu){const A=I,g=this.findManagedTrack(A.track);return{trackId:null==g?void 0:g.id,trackType:A.track.type,trackName:null==g?void 0:g.name,genomicLocation:A.genomicLocation,featureCount:A.features.length}}const g=I;if("track"in g){const A=this.findManagedTrack(g.track);return{trackId:null==A?void 0:A.id,trackType:g.track.type,trackName:null==A?void 0:A.name}}return I}findManagedTrack(A){return this.browser.getManagedTracks().find(I=>I.track===A)}findTrackId(A){var I;return null===(I=this.findManagedTrack(A))||void 0===I?void 0:I.id}}const rQ="http://www.w3.org/2000/svg",nQ="rgb(0, 0, 150)";class hQ{constructor(A){this.svg=document.createElementNS(rQ,"svg"),this.svg.classList.add("loom-feature-overlay"),this.svg.style.cssText="\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n pointer-events: none;\n overflow: visible;\n ",this.defs=document.createElementNS(rQ,"defs"),this.svg.appendChild(this.defs),this.group=document.createElementNS(rQ,"g"),this.group.style.pointerEvents="auto",this.svg.appendChild(this.group),A.style.position="relative",A.appendChild(this.svg)}update(A){var I;if(this.group.textContent="",this.defs.textContent="",0===A.length||A.length>500)return;const g=document.createDocumentFragment();for(let t=0;t<A.length;t++){const C=A[t],e=null!==(I=C.color)&&void 0!==I?I:nQ,B=`glow-${t}`;this.defs.appendChild(this.createGlowFilter(B,e)),g.appendChild(this.createRect(C,B))}this.group.appendChild(g)}setSuppressed(A){this.group.style.pointerEvents=A?"none":"auto"}setVisible(A){this.svg.style.display=A?"":"none"}dispose(){this.svg.remove()}createGlowFilter(A,I){const g=document.createElementNS(rQ,"filter");g.setAttribute("id",A),g.setAttribute("x","-20%"),g.setAttribute("y","-40%"),g.setAttribute("width","140%"),g.setAttribute("height","180%");const t=document.createElementNS(rQ,"feFlood");t.setAttribute("flood-color",I),t.setAttribute("flood-opacity","0.4"),t.setAttribute("result","color"),g.appendChild(t);const C=document.createElementNS(rQ,"feComposite");C.setAttribute("in","color"),C.setAttribute("in2","SourceGraphic"),C.setAttribute("operator","in"),C.setAttribute("result","colored"),g.appendChild(C);const e=document.createElementNS(rQ,"feGaussianBlur");e.setAttribute("in","colored"),e.setAttribute("stdDeviation","3"),e.setAttribute("result","glow"),g.appendChild(e);const B=document.createElementNS(rQ,"feMerge"),i=document.createElementNS(rQ,"feMergeNode");i.setAttribute("in","glow");const Q=document.createElementNS(rQ,"feMergeNode");return Q.setAttribute("in","SourceGraphic"),B.appendChild(i),B.appendChild(Q),g.appendChild(B),g}createRect(A,I){var g;const t=document.createElementNS(rQ,"rect");t.setAttribute("x",String(A.x-3)),t.setAttribute("y",String(A.y-3)),t.setAttribute("width",String(A.width+6)),t.setAttribute("height",String(A.height+6)),t.setAttribute("rx","2");const C=`url(#${I})`,e=null!==(g=A.color)&&void 0!==g?g:nQ;return t.addEventListener("mouseenter",()=>{t.style.fill=function(A,I){const g=A.match(/^rgba?\(\s*([\d.]+)[,\s]+([\d.]+)[,\s]+([\d.]+)/);if(g)return`rgba(${g[1]}, ${g[2]}, ${g[3]}, ${I})`;const t=A.match(/^#([0-9a-f]{3,8})$/i);if(t){let A=t[1];3===A.length&&(A=A[0]+A[0]+A[1]+A[1]+A[2]+A[2]);return`rgba(${parseInt(A.slice(0,2),16)}, ${parseInt(A.slice(2,4),16)}, ${parseInt(A.slice(4,6),16)}, ${I})`}return A}(e,.15),t.style.filter=C}),t.addEventListener("mouseleave",()=>{t.style.fill="transparent",t.style.filter=""}),t.addEventListener("click",I=>{var g;I.stopPropagation(),null===(g=this.onFeatureClick)||void 0===g||g.call(this,A,I)}),t}}class cQ{constructor(A,I){this.labelEl=null,this.badgeEl=null,this.root=document.createElement("div"),this.root.classList.add("loom-track-ui-layer"),this.root.style.position="absolute",this.root.style.inset="0",this.root.style.pointerEvents="none",this.root.style.overflow="hidden",A.appendChild(this.root),this.onBadgeClick=I}update(A,I){var g,t,C;this.root.style.height=`${Math.max(0,I)}px`;const e=null==A?void 0:A.label;if(e){this.labelEl||(this.labelEl=document.createElement("div"),this.root.appendChild(this.labelEl));const A=4+(null!==(t=e.topOffset)&&void 0!==t?t:0);this.labelEl.textContent=e.text,this.labelEl.style.position="absolute",this.labelEl.style.left="4px",this.labelEl.style.top=`${A}px`,this.labelEl.style.padding="2px 4px",this.labelEl.style.font="normal 10px sans-serif",this.labelEl.style.lineHeight="1.2",this.labelEl.style.color=e.color,this.labelEl.style.background=e.background,this.labelEl.style.border=`0.5px solid ${e.color}`,this.labelEl.style.opacity="0.75",this.labelEl.style.pointerEvents="none",this.labelEl.style.userSelect="none",this.labelEl.style.whiteSpace="nowrap"}else null===(g=this.labelEl)||void 0===g||g.remove(),this.labelEl=null;const B=null==A?void 0:A.badge;B?(this.badgeEl||(this.badgeEl=document.createElement("button"),this.badgeEl.type="button",this.badgeEl.classList.add("loom-track-ui-badge"),this.badgeEl.addEventListener("click",A=>{var I;A.preventDefault(),A.stopPropagation();const g=null===(I=this.badgeEl)||void 0===I?void 0:I.dataset.chromeId;g&&this.onBadgeClick(g)}),this.root.appendChild(this.badgeEl)),this.badgeEl.dataset.chromeId=B.id,this.badgeEl.textContent=B.text,this.badgeEl.style.position="absolute",this.badgeEl.style.right="4px",this.badgeEl.style.top="50%",this.badgeEl.style.transform="translateY(-50%)",this.badgeEl.style.border="0",this.badgeEl.style.borderRadius="3px",this.badgeEl.style.padding="2px 4px",this.badgeEl.style.margin="0",this.badgeEl.style.font="bold 10px sans-serif",this.badgeEl.style.lineHeight="1",this.badgeEl.style.color=B.color,this.badgeEl.style.background=B.background,this.badgeEl.style.cursor="pointer",this.badgeEl.style.pointerEvents="auto",this.badgeEl.style.userSelect="none"):(null===(C=this.badgeEl)||void 0===C||C.remove(),this.badgeEl=null)}dispose(){this.root.remove(),this.labelEl=null,this.badgeEl=null}}class lQ{constructor(A,I,g,t){this.options=t,this.isDragging=!1,this.lastPointerX=0,this.activeFrameId=null,this.isSweeping=!1,this.sweepStartX=0,this.sweepColumnLeft=0,this.sweepOverlay=null,this.sweepRulerCanvas=null,this.pointerDownX=0,this.pointerDownY=0,this.pointerDownTarget=null,this.lastClickTime=0,this.lastClickX=0,this.lastClickY=0,this.singleClickTimer=null,this.hoverThrottleId=null,this._preNavLocus=null,this.handlePointerDown=null,this.handlePointerMove=null,this.handlePointerUp=null,this.handleMouseMove=null,this.handleMouseLeave=null,this.handleWheel=null,this.wheelRafId=null,this.reorderDragTrack=null,this.reorderDragRow=null,this.reorderHandlers=new Map,this.container=A,this.browser=I,this.axisColumnWidth=g}setup(){this.setupDragHandlers(),this.setupHoverHandlers(),!1!==this.options.wheelZoom&&this.setupWheelHandler()}dispose(){null!==this.singleClickTimer&&(clearTimeout(this.singleClickTimer),this.singleClickTimer=null),this.teardownDragHandlers(),this.teardownHoverHandlers(),this.teardownWheelHandler(),this.removeSweepOverlay();for(const[A]of this.reorderHandlers)this.teardownReorderForTrack(A);this.reorderHandlers.clear()}setupReorderForTrack(A,I){I.style.cursor="grab";const g=g=>{if(0!==g.button)return;g.preventDefault(),g.stopPropagation();const e=this.getTrackRow(A);e&&(this.reorderDragTrack=A,this.reorderDragRow=e,e.style.opacity="0.5",I.style.cursor="grabbing",document.addEventListener("pointermove",t),document.addEventListener("pointerup",C))},t=A=>{if(!this.reorderDragTrack)return;const I=this.browser.getManagedTracks(),g=I.findIndex(A=>A.track===this.reorderDragTrack);if(g<0)return;const t=A.clientY;if(g>0){const A=this.getTrackRow(I[g-1].track);if(A){const I=A.getBoundingClientRect();if(t<I.bottom-.25*I.height)return this.browser.moveTrackInArray(g,g-1),void this.browser.syncDOMOrder()}}if(g<I.length-1){const A=this.getTrackRow(I[g+1].track);if(A){const I=A.getBoundingClientRect();if(t>I.top+.15*I.height)return this.browser.moveTrackInArray(g,g+1),void this.browser.syncDOMOrder()}}},C=A=>{if(document.removeEventListener("pointermove",t),document.removeEventListener("pointerup",C),this.reorderDragTrack&&this.reorderDragRow){this.reorderDragRow.style.opacity="";const A=this.browser.getTrackAxisDiv(this.reorderDragTrack);A&&(A.style.cursor="grab"),this.browser.finalizeReorder()}this.reorderDragTrack=null,this.reorderDragRow=null};this.reorderHandlers.set(A,{down:g,docMove:t,docUp:C}),I.addEventListener("pointerdown",g)}teardownReorderForTrack(A){const I=this.reorderHandlers.get(A);if(!I)return;const g=this.browser.getTrackAxisDiv(A);g&&g.removeEventListener("pointerdown",I.down),document.removeEventListener("pointermove",I.docMove),document.removeEventListener("pointerup",I.docUp),this.reorderHandlers.delete(A)}createSweepOverlay(){const A=document.createElement("div");return A.style.cssText="\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 0;\n pointer-events: none;\n background: rgba(68, 134, 247, 0.25);\n z-index: 99999;\n transition: none;\n ","static"===getComputedStyle(this.container).position&&(this.container.style.position="relative"),this.container.appendChild(A),A}removeSweepOverlay(){this.sweepOverlay&&(this.sweepOverlay.remove(),this.sweepOverlay=null),this.sweepRulerCanvas=null}setupDragHandlers(){this.handlePointerDown=A=>{if(0!==A.button)return;if(this.browser.isOverlayTarget(A))return;if(this.browser.hideContextMenu(),!(A.target instanceof HTMLCanvasElement))return this.browser.hidePopup(),void(this.pointerDownTarget=null);this.pointerDownX=A.clientX,this.pointerDownY=A.clientY,this.pointerDownTarget=A.target,this.activeFrameId=this.browser.getFrameIdForX(A.clientX);const I=this.browser.getFrameLocus(this.activeFrameId);if(!h(I)){if(this.browser.isRulerCanvas(A.target)){const I=A.target;this.isSweeping=!0,this.isDragging=!1,this.sweepRulerCanvas=I;const g=this.container.getBoundingClientRect();this.sweepStartX=A.clientX-g.left;const t=I.parentElement;return this.sweepColumnLeft=t?t.getBoundingClientRect().left-g.left:this.axisColumnWidth,this.sweepOverlay=this.createSweepOverlay(),this.sweepOverlay.style.left=`${this.sweepStartX}px`,this.sweepOverlay.style.width="0px",this.sweepOverlay.style.display="block",void this.container.setPointerCapture(A.pointerId)}this.isSweeping=!1,this.lastPointerX=A.clientX,this._preNavLocus={...I},this.container.setPointerCapture(A.pointerId)}},this.handlePointerMove=A=>{var I,g;if(this.isSweeping&&this.sweepOverlay&&this.sweepRulerCanvas){const I=this.container.getBoundingClientRect(),g=Math.max(this.axisColumnWidth,Math.min(A.clientX-I.left,I.width)),t=Math.min(this.sweepStartX,g),C=Math.abs(g-this.sweepStartX);return this.sweepOverlay.style.left=`${t}px`,void(this.sweepOverlay.style.width=`${C}px`)}if(!this.activeFrameId)return;if(!this.isDragging){if(Math.abs(A.clientX-this.pointerDownX)<3)return;this.isDragging=!0,this.container.style.cursor="grabbing",this.browser.setFeatureOverlaysSuppressed(!0,null!==(I=this.activeFrameId)&&void 0!==I?I:void 0),this.browser.setFeatureOverlaysVisible(!1,null!==(g=this.activeFrameId)&&void 0!==g?g:void 0);const t=this.browser.getManagedTracks();for(const A of t)this.browser.getFrameTrack(A,this.activeFrameId).suspendRendering()}const t=this.lastPointerX-A.clientX;this.lastPointerX=A.clientX;const C=this.activeFrameId,e=this.browser.getFrameViewportWidth(C);if(0===e)return;const B=this.browser.getFrameLocus(C),i=t*((B.end-B.start)/e),Q=this.browser.clampLocus({chr:B.chr,start:B.start+i,end:B.end+i});this.browser.setFrameLocusDirect(C,Q),this.browser.shiftCanvases(C,Q),this.browser.emitLocusChange(Q,C)},this.handlePointerUp=A=>{if(this.browser.isOverlayTarget(A))return;if(this.isSweeping&&this.sweepOverlay&&this.sweepRulerCanvas&&this.activeFrameId){const A=parseFloat(this.sweepOverlay.style.left),I=parseFloat(this.sweepOverlay.style.width),g=this.activeFrameId;if(this.removeSweepOverlay(),this.isSweeping=!1,I>3){const t=this.browser.getFrameViewportWidth(g);if(t>0){this.browser.snapshotForUndo("navigation");const C=this.browser.getFrameLocus(g),e=(C.end-C.start)/t,B=Math.max(0,A-this.sweepColumnLeft),i=C.start+B*e,Q=C.start+(B+I)*e;this.browser.setFrameLocus(g,{chr:C.chr,start:Math.round(i),end:Math.round(Q)})}}return void(this.activeFrameId=null)}const I=this.isDragging,g=this.activeFrameId;this.isDragging=!1,this.container.style.cursor="grab",this.browser.setFeatureOverlaysSuppressed(!1);const t=null!=g?g:this.browser.getFrameIdForX(A.clientX);if(I){const A=this.browser.getFrameLocus(t),I=this.browser.getManagedTracks();for(const A of I){const I=this.browser.getFrameTrack(A,t);I.discardPendingRender(),I.resumeRendering()}for(const g of I){this.browser.getFrameTrack(g,t).setLocus(A)}this.browser.loadAllTracksIfNeeded(),this.browser.updateAllAxes(),this.browser.updateAllFeatureOverlays(),this.browser.setFeatureOverlaysVisible(!0)}else this.browser.setFeatureOverlaysVisible(!0);const C=this.browser.getFrameLocus(t);I&&this._preNavLocus&&(this._preNavLocus.start!==C.start||this._preNavLocus.end!==C.end)&&this.browser.snapshotForUndo("navigation"),this._preNavLocus=null,this.activeFrameId=null;const e=A.clientX-this.pointerDownX,B=A.clientY-this.pointerDownY;(!I||e*e+B*B<9)&&this.handleClick(A)},this.container.addEventListener("pointerdown",this.handlePointerDown),this.container.addEventListener("pointermove",this.handlePointerMove),this.container.addEventListener("pointerup",this.handlePointerUp),this.container.addEventListener("pointercancel",this.handlePointerUp)}handleClick(A){var I,g,t;const C=this.browser.findTrackForTarget(this.pointerDownTarget);if(!C)return;const e=null!==(I=this.activeFrameId)&&void 0!==I?I:this.browser.getFrameIdForX(A.clientX),B=this.pointerDownTarget,i=null!==(g=B.parentElement)&&void 0!==g?g:B,Q=i.getBoundingClientRect(),o={x:A.clientX-Q.left,y:A.clientY-Q.top},E=this.browser.getFrameLocus(e);if(h(E)&&"ruler"===C.type){const A=this.browser.getCumulativeOffsets(),I=this.browser.getChromSizes();if(A&&I){const g=i.clientWidth;if(g>0){const t=(E.end-E.start)/g,C=E.start+o.x*t,{chr:B}=function(A,I){for(let g=I.chromosomeNames.length-1;g>=0;g--){const t=I.chromosomeNames[g],C=I.offsets[t];if(A>=C)return{chr:t,position:A-C}}return{chr:I.chromosomeNames[0],position:Math.max(0,A)}}(C,A),i=I[B];null!=i&&this.browser.setFrameLocus(e,{chr:B,start:0,end:i})}}return}if(null===(t=C.onCanvasClick)||void 0===t?void 0:t.call(C,o.x,o.y))return void this.browser.hidePopup();const s=Date.now(),a=s-this.lastClickTime<500&&Math.abs(A.clientX-this.lastClickX)<6&&Math.abs(A.clientY-this.lastClickY)<6;if(this.lastClickTime=s,this.lastClickX=A.clientX,this.lastClickY=A.clientY,a){if(null!==this.singleClickTimer&&(clearTimeout(this.singleClickTimer),this.singleClickTimer=null),this.lastClickTime=0,!h(E)){const I=i.clientWidth;if(I>0){const g=(E.end-E.start)/I,t=E.start+o.x*g,C=A.shiftKey?2:.5;this.browser.zoomFrameAroundCenter(e,C,t)}}return}this.singleClickTimer=setTimeout(()=>{var A;this.singleClickTimer=null;const I=this.browser.resolveInteraction(C,o.x,o.y);if(I){if(this.browser.emitTrackClick(I),I.popupData.length>0){const g=this.container.getBoundingClientRect(),t=(null!==(A=C.canvas.parentElement)&&void 0!==A?A:C.canvas).getBoundingClientRect();this.browser.showPopup(I.popupData,{x:t.left-g.left+o.x,y:t.top-g.top+o.y})}}else this.browser.hidePopup()},500)}teardownDragHandlers(){this.handlePointerDown&&this.container.removeEventListener("pointerdown",this.handlePointerDown),this.handlePointerMove&&this.container.removeEventListener("pointermove",this.handlePointerMove),this.handlePointerUp&&(this.container.removeEventListener("pointerup",this.handlePointerUp),this.container.removeEventListener("pointercancel",this.handlePointerUp))}setupHoverHandlers(){this.handleMouseMove=A=>{var I;if(this.isDragging||this.isSweeping)return;if(null!==this.hoverThrottleId)return;this.hoverThrottleId=setTimeout(()=>{this.hoverThrottleId=null},100);const g=this.browser.findTrackForTarget(A.target);if(!g)return;if(!(A.target instanceof HTMLCanvasElement))return;const t=(null!==(I=A.target.parentElement)&&void 0!==I?I:A.target).getBoundingClientRect(),C={x:A.clientX-t.left,y:A.clientY-t.top},e=this.browser.resolveInteraction(g,C.x,C.y);e&&this.browser.emitTrackHover(e)},this.handleMouseLeave=A=>{null!==this.hoverThrottleId&&(clearTimeout(this.hoverThrottleId),this.hoverThrottleId=null)},this.container.addEventListener("mousemove",this.handleMouseMove),this.container.addEventListener("mouseleave",this.handleMouseLeave)}teardownHoverHandlers(){this.handleMouseMove&&this.container.removeEventListener("mousemove",this.handleMouseMove),this.handleMouseLeave&&this.container.removeEventListener("mouseleave",this.handleMouseLeave),null!==this.hoverThrottleId&&(clearTimeout(this.hoverThrottleId),this.hoverThrottleId=null)}setupWheelHandler(){this.handleWheel=A=>{var I;if(!A.ctrlKey)return;A.preventDefault();const g=this.browser.getFrameIdForX(A.clientX),t=this.browser.getFrameLocus(g);if(h(t))return;if(null!==this.wheelRafId)return;null===this._preNavLocus&&(this._preNavLocus={...t},setTimeout(()=>{const A=this.browser.getFrameLocus(g);!this._preNavLocus||this._preNavLocus.start===A.start&&this._preNavLocus.end===A.end||this.browser.snapshotForUndo("navigation"),this._preNavLocus=null},300));const C=1+.01*Math.max(-50,Math.min(50,A.deltaY)),e=this.browser.getFrameViewportWidth(g);if(e<=0)return;const B=A.target instanceof HTMLCanvasElement?A.target:null,i=null!==(I=null==B?void 0:B.parentElement)&&void 0!==I?I:B,Q=i?A.clientX-i.getBoundingClientRect().left:e/2,o=(t.end-t.start)/e,E=t.start+Q*o;this.wheelRafId=requestAnimationFrame(()=>{this.wheelRafId=null,this.browser.zoomFrameAroundCenter(g,C,E)})},this.container.addEventListener("wheel",this.handleWheel,{passive:!1})}teardownWheelHandler(){null!==this.wheelRafId&&(cancelAnimationFrame(this.wheelRafId),this.wheelRafId=null),this.handleWheel&&(this.container.removeEventListener("wheel",this.handleWheel),this.handleWheel=null)}getTrackRow(A){const I=this.browser.getTrackAxisDiv(A);return null==I?void 0:I.parentElement}}class dQ{constructor(A,I,g){this.overlayContainer=null,this.roiElements=new Map,this.container=A,this.axisColumnWidth=I,this.callbacks=g}renderMultiFrame(A,I,g){const t=[];let C=0;for(const e of A){const B=I(e.locus);if(e.viewportWidth>0){const A=(e.locus.end-e.locus.start)/e.viewportWidth;for(const I of B){const g=Math.round((I.start-e.locus.start)/A),B=Math.max(3,Math.round((I.end-I.start)/A)),i=Math.max(0,g),Q=Math.min(B,e.viewportWidth-i);Q>0&&t.push({roi:I,x:C+i,w:Q,key:`${e.id}:${I.id}`})}}C+=e.viewportWidth+(e!==A[A.length-1]?g:0)}this.renderPrecomputed(t)}renderPrecomputed(A){var I,g;if(0===A.length&&0===this.roiElements.size)return;const t=this.ensureContainer(),C=new Set;for(const{roi:e,x:B,w:i,key:Q}of A){C.add(Q);let A=this.roiElements.get(Q);A||(A=this.createElement(e),t.appendChild(A),this.roiElements.set(Q,A)),A.style.left=`${B}px`,A.style.width=`${i}px`;const o=null!==(I=e.color)&&void 0!==I?I:"rgba(68, 134, 247, 0.15)";A.style.backgroundColor=o;const E=o.replace(/[\d.]+\)$/,A=>`${Math.min(1,3*parseFloat(A))})`);A.style.borderLeftColor=E,A.style.borderRightColor=E;const s=A.firstElementChild;if(s){const A=o.replace(/[\d.]+\)$/,A=>`${Math.min(1,4*parseFloat(A))})`);s.style.backgroundColor=A}const a=A.querySelector(".loom-roi-label");a&&(a.textContent=null!==(g=e.name)&&void 0!==g?g:"",a.style.display=e.name&&i>20?"block":"none"),A._roiId=e.id}for(const[A,I]of this.roiElements)C.has(A)||(I.remove(),this.roiElements.delete(A))}render(A,I,g){var t,C;if(0===A.length&&0===this.roiElements.size)return;const e=this.ensureContainer();if(g<=0)return;const B=(I.end-I.start)/g,i=new Set;for(const g of A){i.add(g.id);const A=Math.round((g.start-I.start)/B),Q=Math.max(3,Math.round((g.end-g.start)/B));let o=this.roiElements.get(g.id);o||(o=this.createElement(g),e.appendChild(o),this.roiElements.set(g.id,o)),o.style.left=`${A}px`,o.style.width=`${Q}px`;const E=null!==(t=g.color)&&void 0!==t?t:"rgba(68, 134, 247, 0.15)";o.style.backgroundColor=E;const s=E.replace(/[\d.]+\)$/,A=>`${Math.min(1,3*parseFloat(A))})`);o.style.borderLeftColor=s,o.style.borderRightColor=s;const a=o.firstElementChild;if(a){const A=E.replace(/[\d.]+\)$/,A=>`${Math.min(1,4*parseFloat(A))})`);a.style.backgroundColor=A}const r=o.querySelector(".loom-roi-label");r&&(r.textContent=null!==(C=g.name)&&void 0!==C?C:"",r.style.display=g.name&&Q>20?"block":"none"),o._roiId=g.id}for(const[A,I]of this.roiElements)i.has(A)||(I.remove(),this.roiElements.delete(A))}clear(){for(const A of this.roiElements.values())A.remove();this.roiElements.clear(),this.overlayContainer&&(this.overlayContainer.remove(),this.overlayContainer=null)}dispose(){this.clear()}ensureContainer(){if(!this.overlayContainer){const A=document.createElement("div");A.style.cssText=`\n position: absolute;\n top: 0;\n left: ${this.axisColumnWidth}px;\n right: 0;\n bottom: 0;\n pointer-events: none;\n z-index: 10;\n overflow: hidden;\n `;"static"===getComputedStyle(this.container).position&&(this.container.style.position="relative"),this.container.appendChild(A),this.overlayContainer=A}return this.overlayContainer}createElement(A){var I;const g=document.createElement("div");g.className="loom-roi-region",g.style.cssText="\n position: absolute;\n top: 0;\n bottom: 0;\n border-left: 1px solid transparent;\n border-right: 1px solid transparent;\n box-sizing: border-box;\n pointer-events: auto;\n cursor: pointer;\n transition: opacity 0.15s ease;\n ";const t=document.createElement("div");t.className="loom-roi-header",t.style.cssText="\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: 4px;\n border-radius: 2px 2px 0 0;\n ",g.appendChild(t);const C=document.createElement("div");return C.className="loom-roi-label",C.style.cssText="\n position: absolute;\n top: 5px;\n left: 3px;\n right: 3px;\n font: 9px sans-serif;\n color: rgba(0, 0, 0, 0.7);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n pointer-events: none;\n ",C.textContent=null!==(I=A.name)&&void 0!==I?I:"",g.appendChild(C),g.addEventListener("mouseenter",()=>{g.style.opacity="1.3"}),g.addEventListener("mouseleave",()=>{g.style.opacity=""}),g.addEventListener("click",A=>{A.stopPropagation();const I=g._roiId;this.callbacks.onROIClick(I,A)}),g.addEventListener("contextmenu",A=>{A.preventDefault(),A.stopPropagation();const I=g._roiId;this.callbacks.onROIContextMenu(I,A)}),g}}class DQ{constructor(A,I,g,t,C){this.handleContextMenu=null,this.inputDialog=null,this.container=A,this.axisColumnWidth=I,this.contextMenuProvider=g,this.popupProvider=t,this.callbacks=C}setup(){this.handleContextMenu=A=>{var I,g,t,C,e;A.preventDefault();const B=this.callbacks.findTrackForTarget(A.target);if(!B)return;const i=null!==(I=B.canvas.parentElement)&&void 0!==I?I:B.canvas,Q=i.getBoundingClientRect(),o=A.clientX-Q.left,E=A.clientY-Q.top,s=null!==(t=null===(g=B.getContextMenuItems)||void 0===g?void 0:g.call(B,o,E))&&void 0!==t?t:[],a=(A,I)=>this.ensureInputDialog().then(g=>g.prompt(A,I)),r=function(A,I){return[{label:"Set track height",action:async()=>{const g=await I.promptInput("Track height (px)",A.height);if(null!==g){const t=parseInt(g,10);t>0&&!isNaN(t)&&I.setTrackHeight(A,t)}}},{label:"Remove track",action:()=>I.removeTrack(A)}]}(B,{setTrackHeight:(A,I)=>{A instanceof iC?A.setFixedHeight(I):A instanceof vt&&A.setConfig({height:I})},removeTrack:A=>this.callbacks.removeTrack(A),promptInput:a}),n=A=>{const I=A.action?{...A,action:()=>{A.action(),this.callbacks.onAxisUpdate(B)}}:{...A};return I.children&&(I.children=I.children.map(n)),I},h=null===(C=B.getNumericState)||void 0===C?void 0:C.call(B),c=h?function(A,I){const g=[];return g.push({label:"Set data range",action:async()=>{const g=await I("Minimum",A.dataRange.min);if(null===g)return;const t=await I("Maximum",A.dataRange.max);if(null===t)return;const C=parseFloat(g),e=parseFloat(t);!isNaN(C)&&!isNaN(e)&&C<e&&A.setDataRange(C,e)}}),void 0!==A.logScale&&A.setLogScale&&g.push({label:"Log scale",type:"checkbox",checked:A.logScale,action:()=>A.setLogScale(!A.logScale)}),g.push({label:"Autoscale",type:"checkbox",checked:A.autoscale,action:()=>A.setAutoscale(!A.autoscale)}),g}(h,a):[],l=[];(s.length>0||c.length>0)&&(l.push(...s.map(n)),c.length>0&&(s.length>0&&l.push({label:"",type:"separator"}),l.push(...c.map(n))),l.push({label:"",type:"separator"})),l.push(...r.map(n));const d=this.callbacks.getLocus(),D=i.clientWidth,u=D>0?(d.end-d.start)/D:0,y=d.start+o*u,w=B.hitTest(o,E),f={track:B,genomicLocation:y,features:w.map(A=>A.feature),trackItems:s,commonItems:r,x:o,y:E};if(this.callbacks.emitTrackContextMenu(f),this.contextMenuProvider){null===(e=this.popupProvider)||void 0===e||e.hide();const A=this.container.getBoundingClientRect(),I=i.getBoundingClientRect();this.contextMenuProvider.show(l,{x:I.left-A.left+o,y:I.top-A.top+E},this.container)}},this.container.addEventListener("contextmenu",this.handleContextMenu)}showROIContextMenu(A,I){var g;if(!this.contextMenuProvider)return;const t=this.container.getBoundingClientRect(),C=this.callbacks.getViewportWidth(),e=this.callbacks.getLocus(),B=C>0?(e.end-e.start)/C:0,i=I.clientX-t.left-this.axisColumnWidth,Q=e.start+i*B;this.callbacks.emitROIContextMenu({roi:A,genomicLocation:Q,x:I.clientX-t.left,y:I.clientY-t.top});const o=function(A,I){return[{label:"Edit name...",action:async()=>{var g;const t=await I.promptInput("ROI name",null!==(g=A.name)&&void 0!==g?g:"");null!==t&&I.updateROI(A.id,{name:t})}},{label:"Edit description...",action:async()=>{var g;const t=await I.promptInput("Description",null!==(g=A.description)&&void 0!==g?g:"");null!==t&&I.updateROI(A.id,{description:t})}},{label:"Set color...",action:async()=>{var g;const t=await I.promptInput("Color (CSS)",null!==(g=A.color)&&void 0!==g?g:"rgba(68, 134, 247, 0.15)");null!==t&&I.updateROI(A.id,{color:t})}},{label:"",type:"separator"},{label:"Go to region",action:()=>I.goToRegion({chr:A.chr,start:A.start,end:A.end})},{label:"Remove",action:()=>I.removeROI(A.id)}]}(A,{goToRegion:A=>this.callbacks.setLocus(A),updateROI:(A,I)=>this.callbacks.updateROI(A,I),removeROI:A=>this.callbacks.removeROI(A),promptInput:(A,I)=>this.ensureInputDialog().then(g=>g.prompt(A,I))});null===(g=this.popupProvider)||void 0===g||g.hide(),this.contextMenuProvider.show(o,{x:I.clientX-t.left,y:I.clientY-t.top},this.container)}dispose(){this.handleContextMenu&&(this.container.removeEventListener("contextmenu",this.handleContextMenu),this.handleContextMenu=null),this.inputDialog&&(this.inputDialog.remove(),this.inputDialog=null)}async ensureInputDialog(){if(!this.inputDialog){customElements.get("loom-input-dialog")||await Promise.resolve().then(function(){return no});const A=document.createElement("loom-input-dialog");"static"===getComputedStyle(this.container).position&&(this.container.style.position="relative"),this.container.appendChild(A),this.inputDialog=A}return this.inputDialog}}function uQ(A,I){const g=document.createElement("a");g.download=A,g.href=I,document.body.appendChild(g),g.click(),document.body.removeChild(g)}const yQ=50,wQ=new WeakSet;class fQ extends CQ{constructor(A,I){var g,t,C,e;const B=null===I.contextMenuProvider?void 0:null!==(g=I.contextMenuProvider)&&void 0!==g?g:function(){customElements.get("loom-context-menu")||Promise.resolve().then(function(){return co});let A=null;return{show(I,g,t){A||(A=document.createElement("loom-context-menu"),"static"===getComputedStyle(t).position&&(t.style.position="relative"),t.appendChild(A)),A.setItems(I),A.showAt(g.x,g.y)},hide(){A&&A.hide()},dispose(){A&&(A.remove(),A=null)}}}(),i=null===I.popupProvider?void 0:null!==(t=I.popupProvider)&&void 0!==t?t:function(){customElements.get("loom-popup")||Promise.resolve().then(function(){return uo});let A=null;return{show(I,g,t){A||(A=document.createElement("loom-popup"),"static"===getComputedStyle(t).position&&(t.style.position="relative"),t.appendChild(A)),A.setData(I),A.showAt(g.x,g.y)},hide(){A&&A.hide()},dispose(){A&&(A.remove(),A=null)}}}();let Q=I.workerProvider,o=null;if(!Q&&(I.workers||I.workerFactory)){const A="number"==typeof I.workers?I.workers:Math.min(null!==(C=null===navigator||void 0===navigator?void 0:navigator.hardwareConcurrency)&&void 0!==C?C:4,4);try{o=new iQ({workerFactory:I.workerFactory,workerUrl:I.workerFactory?void 0:new URL("./loom-worker.js",import.meta.url),poolSize:A}),Q=o}catch(A){P.warn("Failed to create web workers, falling back to main-thread execution")}}super({...I,workerProvider:Q,contextMenuProvider:B,popupProvider:i,viewportWidth:A.clientWidth}),this.resizeObserver=null,this.trackRows=new Map,this.remoteConnection=null,this.featureOverlays=new Map,this.uiLayers=new Map,this.ownedWorkerProvider=null,this.handleKeyDown=null,this.handleDocMouseDown=null,this._pendingPostAddLoad=!1,this.pointerManager=null,this.contextMenuManager=null,this.ownedWorkerProvider=o,this.container=A,this.interactive=null===(e=I.interactive)||void 0===e||e,function(A){const I=A.getRootNode();if(wQ.has(I))return;wQ.add(I);const g=document.createElement("style");g.textContent="\n .loom-track-scroll { scrollbar-width: none; }\n .loom-track-scroll::-webkit-scrollbar { display: none; }\n .loom-feature-overlay rect {\n fill: transparent;\n pointer-events: auto;\n cursor: pointer;\n }\n ",I instanceof Document?I.head.appendChild(g):I.appendChild(g)}(A),A.style.userSelect="none",A.style.touchAction="none";const E={onROIClick:(A,I)=>{const g=this.getROIs().find(I=>I.id===A);if(g){const A=this.container.getBoundingClientRect(),t=I.clientX-A.left-yQ,C=this._frames[0].locus.start+t*this._frames[0].bpPerPixel;this.events.emit(AQ.ROIClick,{roi:g,genomicLocation:C,x:I.clientX-A.left,y:I.clientY-A.top})}},onROIContextMenu:(A,I)=>{var g;const t=this.getROIs().find(I=>I.id===A);t&&(null===(g=this.contextMenuManager)||void 0===g||g.showROIContextMenu(t,I))}};if(this.roiOverlayManager=new dQ(A,yQ,E),this.interactive){A.style.cursor=h(I.locus)?"default":"grab";const g={getLocus:()=>this._frames[0].locus,setLocusDirect:A=>{this._frames[0].locus=A,n(this._frames[0])},clampLocus:A=>this.clamp(A),setLocus:A=>this.setLocus(A),getViewportWidth:()=>this._frames[0].viewportWidth,getFrameIdForX:A=>this._getFrameIdForX(A),getFrameLocus:A=>this._getFrame(A).locus,setFrameLocusDirect:(A,I)=>{const g=this.getFrame(A);g&&(g.locus=I,n(g))},getFrameViewportWidth:A=>this._getFrame(A).viewportWidth,setFrameLocus:(A,I)=>this.setFrameLocus(A,I),zoomFrameAroundCenter:(A,I,g)=>{this.zoomAroundCenter(I,g,A)},getFrameCount:()=>this._frames.length,getFrameTrack:(A,I)=>this.getTrackForFrame(A,I),getManagedTracks:()=>this.managedTracks,loadAllTracksIfNeeded:()=>this.loadAllTracksIfNeeded(),updateAllAxes:()=>{for(const A of this.managedTracks)this.updateAxisContent(A.track)},zoomAroundCenter:(A,I)=>this.zoomAroundCenter(A,I),resolveInteraction:(A,I,g)=>this.resolveInteraction(A,I,g),findTrackForTarget:A=>this.findTrackForTarget(A),isRulerCanvas:A=>this.isRulerCanvas(A),showPopup:(A,I)=>{this.popupProvider&&this.popupProvider.show(A,I,this.container)},hidePopup:()=>{var A;null===(A=this.popupProvider)||void 0===A||A.hide()},hideContextMenu:()=>{var A;null===(A=this.contextMenuProvider)||void 0===A||A.hide()},isOverlayTarget:A=>this.isOverlayTarget(A),setFeatureOverlaysSuppressed:(A,I)=>{for(const[g,t]of this.featureOverlays)(void 0===I||this._trackBelongsToFrame(g,I))&&t.setSuppressed(A)},setFeatureOverlaysVisible:(A,I)=>{for(const[g,t]of this.featureOverlays)(void 0===I||this._trackBelongsToFrame(g,I))&&t.setVisible(A)},updateAllFeatureOverlays:()=>{this.updateFeatureOverlays()},shiftCanvases:(A,I)=>{for(const g of this.managedTracks){if("ideogram"===g.track.type)continue;const t=this.getTrackForFrame(g,A),C=t.computePixelShift(I);null!==C&&t.applyPixelShift(C)}},emitLocusChange:(A,I)=>{const g=I?this._frames.find(A=>A.id===I):this._frames[0];this.events.emit(AQ.LocusChange,{frames:g?[g]:[this._frames[0]],sourceFrameId:null!=I?I:this._frames[0].id,locus:A})},emitTrackClick:A=>this.events.emit(AQ.TrackClick,A),emitTrackHover:A=>this.events.emit(AQ.TrackHover,A),emitTrackOrderChanged:A=>this.events.emit(AQ.TrackOrderChanged,{tracks:A}),snapshotForUndo:A=>this._snapshotForUndo(A),getCumulativeOffsets:()=>this.cumulativeOffsets,getChromSizes:()=>this.chromSizes,getTrackAxisDiv:A=>{var I;return null===(I=this.trackRows.get(A))||void 0===I?void 0:I.axisDiv},moveTrackInArray:(A,I)=>{const[g]=this.managedTracks.splice(A,1);this.managedTracks.splice(I,0,g)},syncDOMOrder:()=>this.syncDOMOrder(),finalizeReorder:()=>{this._assignOrderFromPosition(),this.events.emit(AQ.TrackOrderChanged,{tracks:this.managedTracks.map(A=>A.track)})}};this.pointerManager=new lQ(A,g,yQ,{wheelZoom:I.wheelZoom}),this.pointerManager.setup(),this.contextMenuManager=new DQ(A,yQ,B,i,{findTrackForTarget:A=>this.findTrackForTarget(A),getLocus:()=>this._frames[0].locus,getViewportWidth:()=>this._frames[0].viewportWidth,removeTrack:A=>this.removeTrack(A),onAxisUpdate:A=>this.updateAxisContent(A),updateROI:(A,I)=>this.updateROI(A,I),removeROI:A=>this.removeROI(A),setLocus:A=>this.setLocus(A),emitTrackContextMenu:A=>this.events.emit(AQ.TrackContextMenu,A),emitROIContextMenu:A=>this.events.emit(AQ.ROIContextMenu,A)}),this.contextMenuManager.setup(),(this.popupProvider||this.contextMenuProvider)&&(this.handleDocMouseDown=A=>{var I,g;this.container.contains(A.target)||(null===(I=this.popupProvider)||void 0===I||I.hide(),null===(g=this.contextMenuProvider)||void 0===g||g.hide())},document.addEventListener("mousedown",this.handleDocMouseDown))}this.resizeObserver=new ResizeObserver(()=>{const A=this._frames[0].viewportWidth;this.render(),0===A&&this._frames[0].viewportWidth>0&&!this._pendingPostAddLoad&&this.loadAllTracksIfNeeded()}),this.resizeObserver.observe(A),this.events.on(AQ.DataLoaded,({track:A})=>{this._frames.length>1&&this.render();const I=this.resolvePrimaryTrack(A);this.updateAxisContent(I),this.updateFeatureOverlay(A),this.updateUILayer(A)}),this.events.on(AQ.ThemeChanged,()=>{for(const A of this.managedTracks){this.updateAxisContent(A.track),this.syncViewportWrapperBackground(A.track),this.updateUILayer(A.track);for(const I of A.frameInstances.values())this.updateUILayer(I)}}),this.events.on(AQ.ROIAdded,()=>this.renderROIOverlays()),this.events.on(AQ.ROIRemoved,()=>this.renderROIOverlays()),this.events.on(AQ.ROIChanged,()=>this.renderROIOverlays()),this.events.on(AQ.LocusChange,()=>this.renderROIOverlays()),this.setupUndoKeyboardHandler()}_trackBelongsToFrame(A,I){for(const g of this.managedTracks){if(this.getTrackForFrame(g,I)===A)return!0}return!1}_getFrame(A){var I;return null!==(I=this._frames.find(I=>I.id===A))&&void 0!==I?I:this._frames[0]}_makeFeatureClickHandler(A){return(I,g)=>{const t=I.x+I.width/2,C=I.y+I.height/2,e=this.resolveInteraction(A,t,C);if(e&&(this.events.emit(AQ.TrackClick,e),this.popupProvider&&e.popupData.length>0)){const A=this.container.getBoundingClientRect();this.popupProvider.show(e.popupData,{x:g.clientX-A.left,y:g.clientY-A.top},this.container)}}}_buildTrackRow(A,I){const g=document.createElement("div");g.style.display="flex",g.style.width="100%",g.style.alignItems="stretch",g.style.contain="layout paint","ideogram"===A.type&&(g.style.paddingTop="8px",g.style.paddingBottom="8px");const t=document.createElement("div");t.style.width="50px",t.style.flexShrink="0",t.style.overflow="hidden",t.style.position="relative",t.style.borderRight="1px solid #ddd",t.style.boxSizing="border-box";const C=document.createElement("div");C.style.display="flex",C.style.flex="1",C.style.minWidth="0",g.appendChild(t),g.appendChild(C);const e=new Map,B=this._frames[0],i=this._buildColumn(A,I);i.column.dataset.frameId=B.id,C.appendChild(i.column),e.set(B.id,i);for(let g=1;g<this._frames.length;g++){const t=this._frames[g],B=this.managedTracks.find(I=>I.track===A),i=null==B?void 0:B.frameInstances.get(t.id);if(i){C.appendChild(this._buildColumnShim());const A=this._buildColumn(i,I);A.column.dataset.frameId=t.id,C.appendChild(A.column),e.set(t.id,A)}}return{row:g,axisDiv:t,axisCanvas:null,columnsContainer:C,columnViewports:e}}_buildColumn(A,I){var g;const t=A.canvas;t.style.display="block",t.style.width="100%";const C=document.createElement("div");C.style.flex="1",C.style.minWidth="0",C.classList.add("loom-viewport-column");const e=document.createElement("div");if(e.style.width="100%",e.style.overflow="hidden",e.style.position="relative",A instanceof vt){const I=null===(g=A.config)||void 0===g?void 0:g.background;"string"==typeof I&&(e.style.backgroundColor=I)}let B;null!=I&&(e.style.maxHeight=`${I}px`,e.style.overflowY="auto",e.style.overscrollBehaviorY="none",e.classList.add("loom-track-scroll")),A instanceof vt&&A.setExternalUIEnabled(!0),e.appendChild(t),C.appendChild(e),this.interactive&&(B=new hQ(e),B.onFeatureClick=this._makeFeatureClickHandler(A),this.featureOverlays.set(A,B));const i=new cQ(e,I=>{var g;null===(g=A.onUIOverlayClick)||void 0===g||g.call(A,I);const t=this.resolvePrimaryTrack(A);this.updateAxisContent(t),this.updateUILayer(A)});return this.uiLayers.set(A,i),{column:C,viewportWrapper:e,track:A,featureOverlay:B,uiLayer:i}}_buildColumnShim(){const A=document.createElement("div");return A.style.width="3px",A.style.flexShrink="0",A.style.backgroundColor="#ccc",A.classList.add("loom-column-shim"),A}_populateFrameColumns(A,I){const g=this.trackRows.get(A);if(!g||this._frames.length<=1)return;const t=this.managedTracks.find(I=>I.track===A);if(t)for(let A=1;A<this._frames.length;A++){const C=this._frames[A];if(g.columnViewports.has(C.id))continue;const e=t.frameInstances.get(C.id);if(!e)continue;g.columnsContainer.appendChild(this._buildColumnShim());const B=this._buildColumn(e,I);B.column.dataset.frameId=C.id,g.columnsContainer.appendChild(B.column),g.columnViewports.set(C.id,B)}}_setupTrackRowUI(A){"wig"===A.type&&A.setConfig({showDataRange:!1}),this.updateAxisContent(A),this.interactive&&"ruler"===A.type&&(A.canvas.style.cursor=h(this._frames[0].locus)?"pointer":"crosshair");const I=this.trackRows.get(A);this.interactive&&"ruler"!==A.type&&"ideogram"!==A.type&&I&&this.pointerManager&&this.pointerManager.setupReorderForTrack(A,I.axisDiv)}addTrack(A,I,g,t,C){const e=this._buildTrackRow(A,t);this.container.appendChild(e.row),this.trackRows.set(A,e),this._suppressImmediateLoad=!0;const B=super.addTrack(A,I,g,t,C);if(this._suppressImmediateLoad=!1,this._populateFrameColumns(A,t),this.interactive&&"ideogram"!==A.type){A.setOverscanMultiplier(3);const I=this.managedTracks.find(I=>I.track===A);if(I)for(const A of I.frameInstances.values())A.setOverscanMultiplier(3)}return this._setupTrackRowUI(A),this._pendingPostAddLoad||(this._pendingPostAddLoad=!0,requestAnimationFrame(()=>{this._pendingPostAddLoad=!1,this.resizeObserver&&(this.render(),this.loadAllTracksIfNeeded())})),B}removeTrack(A){var I,g,t;const C="string"==typeof A?this.getTrack(A):A;if(!C)return;null===(I=this.pointerManager)||void 0===I||I.teardownReorderForTrack(C);const e=this.trackRows.get(C);if(e)for(const A of e.columnViewports.values())null===(g=this.featureOverlays.get(A.track))||void 0===g||g.dispose(),this.featureOverlays.delete(A.track),null===(t=this.uiLayers.get(A.track))||void 0===t||t.dispose(),this.uiLayers.delete(A.track);e&&e.row.parentNode===this.container&&this.container.removeChild(e.row),this.trackRows.delete(C),super.removeTrack(A)}moveTrack(A,I){super.moveTrack(A,I),this.syncDOMOrder()}addFrame(A,I){const g=super.addFrame(A,I);for(const A of this.managedTracks){const I=this.trackRows.get(A.track);if(!I)continue;const t=A.frameInstances.get(g.id);if(!t)continue;I.columnsContainer.appendChild(this._buildColumnShim());const C=this._buildColumn(t,A.maxTrackHeight);C.column.dataset.frameId=g.id,I.columnsContainer.appendChild(C.column),I.columnViewports.set(g.id,C)}return this.render(),this.loadAllTracksIfNeeded(),g}removeFrame(A){var I,g,t,C;if(A===this._frames[0].id&&this._frames.length>1){const t=this._frames[1];for(const C of this.managedTracks){const e=this.trackRows.get(C.track);if(!e)continue;const B=e.columnViewports.get(A),i=e.columnViewports.get(t.id);if(B&&i){if(i.viewportWrapper.replaceChild(C.track.canvas,i.track.canvas),i.featureOverlay&&(i.featureOverlay.dispose(),this.featureOverlays.delete(i.track)),i.uiLayer&&(i.uiLayer.dispose(),this.uiLayers.delete(i.track)),this.interactive){const A=new hQ(i.viewportWrapper);A.onFeatureClick=this._makeFeatureClickHandler(C.track),this.featureOverlays.set(C.track,A),i.featureOverlay=A}const t=new cQ(i.viewportWrapper,A=>{var I,g;null===(g=(I=C.track).onUIOverlayClick)||void 0===g||g.call(I,A),this.updateAxisContent(C.track),this.updateUILayer(C.track)});this.uiLayers.set(C.track,t),i.uiLayer=t,i.track=C.track;const Q=B.column.nextElementSibling;(null==Q?void 0:Q.classList.contains("loom-column-shim"))&&Q.remove(),null===(I=B.featureOverlay)||void 0===I||I.dispose(),this.featureOverlays.delete(B.track),null===(g=B.uiLayer)||void 0===g||g.dispose(),this.uiLayers.delete(B.track),B.column.remove(),e.columnViewports.delete(A)}}}else for(const I of this.managedTracks){const g=this.trackRows.get(I.track);if(!g)continue;const e=g.columnViewports.get(A);if(e){const I=e.column.previousElementSibling;(null==I?void 0:I.classList.contains("loom-column-shim"))&&I.remove(),null===(t=e.featureOverlay)||void 0===t||t.dispose(),this.featureOverlays.delete(e.track),null===(C=e.uiLayer)||void 0===C||C.dispose(),this.uiLayers.delete(e.track),e.column.remove(),g.columnViewports.delete(A)}}super.removeFrame(A),this.render()}loadSession(A,I){for(const A of this.managedTracks){const I=this.trackRows.get(A.track);I&&I.row.parentNode===this.container&&this.container.removeChild(I.row)}this.trackRows.clear();for(const A of this.uiLayers.values())A.dispose();this.uiLayers.clear(),this.roiOverlayManager.clear(),super.loadSession(A,I)}render(){const A=this.container.clientWidth;if(0===A)return;const I=this._frames.length,g=A-yQ,t=Math.max(0,3*(I-1)),C=Math.floor((g-t)/I);for(const A of this._frames)A.viewportWidth=C,n(A);this.clearCoordinatedDataRanges(),super.render(),I>1&&this.coordinateMultilocusAutoscale();const e=h(this._frames[0].locus);this.interactive&&(this.container.style.cursor=e?"default":"grab");const B=e?"pointer":"crosshair";for(const A of this.managedTracks)if(this.updateAxisContent(A.track),this.interactive&&"ruler"===A.track.type){A.track.canvas.style.cursor=B;for(const I of A.frameInstances.values())"ruler"===I.type&&(I.canvas.style.cursor=B)}this.renderROIOverlays(),this.updateFeatureOverlays(),this.updateUILayers()}setLocus(A){const I=this._frames[0],g=this.clamp(A);let t=this.managedTracks.length>0;const C=[];for(const A of this.managedTracks){const e=this.getTrackForFrame(A,I.id);if(e.needsRepaint(g)){t=!1;break}const B=e.computePixelShift(g);if(null===B){t=!1;break}C.push(B)}if(!t)return void super.setLocus(A);const e=I.locus.chr;I.locus=g,n(I);for(let A=0;A<this.managedTracks.length;A++){const t=this.managedTracks[A],e=this.getTrackForFrame(t,I.id);e.applyPixelShift(C[A]),e.setLocusSilent(g)}g.chr!==e&&this.updateIdeogramCytobands(),this.events.emit(AQ.LocusChange,{frames:[I],sourceFrameId:I.id,locus:g}),this.loadAllTracksIfNeeded()}attachRemote(A){this.remoteConnection&&this.remoteConnection.detach(),this.remoteConnection=new aQ(this,A,{supportsPNG:!0,exportPNG:()=>this.toPNG()})}detachRemote(){this.remoteConnection&&(this.remoteConnection.detach(),this.remoteConnection=null)}syncThemeFromCSS(){const A=function(A,I){const g=W(I),t={...A.palette};for(const[A,I]of Object.entries(g))void 0!==I&&(t[A]=I);return{...A,palette:t}}(this.theme,this.container);this.setTheme(A)}dispose(){var A,I;this.detachRemote(),this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null),null===(A=this.pointerManager)||void 0===A||A.dispose(),this.pointerManager=null,null===(I=this.contextMenuManager)||void 0===I||I.dispose(),this.contextMenuManager=null,this.teardownUndoKeyboardHandler(),this.handleDocMouseDown&&(document.removeEventListener("mousedown",this.handleDocMouseDown),this.handleDocMouseDown=null),this.roiOverlayManager.dispose();for(const A of this.featureOverlays.values())A.dispose();this.featureOverlays.clear();for(const A of this.uiLayers.values())A.dispose();this.uiLayers.clear();for(const A of this.managedTracks){const I=this.trackRows.get(A.track);I&&I.row.parentNode===this.container&&this.container.removeChild(I.row)}this.trackRows.clear(),super.dispose(),this.ownedWorkerProvider&&(this.ownedWorkerProvider.dispose(),this.ownedWorkerProvider=null)}coordinateMultilocusAutoscale(){var A;for(const I of this.managedTracks){if(0===I.frameInstances.size)continue;const g=[I.track,...I.frameInstances.values()],t=[];for(const I of g){const g=null===(A=I.getAxisInfo)||void 0===A?void 0:A.call(I);(null==g?void 0:g.dataRange)&&t.push(g.dataRange)}if(t.length<2)continue;const C={min:Math.min(...t.map(A=>A.min)),max:Math.max(...t.map(A=>A.max))};if(!t.every(A=>A.min===C.min&&A.max===C.max))for(const A of g)this._applyCoordinatedDataRange(A,C)&&A.render()}}clearCoordinatedDataRanges(){for(const A of this.managedTracks){this._applyCoordinatedDataRange(A.track,null);for(const I of A.frameInstances.values())this._applyCoordinatedDataRange(I,null)}}_applyCoordinatedDataRange(A,I){return(A instanceof IC||A instanceof kB)&&(A.setCoordinatedDataRange(I),!0)}resolvePrimaryTrack(A){for(const I of this.managedTracks){if(I.track===A)return A;for(const g of I.frameInstances.values())if(g===A)return I.track}return A}updateAxisContent(A){var I,g;const t=this.trackRows.get(A);if(!t)return;const{axisDiv:C}=t,e=this.managedTracks.find(I=>I.track===A),B=this.getCombinedAxisInfo(A,e);if(!B)return C.innerHTML="",C.style.borderRight="none",C.style.backgroundColor=this.theme.palette.background,void(t.axisCanvas=null);const i={...B,backgroundColor:null!==(I=B.backgroundColor)&&void 0!==I?I:this.theme.palette.background,labelColor:null!==(g=B.labelColor)&&void 0!==g?g:this.theme.palette.foreground},Q=this.theme.palette.muted;C.style.borderRight=`1px solid ${Q}`;const o=null!=(null==e?void 0:e.maxTrackHeight)?Math.min(A.height,e.maxTrackHeight):A.height;this.paintAxisCanvas(t,i,o)}getCombinedAxisInfo(A,I){var g,t;const C=null===(g=A.getAxisInfo)||void 0===g?void 0:g.call(A);if(!I||0===I.frameInstances.size)return C;const e=[];C&&e.push(C);for(const A of I.frameInstances.values()){const I=null===(t=A.getAxisInfo)||void 0===t?void 0:t.call(A);I&&e.push(I)}if(0===e.length)return;const B=null!=C?C:e[0];let i;for(const A of e)A.dataRange&&(i?(i.min=Math.min(i.min,A.dataRange.min),i.max=Math.max(i.max,A.dataRange.max)):i={...A.dataRange});return{...B,dataRange:i}}paintAxisCanvas(A,I,g){const{axisDiv:t}=A,C=g;if(0===C)return;t.style.height=`${C}px`;let e=A.axisCanvas;e||(t.innerHTML="",e=document.createElement("canvas"),e.style.display="block",t.appendChild(e),A.axisCanvas=e);const B=this.canvasProvider.devicePixelRatio;e.width=50*B,e.height=C*B,e.style.width="50px",e.style.height=`${C}px`;const i=e.getContext("2d");i.scale(B,B),Ot(i,I,50,C)}isRulerCanvas(A){return A instanceof HTMLCanvasElement&&this.managedTracks.some(I=>{if("ruler"!==I.track.type)return!1;if(I.track.canvas===A)return!0;for(const g of I.frameInstances.values())if(g.canvas===A)return!0;return!1})}isOverlayTarget(A){return A.composedPath().some(A=>A instanceof HTMLElement&&("LOOM-CONTEXT-MENU"===A.tagName||"LOOM-INPUT-DIALOG"===A.tagName||"LOOM-POPUP"===A.tagName||A.classList.contains("loom-roi-region")||A.classList.contains("loom-track-ui-layer")||A.classList.contains("loom-track-ui-badge")))}_getFrameIdForX(A){if(this._frames.length<=1)return this._frames[0].id;for(const[,I]of this.trackRows){for(const[g,t]of I.columnViewports){const I=t.column.getBoundingClientRect();if(A>=I.left&&A<=I.right)return g}break}return this._frames[0].id}findTrackForTarget(A){if(!(A instanceof Element))return null;if(A instanceof HTMLCanvasElement)for(const I of this.managedTracks){if(I.track.canvas===A)return I.track;for(const g of I.frameInstances.values())if(g.canvas===A)return g}let I=A;for(;I&&I!==this.container;){if(I instanceof HTMLCanvasElement)for(const A of this.managedTracks){if(A.track.canvas===I)return A.track;for(const g of A.frameInstances.values())if(g.canvas===I)return g}I=I.parentElement}for(const[I,g]of this.trackRows)if(g.row.contains(A))return I;return null}onTracksSorted(){this.syncDOMOrder()}syncDOMOrder(){for(const A of this.managedTracks){const I=this.trackRows.get(A.track);I&&this.container.appendChild(I.row)}}setupUndoKeyboardHandler(){this.handleKeyDown=A=>{(A.ctrlKey||A.metaKey)&&("z"!==A.key||A.shiftKey?("z"===A.key&&A.shiftKey||"y"===A.key)&&(A.preventDefault(),this.redo()):(A.preventDefault(),this.undo()))},document.addEventListener("keydown",this.handleKeyDown)}teardownUndoKeyboardHandler(){this.handleKeyDown&&(document.removeEventListener("keydown",this.handleKeyDown),this.handleKeyDown=null)}renderROIOverlays(){this._frames.length<=1?this.roiOverlayManager.render(this.getVisibleROIs(),this._frames[0].locus,this._frames[0].viewportWidth):this.roiOverlayManager.renderMultiFrame(this._frames,A=>this.roiManager.getVisibleROIs(A),3)}updateFeatureOverlays(){for(const A of this.managedTracks){this.updateFeatureOverlay(A.track);for(const I of A.frameInstances.values())this.updateFeatureOverlay(I)}}updateUILayers(){for(const A of this.managedTracks){this.updateUILayer(A.track);for(const I of A.frameInstances.values())this.updateUILayer(I)}}updateFeatureOverlay(A){const I=this.featureOverlays.get(A);I&&A instanceof vt&&I.update(A.getFeatureRects())}updateUILayer(A){var I;const g=this.uiLayers.get(A);g&&g.update(null===(I=A.getUIOverlayState)||void 0===I?void 0:I.call(A),A.height)}syncViewportWrapperBackground(A){var I;const g=this.trackRows.get(A);if(g)for(const A of g.columnViewports.values())if(A.track instanceof vt){const g=null===(I=A.track.config)||void 0===I?void 0:I.background;"string"==typeof g&&(A.viewportWrapper.style.backgroundColor=g)}}toSVG(A){return function(A,I,g,t,C,e,B){var i,Q,o,E,s,a,r;const n=null!==(Q=null!==(i=null==B?void 0:B.width)&&void 0!==i?i:null==B?void 0:B.containerWidth)&&void 0!==Q?Q:0,h=I.length,c=Math.max(0,3*(h-1)),l=n-C,d=Math.floor((l-c)/h);if(d<=0)throw new Error("Cannot export SVG: container too narrow for columns");let D=0;const y=[];for(const I of A){const A=I.track.height||50;y.push(A),D+=A}const w=new R({width:n,height:D,viewbox:{x:0,y:0,width:n,height:D},backdropColor:null!==(o=null==B?void 0:B.backdropColor)&&void 0!==o?o:"white"});let f=0;for(let t=0;t<A.length;t++){const B=A[t],i=y[t],Q=null===(s=(E=B.track).getAxisInfo)||void 0===s?void 0:s.call(E);if(Q){const A={...Q,backgroundColor:null!==(a=Q.backgroundColor)&&void 0!==a?a:g.palette.background,labelColor:null!==(r=Q.labelColor)&&void 0!==r?r:g.palette.foreground},I=`track_${t}_${B.track.type}_axis`;w.saveWithTranslationAndClipRect(I,0,f,C,i,0),A.dataRange&&Ot(w,A,C,i),w.restore()}let o=C;for(let A=0;A<h;A++){const g=e(B,I[A].id),C=`track_${t}_${g.type}_frame_${A}`;w.saveWithTranslationAndClipRect(C,o,f,d,i,0),g.renderToContext&&g.renderToContext(w,d,i),w.restore(),o+=d+(A<h-1?3:0)}f+=i}let S=C;for(let A=0;A<h;A++){const g=I[A],C=t(g.locus);if(C.length>0){const I=(g.locus.end-g.locus.start)/d,t={pixelWidth:d,bpStart:g.locus.start,bpPerPixel:I,viewportWidth:d};w.saveWithTranslationAndClipRect(`roi_overlays_${A}`,S,0,d,D,0),u(w,C,t,{totalHeight:D}),w.restore()}S+=d+(A<h-1?3:0)}return w.setHeight(D),w.getSerializedSvg(!0)}(this.managedTracks,this._frames,this.theme,A=>this.roiManager.getVisibleROIs(A),yQ,(A,I)=>this.getTrackForFrame(A,I),{width:null==A?void 0:A.width,containerWidth:this.container.clientWidth,backdropColor:null==A?void 0:A.backdropColor})}async toPNG(){const A=this.toSVG(),I=this.container.getBoundingClientRect();return function(A,I,g,t){const C=new Blob([A],{type:"image/svg+xml"}),e=URL.createObjectURL(C);return new Promise((A,C)=>{const B=new Image;B.onload=()=>{try{const C=document.createElement("canvas");C.width=I*t,C.height=g*t;const i=C.getContext("2d");i.scale(t,t),i.drawImage(B,0,0),URL.revokeObjectURL(e),A(C.toDataURL("image/png"))}catch(A){URL.revokeObjectURL(e),C(A)}},B.onerror=()=>{URL.revokeObjectURL(e),C(new Error("Failed to load SVG for PNG conversion"))},B.src=e})}(A,I.width,I.height,this.canvasProvider.devicePixelRatio)}saveSVGtoFile(A){const I=this.toSVG(),g=new Blob([I],{type:"application/octet-stream"}),t=URL.createObjectURL(g);uQ(A||"igv.svg",t),URL.revokeObjectURL(t)}async savePNGtoFile(A){uQ(A||"igv.png",await this.toPNG())}}const SQ={palette:{primary:"#4A90D9",secondary:"#D94A7A",accent:"#4A90D9",background:"#ffffff",foreground:"#333333",muted:"#B0B0B0"},fontFamily:"Inter, system-ui, sans-serif",annotation:{utrColor:"#A8C8E8",altUtrColor:"#E8A8BE",borderColor:"rgba(0, 0, 0, 0.15)",borderWidth:.5,borderRadius:3,arrowInExonColor:"rgba(255, 255, 255, 0.7)",labelFont:"italic 10px Inter, system-ui, sans-serif",featureHeight:12,expandedRowHeight:28,margin:8},wig:{overflowColor:"#FF6B6B"},ideogram:{borderColor:"#B0B0B0",font:"10px Inter, system-ui, sans-serif"},sequence:{frameColor1:"hsl(220, 15%, 90%)",frameColor2:"hsl(220, 15%, 95%)",startCodonColor:"hsl(160, 55%, 42%)",stopCodonColor:"hsl(0, 60%, 55%)",useFillText:!0,frameLabelColor:"#444444",codonLabelColor:"#ffffff",frameFont:"600 10px Inter, system-ui, sans-serif",codonBorderRadius:3}},kQ={palette:{primary:"#6CB4EE",secondary:"#EE6C9E",accent:"#6a9fd9",background:"#1a1a2e",foreground:"#e0e0e0",muted:"#555555"},nucleotideColors:{A:"#4ade80",C:"#60a5fa",G:"#facc15",T:"#f87171",N:"#666666"},ideogram:{bandLightColor:"rgb(50, 50, 70)",bandDarkColor:"rgb(200, 200, 220)",centromereColor:"rgb(180, 50, 50)",borderColor:"#555555",viewportIndicatorColor:"#ff6b6b"},annotation:{utrColor:"#3D6B8E",altUtrColor:"#8E3D5E",borderColor:"rgba(255, 255, 255, 0.12)",borderWidth:.5,borderRadius:3,arrowInExonColor:"rgba(0, 0, 0, 0.4)",labelBackground:"#1a1a2e",labelFont:"italic 10px sans-serif",featureHeight:12,expandedRowHeight:28,margin:8},wig:{overflowColor:"#FF6B6B"},sequence:{background:"#1a1a2e",frameColor1:"hsl(230, 15%, 28%)",frameColor2:"hsl(230, 15%, 22%)",startCodonColor:"hsl(160, 50%, 35%)",stopCodonColor:"hsl(0, 55%, 45%)",useFillText:!0,frameLabelColor:"#c8c8c8",codonLabelColor:"#ffffff",frameFont:"600 10px sans-serif",codonBorderRadius:3}};const GQ=`\n${M({navbarBg:"#f3f3f3",navbarHeight:"32px",navbarPadding:"0 8px",font:"12px Arial, sans-serif",fontSmall:"11px Arial, sans-serif",textColor:"#333",textMuted:"#737373",borderStyle:"1px solid #ccc",borderRadius:"4px",buttonBg:"white",buttonHover:"#e8e8e8",buttonBorder:"1px solid #b0b0b0",buttonSize:"24px",inputBg:"white",inputBorder:"1px solid #b0b0b0",inputFocusBorder:"1px solid #4A90D9",inputWidth:"220px",inputHeight:"22px",accent:"#4A90D9",iconColor:"#555",iconSize:"14px",gap:"8px"})}\n`,FQ=`\n${M({navbarBg:"#fafbfc",navbarHeight:"40px",navbarPadding:"0 12px",font:"13px Inter, system-ui, -apple-system, sans-serif",fontSmall:"11px Inter, system-ui, -apple-system, sans-serif",textColor:"#1a1a1a",textMuted:"#6b7280",borderStyle:"1px solid rgba(0, 0, 0, 0.08)",borderRadius:"8px",buttonBg:"white",buttonHover:"#f0f4ff",buttonBorder:"1px solid rgba(0, 0, 0, 0.1)",buttonSize:"28px",inputBg:"white",inputBorder:"1px solid rgba(0, 0, 0, 0.12)",inputFocusBorder:"1px solid #4A90D9",inputWidth:"260px",inputHeight:"28px",accent:"#4A90D9",iconColor:"#6b7280",iconSize:"16px",gap:"10px"})}\n`,NQ=`\n${M({shellBg:"#16162a",navbarBg:"#1a1a2e",navbarHeight:"36px",navbarPadding:"0 10px",font:"12px Arial, sans-serif",fontSmall:"11px Arial, sans-serif",textColor:"#e0e0e0",textMuted:"#888",borderStyle:"1px solid #333",borderRadius:"4px",buttonBg:"#2a2a3e",buttonHover:"#3a3a50",buttonBorder:"1px solid #444",buttonSize:"24px",inputBg:"#2a2a3e",inputBorder:"1px solid #444",inputFocusBorder:"1px solid #6a9fd9",inputWidth:"220px",inputHeight:"22px",accent:"#6a9fd9",iconColor:"#b0b0b0",iconSize:"14px",gap:"8px"})}\n`;const mQ=g(null);function RQ(A){var I,g;if(void 0===A)return{shellTheme:"modern"};if("string"==typeof A)return{shellTheme:A,renderTheme:(g=A,"modern"===g?SQ:"dark"===g?kQ:void 0)};const t=null===(I=A.palette)||void 0===I?void 0:I.background;if(!t)return{shellTheme:"modern",renderTheme:A};const C=document.createElement("canvas").getContext("2d");C.fillStyle=t;const e=C.fillStyle;return{shellTheme:(.299*parseInt(e.slice(1,3),16)+.587*parseInt(e.slice(3,5),16)+.114*parseInt(e.slice(5,7),16))/255<.5?"dark":"modern",renderTheme:A}}const pQ=t(function(g,t){const{defaultLocus:o,locus:E,onLocusChange:s,onFrameChange:a,theme:r,genome:n,interactive:h,wheelZoom:c,workers:l,workerFactory:d,workerProvider:D,popupProvider:u,contextMenuProvider:y,ruler:w,genes:f,sequence:S,session:k,tracks:G,remoteSocket:F,className:N,style:m,children:R}=g,p=C(null),U=C(null),[M,L]=e(null),J=C(!1),K=C(s);K.current=s;const Y=C(a);Y.current=a,B(()=>{var A;const I=p.current;if(!I)return;const g=null!==(A=null!=E?E:o)&&void 0!==A?A:null==k?void 0:k.locus;if(!g)throw new Error("<LoomBrowser> requires a `locus`, `defaultLocus`, or `session` prop");const t={locus:g,interactive:h,wheelZoom:c,workers:l,workerFactory:d,workerProvider:D,popupProvider:u,contextMenuProvider:y},C=RQ(r);void 0!==C.renderTheme?t.theme=C.renderTheme:void 0!==(null==k?void 0:k.theme)&&(t.theme=k.theme),void 0!==n&&(t.genome=n);const e=new fQ(I,t);if(U.current=e,k&&e.loadSession(k),G)for(const A of G)e.addTrackFromConfig(A);return!1!==w&&e.addRuler(),!1!==f&&e.addGeneTrack(),!1!==S&&e.addSequenceTrack(),e.on(AQ.LocusChange,A=>{var I,g;J.current?J.current=!1:(null===(I=K.current)||void 0===I||I.call(K,A.locus),null===(g=Y.current)||void 0===g||g.call(Y,A))}),L(e),()=>{e.dispose(),U.current=null,L(null)}},[]),B(()=>{const A=U.current;if(!A||!E)return;const I=A.locus;I.chr===E.chr&&I.start===E.start&&I.end===E.end||(J.current=!0,A.setLocus(E))},[null==E?void 0:E.chr,null==E?void 0:E.start,null==E?void 0:E.end]),B(()=>{if(!U.current||void 0===r)return;const{renderTheme:A}=RQ(r);A&&U.current.setTheme(A)},[r]),B(()=>{const A=U.current;if(A)return F?(A.attachRemote(F),()=>{A.detachRemote()}):void A.detachRemote()},[F]),i(t,()=>({get browser(){return U.current},async search(A){var I,g;return null!==(g=await(null===(I=U.current)||void 0===I?void 0:I.search(A)))&&void 0!==g&&g},zoomIn(A){var I;null===(I=U.current)||void 0===I||I.zoomIn(A)},zoomOut(A){var I;null===(I=U.current)||void 0===I||I.zoomOut(A)},addTrackFromConfig:A=>U.current.addTrackFromConfig(A),getTrackOrder(){var A,I;return null!==(I=null===(A=U.current)||void 0===A?void 0:A.getTrackOrder())&&void 0!==I?I:[]},getManagedTracks(){var A,I;return null!==(I=null===(A=U.current)||void 0===A?void 0:A.getManagedTracks())&&void 0!==I?I:[]},findTracks(A){var I,g;return null!==(g=null===(I=U.current)||void 0===I?void 0:I.findTracks(A))&&void 0!==g?g:[]},moveTrack(A,I){var g;null===(g=U.current)||void 0===g||g.moveTrack(A,I)},removeTracks(A){var I,g;return null!==(g=null===(I=U.current)||void 0===I?void 0:I.removeTracks(A))&&void 0!==g?g:0},updateTrackMetadata(A,I){var g,t;return null!==(t=null===(g=U.current)||void 0===g?void 0:g.updateTrackMetadata(A,I))&&void 0!==t?t:0},getCachedFeatures(A){var I;return null===(I=U.current)||void 0===I?void 0:I.getCachedFeatures(A)},reloadData(){var A;null===(A=U.current)||void 0===A||A.reloadData()},addROI:(A,I)=>U.current.addROI(A,I),addROISet:A=>U.current.addROISet(A),removeROISet(A){var I,g;return null!==(g=null===(I=U.current)||void 0===I?void 0:I.removeROISet(A))&&void 0!==g&&g},removeROI(A){var I,g;return null!==(g=null===(I=U.current)||void 0===I?void 0:I.removeROI(A))&&void 0!==g&&g},updateROI(A,I){var g;return null===(g=U.current)||void 0===g?void 0:g.updateROI(A,I)},clearROIs(){var A;null===(A=U.current)||void 0===A||A.clearROIs()},getROIs(){var A,I;return null!==(I=null===(A=U.current)||void 0===A?void 0:A.getROIs())&&void 0!==I?I:[]},getROISets(){var A,I;return null!==(I=null===(A=U.current)||void 0===A?void 0:A.getROISets())&&void 0!==I?I:[]},findROIsAtLocus(A,I,g){var t,C;return null!==(C=null===(t=U.current)||void 0===t?void 0:t.findROIsAtLocus(A,I,g))&&void 0!==C?C:[]},getVisibleROIs(){var A,I;return null!==(I=null===(A=U.current)||void 0===A?void 0:A.getVisibleROIs())&&void 0!==I?I:[]},toJSON:()=>U.current.toJSON(),loadSession(A,I){var g;null===(g=U.current)||void 0===g||g.loadSession(A,I)},toSVG(){var A,I;return null!==(I=null===(A=U.current)||void 0===A?void 0:A.toSVG())&&void 0!==I?I:""},async toPNG(){var A,I;return null!==(I=null===(A=U.current)||void 0===A?void 0:A.toPNG())&&void 0!==I?I:""},saveSVGtoFile(A){var I;null===(I=U.current)||void 0===I||I.saveSVGtoFile(A)},async savePNGtoFile(A){var I;await(null===(I=U.current)||void 0===I?void 0:I.savePNGtoFile(A))},attachRemote(A){var I;null===(I=U.current)||void 0===I||I.attachRemote(A)},detachRemote(){var A;null===(A=U.current)||void 0===A||A.detachRemote()}}),[M]);const v=Q(()=>RQ(r).shellTheme,[r]),b=Q(()=>({browser:M,shellTheme:v}),[M,v]);return A(mQ.Provider,{value:b,children:I("div",{className:N,style:m,children:[M&&R,A("div",{ref:p})]})})});function UQ(){const A=o(mQ);if(null===A)throw new Error("useGenomeBrowser must be used within a <LoomBrowser> component");return A.browser}function MQ(A,I){const g=UQ(),t=C(I);t.current=I,B(()=>{if(!g)return;const I=A=>t.current(A);return g.on(A,I),()=>{g.off(A,I)}},[g,A])}function LQ(){const A=UQ(),[I,g]=e(()=>{var I;return null!==(I=null==A?void 0:A.locus)&&void 0!==I?I:null}),[t,C]=e(()=>{var I;return null!==(I=null==A?void 0:A.frames)&&void 0!==I?I:[]});MQ(AQ.LocusChange,A=>{g(A.locus),C(A.frames)});return{locus:I,frames:t,setLocus:E((I,g)=>{g?null==A||A.setFrameLocus(g,I):null==A||A.setLocus(I)},[A]),zoomIn:E(I=>{null==A||A.zoomIn(I)},[A]),zoomOut:E(I=>{null==A||A.zoomOut(I)},[A])}}function JQ(){const[A,I]=e(void 0),g=C("");return B(()=>{const A=document.documentElement;function t(){const t=W(A),C=JSON.stringify(t);if(C===g.current)return;g.current=C;if(!Object.values(t).some(A=>void 0!==A))return void I(void 0);const e={};for(const[A,I]of Object.entries(t))void 0!==I&&(e[A]=I);I({palette:e})}t();const C=new MutationObserver(t);return C.observe(A,{attributes:!0,attributeFilter:["class","data-theme"]}),()=>C.disconnect()},[]),A}function KQ(A,I,g,t,e){const i=UQ(),Q=C(null),o=C(I),E=C(!0),s=C(e);return s.current=e,B(()=>{if(!i)return;const I=A(i);return Q.current=I,()=>{Q.current&&(i.removeTrack(Q.current),Q.current=null)}},[i,...I]),B(()=>{if(E.current)return void(E.current=!1);if(!i||!Q.current||!g)return;const A=I.some((A,I)=>A!==o.current[I]);o.current=I,A||g(Q.current,i)},t),B(()=>{if(!i)return;function A(A,I){I&&A.track===Q.current&&I({features:A.features,genomicLocation:A.genomicLocation,x:A.x,y:A.y})}const I=I=>{var g;return A(I,null===(g=s.current)||void 0===g?void 0:g.onClick)},g=I=>{var g;return A(I,null===(g=s.current)||void 0===g?void 0:g.onContextMenu)};return i.on(AQ.TrackClick,I),i.on(AQ.TrackContextMenu,g),()=>{i.off(AQ.TrackClick,I),i.off(AQ.TrackContextMenu,g)}},[i]),Q.current}function YQ({config:A,maxTrackHeight:I}){return KQ(g=>g.addRuler({config:A,maxTrackHeight:I}),[],I=>{A&&I.setConfig(A)},[A]),null}function vQ({url:A,features:I,config:g,windowFunction:t,maxTrackHeight:C,name:e,metadata:B,onClick:i,onContextMenu:Q}){return KQ(i=>{if(I)return i.addWigTrackWithFeatures(I,{config:g,maxTrackHeight:C,name:e,metadata:B});if(!A)throw new Error("WigTrack requires either a `url` or `features` prop");return i.addWigTrack(A,{config:g,windowFunction:t,maxTrackHeight:C,name:e,metadata:B})},[A,I,t],A=>{g&&A.setConfig(g)},[g,e],{onClick:i,onContextMenu:Q}),null}function bQ({config:A,genome:I,track:g,maxTrackHeight:t,name:C,metadata:e,onClick:B,onContextMenu:i}){return KQ(B=>B.addGeneTrack({config:A,genome:I,track:g,maxTrackHeight:t,name:C,metadata:e}),[I,g],I=>{A&&I.setConfig(A)},[A,C],{onClick:B,onContextMenu:i}),null}function xQ({url:A,features:I,config:g,format:t,indexURL:C,indexed:e,maxTrackHeight:B,name:i,metadata:o,colorBy:E,onClick:s,onContextMenu:a}){const r=Q(()=>I&&E?I.map(A=>({...A,color:E(A)})):I,[I,E]);return KQ(I=>{if(r)return I.addBedTrackWithFeatures(r,{config:g,maxTrackHeight:B,name:i,metadata:o});if(!A)throw new Error("BedTrack requires either a `url` or `features` prop");return I.addBedTrack(A,{config:g,format:t,indexURL:C,indexed:e,maxTrackHeight:B,name:i,metadata:o})},[A,r,t,C,e],A=>{g&&A.setConfig(g)},[g,i],{onClick:s,onContextMenu:a}),null}function HQ({config:A,maxTrackHeight:I}){return KQ(g=>g.addSequenceTrack({config:A,maxTrackHeight:I}),[],I=>{A&&I.setConfig(A)},[A]),null}function qQ({url:A,config:I,format:g,indexURL:t,indexed:C,name:e,metadata:B,onClick:i,onContextMenu:Q}){return KQ(i=>i.addInteractionTrack(A,{config:I,format:g,indexURL:t,indexed:C,name:e,metadata:B}),[A,g,t,C],A=>{I&&A.setConfig(I)},[I,e],{onClick:i,onContextMenu:Q}),null}function TQ({url:A,experimentId:I,config:g,windowFunction:t,maxTrackHeight:C,name:e,metadata:B,onClick:i,onContextMenu:Q}){return KQ(i=>i.addGtxTrack(A,{experimentId:I,config:g,windowFunction:t,maxTrackHeight:C,name:e,metadata:B}),[A,I,t],A=>{g&&A.setConfig(g)},[g,e],{onClick:i,onContextMenu:Q}),null}function _Q({rois:A,name:I="Declarative",color:g}){const t=UQ(),e=C(null);return B(()=>{if(!t)return;e.current&&(t.removeROISet(e.current),e.current=null);const C={name:I,color:g,features:A},B=t.addROISet(C);return e.current=B,()=>{e.current&&(t.removeROISet(e.current),e.current=null)}},[t,I,g,A]),null}const WQ=document.createElement("template");WQ.innerHTML="\n<style>\n:host {\n display: inline-flex;\n align-items: center;\n}\nselect {\n font: var(--loom-font, 12px Arial, sans-serif);\n color: var(--loom-text-color, #333);\n background: var(--loom-input-bg, white);\n border: var(--loom-input-border, 1px solid #b0b0b0);\n border-radius: var(--loom-border-radius, 4px);\n height: var(--loom-input-height, 22px);\n padding: 0 4px;\n box-sizing: border-box;\n outline: none;\n cursor: pointer;\n transition: border-color 0.15s;\n}\nselect:focus {\n border: var(--loom-input-focus-border, 1px solid #4A90D9);\n}\n</style>\n<select></select>\n";class PQ extends HTMLElement{constructor(){super(),this.unsubscribe=null,this._browser=null,this._frameId=null,this.attachShadow({mode:"open"}),this.shadowRoot.appendChild(WQ.content.cloneNode(!0)),this.select=this.shadowRoot.querySelector("select"),this.select.addEventListener("change",()=>{if(!this._browser)return;const A=this.select.value;if("all"===A)this._frameId?this._browser.search("all",this._frameId):this._browser.search("all");else{const I=this._browser.chromSizes;if(I&&null!=I[A]){const g={chr:A,start:0,end:I[A]};this._frameId?this._browser.setFrameLocus(this._frameId,g):this._browser.setLocus(g)}}})}set frameId(A){this._frameId=A,this._browser&&this.updateFromBrowser(this._browser)}get frameId(){return this._frameId}set browser(A){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null),this._browser=A,A&&(this.populate(A),this.updateFromBrowser(A),this.unsubscribe=A.on(AQ.LocusChange,()=>{this.updateFromBrowser(A)}))}get browser(){return this._browser}updateFromBrowser(A){var I,g;const t=this._frameId&&null!==(g=null===(I=A.frames.find(A=>A.id===this._frameId))||void 0===I?void 0:I.locus)&&void 0!==g?g:A.locus;this.updateSelection(t.chr)}populate(A){this.select.innerHTML="";const I=A.chromSizes;if(!I)return;if(A.cumulativeOffsets){const A=document.createElement("option");A.value="all",A.textContent="All",this.select.appendChild(A)}const g=JI(I);for(const A of g){const I=document.createElement("option");I.value=A,I.textContent=A,this.select.appendChild(I)}}updateSelection(A){h({chr:A,start:0,end:0})?this.select.value="all":this.select.value=A}disconnectedCallback(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null)}}const OQ=document.createElement("template");OQ.innerHTML='\n<style>\n:host {\n display: inline-flex;\n align-items: center;\n}\n.container {\n display: flex;\n align-items: center;\n gap: 4px;\n}\ninput {\n font: var(--loom-font, 12px Arial, sans-serif);\n color: var(--loom-text-color, #333);\n background: var(--loom-input-bg, white);\n border: var(--loom-input-border, 1px solid #b0b0b0);\n border-radius: var(--loom-border-radius, 4px);\n width: var(--loom-input-width, 220px);\n height: var(--loom-input-height, 22px);\n padding: 0 8px;\n box-sizing: border-box;\n outline: none;\n transition: border-color 0.15s;\n}\ninput:focus {\n border: var(--loom-input-focus-border, 1px solid #4A90D9);\n}\ninput::placeholder {\n color: var(--loom-text-muted, #737373);\n}\n.search-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--loom-button-size, 24px);\n height: var(--loom-button-size, 24px);\n background: var(--loom-button-bg, white);\n border: var(--loom-button-border, 1px solid #b0b0b0);\n border-radius: var(--loom-border-radius, 4px);\n cursor: pointer;\n color: var(--loom-icon-color, #555);\n transition: background 0.15s;\n padding: 0;\n line-height: 1;\n}\n.search-btn:hover {\n background: var(--loom-button-hover, #e8e8e8);\n}\n.search-btn svg {\n width: var(--loom-icon-size, 14px);\n height: var(--loom-icon-size, 14px);\n fill: none;\n stroke: currentColor;\n stroke-width: 2;\n stroke-linecap: round;\n stroke-linejoin: round;\n}\n</style>\n<div class="container">\n <input type="text" placeholder="Locus Search" spellcheck="false" />\n <button class="search-btn" title="Go to locus">\n <svg viewBox="0 0 24 24"><circle cx="11" cy="11" r="7"/><line x1="16.5" y1="16.5" x2="21" y2="21"/></svg>\n </button>\n</div>\n';class VQ extends HTMLElement{constructor(){super(),this.unsubscribe=null,this._browser=null,this._frameId=null,this.attachShadow({mode:"open"}),this.shadowRoot.appendChild(OQ.content.cloneNode(!0)),this.input=this.shadowRoot.querySelector("input"),this.input.addEventListener("keydown",A=>{"Enter"===A.key&&this.doSearch()}),this.shadowRoot.querySelector(".search-btn").addEventListener("click",()=>{this.doSearch()})}set frameId(A){this._frameId=A,this._browser&&this.updateDisplayFromBrowser(this._browser)}get frameId(){return this._frameId}set browser(A){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null),this._browser=A,A&&(this.updateDisplayFromBrowser(A),this.unsubscribe=A.on(AQ.LocusChange,()=>{this.updateDisplayFromBrowser(A)}))}get browser(){return this._browser}updateDisplayFromBrowser(A){if(document.activeElement!==this.input&&this.shadowRoot.activeElement!==this.input)if(this._frameId){const I=A.frames.find(A=>A.id===this._frameId);this.input.value=l(I?I.locus:A.locus)}else{const I=A.frames;I.length<=1?this.input.value=l(A.locus):this.input.value=I.map(A=>l(A.locus)).join(" ")}}async doSearch(){var A;if(!this._browser)return;const I=this.input.value.trim();if(I){this.input.disabled=!0;try{await this._browser.search(I,null!==(A=this._frameId)&&void 0!==A?A:void 0)||(this.input.style.borderColor="var(--loom-input-error-border, #d32f2f)",setTimeout(()=>{this.input.style.borderColor=""},1500))}finally{this.input.disabled=!1,this.input.blur()}}}disconnectedCallback(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null)}}const ZQ=document.createElement("template");ZQ.innerHTML='\n<style>\n:host {\n display: inline-flex;\n align-items: center;\n}\n.container {\n display: flex;\n align-items: center;\n gap: 2px;\n}\nbutton {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--loom-button-size, 24px);\n height: var(--loom-button-size, 24px);\n background: var(--loom-button-bg, white);\n border: var(--loom-button-border, 1px solid #b0b0b0);\n border-radius: var(--loom-border-radius, 4px);\n cursor: pointer;\n color: var(--loom-icon-color, #555);\n transition: background 0.15s;\n padding: 0;\n line-height: 1;\n}\nbutton:hover {\n background: var(--loom-button-hover, #e8e8e8);\n}\nbutton:active {\n transform: scale(0.95);\n}\nbutton svg {\n width: var(--loom-icon-size, 14px);\n height: var(--loom-icon-size, 14px);\n fill: none;\n stroke: currentColor;\n stroke-width: 2;\n stroke-linecap: round;\n}\n</style>\n<div class="container">\n <button class="zoom-out" title="Zoom out">\n <svg viewBox="0 0 24 24"><circle cx="12" cy="12" r="9"/><line x1="8" y1="12" x2="16" y2="12"/></svg>\n </button>\n <button class="zoom-in" title="Zoom in">\n <svg viewBox="0 0 24 24"><circle cx="12" cy="12" r="9"/><line x1="12" y1="8" x2="12" y2="16"/><line x1="8" y1="12" x2="16" y2="12"/></svg>\n </button>\n</div>\n';class XQ extends HTMLElement{constructor(){super(),this._browser=null,this._frameId=null,this.attachShadow({mode:"open"}),this.shadowRoot.appendChild(ZQ.content.cloneNode(!0)),this.shadowRoot.querySelector(".zoom-out").addEventListener("click",()=>{var A,I;null===(A=this._browser)||void 0===A||A.zoomOut(2,null!==(I=this._frameId)&&void 0!==I?I:void 0)}),this.shadowRoot.querySelector(".zoom-in").addEventListener("click",()=>{var A,I;null===(A=this._browser)||void 0===A||A.zoomIn(2,null!==(I=this._frameId)&&void 0!==I?I:void 0)})}set frameId(A){this._frameId=A}get frameId(){return this._frameId}set browser(A){this._browser=A}get browser(){return this._browser}}const zQ=document.createElement("template");zQ.innerHTML='\n<style>\n:host {\n display: inline-flex;\n align-items: center;\n}\n.label {\n font: var(--loom-font-small, 11px Arial, sans-serif);\n color: var(--loom-text-muted, #737373);\n white-space: nowrap;\n user-select: none;\n}\n</style>\n<span class="label"></span>\n';class jQ extends HTMLElement{constructor(){super(),this.unsubscribe=null,this._browser=null,this._frameId=null,this.attachShadow({mode:"open"}),this.shadowRoot.appendChild(zQ.content.cloneNode(!0)),this.label=this.shadowRoot.querySelector(".label")}set frameId(A){this._frameId=A,this._browser&&this.updateFromBrowser(this._browser)}get frameId(){return this._frameId}set browser(A){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null),this._browser=A,A&&(this.updateFromBrowser(A),this.unsubscribe=A.on(AQ.LocusChange,()=>{this.updateFromBrowser(A)}))}get browser(){return this._browser}updateFromBrowser(A){var I,g;const t=this._frameId&&null!==(g=null===(I=A.frames.find(A=>A.id===this._frameId))||void 0===I?void 0:I.locus)&&void 0!==g?g:A.locus;this.label.textContent=function(A){if((A=Math.abs(A))>=1e9){const I=A/1e9;return`${I%1==0?I.toFixed(0):I.toFixed(1)} Gb`}if(A>=1e6){const I=A/1e6;return`${I%1==0?I.toFixed(0):I.toFixed(1)} Mb`}if(A>=1e3){const I=A/1e3;return`${I%1==0?I.toFixed(0):I.toFixed(1)} kb`}return`${Math.round(A)} bp`}(t.end-t.start)}disconnectedCallback(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null)}}const $Q=document.createElement("template");$Q.innerHTML='\n<style>\n:host {\n display: inline-flex;\n align-items: center;\n}\n.container {\n display: flex;\n align-items: center;\n gap: 2px;\n}\nbutton {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--loom-button-size, 24px);\n height: var(--loom-button-size, 24px);\n background: var(--loom-button-bg, white);\n border: var(--loom-button-border, 1px solid #b0b0b0);\n border-radius: var(--loom-border-radius, 4px);\n cursor: pointer;\n color: var(--loom-icon-color, #555);\n transition: background 0.15s;\n padding: 0;\n line-height: 1;\n}\nbutton:hover {\n background: var(--loom-button-hover, #e8e8e8);\n}\nbutton:active {\n transform: scale(0.95);\n}\nbutton svg {\n width: var(--loom-icon-size, 14px);\n height: var(--loom-icon-size, 14px);\n fill: none;\n stroke: currentColor;\n stroke-width: 2;\n stroke-linecap: round;\n stroke-linejoin: round;\n}\n</style>\n<div class="container">\n <button class="save-svg" title="Save as SVG">\n <svg viewBox="0 0 24 24">\n <path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/>\n <polyline points="7 10 12 15 17 10"/>\n <line x1="12" y1="15" x2="12" y2="3"/>\n </svg>\n </button>\n <button class="save-png" title="Save as PNG">\n <svg viewBox="0 0 24 24">\n <rect x="3" y="3" width="18" height="18" rx="2" ry="2"/>\n <circle cx="8.5" cy="8.5" r="1.5"/>\n <polyline points="21 15 16 10 5 21"/>\n </svg>\n </button>\n</div>\n';class Ao extends HTMLElement{constructor(){super(),this._browser=null,this.attachShadow({mode:"open"}),this.shadowRoot.appendChild($Q.content.cloneNode(!0)),this.shadowRoot.querySelector(".save-svg").addEventListener("click",()=>{var A;null===(A=this._browser)||void 0===A||A.saveSVGtoFile()}),this.shadowRoot.querySelector(".save-png").addEventListener("click",()=>{var A;null===(A=this._browser)||void 0===A||A.savePNGtoFile()})}set browser(A){this._browser=A}get browser(){return this._browser}}customElements.get("loom-chromosome-select")||customElements.define("loom-chromosome-select",PQ),customElements.get("loom-locus-input")||customElements.define("loom-locus-input",VQ),customElements.get("loom-zoom-controls")||customElements.define("loom-zoom-controls",XQ),customElements.get("loom-window-size")||customElements.define("loom-window-size",jQ);const Io=document.createElement("template");Io.innerHTML='\n<style>\n:host {\n display: flex;\n align-items: center;\n gap: var(--loom-gap, 8px);\n flex: 1;\n min-width: 0;\n}\n.close-btn {\n display: none;\n align-items: center;\n justify-content: center;\n width: 18px;\n height: 18px;\n background: none;\n border: var(--loom-button-border, 1px solid #b0b0b0);\n border-radius: var(--loom-border-radius, 4px);\n cursor: pointer;\n color: var(--loom-icon-color, #555);\n transition: background 0.15s, color 0.15s;\n padding: 0;\n line-height: 1;\n flex-shrink: 0;\n}\n.close-btn:hover {\n background: var(--loom-button-hover, #e8e8e8);\n color: var(--loom-text-color, #333);\n}\n.close-btn svg {\n width: 10px;\n height: 10px;\n fill: none;\n stroke: currentColor;\n stroke-width: 2;\n stroke-linecap: round;\n}\n:host([closable]) .close-btn {\n display: flex;\n}\n</style>\n<loom-chromosome-select></loom-chromosome-select>\n<loom-locus-input></loom-locus-input>\n<loom-window-size></loom-window-size>\n<loom-zoom-controls></loom-zoom-controls>\n<button class="close-btn" title="Close this panel">\n <svg viewBox="0 0 24 24"><line x1="6" y1="6" x2="18" y2="18"/><line x1="18" y1="6" x2="6" y2="18"/></svg>\n</button>\n';class go extends HTMLElement{constructor(){super(),this._browser=null,this._frameId=null,this.unsubFrameRemoved=null,this.attachShadow({mode:"open"}),this.shadowRoot.appendChild(Io.content.cloneNode(!0)),customElements.upgrade(this.shadowRoot),this.chromSelect=this.shadowRoot.querySelector("loom-chromosome-select"),this.locusInput=this.shadowRoot.querySelector("loom-locus-input"),this.zoomControls=this.shadowRoot.querySelector("loom-zoom-controls"),this.windowSize=this.shadowRoot.querySelector("loom-window-size"),this.shadowRoot.querySelector(".close-btn").addEventListener("click",()=>{this._browser&&this._frameId&&this._browser.removeFrame(this._frameId)})}set frameId(A){this._frameId=A,this.chromSelect.frameId=A,this.locusInput.frameId=A,this.zoomControls.frameId=A,this.windowSize.frameId=A}get frameId(){return this._frameId}set browser(A){if(this.unsubFrameRemoved&&(this.unsubFrameRemoved(),this.unsubFrameRemoved=null),this._browser=A,this.chromSelect.browser=A,this.locusInput.browser=A,this.zoomControls.browser=A,this.windowSize.browser=A,A){this.updateClosable(A);const I=A.on(AQ.FrameAdded,()=>this.updateClosable(A)),g=A.on(AQ.FrameRemoved,()=>this.updateClosable(A));this.unsubFrameRemoved=()=>{I(),g()}}}get browser(){return this._browser}updateClosable(A){A.frames.length>1?this.setAttribute("closable",""):this.removeAttribute("closable")}disconnectedCallback(){this.unsubFrameRemoved&&(this.unsubFrameRemoved(),this.unsubFrameRemoved=null)}}customElements.get("loom-export-controls")||customElements.define("loom-export-controls",Ao),customElements.get("loom-frame-panel")||customElements.define("loom-frame-panel",go);const to=document.createElement("template");to.innerHTML='\n<style>\n:host {\n display: block;\n}\n.single-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n height: var(--loom-navbar-height, 32px);\n padding: var(--loom-navbar-padding, 0 8px);\n background: var(--loom-navbar-bg, #f3f3f3);\n border-bottom: var(--loom-border, 1px solid #ccc);\n box-sizing: border-box;\n gap: var(--loom-gap, 8px);\n}\n.single-left {\n display: flex;\n align-items: center;\n gap: var(--loom-gap, 8px);\n flex: 1;\n min-width: 0;\n}\n.single-right {\n display: flex;\n align-items: center;\n gap: var(--loom-gap, 8px);\n flex-shrink: 0;\n}\n.global-row {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n height: var(--loom-navbar-height, 32px);\n padding: var(--loom-navbar-padding, 0 8px);\n background: var(--loom-navbar-bg, #f3f3f3);\n border-bottom: var(--loom-border, 1px solid #ccc);\n box-sizing: border-box;\n gap: var(--loom-gap, 8px);\n}\n.frames-row {\n display: flex;\n align-items: center;\n min-height: var(--loom-navbar-height, 32px);\n padding: 0;\n padding-left: var(--loom-axis-width, 50px);\n background: var(--loom-navbar-bg, #f3f3f3);\n border-bottom: var(--loom-border, 1px solid #ccc);\n box-sizing: border-box;\n gap: 0;\n}\n.frame-divider {\n width: var(--loom-column-shim-width, 3px);\n align-self: stretch;\n background: var(--loom-border-color, #ccc);\n flex-shrink: 0;\n}\n.hidden {\n display: none !important;\n}\n</style>\n\x3c!-- Single-frame layout (classic single row) --\x3e\n<div class="single-row">\n <div class="single-left"></div>\n <div class="single-right">\n <loom-export-controls class="export-single"></loom-export-controls>\n </div>\n</div>\n\x3c!-- Multi-frame layout (two rows) --\x3e\n<div class="global-row hidden">\n <loom-export-controls class="export-multi"></loom-export-controls>\n</div>\n<div class="frames-row hidden"></div>\n';class Co extends HTMLElement{constructor(){super(),this.framePanels=new Map,this._browser=null,this.unsubscribers=[],this.attachShadow({mode:"open"}),this.shadowRoot.appendChild(to.content.cloneNode(!0)),customElements.upgrade(this.shadowRoot),this.singleRow=this.shadowRoot.querySelector(".single-row"),this.singleLeft=this.shadowRoot.querySelector(".single-left"),this.exportSingle=this.shadowRoot.querySelector(".export-single"),this.globalRow=this.shadowRoot.querySelector(".global-row"),this.exportMulti=this.shadowRoot.querySelector(".export-multi"),this.framesRow=this.shadowRoot.querySelector(".frames-row")}set browser(A){for(const A of this.unsubscribers)A();this.unsubscribers=[],this.clearFramePanels(),this._browser=A,this.exportSingle.browser=A,this.exportMulti.browser=A,A&&(this.syncLayout(A),this.unsubscribers.push(A.on(AQ.FrameAdded,()=>this.syncLayout(A))),this.unsubscribers.push(A.on(AQ.FrameRemoved,()=>this.syncLayout(A))))}get browser(){return this._browser}syncLayout(A){const I=A.frames,g=I.length>1;this.singleRow.classList.toggle("hidden",g),this.globalRow.classList.toggle("hidden",!g),this.framesRow.classList.toggle("hidden",!g);const t=new Set(I.map(A=>A.id));for(const A of[...this.framePanels.keys()])t.has(A)||(this.framePanels.get(A).remove(),this.framePanels.delete(A));if(g)this.singleLeft.innerHTML="",this.rebuildFramesRow(A,I);else{this.framesRow.innerHTML="";const g=I[0];let t=this.framePanels.get(g.id);t?t.browser=A:t=this.createPanel(g.id,A),this.singleLeft.innerHTML="",this.singleLeft.appendChild(t)}}rebuildFramesRow(A,I){this.framesRow.innerHTML="";let g=!0;for(const t of I){if(!g){const A=document.createElement("div");A.className="frame-divider",this.framesRow.appendChild(A)}g=!1;let I=this.framePanels.get(t.id);I?I.browser=A:I=this.createPanel(t.id,A),this.framesRow.appendChild(I)}}createPanel(A,I){const g=document.createElement("loom-frame-panel");return g.frameId=A,g.browser=I,this.framePanels.set(A,g),g}clearFramePanels(){for(const A of this.framePanels.values())A.remove();this.framePanels.clear(),this.singleLeft&&(this.singleLeft.innerHTML=""),this.framesRow&&(this.framesRow.innerHTML="")}disconnectedCallback(){for(const A of this.unsubscribers)A();this.unsubscribers=[],this.clearFramePanels()}}let eo=!1;function Bo(){if(eo||"undefined"==typeof customElements)return;eo=!0;const A=[["loom-chromosome-select",PQ],["loom-locus-input",VQ],["loom-zoom-controls",XQ],["loom-window-size",jQ],["loom-export-controls",Ao],["loom-navbar",Co]];for(const[I,g]of A)customElements.get(I)||customElements.define(I,g)}function io({browser:I,frameId:g}){const t=UQ(),e=null!=I?I:t,i=C(null);return Bo(),B(()=>{i.current&&(i.current.browser=e)},[e]),B(()=>{i.current&&(i.current.frameId=null!=g?g:null)},[g]),A("loom-chromosome-select",{ref:i})}function Qo({browser:I,frameId:g}){const t=UQ(),e=null!=I?I:t,i=C(null);return Bo(),B(()=>{i.current&&(i.current.browser=e)},[e]),B(()=>{i.current&&(i.current.frameId=null!=g?g:null)},[g]),A("loom-locus-input",{ref:i})}function oo({browser:I,frameId:g}){const t=UQ(),e=null!=I?I:t,i=C(null);return Bo(),B(()=>{i.current&&(i.current.browser=e)},[e]),B(()=>{i.current&&(i.current.frameId=null!=g?g:null)},[g]),A("loom-zoom-controls",{ref:i})}function Eo({browser:I,frameId:g}){const t=UQ(),e=null!=I?I:t,i=C(null);return Bo(),B(()=>{i.current&&(i.current.browser=e)},[e]),B(()=>{i.current&&(i.current.frameId=null!=g?g:null)},[g]),A("loom-window-size",{ref:i})}function so({browser:I}){const g=UQ(),t=null!=I?I:g,e=C(null);return Bo(),B(()=>{e.current&&(e.current.browser=t)},[t]),A("loom-export-controls",{ref:e})}function ao({browser:I,theme:g}){var t;const e=o(mQ),i=UQ(),Q=null!=I?I:i,E=null!==(t=null!=g?g:null==e?void 0:e.shellTheme)&&void 0!==t?t:"modern",s=C(null),a=C(null);return Bo(),B(()=>{s.current&&(s.current.browser=Q)},[Q]),B(()=>{const A=s.current;(null==A?void 0:A.shadowRoot)&&(a.current||(a.current=document.createElement("style"),A.shadowRoot.prepend(a.current)),a.current.textContent=function(A){return"modern"===A?FQ:"dark"===A?NQ:"auto"===A?"":GQ}(E))},[E]),A("loom-navbar",{ref:s})}class ro extends HTMLElement{constructor(){super(),this.resolve=null,this.attachShadow({mode:"open"})}connectedCallback(){const A=document.createElement("template");A.innerHTML='\n<style>\n:host {\n position: absolute;\n z-index: 100002;\n top: 0; left: 0; right: 0; bottom: 0;\n display: none;\n align-items: center;\n justify-content: center;\n background: rgba(0, 0, 0, 0.15);\n}\n.dialog {\n background: var(--loom-dialog-bg, var(--loom-input-bg, white));\n border: var(--loom-dialog-border, var(--loom-border, 1px solid #ccc));\n border-radius: var(--loom-dialog-radius, var(--loom-border-radius, 6px));\n box-shadow: var(--loom-dialog-shadow, 0 4px 16px rgba(0,0,0,0.2));\n padding: 16px 20px;\n font: var(--loom-dialog-font, var(--loom-font, 13px/1.4 sans-serif));\n color: var(--loom-dialog-color, var(--loom-text-color, #333));\n min-width: 220px;\n}\n.dialog label {\n display: block;\n margin-bottom: 8px;\n font-weight: 600;\n font-size: 12px;\n}\n.dialog input {\n width: 100%;\n box-sizing: border-box;\n padding: 6px 8px;\n background: var(--loom-input-bg, white);\n border: var(--loom-input-border, 1px solid #ccc);\n border-radius: 4px;\n font: inherit;\n color: inherit;\n margin-bottom: 12px;\n}\n.dialog input:focus {\n outline: none;\n border-color: var(--loom-accent, #4A90D9);\n box-shadow: 0 0 0 2px rgba(74, 144, 217, 0.2);\n}\n.buttons {\n display: flex;\n justify-content: flex-end;\n gap: 8px;\n}\n.buttons button {\n padding: 5px 14px;\n border: var(--loom-button-border, 1px solid #ccc);\n border-radius: 4px;\n font: inherit;\n font-size: 12px;\n cursor: pointer;\n background: var(--loom-dialog-btn-bg, var(--loom-button-bg, #f5f5f5));\n color: var(--loom-dialog-btn-color, var(--loom-text-color, #333));\n}\n.buttons button:hover {\n background: var(--loom-button-hover, #e8e8e8);\n}\n.buttons button.primary {\n background: var(--loom-accent, #4A90D9);\n color: white;\n border-color: transparent;\n}\n.buttons button.primary:hover {\n filter: brightness(0.9);\n}\n</style>\n<div class="dialog">\n <label></label>\n <input type="text" />\n <div class="buttons">\n <button class="cancel">Cancel</button>\n <button class="primary ok">OK</button>\n </div>\n</div>\n',this.shadowRoot.appendChild(A.content.cloneNode(!0)),this.labelEl=this.shadowRoot.querySelector("label"),this.inputEl=this.shadowRoot.querySelector("input"),this.okBtn=this.shadowRoot.querySelector(".ok"),this.cancelBtn=this.shadowRoot.querySelector(".cancel"),this.okBtn.addEventListener("click",()=>this.confirm()),this.cancelBtn.addEventListener("click",()=>this.cancel()),this.inputEl.addEventListener("keydown",A=>{"Enter"===A.key&&this.confirm(),"Escape"===A.key&&this.cancel()})}prompt(A,I){return this.labelEl.textContent=A,this.inputEl.value=String(I),this.style.display="flex",requestAnimationFrame(()=>{this.inputEl.focus(),this.inputEl.select()}),new Promise(A=>{this.resolve=A})}confirm(){const A=this.inputEl.value;this.style.display="none",this.resolve&&(this.resolve(A),this.resolve=null)}cancel(){this.style.display="none",this.resolve&&(this.resolve(null),this.resolve=null)}}"undefined"==typeof customElements||customElements.get("loom-input-dialog")||customElements.define("loom-input-dialog",ro);var no=Object.freeze({__proto__:null,LoomInputDialog:ro});class ho extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"})}connectedCallback(){const A=document.createElement("template");A.innerHTML='\n<style>\n:host {\n position: absolute;\n z-index: 100001;\n pointer-events: auto;\n display: none;\n user-select: text;\n -webkit-user-select: text;\n cursor: auto;\n}\n.menu {\n background: var(--loom-menu-bg, var(--loom-input-bg, white));\n border: var(--loom-menu-border, var(--loom-border, 1px solid #ccc));\n border-radius: var(--loom-menu-radius, var(--loom-border-radius, 4px));\n box-shadow: var(--loom-menu-shadow, 0 2px 8px rgba(0,0,0,0.18));\n padding: 4px 0;\n font: var(--loom-menu-font, var(--loom-font-small, 12px/1.4 sans-serif));\n color: var(--loom-menu-color, var(--loom-text-color, #333));\n min-width: 160px;\n}\n.item {\n padding: 6px 12px;\n cursor: pointer;\n white-space: nowrap;\n display: flex;\n align-items: center;\n gap: 6px;\n position: relative;\n}\n.item:hover {\n background: var(--loom-menu-hover, var(--loom-button-hover, #f0f0f0));\n}\n.item.disabled {\n opacity: 0.45;\n pointer-events: none;\n}\n.separator {\n height: 1px;\n background: var(--loom-menu-divider, var(--loom-button-hover, #e0e0e0));\n margin: 4px 0;\n}\n.check {\n width: 14px;\n text-align: center;\n flex-shrink: 0;\n font-size: 11px;\n}\n.label {\n flex: 1;\n}\n.arrow {\n font-size: 9px;\n color: #999;\n margin-left: 8px;\n}\n.submenu {\n position: absolute;\n left: 100%;\n top: -4px;\n display: none;\n}\n.item:hover > .submenu {\n display: block;\n}\n</style>\n<div class="menu"></div>\n',this.shadowRoot.appendChild(A.content.cloneNode(!0)),this.menuDiv=this.shadowRoot.querySelector(".menu")}disconnectedCallback(){this.menuDiv&&(this.menuDiv.innerHTML="")}setItems(A){this.menuDiv&&(this.menuDiv.innerHTML="",this.buildItems(A,this.menuDiv))}buildItems(A,I){for(const g of A){if("separator"===g.type){const A=document.createElement("div");A.className="separator",I.appendChild(A);continue}const A=document.createElement("div");A.className="item"+(g.disabled?" disabled":"");const t=document.createElement("span");t.className="check",t.textContent="checkbox"===g.type&&g.checked?"✓":"",A.appendChild(t);const C=document.createElement("span");if(C.className="label",C.textContent=g.label,A.appendChild(C),g.children&&g.children.length>0){const I=document.createElement("span");I.className="arrow",I.textContent="▶",A.appendChild(I);const t=document.createElement("div");t.className="submenu menu",this.buildItems(g.children,t),A.appendChild(t)}if(g.action&&!g.disabled){const I=g.action;A.addEventListener("pointerdown",A=>{A.stopPropagation()}),A.addEventListener("pointerup",A=>{A.stopPropagation()}),A.addEventListener("click",A=>{A.stopPropagation(),I(),this.hide()}),A.addEventListener("mousedown",A=>{A.stopPropagation()}),A.addEventListener("mouseup",A=>{A.stopPropagation()})}I.appendChild(A)}}showAt(A,I){this.style.display="block",this.style.left=`${A}px`,this.style.top=`${I}px`,requestAnimationFrame(()=>{const g=this.offsetParent;if(!g)return;const t=g.getBoundingClientRect(),C=this.getBoundingClientRect();let e=A,B=I;e+C.width>t.width&&(e=Math.max(0,A-C.width)),B+C.height>t.height&&(B=Math.max(0,I-C.height)),this.style.left=`${e}px`,this.style.top=`${B}px`})}hide(){this.style.display="none"}}"undefined"==typeof customElements||customElements.get("loom-context-menu")||customElements.define("loom-context-menu",ho);var co=Object.freeze({__proto__:null,LoomContextMenu:ho,DefaultContextMenuProvider:class{constructor(){this.element=null}show(A,I,g){if(!this.element){this.element=document.createElement("loom-context-menu");"static"===getComputedStyle(g).position&&(g.style.position="relative"),g.appendChild(this.element)}this.element.setItems(A),this.element.showAt(I.x,I.y)}hide(){this.element&&this.element.hide()}dispose(){this.element&&(this.element.remove(),this.element=null)}}});let lo=null;class Do extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),this.shadowRoot.appendChild((lo||(lo=document.createElement("template"),lo.innerHTML='\n<style>\n:host {\n position: absolute;\n z-index: 100000;\n pointer-events: auto;\n display: none;\n user-select: text;\n -webkit-user-select: text;\n cursor: auto;\n}\n.popup {\n background: var(--loom-popup-bg, var(--loom-input-bg, white));\n border: var(--loom-popup-border, var(--loom-border, 1px solid #ccc));\n border-radius: var(--loom-popup-radius, var(--loom-border-radius, 6px));\n box-shadow: var(--loom-popup-shadow, 0 2px 8px rgba(0,0,0,0.15));\n padding: 8px 12px;\n font: var(--loom-popup-font, var(--loom-font-small, 12px/1.4 sans-serif));\n color: var(--loom-popup-color, var(--loom-text-color, #333));\n max-width: 320px;\n min-width: 120px;\n}\ntable {\n border-collapse: collapse;\n width: 100%;\n}\ntd {\n padding: 2px 0;\n vertical-align: top;\n}\ntd.name {\n font-weight: 600;\n padding-right: 8px;\n white-space: nowrap;\n color: var(--loom-popup-name-color, var(--loom-popup-color, var(--loom-text-color, #333)));\n}\ntd.value {\n word-break: break-word;\n color: var(--loom-popup-color, var(--loom-text-color, #333));\n}\ntd.value.html {\n padding-top: 4px;\n}\ntd.value.html .popup-note {\n font-size: 11px;\n color: var(--loom-popup-color, var(--loom-text-color, #333));\n margin-top: 4px;\n}\ntd.value.html .legend-list {\n display: grid;\n gap: 4px;\n}\ntd.value.html .legend-row {\n display: flex;\n align-items: baseline;\n gap: 8px;\n flex-wrap: wrap;\n}\ntd.value.html .legend-label {\n font-weight: 600;\n}\ntd.value.html .legend-swatch {\n display: inline-block;\n width: 8px;\n height: 8px;\n border-radius: 999px;\n margin-right: 6px;\n vertical-align: middle;\n}\ntd.value.monospace {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \'Liberation Mono\', monospace;\n white-space: pre;\n word-break: normal;\n}\ntr.border-top td {\n border-top: 1px solid var(--loom-popup-divider, var(--loom-button-hover, #e0e0e0));\n padding-top: 4px;\n}\n.close {\n position: absolute;\n top: 4px;\n right: 6px;\n background: none;\n border: none;\n cursor: pointer;\n font-size: 14px;\n color: var(--loom-popup-close-color, var(--loom-text-muted, #999));\n line-height: 1;\n padding: 0 2px;\n}\n.close:hover {\n color: var(--loom-popup-color, var(--loom-text-color, #333));\n}\n</style>\n<div class="popup">\n <button class="close" title="Close">&times;</button>\n <table><tbody></tbody></table>\n</div>\n'),lo).content.cloneNode(!0)),this.shadowRoot.querySelector(".close").addEventListener("click",()=>{this.hide()});const A=this.shadowRoot.querySelector(".popup");A.addEventListener("pointerdown",A=>{A.stopPropagation()}),A.addEventListener("pointerup",A=>{A.stopPropagation()}),A.addEventListener("mousedown",A=>{A.stopPropagation()}),A.addEventListener("mouseup",A=>{A.stopPropagation()})}setData(A){const I=this.shadowRoot.querySelector("tbody");I.innerHTML="";for(const g of A){const A=document.createElement("tr");g.borderTop&&(A.className="border-top");const t=document.createElement("td");t.className="name",t.textContent=g.name;const C=document.createElement("td");C.className="value",g.monospace&&C.classList.add("monospace"),g.content?(C.classList.add("html"),C.appendChild(g.content(document))):C.textContent=String(g.value),A.appendChild(t),A.appendChild(C),I.appendChild(A)}}showAt(A,I){this.style.display="block";this.style.left=`${A+12}px`,this.style.top=`${I+12}px`,requestAnimationFrame(()=>{const g=this.offsetParent;if(!g)return;const t=g.getBoundingClientRect(),C=this.getBoundingClientRect();let e=A+12,B=I+12;e+C.width>t.width&&(e=A-C.width-12),B+C.height>t.height&&(B=I-C.height-12),e<0&&(e=0),B<0&&(B=0),this.style.left=`${e}px`,this.style.top=`${B}px`})}hide(){this.style.display="none"}}"undefined"==typeof customElements||customElements.get("loom-popup")||customElements.define("loom-popup",Do);var uo=Object.freeze({__proto__:null,LoomPopup:Do,DefaultPopupProvider:class{constructor(){this.element=null}show(A,I,g){if(!this.element){this.element=document.createElement("loom-popup");"static"===getComputedStyle(g).position&&(g.style.position="relative"),g.appendChild(this.element)}this.element.setData(A),this.element.showAt(I.x,I.y)}hide(){this.element&&this.element.hide()}dispose(){this.element&&(this.element.remove(),this.element=null)}}});export{xQ as BedTrack,io as ChromosomeSelect,so as ExportControls,bQ as GeneTrack,mQ as GenomeBrowserContext,TQ as GtxTrack,qQ as InteractionTrack,Qo as LocusInput,pQ as LoomBrowser,ao as Navbar,_Q as ROISet,YQ as RulerTrack,HQ as SequenceTrack,vQ as WigTrack,Eo as WindowSize,oo as ZoomControls,MQ as useBrowserEvent,UQ as useGenomeBrowser,LQ as useLocus,JQ as useLoomCSSTheme};
1
+ import{jsx as A,jsxs as I}from"react/jsx-runtime";import{createContext as g,forwardRef as t,useRef as C,useState as e,useEffect as B,useImperativeHandle as i,useMemo as Q,useContext as o,useCallback as s}from"react";let E=0;function a(){return"frame-"+ ++E}function r(A,I,g){return{id:null!=g?g:a(),locus:A,bpPerPixel:I>0?(A.end-A.start)/I:0,viewportWidth:I}}function n(A){A.bpPerPixel=A.viewportWidth>0?(A.locus.end-A.locus.start)/A.viewportWidth:0}function h(A){return"all"===A.chr.toLowerCase()}function c(A,I){const g=A.trim();if("all"===g.toLowerCase()||"*"===g)return I?{chr:"all",start:0,end:I.totalLength}:null;const t=g.split("\t");if(t.length>=3){const A=t[0],I=parseInt(t[1].replace(/,/g,""),10),g=parseInt(t[2].replace(/,/g,""),10);if(!isNaN(I)&&!isNaN(g)&&g>I)return{chr:A,start:I,end:g}}if(!g.includes(":"))return null;const C=g.replace(/,/g,""),e=C.indexOf(":"),B=C.substring(0,e),i=C.substring(e+1),Q=i.match(/^(-?\d+)-(\d+)$/);if(Q){let A=parseInt(Q[1],10);const I=parseInt(Q[2],10);return isNaN(A)||isNaN(I)||I<=A?null:(A<0&&(A=0),{chr:B,start:A,end:I})}const o=i.match(/^(\d+)$/);if(o){const A=parseInt(o[1],10);return isNaN(A)?null:{chr:B,start:Math.max(0,A-20),end:A+20}}return null}function l(A){return h(A)?"All Chromosomes":`${A.chr}:${Math.round(A.start).toLocaleString()}-${Math.round(A.end).toLocaleString()}`}function d(A,I,g){if(A.locus.chr!==I.chr)return!1;if(A.locus.start>I.start||A.locus.end<I.end)return!1;const t=g/A.bpPerPixel;return t>=.7&&t<=1.3}class D{constructor(A={}){var I;this.nodes=[],this.accessCounter=0,this._maxEntries=null!==(I=A.maxEntries)&&void 0!==I?I:5,this.onEviction=A.onEviction}get maxEntries(){return this._maxEntries}resize(A){for(this._maxEntries=Math.max(1,A);this.nodes.length>this._maxEntries;)this.evictOne()}get totalFeatureCount(){let A=0;for(const I of this.nodes)A+=I.entry.features.length;return A}get size(){return this.nodes.length}find(A,I){for(const g of this.nodes)if(d(g.entry,A,I))return g.accessTime=++this.accessCounter,g.entry}put(A){for(let I=0;I<this.nodes.length;I++){const g=this.nodes[I].entry;if(g.locus.chr===A.locus.chr&&g.locus.start===A.locus.start&&g.locus.end===A.locus.end&&g.bpPerPixel===A.bpPerPixel)return void(this.nodes[I]={entry:A,accessTime:++this.accessCounter})}this.nodes.length>=this.maxEntries&&this.evictOne(),this.nodes.push({entry:A,accessTime:++this.accessCounter})}evictOne(){var A;if(0===this.nodes.length)return 0;let I=0;for(let A=1;A<this.nodes.length;A++)this.nodes[A].accessTime<this.nodes[I].accessTime&&(I=A);const g=this.nodes[I].entry,t=g.features.length;return this.nodes.splice(I,1),null===(A=this.onEviction)||void 0===A||A.call(this,g),t}getMostRecent(){if(0===this.nodes.length)return;let A=0;for(let I=1;I<this.nodes.length;I++)this.nodes[I].accessTime>this.nodes[A].accessTime&&(A=I);return this.nodes[A].entry}clear(){this.nodes.length=0}hasData(){return this.nodes.length>0}getLRUAccessTime(){if(0===this.nodes.length)return 1/0;let A=this.nodes[0].accessTime;for(let I=1;I<this.nodes.length;I++)this.nodes[I].accessTime<A&&(A=this.nodes[I].accessTime);return A}}function u(A,I,g,t){var C;const{totalHeight:e,headerHeight:B=4,font:i="9px sans-serif",labelColor:Q="rgba(0,0,0,0.7)"}=t;for(const t of I){const I=Math.round((t.start-g.bpStart)/g.bpPerPixel),o=Math.max(3,Math.round((t.end-t.start)/g.bpPerPixel));if(I+o<0||I>g.pixelWidth)continue;const s=null!==(C=t.color)&&void 0!==C?C:"rgba(68, 134, 247, 0.15)";if(A.fillStyle=s,A.fillRect(I,0,o,e),A.strokeStyle=s.replace(/[\d.]+\)$/,A=>`${Math.min(1,3*parseFloat(A))})`),A.lineWidth=1,A.beginPath(),A.moveTo(I+.5,0),A.lineTo(I+.5,e),A.moveTo(I+o-.5,0),A.lineTo(I+o-.5,e),A.stroke(),B>0&&(A.fillStyle=s.replace(/[\d.]+\)$/,A=>`${Math.min(1,4*parseFloat(A))})`),A.fillRect(I,0,o,B)),t.name&&o>20){A.font=i,A.fillStyle=Q,A.textBaseline="top",A.textAlign="left";const g=I+3,C=B+1;A.fillText(t.name,g,C,o-6)}}}function y(A,I){let g=A;for(const A of Object.keys(I))g=g.replace(new RegExp("\\{"+A+"\\}","gi"),String(I[A]));return g}function w(A){const I="ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";let g;do{g="";for(let A=0;A<12;A++)g+=I[Math.floor(51*Math.random())]}while(A[g]);return g}function f(A){const I={left:"start",right:"end",center:"middle",start:"start",end:"end"};return I[A]||I.start}function S(A){const I={alphabetic:"alphabetic",hanging:"hanging",top:"text-before-edge",bottom:"text-after-edge",middle:"central"};return I[A]||I.alphabetic}function k(A){const I=Math.sqrt(A[0]*A[0]+A[1]*A[1]);return[A[0]/I,A[1]/I]}const G=function(A,I=10){const g={},t=A.split(",");for(let A=0;A<t.length;A+=2){const C="&"+t[A+1]+";",e=parseInt(t[A],I);g[C]="&#"+e+";"}return g["\\xa0"]="&#160;",g}("50,nbsp,51,iexcl,52,cent,53,pound,54,curren,55,yen,56,brvbar,57,sect,58,uml,59,copy,5a,ordf,5b,laquo,5c,not,5d,shy,5e,reg,5f,macr,5g,deg,5h,plusmn,5i,sup2,5j,sup3,5k,acute,5l,micro,5m,para,5n,middot,5o,cedil,5p,sup1,5q,ordm,5r,raquo,5s,frac14,5t,frac12,5u,frac34,5v,iquest,60,Agrave,61,Aacute,62,Acirc,63,Atilde,64,Auml,65,Aring,66,AElig,67,Ccedil,68,Egrave,69,Eacute,6a,Ecirc,6b,Euml,6c,Igrave,6d,Iacute,6e,Icirc,6f,Iuml,6g,ETH,6h,Ntilde,6i,Ograve,6j,Oacute,6k,Ocirc,6l,Otilde,6m,Ouml,6n,times,6o,Oslash,6p,Ugrave,6q,Uacute,6r,Ucirc,6s,Uuml,6t,Yacute,6u,THORN,6v,szlig,70,agrave,71,aacute,72,acirc,73,atilde,74,auml,75,aring,76,aelig,77,ccedil,78,egrave,79,eacute,7a,ecirc,7b,euml,7c,igrave,7d,iacute,7e,icirc,7f,iuml,7g,eth,7h,ntilde,7i,ograve,7j,oacute,7k,ocirc,7l,otilde,7m,ouml,7n,divide,7o,oslash,7p,ugrave,7q,uacute,7r,ucirc,7s,uuml,7t,yacute,7u,thorn,7v,yuml,ci,fnof,sh,Alpha,si,Beta,sj,Gamma,sk,Delta,sl,Epsilon,sm,Zeta,sn,Eta,so,Theta,sp,Iota,sq,Kappa,sr,Lambda,ss,Mu,st,Nu,su,Xi,sv,Omicron,t0,Pi,t1,Rho,t3,Sigma,t4,Tau,t5,Upsilon,t6,Phi,t7,Chi,t8,Psi,t9,Omega,th,alpha,ti,beta,tj,gamma,tk,delta,tl,epsilon,tm,zeta,tn,eta,to,theta,tp,iota,tq,kappa,tr,lambda,ts,mu,tt,nu,tu,xi,tv,omicron,u0,pi,u1,rho,u2,sigmaf,u3,sigma,u4,tau,u5,upsilon,u6,phi,u7,chi,u8,psi,u9,omega,uh,thetasym,ui,upsih,um,piv,812,bull,816,hellip,81i,prime,81j,Prime,81u,oline,824,frasl,88o,weierp,88h,image,88s,real,892,trade,89l,alefsym,8cg,larr,8ch,uarr,8ci,rarr,8cj,darr,8ck,harr,8dl,crarr,8eg,lArr,8eh,uArr,8ei,rArr,8ej,dArr,8ek,hArr,8g0,forall,8g2,part,8g3,exist,8g5,empty,8g7,nabla,8g8,isin,8g9,notin,8gb,ni,8gf,prod,8gh,sum,8gi,minus,8gn,lowast,8gq,radic,8gt,prop,8gu,infin,8h0,ang,8h7,and,8h8,or,8h9,cap,8ha,cup,8hb,int,8hk,there4,8hs,sim,8i5,cong,8i8,asymp,8j0,ne,8j1,equiv,8j4,le,8j5,ge,8k2,sub,8k3,sup,8k4,nsub,8k6,sube,8k7,supe,8kl,oplus,8kn,otimes,8l5,perp,8m5,sdot,8o8,lceil,8o9,rceil,8oa,lfloor,8ob,rfloor,8p9,lang,8pa,rang,9ea,loz,9j0,spades,9j3,clubs,9j5,hearts,9j6,diams,ai,OElig,aj,oelig,b0,Scaron,b1,scaron,bo,Yuml,m6,circ,ms,tilde,802,ensp,803,emsp,809,thinsp,80c,zwnj,80d,zwj,80e,lrm,80f,rlm,80j,ndash,80k,mdash,80o,lsquo,80p,rsquo,80q,sbquo,80s,ldquo,80t,rdquo,80u,bdquo,810,dagger,811,Dagger,81g,permil,81p,lsaquo,81q,rsaquo,85c,euro",32),F={strokeStyle:{svgAttr:"stroke",canvas:"#000000",svg:"none",apply:"stroke"},fillStyle:{svgAttr:"fill",canvas:"#000000",svg:null,apply:"fill"},lineCap:{svgAttr:"stroke-linecap",canvas:"butt",svg:"butt",apply:"stroke"},lineJoin:{svgAttr:"stroke-linejoin",canvas:"miter",svg:"miter",apply:"stroke"},miterLimit:{svgAttr:"stroke-miterlimit",canvas:10,svg:4,apply:"stroke"},lineWidth:{svgAttr:"stroke-width",canvas:1,svg:1,apply:"stroke"},globalAlpha:{svgAttr:"opacity",canvas:1,svg:1,apply:"fill stroke"},font:{canvas:"10px sans-serif"},shadowColor:{canvas:"#000000"},shadowOffsetX:{canvas:0},shadowOffsetY:{canvas:0},shadowBlur:{canvas:0},textAlign:{canvas:"start"},textBaseline:{canvas:"alphabetic"},lineDash:{svgAttr:"stroke-dasharray",canvas:null,svg:null,apply:"stroke"}};class N{constructor(A,I){this.__root=A,this.__ctx=I}addColorStop(A,I){const g=this.__ctx.__createElement("stop");if(g.setAttribute("offset",String(A)),I&&-1!==I.indexOf("rgba")){const A=/rgba\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d?\.?\d*)\s*\)/gi.exec(I);A&&(g.setAttribute("stop-color",y("rgb({r},{g},{b})",{r:A[1],g:A[2],b:A[3]})),g.setAttribute("stop-opacity",A[4]))}else g.setAttribute("stop-color",I);this.__root.appendChild(g)}}class m{constructor(A,I){this.__root=A,this.__ctx=I}}class R{constructor(A={}){var I,g,t;if(this.isSVG=!0,this.__currentElementsToStyle=null,this.__ids={},this.__stack=[],this.__groupStack=[],this.__currentDefaultPath="",this.__currentPosition={x:0,y:0},this.strokeStyle="#000000",this.fillStyle="#000000",this.lineCap="butt",this.lineJoin="miter",this.miterLimit=10,this.lineWidth=1,this.globalAlpha=1,this.font="10px sans-serif",this.shadowColor="#000000",this.shadowOffsetX=0,this.shadowOffsetY=0,this.shadowBlur=0,this.textAlign="start",this.textBaseline="alphabetic",this.lineDash=null,this.globalCompositeOperation="source-over",this.config=A,this.width=null!==(I=A.width)&&void 0!==I?I:500,this.height=null!==(g=A.height)&&void 0!==g?g:500,this.enableMirroring=null!==(t=A.enableMirroring)&&void 0!==t&&t,this.canvas=this,this.__document=document,A.ctx?(this.__ctx=A.ctx,this.__canvas=A.ctx.canvas):(this.__canvas=this.__document.createElement("canvas"),this.__ctx=this.__canvas.getContext("2d")),this.__setDefaultStyles(),this.__stack=[this.__getStyleState()],this.__groupStack=[],this.__root=this.__createElement("svg"),this.__root.setAttribute("width",String(this.width)),this.__root.setAttribute("height",String(this.height)),this.__root.setAttribute("overflow","visible"),A.viewbox){const I=A.viewbox;this.__root.setAttribute("viewBox",`${I.x} ${I.y} ${I.width} ${I.height}`),this.viewbox=A.viewbox}this.__ids={},this.__defs=this.__createElement("defs"),this.__root.appendChild(this.__defs);const C=this.__createElement("rect",{id:"svg_output_backdrop",width:"100%",height:"100%",fill:A.backdropColor||"white"});this.__root.appendChild(C),this.__rootGroup=this.__createElement("g",{id:"root-group"}),this.__root.appendChild(this.__rootGroup),this.__currentElement=this.__rootGroup}setWidth(A){this.width=A,this.__root.setAttribute("width",String(A)),this.config.viewbox&&this.__root.setAttribute("viewBox",`${this.config.viewbox.x} ${this.config.viewbox.y} ${A} ${this.config.viewbox.height}`)}setHeight(A){this.height=A,this.__root.setAttribute("height",String(A)),this.config.viewbox&&this.__root.setAttribute("viewBox",`${this.config.viewbox.x} ${this.config.viewbox.y} ${this.config.viewbox.width} ${A}`)}__createElement(A,I,g){const t=this.__document.createElementNS("http://www.w3.org/2000/svg",A);if(g&&(t.setAttribute("fill","none"),t.setAttribute("stroke","none")),I)for(const A of Object.keys(I))t.setAttribute(A,String(I[A]));return t}__setDefaultStyles(){for(const A of Object.keys(F))this[A]=F[A].canvas}__applyStyleState(A){for(const I of Object.keys(A))this[I]=A[I]}__getStyleState(){const A={};for(const I of Object.keys(F))A[I]=this[I];return A}__applyStyleToCurrentElement(A){let I=this.__currentElement;const g=this.__currentElementsToStyle;g&&(I.setAttribute(A,""),I=g.element,g.children.forEach(I=>I.setAttribute(A,"")));for(const g of Object.keys(F)){const t=F[g],C=this[g];if(t.apply)if(C instanceof m){if(C.__ctx)for(;C.__ctx.__defs.childNodes.length;){const A=C.__ctx.__defs.childNodes[0],I=A.getAttribute("id");this.__ids[I]=I,this.__defs.appendChild(A)}I.setAttribute(t.apply,y("url(#{id})",{id:C.__root.getAttribute("id")}))}else if(C instanceof N)I.setAttribute(t.apply,y("url(#{id})",{id:C.__root.getAttribute("id")}));else if(-1!==t.apply.indexOf(A)&&t.svg!==C)if("stroke"!==t.svgAttr&&"fill"!==t.svgAttr||"string"!=typeof C||-1===C.indexOf("rgba")){let e=t.svgAttr;if("globalAlpha"===g&&(e=A+"-"+t.svgAttr,I.getAttribute(e)))continue;I.setAttribute(e,String(C))}else{const A=/rgba\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d?\.?\d*)\s*\)/gi.exec(C);if(A){I.setAttribute(t.svgAttr,y("rgb({r},{g},{b})",{r:A[1],g:A[2],b:A[3]}));let g=parseFloat(A[4]);null!=this.globalAlpha&&(g*=this.globalAlpha),I.setAttribute(t.svgAttr+"-opacity",String(g))}}}}__closestGroupOrSvg(A){const I=A||this.__currentElement;return"g"===I.nodeName||"svg"===I.nodeName?I:this.__closestGroupOrSvg(I.parentNode)}getSerializedSvg(A){let I=(new XMLSerializer).serializeToString(this.__root);if(A)for(const A of Object.keys(G)){const g=new RegExp(A,"gi");g.test(I)&&(I=I.replace(g,G[A]))}return I}getSvg(){return this.__root}saveWithTranslationAndClipRect(A,I,g,t,C,e){const B=`${A}_clip_rect`,i=this.__createElement("clipPath",{id:B});this.__defs.appendChild(i),i.appendChild(this.__createElement("rect",{x:"0",y:String(e),width:String(t),height:String(C)}));const Q=this.__createElement("g");Q.setAttribute("transform",y("translate({x},{y})",{x:I,y:g})),Q.setAttribute("clip-path",y("url(#{id})",{id:B}));const o=this.__closestGroupOrSvg();o.appendChild(Q),this.__groupStack.push(o),this.__currentElement=Q,this.__stack.push(this.__getStyleState())}save(){const A=this.__createElement("g"),I=this.__closestGroupOrSvg();this.__groupStack.push(I),I.appendChild(A),this.__currentElement=A,this.__stack.push(this.__getStyleState())}restore(){this.__currentElement=this.__groupStack.pop(),this.__currentElementsToStyle=null,this.__currentElement||(this.__currentElement=this.__root.childNodes[2]);const A=this.__stack.pop();A&&this.__applyStyleState(A)}__addTransform(A){const I=this.__closestGroupOrSvg();if(I.childNodes.length>0){"path"===this.__currentElement.nodeName&&(this.__currentElementsToStyle||(this.__currentElementsToStyle={element:I,children:[]}),this.__currentElementsToStyle.children.push(this.__currentElement),this.__applyCurrentDefaultPath());const A=this.__createElement("g");I.appendChild(A),this.__currentElement=A}let g=this.__currentElement.getAttribute("transform");g?g+=" ":g="",g+=A,this.__currentElement.setAttribute("transform",g)}scale(A,I){void 0===I&&(I=A),this.__addTransform(y("scale({x},{y})",{x:A,y:I}))}rotate(A){const I=180*A/Math.PI;this.__addTransform(y("rotate({angle},{cx},{cy})",{angle:I,cx:0,cy:0}))}translate(A,I){this.__addTransform(y("translate({x},{y})",{x:A,y:I}))}transform(A,I,g,t,C,e){this.__addTransform(y("matrix({a},{b},{c},{d},{e},{f})",{a:A,b:I,c:g,d:t,e:C,f:e}))}beginPath(){this.__currentDefaultPath="",this.__currentPosition={x:0,y:0};const A=this.__createElement("path",{},!0);this.__closestGroupOrSvg().appendChild(A),this.__currentElement=A}__applyCurrentDefaultPath(){"path"===this.__currentElement.nodeName&&this.__currentElement.setAttribute("d",this.__currentDefaultPath)}__addPathCommand(A){this.__currentDefaultPath+=" "+A}moveTo(A,I){"path"!==this.__currentElement.nodeName&&this.beginPath(),this.__currentPosition={x:A,y:I},this.__addPathCommand(y("M {x} {y}",{x:A,y:I}))}closePath(){this.__currentDefaultPath&&this.__addPathCommand("Z")}lineTo(A,I){this.__currentPosition={x:A,y:I},this.__currentDefaultPath&&this.__currentDefaultPath.indexOf("M")>-1?this.__addPathCommand(y("L {x} {y}",{x:A,y:I})):this.__addPathCommand(y("M {x} {y}",{x:A,y:I}))}bezierCurveTo(A,I,g,t,C,e){this.__currentPosition={x:C,y:e},this.__addPathCommand(y("C {cp1x} {cp1y} {cp2x} {cp2y} {x} {y}",{cp1x:A,cp1y:I,cp2x:g,cp2y:t,x:C,y:e}))}quadraticCurveTo(A,I,g,t){this.__currentPosition={x:g,y:t},this.__addPathCommand(y("Q {cpx} {cpy} {x} {y}",{cpx:A,cpy:I,x:g,y:t}))}roundRect(A,I,g,t,C){let e;e=null==C?[0,0,0,0]:"number"==typeof C?[C,C,C,C]:1===C.length?[C[0],C[0],C[0],C[0]]:2===C.length?[C[0],C[1],C[0],C[1]]:3===C.length?[C[0],C[1],C[2],C[1]]:[C[0],C[1],C[2],C[3]];const B=Math.min(Math.abs(g)/2,Math.abs(t)/2);for(let A=0;A<4;A++)e[A]=Math.min(e[A],B);this.moveTo(A+e[0],I),this.lineTo(A+g-e[1],I),e[1]&&this.arcTo(A+g,I,A+g,I+e[1],e[1]),this.lineTo(A+g,I+t-e[2]),e[2]&&this.arcTo(A+g,I+t,A+g-e[2],I+t,e[2]),this.lineTo(A+e[3],I+t),e[3]&&this.arcTo(A,I+t,A,I+t-e[3],e[3]),this.lineTo(A,I+e[0]),e[0]&&this.arcTo(A,I,A+e[0],I,e[0]),this.closePath()}arcTo(A,I,g,t,C){var e,B;const i=null===(e=this.__currentPosition)||void 0===e?void 0:e.x,Q=null===(B=this.__currentPosition)||void 0===B?void 0:B.y;if(void 0===i||void 0===Q)return;if(C<0)throw new Error("IndexSizeError: The radius provided ("+C+") is negative.");if(i===A&&Q===I||A===g&&I===t||0===C)return void this.lineTo(A,I);const o=k([i-A,Q-I]),s=k([g-A,t-I]);if(o[0]*s[1]===o[1]*s[0])return void this.lineTo(A,I);const E=o[0]*s[0]+o[1]*s[1],a=Math.acos(Math.abs(E)),r=k([o[0]+s[0],o[1]+s[1]]),n=C/Math.sin(a/2),h=A+n*r[0],c=I+n*r[1],l=[-o[1],o[0]],d=[s[1],-s[0]],D=A=>A[1]>=0?Math.acos(A[0]):-Math.acos(A[0]),u=D(l),y=D(d);this.lineTo(h+l[0]*C,c+l[1]*C),this.arc(h,c,C,u,y)}stroke(){"path"===this.__currentElement.nodeName&&this.__currentElement.setAttribute("paint-order","fill stroke markers"),this.__applyCurrentDefaultPath(),this.__applyStyleToCurrentElement("stroke")}fill(){"path"===this.__currentElement.nodeName&&this.__currentElement.setAttribute("paint-order","stroke fill markers"),this.__applyCurrentDefaultPath(),this.__applyStyleToCurrentElement("fill")}rect(A,I,g,t){"path"!==this.__currentElement.nodeName&&this.beginPath(),this.moveTo(A,I),this.lineTo(A+g,I),this.lineTo(A+g,I+t),this.lineTo(A,I+t),this.lineTo(A,I),this.closePath()}fillRect(A,I,g,t){t<0&&(I+=t,t=-t),g<0&&(A+=g,g=-g);const C={x:A,y:I,width:g,height:t};if(this.viewbox&&(e=this.viewbox,B=C,!(e.x<B.x+B.width&&e.x+e.width>B.x&&e.y<B.y+B.height&&e.y+e.height>B.y)))return;var e,B;const i=this.__createElement("rect",C,!0);this.__closestGroupOrSvg().appendChild(i),this.__currentElement=i,this.__applyStyleToCurrentElement("fill")}strokeRect(A,I,g,t){const C=this.__createElement("rect",{x:A,y:I,width:g,height:t},!0);this.__closestGroupOrSvg().appendChild(C),this.__currentElement=C,this.__applyStyleToCurrentElement("stroke")}strokeEllipse(A,I,g,t,C,e,B,i){this.__ellipse(A,I,g,t,"stroke")}fillEllipse(A,I,g,t,C,e,B,i){this.__ellipse(A,I,g,t,"fill")}__ellipse(A,I,g,t,C){const e=this.__createElement("ellipse",{cx:A,cy:I,rx:g,ry:t},!0);this.__closestGroupOrSvg().appendChild(e),this.__currentElement=e,this.__applyStyleToCurrentElement(C)}__clearCanvas(){const A=this.__closestGroupOrSvg().getAttribute("transform"),I=this.__root.childNodes[2],g=I.childNodes;for(let A=g.length-1;A>=0;A--)g[A]&&I.removeChild(g[A]);this.__currentElement=I,this.__groupStack=[],A&&this.__addTransform(A)}clearRect(A,I,g,t){if(0===A&&0===I&&g===this.width&&t===this.height)return void this.__clearCanvas();const C=this.__closestGroupOrSvg(),e=this.__createElement("rect",{x:A,y:I,width:g,height:t,fill:"#FFFFFF"},!0);C.appendChild(e)}createLinearGradient(A,I,g,t){const C=this.__createElement("linearGradient",{id:w(this.__ids),x1:A+"px",x2:g+"px",y1:I+"px",y2:t+"px",gradientUnits:"userSpaceOnUse"});return this.__defs.appendChild(C),new N(C,this)}createRadialGradient(A,I,g,t,C,e){const B=this.__createElement("radialGradient",{id:w(this.__ids),cx:t+"px",cy:C+"px",r:e+"px",fx:A+"px",fy:I+"px",gradientUnits:"userSpaceOnUse"});return this.__defs.appendChild(B),new N(B,this)}__parseFont(){const A=/^\s*(?=(?:(?:[-a-z]+\s*){0,2}(italic|oblique))?)(?=(?:(?:[-a-z]+\s*){0,2}(small-caps))?)(?=(?:(?:[-a-z]+\s*){0,2}(bold(?:er)?|lighter|[1-9]00))?)(?:(?:normal|\1|\2|\3)\s*){0,3}((?:xx?-)?(?:small|large)|medium|smaller|larger|[.\d]+(?:%|in|[cem]m|ex|p[ctx]))(?:\s*\/\s*(normal|[.\d]+(?:%|in|[cem]m|ex|p[ctx])))?\s*([-,'"\sa-z0-9]+?)\s*$/i.exec(this.font),I={style:(null==A?void 0:A[1])||"normal",size:(null==A?void 0:A[4])||"10px",family:(null==A?void 0:A[6])||"sans-serif",weight:(null==A?void 0:A[3])||"normal",decoration:(null==A?void 0:A[2])||"normal",href:null};return"underline"===this.__fontUnderline&&(I.decoration="underline"),this.__fontHref&&(I.href=this.__fontHref),I}__wrapTextLink(A,I){if(A.href){const g=this.__createElement("a");return g.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",A.href),g.appendChild(I),g}return I}__applyText(A,I,g,t){const C=this.__parseFont(),e=this.__closestGroupOrSvg(),B=this.__createElement("text",{"font-family":C.family,"font-size":C.size,"font-style":C.style,"font-weight":C.weight,"text-decoration":C.decoration,x:I,y:g,"text-anchor":f(this.textAlign),"dominant-baseline":S(this.textBaseline)},!0);B.appendChild(this.__document.createTextNode(A)),this.__currentElement=B,this.__applyStyleToCurrentElement(t),e.appendChild(this.__wrapTextLink(C,B))}fillText(A,I,g){this.__applyText(A,I,g,"fill")}strokeText(A,I,g){this.__applyText(A,I,g,"stroke")}measureText(A){return this.__ctx.font=this.font,this.__ctx.measureText(A)}arc(A,I,g,t,C,e){if(t===C)return;(t%=2*Math.PI)===(C%=2*Math.PI)&&(C=(C+2*Math.PI-.001*(e?-1:1))%(2*Math.PI));const B=A+g*Math.cos(C),i=I+g*Math.sin(C),Q=A+g*Math.cos(t),o=I+g*Math.sin(t),s=e?0:1;let E=C-t;E<0&&(E+=2*Math.PI);const a=e?E>Math.PI?0:1:E>Math.PI?1:0;this.lineTo(Q,o),this.__addPathCommand(y("A {rx} {ry} {xAxisRotation} {largeArcFlag} {sweepFlag} {endX} {endY}",{rx:g,ry:g,xAxisRotation:0,largeArcFlag:a,sweepFlag:s,endX:B,endY:i})),this.__currentPosition={x:B,y:i}}clip(){const A=this.__closestGroupOrSvg(),I=this.__createElement("clipPath"),g=w(this.__ids),t=this.__createElement("g");this.__applyCurrentDefaultPath(),A.removeChild(this.__currentElement),I.setAttribute("id",g),I.appendChild(this.__currentElement),this.__defs.appendChild(I),A.setAttribute("clip-path",y("url(#{id})",{id:g})),A.appendChild(t),this.__currentElement=t}drawImage(A,...I){let g,t,C,e,B,i,Q=0,o=0;if(2===I.length)g=I[0],t=I[1],B=A.width,i=A.height,C=B,e=i;else if(4===I.length)g=I[0],t=I[1],C=I[2],e=I[3],B=A.width,i=A.height;else{if(8!==I.length)throw new Error("Invalid number of arguments passed to drawImage: "+(I.length+1));Q=I[0],o=I[1],B=I[2],i=I[3],g=I[4],t=I[5],C=I[6],e=I[7]}const s=this.__closestGroupOrSvg(),E=`translate(${g}, ${t})`;if(A instanceof R){const I=A.getSvg().cloneNode(!0);if(I.childNodes&&I.childNodes.length>1){const A=I.childNodes[0];for(;A.childNodes.length;){const I=A.childNodes[0],g=I.getAttribute("id");g&&(this.__ids[g]=g),this.__defs.appendChild(I)}const g=I.childNodes[1];if(g){const A=g.getAttribute("transform");g.setAttribute("transform",A?A+" "+E:E),s.appendChild(g)}}}else{const I=A,g=this.__createElement("image");g.setAttribute("width",String(C)),g.setAttribute("height",String(e)),g.setAttribute("preserveAspectRatio","none");let t=I;if(Q||o||B!==I.width||i!==I.height){const A=this.__document.createElement("canvas");A.width=C,A.height=e;A.getContext("2d").drawImage(I,Q,o,B,i,0,0,C,e),t=A}g.setAttribute("transform",E),"toDataURL"in t?g.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",t.toDataURL()):g.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",t.getAttribute("src")||""),s.appendChild(g)}}createPattern(A,I){const g=this.__createElement("pattern"),t=w(this.__ids);if(g.setAttribute("id",t),g.setAttribute("width",String(A.width)),g.setAttribute("height",String(A.height)),A instanceof R)g.appendChild(A.__root.childNodes[1]),this.__defs.appendChild(g);else{const I=this.__createElement("image");I.setAttribute("width",String(A.width)),I.setAttribute("height",String(A.height)),"toDataURL"in A?I.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",A.toDataURL()):I.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",A.getAttribute("src")||""),g.appendChild(I),this.__defs.appendChild(g)}return new m(g,this)}setLineDash(A){A&&A.length>0?this.lineDash=A.join(","):this.lineDash=null}getLineDash(){return this.lineDash?this.lineDash.split(",").map(Number):[]}drawFocusIfNeeded(){}createImageData(){return new ImageData(1,1)}getImageData(){return new ImageData(1,1)}putImageData(){}setTransform(){}}const p=new class{createCanvas(A,I){const g=document.createElement("canvas");g.width=A,g.height=I;const t=g.getContext("2d");return{canvas:g,ctx:t}}get devicePixelRatio(){return"undefined"!=typeof window&&window.devicePixelRatio||1}},U={background:"--loom-background",foreground:"--loom-foreground",primary:"--loom-primary",secondary:"--loom-secondary",accent:"--loom-accent",muted:"--loom-muted",mutedForeground:"--loom-muted-foreground",border:"--loom-border-color",shellBg:"--loom-shell-bg",navbarBg:"--loom-navbar-bg",navbarHeight:"--loom-navbar-height",navbarPadding:"--loom-navbar-padding",font:"--loom-font",fontSmall:"--loom-font-small",textColor:"--loom-text-color",textMuted:"--loom-text-muted",borderStyle:"--loom-border",borderRadius:"--loom-border-radius",buttonBg:"--loom-button-bg",buttonHover:"--loom-button-hover",buttonBorder:"--loom-button-border",buttonSize:"--loom-button-size",inputBg:"--loom-input-bg",inputBorder:"--loom-input-border",inputFocusBorder:"--loom-input-focus-border",inputWidth:"--loom-input-width",inputHeight:"--loom-input-height",iconColor:"--loom-icon-color",iconSize:"--loom-icon-size",gap:"--loom-gap"};function M(A){const I=[];for(const[g,t]of Object.entries(A)){if(void 0===t)continue;const A=U[g];A&&I.push(` ${A}: ${t};`)}return`:host {\n${I.join("\n")}\n}`}function L(A){var I,g;const t={palette:{primary:"rgb(0,0,150)",secondary:"rgb(0,0,150)",accent:"#4A90D9",background:"#ffffff",foreground:"#333333",muted:"rgb(150, 150, 150)"},fontFamily:"sans-serif",fontSize:10,nucleotideColors:{A:"#00C000",C:"#0000FF",G:"#FFB300",T:"#FF0000",N:"#808080"}};return A?{palette:{...t.palette,...A.palette},fontFamily:null!==(I=A.fontFamily)&&void 0!==I?I:t.fontFamily,fontSize:null!==(g=A.fontSize)&&void 0!==g?g:t.fontSize,nucleotideColors:{...t.nucleotideColors,...A.nucleotideColors},annotation:A.annotation,wig:A.wig,ruler:A.ruler,sequence:A.sequence,interaction:A.interaction,peakOverlay:A.peakOverlay,ideogram:A.ideogram}:t}function J(A,I){const g={background:A.palette.background,displayMode:"EXPANDED",featureHeight:14,margin:10,expandedRowHeight:30,squishedRowHeight:15,arrowSpacing:30,color:A.palette.primary,altColor:A.palette.secondary,labelField:"name",font:`bold ${A.fontSize}px ${A.fontFamily}`,drawLabels:!0,intronColor:A.palette.muted,labelColor:A.palette.foreground,maxRows:1e3},t=A.annotation?{...g,...A.annotation}:g;return I?{...t,...I}:t}function K(A,I){const g={height:50,graphType:"bar",windowFunction:"max",dataRange:{min:0,max:100},autoscale:!0,color:A.palette.primary,altColor:A.palette.secondary,flipAxis:!1,logScale:!1,baselineColor:A.palette.muted,overflowColor:"rgb(255, 32, 255)",pointSize:3,background:A.palette.background,nucleotideColors:A.nucleotideColors,showDataRange:!0,labelColor:A.palette.foreground,labelFont:`bold ${Math.max(9,A.fontSize-1)}px ${A.fontFamily}`},t=A.wig?{...g,...A.wig}:g;return I?{...t,...I}:t}function Y(A,I){const g={height:30,font:`bold ${A.fontSize}px ${A.fontFamily}`,tickColor:A.palette.muted,labelColor:A.palette.foreground,baselineColor:A.palette.muted,background:A.palette.background},t=A.ruler?{...g,...A.ruler}:g;return I?{...t,...I}:t}function v(A,I){const g={sequenceType:"dna",reversed:!1,frameTranslate:!1,background:A.palette.background,nucleotideColors:{...A.nucleotideColors},nonDnaColor:"rgb(0, 0, 150)",defaultHeight:25,translatedHeight:115,sequenceHeight:15,frameHeight:25,frameBorder:5,frameColor1:"rgb(160,160,160)",frameColor2:"rgb(224,224,224)",stopCodonColor:"rgb(255, 0, 0)",startCodonColor:"rgb(0, 153, 0)",useFillText:!1,frameLabelColor:"#000000",frameFont:`bold ${A.fontSize}px ${A.fontFamily}`,codonBorderRadius:0},t=A.sequence?{...g,...A.sequence}:g;return I?{...t,...I}:t}function b(A,I){const g={height:250,arcOrientation:"UP",displayMode:"nested",showBlocks:!0,blockHeight:3,thickness:1,color:"rgb(180,25,137)",alpha:.02,logScale:!0,background:A.palette.background,font:`${Math.max(8,A.fontSize-2)}px ${A.fontFamily}`,useScore:!1,transparency:1},t=A.interaction?{...g,...A.interaction}:g;return I?{...t,...I}:t}function x(A,I){var g;const t={background:"transparent",display:["shaded"],color:_(null!==(g=A.palette.accent)&&void 0!==g?g:A.palette.secondary,.15),barHeight:3,summitColor:"#ff0000",summitSize:6,visibilityWindow:75e3},C=A.peakOverlay?{...t,...A.peakOverlay}:t;return I?{...C,...I}:C}function H(A,I){const g={height:50,alpha:.5,autoscale:!0,dataRange:{min:0,max:100},flipAxis:!1,logScale:!1,background:A.palette.background,labelColor:A.palette.foreground};return I?{...g,...I}:g}function q(A,I){const g={height:80,activeModes:["meanSd"],lineColor:A.palette.primary,bandColor:A.palette.primary,bandAlpha:.2,badgeBackground:A.palette.accent,badgeColor:A.palette.background,autoscale:!0,dataRange:{min:0,max:100},flipAxis:!1,logScale:!1,normalizationMode:"none",normalizationPercentile:95,normalizationCenterPercentileLow:25,normalizationCenterPercentileHigh:75,labelColor:A.palette.foreground,labelFont:`bold ${Math.max(9,A.fontSize-1)}px ${A.fontFamily}`,showDataRange:!0,background:A.palette.background},t=A.wigGroup?{...g,...A.wigGroup}:g;return I?{...t,...I}:t}function T(A,I){const g={height:16,showBandNames:!1,centromereColor:"rgb(150, 10, 10)",bandLightColor:"rgb(230, 230, 230)",bandDarkColor:A.palette.foreground,borderColor:A.palette.muted,viewportIndicatorColor:"red",font:`${A.fontSize}px ${A.fontFamily}`,labelColor:A.palette.foreground,altLabelColor:A.palette.background,background:A.palette.background},t=A.ideogram?{...g,...A.ideogram}:g;return I?{...t,...I}:t}function _(A,I){const g=A.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);if(g)return`rgba(${g[1]}, ${g[2]}, ${g[3]}, ${I})`;const t=A.match(/^#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/);if(t){return`rgba(${parseInt(t[1],16)}, ${parseInt(t[2],16)}, ${parseInt(t[3],16)}, ${I})`}return`rgba(255, 165, 0, ${I})`}function W(A){const I=getComputedStyle(A),g=A=>I.getPropertyValue(A).trim()||void 0;return{primary:g(U.primary),secondary:g(U.secondary),accent:g(U.accent),background:g(U.background),foreground:g(U.foreground),muted:g(U.muted)}}const P={debug(...A){},info(...A){},warn(...A){console.warn("[loom]",...A)},error(...A){console.error("[loom]",...A)}};class O{constructor(){this.listeners=new Map}on(A,I){let g=this.listeners.get(A);return g||(g=new Set,this.listeners.set(A,g)),g.add(I),()=>{g.delete(I)}}off(A,I){var g;I?null===(g=this.listeners.get(A))||void 0===g||g.delete(I):this.listeners.delete(A)}emit(A,I){const g=this.listeners.get(A);if(g)for(const A of g)A(I)}removeAllListeners(){this.listeners.clear()}}function V(A){const I=A.chr,g=I.toUpperCase(),t=I.toLowerCase(),C=I.charAt(0).toUpperCase()+I.slice(1);I!==g&&(A._uppercase=g),I!==t&&(A._lowercase=t),I!==C&&(A._cap=C),A._chrprefix_=I.startsWith("chr")?I.substring(3):"chr"+I}function Z(A){const I=A.split("|").filter(A=>A.length>0);return I[I.length-1]}function X(A){return A.startsWith("hg")||A.startsWith("GRCh")||"1kg_ref"===A||"b37"===A}function z(A){return A.startsWith("mm")||A.startsWith("GRCm")||A.startsWith("rheMac")}class j{constructor(A,I){this.cache=new Map,this.headings=void 0,this.buildAliases(A,null!=I?I:"")}getChromosomeName(A){var I;return null===(I=this.cache.get(A))||void 0===I?void 0:I.chr}getAliasRecord(A){return this.cache.get(A)}async search(A){return this.cache.get(A)}async preload(A){}buildAliases(A,I){const g=[];for(const t of A){if(this.cache.has(t))continue;const A={chr:t};if(g.push(A),t.startsWith("gi|")){const I=Z(t);A["ncbi-gi-versioned"]=I;const g=I.lastIndexOf(".");g>0&&(A["ncbi-gi"]=I.substring(0,g))}else"chrM"===t?A.ncbi="MT":"MT"===t?A.ucsc="chrM":t.toLowerCase().startsWith("chr")&&Number.isInteger(Number(t.substring(3)))?A.ncbi=t.substring(3):Number.isInteger(Number(t))&&(A.ucsc="chr"+t),X(I)?this.addHumanSexAliases(t,A):z(I)&&this.addMouseSexAliases(t,A)}for(const A of g){V(A);for(const I of Object.values(A))this.cache.set(I,A)}}addHumanSexAliases(A,I){switch(A){case"23":I.ucsc="chrX",I.assembly="X";break;case"24":I.ucsc="chrY",I.assembly="Y";break;case"chrX":I.ncbi="23",I.assembly="X";break;case"chrY":I.ncbi="24",I.assembly="Y";break;case"X":I.ucsc="chrX",I.ncbi="23";break;case"Y":I.ucsc="chrY",I.ncbi="24"}}addMouseSexAliases(A,I){switch(A){case"21":I.ucsc="chrX",I.assembly="X";break;case"22":I.ucsc="chrY",I.assembly="Y";break;case"chrX":I.ncbi="21",I.assembly="X";break;case"chrY":I.ncbi="22",I.assembly="Y";break;case"X":I.ucsc="chrX",I.ncbi="21";break;case"Y":I.ucsc="chrY",I.ncbi="22"}}}const $=BigInt(32);"getBigInt64"in DataView||(DataView.prototype.getBigInt64=function(A,I){return function(A,I,g){const t=Number(!!g),C=Number(!g);return BigInt(A.getInt32(I,g)*C+A.getInt32(I+4,g)*t)<<$|BigInt(A.getUint32(I,g)*t+A.getUint32(I+4,g)*C)}(this,A,I)}),"getBigUint64"in DataView||(DataView.prototype.getBigUint64=function(A,I){return function(A,I,g){const t=A.getUint32(I,g),C=A.getUint32(I+4,g),e=Number(!!g),B=Number(!g);return BigInt(t*B+C*e)<<$|BigInt(t*e+C*B)}(this,A,I)});class AA{constructor(A,I={}){this.url=A,this.baseHeaders=I.headers??{},this.baseOverrides=I.overrides??{},this.fetchImplementation=I.fetch??((A,I)=>globalThis.fetch(A,I))}async fetch(A,I){const g=I=>new Error(`${function(A){return("object"==typeof A&&null!==A&&"message"in A&&"string"==typeof A.message?A.message:`${A}`).replace(/\.$/,"")}(I)} fetching ${A}`,{cause:I});let t;try{t=await this.fetchImplementation(A,I)}catch(C){if(!`${C}`.includes("Failed to fetch"))throw g(C);console.warn(`generic-filehandle: refetching ${A} to attempt to work around chrome CORS header caching bug`);try{t=await this.fetchImplementation(A,{...I,cache:"reload"})}catch(A){throw g(A)}}return t}async read(A,I,g={}){if(0===A)return new Uint8Array(0);if(Number.isNaN(A)||Number.isNaN(I))throw new TypeError(`read() called with NaN length or position (length=${A}, position=${I}). The index file may be corrupt.`);const{headers:t={},signal:C,overrides:e={}}=g;t.range=`bytes=${I}-${I+A-1}`;const B=await this.fetch(this.url,{...this.baseOverrides,...e,headers:{...this.baseHeaders,...t},method:"GET",redirect:"follow",mode:"cors",signal:C});if(!B.ok)throw new Error(`HTTP ${B.status} fetching ${this.url}`);if(200===B.status&&0===I||206===B.status){const I=B.headers.get("content-range"),g=/\/(\d+)$/.exec(I??"");g?.[1]&&(this._stat={size:parseInt(g[1],10)});const t=B.bytes?await B.bytes():new Uint8Array(await B.arrayBuffer());return t.byteLength<=A?t:t.subarray(0,A)}throw new Error(200===B.status?`${this.url} fetch returned status 200, expected 206`:`HTTP ${B.status} fetching ${this.url}`)}async readFile(A={}){const I="string"==typeof A?A:A.encoding,g="string"==typeof A?{}:A,{headers:t={},signal:C,overrides:e={}}=g,B=await this.fetch(this.url,{...this.baseOverrides,...e,headers:{...this.baseHeaders,...t},method:"GET",redirect:"follow",mode:"cors",signal:C});if(!B.ok)throw new Error(`HTTP ${B.status} fetching ${this.url}`);if("utf8"===I)return B.text();if(I)throw new Error(`unsupported encoding: ${I}`);return B.bytes?B.bytes():new Uint8Array(await B.arrayBuffer())}async stat(){if(!this._stat&&(await this.read(10,0),!this._stat))throw new Error(`unable to determine size of file at ${this.url}`);return this._stat}close(){return Promise.resolve()}}class IA{readFile(){throw new Error("unimplemented")}read(){throw new Error("unimplemented")}close(){throw new Error("unimplemented")}}class gA{}class tA{constructor(){this.signals=new Set,this.abortController=new AbortController}addSignal(A=new gA){if(this.signal.aborted)throw new Error("cannot add a signal, already aborted!");this.signals.add(A),A.aborted?this.handleAborted(A):"function"==typeof A.addEventListener&&A.addEventListener("abort",()=>{this.handleAborted(A)})}handleAborted(A){this.signals.delete(A),0===this.signals.size&&this.abortController.abort()}get signal(){return this.abortController.signal}abort(){this.abortController.abort()}}class CA{constructor(){this.callbacks=new Set}addCallback(A=()=>{}){this.callbacks.add(A),this.currentMessage&&A(this.currentMessage)}callback(A){this.currentMessage=A;for(const I of this.callbacks)I(A)}}class eA{constructor({fill:A,cache:I}){if("function"!=typeof A)throw new TypeError("must pass a fill function");if("object"!=typeof I)throw new TypeError("must pass a cache object");if("function"!=typeof I.get||"function"!=typeof I.set||"function"!=typeof I.delete)throw new TypeError("cache must implement get(key), set(key, val), and and delete(key)");this.cache=I,this.fillCallback=A}static isAbortException(A){return"AbortError"===A.name||"ERR_ABORTED"===A.code||"AbortError: aborted"===A.message||"Error: aborted"===A.message}evict(A,I){this.cache.get(A)===I&&this.cache.delete(A)}fill(A,I,g,t){const C=new tA,e=new CA;e.addCallback(t);const B={aborter:C,promise:this.fillCallback(I,C.signal,A=>{e.callback(A)}),settled:!1,statusReporter:e,get aborted(){return this.aborter.signal.aborted}};B.aborter.addSignal(g),B.aborter.signal.addEventListener("abort",()=>{B.settled||this.evict(A,B)}),B.promise.then(()=>{B.settled=!0},()=>{B.settled=!0,this.evict(A,B)}).catch(A=>{throw console.error(A),A}),this.cache.set(A,B)}static checkSinglePromise(A,I){function g(){if(I?.aborted)throw Object.assign(new Error("aborted"),{code:"ERR_ABORTED"})}return A.then(A=>(g(),A),A=>{throw g(),A})}has(A){return this.cache.has(A)}get(A,I,g,t){if(!g&&I instanceof AbortSignal)throw new TypeError("second get argument appears to be an AbortSignal, perhaps you meant to pass `null` for the fill data?");const C=this.cache.get(A);return C?C.aborted&&!C.settled?(this.evict(A,C),this.get(A,I,g,t)):C.settled?C.promise:(C.aborter.addSignal(g),C.statusReporter.addCallback(t),eA.checkSinglePromise(C.promise,g)):(this.fill(A,I,g,t),eA.checkSinglePromise(this.cache.get(A).promise,g))}delete(A){const I=this.cache.get(A);I&&(I.settled||I.aborter.abort(),this.cache.delete(A))}clear(){const A=this.cache.keys();let I=0;for(let g=A.next();!g.done;g=A.next())this.delete(g.value),I+=1;return I}}var BA,iA,QA,oA,sA,EA,aA,rA,nA,hA,cA,lA,dA,DA,uA,yA=function(A,I,g,t,C){if("m"===t)throw new TypeError("Private method is not writable");if("a"===t&&!C)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof I?A!==I||!C:!I.has(A))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===t?C.call(A,g):C?C.value=g:I.set(A,g),g},wA=function(A,I,g,t){if("a"===g&&!t)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof I?A!==I||!t:!I.has(A))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===g?t:"a"===g?t.call(A):t?t.value:I.get(A)};class fA extends Map{constructor(A={}){if(super(),BA.add(this),iA.set(this,0),QA.set(this,new Map),oA.set(this,new Map),sA.set(this,void 0),EA.set(this,void 0),aA.set(this,void 0),!(A.maxSize&&A.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");if("number"==typeof A.maxAge&&0===A.maxAge)throw new TypeError("`maxAge` must be a number greater than 0");yA(this,sA,A.maxSize,"f"),yA(this,EA,A.maxAge||Number.POSITIVE_INFINITY,"f"),yA(this,aA,A.onEviction,"f")}get __oldCache(){return wA(this,oA,"f")}get(A){if(wA(this,QA,"f").has(A)){const I=wA(this,QA,"f").get(A);return wA(this,BA,"m",cA).call(this,A,I)}if(wA(this,oA,"f").has(A)){const I=wA(this,oA,"f").get(A);if(!wA(this,BA,"m",nA).call(this,A,I))return wA(this,BA,"m",DA).call(this,A,I),I.value}}set(A,I,{maxAge:g=wA(this,EA,"f")}={}){const t="number"==typeof g&&g!==Number.POSITIVE_INFINITY?Date.now()+g:void 0;return wA(this,QA,"f").has(A)?wA(this,QA,"f").set(A,{value:I,expiry:t}):wA(this,BA,"m",dA).call(this,A,{value:I,expiry:t}),this}has(A){return wA(this,QA,"f").has(A)?!wA(this,BA,"m",nA).call(this,A,wA(this,QA,"f").get(A)):!!wA(this,oA,"f").has(A)&&!wA(this,BA,"m",nA).call(this,A,wA(this,oA,"f").get(A))}peek(A){return wA(this,QA,"f").has(A)?wA(this,BA,"m",lA).call(this,A,wA(this,QA,"f")):wA(this,oA,"f").has(A)?wA(this,BA,"m",lA).call(this,A,wA(this,oA,"f")):void 0}expiresIn(A){const I=wA(this,QA,"f").get(A)??wA(this,oA,"f").get(A);if(I)return I.expiry?I.expiry-Date.now():Number.POSITIVE_INFINITY}delete(A){var I;const g=wA(this,QA,"f").delete(A);return g&&yA(this,iA,(I=wA(this,iA,"f"),--I),"f"),wA(this,oA,"f").delete(A)||g}clear(){wA(this,QA,"f").clear(),wA(this,oA,"f").clear(),yA(this,iA,0,"f")}resize(A){if(!(A&&A>0))throw new TypeError("`maxSize` must be a number greater than 0");const I=[...wA(this,BA,"m",uA).call(this)],g=I.length-A;g<0?(yA(this,QA,new Map(I),"f"),yA(this,oA,new Map,"f"),yA(this,iA,I.length,"f")):(g>0&&wA(this,BA,"m",rA).call(this,I.slice(0,g)),yA(this,oA,new Map(I.slice(g)),"f"),yA(this,QA,new Map,"f"),yA(this,iA,0,"f")),yA(this,sA,A,"f")}evict(A=1){const I=A;if(!I||I<=0)return;const g=[...wA(this,BA,"m",uA).call(this)],t=Math.trunc(Math.min(I,Math.max(g.length-1,0)));t<=0||(wA(this,BA,"m",rA).call(this,g.slice(0,t)),yA(this,oA,new Map(g.slice(t)),"f"),yA(this,QA,new Map,"f"),yA(this,iA,0,"f"))}*keys(){for(const[A]of this)yield A}*values(){for(const[,A]of this)yield A}*[(iA=new WeakMap,QA=new WeakMap,oA=new WeakMap,sA=new WeakMap,EA=new WeakMap,aA=new WeakMap,BA=new WeakSet,rA=function(A){if("function"==typeof wA(this,aA,"f"))for(const[I,g]of A)wA(this,aA,"f").call(this,I,g.value)},nA=function(A,I){return"number"==typeof I.expiry&&I.expiry<=Date.now()&&("function"==typeof wA(this,aA,"f")&&wA(this,aA,"f").call(this,A,I.value),this.delete(A))},hA=function(A,I){if(!wA(this,BA,"m",nA).call(this,A,I))return I.value},cA=function(A,I){return I.expiry?wA(this,BA,"m",hA).call(this,A,I):I.value},lA=function(A,I){const g=I.get(A);return wA(this,BA,"m",cA).call(this,A,g)},dA=function(A,I){var g;wA(this,QA,"f").set(A,I),yA(this,iA,(g=wA(this,iA,"f"),++g),"f"),wA(this,iA,"f")>=wA(this,sA,"f")&&(yA(this,iA,0,"f"),wA(this,BA,"m",rA).call(this,wA(this,oA,"f")),yA(this,oA,wA(this,QA,"f"),"f"),yA(this,QA,new Map,"f"))},DA=function(A,I){wA(this,oA,"f").delete(A),wA(this,BA,"m",dA).call(this,A,I)},uA=function*(){for(const A of wA(this,oA,"f")){const[I,g]=A;if(!wA(this,QA,"f").has(I)){wA(this,BA,"m",nA).call(this,I,g)||(yield A)}}for(const A of wA(this,QA,"f")){const[I,g]=A;wA(this,BA,"m",nA).call(this,I,g)||(yield A)}},Symbol.iterator)](){for(const A of wA(this,QA,"f")){const[I,g]=A;wA(this,BA,"m",nA).call(this,I,g)||(yield[I,g.value])}for(const A of wA(this,oA,"f")){const[I,g]=A;if(!wA(this,QA,"f").has(I)){wA(this,BA,"m",nA).call(this,I,g)||(yield[I,g.value])}}}*entriesDescending(){let A=[...wA(this,QA,"f")];for(let I=A.length-1;I>=0;--I){const g=A[I],[t,C]=g;wA(this,BA,"m",nA).call(this,t,C)||(yield[t,C.value])}A=[...wA(this,oA,"f")];for(let I=A.length-1;I>=0;--I){const g=A[I],[t,C]=g;if(!wA(this,QA,"f").has(t)){wA(this,BA,"m",nA).call(this,t,C)||(yield[t,C.value])}}}*entriesAscending(){for(const[A,I]of wA(this,BA,"m",uA).call(this))yield[A,I.value]}get size(){if(!wA(this,iA,"f"))return wA(this,oA,"f").size;let A=0;for(const I of wA(this,oA,"f").keys())wA(this,QA,"f").has(I)||A++;return Math.min(wA(this,iA,"f")+A,wA(this,sA,"f"))}get maxSize(){return wA(this,sA,"f")}get maxAge(){return wA(this,EA,"f")}entries(){return this.entriesAscending()}forEach(A,I=this){for(const[g,t]of this.entriesAscending())A.call(I,t,g,this)}get[Symbol.toStringTag](){return"QuickLRU"}toString(){return`QuickLRU(${this.size}/${this.maxSize})`}[Symbol.for("nodejs.util.inspect.custom")](){return this.toString()}}function SA(A){const I=[...A].sort((A,I)=>A.min!==I.min?A.min-I.min:A.max-I.max),g=[];let t=I[0];for(let A=1;A<I.length;A++){const C=I[A];C.min>t.max+1?(g.push(t),t=C):C.max>t.max&&(t={min:t.min,max:C.max})}return g.push(t),g}var kA={d:(A,I)=>{for(var g in I)kA.o(I,g)&&!kA.o(A,g)&&Object.defineProperty(A,g,{enumerable:!0,get:I[g]})},o:(A,I)=>Object.prototype.hasOwnProperty.call(A,I),r:A=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(A,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(A,"__esModule",{value:!0})}},GA={};kA.r(GA),kA.d(GA,{__wbg_Error_83742b46f01ce22d:()=>LA,__wbg_set_wasm:()=>zA,decompress_and_parse_bigwig:()=>FA,decompress_and_parse_summary:()=>NA,inflate_raw:()=>mA,inflate_raw_batch:()=>RA,inflate_raw_unknown_size:()=>pA,parse_bigwig_block:()=>UA,parse_summary_block:()=>MA});function FA(A,I,g,t,C,e){try{const s=ZA.__wbindgen_add_to_stack_pointer(-16),E=_A(A,ZA.__wbindgen_export),a=XA,r=TA(I,ZA.__wbindgen_export),n=XA,h=TA(g,ZA.__wbindgen_export),c=XA;ZA.decompress_and_parse_bigwig(s,E,a,r,n,h,c,t,C,e);var B=YA().getInt32(s+0,!0),i=YA().getInt32(s+4,!0),Q=YA().getInt32(s+8,!0);if(YA().getInt32(s+12,!0))throw WA(Q);var o=JA(B,i).slice();return ZA.__wbindgen_export2(B,1*i,1),o}finally{ZA.__wbindgen_add_to_stack_pointer(16)}}function NA(A,I,g,t,C,e,B){try{const E=ZA.__wbindgen_add_to_stack_pointer(-16),a=_A(A,ZA.__wbindgen_export),r=XA,n=TA(I,ZA.__wbindgen_export),h=XA,c=TA(g,ZA.__wbindgen_export),l=XA;ZA.decompress_and_parse_summary(E,a,r,n,h,c,l,t,C,e,B);var i=YA().getInt32(E+0,!0),Q=YA().getInt32(E+4,!0),o=YA().getInt32(E+8,!0);if(YA().getInt32(E+12,!0))throw WA(o);var s=JA(i,Q).slice();return ZA.__wbindgen_export2(i,1*Q,1),s}finally{ZA.__wbindgen_add_to_stack_pointer(16)}}function mA(A,I){try{const B=ZA.__wbindgen_add_to_stack_pointer(-16),i=_A(A,ZA.__wbindgen_export),Q=XA;ZA.inflate_raw(B,i,Q,I);var g=YA().getInt32(B+0,!0),t=YA().getInt32(B+4,!0),C=YA().getInt32(B+8,!0);if(YA().getInt32(B+12,!0))throw WA(C);var e=JA(g,t).slice();return ZA.__wbindgen_export2(g,1*t,1),e}finally{ZA.__wbindgen_add_to_stack_pointer(16)}}function RA(A,I,g,t){try{const Q=ZA.__wbindgen_add_to_stack_pointer(-16),o=_A(A,ZA.__wbindgen_export),s=XA,E=TA(I,ZA.__wbindgen_export),a=XA,r=TA(g,ZA.__wbindgen_export),n=XA;ZA.inflate_raw_batch(Q,o,s,E,a,r,n,t);var C=YA().getInt32(Q+0,!0),e=YA().getInt32(Q+4,!0),B=YA().getInt32(Q+8,!0);if(YA().getInt32(Q+12,!0))throw WA(B);var i=JA(C,e).slice();return ZA.__wbindgen_export2(C,1*e,1),i}finally{ZA.__wbindgen_add_to_stack_pointer(16)}}function pA(A){try{const e=ZA.__wbindgen_add_to_stack_pointer(-16),B=_A(A,ZA.__wbindgen_export),i=XA;ZA.inflate_raw_unknown_size(e,B,i);var I=YA().getInt32(e+0,!0),g=YA().getInt32(e+4,!0),t=YA().getInt32(e+8,!0);if(YA().getInt32(e+12,!0))throw WA(t);var C=JA(I,g).slice();return ZA.__wbindgen_export2(I,1*g,1),C}finally{ZA.__wbindgen_add_to_stack_pointer(16)}}function UA(A,I,g){try{const B=ZA.__wbindgen_add_to_stack_pointer(-16),i=_A(A,ZA.__wbindgen_export),Q=XA;ZA.parse_bigwig_block(B,i,Q,I,g);var t=YA().getInt32(B+0,!0),C=YA().getInt32(B+4,!0),e=JA(t,C).slice();return ZA.__wbindgen_export2(t,1*C,1),e}finally{ZA.__wbindgen_add_to_stack_pointer(16)}}function MA(A,I,g,t){try{const i=ZA.__wbindgen_add_to_stack_pointer(-16),Q=_A(A,ZA.__wbindgen_export),o=XA;ZA.parse_summary_block(i,Q,o,I,g,t);var C=YA().getInt32(i+0,!0),e=YA().getInt32(i+4,!0),B=JA(C,e).slice();return ZA.__wbindgen_export2(C,1*e,1),B}finally{ZA.__wbindgen_add_to_stack_pointer(16)}}function LA(A,I){var g;return function(A){qA===HA.length&&HA.push(HA.length+1);const I=qA;return qA=HA[I],HA[I]=A,I}(Error((g=A,function(A,I){return VA+=I,VA>=OA&&(PA=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}),PA.decode(),VA=I),PA.decode(xA().subarray(A,A+I))}(g>>>=0,I))))}function JA(A,I){return A>>>=0,xA().subarray(A/1,A/1+I)}let KA=null;function YA(){return(null===KA||!0===KA.buffer.detached||void 0===KA.buffer.detached&&KA.buffer!==ZA.memory.buffer)&&(KA=new DataView(ZA.memory.buffer)),KA}let vA=null;let bA=null;function xA(){return null!==bA&&0!==bA.byteLength||(bA=new Uint8Array(ZA.memory.buffer)),bA}let HA=new Array(1024).fill(void 0);HA.push(void 0,null,!0,!1);let qA=HA.length;function TA(A,I){const g=I(4*A.length,4)>>>0;return(null!==vA&&0!==vA.byteLength||(vA=new Uint32Array(ZA.memory.buffer)),vA).set(A,g/4),XA=A.length,g}function _A(A,I){const g=I(1*A.length,1)>>>0;return xA().set(A,g/1),XA=A.length,g}function WA(A){const I=function(A){return HA[A]}(A);return function(A){A<1028||(HA[A]=qA,qA=A)}(A),I}let PA=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});PA.decode();const OA=2146435072;let VA=0;let ZA,XA=0;function zA(A){ZA=A}let jA=null,$A=null;async function AI(){return jA||($A||($A=(async()=>{const A=await fetch("data:application/wasm;base64,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IGlzIMASIGJ1dCB0aGUgaW5kZXggaXMgwAAScmFuZ2Ugc3RhcnQgaW5kZXggwCIgb3V0IG9mIHJhbmdlIGZvciBzbGljZSBvZiBsZW5ndGggwAAQcmFuZ2UgZW5kIGluZGV4IMAiIG91dCBvZiByYW5nZSBmb3Igc2xpY2Ugb2YgbGVuZ3RoIMAAFmRlY29tcHJlc3Npb24gZmFpbGVkOiDAAMACOiDAAC9ydXN0Yy80YTRlZjQ5M2UzYTE0ODhjNmUzMjE1NzAyMzgwODRiMzg5NDhmNmRiL2xpYnJhcnkvYWxsb2Mvc3JjL2ZtdC5ycwAvcnVzdGMvNGE0ZWY0OTNlM2ExNDg4YzZlMzIxNTcwMjM4MDg0YjM4OTQ4ZjZkYi9saWJyYXJ5L2NvcmUvc3JjL2ZtdC9udW0ucnMAL2hvbWUvY2RpZXNoLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvd2FzbS1iaW5kZ2VuLTAuMi4xMTQvc3JjL2V4dGVybnJlZi5ycwAvcnVzdGMvNGE0ZWY0OTNlM2ExNDg4YzZlMzIxNTcwMjM4MDg0YjM4OTQ4ZjZkYi9saWJyYXJ5L2FsbG9jL3NyYy9yYXdfdmVjL21vZC5ycwAvcnVzdC9kZXBzL2RsbWFsbG9jLTAuMi4xMS9zcmMvZGxtYWxsb2MucnMAL2hvbWUvY2RpZXNoLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvbGliZGVmbGF0ZXItMS4yNS4yL3NyYy9saWIucnMAALwCEAAKAAAAbAAAABkAAAC8AhAACgAAAGwAAAAnAAAAvAIQAAoAAABsAAAAOQAAALwCEAAKAAAAbAAAAEsAAAC8AhAACgAAAGAAAAAZAAAAvAIQAAoAAABgAAAAJwAAALwCEAAKAAAAYAAAADkAAAC8AhAACgAAAGAAAABLAAAAvAIQAAoAAABkAAAAGQAAALwCEAAKAAAAZAAAACcAAAC8AhAACgAAAGQAAAA5AAAAvAIQAAoAAABkAAAASwAAALwCEAAKAAAAQAAAAAsAAAC8AhAACgAAAFgAAAALAAAAvAIQAAoAAABJAAAAEwAAALwCEAAKAAAAUwAAACsAAAC8AhAACgAAAE0AAAAPAAAAvAIQAAoAAABKAAAAHAAAALwCEAAKAAAAOQAAAB0AAABkZWNvbXByZXNzaW9uIG91dHB1dCB0b28gbGFyZ2UAALwCEAAKAAAAJgEAABMAAAC8AhAACgAAAC0BAAAdAAAAvAIQAAoAAAAnAQAAHAAAALwCEAAKAAAAoAEAABMAAAC8AhAACgAAAKcBAAAdAAAAvAIQAAoAAAChAQAAHAAAAEJhZERhdGFJbnN1ZmZpY2llbnRTcGFjZYMBEABnAAAAfwAAABEAAACDARAAZwAAAIwAAAARAAAAbGliZGVmbGF0ZV9kZWZsYXRlX2RlY29tcHJlc3MgcmV0dXJuZWQgYW4gdW5rbm93biBlcnJvciB0eXBlOiB0aGlzIGlzIGFuIGludGVybmFsIGJ1ZyB0aGF0ICoqbXVzdCoqIGJlIGZpeGVkZwIQAF8AAAANAQAAFQAAAGxpYmRlZmxhdGVfYWxsb2NfZGVjb21wcmVzc29yIHJldHVybmVkIE5VTEw6IG91dCBvZiBtZW1vcnkAAGcCEABfAAAAnQAAABEAAAAMAAAAAgAAAAMAAAAAAAAAAAAAAAAAAAAQERIACAcJBgoFCwQMAw0CDgEPAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAARAAAAEgAAAAAAAAABAAAAAgAAAAMAAAAEAAEABQABAAcAAgAJAAIADQADABEAAwAZAAQAIQAEADEABQBBAAUAYQAGAIEABgDBAAcAAQEHAIEBCAABAggAAQMJAAEECQABBgoAAQgKAAEMCwABEAsAARgMAAEgDAABMA0AAUANAAFgDQABYA0AAWAAAACAAAABgAAAAoAAAAOAAAAEgAAABYAAAAaAAAAHgAAACIAAAAmAAAAKgAAAC4AAAAyAAAANgAAADoAAAA+AAAAQgAAAEYAAABKAAAATgAAAFIAAABWAAAAWgAAAF4AAABiAAAAZgAAAGoAAABuAAAAcgAAAHYAAAB6AAAAfgAAAIIAAACGAAAAigAAAI4AAACSAAAAlgAAAJoAAACeAAAAogAAAKYAAACqAAAArgAAALIAAAC2AAAAugAAAL4AAADCAAAAxgAAAMoAAADOAAAA0gAAANYAAADaAAAA3gAAAOIAAADmAAAA6gAAAO4AAADyAAAA9gAAAPoAAAD+AAABAgAAAQYAAAEKAAABDgAAARIAAAEWAAABGgAAAR4AAAEiAAABJgAAASoAAAEuAAABMgAAATYAAAE6AAABPgAAAUIAAAFGAAABSgAAAU4AAAFSAAABVgAAAVoAAAFeAAABYgAAAWYAAAFqAAABbgAAAXIAAAF2AAABegAAAX4AAAGCAAABhgAAAYoAAAGOAAABkgAAAZYAAAGaAAABngAAAaIAAAGmAAABqgAAAa4AAAGyAAABtgAAAboAAAG+AAABwgAAAcYAAAHKAAABzgAAAdIAAAHWAAAB2gAAAd4AAAHiAAAB5gAAAeoAAAHuAAAB8gAAAfYAAAH6AAAB/gAAAgIAAAIGAAACCgAAAg4AAAISAAACFgAAAhoAAAIeAAACIgAAAiYAAAIqAAACLgAAAjIAAAI2AAACOgAAAj4AAAJCAAACRgAAAkoAAAJOAAACUgAAAlYAAAJaAAACXgAAAmIAAAJmAAACagAAAm4AAAJyAAACdgAAAnoAAAJ+AAACggAAAoYAAAKKAAACjgAAApIAAAKWAAACmgAAAp4AAAKiAAACpgAAAqoAAAKuAAACsgAAArYAAAK6AAACvgAAAsIAAALGAAACygAAAs4AAALSAAAC1gAAAtoAAALeAAAC4gAAAuYAAALqAAAC7gAAAvIAAAL2AAAC+gAAAv4AAAMCAAADBgAAAwoAAAMOAAADEgAAAxYAAAMaAAADHgAAAyIAAAMmAAADKgAAAy4AAAMyAAADNgAAAzoAAAM+AAADQgAAA0YAAANKAAADTgAAA1IAAANWAAADWgAAA14AAANiAAADZgAAA2oAAANuAAADcgAAA3YAAAN6AAADfgAAA4IAAAOGAAADigAAA44AAAOSAAADlgAAA5oAAAOeAAADogAAA6YAAAOqAAADrgAAA7IAAAO2AAADugAAA74AAAPCAAADxgAAA8oAAAPOAAAD0gAAA9YAAAPaAAAD3gAAA+IAAAPmAAAD6gAAA+4AAAPyAAAD9gAAA/oAAAP+AAKAAAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAQALAAEADQABAA8AAQARAAIAEwACABcAAgAbAAIAHwADACMAAwArAAMAMwADADsABABDAAQAUwAEAGMABABzAAUAgwAFAKMABQDDAAUA4wAAAAIBAAACAQAAAgFtXcvWLFDrY3hBpldxG4u5I8o7SqZ3fJNCY0mvl2+yhAAAAAAIAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAADAAAAAQAAAAKAAAACwAAAAwAAAAAAAAACAAAAAQAAAANAAAADgAAAA8AAAAQAAAAEQAAABAAAAAEAAAAEgAAABMAAAAUAAAACAAAAAAAAAAIAAAABAAAABUAAABhc3NlcnRpb24gZmFpbGVkOiBwc2l6ZSA+PSBzaXplICsgbWluX292ZXJoZWFkAAA8AhAAKgAAALEEAAAJAAAAYXNzZXJ0aW9uIGZhaWxlZDogcHNpemUgPD0gc2l6ZSArIG1heF9vdmVyaGVhZAAAPAIQACoAAAC3BAAADQAAAAkAAAAMAAAABAAAABYAAABFcnJvcgAAABcAAAAMAAAABAAAABgAAAAZAAAAGgAAAAAAAAAAAAAAAQAAABsAAABhIGZvcm1hdHRpbmcgdHJhaXQgaW1wbGVtZW50YXRpb24gcmV0dXJuZWQgYW4gZXJyb3Igd2hlbiB0aGUgdW5kZXJseWluZyBzdHJlYW0gZGlkIG5vdAAA7gAQAEgAAACKAgAADgAAAGNhcGFjaXR5IG92ZXJmbG93AAAA6wEQAFAAAAAcAAAABQAAADAwMDEwMjAzMDQwNTA2MDcwODA5MTAxMTEyMTMxNDE1MTYxNzE4MTkyMDIxMjIyMzI0MjUyNjI3MjgyOTMwMzEzMjMzMzQzNTM2MzczODM5NDA0MTQyNDM0NDQ1NDY0NzQ4NDk1MDUxNTI1MzU0NTU1NjU3NTg1OTYwNjE2MjYzNjQ2NTY2Njc2ODY5NzA3MTcyNzM3NDc1NzY3Nzc4Nzk4MDgxODI4Mzg0ODU4Njg3ODg4OTkwOTE5MjkzOTQ5NTk2OTc5ODk5NwEQAEsAAABXAgAABQAAAFJlZkNlbGwgYWxyZWFkeSBib3Jyb3dlZABB2JvAAAsEBAAAAAApBG5hbWUBIgFjH19fd2JpbmRnZW5fYWRkX3RvX3N0YWNrX3BvaW50ZXIAPAlwcm9kdWNlcnMBDHByb2Nlc3NlZC1ieQIGd2FscnVzBjAuMjUuMgx3YXNtLWJpbmRnZW4HMC4yLjExNA=="),I=await A.arrayBuffer(),{instance:g}=await WebAssembly.instantiate(I,{"./inflate_wasm_bg.js":GA});return jA=g.exports,zA(jA),jA})()),$A)}async function II(A,I,g,t,C,e){await AI();return function(A){const I=new DataView(A.buffer,A.byteOffset,A.byteLength).getUint32(0,!0);if(0===I)return{starts:new Int32Array(0),ends:new Int32Array(0),scores:new Float32Array(0)};const g=4+4*I,t=g+4*I;return{starts:new Int32Array(A.buffer,A.byteOffset+4,I),ends:new Int32Array(A.buffer,A.byteOffset+g,I),scores:new Float32Array(A.buffer,A.byteOffset+t,I)}}(FA(A,I,g,t,C,e))}async function gI(A,I,g,t,C,e,B){await AI();return function(A){const I=new DataView(A.buffer,A.byteOffset,A.byteLength).getUint32(0,!0);if(0===I)return{starts:new Int32Array(0),ends:new Int32Array(0),scores:new Float32Array(0),minScores:new Float32Array(0),maxScores:new Float32Array(0)};const g=4+4*I,t=g+4*I,C=t+4*I,e=C+4*I;return{starts:new Int32Array(A.buffer,A.byteOffset+4,I),ends:new Int32Array(A.buffer,A.byteOffset+g,I),scores:new Float32Array(A.buffer,A.byteOffset+t,I),minScores:new Float32Array(A.buffer,A.byteOffset+C,I),maxScores:new Float32Array(A.buffer,A.byteOffset+e,I)}}(NA(A,I,g,t,C,e,B))}async function tI(A,I,g){const t=new Uint32Array(I.length),C=new Uint32Array(I.length);for(let A=0;A<I.length;A++){const g=I[A];t[A]=g.offset,C[A]=g.length}return async function(A,I,g,t){await AI();const C=RA(A,I,g,t),e=new DataView(C.buffer,C.byteOffset,C.byteLength),B=e.getUint32(0,!0),i=4+4*(B+1),Q=new Array(B+1);for(let A=0;A<=B;A++)Q[A]=e.getUint32(4+4*A,!0);return{data:C.subarray(i),offsets:Q}}(A,t,C,g)}async function CI(A,I,g,t,C){const e=new Uint32Array(I.length),B=new Uint32Array(I.length);for(let A=0;A<I.length;A++){const g=I[A];e[A]=g.offset,B[A]=g.length}return II(A,e,B,g,t,C)}async function eI(A,I,g,t,C,e){const B=new Uint32Array(I.length),i=new Uint32Array(I.length);for(let A=0;A<I.length;A++){const g=I[A];B[A]=g.offset,i[A]=g.length}return gI(A,B,i,g,t,C,e)}function BI(A){A.sort((A,I)=>A.offset-I.offset);const I=[];let g,t;for(const C of A)g&&t&&C.offset-t<=2e3?(g.length=C.offset+C.length-g.offset,g.blocks.push(C),t=C.offset+C.length):(g={blocks:[C],length:C.length,offset:C.offset},I.push(g),t=C.offset+C.length);return I}const iI=new TextDecoder("utf8"),QI=610839776;function oI(A,I,g,t){return A<t&&I>=g}function sI(A,I,g){const t=[];let C=I;const e=new DataView(A.buffer,A.byteOffset,A.length);for(;C<A.byteLength;){const A=e.getUint32(C,!0);C+=4;const I=e.getUint32(C,!0);C+=4;const B=e.getUint32(C,!0);C+=4;const i=e.getUint32(C,!0);C+=4;const Q=e.getFloat32(C,!0);C+=4;const o=e.getFloat32(C,!0);C+=4;const s=e.getFloat32(C,!0);C+=8,(!g||A===g.chrId&&oI(I,B,g.start,g.end))&&t.push({start:I,end:B,maxScore:o,minScore:Q,summary:!0,score:s/(i||1)})}return t}function EI(A,I,g,t){const C=[];let e=I;const B=new DataView(A.buffer,A.byteOffset,A.length);for(;e<A.byteLength;){const I=e,i=B.getUint32(e,!0);e+=4;const Q=B.getInt32(e,!0);e+=4;const o=B.getInt32(e,!0);e+=4;let s=e;for(;s<A.length&&0!==A[s];s++);const E=A.subarray(e,s),a=iI.decode(E);e=s+1,(!t||i===t.chrId&&oI(Q,o,t.start,t.end))&&C.push({start:Q,end:o,rest:a,uniqueId:`bb-${g+I}`})}return C}function aI(A,I,g){const t=A.subarray(I),C=new DataView(t.buffer,t.byteOffset,t.length),e=C.getInt32(4,!0),B=C.getUint32(12,!0),i=C.getUint32(16,!0),Q=C.getUint8(20),o=C.getUint16(22,!0);let s=24;const E=[];switch(Q){case 1:for(let A=0;A<o;A++){const A=C.getInt32(s,!0);s+=4;const I=C.getInt32(s,!0);s+=4;const t=C.getFloat32(s,!0);s+=4,g&&!oI(A,I,g.start,g.end)||E.push({start:A,end:I,score:t})}break;case 2:for(let A=0;A<o;A++){const A=C.getInt32(s,!0);s+=4;const I=C.getFloat32(s,!0);s+=4;const t=A+i;g&&!oI(A,t,g.start,g.end)||E.push({score:I,start:A,end:t})}break;case 3:for(let A=0;A<o;A++){const I=C.getFloat32(s,!0);s+=4;const t=e+A*B,Q=t+i;g&&!oI(t,Q,g.start,g.end)||E.push({score:I,start:t,end:Q})}}return E}function rI(A,I,g){const t=new DataView(A.buffer,A.byteOffset+I,A.length-I),C=t.getInt32(4,!0),e=t.getUint32(12,!0),B=t.getUint32(16,!0),i=t.getUint8(20),Q=t.getUint16(22,!0),o=new Int32Array(Q),s=new Int32Array(Q),E=new Float32Array(Q);if(!g){switch(i){case 1:{let A=24;for(let I=0;I<Q;I++)o[I]=t.getInt32(A,!0),s[I]=t.getInt32(A+4,!0),E[I]=t.getFloat32(A+8,!0),A+=12;return{starts:o,ends:s,scores:E}}case 2:{let A=24;for(let I=0;I<Q;I++){const g=t.getInt32(A,!0);o[I]=g,s[I]=g+B,E[I]=t.getFloat32(A+4,!0),A+=8}return{starts:o,ends:s,scores:E}}case 3:{let A=24;for(let I=0;I<Q;I++){const g=C+I*e;o[I]=g,s[I]=g+B,E[I]=t.getFloat32(A,!0),A+=4}return{starts:o,ends:s,scores:E}}}return{starts:o,ends:s,scores:E}}const a=g.start,r=g.end;let n=0;switch(i){case 1:{let A=24;for(let I=0;I<Q;I++){const I=t.getInt32(A,!0),g=t.getInt32(A+4,!0);I<r&&g>=a&&(o[n]=I,s[n]=g,E[n]=t.getFloat32(A+8,!0),n++),A+=12}break}case 2:{let A=24;for(let I=0;I<Q;I++){const I=t.getInt32(A,!0),g=I+B;I<r&&g>=a&&(o[n]=I,s[n]=g,E[n]=t.getFloat32(A+4,!0),n++),A+=8}break}case 3:{let A=24;for(let I=0;I<Q;I++){const g=C+I*e,i=g+B;g<r&&i>=a&&(o[n]=g,s[n]=i,E[n]=t.getFloat32(A,!0),n++),A+=4}break}}return n<Q?{starts:o.subarray(0,n),ends:s.subarray(0,n),scores:E.subarray(0,n)}:{starts:o,ends:s,scores:E}}class nI{bbi;refsByName;rTreeOffset;uncompressBufSize;blockType;rTreePromise;featureCache=new eA({cache:new fA({maxSize:1e3}),fill:async({length:A,offset:I},g)=>this.bbi.read(A,I,{signal:g})});constructor(A,I,g,t,C){if(this.bbi=A,this.refsByName=I,this.rTreeOffset=g,this.uncompressBufSize=t,this.blockType=C,!(g>=0))throw new Error("invalid rTreeOffset!")}async _collectBlocks(A,I,g,t){const C=this.refsByName[A];if(void 0===C)return;this.rTreePromise||(this.rTreePromise=this.bbi.read(48,this.rTreeOffset,t));const e=await this.rTreePromise,B=new DataView(e.buffer,e.byteOffset,e.length),i=B.getUint32(0,!0);if(i!==QI)throw new Error(`invalid cirTree magic: 0x${i.toString(16)} (expected 0x${QI.toString(16)}) at offset ${this.rTreeOffset}, file may be corrupt or unsupported`);const Q=4+32*B.getUint32(4,!0),o=(A,t,e,B)=>(A<C||A===C&&t<=g)&&(e>C||e===C&&B>=I),s=[];let E=[this.rTreeOffset+48];for(;E.length>0;){const A=SA(E.map(A=>({min:A,max:A+Q}))),I=[];for(const{min:g,max:C}of A){const A=C-g,e=g,B=await this.featureCache.get(`${A}_${e}`,{length:A,offset:e},t?.signal);for(const A of E)if(g<=A&&A<=C){const g=B.subarray(A-e),t=new DataView(g.buffer,g.byteOffset,g.length),C=t.getUint8(0),i=t.getUint16(2,!0);let Q=4;if(1===C)for(let A=0;A<i;A++){const A=t.getUint32(Q,!0),I=t.getUint32(Q+4,!0),g=t.getUint32(Q+8,!0),C=t.getUint32(Q+12,!0),e=Number(t.getBigUint64(Q+16,!0)),B=Number(t.getBigUint64(Q+24,!0));Q+=32,o(A,I,g,C)&&s.push({offset:e,length:B})}else if(0===C)for(let A=0;A<i;A++){const A=t.getUint32(Q,!0),g=t.getUint32(Q+4,!0),C=t.getUint32(Q+8,!0),e=t.getUint32(Q+12,!0),B=Number(t.getBigUint64(Q+16,!0));Q+=24,o(A,g,C,e)&&I.push(B)}}}E=I}return{blocks:s,chrId:C}}async readWigData(A,I,g,t){const C=await this._collectBlocks(A,I,g,t);if(!C)return[];const{blocks:e,chrId:B}=C;return this.readFeatures(e,{...t,request:{chrId:B,start:I,end:g}})}async readWigDataAsArrays(A,I,g,t){const C=await this._collectBlocks(A,I,g,t),e=C?.blocks??[],B=C?{chrId:C.chrId,start:I,end:g}:void 0,i={...t,request:B};return"summary"===this.blockType?this._readSummaryFeaturesAsArrays(e,i):this._readBigWigFeaturesAsArrays(e,i)}async readFeatures(A,I={}){const{blockType:g,uncompressBufSize:t}=this,{signal:C,request:e}=I,B=BI(A),i=[];for(const A of B){const I=await this.bbi.read(A.length,A.offset,{signal:C}),B=A.offset,Q=A.blocks;let o,s;if(t>0){const A=[];for(const I of Q)A.push({offset:I.offset-B,length:I.length});const g=await tI(I,A,t);o=g.data,s=g.offsets}else{o=I,s=[];for(const A of Q)s.push(A.offset-B);s.push(I.length)}for(let A=0;A<Q.length;A++){const I=s[A],t=s[A+1],C=o.subarray(I,t);let B;switch(g){case"summary":B=sI(C,0,e);break;case"bigwig":B=aI(C,0,e);break;case"bigbed":B=EI(C,0,256*Q[A].offset,e);break;default:B=[],console.warn(`Don't know what to do with ${g}`)}for(const A of B)i.push(A)}}return i}async _readBigWigFeaturesAsArrays(A,I={}){const{uncompressBufSize:g}=this,{signal:t,request:C}=I,e=BI(A),B=[],i=[],Q=[];let o=0;for(const A of e){const{length:I,offset:e}=A,s=await this.bbi.read(I,e,{signal:t}),E=A.blocks.map(I=>({offset:I.offset-A.offset,length:I.length}));if(g>0){const A=await CI(s,E,g,C?.start??0,C?.end??0);A.starts.length>0&&(B.push(A.starts),i.push(A.ends),Q.push(A.scores),o+=A.starts.length)}else for(const A of E){const I=rI(s.subarray(A.offset,A.offset+A.length),0,C);I.starts.length>0&&(B.push(I.starts),i.push(I.ends),Q.push(I.scores),o+=I.starts.length)}}if(0===B.length)return{starts:new Int32Array(0),ends:new Int32Array(0),scores:new Float32Array(0),isSummary:!1};if(1===B.length)return{starts:B[0],ends:i[0],scores:Q[0],isSummary:!1};const s=new Int32Array(o),E=new Int32Array(o),a=new Float32Array(o);let r=0;for(let A=0;A<B.length;A++)s.set(B[A],r),E.set(i[A],r),a.set(Q[A],r),r+=B[A].length;return{starts:s,ends:E,scores:a,isSummary:!1}}async _readSummaryFeaturesAsArrays(A,I={}){const{uncompressBufSize:g}=this,{signal:t,request:C}=I,e=BI(A),B=[],i=[],Q=[],o=[],s=[];let E=0;for(const A of e){const{length:I,offset:e}=A,a=await this.bbi.read(I,e,{signal:t}),r=A.blocks.map(I=>({offset:I.offset-A.offset,length:I.length}));if(g>0){const A=await eI(a,r,g,C?.chrId??0,C?.start??0,C?.end??0);A.starts.length>0&&(B.push(A.starts),i.push(A.ends),Q.push(A.scores),o.push(A.minScores),s.push(A.maxScores),E+=A.starts.length)}else for(const A of r){const I=sI(a.subarray(A.offset,A.offset+A.length),0,C);if(I.length>0){const A=new Int32Array(I.length),g=new Int32Array(I.length),t=new Float32Array(I.length),C=new Float32Array(I.length),e=new Float32Array(I.length);for(let B=0;B<I.length;B++){const i=I[B];A[B]=i.start,g[B]=i.end,t[B]=i.score??0,C[B]=i.minScore??0,e[B]=i.maxScore??0}B.push(A),i.push(g),Q.push(t),o.push(C),s.push(e),E+=I.length}}}if(0===B.length)return{starts:new Int32Array(0),ends:new Int32Array(0),scores:new Float32Array(0),minScores:new Float32Array(0),maxScores:new Float32Array(0),isSummary:!0};if(1===B.length)return{starts:B[0],ends:i[0],scores:Q[0],minScores:o[0],maxScores:s[0],isSummary:!0};const a=new Int32Array(E),r=new Int32Array(E),n=new Float32Array(E),h=new Float32Array(E),c=new Float32Array(E);let l=0;for(let A=0;A<B.length;A++)a.set(B[A],l),r.set(i[A],l),n.set(Q[A],l),h.set(o[A],l),c.set(s[A],l),l+=B[A].length;return{starts:a,ends:r,scores:n,minScores:h,maxScores:c,isSummary:!0}}}const hI=-2021002517,cI=new TextDecoder("utf8");function lI(A){return new DataView(A.buffer,A.byteOffset,A.length)}class dI{bbi;headerP;renameRefSeqs;getHeader(A){return this.headerP||(this.headerP=this._getHeader(A).catch(A=>{throw this.headerP=void 0,A})),this.headerP}constructor(A){const{filehandle:I,renameRefSeqs:g=A=>A,path:t,url:C}=A;if(this.renameRefSeqs=g,I)this.bbi=I;else if(C)this.bbi=new AA(C);else{if(!t)throw new Error("no file given");this.bbi=new IA(t)}}async _getHeader(A){const I=await this._getMainHeader(A),g=await this._readChromosomeTree(I,A);return{...I,...g}}async _getMainHeader(A,I=2e3){const g=await this.bbi.read(I,0,A),t=lI(g);let C=0;const e=t.getInt32(C,!0);if(C+=4,-2003829722!==e&&e!==hI)throw new Error("not a BigWig/BigBed file");const B=t.getUint16(C,!0);C+=2;const i=t.getUint16(C,!0);C+=2;const Q=Number(t.getBigUint64(C,!0));C+=8;const o=Number(t.getBigUint64(C,!0));C+=8;const s=Number(t.getBigUint64(C,!0));C+=8;const E=t.getUint16(C,!0);C+=2;const a=t.getUint16(C,!0);C+=2;const r=Number(t.getBigUint64(C,!0));C+=8;const n=Number(t.getBigUint64(C,!0));C+=8;const h=t.getUint32(C,!0);C+=4;const c=Number(t.getBigUint64(C,!0));C+=8;const l=[];for(let A=0;A<i;A++){const A=t.getUint32(C,!0);C+=4;const I=t.getUint32(C,!0);C+=4;const g=Number(t.getBigUint64(C,!0));C+=8;const e=Number(t.getBigUint64(C,!0));C+=8,l.push({reductionLevel:A,reserved:I,dataOffset:g,indexOffset:e})}const d=e===hI?"bigbed":"bigwig";if(r>I||n>I-40)return this._getMainHeader(A,2*I);let D;if(!n)throw new Error("no stats");{let A=0;const I=lI(g.subarray(n)),t=Number(I.getBigUint64(A,!0));A+=8;const C=I.getFloat64(A,!0);A+=8;const e=I.getFloat64(A,!0);A+=8;const B=I.getFloat64(A,!0);A+=8;D={scoreMin:C,scoreMax:e,scoreSum:B,scoreSumSquares:I.getFloat64(A,!0),basesCovered:t}}return{zoomLevels:l,magic:e,extHeaderOffset:c,numZoomLevels:i,fieldCount:E,totalSummary:D,definedFieldCount:a,uncompressBufSize:h,asOffset:r,chromosomeTreeOffset:Q,totalSummaryOffset:n,unzoomedDataOffset:o,unzoomedIndexOffset:s,fileType:d,version:B,autoSql:r?cI.decode(g.subarray(r,g.indexOf(0,r))):""}}async _readChromosomeTree(A,I){const g=[],t={},C=A.chromosomeTreeOffset,e=lI(await this.bbi.read(32,C,I)),B=e.getUint32(8,!0),i=e.getUint32(12,!0),Q=async A=>{const I=lI(await this.bbi.read(4,A)),C=I.getUint8(0),e=I.getUint16(2,!0);if(C){const I=await this.bbi.read(e*(B+i),A+4),C=lI(I);let Q=0;for(let A=0;A<e;A++){const A=I.indexOf(0,Q),e=-1!==A&&A<Q+B?A:Q+B,i=cI.decode(I.subarray(Q,e));Q+=B;const o=C.getUint32(Q,!0);Q+=4;const s=C.getUint32(Q,!0);Q+=4,t[this.renameRefSeqs(i)]=o,g[o]={name:i,id:o,length:s}}}else{const I=lI(await this.bbi.read(e*(B+8),A+4)),g=[];let t=0;for(let A=0;A<e;A++){t+=B;const A=Number(I.getBigUint64(t,!0));t+=8,g.push(Q(A))}await Promise.all(g)}};return await Q(C+32),{refsByName:t,refsByNumber:g}}viewCache=new Map;getOrCreateBlockView(A,I,g,t){const C=`${I}_${t}`;let e=this.viewCache.get(C);return e||(e=new nI(this.bbi,A,I,g,t),this.viewCache.set(C,e)),e}async getUnzoomedView(A){const{unzoomedIndexOffset:I,refsByName:g,uncompressBufSize:t,fileType:C}=await this.getHeader(A);return this.getOrCreateBlockView(g,I,t,C)}async _getView(A){const{basesPerSpan:I,scale:g}=A||{},t=I?1/I:g??1;return this.getView(t,A)}async getFeatures(A,I,g,t){return(await this._getView(t)).readWigData(this.renameRefSeqs(A),I,g,t)}async getFeaturesAsArrays(A,I,g,t){return(await this._getView(t)).readWigDataAsArrays(this.renameRefSeqs(A),I,g,t)}}class DI extends dI{async getView(A,I){const{zoomLevels:g,refsByName:t,uncompressBufSize:C}=await this.getHeader(I),e=1/A;for(let A=g.length-1;A>=0;A-=1){const I=g[A];if(I&&I.reductionLevel<=2*e)return this.getOrCreateBlockView(t,I.indexOffset,C,"summary")}return this.getUnzoomedView(I)}}const uI=new TextDecoder("utf8");function yI(A,I,g){const t=A.indexOf(0,I),C=-1!==t&&t<I+g?t:I+g;return uI.decode(A.subarray(I,C))}async function wI(A,I,g,t,C,e,B,i){const Q=4+g*(t+C),o=await A.read(Q,I,i),s=new DataView(o.buffer,o.byteOffset,o.length),E=s.getInt8(0),a=s.getInt16(2,!0);let r=4;if(0===E){const I=[];for(let A=0;A<a;A++){const A=yI(o,r,t);r+=t;const g=Number(s.getBigUint64(r,!0));r+=8,I.push({key:A,offset:g})}let Q=0,E=I.length-1,n=I.length-1;for(;Q<=E;){const A=Math.floor((Q+E)/2);e.localeCompare(I[A].key)<0?(n=A-1,E=A-1):Q=A+1}return wI(A,n>=0?I[n].offset:I[0].offset,g,t,C,e,B,i)}if(1===E){const A=[];for(let I=0;I<a;I++){const I=yI(o,r,t);r+=t;const g=Number(s.getBigUint64(r,!0));r+=8;const C=s.getUint32(r,!0);r+=4,r+=4,A.push({key:I,offset:g,length:C})}let I=0,g=A.length-1;for(;I<=g;){const t=Math.floor((I+g)/2),C=e.localeCompare(A[t].key);if(0===C)return{...A[t],field:B};C<0?g=t-1:I=t+1}return}}class fI extends dI{readIndicesCache=new eA({cache:new fA({maxSize:1}),fill:(A,I)=>this._readIndices({...A,signal:I})});readIndices(A={}){const{signal:I,...g}=A;return this.readIndicesCache.get(JSON.stringify(g),A,I)}async getView(A,I){return this.getUnzoomedView(I)}async _readIndices(A){const{extHeaderOffset:I}=await this.getHeader(A),g=await this.bbi.read(64,I),t=new DataView(g.buffer,g.byteOffset,g.length),C=t.getUint16(2,!0),e=Number(t.getBigUint64(4,!0));if(0===C)return[];const B=20*C,i=await this.bbi.read(B,e),Q=[];for(let A=0;A<C;A+=1){const I=i.subarray(20*A),g=new DataView(I.buffer,I.byteOffset,I.length),t=g.getInt16(0,!0),C=g.getInt16(2,!0),e=Number(g.getBigUint64(4,!0)),B=g.getInt16(16,!0);Q.push({type:t,fieldcount:C,offset:e,field:B})}return Q}async searchExtraIndexBlocks(A,I={}){const g=await this.readIndices(I);if(0===g.length)return[];const t=g.map(async g=>{const{offset:t,field:C}=g,e=await this.bbi.read(32,t,I),B=new DataView(e.buffer,e.byteOffset,e.length),i=B.getInt32(4,!0),Q=B.getInt32(8,!0),o=B.getInt32(12,!0);return wI(this.bbi,t+32,i,Q,o,A,C,I)});return(await Promise.all(t)).filter(A=>void 0!==A)}async searchExtraIndex(A,I={}){const g=await this.searchExtraIndexBlocks(A,I);if(0===g.length)return[];const t=await this.getUnzoomedView(I);return(await Promise.all(g.map(async A=>(await t.readFeatures([A],I)).map(I=>({...I,field:A.field}))))).flat().filter(I=>{if(!I.rest)return!1;const g=(I.field||0)-3;return function(A,I){if(I<0)return;let g=0;for(let t=0;t<I;t++){if(g=A.indexOf("\t",g),-1===g)return;g++}const t=A.indexOf("\t",g);return-1===t?A.slice(g):A.slice(g,t)}(I.rest,g)===A})}}function SI(A,I,g){if(I!==g)for(const t of A)t.end<I||t.start>g?t.utr=!0:(I>=t.start&&I<=t.end&&(t.cdStart=I),g>=t.start&&g<=t.end&&(t.cdEnd=g));else for(const I of A)I.utr=!0}function kI(A){if(!A||"."===A||"0"===A)return;if(A.startsWith("#"))return A;const I=A.split(",");if(I.length>=3){const A=parseInt(I[0].trim()),g=parseInt(I[1].trim()),t=parseInt(I[2].trim());if(!isNaN(A)&&!isNaN(g)&&!isNaN(t))return`rgb(${A},${g},${t})`}}function GI(A){var I;return null!==(I=A.cdStart)&&void 0!==I?I:A.start}function FI(A){var I;return null!==(I=A.cdEnd)&&void 0!==I?I:A.end}function NI(A){return A.utr?0:FI(A)-GI(A)}function mI(A){return"+"===A?"+":"-"===A?"-":void 0}function RI(A,I,g=Number.MAX_SAFE_INTEGER){var t,C;if(A.length<3)return;const e=null==I?void 0:I.gffTags,B=A[0],i=parseInt(A[1]),Q=A.length>2?parseInt(A[2]):i+1;if(isNaN(i)||isNaN(Q))return;const o={chr:B,start:i,end:Q,score:1e3};let s=3;if(A.length>3&&s++<g){if(A[3].indexOf(";")>0&&A[3].indexOf("=")>0){const g=function(A){const I={},g=A.split(";");for(const A of g){const g=A.indexOf("=");if(g>0){const t=A.substring(0,g).trim(),C=A.substring(g+1).trim();I[t]=C}}return I}(A[3]);if(o.attributes=g,e)if(null!=(null==I?void 0:I.nameField)&&g[I.nameField])o.name=g[I.nameField];else if(!o.name)for(const A of pI)if(g[A]){o.name=g[A];break}}o.name||e||(o.name="."===A[3]?"":A[3])}if(A.length>4&&s++<g&&(o.score="."===A[4]?0:Number(A[4]),isNaN(o.score)))return o;if(A.length>5&&s++<g){const I=A[5];if("."!==I&&"+"!==I&&"-"!==I)return o;o.strand=I}if(A.length>6&&s++<g&&(o.cdStart=parseInt(A[6]),isNaN(o.cdStart)))return o;if(A.length>7&&s++<g&&(o.cdEnd=parseInt(A[7]),isNaN(o.cdEnd)))return o;if(A.length>8&&s++<g&&"."!==A[8]&&"0"!==A[8]&&(o.color=kI(A[8])),A.length>11&&s++<g){const I=parseInt(A[9]);if(I>1e3)return o;const g=A[10].replace(/,$/,"").split(","),e=A[11].replace(/,$/,"").split(",");if(g.length!==e.length||I!==g.length)return o;const B=[];for(let A=0;A<I;A++){const I=i+parseInt(e[A]),t=I+parseInt(g[A]);B.push({start:I,end:t})}B.length>0&&(SI(B,null!==(t=o.cdStart)&&void 0!==t?t:i,null!==(C=o.cdEnd)&&void 0!==C?C:Q),o.exons=B)}if(I&&(void 0!==I.thicknessColumn&&A.length>I.thicknessColumn&&(o.thickness=parseFloat(A[I.thicknessColumn])),void 0!==I.colorColumn&&A.length>I.colorColumn)){const g=kI(A[I.colorColumn]);g&&(o.color=g)}return o}const pI=["Name","transcript_id","gene_name","gene","gene_id","alias","locus","name"];class UI{constructor(A,I){const g=new AA(A,I?{fetch:I}:void 0);this.bb=new fI({filehandle:g})}async search(A){const I=await this.bb.searchExtraIndex(A);if(0===I.length)return null;const g=await this.ensureHeader();let t=I[0];for(let A=1;A<I.length;A++)I[A].end-I[A].start>t.end-t.start&&(t=I[A]);const C=t.chromId;if(null==C)return null;const e=g.refsByNumber[C];return e?this.parseFeature(e.name,t.start,t.end,t.rest):null}async getFeatures(A,I,g){const t=await this.bb.getFeatures(A,I,g),C=[];for(const I of t){const g=this.parseFeature(A,I.start,I.end,I.rest);g&&C.push(g)}return C}parseFeature(A,I,g,t){const C=[A,String(I),String(g)];t&&C.push(...t.split("\t"));const e=RI(C);return e?function(A,I){return{chr:A,start:I.start,end:I.end,name:I.name,score:I.score,strand:"."===I.strand?void 0:I.strand,cdStart:I.cdStart,cdEnd:I.cdEnd,exons:I.exons,color:I.color}}(e.chr,e):null}ensureHeader(){return this.headerPromise||(this.headerPromise=this.bb.getHeader()),this.headerPromise}}const MI=/^chr(\d+|X|Y|M)$/i;function LI(A){return MI.test(A)}function JI(A){return Object.keys(A).filter(LI).sort((A,I)=>KI(A)-KI(I))}function KI(A){const I=A.replace(/^chr/i,"");if("X"===I||"x"===I)return 23;if("Y"===I||"y"===I)return 24;if("M"===I||"m"===I)return 25;const g=parseInt(I,10);return isNaN(g)?100:g}const YI=1e5;function vI(A){let I=[],g=null;return async function(t,C){const{chr:e,start:B,end:i}=t;let Q=I.find(A=>function(A,I,g,t){return A.chr===I&&A.start<=g&&A.end>=t}(A,e,B,i));var o;Q||(Q=await async function(I,t,C,e){let B=t,i=C;if(C-t<YI){const A=Math.round(t+(C-t)/2);B=Math.max(0,A-5e4),i=B+YI}B=Math.floor(B),i=Math.ceil(i);const Q={chr:I,start:B,end:i};if(g&&g.interval.chr===I&&g.interval.start<=t&&g.interval.end>=C)return g.promise;const o=A(Q,e).then(A=>(g=null,{chr:I,start:B,end:i,sequence:A}));return o.catch(()=>{g=null}),g={interval:Q,promise:o},o}(e,B,i,C),o=Q,I=I.filter(A=>{return g=A,!((I=o).chr===g.chr&&I.start<=g.start&&I.end>=g.end);var I,g}),I.length>=10&&I.shift(),I.push(Q));const s=B-Q.start,E=i-B;return Q.sequence.substring(s,s+E)}}async function bI(A,I={},g){var t;const C=`https://api.genome.ucsc.edu/getData/sequence?genome=${null!==(t=I.genome)&&void 0!==t?t:"hg38"}&chrom=${A.chr}&start=${A.start}&end=${A.end}`,e=await fetch(C,g?{signal:g}:void 0);if(!e.ok)throw new Error(`UCSC sequence API error: ${e.status} ${e.statusText}`);return(await e.json()).dna}"getBigInt64"in DataView||(DataView.prototype.getBigInt64=function(A,I){return function(A,I,g){const t=Number(!!g),C=Number(!g);return BigInt(A.getInt32(I,g)*C+A.getInt32(I+4,g)*t)<<32n|BigInt(A.getUint32(I,g)*t+A.getUint32(I+4,g)*C)}(this,A,I)}),"getBigUint64"in DataView||(DataView.prototype.getBigUint64=function(A,I){return function(A,I,g){const t=A.getUint32(I,g),C=A.getUint32(I+4,g),e=Number(!!g),B=Number(!g);return BigInt(t*B+C*e)<<32n|BigInt(t*e+C*B)}(this,A,I)});const xI=["T","C","A","G"],HI=[];for(let A=0;A<256;A++)HI.push(xI[A>>6&3]+xI[A>>4&3]+xI[A>>2&3]+xI[3&A]);const qI=HI.map(A=>A.toLowerCase());class TI{filehandle;headerP;indexP;constructor({filehandle:A,path:I}){if(A)this.filehandle=A;else{if(!I)throw new Error("must supply path or filehandle");this.filehandle=new IA(I)}}getHeader(){return this.headerP??=this.getHeaderData().catch(A=>{throw this.headerP=void 0,A}),this.headerP}async getHeaderData(){const A=await this.filehandle.read(16,0),I=!0,g=new DataView(A.buffer,A.byteOffset,A.length);let t=0;const C=g.getInt32(t,I);if(t+=4,440477507!==C)throw new Error(`Wrong magic number ${String(C)}`);const e=g.getInt32(t,I);t+=4;const B=g.getUint32(t,I);t+=4;return{version:e,magic:C,sequenceCount:B,reserved:g.getUint32(t,I)}}getIndex(){return this.indexP??=this.getIndexData().catch(A=>{throw this.indexP=void 0,A}),this.indexP}async getIndexData(){const A=await this.getHeader(),I=8+A.sequenceCount*(257+(1===A.version?8:4)),g=await this.filehandle.read(I,8),t=!0,C=new DataView(g.buffer,g.byteOffset,g.length);let e=0;const B=C.getUint32(e,t);e+=4,e+=4;const i=[];for(let I=0;I<B;I++){const I=C.getUint8(e);e+=1;let B="";for(let A=0;A<I;A++)B+=String.fromCodePoint(g[e+A]??0);if(e+=I,1===A.version){const A=Number(C.getBigUint64(e,t));e+=8,i.push({offset:A,name:B})}else{const A=C.getUint32(e,t);e+=4,i.push({offset:A,name:B})}}return Object.fromEntries(i.map(({name:A,offset:I})=>[A,I]))}async getSequenceNames(){const A=await this.getIndex();return Object.keys(A)}async getSequenceSizes(){const A=await this.getIndex(),I=Object.entries(A),g=await Promise.all(I.map(([,A])=>this.getSequenceSizeAt(A)));return Object.fromEntries(I.map(([A],I)=>[A,g[I]]))}async getSequenceSize(A){const I=(await this.getIndex())[A];return I?this.getSequenceSizeAt(I):void 0}async getSequenceSizeAt(A){const I=await this.filehandle.read(4,A);return new DataView(I.buffer,I.byteOffset,I.length).getUint32(0,!0)}async getSequenceRecord(A){const I=await this.filehandle.read(8,A),g=new DataView(I.buffer,I.byteOffset,I.length),t=g.getUint32(0,!0),C=g.getUint32(4,!0),e=8*C+4,B=await this.filehandle.read(e,A+8),i=new Uint32Array(2*C+1),Q=new DataView(B.buffer,B.byteOffset,B.length);for(let A=0;A<2*C+1;A++)i[A]=Q.getUint32(4*A,!0);const o=i.subarray(0,C),s=i.subarray(C,2*C),E=i[2*C]??0,a=8*E+4,r=await this.filehandle.read(a,A+8+e),n=new Uint32Array(2*E),h=new DataView(r.buffer,r.byteOffset,r.length);for(let A=0;A<2*E;A++)n[A]=h.getUint32(4*A,!0);return{dnaSize:t,nBlocks:{starts:o,sizes:s},maskBlocks:{starts:n.subarray(0,E),sizes:n.subarray(E,2*E)},dnaPosition:A+8+e+a}}async getSequence(A,I=0,g=Number.POSITIVE_INFINITY){const t=(await this.getIndex())[A];if(!t)return;const C=await this.getSequenceRecord(t);if(I<0)throw new TypeError("regionStart cannot be less than 0");g>C.dnaSize&&(g=C.dnaSize);const e=this.getOverlappingBlockStartIdx(I,C.nBlocks.starts,C.nBlocks.sizes),B=this.getOverlappingBlockStartIdx(I,C.maskBlocks.starts,C.maskBlocks.sizes),i=Math.ceil((g-I)/4)+1,Q=Math.floor(I/4),o=await this.filehandle.read(i,C.dnaPosition+Q),s=C.nBlocks.starts,E=C.nBlocks.sizes,a=C.maskBlocks.starts,r=C.maskBlocks.sizes,n=[];let h=e,c=B,l=I;for(;l<g;){for(;c<a.length&&a[c]+r[c]<=l;)c++;const A=a[c]??1/0,I=A+(r[c]??0),t=A<=l&&I>l,C=s[h]??1/0,e=C+(E[h]??0);if(l>=C&&l<e){h++;const A=Math.min(e,g),I=A-l;n.push((t?"n":"N").repeat(I)),l=A}else{const C=s[h]??1/0,e=t?Math.min(I,C,g):Math.min(A,C,g),B=t?qI:HI;for(;l<e;){const A=3&l,I=o[(l>>>2)-Q];0===A&&l+4<=e?(n.push(B[I]),l+=4):(n.push(B[I][A]),l+=1)}}}return n.join("")}getOverlappingBlockStartIdx(A,I,g){const t=I.length;if(0===t)return 0;let C=0,e=t;for(;C<e;){const t=C+e>>>1;I[t]+g[t]<=A?C=t+1:e=t}return C}}const _I=new Map,WI=new Map;function PI(A,I){let g=_I.get(A);if(!g){const t=function(A,I){let g=WI.get(A);if(!g){g=new AA(A,I?{fetch:I}:void 0),WI.set(A,g)}return g}(A,I);g=new TI({filehandle:t}),_I.set(A,g)}return g}function OI(A,I=0){const g=A[I]|A[I+1]<<8|A[I+2]<<16|A[I+3]<<24;return 4294967296*((A[I+4]|A[I+5]<<8|A[I+6]<<16|A[I+7]<<24)>>>0)+(g>>>0)}function VI(A,I,g){const t=I[1],C=g?g[1]:1/0;return t<=A&&C>A?0:t<A?-1:1}class ZI{filehandle;index;constructor({filehandle:A}){this.filehandle=A}_getIndex(){return this.index||(this.index=this._readIndex().catch(A=>{throw this.index=void 0,A})),this.index}async _readIndex(){const A=OI(await this.filehandle.read(8,0));if(!A)return[[0,0]];const I=new Array(A+1);I[0]=[0,0];const g=16*A;if(g>Number.MAX_SAFE_INTEGER)throw new TypeError("integer overflow");const t=await this.filehandle.read(g,8);for(let g=0;g<A;g+=1){const A=OI(t,16*g),C=OI(t,16*g+8);I[g+1]=[A,C]}return I}async getLastBlock(){return(await this._getIndex()).at(-1)}async getRelevantBlocksForRead(A,I){const g=I+A;if(0===A)return[];const t=await this._getIndex(),C=[];let e=0,B=t.length-1,i=Math.floor(t.length/2),Q=VI(I,t[i],t[i+1]);for(;0!==Q;)Q>0?B=i-1:Q<0&&(e=i+1),i=Math.ceil((B-e)/2)+e,Q=VI(I,t[i],t[i+1]);C.push(t[i]);let o=i+1;for(;o<t.length&&(C.push(t[o]),!(t[o][1]>=g));o+=1);return C[C.length-1][1]<g&&C.push([]),C}}function XI(A,I){return Object.prototype.hasOwnProperty.call(A,I)}function zI(A,I){return A.length===I?A:A.subarray?A.subarray(0,I):(A.length=I,A)}var jI={arraySet:function(A,I,g,t,C){if(I.subarray&&A.subarray)A.set(I.subarray(g,g+t),C);else for(var e=0;e<t;e++)A[C+e]=I[g+e]},flattenChunks:function(A){var I,g,t,C,e,B;for(t=0,I=0,g=A.length;I<g;I++)t+=A[I].length;for(B=new Uint8Array(t),C=0,I=0,g=A.length;I<g;I++)e=A[I],B.set(e,C),C+=e.length;return B},Buf8:function(A){return new Uint8Array(A)},Buf16:function(A){return new Uint16Array(A)},Buf32:function(A){return new Int32Array(A)}},$I={arraySet:function(A,I,g,t,C){for(var e=0;e<t;e++)A[C+e]=I[g+e]},flattenChunks:function(A){return[].concat.apply([],A)},Buf8:function(A){return new Array(A)},Buf16:function(A){return new Array(A)},Buf32:function(A){return new Array(A)}};let Ag=()=>{const A="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;return Ag=()=>A,A},Ig=(A,I,g,t,C)=>(Ig=Ag()?jI.arraySet:$I.arraySet,Ig(A,I,g,t,C)),gg=A=>(gg=Ag()?jI.flattenChunks:$I.flattenChunks,gg(A)),tg=A=>(tg=Ag()?jI.Buf8:$I.Buf8,tg(A)),Cg=A=>(Cg=Ag()?jI.Buf16:$I.Buf16,Cg(A)),eg=A=>(eg=Ag()?jI.Buf32:$I.Buf32,eg(A)),Bg=function(){let A=!0;try{String.fromCharCode.apply(null,[0])}catch(I){A=!1}return Bg=()=>A,A},ig=function(){let A=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(I){A=!1}return ig=()=>A,A},Qg=function(A){for(var I=tg(256),g=0;g<256;g++)I[g]=g>=252?6:g>=248?5:g>=240?4:g>=224?3:g>=192?2:1;return I[254]=I[254]=1,Qg=A=>I[A],I[A]};function og(A){var I,g,t,C,e,B=A.length,i=0;for(C=0;C<B;C++)55296==(64512&(g=A.charCodeAt(C)))&&C+1<B&&56320==(64512&(t=A.charCodeAt(C+1)))&&(g=65536+(g-55296<<10)+(t-56320),C++),i+=g<128?1:g<2048?2:g<65536?3:4;for(I=new Uint8Array(i),e=0,C=0;e<i;C++)55296==(64512&(g=A.charCodeAt(C)))&&C+1<B&&56320==(64512&(t=A.charCodeAt(C+1)))&&(g=65536+(g-55296<<10)+(t-56320),C++),g<128?I[e++]=g:g<2048?(I[e++]=192|g>>>6,I[e++]=128|63&g):g<65536?(I[e++]=224|g>>>12,I[e++]=128|g>>>6&63,I[e++]=128|63&g):(I[e++]=240|g>>>18,I[e++]=128|g>>>12&63,I[e++]=128|g>>>6&63,I[e++]=128|63&g);return I}function sg(A,I){var g,t,C,e,B=I||A.length,i=new Array(2*B);for(t=0,g=0;g<B;)if((C=A[g++])<128)i[t++]=C;else if((e=Qg(C))>4)i[t++]=65533,g+=e-1;else{for(C&=2===e?31:3===e?15:7;e>1&&g<B;)C=C<<6|63&A[g++],e--;e>1?i[t++]=65533:C<65536?i[t++]=C:(C-=65536,i[t++]=55296|C>>10&1023,i[t++]=56320|1023&C)}return function(A,I){if(I<65534&&(A.subarray&&ig()||!A.subarray&&Bg()))return String.fromCharCode.apply(null,zI(A,I));for(var g="",t=0;t<I;t++)g+=String.fromCharCode(A[t]);return g}(i,t)}function Eg(A,I){var g;for((I=I||A.length)>A.length&&(I=A.length),g=I-1;g>=0&&128==(192&A[g]);)g--;return g<0||0===g?I:g+Qg(A[g])>I?g:I}function ag(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}function rg(A,I,g,t){for(var C=65535&A,e=A>>>16&65535,B=0;0!==g;){g-=B=g>2e3?2e3:g;do{e=e+(C=C+I[t++]|0)|0}while(--B);C%=65521,e%=65521}return C|e<<16}let ng=function(){const A=function(){for(var A,I=[],g=0;g<256;g++){A=g;for(var t=0;t<8;t++)A=1&A?3988292384^A>>>1:A>>>1;I[g]=A}return I}();return ng=()=>A,A};function hg(A,I,g,t){var C=ng(),e=t+g;A^=-1;for(var B=t;B<e;B++)A=A>>>8^C[255&(A^I[B])];return-1^A}function cg(A,I){var g,t,C,e,B,i,Q,o,s,E,a,r,n,h,c,l,d,D,u,y,w,f,S,k,G;g=A.state,t=A.next_in,k=A.input,C=t+(A.avail_in-5),e=A.next_out,G=A.output,B=e-(I-A.avail_out),i=e+(A.avail_out-257),Q=g.dmax,o=g.wsize,s=g.whave,E=g.wnext,a=g.window,r=g.hold,n=g.bits,h=g.lencode,c=g.distcode,l=(1<<g.lenbits)-1,d=(1<<g.distbits)-1;A:do{n<15&&(r+=k[t++]<<n,n+=8,r+=k[t++]<<n,n+=8),D=h[r&l];I:for(;;){if(r>>>=u=D>>>24,n-=u,0===(u=D>>>16&255))G[e++]=65535&D;else{if(!(16&u)){if(64&u){if(32&u){g.mode=12;break A}A.msg="invalid literal/length code",g.mode=30;break A}D=h[(65535&D)+(r&(1<<u)-1)];continue I}for(y=65535&D,(u&=15)&&(n<u&&(r+=k[t++]<<n,n+=8),y+=r&(1<<u)-1,r>>>=u,n-=u),n<15&&(r+=k[t++]<<n,n+=8,r+=k[t++]<<n,n+=8),D=c[r&d];;){if(r>>>=u=D>>>24,n-=u,16&(u=D>>>16&255)){if(w=65535&D,n<(u&=15)&&(r+=k[t++]<<n,(n+=8)<u&&(r+=k[t++]<<n,n+=8)),(w+=r&(1<<u)-1)>Q){A.msg="invalid distance too far back",g.mode=30;break A}if(r>>>=u,n-=u,w>(u=e-B)){if((u=w-u)>s&&g.sane){A.msg="invalid distance too far back",g.mode=30;break A}if(f=0,S=a,0===E){if(f+=o-u,u<y){y-=u;do{G[e++]=a[f++]}while(--u);f=e-w,S=G}}else if(E<u){if(f+=o+E-u,(u-=E)<y){y-=u;do{G[e++]=a[f++]}while(--u);if(f=0,E<y){y-=u=E;do{G[e++]=a[f++]}while(--u);f=e-w,S=G}}}else if(f+=E-u,u<y){y-=u;do{G[e++]=a[f++]}while(--u);f=e-w,S=G}for(;y>2;)G[e++]=S[f++],G[e++]=S[f++],G[e++]=S[f++],y-=3;y&&(G[e++]=S[f++],y>1&&(G[e++]=S[f++]))}else{f=e-w;do{G[e++]=G[f++],G[e++]=G[f++],G[e++]=G[f++],y-=3}while(y>2);y&&(G[e++]=G[f++],y>1&&(G[e++]=G[f++]))}break}if(64&u){A.msg="invalid distance code",g.mode=30;break A}D=c[(65535&D)+(r&(1<<u)-1)]}}break}}while(t<C&&e<i);t-=y=n>>3,r&=(1<<(n-=y<<3))-1,A.next_in=t,A.next_out=e,A.avail_in=t<C?C-t+5:5-(t-C),A.avail_out=e<i?i-e+257:257-(e-i),g.hold=r,g.bits=n}var lg=15,dg=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],Dg=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],ug=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],yg=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];function wg(A,I,g,t,C,e,B,i){var Q,o,s,E,a,r,n,h,c,l=i.bits,d=0,D=0,u=0,y=0,w=0,f=0,S=0,k=0,G=0,F=0,N=null,m=0,R=Cg(16),p=Cg(16),U=null,M=0;for(d=0;d<=lg;d++)R[d]=0;for(D=0;D<t;D++)R[I[g+D]]++;for(w=l,y=lg;y>=1&&0===R[y];y--);if(w>y&&(w=y),0===y)return C[e++]=20971520,C[e++]=20971520,i.bits=1,0;for(u=1;u<y&&0===R[u];u++);for(w<u&&(w=u),k=1,d=1;d<=lg;d++)if(k<<=1,(k-=R[d])<0)return-1;if(k>0&&(0===A||1!==y))return-1;for(p[1]=0,d=1;d<lg;d++)p[d+1]=p[d]+R[d];for(D=0;D<t;D++)0!==I[g+D]&&(B[p[I[g+D]]++]=D);if(0===A?(N=U=B,r=19):1===A?(N=dg,m-=257,U=Dg,M-=257,r=256):(N=ug,U=yg,r=-1),F=0,D=0,d=u,a=e,f=w,S=0,s=-1,E=(G=1<<w)-1,1===A&&G>852||2===A&&G>592)return 1;for(;;){n=d-S,B[D]<r?(h=0,c=B[D]):B[D]>r?(h=U[M+B[D]],c=N[m+B[D]]):(h=96,c=0),Q=1<<d-S,u=o=1<<f;do{C[a+(F>>S)+(o-=Q)]=n<<24|h<<16|c}while(0!==o);for(Q=1<<d-1;F&Q;)Q>>=1;if(0!==Q?(F&=Q-1,F+=Q):F=0,D++,0===--R[d]){if(d===y)break;d=I[g+B[D]]}if(d>w&&(F&E)!==s){for(0===S&&(S=w),a+=u,k=1<<(f=d-S);f+S<y&&!((k-=R[f+S])<=0);)f++,k<<=1;if(G+=1<<f,1===A&&G>852||2===A&&G>592)return 1;C[s=F&E]=w<<24|f<<16|a-e}}return 0!==F&&(C[a+F]=d-S<<24|64<<16),i.bits=w,0}var fg=-2,Sg=12,kg=30;function Gg(A){return(A>>>24&255)+(A>>>8&65280)+((65280&A)<<8)+((255&A)<<24)}function Fg(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=Cg(320),this.work=Cg(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function Ng(A){var I;return A&&A.state?((I=A.state).wsize=0,I.whave=0,I.wnext=0,function(A){var I;return A&&A.state?(I=A.state,A.total_in=A.total_out=I.total=0,A.msg="",I.wrap&&(A.adler=1&I.wrap),I.mode=1,I.last=0,I.havedict=0,I.dmax=32768,I.head=null,I.hold=0,I.bits=0,I.lencode=I.lendyn=eg(852),I.distcode=I.distdyn=eg(592),I.sane=1,I.back=-1,0):fg}(A)):fg}function mg(A,I){var g,t;return A?(t=new Fg,A.state=t,t.window=null,g=function(A,I){var g,t;return A&&A.state?(t=A.state,I<0?(g=0,I=-I):(g=1+(I>>4),I<48&&(I&=15)),I&&(I<8||I>15)?fg:(null!==t.window&&t.wbits!==I&&(t.window=null),t.wrap=g,t.wbits=I,Ng(A))):fg}(A,I),0!==g&&(A.state=null),g):fg}var Rg,pg,Ug=!0;function Mg(A){if(Ug){var I;for(Rg=eg(512),pg=eg(32),I=0;I<144;)A.lens[I++]=8;for(;I<256;)A.lens[I++]=9;for(;I<280;)A.lens[I++]=7;for(;I<288;)A.lens[I++]=8;for(wg(1,A.lens,0,288,Rg,0,A.work,{bits:9}),I=0;I<32;)A.lens[I++]=5;wg(2,A.lens,0,32,pg,0,A.work,{bits:5}),Ug=!1}A.lencode=Rg,A.lenbits=9,A.distcode=pg,A.distbits=5}function Lg(A,I,g,t){var C,e=A.state;return null===e.window&&(e.wsize=1<<e.wbits,e.wnext=0,e.whave=0,e.window=tg(e.wsize)),t>=e.wsize?(Ig(e.window,I,g-e.wsize,e.wsize,0),e.wnext=0,e.whave=e.wsize):((C=e.wsize-e.wnext)>t&&(C=t),Ig(e.window,I,g-t,C,e.wnext),(t-=C)?(Ig(e.window,I,g-t,t,0),e.wnext=t,e.whave=e.wsize):(e.wnext+=C,e.wnext===e.wsize&&(e.wnext=0),e.whave<e.wsize&&(e.whave+=C))),0}function Jg(A,I){var g,t,C,e,B,i,Q,o,s,E,a,r,n,h,c,l,d,D,u,y,w,f,S,k,G=0,F=tg(4),N=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!A||!A.state||!A.output||!A.input&&0!==A.avail_in)return fg;(g=A.state).mode===Sg&&(g.mode=13),B=A.next_out,C=A.output,Q=A.avail_out,e=A.next_in,t=A.input,i=A.avail_in,o=g.hold,s=g.bits,E=i,a=Q,f=0;A:for(;;)switch(g.mode){case 1:if(0===g.wrap){g.mode=13;break}for(;s<16;){if(0===i)break A;i--,o+=t[e++]<<s,s+=8}if(2&g.wrap&&35615===o){g.check=0,F[0]=255&o,F[1]=o>>>8&255,g.check=hg(g.check,F,2,0),o=0,s=0,g.mode=2;break}if(g.flags=0,g.head&&(g.head.done=!1),!(1&g.wrap)||(((255&o)<<8)+(o>>8))%31){A.msg="incorrect header check",g.mode=kg;break}if(8!=(15&o)){A.msg="unknown compression method",g.mode=kg;break}if(s-=4,w=8+(15&(o>>>=4)),0===g.wbits)g.wbits=w;else if(w>g.wbits){A.msg="invalid window size",g.mode=kg;break}g.dmax=1<<w,A.adler=g.check=1,g.mode=512&o?10:Sg,o=0,s=0;break;case 2:for(;s<16;){if(0===i)break A;i--,o+=t[e++]<<s,s+=8}if(g.flags=o,8!=(255&g.flags)){A.msg="unknown compression method",g.mode=kg;break}if(57344&g.flags){A.msg="unknown header flags set",g.mode=kg;break}g.head&&(g.head.text=o>>8&1),512&g.flags&&(F[0]=255&o,F[1]=o>>>8&255,g.check=hg(g.check,F,2,0)),o=0,s=0,g.mode=3;case 3:for(;s<32;){if(0===i)break A;i--,o+=t[e++]<<s,s+=8}g.head&&(g.head.time=o),512&g.flags&&(F[0]=255&o,F[1]=o>>>8&255,F[2]=o>>>16&255,F[3]=o>>>24&255,g.check=hg(g.check,F,4,0)),o=0,s=0,g.mode=4;case 4:for(;s<16;){if(0===i)break A;i--,o+=t[e++]<<s,s+=8}g.head&&(g.head.xflags=255&o,g.head.os=o>>8),512&g.flags&&(F[0]=255&o,F[1]=o>>>8&255,g.check=hg(g.check,F,2,0)),o=0,s=0,g.mode=5;case 5:if(1024&g.flags){for(;s<16;){if(0===i)break A;i--,o+=t[e++]<<s,s+=8}g.length=o,g.head&&(g.head.extra_len=o),512&g.flags&&(F[0]=255&o,F[1]=o>>>8&255,g.check=hg(g.check,F,2,0)),o=0,s=0}else g.head&&(g.head.extra=null);g.mode=6;case 6:if(1024&g.flags&&((r=g.length)>i&&(r=i),r&&(g.head&&(w=g.head.extra_len-g.length,g.head.extra||(g.head.extra=new Array(g.head.extra_len)),Ig(g.head.extra,t,e,r,w)),512&g.flags&&(g.check=hg(g.check,t,r,e)),i-=r,e+=r,g.length-=r),g.length))break A;g.length=0,g.mode=7;case 7:if(2048&g.flags){if(0===i)break A;r=0;do{w=t[e+r++],g.head&&w&&g.length<65536&&(g.head.name+=String.fromCharCode(w))}while(w&&r<i);if(512&g.flags&&(g.check=hg(g.check,t,r,e)),i-=r,e+=r,w)break A}else g.head&&(g.head.name=null);g.length=0,g.mode=8;case 8:if(4096&g.flags){if(0===i)break A;r=0;do{w=t[e+r++],g.head&&w&&g.length<65536&&(g.head.comment+=String.fromCharCode(w))}while(w&&r<i);if(512&g.flags&&(g.check=hg(g.check,t,r,e)),i-=r,e+=r,w)break A}else g.head&&(g.head.comment=null);g.mode=9;case 9:if(512&g.flags){for(;s<16;){if(0===i)break A;i--,o+=t[e++]<<s,s+=8}if(o!==(65535&g.check)){A.msg="header crc mismatch",g.mode=kg;break}o=0,s=0}g.head&&(g.head.hcrc=g.flags>>9&1,g.head.done=!0),A.adler=g.check=0,g.mode=Sg;break;case 10:for(;s<32;){if(0===i)break A;i--,o+=t[e++]<<s,s+=8}A.adler=g.check=Gg(o),o=0,s=0,g.mode=11;case 11:if(0===g.havedict)return A.next_out=B,A.avail_out=Q,A.next_in=e,A.avail_in=i,g.hold=o,g.bits=s,2;A.adler=g.check=1,g.mode=Sg;case Sg:if(5===I||6===I)break A;case 13:if(g.last){o>>>=7&s,s-=7&s,g.mode=27;break}for(;s<3;){if(0===i)break A;i--,o+=t[e++]<<s,s+=8}switch(g.last=1&o,s-=1,3&(o>>>=1)){case 0:g.mode=14;break;case 1:if(Mg(g),g.mode=20,6===I){o>>>=2,s-=2;break A}break;case 2:g.mode=17;break;case 3:A.msg="invalid block type",g.mode=kg}o>>>=2,s-=2;break;case 14:for(o>>>=7&s,s-=7&s;s<32;){if(0===i)break A;i--,o+=t[e++]<<s,s+=8}if((65535&o)!=(o>>>16^65535)){A.msg="invalid stored block lengths",g.mode=kg;break}if(g.length=65535&o,o=0,s=0,g.mode=15,6===I)break A;case 15:g.mode=16;case 16:if(r=g.length){if(r>i&&(r=i),r>Q&&(r=Q),0===r)break A;Ig(C,t,e,r,B),i-=r,e+=r,Q-=r,B+=r,g.length-=r;break}g.mode=Sg;break;case 17:for(;s<14;){if(0===i)break A;i--,o+=t[e++]<<s,s+=8}if(g.nlen=257+(31&o),o>>>=5,s-=5,g.ndist=1+(31&o),o>>>=5,s-=5,g.ncode=4+(15&o),o>>>=4,s-=4,g.nlen>286||g.ndist>30){A.msg="too many length or distance symbols",g.mode=kg;break}g.have=0,g.mode=18;case 18:for(;g.have<g.ncode;){for(;s<3;){if(0===i)break A;i--,o+=t[e++]<<s,s+=8}g.lens[N[g.have++]]=7&o,o>>>=3,s-=3}for(;g.have<19;)g.lens[N[g.have++]]=0;if(g.lencode=g.lendyn,g.lenbits=7,S={bits:g.lenbits},f=wg(0,g.lens,0,19,g.lencode,0,g.work,S),g.lenbits=S.bits,f){A.msg="invalid code lengths set",g.mode=kg;break}g.have=0,g.mode=19;case 19:for(;g.have<g.nlen+g.ndist;){for(;l=(G=g.lencode[o&(1<<g.lenbits)-1])>>>16&255,d=65535&G,!((c=G>>>24)<=s);){if(0===i)break A;i--,o+=t[e++]<<s,s+=8}if(d<16)o>>>=c,s-=c,g.lens[g.have++]=d;else{if(16===d){for(k=c+2;s<k;){if(0===i)break A;i--,o+=t[e++]<<s,s+=8}if(o>>>=c,s-=c,0===g.have){A.msg="invalid bit length repeat",g.mode=kg;break}w=g.lens[g.have-1],r=3+(3&o),o>>>=2,s-=2}else if(17===d){for(k=c+3;s<k;){if(0===i)break A;i--,o+=t[e++]<<s,s+=8}s-=c,w=0,r=3+(7&(o>>>=c)),o>>>=3,s-=3}else{for(k=c+7;s<k;){if(0===i)break A;i--,o+=t[e++]<<s,s+=8}s-=c,w=0,r=11+(127&(o>>>=c)),o>>>=7,s-=7}if(g.have+r>g.nlen+g.ndist){A.msg="invalid bit length repeat",g.mode=kg;break}for(;r--;)g.lens[g.have++]=w}}if(g.mode===kg)break;if(0===g.lens[256]){A.msg="invalid code -- missing end-of-block",g.mode=kg;break}if(g.lenbits=9,S={bits:g.lenbits},f=wg(1,g.lens,0,g.nlen,g.lencode,0,g.work,S),g.lenbits=S.bits,f){A.msg="invalid literal/lengths set",g.mode=kg;break}if(g.distbits=6,g.distcode=g.distdyn,S={bits:g.distbits},f=wg(2,g.lens,g.nlen,g.ndist,g.distcode,0,g.work,S),g.distbits=S.bits,f){A.msg="invalid distances set",g.mode=kg;break}if(g.mode=20,6===I)break A;case 20:g.mode=21;case 21:if(i>=6&&Q>=258){A.next_out=B,A.avail_out=Q,A.next_in=e,A.avail_in=i,g.hold=o,g.bits=s,cg(A,a),B=A.next_out,C=A.output,Q=A.avail_out,e=A.next_in,t=A.input,i=A.avail_in,o=g.hold,s=g.bits,g.mode===Sg&&(g.back=-1);break}for(g.back=0;l=(G=g.lencode[o&(1<<g.lenbits)-1])>>>16&255,d=65535&G,!((c=G>>>24)<=s);){if(0===i)break A;i--,o+=t[e++]<<s,s+=8}if(l&&!(240&l)){for(D=c,u=l,y=d;l=(G=g.lencode[y+((o&(1<<D+u)-1)>>D)])>>>16&255,d=65535&G,!(D+(c=G>>>24)<=s);){if(0===i)break A;i--,o+=t[e++]<<s,s+=8}o>>>=D,s-=D,g.back+=D}if(o>>>=c,s-=c,g.back+=c,g.length=d,0===l){g.mode=26;break}if(32&l){g.back=-1,g.mode=Sg;break}if(64&l){A.msg="invalid literal/length code",g.mode=kg;break}g.extra=15&l,g.mode=22;case 22:if(g.extra){for(k=g.extra;s<k;){if(0===i)break A;i--,o+=t[e++]<<s,s+=8}g.length+=o&(1<<g.extra)-1,o>>>=g.extra,s-=g.extra,g.back+=g.extra}g.was=g.length,g.mode=23;case 23:for(;l=(G=g.distcode[o&(1<<g.distbits)-1])>>>16&255,d=65535&G,!((c=G>>>24)<=s);){if(0===i)break A;i--,o+=t[e++]<<s,s+=8}if(!(240&l)){for(D=c,u=l,y=d;l=(G=g.distcode[y+((o&(1<<D+u)-1)>>D)])>>>16&255,d=65535&G,!(D+(c=G>>>24)<=s);){if(0===i)break A;i--,o+=t[e++]<<s,s+=8}o>>>=D,s-=D,g.back+=D}if(o>>>=c,s-=c,g.back+=c,64&l){A.msg="invalid distance code",g.mode=kg;break}g.offset=d,g.extra=15&l,g.mode=24;case 24:if(g.extra){for(k=g.extra;s<k;){if(0===i)break A;i--,o+=t[e++]<<s,s+=8}g.offset+=o&(1<<g.extra)-1,o>>>=g.extra,s-=g.extra,g.back+=g.extra}if(g.offset>g.dmax){A.msg="invalid distance too far back",g.mode=kg;break}g.mode=25;case 25:if(0===Q)break A;if(r=a-Q,g.offset>r){if((r=g.offset-r)>g.whave&&g.sane){A.msg="invalid distance too far back",g.mode=kg;break}r>g.wnext?(r-=g.wnext,n=g.wsize-r):n=g.wnext-r,r>g.length&&(r=g.length),h=g.window}else h=C,n=B-g.offset,r=g.length;r>Q&&(r=Q),Q-=r,g.length-=r;do{C[B++]=h[n++]}while(--r);0===g.length&&(g.mode=21);break;case 26:if(0===Q)break A;C[B++]=g.length,Q--,g.mode=21;break;case 27:if(g.wrap){for(;s<32;){if(0===i)break A;i--,o|=t[e++]<<s,s+=8}if(a-=Q,A.total_out+=a,g.total+=a,a&&(A.adler=g.check=g.flags?hg(g.check,C,a,B-a):rg(g.check,C,a,B-a)),a=Q,(g.flags?o:Gg(o))!==g.check){A.msg="incorrect data check",g.mode=kg;break}o=0,s=0}g.mode=28;case 28:if(g.wrap&&g.flags){for(;s<32;){if(0===i)break A;i--,o+=t[e++]<<s,s+=8}if(o!==(4294967295&g.total)){A.msg="incorrect length check",g.mode=kg;break}o=0,s=0}g.mode=29;case 29:f=1;break A;case kg:f=-3;break A;case 31:return-4;default:return fg}return A.next_out=B,A.avail_out=Q,A.next_in=e,A.avail_in=i,g.hold=o,g.bits=s,(g.wsize||a!==A.avail_out&&g.mode<kg&&(g.mode<27||4!==I))&&Lg(A,A.output,A.next_out,a-A.avail_out),E-=A.avail_in,a-=A.avail_out,A.total_in+=E,A.total_out+=a,g.total+=a,g.wrap&&a&&(A.adler=g.check=g.flags?hg(g.check,C,a,A.next_out-a):rg(g.check,C,a,A.next_out-a)),A.data_type=g.bits+(g.last?64:0)+(g.mode===Sg?128:0)+(20===g.mode||15===g.mode?256:0),(0===E&&0===a||4===I)&&0===f&&(f=-5),f}function Kg(A,I){var g,t=I.length;return A&&A.state?0!==(g=A.state).wrap&&11!==g.mode?fg:11===g.mode&&rg(1,I,t,0)!==g.check?-3:Lg(A,I,t,t)?(g.mode=31,-4):(g.havedict=1,0):fg}var Yg={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"};function vg(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}var bg=Object.prototype.toString;class xg{constructor(A){if(!(this instanceof xg))return new xg(A);this.options=function(A){for(var I=Array.prototype.slice.call(arguments,1);I.length;){var g=I.shift();if(g){if("object"!=typeof g)throw new TypeError(g+"must be non-object");for(var t in g)XI(g,t)&&(A[t]=g[t])}}return A}({chunkSize:16384,windowBits:0,to:""},A||{});var I=this.options;I.raw&&I.windowBits>=0&&I.windowBits<16&&(I.windowBits=-I.windowBits,0===I.windowBits&&(I.windowBits=-15)),!(I.windowBits>=0&&I.windowBits<16)||A&&A.windowBits||(I.windowBits+=32),I.windowBits>15&&I.windowBits<48&&(15&I.windowBits||(I.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new vg,this.strm.avail_out=0;var g,t,C,e=mg(this.strm,I.windowBits);if(0!==e)throw new Error(Yg[e]);if(this.header=new ag,g=this.strm,t=this.header,g&&g.state&&2&(C=g.state).wrap&&(C.head=t,t.done=!1),I.dictionary&&("string"==typeof I.dictionary?I.dictionary=og(I.dictionary):"[object ArrayBuffer]"===bg.call(I.dictionary)&&(I.dictionary=new Uint8Array(I.dictionary)),I.raw&&0!==(e=Kg(this.strm,I.dictionary))))throw new Error(Yg[e])}push(A,I){var g,t,C,e,B,i,Q=this.strm,o=this.options.chunkSize,s=this.options.dictionary,E=!1;if(this.ended)return!1;t=I===~~I?I:!0===I?4:0,"string"==typeof A?Q.input=function(A){for(var I=new Uint8Array(A.length),g=0,t=I.length;g<t;g++)I[g]=A.charCodeAt(g);return I}(A):"[object ArrayBuffer]"===bg.call(A)?Q.input=new Uint8Array(A):Q.input=A,Q.next_in=0,Q.avail_in=Q.input.length;do{if(0===Q.avail_out&&(Q.output=tg(o),Q.next_out=0,Q.avail_out=o),2===(g=Jg(Q,0))&&s&&(i="string"==typeof s?og(s):"[object ArrayBuffer]"===bg.call(s)?new Uint8Array(s):s,g=Kg(this.strm,i)),-5===g&&!0===E&&(g=0,E=!1),1!==g&&0!==g)return this.onEnd(g),this.ended=!0,!1;Q.next_out&&(0!==Q.avail_out&&1!==g&&(0!==Q.avail_in||4!==t&&2!==t)||("string"===this.options.to?(C=Eg(Q.output,Q.next_out),e=Q.next_out-C,B=sg(Q.output,C),Q.next_out=e,Q.avail_out=o-e,e&&Ig(Q.output,Q.output,C,e,0),this.onData(B)):this.onData(zI(Q.output,Q.next_out)))),0===Q.avail_in&&0===Q.avail_out&&(E=!0)}while((Q.avail_in>0||0===Q.avail_out)&&1!==g);return 1===g&&(t=4),4===t?(g=function(A){if(!A||!A.state)return fg;var I=A.state;return I.window&&(I.window=null),A.state=null,0}(this.strm),this.onEnd(g),this.ended=!0,0===g):2!==t||(this.onEnd(0),Q.avail_out=0,!0)}onData(A){this.chunks.push(A)}onEnd(A){0===A&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=gg(this.chunks)),this.chunks=[],this.err=A,this.msg=this.strm.msg}}var Hg=function(A,I){var g=new xg(I);if(g.push(A,!0),g.err)throw g.msg||Yg[g.err];return g.result},qg={d:(A,I)=>{for(var g in I)qg.o(I,g)&&!qg.o(A,g)&&Object.defineProperty(A,g,{enumerable:!0,get:I[g]})},o:(A,I)=>Object.prototype.hasOwnProperty.call(A,I),r:A=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(A,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(A,"__esModule",{value:!0})}},Tg={};qg.r(Tg),qg.d(Tg,{ChunkSliceResult:()=>_g,DecompressResult:()=>Wg,__wbg_Error_8c4e43fe74559d73:()=>Zg,__wbg___wbindgen_throw_be289d5034ed271b:()=>Xg,__wbg_set_wasm:()=>ct,decompress_all:()=>Pg,decompress_block:()=>Og,decompress_chunk_slice:()=>Vg});class _g{static __wrap(A){A>>>=0;const I=Object.create(_g.prototype);return I.__wbg_ptr=A,zg.register(I,I.__wbg_ptr,I),I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,zg.unregister(this),A}free(){const A=this.__destroy_into_raw();nt.__wbg_chunksliceresult_free(A,0)}get buffer(){try{const t=nt.__wbindgen_add_to_stack_pointer(-16);nt.chunksliceresult_buffer(t,this.__wbg_ptr);var A=gt().getInt32(t+0,!0),I=gt().getInt32(t+4,!0),g=At(A,I).slice();return nt.__wbindgen_export(A,1*I,1),g}finally{nt.__wbindgen_add_to_stack_pointer(16)}}get cpositions(){try{const t=nt.__wbindgen_add_to_stack_pointer(-16);nt.chunksliceresult_cpositions(t,this.__wbg_ptr);var A=gt().getInt32(t+0,!0),I=gt().getInt32(t+4,!0),g=$g(A,I).slice();return nt.__wbindgen_export(A,8*I,8),g}finally{nt.__wbindgen_add_to_stack_pointer(16)}}get dpositions(){try{const t=nt.__wbindgen_add_to_stack_pointer(-16);nt.chunksliceresult_dpositions(t,this.__wbg_ptr);var A=gt().getInt32(t+0,!0),I=gt().getInt32(t+4,!0),g=$g(A,I).slice();return nt.__wbindgen_export(A,8*I,8),g}finally{nt.__wbindgen_add_to_stack_pointer(16)}}}Symbol.dispose&&(_g.prototype[Symbol.dispose]=_g.prototype.free);class Wg{static __wrap(A){A>>>=0;const I=Object.create(Wg.prototype);return I.__wbg_ptr=A,jg.register(I,I.__wbg_ptr,I),I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,jg.unregister(this),A}free(){const A=this.__destroy_into_raw();nt.__wbg_decompressresult_free(A,0)}get bytes_read(){return nt.decompressresult_bytes_read(this.__wbg_ptr)>>>0}get data(){try{const t=nt.__wbindgen_add_to_stack_pointer(-16);nt.decompressresult_data(t,this.__wbg_ptr);var A=gt().getInt32(t+0,!0),I=gt().getInt32(t+4,!0),g=At(A,I).slice();return nt.__wbindgen_export(A,1*I,1),g}finally{nt.__wbindgen_add_to_stack_pointer(16)}}}function Pg(A){try{const e=nt.__wbindgen_add_to_stack_pointer(-16),B=ot(A,nt.__wbindgen_export2),i=ht;nt.decompress_all(e,B,i);var I=gt().getInt32(e+0,!0),g=gt().getInt32(e+4,!0),t=gt().getInt32(e+8,!0);if(gt().getInt32(e+12,!0))throw st(t);var C=At(I,g).slice();return nt.__wbindgen_export(I,1*g,1),C}finally{nt.__wbindgen_add_to_stack_pointer(16)}}function Og(A){try{const t=nt.__wbindgen_add_to_stack_pointer(-16),C=ot(A,nt.__wbindgen_export2),e=ht;nt.decompress_block(t,C,e);var I=gt().getInt32(t+0,!0),g=gt().getInt32(t+4,!0);if(gt().getInt32(t+8,!0))throw st(g);return Wg.__wrap(I)}finally{nt.__wbindgen_add_to_stack_pointer(16)}}function Vg(A,I,g,t,C){try{const i=nt.__wbindgen_add_to_stack_pointer(-16),Q=ot(A,nt.__wbindgen_export2),o=ht;nt.decompress_chunk_slice(i,Q,o,I,g,t,C);var e=gt().getInt32(i+0,!0),B=gt().getInt32(i+4,!0);if(gt().getInt32(i+8,!0))throw st(B);return _g.__wrap(e)}finally{nt.__wbindgen_add_to_stack_pointer(16)}}function Zg(A,I){return function(A){Qt===it.length&&it.push(it.length+1);const I=Qt;return Qt=it[I],it[I]=A,I}(Error(Ct(A,I)))}function Xg(A,I){throw new Error(Ct(A,I))}Symbol.dispose&&(Wg.prototype[Symbol.dispose]=Wg.prototype.free);const zg="undefined"==typeof FinalizationRegistry?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(A=>nt.__wbg_chunksliceresult_free(A>>>0,1)),jg="undefined"==typeof FinalizationRegistry?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(A=>nt.__wbg_decompressresult_free(A>>>0,1));function $g(A,I){return A>>>=0,function(){null!==tt&&0!==tt.byteLength||(tt=new Float64Array(nt.memory.buffer));return tt}().subarray(A/8,A/8+I)}function At(A,I){return A>>>=0,Bt().subarray(A/1,A/1+I)}let It=null;function gt(){return(null===It||!0===It.buffer.detached||void 0===It.buffer.detached&&It.buffer!==nt.memory.buffer)&&(It=new DataView(nt.memory.buffer)),It}let tt=null;function Ct(A,I){return function(A,I){rt+=I,rt>=at&&(Et=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}),Et.decode(),rt=I);return Et.decode(Bt().subarray(A,A+I))}(A>>>=0,I)}let et=null;function Bt(){return null!==et&&0!==et.byteLength||(et=new Uint8Array(nt.memory.buffer)),et}let it=new Array(128).fill(void 0);it.push(void 0,null,!0,!1);let Qt=it.length;function ot(A,I){const g=I(1*A.length,1)>>>0;return Bt().set(A,g/1),ht=A.length,g}function st(A){const I=function(A){return it[A]}(A);return function(A){A<132||(it[A]=Qt,Qt=A)}(A),I}let Et=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});Et.decode();const at=2146435072;let rt=0;let nt,ht=0;function ct(A){nt=A}let lt=null,dt=null;async function Dt(){return lt||(dt||(dt=(async()=>{const A=await fetch("data:application/wasm;base64,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AAsgASADNgIEIAEgAjYCACABQfiSwAAgACgCBCAAKAIIIgAtAAggAC0ACRAeAAuLAQEBfyMAQRBrIgMkAAJAIAIgAWoiASACTw0AQQBBABBNAAsgA0EEaiAAKAIAIgIgACgCBCABIAJBAXQiAiABIAJLGyICQQggAkEISxsiAkEBQQEQIAJAIAMoAgRBAUcNACADKAIIIAMoAgwQTQALIAMoAgghASAAIAI2AgAgACABNgIEIANBEGokAAuHAQEBfyMAQSBrIgIkAAJAAkAgACgCAEGAgICAeEYNACABIAAoAgQgACgCCBBSIQAMAQsgAkEIakEIaiAAKAIMKAIAIgBBCGopAgA3AwAgAkEIakEQaiAAQRBqKQIANwMAIAIgACkCADcDCCABKAIAIAEoAgQgAkEIahALIQALIAJBIGokACAAC3wBAX8CQCAAKAIAIgAoAgwiAUUNACAAKAIQIAFBARBWCwJAIAAoAhgiAUUNACAAKAIcIAFBA3RBCBBWCwJAIAAoAiQiAUUNACAAKAIoIAFBA3RBCBBWCwJAIABBf0YNACAAIAAoAgRBf2oiATYCBCABDQAgAEEwQQQQVgsLhAEBAn8jAEEQayIGJABBACEHIAZBADYCDAJAAkACQAJAAkAgASgCACACIAMgBCAFIAZBDGoQUA4EAQIAAwALQZCFwABB7ABB/IXAABA/AAsgACAGKAIMNgIEDAILIABBADoAAUEBIQcMAQtBASEHIABBAToAAQsgACAHOgAAIAZBEGokAAtrAQN/IwBBEGsiASQAIAFBBGogACgCACICIAAoAgQgAkEBdCICQQQgAkEESxsiAkEIQQgQIAJAIAEoAgRBAUcNACABKAIIIAEoAgwQTQALIAEoAgghAyAAIAI2AgAgACADNgIEIAFBEGokAAtoAQF/IwBBMGsiAiQAAkAQaEH/AXENACACQTBqJAAPCyACIAE2AiQgAkECNgIQIAJBpJLAADYCDCACQgE3AhggAkEErUIghiACQSRqrYQ3AyggAiACQShqNgIUIAJBDGpBtJLAABBAAAtoAgF/AX4jAEEwayIDJAAgAyABNgIEIAMgADYCACADQQI2AgwgA0GcmMAANgIIIANCAjcCFCADQQStQiCGIgQgA62ENwMoIAMgBCADQQRqrYQ3AyAgAyADQSBqNgIQIANBCGogAhBA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ABWAAAAWgAAAF4AAABiAAAAZgAAAGoAAABuAAAAcgAAAHYAAAB6AAAAfgAAAIIAAACGAAAAigAAAI4AAACSAAAAlgAAAJoAAACeAAAAogAAAKYAAACqAAAArgAAALIAAAC2AAAAugAAAL4AAADCAAAAxgAAAMoAAADOAAAA0gAAANYAAADaAAAA3gAAAOIAAADmAAAA6gAAAO4AAADyAAAA9gAAAPoAAAD+AAABAgAAAQYAAAEKAAABDgAAARIAAAEWAAABGgAAAR4AAAEiAAABJgAAASoAAAEuAAABMgAAATYAAAE6AAABPgAAAUIAAAFGAAABSgAAAU4AAAFSAAABVgAAAVoAAAFeAAABYgAAAWYAAAFqAAABbgAAAXIAAAF2AAABegAAAX4AAAGCAAABhgAAAYoAAAGOAAABkgAAAZYAAAGaAAABngAAAaIAAAGmAAABqgAAAa4AAAGyAAABtgAAAboAAAG+AAABwgAAAcYAAAHKAAABzgAAAdIAAAHWAAAB2gAAAd4AAAHiAAAB5gAAAeoAAAHuAAAB8gAAAfYAAAH6AAAB/gAAAgIAAAIGAAACCgAAAg4AAAISAAACFgAAAhoAAAIeAAACIgAAAiYAAAIqAAACLgAAAjIAAAI2AAACOgAAAj4AAAJCAAACRgAAAkoAAAJOAAACUgAAAlYAAAJaAAACXgAAAmIAAAJmAAACagAAAm4AAAJyAAACdgAAAnoAAAJ+AAACggAAAoYAAAKKAAACjgAAApIAAAKWAAACmgAAAp4AAAKiAAACpgAAAqoAAAKuAAACsgAAArYAAAK6AAACvgAAAsIAAALGAAACygAAAs4AAALSAAAC1gAAAtoAAALeAAAC4gAAAuYAAALqAAAC7gAAAvIAAAL2AAAC+gAAAv4AAAMCAAADBgAAAwoAAAMOAAADEgAAAxYAAAMaAAADHgAAAyIAAAMmAAADKgAAAy4AAAMyAAADNgAAAzoAAAM+AAADQgAAA0YAAANKAAADTgAAA1IAAANWAAADWgAAA14AAANiAAADZgAAA2oAAANuAAADcgAAA3YAAAN6AAADfgAAA4IAAAOGAAADigAAA44AAAOSAAADlgAAA5oAAAOeAAADogAAA6YAAAOqAAADrgAAA7IAAAO2AAADugAAA74AAAPCAAADxgAAA8oAAAPOAAAD0gAAA9YAAAPaAAAD3gAAA+IAAAPmAAAD6gAAA+4AAAPyAAAD9gAAA/oAAAP+AAKAAAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAQALAAEADQABAA8AAQARAAIAEwACABcAAgAbAAIAHwADACMAAwArAAMAMwADADsABABDAAQAUwAEAGMABABzAAUAgwAFAKMABQDDAAUA4wAAAAIBAAACAQAAAgF8/YsyV+ZX+QLfRL/jSOevbV3L1ixQ62N4QaZXcRuLuW1lbW9yeSBhbGxvY2F0aW9uIG9mICBieXRlcyBmYWlsZWQAAAAJEAAVAAAAFQkQAA0AAAAGARAAGAAAAGQBAAAJAAAAAAAAAAgAAAAEAAAABQAAAAYAAAAHAAAACAAAAAkAAAAMAAAABAAAAAoAAAALAAAADAAAAAAAAAAIAAAABAAAAA0AAAAOAAAADwAAABAAAAARAAAAEAAAAAQAAAASAAAAEwAAABQAAAAIAAAAAAAAAAgAAAAEAAAAFQAAAGFzc2VydGlvbiBmYWlsZWQ6IHBzaXplID49IHNpemUgKyBtaW5fb3ZlcmhlYWQAANsAEAAqAAAAsQQAAAkAAABhc3NlcnRpb24gZmFpbGVkOiBwc2l6ZSA8PSBzaXplICsgbWF4X292ZXJoZWFkAADbABAAKgAAALcEAAANAAAACQAAAAwAAAAEAAAAFgAAAGNhcGFjaXR5IG92ZXJmbG93AAAAUAoQABEAAAC6ABAAIAAAABwAAAAFAAAAAQAAAAAAAAAwMDAxMDIwMzA0MDUwNjA3MDgwOTEwMTExMjEzMTQxNTE2MTcxODE5MjAyMTIyMjMyNDI1MjYyNzI4MjkzMDMxMzIzMzM0MzUzNjM3MzgzOTQwNDE0MjQzNDQ0NTQ2NDc0ODQ5NTA1MTUyNTM1NDU1NTY1NzU4NTk2MDYxNjI2MzY0NjU2NjY3Njg2OTcwNzE3MjczNzQ3NTc2Nzc3ODc5ODA4MTgyODM4NDg1ODY4Nzg4ODk5MDkxOTI5Mzk0OTU5Njk3OTg5OXJhbmdlIGVuZCBpbmRleCAgb3V0IG9mIHJhbmdlIGZvciBzbGljZSBvZiBsZW5ndGggAABMCxAAEAAAAFwLEAAiAAAAc2xpY2UgaW5kZXggc3RhcnRzIGF0ICBidXQgZW5kcyBhdCAAkAsQABYAAACmCxAADQAAAHJhbmdlIHN0YXJ0IGluZGV4IAAAxAsQABIAAABcCxAAIgAAAGluZGV4IG91dCBvZiBib3VuZHM6IHRoZSBsZW4gaXMgIGJ1dCB0aGUgaW5kZXggaXMgAADoCxAAIAAAAAgMEAASAAAAUmVmQ2VsbCBhbHJlYWR5IGJvcnJvd2VkAEHEmMAACwQEAAAAACkEbmFtZQEiAVgfX193YmluZGdlbl9hZGRfdG9fc3RhY2tfcG9pbnRlcgA8CXByb2R1Y2VycwEMcHJvY2Vzc2VkLWJ5AgZ3YWxydXMGMC4yNC40DHdhc20tYmluZGdlbgcwLjIuMTA4"),I=await A.arrayBuffer(),{instance:g}=await WebAssembly.instantiate(I,{"./bgzf_wasm_bg.js":Tg});return lt=g.exports,ct(lt),lt})()),dt)}async function ut(A){try{return await async function(A){return await Dt(),Pg(A)}(A)}catch(g){if(/invalid bgzf header/.exec(`${g}`)){if((I=A).length>=2&&31===I[0]&&139===I[1])return async function(A){if("undefined"!=typeof DecompressionStream){const I=new DecompressionStream("gzip"),g=I.writable.getWriter(),t=g.write(A).then(()=>g.close()),C=[],e=I.readable.getReader();for(;;){const{done:A,value:I}=await e.read();if(A)break;C.push(I)}await t;const B=C.reduce((A,I)=>A+I.length,0),i=new Uint8Array(B);let Q=0;for(const A of C)i.set(A,Q),Q+=A.length;return i}return Hg(A,void 0)}(A);throw new Error("problem decompressing block: not a valid bgzf or gzip block")}if(/invalid gzip header/.exec(`${g}`))throw new Error("problem decompressing block: incorrect gzip header check");throw g}var I}async function yt(A,I,g){try{const{minv:g,maxv:t}=I,C=await async function(A,I,g,t,C){await Dt();const e=Vg(A,I,g,t,C),B=e.buffer,i=[...e.cpositions],Q=[...e.dpositions];return e.free(),{buffer:B,cpositions:i,dpositions:Q}}(A,g.blockPosition,g.dataPosition,t.blockPosition,t.dataPosition);return{buffer:C.buffer,cpositions:C.cpositions,dpositions:C.dpositions}}catch(A){if(/invalid gzip header/.exec(`${A}`))throw new Error("problem decompressing block: incorrect gzip header check");throw A}}class wt{filehandle;gzi;constructor({filehandle:A,gziFilehandle:I}){this.filehandle=A,this.gzi=new ZI({filehandle:I})}async _readAndUncompressBlock(A,I){let g=I;g||(g=(await this.filehandle.stat()).size);const t=g-A;return ut(await this.filehandle.read(t,A))}async read(A,I){const g=await this.gzi.getRelevantBlocksForRead(A,I),t=[];for(let C=0;C<g.length-1;C+=1){const e=await this._readAndUncompressBlock(g[C][0],g[C+1][0]),[,B]=g[C],i=B>=I?0:I-B,Q=Math.min(I+A,B+e.length)-B;i>=0&&i<e.length&&t.push(e.subarray(i,Q))}return function(A,I){const g=new Uint8Array(I??function(A){let I=0;for(const g of A)I+=g.length;return I}(A));let t=0;for(const I of A)g.set(I,t),t+=I.length;return g}(t)}}function ft(A,I,g,t){return A+I*Math.floor(t/g)+t%g}class St{constructor({fasta:A,fai:I,path:g,faiPath:t}){if(A)this.fasta=A;else{if(!g)throw new Error("Need to pass filehandle for fasta or path to localfile");this.fasta=new IA(g)}if(I)this.fai=I;else if(t)this.fai=new IA(t);else{if(!g)throw new Error("Need to pass filehandle for fai or path to localfile");this.fai=new IA(`${g}.fai`)}}async getIndexes(A){return this.indexes??(this.indexes=async function(A,I={}){const g=new TextDecoder("utf8").decode(await A.readFile(I)),t=new Map;for(const A of g.split("\n")){const I=A.replace(/\r$/,"").trim();if(!I)continue;const[g,C,e,B,i]=I.split("\t");if(g.startsWith(">"))throw new Error("found > in sequence name, might have supplied FASTA file for the FASTA index");const Q=+C,o=+B;if(Q>0&&0===o)throw new Error(`Invalid FAI index for "${g}": LINEBASES is 0 for a non-empty sequence. The FASTA file may be missing a trailing newline — try regenerating the .fai index.`);t.set(g,{length:Q,offset:+e,lineLength:o,lineBytes:+i})}return t}(this.fai,A).catch(A=>{throw this.indexes=void 0,A})),this.indexes}async getSequenceNames(A){return[...(await this.getIndexes(A)).keys()]}async getSequenceSizes(A){const I=await this.getIndexes(A);return Object.fromEntries([...I.entries()].map(([A,I])=>[A,I.length]))}async getSequenceSize(A,I){return(await this.getIndexes(I)).get(A)?.length}async hasReferenceSequence(A,I){return(await this.getIndexes(I)).has(A)}async getResiduesByName(A,I,g,t){const C=(await this.getIndexes(t)).get(A);if(void 0!==C)return this.fetchFromIndex(C,I,g,t)}async getSequence(A,I,g,t){return this.getResiduesByName(A,I,g,t)}async fetchFromIndex(A,I=0,g,t){if(I<0)throw new TypeError("regionStart cannot be less than 0");const C=Math.min(g??A.length,A.length);if(I>=C)return"";const e=ft(A.offset,A.lineBytes,A.lineLength,I),B=ft(A.offset,A.lineBytes,A.lineLength,C)-e,i=new TextDecoder("utf8").decode(await this.fasta.read(B,e,t)).replace(/\s+/g,"");if(/[^\x20-\x7e]/.test(i.slice(0,1e3)))throw new Error("Non-ASCII characters detected in sequence. The file may be gzip compressed. Use BgzipIndexedFasta for bgzip files, or decompress the file.");return i}}class kt extends St{constructor({fasta:A,path:I,fai:g,faiPath:t,gzi:C,gziPath:e}){super({fasta:A,path:I,fai:g,faiPath:t}),A&&C?this.fasta=new wt({filehandle:A,gziFilehandle:C}):I&&e&&(this.fasta=new wt({filehandle:new IA(I),gziFilehandle:new IA(e)}))}}const Gt=new Map;function Ft(A,I,g,t){const C=null!=I?I:A+".fai";return async(I,e)=>{var B;const i=function(A,I,g,t){const C=A;let e=Gt.get(C);if(!e){const B=t?{fetch:t}:void 0;e=g?new kt({fasta:new AA(A,B),fai:new AA(I,B),gzi:new AA(g,B)}):new St({fasta:new AA(A,B),fai:new AA(I,B)}),Gt.set(C,e)}return e}(A,C,g,t);try{const A=await i.getSequence(I.chr,I.start,I.end,{signal:e});return null!=A?A:""}catch(I){throw I instanceof Error&&("AbortError"===I.name||(null===(B=I.message)||void 0===B?void 0:B.includes("aborted")))&&Gt.delete(A),I}}}const Nt={hg38:"Human (GRCh38/hg38)"};class mt{constructor(A,I,g){var t;this._maneSource=null,this._rsdbSource=null,this.id=A,this.name=null==g?void 0:g.name,this.nameSet=null==g?void 0:g.nameSet,this.chromSizes=I,this.chromosomeNames=JI(I),this.cumulativeOffsets=function(A){const I=JI(A),g={};let t=0;for(const C of I)g[C]=Math.floor(t),t+=A[C];return{offsets:g,totalLength:Math.floor(t),chromosomeNames:I}}(I),this.sequence=null==g?void 0:g.sequence,this._chromosomes=new Map;const C=Object.keys(I),e=new Set(this.chromosomeNames);let B=0;for(const A of this.chromosomeNames)this._chromosomes.set(A,{name:A,bpLength:I[A],order:B++});for(const A of C)e.has(A)||this._chromosomes.set(A,{name:A,bpLength:I[A],order:B++});this._chromAlias=null!==(t=null==g?void 0:g.chromAlias)&&void 0!==t?t:new j(C,A),this._cytobands=null==g?void 0:g.cytobands,this._maneBbURL=null==g?void 0:g.maneBbURL,this._rsdbURL=null==g?void 0:g.rsdbURL,this._fetchImpl=null==g?void 0:g.fetchImpl}getChromosome(A){return this._chromosomes.get(A)}getChromosomeLength(A){return this.chromSizes[A]}getChromosomeName(A){var I;return null!==(I=this._chromAlias.getChromosomeName(A))&&void 0!==I?I:A}getAliasRecord(A){return this._chromAlias.getAliasRecord(A)}getCytobands(A){var I;return null===(I=this._cytobands)||void 0===I?void 0:I.get(A)}async getManeTranscript(A){if(!this._maneSource&&this._maneBbURL&&(this._maneSource=new UI(this._maneBbURL,this._fetchImpl)),this._maneSource){const I=await this._maneSource.search(A);if(I)return I}if(!this._rsdbSource&&this._rsdbURL&&(this._rsdbSource=new UI(this._rsdbURL,this._fetchImpl)),this._rsdbSource){const I=await this._rsdbSource.search(A);if(I)return I}return null}async getManeTranscriptAt(A,I){if(!this._maneSource&&this._maneBbURL&&(this._maneSource=new UI(this._maneBbURL,this._fetchImpl)),this._maneSource)try{const g=await this._maneSource.getFeatures(A,I,I+1);for(const A of g)if(A.start<=I&&A.end>=I)return A}catch(A){console.error("Error fetching MANE transcript",A)}return null}}const Rt=function(A){var I,g;const t=null!==(I=A.id)&&void 0!==I?I:"custom",C=null!==(g=A.name)&&void 0!==g?g:Nt[t],e=function(A){var I,g;const t=[A.sequenceProvider&&"sequenceProvider",A.twoBitURL&&"twoBitURL",A.fastaURL&&"fastaURL",A.ucscGenome&&"ucscGenome"].filter(Boolean);if(t.length>1)throw new Error(`GenomeConfig has multiple sequence sources: ${t.join(", ")}. Set exactly one of: sequenceProvider, twoBitURL, fastaURL, or ucscGenome.`);if(A.sequenceProvider)return A.sequenceProvider;if(A.twoBitURL){const g=(C=A.twoBitURL,e=A.fetchImpl,async A=>{var I;const g=PI(C,e);try{const I=await g.getSequence(A.chr,A.start,A.end);return null!=I?I:""}catch(A){throw A instanceof Error&&("AbortError"===A.name||(null===(I=A.message)||void 0===I?void 0:I.includes("aborted")))&&(_I.delete(C),WI.delete(C)),A}}),t=null!==(I=A.ucscGenome)&&void 0!==I?I:A.id;if(t){return vI(function(A,I){return async(g,t)=>{try{return await A(g,t)}catch(A){if(null==t?void 0:t.aborted)throw A;console.warn("[loom] Primary sequence source failed, trying fallback:",A.message);try{return await I(g,t)}catch(I){throw A}}}}(g,(A,I)=>bI(A,{genome:t},I)))}return vI(g)}var C,e;if(A.fastaURL)return vI(Ft(A.fastaURL,A.indexURL,A.compressedIndexURL,A.fetchImpl));const B=null!==(g=A.ucscGenome)&&void 0!==g?g:A.id;if(B)return vI((A,I)=>bI(A,{genome:B},I));return}(A);return new mt(t,A.chromSizes,{name:C,sequence:e,cytobands:A.cytobands,nameSet:A.nameSet})}({id:"hg38",twoBitURL:"https://hgdownload.soe.ucsc.edu/goldenPath/hg38/bigZips/hg38.2bit",chromSizes:{chr1:248956422,chr2:242193529,chr3:198295559,chr4:190214555,chr5:181538259,chr6:170805979,chr7:159345973,chr8:145138636,chr9:138394717,chr10:133797422,chr11:135086622,chr12:133275309,chr13:114364328,chr14:107043718,chr15:101991189,chr16:90338345,chr17:83257441,chr18:80373285,chr19:58617616,chr20:64444167,chr21:46709983,chr22:50818468,chrX:156040895,chrY:57227415,chrM:16569,chr11_KI270721v1_random:100316,chr14_GL000009v2_random:201709,chr14_GL000225v1_random:211173,chr14_KI270722v1_random:194050,chr14_GL000194v1_random:191469,chr14_KI270723v1_random:38115,chr14_KI270724v1_random:39555,chr14_KI270725v1_random:172810,chr14_KI270726v1_random:43739,chr15_KI270727v1_random:448248,chr16_KI270728v1_random:1872759,chr17_GL000205v2_random:185591,chr17_KI270729v1_random:280839,chr17_KI270730v1_random:112551,chr1_KI270706v1_random:175055,chr1_KI270707v1_random:32032,chr1_KI270708v1_random:127682,chr1_KI270709v1_random:66860,chr1_KI270710v1_random:40176,chr1_KI270711v1_random:42210,chr1_KI270712v1_random:176043,chr1_KI270713v1_random:40745,chr1_KI270714v1_random:41717,chr22_KI270731v1_random:150754,chr22_KI270732v1_random:41543,chr22_KI270733v1_random:179772,chr22_KI270734v1_random:165050,chr22_KI270735v1_random:42811,chr22_KI270736v1_random:181920,chr22_KI270737v1_random:103838,chr22_KI270738v1_random:99375,chr22_KI270739v1_random:73985,chr2_KI270715v1_random:161471,chr2_KI270716v1_random:153799,chr3_GL000221v1_random:155397,chr4_GL000008v2_random:209709,chr5_GL000208v1_random:92689,chr9_KI270717v1_random:40062,chr9_KI270718v1_random:38054,chr9_KI270719v1_random:176845,chr9_KI270720v1_random:39050,chr1_KI270762v1_alt:354444,chr1_KI270766v1_alt:256271,chr1_KI270760v1_alt:109528,chr1_KI270765v1_alt:185285,chr1_GL383518v1_alt:182439,chr1_GL383519v1_alt:110268,chr1_GL383520v2_alt:366580,chr1_KI270764v1_alt:50258,chr1_KI270763v1_alt:911658,chr1_KI270759v1_alt:425601,chr1_KI270761v1_alt:165834,chr2_KI270770v1_alt:136240,chr2_KI270773v1_alt:70887,chr2_KI270774v1_alt:223625,chr2_KI270769v1_alt:120616,chr2_GL383521v1_alt:143390,chr2_KI270772v1_alt:133041,chr2_KI270775v1_alt:138019,chr2_KI270771v1_alt:110395,chr2_KI270768v1_alt:110099,chr2_GL582966v2_alt:96131,chr2_GL383522v1_alt:123821,chr2_KI270776v1_alt:174166,chr2_KI270767v1_alt:161578,chr3_JH636055v2_alt:173151,chr3_KI270783v1_alt:109187,chr3_KI270780v1_alt:224108,chr3_GL383526v1_alt:180671,chr3_KI270777v1_alt:173649,chr3_KI270778v1_alt:248252,chr3_KI270781v1_alt:113034,chr3_KI270779v1_alt:205312,chr3_KI270782v1_alt:162429,chr3_KI270784v1_alt:184404,chr4_KI270790v1_alt:220246,chr4_GL383528v1_alt:376187,chr4_KI270787v1_alt:111943,chr4_GL000257v2_alt:586476,chr4_KI270788v1_alt:158965,chr4_GL383527v1_alt:164536,chr4_KI270785v1_alt:119912,chr4_KI270789v1_alt:205944,chr4_KI270786v1_alt:244096,chr5_KI270793v1_alt:126136,chr5_KI270792v1_alt:179043,chr5_KI270791v1_alt:195710,chr5_GL383532v1_alt:82728,chr5_GL949742v1_alt:226852,chr5_KI270794v1_alt:164558,chr5_GL339449v2_alt:1612928,chr5_GL383530v1_alt:101241,chr5_KI270796v1_alt:172708,chr5_GL383531v1_alt:173459,chr5_KI270795v1_alt:131892,chr6_GL000250v2_alt:4672374,chr6_KI270800v1_alt:175808,chr6_KI270799v1_alt:152148,chr6_GL383533v1_alt:124736,chr6_KI270801v1_alt:870480,chr6_KI270802v1_alt:75005,chr6_KB021644v2_alt:185823,chr6_KI270797v1_alt:197536,chr6_KI270798v1_alt:271782,chr7_KI270804v1_alt:157952,chr7_KI270809v1_alt:209586,chr7_KI270806v1_alt:158166,chr7_GL383534v2_alt:119183,chr7_KI270803v1_alt:1111570,chr7_KI270808v1_alt:271455,chr7_KI270807v1_alt:126434,chr7_KI270805v1_alt:209988,chr8_KI270818v1_alt:145606,chr8_KI270812v1_alt:282736,chr8_KI270811v1_alt:292436,chr8_KI270821v1_alt:985506,chr8_KI270813v1_alt:300230,chr8_KI270822v1_alt:624492,chr8_KI270814v1_alt:141812,chr8_KI270810v1_alt:374415,chr8_KI270819v1_alt:133535,chr8_KI270820v1_alt:36640,chr8_KI270817v1_alt:158983,chr8_KI270816v1_alt:305841,chr8_KI270815v1_alt:132244,chr9_GL383539v1_alt:162988,chr9_GL383540v1_alt:71551,chr9_GL383541v1_alt:171286,chr9_GL383542v1_alt:60032,chr9_KI270823v1_alt:439082,chr10_GL383545v1_alt:179254,chr10_KI270824v1_alt:181496,chr10_GL383546v1_alt:309802,chr10_KI270825v1_alt:188315,chr11_KI270832v1_alt:210133,chr11_KI270830v1_alt:177092,chr11_KI270831v1_alt:296895,chr11_KI270829v1_alt:204059,chr11_GL383547v1_alt:154407,chr11_JH159136v1_alt:200998,chr11_JH159137v1_alt:191409,chr11_KI270827v1_alt:67707,chr11_KI270826v1_alt:186169,chr12_GL877875v1_alt:167313,chr12_GL877876v1_alt:408271,chr12_KI270837v1_alt:40090,chr12_GL383549v1_alt:120804,chr12_KI270835v1_alt:238139,chr12_GL383550v2_alt:153178,chr12_GL383552v1_alt:138655,chr12_GL383553v2_alt:152874,chr12_KI270834v1_alt:119498,chr12_GL383551v1_alt:184319,chr12_KI270833v1_alt:76061,chr12_KI270836v1_alt:56134,chr13_KI270840v1_alt:191684,chr13_KI270839v1_alt:180306,chr13_KI270843v1_alt:103832,chr13_KI270841v1_alt:169134,chr13_KI270838v1_alt:306913,chr13_KI270842v1_alt:37287,chr14_KI270844v1_alt:322166,chr14_KI270847v1_alt:1511111,chr14_KI270845v1_alt:180703,chr14_KI270846v1_alt:1351393,chr15_KI270852v1_alt:478999,chr15_KI270851v1_alt:263054,chr15_KI270848v1_alt:327382,chr15_GL383554v1_alt:296527,chr15_KI270849v1_alt:244917,chr15_GL383555v2_alt:388773,chr15_KI270850v1_alt:430880,chr16_KI270854v1_alt:134193,chr16_KI270856v1_alt:63982,chr16_KI270855v1_alt:232857,chr16_KI270853v1_alt:2659700,chr16_GL383556v1_alt:192462,chr16_GL383557v1_alt:89672,chr17_GL383563v3_alt:375691,chr17_KI270862v1_alt:391357,chr17_KI270861v1_alt:196688,chr17_KI270857v1_alt:2877074,chr17_JH159146v1_alt:278131,chr17_JH159147v1_alt:70345,chr17_GL383564v2_alt:133151,chr17_GL000258v2_alt:1821992,chr17_GL383565v1_alt:223995,chr17_KI270858v1_alt:235827,chr17_KI270859v1_alt:108763,chr17_GL383566v1_alt:90219,chr17_KI270860v1_alt:178921,chr18_KI270864v1_alt:111737,chr18_GL383567v1_alt:289831,chr18_GL383570v1_alt:164789,chr18_GL383571v1_alt:198278,chr18_GL383568v1_alt:104552,chr18_GL383569v1_alt:167950,chr18_GL383572v1_alt:159547,chr18_KI270863v1_alt:167999,chr19_KI270868v1_alt:61734,chr19_KI270865v1_alt:52969,chr19_GL383573v1_alt:385657,chr19_GL383575v2_alt:170222,chr19_GL383576v1_alt:188024,chr19_GL383574v1_alt:155864,chr19_KI270866v1_alt:43156,chr19_KI270867v1_alt:233762,chr19_GL949746v1_alt:987716,chr20_GL383577v2_alt:128386,chr20_KI270869v1_alt:118774,chr20_KI270871v1_alt:58661,chr20_KI270870v1_alt:183433,chr21_GL383578v2_alt:63917,chr21_KI270874v1_alt:166743,chr21_KI270873v1_alt:143900,chr21_GL383579v2_alt:201197,chr21_GL383580v2_alt:74653,chr21_GL383581v2_alt:116689,chr21_KI270872v1_alt:82692,chr22_KI270875v1_alt:259914,chr22_KI270878v1_alt:186262,chr22_KI270879v1_alt:304135,chr22_KI270876v1_alt:263666,chr22_KI270877v1_alt:101331,chr22_GL383583v2_alt:96924,chr22_GL383582v2_alt:162811,chrX_KI270880v1_alt:284869,chrX_KI270881v1_alt:144206,chr19_KI270882v1_alt:248807,chr19_KI270883v1_alt:170399,chr19_KI270884v1_alt:157053,chr19_KI270885v1_alt:171027,chr19_KI270886v1_alt:204239,chr19_KI270887v1_alt:209512,chr19_KI270888v1_alt:155532,chr19_KI270889v1_alt:170698,chr19_KI270890v1_alt:184499,chr19_KI270891v1_alt:170680,chr1_KI270892v1_alt:162212,chr2_KI270894v1_alt:214158,chr2_KI270893v1_alt:161218,chr3_KI270895v1_alt:162896,chr4_KI270896v1_alt:378547,chr5_KI270897v1_alt:1144418,chr5_KI270898v1_alt:130957,chr6_GL000251v2_alt:4795265,chr7_KI270899v1_alt:190869,chr8_KI270901v1_alt:136959,chr8_KI270900v1_alt:318687,chr11_KI270902v1_alt:106711,chr11_KI270903v1_alt:214625,chr12_KI270904v1_alt:572349,chr15_KI270906v1_alt:196384,chr15_KI270905v1_alt:5161414,chr17_KI270907v1_alt:137721,chr17_KI270910v1_alt:157099,chr17_KI270909v1_alt:325800,chr17_JH159148v1_alt:88070,chr17_KI270908v1_alt:1423190,chr18_KI270912v1_alt:174061,chr18_KI270911v1_alt:157710,chr19_GL949747v2_alt:729520,chr22_KB663609v1_alt:74013,chrX_KI270913v1_alt:274009,chr19_KI270914v1_alt:205194,chr19_KI270915v1_alt:170665,chr19_KI270916v1_alt:184516,chr19_KI270917v1_alt:190932,chr19_KI270918v1_alt:123111,chr19_KI270919v1_alt:170701,chr19_KI270920v1_alt:198005,chr19_KI270921v1_alt:282224,chr19_KI270922v1_alt:187935,chr19_KI270923v1_alt:189352,chr3_KI270924v1_alt:166540,chr4_KI270925v1_alt:555799,chr6_GL000252v2_alt:4604811,chr8_KI270926v1_alt:229282,chr11_KI270927v1_alt:218612,chr19_GL949748v2_alt:1064304,chr22_KI270928v1_alt:176103,chr19_KI270929v1_alt:186203,chr19_KI270930v1_alt:200773,chr19_KI270931v1_alt:170148,chr19_KI270932v1_alt:215732,chr19_KI270933v1_alt:170537,chr19_GL000209v2_alt:177381,chr3_KI270934v1_alt:163458,chr6_GL000253v2_alt:4677643,chr19_GL949749v2_alt:1091841,chr3_KI270935v1_alt:197351,chr6_GL000254v2_alt:4827813,chr19_GL949750v2_alt:1066390,chr3_KI270936v1_alt:164170,chr6_GL000255v2_alt:4606388,chr19_GL949751v2_alt:1002683,chr3_KI270937v1_alt:165607,chr6_GL000256v2_alt:4929269,chr19_GL949752v1_alt:987100,chr6_KI270758v1_alt:76752,chr19_GL949753v2_alt:796479,chr19_KI270938v1_alt:1066800,chrUn_KI270302v1:2274,chrUn_KI270304v1:2165,chrUn_KI270303v1:1942,chrUn_KI270305v1:1472,chrUn_KI270322v1:21476,chrUn_KI270320v1:4416,chrUn_KI270310v1:1201,chrUn_KI270316v1:1444,chrUn_KI270315v1:2276,chrUn_KI270312v1:998,chrUn_KI270311v1:12399,chrUn_KI270317v1:37690,chrUn_KI270412v1:1179,chrUn_KI270411v1:2646,chrUn_KI270414v1:2489,chrUn_KI270419v1:1029,chrUn_KI270418v1:2145,chrUn_KI270420v1:2321,chrUn_KI270424v1:2140,chrUn_KI270417v1:2043,chrUn_KI270422v1:1445,chrUn_KI270423v1:981,chrUn_KI270425v1:1884,chrUn_KI270429v1:1361,chrUn_KI270442v1:392061,chrUn_KI270466v1:1233,chrUn_KI270465v1:1774,chrUn_KI270467v1:3920,chrUn_KI270435v1:92983,chrUn_KI270438v1:112505,chrUn_KI270468v1:4055,chrUn_KI270510v1:2415,chrUn_KI270509v1:2318,chrUn_KI270518v1:2186,chrUn_KI270508v1:1951,chrUn_KI270516v1:1300,chrUn_KI270512v1:22689,chrUn_KI270519v1:138126,chrUn_KI270522v1:5674,chrUn_KI270511v1:8127,chrUn_KI270515v1:6361,chrUn_KI270507v1:5353,chrUn_KI270517v1:3253,chrUn_KI270529v1:1899,chrUn_KI270528v1:2983,chrUn_KI270530v1:2168,chrUn_KI270539v1:993,chrUn_KI270538v1:91309,chrUn_KI270544v1:1202,chrUn_KI270548v1:1599,chrUn_KI270583v1:1400,chrUn_KI270587v1:2969,chrUn_KI270580v1:1553,chrUn_KI270581v1:7046,chrUn_KI270579v1:31033,chrUn_KI270589v1:44474,chrUn_KI270590v1:4685,chrUn_KI270584v1:4513,chrUn_KI270582v1:6504,chrUn_KI270588v1:6158,chrUn_KI270593v1:3041,chrUn_KI270591v1:5796,chrUn_KI270330v1:1652,chrUn_KI270329v1:1040,chrUn_KI270334v1:1368,chrUn_KI270333v1:2699,chrUn_KI270335v1:1048,chrUn_KI270338v1:1428,chrUn_KI270340v1:1428,chrUn_KI270336v1:1026,chrUn_KI270337v1:1121,chrUn_KI270363v1:1803,chrUn_KI270364v1:2855,chrUn_KI270362v1:3530,chrUn_KI270366v1:8320,chrUn_KI270378v1:1048,chrUn_KI270379v1:1045,chrUn_KI270389v1:1298,chrUn_KI270390v1:2387,chrUn_KI270387v1:1537,chrUn_KI270395v1:1143,chrUn_KI270396v1:1880,chrUn_KI270388v1:1216,chrUn_KI270394v1:970,chrUn_KI270386v1:1788,chrUn_KI270391v1:1484,chrUn_KI270383v1:1750,chrUn_KI270393v1:1308,chrUn_KI270384v1:1658,chrUn_KI270392v1:971,chrUn_KI270381v1:1930,chrUn_KI270385v1:990,chrUn_KI270382v1:4215,chrUn_KI270376v1:1136,chrUn_KI270374v1:2656,chrUn_KI270372v1:1650,chrUn_KI270373v1:1451,chrUn_KI270375v1:2378,chrUn_KI270371v1:2805,chrUn_KI270448v1:7992,chrUn_KI270521v1:7642,chrUn_GL000195v1:182896,chrUn_GL000219v1:179198,chrUn_GL000220v1:161802,chrUn_GL000224v1:179693,chrUn_KI270741v1:157432,chrUn_GL000226v1:15008,chrUn_GL000213v1:164239,chrUn_KI270743v1:210658,chrUn_KI270744v1:168472,chrUn_KI270745v1:41891,chrUn_KI270746v1:66486,chrUn_KI270747v1:198735,chrUn_KI270748v1:93321,chrUn_KI270749v1:158759,chrUn_KI270750v1:148850,chrUn_KI270751v1:150742,chrUn_KI270752v1:27745,chrUn_KI270753v1:62944,chrUn_KI270754v1:40191,chrUn_KI270755v1:36723,chrUn_KI270756v1:79590,chrUn_KI270757v1:71251,chrUn_GL000214v1:137718,chrUn_KI270742v1:186739,chrUn_GL000216v2:176608,chrUn_GL000218v1:161147,chrY_KI270740v1_random:37240}}),pt=new Set(["narrowpeak","broadpeak","regionpeak","peaks","bedgraph","wig","gff3","gff","gtf","fusionjuncspan","refflat","seg","aed","bed","bedmethyl","vcf","bb","bigbed","biginteract","biggenepred","bignarrowpeak","bw","bigwig","bam","tdf","refgene","genepred","genepredext","bedpe","bp","snp","rmsk","cram","gwas","maf","mut","hiccups","fasta","fa","fna","pytor","hic","qtl","gtx"]);function Ut(A){if(!A)return;let I=A.toLowerCase();const g=I.indexOf("?");g>0&&(I=I.substring(0,g));const t=I.lastIndexOf("/");if(t>=0&&(I=I.substring(t+1)),I.endsWith("refgene.txt.gz")||I.endsWith("refgene.txt.bgz")||I.endsWith("refgene.txt")||I.endsWith("refgene.sorted.txt.gz")||I.endsWith("refgene.sorted.txt.bgz"))return"refgene";I.endsWith(".gz")&&(I=I.substring(0,I.length-3)),I.endsWith(".bgz")&&(I=I.substring(0,I.length-4)),(I.endsWith(".txt")||I.endsWith(".tab")||I.endsWith(".tsv"))&&(I=I.substring(0,I.length-4));const C=I.lastIndexOf("."),e=C<0?I:I.substring(C+1);switch(e){case"bw":return"bigwig";case"bb":return"bigbed";case"fasta":case"fa":case"fna":return"fasta";case"gtx":return"gtx";default:return pt.has(e)?e:void 0}}const Mt=new Set(["bigwig","bw","bigbed","bb","biginteract","biggenepred","bignarrowpeak","tdf","bam","cram","gtx"]);const Lt=new Set(["bigbed","bb","biginteract","biggenepred","bignarrowpeak"]);const Jt=new Set(["bigwig","bigbed","gtx","ucsc","text","memory"]);function Kt(A){var I;const g=A.url,t=A.type;if(!g){const A=`Cannot resolve data source config: no URL and unknown type "${t}"`;throw P.error(A),new Error(A)}const C=A.format,e=null!=C?C:Ut(g),B={};return A.oauthToken&&(B.oauthToken=A.oauthToken),A.basicAuth&&(B.basicAuth=A.basicAuth),A.headers&&(B.headers=A.headers),A.withCredentials&&(B.withCredentials=A.withCredentials),e&&function(A){return Lt.has(A.toLowerCase())}(e)?(P.warn(`Unknown data source type "${t}", inferred "bigbed" from URL: ${g}`),{type:"bigbed",url:g,...B}):e&&("bigwig"===e||"bw"===e||function(A){return Mt.has(A.toLowerCase())}(e))?(P.warn(`Unknown data source type "${t}", inferred "bigwig" from URL: ${g}`),{type:"bigwig",url:g,windowFunction:A.windowFunction,...B}):"gtx"===e?(P.warn(`Unknown data source type "${t}", inferred "gtx" from URL: ${g}`),{type:"gtx",url:g,experimentId:null!==(I=A.experimentId)&&void 0!==I?I:"",windowFunction:A.windowFunction,...B}):(P.warn(`Unknown data source type "${t}", inferred "text" from URL: ${g}`),{type:"text",url:g,format:null!=C?C:e,indexURL:A.indexURL,indexed:A.indexed,...B})}function Yt(A,I){let g=0,t=A.length;for(;g<t;){const C=g+t>>>1;A[C].end<I?g=C+1:t=C}return g}function vt(A,I){let g=0,t=A.length;for(;g<t;){const C=g+t>>>1;A[C].start<=I?g=C+1:t=C}return g}const bt={chr:"",start:0,end:0};class xt{get canvas(){return this._canvas}get locus(){return this._locus}get height(){return this._height}get config(){return this._config}get viewportWidth(){return this._viewportWidth||this._canvas.clientWidth}get currentPixelShiftOffset(){return this._pixelShift}getBaseCanvasOffset(){return this._overscanMultiplier>1?-this._viewportWidth*((this._overscanMultiplier-1)/2):0}getCanvasViewportOffset(){return this.getBaseCanvasOffset()+this._pixelShift}viewportXToGenomicBp(A){if(0===this._renderBpPerPixel)return 0;const I=this.getCanvasViewportOffset();return this._renderBpStart+(A-I)*this._renderBpPerPixel}genomicBpToViewportX(A){if(0===this._renderBpPerPixel)return 0;const I=this.getCanvasViewportOffset();return(A-this._renderBpStart)/this._renderBpPerPixel+I}constructor(A,I,g,t){this._height=0,this.resizeObserver=null,this.container=null,this._renderSuspended=!1,this._renderPending=!1,this._error=null,this._zoomedOut=!1,this._externalUIEnabled=!1,this._overscanMultiplier=1,this._renderBpStart=0,this._renderBpPerPixel=0,this._renderChr="",this._viewportWidth=0,this._pixelShift=0,this._canvas=A,this._locus=null!=I?I:bt,this._config=g,this.canvasProvider=null!=t?t:p}setLocus(A){this._locus=A,this.render()}setLocusSilent(A){this._locus=A}setConfig(A){var I,g;null===(I=this.onBeforeConfigChange)||void 0===I||I.call(this),this._config={...this._config,...A},this.render(),null===(g=this.onConfigChanged)||void 0===g||g.call(this)}suspendRendering(){this._renderSuspended=!0}discardPendingRender(){this._renderPending=!1}resumeRendering(){this._renderSuspended=!1,this._renderPending&&(this._renderPending=!1,this.render())}setOverscanMultiplier(A){this._overscanMultiplier=Math.max(1,A)}get overscanMultiplier(){return this._overscanMultiplier}computePixelShift(A){if(this._renderChr!==A.chr)return null;if(0===this._renderBpPerPixel)return null;const I=(A.end-A.start)/this._viewportWidth;if(Math.abs(this._renderBpPerPixel-I)>1e-10*this._renderBpPerPixel)return null;return(this._renderBpStart-A.start)/this._renderBpPerPixel+this._viewportWidth*((this._overscanMultiplier-1)/2)}needsRepaint(A){if(this._renderChr!==A.chr)return!0;if(0===this._renderBpPerPixel)return!0;const I=(A.end-A.start)/this._viewportWidth;if(Math.abs(this._renderBpPerPixel-I)>1e-10*this._renderBpPerPixel)return!0;const g=this._renderBpStart+this._renderBpPerPixel*(this._viewportWidth*this._overscanMultiplier);return A.start<this._renderBpStart||A.end>g}applyPixelShift(A){this._pixelShift=A,this._canvas.style.transform=`translate3d(${A}px, 0, 0)`}resetPixelShift(){this.applyPixelShift(0)}setError(A){this._error!==A&&(this._error=A,this.render())}setZoomedOut(A){this._zoomedOut!==A&&(this._zoomedOut=A,this.render())}hitTest(A,I){return[]}onCanvasClick(A,I){return!1}getUIOverlayState(){}onUIOverlayClick(A){return!1}setExternalUIEnabled(A){this._externalUIEnabled=A}get externalUIEnabled(){return this._externalUIEnabled}getFeatureRects(){return[]}getContextMenuItems(A,I){}attachTo(A){this.detach(),this.container=A,A.appendChild(this._canvas),this._canvas.style.display="block",this.resizeObserver=new ResizeObserver(()=>this.render()),this.resizeObserver.observe(A),this.render()}detach(){this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null),this.container&&this._canvas.parentNode===this.container&&this.container.removeChild(this._canvas),this.container=null}render(){var A,I;if(this._renderSuspended)return void(this._renderPending=!0);const g=(null===(A=this.container)||void 0===A?void 0:A.clientWidth)||(null===(I=this._canvas.parentElement)||void 0===I?void 0:I.clientWidth)||this._viewportWidth||this._canvas.clientWidth;if(0===g)return;const t=this._overscanMultiplier,C=g*t;this._viewportWidth=g;const e=this.computeHeight(g);this._height=e;const B=this.canvasProvider.devicePixelRatio;this._canvas.width=C*B,this._canvas.height=e*B,this._canvas.style.width=`${C}px`,this._canvas.style.height=`${e}px`,t>1?(this._canvas.style.position="relative",this._canvas.style.willChange="transform"):(this._canvas.style.position="",this._canvas.style.willChange=""),this._canvas.style.left=`${this.getBaseCanvasOffset()}px`,this.resetPixelShift();const i=this._canvas.getContext("2d");if(i.scale(B,B),i.fillStyle=this.getBackground(),i.fillRect(0,0,C,e),this._error)return this.renderError(i,g,e),this.renderLabelOverlay(i,g,e),void this._recordRenderMetadata(g);if(this._zoomedOut)return this.renderZoomInNotice(i,g,e),this.renderLabelOverlay(i,g,e),void this._recordRenderMetadata(g);if(this._locus===bt)return this.renderNoLocusNotice(i,g,e),this._renderBpPerPixel=0,void(this._renderChr="");const Q=(this._locus.end-this._locus.start)/g,o=g*Q*((t-1)/2),s=this._locus.start-o,E={pixelWidth:C,bpStart:s,bpPerPixel:Q,viewportWidth:g};this.doRender(i,C,e,E),this._renderBpStart=s,this._renderBpPerPixel=Q,this._renderChr=this._locus.chr}_recordRenderMetadata(A){if(this._locus!==bt){const I=(this._locus.end-this._locus.start)/A,g=A*I*((this._overscanMultiplier-1)/2);this._renderBpPerPixel=I,this._renderBpStart=this._locus.start-g,this._renderChr=this._locus.chr}}renderError(A,I,g){A.font="12px sans-serif",A.fillStyle="rgb(180, 0, 0)",A.textAlign="center",A.textBaseline="middle",A.fillText("Error loading track data",I/2,g/2)}renderZoomInNotice(A,I,g){A.font="12px sans-serif",A.fillStyle="rgb(120, 120, 120)",A.textAlign="center",A.textBaseline="middle",A.fillText("Zoom in to see features",I/2,g/2)}renderNoLocusNotice(A,I,g){A.font="12px sans-serif",A.fillStyle="rgb(120, 120, 120)",A.textAlign="center",A.textBaseline="middle",A.fillText("No locus set",I/2,g/2)}renderLabelOverlay(A,I,g){}renderToContext(A,I,g,t){var C;if((null==t?void 0:t.skipBackground)||(A.fillStyle=this.getBackground(),A.fillRect(0,0,I,g)),this._error)return this.renderError(A,I,g),void this.renderLabelOverlay(A,I,g);if(this._zoomedOut)return this.renderZoomInNotice(A,I,g),void this.renderLabelOverlay(A,I,g);if(this._locus===bt)return void this.renderNoLocusNotice(A,I,g);const e=null!==(C=null==t?void 0:t.rc)&&void 0!==C?C:{pixelWidth:I,bpStart:this._locus.start,bpPerPixel:(this._locus.end-this._locus.start)/I,viewportWidth:I};this.doRender(A,I,g,e),this._renderBpStart=e.bpStart,this._renderBpPerPixel=e.bpPerPixel,this._viewportWidth=e.viewportWidth,this._renderChr=this._locus.chr}}function Ht(A,I,g){var t,C;if(g<12)return;A.font="normal 10px sans-serif",A.textBaseline="top",A.textAlign="left";const e=4+(null!==(t=I.topOffset)&&void 0!==t?t:0),B=A.measureText(I.name),i=B.width+8,Q=(null!==(C=B.actualBoundingBoxDescent)&&void 0!==C?C:10)+4;A.fillStyle=I.background,A.globalAlpha=.75,A.fillRect(4,e,i,Q),A.globalAlpha=1,A.strokeStyle=I.labelColor,A.globalAlpha=.3,A.lineWidth=.5,A.strokeRect(4,e,i,Q),A.globalAlpha=1,A.fillStyle=I.labelColor,A.fillText(I.name,8,e+2)}const qt={A:"#00C000",C:"#0000FF",G:"#FFB300",T:"#FF0000",N:"#808080"},Tt={A:{main:"M 0 100 L 33 0 L 66 0 L 100 100 L 75 100 L 66 75 L 33 75 L 25 100 L 0 100",overlay:"M 41 55 L 50 25 L 58 55 L 41 55"},C:{main:"M 100 28 C 100 -13 0 -13 0 50 C 0 113 100 113 100 72 L 75 72 C 75 90 30 90 30 50 C 30 10 75 10 75 28 L 100 28"},G:{main:"M 100 28 C 100 -13 0 -13 0 50 C 0 113 100 113 100 72 L 100 48 L 55 48 L 55 72 L 75 72 C 75 90 30 90 30 50 C 30 10 75 5 75 28 L 100 28"},T:{main:"M 0 0 L 0 20 L 35 20 L 35 100 L 65 100 L 65 20 L 100 20 L 100 0 L 0 0"},N:{main:"M 0 100 L 0 0 L 20 0 L 80 75 L 80 0 L 100 0 L 100 100 L 80 100 L 20 25 L 20 100 L 0 100"}};function _t(A,I,g,t,C,e){const B=C/100,i=e/100;A.beginPath();const Q=I.match(/[MLC][^MLC]*/g);if(Q){for(const I of Q){const C=I[0],e=I.slice(1).trim().split(/[\s,]+/).map(Number);"M"===C?A.moveTo(g+e[0]*B,t+e[1]*i):"L"===C?A.lineTo(g+e[0]*B,t+e[1]*i):"C"===C&&e.length>=6&&A.bezierCurveTo(g+e[0]*B,t+e[1]*i,g+e[2]*B,t+e[3]*i,g+e[4]*B,t+e[5]*i)}A.closePath(),A.fill()}}function Wt(A,I,g,t,C,e,B,i=!1,Q="#ffffff"){var o;const s=null!==(o=Tt[I])&&void 0!==o?o:Tt.N;A.save(),A.fillStyle=B,i&&(A.translate(g+C/2,t+e/2),A.scale(1,-1),A.translate(-(g+C/2),-(t+e/2))),_t(A,s.main,g,t,C,e),s.overlay&&(A.fillStyle=Q,_t(A,s.overlay,g,t,C,e)),A.restore()}function Pt(A,I,g,t,C,e,B,i=qt,Q="#ffffff"){var o;const s=Math.min(C,e),E=Math.max(1,Math.abs(C-e)),a=t/I.length,r=B<0;for(let t=0;t<I.length;t++){const C=g+t*a,e=I[t].toUpperCase();Wt(A,e,C,s,a,E,null!==(o=i[e])&&void 0!==o?o:i.N,r,Q)}}function Ot(A){return Number.isInteger(A)?A.toString():Math.abs(A)>=10?A.toFixed():Math.abs(A)>=1?A.toFixed(1):Math.abs(A)>=.1?A.toFixed(2):A.toExponential(1)}function Vt(A){return A<0?-Math.log10(Math.abs(A)+1):Math.log10(Math.abs(A)+1)}function Zt(A,I,g,t){var C,e,B,i;if(0===t)return;const Q=null!==(C=I.backgroundColor)&&void 0!==C?C:"white",o=null!==(e=I.labelColor)&&void 0!==e?e:"black";A.fillStyle=Q,A.fillRect(0,0,g,t),I.color&&(A.fillStyle=I.color,A.fillRect(g-4-1,0,4,t));const s=.01*t,E=.99*t,a=g-4-3,r=a-6;if(A.strokeStyle=o,A.fillStyle=o,A.font="normal 9px Arial",A.textAlign="right",A.lineWidth=1,A.beginPath(),A.moveTo(a,s),A.lineTo(a,E),A.stroke(),A.beginPath(),A.moveTo(r,s),A.lineTo(a,s),A.stroke(),A.beginPath(),A.moveTo(r,E),A.lineTo(a,E),A.stroke(),!I.dataRange)return;const{min:n,max:h}=I.dataRange,c=null!==(B=I.flipAxis)&&void 0!==B&&B,l=null!==(i=I.logScale)&&void 0!==i&&i,d=c?n:h,D=c?h:n;if(A.textBaseline="top",A.fillText(Ot(d),r-2,s+1),A.textBaseline="bottom",A.fillText(Ot(D),r-2,E-1),t>60){const I=l?(()=>{const A=(Vt(n)+Vt(h))/2;return A>=0?Math.pow(10,A)-1:-(Math.pow(10,-A)-1)})():(n+h)/2,g=function(A,I,g,t,C,e,B){const i=B?Vt(I):I,Q=B?Vt(g):g,o=B?Vt(A):A,s=Q-i;if(0===s)return(t+C)/2;const E=(o-i)/s;return e?t+E*(C-t):C-E*(C-t)}(I,n,h,s,E,c,l);A.beginPath(),A.moveTo(r+3,g),A.lineTo(a,g),A.stroke(),A.textBaseline="middle",A.fillText(Ot(I),r+1,g)}}function Xt(A,I){const g=function(A){const I=A.match(/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)/);if(I)return[Number(I[1]),Number(I[2]),Number(I[3])];const g=A.match(/^#([0-9a-f]{3,8})$/i);if(g){const A=g[1];if(3===A.length||4===A.length)return[parseInt(A[0]+A[0],16),parseInt(A[1]+A[1],16),parseInt(A[2]+A[2],16)];if(A.length>=6)return[parseInt(A.slice(0,2),16),parseInt(A.slice(2,4),16),parseInt(A.slice(4,6),16)]}}(A);return g?`rgba(${g[0]},${g[1]},${g[2]},${I})`:A}function zt(A,I,g){return g?A<0&&g.neg?g.neg:g.pos:function(A,I){const g=function(A,I){return"function"==typeof A?A(I):A}(A<0&&I.altColor?I.altColor:I.color,A);return null!=I.alpha?Xt(g,I.alpha):g}(A,I)}function jt(A,I,g,t){const C=g.height-1,e=function(A,I,g,t){const C=t?A<0?-Math.log10(Math.abs(A)+1):Math.log10(Math.abs(A)+1):A;return g/((t?Math.log10(Math.abs(I)+1):I)-C)}(g.dataRange.min,g.dataRange.max,C,g.logScale),B=A=>function(A,I,g,t,C){if(C){let C=I.min,e=I.max;C=C<0?-Math.log10(Math.abs(C)+1):Math.log10(Math.abs(C)+1),e=e<0?-Math.log10(Math.abs(e)+1):Math.log10(Math.abs(e)+1);const B=A<0?-Math.log10(Math.abs(A)+1):Math.log10(A+1);return(t?B-C:e-B)*g}return(t?A-I.min:I.max-A)*g}(A,g.dataRange,e,g.flipAxis,g.logScale);if(I&&I.length>0&&g.dataRange.max>g.dataRange.min){const e=t.bpStart+t.pixelWidth*t.bpPerPixel+1,i=B(0),Q=function(A){if("string"!=typeof A.color)return;if(void 0!==A.altColor&&"string"!=typeof A.altColor)return;return{pos:null!=A.alpha?Xt(A.color,A.alpha):A.color,neg:void 0!==A.altColor?null!=A.alpha?Xt(A.altColor,A.alpha):A.altColor:void 0}}(g);switch(g.graphType){case"bar":!function(A,I,g,t,C,e,B,i,Q){const o=Yt(I,t.bpStart);let s="",E=!1;const a=()=>{E&&(A.fill(),E=!1)},r=(I,g,t,C,e)=>{e!==s&&(a(),s=e,A.fillStyle=e,A.beginPath(),E=!0),A.rect(I,g,t,C)};let n=null;for(let A=o;A<I.length;A++){const o=I[A];if(o.start>i)break;const s=(o.start-t.bpStart)/t.bpPerPixel;if(Number.isNaN(s))continue;const E=e(o.value),a=(o.end-t.bpStart)/t.bpPerPixel,h=Math.max(1,a-s);r(s,B,h,Math.min(C,E-B),zt(o.value,g,Q)),o.value>g.dataRange.max?(n||(n=[]),n.push([s,0,h,3])):o.value<g.dataRange.min&&(n||(n=[]),n.push([s,C-2,h,3]))}if(a(),n){A.fillStyle=g.overflowColor,A.beginPath();for(const[I,g,t,C]of n)A.rect(I,g,t,C);A.fill()}}(A,I,g,t,C,B,i,e,Q);break;case"line":!function(A,I,g,t,C,e,B){let i;const Q=Yt(I,t.bpStart);let o="",s=!1;A.lineWidth=1.5;const E=()=>{s&&(A.stroke(),s=!1)};for(let a=Q;a<I.length;a++){const Q=I[a];if(Q.start>e)break;const r=(Q.start-t.bpStart)/t.bpPerPixel;if(Number.isNaN(r))continue;const n=C(Q.value),h=(Q.end-t.bpStart)/t.bpPerPixel-r,c=zt(Q.value,g,B);c!==o&&(E(),o=c,A.strokeStyle=c,A.beginPath(),s=!0,i=void 0),void 0!==i?A.lineTo(r,n):A.moveTo(r,n),A.lineTo(r+h,n),i=n}E()}(A,I,g,t,B,e,Q);break;case"points":!function(A,I,g,t,C,e,B,i){const Q=g.pointSize/2,o=Yt(I,t.bpStart);let s="",E=!1,a=null,r=null;const n=()=>{E&&(A.fill(),E=!1)};for(let C=o;C<I.length;C++){const o=I[C];if(o.start>B)break;const h=(o.start-t.bpStart)/t.bpPerPixel;if(Number.isNaN(h))continue;const c=e(o.value),l=h+((o.end-t.bpStart)/t.bpPerPixel-h)/2,d=zt(o.value,g,i);d!==s&&(n(),s=d,A.fillStyle=d,A.beginPath(),E=!0),A.moveTo(l+Q,c),A.arc(l,c,Q,0,2*Math.PI),o.value>g.dataRange.max?(a||(a=[]),a.push(l)):o.value<g.dataRange.min&&(r||(r=[]),r.push(l))}if(n(),a){A.fillStyle=g.overflowColor,A.beginPath();for(const I of a)A.moveTo(I+Q,Q),A.arc(I,Q,Q,0,2*Math.PI);A.fill()}if(r){A.fillStyle=g.overflowColor,A.beginPath();for(const I of r)A.moveTo(I+Q,C-Q),A.arc(I,C-Q,Q,0,2*Math.PI);A.fill()}}(A,I,g,t,C,B,e,Q);break;case"dynseq":!function(A,I,g,t,C,e,B,i,Q){var o;const s=null!==(o=g.nucleotideColors)&&void 0!==o?o:qt;for(let o=Yt(I,t.bpStart);o<I.length;o++){const E=I[o];if(E.start>i)break;const a=(E.start-t.bpStart)/t.bpPerPixel;if(Number.isNaN(a))continue;const r=e(E.value),n=(E.end-t.bpStart)/t.bpPerPixel,h=Math.max(1,n-a);if(E.sequence&&t.bpPerPixel<2)Pt(A,E.sequence,a,h,r,B,E.value,s,g.background);else{const I=Math.min(C,r-B);A.fillStyle=zt(E.value,g,Q),A.fillRect(a,B,h,I)}E.value>g.dataRange.max?(A.fillStyle=g.overflowColor,A.fillRect(a,0,h,3)):E.value<g.dataRange.min&&(A.fillStyle=g.overflowColor,A.fillRect(a,C-2,h,3))}}(A,I,g,t,C,B,i,e,Q)}!function(A,I,g,t){if(I.dataRange.min>=0)return;let{min:C,max:e}=I.dataRange;I.logScale&&(C=C<0?-Math.log10(Math.abs(C)+1):Math.log10(Math.abs(C)+1),e=e<0?-Math.log10(Math.abs(e)+1):Math.log10(Math.abs(e)+1));const B=e/(e-C),i=I.flipAxis?(1-B)*t:B*t;A.strokeStyle=I.baselineColor,A.lineWidth=1,A.beginPath(),A.moveTo(0,i),A.lineTo(g,i),A.stroke()}(A,g,t.pixelWidth,C),function(A,I,g){var t,C;if(!I.showDataRange)return;const{min:e,max:B}=I.dataRange,i=Ot(I.flipAxis?e:B),Q=Ot(I.flipAxis?B:e);A.font=I.labelFont,A.textBaseline="top",A.textAlign="left";const o=A.measureText(i),s=o.width+6,E=(null!==(t=o.actualBoundingBoxDescent)&&void 0!==t?t:10)+4;A.fillStyle=I.background,A.globalAlpha=.7,A.fillRect(4,4,s,E),A.globalAlpha=1,A.fillStyle=I.labelColor,A.fillText(i,7,6),A.textBaseline="bottom";const a=A.measureText(Q),r=a.width+6,n=(null!==(C=a.actualBoundingBoxAscent)&&void 0!==C?C:10)+4,h=g-4;A.fillStyle=I.background,A.globalAlpha=.7,A.fillRect(4,h-n,r,n),A.globalAlpha=1,A.fillStyle=I.labelColor,A.fillText(Q,7,h-2)}(A,g,C)}!function(A,I,g){var t;if(!I.trackName)return;let C=0;if(I.showDataRange){const g=2;A.save(),A.font=I.labelFont,A.textBaseline="top";const e=Ot(I.flipAxis?I.dataRange.min:I.dataRange.max),B=(null!==(t=A.measureText(e).actualBoundingBoxDescent)&&void 0!==t?t:10)+2*g;A.restore(),C=B+2}Ht(A,{name:I.trackName,background:I.background,labelColor:I.labelColor,topOffset:C},g)}(A,g,C),function(A,I,g,t){if(I.guideLines){for(const C of I.guideLines){const I=t(C.y);A.strokeStyle=C.color,A.lineWidth=2,C.dotted?A.setLineDash([5,5]):A.setLineDash([]),A.beginPath(),A.moveTo(0,I),A.lineTo(g,I),A.stroke()}A.setLineDash([])}}(A,g,t.pixelWidth,B)}class $t{constructor(A,I){this.bin=A,this.sumData=I.value,this.count=1,this.min=I.value,this.max=I.value}add(A){this.sumData+=A.value,this.max=Math.max(A.value,this.max),this.min=Math.min(A.value,this.min),this.count++}}function AC(A,I,g,t="mean"){if(g<=1||!A||0===A.length||"none"===t)return A;const C=A[0].chr,e=g,B=[],i=A=>{const g=I+A.bin*e,i=g+e;let Q;switch(t){case"mean":Q=A.sumData/A.count;break;case"max":Q=A.max;break;case"min":Q=A.min;break;default:throw Error(`Unknown window function: ${t}`)}const o=`${t} of ${A.count} values`;B.push({chr:C,start:g,end:i,value:Q,description:o})};let Q;for(const g of A){let A=Math.floor((g.start-I)/e);const t=Math.max(A,Math.ceil((g.end-I)/e)-1);if(Q&&A===Q.bin&&(Q.add(g),A++),!Q||t>Q.bin){if(Q&&i(Q),t>A){const A=I+t*e;B.push({chr:C,start:g.start,end:A,value:g.value})}Q=new $t(t,g)}}if(Q&&i(Q),0===B.length)return B;const o=[];let s=B[0];for(const A of B)s.value===A.value&&A.start<=s.end?s={...s,end:A.end}:(o.push(s),s=A);return o.push(s),o}function IC(A){if(!A||0===A.length)return{min:0,max:100};let I=Number.MAX_VALUE,g=-Number.MAX_VALUE;for(const t of A)Number.isNaN(t.value)||(t.value<I&&(I=t.value),t.value>g&&(g=t.value));return I===Number.MAX_VALUE?{min:0,max:100}:(g>0&&(I=Math.min(0,I)),g<0&&(g=0),{min:I,max:g})}function gC(A,I){const g={};let t=!1;for(const C of Object.keys(A))A[C]!==I[C]&&void 0!==A[C]&&(g[C]=A[C],t=!0);return t?g:void 0}class tC extends xt{constructor(A,I){const g=K(L(I.theme),I.config);super(A,I.locus,g,I.canvasProvider),this._lastDataRange=null,this._seqAbort=null,this._userOverrides={},this._coordinatedDataRange=null,this.type="wig",this.features=I.features,this._name=I.name,this._sequenceProvider=I.sequenceProvider,I.config&&(this._userOverrides={...I.config})}set onWindowFunctionChange(A){this._onWindowFunctionChange=A}setFeatures(A){this.features=A,"dynseq"===this._config.graphType?this.augmentWithSequence():this.render()}setLocus(A){this._locus=A,"dynseq"===this._config.graphType?this.augmentWithSequence():this.render()}setCoordinatedDataRange(A){this._coordinatedDataRange=A}setConfig(A){Object.assign(this._userOverrides,A);const I="dynseq"===this._config.graphType;super.setConfig(A),I||"dynseq"!==this._config.graphType||this.augmentWithSequence()}augmentWithSequence(){if(!this._sequenceProvider||0===this.features.length)return void this.render();const A=this.viewportWidth;if(0===A)return void this.render();if((this._locus.end-this._locus.start)/A>=2)return void this.render();this._seqAbort&&this._seqAbort.abort();const I=new AbortController;this._seqAbort=I;const g={chr:this._locus.chr,start:Math.floor(this._locus.start),end:Math.ceil(this._locus.end)};this._sequenceProvider(g,I.signal).then(A=>{I.signal.aborted||(this._seqAbort=null,this.features=this.features.map(I=>{const t=Math.max(0,Math.floor(I.start)-g.start),C=Math.min(A.length,Math.floor(I.end)-g.start);return t>=C||t>=A.length?I:{...I,sequence:A.slice(t,C)}}),this.render())}).catch(()=>{I.signal.aborted||(this._seqAbort=null,this.render())}),this.render()}computeHeight(A){return this.config.height}getBackground(){return this.config.background}renderLabelOverlay(A,I,g){this.externalUIEnabled||this._name&&Ht(A,{name:this._name,background:this.config.background,labelColor:this.config.labelColor},g)}doRender(A,I,g,t){const C=null!=this.config.normalizationFactor&&1!==this.config.normalizationFactor||null!=this.config.scaleFactor&&1!==this.config.scaleFactor?this.features.map(A=>{var I,g;return{...A,value:A.value*(null!==(I=this.config.normalizationFactor)&&void 0!==I?I:1)*(null!==(g=this.config.scaleFactor)&&void 0!==g?g:1)}}):this.features,e={...this.config,height:g,trackName:this.externalUIEnabled?void 0:this._name};if(this._coordinatedDataRange)e.dataRange=this._coordinatedDataRange,this._config={...this._config,dataRange:this._coordinatedDataRange},this._lastDataRange=this._coordinatedDataRange;else if(this.config.autoscale){const A=C.filter(A=>A.end>=this._locus.start&&A.start<=this._locus.end);if(A.length>0){const I=IC(A);e.dataRange=I,this._config={...this._config,dataRange:I},this._lastDataRange=I}else this._lastDataRange=null}else this._lastDataRange=e.dataRange;jt(A,C,e,t)}getUIOverlayState(){if(this._name)return{label:{text:this._name,background:this.config.background,color:this.config.labelColor}}}getAxisInfo(){var A;if(this._name||this._lastDataRange)return{dataRange:null!==(A=this._lastDataRange)&&void 0!==A?A:void 0,color:"string"==typeof this.config.color?this.config.color:void 0,label:this._name,flipAxis:this.config.flipAxis||void 0,logScale:this.config.logScale||void 0}}getContextMenuItems(A,I){const g=this._sequenceProvider?["bar","line","points","dynseq"]:["bar","line","points"];return[{label:"Flip y-axis",type:"checkbox",checked:this._config.flipAxis,action:()=>this.setConfig({flipAxis:!this._config.flipAxis})},{label:"Graph type",children:g.map(A=>({label:A.charAt(0).toUpperCase()+A.slice(1),type:"checkbox",checked:this._config.graphType===A,action:()=>this.setConfig({graphType:A})}))},{label:"Windowing function",children:["mean","min","max"].map(A=>({label:A.charAt(0).toUpperCase()+A.slice(1),type:"checkbox",checked:this._config.windowFunction===A,action:()=>{this.setConfig({windowFunction:A}),this._onWindowFunctionChange&&this._onWindowFunctionChange(A)}}))}]}getNumericState(){return{autoscale:this._config.autoscale,logScale:this._config.logScale,dataRange:this._config.dataRange,setAutoscale:A=>this.setConfig({autoscale:A}),setLogScale:A=>this.setConfig({logScale:A}),setDataRange:(A,I)=>this.setConfig({dataRange:{min:A,max:I},autoscale:!1})}}hitTest(A,I){if(0===this.features.length)return[];if(0===this.viewportWidth)return[];const g=this.viewportXToGenomicBp(A);for(let A=Yt(this.features,g);A<this.features.length;A++){const I=this.features[A];if(I.start>g)break;if(g<I.end)return[{feature:I,popupData:CC(I)}]}return[]}setTheme(A){const I=this._config.dataRange;this._config={...K(A),...this._userOverrides,dataRange:I},this.render()}serializeConfig(A){const I=K(A),g=this.config;return{type:"wig",config:gC({...g,color:"string"==typeof g.color?g.color:I.color,altColor:"string"==typeof g.altColor?g.altColor:I.altColor,dataRange:g.autoscale?I.dataRange:g.dataRange,nucleotideColors:I.nucleotideColors},I)}}}function CC(A){const I=[];return A.chr&&I.push({name:"Chr",value:A.chr}),I.push({name:"Start",value:Math.floor(A.start).toLocaleString()}),I.push({name:"End",value:Math.ceil(A.end).toLocaleString()}),I.push({name:"Value",value:Number.isInteger(A.value)?A.value:A.value.toPrecision(6)}),A.description&&I.push({name:"Description",value:A.description}),I}function eC(A,I,g,t,C,e){var B,i,Q;const o=null!==(B=e.borderRadius)&&void 0!==B?B:0;o>0&&t>2*o&&C>2*o?(A.beginPath(),A.roundRect(I,g,t,C,o),A.fill(),e.borderColor&&(null!==(i=e.borderWidth)&&void 0!==i?i:0)>0&&(A.strokeStyle=e.borderColor,A.lineWidth=e.borderWidth,A.stroke())):(A.fillRect(I,g,t,C),e.borderColor&&(null!==(Q=e.borderWidth)&&void 0!==Q?Q:0)>0&&(A.strokeStyle=e.borderColor,A.lineWidth=e.borderWidth,A.strokeRect(I,g,t,C)))}function BC(A,I,g,t,C,e){var B,i,Q,o;A.save();try{const s=QC(I,g),E=function(A,I){var g,t,C;if("-"===A.strand)return null!==(t=null!==(g=I.altUtrColor)&&void 0!==g?g:I.utrColor)&&void 0!==t?t:QC(A,I);return null!==(C=I.utrColor)&&void 0!==C?C:I.color}(I,g);let a,r;A.fillStyle=s,A.strokeStyle=s,"SQUISHED"===g.displayMode&&void 0!==I.row?(a=g.featureHeight/2,r=g.margin+g.squishedRowHeight*I.row):"EXPANDED"===g.displayMode&&void 0!==I.row?(a=g.featureHeight,r=g.margin+g.expandedRowHeight*I.row):(a=g.featureHeight,r=g.margin);const n=r+a/2,h=a/2,c=n-h/2,l=I.exons?I.exons.length:0,d=function(A,I,g){let t=(A.start-I)/g,C=(A.end-I)/g,e=C-t;return e<3&&(e=3,t-=1.5),{px:t,px1:C,pw:e}}(I,t.bpStart,t.bpPerPixel),D=g.arrowSpacing,u="+"===I.strand?1:"-"===I.strand?-1:0,y=null!==(B=g.arrowColor)&&void 0!==B?B:s,w=null!==(i=g.arrowInExonColor)&&void 0!==i?i:"white";if(0===l){const I=Math.max(0,d.px),C=Math.min(t.pixelWidth,d.px1),e=C-I;if(A.fillStyle=s,eC(A,I,r,e,a,g),0!==u){A.strokeStyle=w;for(let g=I+D/2;g<C;g+=D)iC(A,g,n,u)}}else{A.save(),A.strokeStyle=null!==(Q=g.intronColor)&&void 0!==Q?Q:s,A.lineWidth=null!==(o=g.intronLineWidth)&&void 0!==o?o:1,g.intronDash&&g.intronDash.length>0&&A.setLineDash(g.intronDash),A.beginPath(),A.moveTo(d.px+1,n),A.lineTo(d.px1-1,n),A.stroke(),A.restore(),A.strokeStyle=y;const C=Math.max(0,d.px)+D/2,e=Math.min(t.pixelWidth,d.px1);for(let I=C;I<e;I+=D)iC(A,I,n,u);for(const C of I.exons){let I=Math.round((C.start-t.bpStart)/t.bpPerPixel),e=Math.round((C.end-t.bpStart)/t.bpPerPixel),B=Math.max(1,e-I);if(!(I+B<0)){if(I>t.pixelWidth)break;if(C.utr)A.fillStyle=E,eC(A,I,c,B,h,g);else{if(C.cdStart){const e=Math.round((C.cdStart-t.bpStart)/t.bpPerPixel);A.fillStyle=E,eC(A,I,c,e-I,h,g),B-=e-I,I=e}if(C.cdEnd){const I=Math.round((C.cdEnd-t.bpStart)/t.bpPerPixel);A.fillStyle=E,eC(A,I,c,e-I,h,g),B-=e-I,e=I}if(B=Math.max(B,1),A.fillStyle=s,eC(A,I,r,B,a,g),B>D+5&&0!==u){A.strokeStyle=w;for(let g=I+D/2;g<e;g+=D)iC(A,g,n,u)}}}}}e&&"SQUISHED"!==g.displayMode&&d.pw>=10&&function(A,I,g,t,C,e,B,i){var Q,o,s,E;const a=function(A,I){const g={name:A.name,id:A.id,chr:A.chr},t=g[I];return void 0!==t?t:A.id}(I,e.labelField);if(!a||"."===a)return;A.save();try{A.font=null!==(Q=e.labelFont)&&void 0!==Q?Q:e.font;const r=(B.pixelWidth-B.viewportWidth)/2,n=r+B.viewportWidth,h=Math.max(g,r),c=Math.min(t,n);if(h>=c)return;const l=(h+c)/2,d="COLLAPSED"===e.displayMode&&"SLANT"===e.labelDisplayMode,D=d?C+20:C+25;A.fillStyle=null!==(o=e.labelColor)&&void 0!==o?o:QC(I,e);const u=A.measureText(a),y=l-u.width/2,w=l+u.width/2;if(y>(null!==(s=i[I.row])&&void 0!==s?s:-Number.MAX_SAFE_INTEGER)){i[I.row]=w;const g=l-u.width/2-1,t=D-u.actualBoundingBoxAscent-1,C=u.width+2,B=u.actualBoundingBoxAscent+u.actualBoundingBoxDescent+2;e.labelBackground?(A.fillStyle=e.labelBackground,A.fillRect(g,t,C,B),A.fillStyle=null!==(E=e.labelColor)&&void 0!==E?E:QC(I,e)):A.clearRect(g,t,C,B),d?(A.save(),A.translate(l,D),A.rotate(Math.PI/4),A.fillText(a,0,0),A.restore()):(A.textAlign="center",A.fillText(a,l,D))}}finally{A.restore()}}(A,I,d.px,d.px1,r,g,t,C)}finally{A.restore()}}function iC(A,I,g,t){A.beginPath(),A.moveTo(I-2*t,g-2),A.lineTo(I,g),A.stroke(),A.beginPath(),A.moveTo(I-2*t,g+2),A.lineTo(I,g),A.stroke()}function QC(A,I){return A.color?A.color:I.altColor&&"-"===A.strand?I.altColor:I.color}class oC extends xt{constructor(A,I){const g=J(L(I.theme),I.config);super(A,I.locus,g,I.canvasProvider),this._userOverrides={},this.packedFeatures=[],this.packedReady=!1,this.type="annotation",this.features=I.features,this._name=I.name,I.config&&(this._userOverrides={...I.config})}setFixedHeight(A){this.setConfig({height:A})}setFeatures(A){this.features=A,this.packedReady=!1,this.render()}computeHeight(A){var I,g;if(this.packedReady||(this.packedFeatures=this.features.map(A=>({...A})),function(A,I){const g=null!=I?I:Number.MAX_SAFE_INTEGER,t=[-1e3];A.sort((A,I)=>A.start-I.start);for(const I of A){const A=Math.min(t.length,g);let C=0;for(C=0;C<A&&!(I.start>=t[C]);C++);I.row=C,t[C]=I.end}0===A.length||t.length}(this.packedFeatures,this.config.maxRows),this.packedReady=!0),"COLLAPSED"===this.config.displayMode)return null!==(I=this.config.height)&&void 0!==I?I:2*this.config.margin+this.config.expandedRowHeight+10;const{start:t,end:C}=this._locus,e=vt(this.packedFeatures,C);let B=0;for(let A=0;A<e;A++){const I=this.packedFeatures[A];I.end<t||void 0!==I.row&&I.row>B&&(B=I.row)}const i="SQUISHED"===this.config.displayMode?this.config.squishedRowHeight:this.config.expandedRowHeight;return null!==(g=this.config.height)&&void 0!==g?g:2*this.config.margin+(B+1)*i+10}getBackground(){return this.config.background}renderLabelOverlay(A,I,g){var t;this.externalUIEnabled||this._name&&Ht(A,{name:this._name,background:this.config.background,labelColor:null!==(t=this.config.labelColor)&&void 0!==t?t:"#333"},g)}doRender(A,I,g,t){var C;const e=this.config.labelBackground?this.config:{...this.config,labelBackground:this.config.background};!function(A,I,g,t,C,e){var B,i;const Q={},o=[],s=t.bpStart+t.pixelWidth*t.bpPerPixel,E=[];for(let A=0;A<I.length;A++){const C=I[A];if(C.start>s)break;if(void 0!==C.row&&C.start>=t.bpStart&&C.end<=s){const A="COLLAPSED"===g.displayMode?0:C.row;E[A]=(null!==(B=E[A])&&void 0!==B?B:0)+1}}const a=0===E.length?0:Math.max(...E.filter(A=>void 0!==A)),r=a>0?t.pixelWidth/a:1/0,n=g.drawLabels&&r>10,h=vt(I,s);for(let C=0;C<h;C++){const B=I[C];if(B.end<t.bpStart)continue;if(void 0===B.row)continue;const i="COLLAPSED"===g.displayMode?0:B.row,s=Math.ceil((B.end-t.bpStart)/t.bpPerPixel),E=o[i];if(!(void 0!==E&&s<=E)){if(void 0!==E&&void 0!==e){const I=Math.floor((B.start-t.bpStart)/t.bpPerPixel);I-E<=0&&(A.save(),A.globalAlpha=.5,A.strokeStyle=g.background,A.lineWidth=1,A.beginPath(),A.moveTo(I,0),A.lineTo(I,e),A.stroke(),A.globalAlpha=1,A.restore())}o[i]=s,BC(A,B,g,t,Q,n)}}C&&Ht(A,C,A.canvas.height/(null!==(i=globalThis.devicePixelRatio)&&void 0!==i?i:1))}(A,this.packedFeatures,e,t,this._name&&!this.externalUIEnabled?{name:this._name,background:this.config.background,labelColor:null!==(C=e.labelColor)&&void 0!==C?C:"#333"}:void 0,g)}getUIOverlayState(){var A;if(this._name)return{label:{text:this._name,background:this.config.background,color:null!==(A=this.config.labelColor)&&void 0!==A?A:"#333"}}}getContextMenuItems(A,I){return[{label:"Display mode",children:["EXPANDED","SQUISHED","COLLAPSED"].map(A=>({label:A.charAt(0)+A.slice(1).toLowerCase(),type:"checkbox",checked:this._config.displayMode===A,action:()=>this.setConfig({displayMode:A})}))}]}getFeatureRects(){var A;if(0===this.packedFeatures.length)return[];const I=this.viewportWidth;if(0===I)return[];const g=this._config,t="SQUISHED"===g.displayMode?g.squishedRowHeight:g.expandedRowHeight,C="SQUISHED"===g.displayMode?g.featureHeight/2:g.featureHeight,e=this.viewportXToGenomicBp(0),B=this.viewportXToGenomicBp(I),i=[],Q=vt(this.packedFeatures,B);for(let I=0;I<Q;I++){const B=this.packedFeatures[I];if(B.end<e)continue;if(void 0===B.row)continue;const Q=this.genomicBpToViewportX(B.start),o=this.genomicBpToViewportX(B.end),s="COLLAPSED"===g.displayMode?g.margin:g.margin+t*B.row;let E=Q,a=o-Q;a<3&&(E-=(3-a)/2,a=3);const r=null!==(A=B.color)&&void 0!==A?A:g.altColor&&"-"===B.strand?g.altColor:g.color;i.push({feature:B,x:E,y:s,width:a,height:C,color:r})}return i}hitTest(A,I){if(0===this.packedFeatures.length)return[];if(0===this.viewportWidth)return[];const g=this.viewportXToGenomicBp(A),t="SQUISHED"===this._config.displayMode?this._config.squishedRowHeight:this._config.expandedRowHeight,C=Math.floor((I-this._config.margin)/t);if(C<0)return[];const e=[],B=vt(this.packedFeatures,g);for(let A=0;A<B;A++){const I=this.packedFeatures[A];I.end<g||("COLLAPSED"!==this._config.displayMode&&I.row!==C||e.push({feature:I,popupData:sC(I)}))}return e}setConfig(A){Object.assign(this._userOverrides,A),super.setConfig(A)}setTheme(A){this._config=J(A,this._userOverrides),this.render()}serializeConfig(A){const I=J(A);return{type:"annotation",config:gC(this.config,I)}}}function sC(A){const I=[];return A.name&&I.push({name:"Name",value:A.name}),A.id&&I.push({name:"ID",value:A.id}),A.chr&&I.push({name:"Chr",value:A.chr}),I.push({name:"Start",value:A.start.toLocaleString()}),I.push({name:"End",value:A.end.toLocaleString()}),A.strand&&I.push({name:"Strand",value:A.strand}),null!=A.cdStart&&null!=A.cdEnd&&A.cdStart!==A.cdEnd&&I.push({name:"CDS",value:`${A.cdStart.toLocaleString()}-${A.cdEnd.toLocaleString()}`}),A.exons&&I.push({name:"Exons",value:A.exons.length}),I}function EC(A){return Math.floor(A).toLocaleString("en-US")}function aC(A,I,g){const t=I.height,C=function(A){if(A<10)return{majorTick:1,majorUnit:"bp",unitMultiplier:1};const I=Math.floor(Math.log10(A));let g="bp",t=1;return I>9?(g="gb",t=1e9):I>6?(g="mb",t=1e6):I>3&&(g="kb",t=1e3),{majorTick:A/Math.pow(10,I-1)<75?Math.pow(10,I-1):Math.pow(10,I)/2,majorUnit:g,unitMultiplier:t}}(Math.floor(g.pixelWidth*g.bpPerPixel));let e=Math.floor(g.bpStart/C.majorTick)-1;const B=A=>Math.floor(A*C.majorTick),i=A=>Math.round((A-1-g.bpStart+.5)/g.bpPerPixel),Q=i(B(1+e))-i(B(e)),o=`${EC(B(e)/C.unitMultiplier)} ${C.majorUnit}`,s=Math.floor(A.measureText(o).width),E=.25*s;A.font=I.font,A.fillStyle=I.labelColor,A.strokeStyle=I.tickColor,A.lineWidth=1;let a,r=Q;do{const o=B(e),n=`${EC(o/C.unitMultiplier)} ${C.majorUnit}`;a=i(o);const h=A.measureText(n).width,c=Math.round(a-h/2);c>0&&E+s<=r&&(A.fillStyle=I.labelColor,A.fillText(n,c,t-8),r=0),a>0&&(A.beginPath(),A.moveTo(a,t-6),A.lineTo(a,t-2),A.stroke());const l=a+(i(B(1+e))-a)/2;l>0&&l<g.pixelWidth&&(A.beginPath(),A.moveTo(l,t-6),A.lineTo(l,t-2),A.stroke()),++e,r+=Q}while(a<g.pixelWidth);A.strokeStyle=I.baselineColor,A.beginPath(),A.moveTo(0,t-2),A.lineTo(g.pixelWidth,t-2),A.stroke()}class rC extends xt{constructor(A,I={}){const g=Y(L(I.theme),I.config);super(A,I.locus,g,I.canvasProvider),this.type="ruler",this._cumulativeOffsets=I.cumulativeOffsets,this._chromSizes=I.chromSizes}setCumulativeOffsets(A){this._cumulativeOffsets=A}setChromSizes(A){this._chromSizes=A}computeHeight(A){return this.config.height}getBackground(){return this.config.background}doRender(A,I,g,t){h(this._locus)&&this._cumulativeOffsets&&this._chromSizes?function(A,I,g,t){var C;const e=I.height,{cumulativeOffsets:B,chromSizes:i}=t;A.fillStyle=null!==(C=I.background)&&void 0!==C?C:"white",A.fillRect(0,0,g.pixelWidth,e),A.textAlign="center",A.textBaseline="middle",A.font=I.font;for(const I of B.chromosomeNames){const t=B.offsets[I],C=i[I];if(void 0===t||void 0===C)continue;const Q=Math.round((t-g.bpStart)/g.bpPerPixel),o=Math.round(C/g.bpPerPixel);A.strokeStyle="#bfbfbf",A.lineWidth=1,A.beginPath(),A.moveTo(Q+o,0),A.lineTo(Q+o,e),A.stroke();const s=I.startsWith("chr")?I.substring(3):I;o>A.measureText(s).width&&(A.fillStyle="#444444",A.fillText(s,Q+o/2,e/2))}}(A,this.config,t,{cumulativeOffsets:this._cumulativeOffsets,chromSizes:this._chromSizes}):aC(A,this.config,t)}setTheme(A){this._config=Y(A),this.render()}serializeConfig(A){const I=Y(A);return{type:"ruler",config:gC(this.config,I)}}}const nC=(()=>{const A=new Map,I=["A","G","C","T","Y","R","W","S","K","M","D","V","H","B","N","X"],g=["T","C","G","A","R","Y","W","S","M","K","H","B","D","V","N","X"];for(let t=0;t<I.length;t++)A.set(I[t],g[t]),A.set(I[t].toLowerCase(),g[t].toLowerCase());return A})();const hC={TTT:"F",TTC:"F",TTA:"L",TTG:"L",CTT:"L",CTC:"L",CTA:"L",CTG:"L",ATT:"I",ATC:"I",ATA:"I",ATG:"M",GTT:"V",GTC:"V",GTA:"V",GTG:"V",TCT:"S",TCC:"S",TCA:"S",TCG:"S",AGT:"S",AGC:"S",CCT:"P",CCC:"P",CCA:"P",CCG:"P",ACT:"T",ACC:"T",ACA:"T",ACG:"T",GCT:"A",GCC:"A",GCA:"A",GCG:"A",TAT:"Y",TAC:"Y",TAA:"STOP",TAG:"STOP",TGA:"STOP",CAT:"H",CAC:"H",CAA:"Q",CAG:"Q",AAT:"N",AAC:"N",AAA:"K",AAG:"K",GAT:"D",GAC:"D",GAA:"E",GAG:"E",TGT:"C",TGC:"C",TGG:"W",CGT:"R",CGC:"R",CGA:"R",CGG:"R",AGA:"R",AGG:"R",GGT:"G",GGC:"G",GGA:"G",GGG:"G"};function cC(A,I){var g;return I.color?I.color:"dna"===I.sequenceType?null!==(g=I.nucleotideColors[A.toUpperCase()])&&void 0!==g?g:"#808080":I.nonDnaColor}function lC(A,I,g,t){if(!I||!I.sequence)return;let C=I.sequence;g.reversed&&(C=C.split("").map(A=>{return I=A,null!==(g=nC.get(I))&&void 0!==g?g:I;var I,g}).join(""));const e=I.bpStart,B=1+t.bpStart+t.pixelWidth*t.bpPerPixel,{sequenceHeight:i,frameBorder:Q}=g;for(let I=Math.floor(t.bpStart);I<=B;I++){const B=Math.floor(I-e);if(B<0||B>=C.length)continue;const o=(I-t.bpStart)/t.bpPerPixel,s=1/t.bpPerPixel,E=C[B],a=cC(E,g);if(t.bpPerPixel>.1)A.fillStyle=a,A.fillRect(o,Q,s,i-Q);else{const I=o+.5*(s-A.measureText(E).width);A.strokeStyle=a,A.strokeText(E,I,i)}}if(g.frameTranslate){let I=i+2*Q;const B=function(A,I=!1){var g;const t=[[],[],[]];for(let C=0;C<3;C++){let e=C;for(;A.length-e>=3;){let B=A.slice(e,e+3);I&&(B=B.split("").reverse().join(""));const i=null!==(g=hC[B.toUpperCase()])&&void 0!==g?g:"";t[C].push({codons:B,aminoA:i}),e+=3}}return t}(C,g.reversed),o=g.codonBorderRadius;for(let C=0;C<B.length;C++){const i=B[C];for(let B=0;B<i.length;B++){let Q=B%2==0?g.frameColor1:g.frameColor2;const s=i[B],E=e+C+3*B-t.bpStart,a=Math.floor(E/t.bpPerPixel),r=Math.floor((E+3)/t.bpPerPixel),n=Math.round((a+r)/2);if(r<0)continue;if(a>t.pixelWidth)break;let h=s.aminoA,c=!1;if(s.aminoA.indexOf("STOP")>-1?(Q=g.stopCodonColor,h="STOP",c=!0):"M"===s.aminoA&&(Q=g.startCodonColor,h="START",c=!0),A.fillStyle=Q,c&&o>0?(A.beginPath(),A.roundRect(a,I,r-a,g.frameHeight,o),A.fill()):A.fillRect(a,I,r-a,g.frameHeight),t.bpPerPixel<=.1){A.font=g.frameFont;const t=A.measureText(h).width,C=c&&g.codonLabelColor?g.codonLabelColor:g.frameLabelColor;A.fillStyle=C,A.fillText(h,n-t/2,I+15)}}I+=g.frameHeight+Q}}}class dC{constructor(A,I=10){this.sequenceProvider=A,this.bppThreshold=I}async fetch(A,I,g){if(I>this.bppThreshold)return[];if(g.aborted)return[];const t=Math.floor(A.start),C=Math.floor(A.end);return[{bpStart:t,sequence:await this.sequenceProvider({chr:A.chr,start:t,end:C},g)}]}}class DC extends xt{constructor(A,I={}){var g;const t=L(I.theme),C=v(t,I.config);super(A,I.locus,C,I.canvasProvider),this.type="sequence",this._sequence=null,this._theme=t,this._bppThreshold=null!==(g=I.bppSequenceThreshold)&&void 0!==g?g:10}shouldFetchSequence(A){return A<=this._bppThreshold}setFeatures(A){this._sequence=A.length>0?A[0]:null,this.render()}setSequence(A){this._sequence=A,this.render()}getSequence(){return this._sequence}toggleReversed(){this.setConfig({reversed:!this._config.reversed})}toggleFrameTranslate(){this.setConfig({frameTranslate:!this._config.frameTranslate})}getContextMenuItems(A,I){return[{label:this._config.reversed?"Forward":"Reverse",action:()=>this.toggleReversed()},{label:this._config.frameTranslate?"Close Translation":"Three-frame Translate",action:()=>this.toggleFrameTranslate()}]}computeHeight(A){return this._config.frameTranslate?this._config.translatedHeight:this._config.defaultHeight}getBackground(){return this._config.background}doRender(A,I,g,t){lC(A,this._sequence,this._config,t)}setTheme(A){this._config=v(A),this._theme=A,this.render()}serializeConfig(A){const I=v(A),g={};this._config.sequenceType!==I.sequenceType&&(g.sequenceType=this._config.sequenceType),this._config.reversed!==I.reversed&&(g.reversed=this._config.reversed),this._config.frameTranslate!==I.frameTranslate&&(g.frameTranslate=this._config.frameTranslate),this._config.color!==I.color&&(g.color=this._config.color),this._config.background!==I.background&&(g.background=this._config.background);const t={type:"sequence"};return Object.keys(g).length>0&&(t.config=g),t}}function uC(A){let{bucket:I,object:g}=function(A){let I,g;if(A.startsWith("gs://")){const t=A.indexOf("/",5);if(t>=0){I=A.substring(5,t);const C=A.indexOf("?");g=C<0?A.substring(t+1):A.substring(t+1,C)}}else if(A.startsWith("https://storage.googleapis.com")||A.startsWith("https://storage.cloud.google.com")){const t=A.indexOf("/v1/b/",8);if(t>0){const C=A.indexOf("/o/",t);if(C>0){const e=A.indexOf("?",C);I=A.substring(t+6,C),g=e>0?A.substring(C+3,e):A.substring(C+3)}}else{const t=A.indexOf("/",8),C=A.indexOf("/",t+1),e=A.indexOf("?",C);C>0&&(I=A.substring(t+1,C),g=e<0?A.substring(C+1):A.substring(C+1,e))}}else if(A.startsWith("https://www.googleapis.com/storage/v1/b")){const t=A.indexOf("/v1/b/",8),C=A.indexOf("/o/",t);if(C>0){const e=A.indexOf("?",C);I=A.substring(t+6,C),g=e>0?A.substring(C+3,e):A.substring(C+3)}}if(I&&g)return{bucket:I,object:g};throw new Error(`Unrecognized Google Storage URI: ${A}`)}(A);g=function(A){let I="";for(const g of A){const A=yC.get(g);I+=null!=A?A:g}return I}(g);const t=A.indexOf("?");return`https://storage.googleapis.com/storage/v1/b/${I}/o/${g}${t>0?A.substring(t)+"&alt=media":"?alt=media"}`}const yC=new Map([["!","%21"],["#","%23"],["$","%24"],["%","%25"],["&","%26"],["'","%27"],["(","%28"],[")","%29"],["*","%2A"],["+","%2B"],[",","%2C"],["/","%2F"],[":","%3A"],[";","%3B"],["=","%3D"],["?","%3F"],["@","%40"],["[","%5B"],["]","%5D"],[" ","%20"]]);function wC(A){return!function(A){return A.startsWith("gs://")||A.startsWith("https://www.googleapis.com/storage")||A.startsWith("https://storage.cloud.google.com")||A.startsWith("https://storage.googleapis.com")}(A)||function(A){return A.indexOf("X-Goog-Signature")>-1}(A)||A.includes("/storage/v1/b/")?A:uC(A)}class fC{constructor(A,I=!0){this.littleEndian=I,this.position=0,this.view=A,this.length=A.byteLength}setPosition(A){this.position=A}available(){return this.length-this.position}getByte(){const A=this.view.getUint8(this.position);return this.position++,A}getShort(){const A=this.view.getInt16(this.position,this.littleEndian);return this.position+=2,A}getUShort(){const A=this.view.getUint16(this.position,this.littleEndian);return this.position+=2,A}getInt(){const A=this.view.getInt32(this.position,this.littleEndian);return this.position+=4,A}getUInt(){const A=this.view.getUint32(this.position,this.littleEndian);return this.position+=4,A}getLong(){const A=[];for(let I=0;I<8;I++)A[I]=this.view.getUint8(this.position+I);let I=0;if(this.littleEndian)for(let g=7;g>=0;g--)I=256*I+A[g];else for(let g=0;g<8;g++)I=256*I+A[g];return this.position+=8,I}getString(A){let I,g="";for(;0!==(I=this.view.getUint8(this.position++))&&(g+=String.fromCharCode(I),!A||g.length!==A););return g}getFixedLengthString(A){let I="";for(let g=0;g<A;g++){const A=this.view.getUint8(this.position++);A>0&&(I+=String.fromCharCode(A))}return I}getFloat(){const A=this.view.getFloat32(this.position,this.littleEndian);return this.position+=4,A}getDouble(){const A=this.view.getFloat64(this.position,this.littleEndian);return this.position+=8,A}skip(A){return this.position+=A,this.position}}const SC=new Map;function kC(A,I,g){var t,C,e,B,i,Q;if(void 0===A.score&&!A.summary)return;let o;if(A.summary)switch(g){case"min":o=null!==(C=null!==(t=A.minScore)&&void 0!==t?t:A.score)&&void 0!==C?C:0;break;case"max":o=null!==(B=null!==(e=A.maxScore)&&void 0!==e?e:A.score)&&void 0!==B?B:0;break;default:o=null!==(i=A.score)&&void 0!==i?i:0}else o=null!==(Q=A.score)&&void 0!==Q?Q:0;return{chr:I,start:A.start,end:A.end,value:o}}class GC{constructor(A,I){this.bw=function(A,I){const g=wC(A);let t=SC.get(g);t||(t=new DI({filehandle:new AA(g,I?{fetch:I}:void 0)}),SC.set(g,t));return t}(A,I)}async loadHeader(A){const I=await this.bw.getHeader({signal:A});return{bwVersion:I.version,nZoomLevels:I.numZoomLevels,chromTreeOffset:I.chromosomeTreeOffset,fullDataOffset:I.unzoomedDataOffset,fullIndexOffset:I.unzoomedIndexOffset,fieldCount:I.fieldCount,definedFieldCount:I.definedFieldCount,autoSqlOffset:I.asOffset,totalSummaryOffset:I.totalSummaryOffset,uncompressBuffSize:I.uncompressBufSize,extensionOffset:I.extHeaderOffset}}async getTotalSummary(A){const I=(await this.bw.getHeader({signal:A})).totalSummary;if(!I)return;const g=I.basesCovered>0?I.scoreSum/I.basesCovered:0,t=I.basesCovered>0?I.scoreSumSquares/I.basesCovered-g*g:0;return{basesCovered:I.basesCovered,minVal:I.scoreMin,maxVal:I.scoreMax,sumData:I.scoreSum,sumSquares:I.scoreSumSquares,mean:g,stddev:Math.sqrt(Math.max(0,t))}}async readFeatures(A,I,g,t,C="mean",e){const B={signal:e};t&&"none"!==C&&(B.basesPerSpan=t);const i=await this.bw.getFeatures(A,I,g,B),Q=[];for(const I of i){const g=kC(I,A,C);g&&Q.push(g)}return Q}async readWGFeatures(A,I,g="mean",t){const C=[];for(const e of A)try{const A=await this.readFeatures(e,0,Number.MAX_SAFE_INTEGER,I,g,t);C.push(...A)}catch(A){}return C}}async function FC(A,I,g){if(null==g?void 0:g.aborted)return[];const t=await Promise.allSettled(A.map(A=>I(A))),C=t.filter(A=>"fulfilled"===A.status);if(0===C.length&&t.length>0)throw t[0].reason;return C.flatMap(A=>A.value)}function NC(A,I){const g=[];for(const t of A){if(!t.chr)continue;const A=I.offsets[t.chr];void 0!==A&&g.push({...t,chr:"all",start:A+t.start,end:A+t.end})}return g.sort((A,I)=>A.start-I.start),g}class mC{constructor(A,I="mean",g){this.url=A,this._windowFunction=I,this.fetchImpl=g}get windowFunction(){return this._windowFunction}setWindowFunction(A){this._windowFunction=A}setCumulativeOffsets(A){this._cumulativeOffsets=A}setChromNameResolver(A){this._resolveChromName=A}async fetch(A,I,g){if(h(A)&&this._cumulativeOffsets)return this.fetchWG(I,g);const t=this._resolveChromName?{...A,chr:this._resolveChromName(A.chr)}:A,C=await async function(A,I,g={}){var t,C;const e=new GC(A,g.fetchImpl);try{return await e.readFeatures(I.chr,I.start,I.end,g.bpPerPixel,null!==(t=g.windowFunction)&&void 0!==t?t:"mean",g.signal)}catch(I){throw I instanceof Error&&("AbortError"===I.name||(null===(C=I.message)||void 0===C?void 0:C.includes("aborted")))&&SC.delete(A),I}}(this.url,t,{bpPerPixel:I,windowFunction:this._windowFunction,signal:g,fetchImpl:this.fetchImpl});return I>1&&"none"!==this._windowFunction&&C.length>0?AC(C,A.start,I,this._windowFunction):C}async fetchWG(A,I){const g=this._cumulativeOffsets;if(!g)throw new Error("fetchWG called without cumulativeOffsets");const t=await async function(A,I,g,t={}){var C;return new GC(A,t.fetchImpl).readWGFeatures(I,g,null!==(C=t.windowFunction)&&void 0!==C?C:"mean",t.signal)}(this.url,g.chromosomeNames,A,{windowFunction:this._windowFunction,signal:I,fetchImpl:this.fetchImpl}),C=NC(t,g);return A>1&&"none"!==this._windowFunction&&C.length>0?AC(C,0,A,this._windowFunction):C}}const RC=new Map;class pC{constructor(A,I){this.url=A,this.fetchImpl=I,this.bb=function(A,I){const g=wC(A);let t=RC.get(g);t||(t=new fI({filehandle:new AA(g,I?{fetch:I}:void 0)}),RC.set(g,t));return t}(A,I)}setChromNameResolver(A){this._resolveChromName=A}async fetch(A,I,g){var t;const C=this._resolveChromName?this._resolveChromName(A.chr):A.chr;try{const I=await this.bb.getFeatures(C,A.start,A.end,{signal:g}),t=[];for(const A of I){const I=UC(C,A.start,A.end,A.rest);I&&t.push(I)}return t}catch(A){throw A instanceof Error&&("AbortError"===A.name||(null===(t=A.message)||void 0===t?void 0:t.includes("aborted")))&&RC.delete(wC(this.url)),A}}async search(A){const I=await this.bb.getHeader(),g=await this.bb.searchExtraIndex(A);if(0===g.length)return[];const t=I.refsByNumber,C=[];for(const A of g){const I=A.chromId;if(null==I||!(null==t?void 0:t[I]))continue;const g=UC(t[I].name,A.start,A.end,A.rest);g&&C.push(g)}return C}dispose(){RC.delete(wC(this.url))}}function UC(A,I,g,t){const C=[A,String(I),String(g)];return t&&C.push(...t.split("\t")),RI(C)}async function MC(A,I,g,t){const C=null!=t?t:globalThis.fetch,e=I.start+I.size-1,B={Range:`bytes=${I.start}-${e}`};let i=await C(A,{headers:B,signal:g});if(200===i.status&&i.redirected&&i.url&&i.url!==A&&(i=await C(i.url,{headers:B,signal:g})),416===i.status){const C=await async function(A,I,g){const t=null!=g?g:globalThis.fetch;let C=await t(A,{method:"HEAD",signal:I});if(C.redirected&&C.url&&C.url!==A){C.headers.get("Content-Length")||(C=await t(C.url,{method:"HEAD",signal:I}))}if(!C.ok)throw new Error(`HEAD request failed: ${C.status} ${C.statusText}`);const e=C.headers.get("Content-Length");if(!e)throw new Error("No Content-Length header in HEAD response");return parseInt(e,10)}(A,g,t),e=Math.min(I.size,C-I.start);if(e<=0)throw new Error(`HTTP range request failed: 416 Range Not Satisfiable (file size: ${C})`);return MC(A,{start:I.start,size:e},g,t)}if(!i.ok&&206!==i.status)throw new Error(`HTTP range request failed: ${i.status} ${i.statusText}`);if(200===i.status){return(await i.arrayBuffer()).slice(I.start,I.start+I.size)}return i.arrayBuffer()}let LC,JC,KC,YC,vC;let bC,xC=!1;function HC(){const A=JC.buffer;KC=new Int8Array(A),YC=new Uint8Array(A)}const qC={};let TC;function _C(A,I){return Math.ceil(A/I)*I}const WC={a:function(A){},b:function(){},c:function(){!function(A){const I="Aborted("+(null!=A?A:"")+")";throw new WebAssembly.RuntimeError(I)}("")},d:function(A,I){if(qC[A]&&(clearTimeout(qC[A].id),delete qC[A]),!I)return 0;const g=setTimeout(()=>{delete qC[A],TC(A,performance.now())},I);return qC[A]={id:g,timeout_ms:I},0},e:function(A){const I=YC.length,g=2147483648;if((A>>>=0)>g)return!1;for(let t=1;t<=4;t*=2){let C=I*(1+.2/t);C=Math.min(C,A+100663296);const e=(Math.min(g,_C(Math.max(A,C),65536))-JC.buffer.byteLength+65535)/65536|0;try{return JC.grow(e),HC(),!0}catch(A){}}return!1}};async function PC(){if(!xC)return bC||(bC=async function(){const A=function(){if(LC)return LC;const A=atob("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AWohACAGIAhqIQYMAQsACwALQQAhAgNAIAIgBUZFBEAgBCACIAlqLQAAQQF0aiIAIAAvAQAiAEEBajsBACAQIABBAXRqIAIgBWo7AQAgAkEBaiECDAELCyADQR9rIQQgA0EQdCAFayIFQYCABGohCUEAIQZBACEAQQAhAgNAIAIgCkYNAQJAAkACQAJAAkAgASACQQF0ai8BACIDDgIAAgELIA0gAkEDdGogCTYCBAwDCyADQf//A0cNAQsgDSACQQN0aiIDIABBAWs2AgAgAyAFNgIEIABBAWohAAwBCyANIAJBA3RqIgcgACADwSIDazYCACAHIAQgA0EBa2dqIgdBEHQgAyAHdGs2AgQgACADaiEACyACQQFqIQIMAAsACyAGCxcAIAAgASACIANCgIDs/Mub741PELIBCxcAIAAgASACIANCgIDs/Mub741PELMBCxcAIAAgASACIANCgIDs/Mub741PELQBCxcAIAAgASACIANCgICA2Mub741PELIBCxcAIAAgASACIANCgICA2Mub741PELMBCxcAIAAgASACIANCgICA2Mub741PELQBC6EKAhd/An4jAEGAAmsiEyQAIAEgACgCBCIOayIIQQEgACgCuAF0IgRrIAAoAhAiEiAIIBJrIARLGyERIAAoAhghFyAAKAIMIRQgACgCCCEWQQYgACgCxAEiBCAEQQZPGyEYIAApA1AhGyAAKAIkIQsgACgCKCEJIAAoAlwhDAJAIAAoAtwBRQRAIABBLGohEAJ/IAggACgCHCIEa0GAA00EQEEYIAtrIQ8gCSEGIAwhByAODAELIAQgBEHgAGoiBSAEIAVLGyEPQRggC2shCiAOQQhqIQ0DQCAEIA9GRQRAIBAgBEEHcUECdGoiBigCACEFIAYgACgCUCAEIA1qKAAAQbHz3fF5bHMgCnY2AgAgCSAFQQJ2QcD///8DcSIVaiIGQT9BACAGLQAAIgdBP3FBAUYbIAdBAWtBP3FqIgc6AAAgBiAHaiAFOgAAIAwgFUECdGogB0ECdGogBDYCACAEQQFqIQQMAQsLQQggAUEBaiIFIA4gCEEgayIEaiIGa0EBaiIHIAdBCE8bQQAgBSAGTxsgBGohCkEYIAAoAiRrIQ8gACgCKCEGIAAoAlwhByAEIQUDQCAFIApPRQRAIBAgBUEHcUECdGogACgCUCAF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IAQgGWooAABBsfPd8XlscyAPdjYCACAGIAVBBHZB8P///wBxIhpqIgpBD0EAIAotAAAiDUEPcUEBRhsgDUEBa0EPcWoiDToAACAKIA1qIAU6AAAgByAaQQJ0aiANQQJ0aiAENgIAIARBAWohBAwBCwsgACAJNgIcIBAgCUEHcUECdGoiBCgCACEHIAQgG6cgCSAOaigACEGx893xeWxzQRggC2t2NgIADAELIAEoAAAhBCAAIAk2AhwgG6cgBEGx893xeWxzQRggC2t2IQcLIBIgESAXGyEQIBQgFmohDyAOIBRqIRJBASAYdCEGIAAgACgCWCAHajYCWCAHQf8BcUGBgoQIbCEKIAggB0EEdkHw////AHEiDWoiCy0AACEIQgAhG0EQIQQDQCALIARBBGsiBWooAAAgCnMiEUGAgYKEeHJBgYKECGsgEXJBgIGChHhxQYGBgQFsQRx2rSAbQgSGhCEbIARBB0sgBSEEDQALQQAhBSAbp0F/cyIEQf//A3EgCEEPcXYgBEEAIAhrQQ9xdHKtQv//A4MhGyAMIA1BAnRqIQwDQAJAIAZFIBtQcg0AIBunaCAIakEPcSIEBEAgDCAEQQJ0aigCACIEIBBJDQEgEyAFQQJ0aiAENgIAIAZBAWshBiAFQQFqIQULIBtCAX0gG4MhGwwBCwtBACEEIAsgCEEBa0EPcUEPQQAgCEEPcUEBRhtqIgY6AAAgBiALaiAHOgAAIAAgACgCHCIAQQFqNgIcIAwgBkECdGogADYCAEEDIQYgCUEDaiEMIAFBBGohByABQQNrIQkDQAJAIAQgBUYEQCAGIQAMAQsCQCAGAn8gFCATIARBAnRqKAIAIghNBEAgCCAOaiIAIAZqQQNrKAAAIAYgCWooAABHDQIgASAAIAIQBgwBCyAIIBZqIgAoAAAgASgAAEcNASAHIABBBGogAiAPIBIQBUEEagsiAE8NACADIAwgCGs2AgAgACIGIAFqIAJGDQELIARBAWohBAwBCwsgE0GAAmokACAACxcAIAAgASACIANCgIDs/Mub741PELUBCxcAIAAgASACIANCgIDs/Mub741PELYBCxcAIAAgASACIANCgIDs/Mub741PELcBCxcAIAAgASACIANCgICA2Mub741PELUBCxcAIAAgASACIANCgICA2Mub741PELYBCxcAIAAgASAC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DCAJEJIBIAEoAgwhBAJAIB4gByANaiIPTwRAIA0pAAAhIiAEIA0pAAg3AAggBCAiNwAAIAdBEUkNASANKQAQISIgASgCDCIEIA0pABg3ABggBCAiNwAQIAdBIUgNASANQRBqIQYgBCAHaiENIARBIGohBANAIAYpABAhIiAEIAYpABg3AAggBCAiNwAAIAYpACAhIiAEIAYpACg3ABggBCAiNwAQIAZBIGohBiAEQSBqIgQgDUkNAAsMAQsgBCANIA8gHhAHCyABIAEoAgwgB2o2AgwgASgCBCEEIAdBgIAETwRAIAFBATYCJCABIAQgASgCAGtBA3U2AigLIAQgDDYCACAEIAc7AQQgCUEDayIHQYCABE8EQCABQQI2AiQgASAEIAEoAgBrQQN1NgIoCyAEIAc7AQYgASAEQQhqNgIEIAkgD2oiDQUgByANagshDyAFQQFqIQUMAQsLIBFBAhCQAQwACwALvQEBAX8CQCAAKAIMIgZFDQAgACgCBCAGTw0AIAAoAhgiBiADTQRAIAMgBksEQCAAIAMgBmsQUgsgACADIAQQXyAAKAIYIQYLIAMgACgCFEkgAyAGT3INACAGIANrIgQgBUkNACACKAIAIgMEQCADQf8fSw0BIAQgASADQQN0akEEaygCAE0NAQsgACgCHCEAIAEgA0EDdGogBDYCBCABIAIoAgBBA3RqIABBA2o2AgAgAiACKAIAQQFqNgIACwtMACAEQQNxBEBBfw8LIAVBgCBJBEBBvn8PCyABKAIAQf4BTQRAIAAgASACIANBASAEEKkBDwsgAUH/ATYCACAAIAEgAiADIAQgBRAiC40CAgN/AX4gACACaiEEAkACQCACQQhOBEAgACABayICQXlIDQELA0AgACAETw0CIAAgAS0AADoAACAAQQFqIQAgAUEBaiEBDAALAAsCQAJAIAJBb0sNACAAIARBIGsiAksNACABKQAAIQYgACABKQAINwAIIAAgBjcAACACIABrIgVBEU4EQCAAQRBqIQAgASEDA0AgAykAECEGIAAgAykAGDcACCAAIAY3AAAgAykAICEGIAAgAykAKDcAGCAAIAY3ABAgA0EgaiEDIABBIGoiACACSQ0ACwsgASAFaiEBDAELIAAhAgsDQCACIARPDQEgAiABLQAAOgAAIAJBAWohAiABQQFqIQEMAAsACwuR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AAJ/IAIgACgClOsBBH8gACgC0OkBBUGAgAgLIgIgA2pBQGtLBEAgACABIAJqQSBqIgE2AvzrAUEBIQIgASADagwBCyADQYCABE0EQCAAIABBiOwBaiIBNgL86wFBACECIAEgA2oMAQsgACABIARqIgEgA2siAkHg/wNqIgQgAiAFGzYC/OsBQQIhAiADIARqQYCABGsgASAFGwshAyAAIAI2AoTsASAAIAM2AoDsAQtSAQN/AkAgACgCmOsBIgFFDQAgASgCACABKAK01QEiAiABKAK41QEiAxAUIAIEQCADIAEgAhEJAAwBCyABEBgLIABBADYCqOsBIABCADcDmOsBCyYAIANBGHQgAUEQdGogACAAQQh0IAJyIANBAUYbcq1CgYCAgBB+C0UBAX8CQCAAKAIkRQRAIABBARDQAUGIf0sNAQsgACgCDCICIAFqIgEgACgCFEsEQCAAQQE6ABxBAA8LIAAgATYCDAsgAgtPAQF/IAFFIAAgAhDQAUGIf0tyRQRAIAAoAhQgAWsiAyAAKAIMSQRAIABBAToAHEEADwsgACgCECADSwRAIAAgAzYCEAsgACADNgIUCyADC00BAX8CQCAAKAIkRQRAIAAoAggiAiABQQNqQfz/AXFqIgEgACgCBE0NAQsgAEEBOgAcQQAPCyAAIAE2AhAgACABNgIMIAAgATYCCCACC7oBAQF/IwBBEGsiCiQAIAogAzYCDCAIIApBDGogASACIAggCRAiGkEAIQMCfwJAAkACQAJAIAAOAgACAQsgBiAHIAggCigCDBBqIQMMAQsgAEF+cUECRw0AIAQgCCAKKAIMEGsiA0GIf0sNAQsgASACaiEAA0AgACABTUUEQCABIQggBQRAIAUgAS0AAGohCAsgAUEBaiEBIAMgCC0AAGohAwwBCwsgA0EDdgwBCyACQQpsCyAKQRBqJAALXAEEfyAAKAIEIAAoAgAiA2tBA3UhBANAIAIgBEZFBEAgASADIAJBA3RqLwEEaiEBIAAoAiggAkYEQCABQYCABGogASAAKAIkQQFGGyEBCyACQQFqIQIMAQsLIAELrAMBDH8jAEEQayIFJAAgACABKALoECABKALsECABQcABaiABQawbaiABKALQEiABKALUEhCeASICQYh/TQRAIAEoAtQSIQYgASgC0BIhAiABKALsECEHIAAoAhQh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IAAgBmogACAFaiATEAYhDCAGIANrIQgCQCAGIBRNBEAgAykAACEhIAEoAgwiBSADKQAINwAIIAUgITcAACAIQRFJDQEgAykAECEhIAEoAgwiByADKQAYNwAYIAcgITcAECAIQSFIDQEgA0EQaiEFIAcgCGohAyAHQSBqIQcDQCAFKQAQISEgByAFKQAYNwAIIAcgITcAACAFKQAgISEgByAFKQAoNwAYIAcgITcAECAFQSBqIQUgB0EgaiIHIANJDQALDAELIAEoAgwgAyADIAhqIBQQBwsgASABKAIMIAhqNgIMIAEoAgQhAyAIQYCABE8EQCABQQE2AiQgASADIAEoAgBrQQN1NgIoCyADIAk2AgAgAyAIOwEEIAAgDGoiAEEDayIFQYCABE8EQCABQQI2AiQgASADIAEoAgBrQQN1NgIoCyADIAU7AQYgASADQQhqNgIEIAQhByAAIAZqIgUhAyAFIBFLDQAgCyAQIBlqKAAAQbHz3fF5bCAPdkECdGogEEECajYCACALIAVBAmsiACgAAEGx893xeWwgD3ZBAnRqIAAgCms2AgBBACEHIARFDQADQAJAIAQhByAFIBFLDQAgBSgAACIAIAUgBGsoAABHDQAgBUEEaiIDIAMgBGsgExAGIQQgCyAAQbHz3fF5bCAPdkECdGogBSAKazYCACABKAIMIQACQCAFIBRNBEAgBSkAACEhIAAgBSkACDcACCAAICE3AAAMAQsgACAFIAUgFBAHCyABKAIEIgBBATYCACAAQQA7AQQgBEEBaiIGQYCABE8EQCABQQI2AiQgASAAIAEoAgBrQQN1NgIoCyADIARqIQUgACAGOwEGIAEgAEEIajYCBCAOIQQgByEODAELCyAFIQMMAAsACyATQSBrIQ9BwAAgBGutISIDQCAFIBdqIg1BAWoiDCARTw0GQQAgDmshFSAFQYABaiEQIAVBAWohCCALIAUpAABCgMaV/cub741PfiAiiKciAEECdGooAgAhBCAFKQABISEgFyEJAkADQAJAIAwhEiANIgYgFWoiDSgAACEUIAsgAEECdGogBSAKayIMNgIAICFCgMaV/cub741PfiAiiKchAAJAAkAgDgRAIAYoAAAgFEYNAQsCQAJAAkAgBCAWSQ0AIAUoAAAgBCAKaigAAEcNACAIIQYgBSEIDAELIAsgAEECdGoi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DSAEayEFIAYgBGshCEEBIQkgByEEDAMLIAkgEmohDCALIABBAnRqKAIAIQQgEikAACEhIAYgCWoiDSAQTwRAIBBBgAFqIRAgCUEBaiEJCyASIQggBiEFIAwgEUkNAQwHCwsgDiEEIAchDgsgACAIaiAAIAVqIBMQBiENIAggA2shBgJAIAggD00EQCADKQAAISEgASgCDCIFIAMpAAg3AAggBSAhNwAAIAZBEUkNASADKQAQISEgASgCDCIHIAMpABg3ABggByAhNwAQIAZBIUgNASADQRBqIQUgBiAHaiEDIAdBIGohBwNAIAUpABAhISAHIAUpABg3AAggByAhNwAAIAUpACAhISAHIAUpACg3ABggByAhNwAQIAVBIGohBSAHQSBqIgcgA0kNAAsMAQsgASgCDCADIAMgBmogDxAHCyABIAEoAgwgBmo2AgwgASgCBCEDIAZBgIAETwRAIAFBATYCJCABIAMgASgCAGtBA3U2AigLIAMgCTYCACADIAY7AQQgACANaiIAQQNrIgVBgIAETwRAIAFBAjYCJCABIAMgASgCAGtBA3U2AigLIAMgBTsBBiABIANBCGo2AgQgBCEHIAAgCGoiBSEDIAUgEUsNACALIAwgGWopAABCgICA2Mub741PfiAiiKdBAnRqIAxBAmo2AgAgCyAFQQJrIgApAABCgICA2Mub741PfiAiiKdBAnRqIAAgCms2AgBBACEHIARFDQADQAJAIAQhByAFIBFLDQAgBSgAACAFIARrKAAARw0AIAVBBGoiAyADIARrIBMQBiEEIAsgBSkAAEKAgIDYy5vvjU9+ICKIp0ECdGogBSAKazYCACABKAIMIQACQCAFIA9NBEAgBSkAACEhIAAgBSkACDcACCAAICE3AAAMAQsgACAFIAUgDxAHCyABKAIEIgBBATYCACAAQQA7AQQgBEEBaiIGQYCABE8EQCABQQI2AiQgASAAIAEoAgBrQQN1NgIoCyADIARqIQUgACAGOwEGIAEgAEEIajYCBCAOIQQgByEODAELCyAFIQMMAAsACyATQSBrIQ9BwAAgBGutISIDQCAFIBdqIg1BAWoiDCARTw0DQQAgDmshFSAFQYABaiEQIAVBAWohBiALIAUpAABCgMaV/cub741PfiAiiKciBEECdGooAgAhACAFKQABISEgFyEJAkADQAJAIAwhEiANIgggFWoiDSgAACEUIAsgBEECdGogBSAKayIMNgIAICFCgMaV/cub741PfiAiiKchBAJAAkAgDgRAIAgoAAAgFEYNAQsCQAJAIAUoAABB+jwgACAKaiAAIBZJIg0bKAAARyANckUEQCAGIQggBSEGDAELIAsgBEECdGoiBCgCACEAIAgpAAAgBCAGIAprIgw2AgBCgMaV/cub741PfiAiiKchBCAGKAAAQfo8IAAgCmogACAWSSIFGygAAEcgBXINAyAJQQVPDQELIAsgBEECdGogCCAKazYCAAsgBiAAIApqIgVrIghBA2ohCUEEIQADQCAFIBhNIAMgBk9yDQMgBkEBayIELQAAIAVBAWsiBy0AAEcNAyAAQQFqIQAgByEFIAQhBgwACwALIA1BAWstAAAhACAIQQFrLQAAIQUgCyAEQQJ0aiAGIAprNgIAQQVBBCAAIAVGIgQbIQAgDSAEayEFIAggBGshBkEBIQkgByEEDAMLIAkgEmohDCALIARBAnRqKAIAIQAgEikAACEhIAggCWoiDSAQTwRAIBBBgAFqIRAgCUEBaiEJCyASIQYgCCEFIAwgEUkNAQwGCwsgDiEEIAghDgsgACAGaiAAIAVqIBMQBiENIAYgA2shCAJAIAYgD00EQCADKQAAISEgASgCDCIFIAMpAAg3AAggBSAhNwAAIAhBEUkNASADKQAQISEgASgCDCIHIAMpABg3ABggByAhNwAQIAhBIUgNASADQRBqIQUgByAIaiEDIAdBIGohBwNAIAUpABAhISAHIAUpABg3AAggByAhNwAAIAUpACAhISAHIAUpACg3ABggByAhNwAQIAVBIGohBSAHQSBqIgcgA0kNAAsMAQsgASgCDCADIAMgCGogDxAHCyABIAEoAgwgCGo2AgwgASgCBCEDIAhBgIAETwRAIAFBATYCJCABIAMgASgCAGtBA3U2AigLIAMgCTYCACADIAg7AQQgACANaiIAQQNrIgVBgIAETwRAIAFBAjYCJCABIAMgASgCAGtBA3U2AigLIAMgBTsBBiABIANBCGo2AgQgBCEHIAAgBmoiBSEDIAUgEUsNACALIAwgGWopAABCgMaV/cub741PfiAiiKdBAnRqIAxBAmo2AgAgCyAFQQJrIgApAABCgMaV/cub741PfiAiiKdBAnRqIAAgCms2AgBBACEHIARFDQADQAJAIAQhByAFIBFLDQAgBSgAACAFIARrKAAARw0AIAVBBGoiAyADIARrIBMQBiEEIAsgBSkAAEKAxpX9y5vvjU9+ICKIp0ECdGogBSAKazYCACABKAIMIQACQCAFIA9NBEAgBSkAACEhIAAgBSkACDcACCAAICE3AAAMAQsgACAFIAUgDxAHCyABKAIEIgBBATYCACAAQQA7AQQgBEEBaiIGQYCABE8EQCABQQI2AiQgASAAIAEoAgBrQQN1NgIoCyADIARqIQUgACAGOwEGIAEgAEEIajYCBCAOIQQgByEODAELCyAFIQMMAAsACyATQSBrIQ9BwAAgBGutISIDQCAFIBdqIg1BAWoiDCARTw0CQQAgDmshFSAFQYABaiEQIAVBAWohBiALIAUpAABCgIDs/Mub741PfiAiiKciBEECdGooAgAhACAFKQABISEgFyEJAkADQAJAIAwhEiANIgggFWoiDSgAACEUIAsgBEECdGogBSAKayIMNgIAICFCgIDs/Mub741PfiAiiKchBAJAAkAgDgRAIAgoAAAgFEYNAQsCQAJAIAUoAABB+jwgACAKaiAAIBZJIg0bKAAARyANckUEQCAGIQggBSEGDAELIAsgBEECdGoiBCgCACEAIAgpAAAgBCAGIAprIgw2AgBCgIDs/Mub741PfiAiiKchBCAGKAAAQfo8IAAgCmogACAWSSIFGygAAEcgBXINAyAJQQVPDQELIAsgBEECdGogCCAKazYCAAsgBiAAIApqIgVrIghBA2ohCUEEIQADQCAFIBhNIAMgBk9yDQMgBkEBayIELQAAIAVBAWsiBy0AAEcNAyAAQQFqIQAgByEFIAQhBgwACwALIA1BAWstAAAhACAIQQFrLQAAIQUgCyAEQQJ0aiAGIAprNgIAQQVBBCAAIAVGIgQbIQAgDSAEayEFIAggBGshBkEBIQkgByEEDAMLIAkgEmohDCALIARBAnRqKAIAIQAgEikAACEhIAggCWoiDSAQTwRAIBBBgAFqIRAgCUEBaiEJCyASIQYgCCEFIAwgEUkNAQwFCwsgDiEEIAghDgsgACAGaiAAIAVqIBMQBiENIAYgA2shCAJAIAYgD00EQCADKQAAISEgASgCDCIFIAMpAAg3AAggBSAhNwAAIAhBEUkNASADKQAQISEgASgCDCIHIAMpABg3ABggByAhNwAQIAhBIUgNASADQRBqIQUgByAIaiEDIAdBIGohBwNAIAUpABAhISAHIAUpABg3AAggByAhNwAAIAUpACAhISAHIAUpACg3ABggByAhNwAQIAVBIGohBSAHQSBqIgcgA0kNAAsMAQsgASgCDCADIAMgCGogDxAHCyABIAEoAgwgCGo2AgwgASgCBCEDIAhBgIAETwRAIAFBATYCJCABIAMgASgCAGtBA3U2AigLIAMgCTYCACADIAg7AQQgACANaiIAQQNrIgVBgIAETwRAIAFBAjYCJCABIAMgASgCAGtBA3U2AigLIAMgBTsBBiABIANBCGo2AgQgBCEHIAAgBmoiBSEDIAUgEUsNACALIAwgGWopAABCgIDs/Mub741PfiAiiKdBAnRqIAxBAmo2AgAgCyAFQQJrIgApAABCgIDs/Mub741PfiAiiKdBAnRqIAAgCms2AgBBACEHIARFDQADQAJAIAQhByAFIBFLDQAgBSgAACAFIARrKAAARw0AIAVBBGoiAyADIARrIBMQBiEEIAsgBSkAAEKAgOz8y5vvjU9+ICKIp0ECdGogBSAKazYCACABKAIMIQACQCAFIA9NBEAgBSkAACEhIAAgBSkACDcACCAAICE3AAAMAQsgACAFIAUgDxAHCyABKAIEIgBBATYCACAAQQA7AQQgBEEBaiIGQYCABE8EQCABQQI2AiQgASAAIAEoAgBrQQN1NgIoCyADIARqIQUgACAGOwEGIAEgAEEIajYCBCAOIQQgByEODAELCyAFIQMMAAsACyATQSBrIQ9BwAAgBGutISIDQCAFIBdqIg1BAWoiDCARTw0BQQAgDmshFSAFQYABaiEQIAVBAWohBiALIAUpAABCgICA2Mub741PfiAiiKciBEECdGooAgAhACAFKQABISEgFyEJAkADQAJAIAwhEiANIgggFWoiDSgAACEUIAsgBEECdGogBSAKayIMNgIAICFCgICA2Mub741PfiAiiKchBAJAAkAgDgRAIAgoAAAgFEYNAQsCQAJAIAUoAABB+jwgACAKaiAAIBZJIg0bKAAARyANckUEQCAGIQggBSEGDAELIAsgBEECdGoiBCgCACEAIAgpAAAgBCAGIAprIgw2AgBCgICA2Mub741PfiAiiKchBCAGKAAAQfo8IAAgCmogACAWSSIFGygAAEcgBXINAyAJQQVPDQELIAsgBEECdGogCCAKazYCAAsgBiAAIApqIgVrIghBA2ohCUEEIQADQCAFIBhNIAMgBk9yDQMgBkEBayIELQAAIAVBAWsiBy0AAEcNAyAAQQFqIQAgByEFIAQhBgwACwALIA1BAWstAAAhACAIQQFrLQAAIQUgCyAEQQJ0aiAGIAprNgIAQQVBBCAAIAVGIgQbIQAgDSAEayEFIAggBGshBkEBIQkgByEEDAMLIAkgEmohDCALIARBAnRqKAIAIQAgEikAACEhIAggCWoiDSAQTwRAIBBBgAFqIRAgCUEBaiEJCyASIQYgCCEFIAwgEUkNAQwECwsgDiEEIAghDgsgACAGaiAAIAVqIBMQBiENIAYgA2shCAJAIAYgD00EQCADKQAAISEgASgCDCIFIAMpAAg3AAggBSAhNwAAIAhBEUkNASADKQAQISEgASgCDCIHIAMpABg3ABggByAhNwAQIAhBIUgNASADQRBqIQUgByAIaiEDIAdBIGohBwNAIAUpABAhISAHIAUpABg3AAggByAhNwAAIAUpACAhISAHIAUpACg3ABggByAhNwAQIAVBIGohBSAHQSBqIgcgA0kNAAsMAQsgASgCDCADIAMgCGogDxAHCyABIAEoAgwgCGo2AgwgASgCBCEDIAhBgIAETwRAIAFBATYCJCABIAMgASgCAGtBA3U2AigLIAMgCTYCACADIAg7AQQgACANaiIAQQNrIgVBgIAETwRAIAFBAjYCJCABIAMgASgCAGtBA3U2AigLIAMgBTsBBiABIANBCGo2AgQgBCEHIAAgBmoiBSEDIAUgEUsNACALIAwgGWopAABCgICA2Mub741PfiAiiKdBAnRqIAxBAmo2AgAgCyAFQQJrIgApAABCgICA2Mub741PfiAiiKdBAnRqIAAgCms2AgBBACEHIARFDQADQAJAIAQhByAFIBFLDQAgBSgAACAFIARrKAAARw0AIAVBBGoiAyADIARrIBMQBiEEIAsgBSkAAEKAgIDYy5vvjU9+ICKIp0ECdGogBSAKazYCACABKAIMIQACQCAFIA9NBEAgBSkAACEhIAAgBSkACDcACCAAICE3AAAMAQsgACAFIAUgDxAHCyABKAIEIgBBATYCACAAQQA7AQQgBEEBaiIGQYCABE8EQCABQQI2AiQgASAAIAEo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EWoiBSgAACABKAAARw0BIAwgBUEEaiACIBIgExAFQQRqCyIFIABNDQAgAyALIAZrNgIAIAUiACABaiACRg0DCyAGIA9NDQAgB0EBayEHIAkgBiAUcUECdGohBQwBCwsgACEFCyAFC/sJAiN/AX4jAEEQayIUJAACQCADIAEoAgQiCyABKAIcIgJqSQ0AIAMgC2shCgNAIAIgCk9FBEAgASACIAtqIAQgCiAJQQAQECACaiECDAELCyABIAo2AhxBASABKAIQIgIgAyABKAIEIhVrIg1BASABKAK4AXQiCmsgAiANIAJrIApLGyABKAIYGyIWIBZBAU0bISIgDUF/IAEoArwBQQFrdEF/cyIbayICQQAgAiANTRshHCABKAJcIAMpAAAgCH4iLUHAACABKALAAWutiKdBAnRqIiMoAgAhDCABKAK0ASISKAIAIh0gEigCBCIeayIXQX8gEigCvAFBAWt0QX9zIh9rIBIoAhAiGCAXIBhrIB9LGyEkIB4gFiAXayIZayElIA0gGCAZamshJiAGIAZBA2oiAiACIAZJGyEnIAEoAmQiKCANIBtxQQN0aiITQQRqIQ9B/x8gASgCzAEiAiACQf8fTxshKSADQQRqIRogB0EBayEKIBUgASgCDCIgaiEhIA0gIGshKiANQQlqIRBBASABKALEAXQhESASKALAASErIAYhAgNAIAIgJ0cEQCANAn8gAkEDRgRAIAUoAgBBAWsMAQsgBSACQQJ0aigCAAsiC2shBwJAAn8gKiALQQFrIixLBEAgByAWSQ0CIAMoAAAgAyALaygAAEcNAiAaIBogC2sgBBAGDAELICYgLE0gByAga0F8S3INASADKAAAIAcgJWoiBygAAEcNASAaIAdBBGogBCAdICEQBQtBBGoiByAKTQ0AIAAgDkEDdGoiCiAHNgIEIAogAiAGa0EBajYCACAOQQFqIQ4gByApSw0DIAciCiADaiAERg0DCyACQQFqIQIMAQsLICMgDTYCACANQQNqIQZBACEHQQAhBQJAAkACQAJAAkADQCARRSAMICJJcg0CIAogAyAFIAcgBSAHSRsiAmogDCAVaiINIAJqIAQQBiACaiICSQRAIAAgDkEDdGoiCiACNgIEIAogBiAMazYCACACIAxqIBAgAiAQIAxrSxshECAOQQFqIQ4gAiADaiAERiACQYAgS3INBSACIQoLICggDCAbcUEDdGohCwJAAkACQCACIA1qLQAAIAIgA2otAABJBEAgEyAMNgIAIAwgHEsNASAUQQxqIRMMBQsgDyAMNgIAIAwgHE0NAiALIQ8gAiEHDAELIAIhBSALQQRqIhMhCwsgEUEBayERIAsoAgAhDAwBCwsgFEEMaiEPCyAPQQA2AgAgE0EANgIADAELIA9BADYCACATQQA2AgAgEUUNAgsgFSAZaiEPIBIoAlwgLUHAACAra62Ip0ECdGohAiASKAJkIQ1BACEMQQAhBwNAIBFFDQIgAigCACIFIBhNDQIgCiADIAcgDCAHIAxJGyICaiAFIB5qIgsgAmogBCAdICEQBSACaiICSQRAIAAgDkEDdGoiCiACNgIEIAogBiAFIBlqIgprNgIAIAIgCmogECACIBAgCmtLGyEQIA5BAWohDiACQYAgSw0DIAIhCiACIANqIARGDQMLIAUgJE0NAiARQQFrIREgAiAHIAsgBSAPaiACIAVqIBdJGyACai0AACACIANqLQAASSILGyEHIAwgAiALGyEMIA0gBSAfcUEDdGogC0ECdGohAgwACwALIA9BADYCACATQQA2AgALIAEgEEEIazYCHAsgFEEQaiQAIA4LsgcBG38jAEEQayIUJAACQCADIAEoAgQiDSABKAIcIgJqSQ0AIAMgDWshCwNAIAIgC09FBEAgASACIA1qIAQgCyAJQQEQECACaiECDAELCyABIAs2AhxBASABKAIQIgIgAyABKAIEIhBrIgxBASABKAK4AXQiC2sgAiAMIAJrIAtLGyABKAIYGyIVIBVBAU0bIR0gDEF/IAEoArwBQQFrdEF/cyIZayICQQAgAiAMTRshGiAMIBVrIR4gBiAGQQNqIgIgAiAGSRshHyABKAJkIiAgDCAZcUEDdGoiEUEEaiESIAEoAlwgAykAACAIfkHAACABKALAAWutiKdBAnRqIiEoAgAhCkH/HyABKALMASICIAJB/x9PGyEiIANBBGohFiAHQQFrIQsgECABKAIMIg9qIRsgASgCCCIXIA9qIRwgDCAPayEjIAxBCWohE0EBIAEoAsQBdCEYIAYhAgNAIAIgH0cEQCAMAn8gAkEDRgRAIAUoAgBBAWsMAQsgBSACQQJ0aigCAAsiDWshBwJAAn8gIyANQQFrIiRLBEAgByAVSQ0CIAMoAAAgAyANaygAAEcNAiAWIBYgDWsgBBAGDAELIB4gJE0gByAPa0F8S3INASADKAAAIAcgF2oiBygAAEcNASAWIAdBBGogBCAcIBsQBQtBBGoiByALTQ0AIAAgDkEDdGoiCyAHNgIEIAsgAiAGa0EBajYCACAOQQFqIQ4gByAiSw0DIAciCyADaiAERg0DCyACQQFqIQIMAQsLICEgDDYCACAMQQNqIQxBACEHQQAhBQJAA0AgGEUgCiAdSXINASADIAUgByAFIAdJGyICaiEGAn8gDyACIApqTQRAIAYgCiAQaiACaiAEEAYgAmohAiAQDAELIBcgECAGIAogF2ogAmogBCAcIBsQBSACaiICIApqIA9JGwshBiACIAtLBEAgACAOQQN0aiILIAI2AgQgCyAMIAprNgIAIAIgCmogEyACIBMgCmtLGyETIA5BAWohDiACQYAgSw0CIAIhCyACIANqIARGDQILICAgCiAZcUEDdGohDQJAAkACQCAGIApqIAJqLQAAIAIgA2otAABJBEAgESAKNgIAIAogGksNASAUQQxqIREMBQsgEiAKNgIAIAogGk0NAiANIRIgAiEHDAELIAIhBSANQQRqIhEhDQsgGEEBayEYIA0oAgAhCgwBCwsgFEEMaiESCyASQQA2AgAgEUEANgIAIAEgE0EIazYCHAsgFEEQaiQAIA4LmwYBFH8jAEEQayITJAACQCADIAEoAgQiCiABKAIcIgJqSQ0AIAMgCmshCwNAIAIgC09FBEAgASACIApqIAQgCyAJQQAQECACaiECDAELCyABIAs2AhxBASABKAIQIgIgAyABKAIEIhdrIgxBASABKAK4AXQiC2sgAiAMIAJrIAtLGyABKAIYGyIPIA9BAU0bIRggDEF/IAEoArwBQQFrdEF/cyIUayICQQAgAiAMTRshFSAGIAZBA2oiAiACIAZJGyEZIAEoAmQiGiAMIBRxQQN0aiIQQQRqIREgASgCXCADKQAAIAh+QcAAIAEoAsABa62Ip0ECdGoiGygCACENQf8fIAEoAswBIgIgAkH/H08bIRwgA0EEaiEWIAdBAWshCyAMIAEoAgxrIR0gDEEJaiESQQEgASgCxAF0IQcgBiECA0AgAiAZRwRAAkACfyACQQNGBEAgBSgCAEEBawwBCyAFIAJBAnRqKAIACyIKQQFrIB1P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ASAJIBgpAgA3A3ggDCAlIAlB+ABqIAlBzAJqICQgDyAnICEQGiEKDAELIAMgGmohCyADIAxqIQggGCgCCCENIBopAAAhSyAMIBopAAg3AAggDCBLNwAAAkAgA0ERSQ0AIB8pAAAhSyAMIB8pAAg3ABggDCBLNwAQIANBEGtBEUgNACAMQSBqIQMgHyETA0AgEykAECFLIAMgEykAGDcACCADIEs3AAAgEykAICFLIAMgEykAKDcAGCADIEs3ABAgE0EgaiETIANBIGoiAyAISQ0ACwsgCCANayEDIAkgCzYCzAIgCCAPayANSQRAIA0gCCAna0sNDyAhICEgAyAPayILaiIDIBVqTwRAIAggAyAVEAoaDAILIAsgFWohFSAIIANBACALaxAKIAtrIQggDyEDCyANQRBPBEAgAykAACFLIAggAykACDcACCAIIEs3AAAgFUERSA0BIAggFWohCyAIQRBqIQgDQCADKQAQIUsgCCADKQAYNwAIIAggSzcAACADKQAgIUsgCCADKQAoNwAYIAggSzcAECADQSBqIQMgCEEgaiIIIAtJDQALDAELAkAgDUEHTQRAIAggAy0AADoAACAIIAMtAAE6AAEgCCADLQACOgACIAggAy0AAzoAAyAIIAMgDUECdCILQeDPAGooAgBqIgMoAAA2AAQgAyALQYDQAGooAgBrIQMMAQsgCCADKQAANwAACyAVQQlJDQAgCCAVaiENIAhBCGoiCyADQQhqIgNrQQ9MBEADQCALIAMpAAA3AAAgA0EIaiEDIAtBCGoiCyANSQ0ADAILAAsgAykAACFLIAsgAykACDcACCALIEs3AAAgFUEZSA0AIAhBGGohCANAIAMpABAhSyAIIAMpABg3AAggCCBLNwAAIAMpACAhSyAIIAMpACg3ABggCCBLNwAQIANBIGohAyAIQSBqIgggDUkNAAsLIApBiH9LBEAgCiEEDA4LIBggEDYCCCAYIA42AgQgGCAUNgIAICQhFwwDCyANQSBrIQgCQAJAIA0gF0sNACAMIBgoAgQiFiADaiIKaiAISw0AIApBIGogJSAMa00NAQsgCSAYKAIINgKQASAJIBgpAgA3A4gBIAwgJSAIIAlBiAFqIAlBzAJqIBcgDyAnICEQciEKDAILIAMgDGohCCAYKAIIIRMgCykAACFLIAwgCykACDcACCAM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SyAMIBMpABg3ABggDCBLNwAQIAhBEGtBEUgNACATQRBqIQMgDEEgaiEIA0AgAykAECFLIAggAykAGDcACCAIIEs3AAAgAykAICFLIAggAykAKDcAGCAIIEs3ABAgA0EgaiEDIAhBIGoiCCAKSQ0ACwsgCiANayEDIAkgCzYCzAIgCiAPayANSQRAIA0gCiAna0sNDSAhICEgAyAPayIIaiIDIBVqTwRAIAogAyAVEAoaDAMLIAggFWohFSAKIANBACAIaxAKIAhrIQogDyEDCyANQRBPBEAgAykAACFLIAogAykACDcACCAKIEs3AAAgFUERSA0CIAogFWohCyAKQRBqIQgDQCADKQAQIUsgCCADKQAYNwAIIAggSzcAACADKQAgIUsgCCADKQAoNwAYIAggSzcAECADQSBqIQMgCEEgaiIIIAtJDQALDAILAkAgDUEHTQRAIAogAy0AADoAACAKIAMtAAE6AAEgCiADLQACOgACIAogAy0AAzoAAyAKIAMgDUECdCIIQeDPAGooAgBqIgMoAAA2AAQgAyAIQYDQAGooAgBrIQMMAQsgCiADKQAANwAACyAVQQlJDQEgCiAVaiELIApBCGoiCCADQQhqIgNrQQ9MBEADQCAIIAMpAAA3AAAgA0EIaiEDIAhBCGoiCCALSQ0ADAMLAAsgAykAACFLIAggAykACDcACCAIIEs3AAAgFUEZSA0BIApBGGohCANAIAMpABAhSyAIIAMpABg3AAggCCBLNwAAIAMpACAhSyAIIAMpACg3ABggCCBLNwAQIANBIGohAyAIQSBqIgggC0kNAAsMAQsCQAJAIAkoAswCIgogDSgCACIDaiILIBdLDQAgDCANKAIEIhAgA2oiDmogHUsNACAOQSBqICUgDGtNDQELIAkgDSgCCDYCcCAJIA0pAgA3A2ggDCAlIAlB6ABqIAlBzAJqIBcgDyAnICEQGiEODAELIAMgDGohCCANKAIIIQ0gCikAACFLIAwgCikACDcACCAMIEs3AAACQCADQRFJDQAgCikAECFLIAwgCikAGDcAGCAMIEs3ABAgA0EQa0ERSA0AIApBEGohAyAMQSBqIQoDQCADKQAQIUsgCiADKQAYNwAIIAogSzcAACADKQAgIUsgCiADKQAoNwAYIAogSzcAECADQSBqIQMgCkEgaiIKIAhJDQALCyAI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a0EPTARAA0AgCCADKQAANwAAIANBCGohAyAIQQhqIgggDUkNAAwCCwALIAMpAAAhSyAIIAMpAAg3AAggCCBLNwAAIAxBGUgNACAKQRhqIQgDQCADKQAQIUsgCCADKQAYNwAIIAggSzcAACADKQAgIUsgCCADKQAoNwAYIAggSzcAECADQSBqIQMgCEEgaiIIIA1JDQALCyAEQYh/Sw0MIBFBAWshESAEIAtqIQsMAQsLIBFBAEwNCCADIA5HBEBBun8hBCADIA5rIgMgICALa0sNCyALIA4gAxBZIAMgC2ohCyAIIANrIQgLIAkgAEGI7AFqIgM2AswCIABBADYChOwBIABBiOwFaiEWIAkgCDYCqAEgCSAMNgKsASAJIBA2ArABAkACQAJAIAhBgIAESg0AIAsgCCAMaiIEaiAgQSBrSw0AIARBIGogICALa00NAQsgCSAJKAKwATYCMCAJIAkpA6gBNwMoIAsgICAJQShqIAlBzAJqIBYgDyAjIBoQGiEEDAELIAMgCGohDSAIIAtqIQogAykAACFLIAsgAykACDcACCALIEs3AAACQCAIQRFJDQAgACkAmOwBIUsgCyAAQaDsAWopAAA3ABggCyBLNwAQIAhBEGtBEUgNACAAQZjsAWohAyALQSBqIQgDQCADKQAQIUsgCCADKQAYNwAIIAggSzcAACADKQAgIUsgCCADKQAoNwAYIAggSzcAECADQSBqIQMgCEEgaiIIIApJDQALCyAKIBBrIQMgCSANNgLMAiAKIA9rIBBJBEAgECAKICNrSw0KIBogGiADIA9rIghqIgMgDGpPBEAgCiADIAwQChoMAgsgCiADQQAgCGsQCiAJIAggDGoiDDYCrAEgCGshCiAPIQMLIBBBEE8EQCADKQAAIUsgCiADKQAINwAIIAogSzcAACAMQRFIDQEgCiAMaiENIApBEGohCANAIAMpABAhSyAIIAMpABg3AAggCCBLNwAAIAMpACAhSyAIIAMpACg3ABggCCBLNwAQIANBIGohAyAIQSBqIgggDUkNAAsMAQsCQCAQQQdNBEAgCiADLQAAOgAAIAogAy0AAToAASAKIAMtAAI6AAIgCiADLQADOgADIAogAyAQQQJ0IghB4M8AaigCAGoiAygAADYABCADIAhBgNAAaigCAGshAwwBCyAKIAMpAAA3AAALIAko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ayIDNgLoASAJIAMoAAA2AuABDAELIAMgCSgC7AEiDkYNACAJIAQgAyAOayAEQQN2IgQgAyAEayAOSRsiBEEDdGs2AuQBIAkgAyAEayIDNgLoASAJIAMoAAA2AuABCyAJIAg2AqgBIAkgETYCrAEgCSAKNgKwAQJAAkACQCAJKALMAiIDIAhqIg4gFksNACALIAggEWoiBGogFUsNACAEQSBqICAgC2tNDQELIAkgCSgCsAE2AiAgCSAJKQOoATcDGCALICAgCUEYaiAJQcwCaiAWIA8gIyAaEBohBAwBCyAIIAtqIQwgAykAACFLIAsgAykACDcACCALIEs3AAACQCAIQRFJDQAgAykAECFLIAsgAykAGDcAGCALIEs3ABAgCEEQa0ERSA0AIANBEGohAyALQSBqIQgDQCADKQAQIUsgCCADKQAYNwAIIAggSzcAACADKQAgIUsgCCADKQAoNwAYIAggSzcAECADQSBqIQMgCEEgaiIIIAxJDQALCyAMIAprIQMgCSAONgLMAiAMIA9rIApJBEAgCiAMICNrSw0LIBogGiADIA9rIg5qIgMgEWpPBEAgDCADIBEQChoMAgsgDCADQQAgDmsQCiAJIA4gEWoiETYCrAEgDmshDCAPIQMLIApBEE8EQCADKQAAIUsgDCADKQAINwAIIAwgSzcAACARQRFIDQEgDCARaiEKIAxBEGohCANAIAMpABAhSyAIIAMpABg3AAggCCBLNwAAIAMpACAhSyAIIAMpACg3ABggCCBLNwAQIANBIGohAyAIQSBqIgggCkkNAAsMAQsCQCAKQQdNBEAgDCADLQAAOgAAIAwgAy0AAToAASAMIAMtAAI6AAIgDCADLQADOgADIAwgAyAKQQJ0IghB4M8AaigCAGoiAygAADYABCADIAhBgNAAaigCAGshAwwBCyAMIAMpAAA3AAALIAkoAqwBIg5BCUkNACAMIA5qIQogDEEIaiIIIANBCGoiA2tBD0wEQANAIAggAykAADcAACADQQhqIQMgCEEIaiIIIApJDQAMAgsACyADKQAAIUsgCCADKQAINwAIIAggSzcAACAOQRlIDQAgDEEYaiEIA0AgAykAECFLIAggAykAGDcACCAIIEs3AAAgAykAICFLIAggAykAKDcAGCAIIEs3ABAgA0EgaiEDIAhBIGoiCCAKSQ0ACwsg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AWoiB0H//wNLDQEMAgsCQAJAIAcgDkkNACAHIAtqIgcpAAAgIlINACAAQQhqIAdBCGogChAGQQhqIQUgACAHayEIA0AgACADTSAHIA9Ncg0CIABBAWsiBi0AACAHQQFrIgctAABHDQIgBUEBaiEFIAYhAAwACwALAkAgCSAUc0H/AXENACAJQQh2IgcgGU0NACAHIBJqIgkpAAAgIlINACAAQQhqIAlBCGogCiATIA8QBUEIaiEFIAwgByAWamshCANAIAkgGk0gACADTXINAiAAQQFrIgYtAAAgCUEBayIJLQAARw0CIAVBAWohBSAGIQAMAAsACwJAAkACQCAIIA5LBEAgCCALaiIHKAAAIAAoAABHDQEMAwsgDSAec0H/AXENACANQQh2IgggGU0NACAIIBJqIgcoAAAgACgAAEYNAQsgACAAIANrQQh1akEBaiEADAULIAggFmohCAsgFSAAKQABIiJC48iVvcub741PfiImICSIp0ECdGoiBigCACEFIBwgJiAliKciFEEGdkH8//8fcWooAgAhDSAGIBE2AgAgAEEBaiEGAkACQCAFIA5JDQAgBSALaiIJKQAAICJSDQAgAEEJaiAJQQhqIAoQBkEIaiEFIAYgCWshCANAIAkgD00gAyAGT3INAiAGQQFrIgAtAAAgCUEBayIJLQAARw0CIAVBAWohBSAAIQYMAAsACwJAIA0gFHNB/wFxDQAgDUEIdiINIBlNDQAgDSASaiIJKQAAICJSDQAgAEEJaiAJQQhqIAogEyAPEAVBCGohBSARIA0gFmprIQgDQCAJIBpNIAMgBk9yDQIgBkEBayIALQAAIAlBAWsiCS0AAEcNAiAFQQFqIQUgACEGDAALAAsgB0EEaiEGIABBBGohBSAIIA5JBEAgBSAGIAogEyAPEAVBBGohBSAMIAhrIQgDQCAAIANNIAcgGk1yDQMgAEEBayIGLQAAIAdBAWsiBy0AAEcNAyAFQQFqIQUgBiEADAALAAsgBSAGIAoQBkEEaiEFIAAgB2shCANAIAAgA00gByAPTXINAiAAQQFrIgYtAAAgB0EBayIHLQAARw0CIAVBAWohBSAGIQAMAAsACyAGIQALIAAgA2shBwJAIAAgEE0EQCADKQAAISIgASgCDCIGIAMpAAg3AAggBiAiNwAAIAdBEUkNASADKQAQISIgASgC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IiNC48iVvcub741PfiIlICSIp0ECdGoiBSgCACEHIBcgI6dBsfPd8XlsIgwgDXZBAnRqIhQoAgAhCCAcICUgIoinIhtBBnZB/P//H3FqKAIAIQkgHyAMIB52IiBBBnZB/P//H3FqKAIAIREgFCAAIAtrIgw2AgAgBSAMNgIAAkACQAJAIAxBAWoiFCAEayIFIA5rQXxLDQAgEiAFIBZraiAFIAtqIAUgDkkiBRsiISgAACAAKAABRw0AIABBBWogIUEEaiAKIBMgCiAFGyAPEAUhByAAQQFqIgAgA2shCAJAIAAgEE0EQCADKQAAISMgASgCDCIFIAMpAAg3AAggBSAjNwAAIAhBEUkNASADKQAQISMgASgCDCIFIAMpABg3ABggBSAjNwAQIAhBIUgNASADQRBqIQMgBSAIaiEJIAVBIGohBQNAIAMpABAhIyAFIAMpABg3AAggBSAjNwAAIAMpACAhIyAFIAMpACg3ABggBSAjNwAQIANBIGohAyAFQSBqIgUgCUkNAAsMAQsgASgCDCADIAMgCGogEBAHCyABIAEoAgwgCGo2AgwgASgCBCEDIAhBgIAETwRAIAFBATYCJCABIAMgASgCAGtBA3U2AigLIAdBBGohBSADQQE2AgAgAyAIOwEEIAdBAWoiB0H//wNLDQEMAgsCQAJAIAcgDkkNACAHIAtqIgcpAAAgI1INACAAQQhqIAdBCGogChAGQQhqIQUgACAHayEIA0AgACADTSAHIA9Ncg0CIABBAWsiBi0AACAHQQFrIgctAABHDQIgBUEBaiEFIAYhAAwACwALAkAgCSAbc0H/AXENACAJQQh2IgcgGU0NACAHIBJqIgkpAAAgI1INACAAQQhqIAlBCGogCiATIA8QBUEIaiEFIAwgByAWamshCANAIAkgGk0gACADTXINAiAAQQFrIgYtAAAgCUEBayIJLQAARw0CIAVBAWohBSAGIQAMAAsACwJAAkACQCAIIA5LBEAgCCALaiIHKAAAIAAoAABHDQEMAwsgESAgc0H/AXENACARQQh2IgggGU0NACAIIBJqIgcoAAAgACgAAEYNAQsgACAAIANrQQh1akEBaiEADAULIAggFmohCAsgFSAAKQABIiNC48iVvcub741PfiIlICSIp0ECdGoiBigCACEFIBwgJSAiiKciG0EGdkH8//8fcWoo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A0EQaiEDIAUgB2ohCCAHQSBqIQcDQCADKQAQISIgByADKQAYNwAIIAcgIjcAACADKQAgISIgByADKQAoNwAYIAcgIjcAECADQSBqIQMgB0EgaiIHIAhJDQALDAELIAEoAgwgAyADIAVqIAsQBwsgASABKAIMIAVqNgIMIAEoAgQhAyAFQYCABE8EQCABQQE2AiQgASADIAEoAgBrQQN1NgIoCyAJQQRqIQcgA0EBNgIAIAMgBTsBBCAJQQFqIghB//8DTQ0DDAELAkAgCkH/AXEEQCAAKAAAIQUMAQsgACgAACEFIBhBCHYiGCAeTQ0AIBYgGGoiCigAACAFRyAOIBFJcg0AIABBBGogCkEEaiAMIBcgExAFQQRqIQcDQAJAIAAgA00gCiAaTXINACAAQQFrIgYtAAAgCkEBayIKLQAARw0AIAdBAWohByAGIQAMAQsLIAAgA2shBgJAIAAgC00EQCADKQAAISIgASgCDCIFIAMpAAg3AAggBSAiNwAAIAZBEUkNASADKQAQISIgASgCDCIFIAMpABg3ABggBSAiNwAQIAZBIUgNASADQRBqIQMgBSAGaiEJIAVBIGohCANAIAMpABAhIiAIIAMpABg3AAggCCAiNwAAIAMpACAhIiAIIAMpACg3ABggCCAiNwAQIANBIGohAyAIQSBqIgggCUkNAAsMAQsgASgCDCADIAMgBmogCxAHCyABIAEoAgwgBmo2AgwgASgCBCEDIAZBgIAETwRAIAFBATYCJCABIAMgASgCAGtBA3U2AigLIAMgFSAYIBtqayIFQQNqNgIAIAMgBjsBBCAEIQYgBSEEIAdBA2siCEH//wNLDQEMAwsgBUH6PCANIBFqIgggDiARSyIKGygAAEcgCnJFBEAgAEEEaiAIQQRqIAwQBkEEaiEHIAAgCGshBQNAAkAgACADTSAIIBNNcg0AIABBAWsiBi0AACAIQQFrIggtAABHDQAgB0EBaiEHIAYhAAwBCwsgACADayEGAkAgACALTQRAIAMpAAAhIiABKAIMIgkgAykACDcACCAJICI3AAAgBkERSQ0BIAMpABAhIiABKAIMIgkgAykAGDcAGCAJICI3ABAgBkEhSA0BIANBEGohAyAGIAlqIQogCUEgaiEIA0AgAykAECEiIAggAykAGDcACCAIICI3AAAgAykAICEiIAggAykA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IARBABBWGiABQQA2AiQgASABKAIANgIEIAEgASgCCDYCDCAAIAAoAgwgBGoiBjYCDCAAIAY2AhwgACAGNgIQIAAgACgCBCAEazYCBAsgACABIAIgAyAEQQAQViAFQRBqJAALEAAgACABIAIgAyAEQQAQVgshACAAIAEgAiADIAQgBSAGIAdCgIDs/Mub741PQQYQuwELIQAgACABIAIgAyAEIAUgBiAHQoCAgNjLm++NT0EFELsBC/8JASN/IwBBEGsiEiQAAkAgAyABKAIEIgkgASgCHCICakkNACADIAlrIQgDQCACIAhPRQRAIAEgAiAJaiAEIAhBBEEAEBAgAmohAgwBCwsgASAINgIcQQEgASgCECICIAMgASgCBCITayILQQEgASgCuAF0IghrIAIgCyACayAISxsgASgCGBsiFCAUQQFNGyEgIAtBfyABKAK8AUEBa3RBf3MiGWsiAkEAIAIgC00bIRogASgCXCADKAAAQbHz3fF5bEEgIAEoAsABa3ZBAnRqIiEoAgAhCiABKAK0ASIQKAIAIhsgECgCBCIcayIVQX8gECgCvAFBAWt0QX9zIh1rIBAoAhAiFiAVIBZrIB1LGyEiIBwgFCAVayIXayEjIAsgFiAXamshJCAGIAZBA2oiAiACIAZJGyElIAEoAmQiJiALIBlxQQN0aiIRQQRqIQ1B/x8gASgCzAEiAiACQf8fTxshJyADQQRqIRggB0EBayEIIBMgASgCDCIeaiEfIAsgHmshKCALQQlqIQ5BASABKALEAXQhDyAQKALAASEpIAYhAgNAIAIgJUcEQCALAn8gAkEDRgRAIAUoAgBBAWsMAQsgBSACQQJ0aigCAAsiCWshBwJAAn8gKCAJQQFrIipLBEAgByAUSQ0CIAMoAAAgAyAJaygAAEcNAiAYIBggCWsgBBAGDAELICQgKk0gByAea0F8S3INASADKAAAIAcgI2oiBygAAEcNASAYIAdBBGogBCAbIB8QBQtBBGoiByAITQ0AIAAgDEEDdGoiCCAHNgIEIAggAiAGa0EBajYCACAMQQFqIQwgByAnSw0DIAciCCADaiAERg0DCyACQQFqIQIMAQsLICEgCzYCACALQQNqIQZBACEHQQAhBQJAAkACQAJAAkADQCAPRSAKICBJcg0CIAggAyAFIAcgBSAHSRsiAmogCiATaiILIAJqIAQQBiACaiICSQRAIAAgDEEDdGoiCCACNgIEIAggBiAKazYCACACIApqIA4gAiAOIAprSxshDiAMQQFqIQwgAiADaiAERiACQYAgS3INBSACIQgLICYgCiAZcUEDdGohCQJAAkACQCACIAtqLQAAIAIgA2otAABJBEAgESAKNgIAIAogGksNASASQQxqIREMBQsgDSAKNgIAIAogGk0NAiAJIQ0gAiEHDAELIAIhBSAJQQRqIhEhCQsgD0EBayEPIAkoAgAhCgwBCwsgEkEMaiENCyANQQA2AgAgEUEANgIADAELIA1BADYCACARQQA2AgAgD0UNAgsgECgCXCADKAAAQbHz3fF5bEEgIClrdkECdGohAiATIBdqIQ0gECgCZCELQQAhCkEAIQcDQCAPRQ0CIAIoAgAiBSAWTQ0CIAggAyAHIAogByAKSRsiAmogBSAcaiIJIAJqIAQgGyAfEAUgAmoiAkkEQCAAIAxBA3RqIgggAjYCBCAIIAYgBSAXaiIIazYCACACIAhqIA4gAiAOIAhrSxshDiAMQQFqIQwgAkGAIEsNAyACIQggAiADaiAERg0DCyAFICJNDQIgD0EBayEPIAIgByAJIAUgDWogAiAFaiAVSRsgAmotAAAgAiADai0AAEkiCRshByAKIAIgCRshCiALIAUgHXFBA3RqIAlBAnRqIQIMAAsACyANQQA2AgAgEUEANgIACyABIA5BCGs2AhwLIBJBEGokACAMC/wKASR/IwBBEGsiFCQAAkAgAyABKAIEIgwgASgCHCIJakkNACADIAxrIQgDQCAIIAlNRQRAIAEgCSAMaiAEIAhBA0EAEBAgCWohCQwBCwsgASAINgIcQQEgASgCECIIIAMgASgCBCITayINQQEgASgCuAF0IglrIAggDSAIayAJSxsgASgCGBsiFSAVQQFNGyEaIA1BfyABKAK8AUEBa3RBf3MiG2siCEEAIAggDU0bIRwgASgCXCADKAAAQbHz3fF5bEEgIAEoAsABa3ZBAnRqIiMoAgAhCiABKAK0ASIRKAIAIh0gESgCBCIeayIWQX8gESgCvAFBAWt0QX9zIh9rIBEoAhAiFyAWIBdrIB9LGyEkIB4gFSAWayIYayElIA0gFyAYamshJiAGIAZBA2oiCCAGIAhLGyEnIAEoAmQiKCANIBtxQQN0aiISQQRqIQ5B/x8gASgCzAEiCCAIQf8fTxshICADQQNqIRkgB0EBayEIIBMgASgCDCIhaiEiIA0gIWshKSANQQlqIQ9BASABKALEAXQhECARKALAASEqIAYhCQNAIAkgJ0cEQCANAn8gCUEDRgRAIAUoAgBBAWsMAQsgBSAJQQJ0aigCAAsiDGshBwJAAn8gKSAMQQFrIitLBEAgByAVSQ0CIAMgDGsoAAAgAygAAHNB////B3ENAiAZIBkgDGsgBBAGDAELICYgK00gByAha0F8S3INASAHICVqIgcoAAAgAygAAHNB////B3ENASAZIAdBA2ogBCAdICIQBQtBA2oiByAITQ0AIAAgC0EDdGoiCCAHNgIEIAggCSAGa0EBajYCACALQQFqIQsgByAgSw0DIAciCCADaiAERg0DCyAJQQFqIQkMAQsLIAECfwJAIAhBAksNACABIAIgAxCOASICIBpJDQAgDSACayIFQf//D0sNACADIAIgE2ogBBAGIgJBA0kNACAAIAI2AgQgACAFQQNqNgIAIAIgIE0EQEEBIQsgAiIIIANqIARHDQELQQEhCyANQQFqDAELICMgDTYCACANQQNqIQZBACEHQQAhBQJAAkACQAJAAkADQCAQRSAKIBpJcg0CIAggAyAFIAcgBSAHSRsiAmogCiATaiIJIAJqIAQQBiACaiICSQRAIAAgC0EDdGoiCCACNgIEIAggBiAKazYCACACIApqIA8gAiAPIAprSxshDyALQQFqIQsgAiADaiAERiACQYAgS3INBSACIQgLICggCiAbcUEDdGohDAJAAkACQCACIAlqLQAAIAIgA2otAABJBEAgEiAKNgIAIAogHEsNASAUQQxqIRIMBQsgDiAKNgIAIAogHE0NAiAMIQ4gAiEHDAELIAIhBSAMQQRqIhIhDAsgEEEBayEQIAwoAgAhCgwBCwsgFEEMaiEOCyAOQQA2AgAgEkEANgIADAELIA5BADYCACASQQA2AgAgEEUNAgsgESgCXCADKAAAQbHz3fF5bEEgICprdkECdGohCSATIBhqIQwgESgCZCEOQQAhCkEAIQcDQCAQRQ0CIAkoAgAiBSAXTQ0CIAggAyAHIAogByAKSRsiAmogBSAeaiIJIAJqIAQgHSAiEAUgAmoiAkkEQCAAIAtBA3RqIgggAjYCBCAIIAYgBSAYaiIIazYC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Bg8AAAAAAAAGEgAAAAAAAAYVAAAAAAAABhgAAAAAAAAGGwAAAAAAAAYeAAAAAAAABiEAAAAAAAEGIwAAAAAAAQYnAAAAAAACBisAAAAAAAMGMwAAAAAABAZDAAAAAAAFBmMAAAAAAAgGAwEAACAAAAQEAAAAMAAABAQAAAAQAAAEBQAAACAAAAUHAAAAIAAABQgAAAAgAAAFCgAAACAAAAULAAAAAAAABg4AAAAAAAAGEQAAAAAAAAYUAAAAAAAABhcAAAAAAAAGGgAAAAAAAAYdAAAAAAAABiAAAAAAABAGAwABAAAADwYDgAAAAAAOBgNAAAAAAA0GAyAAAAAADAYDEAAAAAALBgMIAAAAAAoGAwQAQbQjC3wBAAAAAwAAAAcAAAAPAAAAHwAAAD8AAAB/AAAA/wAAAP8BAAD/AwAA/wcAAP8PAAD/HwAA/z8AAP9/AAD//wAA//8BAP//AwD//wcA//8PAP//HwD//z8A//9/AP///wD///8B////A////wf///8P////H////z////9/AEHAJAuhAgEAAQABAAEAAQABAAIAAgACAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAP////////////8AAAAAAAAEAAMAAgACAAIAAgACAAIAAgACAAIAAgACAAEAAQABAAIAAgACAAIAAgACAAIAAgACAAMAAgABAAEAAQABAAEA//////////8AAAAAAAAAAAEABAADAAIAAgACAAIAAgACAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEA//////////////////8AAAAAAAAsAAAALQAAAC4AAAAvAAAACAAAAAkAAAAKAAAACgAAACAAQfEmC+QBAQIDBAUGBwgJCgsMDQ4PEBARERISExMUFBQUFRUVFRYWFhYWFhYWFxcXFxcXFxcYGBgYGBgYGBgYGBgYGBgYAAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gICEhIiIjIyQkJCQlJSUlJiYmJiYmJiYnJycnJycnJygoKCgoKCgoKCgoKCgoKCgpKSkpKSkpKSkpKSkpKSkpKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioAAAAAAAAAAAEAAAACAAAAAgAAAAMAAAADAAAABAAAAAQAAAAEAEHgKAv9JxMAAAAMAAAADQAAAAEAAAAGAAAAAQAAAAEAAAATAAAADQAAAA4AAAABAAAABwAAAAAAAAABAAAAFAAAAA8AAAAQAAAAAQAAAAYAAAAAAAAAAQAAABUAAAAQAAAAEQAAAAEAAAAFAAAAAAAAAAIAAAAVAAAAEgAAABIAAAABAAAABQAAAAAAAAACAAAAFQAAABIAAAATAAAAAwAAAAUAAAACAAAAAwAAABUAAAASAAAAEwAAAAMAAAAFAAAABAAAAAQAAAAVAAAAEwAAABQAAAAEAAAABQAAAAgAAAAEAAAAFQAAABMAAAAUAAAABAAAAAUAAAAQAAAABQAAABYAAAAUAAAAFQAAAAQAAAAFAAAAEAAAAAUAAAAWAAAAFQAAABYAAAAFAAAABQAAABAAAAAFAAAAFgAAABUAAAAWAAAABgAAAAUAAAAQAAAABQAAABYAAAAWAAAAFwAAAAYAAAAFAAAAIAAAAAUAAAAWAAAAFgAAABYAAAAEAAAABQAAACAAAAAGAAAAFgAAABYAAAAXAAAABQAAAAUAAAAgAAAABgAAABYAAAAXAAAAFwAAAAYAAAAFAAAAIAAAAAYAAAAWAAAAFgAAABYAAAAFAAAABQAAADAAAAAHAAAAFwAAABcAAAAWAAAABQAAAAQAAABAAAAABwAAABcAAAAXAAAAFgAAAAYAAAADAAAAQAAAAAgAAAAXAAAAGAAAABYAAAAHAAAAAwAAAAABAAAJAAAAGQAAABkAAAAXAAAABwAAAAMAAAAAAQAACQAAABoAAAAaAAAAGAAAAAcAAAADAAAAAAIAAAkAAAAbAAAAGwAAABkAAAAJAAAAAwAAAOcDAAAJAAAAEgAAAAwAAAANAAAAAQAAAAUAAAABAAAAAQAAABIAAAANAAAADgAAAAEAAAAGAAAAAAAAAAEAAAASAAAADgAAAA4AAAABAAAABQAAAAAAAAACAAAAEgAAABAAAAAQAAAAAQAAAAQAAAAAAAAAAgAAABIAAAAQAAAAEQAAAAMAAAAFAAAAAgAAAAMAAAASAAAAEQAAABIAAAAFAAAABQAAAAIAAAADAAAAEgAAABIAAAATAAAAAwAAAAUAAAAEAAAABAAAABIAAAASAAAAEwAAAAQAAAAEAAAABAAAAAQAAAASAAAAEgAAABMAAAAEAAAABAAAAAgAAAAFAAAAEgAAABIAAAATAAAABQAAAAQAAAAIAAAABQAAABIAAAASAAAAEwAAAAYAAAAEAAAACAAAAAUAAAASAAAAEgAAABMAAAAFAAAABAAAAAwAAAAGAAAAEgAAABMAAAATAAAABwAAAAQAAAAMAAAABgAAABIAAAASAAAAEwAAAAQAAAAEAAAAEAAAAAcAAAASAAAAEgAAABMAAAAEAAAAAwAAACAAAAAHAAAAEgAAABIAAAATAAAABgAAAAMAAACAAAAABwAAABIAAAATAAAAEwAAAAYAAAADAAAAgAAAAAgAAAASAAAAEwAAABMAAAAIAAAAAwAAAAABAAAIAAAAEgAAABMAAAATAAAABgAAAAMAAACAAAAACQAAABIAAAATAAAAEwAAAAgAAAADAAAAAAEAAAkAAAASAAAAEwAAABMAAAAKAAAAAwAAAAACAAAJAAAAEgAAABMAAAATAAAADAAAAAMAAAAAAgAACQAAABIAAAATAAAAEwAAAA0AAAADAAAA5wMAAAkAAAARAAAADAAAAAwAAAABAAAABQAAAAEAAAABAAAAEQAAAAwAAAANAAAAAQAAAAYAAAAAAAAAAQAAABEAAAANAAAADwAAAAEAAAAFAAAAAAAAAAEAAAARAAAADwAAABAAAAACAAAABQAAAAAAAAACAAAAEQAAABEAAAARAAAAAgAAAAQAAAAAAAAAAgAAABEAAAAQAAAAEQAAAAMAAAAEAAAAAgAAAAMAAAARAAAAEAAAABEAAAADAAAABAAAAAQAAAAEAAAAEQAAABAAAAARAAAAAwAAAAQAAAAIAAAABQAAABEAAAAQAAAAEQAAAAQAAAAEAAAACAAAAAUAAAARAAAAEAAAABEAAAAFAAAABAAAAAgAAAAFAAAAEQAAABAAAAARAAAABgAAAAQAAAAIAAAABQAAABEAAAARAAAAEQAAAAUAAAAEAAAACAAAAAYAAAARAAAAEgAAABEAAAAHAAAABAAAAAwAAAAGAAAAEQAAABIAAAARAAAAAwAAAAQAAAAMAAAABwAAABEAAAASAAAAEQAAAAQAAAADAAAAIAAAAAcAAAARAAAAEgAAABEAAAAGAAAAAwAAAAABAAAHAAAAEQAAABIAAAARAAAABgAAAAMAAACA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");LC=new Uint8Array(A.length);for(let I=0;I<A.length;I++)LC[I]=A.charCodeAt(I);return LC}(),I={a:WC},g=await WebAssembly.compile(A.buffer),t=(await WebAssembly.instantiate(g,I)).exports;JC=t.f,HC(),t.g(),TC=t.v,vC=t,xC=!0}(),bC)}const OC=5788743,VC=[5e4,1e5,2e5,5e5,1e6];function ZC(A,I){for(const g of VC)if(Math.ceil(A/g)===I)return g;return Math.ceil(A/I)}class XC{constructor(A,I){this.experiments=[],this.experimentIdToIndex=new Map,this.chromosomes=new Map,this.chromOrder=[],this.tileIndexCache=new Map,this.zoomLevels=[],this.zoomTileIndexCache=new Map,this.initialized=!1,this.url=A,this.fetchImpl=I}fetch(A,I){return MC(this.url,A,I,this.fetchImpl)}async init(A){if(!this.initialized)return this.initPromise||(this.initPromise=this._doInit().catch(A=>{throw this.initPromise=void 0,A})),this.initPromise}async _doInit(){await PC();const A=await this.fetch({start:0,size:256});this.header=this.parseHeader(new fC(new DataView(A),!0));const I=this.header,g=I.dictionaryOffset-I.experimentMetadataOffset,t=I.experimentMetadataOffset,C=g+I.dictionarySize,e=I.chromDirectoryOffset,B=I.nZoomLevels>0&&I.zoomDirectoryOffset>0,i=this.computeDirFetchSize(I),[Q,o]=await Promise.all([this.fetch({start:t,size:C}),this.fetch({start:e,size:i})]);this.parseExperimentMetadata(new fC(new DataView(Q,0,g),!0)),this.dictionary=new Uint8Array(Q,g,I.dictionarySize),this.dctx=function(){if(!xC)throw new Error("zstd WASM not initialized — call initZstd() first");return vC.n()}();const s=B?Math.min(I.zoomDirectoryOffset-I.chromDirectoryOffset,o.byteLength):o.byteLength;if(this.parseChromDirectory(new fC(new DataView(o,0,s),!0)),B){const A=I.zoomDirectoryOffset-e,g=o.byteLength-A-8;A>=0&&g>0&&this.parseZoomDirectory(new fC(new DataView(o,A,g),!0))}this.initialized=!0}parseHeader(A){const I=A.getUInt();if(I!==OC)throw new Error(`Not a GTX file (magic: 0x${I.toString(16)}, expected 0x${OC.toString(16)})`);const g=A.getUShort(),t=A.getUShort();return{version:g,genome:A.getFixedLengthString(t),nExperiments:A.getUInt(),resolution:A.getUInt(),payloadEncoding:A.getByte(),nZoomLevels:A.getByte(),chromDirectoryOffset:this.readU64(A),experimentMetadataOffset:this.readU64(A),dictionaryOffset:this.readU64(A),dictionarySize:A.getUInt(),zoomDirectoryOffset:this.readU64(A),groupStatsDirectoryOffset:this.readU64(A)}}parseExperimentMetadata(A){const I=A.getUInt();for(let g=0;g<I;g++){const I=A.getUShort(),g=A.getFixedLengthString(I),t=A.getUInt(),C=A.getUShort(),e=new Map;for(let I=0;I<C;I++){const I=A.getUShort(),g=A.getFixedLengthString(I),t=A.getUShort(),C=A.getFixedLengthString(t);e.set(g,C)}const B={id:g,experimentIndex:t,metadata:e};this.experiments.push(B),this.experimentIdToIndex.set(g,t)}}parseChromDirectory(A){const I=A.getUShort();for(let g=0;g<I;g++){const I=A.getUShort(),g=A.getFixedLengthString(I),t=A.getUInt(),C=this.readU64(A),e=A.getUInt(),B=A.getUInt();this.chromosomes.set(g,{name:g,length:t,tileIndexOffset:C,tileIndexLength:e,nTiles:B}),this.chromOrder.push(g)}}parseZoomDirectory(A){var I;const g=A.getByte();for(let t=0;t<g;t++){const g=A.getUInt(),t=A.getUShort(),C=new Map;for(let g=0;g<t;g++){const t=this.readU64(A),e=A.getUInt(),B=A.getUInt(),i=null!==(I=this.chromOrder[g])&&void 0!==I?I:`chrom_${g}`;C.set(i,{tileIndexOffset:t,tileIndexLength:e,nTiles:B})}this.zoomLevels.push({reductionLevel:g,chromTileIndexes:C})}}async loadTileIndex(A,I){await this.init(I);const g=this.tileIndexCache.get(A);if(g)return g;const t=this.chromosomes.get(A);if(!t)throw new Error(`Unknown chromosome: ${A}`);const C=await this.fetch({start:t.tileIndexOffset,size:t.tileIndexLength},I),e=this.parseTileIndex(new fC(new DataView(C),!0),t.nTiles);return this.tileIndexCache.set(A,e),e}async loadZoomTileIndex(A,I,g){const t=`${A}:${I}`,C=this.zoomTileIndexCache.get(t);if(C)return C;const e=this.zoomLevels[A];if(!e)throw new Error(`Unknown zoom level: ${A}`);const B=e.chromTileIndexes.get(I);if(!B)throw new Error(`Unknown chromosome in zoom: ${I}`);const i=await this.fetch({start:B.tileIndexOffset,size:B.tileIndexLength},g),Q=this.parseTileIndex(new fC(new DataView(i),!0),B.nTiles);return this.zoomTileIndexCache.set(t,Q),Q}parseTileIndex(A,I){const g=A.getUInt(),t=A.getUInt();if(g!==I)throw new Error(`Tile count mismatch: expected ${I}, got ${g}`);const C=[];for(let g=0;g<I;g++){const I=this.readU64(A),g=A.getUInt(),e=[];for(let I=0;I<t;I++){const I=this.readU64(A),g=A.getUInt();e.push({offset:I,size:g})}C.push({positionsOffset:I,positionsSize:g,experimentPointers:e})}return C}async readFeatures(A,I,g,t,C,e){await this.init(e);const B=this.header;if(void 0!==C&&C>1){const B=this.selectZoomLevel(C);if(void 0!==B)return this.readZoomFeatures(A,I,g,t,B,e)}const i=this.chromosomes.get(A);if(!i)return new Map;const Q=await this.loadTileIndex(A,e),o=ZC(i.length,i.nTiles),s=Math.max(0,Math.floor(I/o)),E=Math.min(i.nTiles-1,Math.floor(Math.max(0,g-1)/o)),a=[];for(let A=s;A<=E;A++){const I=Q[A];for(const g of t){const t=I.experimentPointers[g];t&&t.size>0&&a.push({tileIdx:A,expIdx:g,pointer:t})}}if(0===a.length)return new Map;const r=await this.fetchMergedRanges(a,e),n=new Map;for(const A of t)n.set(A,[]);for(const{tileIdx:t,expIdx:C,data:e}of r){const Q=this.decompress(e),s=new Float32Array(Q.buffer,Q.byteOffset,Q.byteLength/4),E=t*o,a=Math.min((t+1)*o,i.length),r=Math.max(I,E),h=Math.min(g,a),c=Math.floor((r-E)/B.resolution),l=Math.ceil((h-E)/B.resolution),d=n.get(C);for(let I=c;I<l&&I<s.length;I++){const g=s[I];if(0===g)continue;const t=E+I*B.resolution,C=Math.min(t+B.resolution,i.length);d.push({chr:A,start:t,end:C,value:g})}}return n}async readZoomFeatures(A,I,g,t,C,e){const B=this.zoomLevels[C];if(!B)return new Map;const i=B.chromTileIndexes.get(A);if(!i)return new Map;const Q=this.chromosomes.get(A);if(!Q)return new Map;const o=await this.loadZoomTileIndex(C,A,e),s=ZC(Q.length,i.nTiles),E=B.reductionLevel,a=Math.max(0,Math.floor(I/s)),r=Math.min(i.nTiles-1,Math.floor(Math.max(0,g-1)/s)),n=[];for(let A=a;A<=r;A++){const I=o[A];for(const g of t){const t=I.experimentPointers[g];t&&t.size>0&&n.push({tileIdx:A,expIdx:g,pointer:t})}}if(0===n.length)return new Map;const h=await this.fetchMergedRanges(n,e),c=new Map;for(const A of t)c.set(A,[]);for(const{tileIdx:t,expIdx:C,data:e}of h){const B=this.decompress(e),i=new Float32Array(B.buffer,B.byteOffset,B.byteLength/4),o=i.length/2,a=i.subarray(0,o),r=t*s,n=Math.min((t+1)*s,Q.length),h=Math.max(I,r),l=Math.min(g,n),d=Math.floor((h-r)/E),D=Math.ceil((l-r)/E),u=c.get(C);for(let I=d;I<D&&I<a.length;I++){const g=a[I];if(0===g)continue;const t=r+I*E,C=Math.min(t+E,Q.length);u.push({chr:A,start:t,end:C,value:g})}}return c}getExperimentIds(){return this.experiments.map(A=>A.id)}getExperimentMetadata(A){const I=this.experiments.find(I=>I.id===A);return null==I?void 0:I.metadata}resolveExperimentIndex(A){return this.experimentIdToIndex.get(A)}getHeader(){return this.header}getChromosomes(){return this.chromosomes}computeDirFetchSize(A){return A.groupStatsDirectoryOffset>0&&A.groupStatsDirectoryOffset>A.chromDirectoryOffset?A.groupStatsDirectoryOffset-A.chromDirectoryOffset+8:A.nZoomLevels>0&&A.zoomDirectoryOffset>0?A.zoomDirectoryOffset-A.chromDirectoryOffset+262144:262144}selectZoomLevel(A){let I;for(let g=0;g<this.zoomLevels.length;g++)this.zoomLevels[g].reductionLevel<2*A&&(I=g);return I}async fetchMergedRanges(A,I){const g=[...A].sort((A,I)=>A.pointer.offset-I.pointer.offset),t=[];for(const A of g){const I=A.pointer.offset+A.pointer.size,g=t[t.length-1];g&&A.pointer.offset-g.end<=1024?(g.end=Math.max(g.end,I),g.items.push(A)):t.push({start:A.pointer.offset,end:I,items:[A]})}const C=t.map(async A=>({range:A,buf:await this.fetch({start:A.start,size:A.end-A.start},I)})),e=await Promise.all(C),B=[];for(const{range:A,buf:I}of e)for(const g of A.items){const t=g.pointer.offset-A.start,C=new Uint8Array(I,t,g.pointer.size);B.push({tileIdx:g.tileIdx,expIdx:g.expIdx,data:C})}return B}decompress(A){if(!this.dictionary||void 0===this.dctx)throw new Error("GTX reader not initialized — call init() first");return function(A,I,g){if(!xC)throw new Error("zstd WASM not initialized — call initZstd() first");const t=vC.s,C=vC.t,e=vC.p,B=vC.q,i=vC.h,Q=t(I.byteLength);KC.set(I,Q);const o=t(g.byteLength);KC.set(g,o);const s=e(Q,I.byteLength),E=-1===s?1048576:s,a=t(E);try{const t=B(A,a,E,Q,I.byteLength,o,g.byteLength);if(i(t))throw new Error(`zstd decompression failed with code ${t}`);return new Uint8Array(YC.buffer,a,t).slice()}finally{C(a),C(Q),C(o)}}(this.dctx,A,this.dictionary)}readU64(A){return A.getLong()}dispose(){var A;void 0!==this.dctx&&(A=this.dctx,xC&&vC.o(A),this.dctx=void 0)}}const zC=new Map;class jC{constructor(A,I){this.url=A,this.reader=I,this.pending=new Map}request(A,I,g,t){const C=`${I.chr}:${I.start}-${I.end}|${g}`,e=this.pending.get(C);return new Promise(e?(I,g)=>{e.experiments.push({experimentId:A,resolve:I,reject:g})}:(e,B)=>{const i={locus:I,bpPerPixel:g,signal:t,experiments:[{experimentId:A,resolve:e,reject:B}]};this.pending.set(C,i),queueMicrotask(()=>this.flush(C))})}async flush(A){var I;const g=this.pending.get(A);if(!g)return;this.pending.delete(A);const{locus:t,bpPerPixel:C,signal:e,experiments:B}=g;try{await this.reader.init();const A=[],g=new Map;for(const I of B){const t=this.reader.resolveExperimentIndex(I.experimentId);void 0!==t?(g.set(I.experimentId,t),A.push(t)):I.reject(new Error(`Unknown experiment: ${I.experimentId}`))}if(0===A.length)return;const i=await this.reader.readFeatures(t.chr,t.start,t.end,A,C,e);for(const A of B){const t=g.get(A.experimentId);void 0!==t&&A.resolve(null!==(I=i.get(t))&&void 0!==I?I:[])}}catch(A){for(const I of B)I.reject(A)}}}const $C=new Map;async function Ae(A,I,g,t,C={}){const e=function(A,I){let g=$C.get(A);return g||(g=new XC(A,I),$C.set(A,g)),g}(A,C.fetchImpl);await e.init(C.signal);const B=e.resolveExperimentIndex(I);if(void 0===B)throw new Error(`Unknown experiment: ${I}`);const i=[];for(const A of g)try{const I=(await e.readFeatures(A,0,Number.MAX_SAFE_INTEGER,[B],t,C.signal)).get(B);I&&i.push(...I)}catch(A){}return i}const Ie=new Map;class ge{constructor(A,I,g="mean",t){this.url=A,this.experimentId=I,this._windowFunction=g,this.fetchImpl=t,this.reader=function(A,I){let g=Ie.get(A);return g||(g=new XC(A,I),Ie.set(A,g)),g}(A,t)}get windowFunction(){return this._windowFunction}setWindowFunction(A){this._windowFunction=A}setCumulativeOffsets(A){this._cumulativeOffsets=A}setChromNameResolver(A){this._resolveChromName=A}async fetch(A,I,g){if(h(A)&&this._cumulativeOffsets)return this.fetchWG(I,g);const t=this._resolveChromName?{...A,chr:this._resolveChromName(A.chr)}:A,C=function(A,I){let g=zC.get(A);return g||(g=new jC(A,I),zC.set(A,g)),g}(this.url,this.reader),e=await C.request(this.experimentId,t,I,g);return I>1&&"none"!==this._windowFunction&&e.length>0?AC(e,A.start,I,this._windowFunction):e}async fetchWG(A,I){const g=this._cumulativeOffsets;if(!g)throw new Error("fetchWG called without cumulativeOffsets");const t=NC(await Ae(this.url,this.experimentId,g.chromosomeNames,A,{windowFunction:this._windowFunction,signal:I,fetchImpl:this.fetchImpl}),g);return A>1&&"none"!==this._windowFunction&&t.length>0?AC(t,0,A,this._windowFunction):t}}function te(A,I=0){if(A.length<=10+I)return;const g=parseInt(A[5+I]),t=parseInt(A[6+I]),C={id:A[0+I],chr:A[1+I],strand:mI(A[2+I]),start:parseInt(A[3+I]),end:parseInt(A[4+I]),cdStart:g,cdEnd:t,name:A.length>11+I?A[11+I]:A[0+I]},e=Be(parseInt(A[7+I]),A[8+I],A[9+I]);return SI(e,g,t),C.exons=e,C}function Ce(A,I=0){if(A.length<=11+I)return;const g=parseInt(A[5+I]),t=parseInt(A[6+I]),C={name:A[11+I],chr:A[1+I],strand:mI(A[2+I]),start:parseInt(A[3+I]),end:parseInt(A[4+I]),cdStart:g,cdEnd:t,id:A[0+I]};if(A.length>10+I){const g=parseInt(A[10+I]);isNaN(g)||(C.score=g)}A.length>13+I&&(C.cdsStartStat=A[12+I],C.cdsEndStat=A[13+I]);const e=Be(parseInt(A[7+I]),A[8+I],A[9+I],A[14+I]);return SI(e,g,t),C.exons=e,C}function ee(A){const I=A.cdsStart,g=A.cdsEnd,t={name:A.name2,chr:A.chrom,strand:mI(A.strand),start:A.txStart,end:A.txEnd,cdStart:I,cdEnd:g,id:A.name};void 0!==A.score&&(t.score=A.score),A.cdsStartStat&&(t.cdsStartStat=A.cdsStartStat),A.cdsEndStat&&(t.cdsEndStat=A.cdsEndStat);const C=A.exonStarts.replace(/,$/,"").split(","),e=A.exonEnds.replace(/,$/,"").split(","),B=A.exonFrames?A.exonFrames.replace(/,$/,"").split(","):void 0,i=[];for(let I=0;I<A.exonCount;I++){const A={start:parseInt(C[I]),end:parseInt(e[I])};if(B){const g=parseInt(B[I]);-1!==g&&(A.readingFrame=g)}i.push(A)}return SI(i,I,g),t.exons=i,t}function Be(A,I,g,t){const C=I.replace(/,$/,"").split(","),e=g.replace(/,$/,"").split(","),B=t?t.replace(/,$/,"").split(","):void 0,i=[];for(let I=0;I<A;I++){const A={start:parseInt(C[I]),end:parseInt(e[I])};if(B){const g=parseInt(B[I]);-1!==g&&(A.readingFrame=g)}i.push(A)}return i}async function ie(A,I={},g){var t,C,e;const B=null!==(t=I.genome)&&void 0!==t?t:"hg38",i=null!==(C=I.track)&&void 0!==C?C:"ncbiRefSeq",Q=`https://api.genome.ucsc.edu/getData/track?genome=${B}&track=${i}&chrom=${A.chr}&start=${A.start}&end=${A.end}`,o=await fetch(Q,g?{signal:g}:void 0);if(!o.ok)throw new Error(`UCSC API error: ${o.status} ${o.statusText}`);return(null!==(e=(await o.json())[i])&&void 0!==e?e:[]).map(ee)}class Qe{constructor(A={},I=1e4){this.options=A,this.maxWgFeatures=I}setCumulativeOffsets(A){this._cumulativeOffsets=A}async fetch(A,I,g){return h(A)&&this._cumulativeOffsets?this.fetchWG(g):ie(A,this.options,g)}async fetchWG(A){const I=this._cumulativeOffsets;if(!I)throw new Error("fetchWG called without cumulativeOffsets");const g=NC((await FC(I.chromosomeNames,I=>ie({chr:I,start:0,end:Number.MAX_SAFE_INTEGER},this.options,A),A)).map(A=>({...A,exons:void 0,cdStart:void 0,cdEnd:void 0})),I);return g.length>this.maxWgFeatures?function(A,I){const g=A.slice(0,I);for(let t=I;t<A.length;t++){const C=Math.floor(Math.random()*(t+1));C<I&&(g[C]=A[t])}return g}(g,this.maxWgFeatures):g}}function oe(A,I,g,t){if("a"===g&&!t)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof I?A!==I||!t:!I.has(A))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===g?t:"a"===g?t.call(A):t?t.value:I.get(A)}var se,Ee,ae,re,ne,he,ce;"function"==typeof SuppressedError&&SuppressedError;const le={color:1};le.parent=le,le.left=le,le.right=le,le.min=1/0,le.max=-1/0;class de{constructor(){se.add(this),this.root=le}insert(A,I,g){const t={low:A,high:I,value:g},C=oe(this,se,"m",Ee).call(this,t);oe(this,se,"m",ce).call(this,C),C.color=2;let e=C;for(;e!==this.root&&2===e.parent.color;)if(e.parent===e.parent.parent.left){const A=e.parent.parent.right;2===A.color?(e.parent.color=1,A.color=1,e.parent.parent.color=2,e=e.parent.parent):(e===e.parent.right&&(e=e.parent,oe(this,se,"m",re).call(this,e)),e.parent.color=1,e.parent.parent.color=2,oe(this,se,"m",ne).call(this,e.parent.parent))}else{const A=e.parent.parent.left;2===A.color?(e.parent.color=1,A.color=1,e.parent.parent.color=2,e=e.parent.parent):(e===e.parent.left&&(e=e.parent,oe(this,se,"m",ne).call(this,e)),e.parent.color=1,e.parent.parent.color=2,oe(this,se,"m",re).call(this,e.parent.parent))}this.root.color=1}findOverlapping(A,I){if(this.root===le)return[];const g=oe(this,se,"m",ae).call(this,A,I,this.root,[]);return g.length>1&&g.sort((A,I)=>A.low-I.low),g}mapIntervals(A){const I=g=>{A(g.interval),g.left!==le&&I(g.left),g.right!==le&&I(g.right)};this.root!==le&&I(this.root)}}se=new WeakSet,Ee=function(A){return{parent:le,left:le,right:le,interval:A,color:2,max:A.high,min:A.low}},ae=function A(I,g,t,C){return t.interval.low<=g&&I<=t.interval.high&&C.push(t.interval),t.left!==le&&t.left.max>=I&&oe(this,se,"m",A).call(this,I,g,t.left,C),t.right!==le&&t.right.min<=g&&oe(this,se,"m",A).call(this,I,g,t.right,C),C},re=function(A){const I=A.right;A.right=I.left,I.left!==le&&(I.left.parent=A),I.parent=A.parent,A.parent===le?this.root=I:A.parent.left===A?A.parent.left=I:A.parent.right=I,I.left=A,A.parent=I,oe(this,se,"m",he).call(this,A)},ne=function(A){const I=A.left;A.left=I.right,I.right!==le&&(I.right.parent=A),I.parent=A.parent,A.parent===le?this.root=I:A.parent.right===A?A.parent.right=I:A.parent.left=I,I.right=A,A.parent=I,oe(this,se,"m",he).call(this,A)},he=function(A){for(;A!==le;){const I=A.left.max>A.right.max?A.left.max:A.right.max,g=A.interval.high;A.max=I>g?I:g;const t=A.left.min<A.right.min?A.left.min:A.right.min,C=A.interval.low;A.min=t<C?t:C,A=A.parent}},ce=function(A){let I=this.root,g=le;for(;I!==le;)g=I,I=A.interval.low<=I.interval.low?I.left:I.right;A.parent=g,g===le?(this.root=A,A.left=A.right=le):A.interval.low<=g.interval.low?g.left=A:g.right=A,oe(this,se,"m",he).call(this,A)};class De{constructor(A,I){const g=null!=A?A:[];this.range=I,this.count=g.length;const{treeMap:t,allFeatures:C}=function(A){const I={},g={},t=[];for(const I of A){const A=I.chr;let C=g[A];C||(t.push(A),C=[],g[A]=C),C.push(I)}for(const A of t){const t=g[A];t.sort((A,I)=>A.start===I.start?0:A.start>I.start?1:-1),I[A]=ue(t)}return{treeMap:I,allFeatures:g}}(g);this.treeMap=t,this.allFeatures=C}containsRange(A,I,g){return void 0===this.range||this.range.contains(A,I,g)}queryFeatures(A,I,g){const t=this.treeMap[A];if(!t)return[];const C=t.findOverlapping(I,g);if(0===C.length)return[];const e=[],B=this.allFeatures[A];if(B){for(const A of C){const t=A.value;for(let A=t.start;A<t.end;A++){const t=B[A];if(t.start>g)break;t.end>=I&&e.push(t)}}e.sort((A,I)=>A.start-I.start)}return e}findFeatures(A){const I=[];for(const g of Object.values(this.allFeatures))for(const t of g)A(t)&&I.push(t);return I}getAllFeatures(){return this.allFeatures}}function ue(A){const I=new de,g=A.length,t=Math.max(10,Math.round(g/10));for(let C=0;C<g;C+=t){const e=Math.min(g,C+t),B={start:C,end:e},i=A[C].start;let Q=i;for(let I=C;I<e;I++)Q=Math.max(Q,A[I].end);I.insert(i,Q,B)}return I}class ye{constructor(A,I,g,t){this.minv=A,this.maxv=I,this.bin=g,this._fetchedSize=t}toUniqueString(){return`${this.minv}..${this.maxv} (bin ${this.bin}, fetchedSize ${this.fetchedSize()})`}toString(){return this.toUniqueString()}compareTo(A){return this.minv.compareTo(A.minv)||this.maxv.compareTo(A.maxv)||this.bin-A.bin}fetchedSize(){return void 0!==this._fetchedSize?this._fetchedSize:this.maxv.blockPosition+65536-this.minv.blockPosition}}class we{constructor({filehandle:A,renameRefSeqs:I=A=>A}){this.filehandle=A,this.renameRefSeq=I}async getMetadata(A={}){const{indices:I,...g}=await this.parse(A);return g}_findFirstData(A,I){return A?A.compareTo(I)>0?I:A:I}async parse(A={}){return this.parseP||(this.parseP=this._parse(A).catch(A=>{throw this.parseP=void 0,A})),this.parseP}async hasRefSeq(A,I={}){const g=await this.parse(I);return!!g.indices[A]?.binIndex}_parseNameBytes(A){let I=0,g=0;const t=[],C={},e=new TextDecoder("utf8");for(let B=0;B<A.length;B+=1)if(!A[B]){if(g<B){const i=this.renameRefSeq(e.decode(A.subarray(g,B)));t[I]=i,C[i]=I}g=B+1,I+=1}return{refNameToId:C,refIdToName:t}}}function fe(A,I=0){const g=A[I]|A[I+1]<<8|A[I+2]<<16|A[I+3]<<24;return 4294967296*((A[I+4]|A[I+5]<<8|A[I+6]<<16|A[I+7]<<24)>>>0)+(g>>>0)}function Se(A,I){return I.minv.blockPosition-A.maxv.blockPosition<65e3&&I.maxv.blockPosition-A.minv.blockPosition<5e6}function ke(A,I){const g=[];let t;if(0===A.length)return A;A.sort(function(A,I){const g=A.minv.blockPosition-I.minv.blockPosition;return 0===g?A.minv.dataPosition-I.minv.dataPosition:g});for(const C of A)(!I||C.maxv.compareTo(I)>0)&&(void 0===t?(g.push(C),t=C):Se(t,C)?C.maxv.compareTo(t.maxv)>0&&(t.maxv=C.maxv):(g.push(C),t=C));return g}class Ge{constructor(A,I){this.blockPosition=A,this.dataPosition=I}toString(){return`${this.blockPosition}:${this.dataPosition}`}compareTo(A){return this.blockPosition-A.blockPosition||this.dataPosition-A.dataPosition}}function Fe(A,I=0){return new Ge(1099511627776*A[I+7]+4294967296*A[I+6]+16777216*A[I+5]+65536*A[I+4]+256*A[I+3]+A[I+2],A[I+1]<<8|A[I])}const Ne={0:"generic",1:"SAM",2:"VCF"};function me(A,I){return A*2**I}function Re(A,I){return Math.floor(A/2**I)}class pe extends we{constructor(A){super(A),this.maxBinNumber=0,this.depth=0,this.minShift=0}async lineCount(A,I={}){const g=await this.parse(I),t=g.refNameToId[A];if(void 0===t)return-1;if(!g.indices[t])return-1;const{stats:C}=g.indices[t];return C?C.lineCount:-1}indexCov(){throw new Error("CSI indexes do not support indexcov")}parseAuxData(A,I){const g=new DataView(A.buffer),t=g.getInt32(I,!0),C=65536&t?"zero-based-half-open":"1-based-closed",e=Ne[15&t];if(!e)throw new Error(`invalid Tabix preset format flags ${t}`);const B={ref:g.getInt32(I+4,!0),start:g.getInt32(I+8,!0),end:g.getInt32(I+12,!0)},i=g.getInt32(I+16,!0),Q=i?String.fromCharCode(i):void 0,o=g.getInt32(I+20,!0),s=g.getInt32(I+24,!0),{refIdToName:E,refNameToId:a}=this._parseNameBytes(A.subarray(I+28,I+28+s));return{refIdToName:E,refNameToId:a,skipLines:o,metaChar:Q,columnNumbers:B,format:e,coordinateType:C}}async _parse(A={}){const I=await ut(await this.filehandle.readFile(A)),g=new DataView(I.buffer);let t;if(21582659===g.getUint32(0,!0))t=1;else{if(38359875!==g.getUint32(0,!0))throw new Error("Not a CSI file");t=2}this.minShift=g.getInt32(4,!0),this.depth=g.getInt32(8,!0),this.maxBinNumber=((1<<3*(this.depth+1))-1)/7;const C=2**(this.minShift+3*this.depth),e=g.getInt32(12,!0),B=e&&e>=30?this.parseAuxData(I,16):{refIdToName:[],refNameToId:{},metaChar:void 0,columnNumbers:{ref:0,start:1,end:2},coordinateType:"zero-based-half-open",format:"generic"},i=g.getInt32(16+e,!0);let Q,o=16+e+4;const s=new Array(i).fill(0).map(()=>{const A=g.getInt32(o,!0);o+=4;const t={};let C;for(let e=0;e<A;e+=1){const A=g.getUint32(o,!0);if(A>this.maxBinNumber)C=this.parsePseudoBin(I,o+4),o+=48;else{const C=Fe(I,o+4);Q=this._findFirstData(Q,C);const e=g.getInt32(o+12,!0);o+=16;const B=new Array(e);for(let g=0;g<e;g+=1){const t=Fe(I,o),C=Fe(I,o+8);o+=16,B[g]=new ye(t,C,A)}t[A]=B}}return{binIndex:t,stats:C}});return{...B,csi:!0,refCount:i,maxBlockSize:65536,firstDataLine:Q,csiVersion:t,indices:s,depth:this.depth,maxBinNumber:this.maxBinNumber,maxRefLength:C}}parsePseudoBin(A,I){return{lineCount:fe(A,I+28)}}async blocksForRange(A,I,g,t={}){I<0&&(I=0);const C=await this.parse(t),e=C.refNameToId[A];if(void 0===e)return[];const B=C.indices[e];if(!B)return[];const i=this.reg2bins(I,g),Q=[];for(const[A,I]of i)for(let g=A;g<=I;g++)if(B.binIndex[g])for(const A of B.binIndex[g])Q.push(new ye(A.minv,A.maxv,g));return ke(Q,new Ge(0,0))}reg2bins(A,I){(A-=1)<1&&(A=1),I>2**50&&(I=2**34),I-=1;let g=0,t=0,C=this.minShift+3*this.depth;const e=[];for(;g<=this.depth;C-=3,t+=me(1,3*g),g+=1){const g=t+Re(A,C),B=t+Re(I,C);if(B-g+e.length>this.maxBinNumber)throw new Error(`query ${A}-${I} is too large for current binning scheme (shift ${this.minShift}, depth ${this.depth}), try a smaller query or a coarser index binning scheme`);e.push([g,B])}return e}}class Ue extends we{async lineCount(A,I={}){const g=await this.parse(I),t=g.refNameToId[A];if(void 0===t)return-1;return g.indices[t]?g.indices[t].stats?.lineCount??-1:-1}async _parse(A={}){const I=await this.filehandle.readFile(A),g=await ut(I),t=new DataView(g.buffer);if(21578324!==t.getUint32(0,!0))throw new Error("Not a TBI file");const C=t.getUint32(4,!0),e=t.getUint32(8,!0),B=65536&e?"zero-based-half-open":"1-based-closed",i={0:"generic",1:"SAM",2:"VCF"}[15&e];if(!i)throw new Error(`invalid Tabix preset format flags ${e}`);const Q={ref:t.getInt32(12,!0),start:t.getInt32(16,!0),end:t.getInt32(20,!0)},o=t.getInt32(24,!0),s=37449,E=o?String.fromCharCode(o):void 0,a=t.getInt32(28,!0),r=t.getInt32(32,!0),{refNameToId:n,refIdToName:h}=this._parseNameBytes(g.slice(36,36+r));let c,l=36+r;return{indices:new Array(C).fill(0).map(()=>{const A=t.getInt32(l,!0);l+=4;const I={};let C;for(let e=0;e<A;e+=1){const A=t.getUint32(l,!0);if(l+=4,A>37450)throw new Error("tabix index contains too many bins, please use a CSI index");if(37450===A){const A=t.getInt32(l,!0);l+=4,2===A&&(C=this.parsePseudoBin(g,l)),l+=16*A}else{const C=t.getInt32(l,!0);l+=4;const e=new Array(C);for(let I=0;I<C;I+=1){const t=Fe(g,l),C=Fe(g,l+8);l+=16,c=this._findFirstData(c,t),e[I]=new ye(t,C,A)}I[A]=e}}const e=t.getInt32(l,!0);l+=4;const B=new Array(e);for(let A=0;A<e;A+=1)B[A]=Fe(g,l),l+=8,c=this._findFirstData(c,B[A]);return{binIndex:I,linearIndex:B,stats:C}}),metaChar:E,maxBinNumber:s,maxRefLength:536870912,skipLines:a,firstDataLine:c,columnNumbers:Q,coordinateType:B,format:i,refIdToName:h,refNameToId:n,maxBlockSize:65536}}parsePseudoBin(A,I){return{lineCount:fe(A,I+16)}}async blocksForRange(A,I,g,t={}){I<0&&(I=0);const C=await this.parse(t),e=C.refNameToId[A];if(void 0===e)return[];const B=C.indices[e];if(!B)return[];(B.linearIndex.length>0?B.linearIndex[I>>14>=B.linearIndex.length?B.linearIndex.length-1:I>>14]:new Ge(0,0))||console.warn("querying outside of possible tabix range");const i=(Q=I,o=g,[[0,0],[1+((Q+=1)>>26),1+((o-=1)>>26)],[9+(Q>>23),9+(o>>23)],[73+(Q>>20),73+(o>>20)],[585+(Q>>17),585+(o>>17)],[4681+(Q>>14),4681+(o>>14)]]);var Q,o;const s=[];for(const[A,I]of i)for(let g=A;g<=I;g++)if(B.binIndex[g])for(const A of B.binIndex[g])s.push(new ye(A.minv,A.maxv,g));const E=B.linearIndex.length;let a;const r=Math.min(I>>14,E-1),n=Math.min(g>>14,E-1);for(let A=r;A<=n;++A){const I=B.linearIndex[A];I&&(!a||I.compareTo(a)<0)&&(a=I)}return ke(s,a)}}class Me{constructor({path:A,filehandle:I,url:g,tbiPath:t,tbiUrl:C,tbiFilehandle:e,csiPath:B,csiUrl:i,csiFilehandle:Q,renameRefSeqs:o,chunkCacheSize:s=5242880}){this.cache=new fA({maxSize:1e3});const E=o??(A=>A);if(I)this.filehandle=I;else if(A)this.filehandle=new IA(A);else{if(!g)throw new TypeError("must provide either filehandle or path");this.filehandle=new AA(g)}if(e)this.index=new Ue({filehandle:e,renameRefSeqs:E});else if(Q)this.index=new pe({filehandle:Q,renameRefSeqs:E});else if(t)this.index=new Ue({filehandle:new IA(t),renameRefSeqs:E});else if(B)this.index=new pe({filehandle:new IA(B),renameRefSeqs:E});else if(A)this.index=new Ue({filehandle:new IA(`${A}.tbi`),renameRefSeqs:E});else if(i)this.index=new pe({filehandle:new AA(i)});else if(C)this.index=new Ue({filehandle:new AA(C)});else{if(!g)throw new TypeError("must provide one of tbiFilehandle, tbiPath, csiFilehandle, csiPath, tbiUrl, csiUrl");this.index=new Ue({filehandle:new AA(`${g}.tbi`)})}this.renameRefSeq=E,this.hasCustomRenameRefSeq=void 0!==o,this.chunkCache=new eA({cache:new fA({maxSize:Math.floor(s/65536)}),fill:(A,I)=>this.readChunk(A,{signal:I})})}calculateFileOffset(A,I,g,t,C){return 256*A[g]+(t-I[g])+C+1}async getLines(A,I,g,t){let C,e,B={};"function"==typeof t?e=t:(B=t,e=t.lineCallback,C=t.signal);const i=await this.index.getMetadata(B),Q=I??0,o=g??i.maxRefLength;if(!(Q<=o))throw new TypeError("invalid start and end coordinates. start must be less than or equal to end");if(Q===o)return;const s=await this.index.blocksForRange(A,Q,o,B),E=new TextDecoder("utf8"),a="VCF"===i.format,r={ref:i.columnNumbers.ref||0,start:i.columnNumbers.start||0,end:a?8:i.columnNumbers.end||0},n=Math.max(r.ref,r.start,r.end),h=i.metaChar?.charCodeAt(0),c="1-based-closed"===i.coordinateType?-1:0,l=!this.hasCustomRenameRefSeq;for(const I of s){const{buffer:g,cpositions:t,dpositions:B}=await this.chunkCache.get(I.toString(),I,C);let i=0,s=0;const d=E.decode(g);if(g.length==d.length)for(;i<d.length;){const g=d.indexOf("\n",i);if(-1===g)break;const C=d.slice(i,g);if(B){const A=i+I.minv.dataPosition;for(;s<B.length&&A>=B[s];)s++}const E=this.checkLine(A,Q,o,C,r.ref,r.start,r.end,n,h,c,a,l);if(null===E)return;void 0!==E&&e(C,this.calculateFileOffset(t,B,s,i,I.minv.dataPosition),E.start,E.end),i=g+1}else for(;i<g.length;){const C=g.indexOf("\n".charCodeAt(0),i);if(-1===C)break;const d=g.slice(i,C),D=E.decode(d);if(B){const A=i+I.minv.dataPosition;for(;s<B.length&&A>=B[s];)s++}const u=this.checkLine(A,Q,o,D,r.ref,r.start,r.end,n,h,c,a,l);if(null===u)return;void 0!==u&&e(D,this.calculateFileOffset(t,B,s,i,I.minv.dataPosition),u.start,u.end),i=C+1}}}async getMetadata(A={}){return this.index.getMetadata(A)}async getHeaderBuffer(A={}){const{firstDataLine:I,metaChar:g,maxBlockSize:t}=await this.getMetadata(A),C=(I?.blockPosition||0)+t,e=await this.filehandle.read(C,0,A),B=await ut(e);if(g){let A=-1;const I="\n".charCodeAt(0),t=g.charCodeAt(0);for(let g=0,C=B.length;g<C;g++){const C=B[g];if(g===A+1&&C!==t)break;C===I&&(A=g)}return B.subarray(0,A+1)}return B}async getHeader(A={}){const I=new TextDecoder("utf8"),g=await this.getHeaderBuffer(A);return I.decode(g)}async getReferenceSequenceNames(A={}){return(await this.getMetadata(A)).refIdToName}checkLine(A,I,g,t,C,e,B,i,Q,o,s,E){if(void 0!==Q&&t.charCodeAt(0)===Q)return;if(t.length<500){const i=t.split("\t"),Q=i[C-1];if(!(E?Q===A:this.renameRefSeq(Q)===A))return;const a=+i[e-1]+o;if(a>=g)return null;let r;if(r=0===B||B===e?a+1:s?this._getVcfEnd(a,i[3],i[B-1]):+i[B-1],r<=I)return;return{start:a,end:r}}let a=-1;const r=[-1];for(let A=0;A<i;A++){const A=t.indexOf("\t",a+1);if(-1===A){r.push(t.length);break}r.push(A),a=A}const n=t.slice(r[C-1]+1,r[C]);if(!(E?n===A:this.renameRefSeq(n)===A))return;const h=+t.slice(r[e-1]+1,r[e])+o;if(h>=g)return null;let c;return c=0===B||B===e?h+1:s?this._getVcfEnd(h,t.slice(r[3]+1,r[4]),t.slice(r[B-1]+1,r[B])):+t.slice(r[B-1]+1,r[B]),c<=I?void 0:{start:h,end:c}}_getVcfEnd(A,I,g){let t=A+I.length;if(g.includes("SVTYPE=TRA"))return A+1;if("."!==g[0]){const A=g.indexOf("END=");if(-1!==A&&(0===A||";"===g[A-1])){const I=A+4;let C=g.indexOf(";",I);-1===C&&(C=g.length),t=Number.parseInt(g.slice(I,C),10)}}return t}async lineCount(A,I={}){return this.index.lineCount(A,I)}async readChunk(A,I={}){return yt(await this.filehandle.read(A.fetchedSize(),A.minv.blockPosition,I),A,this.cache)}}class Le{constructor(A,I){var g;const t=wC(A),C=wC(null!==(g=null==I?void 0:I.indexUrl)&&void 0!==g?g:A+".tbi"),e=(null==I?void 0:I.fetchImpl)?{fetch:I.fetchImpl}:void 0;this.tabix=new Me({filehandle:new AA(t,e),tbiFilehandle:new AA(C,e)})}async getHeader(A){var I,g;const t=await this.tabix.getMetadata({signal:A}),C=Object.keys(t.refNameToId);return{nref:C.length,format:"VCF"===t.format?2:"SAM"===t.format?1:0,colSeq:t.columnNumbers.ref,colBeg:t.columnNumbers.start,colEnd:t.columnNumbers.end,meta:null!==(g=null===(I=t.metaChar)||void 0===I?void 0:I.charCodeAt(0))&&void 0!==g?g:0,skip:0,sequenceNames:C}}async getSequenceNames(A){const I=await this.tabix.getMetadata({signal:A});return Object.keys(I.refNameToId)}async readHeaderLines(A){const I=await this.tabix.getHeader({signal:A});return I?I.split("\n").filter(A=>A.length>0):[]}async readLines(A,I,g,t){const C=[];return await this.tabix.getLines(A,I,g,{lineCallback:A=>{C.push(A)},signal:t}),C}}const Je=new Set(["transcript","primary_transcript","processed_transcript","mRNA","mrna","lnc_RNA","miRNA","ncRNA","rRNA","scRNA","snRNA","snoRNA","tRNA"]),Ke=new Set(["CDS","cds","start_codon","stop_codon"]),Ye=new Set(["5UTR","3UTR","UTR","five_prime_UTR","three_prime_UTR","3'-UTR","5'-UTR"]),ve=new Set(["exon","coding-exon"]),be=new Set;for(const A of[Ke,Ye,ve])for(const I of A)be.add(I);function xe(A){return Je.has(A)||A.endsWith("RNA")||A.endsWith("transcript")}function He(A){return be.has(A)||A.endsWith("RNA")||Te(A)}function qe(A){return ve.has(A)}function Te(A){return A.includes("intron")}function _e(A){return Ke.has(A)}function We(A){return Ye.has(A)}const Pe=new Map([["%09","\t"],["%0A","\n"],["%0D","\r"],["%25","%"],["%3B",";"],["%3D","="],["%26","&"],["%2C",","]]);function Oe(A){if(!A.includes("%"))return A;let I="";for(let g=0;g<A.length;g++)if(37===A.charCodeAt(g)&&g<A.length-2){const t=A.substring(g,g+3);Pe.has(t)?I+=Pe.get(t):I+=t,g+=2}else I+=A.charAt(g);return I}function Ve(A,I="="){const g="="===I,t=[];for(let C of A.split(";")){C=C.trim();const A=C.indexOf(I);if(A>0&&A<C.length-1){let I=Oe(C.substring(0,A).trim()),e=Oe(C.substring(A+1).trim());g||(I=Ze(I),e=Ze(e)),t.push([I,e])}}return t}function Ze(A){return A.startsWith('"')&&A.endsWith('"')?A.substring(1,A.length-1):A}function Xe(A,I){if(A.length<9)return;const g=parseInt(A[3])-1,t=parseInt(A[4]);if(isNaN(g)||isNaN(t))return;const C="."===A[5]?void 0:Number(A[5]),e="+"===A[6]||"-"===A[6]||"."===A[6]?A[6]:void 0,B="."===A[7]?void 0:parseInt(A[7]);return{chr:A[0],source:Oe(A[1]),type:A[2],start:g,end:t,score:void 0===C||isNaN(C)?void 0:C,strand:e,phase:void 0===B||isNaN(B)?void 0:B,attributeString:A[8],attributes:{}}}const ze=["Name","transcript_id","gene_name","gene","gene_id","alias","locus","name"];function je(A,I){if(void 0!==A.attributes[I])return A.attributes[I];const g=A.attributeString.includes("=")?"=":" ",t=Ve(A.attributeString,g);for(const[A,g]of t)if(A===I)return g}function $e(A,I,g){var t;const C=new Set(null!==(t=null==g?void 0:g.filterTypes)&&void 0!==t?t:["chromosome"]);let e=A.filter(A=>!C.has(A.type));"gff3"!==I&&"gff"!==I||(e=function(A){const I=new Map,g=[];for(const t of A)if(He(t.type)||xe(t.type)||!t.id)g.push(t);else{let A=I.get(t.chr);A||(A=new Map,I.set(t.chr,A));let g=A.get(t.id);g?g.push(t):A.set(t.id,[t])}for(const A of I.values())for(const I of A.values())if(I.length>1){const A={...I[0]},t=[];for(const g of I)A.start=Math.min(A.start,g.start),A.end=Math.max(A.end,g.end),t.push({start:g.start,end:g.end});A._mergedExons=t,g.push(A)}else g.push(I[0]);return g}(e));const B=function(A,I,g){const t=Object.create(null);for(const I of A)("gene"===I.type||I.type.endsWith("_gene"))&&I.id&&(t[I.id]=I);const C=Object.create(null),e=[],B=new Set;for(const I of A)if(xe(I.type)&&void 0!==I.id){const A={record:I,exons:[],parts:[]};C[I.id]=A,B.add(I),I.parent&&t[I.parent]&&(A.geneRecord=t[I.parent],B.add(t[I.parent]))}for(const g of A)if(He(g.type)){const A=CB(g);if(A)for(const t of A){let A=C[t];if(!A&&"gtf"===I){A={record:{...g,type:"transcript"},exons:[],parts:[]},C[t]=A}A&&(qe(g.type)?A.exons.push({start:g.start,end:g.end}):A.parts.push(g),A.record.start=Math.min(A.record.start,g.start),A.record.end=Math.max(A.record.end,g.end),B.add(g))}}for(const A of Object.keys(C)){const I=C[A];AB(I),e.push(eB(I,g))}for(const I of A)B.has(I)||e.push(BB(I,g));return function(A){for(const I of A)if(I.exons)for(let A=0;A<I.exons.length;A++)I.exons[A].number="-"===I.strand?I.exons.length-A:A+1}(e),e}(e,I,null==g?void 0:g.nameField);return B}function AB(A){if(A.parts.sort((A,I)=>A.start-I.start),A.parts.length>0){let I=A.parts[0].start,g=A.parts[0].end;for(let t=1;t<A.parts.length;t++){const C=A.parts[t];Te(C.type)||(C.start<=g?g=Math.max(g,C.end):(IB(A.exons,I,g)||A.exons.push({start:I,end:g}),I=C.start,g=C.end))}IB(A.exons,I,g)||(A.exons.push({start:I,end:g}),A.record.start=Math.min(A.record.start,I),A.record.end=Math.max(A.record.end,g))}for(const I of A.parts)_e(I.type)?gB(A,I):We(I.type)&&tB(A,I);if(A.exons.sort((A,I)=>A.start-I.start),void 0!==A.cdStart&&void 0!==A.cdEnd)for(const I of A.exons)(I.end<A.cdStart||I.start>A.cdEnd)&&(I.utr=!0)}function IB(A,I,g){for(const t of A)if(t.end>=g&&t.start<=I)return t}function gB(A,I){const g=IB(A.exons,I.start,I.end);if(g&&(g.cdStart=void 0!==g.cdStart?Math.min(I.start,g.cdStart):I.start,g.cdEnd=void 0!==g.cdEnd?Math.max(I.end,g.cdEnd):I.end,void 0!==I.phase)){const A=(3-I.phase)%3;void 0===g.readingFrame&&(g.readingFrame=A)}A.cdStart=void 0!==A.cdStart?Math.min(I.start,A.cdStart):I.start,A.cdEnd=void 0!==A.cdEnd?Math.max(I.end,A.cdEnd):I.end}function tB(A,I){const g=IB(A.exons,I.start,I.end);g&&(I.start===g.start&&I.end===g.end?g.utr=!0:(I.end<g.end&&(g.cdStart=I.end),(void 0===g.cdEnd||I.start>g.cdEnd)&&(g.cdEnd=I.start)))}function CB(A){return A.parent&&""!==A.parent.trim()?A.parent.trim().split(","):null}function eB(A,I){const g=A.record,t=iB(g,I);return{chr:g.chr,start:g.start,end:g.end,name:t,id:g.id,strand:"+"===g.strand||"-"===g.strand?g.strand:void 0,type:g.type,source:g.source,score:g.score,cdStart:A.cdStart,cdEnd:A.cdEnd,exons:A.exons.length>0?A.exons:void 0,attributes:g.attributes,color:g.color}}function BB(A,I){const g=iB(A,I),t=A._mergedExons;return{chr:A.chr,start:A.start,end:A.end,name:g,id:A.id,strand:"+"===A.strand||"-"===A.strand?A.strand:void 0,type:A.type,source:A.source,score:A.score,exons:t,attributes:A.attributes,color:A.color}}function iB(A,I){if(I)return je(A,I);for(const I of ze){const g=je(A,I);if(g)return g}}function QB(A){if(0===A.length)return;const I=A[0];if(void 0===I.score&&void 0!==I.name){if(A.every(A=>{return void 0===A.name||"."===A.name||(I=A.name,!isNaN(Number(I))&&""!==I.trim());var I}))for(const I of A)I.score=Number(I.name),I.name=void 0}const g=A.filter(A=>A.chr1!==A.chr2);for(const I of g){const g={...I,dup:!0};A.push(g),I.chr=I.chr1,I.start=I.start1,I.end=I.end1,g.chr=g.chr2,g.start=g.start2,g.end=g.end2}}function oB(A,I){switch(A){case"broadpeak":case"peaks":return{decode:(A,I)=>function(A,I){const g=RI(A,I,6);if(g)return A.length>6&&(g.signal=parseFloat(A[6])),A.length>7&&(g.pValue=parseFloat(A[7])),A.length>8&&(g.qValue=parseFloat(A[8])),g}(A,sB(I)),delimiter:/\s+/,requiresAssembly:!1};case"narrowpeak":return{decode:(A,I)=>function(A,I){const g=RI(A,I,6);if(g)return A.length>6&&(g.signal=parseFloat(A[6])),A.length>7&&(g.pValue=parseFloat(A[7])),A.length>8&&(g.qValue=parseFloat(A[8])),A.length>9&&(g.peak=parseInt(A[9])),g}(A,sB(I)),delimiter:/\s+/,requiresAssembly:!1};case"bedgraph":return{decode:A=>function(A){if(A.length<4)return;const I=A[0],g=parseInt(A[1]),t=parseInt(A[2]),C=parseFloat(A[3]);return isNaN(g)||isNaN(t)||isNaN(C)?void 0:{chr:I,start:g,end:t,value:C}}(A),delimiter:/\s+/,requiresAssembly:!1};case"gff3":case"gff":return{decode:A=>function(A){const I=Xe(A);if(!I)return;const g=Ve(I.attributeString,"="),t={};for(const[A,C]of g){t[A]=C;const g=A.toLowerCase();"color"===g||"colour"===g?I.color=C:"ID"===A?I.id=C:"Parent"===A&&(I.parent=C)}return I.attributes=t,I}(A),delimiter:"\t",requiresAssembly:!0};case"gtf":return{decode:A=>function(A){const I=Xe(A);if(!I)return;const g=Ve(I.attributeString," "),t={};let C,e;switch(I.type){case"gene":C="gene_id";break;case"transcript":C="transcript_id",e="gene_id";break;default:e="transcript_id"}for(const[A,B]of g){t[A]=B;const g=A.toLowerCase();"color"===g||"colour"===g?I.color=B:A===C?I.id=B:A===e&&(I.parent=B)}return I.attributes=t,I}(A),delimiter:"\t",requiresAssembly:!0};case"refflat":return{decode:A=>function(A){if(A.length<11)return;const I=A[2],g=parseInt(A[4]),t=parseInt(A[5]),C=parseInt(A[6]),e=parseInt(A[7]),B=mI(A[3]);if(isNaN(g)||isNaN(t))return;const i={chr:I,start:g,end:t,name:A[0],strand:B,cdStart:C,cdEnd:e},Q=parseInt(A[8]),o=A[9].replace(/,$/,"").split(","),s=A[10].replace(/,$/,"").split(",");if(Q>0&&o.length===Q&&s.length===Q){const A=[];for(let I=0;I<Q;I++)A.push({start:parseInt(o[I]),end:parseInt(s[I])});SI(A,C,e),i.exons=A}return i}(A),delimiter:/\s+/,requiresAssembly:!1};case"genepred":return{decode:A=>te(A,0),delimiter:/\s+/,requiresAssembly:!1};case"genepredext":return{decode:A=>Ce(A,0),delimiter:/\s+/,requiresAssembly:!1};case"ensgene":return{decode:A=>te(A,1),delimiter:/\s+/,requiresAssembly:!1};case"refgene":return{decode:A=>Ce(A,1),delimiter:/\s+/,requiresAssembly:!1};case"gappedpeak":return{decode:(A,I)=>function(A,I){const g=RI(A,I);if(g)return A.length>12&&(g.signal=parseFloat(A[12])),A.length>13&&(g.pValue=parseFloat(A[13])),A.length>14&&(g.qValue=parseFloat(A[14])),g}(A,sB(I)),delimiter:/\s+/,requiresAssembly:!1};case"bedpe":return{decode:(A,I)=>function(A,I){var g;if(A.length<6)return;const t=A[0],C=parseInt(A[1]),e=parseInt(A[2]),B=A[3],i=parseInt(A[4]),Q=parseInt(A[5]);if(isNaN(C)||isNaN(e)||isNaN(i)||isNaN(Q))return;var o;I&&void 0===I.hiccups&&(I.hiccups=!!I.columnNames&&((o=I.columnNames).includes("fdrDonut")||o.includes("fdr_donut")));const s=null!==(g=null==I?void 0:I.hiccups)&&void 0!==g&&g,E=s?6:10,a={chr:t,start:0,end:0,chr1:t,start1:C,end1:e,chr2:B,start2:i,end2:Q,dup:!1};return s||(A.length>6&&"."!==A[6]&&(a.name=A[6]),A.length>7&&"."!==A[7]&&(a.score=Number(A[7])),A.length>8&&"."!==A[8]&&(a.strand1=A[8]),A.length>9&&"."!==A[9]&&(a.strand2=A[9])),I&&(void 0!==I.colorColumn&&I.colorColumn<A.length&&(a.color=A[I.colorColumn]),void 0!==I.thicknessColumn&&I.thicknessColumn<A.length&&(a.thickness=Number(A[I.thicknessColumn])),A.length>E&&I.columnNames&&I.columnNames.length===A.length&&(a.extras=A.slice(E))),t===B&&(a.chr=t,a.start=Math.min(C,i),a.end=Math.max(e,Q)),a}(A,function(A){return A?{columnNames:A.columnNames,colorColumn:A.colorColumn,thicknessColumn:A.thicknessColumn}:void 0}(I)),delimiter:/\s+/,requiresAssembly:!1,postProcess:QB};case"interact":case"longrange":return{decode:A=>function(A){if(A.length<6)return;const I=A[0],g=parseInt(A[1]),t=parseInt(A[2]),C=A[8],e=parseInt(A[9]),B=parseInt(A[10]),i=A[13],Q=parseInt(A[14]),o=parseInt(A[15]),s=A[7],E="."===s?void 0:"0"===s?"rgb(0,0,0)":s;return{chr:I,start:g,end:t,chr1:C,start1:e,end1:B,chr2:i,start2:Q,end2:o,name:A[3],score:Number(A[4]),value:Number(A[5]),color:E,dup:!1}}(A),delimiter:/\s+/,requiresAssembly:!1};default:return{decode:(A,I)=>RI(A,sB(I)),delimiter:/\s+/,requiresAssembly:!1}}}function sB(A){if(A)return{nameField:A.nameField,gffTags:A.gffTags,colorColumn:A.colorColumn,thicknessColumn:A.thicknessColumn}}function EB(A,I){const g={format:I};let t;for(const I of A)if(I.startsWith("track")||I.startsWith("#track")){const A=rB(I);Object.assign(g,{properties:A}),"interact"===A.type&&(g.format="interact"),"gcnv"===A.type&&(g.format="gcnv")}else if(I.startsWith("browser"));else if(I.startsWith("#columns")){const A=nB(I);void 0!==A.colorColumn&&(g.colorColumn=A.colorColumn),void 0!==A.thicknessColumn&&(g.thicknessColumn=A.thicknessColumn)}else if(I.startsWith("##gff-version 3"))g.format="gff3";else if(I.startsWith("#gffTags"))g.gffTags=!0;else{if(I.startsWith("fixedStep")||I.startsWith("variableStep"))break;if(!I.startsWith("#"))break;{const A=I.split("\t");A.length>1&&(t=A)}}if(t){g.columnNames=t;for(let A=0;A<t.length;A++)"color"===t[A]||"colour"===t[A]?g.colorColumn=A:"thickness"===t[A]&&(g.thicknessColumn=A)}return g}function aB(A,I,g){var t,C;const e=null!==(t=null==g?void 0:g.header)&&void 0!==t?t:EB(A,I),B=null!==(C=e.format)&&void 0!==C?C:I,i=oB(B),Q=i.delimiter,o=[],s={};for(const I of A){if(!I||I.startsWith("track")||I.startsWith("#")||I.startsWith("browser"))continue;if("wig"===B){if(I.startsWith("fixedStep")){s.wig=hB(I);continue}if(I.startsWith("variableStep")){s.wig=cB(I);continue}}const A=I.split(Q);if(A.length<1)continue;const g="wig"===B?{...e,wig:s.wig}:e,t=i.decode(A,g);t&&o.push(t)}if(i.postProcess&&i.postProcess(o),i.requiresAssembly&&!1!==(null==g?void 0:g.assembleGFF)){return $e(o,"gff"===B?"gff":"gff3"===B?"gff3":"gtf",{nameField:e.nameField})}return o}function rB(A){const I={},g=A.split(/(?:")([^"]+)(?:")|([^\s"]+)(?=\s+|$)/g);let t;const C=[];for(const A of g)A&&0!==A.trim().length&&(A.endsWith("=")?t=A:t?(C.push(t+A),t=void 0):C.push(A));for(const A of C){if(!A)break;const g=A.split("=",2);2===g.length&&(I[g[0].trim()]=g[1].trim())}return I}function nB(A){const I={},g=A.split(/\s+/);if(2===g.length){const A=g[1].split(";");for(const g of A){const A=g.split("=");"color"===A[0]?I.colorColumn=parseInt(A[1])-1:"thickness"===A[0]&&(I.thicknessColumn=parseInt(A[1])-1)}}return I}function hB(A){const I=A.split(/\s+/);return{format:"fixedStep",chrom:I[1].split("=")[1],start:parseInt(I[2].split("=")[1],10)-1,step:parseInt(I[3].split("=")[1],10),span:I.length>4?parseInt(I[4].split("=")[1],10):1,index:0}}function cB(A){const I=A.split(/\s+/);return{format:"variableStep",chrom:I[1].split("=")[1],span:I.length>2?parseInt(I[2].split("=")[1],10):1}}class lB{constructor(A){var I,g;this.allFeaturesLoaded=!1,this.url=wC(A.url),this.fetchImpl=A.fetchImpl;const t=null!==(I=A.format)&&void 0!==I?I:Ut(A.url);if(this.format=null!=t?t:"bed",this.assembleGFF=!1!==A.assembleGFF,void 0!==A.indexed?this._indexed=A.indexed:A.indexURL?this._indexed=!0:this._indexed=function(A){const I=A.toLowerCase(),g=I.indexOf("?");return(g>0?I.substring(0,g):I).endsWith(".bgz")}(A.url),this._indexed){const I=wC(null!==(g=A.indexURL)&&void 0!==g?g:function(A){if(A.includes("?")){const I=A.indexOf("?");return A.substring(0,I)+".tbi"+A.substring(I)}return A+".tbi"}(A.url));this.tabixReader=new Le(this.url,{indexUrl:I,fetchImpl:A.fetchImpl})}}get indexed(){return this._indexed}setChromNameResolver(A){this._resolveChromName=A}setCumulativeOffsets(A){this._cumulativeOffsets=A}async getSequenceNames(A){return this.tabixReader?this.tabixReader.getSequenceNames(A):this.featureCache?Object.keys(this.featureCache.getAllFeatures()):[]}async fetch(A,I,g){if(h(A)&&this._cumulativeOffsets)return this.fetchWG(g);const t=this._resolveChromName?this._resolveChromName(A.chr):A.chr;return this._indexed&&this.tabixReader?this.fetchIndexed(t,A.start,A.end,g):this.fetchNonIndexed(t,A.start,A.end,g)}async fetchIndexed(A,I,g,t){const C=this.tabixReader;if(!this.header){const A=await C.readHeaderLines(t);this.header=EB(A,this.format)}const e=aB(await C.readLines(A,I,g,t),this.format,{header:this.header,assembleGFF:this.assembleGFF});return e.sort((A,I)=>A.start-I.start),e}async fetchNonIndexed(A,I,g,t){var C,e;return this.allFeaturesLoaded||await this.loadAllFeatures(t),null!==(e=null===(C=this.featureCache)||void 0===C?void 0:C.queryFeatures(A,I,g))&&void 0!==e?e:[]}async loadAllFeatures(A){var I;const g=null!==(I=this.fetchImpl)&&void 0!==I?I:globalThis.fetch;let t,C;try{t=await g(this.url,{signal:A,mode:"cors"})}catch(I){if(!`${I}`.includes("Failed to fetch"))throw I;t=await g(this.url,{signal:A,mode:"cors",cache:"reload"})}if(!t.ok)throw new Error(`Failed to fetch ${this.url}: ${t.status} ${t.statusText}`);const e=this.url.toLowerCase(),B=e.endsWith(".gz")||e.endsWith(".bgz")||e.includes(".gz?")||e.includes(".bgz?"),i=t.headers.get("Content-Encoding");if(B&&!("gzip"===i||"deflate"===i)){const A=await t.arrayBuffer();try{const I=new DecompressionStream("gzip"),g=new Response(new Blob([A]).stream().pipeThrough(I));C=await g.text()}catch(I){C=(new TextDecoder).decode(A)}}else C=await t.text();if(null==A?void 0:A.aborted)return;const Q=C.split(/\r?\n/);this.header=EB(Q,this.format);const o=aB(Q,this.format,{header:this.header,assembleGFF:this.assembleGFF});o.sort((A,I)=>A.chr===I.chr?A.start-I.start:A.chr.localeCompare(I.chr)),this.featureCache=new De(o),this.allFeaturesLoaded=!0}async fetchWG(A){var I,g;if(A.aborted)return[];const t=this._cumulativeOffsets;if(!t)throw new Error("fetchWG called without cumulativeOffsets");if(this._indexed){const I=JI(Object.fromEntries(t.chromosomeNames.map(A=>{var I;return[A,null!==(I=t.offsets[A])&&void 0!==I?I:0]})));return NC(await FC(I,I=>this.fetchIndexed(I,0,Number.MAX_SAFE_INTEGER,A),A),t)}{this.allFeaturesLoaded||await this.loadAllFeatures(A);const C=null!==(g=null===(I=this.featureCache)||void 0===I?void 0:I.getAllFeatures())&&void 0!==g?g:{},e=[];for(const A of Object.values(C))e.push(...A);return NC(e,t)}}dispose(){this.tabixReader=void 0,this.featureCache=void 0,this.allFeaturesLoaded=!1}}class dB{constructor(A){this.cache=new De(A)}setFeatures(A){this.cache=new De(A)}setChromNameResolver(A){this._resolveChromName=A}setCumulativeOffsets(A){this._cumulativeOffsets=A}async fetch(A,I,g){if(h(A)&&this._cumulativeOffsets)return this.fetchWG();const t=this._resolveChromName?this._resolveChromName(A.chr):A.chr;return this.cache.queryFeatures(t,A.start,A.end)}fetchWG(){const A=this._cumulativeOffsets;if(!A)throw new Error("fetchWG called without cumulativeOffsets");const I=JI(Object.fromEntries(A.chromosomeNames.map(I=>{var g;return[I,null!==(g=A.offsets[I])&&void 0!==g?g:0]}))),g=[],t=this.cache.getAllFeatures();for(const C of I){const I=t[C];if(!I)continue;const e=A.offsets[C];if(void 0!==e)for(const A of I)g.push({...A,chr:"all",start:e+A.start,end:e+A.end})}return g.sort((A,I)=>A.start-I.start),g}}function DB(A,I,g,t,C){I&&0!==I.length?("proportional"===g.displayMode?function(A,I,g,t){var C,e,B,i,Q;const{bpStart:o,bpPerPixel:s,pixelWidth:E}=t,a="UP"===g.arcOrientation,r=a?g.height:0,n=function(A){var I,g;let t=0;for(const C of A){const A=null!==(g=null!==(I=C.value)&&void 0!==I?I:C.score)&&void 0!==g?g:0;isNaN(A)||(t=Math.max(t,A))}return{min:0,max:t}}(I),h=g.logScale?(g.height-1)/Math.log10(n.max+1):(g.height-1)/(n.max||1);for(const A of I)A.drawState=void 0;const c=vt(I,o+E*s);for(let n=0;n<c;n++){const c=I[n],l=null!==(e=null!==(C=c.value)&&void 0!==C?C:c.score)&&void 0!==e?e:0;if(void 0===l||isNaN(l))continue;const d=Math.round((g.logScale?Math.log10(l+1):l)*h);if(c.chr1===c.chr2||"all"===c.chr){const I=(c.start1+c.end1)/2,t=(c.start2+c.end2)/2,C=Math.min(I,t),e=Math.max(I,t);let Q=Math.round((C-o)/s),E=Math.round((e-o)/s)-Q;E<3&&(E=3,Q--);const n=E/2,h=Q+E/2,l=a,D=null!==(B=c.color)&&void 0!==B?B:g.color;if(A.strokeStyle=D,A.lineWidth=null!==(i=c.thickness)&&void 0!==i?i:g.thickness,A.beginPath(),A.ellipse(h,r,n,d,0,0,Math.PI,l),A.stroke(),g.alpha>0){const I=g.useScore&&Number.isFinite(c.score)?Math.max(.1,Math.round(10*yB(c.score))/10):1;A.fillStyle=fB(D,I*g.alpha),A.fill()}if(g.showBlocks&&"all"!==c.chr){A.fillStyle=D;const I=(c.start1-o)/s,t=(c.end1-o)/s,C=(c.start2-o)/s,e=(c.end2-o)/s,B=a?-g.blockHeight:g.blockHeight;A.fillRect(I,r,t-I,B),A.fillRect(C,r,e-C,B)}c.drawState={type:"proportional",xc:h,yc:r,radiusX:n,radiusY:d}}else{if(E<=0)continue;const I=Math.round((c.start-o)/s);if(Math.round((c.end-o)/s)<0||I>E)continue;const C=Math.min(d,g.height-13);uB(A,c,g,t,null!==(Q=c.color)&&void 0!==Q?Q:g.color,a,C)}}}(A,I,g,t):function(A,I,g,t){var C,e;const{bpStart:B,bpPerPixel:i,pixelWidth:Q,viewportWidth:o}=t,s="UP"===g.arcOrientation,E=s?g.height:0,{sinTheta:a,cosTheta:r,theta:n}=function(A,I,g){const{bpStart:t,bpPerPixel:C,pixelWidth:e,viewportWidth:B}=g;let i=0;for(const I of A){const A=(I.start-t)/C,g=(I.end-t)/C;A>=0&&g<=e&&(i=Math.max(i,g-A))}const Q=Math.min(B,i)/2;let o=Math.PI/4;if(i>0){o=function(A){const I=[.01570925532366355,.15838444032453644,.3249196962329063,.5095254494944288,.7265425280053609,.9999999999999999],g=[.031415926535897934,.3141592653589793,.6283185307179586,.9424777960769379,1.2566370614359172,1.5707963267948966];let t=0;for(;t<I.length&&!(I[t]>A);t++);const C=0===t?0:I[t-1],e=t<I.length?I[t]:1,B=(A-C)/(e-C),i=0===t?0:g[t-1],Q=t<g.length?g[t]:Math.PI/2;return Math.min(Math.PI/2,i+B*(Q-i))}((I.height-10)/Q)}return{sinTheta:Math.sin(o),cosTheta:Math.cos(o),theta:o}}(I,g,t);A.font=g.font,A.textAlign="center";for(const A of I)A.drawState=void 0;const h=vt(I,B+Q*i);for(let c=0;c<h;c++){const h=I[c];let l=null!==(C=h.color)&&void 0!==C?C:g.color;if(g.useScore&&Number.isFinite(h.score)&&(l=fB(l,g.transparency*yB(h.score))),A.lineWidth=null!==(e=h.thickness)&&void 0!==e?e:g.thickness,h.chr1===h.chr2||"all"===h.chr){const I=(h.start1+h.end1)/2,t=(h.start2+h.end2)/2,C=Math.min(I,t),e=Math.max(I,t);let c=Math.round((C-B)/i),d=Math.round((e-B)/i);if(d<0||c>Q)continue;let D=d-c;D<3&&(D=3,c--);const u=D/2,y=u/a,w=r*y,f=c+u;let S,k,G;if(s?(S=g.height+w,k=Math.PI+Math.PI/2-n,G=Math.PI+Math.PI/2+n):(S=-w,k=Math.PI/2-n,G=Math.PI/2+n),g.showBlocks&&"all"!==h.chr){A.fillStyle=l;const I=(h.start1-B)/i,t=(h.end1-B)/i,C=(h.start2-B)/i,e=(h.end2-B)/i,Q=s?-g.blockHeight:g.blockHeight;A.fillRect(I,E,t-I,Q),A.fillRect(C,E,e-C,Q)}!g.useScore&&D>o&&(l=fB(l,g.alpha)),A.strokeStyle=l,A.fillStyle=l,A.beginPath(),A.arc(f,S,y,k,G,!1),A.stroke(),h.drawState={type:"nested",xc:f,yc:S,r:y}}else uB(A,h,g,t,l,s)}}(A,I,g,t),C&&Ht(A,C,g.height)):C&&Ht(A,C,g.height)}function uB(A,I,g,t,C,e,B){const{bpStart:i,bpPerPixel:Q,pixelWidth:o}=t;let s=Math.round((I.start-i)/Q),E=Math.round((I.end-i)/Q);if(E<0||s>o)return;let a=E-s;a<3&&(a=3,s--);const r=I.chr===I.chr1?I.chr2:I.chr1,n=null!=B?B:g.height/2;if(A.fillStyle=fB(C,.5),A.font=g.font,A.textAlign="center",e){const t=g.height-n;A.fillRect(s,t,a,n),A.fillStyle=C,A.fillText(r,s+a/2,t-5),I.drawState={type:"rect",x:s,y:t,w:a,h:n}}else A.fillRect(s,0,a,n),A.fillStyle=C,A.fillText(r,s+a/2,n+13),I.drawState={type:"rect",x:s,y:0,w:a,h:n}}function yB(A){return Math.min(1,.11+A/779*.89)}const wB=new Map;function fB(A,I){const g=`${A}_${I}`;let t=wB.get(g);if(t)return t;const C=function(A){const I=A.match(/^rgba?\((\d+)\s*,\s*(\d+)\s*,\s*(\d+)/);if(I)return{r:parseInt(I[1]),g:parseInt(I[2]),b:parseInt(I[3])};const g=A.match(/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i);if(g)return{r:parseInt(g[1],16),g:parseInt(g[2],16),b:parseInt(g[3],16)};return}(A);return t=C?`rgba(${C.r},${C.g},${C.b},${I})`:A,wB.set(g,t),t}function SB(A,I,g,t){const C=(I+1).toLocaleString(),e=g.toLocaleString();return t&&"."!==t?`${A}:${C}-${e} (${t})`:`${A}:${C}-${e}`}class kB extends xt{constructor(A,I){const g=b(L(I.theme),I.config);super(A,I.locus,g,I.canvasProvider),this.type="interact",this.features=I.features,this._name=I.name}setFeatures(A){this.features=A,this.render()}computeHeight(A){return this.config.height}getBackground(){return this.config.background}renderLabelOverlay(A,I,g){this.externalUIEnabled||this._name&&Ht(A,{name:this._name,background:this._config.background,labelColor:"#333"},g)}doRender(A,I,g,t){const C=g!==this._config.height?{...this._config,height:g}:this._config;DB(A,this.features,C,t,this._name&&!this.externalUIEnabled?{name:this._name,background:this._config.background,labelColor:"#333"}:void 0)}getUIOverlayState(){if(this._name)return{label:{text:this._name,background:this._config.background,color:"#333"}}}hitTest(A,I){const g=A-this.getCanvasViewportOffset(),t=[];this._config.displayMode;for(const A of this.features){if(!A.drawState)continue;const C=A.drawState;if("nested"===C.type){const e=g-C.xc,B=I-C.yc,i=Math.abs(Math.sqrt(e*e+B*B)-C.r);i<5&&t.push({score:i,feature:A})}else if("proportional"===C.type){const e=g-C.xc,B=I-C.yc,i=e/C.radiusX*(e/C.radiusX)+B/C.radiusY*(B/C.radiusY);i<=1&&t.push({score:1/i,feature:A})}else if("rect"===C.type){const e=5;if(g>=C.x-e&&g<=C.x+C.w+e&&I>=C.y&&I<=C.y+C.h){t.push({score:-Math.abs(g-(C.x+C.w/2)),feature:A});break}}}return t.length>1&&t.sort((A,I)=>A.score-I.score),t.map(A=>({feature:A.feature,popupData:this.buildPopupData(A.feature)}))}buildPopupData(A){const I=[];return I.push({name:"Region 1",value:SB(A.chr1,A.start1,A.end1,A.strand1)}),I.push({name:"Region 2",value:SB(A.chr2,A.start2,A.end2,A.strand2)}),A.name&&I.push({name:"Name",value:A.name}),void 0!==A.value&&I.push({name:"Value",value:A.value}),void 0!==A.score&&I.push({name:"Score",value:A.score}),void 0!==A.type&&I.push({name:"Type",value:A.type}),I}setTheme(A){this._config=b(A),this.render()}serializeConfig(A){const I=b(L(A));return{type:"interact",name:this._name,config:gC(this._config,I)}}getAxisInfo(){if("proportional"!==this._config.displayMode)return;const A=GB(this.features);return{label:this._name,dataRange:A,flipAxis:"DOWN"===this._config.arcOrientation,logScale:this._config.logScale}}getContextMenuItems(A,I){const g=[];return g.push({label:"Nested Arcs",type:"checkbox",checked:"nested"===this._config.displayMode,action:()=>this.setConfig({displayMode:"nested"})}),g.push({label:"Proportional Arcs",type:"checkbox",checked:"proportional"===this._config.displayMode,action:()=>this.setConfig({displayMode:"proportional"})}),g.push({label:"",type:"separator"}),g.push({label:"Toggle Arc Direction",action:()=>this.setConfig({arcOrientation:"UP"===this._config.arcOrientation?"DOWN":"UP"})}),g.push({label:this._config.showBlocks?"Hide Blocks":"Show Blocks",action:()=>this.setConfig({showBlocks:!this._config.showBlocks})}),g}getNumericState(){if("proportional"!==this._config.displayMode)return;const A=GB(this.features);return{autoscale:!0,logScale:this._config.logScale,dataRange:A,setAutoscale:()=>{},setLogScale:A=>this.setConfig({logScale:A}),setDataRange:()=>{}}}}function GB(A){var I,g;let t=0;for(const C of A){const A=null!==(g=null!==(I=C.value)&&void 0!==I?I:C.score)&&void 0!==g?g:0;isNaN(A)||(t=Math.max(t,A))}return{min:0,max:t}}class FB extends xt{constructor(A,I){const g=x(L(I.theme),I.config);super(A,I.locus,g,I.canvasProvider),this.features=[],this._featureRects=[],this._lastRc=null,this._lastHeight=0,this.type="peakOverlay",I.features&&(this.features=I.features)}setFeatures(A){this.features=A,this.render()}computeHeight(A){var I;return null!==(I=this._config.height)&&void 0!==I?I:50}getBackground(){return"transparent"}doRender(A,I,g,t){this._lastRc=t,this._lastHeight=g;const C=t.bpPerPixel*t.viewportWidth;this._config.visibilityWindow>0&&C>this._config.visibilityWindow?this._featureRects=[]:(!function(A,I,g,t,C){if(0===I.length)return;const{display:e}=g,B=e.includes("shaded"),i=e.includes("bar"),Q=e.includes("summit");if(!B&&!i&&!Q)return;const o=t.bpStart+t.pixelWidth*t.bpPerPixel;for(let e=Yt(I,t.bpStart);e<I.length;e++){const s=I[e];if(s.start>o)break;const E=(s.start-t.bpStart)/t.bpPerPixel,a=(s.end-t.bpStart)/t.bpPerPixel,r=Math.max(1,a-E);if(B&&(A.fillStyle=g.color,A.fillRect(E,0,r,C)),i&&(A.fillStyle=g.color,A.fillRect(E,C-g.barHeight,r,g.barHeight)),Q&&null!=s.peak){const I=(s.start+s.peak-t.bpStart)/t.bpPerPixel;if(I>=0&&I<=t.pixelWidth){const t=g.summitSize/2;A.fillStyle=g.summitColor,A.beginPath(),A.moveTo(I-t,C),A.lineTo(I,C-g.summitSize),A.lineTo(I+t,C),A.closePath(),A.fill()}}}}(A,this.features,this._config,t,g),this._featureRects=this.computeFeatureRects(t,g))}getFeatureRects(){const A=this.currentPixelShiftOffset;return 0===A?this._featureRects:this._featureRects.map(I=>({...I,x:I.x+A}))}computeFeatureRects(A,I){const g=[],t=A.bpStart+A.pixelWidth*A.bpPerPixel;for(let C=Yt(this.features,A.bpStart);C<this.features.length;C++){const e=this.features[C];if(e.start>t)break;const B=(e.start-this._locus.start)/A.bpPerPixel,i=(e.end-this._locus.start)/A.bpPerPixel;g.push({feature:e,x:B,y:0,width:Math.max(1,i-B),height:I,color:this._config.color})}return g}hitTest(A,I){if(!this._lastRc)return[];const g=this.viewportXToGenomicBp(A),t=[];for(let A=Yt(this.features,g);A<this.features.length;A++){const I=this.features[A];if(I.start>g)break;g<=I.end&&t.push({feature:I,popupData:NB(I)})}return t}getContextMenuItems(A,I){const g=this._config.display;return["shaded","bar","summit","none"].map(A=>({label:`Peak: ${A}`,type:"checkbox",checked:g.includes(A),action:()=>{if("none"===A)this.setConfig({display:g.includes("none")?["shaded"]:["none"]});else{const I=g.filter(I=>I!==A&&"none"!==I),t=g.includes(A)?I:[...I,A];this.setConfig({display:t.length>0?t:["none"]})}}}))}setTheme(A){this._config=x(A),this.render()}serializeConfig(A){const I=x(L(A)),g={};let t=!1;const C=this._config;return C.background!==I.background&&(g.background=C.background,t=!0),C.barHeight!==I.barHeight&&(g.barHeight=C.barHeight,t=!0),C.summitColor!==I.summitColor&&(g.summitColor=C.summitColor,t=!0),C.summitSize!==I.summitSize&&(g.summitSize=C.summitSize,t=!0),C.color!==I.color&&(g.color=C.color,t=!0),C.visibilityWindow!==I.visibilityWindow&&(g.visibilityWindow=C.visibilityWindow,t=!0),(C.display.length!==I.display.length||C.display.some((A,g)=>A!==I.display[g]))&&(g.display=C.display,t=!0),{type:"peakOverlay",config:t?g:void 0}}}function NB(A){const I=[];return A.name&&I.push({name:"Peak",value:A.name}),I.push({name:"Region",value:`${A.chr}:${A.start.toLocaleString()}-${A.end.toLocaleString()}`}),null!=A.signal&&I.push({name:"Signal",value:A.signal.toPrecision(4)}),null!=A.pValue&&I.push({name:"-log10(p)",value:A.pValue.toPrecision(4)}),null!=A.qValue&&I.push({name:"-log10(q)",value:A.qValue.toPrecision(4)}),null!=A.peak&&I.push({name:"Summit",value:(A.start+A.peak).toLocaleString()}),I}class mB extends xt{constructor(A,I,g,t){super(A,I,g,t),this._children=[],this._expanded=!1}get expanded(){return this._expanded}set expanded(A){var I;this._expanded!==A&&(this._expanded=A,null===(I=this.onExpandedChanged)||void 0===I||I.call(this,A,this))}addChild(A,I){var g;this._children.push({track:A,name:I}),null===(g=this.onChildrenChanged)||void 0===g||g.call(this,this)}removeChild(A){var I;const g=this._children.length;this._children="string"==typeof A?this._children.filter(I=>I.name!==A):this._children.filter(I=>I.track!==A),this._children.length!==g&&(null===(I=this.onChildrenChanged)||void 0===I||I.call(this,this))}reorderChildren(A,I){var g;if(A<0||A>=this._children.length)return;if(I<0||I>=this._children.length)return;const[t]=this._children.splice(A,1);this._children.splice(I,0,t),null===(g=this.onChildrenChanged)||void 0===g||g.call(this,this)}getChildren(){return this._children}serializeChildren(A){return this._children.map(({track:I,name:g})=>{const t=I.serializeConfig(A);return g?{...t,name:g}:t})}}class RB extends mB{constructor(A,I){var g;const t=H(L(I.theme),I.config);super(A,I.locus,t,null!==(g=I.canvasProvider)&&void 0!==g?g:p),this._mergedFeatures=null,this._userOverrides={},this._renderedDataRange=null,this._coordinatedDataRange=null,this._lastPropagatedHeight=-1,this.type="merged",this._children=[...I.childTracks],this._name=I.name,I.config&&(this._userOverrides={...I.config}),this.propagateSharedSettings()}get childTracks(){return this._children}setFeatures(A){var I;if(0===A.length)this._mergedFeatures=null;else{this._mergedFeatures=A[0];for(let A=0;A<this._children.length;A++){const g=this._children[A].track,t=null!==(I=this._mergedFeatures.featureArrays[A])&&void 0!==I?I:[];"setFeatures"in g&&"function"==typeof g.setFeatures&&(g.suspendRendering(),g.setFeatures(t))}}this.render()}setLocus(A){this._locus=A;for(const{track:I}of this._children)I.suspendRendering(),I.setLocus(A);this.render()}setCoordinatedDataRange(A){this._coordinatedDataRange=A}setConfig(A){Object.assign(this._userOverrides,A),super.setConfig(A),this.propagateSharedSettings()}setTheme(A){this._config=H(A,this._userOverrides);for(const{track:I}of this._children)I.setTheme(A);this.render()}computeHeight(A){return this._config.height}getBackground(){return this._config.background}renderLabelOverlay(A,I,g){this.externalUIEnabled||this._name&&Ht(A,{name:this._name,background:this._config.background,labelColor:this._config.labelColor},g)}doRender(A,I,g,t){var C,e;for(const{track:A}of this._children)A.suspendRendering();if(g!==this._lastPropagatedHeight){this._lastPropagatedHeight=g;for(const{track:A}of this._children)"setConfig"in A&&"function"==typeof A.setConfig&&A.setConfig({height:g})}if(this._coordinatedDataRange){const A=this._coordinatedDataRange;this._config={...this._config,dataRange:A};for(const{track:I}of this._children){const g=null===(C=I.getNumericState)||void 0===C?void 0:C.call(I);g&&(g.setAutoscale(!1),g.setDataRange(A.min,A.max))}}else if(this._config.autoscale&&this._mergedFeatures){const A=t.bpStart+(t.pixelWidth-t.viewportWidth)/2*t.bpPerPixel,I=A+t.viewportWidth*t.bpPerPixel,g=this._mergedFeatures.getMax(A,I),C=this._mergedFeatures.getMin(A,I),B=g<0?0:g,i={min:g>0?Math.min(0,C):C,max:B};this._config={...this._config,dataRange:i};for(const{track:A}of this._children){const I=null===(e=A.getNumericState)||void 0===e?void 0:e.call(A);I&&(I.setAutoscale(!1),I.setDataRange(i.min,i.max))}}for(const{track:C}of this._children)C.renderToContext&&(A.save(),A.globalAlpha=this._config.alpha,C.renderToContext(A,I,g,{skipBackground:!0,rc:t}),A.restore());this._renderedDataRange=this.readChildRenderedRange();for(const{track:A}of this._children)A.discardPendingRender(),A.resumeRendering();this.renderLabelOverlay(A,I,g)}getUIOverlayState(){if(this._name)return{label:{text:this._name,background:this._config.background,color:this._config.labelColor}}}hitTest(A,I){const g=this.viewportXToGenomicBp(A),t=[];for(let C=0;C<this._children.length;C++){const{track:e,name:B}=this._children[C],i=e instanceof xt?e.genomicBpToViewportX(g):A,Q=e.hitTest(i,I);if(Q.length>0){const A={name:"Track",value:null!=B?B:`Track ${C+1}`,borderTop:C>0};for(const I of Q)t.push({feature:I.feature,popupData:[A,...I.popupData]})}}return t}getFeatureRects(){const A=this.currentPixelShiftOffset,I=this._children.flatMap(({track:A})=>"getFeatureRects"in A&&"function"==typeof A.getFeatureRects?A.getFeatureRects():[]);return 0===A?I:I.map(I=>({...I,x:I.x+A}))}getAxisInfo(){var A;const I=null!==(A=this._renderedDataRange)&&void 0!==A?A:this._config.dataRange;if(this._name||I)return{dataRange:I,label:this._name,flipAxis:this._config.flipAxis||void 0,logScale:this._config.logScale||void 0}}getNumericState(){if(this._children.some(({track:A})=>{var I;return null!=(null===(I=A.getNumericState)||void 0===I?void 0:I.call(A))}))return{autoscale:this._config.autoscale,logScale:this._config.logScale,dataRange:this._config.dataRange,setAutoscale:A=>{var I;if(this.setConfig({autoscale:A}),!A)for(const{track:A}of this._children){const g=null===(I=A.getNumericState)||void 0===I?void 0:I.call(A);g&&g.setAutoscale(!0)}},setLogScale:A=>{var I;this.setConfig({logScale:A});for(const{track:g}of this._children){const t=null===(I=g.getNumericState)||void 0===I?void 0:I.call(g);(null==t?void 0:t.setLogScale)&&t.setLogScale(A)}},setDataRange:(A,I)=>{var g;this.setConfig({dataRange:{min:A,max:I},autoscale:!1});for(const{track:t}of this._children){const C=null===(g=t.getNumericState)||void 0===g?void 0:g.call(t);C&&(C.setDataRange(A,I),C.setAutoscale(!1))}}}}getContextMenuItems(A,I){const g=[];return this._children.some(({track:A})=>{var I;return null!=(null===(I=A.getNumericState)||void 0===I?void 0:I.call(A))})&&g.push({label:"Flip y-axis",type:"checkbox",checked:this._config.flipAxis,action:()=>{var A;const I=!this._config.flipAxis;this.setConfig({flipAxis:I});for(const{track:g}of this._children){(null===(A=g.getNumericState)||void 0===A?void 0:A.call(g))&&"setConfig"in g&&g.setConfig({flipAxis:I})}}}),g.push({type:"separator",label:""}),g.push({label:`Transparency: ${Math.round(100*this._config.alpha)}%`,children:[.2,.3,.5,.7,.8,1].map(A=>({label:`${Math.round(100*A)}%`,type:"checkbox",checked:Math.abs(this._config.alpha-A)<.01,action:()=>this.setConfig({alpha:A})}))}),g.push({label:"Separate tracks",action:()=>{var A;null===(A=this.onConfigChanged)||void 0===A||A.call(this)}}),g}serializeConfig(A){const I=H(A),g={};let t=!1;const C=this._config;return C.height!==I.height&&(g.height=C.height,t=!0),C.alpha!==I.alpha&&(g.alpha=C.alpha,t=!0),C.autoscale!==I.autoscale&&(g.autoscale=C.autoscale,t=!0),!C.autoscale&&C.dataRange&&(g.dataRange=C.dataRange,t=!0),C.flipAxis!==I.flipAxis&&(g.flipAxis=C.flipAxis,t=!0),C.logScale!==I.logScale&&(g.logScale=C.logScale,t=!0),C.background!==I.background&&(g.background=C.background,t=!0),{type:"merged",tracks:this.serializeChildren(A),config:t?g:void 0}}propagateSharedSettings(){var A;for(const{track:I}of this._children){(null===(A=I.getNumericState)||void 0===A?void 0:A.call(I))&&"setConfig"in I&&I.setConfig({flipAxis:this._config.flipAxis,logScale:this._config.logScale})}}readChildRenderedRange(){var A;let I=1/0,g=-1/0,t=!1;for(const{track:C}of this._children){const e=null===(A=C.getAxisInfo)||void 0===A?void 0:A.call(C);(null==e?void 0:e.dataRange)&&(I=Math.min(I,e.dataRange.min),g=Math.max(g,e.dataRange.max),t=!0)}return t?{min:I,max:g}:null}}class pB{constructor(A,I){this.featureArrays=A,this.trackNames=I}getMax(A,I){let g=-Number.MAX_VALUE;for(const t of this.featureArrays)for(const C of t){const t=C;if(void 0!==t.value&&!Number.isNaN(t.value)&&!(t.end<A)){if(t.start>I)break;g=Math.max(g,t.value)}}return g!==-Number.MAX_VALUE?g:100}getMin(A,I){let g=0;for(const t of this.featureArrays)for(const C of t){const t=C;if(void 0!==t.value&&!Number.isNaN(t.value)&&!(t.end<A)){if(t.start>I)break;g=Math.min(g,t.value)}}return g}}class UB{constructor(A,I){this.childSources=A,this.trackNames=I}async fetch(A,I,g){const t=await Promise.allSettled(this.childSources.map(t=>t.fetch(A,I,g)));if(t.every(A=>{var I;return"rejected"===A.status&&("AbortError"===(null===(I=A.reason)||void 0===I?void 0:I.name)||`${A.reason}`.includes("abort"))})&&t.length>0){throw t.find(A=>"rejected"===A.status).reason}const C=t.map((A,I)=>{var g,t,C;return"fulfilled"===A.status?A.value:(P.warn(`MergedDataSource child "${null!==(g=this.trackNames[I])&&void 0!==g?g:I}" failed, using empty features:`,null!==(C=null===(t=A.reason)||void 0===t?void 0:t.message)&&void 0!==C?C:A.reason),[])});return[new pB(C,this.trackNames)]}dispose(){var A;for(const I of this.childSources)null===(A=I.dispose)||void 0===A||A.call(I)}}function MB(A,I){return(A.start-I.bpStart)/I.bpPerPixel}function LB(A,I){return Math.max(1,(A.end-A.start)/I.bpPerPixel)}function JB(A,I,g){const{min:t,max:C}=I.dataRange,e=C-t||1;return(I.flipAxis?(A-t)/e:1-(A-t)/e)*g}function KB(A,I){const g=A.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);if(g)return`rgba(${g[1]}, ${g[2]}, ${g[3]}, ${I})`;if(A.match(/^#([0-9a-f]{3}){1,2}$/i)){const g=A.slice(1),t=3===g.length?g.split("").map(A=>A+A).join(""):g;return`rgba(${parseInt(t.slice(0,2),16)}, ${parseInt(t.slice(2,4),16)}, ${parseInt(t.slice(4,6),16)}, ${I})`}return A}function YB(A,I,g,t,C,e,B){if(0===I.length)return;const i=KB(C.bandColor,C.bandAlpha);A.fillStyle=i,A.beginPath();for(let g=0;g<I.length;g++){const i=I[g],Q=MB(i,B),o=JB(t(i),C,e);0===g?A.moveTo(Q,o):A.lineTo(Q,o),A.lineTo(Q+LB(i,B),o)}for(let t=I.length-1;t>=0;t--){const i=I[t],Q=MB(i,B)+LB(i,B),o=JB(g(i),C,e);A.lineTo(Q,o),A.lineTo(MB(i,B),o)}A.closePath(),A.fill()}function vB(A,I,g,t,C,e,B,i){if(0!==I.length){A.strokeStyle=t,A.lineWidth=C,A.beginPath();for(let t=0;t<I.length;t++){const C=I[t],Q=MB(C,i)+LB(C,i)/2,o=JB(g(C),e,B);0===t?A.moveTo(Q,o):A.lineTo(Q,o)}A.stroke()}}function bB(A,I,g,t,C){YB(A,I,A=>A.min,A=>A.max,g,t,C)}function xB(A,I,g,t,C){YB(A,I,A=>A.mean-A.stdDev,A=>A.mean+A.stdDev,g,t,C),vB(A,I,A=>A.mean,g.lineColor,1.5,g,t,C)}function HB(A,I,g,t,C){YB(A,I,A=>A.mean-A.stdErr,A=>A.mean+A.stdErr,g,t,C),vB(A,I,A=>A.mean,g.lineColor,1.5,g,t,C)}function qB(A,I,g,t,C){YB(A,I,A=>A.q1,A=>A.q3,g,t,C),vB(A,I,A=>A.median,g.lineColor,1.5,g,t,C)}function TB(A,I,g,t,C){const e=Math.max(.1,g.bandAlpha);for(const B of I){if(!B||0===B.length)continue;A.strokeStyle=KB(g.lineColor,e),A.lineWidth=1,A.beginPath();let I=!0;for(const e of B){const B=MB(e,C)+LB(e,C)/2,i=JB(e.value,g,t);I?(A.moveTo(B,i),I=!1):A.lineTo(B,i)}A.stroke()}}class _B{constructor(A,I){this.count=0,this.mean=0,this.m2=0,this.min=1/0,this.max=-1/0,this.values=[],this._sortedValues=null,this.bin=A,this.chr=I}add(A){this.count++;const I=A-this.mean;this.mean+=I/this.count;const g=A-this.mean;this.m2+=I*g,A<this.min&&(this.min=A),A>this.max&&(this.max=A),this.values.push(A),this._sortedValues=null}get variance(){return this.count<2?0:this.m2/(this.count-1)}get stdDev(){return Math.sqrt(this.variance)}get stdErr(){return this.count>0?this.stdDev/Math.sqrt(this.count):0}get median(){return this._percentile(.5)}get q1(){return this._percentile(.25)}get q3(){return this._percentile(.75)}_percentile(A){const I=this._getSortedValues();if(0===I.length)return 0;const g=A*(I.length-1),t=Math.floor(g),C=Math.ceil(g);return t===C?I[t]:I[t]*(C-g)+I[C]*(g-t)}_getSortedValues(){return this._sortedValues||(this._sortedValues=[...this.values].sort((A,I)=>A-I)),this._sortedValues}toFeature(A,I){const g=I+this.bin*A,t=g+A;return{chr:this.chr,start:g,end:t,value:this.mean,mean:this.mean,stdDev:this.stdDev,stdErr:this.stdErr,median:this.median,q1:this.q1,q3:this.q3,min:this.min===1/0?0:this.min,max:this.max===-1/0?0:this.max,n:this.count}}}function WB(A,I,g){if(0===A.length)return[];const t=Math.max(g,1),C=new Map;for(const g of A){if(!g||0===g.length)continue;const A=g[0].chr;for(const e of g){if(Number.isNaN(e.value))continue;const g=Math.floor((e.start-I)/t),B=Math.max(g,Math.ceil((e.end-I)/t)-1);for(let I=g;I<=B;I++){let g=C.get(I);g||(g=new _B(I,A),C.set(I,g)),g.add(e.value)}}}return[...C.values()].sort((A,I)=>A.bin-I.bin).map(A=>A.toFeature(t,I))}function PB(A,I,g){return"none"===g.mode?A:A.map(A=>function(A,I,g){if(0===A.length)return A;const t=A.filter(A=>A.end>=I.start&&A.start<=I.end&&Number.isFinite(A.value)).map(A=>A.value);if(0===t.length)return A;const C=function(A,I){switch(I.mode){case"max":return OB(VB(function(A){let I=0;for(const g of A){const A=Math.abs(g);A>I&&(I=A)}return I}(A)));case"zscore":{const I=A.reduce((A,I)=>A+I,0)/A.length,g=A.length>1?A.reduce((A,g)=>A+(g-I)**2,0)/(A.length-1):0,t=Math.sqrt(Math.max(g,0));return 0===t?A=>A-I:A=>(A-I)/t}case"robustZscore":{const g=XB(A,.5),t=XB(A,ZB(I.centerPercentileLow)),C=XB(A,ZB(I.centerPercentileHigh))-t;return 0===C?A=>A-g:A=>(A-g)/C}case"percentile":{const g=A.map(A=>Math.abs(A)),t=XB(g,ZB(I.percentile)),C=function(A){let I=-1/0;for(const g of A)g>I&&(I=g);return I}(g);return OB(VB(t||C))}case"none":return A=>A}}(t,g);return A.map(A=>({...A,value:C(A.value)}))}(A,I,g))}function OB(A){return 0===A?A=>A:I=>I/A}function VB(A){return Number.isFinite(A)&&0!==A?A:1}function ZB(A){return Math.min(100,Math.max(0,A))/100}function XB(A,I){if(0===A.length)return 0;const g=[...A].sort((A,I)=>A-I),t=I*(g.length-1),C=Math.floor(t),e=Math.ceil(t);return C===e?g[C]:g[C]*(e-t)+g[e]*(t-C)}class zB extends mB{constructor(A,I){var g;const t=q(L(I.theme),I.config);super(A,I.locus,t,null!==(g=I.canvasProvider)&&void 0!==g?g:p),this._aggregated=[],this._rawArrays=[],this._userOverrides={},this._renderedDataRange=null,this.type="wigGroup",this._children=[...I.childTracks],this._name=I.name,I.config&&(this._userOverrides={...I.config})}get childTracks(){return this._children}setFeatures(A){if(0===A.length)return;const I=A[0];this._aggregated=I.aggregated,this._rawArrays=I.rawArrays;for(let A=0;A<this._children.length&&A<I.rawArrays.length;A++){const g=this._children[A].track;"function"==typeof g.setFeatures&&g.setFeatures(I.rawArrays[A])}this.render()}setConfig(A){Object.assign(this._userOverrides,A),super.setConfig(A)}setTheme(A){this._config=q(A,this._userOverrides),this.render()}computeHeight(A){return this._config.height}getBackground(){return this._config.background}renderLabelOverlay(A,I,g){this.externalUIEnabled||this._name&&Ht(A,{name:this._name,background:this._config.background,labelColor:this._config.labelColor},g)}doRender(A,I,g,t){var C;const e=(I-t.viewportWidth)/2,B=e+t.viewportWidth;this.externalUIEnabled||(this._name&&(A.save(),A.translate(e,0),Ht(A,{name:this._name,background:this._config.background,labelColor:this._config.labelColor},g),A.restore()),this._drawBadge(A,g,B));const i=this._buildSummaryData(t);if(0!==i.features.length){if(this._config.autoscale&&i.features.length>0){const A=t.bpStart+(t.pixelWidth-t.viewportWidth)/2*t.bpPerPixel,I=A+t.viewportWidth*t.bpPerPixel,g=i.features.filter(g=>g.end>=A&&g.start<=I);if(g.length>0){let A=1/0,I=-1/0;const t=this._config.activeModes;for(const C of g)t.includes("minMax")&&(A=Math.min(A,C.min),I=Math.max(I,C.max)),t.includes("meanSd")&&(A=Math.min(A,C.mean-C.stdDev),I=Math.max(I,C.mean+C.stdDev)),t.includes("meanSe")&&(A=Math.min(A,C.mean-C.stdErr),I=Math.max(I,C.mean+C.stdErr)),t.includes("medianIqr")&&(A=Math.min(A,C.q1),I=Math.max(I,C.q3)),t.includes("overlay")&&(A=Math.min(A,C.min),I=Math.max(I,C.max));I>0&&(A=Math.min(0,A)),I<0&&(I=0),this._renderedDataRange={min:isFinite(A)?A:0,max:isFinite(I)?I:100}}else this._renderedDataRange=null}else this._renderedDataRange=null;!function(A,I,g,t){const{features:C,rawArrays:e,config:B,rc:i,numTracks:Q,modes:o}=t,s=["minMax","overlay","medianIqr","meanSe","meanSd"].filter(A=>o.includes(A));for(const I of s)switch(I){case"minMax":bB(A,C,B,g,i);break;case"meanSd":xB(A,C,B,g,i);break;case"meanSe":HB(A,C,B,g,i);break;case"medianIqr":qB(A,C,B,g,i);break;case"overlay":TB(A,e,B,g,i)}}(A,0,g,{features:i.features,rawArrays:i.rawArrays,config:{...this._config,dataRange:null!==(C=this._renderedDataRange)&&void 0!==C?C:this._config.dataRange},rc:t,numTracks:this._children.length,modes:this._config.activeModes}),this.externalUIEnabled||(this._name&&(A.save(),A.translate(e,0),Ht(A,{name:this._name,background:this._config.background,labelColor:this._config.labelColor},g),A.restore()),this._drawBadge(A,g,B))}else this._renderedDataRange=null}_drawBadge(A,I,g){const t=`[${this._children.length}]`,C="bold 10px sans-serif";A.font=C;const e=A.measureText(t).width+8,B=g-4-e,i=(I-16)/2;A.fillStyle=this._config.badgeBackground,A.beginPath(),A.roundRect(B,i,e,16,3),A.fill(),A.fillStyle=this._config.badgeColor,A.font=C,A.textAlign="left",A.textBaseline="middle",A.fillText(t,B+4,i+8+1)}_getBadgeRect(A,I){const g=this._canvas.getContext("2d"),t=`[${this._children.length}]`;if(!g){const g=7*t.length+8,C=16;return{x:A-4-g,y:(I-C)/2,w:g,h:C}}g.font="bold 10px sans-serif";const C=g.measureText(t).width+8;return{x:A-4-C,y:(I-16)/2,w:C,h:16}}onCanvasClick(A,I){const g=this._getBadgeRect(this.viewportWidth,this.height);return A>=g.x&&A<=g.x+g.w&&I>=g.y&&I<=g.y+g.h&&(this.expanded=!this._expanded,!0)}getUIOverlayState(){const A={badge:{id:"badge",text:`[${this._children.length}]`,background:this._config.badgeBackground,color:this._config.badgeColor}};return this._name&&(A.label={text:this._name,background:this._config.background,color:this._config.labelColor}),A}onUIOverlayClick(A){return"badge"===A&&(this.expanded=!this._expanded,!0)}getAxisInfo(){var A;const I=null!==(A=this._renderedDataRange)&&void 0!==A?A:this._config.dataRange;if(this._name||I)return{dataRange:I,label:this._name,flipAxis:this._config.flipAxis||void 0,logScale:this._config.logScale||void 0}}getNumericState(){return{autoscale:this._config.autoscale,logScale:this._config.logScale,dataRange:this._config.dataRange,setAutoscale:A=>this.setConfig({autoscale:A}),setLogScale:A=>this.setConfig({logScale:A}),setDataRange:(A,I)=>this.setConfig({dataRange:{min:A,max:I},autoscale:!1})}}hitTest(A,I){const g=this._buildSummaryDataForCurrentViewport();if(0===g.features.length)return[];const t=this._genomicPosForHitTest(A);for(let A=Yt(g.features,t);A<g.features.length;A++){const I=g.features[A];if(I.start>t)break;if(t<I.end)return[{feature:I,popupData:this._buildPopupData(I,t,g.rawArrays)}]}return[]}getContextMenuItems(A,I){const g=[];g.push({label:this._expanded?"Collapse":"Expand",action:()=>{this.expanded=!this._expanded}}),g.push({type:"separator",label:""});g.push({label:"Aggregation modes",children:[["meanSd","Mean ± SD"],["meanSe","Mean ± SE"],["medianIqr","Median ± IQR"],["minMax","Min/Max envelope"],["overlay","Overlay (individual lines)"]].map(([A,I])=>({label:I,type:"checkbox",checked:this._config.activeModes.includes(A),action:()=>{const I=this._config.activeModes,g=I.includes(A)?I.filter(I=>I!==A):[...I,A];g.length>0&&this.setConfig({activeModes:g})}}))}),g.push({type:"separator",label:""});const t=[["none","None"],["max","Max to 1"],["zscore","Z-score"],["robustZscore","Robust Z-score"],["percentile","Percentile scale"]].map(([A,I])=>({label:I,type:"checkbox",checked:this._config.normalizationMode===A,action:()=>this.setConfig({normalizationMode:A})}));return"percentile"===this._config.normalizationMode&&(t.push({type:"separator",label:""}),t.push({label:`Percentile: ${this._config.normalizationPercentile}th`,disabled:!0})),g.push({label:"Normalization",children:t}),g.push({type:"separator",label:""}),g.push({label:"Autoscale",type:"checkbox",checked:this._config.autoscale,action:()=>this.setConfig({autoscale:!this._config.autoscale})}),g.push({label:"Flip y-axis",type:"checkbox",checked:this._config.flipAxis,action:()=>this.setConfig({flipAxis:!this._config.flipAxis})}),g.push({type:"separator",label:""}),g.push({label:"Ungroup",action:()=>{var A;null===(A=this.onConfigChanged)||void 0===A||A.call(this)}}),g}serializeConfig(A){const I=q(A),g=this._config,t={};let C=!1;for(const A of["height","lineColor","bandColor","bandAlpha","badgeBackground","badgeColor","autoscale","flipAxis","logScale","normalizationMode","normalizationPercentile","normalizationCenterPercentileLow","normalizationCenterPercentileHigh","labelColor","labelFont","showDataRange","background"])g[A]!==I[A]&&(t[A]=g[A],C=!0);return JSON.stringify(g.activeModes)!==JSON.stringify(I.activeModes)&&(t.activeModes=g.activeModes,C=!0),g.autoscale||g.dataRange.min===I.dataRange.min&&g.dataRange.max===I.dataRange.max||(t.dataRange=g.dataRange,C=!0),{type:"wigGroup",tracks:this.serializeChildren(A),config:C?t:void 0,expanded:this._expanded||void 0}}_buildSummaryData(A){if(0===this._rawArrays.length)return{features:this._aggregated,rawArrays:[]};if(this._canReusePrecomputedAggregation(A.bpStart,A.bpPerPixel))return{features:this._aggregated,rawArrays:this._rawArrays};const I=this._applyChildValueScaling(this._rawArrays),g=this._normalizeSummaryRawArrays(I,{chr:this._locus.chr,start:A.bpStart+(A.pixelWidth-A.viewportWidth)/2*A.bpPerPixel,end:A.bpStart+(A.pixelWidth+A.viewportWidth)/2*A.bpPerPixel});return{features:WB(g,A.bpStart,A.bpPerPixel),rawArrays:g}}_buildSummaryDataForCurrentViewport(){if(0===this._rawArrays.length)return{features:this._aggregated,rawArrays:[]};const A=this.viewportWidth;if(A>0&&!this.needsRepaint(this._locus))return this._buildSummaryData({pixelWidth:A*this.overscanMultiplier,bpStart:this._renderBpStart,bpPerPixel:this._renderBpPerPixel,viewportWidth:A});const I=this.viewportWidth;if(I<=0)return{features:this._aggregated,rawArrays:[]};const g=(this._locus.end-this._locus.start)/I;if(this._canReusePrecomputedAggregation(this._locus.start,g))return{features:this._aggregated,rawArrays:this._rawArrays};const t=this._applyChildValueScaling(this._rawArrays),C=this._normalizeSummaryRawArrays(t,this._locus);return{features:WB(C,this._locus.start,g),rawArrays:C}}_canReusePrecomputedAggregation(A,I){if("none"!==this._config.normalizationMode)return!1;if(this._hasChildValueScaling())return!1;if(0===this._aggregated.length)return!0;const g=this._aggregated[0];return g.start===A&&g.end-g.start===I}_hasChildValueScaling(){return this._children.some(({track:A})=>{var I,g;const t=A.config;return 1!==(null!==(I=null==t?void 0:t.normalizationFactor)&&void 0!==I?I:1)||1!==(null!==(g=null==t?void 0:t.scaleFactor)&&void 0!==g?g:1)})}_normalizeSummaryRawArrays(A,I){return PB(A,I,{mode:this._config.normalizationMode,percentile:this._config.normalizationPercentile,centerPercentileLow:this._config.normalizationCenterPercentileLow,centerPercentileHigh:this._config.normalizationCenterPercentileHigh})}_applyChildValueScaling(A){return A.map((A,I)=>{var g,t,C,e,B;const i=null===(g=this._children[I])||void 0===g?void 0:g.track,Q=(null!==(C=null===(t=null==i?void 0:i.config)||void 0===t?void 0:t.normalizationFactor)&&void 0!==C?C:1)*(null!==(B=null===(e=null==i?void 0:i.config)||void 0===e?void 0:e.scaleFactor)&&void 0!==B?B:1);return 1===Q?A:A.map(A=>({...A,value:A.value*Q}))})}_buildPopupData(A,I,g){var t,C;const e=null!==(t=this._renderedDataRange)&&void 0!==t?t:this._config.dataRange,B=[],i=[{name:"Track",value:null!==(C=this._name)&&void 0!==C?C:"Wig group"},{name:"Display",value:this._describeDisplayScale()},{name:"Bin",value:`${A.chr}:${Math.floor(A.start).toLocaleString()}-${Math.ceil(A.end).toLocaleString()}`},{name:"Stats",value:`mu ${jB(A.mean)} med ${jB(A.median)} n ${A.n}`,monospace:!0},{name:"Summary",value:"",content:Ai(A,e.min,e.max,this._children.map((A,t)=>{var C,e,i;const Q=function(A,I){for(let g=Yt(A,I);g<A.length;g++){const t=A[g];if(t.start>I)break;if(I<t.end)return t}return}(null!==(C=g[t])&&void 0!==C?C:[],I);if(!Q)return null;const o=gi[t%gi.length];return B.push({label:null!==(e=A.name)&&void 0!==e?e:`Track ${t+1}`,color:o}),{label:null!==(i=A.name)&&void 0!==i?i:`Track ${t+1}`,value:Q.value,color:o}}).filter(A=>null!=A))},{name:"Guide",value:"",content:A=>{const I=A.createElement("div");I.className="legend-list";const g=(g,t)=>{const C=A.createElement("div");C.className="legend-row";const e=A.createElement("span");e.className="legend-label";const B=A.createElement("span");B.className="legend-swatch",B.style.background=t,e.appendChild(B),e.appendChild(A.createTextNode(g)),C.appendChild(e),I.appendChild(C)};return g("IQR band","#60a5fa"),g("Median line / mean marker",ti),I}}];var Q,o;return i.push({name:"Legend",value:"",content:(Q=B,o=this._describeLegendNote(),A=>{const I=A.createElement("div"),g=A.createElement("div");g.className="legend-list";for(const I of Q){const t=A.createElement("div");t.className="legend-row";const C=A.createElement("span");C.className="legend-label";const e=A.createElement("span");e.className="legend-swatch",e.style.background=I.color,C.appendChild(e),C.appendChild(A.createTextNode(I.label)),t.appendChild(C),g.appendChild(t)}const t=A.createElement("div");return t.className="popup-note",t.textContent=o,I.appendChild(g),I.appendChild(t),I})}),i}_describeDisplayScale(){switch(this._config.normalizationMode){case"none":return"Original values";case"max":return"Displayed after Max-to-1 normalization";case"zscore":return"Displayed after Z-score normalization";case"robustZscore":return"Displayed after Robust Z-score normalization";case"percentile":return`Displayed after Percentile normalization (${this._config.normalizationPercentile}th)`}}_describeLegendNote(){return"none"===this._config.normalizationMode?"Hover a dot in the summary bar to see that track value.":"Hover a dot in the summary bar to see the grouped value after normalization."}_genomicPosForHitTest(A){const I=this.viewportXToGenomicBp(A);if(0!==I)return I;const g=this.viewportWidth;if(g<=0)return this._locus.start;const t=(this._locus.end-this._locus.start)/g;return this._locus.start+A*t}}function jB(A){return Number.isInteger(A)?A:Number(A.toPrecision(6))}function $B(A){const I=jB(A);return String(I)}function Ai(A,I,g,t){return C=>{const e=220,B=16,i=Ii(A.min,I,g,e),Q=Ii(A.q1,I,g,e),o=Ii(A.median,I,g,e),s=Ii(A.q3,I,g,e),E=Ii(A.max,I,g,e),a=Ii(A.mean,I,g,e),r=I<0&&g>0?Ii(0,I,g,e):null,n="http://www.w3.org/2000/svg",h=C.createElementNS(n,"svg");h.setAttribute("width",String(e)),h.setAttribute("height",String(46)),h.setAttribute("viewBox","0 0 220 46"),h.setAttribute("aria-label","summary distribution"),h.style.color=ti;const c=(A,I)=>{const g=C.createElementNS(n,A);for(const[A,t]of Object.entries(I))g.setAttribute(A,t);return h.appendChild(g),g};c("rect",{x:"8",y:String(14),width:String(204),height:"4",rx:"2",fill:"#d7dde5"}),null!=r&&c("line",{x1:String(r),y1:"6",x2:String(r),y2:String(28),stroke:"#e2e8f0","stroke-dasharray":"2 2"}),c("line",{x1:String(i),y1:String(B),x2:String(E),y2:String(B),stroke:"#cbd5e1","stroke-width":"2"}),c("rect",{x:String(Math.min(Q,s)),y:String(11),width:String(Math.max(2,Math.abs(s-Q))),height:"10",rx:"5",fill:"#60a5fa"}),c("line",{x1:String(o),y1:String(8),x2:String(o),y2:String(24),stroke:"currentColor","stroke-width":"2"}),c("circle",{cx:String(a),cy:String(B),r:"4",fill:"currentColor",stroke:"#2563eb","stroke-width":"2"});for(const A of t){const t=Ii(A.value,I,g,e),i=c("circle",{cx:String(t),cy:String(B),r:"3.5",fill:A.color}),Q=C.createElementNS(n,"title");Q.textContent=`${A.label}: ${$B(A.value)}`,i.appendChild(Q)}for(const[I,g]of[[i,A.min],[E,A.max]]){c("text",{x:String(I),y:String(42),"text-anchor":"middle","font-size":"10",fill:"currentColor"}).textContent=$B(g)}return h}}function Ii(A,I,g,t,C=8){const e=t-C-8,B=g-I;if(!Number.isFinite(B)||0===B)return C;const i=(A-I)/B;return C+Math.max(0,Math.min(e,i*e))}const gi=["#2563eb","#dc2626","#16a34a","#ca8a04","#7c3aed","#0891b2"],ti="var(--loom-popup-color, var(--loom-text-color, #fff))";class Ci{constructor(A,I){this.aggregated=A,this.rawArrays=I}}class ei{constructor(A,I=[]){this._cachedRaw=[],this._cachedStartBP=0,this._cachedBpPerPixel=0,this.childSources=A,this.trackNames=I}async fetch(A,I,g){const t=await Promise.allSettled(this.childSources.map(t=>t.fetch(A,I,g)));if(t.every(A=>{var I;return"rejected"===A.status&&("AbortError"===(null===(I=A.reason)||void 0===I?void 0:I.name)||`${A.reason}`.includes("abort"))})&&t.length>0){throw t.find(A=>"rejected"===A.status).reason}const C=t.map((A,I)=>{var g,t,C;return"fulfilled"===A.status?A.value:(P.warn(`WigGroupDataSource child "${null!==(g=this.trackNames[I])&&void 0!==g?g:I}" failed:`,null!==(C=null===(t=A.reason)||void 0===t?void 0:t.message)&&void 0!==C?C:A.reason),[])});this._cachedRaw=C,this._cachedStartBP=A.start,this._cachedBpPerPixel=I;const e=WB(C,A.start,I);return[new Ci(e,C)]}reaggregate(){if(0===this._cachedRaw.length)return null;const A=WB(this._cachedRaw,this._cachedStartBP,this._cachedBpPerPixel);return new Ci(A,this._cachedRaw)}get cachedRaw(){return this._cachedRaw}dispose(){var A;for(const I of this.childSources)null===(A=I.dispose)||void 0===A||A.call(I)}}function Bi(A){const I=A.match(/(\d+)\s*,\s*(\d+)\s*,\s*(\d+)/);if(I)return[parseInt(I[1]),parseInt(I[2]),parseInt(I[3])];const g=A.match(/^#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})/);return g?[parseInt(g[1],16),parseInt(g[2],16),parseInt(g[3],16)]:[128,128,128]}function ii(A,I,g,t,C){if("c"===A.type)return I.centromereColor;if("p"===A.type){const I=C.get(A.stain);if(I)return I;const Q=(e=g,B=t,i=A.stain/100,`rgb(${Math.round(e[0]+(B[0]-e[0])*i)},${Math.round(e[1]+(B[1]-e[1])*i)},${Math.round(e[2]+(B[2]-e[2])*i)})`);return C.set(A.stain,Q),Q}var e,B,i;return I.bandLightColor}function Qi(A,I,g,t,C,e){e=Math.min(e,t/2,C/2),A.beginPath(),A.moveTo(I+e,g),A.lineTo(I+t-e,g),A.arcTo(I+t,g,I+t,g+e,e),A.lineTo(I+t,g+C-e),A.arcTo(I+t,g+C,I+t-e,g+C,e),A.lineTo(I+e,g+C),A.arcTo(I,g+C,I,g+C-e,e),A.lineTo(I,g+e),A.arcTo(I,g,I+e,g,e),A.closePath()}function oi(A,I,g,t,C,e,B,i){const Q=t-g;let o,s=C-4-2;for(;s>4&&(A.font=`${s}px ${e.font.replace(/^\d+px\s*/,"")}`,!(A.measureText(I.name).width<=Q));)s-=1;if(s<=4)return;if(A.save(),A.beginPath(),A.rect(g,2,Q,C-4),A.clip(),"p"===I.type){const A=I.stain/100;o=[Math.round(B[0]+(i[0]-B[0])*A),Math.round(B[1]+(i[1]-B[1])*A),Math.round(B[2]+(i[2]-B[2])*A)]}else o=B;const E=(a=o[0],r=o[1],n=o[2],.2126*a+.7152*r+.0722*n);var a,r,n;A.fillStyle=E<128?e.altLabelColor:e.labelColor,A.textAlign="center",A.textBaseline="middle",A.fillText(I.name,g+Q/2,C/2+1),A.restore()}class si extends xt{constructor(A,I={}){var g,t;const C=T(L(I.theme),I.config);super(A,I.locus,C,I.canvasProvider),this.type="ideogram",this._cytobands=[],this._chrLength=0,this._cytobands=null!==(g=I.cytobands)&&void 0!==g?g:[],this._chrLength=null!==(t=I.chrLength)&&void 0!==t?t:0}setCytobands(A,I){this._cytobands=A,this._chrLength=I,this.render()}get cytobands(){return this._cytobands}computeHeight(A){return this._config.height}getBackground(){return this._config.background}doRender(A,I,g,t){0!==this._cytobands.length&&0!==this._chrLength&&(function(A,I,g,t,C){const{pixelWidth:e}=t,B=g.height;if(0===I.length||e<=0||B<=0)return;const i=e/Math.max(C,I[I.length-1].end),Q=.5,o=(B-1)/2,s=Bi(g.bandLightColor),E=Bi(g.bandDarkColor),a=new Map;A.save(),Qi(A,Q,Q,e-1,B-1,o),A.clip();const r=B/2;for(const t of I){const I=i*t.start,C=i*t.end;"c"===t.type?(A.fillStyle=g.centromereColor,A.strokeStyle=g.centromereColor,A.beginPath(),"p"===t.name.charAt(0)?(A.moveTo(I,B),A.lineTo(I,0),A.lineTo(C,r)):(A.moveTo(C,B),A.lineTo(C,0),A.lineTo(I,r)),A.closePath(),A.fill()):(A.fillStyle=ii(t,g,s,E,a),A.fillRect(I,1,C-I,B-2),g.showBandNames&&oi(A,t,I,C,B,g,s,E))}A.restore(),A.strokeStyle=g.borderColor,A.lineWidth=1,Qi(A,Q,Q,e-1,B-1,o),A.stroke()}(A,this._cytobands,this._config,t,this._chrLength),function(A,I,g,t){const{pixelWidth:C,bpStart:e,bpPerPixel:B,viewportWidth:i}=g,Q=I.height,o=Math.round(B*i);if(o>t)return;const s=o/t,E=e/t;let a=Math.floor(E*C),r=Math.floor(s*C);const n=Math.max(r,1);a=Math.max(0,a),a=Math.min(C-n,a),A.save(),A.strokeStyle=I.viewportIndicatorColor,A.lineWidth=r<3?1:2;const h=a+A.lineWidth/2,c=Math.max(1,r-A.lineWidth),l=A.lineWidth/2,d=Q-A.lineWidth;A.strokeRect(h,l,c,d),A.restore()}(A,this._config,t,this._chrLength))}setTheme(A){this._config=T(A),this.render()}serializeConfig(A){const I=T(A);return{type:"ideogram",config:gC(this.config,I)}}hitTest(A,I){if(0===this._cytobands.length||0===this._chrLength)return[];const g=this.viewportWidth;if(0===g)return[];const t=g/Math.max(this._chrLength,this._cytobands[this._cytobands.length-1].end),C=A-this.currentPixelShiftOffset;for(const A of this._cytobands){const I=t*A.start,g=t*A.end;if(C>=I&&C<=g){const I=[{name:"Band",value:A.name},{name:"Position",value:`${A.start.toLocaleString()} - ${A.end.toLocaleString()}`},{name:"Stain",value:"c"===A.type?"centromere":"p"===A.type?`gpos${A.stain}`:"gneg"}];return[{feature:A,popupData:I}]}}return[]}genomicPositionAtPixel(A){if(0===this._cytobands.length||0===this._chrLength)return;const I=this.viewportWidth;if(0===I)return;return A/I*Math.max(this._chrLength,this._cytobands[this._cytobands.length-1].end)}}function Ei(A){var I,g,t,C;null===(g=(I=A.track).dispose)||void 0===g||g.call(I),null===(C=null===(t=A.dataSource)||void 0===t?void 0:t.dispose)||void 0===C||C.call(t)}function ai(A,I){const g=[];try{for(const t of null!=A?A:[])g.push(yi(t,I.locus,{canvasProvider:I.canvasProvider,theme:I.theme,sequenceProvider:I.sequenceProvider}));return g}catch(A){for(const A of g)Ei(A);throw A}}function ri(A,I){try{return I()}catch(I){for(const I of A)Ei(I);throw I}}const ni=new Map,hi=new Map;function ci(A,I){ni.set(A,I)}function li(A,I){hi.set(A,I)}function di(A){return ni.get(function(A){var I;return null!==(I=hi.get(A))&&void 0!==I?I:A}(A))}function Di(){const A=new Set(ni.keys());for(const I of hi.keys())A.add(I);return A}function ui(A){switch(A.type){case"bigwig":return new mC(A.url,A.windowFunction);case"bigbed":return new pC(A.url);case"gtx":return new ge(A.url,A.experimentId,A.windowFunction);case"ucsc":return new Qe({genome:A.genome,track:A.track});case"text":return new lB({url:A.url,format:A.format,indexURL:A.indexURL,indexed:A.indexed});case"memory":return new dB([]);default:return ui(Kt(A))}}function yi(A,I,g={}){var t;const C=di(A.type);if(!C)throw new Error(`Unknown track type: "${A.type}". Known types: ${[...Di()].join(", ")}`);return C(A,{locus:I,canvasProvider:null!==(t=g.canvasProvider)&&void 0!==t?t:p,theme:g.theme,sequenceProvider:g.sequenceProvider})}ci("wig",function(A,I){const g=A,{canvas:t}=I.canvasProvider.createCanvas(0,0),C=new tC(t,{locus:I.locus,features:[],config:g.config,theme:I.theme,canvasProvider:I.canvasProvider,name:g.name,sequenceProvider:I.sequenceProvider});let e=null,B=null;if(g.dataSource&&(B=g.dataSource,e=ui(g.dataSource)),g.annotation){const A=g.annotation,{canvas:t}=I.canvasProvider.createCanvas(0,0),B=new FB(t,{locus:I.locus,config:{display:A.display,color:A.color},theme:I.theme,canvasProvider:I.canvasProvider}),i=ui({type:"text",url:A.url,format:A.format,indexURL:A.indexURL,indexed:A.indexed}),{canvas:Q}=I.canvasProvider.createCanvas(0,0),o=new RB(Q,{locus:I.locus,childTracks:[{track:C,name:g.name},{track:B,name:"Peaks"}],config:{alpha:1,autoscale:!0},theme:I.theme,canvasProvider:I.canvasProvider,name:g.name}),s=[e,i].filter(A=>null!=A);return{track:o,dataSource:s.length>0?new UB(s,[g.name,"Peaks"]):null,dataSourceConfig:null,name:g.name,order:g.order}}return{track:C,dataSource:e,dataSourceConfig:B,name:g.name,order:g.order}}),ci("annotation",function(A,I){var g;const t=A,{canvas:C}=I.canvasProvider.createCanvas(0,0),e=new oC(C,{locus:I.locus,features:[],config:t.config,theme:I.theme,canvasProvider:I.canvasProvider,name:t.name});let B=null,i=null;return t.dataSource&&(i=t.dataSource,B=ui(t.dataSource)),{track:e,dataSource:B,dataSourceConfig:i,name:t.name,order:t.order,searchable:null===(g=t.searchable)||void 0===g||g,searchableFields:t.searchableFields}}),ci("ruler",function(A,I){const g=A,{canvas:t}=I.canvasProvider.createCanvas(0,0);return{track:new rC(t,{locus:I.locus,config:g.config,theme:I.theme,canvasProvider:I.canvasProvider}),dataSource:null,dataSourceConfig:null,name:g.name,order:g.order}}),ci("sequence",function(A,I){const g=A,{canvas:t}=I.canvasProvider.createCanvas(0,0);return{track:new DC(t,{locus:I.locus,config:g.config,theme:I.theme,canvasProvider:I.canvasProvider}),dataSource:I.sequenceProvider?new dC(I.sequenceProvider):null,dataSourceConfig:null,name:g.name,order:g.order}}),ci("interact",function(A,I){var g;const t=A,{canvas:C}=I.canvasProvider.createCanvas(0,0),e=new kB(C,{locus:I.locus,features:[],config:t.config,theme:I.theme,canvasProvider:I.canvasProvider,name:t.name});let B=null,i=null;return t.dataSource&&(i=t.dataSource,B=ui(t.dataSource)),{track:e,dataSource:B,dataSourceConfig:i,name:t.name,order:t.order,searchable:null===(g=t.searchable)||void 0===g||g,searchableFields:t.searchableFields}}),ci("peakOverlay",function(A,I){const g=A,{canvas:t}=I.canvasProvider.createCanvas(0,0),C=new FB(t,{locus:I.locus,config:g.config,theme:I.theme,canvasProvider:I.canvasProvider,name:g.name});let e=null,B=null;return g.dataSource&&(B=g.dataSource,e=ui(g.dataSource)),{track:C,dataSource:e,dataSourceConfig:B,name:g.name,order:g.order}}),ci("merged",function(A,I){const g=A,t=ai(g.tracks,I);return ri(t,()=>{const{canvas:A}=I.canvasProvider.createCanvas(0,0),C=new RB(A,{locus:I.locus,childTracks:t.map((A,I)=>{var t,C;return{track:A.track,name:null!==(t=A.name)&&void 0!==t?t:null===(C=g.tracks[I])||void 0===C?void 0:C.name}}),config:g.config,theme:I.theme,canvasProvider:I.canvasProvider,name:g.name}),e=t.map(A=>A.dataSource).filter(A=>null!=A);return{track:C,dataSource:e.length>0?new UB(e,t.map(A=>A.name)):null,dataSourceConfig:null,name:g.name,order:g.order}})}),ci("wigGroup",function(A,I){var g,t;const C=A,e=ai(C.tracks,I);for(const[A,I]of e.entries()){if("wig"===I.track.type)continue;for(const A of e)Ei(A);const B=null!==(t=null===(g=C.tracks[A])||void 0===g?void 0:g.type)&&void 0!==t?t:I.track.type;throw new Error(`wigGroup tracks only support wig children; received "${B}"`)}return ri(e,()=>{const{canvas:A}=I.canvasProvider.createCanvas(0,0),g=new zB(A,{locus:I.locus,childTracks:e.map((A,I)=>{var g,t;return{track:A.track,name:null!==(g=A.name)&&void 0!==g?g:null===(t=C.tracks[I])||void 0===t?void 0:t.name}}),config:C.config,theme:I.theme,canvasProvider:I.canvasProvider,name:C.name});C.expanded&&(g.expanded=!0);const t=e.map(A=>{var I;return null!==(I=A.dataSource)&&void 0!==I?I:new dB([])}),B=e.map(A=>A.name);return{track:g,dataSource:t.length>0?new ei(t,B):null,dataSourceConfig:null,name:C.name,order:C.order}})}),ci("ideogram",function(A,I){const g=A,{canvas:t}=I.canvasProvider.createCanvas(0,0);return{track:new si(t,{locus:I.locus,config:g.config,theme:I.theme,canvasProvider:I.canvasProvider}),dataSource:null,dataSourceConfig:null,name:g.name,order:g.order}}),li("gene","annotation"),li("refgene","annotation"),li("bigwig","wig"),li("bedgraph","wig"),li("bed","annotation"),li("gff3","annotation"),li("gtf","annotation"),li("gff","annotation"),li("narrowpeak","annotation"),li("broadpeak","annotation"),li("genepred","annotation"),li("genepredext","annotation"),li("refflat","annotation"),li("bigbed","annotation"),li("bedtype","annotation"),li("biggenepred","annotation"),li("bignarrowpeak","annotation"),li("overlay","merged"),li("bedpe","interact"),li("arc","interact"),li("longrange","interact");function wi(A,I,g={}){return yi(A,I,g)}class fi{constructor(A){this.snapshots=new Map,this.browser=A}getState(A){const I=this.project();return(null==A?void 0:A.record)&&this.snapshots.set(A.record,structuredClone(I)),I}diff(A){const I=this.snapshots.get(A);if(!I)throw new Error(`No snapshot recorded under key "${A}"`);const g=this.project(),t={unchanged:!0};I.locus.chr===g.locus.chr&&I.locus.start===g.locus.start&&I.locus.end===g.locus.end||(t.locus=[I.locus,g.locus],t.unchanged=!1),I.zoomLevel!==g.zoomLevel&&(t.zoomLevel=[I.zoomLevel,g.zoomLevel],t.unchanged=!1);const C=new Set(I.tracks.map(A=>A.id)),e=new Set(g.tracks.map(A=>A.id)),B=g.tracks.filter(A=>!C.has(A.id)),i=I.tracks.filter(A=>!e.has(A.id)).map(A=>A.id);B.length>0&&(t.tracksAdded=B,t.unchanged=!1),i.length>0&&(t.tracksRemoved=i,t.unchanged=!1);const Q=[];for(const A of g.tracks){if(!C.has(A.id))continue;const g=I.tracks.find(I=>I.id===A.id);if(!Ri(g.featureSummary,A.featureSummary)){const I=mi(A.id,A.type,g.featureSummary,A.featureSummary);I&&Q.push(I)}}return Q.length>0&&(t.tracksChanged=Q,t.unchanged=!1),Fi(I.rois,g.rois)||(t.roisChanged=!0,t.unchanged=!1),t}record(A){this.snapshots.set(A,structuredClone(this.project()))}deleteSnapshot(A){return this.snapshots.delete(A)}getSnapshot(A){return this.snapshots.get(A)}snapshotKeys(){return[...this.snapshots.keys()]}clearSnapshots(){this.snapshots.clear()}project(){var A,I;const g=this.browser.locus,t={chr:g.chr,start:Math.round(g.start),end:Math.round(g.end)},C=t.end-t.start,e=this.browser.getManagedTracks();return{locus:t,locusString:ki(t),span:C,zoomLevel:Si(C),frames:this.browser.frames,genome:null===(A=this.browser.genome)||void 0===A?void 0:A.id,tracks:e.filter(A=>"ruler"!==A.track.type).map(A=>this.projectTrack(A,t)),rois:null!==(I=this.browser.toJSON().rois)&&void 0!==I?I:[]}}projectTrack(A,I){const g=this.summarizeFeatures(A,I),t=null!=A.dataSource,C=A.cache.hasData();return{id:A.id,type:A.track.type,name:A.name,metadata:A.metadata,loading:!(!t||C)||void 0,featureSummary:g}}summarizeFeatures(A,I){switch(A.track.type){case"wig":return this.summarizeWig(A,I);case"annotation":return this.summarizeAnnotation(A,I);case"interact":return this.summarizeInteraction(A,I);default:return}}summarizeWig(A,I){const g=this.browser.getCachedFeatures(A.track);if(!g)return;const t=Gi(g,I);return{featureCount:t.length,signalRange:t.length>0?IC(t):{min:0,max:0}}}summarizeAnnotation(A,I){const g=this.browser.getCachedFeatures(A.track);if(!g)return;const t=Gi(g,I),C=new Set;for(const A of t)A.name&&C.size<20&&C.add(A.name);const e=t.reduce((A,I)=>{var g;return Math.max(A,null!==(g=I.row)&&void 0!==g?g:0)},0);return{featureCount:t.length,featureNames:[...C].sort(),packingDepth:e}}summarizeInteraction(A,I){var g,t;const C=this.browser.getCachedFeatures(A.track);if(!C)return;const e=Gi(C,I);let B=0;for(const A of e){const I=null!==(t=null!==(g=A.value)&&void 0!==g?g:A.score)&&void 0!==t?t:0;isNaN(I)||(B=Math.max(B,I))}return{featureCount:e.length,valueRange:{min:0,max:B}}}}function Si(A){return A<=100?"base":A<=1e4?"element":A<=5e5?"gene":A<=1e7?"region":A<=25e7?"chromosome":"genome"}function ki(A){return`${A.chr}:${A.start.toLocaleString()}-${A.end.toLocaleString()}`}function Gi(A,I){return A.filter(A=>A.end>I.start&&A.start<I.end)}function Fi(A,I){if(A===I)return!0;if(null==A||null==I)return!1;if(typeof A!=typeof I)return!1;if(Array.isArray(A)){if(!Array.isArray(I)||A.length!==I.length)return!1;for(let g=0;g<A.length;g++)if(!Fi(A[g],I[g]))return!1;return!0}if("object"==typeof A){if(Array.isArray(I))return!1;const g=A,t=I,C=Object.keys(g),e=Object.keys(t);if(C.length!==e.length)return!1;for(const A of C)if(!Fi(g[A],t[A]))return!1;return!0}return!1}function Ni(A,I){if(A&&I in A)return A[I]}function mi(A,I,g,t){const C={id:A,type:I};let e=!1;const B=(A,I,g)=>{Fi(I,g)||(C[A]=[null!=I?I:null,null!=g?g:null],e=!0)};return B("featureCount",null==g?void 0:g.featureCount,null==t?void 0:t.featureCount),B("signalRange",Ni(g,"signalRange"),Ni(t,"signalRange")),B("featureNames",Ni(g,"featureNames"),Ni(t,"featureNames")),B("packingDepth",Ni(g,"packingDepth"),Ni(t,"packingDepth")),B("valueRange",Ni(g,"valueRange"),Ni(t,"valueRange")),e?C:void 0}function Ri(A,I){return A===I||!(!A||!I)&&Fi(A,I)}function pi(A,I){return A.filter(A=>function(A,I){var g;if(void 0!==I.id&&A.id!==I.id)return!1;if(void 0!==I.name){const t=null!==(g=A.name)&&void 0!==g?g:"";if("string"==typeof I.name){if(!t.toLowerCase().includes(I.name.toLowerCase()))return!1}else if(!I.name.test(t))return!1}if(void 0!==I.type&&A.track.type!==I.type)return!1;if(void 0!==I.where){const g=A.metadata;if(!g)return!1;for(const[A,t]of Object.entries(I.where))if(g[A]!==t)return!1}return!0}(A,I))}class Ui{constructor(A=50){this.maxHistory=A,this.undoStack=[],this.redoStack=[],this._paused=!1}get paused(){return this._paused}pause(){this._paused=!0}resume(){this._paused=!1}snapshot(A,I){this._paused||(this.undoStack.push({type:A,session:I}),this.undoStack.length>this.maxHistory&&this.undoStack.shift(),this.redoStack=[])}undo(A,I){let g=this.undoStack.pop();if(I)for(;g&&I(g);)g=this.undoStack.pop();if(g)return this.redoStack.push({type:g.type,session:A}),g}redo(A,I){let g=this.redoStack.pop();if(I)for(;g&&I(g);)g=this.redoStack.pop();if(g)return this.undoStack.push({type:g.type,session:A}),g}canUndo(A){return A?this.undoStack.some(I=>!A(I)):this.undoStack.length>0}canRedo(A){return A?this.redoStack.some(I=>!A(I)):this.redoStack.length>0}get undoSize(){return this.undoStack.length}get redoSize(){return this.redoStack.length}clear(){this.undoStack=[],this.redoStack=[]}}async function Mi(A,I,g){const t="https://igv.org/genomes/locus.php?genome=$GENOME$&name=$FEATURE$".replace("$GENOME$",encodeURIComponent(I)).replace("$FEATURE$",encodeURIComponent(A.toUpperCase())),C=await fetch(t,g?{signal:g}:void 0);if(!C.ok)return;return function(A){const I=A.split("\n");for(const A of I){const I=A.split("\t");if(I.length>=2){const A=I[0].trim().toUpperCase(),g=I[1].split(":");if(g.length>=2){const I=g[0].trim(),t=g[1].split("-");if(t.length>=2){const g=parseInt(t[0].replace(/,/g,""),10),C=parseInt(t[1].replace(/,/g,""),10);if(!isNaN(g)&&!isNaN(C))return{chr:I,start:g,end:C,name:A}}}}}return}(await C.text())}function Li(A){if(!A)return!1;return new RegExp("^[A-Za-z0-9_.]+(?:\\([^)]+\\))?:(?:g\\.\\d+.*|c\\.[-*]?\\d+.*|n\\.-?\\d+.*|p\\.[A-Za-z*]*\\d+.*)$").test(A)}async function Ji(A,I,g){if(!Li(A))return;const t=A.indexOf(":g."),C=A.indexOf(":c."),e=A.indexOf(":n."),B=A.indexOf(":p.");let i,Q;if(t>=0)i="g",Q=t;else if(C>=0)i="c",Q=C;else if(e>=0)i="n",Q=e;else{if(!(B>=0))return;i="p",Q=B}let o=A.substring(0,Q);if(o.endsWith(")")){const A=o.lastIndexOf("(");A>0&&(o=o.substring(0,A))}const s=A.substring(Q+3);if("g"===i)return function(A,I,g){if(!A)return;const t=A.match(/^\(?(\d+)(?:_(\d+|\?))?\)?\s*/);if(!t)return;const C=parseInt(t[1],10),e=t[2],B=e&&"?"!==e?parseInt(e,10):C,i=g(I),Q=i?i.chr:I;return{chr:Q,start:C-1,end:B}}(s,o,I);if("p"===i)return;if(!g)return;const E=await g(o);return E?"n"===i?function(A,I){const g=A.match(/^(-?\d+)(?:_(-?\d+))?([+-]\d+)?/);if(!g)return;const t=parseInt(g[1],10),C=null!=g[2]?parseInt(g[2],10):t;let e=Yi(I,t),B=Yi(I,C);if(e<=0||B<=0)return;if(g[3]){let A=parseInt(g[3],10);"-"===I.strand&&(A=-A),e+=A,B+=A}const i=Math.min(e,B),Q=Math.max(e,B)+1;return{chr:I.chr,start:i,end:Q}}(s,E):function(A,I){const g=A.match(/^-(\d+)(?:_-(\d+))?([+-]\d+)?/);if(g)return function(A,I){const g=parseInt(A[1],10),t=null!=A[2]?parseInt(A[2],10):null,C=Ki(I,1);if(C<=0)return;let e="+"===I.strand?C-g:C+g,B=e;null!=t&&(B="+"===I.strand?C-t:C+t);if(A[3]){let g=parseInt(A[3],10);"-"===I.strand&&(g=-g),e+=g,B+=g}const i=Math.min(e,B),Q=Math.max(e,B)+1;return{resultType:"LOCUS",chr:I.chr,start:i,end:Q}}(g,I);const t=A.match(/^\*(\d+)(?:_\*(\d+))?([+-]\d+)?/);if(t)return function(A,I){const g=parseInt(A[1],10),t=null!=A[2]?parseInt(A[2],10):null;let C=0;if(I.exons)for(const A of I.exons)C+=NI(A);if(0===C)return;const e=Ki(I,C);if(e<=0)return;let B="+"===I.strand?e+g:e-g,i=B;null!=t&&(i="+"===I.strand?e+t:e-t);if(A[3]){let g=parseInt(A[3],10);"-"===I.strand&&(g=-g),B+=g,i+=g}const Q=Math.min(B,i),o=Math.max(B,i)+1;return{resultType:"LOCUS",chr:I.chr,start:Q,end:o}}(t,I);const C=A.match(/^(\d+)(?:_(\d+))?/);if(!C)return;const e=parseInt(C[1],10),B=C[2],i=null!=B?parseInt(B,10):e;let Q=Ki(I,e),o=Ki(I,i);if(Q<=0||o<=0)return;const s=A.match(/^(\d+)([+-]\d+)?(?:_(\d+)([+-]\d+)?)?/);if(s){if(s[2]){let A=parseInt(s[2],10);"-"===I.strand&&(A=-A),Q+=A}if(s[4]){let A=parseInt(s[4],10);"-"===I.strand&&(A=-A),o+=A}}null==B&&(o=Q);const E=Math.min(Q,o),a=Math.max(Q,o)+1;return{chr:I.chr,start:E,end:a}}(s,E):void 0}function Ki(A,I){if(I<=0)return-1;const g=A.exons;if(!g)return-1;const t="+"===A.strand,C=I-1;let e=0;for(let A=0;A<g.length;A++){const I=t?g[A]:g[g.length-1-A],B=NI(I);if(e+B>C){const A=C-e;return t?GI(I)+A:FI(I)-1-A}e+=B}return-1}function Yi(A,I){if(I<=0){const g=Math.abs(I);return"+"===A.strand?A.start-g:A.end+g}const g=A.exons;if(!g||0===g.length)return"+"===A.strand?A.start+I-1:A.end-I+1;const t="+"===A.strand;let C=0;const e=g.slice();t?e.sort((A,I)=>A.start-I.start):e.sort((A,I)=>I.start-A.start);for(const A of e){const g=A.end-A.start;if(C+g>=I){const g=I-C-1;return t?A.start+g:A.end-g-1}C+=g}return-1}const vi=["name","id","gene_name","transcript_id","gene_id"];function bi(A){return A.replace(/ /g,"+").toUpperCase()}class xi{constructor(A){this.index=new Map,this.searchableFields=null!=A?A:vi}addFeatures(A){for(const I of A){const A=I,g=A.chr,t=A.start,C=A.end;if("string"!=typeof g||"number"!=typeof t||"number"!=typeof C)continue;const e={chr:g,start:t,end:C},B=C-t,i="object"==typeof A.attributes&&null!==A.attributes?A.attributes:null;for(const I of this.searchableFields){let g=A[I];if("string"==typeof g&&g||!i||(g=i[I]),"string"!=typeof g||!g)continue;const t=bi(g),C=this.index.get(t);(!C||C.end-C.start<B)&&this.index.set(t,e)}}}search(A){return this.index.get(bi(A))}clear(){this.index.clear()}get size(){return this.index.size}}function Hi(A){return A instanceof Error?A:new Error(String(A))}let qi=0;class Ti{constructor(A){var I,g;this._features=[],this.name=A.name,this.color=null!==(I=A.color)&&void 0!==I?I:A.isUserDefined?"rgba(155, 185, 129, 0.2)":"rgba(68, 134, 247, 0.15)",this.isUserDefined=null!==(g=A.isUserDefined)&&void 0!==g&&g,A.features&&(this._features=A.features.map(A=>({...A})))}get features(){return this._features}addFeature(A){var I;const g={...A,id:A.id||`roi_${Date.now().toString(36)}_${(++qi).toString(36)}`,color:null!==(I=A.color)&&void 0!==I?I:this.color};return this._features.push(g),this._features.sort((A,I)=>A.start-I.start),g}removeFeature(A){const I=this._features.findIndex(I=>I.id===A);if(!(I<0))return this._features.splice(I,1)[0]}updateFeature(A,I){const g=this._features.find(I=>I.id===A);if(g)return Object.assign(g,I),("start"in I||"end"in I)&&this._features.sort((A,I)=>A.start-I.start),g}findById(A){return this._features.find(I=>I.id===A)}getFeatures(A,I,g){return this._features.filter(t=>t.chr===A&&t.end>I&&t.start<g)}toJSON(){return{name:this.name,color:this.color,isUserDefined:this.isUserDefined||void 0,features:this._features.map(A=>({...A}))}}}class _i{constructor(A){this.roiSets=[],this.callbacks=A}addROI(A,I="User-defined"){let g=this.roiSets.find(A=>A.name===I);g||(g=new Ti({name:I,isUserDefined:!0,features:[]}),this.roiSets.push(g));const t=g.addFeature(A);return this.callbacks.onROIAdded(t,g),t}addROISet(A){const I=new Ti(A);this.roiSets.push(I);for(const A of I.features)this.callbacks.onROIAdded(A,I);return I}removeROI(A){for(const I of this.roiSets){const g=I.removeFeature(A);if(g)return this.callbacks.onROIRemoved(g,I),!0}return!1}updateROI(A,I){for(const g of this.roiSets){const t=g.updateFeature(A,I);if(t)return this.callbacks.onROIChanged(t,I,g),t}}removeROISet(A){const I=this.roiSets.indexOf(A);if(I<0)return!1;this.roiSets.splice(I,1);for(const I of A.features)this.callbacks.onROIRemoved(I,A);return!0}clear(){this.roiSets=[]}getROIs(){return this.roiSets.flatMap(A=>[...A.features])}getROISets(){return this.roiSets}findROIsAtLocus(A,I,g){return this.roiSets.flatMap(t=>t.getFeatures(A,I,g))}getVisibleROIs(A){return this.findROIsAtLocus(A.chr,A.start,A.end)}serialize(){return this.roiSets.length>0?this.roiSets.map(A=>A.toJSON()):void 0}}function Wi(A){var I,g,t,C,e,B;switch(A.type){case"bigwig":return`bigwig:${A.url}:${null!==(I=A.windowFunction)&&void 0!==I?I:"mean"}`;case"bigbed":return`bigbed:${A.url}`;case"gtx":return`gtx:${A.url}:${A.experimentId}`;case"ucsc":return`ucsc:${null!==(g=A.genome)&&void 0!==g?g:""}:${null!==(t=A.track)&&void 0!==t?t:""}`;case"text":return`text:${A.url}:${null!==(C=A.format)&&void 0!==C?C:""}:${null!==(e=A.indexURL)&&void 0!==e?e:""}`;case"memory":return`memory:${Math.random()}`;default:return`unknown:${A.type}:${null!==(B=A.url)&&void 0!==B?B:Math.random()}`}}class Pi{constructor(A,I){this.provider=A,this.instanceId=I}async fetch(A,I,g){const t=this.resolver?{...A,chr:this.resolver(A.chr)}:A;return this.provider.fetch(this.instanceId,t,I,g)}setChromNameResolver(A){this.resolver=A}setCumulativeOffsets(A){this.provider.configure(this.instanceId,"setCumulativeOffsets",A)}setWindowFunction(A){this.provider.configure(this.instanceId,"setWindowFunction",A)}}class Oi{constructor(A,I,g){this.loadDebounceTimers=new Map,this._disposed=!1,this.fetchCache=new eA({cache:new fA({maxSize:100}),fill:(A,I)=>A.dataSource.fetch(A.fetchRegion,A.bpPerPixel,I)}),this.callbacks=A,this.dataSourceWorkerProvider=I,this.maxTotalFeatures=null!=g?g:5e5}debouncedLoad(A,I){for(const g of A){const A=this.getFrameAbortController(g,I.id);A&&(A.abort(),this.setFrameAbortController(g,I.id,null))}const g=this.loadDebounceTimers.get(I.id);null!=g&&clearTimeout(g),this.loadDebounceTimers.set(I.id,setTimeout(()=>{this.loadDebounceTimers.delete(I.id),this.loadAllTracksForFrame(A,I)},100))}loadAllTracksIfNeeded(A,I){for(const A of this.loadDebounceTimers.values())clearTimeout(A);this.loadDebounceTimers.clear();for(const g of I)this.loadAllTracksForFrame(A,g)}loadAllTracksForFrame(A,I){for(const g of A)g.dataSource&&this.loadTrackWithDedup(g,A,I)}loadTrackWithDedup(A,I,g){var t,C,e,B;const{locus:i,viewportWidth:Q}=g;if(0===Q)return;const o=(i.end-i.start)/Q,s=null!==(t=A.frameInstances.get(g.id))&&void 0!==t?t:A.track,E=null!==(C=A.frameCaches.get(g.id))&&void 0!==C?C:A.cache,a=s.visibilityWindow,r=null!=a&&a>0&&o*Q>a;var n;if("setZoomedOut"in(n=s)&&"function"==typeof n.setZoomedOut&&s.setZoomedOut(r),r){const I=this.getFrameAbortController(A,g.id);return void(I&&(I.abort(),this.setFrameAbortController(A,g.id,null)))}if(E.find(i,o))return;const c=this.getFrameAbortController(A,g.id);c&&c.abort(),s.setError(null);const l=function(A){if(h(A))return A;const I=A.end-A.start,g=Math.floor(1*I);return{chr:A.chr,start:Math.max(0,Math.floor(A.start-g)),end:Math.ceil(A.end+g)}}(i),d=A.dataSourceConfig?Wi(A.dataSourceConfig):null;if(d)for(const t of I){if(t===A||!t.dataSourceConfig)continue;const I=(null!==(e=t.frameCaches.get(g.id))&&void 0!==e?e:t.cache).find(i,o);if(I&&Wi(t.dataSourceConfig)===d)return E.put(I),null===(B=A.nameIndex)||void 0===B||B.addFeatures(I.features),this.setFrameAbortController(A,g.id,null),s.setError(null),"function"==typeof s.setFeatures&&s.setFeatures(I.features),void this.callbacks.onDataLoaded(s)}const D=new AbortController;this.setFrameAbortController(A,g.id,D);const u=d?`${d}|${l.chr}:${l.start}-${l.end}|${o}`:`${A.id}|${l.chr}:${l.start}-${l.end}|${o}`;this.fetchCache.get(u,{dataSource:A.dataSource,fetchRegion:l,bpPerPixel:o},D.signal).then(t=>{var C;if(this._disposed||D.signal.aborted)return;const e={locus:l,bpPerPixel:o,features:t};E.put(e),null===(C=A.nameIndex)||void 0===C||C.addFeatures(t),this.enforceGlobalBudget(I),this.setFrameAbortController(A,g.id,null),s.setError(null),"function"==typeof s.setFeatures&&s.setFeatures(t),this.callbacks.onDataLoaded(s)}).catch(A=>{if(this._disposed||D.signal.aborted||function(A){return A instanceof DOMException&&"AbortError"===A.name||A instanceof Error&&"AbortError"===A.name||!!(A instanceof Error&&A.message.includes("aborted"))}(A))return;const I=Hi(A);E.hasData()?P.warn("Data fetch failed, showing cached data:",I.message):(P.error("Data fetch error:",I),s.setError(I)),this.callbacks.onDataError(s,I)})}enforceGlobalBudget(A){let I=this.getTotalFeatureCount(A);for(;I>this.maxTotalFeatures;){let g=null,t=1/0;for(const I of A){if(I.cache.size<=1)continue;const A=I.cache.getLRUAccessTime();A<t&&(t=A,g=I)}if(!g)break;I-=g.cache.evictOne()}}resizeCaches(A){const I=A.filter(A=>A.dataSource).length;if(0===I)return;const g=Math.max(1,Math.floor(50/I));for(const I of A)I.cache.maxEntries!==g&&I.cache.resize(g)}getTotalFeatureCount(A){let I=0;for(const g of A)I+=g.cache.totalFeatureCount;return I}getFrameAbortController(A,I){var g;return A.frameInstances.has(I)?null!==(g=A.frameAbortControllers.get(I))&&void 0!==g?g:null:A.abortController}setFrameAbortController(A,I,g){A.frameInstances.has(I)?g?A.frameAbortControllers.set(I,g):A.frameAbortControllers.delete(I):A.abortController=g}dispose(){this._disposed=!0,this.fetchCache.clear();for(const A of this.loadDebounceTimers.values())clearTimeout(A);this.loadDebounceTimers.clear()}destroyWorkerDataSource(A){A instanceof Pi&&this.dataSourceWorkerProvider&&this.dataSourceWorkerProvider.destroy(A.instanceId)}}function Vi(A){return A.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&")}function Zi(A,I){return function(A){return new RegExp("^"+A.split(/\*+/).map(Vi).join(".*")+"$")}(A).test(I)}class Xi{constructor(A){var I;if(this.hostTokens=new Map,this.hostHeaders=new Map,(null==A?void 0:A.oauthToken)&&(null==A?void 0:A.basicAuth))throw new Error("CredentialStore: oauthToken and basicAuth are mutually exclusive. Use AuthProviderChain for mixed strategies.");this.globalToken=null==A?void 0:A.oauthToken,this.basicAuth=null==A?void 0:A.basicAuth,this.apiKey=null==A?void 0:A.apiKey,this.globalHeaders=(null==A?void 0:A.headers)?{...A.headers}:{},this.withCredentials=null!==(I=null==A?void 0:A.withCredentials)&&void 0!==I&&I}setOauthToken(A,I){I?this.hostTokens.set(I,A):this.globalToken=A}setBasicAuth(A){this.basicAuth=A}setApiKey(A){this.apiKey=A}setHeaders(A,I){var g;I?this.hostHeaders.set(I,{...null!==(g=this.hostHeaders.get(I))&&void 0!==g?g:{},...A}):Object.assign(this.globalHeaders,A)}async getCredentials(A){var I;const g=function(A){try{return new URL(A).host}catch(A){return}}(A),t={};let C=!1;const e=null!==(I=g?this.findMatchingValue(this.hostTokens,g):void 0)&&void 0!==I?I:this.globalToken;if(e?(t.Authorization=`Bearer ${await async function(A){return"string"==typeof A?A:A()}(e)}`,t["Cache-Control"]="no-cache",C=!0):this.basicAuth&&(t.Authorization=`Basic ${btoa(`${this.basicAuth.username}:${this.basicAuth.password}`)}`,C=!0),Object.keys(this.globalHeaders).length>0&&(Object.assign(t,this.globalHeaders),C=!0),g){const A=this.findMatchingValue(this.hostHeaders,g);A&&(Object.assign(t,A),C=!0)}if(this.apiKey&&(t["X-API-Key"]=this.apiKey,C=!0),C)return{headers:t,withCredentials:this.withCredentials||void 0}}findMatchingValue(A,I){for(const[g,t]of A)if(!g.includes("*")&&g===I)return t;for(const[g,t]of A)if(g.includes("*")&&Zi(g,I))return t}}function zi(A,I,g){const t=null==I?void 0:I.headers;let C;if(t instanceof Headers)C={...g.headers},t.forEach((A,I)=>{C[I]=A});else if(Array.isArray(t)){C={...g.headers};for(const[A,I]of t)C[A]=I}else C={...g.headers,...t};let e=A;return g.resolvedUrl&&(e="string"==typeof A?g.resolvedUrl:A instanceof URL?new URL(g.resolvedUrl):new Request(g.resolvedUrl,A)),{fetchTarget:e,fetchInit:{...I,headers:C,credentials:g.withCredentials?"include":null==I?void 0:I.credentials}}}function ji(A,I){return async(g,t)=>{const C="string"==typeof g?g:g instanceof URL?g.toString():g.url,e=await A.getCredentials(C);if(!e)return globalThis.fetch(g,t);const{fetchTarget:B,fetchInit:i}=zi(g,t,e),Q=await globalThis.fetch(B,i);if((401===Q.status||403===Q.status)&&(null==I?void 0:I.onAuthChallenge)){if(await I.onAuthChallenge(C,Q)){const I=await A.getCredentials(C);if(!I)return Q;const{fetchTarget:e,fetchInit:B}=zi(g,t,I);return globalThis.fetch(e,B)}}return Q}}function $i(A,I){if(null==I?void 0:I.authProvider)return ji(I.authProvider);if(null==I?void 0:I.auth){return ji(new Xi({oauthToken:I.auth.oauthToken,headers:I.auth.headers,withCredentials:I.auth.withCredentials}))}return A.authProvider?ji(A.authProvider):void 0}let AQ=0;function IQ(A,I){if(!I.dataSourceWorkerProvider)return null;const g=`ds-${AQ++}-${Date.now()}`;I.dataSourceWorkerProvider.create(g,A);const t=new Pi(I.dataSourceWorkerProvider,g);return I.genome&&t.setChromNameResolver(A=>I.genome.getChromosomeName(A)),I.cumulativeOffsets&&t.setCumulativeOffsets(I.cumulativeOffsets),t}function gQ(A,I){I.genome&&(A instanceof mC||A instanceof ge||A instanceof pC?A.setChromNameResolver(A=>I.genome.getChromosomeName(A)):A instanceof lB?(A.setChromNameResolver(A=>I.genome.getChromosomeName(A)),I.cumulativeOffsets&&A.setCumulativeOffsets(I.cumulativeOffsets)):A instanceof dB&&A.setChromNameResolver(A=>I.genome.getChromosomeName(A))),I.cumulativeOffsets&&(A instanceof mC||A instanceof ge||A instanceof dB)&&A.setCumulativeOffsets(I.cumulativeOffsets)}function tQ(A,I,g){const t=IQ(A,g);if(t)return{dataSource:t,workerDS:t};const C=I();return gQ(C,g),{dataSource:C,workerDS:null}}function CQ(A,I){const g=A.onWindowFunctionChange;g&&(A.onWindowFunctionChange=A=>{g(A),I()})}const eQ={LocusChange:"locuschange",FrameAdded:"frameadded",FrameRemoved:"frameremoved",TrackAdded:"trackadded",TrackRemoved:"trackremoved",TrackOrderChanged:"trackorderchanged",DataLoaded:"dataloaded",DataError:"dataerror",RenderError:"rendererror",TrackClick:"trackclick",TrackHover:"trackhover",TrackContextMenu:"trackcontextmenu",ROIAdded:"roiadded",ROIRemoved:"roiremoved",ROIChanged:"roichanged",ROIClick:"roiclick",ROIContextMenu:"roicontextmenu",ThemeChanged:"themechange",TrackConfigChanged:"trackconfigchanged",Undo:"undo",Redo:"redo",UndoStackChanged:"undostackchanged"};let BQ=0;const iQ={ideogram:3,ruler:2,sequence:1};function QQ(A){var I;return null!==(I=iQ[A])&&void 0!==I?I:0}class oQ{get theme(){return this._theme}get primaryFrame(){return this._frames[0]}get frames(){return this._frames}get locus(){return this._frames[0].locus}get viewportWidth(){return this._frames[0].viewportWidth}canUndo(A){return this._undoManager.canUndo(A)}canRedo(A){return this._undoManager.canRedo(A)}get state(){return this._state||(this._state=new fi(this)),this._state}constructor(A){var I,g,t,C,e,B,i,Q;this.managedTracks=[],this._deferSort=!1,this._suppressImmediateLoad=!1,this.events=new O,this._undoManager=new Ui,this.genome=null===A.genome?void 0:null!==(I=A.genome)&&void 0!==I?I:Rt,this.chromSizes=null===(g=this.genome)||void 0===g?void 0:g.chromSizes,this.cumulativeOffsets=null===(t=this.genome)||void 0===t?void 0:t.cumulativeOffsets,this.sequenceProvider=null===(C=this.genome)||void 0===C?void 0:C.sequence;const o=this.clamp({...A.locus}),s=null!==(e=A.viewportWidth)&&void 0!==e?e:0;this._frames=[r(o,s,"main")],this.canvasProvider=null!==(B=A.canvasProvider)&&void 0!==B?B:p,this.workerProvider=A.workerProvider,this.dataSourceWorkerProvider=function(A){if(!A||"object"!=typeof A)return!1;const I=A;return"function"==typeof I.create&&"function"==typeof I.fetch&&"function"==typeof I.destroy}(A.workerProvider)?A.workerProvider:void 0,this.popupProvider=null!==(i=A.popupProvider)&&void 0!==i?i:void 0,this.contextMenuProvider=null!==(Q=A.contextMenuProvider)&&void 0!==Q?Q:void 0,this._theme=L(A.theme),this.authProvider=A.authProvider,A.stateProjection&&(this._state=A.stateProjection),this.roiManager=new _i({onROIAdded:(A,I)=>this.events.emit(eQ.ROIAdded,{roi:A,set:I}),onROIRemoved:(A,I)=>this.events.emit(eQ.ROIRemoved,{roi:A,set:I}),onROIChanged:(A,I,g)=>this.events.emit(eQ.ROIChanged,{roi:A,changes:I,set:g})}),this.dataManager=new Oi({onDataLoaded:A=>this.events.emit(eQ.DataLoaded,{track:A}),onDataError:(A,I)=>this.events.emit(eQ.DataError,{track:A,error:I})},this.dataSourceWorkerProvider)}factoryContext(){return{locus:this._frames[0].locus,canvasProvider:this.canvasProvider,theme:this._theme,genome:this.genome,chromSizes:this.chromSizes,cumulativeOffsets:this.cumulativeOffsets,sequenceProvider:this.sequenceProvider,dataSourceWorkerProvider:this.dataSourceWorkerProvider,authProvider:this.authProvider}}clamp(A){return this.chromSizes?function(A,I,g){if(h(A)&&g)return{chr:"all",start:Math.max(0,A.start),end:Math.min(g.totalLength,A.end)};let{chr:t,start:C,end:e}=A;const B=null==I?void 0:I[t];if(null!=B&&e-C>B&&(C=0,e=B),C<0){const A=-C;C=0,e+=A}if(null!=B&&e>B){const A=e-B;e=B,C=Math.max(0,C-A)}return{chr:t,start:C,end:e}}(A,this.chromSizes,this.cumulativeOffsets):A}updateIdeogramCytobands(){var A,I;const g=this._frames[0].locus.chr,t=this.genome;if(!(null==t?void 0:t.getCytobands))return;const C=null!==(A=t.getCytobands(g))&&void 0!==A?A:[],e=null!==(I=t.getChromosomeLength(g))&&void 0!==I?I:0;for(const A of this.managedTracks)"ideogram"===A.track.type&&A.track.setCytobands(C,e)}on(A,I){return this.events.on(A,I)}off(A,I){this.events.off(A,I)}_snapshotForUndo(A){this._undoManager.snapshot(A,this.toJSON()),this.events.emit(eQ.UndoStackChanged,{canUndo:this._undoManager.canUndo(),canRedo:this._undoManager.canRedo()})}undo(A){const I=this._undoManager.undo(this.toJSON(),A);if(!I)return!1;this._undoManager.pause();try{this.loadSession(I.session)}finally{this._undoManager.resume()}return this.events.emit(eQ.Undo,{entry:I}),this.events.emit(eQ.UndoStackChanged,{canUndo:this._undoManager.canUndo(),canRedo:this._undoManager.canRedo()}),!0}redo(A){const I=this._undoManager.redo(this.toJSON(),A);if(!I)return!1;this._undoManager.pause();try{this.loadSession(I.session)}finally{this._undoManager.resume()}return this.events.emit(eQ.Redo,{entry:I}),this.events.emit(eQ.UndoStackChanged,{canUndo:this._undoManager.canUndo(),canRedo:this._undoManager.canRedo()}),!0}clearUndoHistory(){this._undoManager.clear(),this.events.emit(eQ.UndoStackChanged,{canUndo:!1,canRedo:!1})}setViewportWidth(A){this._frames[0].viewportWidth=A,n(this._frames[0]),this.render(),this.loadAllTracksIfNeeded()}addTrack(A,I,g,t,C,e){var B,i;this._snapshotForUndo("track-add"),null!=e||(e=`${null!=(i=A.type)?i:"track"}-${BQ++}`);const Q={id:e,track:A,dataSource:null!==(B=I)&&void 0!==B?B:null,dataSourceConfig:null!=g?g:null,cache:new D,abortController:null,frameAbortControllers:new Map,maxTrackHeight:t,order:C,frameInstances:new Map,frameCaches:new Map,searchable:!1,nameIndex:null};if(A.onBeforeConfigChange=()=>{this._snapshotForUndo("track-config")},A.onConfigChanged=()=>{this.events.emit(eQ.TrackConfigChanged,{track:A})},A instanceof mB&&(A.onExpandedChanged=(A,I)=>{this._syncCompositeExpansion(I,A)},A.onChildrenChanged=A=>{A.expanded&&this._syncCompositeExpansion(A,!0)}),this.managedTracks.push(Q),this.sortTracks(),A.setTheme(this._theme),A.setLocus(this._frames[0].locus),this.events.emit(eQ.TrackAdded,{track:A}),this.dataManager.resizeCaches(this.managedTracks),I&&!this._suppressImmediateLoad)for(const A of this._frames)this.dataManager.loadTrackWithDedup(Q,this.managedTracks,A);return e}removeTrack(A){this._snapshotForUndo("track-remove");const I="string"==typeof A?this.managedTracks.findIndex(I=>I.id===A):this.managedTracks.findIndex(I=>I.track===A);if(I>=0){const A=this.managedTracks[I];A.abortController&&A.abortController.abort();for(const I of A.frameAbortControllers.values())null==I||I.abort();A.frameAbortControllers.clear(),A.dataSource&&this.dataManager.destroyWorkerDataSource(A.dataSource);for(const I of A.frameInstances.values())I.detach();A.frameInstances.clear(),A.frameCaches.clear(),this.managedTracks.splice(I,1),this.dataManager.resizeCaches(this.managedTracks),this.events.emit(eQ.TrackRemoved,{track:A.track})}}_ensureFrameInstances(A){if(!(this._frames.length<=1))for(const I of this._frames){if(I.id===this._frames[0].id)continue;if(A.frameInstances.has(I.id))continue;const g=this._cloneTrackForFrame(A,I);g&&(A.frameInstances.set(I.id,g),A.frameCaches.set(I.id,new D))}}_cloneTrackForFrame(A,I){const g=A.track.serializeConfig(this._theme);try{const A=yi(g,I.locus,{canvasProvider:this.canvasProvider,theme:this.theme,sequenceProvider:this.sequenceProvider});return A.track.setTheme(this._theme),A.track}catch(g){return P.warn(`Failed to clone track ${A.id} for frame ${I.id}`),null}}_removeFrameInstances(A){for(const I of this.managedTracks){const g=I.frameInstances.get(A);g&&(g.detach(),I.frameInstances.delete(A)),I.frameCaches.delete(A)}}getTrackForFrame(A,I){var g;return I===this._frames[0].id?A.track:null!==(g=A.frameInstances.get(I))&&void 0!==g?g:A.track}moveTrack(A,I){this._snapshotForUndo("track-reorder");const g=this.managedTracks.findIndex(I=>I.track===A);if(g<0)return;const t=Math.max(0,Math.min(I,this.managedTracks.length-1));if(g===t)return;const[C]=this.managedTracks.splice(g,1);this.managedTracks.splice(t,0,C),this._assignOrderFromPosition(),this.events.emit(eQ.TrackOrderChanged,{tracks:this.managedTracks.map(A=>A.track)})}_syncCompositeExpansion(A,I){var g;const t=this.managedTracks.find(I=>I.track===A);if(!t)return;const C=this._deferSort;this._deferSort=!0;try{const C=this.managedTracks.filter(A=>A.parentId===t.id);this._undoManager.pause();try{for(const A of C)this.removeTrack(A.id)}finally{this._undoManager.resume()}if(I){void 0===t.order&&this._assignOrderFromPosition();const I=null!==(g=t.order)&&void 0!==g?g:0,C=A.getChildren();this._undoManager.pause();try{for(let A=0;A<C.length;A++){const g=C[A],e=I-.1*(A+1);this.addTrack(g.track,void 0,void 0,void 0,e);const B=this.managedTracks.find(A=>A.track===g.track);B&&(B.isEphemeral=!0,B.parentId=t.id,g.name&&(B.name=g.name))}}finally{this._undoManager.resume()}}}finally{this._deferSort=C}this.sortTracks(),this.events.emit(eQ.TrackOrderChanged,{tracks:this.managedTracks.map(A=>A.track)})}sortTracks(){this._deferSort||(this.managedTracks.sort((A,I)=>{var g,t;const C=(null!==(g=A.order)&&void 0!==g?g:0)+QQ(A.track.type);return(null!==(t=I.order)&&void 0!==t?t:0)+QQ(I.track.type)-C}),this.onTracksSorted())}onTracksSorted(){}_assignOrderFromPosition(){const A=this.managedTracks.length;for(let I=0;I<A;I++)this.managedTracks[I].order=10*(A-I)}findMT(A){return this.managedTracks.find(I=>I.track===A)}getTrackOrder(){return this.managedTracks.map(A=>A.track)}getManagedTrack(A){return this.managedTracks.find(I=>I.id===A)}getTrack(A){var I;return null===(I=this.managedTracks.find(I=>I.id===A))||void 0===I?void 0:I.track}getManagedTracks(){return this.managedTracks}findTracks(A){return pi(this.managedTracks,A)}removeTracks(A){const I=pi(this.managedTracks,A);if(0===I.length)return 0;this._snapshotForUndo("track-remove"),this._undoManager.pause();try{for(const A of I)this.removeTrack(A.id)}finally{this._undoManager.resume()}return I.length}updateTrackMetadata(A,I){const g=pi(this.managedTracks,A);for(const A of g)A.metadata={...A.metadata,...I};return g.length}setLocus(A){this.setFrameLocus("main",A)}setFrameLocus(A,I){const g=this._frames.find(I=>I.id===A);if(!g)throw new Error(`Unknown frame: ${A}`);const t=g.locus.chr;g.locus=this.clamp({...I}),n(g);for(const I of this.managedTracks)this.getTrackForFrame(I,A).setLocus(g.locus);g.locus.chr!==t&&this.updateIdeogramCytobands(),this.dataManager.debouncedLoad(this.managedTracks,g),this.events.emit(eQ.LocusChange,{frames:[g],sourceFrameId:g.id,locus:this._frames[0].locus})}getFrame(A){return this._frames.find(I=>I.id===A)}getFrames(){return this._frames}addFrame(A,I){const g=this.clamp({...A}),t=a();let C=this._frames.length;if(I){const A=this._frames.findIndex(A=>A.id===I);A>=0&&(C=A+1)}const e=this._frames[0].viewportWidth*this._frames.length/(this._frames.length+1),B=r(g,e,t);this._frames.splice(C,0,B);for(const A of this._frames)A.viewportWidth=e,n(A);for(const A of this.managedTracks)this._ensureFrameInstances(A);return this.events.emit(eQ.FrameAdded,{frame:B}),B}removeFrame(A){if(this._frames.length<=1)throw new Error("Cannot remove the last reference frame");const I=this._frames.findIndex(I=>I.id===A);if(I<0)throw new Error(`Unknown frame: ${A}`);const g=0===I;this._removeFrameInstances(A),this._frames.splice(I,1);const t=this._frames[0].viewportWidth*(this._frames.length+1)/this._frames.length;for(const A of this._frames)A.viewportWidth=t,n(A);if(1===this._frames.length)for(const A of this.managedTracks){for(const I of A.frameInstances.values())I.detach();A.frameInstances.clear(),A.frameCaches.clear()}if(g){const A=this._frames[0];for(const I of this.managedTracks)I.track.setLocus(A.locus);for(const I of this.managedTracks)I.dataSource&&this.dataManager.loadTrackWithDedup(I,this.managedTracks,A)}this.events.emit(eQ.FrameRemoved,{frameId:A})}async search(A,I){if(!A||!A.trim())return!1;const g=A.trim().split(/[\s;]+/).filter(Boolean);if(0===g.length)return!1;let t=await this._resolveSearchToken(g[0]);if(!t&&g.length>1&&(t=await this._resolveSearchToken(A.trim().replace(/ /g,"+")),t)){const A=null!=I?I:this._frames[0].id;return this.setFrameLocus(A,t),!0}if(!t)return!1;const C=null!=I?I:this._frames[0].id;this.setFrameLocus(C,t);for(let A=1;A<g.length;A++){const I=await this._resolveSearchToken(g[A]);I&&this.addFrame(I,this._frames[this._frames.length-1].id)}return!0}searchLocalTracks(A){for(const I of this.managedTracks){if(!I.searchable||!I.nameIndex)continue;const g=I.nameIndex.search(A);if(g){return{chr:this.genome?this.genome.getChromosomeName(g.chr):g.chr,start:g.start,end:g.end}}}return null}async _resolveSearchToken(A){var I;const g=A.trim();if(!g)return null;if(this.genome&&Li(g)){const A=await Ji(g,A=>this.genome.getAliasRecord(A),this._createTranscriptProvider());if(A){return{chr:this.genome.getChromosomeName(A.chr),start:A.start,end:A.end}}}const t=c(g,this.cumulativeOffsets);if(t){if(!this.genome)return t;if(null!=this.genome.getChromosomeLength(this.genome.getChromosomeName(t.chr)))return t.chr=this.genome.getChromosomeName(t.chr),t}if(this.genome){const A=this.genome.getChromosomeName(g),I=this.genome.getChromosomeLength(A);if(null!=I)return{chr:A,start:0,end:I}}if(null===(I=this.genome)||void 0===I?void 0:I.getManeTranscript){const A=await this.genome.getManeTranscript(g);if(null==A?void 0:A.chr){return{chr:this.genome.getChromosomeName(A.chr),start:A.start,end:A.end}}}const C=this.searchLocalTracks(g);if(C)return C;if(this.genome){const A=await Mi(g,this.genome.id);if(A){return{chr:this.genome.getChromosomeName(A.chr),start:A.start,end:A.end}}}return null}_createTranscriptProvider(){var A;if(null===(A=this.genome)||void 0===A?void 0:A.getManeTranscript)return async A=>{const I=await this.genome.getManeTranscript(A);if((null==I?void 0:I.chr)&&I.strand)return I}}zoomIn(A=2,I){this.zoomByFactor(1/A,I)}zoomOut(A=2,I){this.zoomByFactor(A,I)}zoomByFactor(A,I){this.zoomAroundCenter(A,void 0,I)}zoomAroundCenter(A,I,g){var t;const C=g&&null!==(t=this._frames.find(A=>A.id===g))&&void 0!==t?t:this._frames[0];if(h(C.locus))return;const e=null!=I?I:(C.locus.start+C.locus.end)/2,B=C.locus.end-C.locus.start;let i=B*A;if(A>1&&this.chromSizes&&C.viewportWidth>0){const A=this.chromSizes[C.locus.chr];if(null!=A){if(B>=A&&this.cumulativeOffsets)return void this.setFrameLocus(C.id,{chr:"all",start:0,end:this.cumulativeOffsets.totalLength});i=Math.min(i,A)}}if(null!=I){const A=(I-C.locus.start)/B;this.setFrameLocus(C.id,{chr:C.locus.chr,start:I-A*i,end:I-A*i+i})}else{const A=i/2;this.setFrameLocus(C.id,{chr:C.locus.chr,start:e-A,end:e+A})}}reloadData(){for(const A of this.managedTracks)A.dataSource&&A.cache.clear();this.loadAllTracksIfNeeded()}getCachedFeatures(A){var I;const g=this.managedTracks.find(I=>I.track===A);return null===(I=null==g?void 0:g.cache.getMostRecent())||void 0===I?void 0:I.features}render(){if(0!==this._frames[0].viewportWidth)for(const A of this.managedTracks){try{A.track.render()}catch(I){const g=Hi(I);P.error("Render error:",g),A.track.setError(g),this.events.emit(eQ.RenderError,{track:A.track,error:g})}for(const I of A.frameInstances.values())try{I.render()}catch(A){const g=Hi(A);P.error("Render error (frame instance):",g),I.setError(g)}}}addROI(A,I="User-defined"){return this._snapshotForUndo("roi"),this.roiManager.addROI(A,I)}addROISet(A){return this._snapshotForUndo("roi"),this.roiManager.addROISet(A)}removeROI(A){return this._snapshotForUndo("roi"),this.roiManager.removeROI(A)}updateROI(A,I){return this._snapshotForUndo("roi"),this.roiManager.updateROI(A,I)}removeROISet(A){return this._snapshotForUndo("roi"),this.roiManager.removeROISet(A)}clearROIs(){this._snapshotForUndo("roi"),this.roiManager.clear()}getROIs(){return this.roiManager.getROIs()}getROISets(){return this.roiManager.getROISets()}findROIsAtLocus(A,I,g){return this.roiManager.findROIsAtLocus(A,I,g)}getVisibleROIs(){return this.roiManager.getVisibleROIs(this._frames[0].locus)}toSVG(A){var I,g;const t=null!==(I=null==A?void 0:A.width)&&void 0!==I?I:this._frames[0].viewportWidth;if(0===t)throw new Error("Cannot export SVG with zero viewport width");let C=0;const e=[];for(const A of this.managedTracks){const I=A.track.height||50;e.push(I),C+=I}const B=new R({width:t,height:C,viewbox:{x:0,y:0,width:t,height:C},backdropColor:null!==(g=null==A?void 0:A.backdropColor)&&void 0!==g?g:"white"});let i=0;for(let A=0;A<this.managedTracks.length;A++){const I=this.managedTracks[A].track,g=e[A],C=`track_${A}_${I.type}`;B.saveWithTranslationAndClipRect(C,0,i,t,g,0),I.renderToContext&&I.renderToContext(B,t,g),B.restore(),i+=g}const Q=this.getVisibleROIs();if(Q.length>0){const A=this._frames[0].locus,I=(A.end-A.start)/t;u(B,Q,{pixelWidth:t,bpStart:A.start,bpPerPixel:I,viewportWidth:t},{totalHeight:C})}return B.setHeight(C),B.getSerializedSvg(!0)}toJSON(){var A;const I=[];for(const g of this.managedTracks){if(g.isEphemeral)continue;const t=g.track.serializeConfig(this.theme);t.id=g.id,g.name&&(t.name=g.name),null!=g.order&&(t.order=g.order),g.metadata&&(t.metadata=g.metadata),g.searchable&&(t.searchable=!0),(null===(A=g.nameIndex)||void 0===A?void 0:A.searchableFields)&&(t.searchableFields=[...g.nameIndex.searchableFields]),g.dataSourceConfig&&"ruler"!==t.type&&"sequence"!==t.type&&"merged"!==t.type&&"wigGroup"!==t.type&&"ideogram"!==t.type&&(t.dataSource=g.dataSourceConfig),I.push(t)}const g=this.genome?{id:this.genome.id,name:this.genome.name}:void 0;return{version:"1.0",frames:this._frames.map(A=>({id:A.id,locus:{...A.locus},viewportWidth:A.viewportWidth||void 0})),locus:{...this._frames[0].locus},viewportWidth:this._frames[0].viewportWidth||void 0,genome:g,tracks:I,rois:this.roiManager.serialize()}}loadSession(A,I){var g,t;this._snapshotForUndo("session-load");for(const A of this.managedTracks){A.abortController&&A.abortController.abort();for(const I of A.frameAbortControllers.values())null==I||I.abort();A.frameAbortControllers.clear()}this.managedTracks=[],this.roiManager.clear(),A.frames&&A.frames.length>0?this._frames=A.frames.map(A=>{var I;return r({...A.locus},null!==(I=A.viewportWidth)&&void 0!==I?I:this._frames[0].viewportWidth,A.id)}):(this._frames[0].locus={...A.locus},A.viewportWidth&&(this._frames[0].viewportWidth=A.viewportWidth),n(this._frames[0]));const C={canvasProvider:this.canvasProvider,theme:null==I?void 0:I.theme,sequenceProvider:this.sequenceProvider},e=this.factoryContext();this._deferSort=!0;try{for(const I of A.tracks){const A=wi(I,this._frames[0].locus,C);let B=A.dataSource;if(B&&A.dataSourceConfig&&this.dataSourceWorkerProvider){const I=A.dataSourceConfig.type;if("bigwig"===I||"gtx"===I||"text"===I||"ucsc"===I){const I=IQ(A.dataSourceConfig,e);I&&(B=I)}}!this.dataSourceWorkerProvider&&B&&gQ(B,e),this.addTrack(A.track,null!=B?B:void 0,null!==(g=A.dataSourceConfig)&&void 0!==g?g:void 0,void 0,null!==(t=A.order)&&void 0!==t?t:void 0,I.id);const i=this.findMT(A.track);A.name&&(i.name=A.name),I.metadata&&(i.metadata=I.metadata)}}finally{this._deferSort=!1,this.sortTracks()}if(A.rois)for(const I of A.rois)this.roiManager.addROISet(I);this.events.emit(eQ.LocusChange,{frames:[...this._frames],locus:this._frames[0].locus})}static fromSession(A,I){var g,t;const C=new oQ({locus:A.locus,viewportWidth:null!==(g=A.viewportWidth)&&void 0!==g?g:null==I?void 0:I.viewportWidth,canvasProvider:null==I?void 0:I.canvasProvider,workerProvider:null==I?void 0:I.workerProvider,theme:null!==(t=A.theme)&&void 0!==t?t:null==I?void 0:I.theme});return C.loadSession(A,I),C}addTrackFromConfig(A){var I;if(A.id){const I=this.getManagedTrack(A.id);if(I)return I.track}const g=yi(A,this._frames[0].locus,{canvasProvider:this.canvasProvider,theme:this.theme,sequenceProvider:this.sequenceProvider}),t=this.factoryContext();let C=g.dataSourceConfig;var e;C&&(e=C.type,!Jt.has(e))&&(C=Kt(C));let B=g.dataSource;if(B&&C&&this.dataSourceWorkerProvider){const A=C.type;if("bigwig"===A||"gtx"===A||"text"===A||"ucsc"===A){const A=IQ(C,t);A&&(B=A)}}const i=B!==g.dataSource;if(B&&!i)if("childSources"in B&&Array.isArray(B.childSources))for(const A of B.childSources)gQ(A,t);else gQ(B,t);this.addTrack(g.track,null!=B?B:void 0,null!=C?C:void 0,void 0,null!==(I=g.order)&&void 0!==I?I:void 0,A.id);const Q=this.findMT(g.track);return g.name&&(Q.name=g.name),A.metadata&&(Q.metadata=A.metadata),g.searchable&&(Q.searchable=!0,Q.nameIndex=new xi(g.searchableFields)),g.track}registerFactory(A){this.addTrack(A.track,A.dataSource,A.dataSourceConfig,A.maxTrackHeight,A.order);const I=this.findMT(A.track);if(A.metadata&&(I.metadata=A.metadata),A.searchable&&(I.searchable=!0,I.nameIndex=new xi(A.searchableFields)),A.onRegistered){const I=A.track;A.onRegistered(()=>{const A=this.managedTracks.find(A=>A.track===I);return null!=A?A:{cache:new D,dataSourceConfig:null}})}return A.track}addRuler(A){return this.registerFactory(function(A,I){const{canvas:g}=A.canvasProvider.createCanvas(0,0);return{track:new rC(g,{locus:A.locus,config:null==I?void 0:I.config,theme:A.theme,canvasProvider:A.canvasProvider,cumulativeOffsets:A.cumulativeOffsets,chromSizes:A.chromSizes}),maxTrackHeight:null==I?void 0:I.maxTrackHeight}}(this.factoryContext(),A))}addWigTrack(A,I){const g=function(A,I,g){var t;const{canvas:C}=A.canvasProvider.createCanvas(0,0),e=null!==(t=null==g?void 0:g.windowFunction)&&void 0!==t?t:"mean",B=new tC(C,{locus:A.locus,features:[],config:null==g?void 0:g.config,theme:A.theme,canvasProvider:A.canvasProvider,name:null==g?void 0:g.name,sequenceProvider:A.sequenceProvider}),i={type:"bigwig",url:I,windowFunction:e,...null==g?void 0:g.auth},Q=$i(A,g),{dataSource:o,workerDS:s}=tQ(i,()=>new mC(I,e,Q),A);return{track:B,dataSource:o,dataSourceConfig:i,maxTrackHeight:null==g?void 0:g.maxTrackHeight,metadata:null==g?void 0:g.metadata,onRegistered:A=>{B.onWindowFunctionChange=I=>{s?s.setWindowFunction(I):o.setWindowFunction(I);const g=A();g&&(g.cache.clear(),g.dataSourceConfig&&"bigwig"===g.dataSourceConfig.type&&(g.dataSourceConfig.windowFunction=I))}}}}(this.factoryContext(),A,I),t=this.registerFactory(g);return g.onRegistered&&CQ(t,()=>this.loadAllTracksIfNeeded()),t}addGtxTrack(A,I){const g=function(A,I,g){var t;const{canvas:C}=A.canvasProvider.createCanvas(0,0),e=null!==(t=g.windowFunction)&&void 0!==t?t:"mean",B=new tC(C,{locus:A.locus,features:[],config:g.config,theme:A.theme,canvasProvider:A.canvasProvider,name:g.name,sequenceProvider:A.sequenceProvider}),i={type:"gtx",url:I,experimentId:g.experimentId,windowFunction:e,...null==g?void 0:g.auth},Q=$i(A,g),{dataSource:o,workerDS:s}=tQ(i,()=>new ge(I,g.experimentId,e,Q),A);return{track:B,dataSource:o,dataSourceConfig:i,maxTrackHeight:null==g?void 0:g.maxTrackHeight,metadata:null==g?void 0:g.metadata,onRegistered:A=>{B.onWindowFunctionChange=I=>{s?s.setWindowFunction(I):o.setWindowFunction(I);const g=A();g&&(g.cache.clear(),g.dataSourceConfig&&"gtx"===g.dataSourceConfig.type&&(g.dataSourceConfig.windowFunction=I))}}}}(this.factoryContext(),A,I),t=this.registerFactory(g);return g.onRegistered&&CQ(t,()=>this.loadAllTracksIfNeeded()),t}addGeneTrack(A){return this.registerFactory(function(A,I){var g,t;const{canvas:C}=A.canvasProvider.createCanvas(0,0),e=new oC(C,{locus:A.locus,features:[],config:null==I?void 0:I.config,theme:A.theme,canvasProvider:A.canvasProvider,name:null!==(g=null==I?void 0:I.name)&&void 0!==g?g:"Genes"}),B=null==I?void 0:I.genome,i=null==I?void 0:I.track,Q={type:"ucsc",genome:B,track:i},{dataSource:o}=tQ(Q,()=>new Qe({genome:B,track:i}),A);return{track:e,dataSource:o,dataSourceConfig:Q,maxTrackHeight:null==I?void 0:I.maxTrackHeight,metadata:null==I?void 0:I.metadata,order:-1,searchable:null===(t=null==I?void 0:I.searchable)||void 0===t||t,searchableFields:null==I?void 0:I.searchableFields}}(this.factoryContext(),A))}addBedTrack(A,I){return this.registerFactory(function(A,I,g){var t;const{canvas:C}=A.canvasProvider.createCanvas(0,0),e=null==g?void 0:g.format,B=new oC(C,{locus:A.locus,features:[],config:null==g?void 0:g.config,theme:A.theme,canvasProvider:A.canvasProvider,name:null==g?void 0:g.name}),i={type:"text",url:I,format:e,indexURL:null==g?void 0:g.indexURL,indexed:null==g?void 0:g.indexed,...null==g?void 0:g.auth},Q=$i(A,g),{dataSource:o}=tQ(i,()=>new lB({url:I,format:e,indexURL:null==g?void 0:g.indexURL,indexed:null==g?void 0:g.indexed,fetchImpl:Q}),A);return{track:B,dataSource:o,dataSourceConfig:i,maxTrackHeight:null==g?void 0:g.maxTrackHeight,metadata:null==g?void 0:g.metadata,searchable:null===(t=null==g?void 0:g.searchable)||void 0===t||t,searchableFields:null==g?void 0:g.searchableFields}}(this.factoryContext(),A,I))}addBigBedTrack(A,I){return this.registerFactory(function(A,I,g){var t;const{canvas:C}=A.canvasProvider.createCanvas(0,0),e=new oC(C,{locus:A.locus,features:[],config:null==g?void 0:g.config,theme:A.theme,canvasProvider:A.canvasProvider,name:null==g?void 0:g.name}),B={type:"bigbed",url:I,...null==g?void 0:g.auth},i=$i(A,g),{dataSource:Q}=tQ(B,()=>new pC(I,i),A);return{track:e,dataSource:Q,dataSourceConfig:B,maxTrackHeight:null==g?void 0:g.maxTrackHeight,metadata:null==g?void 0:g.metadata,searchable:null===(t=null==g?void 0:g.searchable)||void 0===t||t,searchableFields:null==g?void 0:g.searchableFields}}(this.factoryContext(),A,I))}addInteractionTrack(A,I){return this.registerFactory(function(A,I,g){var t;const{canvas:C}=A.canvasProvider.createCanvas(0,0),e=null==g?void 0:g.format,B=new kB(C,{locus:A.locus,features:[],config:null==g?void 0:g.config,theme:A.theme,canvasProvider:A.canvasProvider,name:null==g?void 0:g.name}),i={type:"text",url:I,format:e,indexURL:null==g?void 0:g.indexURL,indexed:null==g?void 0:g.indexed,...null==g?void 0:g.auth},Q=$i(A,g),{dataSource:o}=tQ(i,()=>new lB({url:I,format:e,indexURL:null==g?void 0:g.indexURL,indexed:null==g?void 0:g.indexed,fetchImpl:Q}),A);return{track:B,dataSource:o,dataSourceConfig:i,metadata:null==g?void 0:g.metadata,searchable:null===(t=null==g?void 0:g.searchable)||void 0===t||t,searchableFields:null==g?void 0:g.searchableFields}}(this.factoryContext(),A,I))}addWigTrackWithFeatures(A,I){return this.registerFactory(function(A,I,g){const{canvas:t}=A.canvasProvider.createCanvas(0,0),C=new tC(t,{locus:A.locus,features:[],config:null==g?void 0:g.config,theme:A.theme,canvasProvider:A.canvasProvider,name:null==g?void 0:g.name,sequenceProvider:A.sequenceProvider}),e=new dB(I);return gQ(e,A),{track:C,dataSource:e,dataSourceConfig:{type:"memory"},maxTrackHeight:null==g?void 0:g.maxTrackHeight,metadata:null==g?void 0:g.metadata}}(this.factoryContext(),A,I))}addBedTrackWithFeatures(A,I){return this.registerFactory(function(A,I,g){var t;const{canvas:C}=A.canvasProvider.createCanvas(0,0),e=new oC(C,{locus:A.locus,features:[],config:null==g?void 0:g.config,theme:A.theme,canvasProvider:A.canvasProvider,name:null==g?void 0:g.name}),B=new dB(I);return gQ(B,A),{track:e,dataSource:B,dataSourceConfig:{type:"memory"},maxTrackHeight:null==g?void 0:g.maxTrackHeight,metadata:null==g?void 0:g.metadata,searchable:null===(t=null==g?void 0:g.searchable)||void 0===t||t,searchableFields:null==g?void 0:g.searchableFields}}(this.factoryContext(),A,I))}addSequenceTrack(A){const I={type:"sequence",config:null==A?void 0:A.config},g=this.addTrackFromConfig(I);if(null!=(null==A?void 0:A.maxTrackHeight)){const I=this.managedTracks.find(A=>A.track===g);I&&(I.maxTrackHeight=A.maxTrackHeight)}return g}addIdeogramTrack(A){return this.registerFactory(function(A,I){var g;const{canvas:t}=A.canvasProvider.createCanvas(0,0);let C=null==I?void 0:I.cytobands,e=null==I?void 0:I.chrLength;return!C&&(null===(g=A.genome)||void 0===g?void 0:g.getCytobands)&&(C=A.genome.getCytobands(A.locus.chr),e=A.genome.getChromosomeLength(A.locus.chr)),{track:new si(t,{locus:A.locus,config:null==I?void 0:I.config,theme:A.theme,canvasProvider:A.canvasProvider,cytobands:null!=C?C:[],chrLength:null!=e?e:0})}}(this.factoryContext(),A))}mergeTracks(A,I){if(A.length<2)throw new Error("mergeTracks requires at least 2 track IDs");this._snapshotForUndo("track-add"),this._undoManager.pause();try{const g=[];for(const I of A){const A=this.managedTracks.find(A=>A.id===I);if(!A)throw new Error(`Track not found: "${I}"`);g.push(A)}const t=g[0].order,C=g.map(A=>({track:A.track,name:A.name})),e=g.map(A=>A.dataSource).filter(A=>null!=A),B=g.map(A=>A.name),{canvas:i}=this.canvasProvider.createCanvas(0,0),Q=new RB(i,{locus:this._frames[0].locus,childTracks:C,config:null==I?void 0:I.config,theme:this.theme,canvasProvider:this.canvasProvider,name:null==I?void 0:I.name}),o=e.length>0?new UB(e,B):null;for(const A of g)A.dataSource=null,this.removeTrack(A.id);if(this.addTrack(Q,null!=o?o:void 0,void 0,void 0,t),null==I?void 0:I.name){const A=this.managedTracks.find(A=>A.track===Q);A&&(A.name=I.name)}return Q}finally{this._undoManager.resume()}}separateMergedTrack(A){const I=this.managedTracks.find(I=>I.id===A);if(!I)throw new Error(`Track not found: "${A}"`);if(!(I.track instanceof RB))throw new Error(`Track "${A}" is not a merged track`);this._snapshotForUndo("track-remove"),this._undoManager.pause();try{const A=I.track,g=I.order,t=A.childTracks,C=I.dataSource instanceof UB?I.dataSource.childSources:[];I.dataSource=null,this.removeTrack(I.id);const e=[];for(let A=0;A<t.length;A++){const I=t[A],B=C[A];if(this.addTrack(I.track,B,void 0,void 0,g),I.name){const A=this.managedTracks.find(A=>A.track===I.track);A&&(A.name=I.name)}e.push(I.track)}return e}finally{this._undoManager.resume()}}setTheme(A){this._snapshotForUndo("theme"),this._theme=L(A);for(const A of this.managedTracks){A.track.setTheme(this._theme);for(const I of A.frameInstances.values())I.setTheme(this._theme)}this.events.emit(eQ.ThemeChanged,{theme:this._theme})}dispose(){this.dataManager.dispose(),this.events.removeAllListeners(),this.popupProvider&&this.popupProvider.dispose(),this.contextMenuProvider&&this.contextMenuProvider.dispose();for(const A of this.managedTracks){A.abortController&&A.abortController.abort();for(const I of A.frameAbortControllers.values())null==I||I.abort();A.frameAbortControllers.clear(),A.dataSource&&this.dataManager.destroyWorkerDataSource(A.dataSource)}this.managedTracks=[],this.roiManager.clear()}resolveInteraction(A,I,g){const t=A.hitTest(I,g);if(0===t.length)return null;const C=this._frames[0],e=C.viewportWidth>0?(C.locus.end-C.locus.start)/C.viewportWidth:0;return{track:A,genomicLocation:C.locus.start+I*e,features:t.map(A=>A.feature),popupData:t.flatMap(A=>A.popupData),x:I,y:g}}loadAllTracksIfNeeded(){this.dataManager.loadAllTracksIfNeeded(this.managedTracks,this._frames)}}class sQ extends Error{constructor(A,I){super(`Worker task '${A}' timed out after ${I}ms`),this.name="TaskTimeoutError"}}function EQ(A){const I=new Error(A.message);return I.name=A.name,A.stack&&(I.stack=A.stack),I}class aQ{constructor(A){var I,g;this.nextId=0,this.nextWorker=0,this.pending=new Map,this.instanceToWorker=new Map,this.pendingFetches=new Map,this.nextFetchId=0,this.taskTimeoutMs=null!==(I=A.taskTimeoutMs)&&void 0!==I?I:3e4,this.authProvider=A.authProvider;const t=Math.max(1,null!==(g=A.poolSize)&&void 0!==g?g:1);let C;if(A.workerFactory)C=A.workerFactory;else{if(!A.workerUrl)throw new Error("WebWorkerPoolOptions requires either workerUrl or workerFactory");{const I=A.workerUrl;C=()=>new Worker(I,{type:"module"})}}this.workers=[],this.readyPromises=[];for(let A=0;A<t;A++){const A=C();let I;const g=new Promise((g,t)=>{I=t;A.addEventListener("message",A=>{"ready"===A.data.type&&g()},{once:!0})});g.catch(()=>{}),this.readyPromises.push(g),A.onmessage=I=>{const g=I.data;if("ready"!==g.type)if("taskResult"===g.type){const A=this.pending.get(g.id);A&&(this.pending.delete(g.id),g.error?A.reject(EQ(g.error)):A.resolve(g.result))}else if("fetchResult"===g.type){const A=this.pendingFetches.get(g.fetchId);A&&(this.pendingFetches.delete(g.fetchId),A.resolve(g.features))}else if("fetchError"===g.type){const A=this.pendingFetches.get(g.fetchId);A&&(this.pendingFetches.delete(g.fetchId),"AbortError"===g.error?A.reject(new DOMException("Aborted","AbortError")):A.reject(new Error(g.error)))}else"auth-challenge"===g.type&&this.handleAuthChallenge(A,g.challengeId,g.url)},A.onerror=A=>{const g=new Error(`Worker error: ${A.message}`);I(g);for(const{reject:A}of this.pending.values())A(g);this.pending.clear();for(const{reject:A}of this.pendingFetches.values())A(g);this.pendingFetches.clear()},this.workers.push(A)}}get poolSize(){return this.workers.length}execute(A,I){const g=this.nextId++,t=this.workers[this.nextWorker%this.workers.length];this.nextWorker++;return function(A,I,g){return I<=0?A:new Promise((t,C)=>{const e=setTimeout(()=>C(new sQ(g,I)),I);A.then(A=>{clearTimeout(e),t(A)},A=>{clearTimeout(e),C(A)})})}(new Promise((C,e)=>{this.pending.set(g,{resolve:C,reject:e}),t.postMessage({type:"task",id:g,task:A},null!=I?I:[])}),this.taskTimeoutMs,A.task)}create(A,I){const g=this.routeToWorker(I);this.instanceToWorker.set(A,g);const t=this.workers[g];this.readyPromises[g].then(()=>{t.postMessage({type:"create",instanceId:A,config:I})})}async fetch(A,I,g,t){const C=this.instanceToWorker.get(A);if(void 0===C)throw new Error(`No worker assigned for DataSource: ${A}`);await this.readyPromises[C];const e=this.nextFetchId++,B=this.workers[C],i=()=>{B.postMessage({type:"cancel",fetchId:e});const A=this.pendingFetches.get(e);A&&(this.pendingFetches.delete(e),A.reject(new DOMException("Aborted","AbortError")))};if(t.addEventListener("abort",i,{once:!0}),t.aborted)throw t.removeEventListener("abort",i),new DOMException("Aborted","AbortError");try{return await new Promise((t,C)=>{this.pendingFetches.set(e,{resolve:t,reject:C}),B.postMessage({type:"fetch",instanceId:A,fetchId:e,locus:I,bpPerPixel:g})})}finally{t.removeEventListener("abort",i)}}configure(A,I,...g){const t=this.instanceToWorker.get(A);if(void 0===t)return;const C=this.workers[t];this.readyPromises[t].then(()=>{C.postMessage({type:"configure",instanceId:A,method:I,args:g})})}destroy(A){const I=this.instanceToWorker.get(A);if(void 0===I)return;this.workers[I].postMessage({type:"destroy",instanceId:A}),this.instanceToWorker.delete(A)}dispose(){for(const A of this.workers)A.terminate();for(const{reject:A}of this.pending.values())A(new Error("Worker terminated"));this.pending.clear();for(const{reject:A}of this.pendingFetches.values())A(new Error("Worker terminated"));this.pendingFetches.clear(),this.instanceToWorker.clear(),this.readyPromises=[],this.workers=[]}handleAuthChallenge(A,I,g){this.authProvider?this.authProvider.getCredentials(g).then(g=>{var t,C;A.postMessage({type:"auth-refresh",challengeId:I,credentials:g?{oauthToken:null===(C=null===(t=g.headers)||void 0===t?void 0:t.Authorization)||void 0===C?void 0:C.replace(/^Bearer\s+/i,""),headers:g.headers,withCredentials:g.withCredentials}:void 0})}).catch(g=>{P.error("Auth challenge resolution failed:",g),A.postMessage({type:"auth-refresh",challengeId:I,credentials:void 0})}):A.postMessage({type:"auth-refresh",challengeId:I,credentials:void 0})}routeToWorker(A){const I="url"in A?A.url:A.type;return Math.abs(function(A){let I=5381;for(let g=0;g<A.length;g++)I=(I<<5)+I+A.charCodeAt(g)|0;return I}(I))%this.workers.length}}class rQ extends Error{constructor(A,I){super(I),this.code=A,this.name="CommandError"}}function nQ(A){const I={};return void 0!==A.id&&(I.id=A.id),void 0!==A.nameRegex?I.name=new RegExp(A.nameRegex,"i"):void 0!==A.name&&(I.name=A.name),void 0!==A.type&&(I.type=A.type),void 0!==A.where&&(I.where=A.where),I}class hQ{constructor(A,I){this.browser=A,this.options=null!=I?I:{}}async dispatch(A){switch(A.command){case"get_browser_state":return this.handleGetState(A);case"navigate":return this.handleNavigate(A);case"modify_tracks":return this.handleModifyTracks(A);case"query_features":return this.handleQueryFeatures(A);case"annotate":return this.handleAnnotate();case"set_layout":return this.handleSetLayout(A);case"export_view":return this.handleExportView(A);case"manage_rois":return this.handleManageROIs(A);case"subscribe_events":return this.handleSubscribeEvents(A);default:throw new rQ("UNKNOWN_COMMAND",`Unknown command: ${A.command}`)}}handleGetState(A){return this.browser.state.getState(A.record?{record:A.record}:void 0)}async handleNavigate(A){if(!A.locus&&!A.zoom)throw new rQ("INVALID_ARGS","navigate requires at least one of: locus, zoom");let I=!0;if(A.locus)if(A.frameId){const g=c(A.locus);if(g)this.browser.setFrameLocus(A.frameId,g);else{const g=await this.browser.search(A.locus);if(!g)throw new rQ("NAVIGATION_FAILED",`Could not navigate to: "${A.locus}"`);I=g}}else{const g=await this.browser.search(A.locus);if(!g)throw new rQ("NAVIGATION_FAILED",`Could not navigate to: "${A.locus}"`);I=g}return"in"===A.zoom?this.browser.zoomIn(A.factor):"out"===A.zoom&&this.browser.zoomOut(A.factor),I}handleModifyTracks(A){var I;if(!A.actions||0===A.actions.length)throw new rQ("INVALID_ARGS","modify_tracks requires at least one action");const g=[];for(const t of A.actions)switch(t.action){case"add":try{const A=this.browser.addTrackFromConfig(t.config),I=this.browser.getManagedTracks().find(I=>I.track===A);g.push({action:"add",success:!0,trackId:null==I?void 0:I.id})}catch(A){g.push({action:"add",success:!1,error:null!==(I=A.message)&&void 0!==I?I:"Unknown error adding track"})}break;case"remove":{const A=this.browser.removeTracks(nQ(t.selector));g.push({action:"remove",success:A>0,count:A});break}case"find":{const A=this.browser.findTracks(nQ(t.selector)).map(A=>cQ(A));g.push({action:"find",success:!0,tracks:A});break}case"update_metadata":{const A=this.browser.updateTrackMetadata(nQ(t.selector),t.metadata);g.push({action:"update_metadata",success:A>0,count:A});break}default:g.push({action:t.action,success:!1,error:`Unknown action: ${t.action}`})}return{results:g}}handleQueryFeatures(A){var I;const g=this.browser.getTrack(A.trackId);if(!g)throw new rQ("TRACK_NOT_FOUND",`No track with id '${A.trackId}'`);const t=null!==(I=this.browser.getCachedFeatures(g))&&void 0!==I?I:[];if(A.summarize){const I=this.browser.state.getState().tracks.find(I=>I.id===A.trackId);return{trackId:A.trackId,featureCount:t.length,summary:null==I?void 0:I.featureSummary}}return{trackId:A.trackId,featureCount:t.length,features:t}}handleAnnotate(){throw new rQ("NOT_IMPLEMENTED","Annotations are not yet supported (Phase 3)")}async handleSetLayout(A){if(!A.tracks)throw new rQ("INVALID_ARGS","set_layout requires a tracks array");const I=[...this.browser.getManagedTracks()],g=new Set,t=[],C=[];for(const e of A.tracks){const A=this.findMatchingTrack(e,I,g);A?(g.add(A.id),C.push(A.id)):t.push(e)}const e=[];for(const A of I)g.has(A.id)||(this.browser.removeTrack(A.id),e.push(A.id));const B=[];for(const A of t){const I=this.browser.addTrackFromConfig(A),g=this.browser.getManagedTracks().find(A=>A.track===I);g&&B.push(g.id)}return A.locus&&await this.browser.search(A.locus),{added:B,removed:e,unchanged:C}}findMatchingTrack(A,I,g){if(A.id)return I.find(I=>I.id===A.id&&!g.has(I.id));const t=this.layoutMatchKey(A);return I.find(I=>!g.has(I.id)&&(I.track.type===A.type&&(I.dataSourceConfig?t===Wi(I.dataSourceConfig):!t)))}layoutMatchKey(A){if("dataSource"in A&&A.dataSource)return Wi(A.dataSource)}async handleExportView(A){switch(A.format){case"svg":return this.browser.toSVG(A.width?{width:A.width}:void 0);case"png":if(!this.options.supportsPNG||!this.options.exportPNG)throw new rQ("EXPORT_UNAVAILABLE","PNG export requires a DOM-attached GenomeBrowser");return this.options.exportPNG();case"session":return this.browser.toJSON();default:throw new rQ("INVALID_ARGS",`Unknown export format: ${A.format}`)}}handleManageROIs(A){const{action:I}=A;switch(I.action){case"add":return{action:"add",roi:this.browser.addROI(I.roi,I.setName)};case"remove":return{action:"remove",success:this.browser.removeROI(I.roiId)};case"update":return{action:"update",roi:this.browser.updateROI(I.roiId,I.changes)};case"clear":return this.browser.clearROIs(),{action:"clear"};case"list":return{action:"list",rois:this.browser.getROIs()};case"list_sets":return{action:"list_sets",sets:this.browser.getROISets().map(A=>A.toJSON())};case"find_at_locus":return{action:"find_at_locus",rois:this.browser.findROIsAtLocus(I.chr,I.start,I.end)};case"get_visible":return{action:"get_visible",rois:this.browser.getVisibleROIs()};default:throw new rQ("INVALID_ARGS",`Unknown ROI action: ${I.action}`)}}handleSubscribeEvents(A){var I,g;if(!Array.isArray(A.events))throw new rQ("INVALID_ARGS","subscribe_events requires an events array");const t=new Set(Object.values(eQ)),C=[];for(const I of A.events)if("*"===I)C.push("*");else{if(!t.has(I))throw new rQ("INVALID_ARGS",`Unknown event name: "${I}". Valid events: ${[...t].join(", ")}`);C.push(I)}return null===(g=(I=this.options).onSubscribeEvents)||void 0===g||g.call(I,C),{subscribed:C}}}function cQ(A){return{id:A.id,type:A.track.type,name:A.name,metadata:A.metadata,loading:null!=A.dataSource&&null==A.cache}}class lQ{constructor(A,I,g){this.unsubscribers=[],this.detached=!1,this.subscribedEvents=null,this.browser=A,this.socket=I,this.dispatcher=new hQ(A,{...g,onSubscribeEvents:A=>{this.subscribedEvents=new Set(A)}}),this.messageHandler=A=>{this.handleMessage(A.data)},this.closeHandler=()=>this.detach(),I.addEventListener("message",this.messageHandler),I.addEventListener("close",this.closeHandler),this.subscribeToEvents()}detach(){if(!this.detached){this.detached=!0;for(const A of this.unsubscribers)A();this.unsubscribers=[],this.socket.removeEventListener("message",this.messageHandler),this.socket.removeEventListener("close",this.closeHandler)}}get isDetached(){return this.detached}async handleMessage(A){var I;let g;try{g=JSON.parse(A)}catch(A){return}if(g.id&&g.command)try{const A={command:g.command,...g.args},I=await this.dispatcher.dispatch(A);this.send({id:g.id,result:I})}catch(A){A instanceof rQ?this.send({id:g.id,error:{code:A.code,message:A.message}}):this.send({id:g.id,error:{code:"INTERNAL_ERROR",message:null!==(I=A.message)&&void 0!==I?I:"Unknown error"}})}}send(A){1!==this.socket.readyState||this.detached||this.socket.send(JSON.stringify(A))}subscribeToEvents(){const A=Object.values(eQ);for(const I of A){const A=this.browser.on(I,A=>{this.subscribedEvents&&(this.subscribedEvents.has("*")||this.subscribedEvents.has(I))&&this.send({event:I,data:this.sanitizeEventData(I,A)})});this.unsubscribers.push(A)}}sanitizeEventData(A,I){if(A===eQ.LocusChange)return I;if(A===eQ.ROIClick||A===eQ.ROIContextMenu)return I;if(A===eQ.ROIAdded||A===eQ.ROIRemoved||A===eQ.ROIChanged){const A=I;return{roi:A.roi,setName:A.set.name,...A.changes?{changes:A.changes}:{}}}if(A===eQ.TrackOrderChanged){return{trackIds:I.tracks.map(A=>this.findTrackId(A))}}if(A===eQ.DataError||A===eQ.RenderError){const A=I,g=this.findManagedTrack(A.track);return{trackId:null==g?void 0:g.id,trackType:A.track.type,trackName:null==g?void 0:g.name,error:A.error.message}}if(A===eQ.TrackClick||A===eQ.TrackHover||A===eQ.TrackContextMenu){const A=I,g=this.findManagedTrack(A.track);return{trackId:null==g?void 0:g.id,trackType:A.track.type,trackName:null==g?void 0:g.name,genomicLocation:A.genomicLocation,featureCount:A.features.length}}const g=I;if("track"in g){const A=this.findManagedTrack(g.track);return{trackId:null==A?void 0:A.id,trackType:g.track.type,trackName:null==A?void 0:A.name}}return I}findManagedTrack(A){return this.browser.getManagedTracks().find(I=>I.track===A)}findTrackId(A){var I;return null===(I=this.findManagedTrack(A))||void 0===I?void 0:I.id}}const dQ="http://www.w3.org/2000/svg",DQ="rgb(0, 0, 150)";class uQ{constructor(A){this.svg=document.createElementNS(dQ,"svg"),this.svg.classList.add("loom-feature-overlay"),this.svg.style.cssText="\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n pointer-events: none;\n overflow: visible;\n ",this.defs=document.createElementNS(dQ,"defs"),this.svg.appendChild(this.defs),this.group=document.createElementNS(dQ,"g"),this.group.style.pointerEvents="auto",this.svg.appendChild(this.group),A.style.position="relative",A.appendChild(this.svg)}update(A){var I;if(this.group.textContent="",this.defs.textContent="",0===A.length||A.length>500)return;const g=document.createDocumentFragment();for(let t=0;t<A.length;t++){const C=A[t],e=null!==(I=C.color)&&void 0!==I?I:DQ,B=`glow-${t}`;this.defs.appendChild(this.createGlowFilter(B,e)),g.appendChild(this.createRect(C,B))}this.group.appendChild(g)}setSuppressed(A){this.group.style.pointerEvents=A?"none":"auto"}setVisible(A){this.svg.style.display=A?"":"none"}dispose(){this.svg.remove()}createGlowFilter(A,I){const g=document.createElementNS(dQ,"filter");g.setAttribute("id",A),g.setAttribute("x","-20%"),g.setAttribute("y","-40%"),g.setAttribute("width","140%"),g.setAttribute("height","180%");const t=document.createElementNS(dQ,"feFlood");t.setAttribute("flood-color",I),t.setAttribute("flood-opacity","0.4"),t.setAttribute("result","color"),g.appendChild(t);const C=document.createElementNS(dQ,"feComposite");C.setAttribute("in","color"),C.setAttribute("in2","SourceGraphic"),C.setAttribute("operator","in"),C.setAttribute("result","colored"),g.appendChild(C);const e=document.createElementNS(dQ,"feGaussianBlur");e.setAttribute("in","colored"),e.setAttribute("stdDeviation","3"),e.setAttribute("result","glow"),g.appendChild(e);const B=document.createElementNS(dQ,"feMerge"),i=document.createElementNS(dQ,"feMergeNode");i.setAttribute("in","glow");const Q=document.createElementNS(dQ,"feMergeNode");return Q.setAttribute("in","SourceGraphic"),B.appendChild(i),B.appendChild(Q),g.appendChild(B),g}createRect(A,I){var g;const t=document.createElementNS(dQ,"rect");t.setAttribute("x",String(A.x-3)),t.setAttribute("y",String(A.y-3)),t.setAttribute("width",String(A.width+6)),t.setAttribute("height",String(A.height+6)),t.setAttribute("rx","2");const C=`url(#${I})`,e=null!==(g=A.color)&&void 0!==g?g:DQ;return t.addEventListener("mouseenter",()=>{t.style.fill=function(A,I){const g=A.match(/^rgba?\(\s*([\d.]+)[,\s]+([\d.]+)[,\s]+([\d.]+)/);if(g)return`rgba(${g[1]}, ${g[2]}, ${g[3]}, ${I})`;const t=A.match(/^#([0-9a-f]{3,8})$/i);if(t){let A=t[1];3===A.length&&(A=A[0]+A[0]+A[1]+A[1]+A[2]+A[2]);return`rgba(${parseInt(A.slice(0,2),16)}, ${parseInt(A.slice(2,4),16)}, ${parseInt(A.slice(4,6),16)}, ${I})`}return A}(e,.15),t.style.filter=C}),t.addEventListener("mouseleave",()=>{t.style.fill="transparent",t.style.filter=""}),t.addEventListener("click",I=>{var g;I.stopPropagation(),null===(g=this.onFeatureClick)||void 0===g||g.call(this,A,I)}),t}}class yQ{constructor(A,I){this.labelEl=null,this.badgeEl=null,this.root=document.createElement("div"),this.root.classList.add("loom-track-ui-layer"),this.root.style.position="absolute",this.root.style.inset="0",this.root.style.pointerEvents="none",this.root.style.overflow="hidden",A.appendChild(this.root),this.onBadgeClick=I}update(A,I){var g,t,C;this.root.style.height=`${Math.max(0,I)}px`;const e=null==A?void 0:A.label;if(e){this.labelEl||(this.labelEl=document.createElement("div"),this.root.appendChild(this.labelEl));const A=4+(null!==(t=e.topOffset)&&void 0!==t?t:0);this.labelEl.textContent=e.text,this.labelEl.style.position="absolute",this.labelEl.style.left="4px",this.labelEl.style.top=`${A}px`,this.labelEl.style.padding="2px 4px",this.labelEl.style.font="normal 10px sans-serif",this.labelEl.style.lineHeight="1.2",this.labelEl.style.color=e.color,this.labelEl.style.background=e.background,this.labelEl.style.border=`0.5px solid ${e.color}`,this.labelEl.style.opacity="0.75",this.labelEl.style.pointerEvents="none",this.labelEl.style.userSelect="none",this.labelEl.style.whiteSpace="nowrap"}else null===(g=this.labelEl)||void 0===g||g.remove(),this.labelEl=null;const B=null==A?void 0:A.badge;B?(this.badgeEl||(this.badgeEl=document.createElement("button"),this.badgeEl.type="button",this.badgeEl.classList.add("loom-track-ui-badge"),this.badgeEl.addEventListener("click",A=>{var I;A.preventDefault(),A.stopPropagation();const g=null===(I=this.badgeEl)||void 0===I?void 0:I.dataset.chromeId;g&&this.onBadgeClick(g)}),this.root.appendChild(this.badgeEl)),this.badgeEl.dataset.chromeId=B.id,this.badgeEl.textContent=B.text,this.badgeEl.style.position="absolute",this.badgeEl.style.right="4px",this.badgeEl.style.top="50%",this.badgeEl.style.transform="translateY(-50%)",this.badgeEl.style.border="0",this.badgeEl.style.borderRadius="3px",this.badgeEl.style.padding="2px 4px",this.badgeEl.style.margin="0",this.badgeEl.style.font="bold 10px sans-serif",this.badgeEl.style.lineHeight="1",this.badgeEl.style.color=B.color,this.badgeEl.style.background=B.background,this.badgeEl.style.cursor="pointer",this.badgeEl.style.pointerEvents="auto",this.badgeEl.style.userSelect="none"):(null===(C=this.badgeEl)||void 0===C||C.remove(),this.badgeEl=null)}dispose(){this.root.remove(),this.labelEl=null,this.badgeEl=null}}class wQ{constructor(A,I,g,t){this.options=t,this.isDragging=!1,this.lastPointerX=0,this.activeFrameId=null,this.isSweeping=!1,this.sweepStartX=0,this.sweepColumnLeft=0,this.sweepOverlay=null,this.sweepRulerCanvas=null,this.pointerDownX=0,this.pointerDownY=0,this.pointerDownTarget=null,this.lastClickTime=0,this.lastClickX=0,this.lastClickY=0,this.singleClickTimer=null,this.hoverThrottleId=null,this._preNavLocus=null,this.handlePointerDown=null,this.handlePointerMove=null,this.handlePointerUp=null,this.handleMouseMove=null,this.handleMouseLeave=null,this.handleWheel=null,this.wheelRafId=null,this.reorderDragTrack=null,this.reorderDragRow=null,this.reorderHandlers=new Map,this.container=A,this.browser=I,this.axisColumnWidth=g}setup(){this.setupDragHandlers(),this.setupHoverHandlers(),!1!==this.options.wheelZoom&&this.setupWheelHandler()}dispose(){null!==this.singleClickTimer&&(clearTimeout(this.singleClickTimer),this.singleClickTimer=null),this.teardownDragHandlers(),this.teardownHoverHandlers(),this.teardownWheelHandler(),this.removeSweepOverlay();for(const[A]of this.reorderHandlers)this.teardownReorderForTrack(A);this.reorderHandlers.clear()}setupReorderForTrack(A,I){I.style.cursor="grab";const g=g=>{if(0!==g.button)return;g.preventDefault(),g.stopPropagation();const e=this.getTrackRow(A);e&&(this.reorderDragTrack=A,this.reorderDragRow=e,e.style.opacity="0.5",I.style.cursor="grabbing",document.addEventListener("pointermove",t),document.addEventListener("pointerup",C))},t=A=>{if(!this.reorderDragTrack)return;const I=this.browser.getManagedTracks(),g=I.findIndex(A=>A.track===this.reorderDragTrack);if(g<0)return;const t=A.clientY;if(g>0){const A=this.getTrackRow(I[g-1].track);if(A){const I=A.getBoundingClientRect();if(t<I.bottom-.25*I.height)return this.browser.moveTrackInArray(g,g-1),void this.browser.syncDOMOrder()}}if(g<I.length-1){const A=this.getTrackRow(I[g+1].track);if(A){const I=A.getBoundingClientRect();if(t>I.top+.15*I.height)return this.browser.moveTrackInArray(g,g+1),void this.browser.syncDOMOrder()}}},C=A=>{if(document.removeEventListener("pointermove",t),document.removeEventListener("pointerup",C),this.reorderDragTrack&&this.reorderDragRow){this.reorderDragRow.style.opacity="";const A=this.browser.getTrackAxisDiv(this.reorderDragTrack);A&&(A.style.cursor="grab"),this.browser.finalizeReorder()}this.reorderDragTrack=null,this.reorderDragRow=null};this.reorderHandlers.set(A,{down:g,docMove:t,docUp:C}),I.addEventListener("pointerdown",g)}teardownReorderForTrack(A){const I=this.reorderHandlers.get(A);if(!I)return;const g=this.browser.getTrackAxisDiv(A);g&&g.removeEventListener("pointerdown",I.down),document.removeEventListener("pointermove",I.docMove),document.removeEventListener("pointerup",I.docUp),this.reorderHandlers.delete(A)}createSweepOverlay(){const A=document.createElement("div");return A.style.cssText="\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 0;\n pointer-events: none;\n background: rgba(68, 134, 247, 0.25);\n z-index: 99999;\n transition: none;\n ","static"===getComputedStyle(this.container).position&&(this.container.style.position="relative"),this.container.appendChild(A),A}removeSweepOverlay(){this.sweepOverlay&&(this.sweepOverlay.remove(),this.sweepOverlay=null),this.sweepRulerCanvas=null}setupDragHandlers(){this.handlePointerDown=A=>{if(0!==A.button)return;if(this.browser.isOverlayTarget(A))return;if(this.browser.hideContextMenu(),!(A.target instanceof HTMLCanvasElement))return this.browser.hidePopup(),void(this.pointerDownTarget=null);this.pointerDownX=A.clientX,this.pointerDownY=A.clientY,this.pointerDownTarget=A.target,this.activeFrameId=this.browser.getFrameIdForX(A.clientX);const I=this.browser.getFrameLocus(this.activeFrameId);if(!h(I)){if(this.browser.isRulerCanvas(A.target)){const I=A.target;this.isSweeping=!0,this.isDragging=!1,this.sweepRulerCanvas=I;const g=this.container.getBoundingClientRect();this.sweepStartX=A.clientX-g.left;const t=I.parentElement;return this.sweepColumnLeft=t?t.getBoundingClientRect().left-g.left:this.axisColumnWidth,this.sweepOverlay=this.createSweepOverlay(),this.sweepOverlay.style.left=`${this.sweepStartX}px`,this.sweepOverlay.style.width="0px",this.sweepOverlay.style.display="block",void this.container.setPointerCapture(A.pointerId)}this.isSweeping=!1,this.lastPointerX=A.clientX,this._preNavLocus={...I},this.container.setPointerCapture(A.pointerId)}},this.handlePointerMove=A=>{var I,g;if(this.isSweeping&&this.sweepOverlay&&this.sweepRulerCanvas){const I=this.container.getBoundingClientRect(),g=Math.max(this.axisColumnWidth,Math.min(A.clientX-I.left,I.width)),t=Math.min(this.sweepStartX,g),C=Math.abs(g-this.sweepStartX);return this.sweepOverlay.style.left=`${t}px`,void(this.sweepOverlay.style.width=`${C}px`)}if(!this.activeFrameId)return;if(!this.isDragging){if(Math.abs(A.clientX-this.pointerDownX)<3)return;this.isDragging=!0,this.container.style.cursor="grabbing",this.browser.setFeatureOverlaysSuppressed(!0,null!==(I=this.activeFrameId)&&void 0!==I?I:void 0),this.browser.setFeatureOverlaysVisible(!1,null!==(g=this.activeFrameId)&&void 0!==g?g:void 0);const t=this.browser.getManagedTracks();for(const A of t)this.browser.getFrameTrack(A,this.activeFrameId).suspendRendering()}const t=this.lastPointerX-A.clientX;this.lastPointerX=A.clientX;const C=this.activeFrameId,e=this.browser.getFrameViewportWidth(C);if(0===e)return;const B=this.browser.getFrameLocus(C),i=t*((B.end-B.start)/e),Q=this.browser.clampLocus({chr:B.chr,start:B.start+i,end:B.end+i});this.browser.setFrameLocusDirect(C,Q),this.browser.shiftCanvases(C,Q),this.browser.emitLocusChange(Q,C)},this.handlePointerUp=A=>{if(this.browser.isOverlayTarget(A))return;if(this.isSweeping&&this.sweepOverlay&&this.sweepRulerCanvas&&this.activeFrameId){const A=parseFloat(this.sweepOverlay.style.left),I=parseFloat(this.sweepOverlay.style.width),g=this.activeFrameId;if(this.removeSweepOverlay(),this.isSweeping=!1,I>3){const t=this.browser.getFrameViewportWidth(g);if(t>0){this.browser.snapshotForUndo("navigation");const C=this.browser.getFrameLocus(g),e=(C.end-C.start)/t,B=Math.max(0,A-this.sweepColumnLeft),i=C.start+B*e,Q=C.start+(B+I)*e;this.browser.setFrameLocus(g,{chr:C.chr,start:Math.round(i),end:Math.round(Q)})}}return void(this.activeFrameId=null)}const I=this.isDragging,g=this.activeFrameId;this.isDragging=!1,this.container.style.cursor="grab",this.browser.setFeatureOverlaysSuppressed(!1);const t=null!=g?g:this.browser.getFrameIdForX(A.clientX);if(I){const A=this.browser.getFrameLocus(t),I=this.browser.getManagedTracks();for(const A of I){const I=this.browser.getFrameTrack(A,t);I.discardPendingRender(),I.resumeRendering()}for(const g of I){this.browser.getFrameTrack(g,t).setLocus(A)}this.browser.loadAllTracksIfNeeded(),this.browser.updateAllAxes(),this.browser.updateAllFeatureOverlays(),this.browser.setFeatureOverlaysVisible(!0)}else this.browser.setFeatureOverlaysVisible(!0);const C=this.browser.getFrameLocus(t);I&&this._preNavLocus&&(this._preNavLocus.start!==C.start||this._preNavLocus.end!==C.end)&&this.browser.snapshotForUndo("navigation"),this._preNavLocus=null,this.activeFrameId=null;const e=A.clientX-this.pointerDownX,B=A.clientY-this.pointerDownY;(!I||e*e+B*B<9)&&this.handleClick(A)},this.container.addEventListener("pointerdown",this.handlePointerDown),this.container.addEventListener("pointermove",this.handlePointerMove),this.container.addEventListener("pointerup",this.handlePointerUp),this.container.addEventListener("pointercancel",this.handlePointerUp)}handleClick(A){var I,g,t;const C=this.browser.findTrackForTarget(this.pointerDownTarget);if(!C)return;const e=null!==(I=this.activeFrameId)&&void 0!==I?I:this.browser.getFrameIdForX(A.clientX),B=this.pointerDownTarget,i=null!==(g=B.parentElement)&&void 0!==g?g:B,Q=i.getBoundingClientRect(),o={x:A.clientX-Q.left,y:A.clientY-Q.top},s=this.browser.getFrameLocus(e);if(h(s)&&"ruler"===C.type){const A=this.browser.getCumulativeOffsets(),I=this.browser.getChromSizes();if(A&&I){const g=i.clientWidth;if(g>0){const t=(s.end-s.start)/g,C=s.start+o.x*t,{chr:B}=function(A,I){for(let g=I.chromosomeNames.length-1;g>=0;g--){const t=I.chromosomeNames[g],C=I.offsets[t];if(A>=C)return{chr:t,position:A-C}}return{chr:I.chromosomeNames[0],position:Math.max(0,A)}}(C,A),i=I[B];null!=i&&this.browser.setFrameLocus(e,{chr:B,start:0,end:i})}}return}if(null===(t=C.onCanvasClick)||void 0===t?void 0:t.call(C,o.x,o.y))return void this.browser.hidePopup();const E=Date.now(),a=E-this.lastClickTime<500&&Math.abs(A.clientX-this.lastClickX)<6&&Math.abs(A.clientY-this.lastClickY)<6;if(this.lastClickTime=E,this.lastClickX=A.clientX,this.lastClickY=A.clientY,a){if(null!==this.singleClickTimer&&(clearTimeout(this.singleClickTimer),this.singleClickTimer=null),this.lastClickTime=0,!h(s)){const I=i.clientWidth;if(I>0){const g=(s.end-s.start)/I,t=s.start+o.x*g,C=A.shiftKey?2:.5;this.browser.zoomFrameAroundCenter(e,C,t)}}return}this.singleClickTimer=setTimeout(()=>{var A;this.singleClickTimer=null;const I=this.browser.resolveInteraction(C,o.x,o.y);if(I){if(this.browser.emitTrackClick(I),I.popupData.length>0){const g=this.container.getBoundingClientRect(),t=(null!==(A=C.canvas.parentElement)&&void 0!==A?A:C.canvas).getBoundingClientRect();this.browser.showPopup(I.popupData,{x:t.left-g.left+o.x,y:t.top-g.top+o.y})}}else this.browser.hidePopup()},500)}teardownDragHandlers(){this.handlePointerDown&&this.container.removeEventListener("pointerdown",this.handlePointerDown),this.handlePointerMove&&this.container.removeEventListener("pointermove",this.handlePointerMove),this.handlePointerUp&&(this.container.removeEventListener("pointerup",this.handlePointerUp),this.container.removeEventListener("pointercancel",this.handlePointerUp))}setupHoverHandlers(){this.handleMouseMove=A=>{var I;if(this.isDragging||this.isSweeping)return;if(null!==this.hoverThrottleId)return;this.hoverThrottleId=setTimeout(()=>{this.hoverThrottleId=null},100);const g=this.browser.findTrackForTarget(A.target);if(!g)return;if(!(A.target instanceof HTMLCanvasElement))return;const t=(null!==(I=A.target.parentElement)&&void 0!==I?I:A.target).getBoundingClientRect(),C={x:A.clientX-t.left,y:A.clientY-t.top},e=this.browser.resolveInteraction(g,C.x,C.y);e&&this.browser.emitTrackHover(e)},this.handleMouseLeave=A=>{null!==this.hoverThrottleId&&(clearTimeout(this.hoverThrottleId),this.hoverThrottleId=null)},this.container.addEventListener("mousemove",this.handleMouseMove),this.container.addEventListener("mouseleave",this.handleMouseLeave)}teardownHoverHandlers(){this.handleMouseMove&&this.container.removeEventListener("mousemove",this.handleMouseMove),this.handleMouseLeave&&this.container.removeEventListener("mouseleave",this.handleMouseLeave),null!==this.hoverThrottleId&&(clearTimeout(this.hoverThrottleId),this.hoverThrottleId=null)}setupWheelHandler(){this.handleWheel=A=>{var I;if(!A.ctrlKey)return;A.preventDefault();const g=this.browser.getFrameIdForX(A.clientX),t=this.browser.getFrameLocus(g);if(h(t))return;if(null!==this.wheelRafId)return;null===this._preNavLocus&&(this._preNavLocus={...t},setTimeout(()=>{const A=this.browser.getFrameLocus(g);!this._preNavLocus||this._preNavLocus.start===A.start&&this._preNavLocus.end===A.end||this.browser.snapshotForUndo("navigation"),this._preNavLocus=null},300));const C=1+.01*Math.max(-50,Math.min(50,A.deltaY)),e=this.browser.getFrameViewportWidth(g);if(e<=0)return;const B=A.target instanceof HTMLCanvasElement?A.target:null,i=null!==(I=null==B?void 0:B.parentElement)&&void 0!==I?I:B,Q=i?A.clientX-i.getBoundingClientRect().left:e/2,o=(t.end-t.start)/e,s=t.start+Q*o;this.wheelRafId=requestAnimationFrame(()=>{this.wheelRafId=null,this.browser.zoomFrameAroundCenter(g,C,s)})},this.container.addEventListener("wheel",this.handleWheel,{passive:!1})}teardownWheelHandler(){null!==this.wheelRafId&&(cancelAnimationFrame(this.wheelRafId),this.wheelRafId=null),this.handleWheel&&(this.container.removeEventListener("wheel",this.handleWheel),this.handleWheel=null)}getTrackRow(A){const I=this.browser.getTrackAxisDiv(A);return null==I?void 0:I.parentElement}}class fQ{constructor(A,I,g){this.overlayContainer=null,this.roiElements=new Map,this.container=A,this.axisColumnWidth=I,this.callbacks=g}renderMultiFrame(A,I,g){const t=[];let C=0;for(const e of A){const B=I(e.locus);if(e.viewportWidth>0){const A=(e.locus.end-e.locus.start)/e.viewportWidth;for(const I of B){const g=Math.round((I.start-e.locus.start)/A),B=Math.max(3,Math.round((I.end-I.start)/A)),i=Math.max(0,g),Q=Math.min(B,e.viewportWidth-i);Q>0&&t.push({roi:I,x:C+i,w:Q,key:`${e.id}:${I.id}`})}}C+=e.viewportWidth+(e!==A[A.length-1]?g:0)}this.renderPrecomputed(t)}renderPrecomputed(A){var I,g;if(0===A.length&&0===this.roiElements.size)return;const t=this.ensureContainer(),C=new Set;for(const{roi:e,x:B,w:i,key:Q}of A){C.add(Q);let A=this.roiElements.get(Q);A||(A=this.createElement(e),t.appendChild(A),this.roiElements.set(Q,A)),A.style.left=`${B}px`,A.style.width=`${i}px`;const o=null!==(I=e.color)&&void 0!==I?I:"rgba(68, 134, 247, 0.15)";A.style.backgroundColor=o;const s=o.replace(/[\d.]+\)$/,A=>`${Math.min(1,3*parseFloat(A))})`);A.style.borderLeftColor=s,A.style.borderRightColor=s;const E=A.firstElementChild;if(E){const A=o.replace(/[\d.]+\)$/,A=>`${Math.min(1,4*parseFloat(A))})`);E.style.backgroundColor=A}const a=A.querySelector(".loom-roi-label");a&&(a.textContent=null!==(g=e.name)&&void 0!==g?g:"",a.style.display=e.name&&i>20?"block":"none"),A._roiId=e.id}for(const[A,I]of this.roiElements)C.has(A)||(I.remove(),this.roiElements.delete(A))}render(A,I,g){var t,C;if(0===A.length&&0===this.roiElements.size)return;const e=this.ensureContainer();if(g<=0)return;const B=(I.end-I.start)/g,i=new Set;for(const g of A){i.add(g.id);const A=Math.round((g.start-I.start)/B),Q=Math.max(3,Math.round((g.end-g.start)/B));let o=this.roiElements.get(g.id);o||(o=this.createElement(g),e.appendChild(o),this.roiElements.set(g.id,o)),o.style.left=`${A}px`,o.style.width=`${Q}px`;const s=null!==(t=g.color)&&void 0!==t?t:"rgba(68, 134, 247, 0.15)";o.style.backgroundColor=s;const E=s.replace(/[\d.]+\)$/,A=>`${Math.min(1,3*parseFloat(A))})`);o.style.borderLeftColor=E,o.style.borderRightColor=E;const a=o.firstElementChild;if(a){const A=s.replace(/[\d.]+\)$/,A=>`${Math.min(1,4*parseFloat(A))})`);a.style.backgroundColor=A}const r=o.querySelector(".loom-roi-label");r&&(r.textContent=null!==(C=g.name)&&void 0!==C?C:"",r.style.display=g.name&&Q>20?"block":"none"),o._roiId=g.id}for(const[A,I]of this.roiElements)i.has(A)||(I.remove(),this.roiElements.delete(A))}clear(){for(const A of this.roiElements.values())A.remove();this.roiElements.clear(),this.overlayContainer&&(this.overlayContainer.remove(),this.overlayContainer=null)}dispose(){this.clear()}ensureContainer(){if(!this.overlayContainer){const A=document.createElement("div");A.style.cssText=`\n position: absolute;\n top: 0;\n left: ${this.axisColumnWidth}px;\n right: 0;\n bottom: 0;\n pointer-events: none;\n z-index: 10;\n overflow: hidden;\n `;"static"===getComputedStyle(this.container).position&&(this.container.style.position="relative"),this.container.appendChild(A),this.overlayContainer=A}return this.overlayContainer}createElement(A){var I;const g=document.createElement("div");g.className="loom-roi-region",g.style.cssText="\n position: absolute;\n top: 0;\n bottom: 0;\n border-left: 1px solid transparent;\n border-right: 1px solid transparent;\n box-sizing: border-box;\n pointer-events: auto;\n cursor: pointer;\n transition: opacity 0.15s ease;\n ";const t=document.createElement("div");t.className="loom-roi-header",t.style.cssText="\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: 4px;\n border-radius: 2px 2px 0 0;\n ",g.appendChild(t);const C=document.createElement("div");return C.className="loom-roi-label",C.style.cssText="\n position: absolute;\n top: 5px;\n left: 3px;\n right: 3px;\n font: 9px sans-serif;\n color: rgba(0, 0, 0, 0.7);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n pointer-events: none;\n ",C.textContent=null!==(I=A.name)&&void 0!==I?I:"",g.appendChild(C),g.addEventListener("mouseenter",()=>{g.style.opacity="1.3"}),g.addEventListener("mouseleave",()=>{g.style.opacity=""}),g.addEventListener("click",A=>{A.stopPropagation();const I=g._roiId;this.callbacks.onROIClick(I,A)}),g.addEventListener("contextmenu",A=>{A.preventDefault(),A.stopPropagation();const I=g._roiId;this.callbacks.onROIContextMenu(I,A)}),g}}class SQ{constructor(A,I,g,t,C){this.handleContextMenu=null,this.inputDialog=null,this.container=A,this.axisColumnWidth=I,this.contextMenuProvider=g,this.popupProvider=t,this.callbacks=C}setup(){this.handleContextMenu=A=>{var I,g,t,C,e;A.preventDefault();const B=this.callbacks.findTrackForTarget(A.target);if(!B)return;const i=null!==(I=B.canvas.parentElement)&&void 0!==I?I:B.canvas,Q=i.getBoundingClientRect(),o=A.clientX-Q.left,s=A.clientY-Q.top,E=null!==(t=null===(g=B.getContextMenuItems)||void 0===g?void 0:g.call(B,o,s))&&void 0!==t?t:[],a=(A,I)=>this.ensureInputDialog().then(g=>g.prompt(A,I)),r=function(A,I){return[{label:"Set track height",action:async()=>{const g=await I.promptInput("Track height (px)",A.height);if(null!==g){const t=parseInt(g,10);t>0&&!isNaN(t)&&I.setTrackHeight(A,t)}}},{label:"Remove track",action:()=>I.removeTrack(A)}]}(B,{setTrackHeight:(A,I)=>{A instanceof oC?A.setFixedHeight(I):A instanceof xt&&A.setConfig({height:I})},removeTrack:A=>this.callbacks.removeTrack(A),promptInput:a}),n=A=>{const I=A.action?{...A,action:()=>{A.action(),this.callbacks.onAxisUpdate(B)}}:{...A};return I.children&&(I.children=I.children.map(n)),I},h=null===(C=B.getNumericState)||void 0===C?void 0:C.call(B),c=h?function(A,I){const g=[];return g.push({label:"Set data range",action:async()=>{const g=await I("Minimum",A.dataRange.min);if(null===g)return;const t=await I("Maximum",A.dataRange.max);if(null===t)return;const C=parseFloat(g),e=parseFloat(t);!isNaN(C)&&!isNaN(e)&&C<e&&A.setDataRange(C,e)}}),void 0!==A.logScale&&A.setLogScale&&g.push({label:"Log scale",type:"checkbox",checked:A.logScale,action:()=>A.setLogScale(!A.logScale)}),g.push({label:"Autoscale",type:"checkbox",checked:A.autoscale,action:()=>A.setAutoscale(!A.autoscale)}),g}(h,a):[],l=[];(E.length>0||c.length>0)&&(l.push(...E.map(n)),c.length>0&&(E.length>0&&l.push({label:"",type:"separator"}),l.push(...c.map(n))),l.push({label:"",type:"separator"})),l.push(...r.map(n));const d=this.callbacks.getLocus(),D=i.clientWidth,u=D>0?(d.end-d.start)/D:0,y=d.start+o*u,w=B.hitTest(o,s),f={track:B,genomicLocation:y,features:w.map(A=>A.feature),trackItems:E,commonItems:r,x:o,y:s};if(this.callbacks.emitTrackContextMenu(f),this.contextMenuProvider){null===(e=this.popupProvider)||void 0===e||e.hide();const A=this.container.getBoundingClientRect(),I=i.getBoundingClientRect();this.contextMenuProvider.show(l,{x:I.left-A.left+o,y:I.top-A.top+s},this.container)}},this.container.addEventListener("contextmenu",this.handleContextMenu)}showROIContextMenu(A,I){var g;if(!this.contextMenuProvider)return;const t=this.container.getBoundingClientRect(),C=this.callbacks.getViewportWidth(),e=this.callbacks.getLocus(),B=C>0?(e.end-e.start)/C:0,i=I.clientX-t.left-this.axisColumnWidth,Q=e.start+i*B;this.callbacks.emitROIContextMenu({roi:A,genomicLocation:Q,x:I.clientX-t.left,y:I.clientY-t.top});const o=function(A,I){return[{label:"Edit name...",action:async()=>{var g;const t=await I.promptInput("ROI name",null!==(g=A.name)&&void 0!==g?g:"");null!==t&&I.updateROI(A.id,{name:t})}},{label:"Edit description...",action:async()=>{var g;const t=await I.promptInput("Description",null!==(g=A.description)&&void 0!==g?g:"");null!==t&&I.updateROI(A.id,{description:t})}},{label:"Set color...",action:async()=>{var g;const t=await I.promptInput("Color (CSS)",null!==(g=A.color)&&void 0!==g?g:"rgba(68, 134, 247, 0.15)");null!==t&&I.updateROI(A.id,{color:t})}},{label:"",type:"separator"},{label:"Go to region",action:()=>I.goToRegion({chr:A.chr,start:A.start,end:A.end})},{label:"Remove",action:()=>I.removeROI(A.id)}]}(A,{goToRegion:A=>this.callbacks.setLocus(A),updateROI:(A,I)=>this.callbacks.updateROI(A,I),removeROI:A=>this.callbacks.removeROI(A),promptInput:(A,I)=>this.ensureInputDialog().then(g=>g.prompt(A,I))});null===(g=this.popupProvider)||void 0===g||g.hide(),this.contextMenuProvider.show(o,{x:I.clientX-t.left,y:I.clientY-t.top},this.container)}dispose(){this.handleContextMenu&&(this.container.removeEventListener("contextmenu",this.handleContextMenu),this.handleContextMenu=null),this.inputDialog&&(this.inputDialog.remove(),this.inputDialog=null)}async ensureInputDialog(){if(!this.inputDialog){customElements.get("loom-input-dialog")||await Promise.resolve().then(function(){return uo});const A=document.createElement("loom-input-dialog");"static"===getComputedStyle(this.container).position&&(this.container.style.position="relative"),this.container.appendChild(A),this.inputDialog=A}return this.inputDialog}}function kQ(A,I){const g=document.createElement("a");g.download=A,g.href=I,document.body.appendChild(g),g.click(),document.body.removeChild(g)}const GQ=50,FQ=new WeakSet;class NQ extends oQ{constructor(A,I){var g,t,C,e;const B=null===I.contextMenuProvider?void 0:null!==(g=I.contextMenuProvider)&&void 0!==g?g:function(){customElements.get("loom-context-menu")||Promise.resolve().then(function(){return wo});let A=null;return{show(I,g,t){A||(A=document.createElement("loom-context-menu"),"static"===getComputedStyle(t).position&&(t.style.position="relative"),t.appendChild(A)),A.setItems(I),A.showAt(g.x,g.y)},hide(){A&&A.hide()},dispose(){A&&(A.remove(),A=null)}}}(),i=null===I.popupProvider?void 0:null!==(t=I.popupProvider)&&void 0!==t?t:function(){customElements.get("loom-popup")||Promise.resolve().then(function(){return ko});let A=null;return{show(I,g,t){A||(A=document.createElement("loom-popup"),"static"===getComputedStyle(t).position&&(t.style.position="relative"),t.appendChild(A)),A.setData(I),A.showAt(g.x,g.y)},hide(){A&&A.hide()},dispose(){A&&(A.remove(),A=null)}}}();let Q=I.workerProvider,o=null;if(!Q&&(I.workers||I.workerFactory)){const A="number"==typeof I.workers?I.workers:Math.min(null!==(C=null===navigator||void 0===navigator?void 0:navigator.hardwareConcurrency)&&void 0!==C?C:4,4);try{o=new aQ({workerFactory:I.workerFactory,workerUrl:I.workerFactory?void 0:new URL("./loom-worker.js",import.meta.url),poolSize:A}),Q=o}catch(A){P.warn("Failed to create web workers, falling back to main-thread execution")}}super({...I,workerProvider:Q,contextMenuProvider:B,popupProvider:i,viewportWidth:A.clientWidth}),this.resizeObserver=null,this.trackRows=new Map,this.remoteConnection=null,this.featureOverlays=new Map,this.uiLayers=new Map,this.ownedWorkerProvider=null,this.handleKeyDown=null,this.handleDocMouseDown=null,this._pendingPostAddLoad=!1,this.pointerManager=null,this.contextMenuManager=null,this.ownedWorkerProvider=o,this.container=A,this.interactive=null===(e=I.interactive)||void 0===e||e,function(A){const I=A.getRootNode();if(FQ.has(I))return;FQ.add(I);const g=document.createElement("style");g.textContent="\n .loom-track-scroll { scrollbar-width: none; }\n .loom-track-scroll::-webkit-scrollbar { display: none; }\n .loom-feature-overlay rect {\n fill: transparent;\n pointer-events: auto;\n cursor: pointer;\n }\n ",I instanceof Document?I.head.appendChild(g):I.appendChild(g)}(A),A.style.userSelect="none",A.style.touchAction="none";const s={onROIClick:(A,I)=>{const g=this.getROIs().find(I=>I.id===A);if(g){const A=this.container.getBoundingClientRect(),t=I.clientX-A.left-GQ,C=this._frames[0].locus.start+t*this._frames[0].bpPerPixel;this.events.emit(eQ.ROIClick,{roi:g,genomicLocation:C,x:I.clientX-A.left,y:I.clientY-A.top})}},onROIContextMenu:(A,I)=>{var g;const t=this.getROIs().find(I=>I.id===A);t&&(null===(g=this.contextMenuManager)||void 0===g||g.showROIContextMenu(t,I))}};if(this.roiOverlayManager=new fQ(A,GQ,s),this.interactive){A.style.cursor=h(I.locus)?"default":"grab";const g={getLocus:()=>this._frames[0].locus,setLocusDirect:A=>{this._frames[0].locus=A,n(this._frames[0])},clampLocus:A=>this.clamp(A),setLocus:A=>this.setLocus(A),getViewportWidth:()=>this._frames[0].viewportWidth,getFrameIdForX:A=>this._getFrameIdForX(A),getFrameLocus:A=>this._getFrame(A).locus,setFrameLocusDirect:(A,I)=>{const g=this.getFrame(A);g&&(g.locus=I,n(g))},getFrameViewportWidth:A=>this._getFrame(A).viewportWidth,setFrameLocus:(A,I)=>this.setFrameLocus(A,I),zoomFrameAroundCenter:(A,I,g)=>{this.zoomAroundCenter(I,g,A)},getFrameCount:()=>this._frames.length,getFrameTrack:(A,I)=>this.getTrackForFrame(A,I),getManagedTracks:()=>this.managedTracks,loadAllTracksIfNeeded:()=>this.loadAllTracksIfNeeded(),updateAllAxes:()=>{for(const A of this.managedTracks)this.updateAxisContent(A.track)},zoomAroundCenter:(A,I)=>this.zoomAroundCenter(A,I),resolveInteraction:(A,I,g)=>this.resolveInteraction(A,I,g),findTrackForTarget:A=>this.findTrackForTarget(A),isRulerCanvas:A=>this.isRulerCanvas(A),showPopup:(A,I)=>{this.popupProvider&&this.popupProvider.show(A,I,this.container)},hidePopup:()=>{var A;null===(A=this.popupProvider)||void 0===A||A.hide()},hideContextMenu:()=>{var A;null===(A=this.contextMenuProvider)||void 0===A||A.hide()},isOverlayTarget:A=>this.isOverlayTarget(A),setFeatureOverlaysSuppressed:(A,I)=>{for(const[g,t]of this.featureOverlays)(void 0===I||this._trackBelongsToFrame(g,I))&&t.setSuppressed(A)},setFeatureOverlaysVisible:(A,I)=>{for(const[g,t]of this.featureOverlays)(void 0===I||this._trackBelongsToFrame(g,I))&&t.setVisible(A)},updateAllFeatureOverlays:()=>{this.updateFeatureOverlays()},shiftCanvases:(A,I)=>{for(const g of this.managedTracks){if("ideogram"===g.track.type)continue;const t=this.getTrackForFrame(g,A),C=t.computePixelShift(I);null!==C&&t.applyPixelShift(C)}},emitLocusChange:(A,I)=>{const g=I?this._frames.find(A=>A.id===I):this._frames[0];this.events.emit(eQ.LocusChange,{frames:g?[g]:[this._frames[0]],sourceFrameId:null!=I?I:this._frames[0].id,locus:A})},emitTrackClick:A=>this.events.emit(eQ.TrackClick,A),emitTrackHover:A=>this.events.emit(eQ.TrackHover,A),emitTrackOrderChanged:A=>this.events.emit(eQ.TrackOrderChanged,{tracks:A}),snapshotForUndo:A=>this._snapshotForUndo(A),getCumulativeOffsets:()=>this.cumulativeOffsets,getChromSizes:()=>this.chromSizes,getTrackAxisDiv:A=>{var I;return null===(I=this.trackRows.get(A))||void 0===I?void 0:I.axisDiv},moveTrackInArray:(A,I)=>{const[g]=this.managedTracks.splice(A,1);this.managedTracks.splice(I,0,g)},syncDOMOrder:()=>this.syncDOMOrder(),finalizeReorder:()=>{this._assignOrderFromPosition(),this.events.emit(eQ.TrackOrderChanged,{tracks:this.managedTracks.map(A=>A.track)})}};this.pointerManager=new wQ(A,g,GQ,{wheelZoom:I.wheelZoom}),this.pointerManager.setup(),this.contextMenuManager=new SQ(A,GQ,B,i,{findTrackForTarget:A=>this.findTrackForTarget(A),getLocus:()=>this._frames[0].locus,getViewportWidth:()=>this._frames[0].viewportWidth,removeTrack:A=>this.removeTrack(A),onAxisUpdate:A=>this.updateAxisContent(A),updateROI:(A,I)=>this.updateROI(A,I),removeROI:A=>this.removeROI(A),setLocus:A=>this.setLocus(A),emitTrackContextMenu:A=>this.events.emit(eQ.TrackContextMenu,A),emitROIContextMenu:A=>this.events.emit(eQ.ROIContextMenu,A)}),this.contextMenuManager.setup(),(this.popupProvider||this.contextMenuProvider)&&(this.handleDocMouseDown=A=>{var I,g;this.container.contains(A.target)||(null===(I=this.popupProvider)||void 0===I||I.hide(),null===(g=this.contextMenuProvider)||void 0===g||g.hide())},document.addEventListener("mousedown",this.handleDocMouseDown))}this.resizeObserver=new ResizeObserver(()=>{const A=this._frames[0].viewportWidth;this.render(),0===A&&this._frames[0].viewportWidth>0&&!this._pendingPostAddLoad&&this.loadAllTracksIfNeeded()}),this.resizeObserver.observe(A),this.events.on(eQ.DataLoaded,({track:A})=>{this._frames.length>1&&this.render();const I=this.resolvePrimaryTrack(A);this.updateAxisContent(I),this.updateFeatureOverlay(A),this.updateUILayer(A)}),this.events.on(eQ.ThemeChanged,()=>{for(const A of this.managedTracks){this.updateAxisContent(A.track),this.syncViewportWrapperBackground(A.track),this.updateUILayer(A.track);for(const I of A.frameInstances.values())this.updateUILayer(I)}}),this.events.on(eQ.ROIAdded,()=>this.renderROIOverlays()),this.events.on(eQ.ROIRemoved,()=>this.renderROIOverlays()),this.events.on(eQ.ROIChanged,()=>this.renderROIOverlays()),this.events.on(eQ.LocusChange,()=>this.renderROIOverlays()),this.setupUndoKeyboardHandler()}_trackBelongsToFrame(A,I){for(const g of this.managedTracks){if(this.getTrackForFrame(g,I)===A)return!0}return!1}_getFrame(A){var I;return null!==(I=this._frames.find(I=>I.id===A))&&void 0!==I?I:this._frames[0]}_makeFeatureClickHandler(A){return(I,g)=>{const t=I.x+I.width/2,C=I.y+I.height/2,e=this.resolveInteraction(A,t,C);if(e&&(this.events.emit(eQ.TrackClick,e),this.popupProvider&&e.popupData.length>0)){const A=this.container.getBoundingClientRect();this.popupProvider.show(e.popupData,{x:g.clientX-A.left,y:g.clientY-A.top},this.container)}}}_buildTrackRow(A,I){const g=document.createElement("div");g.style.display="flex",g.style.width="100%",g.style.alignItems="stretch",g.style.contain="layout paint","ideogram"===A.type&&(g.style.paddingTop="8px",g.style.paddingBottom="8px");const t=document.createElement("div");t.style.width="50px",t.style.flexShrink="0",t.style.overflow="hidden",t.style.position="relative",t.style.borderRight="1px solid #ddd",t.style.boxSizing="border-box";const C=document.createElement("div");C.style.display="flex",C.style.flex="1",C.style.minWidth="0",g.appendChild(t),g.appendChild(C);const e=new Map,B=this._frames[0],i=this._buildColumn(A,I);i.column.dataset.frameId=B.id,C.appendChild(i.column),e.set(B.id,i);for(let g=1;g<this._frames.length;g++){const t=this._frames[g],B=this.managedTracks.find(I=>I.track===A),i=null==B?void 0:B.frameInstances.get(t.id);if(i){C.appendChild(this._buildColumnShim());const A=this._buildColumn(i,I);A.column.dataset.frameId=t.id,C.appendChild(A.column),e.set(t.id,A)}}return{row:g,axisDiv:t,axisCanvas:null,columnsContainer:C,columnViewports:e}}_buildColumn(A,I){var g;const t=A.canvas;t.style.display="block",t.style.width="100%";const C=document.createElement("div");C.style.flex="1",C.style.minWidth="0",C.classList.add("loom-viewport-column");const e=document.createElement("div");if(e.style.width="100%",e.style.overflow="hidden",e.style.position="relative",A instanceof xt){const I=null===(g=A.config)||void 0===g?void 0:g.background;"string"==typeof I&&(e.style.backgroundColor=I)}let B;null!=I&&(e.style.maxHeight=`${I}px`,e.style.overflowY="auto",e.style.overscrollBehaviorY="none",e.classList.add("loom-track-scroll")),A instanceof xt&&A.setExternalUIEnabled(!0),e.appendChild(t),C.appendChild(e),this.interactive&&(B=new uQ(e),B.onFeatureClick=this._makeFeatureClickHandler(A),this.featureOverlays.set(A,B));const i=new yQ(e,I=>{var g;null===(g=A.onUIOverlayClick)||void 0===g||g.call(A,I);const t=this.resolvePrimaryTrack(A);this.updateAxisContent(t),this.updateUILayer(A)});return this.uiLayers.set(A,i),{column:C,viewportWrapper:e,track:A,featureOverlay:B,uiLayer:i}}_buildColumnShim(){const A=document.createElement("div");return A.style.width="3px",A.style.flexShrink="0",A.style.backgroundColor="#ccc",A.classList.add("loom-column-shim"),A}_populateFrameColumns(A,I){const g=this.trackRows.get(A);if(!g||this._frames.length<=1)return;const t=this.managedTracks.find(I=>I.track===A);if(t)for(let A=1;A<this._frames.length;A++){const C=this._frames[A];if(g.columnViewports.has(C.id))continue;const e=t.frameInstances.get(C.id);if(!e)continue;g.columnsContainer.appendChild(this._buildColumnShim());const B=this._buildColumn(e,I);B.column.dataset.frameId=C.id,g.columnsContainer.appendChild(B.column),g.columnViewports.set(C.id,B)}}_setupTrackRowUI(A){"wig"===A.type&&A.setConfig({showDataRange:!1}),this.updateAxisContent(A),this.interactive&&"ruler"===A.type&&(A.canvas.style.cursor=h(this._frames[0].locus)?"pointer":"crosshair");const I=this.trackRows.get(A);this.interactive&&"ruler"!==A.type&&"ideogram"!==A.type&&I&&this.pointerManager&&this.pointerManager.setupReorderForTrack(A,I.axisDiv)}addTrack(A,I,g,t,C){const e=this._buildTrackRow(A,t);this.container.appendChild(e.row),this.trackRows.set(A,e),this._suppressImmediateLoad=!0;const B=super.addTrack(A,I,g,t,C);if(this._suppressImmediateLoad=!1,this._populateFrameColumns(A,t),this.interactive&&"ideogram"!==A.type){A.setOverscanMultiplier(3);const I=this.managedTracks.find(I=>I.track===A);if(I)for(const A of I.frameInstances.values())A.setOverscanMultiplier(3)}return this._setupTrackRowUI(A),this._pendingPostAddLoad||(this._pendingPostAddLoad=!0,requestAnimationFrame(()=>{this._pendingPostAddLoad=!1,this.resizeObserver&&(this.render(),this.loadAllTracksIfNeeded())})),B}removeTrack(A){var I,g,t;const C="string"==typeof A?this.getTrack(A):A;if(!C)return;null===(I=this.pointerManager)||void 0===I||I.teardownReorderForTrack(C);const e=this.trackRows.get(C);if(e)for(const A of e.columnViewports.values())null===(g=this.featureOverlays.get(A.track))||void 0===g||g.dispose(),this.featureOverlays.delete(A.track),null===(t=this.uiLayers.get(A.track))||void 0===t||t.dispose(),this.uiLayers.delete(A.track);e&&e.row.parentNode===this.container&&this.container.removeChild(e.row),this.trackRows.delete(C),super.removeTrack(A)}moveTrack(A,I){super.moveTrack(A,I),this.syncDOMOrder()}addFrame(A,I){const g=super.addFrame(A,I);for(const A of this.managedTracks){const I=this.trackRows.get(A.track);if(!I)continue;const t=A.frameInstances.get(g.id);if(!t)continue;I.columnsContainer.appendChild(this._buildColumnShim());const C=this._buildColumn(t,A.maxTrackHeight);C.column.dataset.frameId=g.id,I.columnsContainer.appendChild(C.column),I.columnViewports.set(g.id,C)}return this.render(),this.loadAllTracksIfNeeded(),g}removeFrame(A){var I,g,t,C;if(A===this._frames[0].id&&this._frames.length>1){const t=this._frames[1];for(const C of this.managedTracks){const e=this.trackRows.get(C.track);if(!e)continue;const B=e.columnViewports.get(A),i=e.columnViewports.get(t.id);if(B&&i){if(i.viewportWrapper.replaceChild(C.track.canvas,i.track.canvas),i.featureOverlay&&(i.featureOverlay.dispose(),this.featureOverlays.delete(i.track)),i.uiLayer&&(i.uiLayer.dispose(),this.uiLayers.delete(i.track)),this.interactive){const A=new uQ(i.viewportWrapper);A.onFeatureClick=this._makeFeatureClickHandler(C.track),this.featureOverlays.set(C.track,A),i.featureOverlay=A}const t=new yQ(i.viewportWrapper,A=>{var I,g;null===(g=(I=C.track).onUIOverlayClick)||void 0===g||g.call(I,A),this.updateAxisContent(C.track),this.updateUILayer(C.track)});this.uiLayers.set(C.track,t),i.uiLayer=t,i.track=C.track;const Q=B.column.nextElementSibling;(null==Q?void 0:Q.classList.contains("loom-column-shim"))&&Q.remove(),null===(I=B.featureOverlay)||void 0===I||I.dispose(),this.featureOverlays.delete(B.track),null===(g=B.uiLayer)||void 0===g||g.dispose(),this.uiLayers.delete(B.track),B.column.remove(),e.columnViewports.delete(A)}}}else for(const I of this.managedTracks){const g=this.trackRows.get(I.track);if(!g)continue;const e=g.columnViewports.get(A);if(e){const I=e.column.previousElementSibling;(null==I?void 0:I.classList.contains("loom-column-shim"))&&I.remove(),null===(t=e.featureOverlay)||void 0===t||t.dispose(),this.featureOverlays.delete(e.track),null===(C=e.uiLayer)||void 0===C||C.dispose(),this.uiLayers.delete(e.track),e.column.remove(),g.columnViewports.delete(A)}}super.removeFrame(A),this.render()}loadSession(A,I){for(const A of this.managedTracks){const I=this.trackRows.get(A.track);I&&I.row.parentNode===this.container&&this.container.removeChild(I.row)}this.trackRows.clear();for(const A of this.uiLayers.values())A.dispose();this.uiLayers.clear(),this.roiOverlayManager.clear(),super.loadSession(A,I)}render(){const A=this.container.clientWidth;if(0===A)return;const I=this._frames.length,g=A-GQ,t=Math.max(0,3*(I-1)),C=Math.floor((g-t)/I);for(const A of this._frames)A.viewportWidth=C,n(A);this.clearCoordinatedDataRanges(),super.render(),I>1&&this.coordinateMultilocusAutoscale();const e=h(this._frames[0].locus);this.interactive&&(this.container.style.cursor=e?"default":"grab");const B=e?"pointer":"crosshair";for(const A of this.managedTracks)if(this.updateAxisContent(A.track),this.interactive&&"ruler"===A.track.type){A.track.canvas.style.cursor=B;for(const I of A.frameInstances.values())"ruler"===I.type&&(I.canvas.style.cursor=B)}this.renderROIOverlays(),this.updateFeatureOverlays(),this.updateUILayers()}setLocus(A){const I=this._frames[0],g=this.clamp(A);let t=this.managedTracks.length>0;const C=[];for(const A of this.managedTracks){const e=this.getTrackForFrame(A,I.id);if(e.needsRepaint(g)){t=!1;break}const B=e.computePixelShift(g);if(null===B){t=!1;break}C.push(B)}if(!t)return void super.setLocus(A);const e=I.locus.chr;I.locus=g,n(I);for(let A=0;A<this.managedTracks.length;A++){const t=this.managedTracks[A],e=this.getTrackForFrame(t,I.id);e.applyPixelShift(C[A]),e.setLocusSilent(g)}g.chr!==e&&this.updateIdeogramCytobands(),this.events.emit(eQ.LocusChange,{frames:[I],sourceFrameId:I.id,locus:g}),this.loadAllTracksIfNeeded()}attachRemote(A){this.remoteConnection&&this.remoteConnection.detach(),this.remoteConnection=new lQ(this,A,{supportsPNG:!0,exportPNG:()=>this.toPNG()})}detachRemote(){this.remoteConnection&&(this.remoteConnection.detach(),this.remoteConnection=null)}syncThemeFromCSS(){const A=function(A,I){const g=W(I),t={...A.palette};for(const[A,I]of Object.entries(g))void 0!==I&&(t[A]=I);return{...A,palette:t}}(this.theme,this.container);this.setTheme(A)}dispose(){var A,I;this.detachRemote(),this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null),null===(A=this.pointerManager)||void 0===A||A.dispose(),this.pointerManager=null,null===(I=this.contextMenuManager)||void 0===I||I.dispose(),this.contextMenuManager=null,this.teardownUndoKeyboardHandler(),this.handleDocMouseDown&&(document.removeEventListener("mousedown",this.handleDocMouseDown),this.handleDocMouseDown=null),this.roiOverlayManager.dispose();for(const A of this.featureOverlays.values())A.dispose();this.featureOverlays.clear();for(const A of this.uiLayers.values())A.dispose();this.uiLayers.clear();for(const A of this.managedTracks){const I=this.trackRows.get(A.track);I&&I.row.parentNode===this.container&&this.container.removeChild(I.row)}this.trackRows.clear(),super.dispose(),this.ownedWorkerProvider&&(this.ownedWorkerProvider.dispose(),this.ownedWorkerProvider=null)}coordinateMultilocusAutoscale(){var A;for(const I of this.managedTracks){if(0===I.frameInstances.size)continue;const g=[I.track,...I.frameInstances.values()],t=[];for(const I of g){const g=null===(A=I.getAxisInfo)||void 0===A?void 0:A.call(I);(null==g?void 0:g.dataRange)&&t.push(g.dataRange)}if(t.length<2)continue;const C={min:Math.min(...t.map(A=>A.min)),max:Math.max(...t.map(A=>A.max))};if(!t.every(A=>A.min===C.min&&A.max===C.max))for(const A of g)this._applyCoordinatedDataRange(A,C)&&A.render()}}clearCoordinatedDataRanges(){for(const A of this.managedTracks){this._applyCoordinatedDataRange(A.track,null);for(const I of A.frameInstances.values())this._applyCoordinatedDataRange(I,null)}}_applyCoordinatedDataRange(A,I){return(A instanceof tC||A instanceof RB)&&(A.setCoordinatedDataRange(I),!0)}resolvePrimaryTrack(A){for(const I of this.managedTracks){if(I.track===A)return A;for(const g of I.frameInstances.values())if(g===A)return I.track}return A}updateAxisContent(A){var I,g;const t=this.trackRows.get(A);if(!t)return;const{axisDiv:C}=t,e=this.managedTracks.find(I=>I.track===A),B=this.getCombinedAxisInfo(A,e);if(!B)return C.innerHTML="",C.style.borderRight="none",C.style.backgroundColor=this.theme.palette.background,void(t.axisCanvas=null);const i={...B,backgroundColor:null!==(I=B.backgroundColor)&&void 0!==I?I:this.theme.palette.background,labelColor:null!==(g=B.labelColor)&&void 0!==g?g:this.theme.palette.foreground},Q=this.theme.palette.muted;C.style.borderRight=`1px solid ${Q}`;const o=null!=(null==e?void 0:e.maxTrackHeight)?Math.min(A.height,e.maxTrackHeight):A.height;this.paintAxisCanvas(t,i,o)}getCombinedAxisInfo(A,I){var g,t;const C=null===(g=A.getAxisInfo)||void 0===g?void 0:g.call(A);if(!I||0===I.frameInstances.size)return C;const e=[];C&&e.push(C);for(const A of I.frameInstances.values()){const I=null===(t=A.getAxisInfo)||void 0===t?void 0:t.call(A);I&&e.push(I)}if(0===e.length)return;const B=null!=C?C:e[0];let i;for(const A of e)A.dataRange&&(i?(i.min=Math.min(i.min,A.dataRange.min),i.max=Math.max(i.max,A.dataRange.max)):i={...A.dataRange});return{...B,dataRange:i}}paintAxisCanvas(A,I,g){const{axisDiv:t}=A,C=g;if(0===C)return;t.style.height=`${C}px`;let e=A.axisCanvas;e||(t.innerHTML="",e=document.createElement("canvas"),e.style.display="block",t.appendChild(e),A.axisCanvas=e);const B=this.canvasProvider.devicePixelRatio;e.width=50*B,e.height=C*B,e.style.width="50px",e.style.height=`${C}px`;const i=e.getContext("2d");i.scale(B,B),Zt(i,I,50,C)}isRulerCanvas(A){return A instanceof HTMLCanvasElement&&this.managedTracks.some(I=>{if("ruler"!==I.track.type)return!1;if(I.track.canvas===A)return!0;for(const g of I.frameInstances.values())if(g.canvas===A)return!0;return!1})}isOverlayTarget(A){return A.composedPath().some(A=>A instanceof HTMLElement&&("LOOM-CONTEXT-MENU"===A.tagName||"LOOM-INPUT-DIALOG"===A.tagName||"LOOM-POPUP"===A.tagName||A.classList.contains("loom-roi-region")||A.classList.contains("loom-track-ui-layer")||A.classList.contains("loom-track-ui-badge")))}_getFrameIdForX(A){if(this._frames.length<=1)return this._frames[0].id;for(const[,I]of this.trackRows){for(const[g,t]of I.columnViewports){const I=t.column.getBoundingClientRect();if(A>=I.left&&A<=I.right)return g}break}return this._frames[0].id}findTrackForTarget(A){if(!(A instanceof Element))return null;if(A instanceof HTMLCanvasElement)for(const I of this.managedTracks){if(I.track.canvas===A)return I.track;for(const g of I.frameInstances.values())if(g.canvas===A)return g}let I=A;for(;I&&I!==this.container;){if(I instanceof HTMLCanvasElement)for(const A of this.managedTracks){if(A.track.canvas===I)return A.track;for(const g of A.frameInstances.values())if(g.canvas===I)return g}I=I.parentElement}for(const[I,g]of this.trackRows)if(g.row.contains(A))return I;return null}onTracksSorted(){this.syncDOMOrder()}syncDOMOrder(){for(const A of this.managedTracks){const I=this.trackRows.get(A.track);I&&this.container.appendChild(I.row)}}setupUndoKeyboardHandler(){this.handleKeyDown=A=>{(A.ctrlKey||A.metaKey)&&("z"!==A.key||A.shiftKey?("z"===A.key&&A.shiftKey||"y"===A.key)&&(A.preventDefault(),this.redo()):(A.preventDefault(),this.undo()))},document.addEventListener("keydown",this.handleKeyDown)}teardownUndoKeyboardHandler(){this.handleKeyDown&&(document.removeEventListener("keydown",this.handleKeyDown),this.handleKeyDown=null)}renderROIOverlays(){this._frames.length<=1?this.roiOverlayManager.render(this.getVisibleROIs(),this._frames[0].locus,this._frames[0].viewportWidth):this.roiOverlayManager.renderMultiFrame(this._frames,A=>this.roiManager.getVisibleROIs(A),3)}updateFeatureOverlays(){for(const A of this.managedTracks){this.updateFeatureOverlay(A.track);for(const I of A.frameInstances.values())this.updateFeatureOverlay(I)}}updateUILayers(){for(const A of this.managedTracks){this.updateUILayer(A.track);for(const I of A.frameInstances.values())this.updateUILayer(I)}}updateFeatureOverlay(A){const I=this.featureOverlays.get(A);I&&A instanceof xt&&I.update(A.getFeatureRects())}updateUILayer(A){var I;const g=this.uiLayers.get(A);g&&g.update(null===(I=A.getUIOverlayState)||void 0===I?void 0:I.call(A),A.height)}syncViewportWrapperBackground(A){var I;const g=this.trackRows.get(A);if(g)for(const A of g.columnViewports.values())if(A.track instanceof xt){const g=null===(I=A.track.config)||void 0===I?void 0:I.background;"string"==typeof g&&(A.viewportWrapper.style.backgroundColor=g)}}toSVG(A){return function(A,I,g,t,C,e,B){var i,Q,o,s,E,a,r;const n=null!==(Q=null!==(i=null==B?void 0:B.width)&&void 0!==i?i:null==B?void 0:B.containerWidth)&&void 0!==Q?Q:0,h=I.length,c=Math.max(0,3*(h-1)),l=n-C,d=Math.floor((l-c)/h);if(d<=0)throw new Error("Cannot export SVG: container too narrow for columns");let D=0;const y=[];for(const I of A){const A=I.track.height||50;y.push(A),D+=A}const w=new R({width:n,height:D,viewbox:{x:0,y:0,width:n,height:D},backdropColor:null!==(o=null==B?void 0:B.backdropColor)&&void 0!==o?o:"white"});let f=0;for(let t=0;t<A.length;t++){const B=A[t],i=y[t],Q=null===(E=(s=B.track).getAxisInfo)||void 0===E?void 0:E.call(s);if(Q){const A={...Q,backgroundColor:null!==(a=Q.backgroundColor)&&void 0!==a?a:g.palette.background,labelColor:null!==(r=Q.labelColor)&&void 0!==r?r:g.palette.foreground},I=`track_${t}_${B.track.type}_axis`;w.saveWithTranslationAndClipRect(I,0,f,C,i,0),A.dataRange&&Zt(w,A,C,i),w.restore()}let o=C;for(let A=0;A<h;A++){const g=e(B,I[A].id),C=`track_${t}_${g.type}_frame_${A}`;w.saveWithTranslationAndClipRect(C,o,f,d,i,0),g.renderToContext&&g.renderToContext(w,d,i),w.restore(),o+=d+(A<h-1?3:0)}f+=i}let S=C;for(let A=0;A<h;A++){const g=I[A],C=t(g.locus);if(C.length>0){const I=(g.locus.end-g.locus.start)/d,t={pixelWidth:d,bpStart:g.locus.start,bpPerPixel:I,viewportWidth:d};w.saveWithTranslationAndClipRect(`roi_overlays_${A}`,S,0,d,D,0),u(w,C,t,{totalHeight:D}),w.restore()}S+=d+(A<h-1?3:0)}return w.setHeight(D),w.getSerializedSvg(!0)}(this.managedTracks,this._frames,this.theme,A=>this.roiManager.getVisibleROIs(A),GQ,(A,I)=>this.getTrackForFrame(A,I),{width:null==A?void 0:A.width,containerWidth:this.container.clientWidth,backdropColor:null==A?void 0:A.backdropColor})}async toPNG(){const A=this.toSVG(),I=this.container.getBoundingClientRect();return function(A,I,g,t){const C=new Blob([A],{type:"image/svg+xml"}),e=URL.createObjectURL(C);return new Promise((A,C)=>{const B=new Image;B.onload=()=>{try{const C=document.createElement("canvas");C.width=I*t,C.height=g*t;const i=C.getContext("2d");i.scale(t,t),i.drawImage(B,0,0),URL.revokeObjectURL(e),A(C.toDataURL("image/png"))}catch(A){URL.revokeObjectURL(e),C(A)}},B.onerror=()=>{URL.revokeObjectURL(e),C(new Error("Failed to load SVG for PNG conversion"))},B.src=e})}(A,I.width,I.height,this.canvasProvider.devicePixelRatio)}saveSVGtoFile(A){const I=this.toSVG(),g=new Blob([I],{type:"application/octet-stream"}),t=URL.createObjectURL(g);kQ(A||"igv.svg",t),URL.revokeObjectURL(t)}async savePNGtoFile(A){kQ(A||"igv.png",await this.toPNG())}}const mQ={palette:{primary:"#4A90D9",secondary:"#D94A7A",accent:"#4A90D9",background:"#ffffff",foreground:"#333333",muted:"#B0B0B0"},fontFamily:"Inter, system-ui, sans-serif",annotation:{utrColor:"#A8C8E8",altUtrColor:"#E8A8BE",borderColor:"rgba(0, 0, 0, 0.15)",borderWidth:.5,borderRadius:3,arrowInExonColor:"rgba(255, 255, 255, 0.7)",labelFont:"italic 10px Inter, system-ui, sans-serif",featureHeight:12,expandedRowHeight:28,margin:8},wig:{overflowColor:"#FF6B6B"},ideogram:{borderColor:"#B0B0B0",font:"10px Inter, system-ui, sans-serif"},sequence:{frameColor1:"hsl(220, 15%, 90%)",frameColor2:"hsl(220, 15%, 95%)",startCodonColor:"hsl(160, 55%, 42%)",stopCodonColor:"hsl(0, 60%, 55%)",useFillText:!0,frameLabelColor:"#444444",codonLabelColor:"#ffffff",frameFont:"600 10px Inter, system-ui, sans-serif",codonBorderRadius:3}},RQ={palette:{primary:"#6CB4EE",secondary:"#EE6C9E",accent:"#6a9fd9",background:"#1a1a2e",foreground:"#e0e0e0",muted:"#555555"},nucleotideColors:{A:"#4ade80",C:"#60a5fa",G:"#facc15",T:"#f87171",N:"#666666"},ideogram:{bandLightColor:"rgb(50, 50, 70)",bandDarkColor:"rgb(200, 200, 220)",centromereColor:"rgb(180, 50, 50)",borderColor:"#555555",viewportIndicatorColor:"#ff6b6b"},annotation:{utrColor:"#3D6B8E",altUtrColor:"#8E3D5E",borderColor:"rgba(255, 255, 255, 0.12)",borderWidth:.5,borderRadius:3,arrowInExonColor:"rgba(0, 0, 0, 0.4)",labelBackground:"#1a1a2e",labelFont:"italic 10px sans-serif",featureHeight:12,expandedRowHeight:28,margin:8},wig:{overflowColor:"#FF6B6B"},sequence:{background:"#1a1a2e",frameColor1:"hsl(230, 15%, 28%)",frameColor2:"hsl(230, 15%, 22%)",startCodonColor:"hsl(160, 50%, 35%)",stopCodonColor:"hsl(0, 55%, 45%)",useFillText:!0,frameLabelColor:"#c8c8c8",codonLabelColor:"#ffffff",frameFont:"600 10px sans-serif",codonBorderRadius:3}};const pQ=`\n${M({navbarBg:"#f3f3f3",navbarHeight:"32px",navbarPadding:"0 8px",font:"12px Arial, sans-serif",fontSmall:"11px Arial, sans-serif",textColor:"#333",textMuted:"#737373",borderStyle:"1px solid #ccc",borderRadius:"4px",buttonBg:"white",buttonHover:"#e8e8e8",buttonBorder:"1px solid #b0b0b0",buttonSize:"24px",inputBg:"white",inputBorder:"1px solid #b0b0b0",inputFocusBorder:"1px solid #4A90D9",inputWidth:"220px",inputHeight:"22px",accent:"#4A90D9",iconColor:"#555",iconSize:"14px",gap:"8px"})}\n`,UQ=`\n${M({navbarBg:"#fafbfc",navbarHeight:"40px",navbarPadding:"0 12px",font:"13px Inter, system-ui, -apple-system, sans-serif",fontSmall:"11px Inter, system-ui, -apple-system, sans-serif",textColor:"#1a1a1a",textMuted:"#6b7280",borderStyle:"1px solid rgba(0, 0, 0, 0.08)",borderRadius:"8px",buttonBg:"white",buttonHover:"#f0f4ff",buttonBorder:"1px solid rgba(0, 0, 0, 0.1)",buttonSize:"28px",inputBg:"white",inputBorder:"1px solid rgba(0, 0, 0, 0.12)",inputFocusBorder:"1px solid #4A90D9",inputWidth:"260px",inputHeight:"28px",accent:"#4A90D9",iconColor:"#6b7280",iconSize:"16px",gap:"10px"})}\n`,MQ=`\n${M({shellBg:"#16162a",navbarBg:"#1a1a2e",navbarHeight:"36px",navbarPadding:"0 10px",font:"12px Arial, sans-serif",fontSmall:"11px Arial, sans-serif",textColor:"#e0e0e0",textMuted:"#888",borderStyle:"1px solid #333",borderRadius:"4px",buttonBg:"#2a2a3e",buttonHover:"#3a3a50",buttonBorder:"1px solid #444",buttonSize:"24px",inputBg:"#2a2a3e",inputBorder:"1px solid #444",inputFocusBorder:"1px solid #6a9fd9",inputWidth:"220px",inputHeight:"22px",accent:"#6a9fd9",iconColor:"#b0b0b0",iconSize:"14px",gap:"8px"})}\n`;const LQ=g(null);function JQ(A){var I,g;if(void 0===A)return{shellTheme:"modern"};if("string"==typeof A)return{shellTheme:A,renderTheme:(g=A,"modern"===g?mQ:"dark"===g?RQ:void 0)};const t=null===(I=A.palette)||void 0===I?void 0:I.background;if(!t)return{shellTheme:"modern",renderTheme:A};const C=document.createElement("canvas").getContext("2d");C.fillStyle=t;const e=C.fillStyle;return{shellTheme:(.299*parseInt(e.slice(1,3),16)+.587*parseInt(e.slice(3,5),16)+.114*parseInt(e.slice(5,7),16))/255<.5?"dark":"modern",renderTheme:A}}const KQ=t(function(g,t){const{defaultLocus:o,locus:s,onLocusChange:E,onFrameChange:a,theme:r,genome:n,interactive:h,wheelZoom:c,workers:l,workerFactory:d,workerProvider:D,popupProvider:u,contextMenuProvider:y,ruler:w,genes:f,sequence:S,session:k,tracks:G,remoteSocket:F,className:N,style:m,children:R}=g,p=C(null),U=C(null),[M,L]=e(null),J=C(!1),K=C(E);K.current=E;const Y=C(a);Y.current=a,B(()=>{var A;const I=p.current;if(!I)return;const g=null!==(A=null!=s?s:o)&&void 0!==A?A:null==k?void 0:k.locus;if(!g)throw new Error("<LoomBrowser> requires a `locus`, `defaultLocus`, or `session` prop");const t={locus:g,interactive:h,wheelZoom:c,workers:l,workerFactory:d,workerProvider:D,popupProvider:u,contextMenuProvider:y},C=JQ(r);void 0!==C.renderTheme?t.theme=C.renderTheme:void 0!==(null==k?void 0:k.theme)&&(t.theme=k.theme),void 0!==n&&(t.genome=n);const e=new NQ(I,t);if(U.current=e,k?e.loadSession(k):(!1!==w&&e.addRuler(),!1!==f&&e.addGeneTrack(),!1!==S&&e.addSequenceTrack()),G)for(const A of G)e.addTrackFromConfig(A);return e.on(eQ.LocusChange,A=>{var I,g;J.current?J.current=!1:(null===(I=K.current)||void 0===I||I.call(K,A.locus),null===(g=Y.current)||void 0===g||g.call(Y,A))}),L(e),()=>{e.dispose(),U.current=null,L(null)}},[]),B(()=>{const A=U.current;if(!A||!s)return;const I=A.locus;I.chr===s.chr&&I.start===s.start&&I.end===s.end||(J.current=!0,A.setLocus(s))},[null==s?void 0:s.chr,null==s?void 0:s.start,null==s?void 0:s.end]),B(()=>{if(!U.current||void 0===r)return;const{renderTheme:A}=JQ(r);A&&U.current.setTheme(A)},[r]),B(()=>{const A=U.current;if(A)return F?(A.attachRemote(F),()=>{A.detachRemote()}):void A.detachRemote()},[F]),i(t,()=>({get browser(){return U.current},async search(A){var I,g;return null!==(g=await(null===(I=U.current)||void 0===I?void 0:I.search(A)))&&void 0!==g&&g},zoomIn(A){var I;null===(I=U.current)||void 0===I||I.zoomIn(A)},zoomOut(A){var I;null===(I=U.current)||void 0===I||I.zoomOut(A)},addTrackFromConfig:A=>U.current.addTrackFromConfig(A),getTrackOrder(){var A,I;return null!==(I=null===(A=U.current)||void 0===A?void 0:A.getTrackOrder())&&void 0!==I?I:[]},getManagedTracks(){var A,I;return null!==(I=null===(A=U.current)||void 0===A?void 0:A.getManagedTracks())&&void 0!==I?I:[]},findTracks(A){var I,g;return null!==(g=null===(I=U.current)||void 0===I?void 0:I.findTracks(A))&&void 0!==g?g:[]},moveTrack(A,I){var g;null===(g=U.current)||void 0===g||g.moveTrack(A,I)},removeTracks(A){var I,g;return null!==(g=null===(I=U.current)||void 0===I?void 0:I.removeTracks(A))&&void 0!==g?g:0},updateTrackMetadata(A,I){var g,t;return null!==(t=null===(g=U.current)||void 0===g?void 0:g.updateTrackMetadata(A,I))&&void 0!==t?t:0},getCachedFeatures(A){var I;return null===(I=U.current)||void 0===I?void 0:I.getCachedFeatures(A)},reloadData(){var A;null===(A=U.current)||void 0===A||A.reloadData()},addROI:(A,I)=>U.current.addROI(A,I),addROISet:A=>U.current.addROISet(A),removeROISet(A){var I,g;return null!==(g=null===(I=U.current)||void 0===I?void 0:I.removeROISet(A))&&void 0!==g&&g},removeROI(A){var I,g;return null!==(g=null===(I=U.current)||void 0===I?void 0:I.removeROI(A))&&void 0!==g&&g},updateROI(A,I){var g;return null===(g=U.current)||void 0===g?void 0:g.updateROI(A,I)},clearROIs(){var A;null===(A=U.current)||void 0===A||A.clearROIs()},getROIs(){var A,I;return null!==(I=null===(A=U.current)||void 0===A?void 0:A.getROIs())&&void 0!==I?I:[]},getROISets(){var A,I;return null!==(I=null===(A=U.current)||void 0===A?void 0:A.getROISets())&&void 0!==I?I:[]},findROIsAtLocus(A,I,g){var t,C;return null!==(C=null===(t=U.current)||void 0===t?void 0:t.findROIsAtLocus(A,I,g))&&void 0!==C?C:[]},getVisibleROIs(){var A,I;return null!==(I=null===(A=U.current)||void 0===A?void 0:A.getVisibleROIs())&&void 0!==I?I:[]},toJSON:()=>U.current.toJSON(),loadSession(A,I){var g;null===(g=U.current)||void 0===g||g.loadSession(A,I)},toSVG(){var A,I;return null!==(I=null===(A=U.current)||void 0===A?void 0:A.toSVG())&&void 0!==I?I:""},async toPNG(){var A,I;return null!==(I=null===(A=U.current)||void 0===A?void 0:A.toPNG())&&void 0!==I?I:""},saveSVGtoFile(A){var I;null===(I=U.current)||void 0===I||I.saveSVGtoFile(A)},async savePNGtoFile(A){var I;await(null===(I=U.current)||void 0===I?void 0:I.savePNGtoFile(A))},attachRemote(A){var I;null===(I=U.current)||void 0===I||I.attachRemote(A)},detachRemote(){var A;null===(A=U.current)||void 0===A||A.detachRemote()}}),[M]);const v=Q(()=>JQ(r).shellTheme,[r]),b=Q(()=>({browser:M,shellTheme:v}),[M,v]);return A(LQ.Provider,{value:b,children:I("div",{className:N,style:m,children:[M&&R,A("div",{ref:p})]})})});function YQ(){const A=o(LQ);if(null===A)throw new Error("useGenomeBrowser must be used within a <LoomBrowser> component");return A.browser}function vQ(A,I){const g=YQ(),t=C(I);t.current=I,B(()=>{if(!g)return;const I=A=>t.current(A);return g.on(A,I),()=>{g.off(A,I)}},[g,A])}function bQ(){const A=YQ(),[I,g]=e(()=>{var I;return null!==(I=null==A?void 0:A.locus)&&void 0!==I?I:null}),[t,C]=e(()=>{var I;return null!==(I=null==A?void 0:A.frames)&&void 0!==I?I:[]});vQ(eQ.LocusChange,A=>{g(A.locus),C(A.frames)});return{locus:I,frames:t,setLocus:s((I,g)=>{g?null==A||A.setFrameLocus(g,I):null==A||A.setLocus(I)},[A]),zoomIn:s(I=>{null==A||A.zoomIn(I)},[A]),zoomOut:s(I=>{null==A||A.zoomOut(I)},[A])}}function xQ(){const[A,I]=e(void 0),g=C("");return B(()=>{const A=document.documentElement;function t(){const t=W(A),C=JSON.stringify(t);if(C===g.current)return;g.current=C;if(!Object.values(t).some(A=>void 0!==A))return void I(void 0);const e={};for(const[A,I]of Object.entries(t))void 0!==I&&(e[A]=I);I({palette:e})}t();const C=new MutationObserver(t);return C.observe(A,{attributes:!0,attributeFilter:["class","data-theme"]}),()=>C.disconnect()},[]),A}function HQ(A,I,g,t,e){const i=YQ(),Q=C(null),o=C(I),s=C(!0),E=C(e);return E.current=e,B(()=>{if(!i)return;const I=A(i);return Q.current=I,()=>{Q.current&&(i.removeTrack(Q.current),Q.current=null)}},[i,...I]),B(()=>{if(s.current)return void(s.current=!1);if(!i||!Q.current||!g)return;const A=I.some((A,I)=>A!==o.current[I]);o.current=I,A||g(Q.current,i)},t),B(()=>{if(!i)return;function A(A,I){I&&A.track===Q.current&&I({features:A.features,genomicLocation:A.genomicLocation,x:A.x,y:A.y})}const I=I=>{var g;return A(I,null===(g=E.current)||void 0===g?void 0:g.onClick)},g=I=>{var g;return A(I,null===(g=E.current)||void 0===g?void 0:g.onContextMenu)};return i.on(eQ.TrackClick,I),i.on(eQ.TrackContextMenu,g),()=>{i.off(eQ.TrackClick,I),i.off(eQ.TrackContextMenu,g)}},[i]),Q.current}function qQ({config:A,maxTrackHeight:I}){return HQ(g=>g.addRuler({config:A,maxTrackHeight:I}),[],I=>{A&&I.setConfig(A)},[A]),null}function TQ({url:A,features:I,config:g,windowFunction:t,maxTrackHeight:C,name:e,metadata:B,onClick:i,onContextMenu:Q}){return HQ(i=>{if(I)return i.addWigTrackWithFeatures(I,{config:g,maxTrackHeight:C,name:e,metadata:B});if(!A)throw new Error("WigTrack requires either a `url` or `features` prop");return i.addWigTrack(A,{config:g,windowFunction:t,maxTrackHeight:C,name:e,metadata:B})},[A,I,t],A=>{g&&A.setConfig(g)},[g,e],{onClick:i,onContextMenu:Q}),null}function _Q({config:A,genome:I,track:g,maxTrackHeight:t,name:C,metadata:e,onClick:B,onContextMenu:i}){return HQ(B=>B.addGeneTrack({config:A,genome:I,track:g,maxTrackHeight:t,name:C,metadata:e}),[I,g],I=>{A&&I.setConfig(A)},[A,C],{onClick:B,onContextMenu:i}),null}function WQ({url:A,features:I,config:g,format:t,indexURL:C,indexed:e,maxTrackHeight:B,name:i,metadata:o,colorBy:s,onClick:E,onContextMenu:a}){const r=Q(()=>I&&s?I.map(A=>({...A,color:s(A)})):I,[I,s]);return HQ(I=>{if(r)return I.addBedTrackWithFeatures(r,{config:g,maxTrackHeight:B,name:i,metadata:o});if(!A)throw new Error("BedTrack requires either a `url` or `features` prop");return I.addBedTrack(A,{config:g,format:t,indexURL:C,indexed:e,maxTrackHeight:B,name:i,metadata:o})},[A,r,t,C,e],A=>{g&&A.setConfig(g)},[g,i],{onClick:E,onContextMenu:a}),null}function PQ({config:A,maxTrackHeight:I}){return HQ(g=>g.addSequenceTrack({config:A,maxTrackHeight:I}),[],I=>{A&&I.setConfig(A)},[A]),null}function OQ({url:A,config:I,format:g,indexURL:t,indexed:C,name:e,metadata:B,onClick:i,onContextMenu:Q}){return HQ(i=>i.addInteractionTrack(A,{config:I,format:g,indexURL:t,indexed:C,name:e,metadata:B}),[A,g,t,C],A=>{I&&A.setConfig(I)},[I,e],{onClick:i,onContextMenu:Q}),null}function VQ({url:A,experimentId:I,config:g,windowFunction:t,maxTrackHeight:C,name:e,metadata:B,onClick:i,onContextMenu:Q}){return HQ(i=>i.addGtxTrack(A,{experimentId:I,config:g,windowFunction:t,maxTrackHeight:C,name:e,metadata:B}),[A,I,t],A=>{g&&A.setConfig(g)},[g,e],{onClick:i,onContextMenu:Q}),null}function ZQ({rois:A,name:I="Declarative",color:g}){const t=YQ(),e=C(null);return B(()=>{if(!t)return;e.current&&(t.removeROISet(e.current),e.current=null);const C={name:I,color:g,features:A},B=t.addROISet(C);return e.current=B,()=>{e.current&&(t.removeROISet(e.current),e.current=null)}},[t,I,g,A]),null}const XQ=document.createElement("template");XQ.innerHTML="\n<style>\n:host {\n display: inline-flex;\n align-items: center;\n}\nselect {\n font: var(--loom-font, 12px Arial, sans-serif);\n color: var(--loom-text-color, #333);\n background: var(--loom-input-bg, white);\n border: var(--loom-input-border, 1px solid #b0b0b0);\n border-radius: var(--loom-border-radius, 4px);\n height: var(--loom-input-height, 22px);\n padding: 0 4px;\n box-sizing: border-box;\n outline: none;\n cursor: pointer;\n transition: border-color 0.15s;\n}\nselect:focus {\n border: var(--loom-input-focus-border, 1px solid #4A90D9);\n}\n</style>\n<select></select>\n";class zQ extends HTMLElement{constructor(){super(),this.unsubscribe=null,this._browser=null,this._frameId=null,this.attachShadow({mode:"open"}),this.shadowRoot.appendChild(XQ.content.cloneNode(!0)),this.select=this.shadowRoot.querySelector("select"),this.select.addEventListener("change",()=>{if(!this._browser)return;const A=this.select.value;if("all"===A)this._frameId?this._browser.search("all",this._frameId):this._browser.search("all");else{const I=this._browser.chromSizes;if(I&&null!=I[A]){const g={chr:A,start:0,end:I[A]};this._frameId?this._browser.setFrameLocus(this._frameId,g):this._browser.setLocus(g)}}})}set frameId(A){this._frameId=A,this._browser&&this.updateFromBrowser(this._browser)}get frameId(){return this._frameId}set browser(A){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null),this._browser=A,A&&(this.populate(A),this.updateFromBrowser(A),this.unsubscribe=A.on(eQ.LocusChange,()=>{this.updateFromBrowser(A)}))}get browser(){return this._browser}updateFromBrowser(A){var I,g;const t=this._frameId&&null!==(g=null===(I=A.frames.find(A=>A.id===this._frameId))||void 0===I?void 0:I.locus)&&void 0!==g?g:A.locus;this.updateSelection(t.chr)}populate(A){this.select.innerHTML="";const I=A.chromSizes;if(!I)return;if(A.cumulativeOffsets){const A=document.createElement("option");A.value="all",A.textContent="All",this.select.appendChild(A)}const g=JI(I);for(const A of g){const I=document.createElement("option");I.value=A,I.textContent=A,this.select.appendChild(I)}}updateSelection(A){h({chr:A,start:0,end:0})?this.select.value="all":this.select.value=A}disconnectedCallback(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null)}}const jQ=document.createElement("template");jQ.innerHTML='\n<style>\n:host {\n display: inline-flex;\n align-items: center;\n}\n.container {\n display: flex;\n align-items: center;\n gap: 4px;\n}\ninput {\n font: var(--loom-font, 12px Arial, sans-serif);\n color: var(--loom-text-color, #333);\n background: var(--loom-input-bg, white);\n border: var(--loom-input-border, 1px solid #b0b0b0);\n border-radius: var(--loom-border-radius, 4px);\n width: var(--loom-input-width, 220px);\n height: var(--loom-input-height, 22px);\n padding: 0 8px;\n box-sizing: border-box;\n outline: none;\n transition: border-color 0.15s;\n}\ninput:focus {\n border: var(--loom-input-focus-border, 1px solid #4A90D9);\n}\ninput::placeholder {\n color: var(--loom-text-muted, #737373);\n}\n.search-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--loom-button-size, 24px);\n height: var(--loom-button-size, 24px);\n background: var(--loom-button-bg, white);\n border: var(--loom-button-border, 1px solid #b0b0b0);\n border-radius: var(--loom-border-radius, 4px);\n cursor: pointer;\n color: var(--loom-icon-color, #555);\n transition: background 0.15s;\n padding: 0;\n line-height: 1;\n}\n.search-btn:hover {\n background: var(--loom-button-hover, #e8e8e8);\n}\n.search-btn svg {\n width: var(--loom-icon-size, 14px);\n height: var(--loom-icon-size, 14px);\n fill: none;\n stroke: currentColor;\n stroke-width: 2;\n stroke-linecap: round;\n stroke-linejoin: round;\n}\n</style>\n<div class="container">\n <input type="text" placeholder="Locus Search" spellcheck="false" />\n <button class="search-btn" title="Go to locus">\n <svg viewBox="0 0 24 24"><circle cx="11" cy="11" r="7"/><line x1="16.5" y1="16.5" x2="21" y2="21"/></svg>\n </button>\n</div>\n';class $Q extends HTMLElement{constructor(){super(),this.unsubscribe=null,this._browser=null,this._frameId=null,this.attachShadow({mode:"open"}),this.shadowRoot.appendChild(jQ.content.cloneNode(!0)),this.input=this.shadowRoot.querySelector("input"),this.input.addEventListener("keydown",A=>{"Enter"===A.key&&this.doSearch()}),this.shadowRoot.querySelector(".search-btn").addEventListener("click",()=>{this.doSearch()})}set frameId(A){this._frameId=A,this._browser&&this.updateDisplayFromBrowser(this._browser)}get frameId(){return this._frameId}set browser(A){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null),this._browser=A,A&&(this.updateDisplayFromBrowser(A),this.unsubscribe=A.on(eQ.LocusChange,()=>{this.updateDisplayFromBrowser(A)}))}get browser(){return this._browser}updateDisplayFromBrowser(A){if(document.activeElement!==this.input&&this.shadowRoot.activeElement!==this.input)if(this._frameId){const I=A.frames.find(A=>A.id===this._frameId);this.input.value=l(I?I.locus:A.locus)}else{const I=A.frames;I.length<=1?this.input.value=l(A.locus):this.input.value=I.map(A=>l(A.locus)).join(" ")}}async doSearch(){var A;if(!this._browser)return;const I=this.input.value.trim();if(I){this.input.disabled=!0;try{await this._browser.search(I,null!==(A=this._frameId)&&void 0!==A?A:void 0)||(this.input.style.borderColor="var(--loom-input-error-border, #d32f2f)",setTimeout(()=>{this.input.style.borderColor=""},1500))}finally{this.input.disabled=!1,this.input.blur()}}}disconnectedCallback(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null)}}const Ao=document.createElement("template");Ao.innerHTML='\n<style>\n:host {\n display: inline-flex;\n align-items: center;\n}\n.container {\n display: flex;\n align-items: center;\n gap: 2px;\n}\nbutton {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--loom-button-size, 24px);\n height: var(--loom-button-size, 24px);\n background: var(--loom-button-bg, white);\n border: var(--loom-button-border, 1px solid #b0b0b0);\n border-radius: var(--loom-border-radius, 4px);\n cursor: pointer;\n color: var(--loom-icon-color, #555);\n transition: background 0.15s;\n padding: 0;\n line-height: 1;\n}\nbutton:hover {\n background: var(--loom-button-hover, #e8e8e8);\n}\nbutton:active {\n transform: scale(0.95);\n}\nbutton svg {\n width: var(--loom-icon-size, 14px);\n height: var(--loom-icon-size, 14px);\n fill: none;\n stroke: currentColor;\n stroke-width: 2;\n stroke-linecap: round;\n}\n</style>\n<div class="container">\n <button class="zoom-out" title="Zoom out">\n <svg viewBox="0 0 24 24"><circle cx="12" cy="12" r="9"/><line x1="8" y1="12" x2="16" y2="12"/></svg>\n </button>\n <button class="zoom-in" title="Zoom in">\n <svg viewBox="0 0 24 24"><circle cx="12" cy="12" r="9"/><line x1="12" y1="8" x2="12" y2="16"/><line x1="8" y1="12" x2="16" y2="12"/></svg>\n </button>\n</div>\n';class Io extends HTMLElement{constructor(){super(),this._browser=null,this._frameId=null,this.attachShadow({mode:"open"}),this.shadowRoot.appendChild(Ao.content.cloneNode(!0)),this.shadowRoot.querySelector(".zoom-out").addEventListener("click",()=>{var A,I;null===(A=this._browser)||void 0===A||A.zoomOut(2,null!==(I=this._frameId)&&void 0!==I?I:void 0)}),this.shadowRoot.querySelector(".zoom-in").addEventListener("click",()=>{var A,I;null===(A=this._browser)||void 0===A||A.zoomIn(2,null!==(I=this._frameId)&&void 0!==I?I:void 0)})}set frameId(A){this._frameId=A}get frameId(){return this._frameId}set browser(A){this._browser=A}get browser(){return this._browser}}const go=document.createElement("template");go.innerHTML='\n<style>\n:host {\n display: inline-flex;\n align-items: center;\n}\n.label {\n font: var(--loom-font-small, 11px Arial, sans-serif);\n color: var(--loom-text-muted, #737373);\n white-space: nowrap;\n user-select: none;\n}\n</style>\n<span class="label"></span>\n';class to extends HTMLElement{constructor(){super(),this.unsubscribe=null,this._browser=null,this._frameId=null,this.attachShadow({mode:"open"}),this.shadowRoot.appendChild(go.content.cloneNode(!0)),this.label=this.shadowRoot.querySelector(".label")}set frameId(A){this._frameId=A,this._browser&&this.updateFromBrowser(this._browser)}get frameId(){return this._frameId}set browser(A){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null),this._browser=A,A&&(this.updateFromBrowser(A),this.unsubscribe=A.on(eQ.LocusChange,()=>{this.updateFromBrowser(A)}))}get browser(){return this._browser}updateFromBrowser(A){var I,g;const t=this._frameId&&null!==(g=null===(I=A.frames.find(A=>A.id===this._frameId))||void 0===I?void 0:I.locus)&&void 0!==g?g:A.locus;this.label.textContent=function(A){if((A=Math.abs(A))>=1e9){const I=A/1e9;return`${I%1==0?I.toFixed(0):I.toFixed(1)} Gb`}if(A>=1e6){const I=A/1e6;return`${I%1==0?I.toFixed(0):I.toFixed(1)} Mb`}if(A>=1e3){const I=A/1e3;return`${I%1==0?I.toFixed(0):I.toFixed(1)} kb`}return`${Math.round(A)} bp`}(t.end-t.start)}disconnectedCallback(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null)}}const Co=document.createElement("template");Co.innerHTML='\n<style>\n:host {\n display: inline-flex;\n align-items: center;\n}\n.container {\n display: flex;\n align-items: center;\n gap: 2px;\n}\nbutton {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--loom-button-size, 24px);\n height: var(--loom-button-size, 24px);\n background: var(--loom-button-bg, white);\n border: var(--loom-button-border, 1px solid #b0b0b0);\n border-radius: var(--loom-border-radius, 4px);\n cursor: pointer;\n color: var(--loom-icon-color, #555);\n transition: background 0.15s;\n padding: 0;\n line-height: 1;\n}\nbutton:hover {\n background: var(--loom-button-hover, #e8e8e8);\n}\nbutton:active {\n transform: scale(0.95);\n}\nbutton svg {\n width: var(--loom-icon-size, 14px);\n height: var(--loom-icon-size, 14px);\n fill: none;\n stroke: currentColor;\n stroke-width: 2;\n stroke-linecap: round;\n stroke-linejoin: round;\n}\n</style>\n<div class="container">\n <button class="save-svg" title="Save as SVG">\n <svg viewBox="0 0 24 24">\n <path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/>\n <polyline points="7 10 12 15 17 10"/>\n <line x1="12" y1="15" x2="12" y2="3"/>\n </svg>\n </button>\n <button class="save-png" title="Save as PNG">\n <svg viewBox="0 0 24 24">\n <rect x="3" y="3" width="18" height="18" rx="2" ry="2"/>\n <circle cx="8.5" cy="8.5" r="1.5"/>\n <polyline points="21 15 16 10 5 21"/>\n </svg>\n </button>\n</div>\n';class eo extends HTMLElement{constructor(){super(),this._browser=null,this.attachShadow({mode:"open"}),this.shadowRoot.appendChild(Co.content.cloneNode(!0)),this.shadowRoot.querySelector(".save-svg").addEventListener("click",()=>{var A;null===(A=this._browser)||void 0===A||A.saveSVGtoFile()}),this.shadowRoot.querySelector(".save-png").addEventListener("click",()=>{var A;null===(A=this._browser)||void 0===A||A.savePNGtoFile()})}set browser(A){this._browser=A}get browser(){return this._browser}}customElements.get("loom-chromosome-select")||customElements.define("loom-chromosome-select",zQ),customElements.get("loom-locus-input")||customElements.define("loom-locus-input",$Q),customElements.get("loom-zoom-controls")||customElements.define("loom-zoom-controls",Io),customElements.get("loom-window-size")||customElements.define("loom-window-size",to);const Bo=document.createElement("template");Bo.innerHTML='\n<style>\n:host {\n display: flex;\n align-items: center;\n gap: var(--loom-gap, 8px);\n flex: 1;\n min-width: 0;\n}\n.close-btn {\n display: none;\n align-items: center;\n justify-content: center;\n width: 18px;\n height: 18px;\n background: none;\n border: var(--loom-button-border, 1px solid #b0b0b0);\n border-radius: var(--loom-border-radius, 4px);\n cursor: pointer;\n color: var(--loom-icon-color, #555);\n transition: background 0.15s, color 0.15s;\n padding: 0;\n line-height: 1;\n flex-shrink: 0;\n}\n.close-btn:hover {\n background: var(--loom-button-hover, #e8e8e8);\n color: var(--loom-text-color, #333);\n}\n.close-btn svg {\n width: 10px;\n height: 10px;\n fill: none;\n stroke: currentColor;\n stroke-width: 2;\n stroke-linecap: round;\n}\n:host([closable]) .close-btn {\n display: flex;\n}\n</style>\n<loom-chromosome-select></loom-chromosome-select>\n<loom-locus-input></loom-locus-input>\n<loom-window-size></loom-window-size>\n<loom-zoom-controls></loom-zoom-controls>\n<button class="close-btn" title="Close this panel">\n <svg viewBox="0 0 24 24"><line x1="6" y1="6" x2="18" y2="18"/><line x1="18" y1="6" x2="6" y2="18"/></svg>\n</button>\n';class io extends HTMLElement{constructor(){super(),this._browser=null,this._frameId=null,this.unsubFrameRemoved=null,this.attachShadow({mode:"open"}),this.shadowRoot.appendChild(Bo.content.cloneNode(!0)),customElements.upgrade(this.shadowRoot),this.chromSelect=this.shadowRoot.querySelector("loom-chromosome-select"),this.locusInput=this.shadowRoot.querySelector("loom-locus-input"),this.zoomControls=this.shadowRoot.querySelector("loom-zoom-controls"),this.windowSize=this.shadowRoot.querySelector("loom-window-size"),this.shadowRoot.querySelector(".close-btn").addEventListener("click",()=>{this._browser&&this._frameId&&this._browser.removeFrame(this._frameId)})}set frameId(A){this._frameId=A,this.chromSelect.frameId=A,this.locusInput.frameId=A,this.zoomControls.frameId=A,this.windowSize.frameId=A}get frameId(){return this._frameId}set browser(A){if(this.unsubFrameRemoved&&(this.unsubFrameRemoved(),this.unsubFrameRemoved=null),this._browser=A,this.chromSelect.browser=A,this.locusInput.browser=A,this.zoomControls.browser=A,this.windowSize.browser=A,A){this.updateClosable(A);const I=A.on(eQ.FrameAdded,()=>this.updateClosable(A)),g=A.on(eQ.FrameRemoved,()=>this.updateClosable(A));this.unsubFrameRemoved=()=>{I(),g()}}}get browser(){return this._browser}updateClosable(A){A.frames.length>1?this.setAttribute("closable",""):this.removeAttribute("closable")}disconnectedCallback(){this.unsubFrameRemoved&&(this.unsubFrameRemoved(),this.unsubFrameRemoved=null)}}customElements.get("loom-export-controls")||customElements.define("loom-export-controls",eo),customElements.get("loom-frame-panel")||customElements.define("loom-frame-panel",io);const Qo=document.createElement("template");Qo.innerHTML='\n<style>\n:host {\n display: block;\n}\n.single-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n height: var(--loom-navbar-height, 32px);\n padding: var(--loom-navbar-padding, 0 8px);\n background: var(--loom-navbar-bg, #f3f3f3);\n border-bottom: var(--loom-border, 1px solid #ccc);\n box-sizing: border-box;\n gap: var(--loom-gap, 8px);\n}\n.single-left {\n display: flex;\n align-items: center;\n gap: var(--loom-gap, 8px);\n flex: 1;\n min-width: 0;\n}\n.single-right {\n display: flex;\n align-items: center;\n gap: var(--loom-gap, 8px);\n flex-shrink: 0;\n}\n.global-row {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n height: var(--loom-navbar-height, 32px);\n padding: var(--loom-navbar-padding, 0 8px);\n background: var(--loom-navbar-bg, #f3f3f3);\n border-bottom: var(--loom-border, 1px solid #ccc);\n box-sizing: border-box;\n gap: var(--loom-gap, 8px);\n}\n.frames-row {\n display: flex;\n align-items: center;\n min-height: var(--loom-navbar-height, 32px);\n padding: 0;\n padding-left: var(--loom-axis-width, 50px);\n background: var(--loom-navbar-bg, #f3f3f3);\n border-bottom: var(--loom-border, 1px solid #ccc);\n box-sizing: border-box;\n gap: 0;\n}\n.frame-divider {\n width: var(--loom-column-shim-width, 3px);\n align-self: stretch;\n background: var(--loom-border-color, #ccc);\n flex-shrink: 0;\n}\n.hidden {\n display: none !important;\n}\n</style>\n\x3c!-- Single-frame layout (classic single row) --\x3e\n<div class="single-row">\n <div class="single-left"></div>\n <div class="single-right">\n <loom-export-controls class="export-single"></loom-export-controls>\n </div>\n</div>\n\x3c!-- Multi-frame layout (two rows) --\x3e\n<div class="global-row hidden">\n <loom-export-controls class="export-multi"></loom-export-controls>\n</div>\n<div class="frames-row hidden"></div>\n';class oo extends HTMLElement{constructor(){super(),this.framePanels=new Map,this._browser=null,this.unsubscribers=[],this.attachShadow({mode:"open"}),this.shadowRoot.appendChild(Qo.content.cloneNode(!0)),customElements.upgrade(this.shadowRoot),this.singleRow=this.shadowRoot.querySelector(".single-row"),this.singleLeft=this.shadowRoot.querySelector(".single-left"),this.exportSingle=this.shadowRoot.querySelector(".export-single"),this.globalRow=this.shadowRoot.querySelector(".global-row"),this.exportMulti=this.shadowRoot.querySelector(".export-multi"),this.framesRow=this.shadowRoot.querySelector(".frames-row")}set browser(A){for(const A of this.unsubscribers)A();this.unsubscribers=[],this.clearFramePanels(),this._browser=A,this.exportSingle.browser=A,this.exportMulti.browser=A,A&&(this.syncLayout(A),this.unsubscribers.push(A.on(eQ.FrameAdded,()=>this.syncLayout(A))),this.unsubscribers.push(A.on(eQ.FrameRemoved,()=>this.syncLayout(A))))}get browser(){return this._browser}syncLayout(A){const I=A.frames,g=I.length>1;this.singleRow.classList.toggle("hidden",g),this.globalRow.classList.toggle("hidden",!g),this.framesRow.classList.toggle("hidden",!g);const t=new Set(I.map(A=>A.id));for(const A of[...this.framePanels.keys()])t.has(A)||(this.framePanels.get(A).remove(),this.framePanels.delete(A));if(g)this.singleLeft.innerHTML="",this.rebuildFramesRow(A,I);else{this.framesRow.innerHTML="";const g=I[0];let t=this.framePanels.get(g.id);t?t.browser=A:t=this.createPanel(g.id,A),this.singleLeft.innerHTML="",this.singleLeft.appendChild(t)}}rebuildFramesRow(A,I){this.framesRow.innerHTML="";let g=!0;for(const t of I){if(!g){const A=document.createElement("div");A.className="frame-divider",this.framesRow.appendChild(A)}g=!1;let I=this.framePanels.get(t.id);I?I.browser=A:I=this.createPanel(t.id,A),this.framesRow.appendChild(I)}}createPanel(A,I){const g=document.createElement("loom-frame-panel");return g.frameId=A,g.browser=I,this.framePanels.set(A,g),g}clearFramePanels(){for(const A of this.framePanels.values())A.remove();this.framePanels.clear(),this.singleLeft&&(this.singleLeft.innerHTML=""),this.framesRow&&(this.framesRow.innerHTML="")}disconnectedCallback(){for(const A of this.unsubscribers)A();this.unsubscribers=[],this.clearFramePanels()}}let so=!1;function Eo(){if(so||"undefined"==typeof customElements)return;so=!0;const A=[["loom-chromosome-select",zQ],["loom-locus-input",$Q],["loom-zoom-controls",Io],["loom-window-size",to],["loom-export-controls",eo],["loom-navbar",oo]];for(const[I,g]of A)customElements.get(I)||customElements.define(I,g)}function ao({browser:I,frameId:g}){const t=YQ(),e=null!=I?I:t,i=C(null);return Eo(),B(()=>{i.current&&(i.current.browser=e)},[e]),B(()=>{i.current&&(i.current.frameId=null!=g?g:null)},[g]),A("loom-chromosome-select",{ref:i})}function ro({browser:I,frameId:g}){const t=YQ(),e=null!=I?I:t,i=C(null);return Eo(),B(()=>{i.current&&(i.current.browser=e)},[e]),B(()=>{i.current&&(i.current.frameId=null!=g?g:null)},[g]),A("loom-locus-input",{ref:i})}function no({browser:I,frameId:g}){const t=YQ(),e=null!=I?I:t,i=C(null);return Eo(),B(()=>{i.current&&(i.current.browser=e)},[e]),B(()=>{i.current&&(i.current.frameId=null!=g?g:null)},[g]),A("loom-zoom-controls",{ref:i})}function ho({browser:I,frameId:g}){const t=YQ(),e=null!=I?I:t,i=C(null);return Eo(),B(()=>{i.current&&(i.current.browser=e)},[e]),B(()=>{i.current&&(i.current.frameId=null!=g?g:null)},[g]),A("loom-window-size",{ref:i})}function co({browser:I}){const g=YQ(),t=null!=I?I:g,e=C(null);return Eo(),B(()=>{e.current&&(e.current.browser=t)},[t]),A("loom-export-controls",{ref:e})}function lo({browser:I,theme:g}){var t;const e=o(LQ),i=YQ(),Q=null!=I?I:i,s=null!==(t=null!=g?g:null==e?void 0:e.shellTheme)&&void 0!==t?t:"modern",E=C(null),a=C(null);return Eo(),B(()=>{E.current&&(E.current.browser=Q)},[Q]),B(()=>{const A=E.current;(null==A?void 0:A.shadowRoot)&&(a.current||(a.current=document.createElement("style"),A.shadowRoot.prepend(a.current)),a.current.textContent=function(A){return"modern"===A?UQ:"dark"===A?MQ:"auto"===A?"":pQ}(s))},[s]),A("loom-navbar",{ref:E})}class Do extends HTMLElement{constructor(){super(),this.resolve=null,this.attachShadow({mode:"open"})}connectedCallback(){const A=document.createElement("template");A.innerHTML='\n<style>\n:host {\n position: absolute;\n z-index: 100002;\n top: 0; left: 0; right: 0; bottom: 0;\n display: none;\n align-items: center;\n justify-content: center;\n background: rgba(0, 0, 0, 0.15);\n}\n.dialog {\n background: var(--loom-dialog-bg, var(--loom-input-bg, white));\n border: var(--loom-dialog-border, var(--loom-border, 1px solid #ccc));\n border-radius: var(--loom-dialog-radius, var(--loom-border-radius, 6px));\n box-shadow: var(--loom-dialog-shadow, 0 4px 16px rgba(0,0,0,0.2));\n padding: 16px 20px;\n font: var(--loom-dialog-font, var(--loom-font, 13px/1.4 sans-serif));\n color: var(--loom-dialog-color, var(--loom-text-color, #333));\n min-width: 220px;\n}\n.dialog label {\n display: block;\n margin-bottom: 8px;\n font-weight: 600;\n font-size: 12px;\n}\n.dialog input {\n width: 100%;\n box-sizing: border-box;\n padding: 6px 8px;\n background: var(--loom-input-bg, white);\n border: var(--loom-input-border, 1px solid #ccc);\n border-radius: 4px;\n font: inherit;\n color: inherit;\n margin-bottom: 12px;\n}\n.dialog input:focus {\n outline: none;\n border-color: var(--loom-accent, #4A90D9);\n box-shadow: 0 0 0 2px rgba(74, 144, 217, 0.2);\n}\n.buttons {\n display: flex;\n justify-content: flex-end;\n gap: 8px;\n}\n.buttons button {\n padding: 5px 14px;\n border: var(--loom-button-border, 1px solid #ccc);\n border-radius: 4px;\n font: inherit;\n font-size: 12px;\n cursor: pointer;\n background: var(--loom-dialog-btn-bg, var(--loom-button-bg, #f5f5f5));\n color: var(--loom-dialog-btn-color, var(--loom-text-color, #333));\n}\n.buttons button:hover {\n background: var(--loom-button-hover, #e8e8e8);\n}\n.buttons button.primary {\n background: var(--loom-accent, #4A90D9);\n color: white;\n border-color: transparent;\n}\n.buttons button.primary:hover {\n filter: brightness(0.9);\n}\n</style>\n<div class="dialog">\n <label></label>\n <input type="text" />\n <div class="buttons">\n <button class="cancel">Cancel</button>\n <button class="primary ok">OK</button>\n </div>\n</div>\n',this.shadowRoot.appendChild(A.content.cloneNode(!0)),this.labelEl=this.shadowRoot.querySelector("label"),this.inputEl=this.shadowRoot.querySelector("input"),this.okBtn=this.shadowRoot.querySelector(".ok"),this.cancelBtn=this.shadowRoot.querySelector(".cancel"),this.okBtn.addEventListener("click",()=>this.confirm()),this.cancelBtn.addEventListener("click",()=>this.cancel()),this.inputEl.addEventListener("keydown",A=>{"Enter"===A.key&&this.confirm(),"Escape"===A.key&&this.cancel()})}prompt(A,I){return this.labelEl.textContent=A,this.inputEl.value=String(I),this.style.display="flex",requestAnimationFrame(()=>{this.inputEl.focus(),this.inputEl.select()}),new Promise(A=>{this.resolve=A})}confirm(){const A=this.inputEl.value;this.style.display="none",this.resolve&&(this.resolve(A),this.resolve=null)}cancel(){this.style.display="none",this.resolve&&(this.resolve(null),this.resolve=null)}}"undefined"==typeof customElements||customElements.get("loom-input-dialog")||customElements.define("loom-input-dialog",Do);var uo=Object.freeze({__proto__:null,LoomInputDialog:Do});class yo extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"})}connectedCallback(){const A=document.createElement("template");A.innerHTML='\n<style>\n:host {\n position: absolute;\n z-index: 100001;\n pointer-events: auto;\n display: none;\n user-select: text;\n -webkit-user-select: text;\n cursor: auto;\n}\n.menu {\n background: var(--loom-menu-bg, var(--loom-input-bg, white));\n border: var(--loom-menu-border, var(--loom-border, 1px solid #ccc));\n border-radius: var(--loom-menu-radius, var(--loom-border-radius, 4px));\n box-shadow: var(--loom-menu-shadow, 0 2px 8px rgba(0,0,0,0.18));\n padding: 4px 0;\n font: var(--loom-menu-font, var(--loom-font-small, 12px/1.4 sans-serif));\n color: var(--loom-menu-color, var(--loom-text-color, #333));\n min-width: 160px;\n}\n.item {\n padding: 6px 12px;\n cursor: pointer;\n white-space: nowrap;\n display: flex;\n align-items: center;\n gap: 6px;\n position: relative;\n}\n.item:hover {\n background: var(--loom-menu-hover, var(--loom-button-hover, #f0f0f0));\n}\n.item.disabled {\n opacity: 0.45;\n pointer-events: none;\n}\n.separator {\n height: 1px;\n background: var(--loom-menu-divider, var(--loom-button-hover, #e0e0e0));\n margin: 4px 0;\n}\n.check {\n width: 14px;\n text-align: center;\n flex-shrink: 0;\n font-size: 11px;\n}\n.label {\n flex: 1;\n}\n.arrow {\n font-size: 9px;\n color: #999;\n margin-left: 8px;\n}\n.submenu {\n position: absolute;\n left: 100%;\n top: -4px;\n display: none;\n}\n.item:hover > .submenu {\n display: block;\n}\n</style>\n<div class="menu"></div>\n',this.shadowRoot.appendChild(A.content.cloneNode(!0)),this.menuDiv=this.shadowRoot.querySelector(".menu")}disconnectedCallback(){this.menuDiv&&(this.menuDiv.innerHTML="")}setItems(A){this.menuDiv&&(this.menuDiv.innerHTML="",this.buildItems(A,this.menuDiv))}buildItems(A,I){for(const g of A){if("separator"===g.type){const A=document.createElement("div");A.className="separator",I.appendChild(A);continue}const A=document.createElement("div");A.className="item"+(g.disabled?" disabled":"");const t=document.createElement("span");t.className="check",t.textContent="checkbox"===g.type&&g.checked?"✓":"",A.appendChild(t);const C=document.createElement("span");if(C.className="label",C.textContent=g.label,A.appendChild(C),g.children&&g.children.length>0){const I=document.createElement("span");I.className="arrow",I.textContent="▶",A.appendChild(I);const t=document.createElement("div");t.className="submenu menu",this.buildItems(g.children,t),A.appendChild(t)}if(g.action&&!g.disabled){const I=g.action;A.addEventListener("pointerdown",A=>{A.stopPropagation()}),A.addEventListener("pointerup",A=>{A.stopPropagation()}),A.addEventListener("click",A=>{A.stopPropagation(),I(),this.hide()}),A.addEventListener("mousedown",A=>{A.stopPropagation()}),A.addEventListener("mouseup",A=>{A.stopPropagation()})}I.appendChild(A)}}showAt(A,I){this.style.display="block",this.style.left=`${A}px`,this.style.top=`${I}px`,requestAnimationFrame(()=>{const g=this.offsetParent;if(!g)return;const t=g.getBoundingClientRect(),C=this.getBoundingClientRect();let e=A,B=I;e+C.width>t.width&&(e=Math.max(0,A-C.width)),B+C.height>t.height&&(B=Math.max(0,I-C.height)),this.style.left=`${e}px`,this.style.top=`${B}px`})}hide(){this.style.display="none"}}"undefined"==typeof customElements||customElements.get("loom-context-menu")||customElements.define("loom-context-menu",yo);var wo=Object.freeze({__proto__:null,LoomContextMenu:yo,DefaultContextMenuProvider:class{constructor(){this.element=null}show(A,I,g){if(!this.element){this.element=document.createElement("loom-context-menu");"static"===getComputedStyle(g).position&&(g.style.position="relative"),g.appendChild(this.element)}this.element.setItems(A),this.element.showAt(I.x,I.y)}hide(){this.element&&this.element.hide()}dispose(){this.element&&(this.element.remove(),this.element=null)}}});let fo=null;class So extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),this.shadowRoot.appendChild((fo||(fo=document.createElement("template"),fo.innerHTML='\n<style>\n:host {\n position: absolute;\n z-index: 100000;\n pointer-events: auto;\n display: none;\n user-select: text;\n -webkit-user-select: text;\n cursor: auto;\n}\n.popup {\n background: var(--loom-popup-bg, var(--loom-input-bg, white));\n border: var(--loom-popup-border, var(--loom-border, 1px solid #ccc));\n border-radius: var(--loom-popup-radius, var(--loom-border-radius, 6px));\n box-shadow: var(--loom-popup-shadow, 0 2px 8px rgba(0,0,0,0.15));\n padding: 8px 12px;\n font: var(--loom-popup-font, var(--loom-font-small, 12px/1.4 sans-serif));\n color: var(--loom-popup-color, var(--loom-text-color, #333));\n max-width: 320px;\n min-width: 120px;\n}\ntable {\n border-collapse: collapse;\n width: 100%;\n}\ntd {\n padding: 2px 0;\n vertical-align: top;\n}\ntd.name {\n font-weight: 600;\n padding-right: 8px;\n white-space: nowrap;\n color: var(--loom-popup-name-color, var(--loom-popup-color, var(--loom-text-color, #333)));\n}\ntd.value {\n word-break: break-word;\n color: var(--loom-popup-color, var(--loom-text-color, #333));\n}\ntd.value.html {\n padding-top: 4px;\n}\ntd.value.html .popup-note {\n font-size: 11px;\n color: var(--loom-popup-color, var(--loom-text-color, #333));\n margin-top: 4px;\n}\ntd.value.html .legend-list {\n display: grid;\n gap: 4px;\n}\ntd.value.html .legend-row {\n display: flex;\n align-items: baseline;\n gap: 8px;\n flex-wrap: wrap;\n}\ntd.value.html .legend-label {\n font-weight: 600;\n}\ntd.value.html .legend-swatch {\n display: inline-block;\n width: 8px;\n height: 8px;\n border-radius: 999px;\n margin-right: 6px;\n vertical-align: middle;\n}\ntd.value.monospace {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \'Liberation Mono\', monospace;\n white-space: pre;\n word-break: normal;\n}\ntr.border-top td {\n border-top: 1px solid var(--loom-popup-divider, var(--loom-button-hover, #e0e0e0));\n padding-top: 4px;\n}\n.close {\n position: absolute;\n top: 4px;\n right: 6px;\n background: none;\n border: none;\n cursor: pointer;\n font-size: 14px;\n color: var(--loom-popup-close-color, var(--loom-text-muted, #999));\n line-height: 1;\n padding: 0 2px;\n}\n.close:hover {\n color: var(--loom-popup-color, var(--loom-text-color, #333));\n}\n</style>\n<div class="popup">\n <button class="close" title="Close">&times;</button>\n <table><tbody></tbody></table>\n</div>\n'),fo).content.cloneNode(!0)),this.shadowRoot.querySelector(".close").addEventListener("click",()=>{this.hide()});const A=this.shadowRoot.querySelector(".popup");A.addEventListener("pointerdown",A=>{A.stopPropagation()}),A.addEventListener("pointerup",A=>{A.stopPropagation()}),A.addEventListener("mousedown",A=>{A.stopPropagation()}),A.addEventListener("mouseup",A=>{A.stopPropagation()})}setData(A){const I=this.shadowRoot.querySelector("tbody");I.innerHTML="";for(const g of A){const A=document.createElement("tr");g.borderTop&&(A.className="border-top");const t=document.createElement("td");t.className="name",t.textContent=g.name;const C=document.createElement("td");C.className="value",g.monospace&&C.classList.add("monospace"),g.content?(C.classList.add("html"),C.appendChild(g.content(document))):C.textContent=String(g.value),A.appendChild(t),A.appendChild(C),I.appendChild(A)}}showAt(A,I){this.style.display="block";this.style.left=`${A+12}px`,this.style.top=`${I+12}px`,requestAnimationFrame(()=>{const g=this.offsetParent;if(!g)return;const t=g.getBoundingClientRect(),C=this.getBoundingClientRect();let e=A+12,B=I+12;e+C.width>t.width&&(e=A-C.width-12),B+C.height>t.height&&(B=I-C.height-12),e<0&&(e=0),B<0&&(B=0),this.style.left=`${e}px`,this.style.top=`${B}px`})}hide(){this.style.display="none"}}"undefined"==typeof customElements||customElements.get("loom-popup")||customElements.define("loom-popup",So);var ko=Object.freeze({__proto__:null,LoomPopup:So,DefaultPopupProvider:class{constructor(){this.element=null}show(A,I,g){if(!this.element){this.element=document.createElement("loom-popup");"static"===getComputedStyle(g).position&&(g.style.position="relative"),g.appendChild(this.element)}this.element.setData(A),this.element.showAt(I.x,I.y)}hide(){this.element&&this.element.hide()}dispose(){this.element&&(this.element.remove(),this.element=null)}}});export{WQ as BedTrack,ao as ChromosomeSelect,co as ExportControls,_Q as GeneTrack,LQ as GenomeBrowserContext,VQ as GtxTrack,OQ as InteractionTrack,ro as LocusInput,KQ as LoomBrowser,lo as Navbar,ZQ as ROISet,qQ as RulerTrack,PQ as SequenceTrack,TQ as WigTrack,ho as WindowSize,no as ZoomControls,vQ as useBrowserEvent,YQ as useGenomeBrowser,bQ as useLocus,xQ as useLoomCSSTheme};
2
2
  //# sourceMappingURL=loom-react.esm.min.js.map